<?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>203277</bug_id>
          
          <creation_ts>2019-10-22 15:42:38 -0700</creation_ts>
          <short_desc>Python 3: Add support in webkitpy.common.checkout.scm</short_desc>
          <delta_ts>2019-10-25 02:12:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201956</see_also>
          <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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1582630</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-22 15:42:38 -0700</bug_when>
    <thetext>All of webkitpy.common.checkout.scm needs to support Python 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582636</commentid>
    <comment_count>1</comment_count>
      <attachid>381621</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-22 15:51:10 -0700</bug_when>
    <thetext>Created attachment 381621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583600</commentid>
    <comment_count>2</comment_count>
      <attachid>381859</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-24 16:52:20 -0700</bug_when>
    <thetext>Created attachment 381859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583601</commentid>
    <comment_count>3</comment_count>
      <attachid>381859</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2019-10-24 16:59:20 -0700</bug_when>
    <thetext>Comment on attachment 381859
Patch

Looks fine for the most part.  I think the slow stuff should be its own patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583607</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-24 17:11:19 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #2)
&gt; Created attachment 381859 [details]
&gt; Patch

The slow stuff is a prerequisite to land this, otherwise the SCM tests make the test-webkitpy-python3 script unusably slow. The slow stuff can&apos;t really be tested without the SCM stuff, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583690</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-24 23:52:21 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 381859:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583693</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-24 23:52:27 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 381859:

imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity.html bug 203394 (author: ysuzuki@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583728</commentid>
    <comment_count>7</comment_count>
      <attachid>381859</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-25 02:11:39 -0700</bug_when>
    <thetext>Comment on attachment 381859
Patch

Clearing flags on attachment: 381859

Committed r251587: &lt;https://trac.webkit.org/changeset/251587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583729</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-25 02:11:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583730</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-25 02:12:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/56612397&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381621</attachid>
            <date>2019-10-22 15:51:10 -0700</date>
            <delta_ts>2019-10-24 16:52:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203277-20191022155109.patch</filename>
            <type>text/plain</type>
            <size>35479</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MTQ2MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDE5LTEwLTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHN1cHBvcnQgaW4gd2Via2l0cHkuY29tbW9uLmNo
ZWNrb3V0LnNjbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzMjc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMzogQWRkIHdlYmtpdHB5LmNvbW1vbi5j
aGVja291dC5zY20sIGFkZCAtLWFsbCBmbGFnLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NoZWNrb3V0L3NjbS9kZXRlY3Rpb24ucHk6IFVzZSBmdWxsIGltcG9ydCBwYXRocy4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vZGV0ZWN0aW9u
X3VuaXR0ZXN0LnB5OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
aGVja291dC9zY20vZ2l0LnB5OgorICAgICAgICAoR2l0LnJldmlzaW9uc19jaGFuZ2luZ19maWxl
KTogQ29udmVydCBmaWx0ZXIgaXRlcmF0b3IgdG8gbGlzdC4KKyAgICAgICAgKEdpdC5wcmVwZW5k
X3N2bl9yZXZpc2lvbik6IFBhdGNoZXMgbmVlZCB0byBiZSBieXRlcy4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtLnB5OiBJbXBvcnQgdW5pY29kZS4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX3VuaXR0
ZXN0LnB5OiBVc2UgZnVsbCBpbXBvcnQgcGF0aHMsCisgICAgICAgIGRpZmZlcmVudGlhdGUgYmV0
d2VlbiBiaW5hcnkgYW5kIHRleHQgZmlsZXMsIHJlcGxhY2UgYXNzZXJ0SXRlbXNFcXVhbCB3aXRo
IHNvcnRlZCwKKyAgICAgICAgbGlzdCBmaXggcmVnZXhlcyBvbiBieXRlIGFycmF5cy4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc3R1Yl9yZXBvc2l0b3J5
LnB5OiBVc2UgZnVsbCBpbXBvcnQgcGF0aHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvc2NtL3N0dWJfcmVwb3NpdG9yeV91bml0dGVzdC5weTogVXNlIGZ1bGwg
aW1wb3J0IHBhdGhzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0
L3NjbS9zdm4ucHk6IFVzZSBmdWxsIGltcG9ydCBwYXRocy4KKyAgICAgICAgKFNWTi5kaWZmX2Zv
cl9yZXZpc2lvbik6IERpZmYgZm9yIHJldmlzaW9uIHNob3VsZCBiZSBieXRlIGFycmF5LgorICAg
ICAgICAoU1ZOLnByb3BnZXQpOiBVc2UgUHl0aG9uIDMgY29tcGF0aWJsZSBlbmNvZGluZy4KKwog
MjAxOS0xMC0yMiAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW2V3c10gU3RhdHVzIGJ1YmJsZSBzaG91bGQgc2hvdyBwcmV2aW91cyBmYWlsdXJlcyBpZiBh
bnkgaW4gY2FzZSBwYXRjaCBpcyBza2lwcGVkCkluZGV4OiBUb29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHktcHl0aG9uMwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHkt
cHl0aG9uMwkocmV2aXNpb24gMjUxMzg0KQorKysgVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5
LXB5dGhvbjMJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDkgQEAgUFlUSE9OM19DT01QQVRJ
QkxFX0RJUkVDVE9SSUVTID0gWwogICAnd2Via2l0cHkuY29tbW9uLm5ldCcsCiAgICd3ZWJraXRw
eS5jb21tb24ud2F0Y2hsaXN0JywKIF0KK1NMT1dfRElSRUNUT1JJRVMgPSBbCisgICAgJ3dlYmtp
dHB5LmNvbW1vbi5jaGVja291dC5zY20nLAorXQogCiAKIGRlZiBtYWluKCk6CkBAIC01Miw2ICs1
NSwxMSBAQCBkZWYgbWFpbigpOgogICAgICAgICBkZWZhdWx0PUZhbHNlLCBhY3Rpb249J3N0b3Jl
X3RydWUnLAogICAgICAgICBoZWxwPSdTdG9wIG9uIGZpcnN0IGZhaWwgb3IgZXJyb3InLAogICAg
ICkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAnLWEnLCAnLS1hbGwnLAorICAg
ICAgICBkZWZhdWx0PUZhbHNlLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICBoZWxwPSdF
bmFibGVzIFNDTSB0ZXN0cywgd2hpY2ggYXJlIHNsb3cgYW5kIHNvIGRpc2FibGUgYnkgZGVmYXVs
dCcsCisgICAgKQogCiAgICAgaWYgbGVuKFBZVEhPTjNfQ09NUEFUSUJMRV9ESVJFQ1RPUklFUykg
PT0gMToKICAgICAgICAgY29tcGF0aWJsZV9kaXJlY3Rvcmllc19yZWFkYWJsZSA9IFBZVEhPTjNf
Q09NUEFUSUJMRV9ESVJFQ1RPUklFU1swXQpAQCAtNjcsNiArNzUsMTAgQEAgZGVmIG1haW4oKToK
ICAgICApCiAgICAgb3B0aW9ucyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKIAorICAgIGlmIG9wdGlv
bnMuYWxsOgorICAgICAgICBmb3IgbW9kdWxlIGluIFNMT1dfRElSRUNUT1JJRVM6CisgICAgICAg
ICAgICBvcHRpb25zLm1vZHVsZXNfdG9fdGVzdC5hcHBlbmQobW9kdWxlKQorCiAgICAgcm9vdCA9
IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKQogCiAgICAgc3VpdGUg
PSB1bml0dGVzdC5UZXN0U3VpdGUoKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvc2NtL2RldGVjdGlvbi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vZGV0ZWN0aW9uLnB5CShyZXZpc2lvbiAyNTEz
ODQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vZGV0ZWN0
aW9uLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw5ICszMiw5IEBAIGltcG9ydCBsb2dnaW5nCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCiAK
LWZyb20gLnN2biBpbXBvcnQgU1ZOCi1mcm9tIC5naXQgaW1wb3J0IEdpdAotZnJvbSAuc3R1Yl9y
ZXBvc2l0b3J5IGltcG9ydCBTdHViUmVwb3NpdG9yeQorZnJvbSB3ZWJraXRweS5jb21tb24uY2hl
Y2tvdXQuc2NtLnN2biBpbXBvcnQgU1ZOCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5z
Y20uZ2l0IGltcG9ydCBHaXQKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5zdHVi
X3JlcG9zaXRvcnkgaW1wb3J0IFN0dWJSZXBvc2l0b3J5CiAKIF9sb2cgPSBsb2dnaW5nLmdldExv
Z2dlcihfX25hbWVfXykKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL2RldGVjdGlvbl91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vZGV0ZWN0aW9uX3VuaXR0ZXN0LnB5CShy
ZXZpc2lvbiAyNTEzODQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vZGV0ZWN0aW9uX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3
IEBACiAKIGltcG9ydCB1bml0dGVzdAogCi1mcm9tIC5kZXRlY3Rpb24gaW1wb3J0IFNDTURldGVj
dG9yCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uZGV0ZWN0aW9uIGltcG9ydCBT
Q01EZXRlY3RvcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBp
bXBvcnQgTW9ja0ZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRp
dmVfbW9jayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
Lm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKSW5kZXg6IFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9naXQucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2dpdC5weQkocmV2aXNpb24gMjUx
Mzg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2dpdC5w
eQkod29ya2luZyBjb3B5KQpAQCAtMzQsOSArMzQsMTAgQEAgaW1wb3J0IHJlCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgU2NyaXB0RXJyb3IKIAotZnJvbSAu
Y29tbWl0bWVzc2FnZSBpbXBvcnQgQ29tbWl0TWVzc2FnZQotZnJvbSAuc2NtIGltcG9ydCBBdXRo
ZW50aWNhdGlvbkVycm9yLCBTQ00sIGNvbW1pdF9lcnJvcl9oYW5kbGVyCi1mcm9tIC5zdm4gaW1w
b3J0IFNWTlJlcG9zaXRvcnkKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5jb21t
aXRtZXNzYWdlIGltcG9ydCBDb21taXRNZXNzYWdlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVj
a291dC5zY20uc2NtIGltcG9ydCBBdXRoZW50aWNhdGlvbkVycm9yLCBTQ00sIGNvbW1pdF9lcnJv
cl9oYW5kbGVyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc3ZuIGltcG9ydCBT
Vk5SZXBvc2l0b3J5Citmcm9tIHdlYmtpdHB5LmNvbW1vbi51bmljb2RlX2NvbXBhdGliaWxpdHkg
aW1wb3J0IGRlY29kZV9mb3IsIGVuY29kZV9pZl9uZWNlc3NhcnkKIAogX2xvZyA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKF9fbmFtZV9fKQogCkBAIC0yNTEsNyArMjUyLDcgQEAgY2xhc3MgR2l0KFNDTSwg
U1ZOUmVwb3NpdG9yeSk6CiAgICAgZGVmIHJldmlzaW9uc19jaGFuZ2luZ19maWxlKHNlbGYsIHBh
dGgsIGxpbWl0PTUpOgogICAgICAgICAjIGdpdCByZXYtbGlzdCBoZWFkIC0tcmVtb3ZlLWVtcHR5
IC0tbGltaXQ9NSAtLSBwYXRoIHdvdWxkIGJlIGVxdWl2YWxlbnQuCiAgICAgICAgIGNvbW1pdF9p
ZHMgPSBzZWxmLl9ydW5fZ2l0KFsibG9nIiwgIi0tcmVtb3ZlLWVtcHR5IiwgIi0tcHJldHR5PWZv
cm1hdDolSCIsICItJXMiICUgbGltaXQsICItLSIsIHBhdGhdKS5zcGxpdGxpbmVzKCkKLSAgICAg
ICAgcmV0dXJuIGZpbHRlcihsYW1iZGEgcmV2aXNpb246IHJldmlzaW9uLCBtYXAoc2VsZi5zdm5f
cmV2aXNpb25fZnJvbV9naXRfY29tbWl0LCBjb21taXRfaWRzKSkKKyAgICAgICAgcmV0dXJuIGxp
c3QoZmlsdGVyKGxhbWJkYSByZXZpc2lvbjogcmV2aXNpb24sIG1hcChzZWxmLnN2bl9yZXZpc2lv
bl9mcm9tX2dpdF9jb21taXQsIGNvbW1pdF9pZHMpKSkKIAogICAgIGRlZiBjb25mbGljdGVkX2Zp
bGVzKHNlbGYpOgogICAgICAgICAjIFdlIGRvIG5vdCBuZWVkIHRvIHBhc3MgZGVjb2RlX291dHB1
dCBmb3IgdGhpcyBkaWZmIGNvbW1hbmQKQEAgLTMzMSw3ICszMzIsNyBAQCBjbGFzcyBHaXQoU0NN
LCBTVk5SZXBvc2l0b3J5KToKICAgICAgICAgaWYgbm90IHJldmlzaW9uOgogICAgICAgICAgICAg
cmV0dXJuIGRpZmYKIAotICAgICAgICByZXR1cm4gIlN1YnZlcnNpb24gUmV2aXNpb246ICIgKyBy
ZXZpc2lvbiArICdcbicgKyBkaWZmCisgICAgICAgIHJldHVybiBlbmNvZGVfaWZfbmVjZXNzYXJ5
KCJTdWJ2ZXJzaW9uIFJldmlzaW9uOiAiKSArIGVuY29kZV9pZl9uZWNlc3NhcnkocmV2aXNpb24p
ICsgZW5jb2RlX2lmX25lY2Vzc2FyeSgnXG4nKSArIGVuY29kZV9pZl9uZWNlc3NhcnkoZGlmZikK
IAogICAgIGRlZiBjcmVhdGVfcGF0Y2goc2VsZiwgZ2l0X2NvbW1pdD1Ob25lLCBjaGFuZ2VkX2Zp
bGVzPU5vbmUsIGdpdF9pbmRleD1GYWxzZSk6CiAgICAgICAgICIiIlJldHVybnMgYSBieXRlIGFy
cmF5IChzdHIoKSkgcmVwcmVzZW50aW5nIHRoZSBwYXRjaCBmaWxlLgpJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbS5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtLnB5CShyZXZpc2lv
biAyNTEzODQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20v
c2NtLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBAIGltcG9ydCBzeXMKIAogZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBTY3Jp
cHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZp
bGVTeXN0ZW0KK2Zyb20gd2Via2l0cHkuY29tbW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBv
cnQgdW5pY29kZQogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fdW5pdHRlc3Qu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQv
c2NtL3NjbV91bml0dGVzdC5weQkocmV2aXNpb24gMjUxMzg0KQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV91bml0dGVzdC5weQkod29ya2luZyBjb3B5
KQpAQCAtNTMsMTAgKzUzLDExIEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lz
dGVtX20KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBP
dXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sg
aW1wb3J0IE1vY2tFeGVjdXRpdmUKIGZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNpb24gaW1wb3J0
IFZlcnNpb24KLWZyb20gLmdpdCBpbXBvcnQgR2l0LCBBbWJpZ3VvdXNDb21taXRFcnJvcgotZnJv
bSAuZGV0ZWN0aW9uIGltcG9ydCBkZXRlY3Rfc2NtX3N5c3RlbQotZnJvbSAuc2NtIGltcG9ydCBT
Q00sIENoZWNrb3V0TmVlZHNVcGRhdGUsIGNvbW1pdF9lcnJvcl9oYW5kbGVyLCBBdXRoZW50aWNh
dGlvbkVycm9yCi1mcm9tIC5zdm4gaW1wb3J0IFNWTgorZnJvbSB3ZWJraXRweS5jb21tb24uY2hl
Y2tvdXQuc2NtLmdpdCBpbXBvcnQgR2l0LCBBbWJpZ3VvdXNDb21taXRFcnJvcgorZnJvbSB3ZWJr
aXRweS5jb21tb24uY2hlY2tvdXQuc2NtLmRldGVjdGlvbiBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0
ZW0KK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5zY20gaW1wb3J0IFNDTSwgQ2hl
Y2tvdXROZWVkc1VwZGF0ZSwgY29tbWl0X2Vycm9yX2hhbmRsZXIsIEF1dGhlbnRpY2F0aW9uRXJy
b3IKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5zdm4gaW1wb3J0IFNWTgorZnJv
bSB3ZWJraXRweS5jb21tb24udW5pY29kZV9jb21wYXRpYmlsaXR5IGltcG9ydCBkZWNvZGVfaWZf
bmVjZXNzYXJ5CiAKIAogIyBXZSBjYWNoZSB0aGUgbW9jayBTVk4gcmVwbyBzbyB0aGF0IHdlIGRv
bid0IGNyZWF0ZSBpdCBhZ2FpbiBmb3IgZWFjaCBjYWxsIHRvIGFuIFNWTlRlc3Qgb3IgR2l0VGVz
dCB0ZXN0XyBtZXRob2QuCkBAIC0xMDMsMTMgKzEwNCwxNiBAQCBkZWYgcnVuX3NpbGVudChhcmdz
LCBjd2Q9Tm9uZSk6CiBkZWYgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoZmlsZV9wYXRoLCBjb250
ZW50cywgZW5jb2Rpbmc9InV0Zi04Iik6CiAgICAgaWYgZW5jb2Rpbmc6CiAgICAgICAgIHdpdGgg
Y29kZWNzLm9wZW4oZmlsZV9wYXRoLCAidyIsIGVuY29kaW5nKSBhcyBmaWxlOgotICAgICAgICAg
ICAgZmlsZS53cml0ZShjb250ZW50cykKLSAgICBlbHNlOgotICAgICAgICB3aXRoIG9wZW4oZmls
ZV9wYXRoLCAidyIpIGFzIGZpbGU6Ci0gICAgICAgICAgICBmaWxlLndyaXRlKGNvbnRlbnRzKQor
ICAgICAgICAgICAgcmV0dXJuIGZpbGUud3JpdGUoY29udGVudHMpCisgICAgd2l0aCBvcGVuKGZp
bGVfcGF0aCwgIndiIikgYXMgZmlsZToKKyAgICAgICAgcmV0dXJuIGZpbGUud3JpdGUoY29udGVu
dHMpCiAKIAogZGVmIHJlYWRfZnJvbV9wYXRoKGZpbGVfcGF0aCwgZW5jb2Rpbmc9InV0Zi04Iik6
CisgICAgaWYgbm90IGVuY29kaW5nOgorICAgICAgICB3aXRoIGNvZGVjcy5vcGVuKGZpbGVfcGF0
aCwgInJiIikgYXMgZmlsZToKKyAgICAgICAgICAgIHJldHVybiBmaWxlLnJlYWQoKQorCiAgICAg
d2l0aCBjb2RlY3Mub3BlbihmaWxlX3BhdGgsICJyIiwgZW5jb2RpbmcpIGFzIGZpbGU6CiAgICAg
ICAgIHJldHVybiBmaWxlLnJlYWQoKQogCkBAIC0zMDQsMzMgKzMwOCwzMyBAQCBjbGFzcyBTQ01U
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiBfc2hhcmVkX3Rlc3RfY2hhbmdlZF9m
aWxlcyhzZWxmKToKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmlsZSIs
ICJjaGFuZ2VkIGNvbnRlbnQiKQotICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi5z
Y20uY2hhbmdlZF9maWxlcygpLCBbInRlc3RfZmlsZSJdKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNlbGYuc2NtLmNoYW5nZWRfZmlsZXMoKSwgWyJ0ZXN0X2ZpbGUiXSkKICAgICAgICAgd3Jp
dGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZGlyL3Rlc3RfZmlsZTMiLCAibmV3IHN0dWZmIikK
LSAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNlbGYuc2NtLmNoYW5nZWRfZmlsZXMoKSwg
WyJ0ZXN0X2Rpci90ZXN0X2ZpbGUzIiwgInRlc3RfZmlsZSJdKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNvcnRlZChzZWxmLnNjbS5jaGFuZ2VkX2ZpbGVzKCkpLCBzb3J0ZWQoWyJ0ZXN0X2Rp
ci90ZXN0X2ZpbGUzIiwgInRlc3RfZmlsZSJdKSkKICAgICAgICAgb2xkX2N3ZCA9IG9zLmdldGN3
ZCgpCiAgICAgICAgIG9zLmNoZGlyKCJ0ZXN0X2RpciIpCiAgICAgICAgICMgVmFsaWRhdGUgdGhh
dCBjaGFuZ2VkX2ZpbGVzIGRvZXMgbm90IGNoYW5nZSB3aXRoIG91ciBjd2QsIHNlZSBidWcgMzcw
MTUuCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzZWxmLnNjbS5jaGFuZ2VkX2ZpbGVz
KCksIFsidGVzdF9kaXIvdGVzdF9maWxlMyIsICJ0ZXN0X2ZpbGUiXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzb3J0ZWQoc2VsZi5zY20uY2hhbmdlZF9maWxlcygpKSwgc29ydGVkKFsidGVz
dF9kaXIvdGVzdF9maWxlMyIsICJ0ZXN0X2ZpbGUiXSkpCiAgICAgICAgIG9zLmNoZGlyKG9sZF9j
d2QpCiAKICAgICBkZWYgX3NoYXJlZF90ZXN0X3VudHJhY2tlZF9maWxlcyhzZWxmLCBzY20pOgog
ICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCgidGVzdF9maWxlX25ldyIsICJuZXcgY29u
dGVudCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzY20udW50cmFja2VkX2ZpbGVz
KCksIFsidGVzdF9maWxlX25ldyJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNjbS51bnRy
YWNrZWRfZmlsZXMoKSwgWyJ0ZXN0X2ZpbGVfbmV3Il0pCiAKICAgICAgICAgb3MubWtkaXIoInRl
c3RfZGlyX25ldyIpCiAgICAgICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKG9zLnBhdGguam9p
bigidGVzdF9kaXJfbmV3IiwgInRlc3RfZmlsZV9uZXciKSwgIm5ldyBzdHVmZiIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzY20udW50cmFja2VkX2ZpbGVzKCksIFsidGVzdF9kaXJf
bmV3IiwgInRlc3RfZmlsZV9uZXciXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQo
c2NtLnVudHJhY2tlZF9maWxlcygpKSwgc29ydGVkKFsidGVzdF9kaXJfbmV3IiwgInRlc3RfZmls
ZV9uZXciXSkpCiAKICAgICAgICAgb2xkX2N3ZCA9IG9zLmdldGN3ZCgpCiAgICAgICAgIG9zLmNo
ZGlyKCJ0ZXN0X2Rpcl9uZXciKQogICAgICAgICAjIFZhbGlkYXRlIHRoYXQgdW50cmFja2VkX2Zp
bGVzIGRvIG5vdCBjaGFuZ2Ugd2l0aCBvdXIgY3dkLgotICAgICAgICBzZWxmLmFzc2VydEl0ZW1z
RXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcygpLCBbInRlc3RfZGlyX25ldyIsICJ0ZXN0X2ZpbGVf
bmV3Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcygpLCBb
InRlc3RfZGlyX25ldyIsICJ0ZXN0X2ZpbGVfbmV3Il0pCiAKICAgICAgICAgb3MuY2hkaXIob2xk
X2N3ZCkKIAogICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCgidGVzdF9maWxlX25ldy5w
eWMiLCAibmV3IGlnbm9yZWQgZmlsZSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChz
Y20udW50cmFja2VkX2ZpbGVzKCksIFsidGVzdF9kaXJfbmV3IiwgInRlc3RfZmlsZV9uZXciXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNjbS51bnRyYWNrZWRfZmlsZXMoaW5jbHVk
ZV9pZ25vcmVkX2ZpbGVzPVRydWUpLCBbInRlc3RfZmlsZV9uZXcucHljIiwgInRlc3RfZGlyX25l
dyIsICJ0ZXN0X2ZpbGVfbmV3Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKHNj
bS51bnRyYWNrZWRfZmlsZXMoKSksIHNvcnRlZChbInRlc3RfZGlyX25ldyIsICJ0ZXN0X2ZpbGVf
bmV3Il0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChzY20udW50cmFja2VkX2Zp
bGVzKGluY2x1ZGVfaWdub3JlZF9maWxlcz1UcnVlKSksIHNvcnRlZChbInRlc3RfZmlsZV9uZXcu
cHljIiwgInRlc3RfZGlyX25ldyIsICJ0ZXN0X2ZpbGVfbmV3Il0pKQogCiAgICAgICAgIHNodXRp
bC5ybXRyZWUoInRlc3RfZGlyX25ldyIpCiAgICAgICAgIG9zLnJlbW92ZSgidGVzdF9maWxlX25l
dyIpCkBAIC0zNDAsMTYgKzM0NCwxNiBAQCBjbGFzcyBTQ01UZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmlsZV9uZXciLCAibmV3
IGNvbnRlbnQiKQogICAgICAgICBvcy5ta2RpcigidGVzdF9kaXJfbmV3IikKICAgICAgICAgd3Jp
dGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZGlyX25ldy90ZXN0X2ZpbGVfbmV3IiwgIm5ldyBz
dHVmZiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzY20udW50cmFja2VkX2ZpbGVz
KCksIFsidGVzdF9kaXJfbmV3IiwgInRlc3RfZmlsZV9uZXciXSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzb3J0ZWQoc2NtLnVudHJhY2tlZF9maWxlcygpKSwgc29ydGVkKFsidGVzdF9kaXJf
bmV3IiwgInRlc3RfZmlsZV9uZXciXSkpCiAgICAgICAgIHNjbS5kaXNjYXJkX3VudHJhY2tlZF9m
aWxlcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzY20udW50cmFja2VkX2ZpbGVz
KCksIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNjbS51bnRyYWNrZWRfZmlsZXMoKSwg
W10pCiAKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmlsZV9uZXcucHlj
IiwgIm5ldyBjb250ZW50IikKLSAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNjbS51bnRy
YWNrZWRfZmlsZXMoVHJ1ZSksIFsidGVzdF9maWxlX25ldy5weWMiXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzY20udW50cmFja2VkX2ZpbGVzKFRydWUpLCBbInRlc3RfZmlsZV9uZXcucHlj
Il0pCiAgICAgICAgIHNjbS5kaXNjYXJkX3VudHJhY2tlZF9maWxlcyhkaXNjYXJkX2lnbm9yZWRf
ZmlsZXM9RmFsc2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzY20udW50cmFja2Vk
X2ZpbGVzKFRydWUpLCBbInRlc3RfZmlsZV9uZXcucHljIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcyhUcnVlKSwgWyJ0ZXN0X2ZpbGVfbmV3LnB5YyJdKQog
ICAgICAgICBzY20uZGlzY2FyZF91bnRyYWNrZWRfZmlsZXMoZGlzY2FyZF9pZ25vcmVkX2ZpbGVz
PVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzY20udW50cmFja2VkX2ZpbGVz
KFRydWUpLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzY20udW50cmFja2VkX2ZpbGVz
KFRydWUpLCBbXSkKIAogICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKCJ0ZXN0X2Rpcl9uZXciKToK
ICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoInRlc3RfZGlyX25ldyIpCkBAIC0zNjAsNyArMzY0
LDcgQEAgY2xhc3MgU0NNVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgX3NoYXJl
ZF90ZXN0X2FkZGVkX2ZpbGVzKHNlbGYpOgogICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0
aCgidGVzdF9maWxlIiwgImNoYW5nZWQgY29udGVudCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRl
bXNFcXVhbChzZWxmLnNjbS5hZGRlZF9maWxlcygpLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLnNjbS5hZGRlZF9maWxlcygpLCBbXSkKIAogICAgICAgICB3cml0ZV9pbnRvX2Zp
bGVfYXRfcGF0aCgiYWRkZWRfZmlsZSIsICJuZXcgc3R1ZmYiKQogICAgICAgICBzZWxmLnNjbS5h
ZGQoImFkZGVkX2ZpbGUiKQpAQCAtMzc3LDExICszODEsMTEgQEAgY2xhc3MgU0NNVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGFkZGVkX2ZpbGVzID0gc2VsZi5zY20uYWRkZWRfZmls
ZXMoKQogICAgICAgICBpZiAiYWRkZWRfZGlyIiBpbiBhZGRlZF9maWxlczoKICAgICAgICAgICAg
IGFkZGVkX2ZpbGVzLnJlbW92ZSgiYWRkZWRfZGlyIikKLSAgICAgICAgc2VsZi5hc3NlcnRJdGVt
c0VxdWFsKGFkZGVkX2ZpbGVzLCBbImFkZGVkX2Rpci9hZGRlZF9maWxlMiIsICJhZGRlZF9maWxl
IiwgImFkZGVkX2ZpbGUzIiwgImFkZGVkX2ZpbGU0Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc29ydGVkKGFkZGVkX2ZpbGVzKSwgc29ydGVkKFsiYWRkZWRfZGlyL2FkZGVkX2ZpbGUyIiwg
ImFkZGVkX2ZpbGUiLCAiYWRkZWRfZmlsZTMiLCAiYWRkZWRfZmlsZTQiXSkpCiAKICAgICAgICAg
IyBUZXN0IGFsc28gdG8gbWFrZSBzdXJlIGRpc2NhcmRfd29ya2luZ19kaXJlY3RvcnlfY2hhbmdl
cyByZW1vdmVzIGFkZGVkIGZpbGVzCiAgICAgICAgIHNlbGYuc2NtLmRpc2NhcmRfd29ya2luZ19k
aXJlY3RvcnlfY2hhbmdlcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzZWxmLnNj
bS5hZGRlZF9maWxlcygpLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNjbS5h
ZGRlZF9maWxlcygpLCBbXSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmV4aXN0
cygiYWRkZWRfZmlsZSIpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3Rz
KCJhZGRlZF9maWxlMyIpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3Rz
KCJhZGRlZF9maWxlNCIpKQpAQCAtMzkyLDI4ICszOTYsMjggQEAgY2xhc3MgU0NNVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGNoYW5nZWRfZmlsZXMgPSBzZWxmLnNjbS5jaGFuZ2Vk
X2ZpbGVzX2Zvcl9yZXZpc2lvbigzKQogICAgICAgICBpZiAidGVzdF9kaXIiIGluIGNoYW5nZWRf
ZmlsZXM6CiAgICAgICAgICAgICBjaGFuZ2VkX2ZpbGVzLnJlbW92ZSgidGVzdF9kaXIiKQotICAg
ICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoY2hhbmdlZF9maWxlcywgWyJ0ZXN0X2Rpci90ZXN0
X2ZpbGUzIiwgInRlc3RfZmlsZSJdKQotICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2Vs
Zi5zY20uY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24oNCksIFsidGVzdF9maWxlIiwgInRlc3Rf
ZmlsZTIiXSkgICMgR2l0IGFuZCBTVk4gcmV0dXJuIGRpZmZlcmVudCBvcmRlcnMuCi0gICAgICAg
IHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzZWxmLnNjbS5jaGFuZ2VkX2ZpbGVzX2Zvcl9yZXZpc2lv
bigyKSwgWyJ0ZXN0X2ZpbGUiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQoY2hh
bmdlZF9maWxlcyksIHNvcnRlZChbInRlc3RfZGlyL3Rlc3RfZmlsZTMiLCAidGVzdF9maWxlIl0p
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChzZWxmLnNjbS5jaGFuZ2VkX2ZpbGVz
X2Zvcl9yZXZpc2lvbig0KSksIHNvcnRlZChbInRlc3RfZmlsZSIsICJ0ZXN0X2ZpbGUyIl0pKSAg
IyBHaXQgYW5kIFNWTiByZXR1cm4gZGlmZmVyZW50IG9yZGVycy4KKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLnNjbS5jaGFuZ2VkX2ZpbGVzX2Zvcl9yZXZpc2lvbigyKSwgWyJ0ZXN0X2Zp
bGUiXSkKIAogICAgIGRlZiBfc2hhcmVkX3Rlc3RfY29udGVudHNfYXRfcmV2aXNpb24oc2VsZik6
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zY20uY29udGVudHNfYXRfcmV2aXNpb24o
InRlc3RfZmlsZSIsIDMpLCAidGVzdDF0ZXN0MiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2VsZi5zY20uY29udGVudHNfYXRfcmV2aXNpb24oInRlc3RfZmlsZSIsIDQpLCAidGVzdDF0ZXN0
MnRlc3QzXG4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2NtLmNvbnRlbnRzX2F0
X3JldmlzaW9uKCJ0ZXN0X2ZpbGUiLCAzKSwgYiJ0ZXN0MXRlc3QyIikKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLnNjbS5jb250ZW50c19hdF9yZXZpc2lvbigidGVzdF9maWxlIiwgNCks
IGIidGVzdDF0ZXN0MnRlc3QzXG4iKQogCiAgICAgICAgICMgVmVyaWZ5IHRoYXQgY29udGVudHNf
YXRfcmV2aXNpb24gcmV0dXJucyBhIGJ5dGUgYXJyYXksIGFrYSBzdHIoKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLnNjbS5jb250ZW50c19hdF9yZXZpc2lvbigidGVzdF9maWxlIiwg
NSksIHUibGF0aW4xIHRlc3Q6IFx1MDBBMFxuIi5lbmNvZGUoImxhdGluMSIpKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNlbGYuc2NtLmNvbnRlbnRzX2F0X3JldmlzaW9uKCJ0ZXN0X2ZpbGUy
IiwgNSksIHUidXRmLTggdGVzdDogXHUwMEEwXG4iLmVuY29kZSgidXRmLTgiKSkKIAotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2NtLmNvbnRlbnRzX2F0X3JldmlzaW9uKCJ0ZXN0X2Zp
bGUyIiwgNCksICJzZWNvbmQgZmlsZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5z
Y20uY29udGVudHNfYXRfcmV2aXNpb24oInRlc3RfZmlsZTIiLCA0KSwgYiJzZWNvbmQgZmlsZSIp
CiAgICAgICAgICMgRmlsZXMgd2hpY2ggZG9uJ3QgZXhpc3Q6CiAgICAgICAgICMgQ3VycmVudGx5
IHdlIHJhaXNlIGluc3RlYWQgb2YgcmV0dXJuaW5nIE5vbmUgYmVjYXVzZSBkZXRlY3RpbmcgdGhl
IGRpZmZlcmVuY2UgYmV0d2VlbgogICAgICAgICAjICJmaWxlIG5vdCBmb3VuZCIgYW5kIGFueSBv
dGhlciBlcnJvciBzZWVtcyBpbXBvc3NpYmxlIHdpdGggc3ZuIChnaXQgc2VlbXMgdG8gZXhwb3Nl
IHN1Y2ggdGhyb3VnaCB0aGUgcmV0dXJuIGNvZGUpLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhTY3JpcHRFcnJvciwgc2VsZi5zY20uY29udGVudHNfYXRfcmV2aXNpb24sICJ0ZXN0X2ZpbGUy
IiwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IsIHNlbGYuc2NtLmNv
bnRlbnRzX2F0X3JldmlzaW9uLCAiZG9lc19ub3RfZXhpc3QiLCAyKQorICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhTY3JpcHRFcnJvciwgc2VsZi5zY20uY29udGVudHNfYXRfcmV2aXNpb24sIGIi
dGVzdF9maWxlMiIsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yLCBz
ZWxmLnNjbS5jb250ZW50c19hdF9yZXZpc2lvbiwgYiJkb2VzX25vdF9leGlzdCIsIDIpCiAKICAg
ICBkZWYgX3NoYXJlZF90ZXN0X3JldmlzaW9uc19jaGFuZ2luZ19maWxlKHNlbGYpOgotICAgICAg
ICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi5zY20ucmV2aXNpb25zX2NoYW5naW5nX2ZpbGUo
InRlc3RfZmlsZSIpLCBbNSwgNCwgMywgMl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVh
bChzZWxmLnNjbS5yZXZpc2lvbnNfY2hhbmdpbmdfZmlsZSgibm9uX2V4aXN0ZW50X2ZpbGUiKSwg
W10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKHNlbGYuc2NtLnJldmlzaW9uc19j
aGFuZ2luZ19maWxlKCJ0ZXN0X2ZpbGUiKSksIHNvcnRlZChbNSwgNCwgMywgMl0pKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2NtLnJldmlzaW9uc19jaGFuZ2luZ19maWxlKCJub25f
ZXhpc3RlbnRfZmlsZSIpLCBbXSkKIAogICAgIGRlZiBfc2hhcmVkX3Rlc3RfY29tbWl0dGVyX2Vt
YWlsX2Zvcl9yZXZpc2lvbihzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNj
bS5jb21taXR0ZXJfZW1haWxfZm9yX3JldmlzaW9uKDMpLCBnZXRwYXNzLmdldHVzZXIoKSkgICMg
Q29tbWl0dGVyICJlbWFpbCIgd2lsbCBiZSB0aGUgY3VycmVudCB1c2VyCkBAIC00MjcsMTAgKzQz
MSwxMCBAQCBjbGFzcyBTQ01UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgX3NoYXJl
ZF90ZXN0X2RpZmZfZm9yX3JldmlzaW9uKHNlbGYpOgogICAgICAgICAjIFBhdGNoIGZvcm1hdHMg
YXJlIHNsaWdodGx5IGRpZmZlcmVudCBiZXR3ZWVuIHN2biBhbmQgZ2l0LCBzbyBqdXN0IHJlZ2V4
cCBmb3IgdGhpbmdzIHdlIGtub3cgc2hvdWxkIGJlIHRoZXJlLgogICAgICAgICByM19wYXRjaCA9
IHNlbGYuc2NtLmRpZmZfZm9yX3JldmlzaW9uKDQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhw
TWF0Y2hlcyhyM19wYXRjaCwgJ3Rlc3QzJykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBN
YXRjaGVzKHIzX3BhdGNoLCAndGVzdDQnKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNo
ZXMocjNfcGF0Y2gsICd0ZXN0MicpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhz
ZWxmLnNjbS5kaWZmX2Zvcl9yZXZpc2lvbigzKSwgJ3Rlc3QyJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRSZWdleHBNYXRjaGVzKHIzX3BhdGNoLCBiJ3Rlc3QzJykKKyAgICAgICAgc2VsZi5hc3NlcnRO
b3RSZWdleHBNYXRjaGVzKHIzX3BhdGNoLCBiJ3Rlc3Q0JykKKyAgICAgICAgc2VsZi5hc3NlcnRS
ZWdleHBNYXRjaGVzKHIzX3BhdGNoLCBiJ3Rlc3QyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdl
eHBNYXRjaGVzKHNlbGYuc2NtLmRpZmZfZm9yX3JldmlzaW9uKDMpLCBiJ3Rlc3QyJykKIAogICAg
IGRlZiBfc2hhcmVkX3Rlc3Rfc3ZuX2FwcGx5X2dpdF9wYXRjaChzZWxmKToKICAgICAgICAgc2Vs
Zi5fc2V0dXBfd2Via2l0dG9vbHNfc2NyaXB0c19zeW1saW5rKHNlbGYuc2NtKQpAQCAtNDU4LDcg
KzQ2Miw3IEBAIEhjbVY/ZDAwMDAxCiAgICAgICAgIHNlbGYuY2hlY2tvdXQuYXBwbHlfcGF0Y2go
c2VsZi5fY3JlYXRlX3BhdGNoKGdpdF9iaW5hcnlfYWRkaXRpb24pKQogICAgICAgICBhZGRlZCA9
IHJlYWRfZnJvbV9wYXRoKCdmaXp6YnV6ejcuZ2lmJywgZW5jb2Rpbmc9Tm9uZSkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCg1MTIsIGxlbihhZGRlZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShhZGRlZC5zdGFydHN3aXRoKCdHSUY4OWEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFk
ZGVkLnN0YXJ0c3dpdGgoYidHSUY4OWEnKSkKICAgICAgICAgc2VsZi5hc3NlcnRJbignZml6emJ1
eno3LmdpZicsIHNlbGYuc2NtLmNoYW5nZWRfZmlsZXMoKSkKIAogICAgICAgICAjIFRoZSBmaWxl
IGFscmVhZHkgZXhpc3RzLgpAQCAtNDg1LDcgKzQ4OSw3IEBAIHB0VWwtWkc8JWF+I0x3a0lXdiZx
IUtTQ0g3dFE4Y0pEaXcrfEdWP00KICIiIgogICAgICAgICBzZWxmLmNoZWNrb3V0LmFwcGx5X3Bh
dGNoKHNlbGYuX2NyZWF0ZV9wYXRjaChnaXRfYmluYXJ5X21vZGlmaWNhdGlvbikpCiAgICAgICAg
IG1vZGlmaWVkID0gcmVhZF9mcm9tX3BhdGgoJ2ZpenpidXp6Ny5naWYnLCBlbmNvZGluZz1Ob25l
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdmb29iYXJcbicsIG1vZGlmaWVkKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGInZm9vYmFyXG4nLCBtb2RpZmllZCkKICAgICAgICAgc2VsZi5h
c3NlcnRJbignZml6emJ1eno3LmdpZicsIHNlbGYuc2NtLmNoYW5nZWRfZmlsZXMoKSkKIAogICAg
ICAgICAjIEFwcGx5aW5nIHRoZSBzYW1lIG1vZGlmaWNhdGlvbiBzaG91bGQgZmFpbC4KQEAgLTcw
OCw3ICs3MTIsNyBAQCBjbGFzcyBTVk5UZXN0KFNDTVRlc3QpOgogICAgICAgICBzY20gPSBkZXRl
Y3Rfc2NtX3N5c3RlbSh0ZXN0X2Rpcl9wYXRoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNj
bS5jaGVja291dF9yb290LCBzZWxmLnN2bl9jaGVja291dF9wYXRoKSAgIyBTYW5pdHkgY2hlY2sg
dGhhdCBkZXRlY3Rpb24gd29ya2VkIHJpZ2h0LgogICAgICAgICBhY3R1YWxfcGF0Y2hfY29udGVu
dHMgPSBzY20uY3JlYXRlX3BhdGNoKCkKLSAgICAgICAgZXhwZWN0ZWRfcGF0Y2hfY29udGVudHMg
PSAiIiJJbmRleDogdGVzdF9kaXIyL3Rlc3RfZmlsZTIKKyAgICAgICAgZXhwZWN0ZWRfcGF0Y2hf
Y29udGVudHMgPSBiIiIiSW5kZXg6IHRlc3RfZGlyMi90ZXN0X2ZpbGUyCiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt
LS0gdGVzdF9kaXIyL3Rlc3RfZmlsZTJcdChub25leGlzdGVudCkKICsrKyB0ZXN0X2RpcjIvdGVz
dF9maWxlMlx0KHdvcmtpbmcgY29weSkKQEAgLTkxNCwxNyArOTE4LDE2IEBAIEVORAogCiAgICAg
ZGVmIHRlc3RfcHJvcHNldF9wcm9wZ2V0KHNlbGYpOgogICAgICAgICBmaWxlcGF0aCA9IG9zLnBh
dGguam9pbihzZWxmLnN2bl9jaGVja291dF9wYXRoLCAidGVzdF9maWxlIikKLSAgICAgICAgZXhw
ZWN0ZWRfbWltZV90eXBlID0gIngtYXBwbGljYXRpb24vZm9vLWJhciIKLSAgICAgICAgc2VsZi5z
Y20ucHJvcHNldCgic3ZuOm1pbWUtdHlwZSIsIGV4cGVjdGVkX21pbWVfdHlwZSwgZmlsZXBhdGgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfbWltZV90eXBlLCBzZWxmLnNjbS5w
cm9wZ2V0KCJzdm46bWltZS10eXBlIiwgZmlsZXBhdGgpKQorICAgICAgICBzZWxmLnNjbS5wcm9w
c2V0KCJzdm46bWltZS10eXBlIiwgIngtYXBwbGljYXRpb24vZm9vLWJhciIsIGZpbGVwYXRoKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIieC1hcHBsaWNhdGlvbi9mb28tYmFyIiwgc2VsZi5z
Y20ucHJvcGdldCgic3ZuOm1pbWUtdHlwZSIsIGZpbGVwYXRoKSkKIAogICAgIGRlZiB0ZXN0X3No
b3dfaGVhZChzZWxmKToKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmls
ZSIsIHUiSGVsbG8hIiwgInV0Zi04IikKICAgICAgICAgU1ZOVGVzdFJlcG9zaXRvcnkuX3N2bl9j
b21taXQoImZvdXJ0aCBjb21taXQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJIZWxsbyEi
LCBzZWxmLnNjbS5zaG93X2hlYWQoJ3Rlc3RfZmlsZScpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGIiSGVsbG8hIiwgc2VsZi5zY20uc2hvd19oZWFkKCd0ZXN0X2ZpbGUnKSkKIAogICAgIGRl
ZiB0ZXN0X3Nob3dfaGVhZF9iaW5hcnkoc2VsZik6Ci0gICAgICAgIGRhdGEgPSAiXDI0NCIKKyAg
ICAgICAgZGF0YSA9IGIiXDI0NCIKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoImJp
bmFyeV9maWxlIiwgZGF0YSwgZW5jb2Rpbmc9Tm9uZSkKICAgICAgICAgc2VsZi5zY20uYWRkKCJi
aW5hcnlfZmlsZSIpCiAgICAgICAgIHNlbGYuc2NtLmNvbW1pdF93aXRoX21lc3NhZ2UoImEgdGVz
dCBjb21taXQiKQpAQCAtMTAyNCw3ICsxMDI3LDcgQEAgY2xhc3MgR2l0VGVzdChTQ01UZXN0KToK
ICAgICAgICAgc2NtLmNvbW1pdF9sb2NhbGx5X3dpdGhfbWVzc2FnZSgnbWVzc2FnZScpCiAKICAg
ICAgICAgcGF0Y2ggPSBzY20uY3JlYXRlX3BhdGNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RS
ZWdleHBNYXRjaGVzKHBhdGNoLCByJ1N1YnZlcnNpb24gUmV2aXNpb246JykKKyAgICAgICAgc2Vs
Zi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ1N1YnZlcnNpb24gUmV2aXNpb246JykK
IAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9wYXRjaF93aXRoX2dpdF9pbmRleChzZWxmKToKICAgICAg
ICAgIyBGaXJzdCBjaGFuZ2UuIENvbW1pdHRlZC4KQEAgLTEwNDEsMTAgKzEwNDQsMTAgQEAgY2xh
c3MgR2l0VGVzdChTQ01UZXN0KToKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoJ3Rl
c3RfZmlsZV9jb21taXQxJywgJ3RoaXJkIHVuaWNvcm4nKQogCiAgICAgICAgIHBhdGNoID0gc2Nt
LmNyZWF0ZV9wYXRjaChOb25lLCBOb25lLCBUcnVlKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4
cE1hdGNoZXMocGF0Y2gsIHInLWZpcnN0IGNhdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhw
TWF0Y2hlcyhwYXRjaCwgcidcK3NlY29uZCBkb2cnKQotICAgICAgICBzZWxmLmFzc2VydE5vdFJl
Z2V4cE1hdGNoZXMocGF0Y2gsIHIndGhpcmQnKQotICAgICAgICBzZWxmLmFzc2VydE5vdFJlZ2V4
cE1hdGNoZXMocGF0Y2gsIHIndW5pY29ybicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0
Y2hlcyhwYXRjaCwgYictZmlyc3QgY2F0JykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRj
aGVzKHBhdGNoLCBiJ1xcK3NlY29uZCBkb2cnKQorICAgICAgICBzZWxmLmFzc2VydE5vdFJlZ2V4
cE1hdGNoZXMocGF0Y2gsIGIndGhpcmQnKQorICAgICAgICBzZWxmLmFzc2VydE5vdFJlZ2V4cE1h
dGNoZXMocGF0Y2gsIGIndW5pY29ybicpCiAKICAgICBkZWYgdGVzdF9vcmRlcmZpbGUoc2VsZik6
CiAgICAgICAgIG9zLm1rZGlyKCJUb29scyIpCkBAIC0xMDgzLDIyICsxMDg2LDIyIEBAIGNsYXNz
IEdpdFRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHNjbS5jb21taXRfbG9jYWxseV93aXRoX21lc3Nh
Z2UoJ21lc3NhZ2UnKQogCiAgICAgICAgIHBhdGNoID0gc2NtLmNyZWF0ZV9wYXRjaCgpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2gocidUb29scy9DaGFuZ2VMb2cnLCBwYXRjaCku
c3RhcnQoKSA8IHJlLnNlYXJjaChyJ1Rvb2xzL0NoYW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChyJ1dlYnNpdGVzL0NoYW5nZUxvZycs
IHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKHInV2Vic2l0ZXMvQ2hhbmdlRmlsZScsIHBhdGNo
KS5zdGFydCgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKHInU291cmNlL0No
YW5nZUxvZycsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKHInU291cmNlL0NoYW5nZUZpbGUn
LCBwYXRjaCkuc3RhcnQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChyJ0xh
eW91dFRlc3RzL0NoYW5nZUxvZycsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKHInTGF5b3V0
VGVzdHMvQ2hhbmdlRmlsZScsIHBhdGNoKS5zdGFydCgpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShyZS5zZWFyY2gocidTb3VyY2UvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkgPCByZS5z
ZWFyY2gocidMYXlvdXRUZXN0cy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChyJ1Rvb2xzL0NoYW5nZUxvZycsIHBhdGNoKS5zdGFy
dCgpIDwgcmUuc2VhcmNoKHInTGF5b3V0VGVzdHMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2gocidXZWJzaXRlcy9DaGFuZ2VMb2cn
LCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChyJ0xheW91dFRlc3RzL0NoYW5nZUxvZycsIHBh
dGNoKS5zdGFydCgpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2gocidTb3Vy
Y2UvQ2hhbmdlRmlsZScsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKHInTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5z
ZWFyY2gocidUb29scy9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkgPCByZS5zZWFyY2gocidM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKHJlLnNlYXJjaChyJ1dlYnNpdGVzL0NoYW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSA8
IHJlLnNlYXJjaChyJ0xheW91dFRlc3RzL0NoYW5nZUxvZycsIHBhdGNoKS5zdGFydCgpKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2gocidTb3VyY2UvQ2hhbmdlRmlsZScsIHBh
dGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKHInTGF5b3V0VGVzdHMvQ2hhbmdlRmlsZScsIHBhdGNo
KS5zdGFydCgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKHInVG9vbHMvQ2hh
bmdlRmlsZScsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKHInTGF5b3V0VGVzdHMvQ2hhbmdl
RmlsZScsIHBhdGNoKS5zdGFydCgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNo
KHInV2Vic2l0ZXMvQ2hhbmdlRmlsZScsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKHInTGF5
b3V0VGVzdHMvQ2hhbmdlRmlsZScsIHBhdGNoKS5zdGFydCgpKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUocmUuc2VhcmNoKGInVG9vbHMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkgPCByZS5z
ZWFyY2goYidUb29scy9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShyZS5zZWFyY2goYidXZWJzaXRlcy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQo
KSA8IHJlLnNlYXJjaChiJ1dlYnNpdGVzL0NoYW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChiJ1NvdXJjZS9DaGFuZ2VMb2cnLCBwYXRj
aCkuc3RhcnQoKSA8IHJlLnNlYXJjaChiJ1NvdXJjZS9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0
KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2goYidMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cnLCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChiJ0xheW91dFRlc3RzL0NoYW5nZUZp
bGUnLCBwYXRjaCkuc3RhcnQoKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNo
KGInU291cmNlL0NoYW5nZUxvZycsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKGInTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShyZS5zZWFyY2goYidUb29scy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJj
aChiJ0xheW91dFRlc3RzL0NoYW5nZUxvZycsIHBhdGNoKS5zdGFydCgpKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUocmUuc2VhcmNoKGInV2Vic2l0ZXMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0
KCkgPCByZS5zZWFyY2goYidMYXlvdXRUZXN0cy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSkK
KworICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKGInU291cmNlL0NoYW5nZUZpbGUn
LCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChiJ0xheW91dFRlc3RzL0NoYW5nZUxvZycsIHBh
dGNoKS5zdGFydCgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKGInVG9vbHMv
Q2hhbmdlRmlsZScsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKGInTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFy
Y2goYidXZWJzaXRlcy9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkgPCByZS5zZWFyY2goYidM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSkKKworICAgICAgICBzZWxmLmFz
c2VydFRydWUocmUuc2VhcmNoKGInU291cmNlL0NoYW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSA8
IHJlLnNlYXJjaChiJ0xheW91dFRlc3RzL0NoYW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChiJ1Rvb2xzL0NoYW5nZUZpbGUnLCBwYXRj
aCkuc3RhcnQoKSA8IHJlLnNlYXJjaChiJ0xheW91dFRlc3RzL0NoYW5nZUZpbGUnLCBwYXRjaCku
c3RhcnQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChiJ1dlYnNpdGVzL0No
YW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChiJ0xheW91dFRlc3RzL0NoYW5n
ZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSkKIAogICAgIGRlZiB0ZXN0X2V4aXN0cyhzZWxmKToKICAg
ICAgICAgc2NtID0gc2VsZi51bnRyYWNraW5nX3NjbQpAQCAtMTEyNiw4ICsxMTI5LDggQEAgY2xh
c3MgR2l0VGVzdChTQ01UZXN0KToKICAgICAgICAgc2NtLmNvbW1pdF9sb2NhbGx5X3dpdGhfbWVz
c2FnZSgnbWVzc2FnZScpCiAKICAgICAgICAgcGF0Y2ggPSBzY20uY3JlYXRlX3BhdGNoKCkKLSAg
ICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3JlbmFtZSBmcm9tICcp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcidyZW5hbWUgdG8g
JykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ3JlbmFtZSBm
cm9tICcpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYidyZW5h
bWUgdG8gJykKIAogICAgIGRlZiB0ZXN0X3VudHJhY2tlZF9maWxlcyhzZWxmKToKICAgICAgICAg
c2VsZi5fc2hhcmVkX3Rlc3RfdW50cmFja2VkX2ZpbGVzKHNlbGYudHJhY2tpbmdfc2NtKQpAQCAt
MTIwNyw4ICsxMjEwLDggQEAgY2xhc3MgR2l0U1ZOVGVzdChTQ01UZXN0KToKICAgICAgICAgZGlm
Zl90b19jb21tb25fYmFzZSA9IF9naXRfZGlmZihzZWxmLnNjbS5yZW1vdGVfYnJhbmNoX3JlZigp
ICsgJy4uJykKICAgICAgICAgZGlmZl90b19tZXJnZV9iYXNlID0gX2dpdF9kaWZmKHNlbGYuc2Nt
LnJlbW90ZV9tZXJnZV9iYXNlKCkpCiAKLSAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRj
aGVzKGRpZmZfdG9fY29tbW9uX2Jhc2UsIHInZm9vJykKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdl
eHBNYXRjaGVzKGRpZmZfdG9fbWVyZ2VfYmFzZSwgcidmb28nKQorICAgICAgICBzZWxmLmFzc2Vy
dE5vdFJlZ2V4cE1hdGNoZXMoZGlmZl90b19jb21tb25fYmFzZSwgYidmb28nKQorICAgICAgICBz
ZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMoZGlmZl90b19tZXJnZV9iYXNlLCBiJ2ZvbycpCiAKICAg
ICBkZWYgdGVzdF9yZWJhc2VfaW5fcHJvZ3Jlc3Moc2VsZik6CiAgICAgICAgIHN2bl90ZXN0X2Zp
bGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5zdm5fY2hlY2tvdXRfcGF0aCwgJ3Rlc3RfZmlsZScpCkBA
IC0xMjk2LDcgKzEyOTksNyBAQCBjbGFzcyBHaXRTVk5UZXN0KFNDTVRlc3QpOgogCiAgICAgZGVm
IHRlc3RfcmV2aXNpb25zX2NoYW5naW5nX2ZpbGVzX3dpdGhfbG9jYWxfY29tbWl0KHNlbGYpOgog
ICAgICAgICBzZWxmLl9vbmVfbG9jYWxfY29tbWl0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRJdGVt
c0VxdWFsKHNlbGYuc2NtLnJldmlzaW9uc19jaGFuZ2luZ19maWxlKCd0ZXN0X2ZpbGVfY29tbWl0
MScpLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNjbS5yZXZpc2lvbnNfY2hh
bmdpbmdfZmlsZSgndGVzdF9maWxlX2NvbW1pdDEnKSwgW10pCiAKICAgICBkZWYgdGVzdF9jb21t
aXRfd2l0aF9tZXNzYWdlKHNlbGYpOgogICAgICAgICBzZWxmLl9vbmVfbG9jYWxfY29tbWl0X3Bs
dXNfd29ya2luZ19jb3B5X2NoYW5nZXMoKQpAQCAtMTQxMywxNSArMTQxNiwxNSBAQCBjbGFzcyBH
aXRTVk5UZXN0KFNDTVRlc3QpOgogICAgIGRlZiB0ZXN0X2NyZWF0ZV9wYXRjaF9sb2NhbF9wbHVz
X3dvcmtpbmdfY29weShzZWxmKToKICAgICAgICAgc2VsZi5fb25lX2xvY2FsX2NvbW1pdF9wbHVz
X3dvcmtpbmdfY29weV9jaGFuZ2VzKCkKICAgICAgICAgcGF0Y2ggPSBzZWxmLnNjbS5jcmVhdGVf
cGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIndGVzdF9m
aWxlX2NvbW1pdDEnKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIn
dGVzdF9maWxlX2NvbW1pdDInKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0
Y2gsIGIndGVzdF9maWxlX2NvbW1pdDEnKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNo
ZXMocGF0Y2gsIGIndGVzdF9maWxlX2NvbW1pdDInKQogCiAgICAgZGVmIHRlc3RfY3JlYXRlX3Bh
dGNoKHNlbGYpOgogICAgICAgICBzZWxmLl9vbmVfbG9jYWxfY29tbWl0X3BsdXNfd29ya2luZ19j
b3B5X2NoYW5nZXMoKQogICAgICAgICBwYXRjaCA9IHNlbGYuc2NtLmNyZWF0ZV9wYXRjaCgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcid0ZXN0X2ZpbGVfY29tbWl0
MicpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcid0ZXN0X2ZpbGVf
Y29tbWl0MScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcidTdWJ2
ZXJzaW9uIFJldmlzaW9uOiA1JykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBh
dGNoLCBiJ3Rlc3RfZmlsZV9jb21taXQyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRj
aGVzKHBhdGNoLCBiJ3Rlc3RfZmlsZV9jb21taXQxJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdl
eHBNYXRjaGVzKHBhdGNoLCBiJ1N1YnZlcnNpb24gUmV2aXNpb246IDUnKQogCiAgICAgZGVmIHRl
c3RfY3JlYXRlX3BhdGNoX2FmdGVyX21lcmdlKHNlbGYpOgogICAgICAgICBydW5fY29tbWFuZChb
J2dpdCcsICdjaGVja291dCcsICctYicsICdkdW1teS1icmFuY2gnLCAndHJ1bmt+MyddKQpAQCAt
MTQyOSwxMyArMTQzMiwxMyBAQCBjbGFzcyBHaXRTVk5UZXN0KFNDTVRlc3QpOgogICAgICAgICBy
dW5fY29tbWFuZChbJ2dpdCcsICdtZXJnZScsICd0cnVuayddKQogCiAgICAgICAgIHBhdGNoID0g
c2VsZi5zY20uY3JlYXRlX3BhdGNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVz
KHBhdGNoLCByJ3Rlc3RfZmlsZV9jb21taXQxJykKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBN
YXRjaGVzKHBhdGNoLCByJ1N1YnZlcnNpb24gUmV2aXNpb246IDUnKQorICAgICAgICBzZWxmLmFz
c2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIGIndGVzdF9maWxlX2NvbW1pdDEnKQorICAgICAgICBz
ZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIGInU3VidmVyc2lvbiBSZXZpc2lvbjogNScp
CiAKICAgICBkZWYgdGVzdF9jcmVhdGVfcGF0Y2hfd2l0aF9jaGFuZ2VkX2ZpbGVzKHNlbGYpOgog
ICAgICAgICBzZWxmLl9vbmVfbG9jYWxfY29tbWl0X3BsdXNfd29ya2luZ19jb3B5X2NoYW5nZXMo
KQogICAgICAgICBwYXRjaCA9IHNlbGYuc2NtLmNyZWF0ZV9wYXRjaChjaGFuZ2VkX2ZpbGVzPVsn
dGVzdF9maWxlX2NvbW1pdDInXSkKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBh
dGNoLCByJ3Rlc3RfZmlsZV9jb21taXQyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRj
aGVzKHBhdGNoLCBiJ3Rlc3RfZmlsZV9jb21taXQyJykKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9w
YXRjaF93aXRoX3JtX2FuZF9jaGFuZ2VkX2ZpbGVzKHNlbGYpOgogICAgICAgICBzZWxmLl9vbmVf
bG9jYWxfY29tbWl0X3BsdXNfd29ya2luZ19jb3B5X2NoYW5nZXMoKQpAQCAtMTQ0Nyw0NiArMTQ1
MCw0NiBAQCBjbGFzcyBHaXRTVk5UZXN0KFNDTVRlc3QpOgogICAgIGRlZiB0ZXN0X2NyZWF0ZV9w
YXRjaF9naXRfY29tbWl0KHNlbGYpOgogICAgICAgICBzZWxmLl90d29fbG9jYWxfY29tbWl0cygp
CiAgICAgICAgIHBhdGNoID0gc2VsZi5zY20uY3JlYXRlX3BhdGNoKGdpdF9jb21taXQ9IkhFQURe
IikKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3Rlc3RfZmlsZV9j
b21taXQxJykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3Rl
c3RfZmlsZV9jb21taXQyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNo
LCBiJ3Rlc3RfZmlsZV9jb21taXQxJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRj
aGVzKHBhdGNoLCBiJ3Rlc3RfZmlsZV9jb21taXQyJykKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9w
YXRjaF9naXRfY29tbWl0X3JhbmdlKHNlbGYpOgogICAgICAgICBzZWxmLl90aHJlZV9sb2NhbF9j
b21taXRzKCkKICAgICAgICAgcGF0Y2ggPSBzZWxmLnNjbS5jcmVhdGVfcGF0Y2goZ2l0X2NvbW1p
dD0iSEVBRH4yLi5IRUFEIikKLSAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBh
dGNoLCByJ3Rlc3RfZmlsZV9jb21taXQwJykKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRj
aGVzKHBhdGNoLCByJ3Rlc3RfZmlsZV9jb21taXQyJykKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdl
eHBNYXRjaGVzKHBhdGNoLCByJ3Rlc3RfZmlsZV9jb21taXQxJykKKyAgICAgICAgc2VsZi5hc3Nl
cnROb3RSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ3Rlc3RfZmlsZV9jb21taXQwJykKKyAgICAgICAg
c2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ3Rlc3RfZmlsZV9jb21taXQyJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ3Rlc3RfZmlsZV9jb21taXQx
JykKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9wYXRjaF93b3JraW5nX2NvcHlfb25seShzZWxmKToK
ICAgICAgICAgc2VsZi5fb25lX2xvY2FsX2NvbW1pdF9wbHVzX3dvcmtpbmdfY29weV9jaGFuZ2Vz
KCkKICAgICAgICAgcGF0Y2ggPSBzZWxmLnNjbS5jcmVhdGVfcGF0Y2goZ2l0X2NvbW1pdD0iSEVB
RC4uLi4iKQotICAgICAgICBzZWxmLmFzc2VydE5vdFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIndGVz
dF9maWxlX2NvbW1pdDEnKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gs
IHIndGVzdF9maWxlX2NvbW1pdDInKQorICAgICAgICBzZWxmLmFzc2VydE5vdFJlZ2V4cE1hdGNo
ZXMocGF0Y2gsIGIndGVzdF9maWxlX2NvbW1pdDEnKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4
cE1hdGNoZXMocGF0Y2gsIGIndGVzdF9maWxlX2NvbW1pdDInKQogCiAgICAgZGVmIHRlc3RfY3Jl
YXRlX3BhdGNoX211bHRpcGxlX2xvY2FsX2NvbW1pdHMoc2VsZik6CiAgICAgICAgIHNlbGYuX3R3
b19sb2NhbF9jb21taXRzKCkKICAgICAgICAgcGF0Y2ggPSBzZWxmLnNjbS5jcmVhdGVfcGF0Y2go
KQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIndGVzdF9maWxlX2Nv
bW1pdDInKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIndGVzdF9m
aWxlX2NvbW1pdDEnKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIGIn
dGVzdF9maWxlX2NvbW1pdDInKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0
Y2gsIGIndGVzdF9maWxlX2NvbW1pdDEnKQogCiAgICAgZGVmIHRlc3RfY3JlYXRlX3BhdGNoX25v
dF9zeW5jZWQoc2VsZik6CiAgICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2NoZWNrb3V0Jywg
Jy1iJywgJ215LWJyYW5jaCcsICd0cnVua34zJ10pCiAgICAgICAgIHNlbGYuX3R3b19sb2NhbF9j
b21taXRzKCkKICAgICAgICAgcGF0Y2ggPSBzZWxmLnNjbS5jcmVhdGVfcGF0Y2goKQotICAgICAg
ICBzZWxmLmFzc2VydE5vdFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIndGVzdF9maWxlMicpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcid0ZXN0X2ZpbGVfY29tbWl0Micp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcid0ZXN0X2ZpbGVfY29t
bWl0MScpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYid0ZXN0
X2ZpbGUyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ3Rlc3Rf
ZmlsZV9jb21taXQyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCBi
J3Rlc3RfZmlsZV9jb21taXQxJykKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9iaW5hcnlfcGF0Y2go
c2VsZik6CiAgICAgICAgICMgQ3JlYXRlIGEgZ2l0IGJpbmFyeSBwYXRjaCBhbmQgY2hlY2sgdGhl
IGNvbnRlbnRzLgogICAgICAgICB0ZXN0X2ZpbGVfbmFtZSA9ICdiaW5hcnlfZmlsZScKICAgICAg
ICAgdGVzdF9maWxlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5naXRfY2hlY2tvdXRfcGF0aCwg
dGVzdF9maWxlX25hbWUpCi0gICAgICAgIGZpbGVfY29udGVudHMgPSAnJy5qb2luKG1hcChjaHIs
IHJhbmdlKDI1NikpKQorICAgICAgICBmaWxlX2NvbnRlbnRzID0gYnl0ZXMobGlzdChyYW5nZSgy
NTYpKSkKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgodGVzdF9maWxlX3BhdGgsIGZp
bGVfY29udGVudHMsIGVuY29kaW5nPU5vbmUpCiAgICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0Jywg
J2FkZCcsIHRlc3RfZmlsZV9uYW1lXSkKICAgICAgICAgcGF0Y2ggPSBzZWxmLnNjbS5jcmVhdGVf
cGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHInXG5saXRl
cmFsIDBcbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcidcbmxp
dGVyYWwgMjU2XG4nKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIGIn
XG5saXRlcmFsIDBcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwg
YidcbmxpdGVyYWwgMjU2XG4nKQogCiAgICAgICAgICMgQ2hlY2sgaWYgd2UgY2FuIGFwcGx5IHRo
ZSBjcmVhdGVkIHBhdGNoLgogICAgICAgICBydW5fY29tbWFuZChbJ2dpdCcsICdybScsICctZics
IHRlc3RfZmlsZV9uYW1lXSkKQEAgLTE1MDAsOCArMTUwMyw4IEBAIGNsYXNzIEdpdFNWTlRlc3Qo
U0NNVGVzdCk6CiAgICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2NvbW1pdCcsICctbScsICdi
aW5hcnkgZGlmZiddKQogCiAgICAgICAgIHBhdGNoX2Zyb21fbG9jYWxfY29tbWl0ID0gc2VsZi5z
Y20uY3JlYXRlX3BhdGNoKCdIRUFEJykKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVz
KHBhdGNoX2Zyb21fbG9jYWxfY29tbWl0LCByJ1xubGl0ZXJhbCAwXG4nKQotICAgICAgICBzZWxm
LmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2hfZnJvbV9sb2NhbF9jb21taXQsIHInXG5saXRlcmFs
IDI1NlxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoX2Zyb21fbG9j
YWxfY29tbWl0LCBiJ1xubGl0ZXJhbCAwXG4nKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1h
dGNoZXMocGF0Y2hfZnJvbV9sb2NhbF9jb21taXQsIGInXG5saXRlcmFsIDI1NlxuJykKIAogICAg
IGRlZiB0ZXN0X2NoYW5nZWRfZmlsZXNfbG9jYWxfcGx1c193b3JraW5nX2NvcHkoc2VsZik6CiAg
ICAgICAgIHNlbGYuX29uZV9sb2NhbF9jb21taXRfcGx1c193b3JraW5nX2NvcHlfY2hhbmdlcygp
CkBAIC0xNjQ0LDExICsxNjQ3LDExIEBAIGNsYXNzIEdpdFNWTlRlc3QoU0NNVGVzdCk6CiAKICAg
ICBkZWYgdGVzdF9zaG93X2hlYWQoc2VsZik6CiAgICAgICAgIHNlbGYuX3R3b19sb2NhbF9jb21t
aXRzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgibW9yZSB0ZXN0IGNvbnRlbnQiLCBzZWxm
LnNjbS5zaG93X2hlYWQoJ3Rlc3RfZmlsZV9jb21taXQxJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoYiJtb3JlIHRlc3QgY29udGVudCIsIHNlbGYuc2NtLnNob3dfaGVhZCgndGVzdF9maWxl
X2NvbW1pdDEnKSkKIAogICAgIGRlZiB0ZXN0X3Nob3dfaGVhZF9iaW5hcnkoc2VsZik6CiAgICAg
ICAgIHNlbGYuX3R3b19sb2NhbF9jb21taXRzKCkKLSAgICAgICAgZGF0YSA9ICJcMjQ0IgorICAg
ICAgICBkYXRhID0gYiJcMjQ0IgogICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCgiYmlu
YXJ5X2ZpbGUiLCBkYXRhLCBlbmNvZGluZz1Ob25lKQogICAgICAgICBzZWxmLnNjbS5hZGQoImJp
bmFyeV9maWxlIikKICAgICAgICAgc2VsZi5zY20uY29tbWl0X2xvY2FsbHlfd2l0aF9tZXNzYWdl
KCJhIHRlc3QgY29tbWl0IikKQEAgLTE2NTYsNyArMTY1OSw3IEBAIGNsYXNzIEdpdFNWTlRlc3Qo
U0NNVGVzdCk6CiAKICAgICBkZWYgdGVzdF9kaWZmX2Zvcl9maWxlKHNlbGYpOgogICAgICAgICBz
ZWxmLl90d29fbG9jYWxfY29tbWl0cygpCi0gICAgICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRo
KCd0ZXN0X2ZpbGVfY29tbWl0MScsICJVcGRhdGVkIiwgZW5jb2Rpbmc9Tm9uZSkKKyAgICAgICAg
d3JpdGVfaW50b19maWxlX2F0X3BhdGgoJ3Rlc3RfZmlsZV9jb21taXQxJywgYiJVcGRhdGVkIiwg
ZW5jb2Rpbmc9Tm9uZSkKIAogICAgICAgICBkaWZmID0gc2VsZi5zY20uZGlmZl9mb3JfZmlsZSgn
dGVzdF9maWxlX2NvbW1pdDEnKQogICAgICAgICBjYWNoZWRfZGlmZiA9IHNlbGYuc2NtLmRpZmZf
Zm9yX2ZpbGUoJ3Rlc3RfZmlsZV9jb21taXQxJykKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zdHViX3JlcG9zaXRvcnkucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3N0dWJfcmVwb3NpdG9y
eS5weQkocmV2aXNpb24gMjUxMzg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y2hlY2tvdXQvc2NtL3N0dWJfcmVwb3NpdG9yeS5weQkod29ya2luZyBjb3B5KQpAQCAtMjksNyAr
MjksNyBAQCBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IGpzb24KIAogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KLWZyb20gLnNjbSBpbXBvcnQg
U0NNCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc2NtIGltcG9ydCBTQ00KIAog
X2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc3R1Yl9yZXBvc2l0b3J5X3VuaXR0ZXN0LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS9zdHViX3JlcG9zaXRvcnlfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI1MTM4NCkKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zdHViX3JlcG9zaXRvcnlfdW5p
dHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcgQEAKIGltcG9ydCB1bml0dGVz
dAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGZpbGVzeXN0ZW1fbW9jawot
ZnJvbSAuc3R1Yl9yZXBvc2l0b3J5IGltcG9ydCBTdHViUmVwb3NpdG9yeQorZnJvbSB3ZWJraXRw
eS5jb21tb24uY2hlY2tvdXQuc2NtLnN0dWJfcmVwb3NpdG9yeSBpbXBvcnQgU3R1YlJlcG9zaXRv
cnkKIAogbW9ja19zdHViX3JlcG9zaXRvcnlfanNvbiA9IHsnYnJhbmNoJzogJ3RydW5rJywgJ2lk
JzogJzI3Mzg0OTknfQogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20vc3ZuLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS9zdm4ucHkJKHJldmlzaW9uIDI1MTM4NCkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zdm4ucHkJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDEzICszNiwxNCBAQCBpbXBvcnQgc3RyaW5nCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGVtcGZp
bGUKIAorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLnNjbSBpbXBvcnQgQXV0aGVu
dGljYXRpb25FcnJvciwgU0NNLCBjb21taXRfZXJyb3JfaGFuZGxlcgogZnJvbSB3ZWJraXRweS5j
b21tb24uY29uZmlnLnVybHMgaW1wb3J0IHN2bl9zZXJ2ZXJfaG9zdCwgc3ZuX3NlcnZlcl9yZWFs
bQogZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUsIFNjcmlwdEVy
cm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi53ZWJraXRfZmluZGVyIGltcG9ydCBXZWJLaXRGaW5k
ZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNpb24gaW1wb3J0IFZlcnNpb24KK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBvcnQgZW5jb2RlX2lmX25lY2Vz
c2FyeQogCi1mcm9tIC5zY20gaW1wb3J0IEF1dGhlbnRpY2F0aW9uRXJyb3IsIFNDTSwgY29tbWl0
X2Vycm9yX2hhbmRsZXIKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCkBA
IC0zMjEsNyArMzIyLDcgQEAgY2xhc3MgU1ZOKFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAKICAgICBk
ZWYgZGlmZl9mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24pOgogICAgICAgICAjIEZJWE1FOiBU
aGlzIHNob3VsZCBwcm9iYWJseSB1c2UgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdAotICAgICAgICBy
ZXR1cm4gc2VsZi5fcnVuX3N2bihbJ2RpZmYnLCAnLWMnLCByZXZpc2lvbl0pCisgICAgICAgIHJl
dHVybiBzZWxmLl9ydW5fc3ZuKFsnZGlmZicsICctYycsIHJldmlzaW9uXSwgZGVjb2RlX291dHB1
dD1GYWxzZSkKIAogICAgIGRlZiBfYm9ndXNfZGlyX25hbWUoc2VsZik6CiAgICAgICAgIHJuZCA9
ICcnLmpvaW4ocmFuZG9tLnNhbXBsZShzdHJpbmcuYXNjaWlfbGV0dGVycywgNSkpCkBAIC00MTEs
NCArNDEyLDQgQEAgY2xhc3MgU1ZOKFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAKICAgICBkZWYgcHJv
cGdldChzZWxmLCBwbmFtZSwgcGF0aCk6CiAgICAgICAgIGRpciwgYmFzZSA9IG9zLnBhdGguc3Bs
aXQocGF0aCkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9zdm4oWydwZ2V0JywgcG5hbWUsIGJh
c2VdLCBjd2Q9ZGlyKS5lbmNvZGUoJ3V0Zi04JykucnN0cmlwKCJcbiIpCisgICAgICAgIHJldHVy
biBlbmNvZGVfaWZfbmVjZXNzYXJ5KHNlbGYuX3J1bl9zdm4oWydwZ2V0JywgcG5hbWUsIGJhc2Vd
LCBjd2Q9ZGlyKS5yc3RyaXAoIlxuIikpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381859</attachid>
            <date>2019-10-24 16:52:20 -0700</date>
            <delta_ts>2019-10-25 02:11:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203277-20191024165218.patch</filename>
            <type>text/plain</type>
            <size>36786</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MTU1NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDE5LTEwLTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHN1cHBvcnQgaW4gd2Via2l0cHkuY29tbW9uLmNo
ZWNrb3V0LnNjbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzMjc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMzogQWRkIHdlYmtpdHB5LmNvbW1vbi5j
aGVja291dC5zY20sIGFkZCAtLWFsbCBmbGFnLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NoZWNrb3V0L3NjbS9kZXRlY3Rpb24ucHk6IFVzZSBmdWxsIGltcG9ydCBwYXRocy4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vZGV0ZWN0aW9u
X3VuaXR0ZXN0LnB5OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
aGVja291dC9zY20vZ2l0LnB5OgorICAgICAgICAoR2l0LnJldmlzaW9uc19jaGFuZ2luZ19maWxl
KTogQ29udmVydCBmaWx0ZXIgaXRlcmF0b3IgdG8gbGlzdC4KKyAgICAgICAgKEdpdC5wcmVwZW5k
X3N2bl9yZXZpc2lvbik6IFBhdGNoZXMgbmVlZCB0byBiZSBieXRlcy4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtLnB5OiBJbXBvcnQgdW5pY29kZS4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX3VuaXR0
ZXN0LnB5OiBVc2UgZnVsbCBpbXBvcnQgcGF0aHMsCisgICAgICAgIGRpZmZlcmVudGlhdGUgYmV0
d2VlbiBiaW5hcnkgYW5kIHRleHQgZmlsZXMsIHJlcGxhY2UgYXNzZXJ0SXRlbXNFcXVhbCB3aXRo
IHNvcnRlZCwKKyAgICAgICAgbGlzdCBmaXggcmVnZXhlcyBvbiBieXRlIGFycmF5cy4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc3R1Yl9yZXBvc2l0b3J5
LnB5OiBVc2UgZnVsbCBpbXBvcnQgcGF0aHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvc2NtL3N0dWJfcmVwb3NpdG9yeV91bml0dGVzdC5weTogVXNlIGZ1bGwg
aW1wb3J0IHBhdGhzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0
L3NjbS9zdm4ucHk6IFVzZSBmdWxsIGltcG9ydCBwYXRocy4KKyAgICAgICAgKFNWTi5kaWZmX2Zv
cl9yZXZpc2lvbik6IERpZmYgZm9yIHJldmlzaW9uIHNob3VsZCBiZSBieXRlIGFycmF5LgorICAg
ICAgICAoU1ZOLnByb3BnZXQpOiBVc2UgUHl0aG9uIDMgY29tcGF0aWJsZSBlbmNvZGluZy4KKwog
MjAxOS0xMC0yNCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
Rm9ybWFsaXplIFBERiBzbmFwc2hvdCBBUEkuCkluZGV4OiBUb29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHktcHl0aG9uMwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHkt
cHl0aG9uMwkocmV2aXNpb24gMjUxNTU2KQorKysgVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5
LXB5dGhvbjMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDExIEBAIGltcG9ydCBvcwogaW1w
b3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0
LnNjbS5zY21fdW5pdHRlc3QgaW1wb3J0IFNDTVRlc3QKKwogCiBQWVRIT04zX0NPTVBBVElCTEVf
RElSRUNUT1JJRVMgPSBbCisgICd3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtJywKICAgJ3dl
YmtpdHB5LmNvbW1vbi5jb25maWcnLAogICAnd2Via2l0cHkuY29tbW9uLnN5c3RlbScsCiAgICd3
ZWJraXRweS5jb21tb24udGhyZWFkJywKQEAgLTM5LDYgKzQyLDE3IEBAIFBZVEhPTjNfQ09NUEFU
SUJMRV9ESVJFQ1RPUklFUyA9IFsKICAgJ3dlYmtpdHB5LmNvbW1vbi53YXRjaGxpc3QnLAogICAn
d2Via2l0cHkucmVzdWx0cycsCiBdCitTTE9XX1RFU1RTID0gWworICAgIFNDTVRlc3QsCitdCisK
K2RlZiBpc19zbG93KGNhbmRpZGF0ZSk6CisgICAgaWYgaXNpbnN0YW5jZShjYW5kaWRhdGUsIHVu
aXR0ZXN0LnN1aXRlLlRlc3RTdWl0ZSk6CisgICAgICAgIHJldHVybiBhbnkoaXNfc2xvdyh0ZXN0
KSBmb3IgdGVzdCBpbiBjYW5kaWRhdGUpCisgICAgZm9yIHRlc3QgaW4gU0xPV19URVNUUzoKKyAg
ICAgICAgaWYgaXNpbnN0YW5jZShjYW5kaWRhdGUsIHRlc3QpOgorICAgICAgICAgICAgcmV0dXJu
IFRydWUKKyAgICByZXR1cm4gRmFsc2UKIAogCiBkZWYgbWFpbigpOgpAQCAtNTMsNiArNjcsMTEg
QEAgZGVmIG1haW4oKToKICAgICAgICAgZGVmYXVsdD1GYWxzZSwgYWN0aW9uPSdzdG9yZV90cnVl
JywKICAgICAgICAgaGVscD0nU3RvcCBvbiBmaXJzdCBmYWlsIG9yIGVycm9yJywKICAgICApCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgJy1hJywgJy0tYWxsJywKKyAgICAgICAg
ZGVmYXVsdD1GYWxzZSwgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgaGVscD0nRW5hYmxl
cyBTQ00gdGVzdHMsIHdoaWNoIGFyZSBzbG93IGFuZCBzbyBkaXNhYmxlIGJ5IGRlZmF1bHQnLAor
ICAgICkKIAogICAgIGlmIGxlbihQWVRIT04zX0NPTVBBVElCTEVfRElSRUNUT1JJRVMpID09IDE6
CiAgICAgICAgIGNvbXBhdGlibGVfZGlyZWN0b3JpZXNfcmVhZGFibGUgPSBQWVRIT04zX0NPTVBB
VElCTEVfRElSRUNUT1JJRVNbMF0KQEAgLTc0LDcgKzkzLDggQEAgZGVmIG1haW4oKToKICAgICBm
b3IgbW9kdWxlX25hbWUgaW4gb3B0aW9ucy5tb2R1bGVzX3RvX3Rlc3Q6CiAgICAgICAgIG1vZHVs
ZV9zdWl0ZSA9IHVuaXR0ZXN0LmRlZmF1bHRUZXN0TG9hZGVyLmRpc2NvdmVyKG9zLnBhdGguam9p
bihyb290LCBtb2R1bGVfbmFtZS5yZXBsYWNlKCcuJywgJy8nKSksIHBhdHRlcm49Jyp0ZXN0LnB5
JywgdG9wX2xldmVsX2Rpcj1yb290KQogICAgICAgICBmb3IgdGVzdCBpbiAobW9kdWxlX3N1aXRl
IG9yIFtdKToKLSAgICAgICAgICAgIHN1aXRlLmFkZFRlc3QodGVzdCkKKyAgICAgICAgICAgIGlm
IG9wdGlvbnMuYWxsIG9yIG5vdCBpc19zbG93KHRlc3QpOgorICAgICAgICAgICAgICAgIHN1aXRl
LmFkZFRlc3QodGVzdCkKIAogICAgIGlmIHN1aXRlLmNvdW50VGVzdENhc2VzKCkgPT0gMDoKICAg
ICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdObyBtYXRjaGluZyB0ZXN0cyBmb3VuZC4nKQpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2RldGVjdGlvbi5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9z
Y20vZGV0ZWN0aW9uLnB5CShyZXZpc2lvbiAyNTE1NTYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9zY20vZGV0ZWN0aW9uLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw5ICszMiw5IEBAIGltcG9ydCBsb2dnaW5nCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCiAKLWZyb20gLnN2biBpbXBvcnQgU1ZOCi1mcm9t
IC5naXQgaW1wb3J0IEdpdAotZnJvbSAuc3R1Yl9yZXBvc2l0b3J5IGltcG9ydCBTdHViUmVwb3Np
dG9yeQorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLnN2biBpbXBvcnQgU1ZOCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uZ2l0IGltcG9ydCBHaXQKK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5zdHViX3JlcG9zaXRvcnkgaW1wb3J0IFN0dWJSZXBv
c2l0b3J5CiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIApJbmRleDogVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2RldGVjdGlvbl91bml0dGVz
dC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vZGV0ZWN0aW9uX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNTE1NTYpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vZGV0ZWN0aW9uX3VuaXR0ZXN0LnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAKIGltcG9ydCB1bml0dGVzdAogCi1m
cm9tIC5kZXRlY3Rpb24gaW1wb3J0IFNDTURldGVjdG9yCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5j
aGVja291dC5zY20uZGV0ZWN0aW9uIGltcG9ydCBTQ01EZXRlY3RvcgogZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4ZWN1dGl2
ZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1
dENhcHR1cmUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS9naXQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL2dpdC5weQkocmV2aXNpb24gMjUxNTU2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2dpdC5weQkod29ya2luZyBjb3B5KQpAQCAtMzQsOSAr
MzQsMTAgQEAgaW1wb3J0IHJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQg
bWVtb2l6ZWQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4
ZWN1dGl2ZSwgU2NyaXB0RXJyb3IKIAotZnJvbSAuY29tbWl0bWVzc2FnZSBpbXBvcnQgQ29tbWl0
TWVzc2FnZQotZnJvbSAuc2NtIGltcG9ydCBBdXRoZW50aWNhdGlvbkVycm9yLCBTQ00sIGNvbW1p
dF9lcnJvcl9oYW5kbGVyCi1mcm9tIC5zdm4gaW1wb3J0IFNWTlJlcG9zaXRvcnkKK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5jb21taXRtZXNzYWdlIGltcG9ydCBDb21taXRNZXNz
YWdlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc2NtIGltcG9ydCBBdXRoZW50
aWNhdGlvbkVycm9yLCBTQ00sIGNvbW1pdF9lcnJvcl9oYW5kbGVyCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5jaGVja291dC5zY20uc3ZuIGltcG9ydCBTVk5SZXBvc2l0b3J5Citmcm9tIHdlYmtpdHB5
LmNvbW1vbi51bmljb2RlX2NvbXBhdGliaWxpdHkgaW1wb3J0IGRlY29kZV9mb3IsIGVuY29kZV9p
Zl9uZWNlc3NhcnkKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCkBAIC0y
NTEsNyArMjUyLDcgQEAgY2xhc3MgR2l0KFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgZGVmIHJl
dmlzaW9uc19jaGFuZ2luZ19maWxlKHNlbGYsIHBhdGgsIGxpbWl0PTUpOgogICAgICAgICAjIGdp
dCByZXYtbGlzdCBoZWFkIC0tcmVtb3ZlLWVtcHR5IC0tbGltaXQ9NSAtLSBwYXRoIHdvdWxkIGJl
IGVxdWl2YWxlbnQuCiAgICAgICAgIGNvbW1pdF9pZHMgPSBzZWxmLl9ydW5fZ2l0KFsibG9nIiwg
Ii0tcmVtb3ZlLWVtcHR5IiwgIi0tcHJldHR5PWZvcm1hdDolSCIsICItJXMiICUgbGltaXQsICIt
LSIsIHBhdGhdKS5zcGxpdGxpbmVzKCkKLSAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEgcmV2
aXNpb246IHJldmlzaW9uLCBtYXAoc2VsZi5zdm5fcmV2aXNpb25fZnJvbV9naXRfY29tbWl0LCBj
b21taXRfaWRzKSkKKyAgICAgICAgcmV0dXJuIGxpc3QoZmlsdGVyKGxhbWJkYSByZXZpc2lvbjog
cmV2aXNpb24sIG1hcChzZWxmLnN2bl9yZXZpc2lvbl9mcm9tX2dpdF9jb21taXQsIGNvbW1pdF9p
ZHMpKSkKIAogICAgIGRlZiBjb25mbGljdGVkX2ZpbGVzKHNlbGYpOgogICAgICAgICAjIFdlIGRv
IG5vdCBuZWVkIHRvIHBhc3MgZGVjb2RlX291dHB1dCBmb3IgdGhpcyBkaWZmIGNvbW1hbmQKQEAg
LTMzMSw3ICszMzIsNyBAQCBjbGFzcyBHaXQoU0NNLCBTVk5SZXBvc2l0b3J5KToKICAgICAgICAg
aWYgbm90IHJldmlzaW9uOgogICAgICAgICAgICAgcmV0dXJuIGRpZmYKIAotICAgICAgICByZXR1
cm4gIlN1YnZlcnNpb24gUmV2aXNpb246ICIgKyByZXZpc2lvbiArICdcbicgKyBkaWZmCisgICAg
ICAgIHJldHVybiBlbmNvZGVfaWZfbmVjZXNzYXJ5KCJTdWJ2ZXJzaW9uIFJldmlzaW9uOiAiKSAr
IGVuY29kZV9pZl9uZWNlc3NhcnkocmV2aXNpb24pICsgZW5jb2RlX2lmX25lY2Vzc2FyeSgnXG4n
KSArIGVuY29kZV9pZl9uZWNlc3NhcnkoZGlmZikKIAogICAgIGRlZiBjcmVhdGVfcGF0Y2goc2Vs
ZiwgZ2l0X2NvbW1pdD1Ob25lLCBjaGFuZ2VkX2ZpbGVzPU5vbmUsIGdpdF9pbmRleD1GYWxzZSk6
CiAgICAgICAgICIiIlJldHVybnMgYSBieXRlIGFycmF5IChzdHIoKSkgcmVwcmVzZW50aW5nIHRo
ZSBwYXRjaCBmaWxlLgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvc2NtL3NjbS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9zY20vc2NtLnB5CShyZXZpc2lvbiAyNTE1NTYpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw2ICszNSw3IEBAIGltcG9ydCBzeXMKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4
ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KK2Zyb20gd2Via2l0cHkuY29t
bW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBvcnQgdW5pY29kZQogCiBfbG9nID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoX19uYW1lX18pCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS9zY21fdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV91bml0dGVzdC5weQkocmV2aXNp
b24gMjUxNTU2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2Nt
L3NjbV91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtNTMsMTAgKzUzLDExIEBAIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX20KIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUKIGZyb20g
d2Via2l0cHkuY29tbW9uLnZlcnNpb24gaW1wb3J0IFZlcnNpb24KLWZyb20gLmdpdCBpbXBvcnQg
R2l0LCBBbWJpZ3VvdXNDb21taXRFcnJvcgotZnJvbSAuZGV0ZWN0aW9uIGltcG9ydCBkZXRlY3Rf
c2NtX3N5c3RlbQotZnJvbSAuc2NtIGltcG9ydCBTQ00sIENoZWNrb3V0TmVlZHNVcGRhdGUsIGNv
bW1pdF9lcnJvcl9oYW5kbGVyLCBBdXRoZW50aWNhdGlvbkVycm9yCi1mcm9tIC5zdm4gaW1wb3J0
IFNWTgorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLmdpdCBpbXBvcnQgR2l0LCBB
bWJpZ3VvdXNDb21taXRFcnJvcgorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLmRl
dGVjdGlvbiBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0ZW0KK2Zyb20gd2Via2l0cHkuY29tbW9uLmNo
ZWNrb3V0LnNjbS5zY20gaW1wb3J0IFNDTSwgQ2hlY2tvdXROZWVkc1VwZGF0ZSwgY29tbWl0X2Vy
cm9yX2hhbmRsZXIsIEF1dGhlbnRpY2F0aW9uRXJyb3IKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNo
ZWNrb3V0LnNjbS5zdm4gaW1wb3J0IFNWTgorZnJvbSB3ZWJraXRweS5jb21tb24udW5pY29kZV9j
b21wYXRpYmlsaXR5IGltcG9ydCBkZWNvZGVfaWZfbmVjZXNzYXJ5CiAKIAogIyBXZSBjYWNoZSB0
aGUgbW9jayBTVk4gcmVwbyBzbyB0aGF0IHdlIGRvbid0IGNyZWF0ZSBpdCBhZ2FpbiBmb3IgZWFj
aCBjYWxsIHRvIGFuIFNWTlRlc3Qgb3IgR2l0VGVzdCB0ZXN0XyBtZXRob2QuCkBAIC0xMDMsMTMg
KzEwNCwxNiBAQCBkZWYgcnVuX3NpbGVudChhcmdzLCBjd2Q9Tm9uZSk6CiBkZWYgd3JpdGVfaW50
b19maWxlX2F0X3BhdGgoZmlsZV9wYXRoLCBjb250ZW50cywgZW5jb2Rpbmc9InV0Zi04Iik6CiAg
ICAgaWYgZW5jb2Rpbmc6CiAgICAgICAgIHdpdGggY29kZWNzLm9wZW4oZmlsZV9wYXRoLCAidyIs
IGVuY29kaW5nKSBhcyBmaWxlOgotICAgICAgICAgICAgZmlsZS53cml0ZShjb250ZW50cykKLSAg
ICBlbHNlOgotICAgICAgICB3aXRoIG9wZW4oZmlsZV9wYXRoLCAidyIpIGFzIGZpbGU6Ci0gICAg
ICAgICAgICBmaWxlLndyaXRlKGNvbnRlbnRzKQorICAgICAgICAgICAgcmV0dXJuIGZpbGUud3Jp
dGUoY29udGVudHMpCisgICAgd2l0aCBvcGVuKGZpbGVfcGF0aCwgIndiIikgYXMgZmlsZToKKyAg
ICAgICAgcmV0dXJuIGZpbGUud3JpdGUoY29udGVudHMpCiAKIAogZGVmIHJlYWRfZnJvbV9wYXRo
KGZpbGVfcGF0aCwgZW5jb2Rpbmc9InV0Zi04Iik6CisgICAgaWYgbm90IGVuY29kaW5nOgorICAg
ICAgICB3aXRoIGNvZGVjcy5vcGVuKGZpbGVfcGF0aCwgInJiIikgYXMgZmlsZToKKyAgICAgICAg
ICAgIHJldHVybiBmaWxlLnJlYWQoKQorCiAgICAgd2l0aCBjb2RlY3Mub3BlbihmaWxlX3BhdGgs
ICJyIiwgZW5jb2RpbmcpIGFzIGZpbGU6CiAgICAgICAgIHJldHVybiBmaWxlLnJlYWQoKQogCkBA
IC0yODIsNiArMjg2LDEwIEBAIHN2bjogcmVzb3VyY2Ugb3V0IG9mIGRhdGU7IHRyeSB1cGRhdGlu
ZwogCiAjIEdpdFRlc3QgYW5kIFNWTlRlc3QgaW5oZXJpdCBmcm9tIHRoaXMgc28gYW55IHRlc3Rf
IG1ldGhvZHMgaGVyZSB3aWxsIGJlIHJ1biBvbmNlIGZvciB0aGlzIGNsYXNzIGFuZCB0aGVuIG9u
Y2UgZm9yIGVhY2ggc3ViY2xhc3MuCiBjbGFzcyBTQ01UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIo
U0NNVGVzdCwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLnNj
bSA9IE5vbmUKKwogICAgIGRlZiBfY3JlYXRlX3BhdGNoKHNlbGYsIHBhdGNoX2NvbnRlbnRzKToK
ICAgICAgICAgIyBGSVhNRTogVGhpcyBjb2RlIGlzIGJyaXR0bGUgaWYgdGhlIEF0dGFjaG1lbnQg
QVBJIGNoYW5nZXMuCiAgICAgICAgIGF0dGFjaG1lbnQgPSBBdHRhY2htZW50KHsiYnVnX2lkIjog
MTIzNDV9LCBOb25lKQpAQCAtMzA0LDMzICszMTIsMzMgQEAgY2xhc3MgU0NNVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgX3NoYXJlZF90ZXN0X2NoYW5nZWRfZmlsZXMoc2VsZik6
CiAgICAgICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKCJ0ZXN0X2ZpbGUiLCAiY2hhbmdlZCBj
b250ZW50IikKLSAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNlbGYuc2NtLmNoYW5nZWRf
ZmlsZXMoKSwgWyJ0ZXN0X2ZpbGUiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNj
bS5jaGFuZ2VkX2ZpbGVzKCksIFsidGVzdF9maWxlIl0pCiAgICAgICAgIHdyaXRlX2ludG9fZmls
ZV9hdF9wYXRoKCJ0ZXN0X2Rpci90ZXN0X2ZpbGUzIiwgIm5ldyBzdHVmZiIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0SXRlbXNFcXVhbChzZWxmLnNjbS5jaGFuZ2VkX2ZpbGVzKCksIFsidGVzdF9kaXIv
dGVzdF9maWxlMyIsICJ0ZXN0X2ZpbGUiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0
ZWQoc2VsZi5zY20uY2hhbmdlZF9maWxlcygpKSwgc29ydGVkKFsidGVzdF9kaXIvdGVzdF9maWxl
MyIsICJ0ZXN0X2ZpbGUiXSkpCiAgICAgICAgIG9sZF9jd2QgPSBvcy5nZXRjd2QoKQogICAgICAg
ICBvcy5jaGRpcigidGVzdF9kaXIiKQogICAgICAgICAjIFZhbGlkYXRlIHRoYXQgY2hhbmdlZF9m
aWxlcyBkb2VzIG5vdCBjaGFuZ2Ugd2l0aCBvdXIgY3dkLCBzZWUgYnVnIDM3MDE1LgotICAgICAg
ICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi5zY20uY2hhbmdlZF9maWxlcygpLCBbInRlc3Rf
ZGlyL3Rlc3RfZmlsZTMiLCAidGVzdF9maWxlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c29ydGVkKHNlbGYuc2NtLmNoYW5nZWRfZmlsZXMoKSksIHNvcnRlZChbInRlc3RfZGlyL3Rlc3Rf
ZmlsZTMiLCAidGVzdF9maWxlIl0pKQogICAgICAgICBvcy5jaGRpcihvbGRfY3dkKQogCiAgICAg
ZGVmIF9zaGFyZWRfdGVzdF91bnRyYWNrZWRfZmlsZXMoc2VsZiwgc2NtKToKICAgICAgICAgd3Jp
dGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmlsZV9uZXciLCAibmV3IGNvbnRlbnQiKQotICAg
ICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcygpLCBbInRlc3Rf
ZmlsZV9uZXciXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzY20udW50cmFja2VkX2ZpbGVz
KCksIFsidGVzdF9maWxlX25ldyJdKQogCiAgICAgICAgIG9zLm1rZGlyKCJ0ZXN0X2Rpcl9uZXci
KQogICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aChvcy5wYXRoLmpvaW4oInRlc3RfZGly
X25ldyIsICJ0ZXN0X2ZpbGVfbmV3IiksICJuZXcgc3R1ZmYiKQotICAgICAgICBzZWxmLmFzc2Vy
dEl0ZW1zRXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcygpLCBbInRlc3RfZGlyX25ldyIsICJ0ZXN0
X2ZpbGVfbmV3Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKHNjbS51bnRyYWNr
ZWRfZmlsZXMoKSksIHNvcnRlZChbInRlc3RfZGlyX25ldyIsICJ0ZXN0X2ZpbGVfbmV3Il0pKQog
CiAgICAgICAgIG9sZF9jd2QgPSBvcy5nZXRjd2QoKQogICAgICAgICBvcy5jaGRpcigidGVzdF9k
aXJfbmV3IikKICAgICAgICAgIyBWYWxpZGF0ZSB0aGF0IHVudHJhY2tlZF9maWxlcyBkbyBub3Qg
Y2hhbmdlIHdpdGggb3VyIGN3ZC4KLSAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNjbS51
bnRyYWNrZWRfZmlsZXMoKSwgWyJ0ZXN0X2Rpcl9uZXciLCAidGVzdF9maWxlX25ldyJdKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHNjbS51bnRyYWNrZWRfZmlsZXMoKSwgWyJ0ZXN0X2Rpcl9u
ZXciLCAidGVzdF9maWxlX25ldyJdKQogCiAgICAgICAgIG9zLmNoZGlyKG9sZF9jd2QpCiAKICAg
ICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmlsZV9uZXcucHljIiwgIm5ldyBp
Z25vcmVkIGZpbGUiKQotICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2NtLnVudHJhY2tl
ZF9maWxlcygpLCBbInRlc3RfZGlyX25ldyIsICJ0ZXN0X2ZpbGVfbmV3Il0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0SXRlbXNFcXVhbChzY20udW50cmFja2VkX2ZpbGVzKGluY2x1ZGVfaWdub3JlZF9m
aWxlcz1UcnVlKSwgWyJ0ZXN0X2ZpbGVfbmV3LnB5YyIsICJ0ZXN0X2Rpcl9uZXciLCAidGVzdF9m
aWxlX25ldyJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChzY20udW50cmFja2Vk
X2ZpbGVzKCkpLCBzb3J0ZWQoWyJ0ZXN0X2Rpcl9uZXciLCAidGVzdF9maWxlX25ldyJdKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQoc2NtLnVudHJhY2tlZF9maWxlcyhpbmNsdWRl
X2lnbm9yZWRfZmlsZXM9VHJ1ZSkpLCBzb3J0ZWQoWyJ0ZXN0X2ZpbGVfbmV3LnB5YyIsICJ0ZXN0
X2Rpcl9uZXciLCAidGVzdF9maWxlX25ldyJdKSkKIAogICAgICAgICBzaHV0aWwucm10cmVlKCJ0
ZXN0X2Rpcl9uZXciKQogICAgICAgICBvcy5yZW1vdmUoInRlc3RfZmlsZV9uZXciKQpAQCAtMzQw
LDE2ICszNDgsMTYgQEAgY2xhc3MgU0NNVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKCJ0ZXN0X2ZpbGVfbmV3IiwgIm5ldyBjb250ZW50IikK
ICAgICAgICAgb3MubWtkaXIoInRlc3RfZGlyX25ldyIpCiAgICAgICAgIHdyaXRlX2ludG9fZmls
ZV9hdF9wYXRoKCJ0ZXN0X2Rpcl9uZXcvdGVzdF9maWxlX25ldyIsICJuZXcgc3R1ZmYiKQotICAg
ICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcygpLCBbInRlc3Rf
ZGlyX25ldyIsICJ0ZXN0X2ZpbGVfbmV3Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29y
dGVkKHNjbS51bnRyYWNrZWRfZmlsZXMoKSksIHNvcnRlZChbInRlc3RfZGlyX25ldyIsICJ0ZXN0
X2ZpbGVfbmV3Il0pKQogICAgICAgICBzY20uZGlzY2FyZF91bnRyYWNrZWRfZmlsZXMoKQotICAg
ICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcygpLCBbXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzY20udW50cmFja2VkX2ZpbGVzKCksIFtdKQogCiAgICAg
ICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKCJ0ZXN0X2ZpbGVfbmV3LnB5YyIsICJuZXcgY29u
dGVudCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzY20udW50cmFja2VkX2ZpbGVz
KFRydWUpLCBbInRlc3RfZmlsZV9uZXcucHljIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2NtLnVudHJhY2tlZF9maWxlcyhUcnVlKSwgWyJ0ZXN0X2ZpbGVfbmV3LnB5YyJdKQogICAgICAg
ICBzY20uZGlzY2FyZF91bnRyYWNrZWRfZmlsZXMoZGlzY2FyZF9pZ25vcmVkX2ZpbGVzPUZhbHNl
KQotICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcyhUcnVl
KSwgWyJ0ZXN0X2ZpbGVfbmV3LnB5YyJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNjbS51
bnRyYWNrZWRfZmlsZXMoVHJ1ZSksIFsidGVzdF9maWxlX25ldy5weWMiXSkKICAgICAgICAgc2Nt
LmRpc2NhcmRfdW50cmFja2VkX2ZpbGVzKGRpc2NhcmRfaWdub3JlZF9maWxlcz1UcnVlKQotICAg
ICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcyhUcnVlKSwgW10p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2NtLnVudHJhY2tlZF9maWxlcyhUcnVlKSwgW10p
CiAKICAgICAgICAgaWYgb3MucGF0aC5pc2RpcigidGVzdF9kaXJfbmV3Iik6CiAgICAgICAgICAg
ICBzaHV0aWwucm10cmVlKCJ0ZXN0X2Rpcl9uZXciKQpAQCAtMzYwLDcgKzM2OCw3IEBAIGNsYXNz
IFNDTVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIF9zaGFyZWRfdGVzdF9hZGRl
ZF9maWxlcyhzZWxmKToKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmls
ZSIsICJjaGFuZ2VkIGNvbnRlbnQiKQotICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2Vs
Zi5zY20uYWRkZWRfZmlsZXMoKSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5z
Y20uYWRkZWRfZmlsZXMoKSwgW10pCiAKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgo
ImFkZGVkX2ZpbGUiLCAibmV3IHN0dWZmIikKICAgICAgICAgc2VsZi5zY20uYWRkKCJhZGRlZF9m
aWxlIikKQEAgLTM3NywxMSArMzg1LDExIEBAIGNsYXNzIFNDTVRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBhZGRlZF9maWxlcyA9IHNlbGYuc2NtLmFkZGVkX2ZpbGVzKCkKICAgICAg
ICAgaWYgImFkZGVkX2RpciIgaW4gYWRkZWRfZmlsZXM6CiAgICAgICAgICAgICBhZGRlZF9maWxl
cy5yZW1vdmUoImFkZGVkX2RpciIpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChhZGRl
ZF9maWxlcywgWyJhZGRlZF9kaXIvYWRkZWRfZmlsZTIiLCAiYWRkZWRfZmlsZSIsICJhZGRlZF9m
aWxlMyIsICJhZGRlZF9maWxlNCJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChh
ZGRlZF9maWxlcyksIHNvcnRlZChbImFkZGVkX2Rpci9hZGRlZF9maWxlMiIsICJhZGRlZF9maWxl
IiwgImFkZGVkX2ZpbGUzIiwgImFkZGVkX2ZpbGU0Il0pKQogCiAgICAgICAgICMgVGVzdCBhbHNv
IHRvIG1ha2Ugc3VyZSBkaXNjYXJkX3dvcmtpbmdfZGlyZWN0b3J5X2NoYW5nZXMgcmVtb3ZlcyBh
ZGRlZCBmaWxlcwogICAgICAgICBzZWxmLnNjbS5kaXNjYXJkX3dvcmtpbmdfZGlyZWN0b3J5X2No
YW5nZXMoKQotICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi5zY20uYWRkZWRfZmls
ZXMoKSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zY20uYWRkZWRfZmlsZXMo
KSwgW10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5leGlzdHMoImFkZGVkX2Zp
bGUiKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmV4aXN0cygiYWRkZWRfZmls
ZTMiKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmV4aXN0cygiYWRkZWRfZmls
ZTQiKSkKQEAgLTM5MiwyOCArNDAwLDI4IEBAIGNsYXNzIFNDTVRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBjaGFuZ2VkX2ZpbGVzID0gc2VsZi5zY20uY2hhbmdlZF9maWxlc19mb3Jf
cmV2aXNpb24oMykKICAgICAgICAgaWYgInRlc3RfZGlyIiBpbiBjaGFuZ2VkX2ZpbGVzOgogICAg
ICAgICAgICAgY2hhbmdlZF9maWxlcy5yZW1vdmUoInRlc3RfZGlyIikKLSAgICAgICAgc2VsZi5h
c3NlcnRJdGVtc0VxdWFsKGNoYW5nZWRfZmlsZXMsIFsidGVzdF9kaXIvdGVzdF9maWxlMyIsICJ0
ZXN0X2ZpbGUiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRJdGVtc0VxdWFsKHNlbGYuc2NtLmNoYW5n
ZWRfZmlsZXNfZm9yX3JldmlzaW9uKDQpLCBbInRlc3RfZmlsZSIsICJ0ZXN0X2ZpbGUyIl0pICAj
IEdpdCBhbmQgU1ZOIHJldHVybiBkaWZmZXJlbnQgb3JkZXJzLgotICAgICAgICBzZWxmLmFzc2Vy
dEl0ZW1zRXF1YWwoc2VsZi5zY20uY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24oMiksIFsidGVz
dF9maWxlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKGNoYW5nZWRfZmlsZXMp
LCBzb3J0ZWQoWyJ0ZXN0X2Rpci90ZXN0X2ZpbGUzIiwgInRlc3RfZmlsZSJdKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQoc2VsZi5zY20uY2hhbmdlZF9maWxlc19mb3JfcmV2aXNp
b24oNCkpLCBzb3J0ZWQoWyJ0ZXN0X2ZpbGUiLCAidGVzdF9maWxlMiJdKSkgICMgR2l0IGFuZCBT
Vk4gcmV0dXJuIGRpZmZlcmVudCBvcmRlcnMuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5zY20uY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24oMiksIFsidGVzdF9maWxlIl0pCiAKICAg
ICBkZWYgX3NoYXJlZF90ZXN0X2NvbnRlbnRzX2F0X3JldmlzaW9uKHNlbGYpOgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNlbGYuc2NtLmNvbnRlbnRzX2F0X3JldmlzaW9uKCJ0ZXN0X2ZpbGUi
LCAzKSwgInRlc3QxdGVzdDIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2NtLmNv
bnRlbnRzX2F0X3JldmlzaW9uKCJ0ZXN0X2ZpbGUiLCA0KSwgInRlc3QxdGVzdDJ0ZXN0M1xuIikK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNjbS5jb250ZW50c19hdF9yZXZpc2lvbigi
dGVzdF9maWxlIiwgMyksIGIidGVzdDF0ZXN0MiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2VsZi5zY20uY29udGVudHNfYXRfcmV2aXNpb24oInRlc3RfZmlsZSIsIDQpLCBiInRlc3QxdGVz
dDJ0ZXN0M1xuIikKIAogICAgICAgICAjIFZlcmlmeSB0aGF0IGNvbnRlbnRzX2F0X3JldmlzaW9u
IHJldHVybnMgYSBieXRlIGFycmF5LCBha2Egc3RyKCk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5zY20uY29udGVudHNfYXRfcmV2aXNpb24oInRlc3RfZmlsZSIsIDUpLCB1ImxhdGlu
MSB0ZXN0OiBcdTAwQTBcbiIuZW5jb2RlKCJsYXRpbjEiKSkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLnNjbS5jb250ZW50c19hdF9yZXZpc2lvbigidGVzdF9maWxlMiIsIDUpLCB1InV0
Zi04IHRlc3Q6IFx1MDBBMFxuIi5lbmNvZGUoInV0Zi04IikpCiAKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLnNjbS5jb250ZW50c19hdF9yZXZpc2lvbigidGVzdF9maWxlMiIsIDQpLCAi
c2Vjb25kIGZpbGUiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2NtLmNvbnRlbnRz
X2F0X3JldmlzaW9uKCJ0ZXN0X2ZpbGUyIiwgNCksIGIic2Vjb25kIGZpbGUiKQogICAgICAgICAj
IEZpbGVzIHdoaWNoIGRvbid0IGV4aXN0OgogICAgICAgICAjIEN1cnJlbnRseSB3ZSByYWlzZSBp
bnN0ZWFkIG9mIHJldHVybmluZyBOb25lIGJlY2F1c2UgZGV0ZWN0aW5nIHRoZSBkaWZmZXJlbmNl
IGJldHdlZW4KICAgICAgICAgIyAiZmlsZSBub3QgZm91bmQiIGFuZCBhbnkgb3RoZXIgZXJyb3Ig
c2VlbXMgaW1wb3NzaWJsZSB3aXRoIHN2biAoZ2l0IHNlZW1zIHRvIGV4cG9zZSBzdWNoIHRocm91
Z2ggdGhlIHJldHVybiBjb2RlKS4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJy
b3IsIHNlbGYuc2NtLmNvbnRlbnRzX2F0X3JldmlzaW9uLCAidGVzdF9maWxlMiIsIDIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yLCBzZWxmLnNjbS5jb250ZW50c19hdF9y
ZXZpc2lvbiwgImRvZXNfbm90X2V4aXN0IiwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
U2NyaXB0RXJyb3IsIHNlbGYuc2NtLmNvbnRlbnRzX2F0X3JldmlzaW9uLCBiInRlc3RfZmlsZTIi
LCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvciwgc2VsZi5zY20uY29u
dGVudHNfYXRfcmV2aXNpb24sIGIiZG9lc19ub3RfZXhpc3QiLCAyKQogCiAgICAgZGVmIF9zaGFy
ZWRfdGVzdF9yZXZpc2lvbnNfY2hhbmdpbmdfZmlsZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3Nl
cnRJdGVtc0VxdWFsKHNlbGYuc2NtLnJldmlzaW9uc19jaGFuZ2luZ19maWxlKCJ0ZXN0X2ZpbGUi
KSwgWzUsIDQsIDMsIDJdKQotICAgICAgICBzZWxmLmFzc2VydEl0ZW1zRXF1YWwoc2VsZi5zY20u
cmV2aXNpb25zX2NoYW5naW5nX2ZpbGUoIm5vbl9leGlzdGVudF9maWxlIiksIFtdKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChzZWxmLnNjbS5yZXZpc2lvbnNfY2hhbmdpbmdfZmls
ZSgidGVzdF9maWxlIikpLCBzb3J0ZWQoWzUsIDQsIDMsIDJdKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLnNjbS5yZXZpc2lvbnNfY2hhbmdpbmdfZmlsZSgibm9uX2V4aXN0ZW50X2Zp
bGUiKSwgW10pCiAKICAgICBkZWYgX3NoYXJlZF90ZXN0X2NvbW1pdHRlcl9lbWFpbF9mb3JfcmV2
aXNpb24oc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zY20uY29tbWl0dGVy
X2VtYWlsX2Zvcl9yZXZpc2lvbigzKSwgZ2V0cGFzcy5nZXR1c2VyKCkpICAjIENvbW1pdHRlciAi
ZW1haWwiIHdpbGwgYmUgdGhlIGN1cnJlbnQgdXNlcgpAQCAtNDI3LDEwICs0MzUsMTAgQEAgY2xh
c3MgU0NNVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIF9zaGFyZWRfdGVzdF9kaWZm
X2Zvcl9yZXZpc2lvbihzZWxmKToKICAgICAgICAgIyBQYXRjaCBmb3JtYXRzIGFyZSBzbGlnaHRs
eSBkaWZmZXJlbnQgYmV0d2VlbiBzdm4gYW5kIGdpdCwgc28ganVzdCByZWdleHAgZm9yIHRoaW5n
cyB3ZSBrbm93IHNob3VsZCBiZSB0aGVyZS4KICAgICAgICAgcjNfcGF0Y2ggPSBzZWxmLnNjbS5k
aWZmX2Zvcl9yZXZpc2lvbig0KQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocjNf
cGF0Y2gsICd0ZXN0MycpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhyM19w
YXRjaCwgJ3Rlc3Q0JykKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHIzX3BhdGNo
LCAndGVzdDInKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMoc2VsZi5zY20uZGlm
Zl9mb3JfcmV2aXNpb24oMyksICd0ZXN0MicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0
Y2hlcyhyM19wYXRjaCwgYid0ZXN0MycpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0
Y2hlcyhyM19wYXRjaCwgYid0ZXN0NCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hl
cyhyM19wYXRjaCwgYid0ZXN0MicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhz
ZWxmLnNjbS5kaWZmX2Zvcl9yZXZpc2lvbigzKSwgYid0ZXN0MicpCiAKICAgICBkZWYgX3NoYXJl
ZF90ZXN0X3N2bl9hcHBseV9naXRfcGF0Y2goc2VsZik6CiAgICAgICAgIHNlbGYuX3NldHVwX3dl
YmtpdHRvb2xzX3NjcmlwdHNfc3ltbGluayhzZWxmLnNjbSkKQEAgLTQ1OCw3ICs0NjYsNyBAQCBI
Y21WP2QwMDAwMQogICAgICAgICBzZWxmLmNoZWNrb3V0LmFwcGx5X3BhdGNoKHNlbGYuX2NyZWF0
ZV9wYXRjaChnaXRfYmluYXJ5X2FkZGl0aW9uKSkKICAgICAgICAgYWRkZWQgPSByZWFkX2Zyb21f
cGF0aCgnZml6emJ1eno3LmdpZicsIGVuY29kaW5nPU5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoNTEyLCBsZW4oYWRkZWQpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYWRkZWQuc3Rh
cnRzd2l0aCgnR0lGODlhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhZGRlZC5zdGFydHN3
aXRoKGInR0lGODlhJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2ZpenpidXp6Ny5naWYnLCBz
ZWxmLnNjbS5jaGFuZ2VkX2ZpbGVzKCkpCiAKICAgICAgICAgIyBUaGUgZmlsZSBhbHJlYWR5IGV4
aXN0cy4KQEAgLTQ4NSw3ICs0OTMsNyBAQCBwdFVsLVpHPCVhfiNMd2tJV3YmcSFLU0NIN3RROGNK
RGl3K3xHVj9NCiAiIiIKICAgICAgICAgc2VsZi5jaGVja291dC5hcHBseV9wYXRjaChzZWxmLl9j
cmVhdGVfcGF0Y2goZ2l0X2JpbmFyeV9tb2RpZmljYXRpb24pKQogICAgICAgICBtb2RpZmllZCA9
IHJlYWRfZnJvbV9wYXRoKCdmaXp6YnV6ejcuZ2lmJywgZW5jb2Rpbmc9Tm9uZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnZm9vYmFyXG4nLCBtb2RpZmllZCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChiJ2Zvb2JhclxuJywgbW9kaWZpZWQpCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2Zp
enpidXp6Ny5naWYnLCBzZWxmLnNjbS5jaGFuZ2VkX2ZpbGVzKCkpCiAKICAgICAgICAgIyBBcHBs
eWluZyB0aGUgc2FtZSBtb2RpZmljYXRpb24gc2hvdWxkIGZhaWwuCkBAIC03MDgsNyArNzE2LDcg
QEAgY2xhc3MgU1ZOVGVzdChTQ01UZXN0KToKICAgICAgICAgc2NtID0gZGV0ZWN0X3NjbV9zeXN0
ZW0odGVzdF9kaXJfcGF0aCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzY20uY2hlY2tvdXRf
cm9vdCwgc2VsZi5zdm5fY2hlY2tvdXRfcGF0aCkgICMgU2FuaXR5IGNoZWNrIHRoYXQgZGV0ZWN0
aW9uIHdvcmtlZCByaWdodC4KICAgICAgICAgYWN0dWFsX3BhdGNoX2NvbnRlbnRzID0gc2NtLmNy
ZWF0ZV9wYXRjaCgpCi0gICAgICAgIGV4cGVjdGVkX3BhdGNoX2NvbnRlbnRzID0gIiIiSW5kZXg6
IHRlc3RfZGlyMi90ZXN0X2ZpbGUyCisgICAgICAgIGV4cGVjdGVkX3BhdGNoX2NvbnRlbnRzID0g
YiIiIkluZGV4OiB0ZXN0X2RpcjIvdGVzdF9maWxlMgogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIHRlc3RfZGly
Mi90ZXN0X2ZpbGUyXHQobm9uZXhpc3RlbnQpCiArKysgdGVzdF9kaXIyL3Rlc3RfZmlsZTJcdCh3
b3JraW5nIGNvcHkpCkBAIC05MTQsMTcgKzkyMiwxNiBAQCBFTkQKIAogICAgIGRlZiB0ZXN0X3By
b3BzZXRfcHJvcGdldChzZWxmKToKICAgICAgICAgZmlsZXBhdGggPSBvcy5wYXRoLmpvaW4oc2Vs
Zi5zdm5fY2hlY2tvdXRfcGF0aCwgInRlc3RfZmlsZSIpCi0gICAgICAgIGV4cGVjdGVkX21pbWVf
dHlwZSA9ICJ4LWFwcGxpY2F0aW9uL2Zvby1iYXIiCi0gICAgICAgIHNlbGYuc2NtLnByb3BzZXQo
InN2bjptaW1lLXR5cGUiLCBleHBlY3RlZF9taW1lX3R5cGUsIGZpbGVwYXRoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX21pbWVfdHlwZSwgc2VsZi5zY20ucHJvcGdldCgic3Zu
Om1pbWUtdHlwZSIsIGZpbGVwYXRoKSkKKyAgICAgICAgc2VsZi5zY20ucHJvcHNldCgic3ZuOm1p
bWUtdHlwZSIsICJ4LWFwcGxpY2F0aW9uL2Zvby1iYXIiLCBmaWxlcGF0aCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChiIngtYXBwbGljYXRpb24vZm9vLWJhciIsIHNlbGYuc2NtLnByb3BnZXQo
InN2bjptaW1lLXR5cGUiLCBmaWxlcGF0aCkpCiAKICAgICBkZWYgdGVzdF9zaG93X2hlYWQoc2Vs
Zik6CiAgICAgICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKCJ0ZXN0X2ZpbGUiLCB1IkhlbGxv
ISIsICJ1dGYtOCIpCiAgICAgICAgIFNWTlRlc3RSZXBvc2l0b3J5Ll9zdm5fY29tbWl0KCJmb3Vy
dGggY29tbWl0IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiSGVsbG8hIiwgc2VsZi5zY20u
c2hvd19oZWFkKCd0ZXN0X2ZpbGUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIkhlbGxv
ISIsIHNlbGYuc2NtLnNob3dfaGVhZCgndGVzdF9maWxlJykpCiAKICAgICBkZWYgdGVzdF9zaG93
X2hlYWRfYmluYXJ5KHNlbGYpOgotICAgICAgICBkYXRhID0gIlwyNDQiCisgICAgICAgIGRhdGEg
PSBiIlwyNDQiCiAgICAgICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKCJiaW5hcnlfZmlsZSIs
IGRhdGEsIGVuY29kaW5nPU5vbmUpCiAgICAgICAgIHNlbGYuc2NtLmFkZCgiYmluYXJ5X2ZpbGUi
KQogICAgICAgICBzZWxmLnNjbS5jb21taXRfd2l0aF9tZXNzYWdlKCJhIHRlc3QgY29tbWl0IikK
QEAgLTEwMjQsNyArMTAzMSw3IEBAIGNsYXNzIEdpdFRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHNj
bS5jb21taXRfbG9jYWxseV93aXRoX21lc3NhZ2UoJ21lc3NhZ2UnKQogCiAgICAgICAgIHBhdGNo
ID0gc2NtLmNyZWF0ZV9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hl
cyhwYXRjaCwgcidTdWJ2ZXJzaW9uIFJldmlzaW9uOicpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90
UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYidTdWJ2ZXJzaW9uIFJldmlzaW9uOicpCiAKICAgICBkZWYg
dGVzdF9jcmVhdGVfcGF0Y2hfd2l0aF9naXRfaW5kZXgoc2VsZik6CiAgICAgICAgICMgRmlyc3Qg
Y2hhbmdlLiBDb21taXR0ZWQuCkBAIC0xMDQxLDEwICsxMDQ4LDEwIEBAIGNsYXNzIEdpdFRlc3Qo
U0NNVGVzdCk6CiAgICAgICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKCd0ZXN0X2ZpbGVfY29t
bWl0MScsICd0aGlyZCB1bmljb3JuJykKIAogICAgICAgICBwYXRjaCA9IHNjbS5jcmVhdGVfcGF0
Y2goTm9uZSwgTm9uZSwgVHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBh
dGNoLCByJy1maXJzdCBjYXQnKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0
Y2gsIHInXCtzZWNvbmQgZG9nJykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVz
KHBhdGNoLCByJ3RoaXJkJykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBh
dGNoLCByJ3VuaWNvcm4nKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gs
IGInLWZpcnN0IGNhdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwg
YidcXCtzZWNvbmQgZG9nJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBh
dGNoLCBiJ3RoaXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBhdGNo
LCBiJ3VuaWNvcm4nKQogCiAgICAgZGVmIHRlc3Rfb3JkZXJmaWxlKHNlbGYpOgogICAgICAgICBv
cy5ta2RpcigiVG9vbHMiKQpAQCAtMTA4MywyMiArMTA5MCwyMiBAQCBjbGFzcyBHaXRUZXN0KFND
TVRlc3QpOgogICAgICAgICBzY20uY29tbWl0X2xvY2FsbHlfd2l0aF9tZXNzYWdlKCdtZXNzYWdl
JykKIAogICAgICAgICBwYXRjaCA9IHNjbS5jcmVhdGVfcGF0Y2goKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUocmUuc2VhcmNoKHInVG9vbHMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkgPCBy
ZS5zZWFyY2gocidUb29scy9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2gocidXZWJzaXRlcy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3Rh
cnQoKSA8IHJlLnNlYXJjaChyJ1dlYnNpdGVzL0NoYW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChyJ1NvdXJjZS9DaGFuZ2VMb2cnLCBw
YXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChyJ1NvdXJjZS9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0
YXJ0KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2gocidMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChyJ0xheW91dFRlc3RzL0NoYW5n
ZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2Vh
cmNoKHInU291cmNlL0NoYW5nZUxvZycsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKHInTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShyZS5zZWFyY2gocidUb29scy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNl
YXJjaChyJ0xheW91dFRlc3RzL0NoYW5nZUxvZycsIHBhdGNoKS5zdGFydCgpKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKHInV2Vic2l0ZXMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0
YXJ0KCkgPCByZS5zZWFyY2gocidMYXlvdXRUZXN0cy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQo
KSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKHInU291cmNlL0NoYW5nZUZp
bGUnLCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChyJ0xheW91dFRlc3RzL0NoYW5nZUxvZycs
IHBhdGNoKS5zdGFydCgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKHInVG9v
bHMvQ2hhbmdlRmlsZScsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKHInTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5z
ZWFyY2gocidXZWJzaXRlcy9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkgPCByZS5zZWFyY2go
cidMYXlvdXRUZXN0cy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSkKLQotICAgICAgICBzZWxm
LmFzc2VydFRydWUocmUuc2VhcmNoKHInU291cmNlL0NoYW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQo
KSA8IHJlLnNlYXJjaChyJ0xheW91dFRlc3RzL0NoYW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChyJ1Rvb2xzL0NoYW5nZUZpbGUnLCBw
YXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChyJ0xheW91dFRlc3RzL0NoYW5nZUZpbGUnLCBwYXRj
aCkuc3RhcnQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChyJ1dlYnNpdGVz
L0NoYW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChyJ0xheW91dFRlc3RzL0No
YW5nZUZpbGUnLCBwYXRjaCkuc3RhcnQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNl
YXJjaChiJ1Rvb2xzL0NoYW5nZUxvZycsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKGInVG9v
bHMvQ2hhbmdlRmlsZScsIHBhdGNoKS5zdGFydCgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
cmUuc2VhcmNoKGInV2Vic2l0ZXMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkgPCByZS5zZWFy
Y2goYidXZWJzaXRlcy9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShyZS5zZWFyY2goYidTb3VyY2UvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkg
PCByZS5zZWFyY2goYidTb3VyY2UvQ2hhbmdlRmlsZScsIHBhdGNoKS5zdGFydCgpKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKGInTGF5b3V0VGVzdHMvQ2hhbmdlTG9nJywgcGF0
Y2gpLnN0YXJ0KCkgPCByZS5zZWFyY2goYidMYXlvdXRUZXN0cy9DaGFuZ2VGaWxlJywgcGF0Y2gp
LnN0YXJ0KCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChiJ1NvdXJjZS9D
aGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChiJ0xheW91dFRlc3RzL0NoYW5n
ZUxvZycsIHBhdGNoKS5zdGFydCgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNo
KGInVG9vbHMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkgPCByZS5zZWFyY2goYidMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHJlLnNlYXJjaChiJ1dlYnNpdGVzL0NoYW5nZUxvZycsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2Vh
cmNoKGInTGF5b3V0VGVzdHMvQ2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkpCisKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChiJ1NvdXJjZS9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0
YXJ0KCkgPCByZS5zZWFyY2goYidMYXlvdXRUZXN0cy9DaGFuZ2VMb2cnLCBwYXRjaCkuc3RhcnQo
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChiJ1Rvb2xzL0NoYW5nZUZpbGUn
LCBwYXRjaCkuc3RhcnQoKSA8IHJlLnNlYXJjaChiJ0xheW91dFRlc3RzL0NoYW5nZUxvZycsIHBh
dGNoKS5zdGFydCgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKGInV2Vic2l0
ZXMvQ2hhbmdlRmlsZScsIHBhdGNoKS5zdGFydCgpIDwgcmUuc2VhcmNoKGInTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nJywgcGF0Y2gpLnN0YXJ0KCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJl
LnNlYXJjaChiJ1NvdXJjZS9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkgPCByZS5zZWFyY2go
YidMYXlvdXRUZXN0cy9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShyZS5zZWFyY2goYidUb29scy9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkg
PCByZS5zZWFyY2goYidMYXlvdXRUZXN0cy9DaGFuZ2VGaWxlJywgcGF0Y2gpLnN0YXJ0KCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2goYidXZWJzaXRlcy9DaGFuZ2VGaWxlJywg
cGF0Y2gpLnN0YXJ0KCkgPCByZS5zZWFyY2goYidMYXlvdXRUZXN0cy9DaGFuZ2VGaWxlJywgcGF0
Y2gpLnN0YXJ0KCkpCiAKICAgICBkZWYgdGVzdF9leGlzdHMoc2VsZik6CiAgICAgICAgIHNjbSA9
IHNlbGYudW50cmFja2luZ19zY20KQEAgLTExMjYsOCArMTEzMyw4IEBAIGNsYXNzIEdpdFRlc3Qo
U0NNVGVzdCk6CiAgICAgICAgIHNjbS5jb21taXRfbG9jYWxseV93aXRoX21lc3NhZ2UoJ21lc3Nh
Z2UnKQogCiAgICAgICAgIHBhdGNoID0gc2NtLmNyZWF0ZV9wYXRjaCgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcidyZW5hbWUgZnJvbSAnKQotICAgICAgICBz
ZWxmLmFzc2VydE5vdFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIncmVuYW1lIHRvICcpCisgICAgICAg
IHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYidyZW5hbWUgZnJvbSAnKQorICAg
ICAgICBzZWxmLmFzc2VydE5vdFJlZ2V4cE1hdGNoZXMocGF0Y2gsIGIncmVuYW1lIHRvICcpCiAK
ICAgICBkZWYgdGVzdF91bnRyYWNrZWRfZmlsZXMoc2VsZik6CiAgICAgICAgIHNlbGYuX3NoYXJl
ZF90ZXN0X3VudHJhY2tlZF9maWxlcyhzZWxmLnRyYWNraW5nX3NjbSkKQEAgLTEyMDcsOCArMTIx
NCw4IEBAIGNsYXNzIEdpdFNWTlRlc3QoU0NNVGVzdCk6CiAgICAgICAgIGRpZmZfdG9fY29tbW9u
X2Jhc2UgPSBfZ2l0X2RpZmYoc2VsZi5zY20ucmVtb3RlX2JyYW5jaF9yZWYoKSArICcuLicpCiAg
ICAgICAgIGRpZmZfdG9fbWVyZ2VfYmFzZSA9IF9naXRfZGlmZihzZWxmLnNjbS5yZW1vdGVfbWVy
Z2VfYmFzZSgpKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhkaWZmX3Rv
X2NvbW1vbl9iYXNlLCByJ2ZvbycpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhk
aWZmX3RvX21lcmdlX2Jhc2UsIHInZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBN
YXRjaGVzKGRpZmZfdG9fY29tbW9uX2Jhc2UsIGInZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRS
ZWdleHBNYXRjaGVzKGRpZmZfdG9fbWVyZ2VfYmFzZSwgYidmb28nKQogCiAgICAgZGVmIHRlc3Rf
cmViYXNlX2luX3Byb2dyZXNzKHNlbGYpOgogICAgICAgICBzdm5fdGVzdF9maWxlID0gb3MucGF0
aC5qb2luKHNlbGYuc3ZuX2NoZWNrb3V0X3BhdGgsICd0ZXN0X2ZpbGUnKQpAQCAtMTI5Niw3ICsx
MzAzLDcgQEAgY2xhc3MgR2l0U1ZOVGVzdChTQ01UZXN0KToKIAogICAgIGRlZiB0ZXN0X3Jldmlz
aW9uc19jaGFuZ2luZ19maWxlc193aXRoX2xvY2FsX2NvbW1pdChzZWxmKToKICAgICAgICAgc2Vs
Zi5fb25lX2xvY2FsX2NvbW1pdCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXRlbXNFcXVhbChzZWxm
LnNjbS5yZXZpc2lvbnNfY2hhbmdpbmdfZmlsZSgndGVzdF9maWxlX2NvbW1pdDEnKSwgW10pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zY20ucmV2aXNpb25zX2NoYW5naW5nX2ZpbGUo
J3Rlc3RfZmlsZV9jb21taXQxJyksIFtdKQogCiAgICAgZGVmIHRlc3RfY29tbWl0X3dpdGhfbWVz
c2FnZShzZWxmKToKICAgICAgICAgc2VsZi5fb25lX2xvY2FsX2NvbW1pdF9wbHVzX3dvcmtpbmdf
Y29weV9jaGFuZ2VzKCkKQEAgLTE0MTMsMTUgKzE0MjAsMTUgQEAgY2xhc3MgR2l0U1ZOVGVzdChT
Q01UZXN0KToKICAgICBkZWYgdGVzdF9jcmVhdGVfcGF0Y2hfbG9jYWxfcGx1c193b3JraW5nX2Nv
cHkoc2VsZik6CiAgICAgICAgIHNlbGYuX29uZV9sb2NhbF9jb21taXRfcGx1c193b3JraW5nX2Nv
cHlfY2hhbmdlcygpCiAgICAgICAgIHBhdGNoID0gc2VsZi5zY20uY3JlYXRlX3BhdGNoKCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3Rlc3RfZmlsZV9jb21taXQx
JykKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3Rlc3RfZmlsZV9j
b21taXQyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ3Rlc3Rf
ZmlsZV9jb21taXQxJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCBi
J3Rlc3RfZmlsZV9jb21taXQyJykKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9wYXRjaChzZWxmKToK
ICAgICAgICAgc2VsZi5fb25lX2xvY2FsX2NvbW1pdF9wbHVzX3dvcmtpbmdfY29weV9jaGFuZ2Vz
KCkKICAgICAgICAgcGF0Y2ggPSBzZWxmLnNjbS5jcmVhdGVfcGF0Y2goKQotICAgICAgICBzZWxm
LmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIndGVzdF9maWxlX2NvbW1pdDInKQotICAgICAg
ICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIndGVzdF9maWxlX2NvbW1pdDEnKQot
ICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHInU3VidmVyc2lvbiBSZXZp
c2lvbjogNScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYid0ZXN0
X2ZpbGVfY29tbWl0MicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwg
Yid0ZXN0X2ZpbGVfY29tbWl0MScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhw
YXRjaCwgYidTdWJ2ZXJzaW9uIFJldmlzaW9uOiA1JykKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9w
YXRjaF9hZnRlcl9tZXJnZShzZWxmKToKICAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnY2hl
Y2tvdXQnLCAnLWInLCAnZHVtbXktYnJhbmNoJywgJ3RydW5rfjMnXSkKQEAgLTE0MjksMTMgKzE0
MzYsMTMgQEAgY2xhc3MgR2l0U1ZOVGVzdChTQ01UZXN0KToKICAgICAgICAgcnVuX2NvbW1hbmQo
WydnaXQnLCAnbWVyZ2UnLCAndHJ1bmsnXSkKIAogICAgICAgICBwYXRjaCA9IHNlbGYuc2NtLmNy
ZWF0ZV9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcid0
ZXN0X2ZpbGVfY29tbWl0MScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRj
aCwgcidTdWJ2ZXJzaW9uIFJldmlzaW9uOiA1JykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBN
YXRjaGVzKHBhdGNoLCBiJ3Rlc3RfZmlsZV9jb21taXQxJykKKyAgICAgICAgc2VsZi5hc3NlcnRS
ZWdleHBNYXRjaGVzKHBhdGNoLCBiJ1N1YnZlcnNpb24gUmV2aXNpb246IDUnKQogCiAgICAgZGVm
IHRlc3RfY3JlYXRlX3BhdGNoX3dpdGhfY2hhbmdlZF9maWxlcyhzZWxmKToKICAgICAgICAgc2Vs
Zi5fb25lX2xvY2FsX2NvbW1pdF9wbHVzX3dvcmtpbmdfY29weV9jaGFuZ2VzKCkKICAgICAgICAg
cGF0Y2ggPSBzZWxmLnNjbS5jcmVhdGVfcGF0Y2goY2hhbmdlZF9maWxlcz1bJ3Rlc3RfZmlsZV9j
b21taXQyJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcid0ZXN0
X2ZpbGVfY29tbWl0MicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwg
Yid0ZXN0X2ZpbGVfY29tbWl0MicpCiAKICAgICBkZWYgdGVzdF9jcmVhdGVfcGF0Y2hfd2l0aF9y
bV9hbmRfY2hhbmdlZF9maWxlcyhzZWxmKToKICAgICAgICAgc2VsZi5fb25lX2xvY2FsX2NvbW1p
dF9wbHVzX3dvcmtpbmdfY29weV9jaGFuZ2VzKCkKQEAgLTE0NDcsNDYgKzE0NTQsNTEgQEAgY2xh
c3MgR2l0U1ZOVGVzdChTQ01UZXN0KToKICAgICBkZWYgdGVzdF9jcmVhdGVfcGF0Y2hfZ2l0X2Nv
bW1pdChzZWxmKToKICAgICAgICAgc2VsZi5fdHdvX2xvY2FsX2NvbW1pdHMoKQogICAgICAgICBw
YXRjaCA9IHNlbGYuc2NtLmNyZWF0ZV9wYXRjaChnaXRfY29tbWl0PSJIRUFEXiIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcid0ZXN0X2ZpbGVfY29tbWl0MScpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcid0ZXN0X2ZpbGVfY29t
bWl0MicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYid0ZXN0X2Zp
bGVfY29tbWl0MScpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhwYXRjaCwg
Yid0ZXN0X2ZpbGVfY29tbWl0MicpCiAKICAgICBkZWYgdGVzdF9jcmVhdGVfcGF0Y2hfZ2l0X2Nv
bW1pdF9yYW5nZShzZWxmKToKICAgICAgICAgc2VsZi5fdGhyZWVfbG9jYWxfY29tbWl0cygpCiAg
ICAgICAgIHBhdGNoID0gc2VsZi5zY20uY3JlYXRlX3BhdGNoKGdpdF9jb21taXQ9IkhFQUR+Mi4u
SEVBRCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcid0ZXN0
X2ZpbGVfY29tbWl0MCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwg
cid0ZXN0X2ZpbGVfY29tbWl0MicpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhw
YXRjaCwgcid0ZXN0X2ZpbGVfY29tbWl0MScpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhw
TWF0Y2hlcyhwYXRjaCwgYid0ZXN0X2ZpbGVfY29tbWl0MCcpCisgICAgICAgIHNlbGYuYXNzZXJ0
UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYid0ZXN0X2ZpbGVfY29tbWl0MicpCisgICAgICAgIHNlbGYu
YXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYid0ZXN0X2ZpbGVfY29tbWl0MScpCiAKICAgICBk
ZWYgdGVzdF9jcmVhdGVfcGF0Y2hfd29ya2luZ19jb3B5X29ubHkoc2VsZik6CiAgICAgICAgIHNl
bGYuX29uZV9sb2NhbF9jb21taXRfcGx1c193b3JraW5nX2NvcHlfY2hhbmdlcygpCiAgICAgICAg
IHBhdGNoID0gc2VsZi5zY20uY3JlYXRlX3BhdGNoKGdpdF9jb21taXQ9IkhFQUQuLi4uIikKLSAg
ICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3Rlc3RfZmlsZV9jb21t
aXQxJykKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3Rlc3RfZmls
ZV9jb21taXQyJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RSZWdleHBNYXRjaGVzKHBhdGNoLCBi
J3Rlc3RfZmlsZV9jb21taXQxJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBh
dGNoLCBiJ3Rlc3RfZmlsZV9jb21taXQyJykKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9wYXRjaF9t
dWx0aXBsZV9sb2NhbF9jb21taXRzKHNlbGYpOgogICAgICAgICBzZWxmLl90d29fbG9jYWxfY29t
bWl0cygpCiAgICAgICAgIHBhdGNoID0gc2VsZi5zY20uY3JlYXRlX3BhdGNoKCkKLSAgICAgICAg
c2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3Rlc3RfZmlsZV9jb21taXQyJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3Rlc3RfZmlsZV9jb21taXQx
JykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ3Rlc3RfZmlsZV9j
b21taXQyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ3Rlc3Rf
ZmlsZV9jb21taXQxJykKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9wYXRjaF9ub3Rfc3luY2VkKHNl
bGYpOgogICAgICAgICBydW5fY29tbWFuZChbJ2dpdCcsICdjaGVja291dCcsICctYicsICdteS1i
cmFuY2gnLCAndHJ1bmt+MyddKQogICAgICAgICBzZWxmLl90d29fbG9jYWxfY29tbWl0cygpCiAg
ICAgICAgIHBhdGNoID0gc2VsZi5zY20uY3JlYXRlX3BhdGNoKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnROb3RSZWdleHBNYXRjaGVzKHBhdGNoLCByJ3Rlc3RfZmlsZTInKQotICAgICAgICBzZWxmLmFz
c2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIndGVzdF9maWxlX2NvbW1pdDInKQotICAgICAgICBz
ZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2gsIHIndGVzdF9maWxlX2NvbW1pdDEnKQorICAg
ICAgICBzZWxmLmFzc2VydE5vdFJlZ2V4cE1hdGNoZXMocGF0Y2gsIGIndGVzdF9maWxlMicpCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYid0ZXN0X2ZpbGVfY29tbWl0
MicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYid0ZXN0X2ZpbGVf
Y29tbWl0MScpCiAKICAgICBkZWYgdGVzdF9jcmVhdGVfYmluYXJ5X3BhdGNoKHNlbGYpOgogICAg
ICAgICAjIENyZWF0ZSBhIGdpdCBiaW5hcnkgcGF0Y2ggYW5kIGNoZWNrIHRoZSBjb250ZW50cy4K
ICAgICAgICAgdGVzdF9maWxlX25hbWUgPSAnYmluYXJ5X2ZpbGUnCiAgICAgICAgIHRlc3RfZmls
ZV9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYuZ2l0X2NoZWNrb3V0X3BhdGgsIHRlc3RfZmlsZV9u
YW1lKQotICAgICAgICBmaWxlX2NvbnRlbnRzID0gJycuam9pbihtYXAoY2hyLCByYW5nZSgyNTYp
KSkKKworICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgorICAgICAgICAgICAg
ZmlsZV9jb250ZW50cyA9ICcnLmpvaW4obWFwKGNociwgcmFuZ2UoMjU2KSkpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBmaWxlX2NvbnRlbnRzID0gYnl0ZXMobGlzdChyYW5nZSgyNTYpKSkK
KwogICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCh0ZXN0X2ZpbGVfcGF0aCwgZmlsZV9j
b250ZW50cywgZW5jb2Rpbmc9Tm9uZSkKICAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnYWRk
JywgdGVzdF9maWxlX25hbWVdKQogICAgICAgICBwYXRjaCA9IHNlbGYuc2NtLmNyZWF0ZV9wYXRj
aCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgcidcbmxpdGVyYWwg
MFxuJykKLSAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCByJ1xubGl0ZXJh
bCAyNTZcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaCwgYidcbmxp
dGVyYWwgMFxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleHBNYXRjaGVzKHBhdGNoLCBiJ1xu
bGl0ZXJhbCAyNTZcbicpCiAKICAgICAgICAgIyBDaGVjayBpZiB3ZSBjYW4gYXBwbHkgdGhlIGNy
ZWF0ZWQgcGF0Y2guCiAgICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ3JtJywgJy1mJywgdGVz
dF9maWxlX25hbWVdKQpAQCAtMTUwMCw4ICsxNTEyLDggQEAgY2xhc3MgR2l0U1ZOVGVzdChTQ01U
ZXN0KToKICAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnY29tbWl0JywgJy1tJywgJ2JpbmFy
eSBkaWZmJ10pCiAKICAgICAgICAgcGF0Y2hfZnJvbV9sb2NhbF9jb21taXQgPSBzZWxmLnNjbS5j
cmVhdGVfcGF0Y2goJ0hFQUQnKQotICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0
Y2hfZnJvbV9sb2NhbF9jb21taXQsIHInXG5saXRlcmFsIDBcbicpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmVnZXhwTWF0Y2hlcyhwYXRjaF9mcm9tX2xvY2FsX2NvbW1pdCwgcidcbmxpdGVyYWwgMjU2
XG4nKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4cE1hdGNoZXMocGF0Y2hfZnJvbV9sb2NhbF9j
b21taXQsIGInXG5saXRlcmFsIDBcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hl
cyhwYXRjaF9mcm9tX2xvY2FsX2NvbW1pdCwgYidcbmxpdGVyYWwgMjU2XG4nKQogCiAgICAgZGVm
IHRlc3RfY2hhbmdlZF9maWxlc19sb2NhbF9wbHVzX3dvcmtpbmdfY29weShzZWxmKToKICAgICAg
ICAgc2VsZi5fb25lX2xvY2FsX2NvbW1pdF9wbHVzX3dvcmtpbmdfY29weV9jaGFuZ2VzKCkKQEAg
LTE2NDQsMTEgKzE2NTYsMTEgQEAgY2xhc3MgR2l0U1ZOVGVzdChTQ01UZXN0KToKIAogICAgIGRl
ZiB0ZXN0X3Nob3dfaGVhZChzZWxmKToKICAgICAgICAgc2VsZi5fdHdvX2xvY2FsX2NvbW1pdHMo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJtb3JlIHRlc3QgY29udGVudCIsIHNlbGYuc2Nt
LnNob3dfaGVhZCgndGVzdF9maWxlX2NvbW1pdDEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChiIm1vcmUgdGVzdCBjb250ZW50Iiwgc2VsZi5zY20uc2hvd19oZWFkKCd0ZXN0X2ZpbGVfY29t
bWl0MScpKQogCiAgICAgZGVmIHRlc3Rfc2hvd19oZWFkX2JpbmFyeShzZWxmKToKICAgICAgICAg
c2VsZi5fdHdvX2xvY2FsX2NvbW1pdHMoKQotICAgICAgICBkYXRhID0gIlwyNDQiCisgICAgICAg
IGRhdGEgPSBiIlwyNDQiCiAgICAgICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKCJiaW5hcnlf
ZmlsZSIsIGRhdGEsIGVuY29kaW5nPU5vbmUpCiAgICAgICAgIHNlbGYuc2NtLmFkZCgiYmluYXJ5
X2ZpbGUiKQogICAgICAgICBzZWxmLnNjbS5jb21taXRfbG9jYWxseV93aXRoX21lc3NhZ2UoImEg
dGVzdCBjb21taXQiKQpAQCAtMTY1Niw3ICsxNjY4LDcgQEAgY2xhc3MgR2l0U1ZOVGVzdChTQ01U
ZXN0KToKIAogICAgIGRlZiB0ZXN0X2RpZmZfZm9yX2ZpbGUoc2VsZik6CiAgICAgICAgIHNlbGYu
X3R3b19sb2NhbF9jb21taXRzKCkKLSAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoJ3Rl
c3RfZmlsZV9jb21taXQxJywgIlVwZGF0ZWQiLCBlbmNvZGluZz1Ob25lKQorICAgICAgICB3cml0
ZV9pbnRvX2ZpbGVfYXRfcGF0aCgndGVzdF9maWxlX2NvbW1pdDEnLCBiIlVwZGF0ZWQiLCBlbmNv
ZGluZz1Ob25lKQogCiAgICAgICAgIGRpZmYgPSBzZWxmLnNjbS5kaWZmX2Zvcl9maWxlKCd0ZXN0
X2ZpbGVfY29tbWl0MScpCiAgICAgICAgIGNhY2hlZF9kaWZmID0gc2VsZi5zY20uZGlmZl9mb3Jf
ZmlsZSgndGVzdF9maWxlX2NvbW1pdDEnKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvc2NtL3N0dWJfcmVwb3NpdG9yeS5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc3R1Yl9yZXBvc2l0b3J5LnB5
CShyZXZpc2lvbiAyNTE1NTYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20vc3R1Yl9yZXBvc2l0b3J5LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3
IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQganNvbgogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQotZnJvbSAuc2NtIGltcG9ydCBTQ00K
K2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5zY20gaW1wb3J0IFNDTQogCiBfbG9n
ID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zdHViX3JlcG9zaXRvcnlfdW5pdHRlc3QucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3N0
dWJfcmVwb3NpdG9yeV91bml0dGVzdC5weQkocmV2aXNpb24gMjUxNTU2KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3N0dWJfcmVwb3NpdG9yeV91bml0dGVz
dC5weQkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogaW1wb3J0IHVuaXR0ZXN0CiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZmlsZXN5c3RlbV9tb2NrCi1mcm9t
IC5zdHViX3JlcG9zaXRvcnkgaW1wb3J0IFN0dWJSZXBvc2l0b3J5Citmcm9tIHdlYmtpdHB5LmNv
bW1vbi5jaGVja291dC5zY20uc3R1Yl9yZXBvc2l0b3J5IGltcG9ydCBTdHViUmVwb3NpdG9yeQog
CiBtb2NrX3N0dWJfcmVwb3NpdG9yeV9qc29uID0geydicmFuY2gnOiAndHJ1bmsnLCAnaWQnOiAn
MjczODQ5OSd9CiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0
L3NjbS9zdm4ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y2hlY2tvdXQvc2NtL3N2bi5weQkocmV2aXNpb24gMjUxNTU2KQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3N2bi5weQkod29ya2luZyBjb3B5KQpAQCAtMzYs
MTMgKzM2LDE0IEBAIGltcG9ydCBzdHJpbmcKIGltcG9ydCBzeXMKIGltcG9ydCB0ZW1wZmlsZQog
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc2NtIGltcG9ydCBBdXRoZW50aWNh
dGlvbkVycm9yLCBTQ00sIGNvbW1pdF9lcnJvcl9oYW5kbGVyCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5jb25maWcudXJscyBpbXBvcnQgc3ZuX3NlcnZlcl9ob3N0LCBzdm5fc2VydmVyX3JlYWxtCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgU2NyaXB0RXJyb3IK
IGZyb20gd2Via2l0cHkuY29tbW9uLndlYmtpdF9maW5kZXIgaW1wb3J0IFdlYktpdEZpbmRlcgog
ZnJvbSB3ZWJraXRweS5jb21tb24udmVyc2lvbiBpbXBvcnQgVmVyc2lvbgorZnJvbSB3ZWJraXRw
eS5jb21tb24udW5pY29kZV9jb21wYXRpYmlsaXR5IGltcG9ydCBlbmNvZGVfaWZfbmVjZXNzYXJ5
CiAKLWZyb20gLnNjbSBpbXBvcnQgQXV0aGVudGljYXRpb25FcnJvciwgU0NNLCBjb21taXRfZXJy
b3JfaGFuZGxlcgogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKQEAgLTMy
MSw3ICszMjIsNyBAQCBjbGFzcyBTVk4oU0NNLCBTVk5SZXBvc2l0b3J5KToKIAogICAgIGRlZiBk
aWZmX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAgICAgICMgRklYTUU6IFRoaXMg
c2hvdWxkIHByb2JhYmx5IHVzZSBjd2Q9c2VsZi5jaGVja291dF9yb290Ci0gICAgICAgIHJldHVy
biBzZWxmLl9ydW5fc3ZuKFsnZGlmZicsICctYycsIHJldmlzaW9uXSkKKyAgICAgICAgcmV0dXJu
IHNlbGYuX3J1bl9zdm4oWydkaWZmJywgJy1jJywgcmV2aXNpb25dLCBkZWNvZGVfb3V0cHV0PUZh
bHNlKQogCiAgICAgZGVmIF9ib2d1c19kaXJfbmFtZShzZWxmKToKICAgICAgICAgcm5kID0gJycu
am9pbihyYW5kb20uc2FtcGxlKHN0cmluZy5hc2NpaV9sZXR0ZXJzLCA1KSkKQEAgLTQxMSw0ICs0
MTIsNCBAQCBjbGFzcyBTVk4oU0NNLCBTVk5SZXBvc2l0b3J5KToKIAogICAgIGRlZiBwcm9wZ2V0
KHNlbGYsIHBuYW1lLCBwYXRoKToKICAgICAgICAgZGlyLCBiYXNlID0gb3MucGF0aC5zcGxpdChw
YXRoKQotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX3N2bihbJ3BnZXQnLCBwbmFtZSwgYmFzZV0s
IGN3ZD1kaXIpLmVuY29kZSgndXRmLTgnKS5yc3RyaXAoIlxuIikKKyAgICAgICAgcmV0dXJuIGVu
Y29kZV9pZl9uZWNlc3Nhcnkoc2VsZi5fcnVuX3N2bihbJ3BnZXQnLCBwbmFtZSwgYmFzZV0sIGN3
ZD1kaXIpLnJzdHJpcCgiXG4iKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>