<?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>55191</bug_id>
          
          <creation_ts>2011-02-24 16:02:17 -0800</creation_ts>
          <short_desc>rebaseline-chromium-webkit-tests doesn&apos;t handle GPU modifiers &quot;correctly&quot;</short_desc>
          <delta_ts>2011-04-01 12:22:58 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55608</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>jamesr</cc>
    
    <cc>koz</cc>
    
    <cc>mihaip</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>357520</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-24 16:02:17 -0800</bug_when>
    <thetext>See bug 55002 for some background. Right now you have to specify &quot;-g&quot; or not to rebaseline-chromium-webkit-tests in order to get GPU baselines instead of the regular baselines. It would be much better if the script just matched against the &quot;GPU&quot; modifier and knew whether to pull from the GPU results or the CPU results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377596</commentid>
    <comment_count>1</comment_count>
      <attachid>87816</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-31 18:55:18 -0700</bug_when>
    <thetext>Created attachment 87816
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377599</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-31 18:58:04 -0700</bug_when>
    <thetext>This change plus the fix in 55608 should make the rebaselining tool correctly again, in fact, probably better than it ever has before. 

Note that this removes the -g and -w flags; it *only* works on the canaries now, since that&apos;s the only place we have a consistent set of bots and because it&apos;s the only place rebaselining makes sense yet.

We can change this to work w/ build.webkit.org if/when we get a full set of bots there.

The -g flag is gone because GPU and CPU baselines are both handled in a single pass now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377600</commentid>
    <comment_count>3</comment_count>
      <attachid>87817</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-31 19:00:59 -0700</bug_when>
    <thetext>Created attachment 87817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377902</commentid>
    <comment_count>4</comment_count>
      <attachid>87817</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-01 10:29:37 -0700</bug_when>
    <thetext>Comment on attachment 87817
Patch

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

In general looks OK, mostly some questions and a rebase is probably in order.

&gt; Tools/ChangeLog:13
&gt; +        actually rebaselined will be deleted, even if only one of the
&gt; +        variants was actually rebaselined. This may cause odd problems,

Is this still the case?  Are there changes for this patch after rebaselining against 55608?

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/test_expectations.py:443
&gt; +        for line in self._get_iterable_expectations(self._expectations):
&gt; +            lineno += 1

Can you use enumerate() instead of counting manually?

&gt; Tools/Scripts/webkitpy/layout_tests/port/base.py:93
&gt; +        if not hasattr(self, &apos;_operating_system&apos;):

Is it possible for to always set these here and the sub classes can overwrite them after calling Port.__init__?  It would also encourage calling Port.__init__ as soon as possible (which is more like how C++ works).  This is mainly confusing in ChromiumLinux.__init__ where _version is set before and _architecture is set afterwards.

&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:-816
&gt; -    option_parser.add_option(&apos;-w&apos;, &apos;--webkit_canary&apos;,
&gt; -                             action=&apos;store_true&apos;,
&gt; -                             default=False,
&gt; -                             help=(&apos;If True, pull baselines from webkit.org &apos;
&gt; -                                   &apos;canary bot.&apos;))

Do we want to keep the flag and have it just tell the user that this flag no longer does anything?  Might be confusing if someone tries to pass -w and they just get an error.  Alternately, we may just want to mention in --help that we always pull from the canaries.  Also, this could be a separate change.

&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests_unittest.py:132
&gt; +    d = {}

Please use a more descriptive variable name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377953</commentid>
    <comment_count>5</comment_count>
      <attachid>87817</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-01 11:48:34 -0700</bug_when>
    <thetext>Comment on attachment 87817
Patch

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

&gt;&gt; Tools/ChangeLog:13
&gt;&gt; +        variants was actually rebaselined. This may cause odd problems,
&gt; 
&gt; Is this still the case?  Are there changes for this patch after rebaselining against 55608?

Yes, and no. This patch is baselined against 55608.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/test_expectations.py:443
&gt;&gt; +            lineno += 1
&gt; 
&gt; Can you use enumerate() instead of counting manually?

I didn&apos;t know about enumerate. Yes, that should work nicely.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/base.py:93

&gt; 
&gt; Is it possible for to always set these here and the sub classes can overwrite them after calling Port.__init__?  It would also encourage calling Port.__init__ as soon as possible (which is more like how C++ works).  This is mainly confusing in ChromiumLinux.__init__ where _version is set before and _architecture is set afterwards.

I&apos;ve shuffled it around a bit. Unfortunately the responsibilities and contracts of the Port.__init__() constructor are pretty unclear and so the code is kinda ugly no matter which way you slice it. I have a separate set of patches coming that should clean all of this stuff up.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:-816
&gt;&gt; -    option_parser.add_option(&apos;-w&apos;, &apos;--webkit_canary&apos;,
&gt;&gt; -                             action=&apos;store_true&apos;,
&gt;&gt; -                             default=False,
&gt;&gt; -                             help=(&apos;If True, pull baselines from webkit.org &apos;
&gt;&gt; -                                   &apos;canary bot.&apos;))
&gt; 
&gt; Do we want to keep the flag and have it just tell the user that this flag no longer does anything?  Might be confusing if someone tries to pass -w and they just get an error.  Alternately, we may just want to mention in --help that we always pull from the canaries.  Also, this could be a separate change.

I can make this return a warning instead.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests_unittest.py:132
&gt;&gt; +    d = {}
&gt; 
&gt; Please use a more descriptive variable name.

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377954</commentid>
    <comment_count>6</comment_count>
      <attachid>87891</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-01 11:50:49 -0700</bug_when>
    <thetext>Created attachment 87891
update w/ review feedback from tony</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377955</commentid>
    <comment_count>7</comment_count>
      <attachid>87891</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-01 11:58:01 -0700</bug_when>
    <thetext>Comment on attachment 87891
update w/ review feedback from tony

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

&gt; Tools/ChangeLog:16
&gt; +        This change removes the -g and -w flags. The -g flag is gone

Nit: removes -w to deprecates -w.

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/test_expectations.py:443
&gt; +        lineno = 0
&gt; +        lines = []
&gt; +        for line in self._get_iterable_expectations(self._expectations):
&gt; +            lineno += 1

Nit: enumerate()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377967</commentid>
    <comment_count>8</comment_count>
      <attachid>87893</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-01 12:06:37 -0700</bug_when>
    <thetext>Created attachment 87893
more feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377968</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-01 12:07:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 87891 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=87891&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:16
&gt; &gt; +        This change removes the -g and -w flags. The -g flag is gone
&gt; 
&gt; Nit: removes -w to deprecates -w.
&gt; 

Done.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/layout_package/test_expectations.py:443
&gt; &gt; +        lineno = 0
&gt; &gt; +        lines = []
&gt; &gt; +        for line in self._get_iterable_expectations(self._expectations):
&gt; &gt; +            lineno += 1
&gt; 
&gt; Nit: enumerate()

Whoops :(. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377983</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-01 12:22:58 -0700</bug_when>
    <thetext>Committed r82705: &lt;http://trac.webkit.org/changeset/82705&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87816</attachid>
            <date>2011-03-31 18:55:18 -0700</date>
            <delta_ts>2011-03-31 19:00:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55191-20110331185517.patch</filename>
            <type>text/plain</type>
            <size>50067</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI1MjkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MzJhYmI0NDJiZTdlMjlkMWYyMDgzMWMyYzE3MjczNjYy
ZTZmMTUzLi40ZDYxMTNiMjRiMWExNTY5ZDg3ZGQzMzc3NjI5OWFmMjJmNzk2MmE4IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTEtMDMtMzEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBj
b21wbGV0ZXMgdGhlIGNsZWFudXAgb2YKKyAgICAgICAgcmViYXNlbGluZS1jaHJvbWl1bS13ZWJr
aXQtdGVzdHMgdG8gd29yayB3aXRoIGFsbCBvZiB0aGUKKyAgICAgICAgdmFyaWFudHMgb2YgYSBw
bGF0Zm9ybSAod2UgY2FuIG5vdyByZWJhc2VsaW5lIGdwdS0gYW5kIG5vbi1ncHUKKyAgICAgICAg
ZmlsZXMgYXQgdGhlIHNhbWUgdGltZSkuCisKKyAgICAgICAgV2hlbiB0aGUgcmViYXNlbGluaW5n
IGlzIGNvbXBsZXRlLCBhbnkgbGluZXMgZGVjbGFyZWQgYXMKKyAgICAgICAgUkVCQVNFTElORSBp
biB0aGUgZXhwZWN0YXRpb25zIGZpbGUgdGhhdCBtYXRjaGVzIGEgdGVzdCB0aGF0IHdhcworICAg
ICAgICBhY3R1YWxseSByZWJhc2VsaW5lZCB3aWxsIGJlIGRlbGV0ZWQsIGV2ZW4gaWYgb25seSBv
bmUgb2YgdGhlCisgICAgICAgIHZhcmlhbnRzIHdhcyBhY3R1YWxseSByZWJhc2VsaW5lZC4gVGhp
cyBtYXkgY2F1c2Ugb2RkIHByb2JsZW1zLAorICAgICAgICBidXQgaXMgYmV0dGVyIHRoYW4gd2hl
cmUgd2UncmUgYXQgdG9kYXkuCisKKyAgICAgICAgQWxzbywgdGhpcyBwYXRjaCBkZWxldGVzIGEg
bG90IG9mIGNydWZ0IHRoYXQgaXMgbm8gbG9uZ2VyIG5lZWRlZAorICAgICAgICBpbiB0aGUgdGVz
dF9leHBlY3RhdGlvbnMgY29kZSBhbmQgdGhlIHBvcnQtc3BlY2lmaWMgY29kZS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxOTEKKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhw
ZWN0YXRpb25zLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xh
eW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdS5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xp
bnV4LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fbWFjLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0
cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5l
X2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weToKKwogMjAxMS0wMy0yOSAgRGlyayBQ
cmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkK
aW5kZXggN2QyYzkxYmI2ODI3OTAxMGE1MjQ5ZTE0OTA5NGViNjgzNjhiNzVkMC4uN2FlOTAyMDdh
MTQ5MTE3MGIyMTE0NWZmY2I5MjdiNjA0MTdiZGVjZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvdGVzdF9leHBlY3RhdGlvbnMucHkKQEAgLTE2Niw2ICsxNjYsOSBAQCBjbGFzcyBUZXN0RXhw
ZWN0YXRpb25zOgogICAgIGRlZiBoYXNfbW9kaWZpZXIoc2VsZiwgdGVzdCwgbW9kaWZpZXIpOgog
ICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMuaGFzX21vZGlmaWVyKHRlc3Qs
IG1vZGlmaWVyKQogCisgICAgZGVmIHJlbW92ZV9yZWJhc2VsaW5lZF90ZXN0cyhzZWxmLCB0ZXN0
cyk6CisgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5yZW1vdmVfcmViYXNl
bGluZWRfdGVzdHModGVzdHMpCisKIAogZGVmIHN0cmlwX2NvbW1lbnRzKGxpbmUpOgogICAgICIi
IlN0cmlwcyBjb21tZW50cyBmcm9tIGEgbGluZSBhbmQgcmV0dXJuIE5vbmUgaWYgdGhlIGxpbmUg
aXMgZW1wdHkKQEAgLTQzMiw2ICs0MzUsMTcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uc0ZpbGU6
CiAgICAgZGVmIGdldF9ub25fZmF0YWxfZXJyb3JzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5fbm9uX2ZhdGFsX2Vycm9ycwogCisgICAgZGVmIHJlbW92ZV9yZWJhc2VsaW5lZF90ZXN0cyhz
ZWxmLCB0ZXN0cyk6CisgICAgICAgICIiIlJldHVybnMgYSBjb3B5IG9mIHRoZSBleHBlY3RhdGlv
bnMgd2l0aCB0aGUgdGVzdHMgcmVtb3ZlZC4iIiIKKyAgICAgICAgbGluZW5vID0gMAorICAgICAg
ICBsaW5lcyA9IFtdCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuX2dldF9pdGVyYWJsZV9leHBl
Y3RhdGlvbnMoc2VsZi5fZXhwZWN0YXRpb25zKToKKyAgICAgICAgICAgIGxpbmVubyArPSAxCisg
ICAgICAgICAgICB0ZXN0LCBvcHRpb25zLCBfID0gc2VsZi5wYXJzZV9leHBlY3RhdGlvbnNfbGlu
ZShsaW5lLCBsaW5lbm8pCisgICAgICAgICAgICBpZiBub3QgKHRlc3QgYW5kIHRlc3QgaW4gdGVz
dHMgYW5kICdyZWJhc2VsaW5lJyBpbiBvcHRpb25zKToKKyAgICAgICAgICAgICAgICBsaW5lcy5h
cHBlbmQobGluZSkKKyAgICAgICAgcmV0dXJuICcnLmpvaW4obGluZXMpCisKICAgICBkZWYgcGFy
c2VfZXhwZWN0YXRpb25zX2xpbmUoc2VsZiwgbGluZSwgbGluZW5vKToKICAgICAgICAgIiIiUGFy
c2VzIGEgbGluZSBmcm9tIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBhbmQgcmV0dXJucyBhIHR1cGxl
CiAgICAgICAgIHdpdGggdGhlIHRlc3QgcGF0aCwgb3B0aW9ucyBhcyBhIGxpc3QsIGV4cGVjdGF0
aW9ucyBhcyBhIGxpc3QuIiIiCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3Rf
ZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CmluZGV4IGRmMzY0YTBlZjg5YzVjNDEwNzc4YzVjN2Uy
NmZmNzFhOTY2NTdjYmYuLjA4MzMwNzkzYjE3Zjc3MGRmZTcyZTI5ZGI4NzNhNWZkYjdjNDRjNmYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3Vu
aXR0ZXN0LnB5CkBAIC0zNzcsNyArMzc3LDE5IEBAIEJVR19URVNUIFdJTi1YUCA6IHBhc3Nlcy90
ZXh0Lmh0bWwgPSBURVhUCiAKIGNsYXNzIFJlYmFzZWxpbmluZ1Rlc3QoQmFzZSk6CiAgICAgIiIi
VGVzdCByZWJhc2VsaW5pbmctc3BlY2lmaWMgZnVuY3Rpb25hbGl0eS4iIiIKLSAgICAjIEZJWE1F
OiBhZGQgaW4gdGVzdHMgb25jZSB3ZSBhcmUgYWN0dWFsbHkgZGVsZXRpbmcgbGluZXMgYWdhaW4u
CisgICAgZGVmIGFzc2VydFJlbW92ZShzZWxmLCBpbnB1dF9leHBlY3RhdGlvbnMsIHRlc3RzLCBl
eHBlY3RlZF9leHBlY3RhdGlvbnMpOgorICAgICAgICBzZWxmLnBhcnNlX2V4cChpbnB1dF9leHBl
Y3RhdGlvbnMpCisgICAgICAgIGFjdHVhbF9leHBlY3RhdGlvbnMgPSBzZWxmLl9leHAucmVtb3Zl
X3JlYmFzZWxpbmVkX3Rlc3RzKHRlc3RzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVj
dGVkX2V4cGVjdGF0aW9ucywgYWN0dWFsX2V4cGVjdGF0aW9ucykKKworICAgIGRlZiB0ZXN0X3Jl
bW92ZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSZW1vdmUoJ0JVR1ggUkVCQVNFTElORSA6
IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFRcbicKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ0JVR1kgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sID0gSU1BR0VcbicK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JVR1ogUkVCQVNFTElORSA6IGZhaWx1cmVzL2V4
cGVjdGVkL2NyYXNoLmh0bWwgPSBDUkFTSFxuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
WydmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ0JVR1kgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sID0gSU1BR0VcbicKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ0JVR1ogUkVCQVNFTElORSA6IGZhaWx1cmVzL2V4cGVjdGVk
L2NyYXNoLmh0bWwgPSBDUkFTSFxuJykKKwogICAgIGRlZiB0ZXN0X25vX2dldF9yZWJhc2VsaW5p
bmdfZmFpbHVyZXMoc2VsZik6CiAgICAgICAgIHNlbGYucGFyc2VfZXhwKHNlbGYuZ2V0X2Jhc2lj
X2V4cGVjdGF0aW9ucygpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9leHAu
Z2V0X3JlYmFzZWxpbmluZ19mYWlsdXJlcygpKSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCBkZWExMjZmODViNTdjMDdjZmUy
OTQ0MGUzYTA4MTZkNmI5ZTlmMGE5Li4wOWFlNmM0OTcwN2JmNDA3NmU3MmE5OTkwZmYwYTUxZTk3
NWM0ZWVhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9iYXNlLnB5CkBAIC05MCw3ICs5MCwxNiBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAg
ICAgICAgICAgIGNvbmZpZz1Ob25lLAogICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAg
ICAgIHNlbGYuX25hbWUgPSBwb3J0X25hbWUKLSAgICAgICAgc2VsZi5fYXJjaGl0ZWN0dXJlID0g
J3g4NicKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ19vcGVyYXRpbmdfc3lzdGVtJyk6
CisgICAgICAgICAgICAjIFdlIGRvbid0IGxvb2sgYXQgc3lzLnBsYXRmb3JtIGJlY2F1c2UgdGhl
IHJlc3VsdHMgc2hvdWxkIGJlCisgICAgICAgICAgICAjIGRldGVybWluaXN0aWMuIFRoaXMgaXMg
YSBkZWZhdWx0IHZhbHVlLCBvYnZpb3VzbHkuCisgICAgICAgICAgICBzZWxmLl9vcGVyYXRpbmdf
c3lzdGVtID0gJ21hYycKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ192ZXJzaW9uJyk6
CisgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gJycKKyAgICAgICAgaWYgbm90IGhhc2F0dHIo
c2VsZiwgJ19hcmNoaXRlY3R1cmUnKToKKyAgICAgICAgICAgIHNlbGYuX2FyY2hpdGVjdHVyZSA9
ICd4ODYnCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfZ3JhcGhpY3NfdHlwZScpOgor
ICAgICAgICAgICAgc2VsZi5fZ3JhcGhpY3NfdHlwZSA9ICdjcHUnCiAgICAgICAgIHNlbGYuX29w
dGlvbnMgPSBvcHRpb25zCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMgaXMgTm9uZToKICAgICAg
ICAgICAgICMgRklYTUU6IElkZWFsbHkgd2UnZCBoYXZlIGEgcGFja2FnZS13aWRlIHdheSB0byBn
ZXQgYQpAQCAtNDgxLDE2ICs0OTAsMjcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBz
ZWxmLl9maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KCpwYXRoKQogCiAgICAgZGVmIG5h
bWUoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgbmFtZSBvZiB0aGUgcG9ydCAoZS5nLiwg
J21hYycsICdjaHJvbWl1bS13aW4teHAnKS4KLQotICAgICAgICBOb3RlIHRoYXQgdGhpcyBpcyBk
aWZmZXJlbnQgZnJvbSB0aGUgdGVzdF9wbGF0Zm9ybV9uYW1lKCksIHdoaWNoCi0gICAgICAgIG1h
eSBiZSBkaWZmZXJlbnQgKGUuZy4sICd3aW4teHAnIGluc3RlYWQgb2YgJ2Nocm9taXVtLXdpbi14
cCcuIiIiCisgICAgICAgICIiIlJldHVybiB0aGUgbmFtZSBvZiB0aGUgcG9ydCAoZS5nLiwgJ21h
YycsICdjaHJvbWl1bS13aW4teHAnKS4iIiIKICAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKIAor
ICAgIGRlZiBvcGVyYXRpbmdfc3lzdGVtKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fb3Bl
cmF0aW5nX3N5c3RlbQorCisgICAgZGVmIHZlcnNpb24oc2VsZik6CisgICAgICAgICIiIlJldHVy
bnMgYSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgdmVyc2lvbiBvZiBhIGdpdmVuIHBsYXRmb3JtLCBl
LmcuCisgICAgICAgICdsZW9wYXJkJyBvciAneHAnLgorCisgICAgICAgIFRoaXMgaXMgdXNlZCB0
byBoZWxwIGlkZW50aWZ5IHRoZSBleGFjdCBwb3J0IHdoZW4gcGFyc2luZyB0ZXN0CisgICAgICAg
IGV4cGVjdGF0aW9ucywgZGV0ZXJtaW5pbmcgc2VhcmNoIHBhdGhzLCBhbmQgbG9nZ2luZyBpbmZv
cm1hdGlvbi4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ZlcnNpb24KKwogICAgIGRlZiBncmFw
aGljc190eXBlKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHdoZXRoZXIgdGhlIHBvcnQgdXNl
cyBhY2NlbGVyYXRlZCBncmFwaGljcyAoJ2dwdScpIG9yIG5vdAogICAgICAgICAoJ2NwdScpLiIi
IgotICAgICAgICByZXR1cm4gJ2NwdScKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dyYXBoaWNzX3R5
cGUKKworICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9h
cmNoaXRlY3R1cmUKIAogICAgIGRlZiByZWFsX25hbWUoc2VsZik6CiAgICAgICAgICIiIlJldHVy
bnMgdGhlIGFjdHVhbCBuYW1lIG9mIHRoZSBwb3J0LCBub3QgdGhlIGRlbGVnYXRlJ3MuIiIiCkBA
IC02MzEsNiArNjUxLDE0IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBkZWYgYWxsX3Rlc3Rf
Y29uZmlndXJhdGlvbnMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnRlc3RfY29uZmlndXJh
dGlvbigpLmFsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKCkKIAorICAgIGRlZiBhbGxfYmFzZWxpbmVf
dmFyaWFudHMoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgYSBsaXN0IG9mIHBsYXRmb3JtIG5h
bWVzIHN1ZmZpY2llbnQgdG8gY292ZXIgYWxsIHRoZSBiYXNlbGluZXMuCisKKyAgICAgICAgVGhl
IGxpc3Qgc2hvdWxkIGJlIHNvcnRlZCBzbyB0aGF0IGEgbGF0ZXIgcGxhdGZvcm0gIHdpbGwgcmV1
c2UKKyAgICAgICAgYW4gZWFybGllciBwbGF0Zm9ybSdzIGJhc2VsaW5lcyBpZiB0aGV5IGFyZSB0
aGUgc2FtZSAoZS5nLiwKKyAgICAgICAgJ3Nub3dsZW9wYXJkJyBzaG91bGQgcHJlY2VkZSAnbGVv
cGFyZCcpLiIiIgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKICAgICBkZWYg
dGVzdF9leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAgICIiIlJldHVybnMgdGhlIHRlc3QgZXhw
ZWN0YXRpb25zIGZvciB0aGlzIHBvcnQuCiAKQEAgLTY0NywzOSArNjc1LDYgQEAgY2xhc3MgUG9y
dChvYmplY3QpOgogICAgICAgICBzeW5jIHVwIHRoZSB0d28gcmVwb3MuIiIiCiAgICAgICAgIHJl
dHVybiBOb25lCiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICAi
IiJSZXR1cm5zIHRoZSBzdHJpbmcgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgZ2l2ZW4gcGxhdGZv
cm0gbmFtZQotICAgICAgICBpbiB0aGUgdGVzdCBleHBlY3RhdGlvbnMuIFRoaXMgbWF5IGJlIHRo
ZSBzYW1lIGFzIG5hbWUoKSwgb3IgaXQKLSAgICAgICAgbWF5IGJlIGRpZmZlcmVudC4gRm9yIGV4
YW1wbGUsIGNocm9taXVtIHJldHVybnMgJ21hYycgZm9yCi0gICAgICAgICdjaHJvbWl1bS1tYWMn
LiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LnRlc3RfcGxhdGZv
cm1fbmFtZScpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybXMoc2VsZik6Ci0gICAgICAgICIiIlJl
dHVybnMgdGhlIGxpc3Qgb2YgdGVzdCBwbGF0Zm9ybSBpZGVudGlmaWVycyBhcyB1c2VkIGluIHRo
ZQotICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucyBhbmQgb24gZGFzaGJvYXJkcywgdGhlIHJlYmFz
ZWxpbmluZyB0b29sLCBldGMuCi0KLSAgICAgICAgTm90ZSB0aGF0IHRoaXMgaXMgbm90IG5lY2Vz
c2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBsaXN0IG9mIHBvcnRzLAotICAgICAgICB3aGljaCBtdXN0
IGJlIGdsb2JhbGx5IHVuaXF1ZSAoZS5nLiwgYm90aCAnY2hyb21pdW0tbWFjJyBhbmQgJ21hYycK
LSAgICAgICAgbWlnaHQgcmV0dXJuICdtYWMnIGFzIGEgdGVzdF9wbGF0Zm9ybSBuYW1lJy4iIiIK
LSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5wbGF0Zm9ybXMnKQotCi0g
ICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1lKHNlbGYsIHRlc3RfcGxhdGZvcm1fbmFt
ZSk6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIFBvcnQgcGxhdGZvcm0gbmFtZSB0aGF0IGNvcnJl
c3BvbmRzIHRvIHRoZSBuYW1lIGFzCi0gICAgICAgIHJlZmVyZW5jZWQgaW4gdGhlIGV4cGVjdGF0
aW9ucyBmaWxlLiBFLmcuLCAibWFjIiByZXR1cm5zCi0gICAgICAgICJjaHJvbWl1bS1tYWMiIG9u
IHRoZSBDaHJvbWl1bSBwb3J0cy4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cignUG9ydC50ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZScpCi0KLSAgICBkZWYgYXJjaGl0ZWN0
dXJlKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fYXJjaGl0ZWN0dXJlCi0KLSAgICBkZWYg
dmVyc2lvbihzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyBhIHN0cmluZyBpbmRpY2F0aW5nIHRo
ZSB2ZXJzaW9uIG9mIGEgZ2l2ZW4gcGxhdGZvcm0sIGUuZy4KLSAgICAgICAgJ2xlb3BhcmQnIG9y
ICd4cCcuCi0KLSAgICAgICAgVGhpcyBpcyB1c2VkIHRvIGhlbHAgaWRlbnRpZnkgdGhlIGV4YWN0
IHBvcnQgd2hlbiBwYXJzaW5nIHRlc3QKLSAgICAgICAgZXhwZWN0YXRpb25zLCBkZXRlcm1pbmlu
ZyBzZWFyY2ggcGF0aHMsIGFuZCBsb2dnaW5nIGluZm9ybWF0aW9uLiIiIgotICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LnZlcnNpb24nKQotCiAgICAgZGVmIHRlc3RfcmVw
b3NpdG9yeV9wYXRocyhzZWxmKToKICAgICAgICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgKHJlcG9z
aXRvcnlfbmFtZSwgcmVwb3NpdG9yeV9wYXRoKSB0dXBsZXMKICAgICAgICAgb2YgaXRzIGRlcGVu
ZGluZyBjb2RlIGJhc2UuICBCeSBkZWZhdWx0IGl0IHJldHVybnMgYSBsaXN0IHRoYXQgb25seQpA
QCAtOTU2LDE1ICs5NTEsOCBAQCBjbGFzcyBEcml2ZXI6CiBjbGFzcyBUZXN0Q29uZmlndXJhdGlv
bihvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0PU5vbmUsIG9zPU5vbmUsIHZl
cnNpb249Tm9uZSwgYXJjaGl0ZWN0dXJlPU5vbmUsCiAgICAgICAgICAgICAgICAgIGJ1aWxkX3R5
cGU9Tm9uZSwgZ3JhcGhpY3NfdHlwZT1Ob25lKToKLQotICAgICAgICAjIEZJWE1FOiBXZSBjYW4g
Z2V0IHRoZSBPL1MgYW5kIHZlcnNpb24gZnJvbSB0ZXN0X3BsYXRmb3JtX25hbWUoKQotICAgICAg
ICAjIGFuZCB2ZXJzaW9uKCkgZm9yIG5vdywgYnV0IHRob3NlIHNob3VsZCBnbyBhd2F5IGFuZCBi
ZSBjbGVhbmVkIHVwCi0gICAgICAgICMgd2l0aCBtb3JlIGdlbmVyaWMgbWV0aG9kcyBsaWtlIG9w
ZXJhdGlvbl9zeXN0ZW0oKSBhbmQgb3NfdmVyc2lvbigpCi0gICAgICAgICMgb3Igc29tZXRoaW5n
LgotICAgICAgICBpZiBwb3J0OgotICAgICAgICAgICAgcG9ydF92ZXJzaW9uID0gcG9ydC52ZXJz
aW9uKCkKLSAgICAgICAgc2VsZi5vcyA9IG9zIG9yIHBvcnQudGVzdF9wbGF0Zm9ybV9uYW1lKCku
cmVwbGFjZSgnLScgKyBwb3J0X3ZlcnNpb24sICcnKQotICAgICAgICBzZWxmLnZlcnNpb24gPSB2
ZXJzaW9uIG9yIHBvcnRfdmVyc2lvbgorICAgICAgICBzZWxmLm9zID0gb3Mgb3IgcG9ydC5vcGVy
YXRpbmdfc3lzdGVtKCkKKyAgICAgICAgc2VsZi52ZXJzaW9uID0gdmVyc2lvbiBvciBwb3J0LnZl
cnNpb24oKQogICAgICAgICBzZWxmLmFyY2hpdGVjdHVyZSA9IGFyY2hpdGVjdHVyZSBvciBwb3J0
LmFyY2hpdGVjdHVyZSgpCiAgICAgICAgIHNlbGYuYnVpbGRfdHlwZSA9IGJ1aWxkX3R5cGUgb3Ig
cG9ydC5fb3B0aW9ucy5jb25maWd1cmF0aW9uLmxvd2VyKCkKICAgICAgICAgc2VsZi5ncmFwaGlj
c190eXBlID0gZ3JhcGhpY3NfdHlwZSBvciBwb3J0LmdyYXBoaWNzX3R5cGUoKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0
ZXN0LnB5CmluZGV4IGVmOTA0ODRjYTgzYjE3MTc5NDMwMjBiMWQ0M2M5MmQ3MTY4MDMwODIuLjQx
ZTc1ZWFmZTEyMTM0YzhiMjY4NjM0NjQxNTJjYjdhMmI2NzIxNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3Qu
cHkKQEAgLTI0NywxMyArMjQ3LDggQEAgY2xhc3MgVmlydHVhbFRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5jcmVhdGVfZHJpdmVyLCAwKQog
ICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5kaWZmX2ltYWdlLCBOb25lLCBOb25lKQog
ICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25z
X2ZpbGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnRlc3RfcGxhdGZvcm1fbmFt
ZSkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQucmVzdWx0c19kaXJlY3RvcnkpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnRlc3RfZXhwZWN0YXRpb25zKQotICAgICAg
ICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3JtX25hbWUpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VmlydHVhbChwb3J0LnRlc3RfcGxhdGZvcm1zKQotICAgICAgICBzZWxmLmFzc2Vy
dFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZSwgTm9uZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQudmVyc2lvbikKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0
dWFsKHBvcnQuX3BhdGhfdG9fYXBhY2hlKQogICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9y
dC5fcGF0aF90b19hcGFjaGVfY29uZmlnX2ZpbGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVh
bChwb3J0Ll9wYXRoX3RvX2RyaXZlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IGQwOGMwYmRiNTk0ZGM2MTEwNmYy
MDRlMGVmMWJiZWU4ZDZhMzUwNTguLjFhYWUyNjkyNmU2NzAwNmYxYjFmZDg5ZTdlNGVjNDY5OGVm
MTNhZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bS5weQpAQCAtNTEsNiArNTEsMTIgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKCJ3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5jaHJvbWl1bSIpCiAjIEZJWE1FOiBUaGlz
IGZ1bmN0aW9uIGRvZXNuJ3QgYmVsb25nIGluIHRoaXMgcGFja2FnZS4KIGNsYXNzIENocm9taXVt
UG9ydChiYXNlLlBvcnQpOgogICAgICIiIkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIENocm9taXVt
IGltcGxlbWVudGF0aW9ucyBvZiB0aGUgUG9ydCBjbGFzcy4iIiIKKyAgICBBTExfQkFTRUxJTkVf
VkFSSUFOVFMgPSBbCisgICAgICAgICdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnLCAnY2hyb21p
dW0tbWFjLWxlb3BhcmQnLAorICAgICAgICAnY2hyb21pdW0td2luLXdpbjcnLCAnY2hyb21pdW0t
d2luLXZpc3RhJywgJ2Nocm9taXVtLXdpbi14cCcsCisgICAgICAgICdjaHJvbWl1bS1saW51eCcs
ICdjaHJvbWl1bS1saW51eC14ODZfNjQnLAorICAgICAgICAnY2hyb21pdW0tZ3B1LW1hYy1sZW9w
YXJkJywgJ2Nocm9taXVtLWdwdS13aW4teHAnLCAnY2hyb21pdW0tZ3B1LWxpbnV4JywKKyAgICBd
CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBiYXNlLlBvcnQu
X19pbml0X18oc2VsZiwgKiprd2FyZ3MpCkBAIC0yMzAsNiArMjM2LDkgQEAgY2xhc3MgQ2hyb21p
dW1Qb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICAjIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcv
aXNzdWUxNzMxNzE3CiAgICAgICAgICAgICBzZWxmLl9oZWxwZXIud2FpdCgpCiAKKyAgICBkZWYg
YWxsX2Jhc2VsaW5lX3ZhcmlhbnRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5BTExfQkFT
RUxJTkVfVkFSSUFOVFMKKwogICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAg
ICAgIiIiUmV0dXJucyB0aGUgdGVzdCBleHBlY3RhdGlvbnMgZm9yIHRoaXMgcG9ydC4KIApAQCAt
MjUxLDcgKzI2MCw2IEBAIGNsYXNzIENocm9taXVtUG9ydChiYXNlLlBvcnQpOgogICAgIGRlZiBz
a2lwcGVkX2xheW91dF90ZXN0cyhzZWxmLCBleHRyYV90ZXN0X2ZpbGVzPU5vbmUpOgogICAgICAg
ICBleHBlY3RhdGlvbnNfc3RyID0gc2VsZi50ZXN0X2V4cGVjdGF0aW9ucygpCiAgICAgICAgIG92
ZXJyaWRlc19zdHIgPSBzZWxmLnRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcygpCi0gICAgICAg
IHRlc3RfcGxhdGZvcm1fbmFtZSA9IHNlbGYudGVzdF9wbGF0Zm9ybV9uYW1lKCkKICAgICAgICAg
aXNfZGVidWdfbW9kZSA9IEZhbHNlCiAKICAgICAgICAgYWxsX3Rlc3RfZmlsZXMgPSBzZWxmLnRl
c3RzKFtdKQpAQCAtMjY1LDE3ICsyNzMsNiBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0
KToKICAgICAgICAgcmV0dXJuIFtzZWxmLnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUodGVzdCkKICAg
ICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBleHBlY3RhdGlvbnMuZ2V0X3Rlc3RzX3dpdGhfcmVz
dWx0X3R5cGUodGVzdF9leHBlY3RhdGlvbnMuU0tJUCldCiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9y
bV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3ds
ZW9wYXJkJywKLSAgICAgICAgICAgICAgICAnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4td2lu
NycsCi0gICAgICAgICAgICAgICAgJ2xpbnV4JykKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25h
bWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUpOgotICAgICAgICBpZiB0ZXN0X3Bs
YXRmb3JtX25hbWUgaW4gc2VsZi50ZXN0X3BsYXRmb3JtX25hbWVzKCk6Ci0gICAgICAgICAgICBy
ZXR1cm4gJ2Nocm9taXVtLScgKyB0ZXN0X3BsYXRmb3JtX25hbWUKLSAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignVW5zdXBwb3J0ZWQgdGVzdF9wbGF0Zm9ybV9uYW1lOiAlcycgJQotICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfcGxhdGZvcm1fbmFtZSkKLQogICAgIGRlZiB0ZXN0X3JlcG9z
aXRvcnlfcGF0aHMoc2VsZik6CiAgICAgICAgICMgTm90ZTogZm9yIEpTT04gZmlsZSdzIGJhY2t3
YXJkLWNvbXBhdGliaWxpdHkgd2UgdXNlICdjaHJvbWUnIHJhdGhlcgogICAgICAgICAjIHRoYW4g
J2Nocm9taXVtJyBoZXJlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdS5weQppbmRleCAxNjdmMjNlYzRiZmExNDIwMmU2
ZmQ3OTZmZTExMmJmNTQwYmRmNzA5Li5mZmMyY2Y3NGNjNzU0NjczZjcxNzc0YmM4NGUyOWI2NDMy
YzY1ZmRmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX2dwdS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX2dwdS5weQpAQCAtNjAsNiArNjAsNyBAQCBkZWYgZ2V0KHBsYXRm
b3JtPU5vbmUsIHBvcnRfbmFtZT0nY2hyb21pdW0tZ3B1JywgKiprd2FyZ3MpOgogIyBGSVhNRTog
VGhlc2Ugc2hvdWxkIHJlYWxseSBiZSBhIG1peGluIGNsYXNzLgogCiBkZWYgX3NldF9ncHVfb3B0
aW9ucyhwb3J0KToKKyAgICBwb3J0Ll9ncmFwaGljc190eXBlID0gJ2dwdScKICAgICBpZiBwb3J0
LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nJykgaXMgTm9uZToKICAgICAgICAg
cG9ydC5fb3B0aW9ucy5hY2NlbGVyYXRlZF9jb21wb3NpdGluZyA9IFRydWUKICAgICBpZiBwb3J0
LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVkXzJkX2NhbnZhcycpIGlzIE5vbmU6CkBAIC04NCwxNyAr
ODUsNiBAQCBkZWYgX3Rlc3RzKHBvcnQsIHBhdGhzKToKICAgICByZXR1cm4gdGVzdF9maWxlcy5m
aW5kKHBvcnQsIHBhdGhzKQogCiAKLWRlZiBfdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAg
ICByZXR1cm4gKCdtYWMnLCAnd2luJywgJ2xpbnV4JykKLQotCi1kZWYgX3Rlc3RfcGxhdGZvcm1f
bmFtZV90b19uYW1lKHNlbGYsIHRlc3RfcGxhdGZvcm1fbmFtZSk6Ci0gICAgaWYgdGVzdF9wbGF0
Zm9ybV9uYW1lIGluIHNlbGYudGVzdF9wbGF0Zm9ybV9uYW1lcygpOgotICAgICAgICByZXR1cm4g
J2Nocm9taXVtLWdwdS0nICsgdGVzdF9wbGF0Zm9ybV9uYW1lCi0gICAgcmFpc2UgVmFsdWVFcnJv
cignVW5zdXBwb3J0ZWQgdGVzdF9wbGF0Zm9ybV9uYW1lOiAlcycgJQotICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9wbGF0Zm9ybV9uYW1lKQotCi0KIGNsYXNzIENocm9taXVtR3B1TGludXhQb3J0
KGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KToKICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcG9ydF9uYW1lPSdjaHJvbWl1bS1ncHUtbGludXgnLCAqKmt3YXJncyk6CiAgICAgICAgIGNo
cm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1w
b3J0X25hbWUsICoqa3dhcmdzKQpAQCAtMTEyLDIxICsxMDIsOSBAQCBjbGFzcyBDaHJvbWl1bUdw
dUxpbnV4UG9ydChjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCk6CiAgICAgZGVmIGRl
ZmF1bHRfY2hpbGRfcHJvY2Vzc2VzKHNlbGYpOgogICAgICAgICByZXR1cm4gMQogCi0gICAgZGVm
IGdyYXBoaWNzX3R5cGUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnZ3B1JwotCiAgICAgZGVmIHRl
c3RzKHNlbGYsIHBhdGhzKToKICAgICAgICAgcmV0dXJuIF90ZXN0cyhzZWxmLCBwYXRocykKIAot
ICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnbGludXgn
Ci0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIF90
ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lX3Rv
X25hbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBfdGVzdF9wbGF0Zm9ybV9uYW1lX3Rv
X25hbWUoc2VsZiwgbmFtZSkKLQogCiBjbGFzcyBDaHJvbWl1bUdwdU1hY1BvcnQoY2hyb21pdW1f
bWFjLkNocm9taXVtTWFjUG9ydCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT0n
Y2hyb21pdW0tZ3B1LW1hYycsICoqa3dhcmdzKToKQEAgLTE0NCwyMSArMTIyLDkgQEAgY2xhc3Mg
Q2hyb21pdW1HcHVNYWNQb3J0KGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQpOgogICAgIGRl
ZiBkZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAgICAgcmV0dXJuIDEKIAotICAg
IGRlZiBncmFwaGljc190eXBlKHNlbGYpOgotICAgICAgICByZXR1cm4gJ2dwdScKLQogICAgIGRl
ZiB0ZXN0cyhzZWxmLCBwYXRocyk6CiAgICAgICAgIHJldHVybiBfdGVzdHMoc2VsZiwgcGF0aHMp
CiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gJ21h
YycKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYpOgotICAgICAgICByZXR1cm4g
X3Rlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZikKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVf
dG9fbmFtZShzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0dXJuIF90ZXN0X3BsYXRmb3JtX25hbWVf
dG9fbmFtZShzZWxmLCBuYW1lKQotCiAKIGNsYXNzIENocm9taXVtR3B1V2luUG9ydChjaHJvbWl1
bV93aW4uQ2hyb21pdW1XaW5Qb3J0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1l
PSdjaHJvbWl1bS1ncHUtd2luJywgKiprd2FyZ3MpOgpAQCAtMTc2LDE3ICsxNDIsNSBAQCBjbGFz
cyBDaHJvbWl1bUdwdVdpblBvcnQoY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCk6CiAgICAg
ZGVmIGRlZmF1bHRfY2hpbGRfcHJvY2Vzc2VzKHNlbGYpOgogICAgICAgICByZXR1cm4gMQogCi0g
ICAgZGVmIGdyYXBoaWNzX3R5cGUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnZ3B1JwotCiAgICAg
ZGVmIHRlc3RzKHNlbGYsIHBhdGhzKToKICAgICAgICAgcmV0dXJuIF90ZXN0cyhzZWxmLCBwYXRo
cykKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAn
d2luJwotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVy
biBfdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKQotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFt
ZV90b19uYW1lKHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gX3Rlc3RfcGxhdGZvcm1fbmFt
ZV90b19uYW1lKHNlbGYsIG5hbWUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weQppbmRleCAyY2QyNDM1MTUz
NzZmOTI3NjBlZDJjYzNhMTNiMjJmZmUwYjE3OTc2Li4wNmFmNWVlOThlOGY5ZDA4NzMwYTZhMGU3
NTc3ZmJlOTA4Nzg3YmVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgucHkKQEAgLTQ3LDE5ICs0NywyMCBA
QCBjbGFzcyBDaHJvbWl1bUxpbnV4UG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAg
ICAneDg2JzogWydjaHJvbWl1bS1saW51eCcsICdjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0nLCAn
d2luJywgJ21hYyddLAogICAgIH0KIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9
Tm9uZSwgcmViYXNlbGluaW5nPUZhbHNlLCAqKmt3YXJncyk6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBvcnRfbmFtZT1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIHBvcnRfbmFtZSA9IHBvcnRf
bmFtZSBvciAnY2hyb21pdW0tbGludXgnCisgICAgICAgIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0g
PSAnbGludXgnCisgICAgICAgICMgRklYTUU6IGFkZCBzdXBwb3J0IGZvciAnbHVjaWQnCisgICAg
ICAgIHNlbGYuX3ZlcnNpb24gPSAnaGFyZHknCiAgICAgICAgIGNocm9taXVtLkNocm9taXVtUG9y
dC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKIAogICAgICAg
ICAjIFdlIHJlLXNldCB0aGUgcG9ydCBuYW1lIG9uY2UgdGhlIGJhc2Ugb2JqZWN0IGlzIGZ1bGx5
IGluaXRpYWxpemVkCiAgICAgICAgICMgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBmaW5kIHRoZSBE
UlQgYmluYXJ5IHByb3Blcmx5LgotICAgICAgICBpZiBwb3J0X25hbWUuZW5kc3dpdGgoJy1saW51
eCcpIGFuZCBub3QgcmViYXNlbGluaW5nOgorICAgICAgICBpZiBwb3J0X25hbWUuZW5kc3dpdGgo
Jy1saW51eCcpOgogICAgICAgICAgICAgc2VsZi5fYXJjaGl0ZWN0dXJlID0gc2VsZi5fZGV0ZXJt
aW5lX2FyY2hpdGVjdHVyZSgpCiAgICAgICAgICAgICAjIEZJWE1FOiB0aGlzIGlzIGFuIHVnbHkg
aGFjayB0byBhdm9pZCByZW5hbWluZyB0aGUgR1BVIHBvcnQuCiAgICAgICAgICAgICBpZiBwb3J0
X25hbWUgPT0gJ2Nocm9taXVtLWxpbnV4JzoKICAgICAgICAgICAgICAgICBwb3J0X25hbWUgPSBw
b3J0X25hbWUgKyAnLScgKyBzZWxmLl9hcmNoaXRlY3R1cmUKLSAgICAgICAgZWxpZiByZWJhc2Vs
aW5pbmc6Ci0gICAgICAgICAgICBzZWxmLl9hcmNoaXRlY3R1cmUgPSAneDg2JwogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgYmFzZSwgYXJjaCA9IHBvcnRfbmFtZS5yc3BsaXQoJy0nLCAxKQog
ICAgICAgICAgICAgYXNzZXJ0IGJhc2UgaW4gKCdjaHJvbWl1bS1saW51eCcsICdjaHJvbWl1bS1n
cHUtbGludXgnKQpAQCAtMTE0LDE0ICsxMTUsNiBAQCBjbGFzcyBDaHJvbWl1bUxpbnV4UG9ydChj
aHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICAgICAgICAgICAgICAgICAnTGludXhCdWls
ZEluc3RydWN0aW9ucycpCiAgICAgICAgIHJldHVybiByZXN1bHQKIAotICAgIGRlZiB0ZXN0X3Bs
YXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgICMgV2UgdXNlICdsaW51eCcgaW5zdGVhZCBvZiAn
Y2hyb21pdW0tbGludXgnIGluIHRlc3RfZXhwZWN0YXRpb25zLnR4dC4KLSAgICAgICAgcmV0dXJu
ICdsaW51eCcKLQotICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgotICAgICAgICAjIEZJWE1FOiBhZGQg
c3VwcG9ydCBmb3IgTHVjaWQuCi0gICAgICAgIHJldHVybiAnaGFyZHknCi0KICAgICAjCiAgICAg
IyBQUk9URUNURUQgTUVUSE9EUwogICAgICMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKaW5kZXggMTQxYjU4Nzlj
OGI0NzJlMmEzOGRkNzU3NGQyMzVlMzhhZTQyMTM5Zi4uZjMxNzVjYjFhNDMwZTZmOWQ3ZjgyOTdi
YWQ1NTdmMDU3OWI4ZTM0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKQEAgLTYwLDM3ICs2MCwyMSBAQCBj
bGFzcyBDaHJvbWl1bU1hY1BvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgICAg
ICdtYWMtc25vd2xlb3BhcmQnLAogICAgICAgICAgICAgJ21hYycsCiAgICAgICAgIF0sCi0gICAg
ICAgICcnOiBbCi0gICAgICAgICAgICAnY2hyb21pdW0tbWFjJywKLSAgICAgICAgICAgICdjaHJv
bWl1bScsCi0gICAgICAgICAgICAnbWFjJywKLSAgICAgICAgXSwKICAgICB9CiAKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9zX3ZlcnNpb25fc3RyaW5nPU5vbmUsIHJl
YmFzZWxpbmluZz1GYWxzZSwgKiprd2FyZ3MpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0
X25hbWU9Tm9uZSwgb3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICAj
IFdlJ3JlIGEgbGl0dGxlIGdlbmVyaWMgaGVyZSBiZWNhdXNlIHRoaXMgY29kZSBpcyByZXVzZWQg
YnkgdGhlCiAgICAgICAgICMgJ2dvb2dsZS1jaHJvbWUnIHBvcnQgYXMgd2VsbCBhcyB0aGUgJ21v
Y2stJyBhbmQgJ2RyeXJ1bi0nIHBvcnRzLgogICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUg
b3IgJ2Nocm9taXVtLW1hYycKIAogICAgICAgICBpZiBwb3J0X25hbWUuZW5kc3dpdGgoJy1tYWMn
KToKLSAgICAgICAgICAgICMgRklYTUU6IFRoZSByZWJhc2VsaW5pbmcgZmxhZyBpcyBhbiB1Z2x5
IGhhY2sgdGhhdCBsZXRzIHVzIGNyZWF0ZSBhbgotICAgICAgICAgICAgIyAiY2hyb21pdW0tbWFj
IiBwb3J0IHRoYXQgaXMgbm90IHZlcnNpb24tc3BlY2lmaWMuIEl0IHNob3VsZCBvbmx5IGJlCi0g
ICAgICAgICAgICAjIHVzZWQgYnkgcmViYXNlbGluZS1jaHJvbWl1bS13ZWJraXQtdGVzdHMgdG8g
ZXhwbGljaXRseSBwdXQgZmlsZXMgaW50bwotICAgICAgICAgICAgIyB0aGUgZ2VuZXJpYyBkaXJl
Y3RvcnkuIEluIHRoZW9yeSB3ZSBzaG91bGRuJ3QgbmVlZCB0aGlzLCBiZWNhdXNlCi0gICAgICAg
ICAgICAjIHRoZSBuZXdlc3QgbWFjIHBvcnQgc2hvdWxkIGJlIHVzaW5nICdjaHJvbWl1bS1tYWMn
IGFzIHRoZSBiYXNlbGluZQotICAgICAgICAgICAgIyBkaXJlY3RvcnkuIEhvd2V2ZXIsIHdlIGFs
c28gZG9uJ3QgaGF2ZSBzdGFibGUgU0wgYm90cyA6KAotICAgICAgICAgICAgIwotICAgICAgICAg
ICAgIyBXaGVuIHdlIHJlbW92ZSB0aGlzIEZJWE1FLCB3ZSBhbHNvIG5lZWQgdG8gcmVtb3ZlICcn
IGFzIGEgdmFsaWQKLSAgICAgICAgICAgICMgZmFsbGJhY2sga2V5IGluIHNlbGYuRkFMTEJBQ0tf
UEFUSFMuCi0gICAgICAgICAgICBpZiByZWJhc2VsaW5pbmc6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fdmVyc2lvbiA9ICcnCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYu
X3ZlcnNpb24gPSBtYWMub3NfdmVyc2lvbihvc192ZXJzaW9uX3N0cmluZywgc2VsZi5TVVBQT1JU
RURfT1NfVkVSU0lPTlMpCi0gICAgICAgICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lICsg
Jy0nICsgc2VsZi5fdmVyc2lvbgorICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IG1hYy5vc192
ZXJzaW9uKG9zX3ZlcnNpb25fc3RyaW5nLCBzZWxmLlNVUFBPUlRFRF9PU19WRVJTSU9OUykKKyAg
ICAgICAgICAgIHBvcnRfbmFtZSA9IHBvcnRfbmFtZSArICctJyArIHNlbGYuX3ZlcnNpb24KICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBwb3J0X25hbWVbcG9ydF9u
YW1lLmluZGV4KCctbWFjLScpICsgNTpdCiAgICAgICAgICAgICBhc3NlcnQgc2VsZi5fdmVyc2lv
biBpbiBzZWxmLlNVUFBPUlRFRF9PU19WRVJTSU9OUwogCisgICAgICAgIHNlbGYuX29wZXJhdGlu
Z19zeXN0ZW0gPSAnbWFjJwogICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0X18o
c2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAKICAgICBkZWYgYmFzZWxpbmVf
cGF0aChzZWxmKToKQEAgLTEyMywxNSArMTA3LDYgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNo
cm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgZGVmIGRyaXZlcl9uYW1lKHNlbGYpOgogICAgICAg
ICByZXR1cm4gIkR1bXBSZW5kZXJUcmVlIgogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShz
ZWxmKToKLSAgICAgICAgIyBXZSB1c2UgJ21hYycgaW5zdGVhZCBvZiAnY2hyb21pdW0tbWFjJwot
Ci0gICAgICAgICMgRklYTUU6IEdldCByaWQgb2YgdGhpcyBtZXRob2QgYWZ0ZXIgcmViYXNlbGlu
ZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMgZGllcy4KLSAgICAgICAgcmV0dXJuICdtYWMnCi0KLSAg
ICBkZWYgdmVyc2lvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3ZlcnNpb24KLQogICAg
ICMKICAgICAjIFBST1RFQ1RFRCBNRVRIT0RTCiAgICAgIwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191
bml0dGVzdC5weQppbmRleCAxMjAxMWM2Y2Q0ZmYyMWY3YTE4MWZkYjIwYTQ1YzdjMDQyN2QwYjkz
Li5iMWJiYWM4ZDIzOGRjZWNiYmYzMzRlNmI1NjE5ZTNhMGNjMjlkNTliIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX21hY191bml0dGVzdC5weQpAQCAtNjgsMTYgKzY4LDYgQEAgY2xhc3MgQ2hyb21pdW1N
YWNQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKEtleUVycm9yLCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAnMTAuNy4xJywgJ2No
cm9taXVtLW1hYy1sZW9wYXJkJykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9u
RXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICcxMC40LjEnLCAnY2hyb21pdW0tbWFjLWxl
b3BhcmQnKQogCi0gICAgZGVmIHRlc3RfZ2VuZXJpY19yZWJhc2VsaW5pbmdfcG9ydChzZWxmKToK
LSAgICAgICAgcG9ydCA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQocmViYXNlbGluaW5n
PVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQubmFtZSgpLCAnY2hyb21pdW0t
bWFjJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC52ZXJzaW9uKCksICcnKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0
X2Jhc2VsaW5lX3BhdGgocG9ydC5uYW1lKCkpKQotCi0gICAgICAgIHBvcnQgPSBjaHJvbWl1bV9t
YWMuQ2hyb21pdW1NYWNQb3J0KHBvcnRfbmFtZT0nY2hyb21pdW0tbWFjLWxlb3BhcmQnLCByZWJh
c2VsaW5pbmc9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5uYW1lKCksICdj
aHJvbWl1bS1tYWMtbGVvcGFyZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFz
ZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aChwb3J0Lm5hbWUoKSkpCi0K
ICAgICBkZWYgdGVzdF9iYXNlbGluZV9wYXRoKHNlbGYpOgogICAgICAgICBwb3J0ID0gY2hyb21p
dW1fbWFjLkNocm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9taXVtLW1hYy1sZW9wYXJkJykK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dl
YmtpdF9iYXNlbGluZV9wYXRoKCdjaHJvbWl1bS1tYWMtbGVvcGFyZCcpKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5w
eQppbmRleCBkMDkwOGRmMmI5MzRiOTViZWI0YTI5NWU5NzNjMWM0ZGRjZDg2MTgyLi5jZDUxNGQ0
YWUzNWIzOTY5OWNlMTA2ZDFkMjk1YzM4NDAyY2U0MzUxIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQpAQCAt
NjMsMzMgKzYzLDIxIEBAIGNsYXNzIENocm9taXVtV2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBv
cnQpOgogICAgICAgICAneHAnOiBbJ2Nocm9taXVtLXdpbi14cCcsICdjaHJvbWl1bS13aW4tdmlz
dGEnLCAnY2hyb21pdW0td2luJywgJ2Nocm9taXVtJywgJ3dpbicsICdtYWMnXSwKICAgICAgICAg
J3Zpc3RhJzogWydjaHJvbWl1bS13aW4tdmlzdGEnLCAnY2hyb21pdW0td2luJywgJ2Nocm9taXVt
JywgJ3dpbicsICdtYWMnXSwKICAgICAgICAgJ3dpbjcnOiBbJ2Nocm9taXVtLXdpbicsICdjaHJv
bWl1bScsICd3aW4nLCAnbWFjJ10sCi0gICAgICAgICcnOiBbJ2Nocm9taXVtLXdpbicsICdjaHJv
bWl1bScsICd3aW4nLCAnbWFjJ10sCiAgICAgfQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBv
cnRfbmFtZT1Ob25lLCB3aW5kb3dzX3ZlcnNpb249Tm9uZSwgcmViYXNlbGluaW5nPUZhbHNlLCAq
Kmt3YXJncyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25lLCB3aW5kb3dz
X3ZlcnNpb249Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICAjIFdlJ3JlIGEgbGl0dGxlIGdlbmVy
aWMgaGVyZSBiZWNhdXNlIHRoaXMgY29kZSBpcyByZXVzZWQgYnkgdGhlCiAgICAgICAgICMgJ2dv
b2dsZS1jaHJvbWUnIHBvcnQgYXMgd2VsbCBhcyB0aGUgJ21vY2stJyBhbmQgJ2RyeXJ1bi0nIHBv
cnRzLgogICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgb3IgJ2Nocm9taXVtLXdpbicKIAog
ICAgICAgICBpZiBwb3J0X25hbWUuZW5kc3dpdGgoJy13aW4nKToKLSAgICAgICAgICAgICMgRklY
TUU6IFRoZSByZWJhc2VsaW5pbmcgZmxhZyBpcyBhbiB1Z2x5IGhhY2sgdGhhdCBsZXRzIHVzIGNy
ZWF0ZSBhbgotICAgICAgICAgICAgIyAiY2hyb21pdW0td2luIiBwb3J0IHRoYXQgaXMgbm90IHZl
cnNpb24tc3BlY2lmaWMuIEl0IHNob3VsZCBvbmx5IGJlCi0gICAgICAgICAgICAjIHVzZWQgYnkg
cmViYXNlbGluZS1jaHJvbWl1bS13ZWJraXQtdGVzdHMgdG8gZXhwbGljaXRseSBwdXQgZmlsZXMg
aW50bwotICAgICAgICAgICAgIyB0aGUgZ2VuZXJpYyBkaXJlY3RvcnkuIEluIHRoZW9yeSB3ZSBz
aG91bGRuJ3QgbmVlZCB0aGlzLCBiZWNhdXNlCi0gICAgICAgICAgICAjIHRoZSBuZXdlc3Qgd2lu
IHBvcnQgc2hvdWxkIGJlIHVzaW5nICdjaHJvbWl1bS13aW4nIGFzIHRoZSBiYXNlbGluZQotICAg
ICAgICAgICAgIyBkaXJlY3RvcnkuIEhvd2V2ZXIsIHdlIGFsc28gZG9uJ3QgaGF2ZSBzdGFibGUg
V2luIDcgYm90cyA6KAotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBXaGVuIHdlIHJlbW92
ZSB0aGlzIEZJWE1FLCB3ZSBhbHNvIG5lZWQgdG8gcmVtb3ZlICcnIGFzIGEgdmFsaWQKLSAgICAg
ICAgICAgICMgZmFsbGJhY2sga2V5IGluIHNlbGYuRkFMTEJBQ0tfUEFUSFMuCi0gICAgICAgICAg
ICBpZiByZWJhc2VsaW5pbmc6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9ICcnCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBvc192ZXJz
aW9uKHdpbmRvd3NfdmVyc2lvbikKLSAgICAgICAgICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25h
bWUgKyAnLScgKyBzZWxmLl92ZXJzaW9uCisgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gb3Nf
dmVyc2lvbih3aW5kb3dzX3ZlcnNpb24pCisgICAgICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25h
bWUgKyAnLScgKyBzZWxmLl92ZXJzaW9uCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxm
Ll92ZXJzaW9uID0gcG9ydF9uYW1lW3BvcnRfbmFtZS5pbmRleCgnLXdpbi0nKSArIDU6XQogICAg
ICAgICAgICAgYXNzZXJ0IHNlbGYuX3ZlcnNpb24gaW4gc2VsZi5TVVBQT1JURURfVkVSU0lPTlMK
IAorICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ3dpbicKICAgICAgICAgY2hyb21p
dW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dh
cmdzKQogCiAgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmKToKQEAgLTEzNywx
NyArMTI1LDYgQEAgY2xhc3MgQ2hyb21pdW1XaW5Qb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6
CiAgICAgICAgIHBhdGggPSBmaWxlbmFtZVtsZW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCkpICsg
MTpdCiAgICAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoJ1xcJywgJy8nKQogCi0gICAgZGVmIHRl
c3RfcGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAgICAgIyBXZSByZXR1cm4gJ3dpbi14cCcsIG5v
dCAnY2hyb21pdW0td2luLXhwJyBoZXJlLCBmb3IgY29udmVuaWVuY2UuCi0KLSAgICAgICAgIyBG
SVhNRTogR2V0IHJpZCBvZiB0aGlzIG1ldGhvZCBhZnRlciByZWJhc2VsaW5lX2Nocm9taXVtX3dl
YmtpdF90ZXN0cyBkaWVzLgotICAgICAgICBpZiBzZWxmLnZlcnNpb24oKSA9PSAnJzoKLSAgICAg
ICAgICAgIHJldHVybiAnd2luJwotICAgICAgICByZXR1cm4gJ3dpbi0nICsgc2VsZi52ZXJzaW9u
KCkKLQotICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdmVyc2lv
bgotCiAgICAgIwogICAgICMgUFJPVEVDVEVEIFJPVVRJTkVTCiAgICAgIwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtX3dpbl91bml0dGVzdC5weQppbmRleCA4ZWE3MDYwYzUzYWI2MDNhZDhjMDI1N2I5Njg0ZTA3
NTM5MGI3N2EzLi4zMTlhYWNkYzQ3MGEzZDYxMTZmNDA0ODFhODI3NDNiOWIwMTMxODQzIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X3dpbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weQpAQCAtMTI3LDE2ICsxMjcsNiBAQCBjbGFz
cyBDaHJvbWl1bVdpblRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgc2VsZi5hc3NlcnRfbmFtZSwgTm9uZSwgKDUsIDIp
LCAnY2hyb21pdW0td2luLXhwJykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3Is
IHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICg3LCAxKSwgJ2Nocm9taXVtLXdpbi14cCcpCiAKLSAg
ICBkZWYgdGVzdF9nZW5lcmljX3JlYmFzZWxpbmluZ19wb3J0KHNlbGYpOgotICAgICAgICBwb3J0
ID0gY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydChyZWJhc2VsaW5pbmc9VHJ1ZSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5uYW1lKCksICdjaHJvbWl1bS13aW4nKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LnZlcnNpb24oKSwgJycpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0
aChwb3J0Lm5hbWUoKSkpCi0KLSAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdp
blBvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS13aW4teHAnLCByZWJhc2VsaW5pbmc9VHJ1ZSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5uYW1lKCksICdjaHJvbWl1bS13aW4teHAnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Vi
a2l0X2Jhc2VsaW5lX3BhdGgocG9ydC5uYW1lKCkpKQotCiAgICAgZGVmIHRlc3RfYmFzZWxpbmVf
cGF0aChzZWxmKToKICAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQo
cG9ydF9uYW1lPSdjaHJvbWl1bS13aW4teHAnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhw
b3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2Nocm9taXVt
LXdpbi14cCcpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9tYWMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L21hYy5weQppbmRleCA0MzE1NTQzMjAzOWI0YWM2OTM3MWRmNzg3MTA3MGM4N2Y3NTJhYjdkLi5k
NmZmNmJmZTE3MDZhYzBkZTIwYTYyZDlkMWE4ZjgyMjEzY2I1MWExIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpAQCAtNzMsNyArNzMsNiBA
QCBjbGFzcyBNYWNQb3J0KFdlYktpdFBvcnQpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBv
cnRfbmFtZT1Ob25lLCBvc192ZXJzaW9uX3N0cmluZz1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAg
IHBvcnRfbmFtZSA9IHBvcnRfbmFtZSBvciAnbWFjJwotCiAgICAgICAgIGlmIHBvcnRfbmFtZSA9
PSAnbWFjJzoKICAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBvc192ZXJzaW9uKG9zX3ZlcnNp
b25fc3RyaW5nKQogICAgICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2Vs
Zi5fdmVyc2lvbgpAQCAtODEsNiArODAsNyBAQCBjbGFzcyBNYWNQb3J0KFdlYktpdFBvcnQpOgog
ICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IHBvcnRfbmFtZVs0Ol0KICAgICAgICAgICAgIGFz
c2VydCBzZWxmLl92ZXJzaW9uIGluIHNlbGYuU1VQUE9SVEVEX1ZFUlNJT05TCiAKKyAgICAgICAg
c2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICdtYWMnCiAgICAgICAgIFdlYktpdFBvcnQuX19pbml0
X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAKICAgICBkZWYgZGVmYXVs
dF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CkBAIC0xMTUsMTIgKzExNSw2IEBAIGNsYXNzIE1hY1Bv
cnQoV2ViS2l0UG9ydCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnU2tpcHBlZCcpKQogICAgICAgICByZXR1cm4gc2tpcHBlZF9maWxlcwogCi0gICAgZGVmIHRl
c3RfcGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuICdtYWMtJyArIHNlbGYudmVy
c2lvbigpCi0KLSAgICBkZWYgdmVyc2lvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Zl
cnNpb24KLQogICAgIGRlZiBfYnVpbGRfamF2YV90ZXN0X3N1cHBvcnQoc2VsZik6CiAgICAgICAg
IGphdmFfdGVzdHNfcGF0aCA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLmxheW91dF90ZXN0
c19kaXIoKSwgImphdmEiKQogICAgICAgICBidWlsZF9qYXZhID0gWyIvdXNyL2Jpbi9tYWtlIiwg
Ii1DIiwgamF2YV90ZXN0c19wYXRoXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4IDA5N2ZlZTI2MzJkYzFjZmEzYWI3MjJmZGY5OTdj
NTg1OTFhZWVjMDUuLmY5YzIyODJkYjYyNzg1MzQ0YzljNzAxYjc2MWJhNTJlMjRlYjRkMDUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkK
QEAgLTIyMCw2ICsyMjAsMTEgQEAgV09OVEZJWCBTS0lQIDogZmFpbHVyZXMvZXhwZWN0ZWQvZXhj
ZXB0aW9uLmh0bWwgPSBDUkFTSAogCiBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICIi
IlRlc3QgaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIiIgorICAgIEFMTF9C
QVNFTElORV9WQVJJQU5UUyA9ICgKKyAgICAgICAgJ3Rlc3QtbWFjLXNub3dsZW9wYXJkJywgJ3Rl
c3QtbWFjLWxlb3BhcmQnLAorICAgICAgICAndGVzdC13aW4td2luNycsICd0ZXN0LXdpbi12aXN0
YScsICd0ZXN0LXdpbi14cCcsCisgICAgICAgICd0ZXN0LWxpbnV4JywKKyAgICApCiAKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIHVzZXI9Tm9uZSwgZmlsZXN5c3RlbT1O
b25lLCAqKmt3YXJncyk6CiAgICAgICAgIGlmIG5vdCBmaWxlc3lzdGVtOgpAQCAtMjM0LDYgKzIz
OSwyMiBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICBpZiBub3QgcG9ydF9u
YW1lIG9yIHBvcnRfbmFtZSA9PSAndGVzdCc6CiAgICAgICAgICAgICBwb3J0X25hbWUgPSAndGVz
dC1tYWMtbGVvcGFyZCcKIAorICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ21hYycK
KyAgICAgICAgaWYgcG9ydF9uYW1lLnN0YXJ0c3dpdGgoJ3Rlc3Qtd2luJyk6CisgICAgICAgICAg
ICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ3dpbicKKyAgICAgICAgZWxpZiBwb3J0X25hbWUu
c3RhcnRzd2l0aCgndGVzdC1saW51eCcpOgorICAgICAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5
c3RlbSA9ICdsaW51eCcKKworICAgICAgICB2ZXJzaW9uX21hcCA9IHsKKyAgICAgICAgICAgICd0
ZXN0LXdpbi14cCc6ICd4cCcsCisgICAgICAgICAgICAndGVzdC13aW4td2luNyc6ICd3aW43JywK
KyAgICAgICAgICAgICd0ZXN0LXdpbi12aXN0YSc6ICd2aXN0YScsCisgICAgICAgICAgICAndGVz
dC1tYWMtbGVvcGFyZCc6ICdsZW9wYXJkJywKKyAgICAgICAgICAgICd0ZXN0LW1hYy1zbm93bGVv
cGFyZCc6ICdzbm93bGVvcGFyZCcsCisgICAgICAgICAgICAndGVzdC1saW51eCc6ICcnLAorICAg
ICAgICB9CisgICAgICAgIHNlbGYuX3ZlcnNpb24gPSB2ZXJzaW9uX21hcFtwb3J0X25hbWVdCisK
ICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zX3BhdGggPSBMQVlPVVRfVEVTVF9ESVIgKyAnL3Bs
YXRmb3JtL3Rlc3QvdGVzdF9leHBlY3RhdGlvbnMudHh0JwogICAgICAgICBiYXNlLlBvcnQuX19p
bml0X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgZmlsZXN5c3RlbT1maWxlc3lzdGVtLCB1
c2VyPXVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKQEAgLTMxMSwx
OSArMzMyLDggQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgcGF0aF90b190
ZXN0X2V4cGVjdGF0aW9uc19maWxlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0
YXRpb25zX3BhdGgKIAotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLm5hbWUoKVs1Ol0KLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVzKHNl
bGYpOgotICAgICAgICByZXR1cm4gKCdtYWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnLAot
ICAgICAgICAgICAgICAgICd3aW4teHAnLCAnd2luLXZpc3RhJywgJ3dpbi13aW43JywKLSAgICAg
ICAgICAgICAgICAnbGludXgnKQotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1l
KHNlbGYsIHRlc3RfcGxhdGZvcm1fbmFtZSk6Ci0gICAgICAgIGlmIHRlc3RfcGxhdGZvcm1fbmFt
ZSBpbiBzZWxmLnRlc3RfcGxhdGZvcm1fbmFtZXMoKToKLSAgICAgICAgICAgIHJldHVybiAndGVz
dC0nICsgdGVzdF9wbGF0Zm9ybV9uYW1lCi0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Vuc3Vw
cG9ydGVkIHRlc3RfcGxhdGZvcm1fbmFtZTogJXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X3BsYXRmb3JtX25hbWUpCisgICAgZGVmIGFsbF9iYXNlbGluZV92YXJpYW50cyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuQUxMX0JBU0VMSU5FX1ZBUklBTlRTCiAKICAgICAjIEZJ
WE1FOiBUaGVzZSBuZXh0IHR3byByb3V0aW5lcyBhcmUgY29waWVkIGZyb20gYmFzZS5weSB3aXRo
CiAgICAgIyB0aGUgY2FsbHMgdG8gcGF0aC5hYnNwYXRoX3RvX3VyaSgpIHJlbW92ZWQuIFdlIHNo
b3VsZG4ndCBoYXZlCkBAIC0zODMsMjIgKzM5Myw2IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9y
dCk6CiAKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigndW5rbm93biB1cmwgdHlw
ZTogJXMnICUgdXJpKQogCi0gICAgZGVmIHZlcnNpb24oc2VsZik6Ci0gICAgICAgIHZlcnNpb25f
bWFwID0gewotICAgICAgICAgICAgJ3Rlc3Qtd2luLXhwJzogJ3hwJywKLSAgICAgICAgICAgICd0
ZXN0LXdpbi13aW43JzogJ3dpbjcnLAotICAgICAgICAgICAgJ3Rlc3Qtd2luLXZpc3RhJzogJ3Zp
c3RhJywKLSAgICAgICAgICAgICd0ZXN0LW1hYy1sZW9wYXJkJzogJ2xlb3BhcmQnLAotICAgICAg
ICAgICAgJ3Rlc3QtbWFjLXNub3dsZW9wYXJkJzogJ3Nub3dsZW9wYXJkJywKLSAgICAgICAgICAg
ICd0ZXN0LWxpbnV4JzogJycsCi0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHZlcnNpb25fbWFw
W3NlbGYuX25hbWVdCi0KLSAgICBkZWYgdGVzdF9jb25maWd1cmF0aW9uKHNlbGYpOgotICAgICAg
ICBpZiBub3Qgc2VsZi5fdGVzdF9jb25maWd1cmF0aW9uOgotICAgICAgICAgICAgc2VsZi5fdGVz
dF9jb25maWd1cmF0aW9uID0gVGVzdFRlc3RDb25maWd1cmF0aW9uKHNlbGYpCi0gICAgICAgIHJl
dHVybiBzZWxmLl90ZXN0X2NvbmZpZ3VyYXRpb24KLQogCiBjbGFzcyBUZXN0RHJpdmVyKGJhc2Uu
RHJpdmVyKToKICAgICAiIiJUZXN0L0R1bW15IGltcGxlbWVudGF0aW9uIG9mIHRoZSBEdW1wUmVu
ZGVyVHJlZSBpbnRlcmZhY2UuIiIiCkBAIC00MzIsMTAgKzQyNiwzIEBAIGNsYXNzIFRlc3REcml2
ZXIoYmFzZS5Ecml2ZXIpOgogCiAgICAgZGVmIHN0b3Aoc2VsZik6CiAgICAgICAgIHBhc3MKLQot
Ci1jbGFzcyBUZXN0VGVzdENvbmZpZ3VyYXRpb24oYmFzZS5UZXN0Q29uZmlndXJhdGlvbik6Ci0g
ICAgZGVmIGFsbF9zeXN0ZW1zKHNlbGYpOgotICAgICAgICByZXR1cm4gKCgnbWFjJywgJ2xlb3Bh
cmQnLCAneDg2JyksCi0gICAgICAgICAgICAgICAgKCd3aW4nLCAneHAnLCAneDg2JyksCi0gICAg
ICAgICAgICAgICAgKCd3aW4nLCAnd2luNycsICd4ODYnKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKaW5kZXggNjVhMDQ3ZDlkNWE4
M2QyOWVhYzhiMGYzMDFhYTI5MjFjYTM5NTExNy4uNzNmNDVkYmVmNDMzZWE4MGYxMDEyMmMyYTMz
NWQ0YTc3OGFkNmE1OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTMyNywxMiArMzI3LDYgQEAgY2xhc3MgV2ViS2l0UG9y
dChiYXNlLlBvcnQpOgogICAgICAgICB0ZXN0c190b19za2lwLnVwZGF0ZShzZWxmLl90ZXN0c19m
b3JfZGlzYWJsZWRfZmVhdHVyZXMoKSkKICAgICAgICAgcmV0dXJuIHRlc3RzX3RvX3NraXAKIAot
ICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9u
YW1lICsgc2VsZi52ZXJzaW9uKCkKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYp
OgotICAgICAgICByZXR1cm4gKCdtYWMnLCAnd2luJywgJ21hYy10aWdlcicsICdtYWMtbGVvcGFy
ZCcsICdtYWMtc25vd2xlb3BhcmQnKQotCiAgICAgZGVmIF9idWlsZF9wYXRoKHNlbGYsICpjb21w
cyk6CiAgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fY29uZmlnLmJ1
aWxkX2RpcmVjdG9yeSgKICAgICAgICAgICAgIHNlbGYuZ2V0X29wdGlvbignY29uZmlndXJhdGlv
bicpKSwgKmNvbXBzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93aW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3dpbi5weQppbmRleCBlN2QyMDA0YmFiMzVlN2QzZDhkZGYyYjhiZTA2MTVhMTZhOTQwNWEz
Li4xMDZmMzY0ODA5NzNmOWRjMDU3ZTM2MTczMzZmMTUwMWI3ZTJjNjc5IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQpAQCAtNDAsNiArNDAs
OCBAQCBjbGFzcyBXaW5Qb3J0KFdlYktpdFBvcnQpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
ICoqa3dhcmdzKToKICAgICAgICAga3dhcmdzLnNldGRlZmF1bHQoJ3BvcnRfbmFtZScsICd3aW4n
KQorICAgICAgICBzZWxmLl92ZXJzaW9uID0gJ3dpbjcnCisgICAgICAgIHNlbGYuX29wZXJhdGlu
Z19zeXN0ZW0gPSAnd2luJwogICAgICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYsICoqa3dh
cmdzKQogCiAgICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93
ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJh
c2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQppbmRleCBjZThjN2Q2OGJiOTBkYzE5OGEw
ODAwMWQxZWM5ZWU1OTNkNmExNTIyLi4yZGM3ZDBhMDI2ZGMwZTVjM2M4NTc1YjYwMTczZDlkNjUz
YjM5MGU3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
ZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQpA
QCAtNjEsMzQgKzYxLDE2IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAog
QkFTRUxJTkVfU1VGRklYRVMgPSAoJy50eHQnLCAnLnBuZycsICcuY2hlY2tzdW0nKQogCi0jIE9u
bHkgdGhlIFdlYktpdCBjYW5hcmllcyBoYXZlIGEgZnVsbCBjb21wbGVtZW50IG9mIGJvdHMuIFRo
ZSBHUFUKLSMgYm90cyBkb24ndCBoYXZlIHZlcnNpb24tc3BlY2lmaWMgYmFzZWxpbmVzIHlldC4g
V2Ugb25seSBoYXZlIHRoZSB0aHJlZQotIyBtYWluIERlcHMgYm90cy4KLQotIyBCeSBydW5uaW5n
IHRoZSB0ZXN0IGluIHRoaXMgb3JkZXIgd2UgZW5zdXJlIHRoYXQgaWYgYSBsYXRlciB0ZXN0IGlz
IGEKLSMgZHVwbGljYXRlIG9mIGFueSBlYXJsaWVyIG9uZSwgd2UnbGwgbm90aWNlIGl0IGFuZCBv
bmx5IGtlZXAgb25lIGNvcHkuCi1SRUJBU0VMSU5FX0dQVV9PUkRFUiA9IFsnbWFjJywgJ3dpbics
ICdsaW51eCddCi1SRUJBU0VMSU5FX1dFQktJVF9DQU5BUllfT1JERVIgPSBbJ21hYy1zbm93bGVv
cGFyZCcsICdtYWMtbGVvcGFyZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3dpbi13aW43JywgJ3dpbi12aXN0YScsICd3aW4teHAnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdsaW51eCddCi1SRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSID0gWydtYWMn
LCAnd2luJywgJ2xpbnV4J10KLQotQVJDSElWRV9ESVJfTkFNRV9ESUNUID0geyd3aW4nOiAnV2Vi
a2l0X1dpbl9fZGVwc18nLAotICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4tdmlzdGEnOiAn
d2Via2l0LWRiZy12aXN0YScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi14cCc6ICdX
ZWJraXRfV2luX19kZXBzXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ21hYyc6ICdXZWJr
aXRfTWFjMTBfNV9fZGVwc18nLAotICAgICAgICAgICAgICAgICAgICAgICAgICdsaW51eCc6ICdX
ZWJraXRfTGludXhfX2RlcHNfJywKLQotICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4td2lu
Ny1jYW5hcnknOiAnV2Via2l0X1dpbjcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4t
dmlzdGEtY2FuYXJ5JzogJ1dlYmtpdF9WaXN0YScsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
J3dpbi14cC1jYW5hcnknOiAnV2Via2l0X1dpbicsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
J21hYy1sZW9wYXJkLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNScsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgJ21hYy1zbm93bGVvcGFyZC1jYW5hcnknOiAnV2Via2l0X01hYzEwXzYnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICdsaW51eC1jYW5hcnknOiAnV2Via2l0X0xpbnV4JywKLQot
ICAgICAgICAgICAgICAgICAgICAgICAgICdncHUtbWFjLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBf
NV8tX0dQVScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2dwdS13aW4tY2FuYXJ5JzogJ1dl
YmtpdF9XaW5fLV9HUFUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICdncHUtbGludXgtY2Fu
YXJ5JzogJ1dlYmtpdF9MaW51eF8tX0dQVScsCitBUkNISVZFX0RJUl9OQU1FX0RJQ1QgPSB7Cisg
ICAgJ2Nocm9taXVtLXdpbi13aW43JzogJ1dlYmtpdF9XaW43JywKKyAgICAnY2hyb21pdW0td2lu
LXZpc3RhJzogJ1dlYmtpdF9WaXN0YScsCisgICAgJ2Nocm9taXVtLXdpbi14cCc6ICdXZWJraXRf
V2luJywKKyAgICAnY2hyb21pdW0tbWFjLWxlb3BhcmQnOiAnV2Via2l0X01hYzEwXzUnLAorICAg
ICdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnOiAnV2Via2l0X01hYzEwXzYnLAorICAgICdjaHJv
bWl1bS1saW51eCc6ICdXZWJraXRfTGludXgnLAorICAgICdjaHJvbWl1bS1ncHUtbWFjLWxlb3Bh
cmQnOiAnV2Via2l0X01hYzEwXzVfLV9HUFUnLAorICAgICdjaHJvbWl1bS1ncHUtd2luLXhwJzog
J1dlYmtpdF9XaW5fLV9HUFUnLAorICAgICdjaHJvbWl1bS1ncHUtbGludXgnOiAnV2Via2l0X0xp
bnV4Xy1fR1BVJywKIH0KIAogCkBAIC0xNzksMTEgKzE2MSw3IEBAIGNsYXNzIFJlYmFzZWxpbmVy
KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBydW5uaW5nX3BvcnQuX2ZpbGVz
eXN0ZW0KICAgICAgICAgc2VsZi5fdGFyZ2V0X3BvcnQgPSB0YXJnZXRfcG9ydAogCi0gICAgICAg
ICMgRklYTUU6IFNlZSB0aGUgY29tbWVudHMgaW4gY2hyb21pdW1fe3dpbixtYWN9LnB5IGFib3V0
IHdoeSB3ZSBuZWVkCi0gICAgICAgICMgdGhlICdyZWJhc2VsaW5pbmcnIGtleXdvcmQuCi0gICAg
ICAgIHNlbGYuX3JlYmFzZWxpbmVfcG9ydCA9IHBvcnQuZ2V0KAotICAgICAgICAgICAgc2VsZi5f
dGFyZ2V0X3BvcnQudGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUocGxhdGZvcm0pLCBvcHRpb25z
LAotICAgICAgICAgICAgZmlsZXN5c3RlbT1zZWxmLl9maWxlc3lzdGVtLCByZWJhc2VsaW5pbmc9
VHJ1ZSkKKyAgICAgICAgc2VsZi5fcmViYXNlbGluZV9wb3J0ID0gcG9ydC5nZXQocGxhdGZvcm0s
IG9wdGlvbnMsIGZpbGVzeXN0ZW09c2VsZi5fZmlsZXN5c3RlbSkKICAgICAgICAgc2VsZi5fcmVi
YXNlbGluaW5nX3Rlc3RzID0gc2V0KCkKICAgICAgICAgc2VsZi5fcmViYXNlbGluZWRfdGVzdHMg
PSBbXQogCkBAIC0xOTgsNyArMTc2LDcgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAg
ICAgICAgc2VsZi5femlwX2ZhY3RvcnkgPSB6aXBfZmFjdG9yeQogICAgICAgICBzZWxmLl9zY20g
PSBzY20KIAotICAgIGRlZiBydW4oc2VsZiwgYmFja3VwKToKKyAgICBkZWYgcnVuKHNlbGYpOgog
ICAgICAgICAiIiJSdW4gcmViYXNlbGluZSBwcm9jZXNzLiIiIgogCiAgICAgICAgIGxvZ19kYXNo
ZWRfc3RyaW5nKCdDb21waWxpbmcgcmViYXNlbGluaW5nIHRlc3RzJywgc2VsZi5fcGxhdGZvcm0p
CkBAIC0yMzMsNyArMjExLDcgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKIAogICAgICAg
ICByZXR1cm4gVHJ1ZQogCi0gICAgZGVmIHJlbW92ZV9yZWJhc2VsaW5lZF90ZXN0c19mcm9tX2V4
cGVjdGF0aW9ucyhzZWxmLCB0ZXN0cywgYmFja3VwKToKKyAgICBkZWYgcmVtb3ZlX3JlYmFzZWxp
bmluZ19leHBlY3RhdGlvbnMoc2VsZiwgdGVzdHMsIGJhY2t1cCk6CiAgICAgICAgICIiImlmIGJh
Y2t1cCBpcyBUcnVlLCB3ZSBiYWNrdXAgdGhlIG9yaWdpbmFsIHRlc3QgZXhwZWN0YXRpb25zIGZp
bGUuIiIiCiAgICAgICAgIG5ld19leHBlY3RhdGlvbnMgPSBzZWxmLl90ZXN0X2V4cGVjdGF0aW9u
cy5yZW1vdmVfcmViYXNlbGluZWRfdGVzdHModGVzdHMpCiAgICAgICAgIHBhdGggPSBzZWxmLl90
YXJnZXRfcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKQpAQCAtMzMzLDEzICsz
MTEsNyBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICBpZiBzZWxmLl9vcHRp
b25zLmZvcmNlX2FyY2hpdmVfdXJsOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX29wdGlvbnMu
Zm9yY2VfYXJjaGl2ZV91cmwKIAotICAgICAgICBwbGF0Zm9ybSA9IHNlbGYuX3BsYXRmb3JtCi0g
ICAgICAgIGlmIHNlbGYuX29wdGlvbnMud2Via2l0X2NhbmFyeToKLSAgICAgICAgICAgIHBsYXRm
b3JtICs9ICctY2FuYXJ5JwotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmdwdToKLSAgICAgICAg
ICAgIHBsYXRmb3JtID0gJ2dwdS0nICsgcGxhdGZvcm0KLQotICAgICAgICBkaXJfbmFtZSA9IHNl
bGYuX2dldF9hcmNoaXZlX2Rpcl9uYW1lKHBsYXRmb3JtKQorICAgICAgICBkaXJfbmFtZSA9IHNl
bGYuX2dldF9hcmNoaXZlX2Rpcl9uYW1lKHNlbGYuX3BsYXRmb3JtKQogICAgICAgICBpZiBub3Qg
ZGlyX25hbWU6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogCkBAIC0zNzUsOCArMzQ3LDcgQEAg
Y2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAgICAgZm9yIG5hbWUgaW4gemlwX25hbWVs
aXN0OgogICAgICAgICAgICAgX2xvZy5kZWJ1ZygnICAnICsgbmFtZSkKIAotICAgICAgICBwbGF0
Zm9ybSA9IHNlbGYuX3JlYmFzZWxpbmVfcG9ydC50ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShz
ZWxmLl9wbGF0Zm9ybSkKLSAgICAgICAgX2xvZy5kZWJ1ZygnUGxhdGZvcm0gZGlyOiAiJXMiJywg
cGxhdGZvcm0pCisgICAgICAgIF9sb2cuZGVidWcoJ1BsYXRmb3JtIGRpcjogIiVzIicsIHNlbGYu
X3BsYXRmb3JtKQogCiAgICAgICAgIHNlbGYuX3JlYmFzZWxpbmVkX3Rlc3RzID0gW10KICAgICAg
ICAgZm9yIHRlc3Rfbm8sIHRlc3QgaW4gZW51bWVyYXRlKHNlbGYuX3JlYmFzZWxpbmluZ190ZXN0
cyk6CkBAIC03OTEsMTAgKzc2Miw2IEBAIGRlZiBwYXJzZV9vcHRpb25zKGFyZ3MpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSdTdXBwcmVzcyByZXN1bHQgSFRNTCB2aWV3aW5nJykKIAot
ICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLWcnLCAnLS1ncHUnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nUmViYXNlbGluZSB0aGUgR1BVIHZlcnNpb25z
JykKLQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1wbGF0Zm9ybXMnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9KCdDb21tYSBkZWxpbWl0ZWQgbGlzdCBvZiBwbGF0Zm9ybXMg
JwpAQCAtODA5LDEyICs3NzYsNiBAQCBkZWYgcGFyc2Vfb3B0aW9ucyhhcmdzKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1VybCBvZiByZXN1bHQgemlwIGZpbGUuIFRoaXMg
b3B0aW9uIGlzIGZvciBkZWJ1Z2dpbmcgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAncHVycG9zZXMnKSkKIAotICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLXcnLCAn
LS13ZWJraXRfY2FuYXJ5JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdz
dG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ0lmIFRydWUsIHB1bGwgYmFzZWxp
bmVzIGZyb20gd2Via2l0Lm9yZyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdjYW5hcnkgYm90LicpKQotCiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctYicsICct
LWJhY2t1cCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1
ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCkBAIC04Mzcs
MTcgKzc5OCw4IEBAIGRlZiBwYXJzZV9vcHRpb25zKGFyZ3MpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSgnVGhlIHRhcmdldCBwbGF0Zm9ybSB0byByZWJhc2VsaW5lICcKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygibWFjIiwgImNocm9taXVtIiwgInF0
IiwgZXRjLikuIERlZmF1bHRzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3RvICJjaHJvbWl1bSIuJykpCi0gICAgb3B0aW9ucyA9IG9wdGlvbl9wYXJzZXIucGFyc2VfYXJn
cyhhcmdzKVswXQotICAgIGlmIG9wdGlvbnMuZ3B1OgotICAgICAgICBvcHRpb25zLmFsbF9wbGF0
Zm9ybXMgPSBSRUJBU0VMSU5FX0dQVV9PUkRFUgotICAgIGVsaWYgb3B0aW9ucy53ZWJraXRfY2Fu
YXJ5OgotICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJBU0VMSU5FX1dFQktJVF9D
QU5BUllfT1JERVIKLSAgICBlbHNlOgotICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBS
RUJBU0VMSU5FX1BMQVRGT1JNX09SREVSCi0KLSAgICBpZiBvcHRpb25zLnBsYXRmb3JtcyA9PSBO
b25lOgotICAgICAgICBvcHRpb25zLnBsYXRmb3JtcyA9ICcsJy5qb2luKG9wdGlvbnMuYWxsX3Bs
YXRmb3JtcykKIAorICAgIG9wdGlvbnMgPSBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3MoYXJncylb
MF0KICAgICB0YXJnZXRfb3B0aW9ucyA9IGNvcHkuY29weShvcHRpb25zKQogICAgIGlmIG9wdGlv
bnMudGFyZ2V0X3BsYXRmb3JtID09ICdjaHJvbWl1bSc6CiAgICAgICAgIHRhcmdldF9vcHRpb25z
LmNocm9taXVtID0gVHJ1ZQpAQCAtOTA5LDMwICs4NjEsMjEgQEAgZGVmIHJlYWxfbWFpbihvcHRp
b25zLCB0YXJnZXRfb3B0aW9ucywgaG9zdF9wb3J0X29iaiwgdGFyZ2V0X3BvcnRfb2JqLCB1cmxf
ZmV0Y2gKICAgICAgICAgICAgIHRoZSBhcmNoaXZlcy4KICAgICAgICAgc2NtX29iajogb2JqZWN0
IHVzZWQgdG8gYWRkIG5ldyBiYXNlbGluZXMgdG8gdGhlIHNvdXJjZSBjb250cm9sIHN5c3RlbS4K
ICAgICAiIiIKLSAgICAjIFZlcmlmeSAncGxhdGZvcm1zJyBvcHRpb24gaXMgdmFsaWQuCi0gICAg
aWYgbm90IG9wdGlvbnMucGxhdGZvcm1zOgotICAgICAgICBfbG9nLmVycm9yKCdJbnZhbGlkICJw
bGF0Zm9ybXMiIG9wdGlvbi4gLS1wbGF0Zm9ybXMgbXVzdCBiZSAnCi0gICAgICAgICAgICAgICAg
ICAgJ3NwZWNpZmllZCBpbiBvcmRlciB0byByZWJhc2VsaW5lLicpCi0gICAgICAgIHJldHVybiAx
Ci0gICAgcGxhdGZvcm1zID0gW3Auc3RyaXAoKS5sb3dlcigpIGZvciBwIGluIG9wdGlvbnMucGxh
dGZvcm1zLnNwbGl0KCcsJyldCi0gICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3JtczoKLSAgICAg
ICAgaWYgbm90IHBsYXRmb3JtIGluIG9wdGlvbnMuYWxsX3BsYXRmb3JtczoKLSAgICAgICAgICAg
IF9sb2cuZXJyb3IoJ0ludmFsaWQgcGxhdGZvcm06ICIlcyInICUgKHBsYXRmb3JtKSkKLSAgICAg
ICAgICAgIHJldHVybiAxCi0KLSAgICAjIEFkanVzdCB0aGUgcGxhdGZvcm0gb3JkZXIgc28gcmVi
YXNlbGluZSB0b29sIGlzIHJ1bm5pbmcgYXQgdGhlIG9yZGVyIG9mCi0gICAgIyAnbWFjJywgJ3dp
bicgYW5kICdsaW51eCcuIFRoaXMgaXMgaW4gc2FtZSBvcmRlciB3aXRoIGxheW91dCB0ZXN0IGJh
c2VsaW5lCi0gICAgIyBzZWFyY2ggcGF0aHMuIEl0IHNpbXBsaWZpZXMgaG93IHRoZSByZWJhc2Vs
aW5lIHRvb2wgZGV0ZWN0cyBkdXBsaWNhdGUKLSAgICAjIGJhc2VsaW5lcy4gQ2hlY2sgX0lzRHVw
QmFzZWxpbmUgbWV0aG9kIGZvciBkZXRhaWxzLgotICAgIHJlYmFzZWxpbmVfcGxhdGZvcm1zID0g
W10KLSAgICBmb3IgcGxhdGZvcm0gaW4gb3B0aW9ucy5hbGxfcGxhdGZvcm1zOgotICAgICAgICBp
ZiBwbGF0Zm9ybSBpbiBwbGF0Zm9ybXM6Ci0gICAgICAgICAgICByZWJhc2VsaW5lX3BsYXRmb3Jt
cy5hcHBlbmQocGxhdGZvcm0pCi0KICAgICBvcHRpb25zLmh0bWxfZGlyZWN0b3J5ID0gc2V0dXBf
aHRtbF9kaXJlY3RvcnkoaG9zdF9wb3J0X29iai5fZmlsZXN5c3RlbSwgb3B0aW9ucy5odG1sX2Rp
cmVjdG9yeSkKKyAgICBhbGxfcGxhdGZvcm1zID0gdGFyZ2V0X3BvcnRfb2JqLmFsbF9iYXNlbGlu
ZV92YXJpYW50cygpCisgICAgaWYgb3B0aW9ucy5wbGF0Zm9ybXM6CisgICAgICAgIGJhaWwgPSBG
YWxzZQorICAgICAgICBmb3IgcGxhdGZvcm0gaW4gb3B0aW9ucy5wbGF0Zm9ybXM6CisgICAgICAg
ICAgICBpZiBub3QgcGxhdGZvcm0gaW4gYWxsX3BsYXRmb3JtczoKKyAgICAgICAgICAgICAgICBf
bG9nLmVycm9yKCdJbnZhbGlkIHBsYXRmb3JtOiAiJXMiJyAlIChwbGF0Zm9ybSkpCisgICAgICAg
ICAgICAgICAgYmFpbCA9IFRydWUKKyAgICAgICAgaWYgYmFpbDoKKyAgICAgICAgICAgIHJldHVy
biAxCisgICAgICAgIHJlYmFzZWxpbmVfcGxhdGZvcm1zID0gb3B0aW9ucy5wbGF0Zm9ybXMKKyAg
ICBlbHNlOgorICAgICAgICByZWJhc2VsaW5lX3BsYXRmb3JtcyA9IGFsbF9wbGF0Zm9ybXMKIAog
ICAgIHJlYmFzZWxpbmVkX3Rlc3RzID0gc2V0KCkKLSAgICBiYWNrdXAgPSBvcHRpb25zLmJhY2t1
cAogICAgIGZvciBwbGF0Zm9ybSBpbiByZWJhc2VsaW5lX3BsYXRmb3JtczoKICAgICAgICAgcmVi
YXNlbGluZXIgPSBSZWJhc2VsaW5lcihob3N0X3BvcnRfb2JqLCB0YXJnZXRfcG9ydF9vYmosCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0sIG9wdGlvbnMsIHVybF9m
ZXRjaGVyLCB6aXBfZmFjdG9yeSwKQEAgLTk0MCwxNyArODgzLDE2IEBAIGRlZiByZWFsX21haW4o
b3B0aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3RfcG9ydF9vYmosIHRhcmdldF9wb3J0X29iaiwg
dXJsX2ZldGNoCiAKICAgICAgICAgX2xvZy5pbmZvKCcnKQogICAgICAgICBsb2dfZGFzaGVkX3N0
cmluZygnUmViYXNlbGluZSBzdGFydGVkJywgcGxhdGZvcm0pCi0gICAgICAgIGlmIHJlYmFzZWxp
bmVyLnJ1bihiYWNrdXApOgorICAgICAgICBpZiByZWJhc2VsaW5lci5ydW4oKToKICAgICAgICAg
ICAgIGxvZ19kYXNoZWRfc3RyaW5nKCdSZWJhc2VsaW5lIGRvbmUnLCBwbGF0Zm9ybSkKICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIGxvZ19kYXNoZWRfc3RyaW5nKCdSZWJhc2VsaW5lIGZhaWxl
ZCcsIHBsYXRmb3JtLCBsb2dnaW5nLkVSUk9SKQogCiAgICAgICAgIHJlYmFzZWxpbmVkX3Rlc3Rz
IHw9IHNldChyZWJhc2VsaW5lci5nZXRfcmViYXNlbGluZWRfdGVzdHMoKSkKIAotICAgICMgRklY
TUU6IG5lZWQgdG8gcmVlbmFibGUgdGhpcyBhZnRlciB3ZSBhcmUgY29ycmVjdGx5IHJ1bm5pbmcg
YWxsCi0gICAgIyBjb25maWd1cmF0aW9ucy4KLSAgICAjaWYgcmViYXNlbGluZWRfdGVzdHM6Ci0g
ICAgIyAgICByZWJhc2VsaW5lci5yZW1vdmVfcmViYXNlbGluZWRfdGVzdHNfZnJvbV9leHBlY3Rh
dGlvbnMocmViYXNlbGluZWRfdGVzdHMsIGJhY2t1cCkKKyAgICBpZiByZWJhc2VsaW5lZF90ZXN0
czoKKyAgICAgICAgcmViYXNlbGluZXIucmVtb3ZlX3JlYmFzZWxpbmluZ19leHBlY3RhdGlvbnMo
cmViYXNlbGluZWRfdGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbnMuYmFja3VwKQogCiAgICAgX2xvZy5pbmZvKCcnKQogICAg
IGxvZ19kYXNoZWRfc3RyaW5nKCdSZWJhc2VsaW5pbmcgcmVzdWx0IGNvbXBhcmlzb24gc3RhcnRl
ZCcsIE5vbmUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rl
c3RzX3VuaXR0ZXN0LnB5CmluZGV4IDAzYTVkMWJmMDVjNmQ4OWRjYTA3NTZkYTAyODMwZTJlYWM3
MDExYWYuLjFhMWNkMTA1Mzc2ZjQ5ZTE4ZGU1MWYwNmMyMzA4YmI2YTNjNTRiZTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21p
dW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5
CkBAIC02NSwxNCArNjUsOSBAQCBkZWYgdGVzdF9vcHRpb25zKCk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGh0bWxfZGlyZWN0b3J5PScvdG1wJywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJjaGl2ZV91cmw9QVJDSElWRV9VUkwsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvcmNlX2FyY2hpdmVfdXJsPU5vbmUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdlYmtpdF9jYW5hcnk9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXNlX2RydD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGFyZ2V0X3BsYXRmb3JtPSdjaHJvbWl1bScsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZlcmJvc2U9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1
aWV0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxfcGxhdGZvcm1z
PXJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLlJFQkFTRUxJTkVfV0VCS0lUX0NBTkFS
WV9PUkRFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1zPU5vbmUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwdT1GYWxzZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1zPU5vbmUpCiAKIAogZGVmIHRlc3RfaG9zdF9w
b3J0X2FuZF9maWxlc3lzdGVtKG9wdGlvbnMsIGV4cGVjdGF0aW9ucyk6CkBAIC0xMzMsNiArMTI4
LDE0IEBAIGRlZiB0ZXN0X3ppcF9mYWN0b3J5KCk6CiAgICAgcmV0dXJuIHppcGZpbGVzZXRfbW9j
ay5tYWtlX2ZhY3RvcnkoemlwaGFzaGVzKQogCiAKK2RlZiB0ZXN0X2FyY2hpdmUob3JpZ19hcmNo
aXZlKToKKyAgICBkID0ge30KKyAgICBmb3IgcGxhdGZvcm0sIGRpcm5hbWUgaW4gb3JpZ19hcmNo
aXZlLml0ZXJpdGVtcygpOgorICAgICAgICBwbGF0Zm9ybSA9IHBsYXRmb3JtLnJlcGxhY2UoJ2No
cm9taXVtJywgJ3Rlc3QnKQorICAgICAgICBkW3BsYXRmb3JtXSA9IGRpcm5hbWUKKyAgICByZXR1
cm4gZAorCisKIGNsYXNzIFRlc3RHZXRIb3N0UG9ydE9iamVjdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgZGVmIGFzc2VydF9yZXN1bHQoc2VsZiwgcmVsZWFzZV9wcmVzZW50LCBkZWJ1Z19wcmVz
ZW50LCB2YWxpZF9wb3J0X29iaik6CiAgICAgICAgICMgVGVzdHMgd2hldGhlciB3ZSBnZXQgYSB2
YWxpZCBwb3J0IG9iamVjdCByZXR1cm5lZCB3aGVuIHdlIGNsYWltCkBAIC0xNzUsNiArMTc4LDE0
IEBAIGNsYXNzIFRlc3RPcHRpb25zKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogCiBjbGFzcyBUZXN0
UmViYXNlbGluZXIodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAg
ICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ19vcmlnX2FyY2hpdmUnKToKKyAgICAgICAgICAg
IHNlbGYuX29yaWdfYXJjaGl2ZSA9IHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLkFS
Q0hJVkVfRElSX05BTUVfRElDVAorICAgICAgICAgICAgcmViYXNlbGluZV9jaHJvbWl1bV93ZWJr
aXRfdGVzdHMuQVJDSElWRV9ESVJfTkFNRV9ESUNUID0gdGVzdF9hcmNoaXZlKHNlbGYuX29yaWdf
YXJjaGl2ZSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcmViYXNlbGluZV9j
aHJvbWl1bV93ZWJraXRfdGVzdHMuQVJDSElWRV9ESVJfTkFNRV9ESUNUID0gc2VsZi5fb3JpZ19h
cmNoaXZlCisKICAgICBkZWYgbWFrZV9yZWJhc2VsaW5lcihzZWxmLCBleHBlY3RhdGlvbnMpOgog
ICAgICAgICBvcHRpb25zID0gdGVzdF9vcHRpb25zKCkKICAgICAgICAgaG9zdF9wb3J0X29iaiwg
ZmlsZXN5c3RlbSA9IHRlc3RfaG9zdF9wb3J0X2FuZF9maWxlc3lzdGVtKG9wdGlvbnMsIGV4cGVj
dGF0aW9ucykKQEAgLTE4Myw3ICsxOTQsNyBAQCBjbGFzcyBUZXN0UmViYXNlbGluZXIodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICB0YXJnZXRfcG9ydF9vYmogPSBwb3J0LmdldCgndGVzdCcs
IHRhcmdldF9vcHRpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxl
c3lzdGVtPWZpbGVzeXN0ZW0pCiAgICAgICAgIHRhcmdldF9wb3J0X29iai5fZXhwZWN0YXRpb25z
ID0gZXhwZWN0YXRpb25zCi0gICAgICAgIHBsYXRmb3JtID0gdGFyZ2V0X3BvcnRfb2JqLnRlc3Rf
cGxhdGZvcm1fbmFtZSgpCisgICAgICAgIHBsYXRmb3JtID0gdGFyZ2V0X3BvcnRfb2JqLm5hbWUo
KQogCiAgICAgICAgIHVybF9mZXRjaGVyID0gdGVzdF91cmxfZmV0Y2hlcihmaWxlc3lzdGVtKQog
ICAgICAgICB6aXBfZmFjdG9yeSA9IHRlc3RfemlwX2ZhY3RvcnkoKQpAQCAtMTk2LDcgKzIwNyw3
IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICMg
dGhpcyBtZXRob2QgdGVzdHMgdGhhdCB3YXMgY2FuIGF0IGxlYXN0IGluc3RhbnRpYXRlIGFuIG9i
amVjdCwgZXZlbgogICAgICAgICAjIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8uCiAgICAgICAg
IHJlYmFzZWxpbmVyLCBmaWxlc3lzdGVtID0gc2VsZi5tYWtlX3JlYmFzZWxpbmVyKCIiKQotICAg
ICAgICByZWJhc2VsaW5lci5ydW4oRmFsc2UpCisgICAgICAgIHJlYmFzZWxpbmVyLnJ1bigpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcyksIDEp
CiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5pbmdfdGVzdHMoc2VsZik6CkBAIC0yMTYsNyArMjI3
LDcgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYg
dGVzdF9vbmVfcGxhdGZvcm0oc2VsZik6CiAgICAgICAgIHJlYmFzZWxpbmVyLCBmaWxlc3lzdGVt
ID0gc2VsZi5tYWtlX3JlYmFzZWxpbmVyKAogICAgICAgICAgICAgIkJVR1ggUkVCQVNFTElORSBN
QUMgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sID0gSU1BR0UiKQotICAgICAgICByZWJh
c2VsaW5lci5ydW4oRmFsc2UpCisgICAgICAgIHJlYmFzZWxpbmVyLnJ1bigpCiAgICAgICAgICMg
V2UgZXhwZWN0IHRvIGhhdmUgd3JpdHRlbiAxMiBmaWxlcyBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhp
cyByZWJhc2VsaW5lOgogICAgICAgICAjICopIDMgZmlsZXMgaW4gL19faW1fdG1wIGZvciB0aGUg
ZXh0cmFjdGVkIGFyY2hpdmUgbWVtYmVycwogICAgICAgICAjICopIDMgbmV3IGJhc2VsaW5lcyB1
bmRlciAnL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMnCkBAIC0yMzMsNyArMjQ0LDcgQEAgY2xh
c3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9hbGxf
cGxhdGZvcm1zKHNlbGYpOgogICAgICAgICByZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYu
bWFrZV9yZWJhc2VsaW5lcigKICAgICAgICAgICAgICJCVUdYIFJFQkFTRUxJTkUgOiBmYWlsdXJl
cy9leHBlY3RlZC9pbWFnZS5odG1sID0gSU1BR0UiKQotICAgICAgICByZWJhc2VsaW5lci5ydW4o
RmFsc2UpCisgICAgICAgIHJlYmFzZWxpbmVyLnJ1bigpCiAgICAgICAgICMgU2VlIGNvbW1lbnQg
aW4gdGVzdF9vbmVfcGxhdGZvcm0gZm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSAxMiB3cml0dGVu
IHRlc3RzLgogICAgICAgICAjIE5vdGUgdGhhdCBldmVuIHRob3VnaCB0aGUgcmViYXNlbGluZSBp
cyBtYXJrZWQgZm9yIGFsbCBwbGF0Zm9ybXMsIGVhY2gKICAgICAgICAgIyByZWJhc2VsaW5lciBv
bmx5IGV2ZXIgZG9lcyBvbmUuCkBAIC0yNjAsMTIgKzI3MSwxOCBAQCBjbGFzcyBUZXN0UmViYXNl
bGluZXIodW5pdHRlc3QuVGVzdENhc2UpOgogCiAKIGNsYXNzIFRlc3RSZWFsTWFpbih1bml0dGVz
dC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBpZiBub3QgaGFzYXR0
cihzZWxmLCAnX29yaWdfYXJjaGl2ZScpOgorICAgICAgICAgICAgc2VsZi5fb3JpZ19hcmNoaXZl
ID0gcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMuQVJDSElWRV9ESVJfTkFNRV9ESUNU
CisgICAgICAgICAgICByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5BUkNISVZFX0RJ
Ul9OQU1FX0RJQ1QgPSB0ZXN0X2FyY2hpdmUoc2VsZi5fb3JpZ19hcmNoaXZlKQorCisgICAgZGVm
IHRlYXJEb3duKHNlbGYpOgorICAgICAgICByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0
cy5BUkNISVZFX0RJUl9OQU1FX0RJQ1QgPSBzZWxmLl9vcmlnX2FyY2hpdmUKKwogICAgIGRlZiB0
ZXN0X2FsbF9wbGF0Zm9ybXMoc2VsZik6CiAgICAgICAgIGV4cGVjdGF0aW9ucyA9ICJCVUdYIFJF
QkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sID0gSU1BR0UiCiAKICAgICAg
ICAgb3B0aW9ucyA9IHRlc3Rfb3B0aW9ucygpCi0gICAgICAgIG9wdGlvbnMucGxhdGZvcm1zID0g
JywnLmpvaW4ob3B0aW9ucy5hbGxfcGxhdGZvcm1zKQotCiAgICAgICAgIGhvc3RfcG9ydF9vYmos
IGZpbGVzeXN0ZW0gPSB0ZXN0X2hvc3RfcG9ydF9hbmRfZmlsZXN5c3RlbShvcHRpb25zLCBleHBl
Y3RhdGlvbnMpCiAgICAgICAgIHVybF9mZXRjaGVyID0gdGVzdF91cmxfZmV0Y2hlcihmaWxlc3lz
dGVtKQogICAgICAgICB6aXBfZmFjdG9yeSA9IHRlc3RfemlwX2ZhY3RvcnkoKQpAQCAtMjkyLDcg
KzMwOSw3IEBAIGNsYXNzIFRlc3RIdG1sR2VuZXJhdG9yKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgb3B0aW9ucyA9IG1vY2t0b29sLk1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249Tm9uZSwg
aHRtbF9kaXJlY3Rvcnk9Jy90bXAnKQogICAgICAgICBob3N0X3BvcnQgPSBwb3J0LmdldCgndGVz
dCcsIG9wdGlvbnMsIGZpbGVzeXN0ZW09cG9ydC51bml0X3Rlc3RfZmlsZXN5c3RlbShmaWxlcykp
CiAgICAgICAgIGdlbmVyYXRvciA9IHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLkh0
bWxHZW5lcmF0b3IoaG9zdF9wb3J0LAotICAgICAgICAgICAgdGFyZ2V0X3BvcnQ9Tm9uZSwgb3B0
aW9ucz1vcHRpb25zLCBwbGF0Zm9ybXM9WydtYWMnXSwgcmViYXNlbGluaW5nX3Rlc3RzPXRlc3Rz
KQorICAgICAgICAgICAgdGFyZ2V0X3BvcnQ9Tm9uZSwgb3B0aW9ucz1vcHRpb25zLCBwbGF0Zm9y
bXM9Wyd0ZXN0LW1hYy1sZW9wYXJkJ10sIHJlYmFzZWxpbmluZ190ZXN0cz10ZXN0cykKICAgICAg
ICAgcmV0dXJuIGdlbmVyYXRvciwgaG9zdF9wb3J0CiAKICAgICBkZWYgdGVzdF9nZW5lcmF0ZV9i
YXNlbGluZV9saW5rcyhzZWxmKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87817</attachid>
            <date>2011-03-31 19:00:59 -0700</date>
            <delta_ts>2011-04-01 11:50:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55191-20110331190057.patch</filename>
            <type>text/plain</type>
            <size>50488</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI1MjkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MzJhYmI0NDJiZTdlMjlkMWYyMDgzMWMyYzE3MjczNjYy
ZTZmMTUzLi4yYTM0NjA5NTBhODQwOTBlYTZjYzE1NTEzODI1ZTRiNDRkMjc1NjI0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTEtMDMtMzEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBj
b21wbGV0ZXMgdGhlIGNsZWFudXAgb2YKKyAgICAgICAgcmViYXNlbGluZS1jaHJvbWl1bS13ZWJr
aXQtdGVzdHMgdG8gd29yayB3aXRoIGFsbCBvZiB0aGUKKyAgICAgICAgdmFyaWFudHMgb2YgYSBw
bGF0Zm9ybSAod2UgY2FuIG5vdyByZWJhc2VsaW5lIGdwdS0gYW5kIG5vbi1ncHUKKyAgICAgICAg
ZmlsZXMgYXQgdGhlIHNhbWUgdGltZSkuCisKKyAgICAgICAgV2hlbiB0aGUgcmViYXNlbGluaW5n
IGlzIGNvbXBsZXRlLCBhbnkgbGluZXMgZGVjbGFyZWQgYXMKKyAgICAgICAgUkVCQVNFTElORSBp
biB0aGUgZXhwZWN0YXRpb25zIGZpbGUgdGhhdCBtYXRjaGVzIGEgdGVzdCB0aGF0IHdhcworICAg
ICAgICBhY3R1YWxseSByZWJhc2VsaW5lZCB3aWxsIGJlIGRlbGV0ZWQsIGV2ZW4gaWYgb25seSBv
bmUgb2YgdGhlCisgICAgICAgIHZhcmlhbnRzIHdhcyBhY3R1YWxseSByZWJhc2VsaW5lZC4gVGhp
cyBtYXkgY2F1c2Ugb2RkIHByb2JsZW1zLAorICAgICAgICBidXQgaXMgYmV0dGVyIHRoYW4gd2hl
cmUgd2UncmUgYXQgdG9kYXkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVtb3ZlcyB0aGUgLWcg
YW5kIC13IGZsYWdzLiBUaGUgLWcgZmxhZyBpcyBnb25lCisgICAgICAgIGJlY2F1c2UgR1BVIGJh
c2VsaW5lcyBhcmUgaGFuZGxlZCBqdXN0IGxpa2UgYW55IG90aGVyIHZhcmlhbnQuCisgICAgICAg
IFRoZSAtdyBmbGFnIGlzIGdvbmUgYmVjYXVzZSB0aGlzIHRvb2wgd2lsbCBjdXJyZW50bHkgb25s
eSB3b3JrCisgICAgICAgIGFnYWluc3QgdGhlIGNhbmFyaWVzLCBzaW5jZSB0aGF0J3MgdGhlIG9u
bHkgcGxhY2Ugd2UgaGF2ZSBhIGZ1bGwKKyAgICAgICAgc2V0IG9mIGJvdHMuIEl0IHdpbGwgYmUg
dHJpdmlhbCB0byBjaGFuZ2UgdGhpcyB0bworICAgICAgICBidWlsZC53ZWJraXQub3JnIGlmIHdl
IGRlY2lkZSB0aGF0J3Mgd2hlcmUgd2Ugd2FudCB0aGVtIHRvIGJlLgorCisgICAgICAgIEFsc28s
IHRoaXMgcGF0Y2ggZGVsZXRlcyBhIGxvdCBvZiBjcnVmdCB0aGF0IGlzIG5vIGxvbmdlciBuZWVk
ZWQKKyAgICAgICAgaW4gdGhlIHRlc3RfZXhwZWN0YXRpb25zIGNvZGUgYW5kIHRoZSBwb3J0LXNw
ZWNpZmljIGNvZGUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU1MTkxCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0
dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jh
c2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNl
X3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW0ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9ncHUucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dp
bl91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3Rlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
ZWJraXQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
aW4ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGlu
ZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHk6
CisKIDIwMTEtMDMtMjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9u
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IDdkMmM5MWJiNjgyNzkwMTBhNTI0OWUxNDkwOTRl
YjY4MzY4Yjc1ZDAuLjdhZTkwMjA3YTE0OTExNzBiMjExNDVmZmNiOTI3YjYwNDE3YmRlY2QgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC0xNjYsNiAr
MTY2LDkgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uczoKICAgICBkZWYgaGFzX21vZGlmaWVyKHNl
bGYsIHRlc3QsIG1vZGlmaWVyKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX2ZhaWx1
cmVzLmhhc19tb2RpZmllcih0ZXN0LCBtb2RpZmllcikKIAorICAgIGRlZiByZW1vdmVfcmViYXNl
bGluZWRfdGVzdHMoc2VsZiwgdGVzdHMpOgorICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0ZWRf
ZmFpbHVyZXMucmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzKHRlc3RzKQorCiAKIGRlZiBzdHJpcF9j
b21tZW50cyhsaW5lKToKICAgICAiIiJTdHJpcHMgY29tbWVudHMgZnJvbSBhIGxpbmUgYW5kIHJl
dHVybiBOb25lIGlmIHRoZSBsaW5lIGlzIGVtcHR5CkBAIC00MzIsNiArNDM1LDE3IEBAIGNsYXNz
IFRlc3RFeHBlY3RhdGlvbnNGaWxlOgogICAgIGRlZiBnZXRfbm9uX2ZhdGFsX2Vycm9ycyhzZWxm
KToKICAgICAgICAgcmV0dXJuIHNlbGYuX25vbl9mYXRhbF9lcnJvcnMKIAorICAgIGRlZiByZW1v
dmVfcmViYXNlbGluZWRfdGVzdHMoc2VsZiwgdGVzdHMpOgorICAgICAgICAiIiJSZXR1cm5zIGEg
Y29weSBvZiB0aGUgZXhwZWN0YXRpb25zIHdpdGggdGhlIHRlc3RzIHJlbW92ZWQuIiIiCisgICAg
ICAgIGxpbmVubyA9IDAKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBmb3IgbGluZSBpbiBz
ZWxmLl9nZXRfaXRlcmFibGVfZXhwZWN0YXRpb25zKHNlbGYuX2V4cGVjdGF0aW9ucyk6CisgICAg
ICAgICAgICBsaW5lbm8gKz0gMQorICAgICAgICAgICAgdGVzdCwgb3B0aW9ucywgXyA9IHNlbGYu
cGFyc2VfZXhwZWN0YXRpb25zX2xpbmUobGluZSwgbGluZW5vKQorICAgICAgICAgICAgaWYgbm90
ICh0ZXN0IGFuZCB0ZXN0IGluIHRlc3RzIGFuZCAncmViYXNlbGluZScgaW4gb3B0aW9ucyk6Cisg
ICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGxpbmUpCisgICAgICAgIHJldHVybiAnJy5qb2lu
KGxpbmVzKQorCiAgICAgZGVmIHBhcnNlX2V4cGVjdGF0aW9uc19saW5lKHNlbGYsIGxpbmUsIGxp
bmVubyk6CiAgICAgICAgICIiIlBhcnNlcyBhIGxpbmUgZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucy50
eHQgYW5kIHJldHVybnMgYSB0dXBsZQogICAgICAgICB3aXRoIHRoZSB0ZXN0IHBhdGgsIG9wdGlv
bnMgYXMgYSBsaXN0LCBleHBlY3RhdGlvbnMgYXMgYSBsaXN0LiIiIgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBl
Y3RhdGlvbnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRleCBkZjM2
NGEwZWY4OWM1YzQxMDc3OGM1YzdlMjZmZjcxYTk2NjU3Y2JmLi4wODMzMDc5M2IxN2Y3NzBkZmU3
MmUyOWRiODczYTVmZGI3YzQ0YzZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQpAQCAtMzc3LDcgKzM3NywxOSBAQCBCVUdf
VEVTVCBXSU4tWFAgOiBwYXNzZXMvdGV4dC5odG1sID0gVEVYVAogCiBjbGFzcyBSZWJhc2VsaW5p
bmdUZXN0KEJhc2UpOgogICAgICIiIlRlc3QgcmViYXNlbGluaW5nLXNwZWNpZmljIGZ1bmN0aW9u
YWxpdHkuIiIiCi0gICAgIyBGSVhNRTogYWRkIGluIHRlc3RzIG9uY2Ugd2UgYXJlIGFjdHVhbGx5
IGRlbGV0aW5nIGxpbmVzIGFnYWluLgorICAgIGRlZiBhc3NlcnRSZW1vdmUoc2VsZiwgaW5wdXRf
ZXhwZWN0YXRpb25zLCB0ZXN0cywgZXhwZWN0ZWRfZXhwZWN0YXRpb25zKToKKyAgICAgICAgc2Vs
Zi5wYXJzZV9leHAoaW5wdXRfZXhwZWN0YXRpb25zKQorICAgICAgICBhY3R1YWxfZXhwZWN0YXRp
b25zID0gc2VsZi5fZXhwLnJlbW92ZV9yZWJhc2VsaW5lZF90ZXN0cyh0ZXN0cykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9leHBlY3RhdGlvbnMsIGFjdHVhbF9leHBlY3RhdGlv
bnMpCisKKyAgICBkZWYgdGVzdF9yZW1vdmUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmVt
b3ZlKCdCVUdYIFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhU
XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0ZWQv
aW1hZ2UuaHRtbCA9IElNQUdFXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdaIFJF
QkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sID0gQ1JBU0hcbicsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJ10sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2Uu
aHRtbCA9IElNQUdFXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdaIFJFQkFTRUxJ
TkUgOiBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sID0gQ1JBU0hcbicpCisKICAgICBkZWYg
dGVzdF9ub19nZXRfcmViYXNlbGluaW5nX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICBzZWxmLnBh
cnNlX2V4cChzZWxmLmdldF9iYXNpY19leHBlY3RhdGlvbnMoKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsZW4oc2VsZi5fZXhwLmdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoKSksIDApCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2Uu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5k
ZXggZGVhMTI2Zjg1YjU3YzA3Y2ZlMjk0NDBlM2EwODE2ZDZiOWU5ZjBhOS4uMDlhZTZjNDk3MDdi
ZjQwNzZlNzJhOTk5MGZmMGE1MWU5NzVjNGVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtOTAsNyArOTAsMTYgQEAgY2xhc3Mg
UG9ydChvYmplY3QpOgogICAgICAgICAgICAgICAgICBjb25maWc9Tm9uZSwKICAgICAgICAgICAg
ICAgICAgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLl9uYW1lID0gcG9ydF9uYW1lCi0gICAgICAg
IHNlbGYuX2FyY2hpdGVjdHVyZSA9ICd4ODYnCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYs
ICdfb3BlcmF0aW5nX3N5c3RlbScpOgorICAgICAgICAgICAgIyBXZSBkb24ndCBsb29rIGF0IHN5
cy5wbGF0Zm9ybSBiZWNhdXNlIHRoZSByZXN1bHRzIHNob3VsZCBiZQorICAgICAgICAgICAgIyBk
ZXRlcm1pbmlzdGljLiBUaGlzIGlzIGEgZGVmYXVsdCB2YWx1ZSwgb2J2aW91c2x5LgorICAgICAg
ICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICdtYWMnCisgICAgICAgIGlmIG5vdCBoYXNh
dHRyKHNlbGYsICdfdmVyc2lvbicpOgorICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9ICcnCisg
ICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfYXJjaGl0ZWN0dXJlJyk6CisgICAgICAgICAg
ICBzZWxmLl9hcmNoaXRlY3R1cmUgPSAneDg2JworICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxm
LCAnX2dyYXBoaWNzX3R5cGUnKToKKyAgICAgICAgICAgIHNlbGYuX2dyYXBoaWNzX3R5cGUgPSAn
Y3B1JwogICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogICAgICAgICBpZiBzZWxmLl9v
cHRpb25zIGlzIE5vbmU6CiAgICAgICAgICAgICAjIEZJWE1FOiBJZGVhbGx5IHdlJ2QgaGF2ZSBh
IHBhY2thZ2Utd2lkZSB3YXkgdG8gZ2V0IGEKQEAgLTQ4MSwxNiArNDkwLDI3IEBAIGNsYXNzIFBv
cnQob2JqZWN0KToKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9y
eSgqcGF0aCkKIAogICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIG5h
bWUgb2YgdGhlIHBvcnQgKGUuZy4sICdtYWMnLCAnY2hyb21pdW0td2luLXhwJykuCi0KLSAgICAg
ICAgTm90ZSB0aGF0IHRoaXMgaXMgZGlmZmVyZW50IGZyb20gdGhlIHRlc3RfcGxhdGZvcm1fbmFt
ZSgpLCB3aGljaAotICAgICAgICBtYXkgYmUgZGlmZmVyZW50IChlLmcuLCAnd2luLXhwJyBpbnN0
ZWFkIG9mICdjaHJvbWl1bS13aW4teHAnLiIiIgorICAgICAgICAiIiJSZXR1cm4gdGhlIG5hbWUg
b2YgdGhlIHBvcnQgKGUuZy4sICdtYWMnLCAnY2hyb21pdW0td2luLXhwJykuIiIiCiAgICAgICAg
IHJldHVybiBzZWxmLl9uYW1lCiAKKyAgICBkZWYgb3BlcmF0aW5nX3N5c3RlbShzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0KKworICAgIGRlZiB2ZXJzaW9uKHNl
bGYpOgorICAgICAgICAiIiJSZXR1cm5zIGEgc3RyaW5nIGluZGljYXRpbmcgdGhlIHZlcnNpb24g
b2YgYSBnaXZlbiBwbGF0Zm9ybSwgZS5nLgorICAgICAgICAnbGVvcGFyZCcgb3IgJ3hwJy4KKwor
ICAgICAgICBUaGlzIGlzIHVzZWQgdG8gaGVscCBpZGVudGlmeSB0aGUgZXhhY3QgcG9ydCB3aGVu
IHBhcnNpbmcgdGVzdAorICAgICAgICBleHBlY3RhdGlvbnMsIGRldGVybWluaW5nIHNlYXJjaCBw
YXRocywgYW5kIGxvZ2dpbmcgaW5mb3JtYXRpb24uIiIiCisgICAgICAgIHJldHVybiBzZWxmLl92
ZXJzaW9uCisKICAgICBkZWYgZ3JhcGhpY3NfdHlwZShzZWxmKToKICAgICAgICAgIiIiUmV0dXJu
cyB3aGV0aGVyIHRoZSBwb3J0IHVzZXMgYWNjZWxlcmF0ZWQgZ3JhcGhpY3MgKCdncHUnKSBvciBu
b3QKICAgICAgICAgKCdjcHUnKS4iIiIKLSAgICAgICAgcmV0dXJuICdjcHUnCisgICAgICAgIHJl
dHVybiBzZWxmLl9ncmFwaGljc190eXBlCisKKyAgICBkZWYgYXJjaGl0ZWN0dXJlKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fYXJjaGl0ZWN0dXJlCiAKICAgICBkZWYgcmVhbF9uYW1lKHNl
bGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBhY3R1YWwgbmFtZSBvZiB0aGUgcG9ydCwgbm90
IHRoZSBkZWxlZ2F0ZSdzLiIiIgpAQCAtNjMxLDYgKzY1MSwxNCBAQCBjbGFzcyBQb3J0KG9iamVj
dCk6CiAgICAgZGVmIGFsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgogICAgICAgICByZXR1
cm4gc2VsZi50ZXN0X2NvbmZpZ3VyYXRpb24oKS5hbGxfdGVzdF9jb25maWd1cmF0aW9ucygpCiAK
KyAgICBkZWYgYWxsX2Jhc2VsaW5lX3ZhcmlhbnRzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5z
IGEgbGlzdCBvZiBwbGF0Zm9ybSBuYW1lcyBzdWZmaWNpZW50IHRvIGNvdmVyIGFsbCB0aGUgYmFz
ZWxpbmVzLgorCisgICAgICAgIFRoZSBsaXN0IHNob3VsZCBiZSBzb3J0ZWQgc28gdGhhdCBhIGxh
dGVyIHBsYXRmb3JtICB3aWxsIHJldXNlCisgICAgICAgIGFuIGVhcmxpZXIgcGxhdGZvcm0ncyBi
YXNlbGluZXMgaWYgdGhleSBhcmUgdGhlIHNhbWUgKGUuZy4sCisgICAgICAgICdzbm93bGVvcGFy
ZCcgc2hvdWxkIHByZWNlZGUgJ2xlb3BhcmQnKS4iIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcgorCiAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAgICAi
IiJSZXR1cm5zIHRoZSB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgdGhpcyBwb3J0LgogCkBAIC02NDcs
MzkgKzY3NSw2IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgc3luYyB1cCB0aGUgdHdv
IHJlcG9zLiIiIgogICAgICAgICByZXR1cm4gTm9uZQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1f
bmFtZShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHRoYXQgY29ycmVzcG9u
ZHMgdG8gdGhlIGdpdmVuIHBsYXRmb3JtIG5hbWUKLSAgICAgICAgaW4gdGhlIHRlc3QgZXhwZWN0
YXRpb25zLiBUaGlzIG1heSBiZSB0aGUgc2FtZSBhcyBuYW1lKCksIG9yIGl0Ci0gICAgICAgIG1h
eSBiZSBkaWZmZXJlbnQuIEZvciBleGFtcGxlLCBjaHJvbWl1bSByZXR1cm5zICdtYWMnIGZvcgot
ICAgICAgICAnY2hyb21pdW0tbWFjJy4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF
cnJvcignUG9ydC50ZXN0X3BsYXRmb3JtX25hbWUnKQotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1z
KHNlbGYpOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBsaXN0IG9mIHRlc3QgcGxhdGZvcm0gaWRl
bnRpZmllcnMgYXMgdXNlZCBpbiB0aGUKLSAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMgYW5kIG9u
IGRhc2hib2FyZHMsIHRoZSByZWJhc2VsaW5pbmcgdG9vbCwgZXRjLgotCi0gICAgICAgIE5vdGUg
dGhhdCB0aGlzIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgbGlzdCBvZiBwb3J0
cywKLSAgICAgICAgd2hpY2ggbXVzdCBiZSBnbG9iYWxseSB1bmlxdWUgKGUuZy4sIGJvdGggJ2No
cm9taXVtLW1hYycgYW5kICdtYWMnCi0gICAgICAgIG1pZ2h0IHJldHVybiAnbWFjJyBhcyBhIHRl
c3RfcGxhdGZvcm0gbmFtZScuIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io
J1BvcnQucGxhdGZvcm1zJykKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShz
ZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUpOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBQb3J0IHBs
YXRmb3JtIG5hbWUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgbmFtZSBhcwotICAgICAgICByZWZl
cmVuY2VkIGluIHRoZSBleHBlY3RhdGlvbnMgZmlsZS4gRS5nLiwgIm1hYyIgcmV0dXJucwotICAg
ICAgICAiY2hyb21pdW0tbWFjIiBvbiB0aGUgQ2hyb21pdW0gcG9ydHMuIiIiCi0gICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQudGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUn
KQotCi0gICAgZGVmIGFyY2hpdGVjdHVyZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Fy
Y2hpdGVjdHVyZQotCi0gICAgZGVmIHZlcnNpb24oc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMg
YSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgdmVyc2lvbiBvZiBhIGdpdmVuIHBsYXRmb3JtLCBlLmcu
Ci0gICAgICAgICdsZW9wYXJkJyBvciAneHAnLgotCi0gICAgICAgIFRoaXMgaXMgdXNlZCB0byBo
ZWxwIGlkZW50aWZ5IHRoZSBleGFjdCBwb3J0IHdoZW4gcGFyc2luZyB0ZXN0Ci0gICAgICAgIGV4
cGVjdGF0aW9ucywgZGV0ZXJtaW5pbmcgc2VhcmNoIHBhdGhzLCBhbmQgbG9nZ2luZyBpbmZvcm1h
dGlvbi4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC52ZXJzaW9u
JykKLQogICAgIGRlZiB0ZXN0X3JlcG9zaXRvcnlfcGF0aHMoc2VsZik6CiAgICAgICAgICIiIlJl
dHVybnMgYSBsaXN0IG9mIChyZXBvc2l0b3J5X25hbWUsIHJlcG9zaXRvcnlfcGF0aCkgdHVwbGVz
CiAgICAgICAgIG9mIGl0cyBkZXBlbmRpbmcgY29kZSBiYXNlLiAgQnkgZGVmYXVsdCBpdCByZXR1
cm5zIGEgbGlzdCB0aGF0IG9ubHkKQEAgLTk1NiwxNSArOTUxLDggQEAgY2xhc3MgRHJpdmVyOgog
Y2xhc3MgVGVzdENvbmZpZ3VyYXRpb24ob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwg
cG9ydD1Ob25lLCBvcz1Ob25lLCB2ZXJzaW9uPU5vbmUsIGFyY2hpdGVjdHVyZT1Ob25lLAogICAg
ICAgICAgICAgICAgICBidWlsZF90eXBlPU5vbmUsIGdyYXBoaWNzX3R5cGU9Tm9uZSk6Ci0KLSAg
ICAgICAgIyBGSVhNRTogV2UgY2FuIGdldCB0aGUgTy9TIGFuZCB2ZXJzaW9uIGZyb20gdGVzdF9w
bGF0Zm9ybV9uYW1lKCkKLSAgICAgICAgIyBhbmQgdmVyc2lvbigpIGZvciBub3csIGJ1dCB0aG9z
ZSBzaG91bGQgZ28gYXdheSBhbmQgYmUgY2xlYW5lZCB1cAotICAgICAgICAjIHdpdGggbW9yZSBn
ZW5lcmljIG1ldGhvZHMgbGlrZSBvcGVyYXRpb25fc3lzdGVtKCkgYW5kIG9zX3ZlcnNpb24oKQot
ICAgICAgICAjIG9yIHNvbWV0aGluZy4KLSAgICAgICAgaWYgcG9ydDoKLSAgICAgICAgICAgIHBv
cnRfdmVyc2lvbiA9IHBvcnQudmVyc2lvbigpCi0gICAgICAgIHNlbGYub3MgPSBvcyBvciBwb3J0
LnRlc3RfcGxhdGZvcm1fbmFtZSgpLnJlcGxhY2UoJy0nICsgcG9ydF92ZXJzaW9uLCAnJykKLSAg
ICAgICAgc2VsZi52ZXJzaW9uID0gdmVyc2lvbiBvciBwb3J0X3ZlcnNpb24KKyAgICAgICAgc2Vs
Zi5vcyA9IG9zIG9yIHBvcnQub3BlcmF0aW5nX3N5c3RlbSgpCisgICAgICAgIHNlbGYudmVyc2lv
biA9IHZlcnNpb24gb3IgcG9ydC52ZXJzaW9uKCkKICAgICAgICAgc2VsZi5hcmNoaXRlY3R1cmUg
PSBhcmNoaXRlY3R1cmUgb3IgcG9ydC5hcmNoaXRlY3R1cmUoKQogICAgICAgICBzZWxmLmJ1aWxk
X3R5cGUgPSBidWlsZF90eXBlIG9yIHBvcnQuX29wdGlvbnMuY29uZmlndXJhdGlvbi5sb3dlcigp
CiAgICAgICAgIHNlbGYuZ3JhcGhpY3NfdHlwZSA9IGdyYXBoaWNzX3R5cGUgb3IgcG9ydC5ncmFw
aGljc190eXBlKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvYmFzZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQppbmRleCBlZjkwNDg0Y2E4M2IxNzE3OTQzMDIw
YjFkNDNjOTJkNzE2ODAzMDgyLi40MWU3NWVhZmUxMjEzNGM4YjI2ODYzNDY0MTUyY2I3YTJiNjcy
MTc1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Jhc2VfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CkBAIC0yNDcsMTMgKzI0Nyw4IEBAIGNsYXNzIFZpcnR1
YWxUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBv
cnQuY3JlYXRlX2RyaXZlciwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuZGlm
Zl9pbWFnZSwgTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQucGF0
aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwo
cG9ydC50ZXN0X3BsYXRmb3JtX25hbWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0
LnJlc3VsdHNfZGlyZWN0b3J5KQogICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0
X2V4cGVjdGF0aW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQudGVzdF9wbGF0
Zm9ybV9uYW1lKQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3Jt
cykKLSAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQudGVzdF9wbGF0Zm9ybV9uYW1lX3Rv
X25hbWUsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnZlcnNpb24pCiAg
ICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0Ll9wYXRoX3RvX2FwYWNoZSkKICAgICAgICAg
c2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuX3BhdGhfdG9fYXBhY2hlX2NvbmZpZ19maWxlKQogICAg
ICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5fcGF0aF90b19kcml2ZXIpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRl
eCBkMDhjMGJkYjU5NGRjNjExMDZmMjA0ZTBlZjFiYmVlOGQ2YTM1MDU4Li4xYWFlMjY5MjZlNjcw
MDZmMWIxZmQ4OWU3ZTRlYzQ2OThlZjEzYWZkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKQEAgLTUxLDYgKzUxLDEyIEBA
IF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigid2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuY2hy
b21pdW0iKQogIyBGSVhNRTogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGJlbG9uZyBpbiB0aGlzIHBh
Y2thZ2UuCiBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKICAgICAiIiJBYnN0cmFjdCBi
YXNlIGNsYXNzIGZvciBDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFBvcnQgY2xhc3Mu
IiIiCisgICAgQUxMX0JBU0VMSU5FX1ZBUklBTlRTID0gWworICAgICAgICAnY2hyb21pdW0tbWFj
LXNub3dsZW9wYXJkJywgJ2Nocm9taXVtLW1hYy1sZW9wYXJkJywKKyAgICAgICAgJ2Nocm9taXVt
LXdpbi13aW43JywgJ2Nocm9taXVtLXdpbi12aXN0YScsICdjaHJvbWl1bS13aW4teHAnLAorICAg
ICAgICAnY2hyb21pdW0tbGludXgnLCAnY2hyb21pdW0tbGludXgteDg2XzY0JywKKyAgICAgICAg
J2Nocm9taXVtLWdwdS1tYWMtbGVvcGFyZCcsICdjaHJvbWl1bS1ncHUtd2luLXhwJywgJ2Nocm9t
aXVtLWdwdS1saW51eCcsCisgICAgXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdz
KToKICAgICAgICAgYmFzZS5Qb3J0Ll9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQpAQCAtMjMwLDYg
KzIzNiw5IEBAIGNsYXNzIENocm9taXVtUG9ydChiYXNlLlBvcnQpOgogICAgICAgICAgICAgIyBo
dHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTczMTcxNwogICAgICAgICAgICAgc2VsZi5faGVs
cGVyLndhaXQoKQogCisgICAgZGVmIGFsbF9iYXNlbGluZV92YXJpYW50cyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuQUxMX0JBU0VMSU5FX1ZBUklBTlRTCisKICAgICBkZWYgdGVzdF9leHBl
Y3RhdGlvbnMoc2VsZik6CiAgICAgICAgICIiIlJldHVybnMgdGhlIHRlc3QgZXhwZWN0YXRpb25z
IGZvciB0aGlzIHBvcnQuCiAKQEAgLTI1MSw3ICsyNjAsNiBAQCBjbGFzcyBDaHJvbWl1bVBvcnQo
YmFzZS5Qb3J0KToKICAgICBkZWYgc2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZiwgZXh0cmFfdGVz
dF9maWxlcz1Ob25lKToKICAgICAgICAgZXhwZWN0YXRpb25zX3N0ciA9IHNlbGYudGVzdF9leHBl
Y3RhdGlvbnMoKQogICAgICAgICBvdmVycmlkZXNfc3RyID0gc2VsZi50ZXN0X2V4cGVjdGF0aW9u
c19vdmVycmlkZXMoKQotICAgICAgICB0ZXN0X3BsYXRmb3JtX25hbWUgPSBzZWxmLnRlc3RfcGxh
dGZvcm1fbmFtZSgpCiAgICAgICAgIGlzX2RlYnVnX21vZGUgPSBGYWxzZQogCiAgICAgICAgIGFs
bF90ZXN0X2ZpbGVzID0gc2VsZi50ZXN0cyhbXSkKQEAgLTI2NSwxNyArMjczLDYgQEAgY2xhc3Mg
Q2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJldHVybiBbc2VsZi5yZWxhdGl2ZV90
ZXN0X2ZpbGVuYW1lKHRlc3QpCiAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gZXhwZWN0YXRp
b25zLmdldF90ZXN0c193aXRoX3Jlc3VsdF90eXBlKHRlc3RfZXhwZWN0YXRpb25zLlNLSVApXQog
Ci0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiAoJ21h
Yy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcsCi0gICAgICAgICAgICAgICAgJ3dpbi14cCcs
ICd3aW4tdmlzdGEnLCAnd2luLXdpbjcnLAotICAgICAgICAgICAgICAgICdsaW51eCcpCi0KLSAg
ICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwgdGVzdF9wbGF0Zm9ybV9uYW1l
KToKLSAgICAgICAgaWYgdGVzdF9wbGF0Zm9ybV9uYW1lIGluIHNlbGYudGVzdF9wbGF0Zm9ybV9u
YW1lcygpOgotICAgICAgICAgICAgcmV0dXJuICdjaHJvbWl1bS0nICsgdGVzdF9wbGF0Zm9ybV9u
YW1lCi0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Vuc3VwcG9ydGVkIHRlc3RfcGxhdGZvcm1f
bmFtZTogJXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BsYXRmb3JtX25hbWUp
Ci0KICAgICBkZWYgdGVzdF9yZXBvc2l0b3J5X3BhdGhzKHNlbGYpOgogICAgICAgICAjIE5vdGU6
IGZvciBKU09OIGZpbGUncyBiYWNrd2FyZC1jb21wYXRpYmlsaXR5IHdlIHVzZSAnY2hyb21lJyBy
YXRoZXIKICAgICAgICAgIyB0aGFuICdjaHJvbWl1bScgaGVyZS4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkKaW5k
ZXggMTY3ZjIzZWM0YmZhMTQyMDJlNmZkNzk2ZmUxMTJiZjU0MGJkZjcwOS4uZmZjMmNmNzRjYzc1
NDY3M2Y3MTc3NGJjODRlMjliNjQzMmM2NWZkZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkKQEAgLTYwLDYg
KzYwLDcgQEAgZGVmIGdldChwbGF0Zm9ybT1Ob25lLCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdScs
ICoqa3dhcmdzKToKICMgRklYTUU6IFRoZXNlIHNob3VsZCByZWFsbHkgYmUgYSBtaXhpbiBjbGFz
cy4KIAogZGVmIF9zZXRfZ3B1X29wdGlvbnMocG9ydCk6CisgICAgcG9ydC5fZ3JhcGhpY3NfdHlw
ZSA9ICdncHUnCiAgICAgaWYgcG9ydC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF9jb21wb3NpdGlu
ZycpIGlzIE5vbmU6CiAgICAgICAgIHBvcnQuX29wdGlvbnMuYWNjZWxlcmF0ZWRfY29tcG9zaXRp
bmcgPSBUcnVlCiAgICAgaWYgcG9ydC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF8yZF9jYW52YXMn
KSBpcyBOb25lOgpAQCAtODQsMTcgKzg1LDYgQEAgZGVmIF90ZXN0cyhwb3J0LCBwYXRocyk6CiAg
ICAgcmV0dXJuIHRlc3RfZmlsZXMuZmluZChwb3J0LCBwYXRocykKIAogCi1kZWYgX3Rlc3RfcGxh
dGZvcm1fbmFtZXMoc2VsZik6Ci0gICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdsaW51eCcpCi0K
LQotZGVmIF90ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25h
bWUpOgotICAgIGlmIHRlc3RfcGxhdGZvcm1fbmFtZSBpbiBzZWxmLnRlc3RfcGxhdGZvcm1fbmFt
ZXMoKToKLSAgICAgICAgcmV0dXJuICdjaHJvbWl1bS1ncHUtJyArIHRlc3RfcGxhdGZvcm1fbmFt
ZQotICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Vuc3VwcG9ydGVkIHRlc3RfcGxhdGZvcm1fbmFtZTog
JXMnICUKLSAgICAgICAgICAgICAgICAgICAgIHRlc3RfcGxhdGZvcm1fbmFtZSkKLQotCiBjbGFz
cyBDaHJvbWl1bUdwdUxpbnV4UG9ydChjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCk6
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT0nY2hyb21pdW0tZ3B1LWxpbnV4Jywg
Kiprd2FyZ3MpOgogICAgICAgICBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydC5fX2lu
aXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKQEAgLTExMiwyMSArMTAy
LDkgQEAgY2xhc3MgQ2hyb21pdW1HcHVMaW51eFBvcnQoY2hyb21pdW1fbGludXguQ2hyb21pdW1M
aW51eFBvcnQpOgogICAgIGRlZiBkZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAg
ICAgcmV0dXJuIDEKIAotICAgIGRlZiBncmFwaGljc190eXBlKHNlbGYpOgotICAgICAgICByZXR1
cm4gJ2dwdScKLQogICAgIGRlZiB0ZXN0cyhzZWxmLCBwYXRocyk6CiAgICAgICAgIHJldHVybiBf
dGVzdHMoc2VsZiwgcGF0aHMpCiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgot
ICAgICAgICByZXR1cm4gJ2xpbnV4JwotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZXMoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBfdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKQotCi0gICAgZGVm
IHRlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1lKHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4g
X3Rlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1lKHNlbGYsIG5hbWUpCi0KIAogY2xhc3MgQ2hyb21p
dW1HcHVNYWNQb3J0KGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQpOgogICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdS1tYWMnLCAqKmt3YXJncyk6CkBAIC0x
NDQsMjEgKzEyMiw5IEBAIGNsYXNzIENocm9taXVtR3B1TWFjUG9ydChjaHJvbWl1bV9tYWMuQ2hy
b21pdW1NYWNQb3J0KToKICAgICBkZWYgZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAg
ICAgICAgIHJldHVybiAxCiAKLSAgICBkZWYgZ3JhcGhpY3NfdHlwZShzZWxmKToKLSAgICAgICAg
cmV0dXJuICdncHUnCi0KICAgICBkZWYgdGVzdHMoc2VsZiwgcGF0aHMpOgogICAgICAgICByZXR1
cm4gX3Rlc3RzKHNlbGYsIHBhdGhzKQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxm
KToKLSAgICAgICAgcmV0dXJuICdtYWMnCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIF90ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYpCi0KLSAgICBk
ZWYgdGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVy
biBfdGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwgbmFtZSkKLQogCiBjbGFzcyBDaHJv
bWl1bUdwdVdpblBvcnQoY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCk6CiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBvcnRfbmFtZT0nY2hyb21pdW0tZ3B1LXdpbicsICoqa3dhcmdzKToKQEAg
LTE3NiwxNyArMTQyLDUgQEAgY2xhc3MgQ2hyb21pdW1HcHVXaW5Qb3J0KGNocm9taXVtX3dpbi5D
aHJvbWl1bVdpblBvcnQpOgogICAgIGRlZiBkZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToK
ICAgICAgICAgcmV0dXJuIDEKIAotICAgIGRlZiBncmFwaGljc190eXBlKHNlbGYpOgotICAgICAg
ICByZXR1cm4gJ2dwdScKLQogICAgIGRlZiB0ZXN0cyhzZWxmLCBwYXRocyk6CiAgICAgICAgIHJl
dHVybiBfdGVzdHMoc2VsZiwgcGF0aHMpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNl
bGYpOgotICAgICAgICByZXR1cm4gJ3dpbicKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVz
KHNlbGYpOgotICAgICAgICByZXR1cm4gX3Rlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZikKLQotICAg
IGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0
dXJuIF90ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCBuYW1lKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGlu
dXgucHkKaW5kZXggMmNkMjQzNTE1Mzc2ZjkyNzYwZWQyY2MzYTEzYjIyZmZlMGIxNzk3Ni4uMDZh
ZjVlZTk4ZThmOWQwODczMGE2YTBlNzU3N2ZiZTkwODc4N2JlZiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4
LnB5CkBAIC00NywxOSArNDcsMjAgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0u
Q2hyb21pdW1Qb3J0KToKICAgICAgICAgJ3g4Nic6IFsnY2hyb21pdW0tbGludXgnLCAnY2hyb21p
dW0td2luJywgJ2Nocm9taXVtJywgJ3dpbicsICdtYWMnXSwKICAgICB9CiAKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIHJlYmFzZWxpbmluZz1GYWxzZSwgKiprd2FyZ3Mp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgKiprd2FyZ3MpOgogICAg
ICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgb3IgJ2Nocm9taXVtLWxpbnV4JworICAgICAgICBz
ZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ2xpbnV4JworICAgICAgICAjIEZJWE1FOiBhZGQgc3Vw
cG9ydCBmb3IgJ2x1Y2lkJworICAgICAgICBzZWxmLl92ZXJzaW9uID0gJ2hhcmR5JwogICAgICAg
ICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFt
ZSwgKiprd2FyZ3MpCiAKICAgICAgICAgIyBXZSByZS1zZXQgdGhlIHBvcnQgbmFtZSBvbmNlIHRo
ZSBiYXNlIG9iamVjdCBpcyBmdWxseSBpbml0aWFsaXplZAogICAgICAgICAjIGluIG9yZGVyIHRv
IGJlIGFibGUgdG8gZmluZCB0aGUgRFJUIGJpbmFyeSBwcm9wZXJseS4KLSAgICAgICAgaWYgcG9y
dF9uYW1lLmVuZHN3aXRoKCctbGludXgnKSBhbmQgbm90IHJlYmFzZWxpbmluZzoKKyAgICAgICAg
aWYgcG9ydF9uYW1lLmVuZHN3aXRoKCctbGludXgnKToKICAgICAgICAgICAgIHNlbGYuX2FyY2hp
dGVjdHVyZSA9IHNlbGYuX2RldGVybWluZV9hcmNoaXRlY3R1cmUoKQogICAgICAgICAgICAgIyBG
SVhNRTogdGhpcyBpcyBhbiB1Z2x5IGhhY2sgdG8gYXZvaWQgcmVuYW1pbmcgdGhlIEdQVSBwb3J0
LgogICAgICAgICAgICAgaWYgcG9ydF9uYW1lID09ICdjaHJvbWl1bS1saW51eCc6CiAgICAgICAg
ICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2VsZi5fYXJjaGl0ZWN0dXJl
Ci0gICAgICAgIGVsaWYgcmViYXNlbGluaW5nOgotICAgICAgICAgICAgc2VsZi5fYXJjaGl0ZWN0
dXJlID0gJ3g4NicKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGJhc2UsIGFyY2ggPSBwb3J0
X25hbWUucnNwbGl0KCctJywgMSkKICAgICAgICAgICAgIGFzc2VydCBiYXNlIGluICgnY2hyb21p
dW0tbGludXgnLCAnY2hyb21pdW0tZ3B1LWxpbnV4JykKQEAgLTExNCwxNCArMTE1LDYgQEAgY2xh
c3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgICAg
ICAgICAgICAgICAgJ0xpbnV4QnVpbGRJbnN0cnVjdGlvbnMnKQogICAgICAgICByZXR1cm4gcmVz
dWx0CiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICAjIFdlIHVz
ZSAnbGludXgnIGluc3RlYWQgb2YgJ2Nocm9taXVtLWxpbnV4JyBpbiB0ZXN0X2V4cGVjdGF0aW9u
cy50eHQuCi0gICAgICAgIHJldHVybiAnbGludXgnCi0KLSAgICBkZWYgdmVyc2lvbihzZWxmKToK
LSAgICAgICAgIyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIEx1Y2lkLgotICAgICAgICByZXR1cm4g
J2hhcmR5JwotCiAgICAgIwogICAgICMgUFJPVEVDVEVEIE1FVEhPRFMKICAgICAjCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21h
Yy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1f
bWFjLnB5CmluZGV4IDE0MWI1ODc5YzhiNDcyZTJhMzhkZDc1NzRkMjM1ZTM4YWU0MjEzOWYuLmYz
MTc1Y2IxYTQzMGU2ZjlkN2Y4Mjk3YmFkNTU3ZjA1NzliOGUzNGUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5
CkBAIC02MCwzNyArNjAsMjEgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNocm9taXVtLkNocm9t
aXVtUG9ydCk6CiAgICAgICAgICAgICAnbWFjLXNub3dsZW9wYXJkJywKICAgICAgICAgICAgICdt
YWMnLAogICAgICAgICBdLAotICAgICAgICAnJzogWwotICAgICAgICAgICAgJ2Nocm9taXVtLW1h
YycsCi0gICAgICAgICAgICAnY2hyb21pdW0nLAotICAgICAgICAgICAgJ21hYycsCi0gICAgICAg
IF0sCiAgICAgfQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25lLCBvc192
ZXJzaW9uX3N0cmluZz1Ob25lLCByZWJhc2VsaW5pbmc9RmFsc2UsICoqa3dhcmdzKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9zX3ZlcnNpb25fc3RyaW5nPU5vbmUs
ICoqa3dhcmdzKToKICAgICAgICAgIyBXZSdyZSBhIGxpdHRsZSBnZW5lcmljIGhlcmUgYmVjYXVz
ZSB0aGlzIGNvZGUgaXMgcmV1c2VkIGJ5IHRoZQogICAgICAgICAjICdnb29nbGUtY2hyb21lJyBw
b3J0IGFzIHdlbGwgYXMgdGhlICdtb2NrLScgYW5kICdkcnlydW4tJyBwb3J0cy4KICAgICAgICAg
cG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICdjaHJvbWl1bS1tYWMnCiAKICAgICAgICAgaWYgcG9y
dF9uYW1lLmVuZHN3aXRoKCctbWFjJyk6Ci0gICAgICAgICAgICAjIEZJWE1FOiBUaGUgcmViYXNl
bGluaW5nIGZsYWcgaXMgYW4gdWdseSBoYWNrIHRoYXQgbGV0cyB1cyBjcmVhdGUgYW4KLSAgICAg
ICAgICAgICMgImNocm9taXVtLW1hYyIgcG9ydCB0aGF0IGlzIG5vdCB2ZXJzaW9uLXNwZWNpZmlj
LiBJdCBzaG91bGQgb25seSBiZQotICAgICAgICAgICAgIyB1c2VkIGJ5IHJlYmFzZWxpbmUtY2hy
b21pdW0td2Via2l0LXRlc3RzIHRvIGV4cGxpY2l0bHkgcHV0IGZpbGVzIGludG8KLSAgICAgICAg
ICAgICMgdGhlIGdlbmVyaWMgZGlyZWN0b3J5LiBJbiB0aGVvcnkgd2Ugc2hvdWxkbid0IG5lZWQg
dGhpcywgYmVjYXVzZQotICAgICAgICAgICAgIyB0aGUgbmV3ZXN0IG1hYyBwb3J0IHNob3VsZCBi
ZSB1c2luZyAnY2hyb21pdW0tbWFjJyBhcyB0aGUgYmFzZWxpbmUKLSAgICAgICAgICAgICMgZGly
ZWN0b3J5LiBIb3dldmVyLCB3ZSBhbHNvIGRvbid0IGhhdmUgc3RhYmxlIFNMIGJvdHMgOigKLSAg
ICAgICAgICAgICMKLSAgICAgICAgICAgICMgV2hlbiB3ZSByZW1vdmUgdGhpcyBGSVhNRSwgd2Ug
YWxzbyBuZWVkIHRvIHJlbW92ZSAnJyBhcyBhIHZhbGlkCi0gICAgICAgICAgICAjIGZhbGxiYWNr
IGtleSBpbiBzZWxmLkZBTExCQUNLX1BBVEhTLgotICAgICAgICAgICAgaWYgcmViYXNlbGluaW5n
OgotICAgICAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSAnJwotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gbWFjLm9zX3ZlcnNpb24ob3NfdmVyc2lv
bl9zdHJpbmcsIHNlbGYuU1VQUE9SVEVEX09TX1ZFUlNJT05TKQotICAgICAgICAgICAgICAgIHBv
cnRfbmFtZSA9IHBvcnRfbmFtZSArICctJyArIHNlbGYuX3ZlcnNpb24KKyAgICAgICAgICAgIHNl
bGYuX3ZlcnNpb24gPSBtYWMub3NfdmVyc2lvbihvc192ZXJzaW9uX3N0cmluZywgc2VsZi5TVVBQ
T1JURURfT1NfVkVSU0lPTlMpCisgICAgICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgKyAn
LScgKyBzZWxmLl92ZXJzaW9uCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl92ZXJz
aW9uID0gcG9ydF9uYW1lW3BvcnRfbmFtZS5pbmRleCgnLW1hYy0nKSArIDU6XQogICAgICAgICAg
ICAgYXNzZXJ0IHNlbGYuX3ZlcnNpb24gaW4gc2VsZi5TVVBQT1JURURfT1NfVkVSU0lPTlMKIAor
ICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ21hYycKICAgICAgICAgY2hyb21pdW0u
Q2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdz
KQogCiAgICAgZGVmIGJhc2VsaW5lX3BhdGgoc2VsZik6CkBAIC0xMjMsMTUgKzEwNyw2IEBAIGNs
YXNzIENocm9taXVtTWFjUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgIGRlZiBkcml2
ZXJfbmFtZShzZWxmKToKICAgICAgICAgcmV0dXJuICJEdW1wUmVuZGVyVHJlZSIKIAotICAgIGRl
ZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgICMgV2UgdXNlICdtYWMnIGluc3Rl
YWQgb2YgJ2Nocm9taXVtLW1hYycKLQotICAgICAgICAjIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMg
bWV0aG9kIGFmdGVyIHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzIGRpZXMuCi0gICAg
ICAgIHJldHVybiAnbWFjJwotCi0gICAgZGVmIHZlcnNpb24oc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLl92ZXJzaW9uCi0KICAgICAjCiAgICAgIyBQUk9URUNURUQgTUVUSE9EUwogICAgICMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fbWFjX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkKaW5kZXggMTIwMTFjNmNkNGZmMjFmN2Ex
ODFmZGIyMGE0NWM3YzA0MjdkMGI5My4uYjFiYmFjOGQyMzhkY2VjYmJmMzM0ZTZiNTYxOWUzYTBj
YzI5ZDU5YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkKQEAgLTY4LDE2ICs2
OCw2IEBAIGNsYXNzIENocm9taXVtTWFjUG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENh
c2UpOgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgc2VsZi5hc3NlcnRfbmFt
ZSwgTm9uZSwgJzEwLjcuMScsICdjaHJvbWl1bS1tYWMtbGVvcGFyZCcpCiAgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAnMTAu
NC4xJywgJ2Nocm9taXVtLW1hYy1sZW9wYXJkJykKIAotICAgIGRlZiB0ZXN0X2dlbmVyaWNfcmVi
YXNlbGluaW5nX3BvcnQoc2VsZik6Ci0gICAgICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21p
dW1NYWNQb3J0KHJlYmFzZWxpbmluZz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhw
b3J0Lm5hbWUoKSwgJ2Nocm9taXVtLW1hYycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBv
cnQudmVyc2lvbigpLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGlu
ZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoKHBvcnQubmFtZSgpKSkKLQotICAg
ICAgICBwb3J0ID0gY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9t
aXVtLW1hYy1sZW9wYXJkJywgcmViYXNlbGluaW5nPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHBvcnQubmFtZSgpLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5l
X3BhdGgocG9ydC5uYW1lKCkpKQotCiAgICAgZGVmIHRlc3RfYmFzZWxpbmVfcGF0aChzZWxmKToK
ICAgICAgICAgcG9ydCA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQocG9ydF9uYW1lPSdj
aHJvbWl1bS1tYWMtbGVvcGFyZCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFz
ZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgnY2hyb21pdW0tbWFjLWxl
b3BhcmQnKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKaW5kZXggZDA5MDhkZjJiOTM0Yjk1YmViNGEyOTVlOTcz
YzFjNGRkY2Q4NjE4Mi4uY2Q1MTRkNGFlMzViMzk2OTljZTEwNmQxZDI5NWMzODQwMmNlNDM1MSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV93aW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV93aW4ucHkKQEAgLTYzLDMzICs2MywyMSBAQCBjbGFzcyBDaHJvbWl1bVdpblBv
cnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgJ3hwJzogWydjaHJvbWl1bS13aW4t
eHAnLCAnY2hyb21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVtLXdpbicsICdjaHJvbWl1bScsICd3
aW4nLCAnbWFjJ10sCiAgICAgICAgICd2aXN0YSc6IFsnY2hyb21pdW0td2luLXZpc3RhJywgJ2No
cm9taXVtLXdpbicsICdjaHJvbWl1bScsICd3aW4nLCAnbWFjJ10sCiAgICAgICAgICd3aW43Jzog
WydjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0nLCAnd2luJywgJ21hYyddLAotICAgICAgICAnJzog
WydjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0nLCAnd2luJywgJ21hYyddLAogICAgIH0KIAotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgd2luZG93c192ZXJzaW9uPU5vbmUs
IHJlYmFzZWxpbmluZz1GYWxzZSwgKiprd2FyZ3MpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
b3J0X25hbWU9Tm9uZSwgd2luZG93c192ZXJzaW9uPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAg
IyBXZSdyZSBhIGxpdHRsZSBnZW5lcmljIGhlcmUgYmVjYXVzZSB0aGlzIGNvZGUgaXMgcmV1c2Vk
IGJ5IHRoZQogICAgICAgICAjICdnb29nbGUtY2hyb21lJyBwb3J0IGFzIHdlbGwgYXMgdGhlICdt
b2NrLScgYW5kICdkcnlydW4tJyBwb3J0cy4KICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1l
IG9yICdjaHJvbWl1bS13aW4nCiAKICAgICAgICAgaWYgcG9ydF9uYW1lLmVuZHN3aXRoKCctd2lu
Jyk6Ci0gICAgICAgICAgICAjIEZJWE1FOiBUaGUgcmViYXNlbGluaW5nIGZsYWcgaXMgYW4gdWds
eSBoYWNrIHRoYXQgbGV0cyB1cyBjcmVhdGUgYW4KLSAgICAgICAgICAgICMgImNocm9taXVtLXdp
biIgcG9ydCB0aGF0IGlzIG5vdCB2ZXJzaW9uLXNwZWNpZmljLiBJdCBzaG91bGQgb25seSBiZQot
ICAgICAgICAgICAgIyB1c2VkIGJ5IHJlYmFzZWxpbmUtY2hyb21pdW0td2Via2l0LXRlc3RzIHRv
IGV4cGxpY2l0bHkgcHV0IGZpbGVzIGludG8KLSAgICAgICAgICAgICMgdGhlIGdlbmVyaWMgZGly
ZWN0b3J5LiBJbiB0aGVvcnkgd2Ugc2hvdWxkbid0IG5lZWQgdGhpcywgYmVjYXVzZQotICAgICAg
ICAgICAgIyB0aGUgbmV3ZXN0IHdpbiBwb3J0IHNob3VsZCBiZSB1c2luZyAnY2hyb21pdW0td2lu
JyBhcyB0aGUgYmFzZWxpbmUKLSAgICAgICAgICAgICMgZGlyZWN0b3J5LiBIb3dldmVyLCB3ZSBh
bHNvIGRvbid0IGhhdmUgc3RhYmxlIFdpbiA3IGJvdHMgOigKLSAgICAgICAgICAgICMKLSAgICAg
ICAgICAgICMgV2hlbiB3ZSByZW1vdmUgdGhpcyBGSVhNRSwgd2UgYWxzbyBuZWVkIHRvIHJlbW92
ZSAnJyBhcyBhIHZhbGlkCi0gICAgICAgICAgICAjIGZhbGxiYWNrIGtleSBpbiBzZWxmLkZBTExC
QUNLX1BBVEhTLgotICAgICAgICAgICAgaWYgcmViYXNlbGluaW5nOgotICAgICAgICAgICAgICAg
IHNlbGYuX3ZlcnNpb24gPSAnJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBz
ZWxmLl92ZXJzaW9uID0gb3NfdmVyc2lvbih3aW5kb3dzX3ZlcnNpb24pCi0gICAgICAgICAgICAg
ICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2VsZi5fdmVyc2lvbgorICAgICAgICAg
ICAgc2VsZi5fdmVyc2lvbiA9IG9zX3ZlcnNpb24od2luZG93c192ZXJzaW9uKQorICAgICAgICAg
ICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2VsZi5fdmVyc2lvbgogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IHBvcnRfbmFtZVtwb3J0X25hbWUuaW5k
ZXgoJy13aW4tJykgKyA1Ol0KICAgICAgICAgICAgIGFzc2VydCBzZWxmLl92ZXJzaW9uIGluIHNl
bGYuU1VQUE9SVEVEX1ZFUlNJT05TCiAKKyAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9
ICd3aW4nCiAgICAgICAgIGNocm9taXVtLkNocm9taXVtUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0
X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKIAogICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9z
ZXJ2ZXIoc2VsZik6CkBAIC0xMzcsMTcgKzEyNSw2IEBAIGNsYXNzIENocm9taXVtV2luUG9ydChj
aHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICBwYXRoID0gZmlsZW5hbWVbbGVuKHNlbGYu
bGF5b3V0X3Rlc3RzX2RpcigpKSArIDE6XQogICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKCdc
XCcsICcvJykKIAotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgICMg
V2UgcmV0dXJuICd3aW4teHAnLCBub3QgJ2Nocm9taXVtLXdpbi14cCcgaGVyZSwgZm9yIGNvbnZl
bmllbmNlLgotCi0gICAgICAgICMgRklYTUU6IEdldCByaWQgb2YgdGhpcyBtZXRob2QgYWZ0ZXIg
cmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMgZGllcy4KLSAgICAgICAgaWYgc2VsZi52
ZXJzaW9uKCkgPT0gJyc6Ci0gICAgICAgICAgICByZXR1cm4gJ3dpbicKLSAgICAgICAgcmV0dXJu
ICd3aW4tJyArIHNlbGYudmVyc2lvbigpCi0KLSAgICBkZWYgdmVyc2lvbihzZWxmKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX3ZlcnNpb24KLQogICAgICMKICAgICAjIFBST1RFQ1RFRCBST1VUSU5F
UwogICAgICMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkKaW5kZXggOGVhNzA2MGM1
M2FiNjAzYWQ4YzAyNTdiOTY4NGUwNzUzOTBiNzdhMy4uMzE5YWFjZGM0NzBhM2Q2MTE2ZjQwNDgx
YTgyNzQzYjliMDEzMTg0MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkKQEAg
LTEyNywxNiArMTI3LDYgQEAgY2xhc3MgQ2hyb21pdW1XaW5UZXN0KHBvcnRfdGVzdGNhc2UuUG9y
dFRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHNlbGYuYXNz
ZXJ0X25hbWUsIE5vbmUsICg1LCAyKSwgJ2Nocm9taXVtLXdpbi14cCcpCiAgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKEtleUVycm9yLCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAoNywgMSksICdj
aHJvbWl1bS13aW4teHAnKQogCi0gICAgZGVmIHRlc3RfZ2VuZXJpY19yZWJhc2VsaW5pbmdfcG9y
dChzZWxmKToKLSAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQocmVi
YXNlbGluaW5nPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQubmFtZSgpLCAn
Y2hyb21pdW0td2luJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC52ZXJzaW9uKCks
ICcnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9y
dC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgocG9ydC5uYW1lKCkpKQotCi0gICAgICAgIHBvcnQgPSBj
aHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KHBvcnRfbmFtZT0nY2hyb21pdW0td2luLXhwJywg
cmViYXNlbGluaW5nPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQubmFtZSgp
LCAnY2hyb21pdW0td2luLXhwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNl
bGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoKHBvcnQubmFtZSgpKSkKLQog
ICAgIGRlZiB0ZXN0X2Jhc2VsaW5lX3BhdGgoc2VsZik6CiAgICAgICAgIHBvcnQgPSBjaHJvbWl1
bV93aW4uQ2hyb21pdW1XaW5Qb3J0KHBvcnRfbmFtZT0nY2hyb21pdW0td2luLXhwJykKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9i
YXNlbGluZV9wYXRoKCdjaHJvbWl1bS13aW4teHAnKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKaW5kZXggNDMxNTU0MzIwMzliNGFjNjkzNzFk
Zjc4NzEwNzBjODdmNzUyYWI3ZC4uZDZmZjZiZmUxNzA2YWMwZGUyMGE2MmQ5ZDFhOGY4MjIxM2Ni
NTFhMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9tYWMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9t
YWMucHkKQEAgLTczLDcgKzczLDYgQEAgY2xhc3MgTWFjUG9ydChXZWJLaXRQb3J0KToKIAogICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgb3NfdmVyc2lvbl9zdHJpbmc9Tm9u
ZSwgKiprd2FyZ3MpOgogICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgb3IgJ21hYycKLQog
ICAgICAgICBpZiBwb3J0X25hbWUgPT0gJ21hYyc6CiAgICAgICAgICAgICBzZWxmLl92ZXJzaW9u
ID0gb3NfdmVyc2lvbihvc192ZXJzaW9uX3N0cmluZykKICAgICAgICAgICAgIHBvcnRfbmFtZSA9
IHBvcnRfbmFtZSArICctJyArIHNlbGYuX3ZlcnNpb24KQEAgLTgxLDYgKzgwLDcgQEAgY2xhc3Mg
TWFjUG9ydChXZWJLaXRQb3J0KToKICAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBwb3J0X25h
bWVbNDpdCiAgICAgICAgICAgICBhc3NlcnQgc2VsZi5fdmVyc2lvbiBpbiBzZWxmLlNVUFBPUlRF
RF9WRVJTSU9OUwogCisgICAgICAgIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0gPSAnbWFjJwogICAg
ICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dh
cmdzKQogCiAgICAgZGVmIGRlZmF1bHRfY2hpbGRfcHJvY2Vzc2VzKHNlbGYpOgpAQCAtMTE1LDEy
ICsxMTUsNiBAQCBjbGFzcyBNYWNQb3J0KFdlYktpdFBvcnQpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ1NraXBwZWQnKSkKICAgICAgICAgcmV0dXJuIHNraXBw
ZWRfZmlsZXMKIAotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgIHJl
dHVybiAnbWFjLScgKyBzZWxmLnZlcnNpb24oKQotCi0gICAgZGVmIHZlcnNpb24oc2VsZik6Ci0g
ICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCi0KICAgICBkZWYgX2J1aWxkX2phdmFfdGVzdF9z
dXBwb3J0KHNlbGYpOgogICAgICAgICBqYXZhX3Rlc3RzX3BhdGggPSBzZWxmLl9maWxlc3lzdGVt
LmpvaW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCksICJqYXZhIikKICAgICAgICAgYnVpbGRfamF2
YSA9IFsiL3Vzci9iaW4vbWFrZSIsICItQyIsIGphdmFfdGVzdHNfcGF0aF0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQppbmRleCAwOTdmZWUy
NjMyZGMxY2ZhM2FiNzIyZmRmOTk3YzU4NTkxYWVlYzA1Li5mOWMyMjgyZGI2Mjc4NTM0NGM5Yzcw
MWI3NjFiYTUyZTI0ZWI0ZDA1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC90ZXN0LnB5CkBAIC0yMjAsNiArMjIwLDExIEBAIFdPTlRGSVggU0tJUCA6
IGZhaWx1cmVzL2V4cGVjdGVkL2V4Y2VwdGlvbi5odG1sID0gQ1JBU0gKIAogY2xhc3MgVGVzdFBv
cnQoYmFzZS5Qb3J0KToKICAgICAiIiJUZXN0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBQb3J0IGlu
dGVyZmFjZS4iIiIKKyAgICBBTExfQkFTRUxJTkVfVkFSSUFOVFMgPSAoCisgICAgICAgICd0ZXN0
LW1hYy1zbm93bGVvcGFyZCcsICd0ZXN0LW1hYy1sZW9wYXJkJywKKyAgICAgICAgJ3Rlc3Qtd2lu
LXdpbjcnLCAndGVzdC13aW4tdmlzdGEnLCAndGVzdC13aW4teHAnLAorICAgICAgICAndGVzdC1s
aW51eCcsCisgICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25lLCB1
c2VyPU5vbmUsIGZpbGVzeXN0ZW09Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBpZiBub3QgZmls
ZXN5c3RlbToKQEAgLTIzNCw2ICsyMzksMjIgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToK
ICAgICAgICAgaWYgbm90IHBvcnRfbmFtZSBvciBwb3J0X25hbWUgPT0gJ3Rlc3QnOgogICAgICAg
ICAgICAgcG9ydF9uYW1lID0gJ3Rlc3QtbWFjLWxlb3BhcmQnCiAKKyAgICAgICAgc2VsZi5fb3Bl
cmF0aW5nX3N5c3RlbSA9ICdtYWMnCisgICAgICAgIGlmIHBvcnRfbmFtZS5zdGFydHN3aXRoKCd0
ZXN0LXdpbicpOgorICAgICAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICd3aW4nCisg
ICAgICAgIGVsaWYgcG9ydF9uYW1lLnN0YXJ0c3dpdGgoJ3Rlc3QtbGludXgnKToKKyAgICAgICAg
ICAgIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0gPSAnbGludXgnCisKKyAgICAgICAgdmVyc2lvbl9t
YXAgPSB7CisgICAgICAgICAgICAndGVzdC13aW4teHAnOiAneHAnLAorICAgICAgICAgICAgJ3Rl
c3Qtd2luLXdpbjcnOiAnd2luNycsCisgICAgICAgICAgICAndGVzdC13aW4tdmlzdGEnOiAndmlz
dGEnLAorICAgICAgICAgICAgJ3Rlc3QtbWFjLWxlb3BhcmQnOiAnbGVvcGFyZCcsCisgICAgICAg
ICAgICAndGVzdC1tYWMtc25vd2xlb3BhcmQnOiAnc25vd2xlb3BhcmQnLAorICAgICAgICAgICAg
J3Rlc3QtbGludXgnOiAnJywKKyAgICAgICAgfQorICAgICAgICBzZWxmLl92ZXJzaW9uID0gdmVy
c2lvbl9tYXBbcG9ydF9uYW1lXQorCiAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9uc19wYXRoID0g
TEFZT1VUX1RFU1RfRElSICsgJy9wbGF0Zm9ybS90ZXN0L3Rlc3RfZXhwZWN0YXRpb25zLnR4dCcK
ICAgICAgICAgYmFzZS5Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsIGZp
bGVzeXN0ZW09ZmlsZXN5c3RlbSwgdXNlcj11c2VyLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpCkBAIC0zMTEsMTkgKzMzMiw4IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9y
dCk6CiAgICAgZGVmIHBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZShzZWxmKToKICAgICAg
ICAgcmV0dXJuIHNlbGYuX2V4cGVjdGF0aW9uc19wYXRoCiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9y
bV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5uYW1lKClbNTpdCi0KLSAgICBkZWYg
dGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjLWxlb3BhcmQn
LCAnbWFjLXNub3dsZW9wYXJkJywKLSAgICAgICAgICAgICAgICAnd2luLXhwJywgJ3dpbi12aXN0
YScsICd3aW4td2luNycsCi0gICAgICAgICAgICAgICAgJ2xpbnV4JykKLQotICAgIGRlZiB0ZXN0
X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUpOgotICAgICAg
ICBpZiB0ZXN0X3BsYXRmb3JtX25hbWUgaW4gc2VsZi50ZXN0X3BsYXRmb3JtX25hbWVzKCk6Ci0g
ICAgICAgICAgICByZXR1cm4gJ3Rlc3QtJyArIHRlc3RfcGxhdGZvcm1fbmFtZQotICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdVbnN1cHBvcnRlZCB0ZXN0X3BsYXRmb3JtX25hbWU6ICVzJyAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wbGF0Zm9ybV9uYW1lKQorICAgIGRlZiBhbGxf
YmFzZWxpbmVfdmFyaWFudHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLkFMTF9CQVNFTElO
RV9WQVJJQU5UUwogCiAgICAgIyBGSVhNRTogVGhlc2UgbmV4dCB0d28gcm91dGluZXMgYXJlIGNv
cGllZCBmcm9tIGJhc2UucHkgd2l0aAogICAgICMgdGhlIGNhbGxzIHRvIHBhdGguYWJzcGF0aF90
b191cmkoKSByZW1vdmVkLiBXZSBzaG91bGRuJ3QgaGF2ZQpAQCAtMzgzLDIyICszOTMsNiBAQCBj
bGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogCiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IoJ3Vua25vd24gdXJsIHR5cGU6ICVzJyAlIHVyaSkKIAotICAgIGRlZiB2ZXJzaW9uKHNl
bGYpOgotICAgICAgICB2ZXJzaW9uX21hcCA9IHsKLSAgICAgICAgICAgICd0ZXN0LXdpbi14cCc6
ICd4cCcsCi0gICAgICAgICAgICAndGVzdC13aW4td2luNyc6ICd3aW43JywKLSAgICAgICAgICAg
ICd0ZXN0LXdpbi12aXN0YSc6ICd2aXN0YScsCi0gICAgICAgICAgICAndGVzdC1tYWMtbGVvcGFy
ZCc6ICdsZW9wYXJkJywKLSAgICAgICAgICAgICd0ZXN0LW1hYy1zbm93bGVvcGFyZCc6ICdzbm93
bGVvcGFyZCcsCi0gICAgICAgICAgICAndGVzdC1saW51eCc6ICcnLAotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiB2ZXJzaW9uX21hcFtzZWxmLl9uYW1lXQotCi0gICAgZGVmIHRlc3RfY29uZmln
dXJhdGlvbihzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuX3Rlc3RfY29uZmlndXJhdGlvbjoK
LSAgICAgICAgICAgIHNlbGYuX3Rlc3RfY29uZmlndXJhdGlvbiA9IFRlc3RUZXN0Q29uZmlndXJh
dGlvbihzZWxmKQotICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9jb25maWd1cmF0aW9uCi0KIAog
Y2xhc3MgVGVzdERyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgIiIiVGVzdC9EdW1teSBpbXBsZW1l
bnRhdGlvbiBvZiB0aGUgRHVtcFJlbmRlclRyZWUgaW50ZXJmYWNlLiIiIgpAQCAtNDMyLDEwICs0
MjYsMyBAQCBjbGFzcyBUZXN0RHJpdmVyKGJhc2UuRHJpdmVyKToKIAogICAgIGRlZiBzdG9wKHNl
bGYpOgogICAgICAgICBwYXNzCi0KLQotY2xhc3MgVGVzdFRlc3RDb25maWd1cmF0aW9uKGJhc2Uu
VGVzdENvbmZpZ3VyYXRpb24pOgotICAgIGRlZiBhbGxfc3lzdGVtcyhzZWxmKToKLSAgICAgICAg
cmV0dXJuICgoJ21hYycsICdsZW9wYXJkJywgJ3g4NicpLAotICAgICAgICAgICAgICAgICgnd2lu
JywgJ3hwJywgJ3g4NicpLAotICAgICAgICAgICAgICAgICgnd2luJywgJ3dpbjcnLCAneDg2Jykp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dl
YmtpdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0
LnB5CmluZGV4IDY1YTA0N2Q5ZDVhODNkMjllYWM4YjBmMzAxYWEyOTIxY2EzOTUxMTcuLjczZjQ1
ZGJlZjQzM2VhODBmMTAxMjJjMmEzMzVkNGE3NzhhZDZhNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CkBAIC0zMjcsMTIgKzMy
Nyw2IEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgdGVzdHNfdG9fc2tp
cC51cGRhdGUoc2VsZi5fdGVzdHNfZm9yX2Rpc2FibGVkX2ZlYXR1cmVzKCkpCiAgICAgICAgIHJl
dHVybiB0ZXN0c190b19za2lwCiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgot
ICAgICAgICByZXR1cm4gc2VsZi5fbmFtZSArIHNlbGYudmVyc2lvbigpCi0KLSAgICBkZWYgdGVz
dF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdt
YWMtdGlnZXInLCAnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJykKLQogICAgIGRlZiBf
YnVpbGRfcGF0aChzZWxmLCAqY29tcHMpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3Rl
bS5qb2luKHNlbGYuX2NvbmZpZy5idWlsZF9kaXJlY3RvcnkoCiAgICAgICAgICAgICBzZWxmLmdl
dF9vcHRpb24oJ2NvbmZpZ3VyYXRpb24nKSksICpjb21wcykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKaW5kZXggZTdkMjAwNGJhYjM1ZTdkM2Q4
ZGRmMmI4YmUwNjE1YTE2YTk0MDVhMy4uMTA2ZjM2NDgwOTczZjlkYzA1N2UzNjE3MzM2ZjE1MDFi
N2UyYzY3OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93aW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC93aW4ucHkKQEAgLTQwLDYgKzQwLDggQEAgY2xhc3MgV2luUG9ydChXZWJLaXRQb3J0KToKIAog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIGt3YXJncy5zZXRkZWZh
dWx0KCdwb3J0X25hbWUnLCAnd2luJykKKyAgICAgICAgc2VsZi5fdmVyc2lvbiA9ICd3aW43Jwor
ICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ3dpbicKICAgICAgICAgV2ViS2l0UG9y
dC5fX2luaXRfXyhzZWxmLCAqKmt3YXJncykKIAogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0
aChzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKaW5k
ZXggY2U4YzdkNjhiYjkwZGMxOThhMDgwMDFkMWVjOWVlNTkzZDZhMTUyMi4uMmRjN2QwYTAyNmRj
MGU1YzNjODU3NWI2MDE3M2Q5ZDY1M2IzOTBlNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJv
bWl1bV93ZWJraXRfdGVzdHMucHkKQEAgLTYxLDM0ICs2MSwxNiBAQCBfbG9nID0gbG9nZ2luZy5n
ZXRMb2dnZXIoX19uYW1lX18pCiAKIEJBU0VMSU5FX1NVRkZJWEVTID0gKCcudHh0JywgJy5wbmcn
LCAnLmNoZWNrc3VtJykKIAotIyBPbmx5IHRoZSBXZWJLaXQgY2FuYXJpZXMgaGF2ZSBhIGZ1bGwg
Y29tcGxlbWVudCBvZiBib3RzLiBUaGUgR1BVCi0jIGJvdHMgZG9uJ3QgaGF2ZSB2ZXJzaW9uLXNw
ZWNpZmljIGJhc2VsaW5lcyB5ZXQuIFdlIG9ubHkgaGF2ZSB0aGUgdGhyZWUKLSMgbWFpbiBEZXBz
IGJvdHMuCi0KLSMgQnkgcnVubmluZyB0aGUgdGVzdCBpbiB0aGlzIG9yZGVyIHdlIGVuc3VyZSB0
aGF0IGlmIGEgbGF0ZXIgdGVzdCBpcyBhCi0jIGR1cGxpY2F0ZSBvZiBhbnkgZWFybGllciBvbmUs
IHdlJ2xsIG5vdGljZSBpdCBhbmQgb25seSBrZWVwIG9uZSBjb3B5LgotUkVCQVNFTElORV9HUFVf
T1JERVIgPSBbJ21hYycsICd3aW4nLCAnbGludXgnXQotUkVCQVNFTElORV9XRUJLSVRfQ0FOQVJZ
X09SREVSID0gWydtYWMtc25vd2xlb3BhcmQnLCAnbWFjLWxlb3BhcmQnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICd3aW4td2luNycsICd3aW4tdmlzdGEnLCAnd2luLXhwJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGludXgnXQotUkVCQVNFTElORV9Q
TEFURk9STV9PUkRFUiA9IFsnbWFjJywgJ3dpbicsICdsaW51eCddCi0KLUFSQ0hJVkVfRElSX05B
TUVfRElDVCA9IHsnd2luJzogJ1dlYmtpdF9XaW5fX2RlcHNfJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAnd2luLXZpc3RhJzogJ3dlYmtpdC1kYmctdmlzdGEnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICd3aW4teHAnOiAnV2Via2l0X1dpbl9fZGVwc18nLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICdtYWMnOiAnV2Via2l0X01hYzEwXzVfX2RlcHNfJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAnbGludXgnOiAnV2Via2l0X0xpbnV4X19kZXBzXycsCi0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAnd2luLXdpbjctY2FuYXJ5JzogJ1dlYmtpdF9XaW43JywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAnd2luLXZpc3RhLWNhbmFyeSc6ICdXZWJraXRfVmlzdGEnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICd3aW4teHAtY2FuYXJ5JzogJ1dlYmtpdF9XaW4nLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICdtYWMtbGVvcGFyZC1jYW5hcnknOiAnV2Via2l0X01hYzEw
XzUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMtc25vd2xlb3BhcmQtY2FuYXJ5Jzog
J1dlYmtpdF9NYWMxMF82JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbGludXgtY2FuYXJ5
JzogJ1dlYmtpdF9MaW51eCcsCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAnZ3B1LW1hYy1j
YW5hcnknOiAnV2Via2l0X01hYzEwXzVfLV9HUFUnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICdncHUtd2luLWNhbmFyeSc6ICdXZWJraXRfV2luXy1fR1BVJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAnZ3B1LWxpbnV4LWNhbmFyeSc6ICdXZWJraXRfTGludXhfLV9HUFUnLAorQVJDSElW
RV9ESVJfTkFNRV9ESUNUID0geworICAgICdjaHJvbWl1bS13aW4td2luNyc6ICdXZWJraXRfV2lu
NycsCisgICAgJ2Nocm9taXVtLXdpbi12aXN0YSc6ICdXZWJraXRfVmlzdGEnLAorICAgICdjaHJv
bWl1bS13aW4teHAnOiAnV2Via2l0X1dpbicsCisgICAgJ2Nocm9taXVtLW1hYy1sZW9wYXJkJzog
J1dlYmtpdF9NYWMxMF81JywKKyAgICAnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJzogJ1dlYmtp
dF9NYWMxMF82JywKKyAgICAnY2hyb21pdW0tbGludXgnOiAnV2Via2l0X0xpbnV4JywKKyAgICAn
Y2hyb21pdW0tZ3B1LW1hYy1sZW9wYXJkJzogJ1dlYmtpdF9NYWMxMF81Xy1fR1BVJywKKyAgICAn
Y2hyb21pdW0tZ3B1LXdpbi14cCc6ICdXZWJraXRfV2luXy1fR1BVJywKKyAgICAnY2hyb21pdW0t
Z3B1LWxpbnV4JzogJ1dlYmtpdF9MaW51eF8tX0dQVScsCiB9CiAKIApAQCAtMTc5LDExICsxNjEs
NyBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl9maWxlc3lzdGVt
ID0gcnVubmluZ19wb3J0Ll9maWxlc3lzdGVtCiAgICAgICAgIHNlbGYuX3RhcmdldF9wb3J0ID0g
dGFyZ2V0X3BvcnQKIAotICAgICAgICAjIEZJWE1FOiBTZWUgdGhlIGNvbW1lbnRzIGluIGNocm9t
aXVtX3t3aW4sbWFjfS5weSBhYm91dCB3aHkgd2UgbmVlZAotICAgICAgICAjIHRoZSAncmViYXNl
bGluaW5nJyBrZXl3b3JkLgotICAgICAgICBzZWxmLl9yZWJhc2VsaW5lX3BvcnQgPSBwb3J0Lmdl
dCgKLSAgICAgICAgICAgIHNlbGYuX3RhcmdldF9wb3J0LnRlc3RfcGxhdGZvcm1fbmFtZV90b19u
YW1lKHBsYXRmb3JtKSwgb3B0aW9ucywKLSAgICAgICAgICAgIGZpbGVzeXN0ZW09c2VsZi5fZmls
ZXN5c3RlbSwgcmViYXNlbGluaW5nPVRydWUpCisgICAgICAgIHNlbGYuX3JlYmFzZWxpbmVfcG9y
dCA9IHBvcnQuZ2V0KHBsYXRmb3JtLCBvcHRpb25zLCBmaWxlc3lzdGVtPXNlbGYuX2ZpbGVzeXN0
ZW0pCiAgICAgICAgIHNlbGYuX3JlYmFzZWxpbmluZ190ZXN0cyA9IHNldCgpCiAgICAgICAgIHNl
bGYuX3JlYmFzZWxpbmVkX3Rlc3RzID0gW10KIApAQCAtMTk4LDcgKzE3Niw3IEBAIGNsYXNzIFJl
YmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3ppcF9mYWN0b3J5ID0gemlwX2ZhY3Rv
cnkKICAgICAgICAgc2VsZi5fc2NtID0gc2NtCiAKLSAgICBkZWYgcnVuKHNlbGYsIGJhY2t1cCk6
CisgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgIiIiUnVuIHJlYmFzZWxpbmUgcHJvY2Vzcy4i
IiIKIAogICAgICAgICBsb2dfZGFzaGVkX3N0cmluZygnQ29tcGlsaW5nIHJlYmFzZWxpbmluZyB0
ZXN0cycsIHNlbGYuX3BsYXRmb3JtKQpAQCAtMjMzLDcgKzIxMSw3IEBAIGNsYXNzIFJlYmFzZWxp
bmVyKG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgIGRlZiByZW1vdmVfcmVi
YXNlbGluZWRfdGVzdHNfZnJvbV9leHBlY3RhdGlvbnMoc2VsZiwgdGVzdHMsIGJhY2t1cCk6Cisg
ICAgZGVmIHJlbW92ZV9yZWJhc2VsaW5pbmdfZXhwZWN0YXRpb25zKHNlbGYsIHRlc3RzLCBiYWNr
dXApOgogICAgICAgICAiIiJpZiBiYWNrdXAgaXMgVHJ1ZSwgd2UgYmFja3VwIHRoZSBvcmlnaW5h
bCB0ZXN0IGV4cGVjdGF0aW9ucyBmaWxlLiIiIgogICAgICAgICBuZXdfZXhwZWN0YXRpb25zID0g
c2VsZi5fdGVzdF9leHBlY3RhdGlvbnMucmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzKHRlc3RzKQog
ICAgICAgICBwYXRoID0gc2VsZi5fdGFyZ2V0X3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9u
c19maWxlKCkKQEAgLTMzMywxMyArMzExLDcgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToK
ICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5mb3JjZV9hcmNoaXZlX3VybDoKICAgICAgICAgICAg
IHJldHVybiBzZWxmLl9vcHRpb25zLmZvcmNlX2FyY2hpdmVfdXJsCiAKLSAgICAgICAgcGxhdGZv
cm0gPSBzZWxmLl9wbGF0Zm9ybQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLndlYmtpdF9jYW5h
cnk6Ci0gICAgICAgICAgICBwbGF0Zm9ybSArPSAnLWNhbmFyeScKLSAgICAgICAgaWYgc2VsZi5f
b3B0aW9ucy5ncHU6Ci0gICAgICAgICAgICBwbGF0Zm9ybSA9ICdncHUtJyArIHBsYXRmb3JtCi0K
LSAgICAgICAgZGlyX25hbWUgPSBzZWxmLl9nZXRfYXJjaGl2ZV9kaXJfbmFtZShwbGF0Zm9ybSkK
KyAgICAgICAgZGlyX25hbWUgPSBzZWxmLl9nZXRfYXJjaGl2ZV9kaXJfbmFtZShzZWxmLl9wbGF0
Zm9ybSkKICAgICAgICAgaWYgbm90IGRpcl9uYW1lOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUK
IApAQCAtMzc1LDggKzM0Nyw3IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAg
IGZvciBuYW1lIGluIHppcF9uYW1lbGlzdDoKICAgICAgICAgICAgIF9sb2cuZGVidWcoJyAgJyAr
IG5hbWUpCiAKLSAgICAgICAgcGxhdGZvcm0gPSBzZWxmLl9yZWJhc2VsaW5lX3BvcnQudGVzdF9w
bGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZi5fcGxhdGZvcm0pCi0gICAgICAgIF9sb2cuZGVidWco
J1BsYXRmb3JtIGRpcjogIiVzIicsIHBsYXRmb3JtKQorICAgICAgICBfbG9nLmRlYnVnKCdQbGF0
Zm9ybSBkaXI6ICIlcyInLCBzZWxmLl9wbGF0Zm9ybSkKIAogICAgICAgICBzZWxmLl9yZWJhc2Vs
aW5lZF90ZXN0cyA9IFtdCiAgICAgICAgIGZvciB0ZXN0X25vLCB0ZXN0IGluIGVudW1lcmF0ZShz
ZWxmLl9yZWJhc2VsaW5pbmdfdGVzdHMpOgpAQCAtNzkxLDEwICs3NjIsNiBAQCBkZWYgcGFyc2Vf
b3B0aW9ucyhhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9y
ZV90cnVlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nU3VwcHJlc3MgcmVz
dWx0IEhUTUwgdmlld2luZycpCiAKLSAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy1nJywg
Jy0tZ3B1JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUn
LCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlYmFz
ZWxpbmUgdGhlIEdQVSB2ZXJzaW9ucycpCi0KICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24o
Jy1wJywgJy0tcGxhdGZvcm1zJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnQ29tbWEgZGVsaW1p
dGVkIGxpc3Qgb2YgcGxhdGZvcm1zICcKQEAgLTgwOSwxMiArNzc2LDYgQEAgZGVmIHBhcnNlX29w
dGlvbnMoYXJncyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdVcmwgb2Yg
cmVzdWx0IHppcCBmaWxlLiBUaGlzIG9wdGlvbiBpcyBmb3IgZGVidWdnaW5nICcKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B1cnBvc2VzJykpCiAKLSAgICBvcHRpb25fcGFy
c2VyLmFkZF9vcHRpb24oJy13JywgJy0td2Via2l0X2NhbmFyeScsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
KCdJZiBUcnVlLCBwdWxsIGJhc2VsaW5lcyBmcm9tIHdlYmtpdC5vcmcgJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnY2FuYXJ5IGJvdC4nKSkKLQogICAgIG9wdGlvbl9wYXJz
ZXIuYWRkX29wdGlvbignLWInLCAnLS1iYWNrdXAnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PUZhbHNlLApAQCAtODM3LDE3ICs3OTgsOCBAQCBkZWYgcGFyc2Vfb3B0aW9ucyhhcmdz
KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1RoZSB0YXJnZXQgcGxhdGZv
cm0gdG8gcmViYXNlbGluZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICco
Im1hYyIsICJjaHJvbWl1bSIsICJxdCIsIGV0Yy4pLiBEZWZhdWx0cyAnCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICd0byAiY2hyb21pdW0iLicpKQotICAgIG9wdGlvbnMgPSBv
cHRpb25fcGFyc2VyLnBhcnNlX2FyZ3MoYXJncylbMF0KLSAgICBpZiBvcHRpb25zLmdwdToKLSAg
ICAgICAgb3B0aW9ucy5hbGxfcGxhdGZvcm1zID0gUkVCQVNFTElORV9HUFVfT1JERVIKLSAgICBl
bGlmIG9wdGlvbnMud2Via2l0X2NhbmFyeToKLSAgICAgICAgb3B0aW9ucy5hbGxfcGxhdGZvcm1z
ID0gUkVCQVNFTElORV9XRUJLSVRfQ0FOQVJZX09SREVSCi0gICAgZWxzZToKLSAgICAgICAgb3B0
aW9ucy5hbGxfcGxhdGZvcm1zID0gUkVCQVNFTElORV9QTEFURk9STV9PUkRFUgotCi0gICAgaWYg
b3B0aW9ucy5wbGF0Zm9ybXMgPT0gTm9uZToKLSAgICAgICAgb3B0aW9ucy5wbGF0Zm9ybXMgPSAn
LCcuam9pbihvcHRpb25zLmFsbF9wbGF0Zm9ybXMpCiAKKyAgICBvcHRpb25zID0gb3B0aW9uX3Bh
cnNlci5wYXJzZV9hcmdzKGFyZ3MpWzBdCiAgICAgdGFyZ2V0X29wdGlvbnMgPSBjb3B5LmNvcHko
b3B0aW9ucykKICAgICBpZiBvcHRpb25zLnRhcmdldF9wbGF0Zm9ybSA9PSAnY2hyb21pdW0nOgog
ICAgICAgICB0YXJnZXRfb3B0aW9ucy5jaHJvbWl1bSA9IFRydWUKQEAgLTkwOSwzMCArODYxLDIx
IEBAIGRlZiByZWFsX21haW4ob3B0aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3RfcG9ydF9vYmos
IHRhcmdldF9wb3J0X29iaiwgdXJsX2ZldGNoCiAgICAgICAgICAgICB0aGUgYXJjaGl2ZXMuCiAg
ICAgICAgIHNjbV9vYmo6IG9iamVjdCB1c2VkIHRvIGFkZCBuZXcgYmFzZWxpbmVzIHRvIHRoZSBz
b3VyY2UgY29udHJvbCBzeXN0ZW0uCiAgICAgIiIiCi0gICAgIyBWZXJpZnkgJ3BsYXRmb3Jtcycg
b3B0aW9uIGlzIHZhbGlkLgotICAgIGlmIG5vdCBvcHRpb25zLnBsYXRmb3JtczoKLSAgICAgICAg
X2xvZy5lcnJvcignSW52YWxpZCAicGxhdGZvcm1zIiBvcHRpb24uIC0tcGxhdGZvcm1zIG11c3Qg
YmUgJwotICAgICAgICAgICAgICAgICAgICdzcGVjaWZpZWQgaW4gb3JkZXIgdG8gcmViYXNlbGlu
ZS4nKQotICAgICAgICByZXR1cm4gMQotICAgIHBsYXRmb3JtcyA9IFtwLnN0cmlwKCkubG93ZXIo
KSBmb3IgcCBpbiBvcHRpb25zLnBsYXRmb3Jtcy5zcGxpdCgnLCcpXQotICAgIGZvciBwbGF0Zm9y
bSBpbiBwbGF0Zm9ybXM6Ci0gICAgICAgIGlmIG5vdCBwbGF0Zm9ybSBpbiBvcHRpb25zLmFsbF9w
bGF0Zm9ybXM6Ci0gICAgICAgICAgICBfbG9nLmVycm9yKCdJbnZhbGlkIHBsYXRmb3JtOiAiJXMi
JyAlIChwbGF0Zm9ybSkpCi0gICAgICAgICAgICByZXR1cm4gMQotCi0gICAgIyBBZGp1c3QgdGhl
IHBsYXRmb3JtIG9yZGVyIHNvIHJlYmFzZWxpbmUgdG9vbCBpcyBydW5uaW5nIGF0IHRoZSBvcmRl
ciBvZgotICAgICMgJ21hYycsICd3aW4nIGFuZCAnbGludXgnLiBUaGlzIGlzIGluIHNhbWUgb3Jk
ZXIgd2l0aCBsYXlvdXQgdGVzdCBiYXNlbGluZQotICAgICMgc2VhcmNoIHBhdGhzLiBJdCBzaW1w
bGlmaWVzIGhvdyB0aGUgcmViYXNlbGluZSB0b29sIGRldGVjdHMgZHVwbGljYXRlCi0gICAgIyBi
YXNlbGluZXMuIENoZWNrIF9Jc0R1cEJhc2VsaW5lIG1ldGhvZCBmb3IgZGV0YWlscy4KLSAgICBy
ZWJhc2VsaW5lX3BsYXRmb3JtcyA9IFtdCi0gICAgZm9yIHBsYXRmb3JtIGluIG9wdGlvbnMuYWxs
X3BsYXRmb3JtczoKLSAgICAgICAgaWYgcGxhdGZvcm0gaW4gcGxhdGZvcm1zOgotICAgICAgICAg
ICAgcmViYXNlbGluZV9wbGF0Zm9ybXMuYXBwZW5kKHBsYXRmb3JtKQotCiAgICAgb3B0aW9ucy5o
dG1sX2RpcmVjdG9yeSA9IHNldHVwX2h0bWxfZGlyZWN0b3J5KGhvc3RfcG9ydF9vYmouX2ZpbGVz
eXN0ZW0sIG9wdGlvbnMuaHRtbF9kaXJlY3RvcnkpCisgICAgYWxsX3BsYXRmb3JtcyA9IHRhcmdl
dF9wb3J0X29iai5hbGxfYmFzZWxpbmVfdmFyaWFudHMoKQorICAgIGlmIG9wdGlvbnMucGxhdGZv
cm1zOgorICAgICAgICBiYWlsID0gRmFsc2UKKyAgICAgICAgZm9yIHBsYXRmb3JtIGluIG9wdGlv
bnMucGxhdGZvcm1zOgorICAgICAgICAgICAgaWYgbm90IHBsYXRmb3JtIGluIGFsbF9wbGF0Zm9y
bXM6CisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignSW52YWxpZCBwbGF0Zm9ybTogIiVzIicg
JSAocGxhdGZvcm0pKQorICAgICAgICAgICAgICAgIGJhaWwgPSBUcnVlCisgICAgICAgIGlmIGJh
aWw6CisgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICByZWJhc2VsaW5lX3BsYXRmb3JtcyA9
IG9wdGlvbnMucGxhdGZvcm1zCisgICAgZWxzZToKKyAgICAgICAgcmViYXNlbGluZV9wbGF0Zm9y
bXMgPSBhbGxfcGxhdGZvcm1zCiAKICAgICByZWJhc2VsaW5lZF90ZXN0cyA9IHNldCgpCi0gICAg
YmFja3VwID0gb3B0aW9ucy5iYWNrdXAKICAgICBmb3IgcGxhdGZvcm0gaW4gcmViYXNlbGluZV9w
bGF0Zm9ybXM6CiAgICAgICAgIHJlYmFzZWxpbmVyID0gUmViYXNlbGluZXIoaG9zdF9wb3J0X29i
aiwgdGFyZ2V0X3BvcnRfb2JqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBs
YXRmb3JtLCBvcHRpb25zLCB1cmxfZmV0Y2hlciwgemlwX2ZhY3RvcnksCkBAIC05NDAsMTcgKzg4
MywxNiBAQCBkZWYgcmVhbF9tYWluKG9wdGlvbnMsIHRhcmdldF9vcHRpb25zLCBob3N0X3BvcnRf
b2JqLCB0YXJnZXRfcG9ydF9vYmosIHVybF9mZXRjaAogCiAgICAgICAgIF9sb2cuaW5mbygnJykK
ICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ1JlYmFzZWxpbmUgc3RhcnRlZCcsIHBsYXRmb3Jt
KQotICAgICAgICBpZiByZWJhc2VsaW5lci5ydW4oYmFja3VwKToKKyAgICAgICAgaWYgcmViYXNl
bGluZXIucnVuKCk6CiAgICAgICAgICAgICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNlbGluZSBk
b25lJywgcGxhdGZvcm0pCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBsb2dfZGFzaGVkX3N0
cmluZygnUmViYXNlbGluZSBmYWlsZWQnLCBwbGF0Zm9ybSwgbG9nZ2luZy5FUlJPUikKIAogICAg
ICAgICByZWJhc2VsaW5lZF90ZXN0cyB8PSBzZXQocmViYXNlbGluZXIuZ2V0X3JlYmFzZWxpbmVk
X3Rlc3RzKCkpCiAKLSAgICAjIEZJWE1FOiBuZWVkIHRvIHJlZW5hYmxlIHRoaXMgYWZ0ZXIgd2Ug
YXJlIGNvcnJlY3RseSBydW5uaW5nIGFsbAotICAgICMgY29uZmlndXJhdGlvbnMuCi0gICAgI2lm
IHJlYmFzZWxpbmVkX3Rlc3RzOgotICAgICMgICAgcmViYXNlbGluZXIucmVtb3ZlX3JlYmFzZWxp
bmVkX3Rlc3RzX2Zyb21fZXhwZWN0YXRpb25zKHJlYmFzZWxpbmVkX3Rlc3RzLCBiYWNrdXApCisg
ICAgaWYgcmViYXNlbGluZWRfdGVzdHM6CisgICAgICAgIHJlYmFzZWxpbmVyLnJlbW92ZV9yZWJh
c2VsaW5pbmdfZXhwZWN0YXRpb25zKHJlYmFzZWxpbmVkX3Rlc3RzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmJhY2t1cCkKIAog
ICAgIF9sb2cuaW5mbygnJykKICAgICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNlbGluaW5nIHJl
c3VsdCBjb21wYXJpc29uIHN0YXJ0ZWQnLCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2Vs
aW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCAwM2E1ZDFiZjA1YzZk
ODlkY2EwNzU2ZGEwMjgzMGUyZWFjNzAxMWFmLi4xYTFjZDEwNTM3NmY0OWUxOGRlNTFmMDZjMjMw
OGJiNmEzYzU0YmU1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dl
YmtpdF90ZXN0c191bml0dGVzdC5weQpAQCAtNjUsMTQgKzY1LDkgQEAgZGVmIHRlc3Rfb3B0aW9u
cygpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sX2RpcmVjdG9yeT0nL3Rt
cCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY2hpdmVfdXJsPUFSQ0hJVkVf
VVJMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZV9hcmNoaXZlX3VybD1O
b25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfY2FuYXJ5PVRydWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9kcnQ9RmFsc2UsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9wbGF0Zm9ybT0nY2hyb21pdW0nLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NlPUZhbHNlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBxdWlldD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYWxsX3BsYXRmb3Jtcz1yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5S
RUJBU0VMSU5FX1dFQktJVF9DQU5BUllfT1JERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBsYXRmb3Jtcz1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
cHU9RmFsc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3Jtcz1Ob25l
KQogCiAKIGRlZiB0ZXN0X2hvc3RfcG9ydF9hbmRfZmlsZXN5c3RlbShvcHRpb25zLCBleHBlY3Rh
dGlvbnMpOgpAQCAtMTMzLDYgKzEyOCwxNCBAQCBkZWYgdGVzdF96aXBfZmFjdG9yeSgpOgogICAg
IHJldHVybiB6aXBmaWxlc2V0X21vY2subWFrZV9mYWN0b3J5KHppcGhhc2hlcykKIAogCitkZWYg
dGVzdF9hcmNoaXZlKG9yaWdfYXJjaGl2ZSk6CisgICAgZCA9IHt9CisgICAgZm9yIHBsYXRmb3Jt
LCBkaXJuYW1lIGluIG9yaWdfYXJjaGl2ZS5pdGVyaXRlbXMoKToKKyAgICAgICAgcGxhdGZvcm0g
PSBwbGF0Zm9ybS5yZXBsYWNlKCdjaHJvbWl1bScsICd0ZXN0JykKKyAgICAgICAgZFtwbGF0Zm9y
bV0gPSBkaXJuYW1lCisgICAgcmV0dXJuIGQKKworCiBjbGFzcyBUZXN0R2V0SG9zdFBvcnRPYmpl
Y3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBhc3NlcnRfcmVzdWx0KHNlbGYsIHJlbGVh
c2VfcHJlc2VudCwgZGVidWdfcHJlc2VudCwgdmFsaWRfcG9ydF9vYmopOgogICAgICAgICAjIFRl
c3RzIHdoZXRoZXIgd2UgZ2V0IGEgdmFsaWQgcG9ydCBvYmplY3QgcmV0dXJuZWQgd2hlbiB3ZSBj
bGFpbQpAQCAtMTc1LDYgKzE3OCwxNCBAQCBjbGFzcyBUZXN0T3B0aW9ucyh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAKIAogY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAg
ICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfb3JpZ19h
cmNoaXZlJyk6CisgICAgICAgICAgICBzZWxmLl9vcmlnX2FyY2hpdmUgPSByZWJhc2VsaW5lX2No
cm9taXVtX3dlYmtpdF90ZXN0cy5BUkNISVZFX0RJUl9OQU1FX0RJQ1QKKyAgICAgICAgICAgIHJl
YmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLkFSQ0hJVkVfRElSX05BTUVfRElDVCA9IHRl
c3RfYXJjaGl2ZShzZWxmLl9vcmlnX2FyY2hpdmUpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6
CisgICAgICAgIHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLkFSQ0hJVkVfRElSX05B
TUVfRElDVCA9IHNlbGYuX29yaWdfYXJjaGl2ZQorCiAgICAgZGVmIG1ha2VfcmViYXNlbGluZXIo
c2VsZiwgZXhwZWN0YXRpb25zKToKICAgICAgICAgb3B0aW9ucyA9IHRlc3Rfb3B0aW9ucygpCiAg
ICAgICAgIGhvc3RfcG9ydF9vYmosIGZpbGVzeXN0ZW0gPSB0ZXN0X2hvc3RfcG9ydF9hbmRfZmls
ZXN5c3RlbShvcHRpb25zLCBleHBlY3RhdGlvbnMpCkBAIC0xODMsNyArMTk0LDcgQEAgY2xhc3Mg
VGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgdGFyZ2V0X3BvcnRf
b2JqID0gcG9ydC5nZXQoJ3Rlc3QnLCB0YXJnZXRfb3B0aW9ucywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmlsZXN5c3RlbT1maWxlc3lzdGVtKQogICAgICAgICB0YXJnZXRf
cG9ydF9vYmouX2V4cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9ucwotICAgICAgICBwbGF0Zm9ybSA9
IHRhcmdldF9wb3J0X29iai50ZXN0X3BsYXRmb3JtX25hbWUoKQorICAgICAgICBwbGF0Zm9ybSA9
IHRhcmdldF9wb3J0X29iai5uYW1lKCkKIAogICAgICAgICB1cmxfZmV0Y2hlciA9IHRlc3RfdXJs
X2ZldGNoZXIoZmlsZXN5c3RlbSkKICAgICAgICAgemlwX2ZhY3RvcnkgPSB0ZXN0X3ppcF9mYWN0
b3J5KCkKQEAgLTE5Niw3ICsyMDcsNyBAQCBjbGFzcyBUZXN0UmViYXNlbGluZXIodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICAjIHRoaXMgbWV0aG9kIHRlc3RzIHRoYXQgd2FzIGNhbiBhdCBs
ZWFzdCBpbnN0YW50aWF0ZSBhbiBvYmplY3QsIGV2ZW4KICAgICAgICAgIyBpZiB0aGVyZSBpcyBu
b3RoaW5nIHRvIGRvLgogICAgICAgICByZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFr
ZV9yZWJhc2VsaW5lcigiIikKLSAgICAgICAgcmViYXNlbGluZXIucnVuKEZhbHNlKQorICAgICAg
ICByZWJhc2VsaW5lci5ydW4oKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlc3lz
dGVtLndyaXR0ZW5fZmlsZXMpLCAxKQogCiAgICAgZGVmIHRlc3RfcmViYXNlbGluaW5nX3Rlc3Rz
KHNlbGYpOgpAQCAtMjE2LDcgKzIyNyw3IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3Rfb25lX3BsYXRmb3JtKHNlbGYpOgogICAgICAgICBy
ZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFrZV9yZWJhc2VsaW5lcigKICAgICAgICAg
ICAgICJCVUdYIFJFQkFTRUxJTkUgTUFDIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9
IElNQUdFIikKLSAgICAgICAgcmViYXNlbGluZXIucnVuKEZhbHNlKQorICAgICAgICByZWJhc2Vs
aW5lci5ydW4oKQogICAgICAgICAjIFdlIGV4cGVjdCB0byBoYXZlIHdyaXR0ZW4gMTIgZmlsZXMg
b3ZlciB0aGUgY291cnNlIG9mIHRoaXMgcmViYXNlbGluZToKICAgICAgICAgIyAqKSAzIGZpbGVz
IGluIC9fX2ltX3RtcCBmb3IgdGhlIGV4dHJhY3RlZCBhcmNoaXZlIG1lbWJlcnMKICAgICAgICAg
IyAqKSAzIG5ldyBiYXNlbGluZXMgdW5kZXIgJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzJwpA
QCAtMjMzLDcgKzI0NCw3IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgZGVmIHRlc3RfYWxsX3BsYXRmb3JtcyhzZWxmKToKICAgICAgICAgcmViYXNlbGlu
ZXIsIGZpbGVzeXN0ZW0gPSBzZWxmLm1ha2VfcmViYXNlbGluZXIoCiAgICAgICAgICAgICAiQlVH
WCBSRUJBU0VMSU5FIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFIikKLSAg
ICAgICAgcmViYXNlbGluZXIucnVuKEZhbHNlKQorICAgICAgICByZWJhc2VsaW5lci5ydW4oKQog
ICAgICAgICAjIFNlZSBjb21tZW50IGluIHRlc3Rfb25lX3BsYXRmb3JtIGZvciBhbiBleHBsYW5h
dGlvbiBvZiB0aGUgMTIgd3JpdHRlbiB0ZXN0cy4KICAgICAgICAgIyBOb3RlIHRoYXQgZXZlbiB0
aG91Z2ggdGhlIHJlYmFzZWxpbmUgaXMgbWFya2VkIGZvciBhbGwgcGxhdGZvcm1zLCBlYWNoCiAg
ICAgICAgICMgcmViYXNlbGluZXIgb25seSBldmVyIGRvZXMgb25lLgpAQCAtMjYwLDEyICsyNzEs
MTggQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogCiBjbGFz
cyBUZXN0UmVhbE1haW4odW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToK
KyAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ19vcmlnX2FyY2hpdmUnKToKKyAgICAgICAg
ICAgIHNlbGYuX29yaWdfYXJjaGl2ZSA9IHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LkFSQ0hJVkVfRElSX05BTUVfRElDVAorICAgICAgICAgICAgcmViYXNlbGluZV9jaHJvbWl1bV93
ZWJraXRfdGVzdHMuQVJDSElWRV9ESVJfTkFNRV9ESUNUID0gdGVzdF9hcmNoaXZlKHNlbGYuX29y
aWdfYXJjaGl2ZSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcmViYXNlbGlu
ZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMuQVJDSElWRV9ESVJfTkFNRV9ESUNUID0gc2VsZi5fb3Jp
Z19hcmNoaXZlCisKICAgICBkZWYgdGVzdF9hbGxfcGxhdGZvcm1zKHNlbGYpOgogICAgICAgICBl
eHBlY3RhdGlvbnMgPSAiQlVHWCBSRUJBU0VMSU5FIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2Uu
aHRtbCA9IElNQUdFIgogCiAgICAgICAgIG9wdGlvbnMgPSB0ZXN0X29wdGlvbnMoKQotICAgICAg
ICBvcHRpb25zLnBsYXRmb3JtcyA9ICcsJy5qb2luKG9wdGlvbnMuYWxsX3BsYXRmb3JtcykKLQog
ICAgICAgICBob3N0X3BvcnRfb2JqLCBmaWxlc3lzdGVtID0gdGVzdF9ob3N0X3BvcnRfYW5kX2Zp
bGVzeXN0ZW0ob3B0aW9ucywgZXhwZWN0YXRpb25zKQogICAgICAgICB1cmxfZmV0Y2hlciA9IHRl
c3RfdXJsX2ZldGNoZXIoZmlsZXN5c3RlbSkKICAgICAgICAgemlwX2ZhY3RvcnkgPSB0ZXN0X3pp
cF9mYWN0b3J5KCkKQEAgLTI5Miw3ICszMDksNyBAQCBjbGFzcyBUZXN0SHRtbEdlbmVyYXRvcih1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIG9wdGlvbnMgPSBtb2NrdG9vbC5Nb2NrT3B0aW9u
cyhjb25maWd1cmF0aW9uPU5vbmUsIGh0bWxfZGlyZWN0b3J5PScvdG1wJykKICAgICAgICAgaG9z
dF9wb3J0ID0gcG9ydC5nZXQoJ3Rlc3QnLCBvcHRpb25zLCBmaWxlc3lzdGVtPXBvcnQudW5pdF90
ZXN0X2ZpbGVzeXN0ZW0oZmlsZXMpKQogICAgICAgICBnZW5lcmF0b3IgPSByZWJhc2VsaW5lX2No
cm9taXVtX3dlYmtpdF90ZXN0cy5IdG1sR2VuZXJhdG9yKGhvc3RfcG9ydCwKLSAgICAgICAgICAg
IHRhcmdldF9wb3J0PU5vbmUsIG9wdGlvbnM9b3B0aW9ucywgcGxhdGZvcm1zPVsnbWFjJ10sIHJl
YmFzZWxpbmluZ190ZXN0cz10ZXN0cykKKyAgICAgICAgICAgIHRhcmdldF9wb3J0PU5vbmUsIG9w
dGlvbnM9b3B0aW9ucywgcGxhdGZvcm1zPVsndGVzdC1tYWMtbGVvcGFyZCddLCByZWJhc2VsaW5p
bmdfdGVzdHM9dGVzdHMpCiAgICAgICAgIHJldHVybiBnZW5lcmF0b3IsIGhvc3RfcG9ydAogCiAg
ICAgZGVmIHRlc3RfZ2VuZXJhdGVfYmFzZWxpbmVfbGlua3Moc2VsZik6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87891</attachid>
            <date>2011-04-01 11:50:49 -0700</date>
            <delta_ts>2011-04-01 12:06:35 -0700</delta_ts>
            <desc>update w/ review feedback from tony</desc>
            <filename>bug-55191-20110401115048.patch</filename>
            <type>text/plain</type>
            <size>53492</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI1MjkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MzJhYmI0NDJiZTdlMjlkMWYyMDgzMWMyYzE3MjczNjYy
ZTZmMTUzLi4yYTM0NjA5NTBhODQwOTBlYTZjYzE1NTEzODI1ZTRiNDRkMjc1NjI0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTEtMDMtMzEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBj
b21wbGV0ZXMgdGhlIGNsZWFudXAgb2YKKyAgICAgICAgcmViYXNlbGluZS1jaHJvbWl1bS13ZWJr
aXQtdGVzdHMgdG8gd29yayB3aXRoIGFsbCBvZiB0aGUKKyAgICAgICAgdmFyaWFudHMgb2YgYSBw
bGF0Zm9ybSAod2UgY2FuIG5vdyByZWJhc2VsaW5lIGdwdS0gYW5kIG5vbi1ncHUKKyAgICAgICAg
ZmlsZXMgYXQgdGhlIHNhbWUgdGltZSkuCisKKyAgICAgICAgV2hlbiB0aGUgcmViYXNlbGluaW5n
IGlzIGNvbXBsZXRlLCBhbnkgbGluZXMgZGVjbGFyZWQgYXMKKyAgICAgICAgUkVCQVNFTElORSBp
biB0aGUgZXhwZWN0YXRpb25zIGZpbGUgdGhhdCBtYXRjaGVzIGEgdGVzdCB0aGF0IHdhcworICAg
ICAgICBhY3R1YWxseSByZWJhc2VsaW5lZCB3aWxsIGJlIGRlbGV0ZWQsIGV2ZW4gaWYgb25seSBv
bmUgb2YgdGhlCisgICAgICAgIHZhcmlhbnRzIHdhcyBhY3R1YWxseSByZWJhc2VsaW5lZC4gVGhp
cyBtYXkgY2F1c2Ugb2RkIHByb2JsZW1zLAorICAgICAgICBidXQgaXMgYmV0dGVyIHRoYW4gd2hl
cmUgd2UncmUgYXQgdG9kYXkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVtb3ZlcyB0aGUgLWcg
YW5kIC13IGZsYWdzLiBUaGUgLWcgZmxhZyBpcyBnb25lCisgICAgICAgIGJlY2F1c2UgR1BVIGJh
c2VsaW5lcyBhcmUgaGFuZGxlZCBqdXN0IGxpa2UgYW55IG90aGVyIHZhcmlhbnQuCisgICAgICAg
IFRoZSAtdyBmbGFnIGlzIGdvbmUgYmVjYXVzZSB0aGlzIHRvb2wgd2lsbCBjdXJyZW50bHkgb25s
eSB3b3JrCisgICAgICAgIGFnYWluc3QgdGhlIGNhbmFyaWVzLCBzaW5jZSB0aGF0J3MgdGhlIG9u
bHkgcGxhY2Ugd2UgaGF2ZSBhIGZ1bGwKKyAgICAgICAgc2V0IG9mIGJvdHMuIEl0IHdpbGwgYmUg
dHJpdmlhbCB0byBjaGFuZ2UgdGhpcyB0bworICAgICAgICBidWlsZC53ZWJraXQub3JnIGlmIHdl
IGRlY2lkZSB0aGF0J3Mgd2hlcmUgd2Ugd2FudCB0aGVtIHRvIGJlLgorCisgICAgICAgIEFsc28s
IHRoaXMgcGF0Y2ggZGVsZXRlcyBhIGxvdCBvZiBjcnVmdCB0aGF0IGlzIG5vIGxvbmdlciBuZWVk
ZWQKKyAgICAgICAgaW4gdGhlIHRlc3RfZXhwZWN0YXRpb25zIGNvZGUgYW5kIHRoZSBwb3J0LXNw
ZWNpZmljIGNvZGUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU1MTkxCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0
dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jh
c2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNl
X3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW0ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9ncHUucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dp
bl91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3Rlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
ZWJraXQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
aW4ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGlu
ZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHk6
CisKIDIwMTEtMDMtMjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9u
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IDdkMmM5MWJiNjgyNzkwMTBhNTI0OWUxNDkwOTRl
YjY4MzY4Yjc1ZDAuLjdhZTkwMjA3YTE0OTExNzBiMjExNDVmZmNiOTI3YjYwNDE3YmRlY2QgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC0xNjYsNiAr
MTY2LDkgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uczoKICAgICBkZWYgaGFzX21vZGlmaWVyKHNl
bGYsIHRlc3QsIG1vZGlmaWVyKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX2ZhaWx1
cmVzLmhhc19tb2RpZmllcih0ZXN0LCBtb2RpZmllcikKIAorICAgIGRlZiByZW1vdmVfcmViYXNl
bGluZWRfdGVzdHMoc2VsZiwgdGVzdHMpOgorICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0ZWRf
ZmFpbHVyZXMucmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzKHRlc3RzKQorCiAKIGRlZiBzdHJpcF9j
b21tZW50cyhsaW5lKToKICAgICAiIiJTdHJpcHMgY29tbWVudHMgZnJvbSBhIGxpbmUgYW5kIHJl
dHVybiBOb25lIGlmIHRoZSBsaW5lIGlzIGVtcHR5CkBAIC00MzIsNiArNDM1LDE3IEBAIGNsYXNz
IFRlc3RFeHBlY3RhdGlvbnNGaWxlOgogICAgIGRlZiBnZXRfbm9uX2ZhdGFsX2Vycm9ycyhzZWxm
KToKICAgICAgICAgcmV0dXJuIHNlbGYuX25vbl9mYXRhbF9lcnJvcnMKIAorICAgIGRlZiByZW1v
dmVfcmViYXNlbGluZWRfdGVzdHMoc2VsZiwgdGVzdHMpOgorICAgICAgICAiIiJSZXR1cm5zIGEg
Y29weSBvZiB0aGUgZXhwZWN0YXRpb25zIHdpdGggdGhlIHRlc3RzIHJlbW92ZWQuIiIiCisgICAg
ICAgIGxpbmVubyA9IDAKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBmb3IgbGluZSBpbiBz
ZWxmLl9nZXRfaXRlcmFibGVfZXhwZWN0YXRpb25zKHNlbGYuX2V4cGVjdGF0aW9ucyk6CisgICAg
ICAgICAgICBsaW5lbm8gKz0gMQorICAgICAgICAgICAgdGVzdCwgb3B0aW9ucywgXyA9IHNlbGYu
cGFyc2VfZXhwZWN0YXRpb25zX2xpbmUobGluZSwgbGluZW5vKQorICAgICAgICAgICAgaWYgbm90
ICh0ZXN0IGFuZCB0ZXN0IGluIHRlc3RzIGFuZCAncmViYXNlbGluZScgaW4gb3B0aW9ucyk6Cisg
ICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGxpbmUpCisgICAgICAgIHJldHVybiAnJy5qb2lu
KGxpbmVzKQorCiAgICAgZGVmIHBhcnNlX2V4cGVjdGF0aW9uc19saW5lKHNlbGYsIGxpbmUsIGxp
bmVubyk6CiAgICAgICAgICIiIlBhcnNlcyBhIGxpbmUgZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucy50
eHQgYW5kIHJldHVybnMgYSB0dXBsZQogICAgICAgICB3aXRoIHRoZSB0ZXN0IHBhdGgsIG9wdGlv
bnMgYXMgYSBsaXN0LCBleHBlY3RhdGlvbnMgYXMgYSBsaXN0LiIiIgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBl
Y3RhdGlvbnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRleCBkZjM2
NGEwZWY4OWM1YzQxMDc3OGM1YzdlMjZmZjcxYTk2NjU3Y2JmLi4wODMzMDc5M2IxN2Y3NzBkZmU3
MmUyOWRiODczYTVmZGI3YzQ0YzZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQpAQCAtMzc3LDcgKzM3NywxOSBAQCBCVUdf
VEVTVCBXSU4tWFAgOiBwYXNzZXMvdGV4dC5odG1sID0gVEVYVAogCiBjbGFzcyBSZWJhc2VsaW5p
bmdUZXN0KEJhc2UpOgogICAgICIiIlRlc3QgcmViYXNlbGluaW5nLXNwZWNpZmljIGZ1bmN0aW9u
YWxpdHkuIiIiCi0gICAgIyBGSVhNRTogYWRkIGluIHRlc3RzIG9uY2Ugd2UgYXJlIGFjdHVhbGx5
IGRlbGV0aW5nIGxpbmVzIGFnYWluLgorICAgIGRlZiBhc3NlcnRSZW1vdmUoc2VsZiwgaW5wdXRf
ZXhwZWN0YXRpb25zLCB0ZXN0cywgZXhwZWN0ZWRfZXhwZWN0YXRpb25zKToKKyAgICAgICAgc2Vs
Zi5wYXJzZV9leHAoaW5wdXRfZXhwZWN0YXRpb25zKQorICAgICAgICBhY3R1YWxfZXhwZWN0YXRp
b25zID0gc2VsZi5fZXhwLnJlbW92ZV9yZWJhc2VsaW5lZF90ZXN0cyh0ZXN0cykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9leHBlY3RhdGlvbnMsIGFjdHVhbF9leHBlY3RhdGlv
bnMpCisKKyAgICBkZWYgdGVzdF9yZW1vdmUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmVt
b3ZlKCdCVUdYIFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhU
XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0ZWQv
aW1hZ2UuaHRtbCA9IElNQUdFXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdaIFJF
QkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sID0gQ1JBU0hcbicsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJ10sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2Uu
aHRtbCA9IElNQUdFXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdaIFJFQkFTRUxJ
TkUgOiBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sID0gQ1JBU0hcbicpCisKICAgICBkZWYg
dGVzdF9ub19nZXRfcmViYXNlbGluaW5nX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICBzZWxmLnBh
cnNlX2V4cChzZWxmLmdldF9iYXNpY19leHBlY3RhdGlvbnMoKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsZW4oc2VsZi5fZXhwLmdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoKSksIDApCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2Uu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5k
ZXggZGVhMTI2Zjg1YjU3YzA3Y2ZlMjk0NDBlM2EwODE2ZDZiOWU5ZjBhOS4uYTMzODAwNmUyOWE3
ZGQzNGQ1ZjhmZGRmMWVlZmI3MGQyZjdiOGI3MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtOTAsMTggKzkwLDI0IEBAIGNsYXNz
IFBvcnQob2JqZWN0KToKICAgICAgICAgICAgICAgICAgY29uZmlnPU5vbmUsCiAgICAgICAgICAg
ICAgICAgICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5fbmFtZSA9IHBvcnRfbmFtZQorCisgICAg
ICAgICMgVGhlc2UgYXJlIGRlZmF1bHQgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIG92ZXJyaWRkZW4g
aW4gYSBzdWJjbGFzc2VzLgorICAgICAgICAjIEZJWE1FOiBUaGVzZSBzaG91bGQgcmVhbGx5IGJl
IHBhc3NlZCBpbi4KKyAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICdtYWMnCisgICAg
ICAgIHNlbGYuX3ZlcnNpb24gPSAnJwogICAgICAgICBzZWxmLl9hcmNoaXRlY3R1cmUgPSAneDg2
JwotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBpZiBzZWxmLl9vcHRp
b25zIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIEZJWE1FOiBJZGVhbGx5IHdlJ2QgaGF2ZSBhIHBh
Y2thZ2Utd2lkZSB3YXkgdG8gZ2V0IGEKLSAgICAgICAgICAgICMgd2VsbC1mb3JtZWQgb3B0aW9u
cyBvYmplY3QgdGhhdCBoYWQgYWxsIG9mIHRoZSBuZWNlc3NhcnkKLSAgICAgICAgICAgICMgb3B0
aW9ucyBkZWZpbmVkIG9uIGl0LgotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IER1bW15T3B0
aW9ucygpCisgICAgICAgIHNlbGYuX2dyYXBoaWNzX3R5cGUgPSAnY3B1JworCisgICAgICAgICMg
RklYTUU6IElkZWFsbHkgd2UnZCBoYXZlIGEgcGFja2FnZS13aWRlIHdheSB0byBnZXQgYQorICAg
ICAgICAjIHdlbGwtZm9ybWVkIG9wdGlvbnMgb2JqZWN0IHRoYXQgaGFkIGFsbCBvZiB0aGUgbmVj
ZXNzYXJ5CisgICAgICAgICMgb3B0aW9ucyBkZWZpbmVkIG9uIGl0LgorICAgICAgICBzZWxmLl9v
cHRpb25zID0gb3B0aW9ucyBvciBEdW1teU9wdGlvbnMoKQorCiAgICAgICAgIHNlbGYuX2V4ZWN1
dGl2ZSA9IGV4ZWN1dGl2ZSBvciBFeGVjdXRpdmUoKQogICAgICAgICBzZWxmLl91c2VyID0gdXNl
ciBvciBVc2VyKCkKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3Igc3lz
dGVtLmZpbGVzeXN0ZW0uRmlsZVN5c3RlbSgpCi0gICAgICAgIHNlbGYuX2NvbmZpZyA9IGNvbmZp
ZyBvciBwb3J0X2NvbmZpZy5Db25maWcoc2VsZi5fZXhlY3V0aXZlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0pCisg
ICAgICAgIHNlbGYuX2NvbmZpZyA9IGNvbmZpZyBvciBwb3J0X2NvbmZpZy5Db25maWcoc2VsZi5f
ZXhlY3V0aXZlLCBzZWxmLl9maWxlc3lzdGVtKQorCiAgICAgICAgIHNlbGYuX2hlbHBlciA9IE5v
bmUKICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX3dlYmtp
dF9iYXNlX2RpciA9IE5vbmUKQEAgLTQ4MSwxNiArNDg3LDI3IEBAIGNsYXNzIFBvcnQob2JqZWN0
KToKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeSgqcGF0aCkK
IAogICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIG5hbWUgb2YgdGhl
IHBvcnQgKGUuZy4sICdtYWMnLCAnY2hyb21pdW0td2luLXhwJykuCi0KLSAgICAgICAgTm90ZSB0
aGF0IHRoaXMgaXMgZGlmZmVyZW50IGZyb20gdGhlIHRlc3RfcGxhdGZvcm1fbmFtZSgpLCB3aGlj
aAotICAgICAgICBtYXkgYmUgZGlmZmVyZW50IChlLmcuLCAnd2luLXhwJyBpbnN0ZWFkIG9mICdj
aHJvbWl1bS13aW4teHAnLiIiIgorICAgICAgICAiIiJSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHBv
cnQgKGUuZy4sICdtYWMnLCAnY2hyb21pdW0td2luLXhwJykuIiIiCiAgICAgICAgIHJldHVybiBz
ZWxmLl9uYW1lCiAKKyAgICBkZWYgb3BlcmF0aW5nX3N5c3RlbShzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0KKworICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgorICAg
ICAgICAiIiJSZXR1cm5zIGEgc3RyaW5nIGluZGljYXRpbmcgdGhlIHZlcnNpb24gb2YgYSBnaXZl
biBwbGF0Zm9ybSwgZS5nLgorICAgICAgICAnbGVvcGFyZCcgb3IgJ3hwJy4KKworICAgICAgICBU
aGlzIGlzIHVzZWQgdG8gaGVscCBpZGVudGlmeSB0aGUgZXhhY3QgcG9ydCB3aGVuIHBhcnNpbmcg
dGVzdAorICAgICAgICBleHBlY3RhdGlvbnMsIGRldGVybWluaW5nIHNlYXJjaCBwYXRocywgYW5k
IGxvZ2dpbmcgaW5mb3JtYXRpb24uIiIiCisgICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCisK
ICAgICBkZWYgZ3JhcGhpY3NfdHlwZShzZWxmKToKICAgICAgICAgIiIiUmV0dXJucyB3aGV0aGVy
IHRoZSBwb3J0IHVzZXMgYWNjZWxlcmF0ZWQgZ3JhcGhpY3MgKCdncHUnKSBvciBub3QKICAgICAg
ICAgKCdjcHUnKS4iIiIKLSAgICAgICAgcmV0dXJuICdjcHUnCisgICAgICAgIHJldHVybiBzZWxm
Ll9ncmFwaGljc190eXBlCisKKyAgICBkZWYgYXJjaGl0ZWN0dXJlKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5fYXJjaGl0ZWN0dXJlCiAKICAgICBkZWYgcmVhbF9uYW1lKHNlbGYpOgogICAg
ICAgICAiIiJSZXR1cm5zIHRoZSBhY3R1YWwgbmFtZSBvZiB0aGUgcG9ydCwgbm90IHRoZSBkZWxl
Z2F0ZSdzLiIiIgpAQCAtNjMxLDYgKzY0OCwxNCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAg
ZGVmIGFsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50
ZXN0X2NvbmZpZ3VyYXRpb24oKS5hbGxfdGVzdF9jb25maWd1cmF0aW9ucygpCiAKKyAgICBkZWYg
YWxsX2Jhc2VsaW5lX3ZhcmlhbnRzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIGEgbGlzdCBv
ZiBwbGF0Zm9ybSBuYW1lcyBzdWZmaWNpZW50IHRvIGNvdmVyIGFsbCB0aGUgYmFzZWxpbmVzLgor
CisgICAgICAgIFRoZSBsaXN0IHNob3VsZCBiZSBzb3J0ZWQgc28gdGhhdCBhIGxhdGVyIHBsYXRm
b3JtICB3aWxsIHJldXNlCisgICAgICAgIGFuIGVhcmxpZXIgcGxhdGZvcm0ncyBiYXNlbGluZXMg
aWYgdGhleSBhcmUgdGhlIHNhbWUgKGUuZy4sCisgICAgICAgICdzbm93bGVvcGFyZCcgc2hvdWxk
IHByZWNlZGUgJ2xlb3BhcmQnKS4iIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cgorCiAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5z
IHRoZSB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgdGhpcyBwb3J0LgogCkBAIC02NDcsMzkgKzY3Miw2
IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgc3luYyB1cCB0aGUgdHdvIHJlcG9zLiIi
IgogICAgICAgICByZXR1cm4gTm9uZQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxm
KToKLSAgICAgICAgIiIiUmV0dXJucyB0aGUgc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhl
IGdpdmVuIHBsYXRmb3JtIG5hbWUKLSAgICAgICAgaW4gdGhlIHRlc3QgZXhwZWN0YXRpb25zLiBU
aGlzIG1heSBiZSB0aGUgc2FtZSBhcyBuYW1lKCksIG9yIGl0Ci0gICAgICAgIG1heSBiZSBkaWZm
ZXJlbnQuIEZvciBleGFtcGxlLCBjaHJvbWl1bSByZXR1cm5zICdtYWMnIGZvcgotICAgICAgICAn
Y2hyb21pdW0tbWFjJy4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9y
dC50ZXN0X3BsYXRmb3JtX25hbWUnKQotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1zKHNlbGYpOgot
ICAgICAgICAiIiJSZXR1cm5zIHRoZSBsaXN0IG9mIHRlc3QgcGxhdGZvcm0gaWRlbnRpZmllcnMg
YXMgdXNlZCBpbiB0aGUKLSAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMgYW5kIG9uIGRhc2hib2Fy
ZHMsIHRoZSByZWJhc2VsaW5pbmcgdG9vbCwgZXRjLgotCi0gICAgICAgIE5vdGUgdGhhdCB0aGlz
IGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgbGlzdCBvZiBwb3J0cywKLSAgICAg
ICAgd2hpY2ggbXVzdCBiZSBnbG9iYWxseSB1bmlxdWUgKGUuZy4sIGJvdGggJ2Nocm9taXVtLW1h
YycgYW5kICdtYWMnCi0gICAgICAgIG1pZ2h0IHJldHVybiAnbWFjJyBhcyBhIHRlc3RfcGxhdGZv
cm0gbmFtZScuIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQucGxh
dGZvcm1zJykKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0
X3BsYXRmb3JtX25hbWUpOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBQb3J0IHBsYXRmb3JtIG5h
bWUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgbmFtZSBhcwotICAgICAgICByZWZlcmVuY2VkIGlu
IHRoZSBleHBlY3RhdGlvbnMgZmlsZS4gRS5nLiwgIm1hYyIgcmV0dXJucwotICAgICAgICAiY2hy
b21pdW0tbWFjIiBvbiB0aGUgQ2hyb21pdW0gcG9ydHMuIiIiCi0gICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IoJ1BvcnQudGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUnKQotCi0gICAg
ZGVmIGFyY2hpdGVjdHVyZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2FyY2hpdGVjdHVy
ZQotCi0gICAgZGVmIHZlcnNpb24oc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgYSBzdHJpbmcg
aW5kaWNhdGluZyB0aGUgdmVyc2lvbiBvZiBhIGdpdmVuIHBsYXRmb3JtLCBlLmcuCi0gICAgICAg
ICdsZW9wYXJkJyBvciAneHAnLgotCi0gICAgICAgIFRoaXMgaXMgdXNlZCB0byBoZWxwIGlkZW50
aWZ5IHRoZSBleGFjdCBwb3J0IHdoZW4gcGFyc2luZyB0ZXN0Ci0gICAgICAgIGV4cGVjdGF0aW9u
cywgZGV0ZXJtaW5pbmcgc2VhcmNoIHBhdGhzLCBhbmQgbG9nZ2luZyBpbmZvcm1hdGlvbi4iIiIK
LSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC52ZXJzaW9uJykKLQogICAg
IGRlZiB0ZXN0X3JlcG9zaXRvcnlfcGF0aHMoc2VsZik6CiAgICAgICAgICIiIlJldHVybnMgYSBs
aXN0IG9mIChyZXBvc2l0b3J5X25hbWUsIHJlcG9zaXRvcnlfcGF0aCkgdHVwbGVzCiAgICAgICAg
IG9mIGl0cyBkZXBlbmRpbmcgY29kZSBiYXNlLiAgQnkgZGVmYXVsdCBpdCByZXR1cm5zIGEgbGlz
dCB0aGF0IG9ubHkKQEAgLTk1NiwxNSArOTQ4LDggQEAgY2xhc3MgRHJpdmVyOgogY2xhc3MgVGVz
dENvbmZpZ3VyYXRpb24ob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydD1Ob25l
LCBvcz1Ob25lLCB2ZXJzaW9uPU5vbmUsIGFyY2hpdGVjdHVyZT1Ob25lLAogICAgICAgICAgICAg
ICAgICBidWlsZF90eXBlPU5vbmUsIGdyYXBoaWNzX3R5cGU9Tm9uZSk6Ci0KLSAgICAgICAgIyBG
SVhNRTogV2UgY2FuIGdldCB0aGUgTy9TIGFuZCB2ZXJzaW9uIGZyb20gdGVzdF9wbGF0Zm9ybV9u
YW1lKCkKLSAgICAgICAgIyBhbmQgdmVyc2lvbigpIGZvciBub3csIGJ1dCB0aG9zZSBzaG91bGQg
Z28gYXdheSBhbmQgYmUgY2xlYW5lZCB1cAotICAgICAgICAjIHdpdGggbW9yZSBnZW5lcmljIG1l
dGhvZHMgbGlrZSBvcGVyYXRpb25fc3lzdGVtKCkgYW5kIG9zX3ZlcnNpb24oKQotICAgICAgICAj
IG9yIHNvbWV0aGluZy4KLSAgICAgICAgaWYgcG9ydDoKLSAgICAgICAgICAgIHBvcnRfdmVyc2lv
biA9IHBvcnQudmVyc2lvbigpCi0gICAgICAgIHNlbGYub3MgPSBvcyBvciBwb3J0LnRlc3RfcGxh
dGZvcm1fbmFtZSgpLnJlcGxhY2UoJy0nICsgcG9ydF92ZXJzaW9uLCAnJykKLSAgICAgICAgc2Vs
Zi52ZXJzaW9uID0gdmVyc2lvbiBvciBwb3J0X3ZlcnNpb24KKyAgICAgICAgc2VsZi5vcyA9IG9z
IG9yIHBvcnQub3BlcmF0aW5nX3N5c3RlbSgpCisgICAgICAgIHNlbGYudmVyc2lvbiA9IHZlcnNp
b24gb3IgcG9ydC52ZXJzaW9uKCkKICAgICAgICAgc2VsZi5hcmNoaXRlY3R1cmUgPSBhcmNoaXRl
Y3R1cmUgb3IgcG9ydC5hcmNoaXRlY3R1cmUoKQogICAgICAgICBzZWxmLmJ1aWxkX3R5cGUgPSBi
dWlsZF90eXBlIG9yIHBvcnQuX29wdGlvbnMuY29uZmlndXJhdGlvbi5sb3dlcigpCiAgICAgICAg
IHNlbGYuZ3JhcGhpY3NfdHlwZSA9IGdyYXBoaWNzX3R5cGUgb3IgcG9ydC5ncmFwaGljc190eXBl
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
YmFzZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZV91bml0dGVzdC5weQppbmRleCBlZjkwNDg0Y2E4M2IxNzE3OTQzMDIwYjFkNDNjOTJk
NzE2ODAzMDgyLi40MWU3NWVhZmUxMjEzNGM4YjI2ODYzNDY0MTUyY2I3YTJiNjcyMTc1IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9i
YXNlX3VuaXR0ZXN0LnB5CkBAIC0yNDcsMTMgKzI0Nyw4IEBAIGNsYXNzIFZpcnR1YWxUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuY3JlYXRl
X2RyaXZlciwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuZGlmZl9pbWFnZSwg
Tm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQucGF0aF90b190ZXN0
X2V4cGVjdGF0aW9uc19maWxlKQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0
X3BsYXRmb3JtX25hbWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnJlc3VsdHNf
ZGlyZWN0b3J5KQogICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X2V4cGVjdGF0
aW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQudGVzdF9wbGF0Zm9ybV9uYW1l
KQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3JtcykKLSAgICAg
ICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQudGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUsIE5v
bmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnZlcnNpb24pCiAgICAgICAgIHNl
bGYuYXNzZXJ0VmlydHVhbChwb3J0Ll9wYXRoX3RvX2FwYWNoZSkKICAgICAgICAgc2VsZi5hc3Nl
cnRWaXJ0dWFsKHBvcnQuX3BhdGhfdG9fYXBhY2hlX2NvbmZpZ19maWxlKQogICAgICAgICBzZWxm
LmFzc2VydFZpcnR1YWwocG9ydC5fcGF0aF90b19kcml2ZXIpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCBkMDhjMGJk
YjU5NGRjNjExMDZmMjA0ZTBlZjFiYmVlOGQ2YTM1MDU4Li4xYWFlMjY5MjZlNjcwMDZmMWIxZmQ4
OWU3ZTRlYzQ2OThlZjEzYWZkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKQEAgLTUxLDYgKzUxLDEyIEBAIF9sb2cgPSBs
b2dnaW5nLmdldExvZ2dlcigid2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuY2hyb21pdW0iKQog
IyBGSVhNRTogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGJlbG9uZyBpbiB0aGlzIHBhY2thZ2UuCiBj
bGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKICAgICAiIiJBYnN0cmFjdCBiYXNlIGNsYXNz
IGZvciBDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFBvcnQgY2xhc3MuIiIiCisgICAg
QUxMX0JBU0VMSU5FX1ZBUklBTlRTID0gWworICAgICAgICAnY2hyb21pdW0tbWFjLXNub3dsZW9w
YXJkJywgJ2Nocm9taXVtLW1hYy1sZW9wYXJkJywKKyAgICAgICAgJ2Nocm9taXVtLXdpbi13aW43
JywgJ2Nocm9taXVtLXdpbi12aXN0YScsICdjaHJvbWl1bS13aW4teHAnLAorICAgICAgICAnY2hy
b21pdW0tbGludXgnLCAnY2hyb21pdW0tbGludXgteDg2XzY0JywKKyAgICAgICAgJ2Nocm9taXVt
LWdwdS1tYWMtbGVvcGFyZCcsICdjaHJvbWl1bS1ncHUtd2luLXhwJywgJ2Nocm9taXVtLWdwdS1s
aW51eCcsCisgICAgXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKICAgICAg
ICAgYmFzZS5Qb3J0Ll9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQpAQCAtMjMwLDYgKzIzNiw5IEBA
IGNsYXNzIENocm9taXVtUG9ydChiYXNlLlBvcnQpOgogICAgICAgICAgICAgIyBodHRwOi8vYnVn
cy5weXRob24ub3JnL2lzc3VlMTczMTcxNwogICAgICAgICAgICAgc2VsZi5faGVscGVyLndhaXQo
KQogCisgICAgZGVmIGFsbF9iYXNlbGluZV92YXJpYW50cyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuQUxMX0JBU0VMSU5FX1ZBUklBTlRTCisKICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnMo
c2VsZik6CiAgICAgICAgICIiIlJldHVybnMgdGhlIHRlc3QgZXhwZWN0YXRpb25zIGZvciB0aGlz
IHBvcnQuCiAKQEAgLTI1MSw3ICsyNjAsNiBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0
KToKICAgICBkZWYgc2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZiwgZXh0cmFfdGVzdF9maWxlcz1O
b25lKToKICAgICAgICAgZXhwZWN0YXRpb25zX3N0ciA9IHNlbGYudGVzdF9leHBlY3RhdGlvbnMo
KQogICAgICAgICBvdmVycmlkZXNfc3RyID0gc2VsZi50ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlk
ZXMoKQotICAgICAgICB0ZXN0X3BsYXRmb3JtX25hbWUgPSBzZWxmLnRlc3RfcGxhdGZvcm1fbmFt
ZSgpCiAgICAgICAgIGlzX2RlYnVnX21vZGUgPSBGYWxzZQogCiAgICAgICAgIGFsbF90ZXN0X2Zp
bGVzID0gc2VsZi50ZXN0cyhbXSkKQEAgLTI2NSwxNyArMjczLDYgQEAgY2xhc3MgQ2hyb21pdW1Q
b3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJldHVybiBbc2VsZi5yZWxhdGl2ZV90ZXN0X2ZpbGVu
YW1lKHRlc3QpCiAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gZXhwZWN0YXRpb25zLmdldF90
ZXN0c193aXRoX3Jlc3VsdF90eXBlKHRlc3RfZXhwZWN0YXRpb25zLlNLSVApXQogCi0gICAgZGVm
IHRlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiAoJ21hYy1sZW9wYXJk
JywgJ21hYy1zbm93bGVvcGFyZCcsCi0gICAgICAgICAgICAgICAgJ3dpbi14cCcsICd3aW4tdmlz
dGEnLCAnd2luLXdpbjcnLAotICAgICAgICAgICAgICAgICdsaW51eCcpCi0KLSAgICBkZWYgdGVz
dF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwgdGVzdF9wbGF0Zm9ybV9uYW1lKToKLSAgICAg
ICAgaWYgdGVzdF9wbGF0Zm9ybV9uYW1lIGluIHNlbGYudGVzdF9wbGF0Zm9ybV9uYW1lcygpOgot
ICAgICAgICAgICAgcmV0dXJuICdjaHJvbWl1bS0nICsgdGVzdF9wbGF0Zm9ybV9uYW1lCi0gICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Vuc3VwcG9ydGVkIHRlc3RfcGxhdGZvcm1fbmFtZTogJXMn
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BsYXRmb3JtX25hbWUpCi0KICAgICBk
ZWYgdGVzdF9yZXBvc2l0b3J5X3BhdGhzKHNlbGYpOgogICAgICAgICAjIE5vdGU6IGZvciBKU09O
IGZpbGUncyBiYWNrd2FyZC1jb21wYXRpYmlsaXR5IHdlIHVzZSAnY2hyb21lJyByYXRoZXIKICAg
ICAgICAgIyB0aGFuICdjaHJvbWl1bScgaGVyZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkKaW5kZXggMTY3ZjIz
ZWM0YmZhMTQyMDJlNmZkNzk2ZmUxMTJiZjU0MGJkZjcwOS4uZmZjMmNmNzRjYzc1NDY3M2Y3MTc3
NGJjODRlMjliNjQzMmM2NWZkZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkKQEAgLTYwLDYgKzYwLDcgQEAg
ZGVmIGdldChwbGF0Zm9ybT1Ob25lLCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdScsICoqa3dhcmdz
KToKICMgRklYTUU6IFRoZXNlIHNob3VsZCByZWFsbHkgYmUgYSBtaXhpbiBjbGFzcy4KIAogZGVm
IF9zZXRfZ3B1X29wdGlvbnMocG9ydCk6CisgICAgcG9ydC5fZ3JhcGhpY3NfdHlwZSA9ICdncHUn
CiAgICAgaWYgcG9ydC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF9jb21wb3NpdGluZycpIGlzIE5v
bmU6CiAgICAgICAgIHBvcnQuX29wdGlvbnMuYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmcgPSBUcnVl
CiAgICAgaWYgcG9ydC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF8yZF9jYW52YXMnKSBpcyBOb25l
OgpAQCAtODQsMTcgKzg1LDYgQEAgZGVmIF90ZXN0cyhwb3J0LCBwYXRocyk6CiAgICAgcmV0dXJu
IHRlc3RfZmlsZXMuZmluZChwb3J0LCBwYXRocykKIAogCi1kZWYgX3Rlc3RfcGxhdGZvcm1fbmFt
ZXMoc2VsZik6Ci0gICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdsaW51eCcpCi0KLQotZGVmIF90
ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUpOgotICAg
IGlmIHRlc3RfcGxhdGZvcm1fbmFtZSBpbiBzZWxmLnRlc3RfcGxhdGZvcm1fbmFtZXMoKToKLSAg
ICAgICAgcmV0dXJuICdjaHJvbWl1bS1ncHUtJyArIHRlc3RfcGxhdGZvcm1fbmFtZQotICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ1Vuc3VwcG9ydGVkIHRlc3RfcGxhdGZvcm1fbmFtZTogJXMnICUKLSAg
ICAgICAgICAgICAgICAgICAgIHRlc3RfcGxhdGZvcm1fbmFtZSkKLQotCiBjbGFzcyBDaHJvbWl1
bUdwdUxpbnV4UG9ydChjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCk6CiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT0nY2hyb21pdW0tZ3B1LWxpbnV4JywgKiprd2FyZ3Mp
OgogICAgICAgICBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydC5fX2luaXRfXyhzZWxm
LCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKQEAgLTExMiwyMSArMTAyLDkgQEAgY2xh
c3MgQ2hyb21pdW1HcHVMaW51eFBvcnQoY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQp
OgogICAgIGRlZiBkZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAgICAgcmV0dXJu
IDEKIAotICAgIGRlZiBncmFwaGljc190eXBlKHNlbGYpOgotICAgICAgICByZXR1cm4gJ2dwdScK
LQogICAgIGRlZiB0ZXN0cyhzZWxmLCBwYXRocyk6CiAgICAgICAgIHJldHVybiBfdGVzdHMoc2Vs
ZiwgcGF0aHMpCiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gJ2xpbnV4JwotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBfdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKQotCi0gICAgZGVmIHRlc3RfcGxh
dGZvcm1fbmFtZV90b19uYW1lKHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gX3Rlc3RfcGxh
dGZvcm1fbmFtZV90b19uYW1lKHNlbGYsIG5hbWUpCi0KIAogY2xhc3MgQ2hyb21pdW1HcHVNYWNQ
b3J0KGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdS1tYWMnLCAqKmt3YXJncyk6CkBAIC0xNDQsMjEgKzEy
Miw5IEBAIGNsYXNzIENocm9taXVtR3B1TWFjUG9ydChjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQ
b3J0KToKICAgICBkZWYgZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAgICAgIHJl
dHVybiAxCiAKLSAgICBkZWYgZ3JhcGhpY3NfdHlwZShzZWxmKToKLSAgICAgICAgcmV0dXJuICdn
cHUnCi0KICAgICBkZWYgdGVzdHMoc2VsZiwgcGF0aHMpOgogICAgICAgICByZXR1cm4gX3Rlc3Rz
KHNlbGYsIHBhdGhzKQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAg
ICAgcmV0dXJuICdtYWMnCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAg
ICAgICAgcmV0dXJuIF90ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYpCi0KLSAgICBkZWYgdGVzdF9w
bGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBfdGVzdF9w
bGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwgbmFtZSkKLQogCiBjbGFzcyBDaHJvbWl1bUdwdVdp
blBvcnQoY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCk6CiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBvcnRfbmFtZT0nY2hyb21pdW0tZ3B1LXdpbicsICoqa3dhcmdzKToKQEAgLTE3NiwxNyAr
MTQyLDUgQEAgY2xhc3MgQ2hyb21pdW1HcHVXaW5Qb3J0KGNocm9taXVtX3dpbi5DaHJvbWl1bVdp
blBvcnQpOgogICAgIGRlZiBkZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAgICAg
cmV0dXJuIDEKIAotICAgIGRlZiBncmFwaGljc190eXBlKHNlbGYpOgotICAgICAgICByZXR1cm4g
J2dwdScKLQogICAgIGRlZiB0ZXN0cyhzZWxmLCBwYXRocyk6CiAgICAgICAgIHJldHVybiBfdGVz
dHMoc2VsZiwgcGF0aHMpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAg
ICAgICByZXR1cm4gJ3dpbicKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYpOgot
ICAgICAgICByZXR1cm4gX3Rlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZikKLQotICAgIGRlZiB0ZXN0
X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0dXJuIF90ZXN0
X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCBuYW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgucHkKaW5k
ZXggMmNkMjQzNTE1Mzc2ZjkyNzYwZWQyY2MzYTEzYjIyZmZlMGIxNzk3Ni4uMzk2YWJhNTU2MzY4
MWNhNjUyZjIwNzE1MTE2MGNhZjNiZDQyODFmNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5CkBAIC00
NywxOSArNDcsMTcgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0uQ2hyb21pdW1Q
b3J0KToKICAgICAgICAgJ3g4Nic6IFsnY2hyb21pdW0tbGludXgnLCAnY2hyb21pdW0td2luJywg
J2Nocm9taXVtJywgJ3dpbicsICdtYWMnXSwKICAgICB9CiAKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcG9ydF9uYW1lPU5vbmUsIHJlYmFzZWxpbmluZz1GYWxzZSwgKiprd2FyZ3MpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBwb3J0
X25hbWUgPSBwb3J0X25hbWUgb3IgJ2Nocm9taXVtLWxpbnV4JwogICAgICAgICBjaHJvbWl1bS5D
aHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3Mp
CiAKICAgICAgICAgIyBXZSByZS1zZXQgdGhlIHBvcnQgbmFtZSBvbmNlIHRoZSBiYXNlIG9iamVj
dCBpcyBmdWxseSBpbml0aWFsaXplZAogICAgICAgICAjIGluIG9yZGVyIHRvIGJlIGFibGUgdG8g
ZmluZCB0aGUgRFJUIGJpbmFyeSBwcm9wZXJseS4KLSAgICAgICAgaWYgcG9ydF9uYW1lLmVuZHN3
aXRoKCctbGludXgnKSBhbmQgbm90IHJlYmFzZWxpbmluZzoKKyAgICAgICAgaWYgcG9ydF9uYW1l
LmVuZHN3aXRoKCctbGludXgnKToKICAgICAgICAgICAgIHNlbGYuX2FyY2hpdGVjdHVyZSA9IHNl
bGYuX2RldGVybWluZV9hcmNoaXRlY3R1cmUoKQogICAgICAgICAgICAgIyBGSVhNRTogdGhpcyBp
cyBhbiB1Z2x5IGhhY2sgdG8gYXZvaWQgcmVuYW1pbmcgdGhlIEdQVSBwb3J0LgogICAgICAgICAg
ICAgaWYgcG9ydF9uYW1lID09ICdjaHJvbWl1bS1saW51eCc6CiAgICAgICAgICAgICAgICAgcG9y
dF9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2VsZi5fYXJjaGl0ZWN0dXJlCi0gICAgICAgIGVs
aWYgcmViYXNlbGluaW5nOgotICAgICAgICAgICAgc2VsZi5fYXJjaGl0ZWN0dXJlID0gJ3g4NicK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGJhc2UsIGFyY2ggPSBwb3J0X25hbWUucnNwbGl0
KCctJywgMSkKICAgICAgICAgICAgIGFzc2VydCBiYXNlIGluICgnY2hyb21pdW0tbGludXgnLCAn
Y2hyb21pdW0tZ3B1LWxpbnV4JykKQEAgLTY4LDYgKzY2LDkgQEAgY2xhc3MgQ2hyb21pdW1MaW51
eFBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgYXNzZXJ0IHBvcnRfbmFtZSBp
biAoJ2Nocm9taXVtLWxpbnV4JywgJ2Nocm9taXVtLWdwdS1saW51eCcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdjaHJvbWl1bS1saW51eC14ODYnLCAnY2hyb21pdW0tbGludXgteDg2
XzY0JykKICAgICAgICAgc2VsZi5fbmFtZSA9IHBvcnRfbmFtZQorICAgICAgICBzZWxmLl9vcGVy
YXRpbmdfc3lzdGVtID0gJ2xpbnV4JworICAgICAgICAjIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3Ig
J2x1Y2lkJworICAgICAgICBzZWxmLl92ZXJzaW9uID0gJ2hhcmR5JwogCiAgICAgZGVmIF9kZXRl
cm1pbmVfYXJjaGl0ZWN0dXJlKHNlbGYpOgogICAgICAgICBkcml2ZXJfcGF0aCA9IHNlbGYuX3Bh
dGhfdG9fZHJpdmVyKCkKQEAgLTExNCwxNCArMTE1LDYgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBv
cnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbnV4
QnVpbGRJbnN0cnVjdGlvbnMnKQogICAgICAgICByZXR1cm4gcmVzdWx0CiAKLSAgICBkZWYgdGVz
dF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICAjIFdlIHVzZSAnbGludXgnIGluc3RlYWQg
b2YgJ2Nocm9taXVtLWxpbnV4JyBpbiB0ZXN0X2V4cGVjdGF0aW9ucy50eHQuCi0gICAgICAgIHJl
dHVybiAnbGludXgnCi0KLSAgICBkZWYgdmVyc2lvbihzZWxmKToKLSAgICAgICAgIyBGSVhNRTog
YWRkIHN1cHBvcnQgZm9yIEx1Y2lkLgotICAgICAgICByZXR1cm4gJ2hhcmR5JwotCiAgICAgIwog
ICAgICMgUFJPVEVDVEVEIE1FVEhPRFMKICAgICAjCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CmluZGV4IDE0MWI1
ODc5YzhiNDcyZTJhMzhkZDc1NzRkMjM1ZTM4YWU0MjEzOWYuLmI0NWQ4ZGFjZDNiNWM5M2RhY2Vj
Mzk2OTY5YWI1MzdlNGRhM2NkYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CkBAIC02MCwzOCArNjAsMjAg
QEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAg
ICAgICAnbWFjLXNub3dsZW9wYXJkJywKICAgICAgICAgICAgICdtYWMnLAogICAgICAgICBdLAot
ICAgICAgICAnJzogWwotICAgICAgICAgICAgJ2Nocm9taXVtLW1hYycsCi0gICAgICAgICAgICAn
Y2hyb21pdW0nLAotICAgICAgICAgICAgJ21hYycsCi0gICAgICAgIF0sCiAgICAgfQogCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25lLCBvc192ZXJzaW9uX3N0cmluZz1Ob25l
LCByZWJhc2VsaW5pbmc9RmFsc2UsICoqa3dhcmdzKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
cG9ydF9uYW1lPU5vbmUsIG9zX3ZlcnNpb25fc3RyaW5nPU5vbmUsICoqa3dhcmdzKToKICAgICAg
ICAgIyBXZSdyZSBhIGxpdHRsZSBnZW5lcmljIGhlcmUgYmVjYXVzZSB0aGlzIGNvZGUgaXMgcmV1
c2VkIGJ5IHRoZQogICAgICAgICAjICdnb29nbGUtY2hyb21lJyBwb3J0IGFzIHdlbGwgYXMgdGhl
ICdtb2NrLScgYW5kICdkcnlydW4tJyBwb3J0cy4KICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9u
YW1lIG9yICdjaHJvbWl1bS1tYWMnCi0KKyAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9f
aW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogICAgICAgICBpZiBw
b3J0X25hbWUuZW5kc3dpdGgoJy1tYWMnKToKLSAgICAgICAgICAgICMgRklYTUU6IFRoZSByZWJh
c2VsaW5pbmcgZmxhZyBpcyBhbiB1Z2x5IGhhY2sgdGhhdCBsZXRzIHVzIGNyZWF0ZSBhbgotICAg
ICAgICAgICAgIyAiY2hyb21pdW0tbWFjIiBwb3J0IHRoYXQgaXMgbm90IHZlcnNpb24tc3BlY2lm
aWMuIEl0IHNob3VsZCBvbmx5IGJlCi0gICAgICAgICAgICAjIHVzZWQgYnkgcmViYXNlbGluZS1j
aHJvbWl1bS13ZWJraXQtdGVzdHMgdG8gZXhwbGljaXRseSBwdXQgZmlsZXMgaW50bwotICAgICAg
ICAgICAgIyB0aGUgZ2VuZXJpYyBkaXJlY3RvcnkuIEluIHRoZW9yeSB3ZSBzaG91bGRuJ3QgbmVl
ZCB0aGlzLCBiZWNhdXNlCi0gICAgICAgICAgICAjIHRoZSBuZXdlc3QgbWFjIHBvcnQgc2hvdWxk
IGJlIHVzaW5nICdjaHJvbWl1bS1tYWMnIGFzIHRoZSBiYXNlbGluZQotICAgICAgICAgICAgIyBk
aXJlY3RvcnkuIEhvd2V2ZXIsIHdlIGFsc28gZG9uJ3QgaGF2ZSBzdGFibGUgU0wgYm90cyA6KAot
ICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBXaGVuIHdlIHJlbW92ZSB0aGlzIEZJWE1FLCB3
ZSBhbHNvIG5lZWQgdG8gcmVtb3ZlICcnIGFzIGEgdmFsaWQKLSAgICAgICAgICAgICMgZmFsbGJh
Y2sga2V5IGluIHNlbGYuRkFMTEJBQ0tfUEFUSFMuCi0gICAgICAgICAgICBpZiByZWJhc2VsaW5p
bmc6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9ICcnCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBtYWMub3NfdmVyc2lvbihvc192ZXJz
aW9uX3N0cmluZywgc2VsZi5TVVBQT1JURURfT1NfVkVSU0lPTlMpCi0gICAgICAgICAgICAgICAg
cG9ydF9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2VsZi5fdmVyc2lvbgorICAgICAgICAgICAg
c2VsZi5fdmVyc2lvbiA9IG1hYy5vc192ZXJzaW9uKG9zX3ZlcnNpb25fc3RyaW5nLCBzZWxmLlNV
UFBPUlRFRF9PU19WRVJTSU9OUykKKyAgICAgICAgICAgIHNlbGYuX25hbWUgPSBwb3J0X25hbWUg
KyAnLScgKyBzZWxmLl92ZXJzaW9uCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl92
ZXJzaW9uID0gcG9ydF9uYW1lW3BvcnRfbmFtZS5pbmRleCgnLW1hYy0nKSArIDU6XQogICAgICAg
ICAgICAgYXNzZXJ0IHNlbGYuX3ZlcnNpb24gaW4gc2VsZi5TVVBQT1JURURfT1NfVkVSU0lPTlMK
LQotICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1l
PXBvcnRfbmFtZSwgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0gPSAn
bWFjJwogCiAgICAgZGVmIGJhc2VsaW5lX3BhdGgoc2VsZik6CiAgICAgICAgIGlmIHNlbGYudmVy
c2lvbigpID09ICdzbm93bGVvcGFyZCc6CkBAIC0xMjMsMTUgKzEwNSw2IEBAIGNsYXNzIENocm9t
aXVtTWFjUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgIGRlZiBkcml2ZXJfbmFtZShz
ZWxmKToKICAgICAgICAgcmV0dXJuICJEdW1wUmVuZGVyVHJlZSIKIAotICAgIGRlZiB0ZXN0X3Bs
YXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgICMgV2UgdXNlICdtYWMnIGluc3RlYWQgb2YgJ2No
cm9taXVtLW1hYycKLQotICAgICAgICAjIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgbWV0aG9kIGFm
dGVyIHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzIGRpZXMuCi0gICAgICAgIHJldHVy
biAnbWFjJwotCi0gICAgZGVmIHZlcnNpb24oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl92
ZXJzaW9uCi0KICAgICAjCiAgICAgIyBQUk9URUNURUQgTUVUSE9EUwogICAgICMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFj
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV9tYWNfdW5pdHRlc3QucHkKaW5kZXggMTIwMTFjNmNkNGZmMjFmN2ExODFmZGIyMGE0
NWM3YzA0MjdkMGI5My4uYjFiYmFjOGQyMzhkY2VjYmJmMzM0ZTZiNTYxOWUzYTBjYzI5ZDU5YiAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9tYWNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3QucHkKQEAgLTY4LDE2ICs2OCw2IEBAIGNs
YXNzIENocm9taXVtTWFjUG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgc2VsZi5hc3NlcnRfbmFtZSwgTm9uZSwg
JzEwLjcuMScsICdjaHJvbWl1bS1tYWMtbGVvcGFyZCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKEFzc2VydGlvbkVycm9yLCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAnMTAuNC4xJywgJ2No
cm9taXVtLW1hYy1sZW9wYXJkJykKIAotICAgIGRlZiB0ZXN0X2dlbmVyaWNfcmViYXNlbGluaW5n
X3BvcnQoc2VsZik6Ci0gICAgICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0
KHJlYmFzZWxpbmluZz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Lm5hbWUo
KSwgJ2Nocm9taXVtLW1hYycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQudmVyc2lv
bigpLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9wYXRoKCks
IHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoKHBvcnQubmFtZSgpKSkKLQotICAgICAgICBwb3J0
ID0gY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9taXVtLW1hYy1s
ZW9wYXJkJywgcmViYXNlbGluaW5nPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBv
cnQubmFtZSgpLCAnY2hyb21pdW0tbWFjLWxlb3BhcmQnKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgocG9y
dC5uYW1lKCkpKQotCiAgICAgZGVmIHRlc3RfYmFzZWxpbmVfcGF0aChzZWxmKToKICAgICAgICAg
cG9ydCA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS1t
YWMtbGVvcGFyZCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0
aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgnY2hyb21pdW0tbWFjLWxlb3BhcmQnKSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV93aW4ucHkKaW5kZXggZDA5MDhkZjJiOTM0Yjk1YmViNGEyOTVlOTczYzFjNGRkY2Q4
NjE4Mi4uODQ0ZGZkZjQwMmUyZWRlNWJmMzE0YjBhODI1OTFjZGFkMmNiNGQ0OCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4u
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV93aW4ucHkKQEAgLTYzLDM0ICs2MywyMSBAQCBjbGFzcyBDaHJvbWl1bVdpblBvcnQoY2hyb21p
dW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgJ3hwJzogWydjaHJvbWl1bS13aW4teHAnLCAnY2hy
b21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVtLXdpbicsICdjaHJvbWl1bScsICd3aW4nLCAnbWFj
J10sCiAgICAgICAgICd2aXN0YSc6IFsnY2hyb21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVtLXdp
bicsICdjaHJvbWl1bScsICd3aW4nLCAnbWFjJ10sCiAgICAgICAgICd3aW43JzogWydjaHJvbWl1
bS13aW4nLCAnY2hyb21pdW0nLCAnd2luJywgJ21hYyddLAotICAgICAgICAnJzogWydjaHJvbWl1
bS13aW4nLCAnY2hyb21pdW0nLCAnd2luJywgJ21hYyddLAogICAgIH0KIAotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgd2luZG93c192ZXJzaW9uPU5vbmUsIHJlYmFzZWxp
bmluZz1GYWxzZSwgKiprd2FyZ3MpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9
Tm9uZSwgd2luZG93c192ZXJzaW9uPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgIyBXZSdyZSBh
IGxpdHRsZSBnZW5lcmljIGhlcmUgYmVjYXVzZSB0aGlzIGNvZGUgaXMgcmV1c2VkIGJ5IHRoZQog
ICAgICAgICAjICdnb29nbGUtY2hyb21lJyBwb3J0IGFzIHdlbGwgYXMgdGhlICdtb2NrLScgYW5k
ICdkcnlydW4tJyBwb3J0cy4KICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICdjaHJv
bWl1bS13aW4nCi0KKyAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYs
IHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogICAgICAgICBpZiBwb3J0X25hbWUuZW5k
c3dpdGgoJy13aW4nKToKLSAgICAgICAgICAgICMgRklYTUU6IFRoZSByZWJhc2VsaW5pbmcgZmxh
ZyBpcyBhbiB1Z2x5IGhhY2sgdGhhdCBsZXRzIHVzIGNyZWF0ZSBhbgotICAgICAgICAgICAgIyAi
Y2hyb21pdW0td2luIiBwb3J0IHRoYXQgaXMgbm90IHZlcnNpb24tc3BlY2lmaWMuIEl0IHNob3Vs
ZCBvbmx5IGJlCi0gICAgICAgICAgICAjIHVzZWQgYnkgcmViYXNlbGluZS1jaHJvbWl1bS13ZWJr
aXQtdGVzdHMgdG8gZXhwbGljaXRseSBwdXQgZmlsZXMgaW50bwotICAgICAgICAgICAgIyB0aGUg
Z2VuZXJpYyBkaXJlY3RvcnkuIEluIHRoZW9yeSB3ZSBzaG91bGRuJ3QgbmVlZCB0aGlzLCBiZWNh
dXNlCi0gICAgICAgICAgICAjIHRoZSBuZXdlc3Qgd2luIHBvcnQgc2hvdWxkIGJlIHVzaW5nICdj
aHJvbWl1bS13aW4nIGFzIHRoZSBiYXNlbGluZQotICAgICAgICAgICAgIyBkaXJlY3RvcnkuIEhv
d2V2ZXIsIHdlIGFsc28gZG9uJ3QgaGF2ZSBzdGFibGUgV2luIDcgYm90cyA6KAotICAgICAgICAg
ICAgIwotICAgICAgICAgICAgIyBXaGVuIHdlIHJlbW92ZSB0aGlzIEZJWE1FLCB3ZSBhbHNvIG5l
ZWQgdG8gcmVtb3ZlICcnIGFzIGEgdmFsaWQKLSAgICAgICAgICAgICMgZmFsbGJhY2sga2V5IGlu
IHNlbGYuRkFMTEJBQ0tfUEFUSFMuCi0gICAgICAgICAgICBpZiByZWJhc2VsaW5pbmc6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9ICcnCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBvc192ZXJzaW9uKHdpbmRvd3NfdmVyc2lvbikKLSAg
ICAgICAgICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgKyAnLScgKyBzZWxmLl92ZXJzaW9u
CisgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gb3NfdmVyc2lvbih3aW5kb3dzX3ZlcnNpb24p
CisgICAgICAgICAgICBzZWxmLl9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2VsZi5fdmVyc2lv
bgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IHBvcnRfbmFtZVtw
b3J0X25hbWUuaW5kZXgoJy13aW4tJykgKyA1Ol0KICAgICAgICAgICAgIGFzc2VydCBzZWxmLl92
ZXJzaW9uIGluIHNlbGYuU1VQUE9SVEVEX1ZFUlNJT05TCiAKLSAgICAgICAgY2hyb21pdW0uQ2hy
b21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQor
ICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ3dpbicKIAogICAgIGRlZiBzZXR1cF9l
bnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZik6CiAgICAgICAgIGVudiA9IGNocm9taXVtLkNocm9taXVt
UG9ydC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZikKQEAgLTEzNywxNyArMTI0LDYgQEAg
Y2xhc3MgQ2hyb21pdW1XaW5Qb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgIHBh
dGggPSBmaWxlbmFtZVtsZW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCkpICsgMTpdCiAgICAgICAg
IHJldHVybiBwYXRoLnJlcGxhY2UoJ1xcJywgJy8nKQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1f
bmFtZShzZWxmKToKLSAgICAgICAgIyBXZSByZXR1cm4gJ3dpbi14cCcsIG5vdCAnY2hyb21pdW0t
d2luLXhwJyBoZXJlLCBmb3IgY29udmVuaWVuY2UuCi0KLSAgICAgICAgIyBGSVhNRTogR2V0IHJp
ZCBvZiB0aGlzIG1ldGhvZCBhZnRlciByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cyBk
aWVzLgotICAgICAgICBpZiBzZWxmLnZlcnNpb24oKSA9PSAnJzoKLSAgICAgICAgICAgIHJldHVy
biAnd2luJwotICAgICAgICByZXR1cm4gJ3dpbi0nICsgc2VsZi52ZXJzaW9uKCkKLQotICAgIGRl
ZiB2ZXJzaW9uKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdmVyc2lvbgotCiAgICAgIwog
ICAgICMgUFJPVEVDVEVEIFJPVVRJTkVTCiAgICAgIwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0
dGVzdC5weQppbmRleCA4ZWE3MDYwYzUzYWI2MDNhZDhjMDI1N2I5Njg0ZTA3NTM5MGI3N2EzLi4z
MTlhYWNkYzQ3MGEzZDYxMTZmNDA0ODFhODI3NDNiOWIwMTMxODQzIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtX3dpbl91bml0dGVzdC5weQpAQCAtMTI3LDE2ICsxMjcsNiBAQCBjbGFzcyBDaHJvbWl1bVdp
blRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhLZXlFcnJvciwgc2VsZi5hc3NlcnRfbmFtZSwgTm9uZSwgKDUsIDIpLCAnY2hyb21pdW0t
d2luLXhwJykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHNlbGYuYXNzZXJ0
X25hbWUsIE5vbmUsICg3LCAxKSwgJ2Nocm9taXVtLXdpbi14cCcpCiAKLSAgICBkZWYgdGVzdF9n
ZW5lcmljX3JlYmFzZWxpbmluZ19wb3J0KHNlbGYpOgotICAgICAgICBwb3J0ID0gY2hyb21pdW1f
d2luLkNocm9taXVtV2luUG9ydChyZWJhc2VsaW5pbmc9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMocG9ydC5uYW1lKCksICdjaHJvbWl1bS13aW4nKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhwb3J0LnZlcnNpb24oKSwgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBv
cnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aChwb3J0Lm5hbWUo
KSkpCi0KLSAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQocG9ydF9u
YW1lPSdjaHJvbWl1bS13aW4teHAnLCByZWJhc2VsaW5pbmc9VHJ1ZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMocG9ydC5uYW1lKCksICdjaHJvbWl1bS13aW4teHAnKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5l
X3BhdGgocG9ydC5uYW1lKCkpKQotCiAgICAgZGVmIHRlc3RfYmFzZWxpbmVfcGF0aChzZWxmKToK
ICAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQocG9ydF9uYW1lPSdj
aHJvbWl1bS13aW4teHAnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5l
X3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2Nocm9taXVtLXdpbi14cCcpKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQppbmRl
eCA0MzE1NTQzMjAzOWI0YWM2OTM3MWRmNzg3MTA3MGM4N2Y3NTJhYjdkLi44YjYyNTk1ZThhMWY5
Yzk3MDM0YTg1ZTY0NDJlNWEwNTMzMjI5YmJmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpAQCAtNzMsMTUgKzczLDE1IEBAIGNsYXNzIE1h
Y1BvcnQoV2ViS2l0UG9ydCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5v
bmUsIG9zX3ZlcnNpb25fc3RyaW5nPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgcG9ydF9uYW1l
ID0gcG9ydF9uYW1lIG9yICdtYWMnCi0KKyAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxm
LCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKICAgICAgICAgaWYgcG9ydF9uYW1lID09
ICdtYWMnOgogICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IG9zX3ZlcnNpb24ob3NfdmVyc2lv
bl9zdHJpbmcpCi0gICAgICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgKyAnLScgKyBzZWxm
Ll92ZXJzaW9uCisgICAgICAgICAgICBzZWxmLl9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2Vs
Zi5fdmVyc2lvbgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IHBv
cnRfbmFtZVs0Ol0KICAgICAgICAgICAgIGFzc2VydCBzZWxmLl92ZXJzaW9uIGluIHNlbGYuU1VQ
UE9SVEVEX1ZFUlNJT05TCiAKLSAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0
X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3Rl
bSA9ICdtYWMnCiAKICAgICBkZWYgZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAg
ICAgICMgRklYTUU6IG5ldy1ydW4td2Via2l0LXRlc3RzIGlzIHVuc3RhYmxlIG9uIE1hYyBydW5u
aW5nIG1vcmUgdGhhbgpAQCAtMTE1LDEyICsxMTUsNiBAQCBjbGFzcyBNYWNQb3J0KFdlYktpdFBv
cnQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NraXBwZWQn
KSkKICAgICAgICAgcmV0dXJuIHNraXBwZWRfZmlsZXMKIAotICAgIGRlZiB0ZXN0X3BsYXRmb3Jt
X25hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnbWFjLScgKyBzZWxmLnZlcnNpb24oKQotCi0g
ICAgZGVmIHZlcnNpb24oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCi0KICAg
ICBkZWYgX2J1aWxkX2phdmFfdGVzdF9zdXBwb3J0KHNlbGYpOgogICAgICAgICBqYXZhX3Rlc3Rz
X3BhdGggPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCksICJq
YXZhIikKICAgICAgICAgYnVpbGRfamF2YSA9IFsiL3Vzci9iaW4vbWFrZSIsICItQyIsIGphdmFf
dGVzdHNfcGF0aF0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvdGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvdGVzdC5weQppbmRleCAwOTdmZWUyNjMyZGMxY2ZhM2FiNzIyZmRmOTk3YzU4NTkxYWVlYzA1
Li5hNWQzY2Q5YzZlYTlmMTAxYzZlY2QzMjU0ZTNkYTRkNDc1ZmIxMzhhIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CkBAIC0yMjAsMjMg
KzIyMCw0MCBAQCBXT05URklYIFNLSVAgOiBmYWlsdXJlcy9leHBlY3RlZC9leGNlcHRpb24uaHRt
bCA9IENSQVNICiAKIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgIiIiVGVzdCBpbXBs
ZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBpbnRlcmZhY2UuIiIiCisgICAgQUxMX0JBU0VMSU5FX1ZB
UklBTlRTID0gKAorICAgICAgICAndGVzdC1tYWMtc25vd2xlb3BhcmQnLCAndGVzdC1tYWMtbGVv
cGFyZCcsCisgICAgICAgICd0ZXN0LXdpbi13aW43JywgJ3Rlc3Qtd2luLXZpc3RhJywgJ3Rlc3Qt
d2luLXhwJywKKyAgICAgICAgJ3Rlc3QtbGludXgnLAorICAgICkKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgdXNlcj1Ob25lLCBmaWxlc3lzdGVtPU5vbmUsICoqa3dh
cmdzKToKLSAgICAgICAgaWYgbm90IGZpbGVzeXN0ZW06Ci0gICAgICAgICAgICBmaWxlc3lzdGVt
ID0gdW5pdF90ZXN0X2ZpbGVzeXN0ZW0oKQorICAgICAgICBpZiBub3QgcG9ydF9uYW1lIG9yIHBv
cnRfbmFtZSA9PSAndGVzdCc6CisgICAgICAgICAgICBwb3J0X25hbWUgPSAndGVzdC1tYWMtbGVv
cGFyZCcKKyAgICAgICAgdXNlciA9IHVzZXIgb3IgbW9ja3Rvb2wuTW9ja1VzZXIoKQorICAgICAg
ICBmaWxlc3lzdGVtID0gZmlsZXN5c3RlbSBvciB1bml0X3Rlc3RfZmlsZXN5c3RlbSgpCisgICAg
ICAgIGJhc2UuUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCBmaWxlc3lz
dGVtPWZpbGVzeXN0ZW0sIHVzZXI9dXNlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKQogCiAgICAgICAgIGFzc2VydCBmaWxlc3lzdGVtLl90ZXN0cwogICAgICAgICBzZWxm
Ll90ZXN0cyA9IGZpbGVzeXN0ZW0uX3Rlc3RzCiAKLSAgICAgICAgaWYgbm90IHVzZXI6Ci0gICAg
ICAgICAgICB1c2VyID0gbW9ja3Rvb2wuTW9ja1VzZXIoKQorICAgICAgICBzZWxmLl9vcGVyYXRp
bmdfc3lzdGVtID0gJ21hYycKKyAgICAgICAgaWYgcG9ydF9uYW1lLnN0YXJ0c3dpdGgoJ3Rlc3Qt
d2luJyk6CisgICAgICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ3dpbicKKyAgICAg
ICAgZWxpZiBwb3J0X25hbWUuc3RhcnRzd2l0aCgndGVzdC1saW51eCcpOgorICAgICAgICAgICAg
c2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICdsaW51eCcKIAotICAgICAgICBpZiBub3QgcG9ydF9u
YW1lIG9yIHBvcnRfbmFtZSA9PSAndGVzdCc6Ci0gICAgICAgICAgICBwb3J0X25hbWUgPSAndGVz
dC1tYWMtbGVvcGFyZCcKKyAgICAgICAgdmVyc2lvbl9tYXAgPSB7CisgICAgICAgICAgICAndGVz
dC13aW4teHAnOiAneHAnLAorICAgICAgICAgICAgJ3Rlc3Qtd2luLXdpbjcnOiAnd2luNycsCisg
ICAgICAgICAgICAndGVzdC13aW4tdmlzdGEnOiAndmlzdGEnLAorICAgICAgICAgICAgJ3Rlc3Qt
bWFjLWxlb3BhcmQnOiAnbGVvcGFyZCcsCisgICAgICAgICAgICAndGVzdC1tYWMtc25vd2xlb3Bh
cmQnOiAnc25vd2xlb3BhcmQnLAorICAgICAgICAgICAgJ3Rlc3QtbGludXgnOiAnJywKKyAgICAg
ICAgfQorICAgICAgICBzZWxmLl92ZXJzaW9uID0gdmVyc2lvbl9tYXBbcG9ydF9uYW1lXQogCiAg
ICAgICAgIHNlbGYuX2V4cGVjdGF0aW9uc19wYXRoID0gTEFZT1VUX1RFU1RfRElSICsgJy9wbGF0
Zm9ybS90ZXN0L3Rlc3RfZXhwZWN0YXRpb25zLnR4dCcKLSAgICAgICAgYmFzZS5Qb3J0Ll9faW5p
dF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSwgdXNl
cj11c2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAKICAgICBkZWYg
X3BhdGhfdG9fZHJpdmVyKHNlbGYpOgogICAgICAgICAjIFRoaXMgcm91dGluZSBzaG91bGRuJ3Qg
bm9ybWFsbHkgYmUgY2FsbGVkLCBidXQgaXQgaXMgY2FsbGVkIGJ5CkBAIC0zMTEsMTkgKzMyOCw4
IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgZGVmIHBhdGhfdG9fdGVzdF9leHBl
Y3RhdGlvbnNfZmlsZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGF0aW9uc19w
YXRoCiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4g
c2VsZi5uYW1lKClbNTpdCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAg
ICAgICAgcmV0dXJuICgnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKLSAgICAgICAg
ICAgICAgICAnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4td2luNycsCi0gICAgICAgICAgICAg
ICAgJ2xpbnV4JykKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0
ZXN0X3BsYXRmb3JtX25hbWUpOgotICAgICAgICBpZiB0ZXN0X3BsYXRmb3JtX25hbWUgaW4gc2Vs
Zi50ZXN0X3BsYXRmb3JtX25hbWVzKCk6Ci0gICAgICAgICAgICByZXR1cm4gJ3Rlc3QtJyArIHRl
c3RfcGxhdGZvcm1fbmFtZQotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdVbnN1cHBvcnRlZCB0
ZXN0X3BsYXRmb3JtX25hbWU6ICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9w
bGF0Zm9ybV9uYW1lKQorICAgIGRlZiBhbGxfYmFzZWxpbmVfdmFyaWFudHMoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLkFMTF9CQVNFTElORV9WQVJJQU5UUwogCiAgICAgIyBGSVhNRTogVGhl
c2UgbmV4dCB0d28gcm91dGluZXMgYXJlIGNvcGllZCBmcm9tIGJhc2UucHkgd2l0aAogICAgICMg
dGhlIGNhbGxzIHRvIHBhdGguYWJzcGF0aF90b191cmkoKSByZW1vdmVkLiBXZSBzaG91bGRuJ3Qg
aGF2ZQpAQCAtMzgzLDIyICszODksNiBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogCiAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vua25vd24gdXJsIHR5cGU6ICVzJyAl
IHVyaSkKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgotICAgICAgICB2ZXJzaW9uX21hcCA9IHsK
LSAgICAgICAgICAgICd0ZXN0LXdpbi14cCc6ICd4cCcsCi0gICAgICAgICAgICAndGVzdC13aW4t
d2luNyc6ICd3aW43JywKLSAgICAgICAgICAgICd0ZXN0LXdpbi12aXN0YSc6ICd2aXN0YScsCi0g
ICAgICAgICAgICAndGVzdC1tYWMtbGVvcGFyZCc6ICdsZW9wYXJkJywKLSAgICAgICAgICAgICd0
ZXN0LW1hYy1zbm93bGVvcGFyZCc6ICdzbm93bGVvcGFyZCcsCi0gICAgICAgICAgICAndGVzdC1s
aW51eCc6ICcnLAotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB2ZXJzaW9uX21hcFtzZWxmLl9u
YW1lXQotCi0gICAgZGVmIHRlc3RfY29uZmlndXJhdGlvbihzZWxmKToKLSAgICAgICAgaWYgbm90
IHNlbGYuX3Rlc3RfY29uZmlndXJhdGlvbjoKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RfY29uZmln
dXJhdGlvbiA9IFRlc3RUZXN0Q29uZmlndXJhdGlvbihzZWxmKQotICAgICAgICByZXR1cm4gc2Vs
Zi5fdGVzdF9jb25maWd1cmF0aW9uCi0KIAogY2xhc3MgVGVzdERyaXZlcihiYXNlLkRyaXZlcik6
CiAgICAgIiIiVGVzdC9EdW1teSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRHVtcFJlbmRlclRyZWUg
aW50ZXJmYWNlLiIiIgpAQCAtNDMyLDEwICs0MjIsMyBAQCBjbGFzcyBUZXN0RHJpdmVyKGJhc2Uu
RHJpdmVyKToKIAogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBwYXNzCi0KLQotY2xhc3Mg
VGVzdFRlc3RDb25maWd1cmF0aW9uKGJhc2UuVGVzdENvbmZpZ3VyYXRpb24pOgotICAgIGRlZiBh
bGxfc3lzdGVtcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgoJ21hYycsICdsZW9wYXJkJywgJ3g4
NicpLAotICAgICAgICAgICAgICAgICgnd2luJywgJ3hwJywgJ3g4NicpLAotICAgICAgICAgICAg
ICAgICgnd2luJywgJ3dpbjcnLCAneDg2JykpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CmluZGV4IDY1YTA0N2Q5ZDVhODNkMjllYWM4
YjBmMzAxYWEyOTIxY2EzOTUxMTcuLjczZjQ1ZGJlZjQzM2VhODBmMTAxMjJjMmEzMzVkNGE3Nzhh
ZDZhNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2Via2l0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2Via2l0LnB5CkBAIC0zMjcsMTIgKzMyNyw2IEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Q
b3J0KToKICAgICAgICAgdGVzdHNfdG9fc2tpcC51cGRhdGUoc2VsZi5fdGVzdHNfZm9yX2Rpc2Fi
bGVkX2ZlYXR1cmVzKCkpCiAgICAgICAgIHJldHVybiB0ZXN0c190b19za2lwCiAKLSAgICBkZWYg
dGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fbmFtZSArIHNl
bGYudmVyc2lvbigpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAg
ICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdtYWMtdGlnZXInLCAnbWFjLWxlb3BhcmQnLCAnbWFj
LXNub3dsZW9wYXJkJykKLQogICAgIGRlZiBfYnVpbGRfcGF0aChzZWxmLCAqY29tcHMpOgogICAg
ICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2NvbmZpZy5idWlsZF9kaXJl
Y3RvcnkoCiAgICAgICAgICAgICBzZWxmLmdldF9vcHRpb24oJ2NvbmZpZ3VyYXRpb24nKSksICpj
b21wcykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4u
cHkKaW5kZXggZTdkMjAwNGJhYjM1ZTdkM2Q4ZGRmMmI4YmUwNjE1YTE2YTk0MDVhMy4uMDNhNzZm
NGIyZGM5M2ZmZjgxZGY0YzkxMWY0MWFhMmU2NzZmZTZkNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKQEAgLTM4LDkgKzM4LDExIEBAIF9s
b2cgPSBsb2dnaW5nLmdldExvZ2dlcigid2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2luIikK
IGNsYXNzIFdpblBvcnQoV2ViS2l0UG9ydCk6CiAgICAgIiIiV2ViS2l0IFdpbiBpbXBsZW1lbnRh
dGlvbiBvZiB0aGUgUG9ydCBjbGFzcy4iIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3
YXJncyk6Ci0gICAgICAgIGt3YXJncy5zZXRkZWZhdWx0KCdwb3J0X25hbWUnLCAnd2luJykKLSAg
ICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCAqKmt3YXJncykKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgcG9ydF9uYW1lID0g
cG9ydF9uYW1lIG9yICd3aW4nCisgICAgICAgIFdlYktpdFBvcnQuX19pbml0X18oc2VsZiwgcG9y
dF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuX3ZlcnNpb24gPSAnd2lu
NycKKyAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICd3aW4nCiAKICAgICBkZWYgYmFz
ZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CiAgICAgICAgICMgQmFzZWQgb24gY29kZSBmcm9tIG9s
ZC1ydW4td2Via2l0LXRlc3RzIGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Jl
YmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5CmluZGV4IGNlOGM3ZDY4YmI5MGRjMTk4
YTA4MDAxZDFlYzllZTU5M2Q2YTE1MjIuLmJhODlmNGI1OTc5OWRhN2RlNDBlM2IxODRiODc1MTIx
OWU4NTk1NGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5
CkBAIC02MSwzNCArNjEsMTYgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQog
CiBCQVNFTElORV9TVUZGSVhFUyA9ICgnLnR4dCcsICcucG5nJywgJy5jaGVja3N1bScpCiAKLSMg
T25seSB0aGUgV2ViS2l0IGNhbmFyaWVzIGhhdmUgYSBmdWxsIGNvbXBsZW1lbnQgb2YgYm90cy4g
VGhlIEdQVQotIyBib3RzIGRvbid0IGhhdmUgdmVyc2lvbi1zcGVjaWZpYyBiYXNlbGluZXMgeWV0
LiBXZSBvbmx5IGhhdmUgdGhlIHRocmVlCi0jIG1haW4gRGVwcyBib3RzLgotCi0jIEJ5IHJ1bm5p
bmcgdGhlIHRlc3QgaW4gdGhpcyBvcmRlciB3ZSBlbnN1cmUgdGhhdCBpZiBhIGxhdGVyIHRlc3Qg
aXMgYQotIyBkdXBsaWNhdGUgb2YgYW55IGVhcmxpZXIgb25lLCB3ZSdsbCBub3RpY2UgaXQgYW5k
IG9ubHkga2VlcCBvbmUgY29weS4KLVJFQkFTRUxJTkVfR1BVX09SREVSID0gWydtYWMnLCAnd2lu
JywgJ2xpbnV4J10KLVJFQkFTRUxJTkVfV0VCS0lUX0NBTkFSWV9PUkRFUiA9IFsnbWFjLXNub3ds
ZW9wYXJkJywgJ21hYy1sZW9wYXJkJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnd2luLXdpbjcnLCAnd2luLXZpc3RhJywgJ3dpbi14cCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2xpbnV4J10KLVJFQkFTRUxJTkVfUExBVEZPUk1fT1JERVIgPSBbJ21h
YycsICd3aW4nLCAnbGludXgnXQotCi1BUkNISVZFX0RJUl9OQU1FX0RJQ1QgPSB7J3dpbic6ICdX
ZWJraXRfV2luX19kZXBzXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi12aXN0YSc6
ICd3ZWJraXQtZGJnLXZpc3RhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXhwJzog
J1dlYmtpdF9XaW5fX2RlcHNfJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbWFjJzogJ1dl
YmtpdF9NYWMxMF81X19kZXBzXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbnV4Jzog
J1dlYmtpdF9MaW51eF9fZGVwc18nLAotCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi13
aW43LWNhbmFyeSc6ICdXZWJraXRfV2luNycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3dp
bi12aXN0YS1jYW5hcnknOiAnV2Via2l0X1Zpc3RhJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAnd2luLXhwLWNhbmFyeSc6ICdXZWJraXRfV2luJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAnbWFjLWxlb3BhcmQtY2FuYXJ5JzogJ1dlYmtpdF9NYWMxMF81JywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAnbWFjLXNub3dsZW9wYXJkLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNicsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbnV4LWNhbmFyeSc6ICdXZWJraXRfTGludXgnLAot
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJ2dwdS1tYWMtY2FuYXJ5JzogJ1dlYmtpdF9NYWMx
MF81Xy1fR1BVJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnZ3B1LXdpbi1jYW5hcnknOiAn
V2Via2l0X1dpbl8tX0dQVScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2dwdS1saW51eC1j
YW5hcnknOiAnV2Via2l0X0xpbnV4Xy1fR1BVJywKK0FSQ0hJVkVfRElSX05BTUVfRElDVCA9IHsK
KyAgICAnY2hyb21pdW0td2luLXdpbjcnOiAnV2Via2l0X1dpbjcnLAorICAgICdjaHJvbWl1bS13
aW4tdmlzdGEnOiAnV2Via2l0X1Zpc3RhJywKKyAgICAnY2hyb21pdW0td2luLXhwJzogJ1dlYmtp
dF9XaW4nLAorICAgICdjaHJvbWl1bS1tYWMtbGVvcGFyZCc6ICdXZWJraXRfTWFjMTBfNScsCisg
ICAgJ2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZCc6ICdXZWJraXRfTWFjMTBfNicsCisgICAgJ2No
cm9taXVtLWxpbnV4JzogJ1dlYmtpdF9MaW51eCcsCisgICAgJ2Nocm9taXVtLWdwdS1tYWMtbGVv
cGFyZCc6ICdXZWJraXRfTWFjMTBfNV8tX0dQVScsCisgICAgJ2Nocm9taXVtLWdwdS13aW4teHAn
OiAnV2Via2l0X1dpbl8tX0dQVScsCisgICAgJ2Nocm9taXVtLWdwdS1saW51eCc6ICdXZWJraXRf
TGludXhfLV9HUFUnLAogfQogCiAKQEAgLTE3OSwxMSArMTYxLDcgQEAgY2xhc3MgUmViYXNlbGlu
ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IHJ1bm5pbmdfcG9ydC5fZmls
ZXN5c3RlbQogICAgICAgICBzZWxmLl90YXJnZXRfcG9ydCA9IHRhcmdldF9wb3J0CiAKLSAgICAg
ICAgIyBGSVhNRTogU2VlIHRoZSBjb21tZW50cyBpbiBjaHJvbWl1bV97d2luLG1hY30ucHkgYWJv
dXQgd2h5IHdlIG5lZWQKLSAgICAgICAgIyB0aGUgJ3JlYmFzZWxpbmluZycga2V5d29yZC4KLSAg
ICAgICAgc2VsZi5fcmViYXNlbGluZV9wb3J0ID0gcG9ydC5nZXQoCi0gICAgICAgICAgICBzZWxm
Ll90YXJnZXRfcG9ydC50ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShwbGF0Zm9ybSksIG9wdGlv
bnMsCi0gICAgICAgICAgICBmaWxlc3lzdGVtPXNlbGYuX2ZpbGVzeXN0ZW0sIHJlYmFzZWxpbmlu
Zz1UcnVlKQorICAgICAgICBzZWxmLl9yZWJhc2VsaW5lX3BvcnQgPSBwb3J0LmdldChwbGF0Zm9y
bSwgb3B0aW9ucywgZmlsZXN5c3RlbT1zZWxmLl9maWxlc3lzdGVtKQogICAgICAgICBzZWxmLl9y
ZWJhc2VsaW5pbmdfdGVzdHMgPSBzZXQoKQogICAgICAgICBzZWxmLl9yZWJhc2VsaW5lZF90ZXN0
cyA9IFtdCiAKQEAgLTE5OCw3ICsxNzYsNyBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgog
ICAgICAgICBzZWxmLl96aXBfZmFjdG9yeSA9IHppcF9mYWN0b3J5CiAgICAgICAgIHNlbGYuX3Nj
bSA9IHNjbQogCi0gICAgZGVmIHJ1bihzZWxmLCBiYWNrdXApOgorICAgIGRlZiBydW4oc2VsZik6
CiAgICAgICAgICIiIlJ1biByZWJhc2VsaW5lIHByb2Nlc3MuIiIiCiAKICAgICAgICAgbG9nX2Rh
c2hlZF9zdHJpbmcoJ0NvbXBpbGluZyByZWJhc2VsaW5pbmcgdGVzdHMnLCBzZWxmLl9wbGF0Zm9y
bSkKQEAgLTIzMyw3ICsyMTEsNyBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogCiAgICAg
ICAgIHJldHVybiBUcnVlCiAKLSAgICBkZWYgcmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzX2Zyb21f
ZXhwZWN0YXRpb25zKHNlbGYsIHRlc3RzLCBiYWNrdXApOgorICAgIGRlZiByZW1vdmVfcmViYXNl
bGluaW5nX2V4cGVjdGF0aW9ucyhzZWxmLCB0ZXN0cywgYmFja3VwKToKICAgICAgICAgIiIiaWYg
YmFja3VwIGlzIFRydWUsIHdlIGJhY2t1cCB0aGUgb3JpZ2luYWwgdGVzdCBleHBlY3RhdGlvbnMg
ZmlsZS4iIiIKICAgICAgICAgbmV3X2V4cGVjdGF0aW9ucyA9IHNlbGYuX3Rlc3RfZXhwZWN0YXRp
b25zLnJlbW92ZV9yZWJhc2VsaW5lZF90ZXN0cyh0ZXN0cykKICAgICAgICAgcGF0aCA9IHNlbGYu
X3RhcmdldF9wb3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZSgpCkBAIC0zMzMsMTMg
KzMxMSw3IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYuX29w
dGlvbnMuZm9yY2VfYXJjaGl2ZV91cmw6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fb3B0aW9u
cy5mb3JjZV9hcmNoaXZlX3VybAogCi0gICAgICAgIHBsYXRmb3JtID0gc2VsZi5fcGxhdGZvcm0K
LSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy53ZWJraXRfY2FuYXJ5OgotICAgICAgICAgICAgcGxh
dGZvcm0gKz0gJy1jYW5hcnknCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZ3B1OgotICAgICAg
ICAgICAgcGxhdGZvcm0gPSAnZ3B1LScgKyBwbGF0Zm9ybQotCi0gICAgICAgIGRpcl9uYW1lID0g
c2VsZi5fZ2V0X2FyY2hpdmVfZGlyX25hbWUocGxhdGZvcm0pCisgICAgICAgIGRpcl9uYW1lID0g
c2VsZi5fZ2V0X2FyY2hpdmVfZGlyX25hbWUoc2VsZi5fcGxhdGZvcm0pCiAgICAgICAgIGlmIG5v
dCBkaXJfbmFtZToKICAgICAgICAgICAgIHJldHVybiBOb25lCiAKQEAgLTM3NSw4ICszNDcsNyBA
QCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICBmb3IgbmFtZSBpbiB6aXBfbmFt
ZWxpc3Q6CiAgICAgICAgICAgICBfbG9nLmRlYnVnKCcgICcgKyBuYW1lKQogCi0gICAgICAgIHBs
YXRmb3JtID0gc2VsZi5fcmViYXNlbGluZV9wb3J0LnRlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1l
KHNlbGYuX3BsYXRmb3JtKQotICAgICAgICBfbG9nLmRlYnVnKCdQbGF0Zm9ybSBkaXI6ICIlcyIn
LCBwbGF0Zm9ybSkKKyAgICAgICAgX2xvZy5kZWJ1ZygnUGxhdGZvcm0gZGlyOiAiJXMiJywgc2Vs
Zi5fcGxhdGZvcm0pCiAKICAgICAgICAgc2VsZi5fcmViYXNlbGluZWRfdGVzdHMgPSBbXQogICAg
ICAgICBmb3IgdGVzdF9ubywgdGVzdCBpbiBlbnVtZXJhdGUoc2VsZi5fcmViYXNlbGluaW5nX3Rl
c3RzKToKQEAgLTc5MSwxMCArNzYyLDYgQEAgZGVmIHBhcnNlX29wdGlvbnMoYXJncyk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J1N1cHByZXNzIHJlc3VsdCBIVE1MIHZpZXdpbmcnKQog
Ci0gICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctZycsICctLWdwdScsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdSZWJhc2VsaW5lIHRoZSBHUFUgdmVyc2lv
bnMnKQotCiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBsYXRmb3Jtcycs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0oJ0NvbW1hIGRlbGltaXRlZCBsaXN0IG9mIHBsYXRmb3Jt
cyAnCkBAIC04MDksMTIgKzc3Niw2IEBAIGRlZiBwYXJzZV9vcHRpb25zKGFyZ3MpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnVXJsIG9mIHJlc3VsdCB6aXAgZmlsZS4gVGhp
cyBvcHRpb24gaXMgZm9yIGRlYnVnZ2luZyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdwdXJwb3NlcycpKQogCi0gICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctdycs
ICctLXdlYmtpdF9jYW5hcnknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249
J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnSWYgVHJ1ZSwgcHVsbCBiYXNl
bGluZXMgZnJvbSB3ZWJraXQub3JnICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2NhbmFyeSBib3QuJykpCi0KICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy1iJywg
Jy0tYmFja3VwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90
cnVlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKQEAgLTgz
MiwyMSArNzkzLDIxIEBAIGRlZiBwYXJzZV9vcHRpb25zKGFyZ3MpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSgnVXNlIEltYWdlRGlmZiBmcm9tIER1bXBSZW5kZXJUcmVlIGlu
c3RlYWQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2YgaW1hZ2VfZGlm
ZiBmb3IgcGl4ZWwgdGVzdHMuJykpCiAKKyAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy13
JywgJy0td2Via2l0X2NhbmFyeScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlv
bj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFs
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdERVBSRUNBVEVELiBUaGlz
IGZsYWcgbm8gbG9uZ2VyIGhhcyBhbnkgZWZmZWN0LicKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJyAgVGhlIGNhbmFyaWVzIGFyZSBhbHdheXMgdXNlZC4nKSkKKwogICAgIG9w
dGlvbl9wYXJzZXIuYWRkX29wdGlvbignJywgJy0tdGFyZ2V0LXBsYXRmb3JtJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nY2hyb21pdW0nLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSgnVGhlIHRhcmdldCBwbGF0Zm9ybSB0byByZWJhc2VsaW5lICcK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygibWFjIiwgImNocm9taXVtIiwg
InF0IiwgZXRjLikuIERlZmF1bHRzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3RvICJjaHJvbWl1bSIuJykpCi0gICAgb3B0aW9ucyA9IG9wdGlvbl9wYXJzZXIucGFyc2Vf
YXJncyhhcmdzKVswXQotICAgIGlmIG9wdGlvbnMuZ3B1OgotICAgICAgICBvcHRpb25zLmFsbF9w
bGF0Zm9ybXMgPSBSRUJBU0VMSU5FX0dQVV9PUkRFUgotICAgIGVsaWYgb3B0aW9ucy53ZWJraXRf
Y2FuYXJ5OgotICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJBU0VMSU5FX1dFQktJ
VF9DQU5BUllfT1JERVIKLSAgICBlbHNlOgotICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMg
PSBSRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSCiAKLSAgICBpZiBvcHRpb25zLnBsYXRmb3JtcyA9
PSBOb25lOgotICAgICAgICBvcHRpb25zLnBsYXRmb3JtcyA9ICcsJy5qb2luKG9wdGlvbnMuYWxs
X3BsYXRmb3JtcykKKyAgICBvcHRpb25zID0gb3B0aW9uX3BhcnNlci5wYXJzZV9hcmdzKGFyZ3Mp
WzBdCisgICAgaWYgb3B0aW9ucy53ZWJraXRfY2FuYXJ5OgorICAgICAgICBwcmludCAiLXcvLS13
ZWJraXQtY2FuYXJ5IGlzIG5vIGxvbmdlciBuZWNlc3NhcnksIGlnbm9yaW5nLiIKIAogICAgIHRh
cmdldF9vcHRpb25zID0gY29weS5jb3B5KG9wdGlvbnMpCiAgICAgaWYgb3B0aW9ucy50YXJnZXRf
cGxhdGZvcm0gPT0gJ2Nocm9taXVtJzoKQEAgLTkwOSwzMCArODcwLDIxIEBAIGRlZiByZWFsX21h
aW4ob3B0aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3RfcG9ydF9vYmosIHRhcmdldF9wb3J0X29i
aiwgdXJsX2ZldGNoCiAgICAgICAgICAgICB0aGUgYXJjaGl2ZXMuCiAgICAgICAgIHNjbV9vYmo6
IG9iamVjdCB1c2VkIHRvIGFkZCBuZXcgYmFzZWxpbmVzIHRvIHRoZSBzb3VyY2UgY29udHJvbCBz
eXN0ZW0uCiAgICAgIiIiCi0gICAgIyBWZXJpZnkgJ3BsYXRmb3Jtcycgb3B0aW9uIGlzIHZhbGlk
LgotICAgIGlmIG5vdCBvcHRpb25zLnBsYXRmb3JtczoKLSAgICAgICAgX2xvZy5lcnJvcignSW52
YWxpZCAicGxhdGZvcm1zIiBvcHRpb24uIC0tcGxhdGZvcm1zIG11c3QgYmUgJwotICAgICAgICAg
ICAgICAgICAgICdzcGVjaWZpZWQgaW4gb3JkZXIgdG8gcmViYXNlbGluZS4nKQotICAgICAgICBy
ZXR1cm4gMQotICAgIHBsYXRmb3JtcyA9IFtwLnN0cmlwKCkubG93ZXIoKSBmb3IgcCBpbiBvcHRp
b25zLnBsYXRmb3Jtcy5zcGxpdCgnLCcpXQotICAgIGZvciBwbGF0Zm9ybSBpbiBwbGF0Zm9ybXM6
Ci0gICAgICAgIGlmIG5vdCBwbGF0Zm9ybSBpbiBvcHRpb25zLmFsbF9wbGF0Zm9ybXM6Ci0gICAg
ICAgICAgICBfbG9nLmVycm9yKCdJbnZhbGlkIHBsYXRmb3JtOiAiJXMiJyAlIChwbGF0Zm9ybSkp
Ci0gICAgICAgICAgICByZXR1cm4gMQotCi0gICAgIyBBZGp1c3QgdGhlIHBsYXRmb3JtIG9yZGVy
IHNvIHJlYmFzZWxpbmUgdG9vbCBpcyBydW5uaW5nIGF0IHRoZSBvcmRlciBvZgotICAgICMgJ21h
YycsICd3aW4nIGFuZCAnbGludXgnLiBUaGlzIGlzIGluIHNhbWUgb3JkZXIgd2l0aCBsYXlvdXQg
dGVzdCBiYXNlbGluZQotICAgICMgc2VhcmNoIHBhdGhzLiBJdCBzaW1wbGlmaWVzIGhvdyB0aGUg
cmViYXNlbGluZSB0b29sIGRldGVjdHMgZHVwbGljYXRlCi0gICAgIyBiYXNlbGluZXMuIENoZWNr
IF9Jc0R1cEJhc2VsaW5lIG1ldGhvZCBmb3IgZGV0YWlscy4KLSAgICByZWJhc2VsaW5lX3BsYXRm
b3JtcyA9IFtdCi0gICAgZm9yIHBsYXRmb3JtIGluIG9wdGlvbnMuYWxsX3BsYXRmb3JtczoKLSAg
ICAgICAgaWYgcGxhdGZvcm0gaW4gcGxhdGZvcm1zOgotICAgICAgICAgICAgcmViYXNlbGluZV9w
bGF0Zm9ybXMuYXBwZW5kKHBsYXRmb3JtKQotCiAgICAgb3B0aW9ucy5odG1sX2RpcmVjdG9yeSA9
IHNldHVwX2h0bWxfZGlyZWN0b3J5KGhvc3RfcG9ydF9vYmouX2ZpbGVzeXN0ZW0sIG9wdGlvbnMu
aHRtbF9kaXJlY3RvcnkpCisgICAgYWxsX3BsYXRmb3JtcyA9IHRhcmdldF9wb3J0X29iai5hbGxf
YmFzZWxpbmVfdmFyaWFudHMoKQorICAgIGlmIG9wdGlvbnMucGxhdGZvcm1zOgorICAgICAgICBi
YWlsID0gRmFsc2UKKyAgICAgICAgZm9yIHBsYXRmb3JtIGluIG9wdGlvbnMucGxhdGZvcm1zOgor
ICAgICAgICAgICAgaWYgbm90IHBsYXRmb3JtIGluIGFsbF9wbGF0Zm9ybXM6CisgICAgICAgICAg
ICAgICAgX2xvZy5lcnJvcignSW52YWxpZCBwbGF0Zm9ybTogIiVzIicgJSAocGxhdGZvcm0pKQor
ICAgICAgICAgICAgICAgIGJhaWwgPSBUcnVlCisgICAgICAgIGlmIGJhaWw6CisgICAgICAgICAg
ICByZXR1cm4gMQorICAgICAgICByZWJhc2VsaW5lX3BsYXRmb3JtcyA9IG9wdGlvbnMucGxhdGZv
cm1zCisgICAgZWxzZToKKyAgICAgICAgcmViYXNlbGluZV9wbGF0Zm9ybXMgPSBhbGxfcGxhdGZv
cm1zCiAKICAgICByZWJhc2VsaW5lZF90ZXN0cyA9IHNldCgpCi0gICAgYmFja3VwID0gb3B0aW9u
cy5iYWNrdXAKICAgICBmb3IgcGxhdGZvcm0gaW4gcmViYXNlbGluZV9wbGF0Zm9ybXM6CiAgICAg
ICAgIHJlYmFzZWxpbmVyID0gUmViYXNlbGluZXIoaG9zdF9wb3J0X29iaiwgdGFyZ2V0X3BvcnRf
b2JqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtLCBvcHRpb25z
LCB1cmxfZmV0Y2hlciwgemlwX2ZhY3RvcnksCkBAIC05NDAsMTcgKzg5MiwxNiBAQCBkZWYgcmVh
bF9tYWluKG9wdGlvbnMsIHRhcmdldF9vcHRpb25zLCBob3N0X3BvcnRfb2JqLCB0YXJnZXRfcG9y
dF9vYmosIHVybF9mZXRjaAogCiAgICAgICAgIF9sb2cuaW5mbygnJykKICAgICAgICAgbG9nX2Rh
c2hlZF9zdHJpbmcoJ1JlYmFzZWxpbmUgc3RhcnRlZCcsIHBsYXRmb3JtKQotICAgICAgICBpZiBy
ZWJhc2VsaW5lci5ydW4oYmFja3VwKToKKyAgICAgICAgaWYgcmViYXNlbGluZXIucnVuKCk6CiAg
ICAgICAgICAgICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNlbGluZSBkb25lJywgcGxhdGZvcm0p
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNlbGlu
ZSBmYWlsZWQnLCBwbGF0Zm9ybSwgbG9nZ2luZy5FUlJPUikKIAogICAgICAgICByZWJhc2VsaW5l
ZF90ZXN0cyB8PSBzZXQocmViYXNlbGluZXIuZ2V0X3JlYmFzZWxpbmVkX3Rlc3RzKCkpCiAKLSAg
ICAjIEZJWE1FOiBuZWVkIHRvIHJlZW5hYmxlIHRoaXMgYWZ0ZXIgd2UgYXJlIGNvcnJlY3RseSBy
dW5uaW5nIGFsbAotICAgICMgY29uZmlndXJhdGlvbnMuCi0gICAgI2lmIHJlYmFzZWxpbmVkX3Rl
c3RzOgotICAgICMgICAgcmViYXNlbGluZXIucmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzX2Zyb21f
ZXhwZWN0YXRpb25zKHJlYmFzZWxpbmVkX3Rlc3RzLCBiYWNrdXApCisgICAgaWYgcmViYXNlbGlu
ZWRfdGVzdHM6CisgICAgICAgIHJlYmFzZWxpbmVyLnJlbW92ZV9yZWJhc2VsaW5pbmdfZXhwZWN0
YXRpb25zKHJlYmFzZWxpbmVkX3Rlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmJhY2t1cCkKIAogICAgIF9sb2cuaW5mbygn
JykKICAgICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNlbGluaW5nIHJlc3VsdCBjb21wYXJpc29u
IHN0YXJ0ZWQnLCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dl
YmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCAwM2E1ZDFiZjA1YzZkODlkY2EwNzU2ZGEwMjgz
MGUyZWFjNzAxMWFmLi44NGU2MTc3ODVjMjNkZmM3NjJhOWUyZjk0ZWYyNDRhZTZjYWUxNDEwIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5l
X2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0
dGVzdC5weQpAQCAtNjUsMTQgKzY1LDkgQEAgZGVmIHRlc3Rfb3B0aW9ucygpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBodG1sX2RpcmVjdG9yeT0nL3RtcCcsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFyY2hpdmVfdXJsPUFSQ0hJVkVfVVJMLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb3JjZV9hcmNoaXZlX3VybD1Ob25lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfY2FuYXJ5PVRydWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVzZV9kcnQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhcmdldF9wbGF0Zm9ybT0nY2hyb21pdW0nLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZXJib3NlPUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBxdWlldD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsX3Bs
YXRmb3Jtcz1yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5SRUJBU0VMSU5FX1dFQktJ
VF9DQU5BUllfT1JERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3Jt
cz1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncHU9RmFsc2UpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3Jtcz1Ob25lKQogCiAKIGRlZiB0ZXN0
X2hvc3RfcG9ydF9hbmRfZmlsZXN5c3RlbShvcHRpb25zLCBleHBlY3RhdGlvbnMpOgpAQCAtMTMz
LDYgKzEyOCwxNCBAQCBkZWYgdGVzdF96aXBfZmFjdG9yeSgpOgogICAgIHJldHVybiB6aXBmaWxl
c2V0X21vY2subWFrZV9mYWN0b3J5KHppcGhhc2hlcykKIAogCitkZWYgdGVzdF9hcmNoaXZlKG9y
aWdfYXJjaGl2ZV9kaWN0KToKKyAgICBuZXdfYXJjaGl2ZV9kaWN0ID0ge30KKyAgICBmb3IgcGxh
dGZvcm0sIGRpcm5hbWUgaW4gb3JpZ19hcmNoaXZlX2RpY3QuaXRlcml0ZW1zKCk6CisgICAgICAg
IHBsYXRmb3JtID0gcGxhdGZvcm0ucmVwbGFjZSgnY2hyb21pdW0nLCAndGVzdCcpCisgICAgICAg
IG5ld19hcmNoaXZlX2RpY3RbcGxhdGZvcm1dID0gZGlybmFtZQorICAgIHJldHVybiBuZXdfYXJj
aGl2ZV9kaWN0CisKKwogY2xhc3MgVGVzdEdldEhvc3RQb3J0T2JqZWN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICBkZWYgYXNzZXJ0X3Jlc3VsdChzZWxmLCByZWxlYXNlX3ByZXNlbnQsIGRlYnVn
X3ByZXNlbnQsIHZhbGlkX3BvcnRfb2JqKToKICAgICAgICAgIyBUZXN0cyB3aGV0aGVyIHdlIGdl
dCBhIHZhbGlkIHBvcnQgb2JqZWN0IHJldHVybmVkIHdoZW4gd2UgY2xhaW0KQEAgLTE3NSw2ICsx
NzgsMTQgQEAgY2xhc3MgVGVzdE9wdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogCiAKIGNsYXNz
IFRlc3RSZWJhc2VsaW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYp
OgorICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAnX29yaWdfYXJjaGl2ZScpOgorICAgICAg
ICAgICAgc2VsZi5fb3JpZ19hcmNoaXZlID0gcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVz
dHMuQVJDSElWRV9ESVJfTkFNRV9ESUNUCisgICAgICAgICAgICByZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5BUkNISVZFX0RJUl9OQU1FX0RJQ1QgPSB0ZXN0X2FyY2hpdmUoc2VsZi5f
b3JpZ19hcmNoaXZlKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICByZWJhc2Vs
aW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5BUkNISVZFX0RJUl9OQU1FX0RJQ1QgPSBzZWxmLl9v
cmlnX2FyY2hpdmUKKwogICAgIGRlZiBtYWtlX3JlYmFzZWxpbmVyKHNlbGYsIGV4cGVjdGF0aW9u
cyk6CiAgICAgICAgIG9wdGlvbnMgPSB0ZXN0X29wdGlvbnMoKQogICAgICAgICBob3N0X3BvcnRf
b2JqLCBmaWxlc3lzdGVtID0gdGVzdF9ob3N0X3BvcnRfYW5kX2ZpbGVzeXN0ZW0ob3B0aW9ucywg
ZXhwZWN0YXRpb25zKQpAQCAtMTgzLDcgKzE5NCw3IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRhcmdldF9wb3J0X29iaiA9IHBvcnQuZ2V0KCd0
ZXN0JywgdGFyZ2V0X29wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSkKICAgICAgICAgdGFyZ2V0X3BvcnRfb2JqLl9leHBlY3Rh
dGlvbnMgPSBleHBlY3RhdGlvbnMKLSAgICAgICAgcGxhdGZvcm0gPSB0YXJnZXRfcG9ydF9vYmou
dGVzdF9wbGF0Zm9ybV9uYW1lKCkKKyAgICAgICAgcGxhdGZvcm0gPSB0YXJnZXRfcG9ydF9vYmou
bmFtZSgpCiAKICAgICAgICAgdXJsX2ZldGNoZXIgPSB0ZXN0X3VybF9mZXRjaGVyKGZpbGVzeXN0
ZW0pCiAgICAgICAgIHppcF9mYWN0b3J5ID0gdGVzdF96aXBfZmFjdG9yeSgpCkBAIC0xOTYsNyAr
MjA3LDcgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgIyB0aGlzIG1ldGhvZCB0ZXN0cyB0aGF0IHdhcyBjYW4gYXQgbGVhc3QgaW5zdGFudGlhdGUg
YW4gb2JqZWN0LCBldmVuCiAgICAgICAgICMgaWYgdGhlcmUgaXMgbm90aGluZyB0byBkby4KICAg
ICAgICAgcmViYXNlbGluZXIsIGZpbGVzeXN0ZW0gPSBzZWxmLm1ha2VfcmViYXNlbGluZXIoIiIp
Ci0gICAgICAgIHJlYmFzZWxpbmVyLnJ1bihGYWxzZSkKKyAgICAgICAgcmViYXNlbGluZXIucnVu
KCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVz
KSwgMSkKIAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmluZ190ZXN0cyhzZWxmKToKQEAgLTIxNiw3
ICsyMjcsNyBAQCBjbGFzcyBUZXN0UmViYXNlbGluZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
IGRlZiB0ZXN0X29uZV9wbGF0Zm9ybShzZWxmKToKICAgICAgICAgcmViYXNlbGluZXIsIGZpbGVz
eXN0ZW0gPSBzZWxmLm1ha2VfcmViYXNlbGluZXIoCiAgICAgICAgICAgICAiQlVHWCBSRUJBU0VM
SU5FIE1BQyA6IGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBJTUFHRSIpCi0gICAgICAg
IHJlYmFzZWxpbmVyLnJ1bihGYWxzZSkKKyAgICAgICAgcmViYXNlbGluZXIucnVuKCkKICAgICAg
ICAgIyBXZSBleHBlY3QgdG8gaGF2ZSB3cml0dGVuIDEyIGZpbGVzIG92ZXIgdGhlIGNvdXJzZSBv
ZiB0aGlzIHJlYmFzZWxpbmU6CiAgICAgICAgICMgKikgMyBmaWxlcyBpbiAvX19pbV90bXAgZm9y
IHRoZSBleHRyYWN0ZWQgYXJjaGl2ZSBtZW1iZXJzCiAgICAgICAgICMgKikgMyBuZXcgYmFzZWxp
bmVzIHVuZGVyICcvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cycKQEAgLTIzMyw3ICsyNDQsNyBA
QCBjbGFzcyBUZXN0UmViYXNlbGluZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0
X2FsbF9wbGF0Zm9ybXMoc2VsZik6CiAgICAgICAgIHJlYmFzZWxpbmVyLCBmaWxlc3lzdGVtID0g
c2VsZi5tYWtlX3JlYmFzZWxpbmVyKAogICAgICAgICAgICAgIkJVR1ggUkVCQVNFTElORSA6IGZh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBJTUFHRSIpCi0gICAgICAgIHJlYmFzZWxpbmVy
LnJ1bihGYWxzZSkKKyAgICAgICAgcmViYXNlbGluZXIucnVuKCkKICAgICAgICAgIyBTZWUgY29t
bWVudCBpbiB0ZXN0X29uZV9wbGF0Zm9ybSBmb3IgYW4gZXhwbGFuYXRpb24gb2YgdGhlIDEyIHdy
aXR0ZW4gdGVzdHMuCiAgICAgICAgICMgTm90ZSB0aGF0IGV2ZW4gdGhvdWdoIHRoZSByZWJhc2Vs
aW5lIGlzIG1hcmtlZCBmb3IgYWxsIHBsYXRmb3JtcywgZWFjaAogICAgICAgICAjIHJlYmFzZWxp
bmVyIG9ubHkgZXZlciBkb2VzIG9uZS4KQEAgLTI2MCwxMiArMjcxLDE4IEBAIGNsYXNzIFRlc3RS
ZWJhc2VsaW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAKIAogY2xhc3MgVGVzdFJlYWxNYWluKHVu
aXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIGlmIG5vdCBo
YXNhdHRyKHNlbGYsICdfb3JpZ19hcmNoaXZlJyk6CisgICAgICAgICAgICBzZWxmLl9vcmlnX2Fy
Y2hpdmUgPSByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5BUkNISVZFX0RJUl9OQU1F
X0RJQ1QKKyAgICAgICAgICAgIHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLkFSQ0hJ
VkVfRElSX05BTUVfRElDVCA9IHRlc3RfYXJjaGl2ZShzZWxmLl9vcmlnX2FyY2hpdmUpCisKKyAg
ICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0
X3Rlc3RzLkFSQ0hJVkVfRElSX05BTUVfRElDVCA9IHNlbGYuX29yaWdfYXJjaGl2ZQorCiAgICAg
ZGVmIHRlc3RfYWxsX3BsYXRmb3JtcyhzZWxmKToKICAgICAgICAgZXhwZWN0YXRpb25zID0gIkJV
R1ggUkVCQVNFTElORSA6IGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBJTUFHRSIKIAog
ICAgICAgICBvcHRpb25zID0gdGVzdF9vcHRpb25zKCkKLSAgICAgICAgb3B0aW9ucy5wbGF0Zm9y
bXMgPSAnLCcuam9pbihvcHRpb25zLmFsbF9wbGF0Zm9ybXMpCi0KICAgICAgICAgaG9zdF9wb3J0
X29iaiwgZmlsZXN5c3RlbSA9IHRlc3RfaG9zdF9wb3J0X2FuZF9maWxlc3lzdGVtKG9wdGlvbnMs
IGV4cGVjdGF0aW9ucykKICAgICAgICAgdXJsX2ZldGNoZXIgPSB0ZXN0X3VybF9mZXRjaGVyKGZp
bGVzeXN0ZW0pCiAgICAgICAgIHppcF9mYWN0b3J5ID0gdGVzdF96aXBfZmFjdG9yeSgpCkBAIC0y
OTIsNyArMzA5LDcgQEAgY2xhc3MgVGVzdEh0bWxHZW5lcmF0b3IodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBvcHRpb25zID0gbW9ja3Rvb2wuTW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj1O
b25lLCBodG1sX2RpcmVjdG9yeT0nL3RtcCcpCiAgICAgICAgIGhvc3RfcG9ydCA9IHBvcnQuZ2V0
KCd0ZXN0Jywgb3B0aW9ucywgZmlsZXN5c3RlbT1wb3J0LnVuaXRfdGVzdF9maWxlc3lzdGVtKGZp
bGVzKSkKICAgICAgICAgZ2VuZXJhdG9yID0gcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVz
dHMuSHRtbEdlbmVyYXRvcihob3N0X3BvcnQsCi0gICAgICAgICAgICB0YXJnZXRfcG9ydD1Ob25l
LCBvcHRpb25zPW9wdGlvbnMsIHBsYXRmb3Jtcz1bJ21hYyddLCByZWJhc2VsaW5pbmdfdGVzdHM9
dGVzdHMpCisgICAgICAgICAgICB0YXJnZXRfcG9ydD1Ob25lLCBvcHRpb25zPW9wdGlvbnMsIHBs
YXRmb3Jtcz1bJ3Rlc3QtbWFjLWxlb3BhcmQnXSwgcmViYXNlbGluaW5nX3Rlc3RzPXRlc3RzKQog
ICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLCBob3N0X3BvcnQKIAogICAgIGRlZiB0ZXN0X2dlbmVy
YXRlX2Jhc2VsaW5lX2xpbmtzKHNlbGYpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87893</attachid>
            <date>2011-04-01 12:06:37 -0700</date>
            <delta_ts>2011-04-01 12:19:31 -0700</delta_ts>
            <desc>more feedback</desc>
            <filename>bug-55191-20110401120636.patch</filename>
            <type>text/plain</type>
            <size>53474</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI1MjkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MzJhYmI0NDJiZTdlMjlkMWYyMDgzMWMyYzE3MjczNjYy
ZTZmMTUzLi4yMDg3ZmVlNzdiOWI5ZjQ3MGZlMzkzNDQ4OWEyYmViYWRiNzMwZDVjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTEtMDMtMzEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBj
b21wbGV0ZXMgdGhlIGNsZWFudXAgb2YKKyAgICAgICAgcmViYXNlbGluZS1jaHJvbWl1bS13ZWJr
aXQtdGVzdHMgdG8gd29yayB3aXRoIGFsbCBvZiB0aGUKKyAgICAgICAgdmFyaWFudHMgb2YgYSBw
bGF0Zm9ybSAod2UgY2FuIG5vdyByZWJhc2VsaW5lIGdwdS0gYW5kIG5vbi1ncHUKKyAgICAgICAg
ZmlsZXMgYXQgdGhlIHNhbWUgdGltZSkuCisKKyAgICAgICAgV2hlbiB0aGUgcmViYXNlbGluaW5n
IGlzIGNvbXBsZXRlLCBhbnkgbGluZXMgZGVjbGFyZWQgYXMKKyAgICAgICAgUkVCQVNFTElORSBp
biB0aGUgZXhwZWN0YXRpb25zIGZpbGUgdGhhdCBtYXRjaGVzIGEgdGVzdCB0aGF0IHdhcworICAg
ICAgICBhY3R1YWxseSByZWJhc2VsaW5lZCB3aWxsIGJlIGRlbGV0ZWQsIGV2ZW4gaWYgb25seSBv
bmUgb2YgdGhlCisgICAgICAgIHZhcmlhbnRzIHdhcyBhY3R1YWxseSByZWJhc2VsaW5lZC4gVGhp
cyBtYXkgY2F1c2Ugb2RkIHByb2JsZW1zLAorICAgICAgICBidXQgaXMgYmV0dGVyIHRoYW4gd2hl
cmUgd2UncmUgYXQgdG9kYXkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVtb3ZlcyB0aGUgLWcg
ZmxhZyBhbmQgZGVwcmVjYXRlcyAtdy4gVGhlIC1nIGZsYWcgaXMgZ29uZQorICAgICAgICBiZWNh
dXNlIEdQVSBiYXNlbGluZXMgYXJlIGhhbmRsZWQganVzdCBsaWtlIGFueSBvdGhlciB2YXJpYW50
LgorICAgICAgICBUaGUgLXcgZmxhZyBpcyBkZXByZWNhdGVkIGJlY2F1c2UgdGhpcyB0b29sIG5v
dyBvbmx5IHdvcmtzCisgICAgICAgIGFnYWluc3QgdGhlIGNhbmFyaWVzLCBzaW5jZSB0aGF0J3Mg
dGhlIG9ubHkgcGxhY2Ugd2UgaGF2ZSBhIGZ1bGwKKyAgICAgICAgc2V0IG9mIGJvdHMuIEl0IHdp
bGwgYmUgdHJpdmlhbCB0byBjaGFuZ2UgdGhpcyB0bworICAgICAgICBidWlsZC53ZWJraXQub3Jn
IGlmIHdlIGRlY2lkZSB0aGF0J3Mgd2hlcmUgd2Ugd2FudCB0aGVtIHRvIGJlLgorCisgICAgICAg
IEFsc28sIHRoaXMgcGF0Y2ggZGVsZXRlcyBhIGxvdCBvZiBjcnVmdCB0aGF0IGlzIG5vIGxvbmdl
ciBuZWVkZWQKKyAgICAgICAgaW4gdGhlIHRlc3RfZXhwZWN0YXRpb25zIGNvZGUgYW5kIHRoZSBw
b3J0LXNwZWNpZmljIGNvZGUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU1MTkxCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9u
c191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Jhc2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9iYXNlX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW0ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dp
bi5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtX3dpbl91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3Rlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93aW4ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRl
c3QucHk6CisKIDIwMTEtMDMtMjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVj
dGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IDdkMmM5MWJiNjgyNzkwMTBhNTI0OWUx
NDkwOTRlYjY4MzY4Yjc1ZDAuLmFkNTBhZGVhY2Q5YjgwNzI4MzA4ZDFjNTA4OWE0YzhkZTI1MDJl
NjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC0x
NjYsNiArMTY2LDkgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uczoKICAgICBkZWYgaGFzX21vZGlm
aWVyKHNlbGYsIHRlc3QsIG1vZGlmaWVyKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVk
X2ZhaWx1cmVzLmhhc19tb2RpZmllcih0ZXN0LCBtb2RpZmllcikKIAorICAgIGRlZiByZW1vdmVf
cmViYXNlbGluZWRfdGVzdHMoc2VsZiwgdGVzdHMpOgorICAgICAgICByZXR1cm4gc2VsZi5fZXhw
ZWN0ZWRfZmFpbHVyZXMucmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzKHRlc3RzKQorCiAKIGRlZiBz
dHJpcF9jb21tZW50cyhsaW5lKToKICAgICAiIiJTdHJpcHMgY29tbWVudHMgZnJvbSBhIGxpbmUg
YW5kIHJldHVybiBOb25lIGlmIHRoZSBsaW5lIGlzIGVtcHR5CkBAIC00MzIsNiArNDM1LDE1IEBA
IGNsYXNzIFRlc3RFeHBlY3RhdGlvbnNGaWxlOgogICAgIGRlZiBnZXRfbm9uX2ZhdGFsX2Vycm9y
cyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX25vbl9mYXRhbF9lcnJvcnMKIAorICAgIGRl
ZiByZW1vdmVfcmViYXNlbGluZWRfdGVzdHMoc2VsZiwgdGVzdHMpOgorICAgICAgICAiIiJSZXR1
cm5zIGEgY29weSBvZiB0aGUgZXhwZWN0YXRpb25zIHdpdGggdGhlIHRlc3RzIHJlbW92ZWQuIiIi
CisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgZm9yIChsaW5lbm8sIGxpbmUpIGluIGVudW1l
cmF0ZShzZWxmLl9nZXRfaXRlcmFibGVfZXhwZWN0YXRpb25zKHNlbGYuX2V4cGVjdGF0aW9ucykp
OgorICAgICAgICAgICAgdGVzdCwgb3B0aW9ucywgXyA9IHNlbGYucGFyc2VfZXhwZWN0YXRpb25z
X2xpbmUobGluZSwgbGluZW5vKQorICAgICAgICAgICAgaWYgbm90ICh0ZXN0IGFuZCB0ZXN0IGlu
IHRlc3RzIGFuZCAncmViYXNlbGluZScgaW4gb3B0aW9ucyk6CisgICAgICAgICAgICAgICAgbGlu
ZXMuYXBwZW5kKGxpbmUpCisgICAgICAgIHJldHVybiAnJy5qb2luKGxpbmVzKQorCiAgICAgZGVm
IHBhcnNlX2V4cGVjdGF0aW9uc19saW5lKHNlbGYsIGxpbmUsIGxpbmVubyk6CiAgICAgICAgICIi
IlBhcnNlcyBhIGxpbmUgZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucy50eHQgYW5kIHJldHVybnMgYSB0
dXBsZQogICAgICAgICB3aXRoIHRoZSB0ZXN0IHBhdGgsIG9wdGlvbnMgYXMgYSBsaXN0LCBleHBl
Y3RhdGlvbnMgYXMgYSBsaXN0LiIiIgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90
ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRleCBkZjM2NGEwZWY4OWM1YzQxMDc3OGM1
YzdlMjZmZjcxYTk2NjU3Y2JmLi4wODMzMDc5M2IxN2Y3NzBkZmU3MmUyOWRiODczYTVmZGI3YzQ0
YzZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlv
dXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9u
c191bml0dGVzdC5weQpAQCAtMzc3LDcgKzM3NywxOSBAQCBCVUdfVEVTVCBXSU4tWFAgOiBwYXNz
ZXMvdGV4dC5odG1sID0gVEVYVAogCiBjbGFzcyBSZWJhc2VsaW5pbmdUZXN0KEJhc2UpOgogICAg
ICIiIlRlc3QgcmViYXNlbGluaW5nLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHkuIiIiCi0gICAgIyBG
SVhNRTogYWRkIGluIHRlc3RzIG9uY2Ugd2UgYXJlIGFjdHVhbGx5IGRlbGV0aW5nIGxpbmVzIGFn
YWluLgorICAgIGRlZiBhc3NlcnRSZW1vdmUoc2VsZiwgaW5wdXRfZXhwZWN0YXRpb25zLCB0ZXN0
cywgZXhwZWN0ZWRfZXhwZWN0YXRpb25zKToKKyAgICAgICAgc2VsZi5wYXJzZV9leHAoaW5wdXRf
ZXhwZWN0YXRpb25zKQorICAgICAgICBhY3R1YWxfZXhwZWN0YXRpb25zID0gc2VsZi5fZXhwLnJl
bW92ZV9yZWJhc2VsaW5lZF90ZXN0cyh0ZXN0cykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RlZF9leHBlY3RhdGlvbnMsIGFjdHVhbF9leHBlY3RhdGlvbnMpCisKKyAgICBkZWYgdGVz
dF9yZW1vdmUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmVtb3ZlKCdCVUdYIFJFQkFTRUxJ
TkUgOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdF
XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdaIFJFQkFTRUxJTkUgOiBmYWlsdXJl
cy9leHBlY3RlZC9jcmFzaC5odG1sID0gQ1JBU0hcbicsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJ10sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4nCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdaIFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9leHBl
Y3RlZC9jcmFzaC5odG1sID0gQ1JBU0hcbicpCisKICAgICBkZWYgdGVzdF9ub19nZXRfcmViYXNl
bGluaW5nX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9i
YXNpY19leHBlY3RhdGlvbnMoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5f
ZXhwLmdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoKSksIDApCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggZGVhMTI2Zjg1YjU3YzA3
Y2ZlMjk0NDBlM2EwODE2ZDZiOWU5ZjBhOS4uYTMzODAwNmUyOWE3ZGQzNGQ1ZjhmZGRmMWVlZmI3
MGQyZjdiOGI3MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZS5weQpAQCAtOTAsMTggKzkwLDI0IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAg
ICAgICAgICAgICAgICAgY29uZmlnPU5vbmUsCiAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToK
ICAgICAgICAgc2VsZi5fbmFtZSA9IHBvcnRfbmFtZQorCisgICAgICAgICMgVGhlc2UgYXJlIGRl
ZmF1bHQgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIG92ZXJyaWRkZW4gaW4gYSBzdWJjbGFzc2VzLgor
ICAgICAgICAjIEZJWE1FOiBUaGVzZSBzaG91bGQgcmVhbGx5IGJlIHBhc3NlZCBpbi4KKyAgICAg
ICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICdtYWMnCisgICAgICAgIHNlbGYuX3ZlcnNpb24g
PSAnJwogICAgICAgICBzZWxmLl9hcmNoaXRlY3R1cmUgPSAneDg2JwotICAgICAgICBzZWxmLl9v
cHRpb25zID0gb3B0aW9ucwotICAgICAgICBpZiBzZWxmLl9vcHRpb25zIGlzIE5vbmU6Ci0gICAg
ICAgICAgICAjIEZJWE1FOiBJZGVhbGx5IHdlJ2QgaGF2ZSBhIHBhY2thZ2Utd2lkZSB3YXkgdG8g
Z2V0IGEKLSAgICAgICAgICAgICMgd2VsbC1mb3JtZWQgb3B0aW9ucyBvYmplY3QgdGhhdCBoYWQg
YWxsIG9mIHRoZSBuZWNlc3NhcnkKLSAgICAgICAgICAgICMgb3B0aW9ucyBkZWZpbmVkIG9uIGl0
LgotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IER1bW15T3B0aW9ucygpCisgICAgICAgIHNl
bGYuX2dyYXBoaWNzX3R5cGUgPSAnY3B1JworCisgICAgICAgICMgRklYTUU6IElkZWFsbHkgd2Un
ZCBoYXZlIGEgcGFja2FnZS13aWRlIHdheSB0byBnZXQgYQorICAgICAgICAjIHdlbGwtZm9ybWVk
IG9wdGlvbnMgb2JqZWN0IHRoYXQgaGFkIGFsbCBvZiB0aGUgbmVjZXNzYXJ5CisgICAgICAgICMg
b3B0aW9ucyBkZWZpbmVkIG9uIGl0LgorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucyBv
ciBEdW1teU9wdGlvbnMoKQorCiAgICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZSBv
ciBFeGVjdXRpdmUoKQogICAgICAgICBzZWxmLl91c2VyID0gdXNlciBvciBVc2VyKCkKICAgICAg
ICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3Igc3lzdGVtLmZpbGVzeXN0ZW0uRmls
ZVN5c3RlbSgpCi0gICAgICAgIHNlbGYuX2NvbmZpZyA9IGNvbmZpZyBvciBwb3J0X2NvbmZpZy5D
b25maWcoc2VsZi5fZXhlY3V0aXZlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0pCisgICAgICAgIHNlbGYuX2NvbmZp
ZyA9IGNvbmZpZyBvciBwb3J0X2NvbmZpZy5Db25maWcoc2VsZi5fZXhlY3V0aXZlLCBzZWxmLl9m
aWxlc3lzdGVtKQorCiAgICAgICAgIHNlbGYuX2hlbHBlciA9IE5vbmUKICAgICAgICAgc2VsZi5f
aHR0cF9zZXJ2ZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX3dlYmtpdF9iYXNlX2RpciA9IE5vbmUK
QEAgLTQ4MSwxNiArNDg3LDI3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgc2VsZi5f
ZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeSgqcGF0aCkKIAogICAgIGRlZiBuYW1lKHNl
bGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHBvcnQgKGUuZy4sICdtYWMn
LCAnY2hyb21pdW0td2luLXhwJykuCi0KLSAgICAgICAgTm90ZSB0aGF0IHRoaXMgaXMgZGlmZmVy
ZW50IGZyb20gdGhlIHRlc3RfcGxhdGZvcm1fbmFtZSgpLCB3aGljaAotICAgICAgICBtYXkgYmUg
ZGlmZmVyZW50IChlLmcuLCAnd2luLXhwJyBpbnN0ZWFkIG9mICdjaHJvbWl1bS13aW4teHAnLiIi
IgorICAgICAgICAiIiJSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHBvcnQgKGUuZy4sICdtYWMnLCAn
Y2hyb21pdW0td2luLXhwJykuIiIiCiAgICAgICAgIHJldHVybiBzZWxmLl9uYW1lCiAKKyAgICBk
ZWYgb3BlcmF0aW5nX3N5c3RlbShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX29wZXJhdGlu
Z19zeXN0ZW0KKworICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIGEg
c3RyaW5nIGluZGljYXRpbmcgdGhlIHZlcnNpb24gb2YgYSBnaXZlbiBwbGF0Zm9ybSwgZS5nLgor
ICAgICAgICAnbGVvcGFyZCcgb3IgJ3hwJy4KKworICAgICAgICBUaGlzIGlzIHVzZWQgdG8gaGVs
cCBpZGVudGlmeSB0aGUgZXhhY3QgcG9ydCB3aGVuIHBhcnNpbmcgdGVzdAorICAgICAgICBleHBl
Y3RhdGlvbnMsIGRldGVybWluaW5nIHNlYXJjaCBwYXRocywgYW5kIGxvZ2dpbmcgaW5mb3JtYXRp
b24uIiIiCisgICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCisKICAgICBkZWYgZ3JhcGhpY3Nf
dHlwZShzZWxmKToKICAgICAgICAgIiIiUmV0dXJucyB3aGV0aGVyIHRoZSBwb3J0IHVzZXMgYWNj
ZWxlcmF0ZWQgZ3JhcGhpY3MgKCdncHUnKSBvciBub3QKICAgICAgICAgKCdjcHUnKS4iIiIKLSAg
ICAgICAgcmV0dXJuICdjcHUnCisgICAgICAgIHJldHVybiBzZWxmLl9ncmFwaGljc190eXBlCisK
KyAgICBkZWYgYXJjaGl0ZWN0dXJlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYXJjaGl0
ZWN0dXJlCiAKICAgICBkZWYgcmVhbF9uYW1lKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRo
ZSBhY3R1YWwgbmFtZSBvZiB0aGUgcG9ydCwgbm90IHRoZSBkZWxlZ2F0ZSdzLiIiIgpAQCAtNjMx
LDYgKzY0OCwxNCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgZGVmIGFsbF90ZXN0X2NvbmZp
Z3VyYXRpb25zKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50ZXN0X2NvbmZpZ3VyYXRpb24o
KS5hbGxfdGVzdF9jb25maWd1cmF0aW9ucygpCiAKKyAgICBkZWYgYWxsX2Jhc2VsaW5lX3Zhcmlh
bnRzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIGEgbGlzdCBvZiBwbGF0Zm9ybSBuYW1lcyBz
dWZmaWNpZW50IHRvIGNvdmVyIGFsbCB0aGUgYmFzZWxpbmVzLgorCisgICAgICAgIFRoZSBsaXN0
IHNob3VsZCBiZSBzb3J0ZWQgc28gdGhhdCBhIGxhdGVyIHBsYXRmb3JtICB3aWxsIHJldXNlCisg
ICAgICAgIGFuIGVhcmxpZXIgcGxhdGZvcm0ncyBiYXNlbGluZXMgaWYgdGhleSBhcmUgdGhlIHNh
bWUgKGUuZy4sCisgICAgICAgICdzbm93bGVvcGFyZCcgc2hvdWxkIHByZWNlZGUgJ2xlb3BhcmQn
KS4iIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCiAgICAgZGVmIHRlc3Rf
ZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSB0ZXN0IGV4cGVjdGF0
aW9ucyBmb3IgdGhpcyBwb3J0LgogCkBAIC02NDcsMzkgKzY3Miw2IEBAIGNsYXNzIFBvcnQob2Jq
ZWN0KToKICAgICAgICAgc3luYyB1cCB0aGUgdHdvIHJlcG9zLiIiIgogICAgICAgICByZXR1cm4g
Tm9uZQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAgICAgIiIiUmV0
dXJucyB0aGUgc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGdpdmVuIHBsYXRmb3JtIG5h
bWUKLSAgICAgICAgaW4gdGhlIHRlc3QgZXhwZWN0YXRpb25zLiBUaGlzIG1heSBiZSB0aGUgc2Ft
ZSBhcyBuYW1lKCksIG9yIGl0Ci0gICAgICAgIG1heSBiZSBkaWZmZXJlbnQuIEZvciBleGFtcGxl
LCBjaHJvbWl1bSByZXR1cm5zICdtYWMnIGZvcgotICAgICAgICAnY2hyb21pdW0tbWFjJy4iIiIK
LSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC50ZXN0X3BsYXRmb3JtX25h
bWUnKQotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1zKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm5z
IHRoZSBsaXN0IG9mIHRlc3QgcGxhdGZvcm0gaWRlbnRpZmllcnMgYXMgdXNlZCBpbiB0aGUKLSAg
ICAgICAgdGVzdF9leHBlY3RhdGlvbnMgYW5kIG9uIGRhc2hib2FyZHMsIHRoZSByZWJhc2VsaW5p
bmcgdG9vbCwgZXRjLgotCi0gICAgICAgIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBuZWNlc3Nhcmls
eSB0aGUgc2FtZSBhcyB0aGUgbGlzdCBvZiBwb3J0cywKLSAgICAgICAgd2hpY2ggbXVzdCBiZSBn
bG9iYWxseSB1bmlxdWUgKGUuZy4sIGJvdGggJ2Nocm9taXVtLW1hYycgYW5kICdtYWMnCi0gICAg
ICAgIG1pZ2h0IHJldHVybiAnbWFjJyBhcyBhIHRlc3RfcGxhdGZvcm0gbmFtZScuIiIiCi0gICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQucGxhdGZvcm1zJykKLQotICAgIGRl
ZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUpOgot
ICAgICAgICAiIiJSZXR1cm5zIHRoZSBQb3J0IHBsYXRmb3JtIG5hbWUgdGhhdCBjb3JyZXNwb25k
cyB0byB0aGUgbmFtZSBhcwotICAgICAgICByZWZlcmVuY2VkIGluIHRoZSBleHBlY3RhdGlvbnMg
ZmlsZS4gRS5nLiwgIm1hYyIgcmV0dXJucwotICAgICAgICAiY2hyb21pdW0tbWFjIiBvbiB0aGUg
Q2hyb21pdW0gcG9ydHMuIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1Bv
cnQudGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUnKQotCi0gICAgZGVmIGFyY2hpdGVjdHVyZShz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2FyY2hpdGVjdHVyZQotCi0gICAgZGVmIHZlcnNp
b24oc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgYSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgdmVy
c2lvbiBvZiBhIGdpdmVuIHBsYXRmb3JtLCBlLmcuCi0gICAgICAgICdsZW9wYXJkJyBvciAneHAn
LgotCi0gICAgICAgIFRoaXMgaXMgdXNlZCB0byBoZWxwIGlkZW50aWZ5IHRoZSBleGFjdCBwb3J0
IHdoZW4gcGFyc2luZyB0ZXN0Ci0gICAgICAgIGV4cGVjdGF0aW9ucywgZGV0ZXJtaW5pbmcgc2Vh
cmNoIHBhdGhzLCBhbmQgbG9nZ2luZyBpbmZvcm1hdGlvbi4iIiIKLSAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcignUG9ydC52ZXJzaW9uJykKLQogICAgIGRlZiB0ZXN0X3JlcG9zaXRv
cnlfcGF0aHMoc2VsZik6CiAgICAgICAgICIiIlJldHVybnMgYSBsaXN0IG9mIChyZXBvc2l0b3J5
X25hbWUsIHJlcG9zaXRvcnlfcGF0aCkgdHVwbGVzCiAgICAgICAgIG9mIGl0cyBkZXBlbmRpbmcg
Y29kZSBiYXNlLiAgQnkgZGVmYXVsdCBpdCByZXR1cm5zIGEgbGlzdCB0aGF0IG9ubHkKQEAgLTk1
NiwxNSArOTQ4LDggQEAgY2xhc3MgRHJpdmVyOgogY2xhc3MgVGVzdENvbmZpZ3VyYXRpb24ob2Jq
ZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydD1Ob25lLCBvcz1Ob25lLCB2ZXJzaW9u
PU5vbmUsIGFyY2hpdGVjdHVyZT1Ob25lLAogICAgICAgICAgICAgICAgICBidWlsZF90eXBlPU5v
bmUsIGdyYXBoaWNzX3R5cGU9Tm9uZSk6Ci0KLSAgICAgICAgIyBGSVhNRTogV2UgY2FuIGdldCB0
aGUgTy9TIGFuZCB2ZXJzaW9uIGZyb20gdGVzdF9wbGF0Zm9ybV9uYW1lKCkKLSAgICAgICAgIyBh
bmQgdmVyc2lvbigpIGZvciBub3csIGJ1dCB0aG9zZSBzaG91bGQgZ28gYXdheSBhbmQgYmUgY2xl
YW5lZCB1cAotICAgICAgICAjIHdpdGggbW9yZSBnZW5lcmljIG1ldGhvZHMgbGlrZSBvcGVyYXRp
b25fc3lzdGVtKCkgYW5kIG9zX3ZlcnNpb24oKQotICAgICAgICAjIG9yIHNvbWV0aGluZy4KLSAg
ICAgICAgaWYgcG9ydDoKLSAgICAgICAgICAgIHBvcnRfdmVyc2lvbiA9IHBvcnQudmVyc2lvbigp
Ci0gICAgICAgIHNlbGYub3MgPSBvcyBvciBwb3J0LnRlc3RfcGxhdGZvcm1fbmFtZSgpLnJlcGxh
Y2UoJy0nICsgcG9ydF92ZXJzaW9uLCAnJykKLSAgICAgICAgc2VsZi52ZXJzaW9uID0gdmVyc2lv
biBvciBwb3J0X3ZlcnNpb24KKyAgICAgICAgc2VsZi5vcyA9IG9zIG9yIHBvcnQub3BlcmF0aW5n
X3N5c3RlbSgpCisgICAgICAgIHNlbGYudmVyc2lvbiA9IHZlcnNpb24gb3IgcG9ydC52ZXJzaW9u
KCkKICAgICAgICAgc2VsZi5hcmNoaXRlY3R1cmUgPSBhcmNoaXRlY3R1cmUgb3IgcG9ydC5hcmNo
aXRlY3R1cmUoKQogICAgICAgICBzZWxmLmJ1aWxkX3R5cGUgPSBidWlsZF90eXBlIG9yIHBvcnQu
X29wdGlvbnMuY29uZmlndXJhdGlvbi5sb3dlcigpCiAgICAgICAgIHNlbGYuZ3JhcGhpY3NfdHlw
ZSA9IGdyYXBoaWNzX3R5cGUgb3IgcG9ydC5ncmFwaGljc190eXBlKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5w
eQppbmRleCBlZjkwNDg0Y2E4M2IxNzE3OTQzMDIwYjFkNDNjOTJkNzE2ODAzMDgyLi40MWU3NWVh
ZmUxMjEzNGM4YjI2ODYzNDY0MTUyY2I3YTJiNjcyMTc1IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CkBA
IC0yNDcsMTMgKzI0Nyw4IEBAIGNsYXNzIFZpcnR1YWxUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuY3JlYXRlX2RyaXZlciwgMCkKICAgICAg
ICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuZGlmZl9pbWFnZSwgTm9uZSwgTm9uZSkKICAgICAg
ICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxl
KQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3JtX25hbWUpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnJlc3VsdHNfZGlyZWN0b3J5KQogICAgICAg
ICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X2V4cGVjdGF0aW9ucykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRWaXJ0dWFsKHBvcnQudGVzdF9wbGF0Zm9ybV9uYW1lKQotICAgICAgICBzZWxmLmFz
c2VydFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3JtcykKLSAgICAgICAgc2VsZi5hc3NlcnRWaXJ0
dWFsKHBvcnQudGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUsIE5vbmUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VmlydHVhbChwb3J0LnZlcnNpb24pCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChw
b3J0Ll9wYXRoX3RvX2FwYWNoZSkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuX3Bh
dGhfdG9fYXBhY2hlX2NvbmZpZ19maWxlKQogICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9y
dC5fcGF0aF90b19kcml2ZXIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCBkMDhjMGJkYjU5NGRjNjExMDZmMjA0ZTBl
ZjFiYmVlOGQ2YTM1MDU4Li4xYWFlMjY5MjZlNjcwMDZmMWIxZmQ4OWU3ZTRlYzQ2OThlZjEzYWZk
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW0ucHkKQEAgLTUxLDYgKzUxLDEyIEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigi
d2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuY2hyb21pdW0iKQogIyBGSVhNRTogVGhpcyBmdW5j
dGlvbiBkb2Vzbid0IGJlbG9uZyBpbiB0aGlzIHBhY2thZ2UuCiBjbGFzcyBDaHJvbWl1bVBvcnQo
YmFzZS5Qb3J0KToKICAgICAiIiJBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBDaHJvbWl1bSBpbXBs
ZW1lbnRhdGlvbnMgb2YgdGhlIFBvcnQgY2xhc3MuIiIiCisgICAgQUxMX0JBU0VMSU5FX1ZBUklB
TlRTID0gWworICAgICAgICAnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJywgJ2Nocm9taXVtLW1h
Yy1sZW9wYXJkJywKKyAgICAgICAgJ2Nocm9taXVtLXdpbi13aW43JywgJ2Nocm9taXVtLXdpbi12
aXN0YScsICdjaHJvbWl1bS13aW4teHAnLAorICAgICAgICAnY2hyb21pdW0tbGludXgnLCAnY2hy
b21pdW0tbGludXgteDg2XzY0JywKKyAgICAgICAgJ2Nocm9taXVtLWdwdS1tYWMtbGVvcGFyZCcs
ICdjaHJvbWl1bS1ncHUtd2luLXhwJywgJ2Nocm9taXVtLWdwdS1saW51eCcsCisgICAgXQogCiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgYmFzZS5Qb3J0Ll9faW5p
dF9fKHNlbGYsICoqa3dhcmdzKQpAQCAtMjMwLDYgKzIzNiw5IEBAIGNsYXNzIENocm9taXVtUG9y
dChiYXNlLlBvcnQpOgogICAgICAgICAgICAgIyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3Vl
MTczMTcxNwogICAgICAgICAgICAgc2VsZi5faGVscGVyLndhaXQoKQogCisgICAgZGVmIGFsbF9i
YXNlbGluZV92YXJpYW50cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuQUxMX0JBU0VMSU5F
X1ZBUklBTlRTCisKICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAgICIi
IlJldHVybnMgdGhlIHRlc3QgZXhwZWN0YXRpb25zIGZvciB0aGlzIHBvcnQuCiAKQEAgLTI1MSw3
ICsyNjAsNiBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgc2tpcHBl
ZF9sYXlvdXRfdGVzdHMoc2VsZiwgZXh0cmFfdGVzdF9maWxlcz1Ob25lKToKICAgICAgICAgZXhw
ZWN0YXRpb25zX3N0ciA9IHNlbGYudGVzdF9leHBlY3RhdGlvbnMoKQogICAgICAgICBvdmVycmlk
ZXNfc3RyID0gc2VsZi50ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoKQotICAgICAgICB0ZXN0
X3BsYXRmb3JtX25hbWUgPSBzZWxmLnRlc3RfcGxhdGZvcm1fbmFtZSgpCiAgICAgICAgIGlzX2Rl
YnVnX21vZGUgPSBGYWxzZQogCiAgICAgICAgIGFsbF90ZXN0X2ZpbGVzID0gc2VsZi50ZXN0cyhb
XSkKQEAgLTI2NSwxNyArMjczLDYgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAg
ICAgICAgIHJldHVybiBbc2VsZi5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHRlc3QpCiAgICAgICAg
ICAgICAgICAgZm9yIHRlc3QgaW4gZXhwZWN0YXRpb25zLmdldF90ZXN0c193aXRoX3Jlc3VsdF90
eXBlKHRlc3RfZXhwZWN0YXRpb25zLlNLSVApXQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFt
ZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiAoJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFy
ZCcsCi0gICAgICAgICAgICAgICAgJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnd2luLXdpbjcnLAot
ICAgICAgICAgICAgICAgICdsaW51eCcpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lX3Rv
X25hbWUoc2VsZiwgdGVzdF9wbGF0Zm9ybV9uYW1lKToKLSAgICAgICAgaWYgdGVzdF9wbGF0Zm9y
bV9uYW1lIGluIHNlbGYudGVzdF9wbGF0Zm9ybV9uYW1lcygpOgotICAgICAgICAgICAgcmV0dXJu
ICdjaHJvbWl1bS0nICsgdGVzdF9wbGF0Zm9ybV9uYW1lCi0gICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ1Vuc3VwcG9ydGVkIHRlc3RfcGxhdGZvcm1fbmFtZTogJXMnICUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X3BsYXRmb3JtX25hbWUpCi0KICAgICBkZWYgdGVzdF9yZXBvc2l0b3J5
X3BhdGhzKHNlbGYpOgogICAgICAgICAjIE5vdGU6IGZvciBKU09OIGZpbGUncyBiYWNrd2FyZC1j
b21wYXRpYmlsaXR5IHdlIHVzZSAnY2hyb21lJyByYXRoZXIKICAgICAgICAgIyB0aGFuICdjaHJv
bWl1bScgaGVyZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkKaW5kZXggMTY3ZjIzZWM0YmZhMTQyMDJlNmZkNzk2
ZmUxMTJiZjU0MGJkZjcwOS4uZmZjMmNmNzRjYzc1NDY3M2Y3MTc3NGJjODRlMjliNjQzMmM2NWZk
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV9ncHUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9ncHUucHkKQEAgLTYwLDYgKzYwLDcgQEAgZGVmIGdldChwbGF0Zm9ybT1O
b25lLCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdScsICoqa3dhcmdzKToKICMgRklYTUU6IFRoZXNl
IHNob3VsZCByZWFsbHkgYmUgYSBtaXhpbiBjbGFzcy4KIAogZGVmIF9zZXRfZ3B1X29wdGlvbnMo
cG9ydCk6CisgICAgcG9ydC5fZ3JhcGhpY3NfdHlwZSA9ICdncHUnCiAgICAgaWYgcG9ydC5nZXRf
b3B0aW9uKCdhY2NlbGVyYXRlZF9jb21wb3NpdGluZycpIGlzIE5vbmU6CiAgICAgICAgIHBvcnQu
X29wdGlvbnMuYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmcgPSBUcnVlCiAgICAgaWYgcG9ydC5nZXRf
b3B0aW9uKCdhY2NlbGVyYXRlZF8yZF9jYW52YXMnKSBpcyBOb25lOgpAQCAtODQsMTcgKzg1LDYg
QEAgZGVmIF90ZXN0cyhwb3J0LCBwYXRocyk6CiAgICAgcmV0dXJuIHRlc3RfZmlsZXMuZmluZChw
b3J0LCBwYXRocykKIAogCi1kZWYgX3Rlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZik6Ci0gICAgcmV0
dXJuICgnbWFjJywgJ3dpbicsICdsaW51eCcpCi0KLQotZGVmIF90ZXN0X3BsYXRmb3JtX25hbWVf
dG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUpOgotICAgIGlmIHRlc3RfcGxhdGZvcm1f
bmFtZSBpbiBzZWxmLnRlc3RfcGxhdGZvcm1fbmFtZXMoKToKLSAgICAgICAgcmV0dXJuICdjaHJv
bWl1bS1ncHUtJyArIHRlc3RfcGxhdGZvcm1fbmFtZQotICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Vu
c3VwcG9ydGVkIHRlc3RfcGxhdGZvcm1fbmFtZTogJXMnICUKLSAgICAgICAgICAgICAgICAgICAg
IHRlc3RfcGxhdGZvcm1fbmFtZSkKLQotCiBjbGFzcyBDaHJvbWl1bUdwdUxpbnV4UG9ydChjaHJv
bWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBv
cnRfbmFtZT0nY2hyb21pdW0tZ3B1LWxpbnV4JywgKiprd2FyZ3MpOgogICAgICAgICBjaHJvbWl1
bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9u
YW1lLCAqKmt3YXJncykKQEAgLTExMiwyMSArMTAyLDkgQEAgY2xhc3MgQ2hyb21pdW1HcHVMaW51
eFBvcnQoY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQpOgogICAgIGRlZiBkZWZhdWx0
X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAgICAgcmV0dXJuIDEKIAotICAgIGRlZiBncmFw
aGljc190eXBlKHNlbGYpOgotICAgICAgICByZXR1cm4gJ2dwdScKLQogICAgIGRlZiB0ZXN0cyhz
ZWxmLCBwYXRocyk6CiAgICAgICAgIHJldHVybiBfdGVzdHMoc2VsZiwgcGF0aHMpCiAKLSAgICBk
ZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gJ2xpbnV4JwotCi0g
ICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBfdGVzdF9w
bGF0Zm9ybV9uYW1lcyhzZWxmKQotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1l
KHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gX3Rlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1l
KHNlbGYsIG5hbWUpCi0KIAogY2xhc3MgQ2hyb21pdW1HcHVNYWNQb3J0KGNocm9taXVtX21hYy5D
aHJvbWl1bU1hY1BvcnQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9J2Nocm9t
aXVtLWdwdS1tYWMnLCAqKmt3YXJncyk6CkBAIC0xNDQsMjEgKzEyMiw5IEBAIGNsYXNzIENocm9t
aXVtR3B1TWFjUG9ydChjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KToKICAgICBkZWYgZGVm
YXVsdF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAgICAgIHJldHVybiAxCiAKLSAgICBkZWYg
Z3JhcGhpY3NfdHlwZShzZWxmKToKLSAgICAgICAgcmV0dXJuICdncHUnCi0KICAgICBkZWYgdGVz
dHMoc2VsZiwgcGF0aHMpOgogICAgICAgICByZXR1cm4gX3Rlc3RzKHNlbGYsIHBhdGhzKQogCi0g
ICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuICdtYWMnCi0K
LSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIF90ZXN0
X3BsYXRmb3JtX25hbWVzKHNlbGYpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25h
bWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBfdGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25h
bWUoc2VsZiwgbmFtZSkKLQogCiBjbGFzcyBDaHJvbWl1bUdwdVdpblBvcnQoY2hyb21pdW1fd2lu
LkNocm9taXVtV2luUG9ydCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT0nY2hy
b21pdW0tZ3B1LXdpbicsICoqa3dhcmdzKToKQEAgLTE3NiwxNyArMTQyLDUgQEAgY2xhc3MgQ2hy
b21pdW1HcHVXaW5Qb3J0KGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQpOgogICAgIGRlZiBk
ZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAgICAgcmV0dXJuIDEKIAotICAgIGRl
ZiBncmFwaGljc190eXBlKHNlbGYpOgotICAgICAgICByZXR1cm4gJ2dwdScKLQogICAgIGRlZiB0
ZXN0cyhzZWxmLCBwYXRocyk6CiAgICAgICAgIHJldHVybiBfdGVzdHMoc2VsZiwgcGF0aHMpCi0K
LSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gJ3dpbicK
LQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYpOgotICAgICAgICByZXR1cm4gX3Rl
c3RfcGxhdGZvcm1fbmFtZXMoc2VsZikKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9f
bmFtZShzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0dXJuIF90ZXN0X3BsYXRmb3JtX25hbWVfdG9f
bmFtZShzZWxmLCBuYW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgucHkKaW5kZXggMmNkMjQzNTE1Mzc2Zjky
NzYwZWQyY2MzYTEzYjIyZmZlMGIxNzk3Ni4uMzk2YWJhNTU2MzY4MWNhNjUyZjIwNzE1MTE2MGNh
ZjNiZDQyODFmNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9saW51eC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5CkBAIC00NywxOSArNDcsMTcgQEAgY2xh
c3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgJ3g4
Nic6IFsnY2hyb21pdW0tbGludXgnLCAnY2hyb21pdW0td2luJywgJ2Nocm9taXVtJywgJ3dpbics
ICdtYWMnXSwKICAgICB9CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUs
IHJlYmFzZWxpbmluZz1GYWxzZSwgKiprd2FyZ3MpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
b3J0X25hbWU9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUg
b3IgJ2Nocm9taXVtLWxpbnV4JwogICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0
X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAKICAgICAgICAgIyBXZSBy
ZS1zZXQgdGhlIHBvcnQgbmFtZSBvbmNlIHRoZSBiYXNlIG9iamVjdCBpcyBmdWxseSBpbml0aWFs
aXplZAogICAgICAgICAjIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZmluZCB0aGUgRFJUIGJpbmFy
eSBwcm9wZXJseS4KLSAgICAgICAgaWYgcG9ydF9uYW1lLmVuZHN3aXRoKCctbGludXgnKSBhbmQg
bm90IHJlYmFzZWxpbmluZzoKKyAgICAgICAgaWYgcG9ydF9uYW1lLmVuZHN3aXRoKCctbGludXgn
KToKICAgICAgICAgICAgIHNlbGYuX2FyY2hpdGVjdHVyZSA9IHNlbGYuX2RldGVybWluZV9hcmNo
aXRlY3R1cmUoKQogICAgICAgICAgICAgIyBGSVhNRTogdGhpcyBpcyBhbiB1Z2x5IGhhY2sgdG8g
YXZvaWQgcmVuYW1pbmcgdGhlIEdQVSBwb3J0LgogICAgICAgICAgICAgaWYgcG9ydF9uYW1lID09
ICdjaHJvbWl1bS1saW51eCc6CiAgICAgICAgICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1l
ICsgJy0nICsgc2VsZi5fYXJjaGl0ZWN0dXJlCi0gICAgICAgIGVsaWYgcmViYXNlbGluaW5nOgot
ICAgICAgICAgICAgc2VsZi5fYXJjaGl0ZWN0dXJlID0gJ3g4NicKICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgIGJhc2UsIGFyY2ggPSBwb3J0X25hbWUucnNwbGl0KCctJywgMSkKICAgICAgICAg
ICAgIGFzc2VydCBiYXNlIGluICgnY2hyb21pdW0tbGludXgnLCAnY2hyb21pdW0tZ3B1LWxpbnV4
JykKQEAgLTY4LDYgKzY2LDkgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0uQ2hy
b21pdW1Qb3J0KToKICAgICAgICAgYXNzZXJ0IHBvcnRfbmFtZSBpbiAoJ2Nocm9taXVtLWxpbnV4
JywgJ2Nocm9taXVtLWdwdS1saW51eCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdj
aHJvbWl1bS1saW51eC14ODYnLCAnY2hyb21pdW0tbGludXgteDg2XzY0JykKICAgICAgICAgc2Vs
Zi5fbmFtZSA9IHBvcnRfbmFtZQorICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ2xp
bnV4JworICAgICAgICAjIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgJ2x1Y2lkJworICAgICAgICBz
ZWxmLl92ZXJzaW9uID0gJ2hhcmR5JwogCiAgICAgZGVmIF9kZXRlcm1pbmVfYXJjaGl0ZWN0dXJl
KHNlbGYpOgogICAgICAgICBkcml2ZXJfcGF0aCA9IHNlbGYuX3BhdGhfdG9fZHJpdmVyKCkKQEAg
LTExNCwxNCArMTE1LDYgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0uQ2hyb21p
dW1Qb3J0KToKICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbnV4QnVpbGRJbnN0cnVjdGlvbnMn
KQogICAgICAgICByZXR1cm4gcmVzdWx0CiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNl
bGYpOgotICAgICAgICAjIFdlIHVzZSAnbGludXgnIGluc3RlYWQgb2YgJ2Nocm9taXVtLWxpbnV4
JyBpbiB0ZXN0X2V4cGVjdGF0aW9ucy50eHQuCi0gICAgICAgIHJldHVybiAnbGludXgnCi0KLSAg
ICBkZWYgdmVyc2lvbihzZWxmKToKLSAgICAgICAgIyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIEx1
Y2lkLgotICAgICAgICByZXR1cm4gJ2hhcmR5JwotCiAgICAgIwogICAgICMgUFJPVEVDVEVEIE1F
VEhPRFMKICAgICAjCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CmluZGV4IDE0MWI1ODc5YzhiNDcyZTJhMzhkZDc1
NzRkMjM1ZTM4YWU0MjEzOWYuLmI0NWQ4ZGFjZDNiNWM5M2RhY2VjMzk2OTY5YWI1MzdlNGRhM2Nk
YzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fbWFjLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fbWFjLnB5CkBAIC02MCwzOCArNjAsMjAgQEAgY2xhc3MgQ2hyb21pdW1N
YWNQb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgICAgICAnbWFjLXNub3dsZW9w
YXJkJywKICAgICAgICAgICAgICdtYWMnLAogICAgICAgICBdLAotICAgICAgICAnJzogWwotICAg
ICAgICAgICAgJ2Nocm9taXVtLW1hYycsCi0gICAgICAgICAgICAnY2hyb21pdW0nLAotICAgICAg
ICAgICAgJ21hYycsCi0gICAgICAgIF0sCiAgICAgfQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnRfbmFtZT1Ob25lLCBvc192ZXJzaW9uX3N0cmluZz1Ob25lLCByZWJhc2VsaW5pbmc9RmFs
c2UsICoqa3dhcmdzKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9z
X3ZlcnNpb25fc3RyaW5nPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgIyBXZSdyZSBhIGxpdHRs
ZSBnZW5lcmljIGhlcmUgYmVjYXVzZSB0aGlzIGNvZGUgaXMgcmV1c2VkIGJ5IHRoZQogICAgICAg
ICAjICdnb29nbGUtY2hyb21lJyBwb3J0IGFzIHdlbGwgYXMgdGhlICdtb2NrLScgYW5kICdkcnly
dW4tJyBwb3J0cy4KICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICdjaHJvbWl1bS1t
YWMnCi0KKyAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRf
bmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogICAgICAgICBpZiBwb3J0X25hbWUuZW5kc3dpdGgo
Jy1tYWMnKToKLSAgICAgICAgICAgICMgRklYTUU6IFRoZSByZWJhc2VsaW5pbmcgZmxhZyBpcyBh
biB1Z2x5IGhhY2sgdGhhdCBsZXRzIHVzIGNyZWF0ZSBhbgotICAgICAgICAgICAgIyAiY2hyb21p
dW0tbWFjIiBwb3J0IHRoYXQgaXMgbm90IHZlcnNpb24tc3BlY2lmaWMuIEl0IHNob3VsZCBvbmx5
IGJlCi0gICAgICAgICAgICAjIHVzZWQgYnkgcmViYXNlbGluZS1jaHJvbWl1bS13ZWJraXQtdGVz
dHMgdG8gZXhwbGljaXRseSBwdXQgZmlsZXMgaW50bwotICAgICAgICAgICAgIyB0aGUgZ2VuZXJp
YyBkaXJlY3RvcnkuIEluIHRoZW9yeSB3ZSBzaG91bGRuJ3QgbmVlZCB0aGlzLCBiZWNhdXNlCi0g
ICAgICAgICAgICAjIHRoZSBuZXdlc3QgbWFjIHBvcnQgc2hvdWxkIGJlIHVzaW5nICdjaHJvbWl1
bS1tYWMnIGFzIHRoZSBiYXNlbGluZQotICAgICAgICAgICAgIyBkaXJlY3RvcnkuIEhvd2V2ZXIs
IHdlIGFsc28gZG9uJ3QgaGF2ZSBzdGFibGUgU0wgYm90cyA6KAotICAgICAgICAgICAgIwotICAg
ICAgICAgICAgIyBXaGVuIHdlIHJlbW92ZSB0aGlzIEZJWE1FLCB3ZSBhbHNvIG5lZWQgdG8gcmVt
b3ZlICcnIGFzIGEgdmFsaWQKLSAgICAgICAgICAgICMgZmFsbGJhY2sga2V5IGluIHNlbGYuRkFM
TEJBQ0tfUEFUSFMuCi0gICAgICAgICAgICBpZiByZWJhc2VsaW5pbmc6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fdmVyc2lvbiA9ICcnCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IHNlbGYuX3ZlcnNpb24gPSBtYWMub3NfdmVyc2lvbihvc192ZXJzaW9uX3N0cmluZywgc2VsZi5T
VVBQT1JURURfT1NfVkVSU0lPTlMpCi0gICAgICAgICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9u
YW1lICsgJy0nICsgc2VsZi5fdmVyc2lvbgorICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IG1h
Yy5vc192ZXJzaW9uKG9zX3ZlcnNpb25fc3RyaW5nLCBzZWxmLlNVUFBPUlRFRF9PU19WRVJTSU9O
UykKKyAgICAgICAgICAgIHNlbGYuX25hbWUgPSBwb3J0X25hbWUgKyAnLScgKyBzZWxmLl92ZXJz
aW9uCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gcG9ydF9uYW1l
W3BvcnRfbmFtZS5pbmRleCgnLW1hYy0nKSArIDU6XQogICAgICAgICAgICAgYXNzZXJ0IHNlbGYu
X3ZlcnNpb24gaW4gc2VsZi5TVVBQT1JURURfT1NfVkVSU0lPTlMKLQotICAgICAgICBjaHJvbWl1
bS5DaHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2Fy
Z3MpCisgICAgICAgIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0gPSAnbWFjJwogCiAgICAgZGVmIGJh
c2VsaW5lX3BhdGgoc2VsZik6CiAgICAgICAgIGlmIHNlbGYudmVyc2lvbigpID09ICdzbm93bGVv
cGFyZCc6CkBAIC0xMjMsMTUgKzEwNSw2IEBAIGNsYXNzIENocm9taXVtTWFjUG9ydChjaHJvbWl1
bS5DaHJvbWl1bVBvcnQpOgogICAgIGRlZiBkcml2ZXJfbmFtZShzZWxmKToKICAgICAgICAgcmV0
dXJuICJEdW1wUmVuZGVyVHJlZSIKIAotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6
Ci0gICAgICAgICMgV2UgdXNlICdtYWMnIGluc3RlYWQgb2YgJ2Nocm9taXVtLW1hYycKLQotICAg
ICAgICAjIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgbWV0aG9kIGFmdGVyIHJlYmFzZWxpbmVfY2hy
b21pdW1fd2Via2l0X3Rlc3RzIGRpZXMuCi0gICAgICAgIHJldHVybiAnbWFjJwotCi0gICAgZGVm
IHZlcnNpb24oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCi0KICAgICAjCiAg
ICAgIyBQUk9URUNURUQgTUVUSE9EUwogICAgICMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRl
c3QucHkKaW5kZXggMTIwMTFjNmNkNGZmMjFmN2ExODFmZGIyMGE0NWM3YzA0MjdkMGI5My4uYjFi
YmFjOGQyMzhkY2VjYmJmMzM0ZTZiNTYxOWUzYTBjYzI5ZDU5YiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9tYWNfdW5pdHRlc3QucHkKQEAgLTY4LDE2ICs2OCw2IEBAIGNsYXNzIENocm9taXVtTWFjUG9y
dFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhLZXlFcnJvciwgc2VsZi5hc3NlcnRfbmFtZSwgTm9uZSwgJzEwLjcuMScsICdjaHJvbWl1
bS1tYWMtbGVvcGFyZCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9y
LCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAnMTAuNC4xJywgJ2Nocm9taXVtLW1hYy1sZW9wYXJk
JykKIAotICAgIGRlZiB0ZXN0X2dlbmVyaWNfcmViYXNlbGluaW5nX3BvcnQoc2VsZik6Ci0gICAg
ICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KHJlYmFzZWxpbmluZz1UcnVl
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Lm5hbWUoKSwgJ2Nocm9taXVtLW1hYycp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQudmVyc2lvbigpLCAnJykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNl
bGluZV9wYXRoKHBvcnQubmFtZSgpKSkKLQotICAgICAgICBwb3J0ID0gY2hyb21pdW1fbWFjLkNo
cm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9taXVtLW1hYy1sZW9wYXJkJywgcmViYXNlbGlu
aW5nPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQubmFtZSgpLCAnY2hyb21p
dW0tbWFjLWxlb3BhcmQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5l
X3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgocG9ydC5uYW1lKCkpKQotCiAgICAg
ZGVmIHRlc3RfYmFzZWxpbmVfcGF0aChzZWxmKToKICAgICAgICAgcG9ydCA9IGNocm9taXVtX21h
Yy5DaHJvbWl1bU1hY1BvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS1tYWMtbGVvcGFyZCcpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRf
YmFzZWxpbmVfcGF0aCgnY2hyb21pdW0tbWFjLWxlb3BhcmQnKSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKaW5k
ZXggZDA5MDhkZjJiOTM0Yjk1YmViNGEyOTVlOTczYzFjNGRkY2Q4NjE4Mi4uODQ0ZGZkZjQwMmUy
ZWRlNWJmMzE0YjBhODI1OTFjZGFkMmNiNGQ0OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKQEAgLTYzLDM0
ICs2MywyMSBAQCBjbGFzcyBDaHJvbWl1bVdpblBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToK
ICAgICAgICAgJ3hwJzogWydjaHJvbWl1bS13aW4teHAnLCAnY2hyb21pdW0td2luLXZpc3RhJywg
J2Nocm9taXVtLXdpbicsICdjaHJvbWl1bScsICd3aW4nLCAnbWFjJ10sCiAgICAgICAgICd2aXN0
YSc6IFsnY2hyb21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVtLXdpbicsICdjaHJvbWl1bScsICd3
aW4nLCAnbWFjJ10sCiAgICAgICAgICd3aW43JzogWydjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0n
LCAnd2luJywgJ21hYyddLAotICAgICAgICAnJzogWydjaHJvbWl1bS13aW4nLCAnY2hyb21pdW0n
LCAnd2luJywgJ21hYyddLAogICAgIH0KIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25h
bWU9Tm9uZSwgd2luZG93c192ZXJzaW9uPU5vbmUsIHJlYmFzZWxpbmluZz1GYWxzZSwgKiprd2Fy
Z3MpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgd2luZG93c192ZXJz
aW9uPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgIyBXZSdyZSBhIGxpdHRsZSBnZW5lcmljIGhl
cmUgYmVjYXVzZSB0aGlzIGNvZGUgaXMgcmV1c2VkIGJ5IHRoZQogICAgICAgICAjICdnb29nbGUt
Y2hyb21lJyBwb3J0IGFzIHdlbGwgYXMgdGhlICdtb2NrLScgYW5kICdkcnlydW4tJyBwb3J0cy4K
ICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICdjaHJvbWl1bS13aW4nCi0KKyAgICAg
ICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25h
bWUsICoqa3dhcmdzKQogICAgICAgICBpZiBwb3J0X25hbWUuZW5kc3dpdGgoJy13aW4nKToKLSAg
ICAgICAgICAgICMgRklYTUU6IFRoZSByZWJhc2VsaW5pbmcgZmxhZyBpcyBhbiB1Z2x5IGhhY2sg
dGhhdCBsZXRzIHVzIGNyZWF0ZSBhbgotICAgICAgICAgICAgIyAiY2hyb21pdW0td2luIiBwb3J0
IHRoYXQgaXMgbm90IHZlcnNpb24tc3BlY2lmaWMuIEl0IHNob3VsZCBvbmx5IGJlCi0gICAgICAg
ICAgICAjIHVzZWQgYnkgcmViYXNlbGluZS1jaHJvbWl1bS13ZWJraXQtdGVzdHMgdG8gZXhwbGlj
aXRseSBwdXQgZmlsZXMgaW50bwotICAgICAgICAgICAgIyB0aGUgZ2VuZXJpYyBkaXJlY3Rvcnku
IEluIHRoZW9yeSB3ZSBzaG91bGRuJ3QgbmVlZCB0aGlzLCBiZWNhdXNlCi0gICAgICAgICAgICAj
IHRoZSBuZXdlc3Qgd2luIHBvcnQgc2hvdWxkIGJlIHVzaW5nICdjaHJvbWl1bS13aW4nIGFzIHRo
ZSBiYXNlbGluZQotICAgICAgICAgICAgIyBkaXJlY3RvcnkuIEhvd2V2ZXIsIHdlIGFsc28gZG9u
J3QgaGF2ZSBzdGFibGUgV2luIDcgYm90cyA6KAotICAgICAgICAgICAgIwotICAgICAgICAgICAg
IyBXaGVuIHdlIHJlbW92ZSB0aGlzIEZJWE1FLCB3ZSBhbHNvIG5lZWQgdG8gcmVtb3ZlICcnIGFz
IGEgdmFsaWQKLSAgICAgICAgICAgICMgZmFsbGJhY2sga2V5IGluIHNlbGYuRkFMTEJBQ0tfUEFU
SFMuCi0gICAgICAgICAgICBpZiByZWJhc2VsaW5pbmc6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
dmVyc2lvbiA9ICcnCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX3Zl
cnNpb24gPSBvc192ZXJzaW9uKHdpbmRvd3NfdmVyc2lvbikKLSAgICAgICAgICAgICAgICBwb3J0
X25hbWUgPSBwb3J0X25hbWUgKyAnLScgKyBzZWxmLl92ZXJzaW9uCisgICAgICAgICAgICBzZWxm
Ll92ZXJzaW9uID0gb3NfdmVyc2lvbih3aW5kb3dzX3ZlcnNpb24pCisgICAgICAgICAgICBzZWxm
Ll9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2VsZi5fdmVyc2lvbgogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IHBvcnRfbmFtZVtwb3J0X25hbWUuaW5kZXgoJy13
aW4tJykgKyA1Ol0KICAgICAgICAgICAgIGFzc2VydCBzZWxmLl92ZXJzaW9uIGluIHNlbGYuU1VQ
UE9SVEVEX1ZFUlNJT05TCiAKLSAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9f
KHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQorICAgICAgICBzZWxmLl9vcGVy
YXRpbmdfc3lzdGVtID0gJ3dpbicKIAogICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIo
c2VsZik6CiAgICAgICAgIGVudiA9IGNocm9taXVtLkNocm9taXVtUG9ydC5zZXR1cF9lbnZpcm9u
X2Zvcl9zZXJ2ZXIoc2VsZikKQEAgLTEzNywxNyArMTI0LDYgQEAgY2xhc3MgQ2hyb21pdW1XaW5Q
b3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgIHBhdGggPSBmaWxlbmFtZVtsZW4o
c2VsZi5sYXlvdXRfdGVzdHNfZGlyKCkpICsgMTpdCiAgICAgICAgIHJldHVybiBwYXRoLnJlcGxh
Y2UoJ1xcJywgJy8nKQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAg
ICAgIyBXZSByZXR1cm4gJ3dpbi14cCcsIG5vdCAnY2hyb21pdW0td2luLXhwJyBoZXJlLCBmb3Ig
Y29udmVuaWVuY2UuCi0KLSAgICAgICAgIyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIG1ldGhvZCBh
ZnRlciByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cyBkaWVzLgotICAgICAgICBpZiBz
ZWxmLnZlcnNpb24oKSA9PSAnJzoKLSAgICAgICAgICAgIHJldHVybiAnd2luJwotICAgICAgICBy
ZXR1cm4gJ3dpbi0nICsgc2VsZi52ZXJzaW9uKCkKLQotICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgot
ICAgICAgICByZXR1cm4gc2VsZi5fdmVyc2lvbgotCiAgICAgIwogICAgICMgUFJPVEVDVEVEIFJP
VVRJTkVTCiAgICAgIwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weQppbmRleCA4ZWE3
MDYwYzUzYWI2MDNhZDhjMDI1N2I5Njg0ZTA3NTM5MGI3N2EzLi4zMTlhYWNkYzQ3MGEzZDYxMTZm
NDA0ODFhODI3NDNiOWIwMTMxODQzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5w
eQpAQCAtMTI3LDE2ICsxMjcsNiBAQCBjbGFzcyBDaHJvbWl1bVdpblRlc3QocG9ydF90ZXN0Y2Fz
ZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgc2Vs
Zi5hc3NlcnRfbmFtZSwgTm9uZSwgKDUsIDIpLCAnY2hyb21pdW0td2luLXhwJykKICAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICg3LCAx
KSwgJ2Nocm9taXVtLXdpbi14cCcpCiAKLSAgICBkZWYgdGVzdF9nZW5lcmljX3JlYmFzZWxpbmlu
Z19wb3J0KHNlbGYpOgotICAgICAgICBwb3J0ID0gY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9y
dChyZWJhc2VsaW5pbmc9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5uYW1l
KCksICdjaHJvbWl1bS13aW4nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LnZlcnNp
b24oKSwgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgp
LCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aChwb3J0Lm5hbWUoKSkpCi0KLSAgICAgICAgcG9y
dCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS13aW4t
eHAnLCByZWJhc2VsaW5pbmc9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5u
YW1lKCksICdjaHJvbWl1bS13aW4teHAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0
LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgocG9ydC5uYW1lKCkp
KQotCiAgICAgZGVmIHRlc3RfYmFzZWxpbmVfcGF0aChzZWxmKToKICAgICAgICAgcG9ydCA9IGNo
cm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS13aW4teHAnKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Vi
a2l0X2Jhc2VsaW5lX3BhdGgoJ2Nocm9taXVtLXdpbi14cCcpKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQppbmRleCA0MzE1NTQzMjAzOWI0YWM2
OTM3MWRmNzg3MTA3MGM4N2Y3NTJhYjdkLi44YjYyNTk1ZThhMWY5Yzk3MDM0YTg1ZTY0NDJlNWEw
NTMzMjI5YmJmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L21hYy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L21hYy5weQpAQCAtNzMsMTUgKzczLDE1IEBAIGNsYXNzIE1hY1BvcnQoV2ViS2l0UG9ydCk6
CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9zX3ZlcnNpb25fc3Ry
aW5nPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICdt
YWMnCi0KKyAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9u
YW1lLCAqKmt3YXJncykKICAgICAgICAgaWYgcG9ydF9uYW1lID09ICdtYWMnOgogICAgICAgICAg
ICAgc2VsZi5fdmVyc2lvbiA9IG9zX3ZlcnNpb24ob3NfdmVyc2lvbl9zdHJpbmcpCi0gICAgICAg
ICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgKyAnLScgKyBzZWxmLl92ZXJzaW9uCisgICAgICAg
ICAgICBzZWxmLl9uYW1lID0gcG9ydF9uYW1lICsgJy0nICsgc2VsZi5fdmVyc2lvbgogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IHBvcnRfbmFtZVs0Ol0KICAgICAg
ICAgICAgIGFzc2VydCBzZWxmLl92ZXJzaW9uIGluIHNlbGYuU1VQUE9SVEVEX1ZFUlNJT05TCiAK
LSAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCAq
Kmt3YXJncykKKyAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICdtYWMnCiAKICAgICBk
ZWYgZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAgICAgICMgRklYTUU6IG5ldy1y
dW4td2Via2l0LXRlc3RzIGlzIHVuc3RhYmxlIG9uIE1hYyBydW5uaW5nIG1vcmUgdGhhbgpAQCAt
MTE1LDEyICsxMTUsNiBAQCBjbGFzcyBNYWNQb3J0KFdlYktpdFBvcnQpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NraXBwZWQnKSkKICAgICAgICAgcmV0dXJu
IHNraXBwZWRfZmlsZXMKIAotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAg
ICAgIHJldHVybiAnbWFjLScgKyBzZWxmLnZlcnNpb24oKQotCi0gICAgZGVmIHZlcnNpb24oc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCi0KICAgICBkZWYgX2J1aWxkX2phdmFf
dGVzdF9zdXBwb3J0KHNlbGYpOgogICAgICAgICBqYXZhX3Rlc3RzX3BhdGggPSBzZWxmLl9maWxl
c3lzdGVtLmpvaW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCksICJqYXZhIikKICAgICAgICAgYnVp
bGRfamF2YSA9IFsiL3Vzci9iaW4vbWFrZSIsICItQyIsIGphdmFfdGVzdHNfcGF0aF0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQppbmRleCAw
OTdmZWUyNjMyZGMxY2ZhM2FiNzIyZmRmOTk3YzU4NTkxYWVlYzA1Li5hNWQzY2Q5YzZlYTlmMTAx
YzZlY2QzMjU0ZTNkYTRkNDc1ZmIxMzhhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CkBAIC0yMjAsMjMgKzIyMCw0MCBAQCBXT05URklY
IFNLSVAgOiBmYWlsdXJlcy9leHBlY3RlZC9leGNlcHRpb24uaHRtbCA9IENSQVNICiAKIGNsYXNz
IFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgIiIiVGVzdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
UG9ydCBpbnRlcmZhY2UuIiIiCisgICAgQUxMX0JBU0VMSU5FX1ZBUklBTlRTID0gKAorICAgICAg
ICAndGVzdC1tYWMtc25vd2xlb3BhcmQnLCAndGVzdC1tYWMtbGVvcGFyZCcsCisgICAgICAgICd0
ZXN0LXdpbi13aW43JywgJ3Rlc3Qtd2luLXZpc3RhJywgJ3Rlc3Qtd2luLXhwJywKKyAgICAgICAg
J3Rlc3QtbGludXgnLAorICAgICkKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9
Tm9uZSwgdXNlcj1Ob25lLCBmaWxlc3lzdGVtPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgaWYg
bm90IGZpbGVzeXN0ZW06Ci0gICAgICAgICAgICBmaWxlc3lzdGVtID0gdW5pdF90ZXN0X2ZpbGVz
eXN0ZW0oKQorICAgICAgICBpZiBub3QgcG9ydF9uYW1lIG9yIHBvcnRfbmFtZSA9PSAndGVzdCc6
CisgICAgICAgICAgICBwb3J0X25hbWUgPSAndGVzdC1tYWMtbGVvcGFyZCcKKyAgICAgICAgdXNl
ciA9IHVzZXIgb3IgbW9ja3Rvb2wuTW9ja1VzZXIoKQorICAgICAgICBmaWxlc3lzdGVtID0gZmls
ZXN5c3RlbSBvciB1bml0X3Rlc3RfZmlsZXN5c3RlbSgpCisgICAgICAgIGJhc2UuUG9ydC5fX2lu
aXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCBmaWxlc3lzdGVtPWZpbGVzeXN0ZW0sIHVz
ZXI9dXNlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogCiAgICAgICAg
IGFzc2VydCBmaWxlc3lzdGVtLl90ZXN0cwogICAgICAgICBzZWxmLl90ZXN0cyA9IGZpbGVzeXN0
ZW0uX3Rlc3RzCiAKLSAgICAgICAgaWYgbm90IHVzZXI6Ci0gICAgICAgICAgICB1c2VyID0gbW9j
a3Rvb2wuTW9ja1VzZXIoKQorICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ21hYycK
KyAgICAgICAgaWYgcG9ydF9uYW1lLnN0YXJ0c3dpdGgoJ3Rlc3Qtd2luJyk6CisgICAgICAgICAg
ICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gJ3dpbicKKyAgICAgICAgZWxpZiBwb3J0X25hbWUu
c3RhcnRzd2l0aCgndGVzdC1saW51eCcpOgorICAgICAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5
c3RlbSA9ICdsaW51eCcKIAotICAgICAgICBpZiBub3QgcG9ydF9uYW1lIG9yIHBvcnRfbmFtZSA9
PSAndGVzdCc6Ci0gICAgICAgICAgICBwb3J0X25hbWUgPSAndGVzdC1tYWMtbGVvcGFyZCcKKyAg
ICAgICAgdmVyc2lvbl9tYXAgPSB7CisgICAgICAgICAgICAndGVzdC13aW4teHAnOiAneHAnLAor
ICAgICAgICAgICAgJ3Rlc3Qtd2luLXdpbjcnOiAnd2luNycsCisgICAgICAgICAgICAndGVzdC13
aW4tdmlzdGEnOiAndmlzdGEnLAorICAgICAgICAgICAgJ3Rlc3QtbWFjLWxlb3BhcmQnOiAnbGVv
cGFyZCcsCisgICAgICAgICAgICAndGVzdC1tYWMtc25vd2xlb3BhcmQnOiAnc25vd2xlb3BhcmQn
LAorICAgICAgICAgICAgJ3Rlc3QtbGludXgnOiAnJywKKyAgICAgICAgfQorICAgICAgICBzZWxm
Ll92ZXJzaW9uID0gdmVyc2lvbl9tYXBbcG9ydF9uYW1lXQogCiAgICAgICAgIHNlbGYuX2V4cGVj
dGF0aW9uc19wYXRoID0gTEFZT1VUX1RFU1RfRElSICsgJy9wbGF0Zm9ybS90ZXN0L3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dCcKLSAgICAgICAgYmFzZS5Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFt
ZT1wb3J0X25hbWUsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSwgdXNlcj11c2VyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAKICAgICBkZWYgX3BhdGhfdG9fZHJpdmVyKHNl
bGYpOgogICAgICAgICAjIFRoaXMgcm91dGluZSBzaG91bGRuJ3Qgbm9ybWFsbHkgYmUgY2FsbGVk
LCBidXQgaXQgaXMgY2FsbGVkIGJ5CkBAIC0zMTEsMTkgKzMyOCw4IEBAIGNsYXNzIFRlc3RQb3J0
KGJhc2UuUG9ydCk6CiAgICAgZGVmIHBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZShzZWxm
KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGF0aW9uc19wYXRoCiAKLSAgICBkZWYgdGVz
dF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5uYW1lKClbNTpdCi0K
LSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFj
LWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKLSAgICAgICAgICAgICAgICAnd2luLXhwJywg
J3dpbi12aXN0YScsICd3aW4td2luNycsCi0gICAgICAgICAgICAgICAgJ2xpbnV4JykKLQotICAg
IGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUp
OgotICAgICAgICBpZiB0ZXN0X3BsYXRmb3JtX25hbWUgaW4gc2VsZi50ZXN0X3BsYXRmb3JtX25h
bWVzKCk6Ci0gICAgICAgICAgICByZXR1cm4gJ3Rlc3QtJyArIHRlc3RfcGxhdGZvcm1fbmFtZQot
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdVbnN1cHBvcnRlZCB0ZXN0X3BsYXRmb3JtX25hbWU6
ICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wbGF0Zm9ybV9uYW1lKQorICAg
IGRlZiBhbGxfYmFzZWxpbmVfdmFyaWFudHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLkFM
TF9CQVNFTElORV9WQVJJQU5UUwogCiAgICAgIyBGSVhNRTogVGhlc2UgbmV4dCB0d28gcm91dGlu
ZXMgYXJlIGNvcGllZCBmcm9tIGJhc2UucHkgd2l0aAogICAgICMgdGhlIGNhbGxzIHRvIHBhdGgu
YWJzcGF0aF90b191cmkoKSByZW1vdmVkLiBXZSBzaG91bGRuJ3QgaGF2ZQpAQCAtMzgzLDIyICsz
ODksNiBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogCiAgICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IoJ3Vua25vd24gdXJsIHR5cGU6ICVzJyAlIHVyaSkKIAotICAgIGRlZiB2
ZXJzaW9uKHNlbGYpOgotICAgICAgICB2ZXJzaW9uX21hcCA9IHsKLSAgICAgICAgICAgICd0ZXN0
LXdpbi14cCc6ICd4cCcsCi0gICAgICAgICAgICAndGVzdC13aW4td2luNyc6ICd3aW43JywKLSAg
ICAgICAgICAgICd0ZXN0LXdpbi12aXN0YSc6ICd2aXN0YScsCi0gICAgICAgICAgICAndGVzdC1t
YWMtbGVvcGFyZCc6ICdsZW9wYXJkJywKLSAgICAgICAgICAgICd0ZXN0LW1hYy1zbm93bGVvcGFy
ZCc6ICdzbm93bGVvcGFyZCcsCi0gICAgICAgICAgICAndGVzdC1saW51eCc6ICcnLAotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB2ZXJzaW9uX21hcFtzZWxmLl9uYW1lXQotCi0gICAgZGVmIHRl
c3RfY29uZmlndXJhdGlvbihzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuX3Rlc3RfY29uZmln
dXJhdGlvbjoKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RfY29uZmlndXJhdGlvbiA9IFRlc3RUZXN0
Q29uZmlndXJhdGlvbihzZWxmKQotICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9jb25maWd1cmF0
aW9uCi0KIAogY2xhc3MgVGVzdERyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgIiIiVGVzdC9EdW1t
eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRHVtcFJlbmRlclRyZWUgaW50ZXJmYWNlLiIiIgpAQCAt
NDMyLDEwICs0MjIsMyBAQCBjbGFzcyBUZXN0RHJpdmVyKGJhc2UuRHJpdmVyKToKIAogICAgIGRl
ZiBzdG9wKHNlbGYpOgogICAgICAgICBwYXNzCi0KLQotY2xhc3MgVGVzdFRlc3RDb25maWd1cmF0
aW9uKGJhc2UuVGVzdENvbmZpZ3VyYXRpb24pOgotICAgIGRlZiBhbGxfc3lzdGVtcyhzZWxmKToK
LSAgICAgICAgcmV0dXJuICgoJ21hYycsICdsZW9wYXJkJywgJ3g4NicpLAotICAgICAgICAgICAg
ICAgICgnd2luJywgJ3hwJywgJ3g4NicpLAotICAgICAgICAgICAgICAgICgnd2luJywgJ3dpbjcn
LCAneDg2JykpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYmtpdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2Via2l0LnB5CmluZGV4IDY1YTA0N2Q5ZDVhODNkMjllYWM4YjBmMzAxYWEyOTIxY2EzOTUx
MTcuLjczZjQ1ZGJlZjQzM2VhODBmMTAxMjJjMmEzMzVkNGE3NzhhZDZhNTkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CkBAIC0z
MjcsMTIgKzMyNyw2IEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgdGVz
dHNfdG9fc2tpcC51cGRhdGUoc2VsZi5fdGVzdHNfZm9yX2Rpc2FibGVkX2ZlYXR1cmVzKCkpCiAg
ICAgICAgIHJldHVybiB0ZXN0c190b19za2lwCiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1l
KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fbmFtZSArIHNlbGYudmVyc2lvbigpCi0KLSAg
ICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywg
J3dpbicsICdtYWMtdGlnZXInLCAnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJykKLQog
ICAgIGRlZiBfYnVpbGRfcGF0aChzZWxmLCAqY29tcHMpOgogICAgICAgICByZXR1cm4gc2VsZi5f
ZmlsZXN5c3RlbS5qb2luKHNlbGYuX2NvbmZpZy5idWlsZF9kaXJlY3RvcnkoCiAgICAgICAgICAg
ICBzZWxmLmdldF9vcHRpb24oJ2NvbmZpZ3VyYXRpb24nKSksICpjb21wcykKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKaW5kZXggZTdkMjAwNGJh
YjM1ZTdkM2Q4ZGRmMmI4YmUwNjE1YTE2YTk0MDVhMy4uMDNhNzZmNGIyZGM5M2ZmZjgxZGY0Yzkx
MWY0MWFhMmU2NzZmZTZkNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC93aW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93aW4ucHkKQEAgLTM4LDkgKzM4LDExIEBAIF9sb2cgPSBsb2dnaW5nLmdldExv
Z2dlcigid2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2luIikKIGNsYXNzIFdpblBvcnQoV2Vi
S2l0UG9ydCk6CiAgICAgIiIiV2ViS2l0IFdpbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBj
bGFzcy4iIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIGt3
YXJncy5zZXRkZWZhdWx0KCdwb3J0X25hbWUnLCAnd2luJykKLSAgICAgICAgV2ViS2l0UG9ydC5f
X2luaXRfXyhzZWxmLCAqKmt3YXJncykKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1l
PU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICd3aW4n
CisgICAgICAgIFdlYktpdFBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwg
Kiprd2FyZ3MpCisgICAgICAgIHNlbGYuX3ZlcnNpb24gPSAnd2luNycKKyAgICAgICAgc2VsZi5f
b3BlcmF0aW5nX3N5c3RlbSA9ICd3aW4nCiAKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgo
c2VsZik6CiAgICAgICAgICMgQmFzZWQgb24gY29kZSBmcm9tIG9sZC1ydW4td2Via2l0LXRlc3Rz
IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1f
d2Via2l0X3Rlc3RzLnB5CmluZGV4IGNlOGM3ZDY4YmI5MGRjMTk4YTA4MDAxZDFlYzllZTU5M2Q2
YTE1MjIuLmJhODlmNGI1OTc5OWRhN2RlNDBlM2IxODRiODc1MTIxOWU4NTk1NGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21p
dW1fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5CkBAIC02MSwzNCArNjEsMTYg
QEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBCQVNFTElORV9TVUZGSVhF
UyA9ICgnLnR4dCcsICcucG5nJywgJy5jaGVja3N1bScpCiAKLSMgT25seSB0aGUgV2ViS2l0IGNh
bmFyaWVzIGhhdmUgYSBmdWxsIGNvbXBsZW1lbnQgb2YgYm90cy4gVGhlIEdQVQotIyBib3RzIGRv
bid0IGhhdmUgdmVyc2lvbi1zcGVjaWZpYyBiYXNlbGluZXMgeWV0LiBXZSBvbmx5IGhhdmUgdGhl
IHRocmVlCi0jIG1haW4gRGVwcyBib3RzLgotCi0jIEJ5IHJ1bm5pbmcgdGhlIHRlc3QgaW4gdGhp
cyBvcmRlciB3ZSBlbnN1cmUgdGhhdCBpZiBhIGxhdGVyIHRlc3QgaXMgYQotIyBkdXBsaWNhdGUg
b2YgYW55IGVhcmxpZXIgb25lLCB3ZSdsbCBub3RpY2UgaXQgYW5kIG9ubHkga2VlcCBvbmUgY29w
eS4KLVJFQkFTRUxJTkVfR1BVX09SREVSID0gWydtYWMnLCAnd2luJywgJ2xpbnV4J10KLVJFQkFT
RUxJTkVfV0VCS0lUX0NBTkFSWV9PUkRFUiA9IFsnbWFjLXNub3dsZW9wYXJkJywgJ21hYy1sZW9w
YXJkJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXdpbjcnLCAnd2lu
LXZpc3RhJywgJ3dpbi14cCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xp
bnV4J10KLVJFQkFTRUxJTkVfUExBVEZPUk1fT1JERVIgPSBbJ21hYycsICd3aW4nLCAnbGludXgn
XQotCi1BUkNISVZFX0RJUl9OQU1FX0RJQ1QgPSB7J3dpbic6ICdXZWJraXRfV2luX19kZXBzXycs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi12aXN0YSc6ICd3ZWJraXQtZGJnLXZpc3Rh
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXhwJzogJ1dlYmtpdF9XaW5fX2RlcHNf
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbWFjJzogJ1dlYmtpdF9NYWMxMF81X19kZXBz
XycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbnV4JzogJ1dlYmtpdF9MaW51eF9fZGVw
c18nLAotCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi13aW43LWNhbmFyeSc6ICdXZWJr
aXRfV2luNycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi12aXN0YS1jYW5hcnknOiAn
V2Via2l0X1Zpc3RhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXhwLWNhbmFyeSc6
ICdXZWJraXRfV2luJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbWFjLWxlb3BhcmQtY2Fu
YXJ5JzogJ1dlYmtpdF9NYWMxMF81JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbWFjLXNu
b3dsZW9wYXJkLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNicsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJ2xpbnV4LWNhbmFyeSc6ICdXZWJraXRfTGludXgnLAotCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgJ2dwdS1tYWMtY2FuYXJ5JzogJ1dlYmtpdF9NYWMxMF81Xy1fR1BVJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAnZ3B1LXdpbi1jYW5hcnknOiAnV2Via2l0X1dpbl8tX0dQVScs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJ2dwdS1saW51eC1jYW5hcnknOiAnV2Via2l0X0xp
bnV4Xy1fR1BVJywKK0FSQ0hJVkVfRElSX05BTUVfRElDVCA9IHsKKyAgICAnY2hyb21pdW0td2lu
LXdpbjcnOiAnV2Via2l0X1dpbjcnLAorICAgICdjaHJvbWl1bS13aW4tdmlzdGEnOiAnV2Via2l0
X1Zpc3RhJywKKyAgICAnY2hyb21pdW0td2luLXhwJzogJ1dlYmtpdF9XaW4nLAorICAgICdjaHJv
bWl1bS1tYWMtbGVvcGFyZCc6ICdXZWJraXRfTWFjMTBfNScsCisgICAgJ2Nocm9taXVtLW1hYy1z
bm93bGVvcGFyZCc6ICdXZWJraXRfTWFjMTBfNicsCisgICAgJ2Nocm9taXVtLWxpbnV4JzogJ1dl
YmtpdF9MaW51eCcsCisgICAgJ2Nocm9taXVtLWdwdS1tYWMtbGVvcGFyZCc6ICdXZWJraXRfTWFj
MTBfNV8tX0dQVScsCisgICAgJ2Nocm9taXVtLWdwdS13aW4teHAnOiAnV2Via2l0X1dpbl8tX0dQ
VScsCisgICAgJ2Nocm9taXVtLWdwdS1saW51eCc6ICdXZWJraXRfTGludXhfLV9HUFUnLAogfQog
CiAKQEAgLTE3OSwxMSArMTYxLDcgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAg
ICAgc2VsZi5fZmlsZXN5c3RlbSA9IHJ1bm5pbmdfcG9ydC5fZmlsZXN5c3RlbQogICAgICAgICBz
ZWxmLl90YXJnZXRfcG9ydCA9IHRhcmdldF9wb3J0CiAKLSAgICAgICAgIyBGSVhNRTogU2VlIHRo
ZSBjb21tZW50cyBpbiBjaHJvbWl1bV97d2luLG1hY30ucHkgYWJvdXQgd2h5IHdlIG5lZWQKLSAg
ICAgICAgIyB0aGUgJ3JlYmFzZWxpbmluZycga2V5d29yZC4KLSAgICAgICAgc2VsZi5fcmViYXNl
bGluZV9wb3J0ID0gcG9ydC5nZXQoCi0gICAgICAgICAgICBzZWxmLl90YXJnZXRfcG9ydC50ZXN0
X3BsYXRmb3JtX25hbWVfdG9fbmFtZShwbGF0Zm9ybSksIG9wdGlvbnMsCi0gICAgICAgICAgICBm
aWxlc3lzdGVtPXNlbGYuX2ZpbGVzeXN0ZW0sIHJlYmFzZWxpbmluZz1UcnVlKQorICAgICAgICBz
ZWxmLl9yZWJhc2VsaW5lX3BvcnQgPSBwb3J0LmdldChwbGF0Zm9ybSwgb3B0aW9ucywgZmlsZXN5
c3RlbT1zZWxmLl9maWxlc3lzdGVtKQogICAgICAgICBzZWxmLl9yZWJhc2VsaW5pbmdfdGVzdHMg
PSBzZXQoKQogICAgICAgICBzZWxmLl9yZWJhc2VsaW5lZF90ZXN0cyA9IFtdCiAKQEAgLTE5OCw3
ICsxNzYsNyBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl96aXBf
ZmFjdG9yeSA9IHppcF9mYWN0b3J5CiAgICAgICAgIHNlbGYuX3NjbSA9IHNjbQogCi0gICAgZGVm
IHJ1bihzZWxmLCBiYWNrdXApOgorICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgICIiIlJ1biBy
ZWJhc2VsaW5lIHByb2Nlc3MuIiIiCiAKICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ0NvbXBp
bGluZyByZWJhc2VsaW5pbmcgdGVzdHMnLCBzZWxmLl9wbGF0Zm9ybSkKQEAgLTIzMyw3ICsyMTEs
NyBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogCiAgICAgICAgIHJldHVybiBUcnVlCiAK
LSAgICBkZWYgcmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzX2Zyb21fZXhwZWN0YXRpb25zKHNlbGYs
IHRlc3RzLCBiYWNrdXApOgorICAgIGRlZiByZW1vdmVfcmViYXNlbGluaW5nX2V4cGVjdGF0aW9u
cyhzZWxmLCB0ZXN0cywgYmFja3VwKToKICAgICAgICAgIiIiaWYgYmFja3VwIGlzIFRydWUsIHdl
IGJhY2t1cCB0aGUgb3JpZ2luYWwgdGVzdCBleHBlY3RhdGlvbnMgZmlsZS4iIiIKICAgICAgICAg
bmV3X2V4cGVjdGF0aW9ucyA9IHNlbGYuX3Rlc3RfZXhwZWN0YXRpb25zLnJlbW92ZV9yZWJhc2Vs
aW5lZF90ZXN0cyh0ZXN0cykKICAgICAgICAgcGF0aCA9IHNlbGYuX3RhcmdldF9wb3J0LnBhdGhf
dG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZSgpCkBAIC0zMzMsMTMgKzMxMSw3IEBAIGNsYXNzIFJl
YmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZm9yY2VfYXJjaGl2
ZV91cmw6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fb3B0aW9ucy5mb3JjZV9hcmNoaXZlX3Vy
bAogCi0gICAgICAgIHBsYXRmb3JtID0gc2VsZi5fcGxhdGZvcm0KLSAgICAgICAgaWYgc2VsZi5f
b3B0aW9ucy53ZWJraXRfY2FuYXJ5OgotICAgICAgICAgICAgcGxhdGZvcm0gKz0gJy1jYW5hcnkn
Ci0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZ3B1OgotICAgICAgICAgICAgcGxhdGZvcm0gPSAn
Z3B1LScgKyBwbGF0Zm9ybQotCi0gICAgICAgIGRpcl9uYW1lID0gc2VsZi5fZ2V0X2FyY2hpdmVf
ZGlyX25hbWUocGxhdGZvcm0pCisgICAgICAgIGRpcl9uYW1lID0gc2VsZi5fZ2V0X2FyY2hpdmVf
ZGlyX25hbWUoc2VsZi5fcGxhdGZvcm0pCiAgICAgICAgIGlmIG5vdCBkaXJfbmFtZToKICAgICAg
ICAgICAgIHJldHVybiBOb25lCiAKQEAgLTM3NSw4ICszNDcsNyBAQCBjbGFzcyBSZWJhc2VsaW5l
cihvYmplY3QpOgogICAgICAgICBmb3IgbmFtZSBpbiB6aXBfbmFtZWxpc3Q6CiAgICAgICAgICAg
ICBfbG9nLmRlYnVnKCcgICcgKyBuYW1lKQogCi0gICAgICAgIHBsYXRmb3JtID0gc2VsZi5fcmVi
YXNlbGluZV9wb3J0LnRlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1lKHNlbGYuX3BsYXRmb3JtKQot
ICAgICAgICBfbG9nLmRlYnVnKCdQbGF0Zm9ybSBkaXI6ICIlcyInLCBwbGF0Zm9ybSkKKyAgICAg
ICAgX2xvZy5kZWJ1ZygnUGxhdGZvcm0gZGlyOiAiJXMiJywgc2VsZi5fcGxhdGZvcm0pCiAKICAg
ICAgICAgc2VsZi5fcmViYXNlbGluZWRfdGVzdHMgPSBbXQogICAgICAgICBmb3IgdGVzdF9ubywg
dGVzdCBpbiBlbnVtZXJhdGUoc2VsZi5fcmViYXNlbGluaW5nX3Rlc3RzKToKQEAgLTc5MSwxMCAr
NzYyLDYgQEAgZGVmIHBhcnNlX29wdGlvbnMoYXJncyk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J1N1cHByZXNzIHJlc3VsdCBIVE1MIHZpZXdpbmcnKQogCi0gICAgb3B0aW9uX3BhcnNl
ci5hZGRfb3B0aW9uKCctZycsICctLWdwdScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdSZWJhc2VsaW5lIHRoZSBHUFUgdmVyc2lvbnMnKQotCiAgICAgb3B0aW9u
X3BhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBsYXRmb3JtcycsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0oJ0NvbW1hIGRlbGltaXRlZCBsaXN0IG9mIHBsYXRmb3JtcyAnCkBAIC04MDksMTIgKzc3
Niw2IEBAIGRlZiBwYXJzZV9vcHRpb25zKGFyZ3MpOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSgnVXJsIG9mIHJlc3VsdCB6aXAgZmlsZS4gVGhpcyBvcHRpb24gaXMgZm9yIGRl
YnVnZ2luZyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwdXJwb3Nlcycp
KQogCi0gICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCctdycsICctLXdlYmtpdF9jYW5hcnkn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSgnSWYgVHJ1ZSwgcHVsbCBiYXNlbGluZXMgZnJvbSB3ZWJraXQu
b3JnICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhbmFyeSBib3QuJykp
Ci0KICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy1iJywgJy0tYmFja3VwJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKQEAgLTgzMiwyMSArNzkzLDIxIEBAIGRl
ZiBwYXJzZV9vcHRpb25zKGFyZ3MpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSgnVXNlIEltYWdlRGlmZiBmcm9tIER1bXBSZW5kZXJUcmVlIGluc3RlYWQgJwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnb2YgaW1hZ2VfZGlmZiBmb3IgcGl4ZWwgdGVzdHMu
JykpCiAKKyAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy13JywgJy0td2Via2l0X2NhbmFy
eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9KCdERVBSRUNBVEVELiBUaGlzIGZsYWcgbm8gbG9uZ2VyIGhh
cyBhbnkgZWZmZWN0LicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgVGhl
IGNhbmFyaWVzIGFyZSBhbHdheXMgdXNlZC4nKSkKKwogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29w
dGlvbignJywgJy0tdGFyZ2V0LXBsYXRmb3JtJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD0nY2hyb21pdW0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSgnVGhlIHRhcmdldCBwbGF0Zm9ybSB0byByZWJhc2VsaW5lICcKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJygibWFjIiwgImNocm9taXVtIiwgInF0IiwgZXRjLikuIERlZmF1
bHRzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvICJjaHJvbWl1bSIu
JykpCi0gICAgb3B0aW9ucyA9IG9wdGlvbl9wYXJzZXIucGFyc2VfYXJncyhhcmdzKVswXQotICAg
IGlmIG9wdGlvbnMuZ3B1OgotICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJBU0VM
SU5FX0dQVV9PUkRFUgotICAgIGVsaWYgb3B0aW9ucy53ZWJraXRfY2FuYXJ5OgotICAgICAgICBv
cHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJBU0VMSU5FX1dFQktJVF9DQU5BUllfT1JERVIKLSAg
ICBlbHNlOgotICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJBU0VMSU5FX1BMQVRG
T1JNX09SREVSCiAKLSAgICBpZiBvcHRpb25zLnBsYXRmb3JtcyA9PSBOb25lOgotICAgICAgICBv
cHRpb25zLnBsYXRmb3JtcyA9ICcsJy5qb2luKG9wdGlvbnMuYWxsX3BsYXRmb3JtcykKKyAgICBv
cHRpb25zID0gb3B0aW9uX3BhcnNlci5wYXJzZV9hcmdzKGFyZ3MpWzBdCisgICAgaWYgb3B0aW9u
cy53ZWJraXRfY2FuYXJ5OgorICAgICAgICBwcmludCAiLXcvLS13ZWJraXQtY2FuYXJ5IGlzIG5v
IGxvbmdlciBuZWNlc3NhcnksIGlnbm9yaW5nLiIKIAogICAgIHRhcmdldF9vcHRpb25zID0gY29w
eS5jb3B5KG9wdGlvbnMpCiAgICAgaWYgb3B0aW9ucy50YXJnZXRfcGxhdGZvcm0gPT0gJ2Nocm9t
aXVtJzoKQEAgLTkwOSwzMCArODcwLDIxIEBAIGRlZiByZWFsX21haW4ob3B0aW9ucywgdGFyZ2V0
X29wdGlvbnMsIGhvc3RfcG9ydF9vYmosIHRhcmdldF9wb3J0X29iaiwgdXJsX2ZldGNoCiAgICAg
ICAgICAgICB0aGUgYXJjaGl2ZXMuCiAgICAgICAgIHNjbV9vYmo6IG9iamVjdCB1c2VkIHRvIGFk
ZCBuZXcgYmFzZWxpbmVzIHRvIHRoZSBzb3VyY2UgY29udHJvbCBzeXN0ZW0uCiAgICAgIiIiCi0g
ICAgIyBWZXJpZnkgJ3BsYXRmb3Jtcycgb3B0aW9uIGlzIHZhbGlkLgotICAgIGlmIG5vdCBvcHRp
b25zLnBsYXRmb3JtczoKLSAgICAgICAgX2xvZy5lcnJvcignSW52YWxpZCAicGxhdGZvcm1zIiBv
cHRpb24uIC0tcGxhdGZvcm1zIG11c3QgYmUgJwotICAgICAgICAgICAgICAgICAgICdzcGVjaWZp
ZWQgaW4gb3JkZXIgdG8gcmViYXNlbGluZS4nKQotICAgICAgICByZXR1cm4gMQotICAgIHBsYXRm
b3JtcyA9IFtwLnN0cmlwKCkubG93ZXIoKSBmb3IgcCBpbiBvcHRpb25zLnBsYXRmb3Jtcy5zcGxp
dCgnLCcpXQotICAgIGZvciBwbGF0Zm9ybSBpbiBwbGF0Zm9ybXM6Ci0gICAgICAgIGlmIG5vdCBw
bGF0Zm9ybSBpbiBvcHRpb25zLmFsbF9wbGF0Zm9ybXM6Ci0gICAgICAgICAgICBfbG9nLmVycm9y
KCdJbnZhbGlkIHBsYXRmb3JtOiAiJXMiJyAlIChwbGF0Zm9ybSkpCi0gICAgICAgICAgICByZXR1
cm4gMQotCi0gICAgIyBBZGp1c3QgdGhlIHBsYXRmb3JtIG9yZGVyIHNvIHJlYmFzZWxpbmUgdG9v
bCBpcyBydW5uaW5nIGF0IHRoZSBvcmRlciBvZgotICAgICMgJ21hYycsICd3aW4nIGFuZCAnbGlu
dXgnLiBUaGlzIGlzIGluIHNhbWUgb3JkZXIgd2l0aCBsYXlvdXQgdGVzdCBiYXNlbGluZQotICAg
ICMgc2VhcmNoIHBhdGhzLiBJdCBzaW1wbGlmaWVzIGhvdyB0aGUgcmViYXNlbGluZSB0b29sIGRl
dGVjdHMgZHVwbGljYXRlCi0gICAgIyBiYXNlbGluZXMuIENoZWNrIF9Jc0R1cEJhc2VsaW5lIG1l
dGhvZCBmb3IgZGV0YWlscy4KLSAgICByZWJhc2VsaW5lX3BsYXRmb3JtcyA9IFtdCi0gICAgZm9y
IHBsYXRmb3JtIGluIG9wdGlvbnMuYWxsX3BsYXRmb3JtczoKLSAgICAgICAgaWYgcGxhdGZvcm0g
aW4gcGxhdGZvcm1zOgotICAgICAgICAgICAgcmViYXNlbGluZV9wbGF0Zm9ybXMuYXBwZW5kKHBs
YXRmb3JtKQotCiAgICAgb3B0aW9ucy5odG1sX2RpcmVjdG9yeSA9IHNldHVwX2h0bWxfZGlyZWN0
b3J5KGhvc3RfcG9ydF9vYmouX2ZpbGVzeXN0ZW0sIG9wdGlvbnMuaHRtbF9kaXJlY3RvcnkpCisg
ICAgYWxsX3BsYXRmb3JtcyA9IHRhcmdldF9wb3J0X29iai5hbGxfYmFzZWxpbmVfdmFyaWFudHMo
KQorICAgIGlmIG9wdGlvbnMucGxhdGZvcm1zOgorICAgICAgICBiYWlsID0gRmFsc2UKKyAgICAg
ICAgZm9yIHBsYXRmb3JtIGluIG9wdGlvbnMucGxhdGZvcm1zOgorICAgICAgICAgICAgaWYgbm90
IHBsYXRmb3JtIGluIGFsbF9wbGF0Zm9ybXM6CisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcign
SW52YWxpZCBwbGF0Zm9ybTogIiVzIicgJSAocGxhdGZvcm0pKQorICAgICAgICAgICAgICAgIGJh
aWwgPSBUcnVlCisgICAgICAgIGlmIGJhaWw6CisgICAgICAgICAgICByZXR1cm4gMQorICAgICAg
ICByZWJhc2VsaW5lX3BsYXRmb3JtcyA9IG9wdGlvbnMucGxhdGZvcm1zCisgICAgZWxzZToKKyAg
ICAgICAgcmViYXNlbGluZV9wbGF0Zm9ybXMgPSBhbGxfcGxhdGZvcm1zCiAKICAgICByZWJhc2Vs
aW5lZF90ZXN0cyA9IHNldCgpCi0gICAgYmFja3VwID0gb3B0aW9ucy5iYWNrdXAKICAgICBmb3Ig
cGxhdGZvcm0gaW4gcmViYXNlbGluZV9wbGF0Zm9ybXM6CiAgICAgICAgIHJlYmFzZWxpbmVyID0g
UmViYXNlbGluZXIoaG9zdF9wb3J0X29iaiwgdGFyZ2V0X3BvcnRfb2JqLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtLCBvcHRpb25zLCB1cmxfZmV0Y2hlciwgemlw
X2ZhY3RvcnksCkBAIC05NDAsMTcgKzg5MiwxNiBAQCBkZWYgcmVhbF9tYWluKG9wdGlvbnMsIHRh
cmdldF9vcHRpb25zLCBob3N0X3BvcnRfb2JqLCB0YXJnZXRfcG9ydF9vYmosIHVybF9mZXRjaAog
CiAgICAgICAgIF9sb2cuaW5mbygnJykKICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ1JlYmFz
ZWxpbmUgc3RhcnRlZCcsIHBsYXRmb3JtKQotICAgICAgICBpZiByZWJhc2VsaW5lci5ydW4oYmFj
a3VwKToKKyAgICAgICAgaWYgcmViYXNlbGluZXIucnVuKCk6CiAgICAgICAgICAgICBsb2dfZGFz
aGVkX3N0cmluZygnUmViYXNlbGluZSBkb25lJywgcGxhdGZvcm0pCiAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNlbGluZSBmYWlsZWQnLCBwbGF0Zm9y
bSwgbG9nZ2luZy5FUlJPUikKIAogICAgICAgICByZWJhc2VsaW5lZF90ZXN0cyB8PSBzZXQocmVi
YXNlbGluZXIuZ2V0X3JlYmFzZWxpbmVkX3Rlc3RzKCkpCiAKLSAgICAjIEZJWE1FOiBuZWVkIHRv
IHJlZW5hYmxlIHRoaXMgYWZ0ZXIgd2UgYXJlIGNvcnJlY3RseSBydW5uaW5nIGFsbAotICAgICMg
Y29uZmlndXJhdGlvbnMuCi0gICAgI2lmIHJlYmFzZWxpbmVkX3Rlc3RzOgotICAgICMgICAgcmVi
YXNlbGluZXIucmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzX2Zyb21fZXhwZWN0YXRpb25zKHJlYmFz
ZWxpbmVkX3Rlc3RzLCBiYWNrdXApCisgICAgaWYgcmViYXNlbGluZWRfdGVzdHM6CisgICAgICAg
IHJlYmFzZWxpbmVyLnJlbW92ZV9yZWJhc2VsaW5pbmdfZXhwZWN0YXRpb25zKHJlYmFzZWxpbmVk
X3Rlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25zLmJhY2t1cCkKIAogICAgIF9sb2cuaW5mbygnJykKICAgICBsb2dfZGFzaGVk
X3N0cmluZygnUmViYXNlbGluaW5nIHJlc3VsdCBjb21wYXJpc29uIHN0YXJ0ZWQnLCBOb25lKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGlu
ZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVz
dC5weQppbmRleCAwM2E1ZDFiZjA1YzZkODlkY2EwNzU2ZGEwMjgzMGUyZWFjNzAxMWFmLi44NGU2
MTc3ODVjMjNkZmM3NjJhOWUyZjk0ZWYyNDRhZTZjYWUxNDEwIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90
ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQpAQCAtNjUsMTQg
KzY1LDkgQEAgZGVmIHRlc3Rfb3B0aW9ucygpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBodG1sX2RpcmVjdG9yeT0nL3RtcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyY2hpdmVfdXJsPUFSQ0hJVkVfVVJMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb3JjZV9hcmNoaXZlX3VybD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWJraXRfY2FuYXJ5PVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVzZV9kcnQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9w
bGF0Zm9ybT0nY2hyb21pdW0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJi
b3NlPUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWlldD1GYWxzZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsX3BsYXRmb3Jtcz1yZWJhc2VsaW5l
X2Nocm9taXVtX3dlYmtpdF90ZXN0cy5SRUJBU0VMSU5FX1dFQktJVF9DQU5BUllfT1JERVIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3Jtcz1Ob25lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBncHU9RmFsc2UpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBsYXRmb3Jtcz1Ob25lKQogCiAKIGRlZiB0ZXN0X2hvc3RfcG9ydF9hbmRfZmls
ZXN5c3RlbShvcHRpb25zLCBleHBlY3RhdGlvbnMpOgpAQCAtMTMzLDYgKzEyOCwxNCBAQCBkZWYg
dGVzdF96aXBfZmFjdG9yeSgpOgogICAgIHJldHVybiB6aXBmaWxlc2V0X21vY2subWFrZV9mYWN0
b3J5KHppcGhhc2hlcykKIAogCitkZWYgdGVzdF9hcmNoaXZlKG9yaWdfYXJjaGl2ZV9kaWN0KToK
KyAgICBuZXdfYXJjaGl2ZV9kaWN0ID0ge30KKyAgICBmb3IgcGxhdGZvcm0sIGRpcm5hbWUgaW4g
b3JpZ19hcmNoaXZlX2RpY3QuaXRlcml0ZW1zKCk6CisgICAgICAgIHBsYXRmb3JtID0gcGxhdGZv
cm0ucmVwbGFjZSgnY2hyb21pdW0nLCAndGVzdCcpCisgICAgICAgIG5ld19hcmNoaXZlX2RpY3Rb
cGxhdGZvcm1dID0gZGlybmFtZQorICAgIHJldHVybiBuZXdfYXJjaGl2ZV9kaWN0CisKKwogY2xh
c3MgVGVzdEdldEhvc3RQb3J0T2JqZWN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgYXNz
ZXJ0X3Jlc3VsdChzZWxmLCByZWxlYXNlX3ByZXNlbnQsIGRlYnVnX3ByZXNlbnQsIHZhbGlkX3Bv
cnRfb2JqKToKICAgICAgICAgIyBUZXN0cyB3aGV0aGVyIHdlIGdldCBhIHZhbGlkIHBvcnQgb2Jq
ZWN0IHJldHVybmVkIHdoZW4gd2UgY2xhaW0KQEAgLTE3NSw2ICsxNzgsMTQgQEAgY2xhc3MgVGVz
dE9wdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogCiAKIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1
bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBpZiBub3Qg
aGFzYXR0cihzZWxmLCAnX29yaWdfYXJjaGl2ZScpOgorICAgICAgICAgICAgc2VsZi5fb3JpZ19h
cmNoaXZlID0gcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMuQVJDSElWRV9ESVJfTkFN
RV9ESUNUCisgICAgICAgICAgICByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5BUkNI
SVZFX0RJUl9OQU1FX0RJQ1QgPSB0ZXN0X2FyY2hpdmUoc2VsZi5fb3JpZ19hcmNoaXZlKQorCisg
ICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtp
dF90ZXN0cy5BUkNISVZFX0RJUl9OQU1FX0RJQ1QgPSBzZWxmLl9vcmlnX2FyY2hpdmUKKwogICAg
IGRlZiBtYWtlX3JlYmFzZWxpbmVyKHNlbGYsIGV4cGVjdGF0aW9ucyk6CiAgICAgICAgIG9wdGlv
bnMgPSB0ZXN0X29wdGlvbnMoKQogICAgICAgICBob3N0X3BvcnRfb2JqLCBmaWxlc3lzdGVtID0g
dGVzdF9ob3N0X3BvcnRfYW5kX2ZpbGVzeXN0ZW0ob3B0aW9ucywgZXhwZWN0YXRpb25zKQpAQCAt
MTgzLDcgKzE5NCw3IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHRhcmdldF9wb3J0X29iaiA9IHBvcnQuZ2V0KCd0ZXN0JywgdGFyZ2V0X29wdGlv
bnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzeXN0ZW09ZmlsZXN5
c3RlbSkKICAgICAgICAgdGFyZ2V0X3BvcnRfb2JqLl9leHBlY3RhdGlvbnMgPSBleHBlY3RhdGlv
bnMKLSAgICAgICAgcGxhdGZvcm0gPSB0YXJnZXRfcG9ydF9vYmoudGVzdF9wbGF0Zm9ybV9uYW1l
KCkKKyAgICAgICAgcGxhdGZvcm0gPSB0YXJnZXRfcG9ydF9vYmoubmFtZSgpCiAKICAgICAgICAg
dXJsX2ZldGNoZXIgPSB0ZXN0X3VybF9mZXRjaGVyKGZpbGVzeXN0ZW0pCiAgICAgICAgIHppcF9m
YWN0b3J5ID0gdGVzdF96aXBfZmFjdG9yeSgpCkBAIC0xOTYsNyArMjA3LDcgQEAgY2xhc3MgVGVz
dFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyB0aGlzIG1ldGhvZCB0
ZXN0cyB0aGF0IHdhcyBjYW4gYXQgbGVhc3QgaW5zdGFudGlhdGUgYW4gb2JqZWN0LCBldmVuCiAg
ICAgICAgICMgaWYgdGhlcmUgaXMgbm90aGluZyB0byBkby4KICAgICAgICAgcmViYXNlbGluZXIs
IGZpbGVzeXN0ZW0gPSBzZWxmLm1ha2VfcmViYXNlbGluZXIoIiIpCi0gICAgICAgIHJlYmFzZWxp
bmVyLnJ1bihGYWxzZSkKKyAgICAgICAgcmViYXNlbGluZXIucnVuKCkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzKSwgMSkKIAogICAgIGRlZiB0
ZXN0X3JlYmFzZWxpbmluZ190ZXN0cyhzZWxmKToKQEAgLTIxNiw3ICsyMjcsNyBAQCBjbGFzcyBU
ZXN0UmViYXNlbGluZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X29uZV9wbGF0
Zm9ybShzZWxmKToKICAgICAgICAgcmViYXNlbGluZXIsIGZpbGVzeXN0ZW0gPSBzZWxmLm1ha2Vf
cmViYXNlbGluZXIoCiAgICAgICAgICAgICAiQlVHWCBSRUJBU0VMSU5FIE1BQyA6IGZhaWx1cmVz
L2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBJTUFHRSIpCi0gICAgICAgIHJlYmFzZWxpbmVyLnJ1bihG
YWxzZSkKKyAgICAgICAgcmViYXNlbGluZXIucnVuKCkKICAgICAgICAgIyBXZSBleHBlY3QgdG8g
aGF2ZSB3cml0dGVuIDEyIGZpbGVzIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGlzIHJlYmFzZWxpbmU6
CiAgICAgICAgICMgKikgMyBmaWxlcyBpbiAvX19pbV90bXAgZm9yIHRoZSBleHRyYWN0ZWQgYXJj
aGl2ZSBtZW1iZXJzCiAgICAgICAgICMgKikgMyBuZXcgYmFzZWxpbmVzIHVuZGVyICcvdGVzdC5j
aGVja291dC9MYXlvdXRUZXN0cycKQEAgLTIzMyw3ICsyNDQsNyBAQCBjbGFzcyBUZXN0UmViYXNl
bGluZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2FsbF9wbGF0Zm9ybXMoc2Vs
Zik6CiAgICAgICAgIHJlYmFzZWxpbmVyLCBmaWxlc3lzdGVtID0gc2VsZi5tYWtlX3JlYmFzZWxp
bmVyKAogICAgICAgICAgICAgIkJVR1ggUkVCQVNFTElORSA6IGZhaWx1cmVzL2V4cGVjdGVkL2lt
YWdlLmh0bWwgPSBJTUFHRSIpCi0gICAgICAgIHJlYmFzZWxpbmVyLnJ1bihGYWxzZSkKKyAgICAg
ICAgcmViYXNlbGluZXIucnVuKCkKICAgICAgICAgIyBTZWUgY29tbWVudCBpbiB0ZXN0X29uZV9w
bGF0Zm9ybSBmb3IgYW4gZXhwbGFuYXRpb24gb2YgdGhlIDEyIHdyaXR0ZW4gdGVzdHMuCiAgICAg
ICAgICMgTm90ZSB0aGF0IGV2ZW4gdGhvdWdoIHRoZSByZWJhc2VsaW5lIGlzIG1hcmtlZCBmb3Ig
YWxsIHBsYXRmb3JtcywgZWFjaAogICAgICAgICAjIHJlYmFzZWxpbmVyIG9ubHkgZXZlciBkb2Vz
IG9uZS4KQEAgLTI2MCwxMiArMjcxLDE4IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1bml0dGVz
dC5UZXN0Q2FzZSk6CiAKIAogY2xhc3MgVGVzdFJlYWxNYWluKHVuaXR0ZXN0LlRlc3RDYXNlKToK
KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfb3Jp
Z19hcmNoaXZlJyk6CisgICAgICAgICAgICBzZWxmLl9vcmlnX2FyY2hpdmUgPSByZWJhc2VsaW5l
X2Nocm9taXVtX3dlYmtpdF90ZXN0cy5BUkNISVZFX0RJUl9OQU1FX0RJQ1QKKyAgICAgICAgICAg
IHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLkFSQ0hJVkVfRElSX05BTUVfRElDVCA9
IHRlc3RfYXJjaGl2ZShzZWxmLl9vcmlnX2FyY2hpdmUpCisKKyAgICBkZWYgdGVhckRvd24oc2Vs
Zik6CisgICAgICAgIHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLkFSQ0hJVkVfRElS
X05BTUVfRElDVCA9IHNlbGYuX29yaWdfYXJjaGl2ZQorCiAgICAgZGVmIHRlc3RfYWxsX3BsYXRm
b3JtcyhzZWxmKToKICAgICAgICAgZXhwZWN0YXRpb25zID0gIkJVR1ggUkVCQVNFTElORSA6IGZh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBJTUFHRSIKIAogICAgICAgICBvcHRpb25zID0g
dGVzdF9vcHRpb25zKCkKLSAgICAgICAgb3B0aW9ucy5wbGF0Zm9ybXMgPSAnLCcuam9pbihvcHRp
b25zLmFsbF9wbGF0Zm9ybXMpCi0KICAgICAgICAgaG9zdF9wb3J0X29iaiwgZmlsZXN5c3RlbSA9
IHRlc3RfaG9zdF9wb3J0X2FuZF9maWxlc3lzdGVtKG9wdGlvbnMsIGV4cGVjdGF0aW9ucykKICAg
ICAgICAgdXJsX2ZldGNoZXIgPSB0ZXN0X3VybF9mZXRjaGVyKGZpbGVzeXN0ZW0pCiAgICAgICAg
IHppcF9mYWN0b3J5ID0gdGVzdF96aXBfZmFjdG9yeSgpCkBAIC0yOTIsNyArMzA5LDcgQEAgY2xh
c3MgVGVzdEh0bWxHZW5lcmF0b3IodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBvcHRpb25z
ID0gbW9ja3Rvb2wuTW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj1Ob25lLCBodG1sX2RpcmVjdG9y
eT0nL3RtcCcpCiAgICAgICAgIGhvc3RfcG9ydCA9IHBvcnQuZ2V0KCd0ZXN0Jywgb3B0aW9ucywg
ZmlsZXN5c3RlbT1wb3J0LnVuaXRfdGVzdF9maWxlc3lzdGVtKGZpbGVzKSkKICAgICAgICAgZ2Vu
ZXJhdG9yID0gcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMuSHRtbEdlbmVyYXRvciho
b3N0X3BvcnQsCi0gICAgICAgICAgICB0YXJnZXRfcG9ydD1Ob25lLCBvcHRpb25zPW9wdGlvbnMs
IHBsYXRmb3Jtcz1bJ21hYyddLCByZWJhc2VsaW5pbmdfdGVzdHM9dGVzdHMpCisgICAgICAgICAg
ICB0YXJnZXRfcG9ydD1Ob25lLCBvcHRpb25zPW9wdGlvbnMsIHBsYXRmb3Jtcz1bJ3Rlc3QtbWFj
LWxlb3BhcmQnXSwgcmViYXNlbGluaW5nX3Rlc3RzPXRlc3RzKQogICAgICAgICByZXR1cm4gZ2Vu
ZXJhdG9yLCBob3N0X3BvcnQKIAogICAgIGRlZiB0ZXN0X2dlbmVyYXRlX2Jhc2VsaW5lX2xpbmtz
KHNlbGYpOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>