<?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>97051</bug_id>
          
          <creation_ts>2012-09-18 16:07:32 -0700</creation_ts>
          <short_desc>IndexedDB: Rewrite confusing call sequence layout tests</short_desc>
          <delta_ts>2012-09-27 12:56:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>97368</blocked>
    
    <blocked>97482</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>723117</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-18 16:07:32 -0700</bug_when>
    <thetext>IndexedDB: Rewrite confusing call sequence layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723118</commentid>
    <comment_count>1</comment_count>
      <attachid>164634</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-18 16:07:50 -0700</bug_when>
    <thetext>Created attachment 164634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723120</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-18 16:14:16 -0700</bug_when>
    <thetext>This is a work in progress - I want to go through and rewrite two of the layout tests that push IDB through a series of states. The tests (which I wrote when I was a n00b!) are written in a fairly confusing style using a wrapper object around the IDB API. This makes them difficult to maintain and understand.

I plan to leave the intent of the tests intact and ensure that the tests still push IDB through the same set of states (opening/closing/versioning/deleting) databases, but with simpler, more &quot;idiomatic&quot; code, and eventually break them out into separate files.

The two tests are:

factory-deletedatabase-interactions.html
open-close-version.html

I&apos;ve tackled the first sub-test of open-close-version.html, attached. The output differs by tweaking the database name (a change), using evalAndLog() for API calls (more spammy), adding assertions about sequence (the ++state thingy), and removing the summary &quot;concate the states together and make sure the strings match&quot; which was confusing and redundant.

If this looks acceptable I&apos;ll do the rest to the other sub-tests, land, then do a clean-up pass removing a lot of the extraneous debug() calls, land, then finally split the tests up into separate files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723808</commentid>
    <comment_count>3</comment_count>
      <attachid>164774</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-19 14:07:13 -0700</bug_when>
    <thetext>Created attachment 164774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723839</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-19 14:32:19 -0700</bug_when>
    <thetext>The latest patch goes ahead and converts all of those tests over. The *-expected.txt diffs are minimized to show that the tests themselves are doing the same thing as previously. Once this has landed I&apos;ll split them into separate files, update the output, and eliminate some of the nested functions to make them easier to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723840</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-19 14:32:33 -0700</bug_when>
    <thetext>dgrogan@, alecflett@ - please take a look</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723872</commentid>
    <comment_count>6</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-09-19 15:18:19 -0700</bug_when>
    <thetext>lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723961</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-19 16:39:31 -0700</bug_when>
    <thetext>tony@ - test only changes - r? cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724655</commentid>
    <comment_count>8</comment_count>
      <attachid>164774</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-20 10:59:58 -0700</bug_when>
    <thetext>Comment on attachment 164774
Patch

Clearing flags on attachment: 164774

Committed r129142: &lt;http://trac.webkit.org/changeset/129142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724657</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-20 11:00:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164634</attachid>
            <date>2012-09-18 16:07:50 -0700</date>
            <delta_ts>2012-09-19 14:07:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97051-20120918160717.patch</filename>
            <type>text/plain</type>
            <size>6755</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGE5NmJiNDE3ZmYwMGE4ODJhMzM2
YjE3MmQ3Y2Q3M2U1OWE4ZDE4ZS4uYjcwOWU2ZmJkNmI1NWY5MDBjOThmZGM5ZGQwMDUzZmQ3Zjg2
MzIxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTE4ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZXdyaXRlIGNvbmZ1c2lu
ZyBjYWxsIHNlcXVlbmNlIGxheW91dCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcwNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ug
c3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNj
cmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29w
ZW4tY2xvc2UtdmVyc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL29wZW4tY2xvc2UtdmVyc2lvbi5qczoKKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAodGVzdDEucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nlc3MuaDIub252ZXJz
aW9uY2hhbmdlKToKKyAgICAgICAgKHRlc3QxLnJlcXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25z
dWNjZXNzLnJlcXVlc3Qub25ibG9ja2VkKToKKyAgICAgICAgKHRlc3QxLnJlcXVlc3Qub25zdWNj
ZXNzLnJlcXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25zdWNjZXNzLnRyYW5zYWN0aW9uLm9uY29t
cGxldGUpOgorICAgICAgICAodGVzdDEucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nl
c3MucmVxdWVzdC5vbnN1Y2Nlc3MpOgorCiAyMDEyLTA5LTE4ICBSYXBoYWVsIEt1Ym8gZGEgQ29z
dGEgIDxyYXBoYWVsLmt1Ym8uZGEuY29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEdh
cmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4t
Y2xvc2UtdmVyc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9vcGVuLWNsb3NlLXZlcnNpb24tZXhwZWN0ZWQudHh0CmluZGV4IGI5MjU2NzBhMWY2OWExMmEw
MmUxNzk0ZmQxNmYwNGYyYjAzOWNjNDcuLjM4YjNmYWZjNWFmODZkNjZjMjI0YzE2YmE4NTcwOGU2
YTAyZGZjMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4t
Y2xvc2UtdmVyc2lvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvb3Blbi1jbG9zZS12ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtNSwyMSArNSwzMyBAQCBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBz
ZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhl
ZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAorZGJuYW1lID0gIm9wZW4tY2xvc2UtdmVyc2lvbi5o
dG1sIgogCiBURVNUOiBzZXRWZXJzaW9uIGJsb2NrZWQgb24gb3BlbiBoYW5kbGVzCi1zZWxmLmRi
bmFtZSA9ICd0ZXN0MSc7IHNlbGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdCit0ZXN0bmFtZSA9
ICd0ZXN0MSc7IHNlbGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdCitzdGF0ZSA9IDAKICdoMS5v
cGVuJworaW5kZXhlZERCLm9wZW4oZGJuYW1lICsgdGVzdG5hbWUpCiAnaDEub3Blbi5vbnN1Y2Nl
c3MnCitQQVNTICsrc3RhdGUgaXMgMQogJ2gyLm9wZW4nCitpbmRleGVkREIub3BlbihkYm5hbWUg
KyB0ZXN0bmFtZSkKICdoMi5vcGVuLm9uc3VjY2VzcycKK1BBU1MgKytzdGF0ZSBpcyAyCiAnaDEu
c2V0VmVyc2lvbicKK2gxLnNldFZlcnNpb24oc2VsZi52ZXIrKykKK1BBU1MgKytzdGF0ZSBpcyAz
CiAnaDIub252ZXJzaW9uY2hhbmdlJwogICAgIGgyIGNsb3NpbmcsIGJ1dCBub3QgaW1tZWRpYXRl
bHkKK1BBU1MgKytzdGF0ZSBpcyA0CiAnaDEuc2V0VmVyc2lvbi5vbmJsb2NrZWQnCitQQVNTICsr
c3RhdGUgaXMgNQogJ2gyLmNsb3NlJworaDIuY2xvc2UoKQogJ2gxLnNldFZlcnNpb24ub25zdWNj
ZXNzJworUEFTUyArK3N0YXRlIGlzIDYKK1BBU1MgKytzdGF0ZSBpcyA3CiAnaDEuc2V0VmVyc2lv
bi50cmFuc2FjdGlvbi1jb21wbGV0ZScKLVBBU1Mgc2VsZi5zdGVwcy50b1N0cmluZygpIGlzICJo
MS5vcGVuLGgxLm9wZW4ub25zdWNjZXNzLGgyLm9wZW4saDIub3Blbi5vbnN1Y2Nlc3MsaDEuc2V0
VmVyc2lvbixoMi5vbnZlcnNpb25jaGFuZ2UsaDEuc2V0VmVyc2lvbi5vbmJsb2NrZWQsaDIuY2xv
c2UsaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MsaDEuc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21w
bGV0ZSIKIAogVEVTVDogc2V0VmVyc2lvbiBub3QgYmxvY2tlZCBpZiBoYW5kbGUgY2xvc2VkIGlt
bWVkaWF0ZWx5CiBzZWxmLmRibmFtZSA9ICd0ZXN0Mic7IHNlbGYudmVyID0gMTsgc2VsZi5zdGVw
cyA9IFtdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvb3Blbi1jbG9zZS12ZXJzaW9uLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL29wZW4tY2xvc2UtdmVyc2lvbi5qcwppbmRleCBhNGY1Y2IzYTdlMjc3NmNjNzk4
NGNkNjg4NmRlNjQ3NmI1YTYyNmYxLi40ODViNWJhZmUzNGFjZDMyMTJiYjVhNzc1ZDBkZWYzZTE3
NzViOTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvb3Blbi1jbG9zZS12ZXJzaW9uLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9vcGVuLWNsb3NlLXZlcnNpb24uanMKQEAgLTc3LDM4ICs3Nyw2NyBAQCBm
dW5jdGlvbiBydW5TdGVwcyhjb21tYW5kcykgewogCiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIHJl
bW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKICAgICB0ZXN0
MSgpOwogfQorc2V0VGltZW91dChmaW5pc2hKU1Rlc3QsMzAwMCk7CiAKIGZ1bmN0aW9uIHRlc3Qx
KCkgewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiVEVTVDogc2V0VmVyc2lvbiBibG9ja2Vk
IG9uIG9wZW4gaGFuZGxlcyIpOwotICAgIGV2YWxBbmRMb2coInNlbGYuZGJuYW1lID0gJ3Rlc3Qx
Jzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0gW10iKTsKLSAgICB2YXIgaDEgPSBuZXcgQ29u
bmVjdGlvbigiaDEiKTsKLSAgICB2YXIgaDIgPSBuZXcgQ29ubmVjdGlvbigiaDIiKTsKLSAgICBy
dW5TdGVwcyhbZnVuY3Rpb24oZG9OZXh0KSB7IGgxLm9wZW4oe29uc3VjY2VzczogZG9OZXh0fSk7
IH0sCi0gICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgaDIub3Blbih7b25zdWNjZXNzOiBkb05l
eHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9udmVyc2lvbjogZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiICAgIGgyIGNs
b3NpbmcsIGJ1dCBub3QgaW1tZWRpYXRlbHkiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGgyLmNsb3NlKCk7IH0sIDApOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7IH0sCi0gICAgICAgICBmdW5jdGlvbihk
b05leHQpIHsgaDEuc2V0VmVyc2lvbih7b25zdWNjZXNzOiBmaW5pc2hUZXN0fSk7IH0sCi0gICAg
ICAgICBdKTsKLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInNlbGYuc3RlcHMudG9TdHJpbmcoKSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbImgxLm9wZW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJo
MS5vcGVuLm9uc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgyLm9w
ZW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vcGVuLm9uc3VjY2VzcyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgxLnNldFZlcnNpb24iLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vbnZlcnNpb25jaGFuZ2UiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uLm9uYmxvY2tlZCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImgyLmNsb3NlIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmcoKSk7Ci0gICAgICAgIHRlc3QyKCk7
Ci0gICAgfQorICAgIGV2YWxBbmRMb2coInRlc3RuYW1lID0gJ3Rlc3QxJzsgc2VsZi52ZXIgPSAx
OyBzZWxmLnN0ZXBzID0gW10iKTsKKyAgICBldmFsQW5kTG9nKCJzdGF0ZSA9IDAiKTsKKworICAg
IGRlYnVnKCInaDEub3BlbiciKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERC
Lm9wZW4oZGJuYW1lICsgdGVzdG5hbWUpIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4
cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgIGRlYnVnKCInaDEub3Blbi5vbnN1Y2Nlc3MnIik7CisgICAgICAgIGgxID0gcmVxdWVzdC5y
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlKCIrK3N0YXRlIiwgIjEiKTsKKworICAgICAgICBkZWJ1
ZygiJ2gyLm9wZW4nIik7CisgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
b3BlbihkYm5hbWUgKyB0ZXN0bmFtZSkiKTsKKyAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1
bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGRlYnVnKCInaDIub3Blbi5vbnN1Y2Nlc3MnIik7CisgICAgICAg
ICAgICBoMiA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmUoIisrc3RhdGUi
LCAiMiIpOworCisgICAgICAgICAgICBoMi5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgiKytzdGF0ZSIsICIzIik7CisgICAgICAgICAgICAg
ICAgZGVidWcoIidoMi5vbnZlcnNpb25jaGFuZ2UnIik7CisgICAgICAgICAgICAgICAgZGVidWco
IiAgICBoMiBjbG9zaW5nLCBidXQgbm90IGltbWVkaWF0ZWx5Iik7CisgICAgICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoIisr
c3RhdGUiLCAiNSIpOworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiJ2gyLmNsb3NlJyIpOwor
ICAgICAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJoMi5jbG9zZSgpIik7CisgICAgICAgICAg
ICAgICAgfSwgMCk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBkZWJ1ZygiJ2gxLnNl
dFZlcnNpb24nIik7CisgICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaDEuc2V0VmVy
c2lvbihzZWxmLnZlcisrKSIpOworICAgICAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgiKytzdGF0ZSIsICI0Iik7CisgICAg
ICAgICAgICAgICAgZGVidWcoIidoMS5zZXRWZXJzaW9uLm9uYmxvY2tlZCciKTsKKyAgICAgICAg
ICAgIH07CisgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgZGVidWcoIidoMS5zZXRWZXJzaW9uLm9uc3VjY2VzcyciKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgiKytzdGF0ZSIsICI2Iik7CisKKyAgICAgICAgICAgICAgICB0cmFu
c2FjdGlvbiA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9u
YWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICAgICAgICAgICAgICB0cmFuc2Fj
dGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCIrK3N0YXRlIiwgIjciKTsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoIidoMS5zZXRW
ZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlJyIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
MigpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAg
IH07CiB9CiAKIGZ1bmN0aW9uIHRlc3QyKCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164774</attachid>
            <date>2012-09-19 14:07:13 -0700</date>
            <delta_ts>2012-09-20 10:59:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97051-20120919140639.patch</filename>
            <type>text/plain</type>
            <size>56106</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTgxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDYzYTdjNWRiNDA2MzFlYzYxNzQ4
ZmY5YTQ4NWFkOWE5NzA1ZWNkMS4uNWVjYTE5NGVjOThkYzc2ZmEzODI2NzRlZDZjNzY4ZjAzYWQy
MWE2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTE5ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZXdyaXRlIGNvbmZ1c2lu
ZyBjYWxsIHNlcXVlbmNlIGxheW91dCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcwNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXdyaXRlIHNvbWUgY29udm9sdXRlZCBhbmQgaGFyZCB0byB1
bmRlcnN0YW5kL21haW50YWluIHRlc3RzIGluIGEgbW9yZSBpZGlvbWF0aWMgZmFzaGlvbi4KKyAg
ICAgICAgVGhpcyBwYXRjaCBtYWludGFpbnMgdGhlIGJ1bGsgb2YgdGhlIG5vbi1zdGFuZGFyZCBv
dXRwdXQgdG8gdmVyaWZ5IHRoYXQgdGhlIHRlc3RzIGhhdmUgbm90CisgICAgICAgIGNoYW5nZWQg
aW4gYmVoYXZpb3I7IGZvbGxvdy11cHMgd2lsbCBtYWtlIHRoZSBvdXRwdXQgbW9yZSBzdGFuZGFy
ZCBhbmQgc3BsaXQgdGhlIHRlc3RzCisgICAgICAgIGludG8gc2VwYXJhdGUgZmlsZXMuCisKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0
aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jbG9z
ZS12ZXJzaW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMuanM6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29wZW4tY2xvc2UtdmVyc2lvbi5qczoKKwogMjAx
Mi0wOS0xOSAgQmFsYXpzIEFua2VzICA8YmFua0BpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAg
W1F0XSBSRUdSRVNTSU9OKHIxMjg5MTApOiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LXBhbmVsLmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJh
Y3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBjYmE5OTU4ZmE4ODBmNGZkZTgxNmZhZmU5MDRlOTdj
ZDNmYjVlMmZmLi40NjJhOTE3NzI1OTA0MzEwNmNhNmIzNjkxMzUwZTlkOTE5MWEwOGMxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFi
YXNlLWludGVyYWN0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0
CkBAIC01LDkgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKK2RibmFtZSA9ICJm
YWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy5odG1sIgogCiBURVNUOiBkZWxldGVE
YXRhYmFzZSBibG9ja2VkIG9uIG9wZW4gaGFuZGxlcwotc2VsZi5kYm5hbWUgPSAndGVzdDEnOyBz
ZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQorc2VsZi50ZXN0bmFtZSA9ICd0ZXN0MSc7IHNl
bGYudmVyID0gMQogJ2gub3BlbicKICdoLm9wZW4ub25zdWNjZXNzJwogJ2RlbGV0ZURhdGFiYXNl
KCknCkBAIC0xNywxMCArMTgsMTAgQEAgc2VsZi5kYm5hbWUgPSAndGVzdDEnOyBzZWxmLnZlciA9
IDE7IHNlbGYuc3RlcHMgPSBbXQogJ2RlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkJwogJ2guY2xv
c2UnCiAnZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MnCi1QQVNTIHNlbGYuc3RlcHMudG9TdHJp
bmcoKSBpcyAiaC5vcGVuLGgub3Blbi5vbnN1Y2Nlc3MsZGVsZXRlRGF0YWJhc2UoKSxoLm9udmVy
c2lvbmNoYW5nZSxkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCxoLmNsb3NlLGRlbGV0ZURhdGFi
YXNlKCkub25zdWNjZXNzIgorUEFTUyBibG9ja2VkRXZlbnRGaXJlZCBpcyB0cnVlCiAKIFRFU1Q6
IGRlbGV0ZURhdGFiYXNlIG5vdCBibG9ja2VkIHdoZW4gaGFuZGxlcyBjbG9zZSBpbW1lZGlhdGVs
eQotc2VsZi5kYm5hbWUgPSAndGVzdDInOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQor
c2VsZi50ZXN0bmFtZSA9ICd0ZXN0Mic7IHNlbGYudmVyID0gMQogJ2gub3BlbicKICdoLm9wZW4u
b25zdWNjZXNzJwogJ2RlbGV0ZURhdGFiYXNlKCknCkBAIC0zMSwxMCArMzIsMTAgQEAgc2VsZi5k
Ym5hbWUgPSAndGVzdDInOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQogJ2RlbGV0ZURh
dGFiYXNlKCkub25ibG9ja2VkJwogJ2RlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzJwogTk9URTog
V2lsbCBGQUlMIHdpdGggZXh0cmEgYm9ndXMgZGVsZXRlRGF0YWJhc2UoKS5vbmJsb2NrZWQgc3Rl
cDsgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTMwCi1GQUlMIHNl
bGYuc3RlcHMudG9TdHJpbmcoKSBzaG91bGQgYmUgaC5vcGVuLGgub3Blbi5vbnN1Y2Nlc3MsZGVs
ZXRlRGF0YWJhc2UoKSxoLm9udmVyc2lvbmNoYW5nZSxoLmNsb3NlLGRlbGV0ZURhdGFiYXNlKCku
b25zdWNjZXNzLiBXYXMgaC5vcGVuLGgub3Blbi5vbnN1Y2Nlc3MsZGVsZXRlRGF0YWJhc2UoKSxo
Lm9udmVyc2lvbmNoYW5nZSxoLmNsb3NlLGRlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkLGRlbGV0
ZURhdGFiYXNlKCkub25zdWNjZXNzLgorRkFJTCBibG9ja2VkRXZlbnRGaXJlZCBzaG91bGQgYmUg
ZmFsc2UuIFdhcyB0cnVlLgogCiBURVNUOiBkZWxldGVEYXRhYmFzZSBpcyBkZWxheWVkIGlmIGEg
VkVSU0lPTl9DSEFOR0UgdHJhbnNhY3Rpb24gaXMgcnVubmluZwotc2VsZi5kYm5hbWUgPSAndGVz
dDMnOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQorc2VsZi50ZXN0bmFtZSA9ICd0ZXN0
Myc7IHNlbGYudmVyID0gMQogJ2gub3BlbicKICdoLm9wZW4ub25zdWNjZXNzJwogJ2guc2V0VmVy
c2lvbicKQEAgLTQ3LDEwICs0OCwxMCBAQCBzZWxmLmRibmFtZSA9ICd0ZXN0Myc7IHNlbGYudmVy
ID0gMTsgc2VsZi5zdGVwcyA9IFtdCiAnZGVsZXRlRGF0YWJhc2UoKS5vbmJsb2NrZWQnCiAnaC5j
bG9zZScKICdkZWxldGVEYXRhYmFzZSgpLm9uc3VjY2VzcycKLVBBU1Mgc2VsZi5zdGVwcy50b1N0
cmluZygpIGlzICJoLm9wZW4saC5vcGVuLm9uc3VjY2VzcyxoLnNldFZlcnNpb24sZGVsZXRlRGF0
YWJhc2UoKSxoLnNldFZlcnNpb24ub25zdWNjZXNzLGguc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1j
b21wbGV0ZSxoLm9udmVyc2lvbmNoYW5nZSxkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCxoLmNs
b3NlLGRlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzIgorUEFTUyB2ZXJzaW9uQ2hhbmdlQ29tcGxl
dGUgaXMgdHJ1ZQogCiBURVNUOiBDb3JyZWN0IG9yZGVyIHdoZW4gdGhlcmUgYXJlIHBlbmRpbmcg
c2V0VmVyc2lvbiwgZGVsZXRlIGFuZCBvcGVuIGNhbGxzLgotc2VsZi5kYm5hbWUgPSAndGVzdDQn
OyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQorc2VsZi50ZXN0bmFtZSA9ICd0ZXN0NCc7
IHNlbGYudmVyID0gMQogJ2gub3BlbicKICdoLm9wZW4ub25zdWNjZXNzJwogJ2gyLm9wZW4nCkBA
IC03MSw3ICs3Miw5IEBAIHNlbGYuZGJuYW1lID0gJ3Rlc3Q0Jzsgc2VsZi52ZXIgPSAxOyBzZWxm
LnN0ZXBzID0gW10KICdoLmNsb3NlJwogJ2RlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzJwogJ2gz
Lm9wZW4ub25zdWNjZXNzJwotUEFTUyBzZWxmLnN0ZXBzLnRvU3RyaW5nKCkgaXMgImgub3Blbixo
Lm9wZW4ub25zdWNjZXNzLGgyLm9wZW4saDIub3Blbi5vbnN1Y2Nlc3MsaC5zZXRWZXJzaW9uLGRl
bGV0ZURhdGFiYXNlKCksaDIub252ZXJzaW9uY2hhbmdlLGguc2V0VmVyc2lvbi5vbmJsb2NrZWQs
aDMub3BlbixoMi5jbG9zZSxoLnNldFZlcnNpb24ub25zdWNjZXNzLGguc2V0VmVyc2lvbi50cmFu
c2FjdGlvbi1jb21wbGV0ZSxoLm9udmVyc2lvbmNoYW5nZSxkZWxldGVEYXRhYmFzZSgpLm9uYmxv
Y2tlZCxoLmNsb3NlLGRlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzLGgzLm9wZW4ub25zdWNjZXNz
IgorUEFTUyB2ZXJzaW9uQ2hhbmdlQ29tcGxldGUgaXMgdHJ1ZQorUEFTUyBibG9ja2VkRXZlbnRG
aXJlZCBpcyB0cnVlCitQQVNTIGRlbGV0ZURhdGFiYXNlQ29tcGxldGUgaXMgdHJ1ZQogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWNsb3NlLXZlcnNpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jbG9zZS12ZXJzaW9uLWV4
cGVjdGVkLnR4dAppbmRleCBiOTI1NjcwYTFmNjlhMTJhMDJlMTc5NGZkMTZmMDRmMmIwMzljYzQ3
Li5mNWI3NjJhZTMxOWQwZWNlMDc1ZGQ0NzI5MWUyZTQwMjhjYTJiOTgzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWNsb3NlLXZlcnNpb24tZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY2xvc2UtdmVyc2lv
bi1leHBlY3RlZC50eHQKQEAgLTUsOSArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
IAorZGJuYW1lID0gIm9wZW4tY2xvc2UtdmVyc2lvbi5odG1sIgogCiBURVNUOiBzZXRWZXJzaW9u
IGJsb2NrZWQgb24gb3BlbiBoYW5kbGVzCi1zZWxmLmRibmFtZSA9ICd0ZXN0MSc7IHNlbGYudmVy
ID0gMTsgc2VsZi5zdGVwcyA9IFtdCitzZWxmLnRlc3RuYW1lID0gJ3Rlc3QxJzsgc2VsZi52ZXIg
PSAxCiAnaDEub3BlbicKICdoMS5vcGVuLm9uc3VjY2VzcycKICdoMi5vcGVuJwpAQCAtMTksMTAg
KzIwLDEwIEBAIHNlbGYuZGJuYW1lID0gJ3Rlc3QxJzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBz
ID0gW10KICdoMi5jbG9zZScKICdoMS5zZXRWZXJzaW9uLm9uc3VjY2VzcycKICdoMS5zZXRWZXJz
aW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlJwotUEFTUyBzZWxmLnN0ZXBzLnRvU3RyaW5nKCkgaXMg
ImgxLm9wZW4saDEub3Blbi5vbnN1Y2Nlc3MsaDIub3BlbixoMi5vcGVuLm9uc3VjY2VzcyxoMS5z
ZXRWZXJzaW9uLGgyLm9udmVyc2lvbmNoYW5nZSxoMS5zZXRWZXJzaW9uLm9uYmxvY2tlZCxoMi5j
bG9zZSxoMS5zZXRWZXJzaW9uLm9uc3VjY2VzcyxoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNv
bXBsZXRlIgorUEFTUyBibG9ja2VkRXZlbnRGaXJlZCBpcyB0cnVlCiAKIFRFU1Q6IHNldFZlcnNp
b24gbm90IGJsb2NrZWQgaWYgaGFuZGxlIGNsb3NlZCBpbW1lZGlhdGVseQotc2VsZi5kYm5hbWUg
PSAndGVzdDInOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQorc2VsZi50ZXN0bmFtZSA9
ICd0ZXN0Mic7IHNlbGYudmVyID0gMQogJ2gxLm9wZW4nCiAnaDEub3Blbi5vbnN1Y2Nlc3MnCiAn
aDIub3BlbicKQEAgLTM1LDEwICszNiwxMCBAQCBzZWxmLmRibmFtZSA9ICd0ZXN0Mic7IHNlbGYu
dmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdCiAnaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MnCiAnaDEu
c2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21wbGV0ZScKIE5PVEU6IFdpbGwgRkFJTCB3aXRoIGV4
dHJhIGJvZ3VzIGgxLnNldFZlcnNpb24ub25ibG9ja2VkIHN0ZXA7IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEzMAotRkFJTCBzZWxmLnN0ZXBzLnRvU3RyaW5nKCkg
c2hvdWxkIGJlIGgxLm9wZW4saDEub3Blbi5vbnN1Y2Nlc3MsaDIub3BlbixoMi5vcGVuLm9uc3Vj
Y2VzcyxoMS5zZXRWZXJzaW9uLGgyLm9udmVyc2lvbmNoYW5nZSxoMi5jbG9zZSxoMS5zZXRWZXJz
aW9uLm9uc3VjY2VzcyxoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlLiBXYXMgaDEu
b3BlbixoMS5vcGVuLm9uc3VjY2VzcyxoMi5vcGVuLGgyLm9wZW4ub25zdWNjZXNzLGgxLnNldFZl
cnNpb24saDIub252ZXJzaW9uY2hhbmdlLGgyLmNsb3NlLGgxLnNldFZlcnNpb24ub25ibG9ja2Vk
LGgxLnNldFZlcnNpb24ub25zdWNjZXNzLGgxLnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxl
dGUuCitGQUlMIGJsb2NrZWRFdmVudEZpcmVkIHNob3VsZCBiZSBmYWxzZS4gV2FzIHRydWUuCiAK
IFRFU1Q6IG9wZW4gYW5kIHNldFZlcnNpb24gYmxvY2tlZCBpZiBhIFZFUlNJT05fQ0hBTkdFIHRy
YW5zYWN0aW9uIGlzIHJ1bm5pbmcgLSBjbG9zZSB3aGVuIGJsb2NrZWQKLXNlbGYuZGJuYW1lID0g
J3Rlc3QzJzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0gW10KK3NlbGYudGVzdG5hbWUgPSAn
dGVzdDMnOyBzZWxmLnZlciA9IDEKICdoMS5vcGVuJwogJ2gxLm9wZW4ub25zdWNjZXNzJwogJ2gy
Lm9wZW4nCkBAIC01NiwxMCArNTcsMTEgQEAgc2VsZi5kYm5hbWUgPSAndGVzdDMnOyBzZWxmLnZl
ciA9IDE7IHNlbGYuc3RlcHMgPSBbXQogJ2gxLnNldFZlcnNpb24ub25zdWNjZXNzJwogJ2gxLnNl
dFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUnCiAnaDMub3Blbi5vbnN1Y2Nlc3MnCi1QQVNT
IHNlbGYuc3RlcHMudG9TdHJpbmcoKSBpcyAiaDEub3BlbixoMS5vcGVuLm9uc3VjY2VzcyxoMi5v
cGVuLGgyLm9wZW4ub25zdWNjZXNzLGgxLnNldFZlcnNpb24saDIuc2V0VmVyc2lvbixoMi5vbnZl
cnNpb25jaGFuZ2UsaDEuc2V0VmVyc2lvbi5vbmJsb2NrZWQsaDEub252ZXJzaW9uY2hhbmdlLGgy
LnNldFZlcnNpb24ub25ibG9ja2VkLGgyLmNsb3NlLGgzLm9wZW4saDIuc2V0VmVyc2lvbi5vbmVy
cm9yLGgxLnNldFZlcnNpb24ub25zdWNjZXNzLGgxLnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29t
cGxldGUsaDMub3Blbi5vbnN1Y2Nlc3MiCitQQVNTIGJsb2NrZWRFdmVudEZpcmVkIGlzIHRydWUK
K1BBU1MgdmVyc2lvbkNoYW5nZUNvbXBsZXRlIGlzIHRydWUKIAogVEVTVDogb3BlbiBhbmQgc2V0
VmVyc2lvbiBibG9ja2VkIGlmIGEgVkVSU0lPTl9DSEFOR0UgdHJhbnNhY3Rpb24gaXMgcnVubmlu
ZyAtIGp1c3QgY2xvc2UKLXNlbGYuZGJuYW1lID0gJ3Rlc3Q0Jzsgc2VsZi52ZXIgPSAxOyBzZWxm
LnN0ZXBzID0gW10KK3NlbGYudGVzdG5hbWUgPSAndGVzdDQnOyBzZWxmLnZlciA9IDEKICdoMS5v
cGVuJwogJ2gxLm9wZW4ub25zdWNjZXNzJwogJ2gyLm9wZW4nCkBAIC03MiwxMCArNzQsMTEgQEAg
c2VsZi5kYm5hbWUgPSAndGVzdDQnOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQogJ2gx
LnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUnCiAnaDMub3Blbi5vbnN1Y2Nlc3MnCiBO
T1RFOiBXaWxsIEZBSUwgd2l0aCBleHRyYSBib2d1cyBoMS5zZXRWZXJzaW9uLm9uYmxvY2tlZCBz
dGVwOyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMzAKLUZBSUwg
c2VsZi5zdGVwcy50b1N0cmluZygpIHNob3VsZCBiZSBoMS5vcGVuLGgxLm9wZW4ub25zdWNjZXNz
LGgyLm9wZW4saDIub3Blbi5vbnN1Y2Nlc3MsaDEuc2V0VmVyc2lvbixoMy5vcGVuLGgyLmNsb3Nl
LGgxLnNldFZlcnNpb24ub25zdWNjZXNzLGgxLnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxl
dGUsaDMub3Blbi5vbnN1Y2Nlc3MuIFdhcyBoMS5vcGVuLGgxLm9wZW4ub25zdWNjZXNzLGgyLm9w
ZW4saDIub3Blbi5vbnN1Y2Nlc3MsaDEuc2V0VmVyc2lvbixoMy5vcGVuLGgyLmNsb3NlLGgxLnNl
dFZlcnNpb24ub25ibG9ja2VkLGgxLnNldFZlcnNpb24ub25zdWNjZXNzLGgxLnNldFZlcnNpb24u
dHJhbnNhY3Rpb24tY29tcGxldGUsaDMub3Blbi5vbnN1Y2Nlc3MuCitGQUlMIGJsb2NrZWRFdmVu
dEZpcmVkIHNob3VsZCBiZSBmYWxzZS4gV2FzIHRydWUuCitQQVNTIHZlcnNpb25DaGFuZ2VDb21w
bGV0ZSBpcyB0cnVlCiAKIFRFU1Q6IG9wZW4gYmxvY2tlZCBpZiBhIFZFUlNJT05fQ0hBTkdFIHRy
YW5zYWN0aW9uIGlzIHJ1bm5pbmcKLXNlbGYuZGJuYW1lID0gJ3Rlc3Q1Jzsgc2VsZi52ZXIgPSAx
OyBzZWxmLnN0ZXBzID0gW10KK3NlbGYudGVzdG5hbWUgPSAndGVzdDUnOyBzZWxmLnZlciA9IDEK
ICdoMS5vcGVuJwogJ2gxLm9wZW4ub25zdWNjZXNzJwogJ2gxLnNldFZlcnNpb24nCkBAIC04Mywx
MCArODYsMTAgQEAgc2VsZi5kYm5hbWUgPSAndGVzdDUnOyBzZWxmLnZlciA9IDE7IHNlbGYuc3Rl
cHMgPSBbXQogJ2gxLnNldFZlcnNpb24ub25zdWNjZXNzJwogJ2gxLnNldFZlcnNpb24udHJhbnNh
Y3Rpb24tY29tcGxldGUnCiAnaDIub3Blbi5vbnN1Y2Nlc3MnCi1QQVNTIHNlbGYuc3RlcHMudG9T
dHJpbmcoKSBpcyAiaDEub3BlbixoMS5vcGVuLm9uc3VjY2VzcyxoMS5zZXRWZXJzaW9uLGgyLm9w
ZW4saDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MsaDEuc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21w
bGV0ZSxoMi5vcGVuLm9uc3VjY2VzcyIKK1BBU1MgdmVyc2lvbkNoYW5nZUNvbXBsZXRlIGlzIHRy
dWUKIAogVEVTVDogdHdvIHNldFZlcnNpb25zIGZyb20gdGhlIHNhbWUgY29ubmVjdGlvbgotc2Vs
Zi5kYm5hbWUgPSAndGVzdDYnOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQorc2VsZi50
ZXN0bmFtZSA9ICd0ZXN0Nic7IHNlbGYudmVyID0gMQogJ2gxLm9wZW4nCiAnaDEub3Blbi5vbnN1
Y2Nlc3MnCiAnaDEuc2V0VmVyc2lvbicKQEAgLTk2LDcgKzk5LDcgQEAgc2VsZi5kYm5hbWUgPSAn
dGVzdDYnOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQogaGFsZiBkb25lCiAnaDEuc2V0
VmVyc2lvbi5vbnN1Y2Nlc3MnCiAnaDEuc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21wbGV0ZScK
LVBBU1Mgc2VsZi5zdGVwcy50b1N0cmluZygpIGlzICJoMS5vcGVuLGgxLm9wZW4ub25zdWNjZXNz
LGgxLnNldFZlcnNpb24saDEuc2V0VmVyc2lvbixoMS5zZXRWZXJzaW9uLm9uc3VjY2VzcyxoMS5z
ZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlLGgxLnNldFZlcnNpb24ub25zdWNjZXNzLGgx
LnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUiCitQQVNTIHZlcnNpb25DaGFuZ2VDb21w
bGV0ZSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0
aW9ucy5qcwppbmRleCBmNWNkMjJmNjUxYzRlMzc4MmM0ZjA0ZDIxMDU5NWY5MjNkZDlkNDRiLi40
NmRlOTk5NDg4NDVlOTBkOGMwMTZlMzI2OWQyYjBmNTY4MTlmMzU4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRhYmFz
ZS1pbnRlcmFjdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmpzCkBAIC01LDIzMSAr
NSwyNjcgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCB0
aGUgZGVsZXRlRGF0YWJhc2UgY2FsbCBhbmQgaXRzIGludGVyYWN0aW9uIHdpdGggb3Blbi9zZXRW
ZXJzaW9uIik7CiAKLXZhciBkYnByZWZpeCA9ICdmYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVy
YWN0aW9ucy0nOwotZnVuY3Rpb24gQ29ubmVjdGlvbihpZCkgewotICAgIGlkID0gU3RyaW5nKGlk
KTsKLSAgICB2YXIgdGhhdCA9IHRoaXM7Ci0gICAgdGhpcy5vcGVuID0gZnVuY3Rpb24ob3B0cykg
ewotICAgICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJyIgKyBpZCArICIub3Blbici
KSk7Ci0gICAgICAgIHZhciByZXEgPSBpbmRleGVkREIub3BlbihkYnByZWZpeCArIHNlbGYuZGJu
YW1lKTsKLSAgICAgICAgcmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgICAgICB0aGF0Lmhh
bmRsZSA9IGUudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIHNlbGYuc3RlcHMucHVzaChldmFs
QW5kTG9nKCInIiArIGlkICsgIi5vcGVuLm9uc3VjY2VzcyciKSk7Ci0gICAgICAgICAgICB0aGF0
LmhhbmRsZS5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAg
c2VsZi5zdGVwcy5wdXNoKGV2YWxBbmRMb2coIiciICsgaWQgKyAiLm9udmVyc2lvbmNoYW5nZSci
KSk7Ci0gICAgICAgICAgICAgICAgZGVidWcoIiAgICBpbiB2ZXJzaW9uY2hhbmdlLCBvbGQgPSAi
ICsgSlNPTi5zdHJpbmdpZnkoZS50YXJnZXQudmVyc2lvbikgKyAiIG5ldyA9ICIgKyBKU09OLnN0
cmluZ2lmeShlLnZlcnNpb24pKTsKLSAgICAgICAgICAgICAgICBpZiAob3B0cyAmJiBvcHRzLm9u
dmVyc2lvbikgeyBvcHRzLm9udmVyc2lvbi5jYWxsKHRoYXQpOyB9Ci0gICAgICAgICAgICB9Owot
ICAgICAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5vbnN1Y2Nlc3MpIHsgb3B0cy5vbnN1Y2Nlc3Mu
Y2FsbCh0aGF0KTsgfQotICAgICAgICB9OwotICAgIH07CisvLyBUaGlzIGlzIHVzZWQgdG8gZ2V0
IHRoZSBzYWZldHkgb2YgZXZhbEFuZExvZygpIGJ1dCBwcm9kdWNlIG5vIG91dHB1dAorLy8gbGlr
ZSBlYXJsaWVyIGl0ZXJhdGlvbnMgb2YgdGhpcyBsYXlvdXQgdGVzdC4KKy8vIEZJWE1FOiBKdXN0
IHVzZSBldmFsQW5kTG9nKCkgb25jZSB0ZXN0IGNvbnZlcnNpb24gaXMgY29tcGxldGUuCitmdW5j
dGlvbiBldmFsTm9Mb2coX2EpCit7CisgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIpCisgICAg
ZGVidWcoIldBUk46IGV2YWxOb0xvZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKIAot
ICAgIHRoaXMuY2xvc2UgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgc2VsZi5zdGVwcy5wdXNoKGV2
YWxBbmRMb2coIiciICsgaWQgKyAiLmNsb3NlJyIpKTsKLSAgICAgICAgdGhpcy5oYW5kbGUuY2xv
c2UoKTsKLSAgICB9OwotCi0gICAgdGhpcy5zZXRWZXJzaW9uID0gZnVuY3Rpb24ob3B0cykgewot
ICAgICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJyIgKyBpZCArICIuc2V0VmVyc2lv
biciKSk7Ci0gICAgICAgIHZhciByZXEgPSB0aGlzLmhhbmRsZS5zZXRWZXJzaW9uKFN0cmluZyhz
ZWxmLnZlcisrKSk7Ci0gICAgICAgIHJlcS5vbmFib3J0ID0gZnVuY3Rpb24gKGUpIHsKLSAgICAg
ICAgICAgIHNlbGYuc3RlcHMucHVzaChldmFsQW5kTG9nKCInIiArIGlkICsgIi5zZXRWZXJzaW9u
Lm9uYWJvcnQnIikpOwotICAgICAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5vbmFib3J0KSB7IG9w
dHMub25hYm9ydC5jYWxsKHRoYXQpOyB9Ci0gICAgICAgIH07Ci0gICAgICAgIHJlcS5vbmJsb2Nr
ZWQgPSBmdW5jdGlvbiAoZSkgewotICAgICAgICAgICAgc2VsZi5zdGVwcy5wdXNoKGV2YWxBbmRM
b2coIiciICsgaWQgKyAiLnNldFZlcnNpb24ub25ibG9ja2VkJyIpKTsKLSAgICAgICAgICAgIGlm
IChvcHRzICYmIG9wdHMub25ibG9ja2VkKSB7IG9wdHMub25ibG9ja2VkLmNhbGwodGhhdCk7IH0K
LSAgICAgICAgfTsKLSAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7Ci0gICAg
ICAgICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJyIgKyBpZCArICIuc2V0VmVyc2lv
bi5vbnN1Y2Nlc3MnIikpOwotICAgICAgICAgICAgaWYgKHRoYXQuaGFuZGxlLm9iamVjdFN0b3Jl
TmFtZXMuY29udGFpbnMoInRlc3Qtc3RvcmUiICsgc2VsZi52ZXIpKSB7Ci0gICAgICAgICAgICAg
ICAgdGhhdC5oYW5kbGUuZGVsZXRlT2JqZWN0U3RvcmUoInRlc3Qtc3RvcmUiICsgc2VsZi52ZXIp
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIHN0b3JlID0gdGhhdC5oYW5kbGUuY3Jl
YXRlT2JqZWN0U3RvcmUoInRlc3Qtc3RvcmUiICsgc2VsZi52ZXIpOwotICAgICAgICAgICAgdmFy
IGNvdW50ID0gMDsKLSAgICAgICAgICAgIGRvX2FzeW5jX3B1dHMoKTsgLy8gS2VlcCB0aGlzIHRy
YW5zYWN0aW9uIHJ1bm5pbmcgZm9yIGEgd2hpbGUKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRvX2Fz
eW5jX3B1dHMoKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHJlcSA9IHN0b3JlLnB1dChjb3VudCwg
Y291bnQpOwotICAgICAgICAgICAgICAgIHJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci0gICAgICAgICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICgrK2NvdW50IDwgMTApIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRvX2FzeW5jX3B1dHMoKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RlcHMucHVzaChldmFsQW5kTG9nKCInIiArIGlk
ICsgIi5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlJyIpKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChvcHRzICYmIG9wdHMub25zdWNjZXNzKSB7IG9wdHMub25zdWNjZXNzLmNh
bGwodGhhdCk7IH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24g
KGUpIHsKLSAgICAgICAgICAgIHNlbGYuc3RlcHMucHVzaChldmFsQW5kTG9nKCInIiArIGlkICsg
Ii5zZXRWZXJzaW9uLm9uZXJyb3InIikpOwotICAgICAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5v
bmVycm9yKSB7IG9wdHMub25lcnJvci5jYWxsKHRoYXQpOyB9Ci0gICAgICAgIH07Ci0gICAgfTsK
LX0KLQotZnVuY3Rpb24gZGVsZXRlRGF0YWJhc2UoaWQsIG5hbWUsIG9wdHMpIHsKLSAgICBzZWxm
LnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJ2RlbGV0ZURhdGFiYXNlKCIgKyBpZCArICIpJyIpKTsK
LSAgICB2YXIgcmVxID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRicHJlZml4ICsgbmFtZSk7
Ci0gICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7Ci0gICAgICAgIHNlbGYuc3RlcHMu
cHVzaChldmFsQW5kTG9nKCInZGVsZXRlRGF0YWJhc2UoIiArIGlkICsgIikub25zdWNjZXNzJyIp
KTsKLSAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5vbnN1Y2Nlc3MpIHsgb3B0cy5vbnN1Y2Nlc3Mu
Y2FsbChudWxsKTsgfQotICAgIH07Ci0gICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbiAoZSkgewot
ICAgICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJ2RlbGV0ZURhdGFiYXNlKCIgKyBp
ZCArICIpLm9uZXJyb3InIikpOwotICAgICAgICBpZiAob3B0cyAmJiBvcHRzLm9uZXJyb3IpIHsg
b3B0cy5vbmVycm9yLmNhbGwobnVsbCk7IH0KLSAgICB9OwotICAgIHJlcS5vbmJsb2NrZWQgPSBm
dW5jdGlvbiAoZSkgewotICAgICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJ2RlbGV0
ZURhdGFiYXNlKCIgKyBpZCArICIpLm9uYmxvY2tlZCciKSk7Ci0gICAgICAgIGlmIChvcHRzICYm
IG9wdHMub25ibG9ja2VkKSB7IG9wdHMub25ibG9ja2VkLmNhbGwobnVsbCk7IH0KLSAgICB9Owot
fQotCi0vLyBydW4gYSBzZXJpZXMgb2Ygc3RlcHMgdGhhdCB0YWtlIGEgY29udGludWF0aW9uIGZ1
bmN0aW9uCi1mdW5jdGlvbiBydW5TdGVwcyhjb21tYW5kcykgewotICAgIGlmIChjb21tYW5kcy5s
ZW5ndGgpIHsKLSAgICAgICAgdmFyIGNvbW1hbmQgPSBjb21tYW5kcy5zaGlmdCgpOwotICAgICAg
ICBjb21tYW5kKGZ1bmN0aW9uKCkgeyBydW5TdGVwcyhjb21tYW5kcyk7IH0pOwotICAgIH0KKyAg
dmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsK
KyAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOworICB9CisgIHJl
dHVybiBfYXY7CiB9CiAKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgcmVtb3ZlVmVuZG9yUHJlZml4
ZXMoKTsKKyAgICBzZXREQk5hbWVGcm9tUGF0aCgpOwogICAgIHRlc3QxKCk7CiB9CiAKIGZ1bmN0
aW9uIHRlc3QxKCkgewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiVEVTVDogZGVsZXRlRGF0
YWJhc2UgYmxvY2tlZCBvbiBvcGVuIGhhbmRsZXMiKTsKLSAgICBldmFsQW5kTG9nKCJzZWxmLmRi
bmFtZSA9ICd0ZXN0MSc7IHNlbGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdIik7Ci0gICAgdmFy
IGggPSBuZXcgQ29ubmVjdGlvbigiaCIpOwotICAgIHJ1blN0ZXBzKFtmdW5jdGlvbihkb05leHQp
IHsgaC5vcGVuKHtvbnN1Y2Nlc3M6IGRvTmV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb252ZXJzaW9uOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlYnVnKCIgICAgaCBjbG9zaW5nLCBidXQgbm90IGltbWVkaWF0ZWx5Iik7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyBoLmNsb3NlKCk7IH0sIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7
IH0sCi0gICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBkZWxldGVEYXRhYmFzZSgiIiwgc2VsZi5k
Ym5hbWUsIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uc3VjY2VzczogZmluaXNoVGVz
dH0pOyB9LAotICAgICAgICBdKTsKLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNlbGYuc3RlcHMudG9TdHJpbmcoKSIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbImgub3BlbiIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImgub3Blbi5vbnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkZWxldGVEYXRhYmFzZSgpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
aC5vbnZlcnNpb25jaGFuZ2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWxl
dGVEYXRhYmFzZSgpLm9uYmxvY2tlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImguY2xvc2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWxldGVEYXRhYmFz
ZSgpLm9uc3VjY2VzcyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLnRvU3RyaW5n
KCkpOwotICAgICAgICB0ZXN0MigpOwotICAgIH0KKyAgICBldmFsQW5kTG9nKCJzZWxmLnRlc3Ru
YW1lID0gJ3Rlc3QxJzsgc2VsZi52ZXIgPSAxIik7CisgICAgZXZhbE5vTG9nKCJibG9ja2VkRXZl
bnRGaXJlZCA9IGZhbHNlIik7CisKKyAgICBkZWJ1ZygiJ2gub3BlbiciKTsKKyAgICByZXF1ZXN0
ID0gZXZhbE5vTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUgKyB0ZXN0bmFtZSkiKTsKKyAgICBy
ZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRlYnVnKCInaC5vcGVuLm9uc3VjY2VzcyciKTsK
KyAgICAgICAgaCA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICBoLm9udmVyc2lvbmNoYW5n
ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRlYnVnKCInaC5vbnZlcnNpb25jaGFuZ2Un
Iik7CisgICAgICAgICAgICBkZWJ1ZygiICAgIGluIHZlcnNpb25jaGFuZ2UsIG9sZCA9ICIgKyBK
U09OLnN0cmluZ2lmeShlLnRhcmdldC52ZXJzaW9uKSArICIgbmV3ID0gIiArIEpTT04uc3RyaW5n
aWZ5KGUudmVyc2lvbikpOworICAgICAgICAgICAgZGVidWcoIiAgICBoIGNsb3NpbmcsIGJ1dCBu
b3QgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgICAgIC8vIFRoaXMgc2V0VGltZW91dCgpIGlzIHVz
ZWQgdG8gbW92ZSB0aGUgY2xvc2UgY2FsbCBvdXRzaWRlIG9mIHRoZSBldmVudCBkaXNwYXRjaAor
ICAgICAgICAgICAgLy8gY2FsbGJhY2suIFBlciBzcGVjLCBhIGJsb2NrZWQgZXZlbnQgc2hvdWxk
IG9ubHkgZmlyZSBpZiBjb25uZWN0aW9ucyBhcmUgc3RpbGwKKyAgICAgICAgICAgIC8vIG9wZW4g
YWZ0ZXIgdGhlIHZlcnNpb25jaGFuZ2UgZXZlbnQgZGlzcGF0Y2ggaXMgY29tcGxldGUuCisgICAg
ICAgICAgICAvLyBGSVhNRTogVGhlcmUgaXMgcG90ZW50aWFsIGZvciB0ZXN0IGZsYWtpbmVzcyBp
biB0aGUgdGltaW5nIGJldHdlZW4gd2hlbiB0aGUKKyAgICAgICAgICAgIC8vIHRpbWVvdXQgcnVu
cyBhbmQgd2hlbiB0aGUgYmxvY2tlZCBldmVudCBpcyBkaXNwYXRjaGVkLiBNb3ZlIHRoZSBjbG9z
ZSBjYWxsCisgICAgICAgICAgICAvLyBpbnRvIG9yIGFmdGVyIHRoZSBibG9ja2VkIGV2ZW50IGhh
bmRsZXIuCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGRlYnVnKCInaC5jbG9zZSciKTsKKyAgICAgICAgICAgICAgICBoLmNsb3NlKCk7CisgICAg
ICAgICAgICB9LCAwKTsKKyAgICAgICAgfTsKKworICAgICAgICBkZWJ1ZygiJ2RlbGV0ZURhdGFi
YXNlKCknIik7CisgICAgICAgIHJlcXVlc3QgPSBldmFsTm9Mb2coImluZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUgKyB0ZXN0bmFtZSkiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgZGVidWcoIidkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tl
ZCciKTsKKyAgICAgICAgICAgIGV2YWxOb0xvZygiYmxvY2tlZEV2ZW50RmlyZWQgPSB0cnVlIik7
CisgICAgICAgIH07CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgZGVidWcoIidkZWxldGVEYXRhYmFzZSgpLm9uc3VjY2VzcyciKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgiYmxvY2tlZEV2ZW50RmlyZWQiKTsKKyAgICAgICAgICAgIHRl
c3QyKCk7CisgICAgICAgIH07CisgICAgfTsKIH0KIAogZnVuY3Rpb24gdGVzdDIoKSB7CiAgICAg
ZGVidWcoIiIpOwogICAgIGRlYnVnKCJURVNUOiBkZWxldGVEYXRhYmFzZSBub3QgYmxvY2tlZCB3
aGVuIGhhbmRsZXMgY2xvc2UgaW1tZWRpYXRlbHkiKTsKLSAgICBldmFsQW5kTG9nKCJzZWxmLmRi
bmFtZSA9ICd0ZXN0Mic7IHNlbGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdIik7Ci0gICAgdmFy
IGggPSBuZXcgQ29ubmVjdGlvbigiaCIpOwotICAgIHJ1blN0ZXBzKFtmdW5jdGlvbihkb05leHQp
IHsgaC5vcGVuKHtvbnN1Y2Nlc3M6IGRvTmV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9udmVyc2lvbjogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoIiAgICBoIGNsb3NpbmcgaW1tZWRp
YXRlbHkiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
LmNsb3NlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7
IH0sCi0gICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBkZWxldGVEYXRhYmFzZSgiIiwgc2VsZi5k
Ym5hbWUsIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uc3VjY2VzczogZmluaXNoVGVz
dH0pOyB9LAotICAgICAgICBdKTsKLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgICAg
ICBkZWJ1ZygiTk9URTogV2lsbCBGQUlMIHdpdGggZXh0cmEgYm9ndXMgZGVsZXRlRGF0YWJhc2Uo
KS5vbmJsb2NrZWQgc3RlcDsgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcxMTMwIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2VsZi5zdGVwcy50b1N0
cmluZygpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiaC5vcGVuIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiaC5vcGVuLm9uc3VjY2VzcyIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNlKCkiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJoLm9udmVyc2lvbmNoYW5nZSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImguY2xvc2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk
ZWxldGVEYXRhYmFzZSgpLm9uc3VjY2VzcyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBdLnRvU3RyaW5nKCkpOwotICAgICAgICB0ZXN0MygpOwotICAgIH0KKyAgICBldmFsQW5kTG9n
KCJzZWxmLnRlc3RuYW1lID0gJ3Rlc3QyJzsgc2VsZi52ZXIgPSAxIik7CisgICAgZXZhbE5vTG9n
KCJibG9ja2VkRXZlbnRGaXJlZCA9IGZhbHNlIik7CisKKyAgICBkZWJ1ZygiJ2gub3BlbiciKTsK
KyAgICByZXF1ZXN0ID0gZXZhbE5vTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUgKyB0ZXN0bmFt
ZSkiKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRlYnVnKCInaC5vcGVuLm9u
c3VjY2VzcyciKTsKKyAgICAgICAgaCA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICBoLm9u
dmVyc2lvbmNoYW5nZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRlYnVnKCInaC5vbnZl
cnNpb25jaGFuZ2UnIik7CisgICAgICAgICAgICBkZWJ1ZygiICAgIGluIHZlcnNpb25jaGFuZ2Us
IG9sZCA9ICIgKyBKU09OLnN0cmluZ2lmeShlLnRhcmdldC52ZXJzaW9uKSArICIgbmV3ID0gIiAr
IEpTT04uc3RyaW5naWZ5KGUudmVyc2lvbikpOworICAgICAgICAgICAgZGVidWcoIiAgICBoIGNs
b3NpbmcgaW1tZWRpYXRlbHkiKTsKKyAgICAgICAgICAgIGRlYnVnKCInaC5jbG9zZSciKTsKKyAg
ICAgICAgICAgIGguY2xvc2UoKTsKKyAgICAgICAgfTsKKworICAgICAgICBkZWJ1ZygiJ2RlbGV0
ZURhdGFiYXNlKCknIik7CisgICAgICAgIHJlcXVlc3QgPSBldmFsTm9Mb2coImluZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUgKyB0ZXN0bmFtZSkiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25ibG9ja2Vk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGVidWcoIidkZWxldGVEYXRhYmFzZSgpLm9u
YmxvY2tlZCciKTsKKyAgICAgICAgICAgIGV2YWxOb0xvZygiYmxvY2tlZEV2ZW50RmlyZWQgPSB0
cnVlIik7CisgICAgICAgIH07CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgZGVidWcoIidkZWxldGVEYXRhYmFzZSgpLm9uc3VjY2VzcyciKTsK
KyAgICAgICAgICAgIGRlYnVnKCJOT1RFOiBXaWxsIEZBSUwgd2l0aCBleHRyYSBib2d1cyBkZWxl
dGVEYXRhYmFzZSgpLm9uYmxvY2tlZCBzdGVwOyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzExMzAiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoImJsb2NrZWRF
dmVudEZpcmVkIik7CisgICAgICAgICAgICB0ZXN0MygpOworICAgICAgICB9OworICAgIH07CiB9
CiAKIGZ1bmN0aW9uIHRlc3QzKCkgewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiVEVTVDog
ZGVsZXRlRGF0YWJhc2UgaXMgZGVsYXllZCBpZiBhIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9u
IGlzIHJ1bm5pbmciKTsKLSAgICBldmFsQW5kTG9nKCJzZWxmLmRibmFtZSA9ICd0ZXN0Myc7IHNl
bGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdIik7Ci0gICAgdmFyIGggPSBuZXcgQ29ubmVjdGlv
bigiaCIpOwotICAgIHJ1blN0ZXBzKFtmdW5jdGlvbihkb05leHQpIHsgaC5vcGVuKHtvbnN1Y2Nl
c3M6IGRvTmV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb252ZXJzaW9uOiBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCIg
ICAgaCBjbG9zaW5nLCBidXQgbm90IGltbWVkaWF0ZWx5Iik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBoLmNsb3NlKCk7IH0sIDAp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7IH0sCi0gICAgICAgICAgICAg
IGZ1bmN0aW9uKGRvTmV4dCkgeyBoLnNldFZlcnNpb24oKTsgZG9OZXh0KCk7IH0sCi0gICAgICAg
ICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBkZWxldGVEYXRhYmFzZSgiIiwgc2VsZi5kYm5hbWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvbnN1Y2Nlc3M6IGZpbmlzaFRlc3R9
KTsgfSwKLSAgICAgICAgICAgICAgXSk7Ci0KLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewot
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNlbGYuc3RlcHMudG9TdHJpbmcoKSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImgub3BlbiIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImgub3Blbi5vbnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJoLnNldFZlcnNpb24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJkZWxldGVEYXRhYmFzZSgpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaC5z
ZXRWZXJzaW9uLm9uc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgu
c2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21wbGV0ZSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImgub252ZXJzaW9uY2hhbmdlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGVsZXRlRGF0YWJhc2UoKS5vbmJsb2NrZWQiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJoLmNsb3NlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVs
ZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XS50b1N0cmluZygpKTsKLSAgICAgICAgdGVzdDQoKTsKLSAgICB9CisgICAgZXZhbEFuZExvZygi
c2VsZi50ZXN0bmFtZSA9ICd0ZXN0Myc7IHNlbGYudmVyID0gMSIpOworICAgIGV2YWxOb0xvZygi
dmVyc2lvbkNoYW5nZUNvbXBsZXRlID0gZmFsc2UiKTsKKworICAgIGRlYnVnKCInaC5vcGVuJyIp
OworICAgIHJlcXVlc3QgPSBldmFsTm9Mb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSArIHRlc3Ru
YW1lKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFj
azsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGVidWcoIidoLm9wZW4u
b25zdWNjZXNzJyIpOworICAgICAgICBoID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIGgu
b252ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGVidWcoIidoLm9u
dmVyc2lvbmNoYW5nZSciKTsKKyAgICAgICAgICAgIGRlYnVnKCIgICAgaW4gdmVyc2lvbmNoYW5n
ZSwgb2xkID0gIiArIEpTT04uc3RyaW5naWZ5KGUudGFyZ2V0LnZlcnNpb24pICsgIiBuZXcgPSAi
ICsgSlNPTi5zdHJpbmdpZnkoZS52ZXJzaW9uKSk7CisgICAgICAgICAgICBkZWJ1ZygiICAgIGgg
Y2xvc2luZywgYnV0IG5vdCBpbW1lZGlhdGVseSIpOworICAgICAgICAgICAgLy8gVGhpcyBzZXRU
aW1lb3V0KCkgaXMgdXNlZCB0byBtb3ZlIHRoZSBjbG9zZSBjYWxsIG91dHNpZGUgb2YgdGhlIGV2
ZW50IGRpc3BhdGNoCisgICAgICAgICAgICAvLyBjYWxsYmFjay4gUGVyIHNwZWMsIGEgYmxvY2tl
ZCBldmVudCBzaG91bGQgb25seSBmaXJlIGlmIGNvbm5lY3Rpb25zIGFyZSBzdGlsbAorICAgICAg
ICAgICAgLy8gb3BlbiBhZnRlciB0aGUgdmVyc2lvbmNoYW5nZSBldmVudCBkaXNwYXRjaCBpcyBj
b21wbGV0ZS4KKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBwb3RlbnRpYWwgZm9yIHRl
c3QgZmxha2luZXNzIGluIHRoZSB0aW1pbmcgYmV0d2VlbiB3aGVuIHRoZQorICAgICAgICAgICAg
Ly8gdGltZW91dCBydW5zIGFuZCB3aGVuIHRoZSBibG9ja2VkIGV2ZW50IGlzIGRpc3BhdGNoZWQu
IE1vdmUgdGhlIGNsb3NlIGNhbGwKKyAgICAgICAgICAgIC8vIGludG8gb3IgYWZ0ZXIgdGhlIGJs
b2NrZWQgZXZlbnQgaGFuZGxlci4KKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgZGVidWcoIidoLmNsb3NlJyIpOworICAgICAgICAgICAgICAgIGgu
Y2xvc2UoKTsKKyAgICAgICAgICAgIH0sIDApOworICAgICAgICB9OworCisgICAgICAgIGRlYnVn
KCInaC5zZXRWZXJzaW9uJyIpOworICAgICAgICByZXF1ZXN0ID0gZXZhbE5vTG9nKCJoLnNldFZl
cnNpb24oU3RyaW5nKHZlcisrKSkiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBkZWJ1ZygiJ2guc2V0VmVyc2lvbi5vbnN1Y2Nlc3MnIik7CisKKyAg
ICAgICAgICAgIHRyYW5zYWN0aW9uID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgdHJh
bnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgICAgICAgICAg
dHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGRl
YnVnKCInaC5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlJyIpOworICAgICAgICAgICAg
ICAgIGV2YWxOb0xvZygidmVyc2lvbkNoYW5nZUNvbXBsZXRlID0gdHJ1ZSIpOworICAgICAgICAg
ICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICBkZWJ1ZygiJ2RlbGV0ZURhdGFiYXNlKCknIik7
CisgICAgICAgIHJlcXVlc3QgPSBldmFsTm9Mb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUgKyB0ZXN0bmFtZSkiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgZGVidWcoIidkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCciKTsKKyAg
ICAgICAgfTsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBkZWJ1ZygiJ2RlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzJyIpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCJ2ZXJzaW9uQ2hhbmdlQ29tcGxldGUiKTsKKyAgICAgICAgICAgIHRl
c3Q0KCk7CisgICAgICAgIH07CisgICAgfTsKIH0KIAogZnVuY3Rpb24gdGVzdDQoKSB7CiAgICAg
ZGVidWcoIiIpOwogICAgIGRlYnVnKCJURVNUOiBDb3JyZWN0IG9yZGVyIHdoZW4gdGhlcmUgYXJl
IHBlbmRpbmcgc2V0VmVyc2lvbiwgZGVsZXRlIGFuZCBvcGVuIGNhbGxzLiIpOwotICAgIGV2YWxB
bmRMb2coInNlbGYuZGJuYW1lID0gJ3Rlc3Q0Jzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0g
W10iKTsKLSAgICB2YXIgaCA9IG5ldyBDb25uZWN0aW9uKCJoIik7Ci0gICAgdmFyIGgyID0gbmV3
IENvbm5lY3Rpb24oImgyIik7Ci0gICAgdmFyIGgzID0gbmV3IENvbm5lY3Rpb24oImgzIik7Ci0g
ICAgcnVuU3RlcHMoW2Z1bmN0aW9uKGRvTmV4dCkgeyBoLm9wZW4oe29uc3VjY2VzczogZG9OZXh0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbnZlcnNpb246IGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVidWcoIiAgICBoIGNsb3NpbmcsIGJ1dCBub3QgaW1tZWRpYXRlbHkiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IGguY2xvc2UoKTsgfSwgMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH19KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICBmdW5jdGlvbihkb05leHQpIHsgaDIub3Blbih7b25zdWNjZXNzOiBkb05leHR9KTsgfSwKLSAg
ICAgICAgICAgICAgZnVuY3Rpb24oZG9OZXh0KSB7IGguc2V0VmVyc2lvbih7b25ibG9ja2VkOiBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaDMub3Blbih7b25zdWNjZXNzOiBmaW5pc2hUZXN0fSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgyLmNsb3NlKCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9OZXh0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgZnVuY3Rpb24oZG9OZXh0KSB7IGRlbGV0ZURhdGFiYXNlKCIiLCBzZWxmLmRi
bmFtZSk7IH0sCi0gICAgICAgICAgICAgIF0pOwotCi0gICAgZnVuY3Rpb24gZmluaXNoVGVzdCgp
IHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzZWxmLnN0ZXBzLnRvU3RyaW5nKCki
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJoLm9wZW4iLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJoLm9wZW4ub25zdWNjZXNzIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiaDIub3BlbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImgyLm9wZW4ub25zdWNjZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaC5z
ZXRWZXJzaW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVsZXRlRGF0YWJh
c2UoKSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgyLm9udmVyc2lvbmNoYW5n
ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImguc2V0VmVyc2lvbi5vbmJsb2Nr
ZWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMy5vcGVuIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiaDIuY2xvc2UiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJoLnNldFZlcnNpb24ub25zdWNjZXNzIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaC5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiaC5vbnZlcnNpb25jaGFuZ2UiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImguY2xvc2UiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkZWxldGVEYXRhYmFzZSgpLm9uc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImgzLm9wZW4ub25zdWNjZXNzIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXS50b1N0cmluZygpKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQor
ICAgIGV2YWxBbmRMb2coInNlbGYudGVzdG5hbWUgPSAndGVzdDQnOyBzZWxmLnZlciA9IDEiKTsK
KyAgICBldmFsTm9Mb2coInNldFZlcnNpb25CbG9ja2VkRXZlbnRGaXJlZCA9IGZhbHNlIik7Cisg
ICAgZXZhbE5vTG9nKCJ2ZXJzaW9uQ2hhbmdlQ29tcGxldGUgPSBmYWxzZSIpOworICAgIGV2YWxO
b0xvZygiZGVsZXRlRGF0YWJhc2VCbG9ja2VkRXZlbnRGaXJlZCA9IGZhbHNlIik7CisgICAgZXZh
bE5vTG9nKCJkZWxldGVEYXRhYmFzZUNvbXBsZXRlID0gZmFsc2UiKTsKKworICAgIGRlYnVnKCIn
aC5vcGVuJyIpOworICAgIHJlcXVlc3QgPSBldmFsTm9Mb2coImluZGV4ZWREQi5vcGVuKGRibmFt
ZSArIHRlc3RuYW1lKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2Nr
ZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGVidWco
IidoLm9wZW4ub25zdWNjZXNzJyIpOworICAgICAgICBoID0gZS50YXJnZXQucmVzdWx0OworCisg
ICAgICAgIGgub252ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGVi
dWcoIidoLm9udmVyc2lvbmNoYW5nZSciKTsKKyAgICAgICAgICAgIGRlYnVnKCIgICAgaW4gdmVy
c2lvbmNoYW5nZSwgb2xkID0gIiArIEpTT04uc3RyaW5naWZ5KGUudGFyZ2V0LnZlcnNpb24pICsg
IiBuZXcgPSAiICsgSlNPTi5zdHJpbmdpZnkoZS52ZXJzaW9uKSk7CisgICAgICAgICAgICBkZWJ1
ZygiICAgIGggY2xvc2luZywgYnV0IG5vdCBpbW1lZGlhdGVseSIpOworICAgICAgICAgICAgLy8g
VGhpcyBzZXRUaW1lb3V0KCkgaXMgdXNlZCB0byBtb3ZlIHRoZSBjbG9zZSBjYWxsIG91dHNpZGUg
b2YgdGhlIGV2ZW50IGRpc3BhdGNoCisgICAgICAgICAgICAvLyBjYWxsYmFjay4gUGVyIHNwZWMs
IGEgYmxvY2tlZCBldmVudCBzaG91bGQgb25seSBmaXJlIGlmIGNvbm5lY3Rpb25zIGFyZSBzdGls
bAorICAgICAgICAgICAgLy8gb3BlbiBhZnRlciB0aGUgdmVyc2lvbmNoYW5nZSBldmVudCBkaXNw
YXRjaCBpcyBjb21wbGV0ZS4KKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBwb3RlbnRp
YWwgZm9yIHRlc3QgZmxha2luZXNzIGluIHRoZSB0aW1pbmcgYmV0d2VlbiB3aGVuIHRoZQorICAg
ICAgICAgICAgLy8gdGltZW91dCBydW5zIGFuZCB3aGVuIHRoZSBibG9ja2VkIGV2ZW50IGlzIGRp
c3BhdGNoZWQuIE1vdmUgdGhlIGNsb3NlIGNhbGwKKyAgICAgICAgICAgIC8vIGludG8gb3IgYWZ0
ZXIgdGhlIGJsb2NrZWQgZXZlbnQgaGFuZGxlci4KKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZGVidWcoIidoLmNsb3NlJyIpOworICAgICAgICAg
ICAgICAgIGguY2xvc2UoKTsKKyAgICAgICAgICAgIH0sIDApOworICAgICAgICB9OworCisgICAg
ICAgIGRlYnVnKCInaDIub3BlbiciKTsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxOb0xvZygiaW5k
ZXhlZERCLm9wZW4oZGJuYW1lICsgdGVzdG5hbWUpIik7CisgICAgICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGVidWcoIidoMi5vcGVuLm9uc3VjY2VzcyciKTsK
KyAgICAgICAgICAgIGgyID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBoMi5vbnZl
cnNpb25jaGFuZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgZGVidWcoIidoMi5v
bnZlcnNpb25jaGFuZ2UnIik7CisgICAgICAgICAgICAgICAgZGVidWcoIiAgICBpbiB2ZXJzaW9u
Y2hhbmdlLCBvbGQgPSAiICsgSlNPTi5zdHJpbmdpZnkoZS50YXJnZXQudmVyc2lvbikgKyAiIG5l
dyA9ICIgKyBKU09OLnN0cmluZ2lmeShlLnZlcnNpb24pKTsKKyAgICAgICAgICAgIH07CisKKyAg
ICAgICAgICAgIGRlYnVnKCInaC5zZXRWZXJzaW9uJyIpOworICAgICAgICAgICAgcmVxdWVzdCA9
IGV2YWxOb0xvZygiaC5zZXRWZXJzaW9uKFN0cmluZyh2ZXIrKykpIik7CisgICAgICAgICAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgIHJl
cXVlc3Qub25ibG9ja2VkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZGVidWcoIido
LnNldFZlcnNpb24ub25ibG9ja2VkJyIpOworICAgICAgICAgICAgICAgIGV2YWxOb0xvZygic2V0
VmVyc2lvbkJsb2NrZWRFdmVudEZpcmVkID0gdHJ1ZSIpOworCisgICAgICAgICAgICAgICAgZGVi
dWcoIidoMy5vcGVuJyIpOworICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsTm9Mb2coImlu
ZGV4ZWREQi5vcGVuKGRibmFtZSArIHRlc3RuYW1lKSIpOworICAgICAgICAgICAgICAgIHJlcXVl
c3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAg
ICAgZGVidWcoIidoMy5vcGVuLm9uc3VjY2VzcyciKTsKKyAgICAgICAgICAgICAgICAgICAgaDMg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGgzLm9udmVyc2lvbmNoYW5n
ZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2s7CisKKyAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCJ2ZXJzaW9uQ2hhbmdlQ29tcGxldGUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCJibG9ja2VkRXZlbnRGaXJlZCIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZVRydWUoImRlbGV0ZURhdGFiYXNlQ29tcGxldGUiKTsKKworICAgICAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9OworCisgICAgICAg
ICAgICAgICAgZGVidWcoIidoMi5jbG9zZSciKTsKKyAgICAgICAgICAgICAgICBoMi5jbG9zZSgp
OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgICAgIGRlYnVnKCInaC5zZXRWZXJzaW9uLm9uc3VjY2Vzcyci
KTsKKworICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uID0gZS50YXJnZXQucmVzdWx0OworICAg
ICAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFj
azsKKyAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIGRlYnVnKCInaC5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNv
bXBsZXRlJyIpOworICAgICAgICAgICAgICAgICAgICBldmFsTm9Mb2coInZlcnNpb25DaGFuZ2VD
b21wbGV0ZSA9IHRydWUiKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfTsKKwor
ICAgICAgICAgICAgZGVidWcoIidkZWxldGVEYXRhYmFzZSgpJyIpOworICAgICAgICAgICAgcmVx
dWVzdCA9IGV2YWxOb0xvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSArIHRlc3Ru
YW1lKSIpOworICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CisgICAgICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgICAgICBkZWJ1ZygiJ2RlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkJyIpOworICAg
ICAgICAgICAgICAgIGV2YWxOb0xvZygiZGVsZXRlRGF0YWJhc2VCbG9ja2VkRXZlbnRGaXJlZCA9
IHRydWUiKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiJ2RlbGV0ZURhdGFiYXNlKCku
b25zdWNjZXNzJyIpOworICAgICAgICAgICAgICAgIGV2YWxOb0xvZygiZGVsZXRlRGF0YWJhc2VD
b21wbGV0ZSA9IHRydWUiKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfTsKIH0K
IAogdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL29wZW4tY2xvc2UtdmVyc2lvbi5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9vcGVuLWNsb3NlLXZlcnNpb24uanMKaW5kZXggYTRmNWNiM2E3ZTI3NzZj
Yzc5ODRjZDY4ODZkZTY0NzZiNWE2MjZmMS4uMDJkZmMzZTQ3Y2U1MWM1MDY5OThjYTBiMzhlN2Y0
YjJiMTJkMDkxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL29wZW4tY2xvc2UtdmVyc2lvbi5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvb3Blbi1jbG9zZS12ZXJzaW9uLmpzCkBAIC01LDI3OSArNSwzNzUg
QEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBpbnRlcmxl
YXZlZCBvcGVuL2Nsb3NlL3NldFZlcnNpb24gY2FsbHMgaW4gdmFyaW91cyBwZXJtdXRhdGlvbnMi
KTsKIAotZnVuY3Rpb24gQ29ubmVjdGlvbihpZCkgewotICAgIGlkID0gU3RyaW5nKGlkKTsKLSAg
ICB2YXIgdGhhdCA9IHRoaXM7Ci0gICAgdGhpcy5vcGVuID0gZnVuY3Rpb24ob3B0cykgewotICAg
ICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJyIgKyBpZCArICIub3BlbiciKSk7Ci0g
ICAgICAgIHZhciByZXEgPSBpbmRleGVkREIub3Blbignb3Blbi1jbG9zZS12ZXJzaW9uLScgKyBz
ZWxmLmRibmFtZSk7Ci0gICAgICAgIHJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci0gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgewotICAgICAgICAgICAg
dGhhdC5oYW5kbGUgPSBlLnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBzZWxmLnN0ZXBzLnB1
c2goZXZhbEFuZExvZygiJyIgKyBpZCArICIub3Blbi5vbnN1Y2Nlc3MnIikpOwotICAgICAgICAg
ICAgdGhhdC5oYW5kbGUub252ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24oZSkgewotICAgICAgICAg
ICAgICAgIHNlbGYuc3RlcHMucHVzaChldmFsQW5kTG9nKCInIiArIGlkICsgIi5vbnZlcnNpb25j
aGFuZ2UnIikpOwotICAgICAgICAgICAgICAgIGlmIChvcHRzICYmIG9wdHMub252ZXJzaW9uKSB7
IG9wdHMub252ZXJzaW9uLmNhbGwodGhhdCk7IH0KLSAgICAgICAgICAgIH07Ci0gICAgICAgICAg
ICBpZiAob3B0cyAmJiBvcHRzLm9uc3VjY2VzcykgeyBvcHRzLm9uc3VjY2Vzcy5jYWxsKHRoYXQp
OyB9Ci0gICAgICAgIH07Ci0gICAgfTsKKy8vIFRoaXMgaXMgdXNlZCB0byBnZXQgdGhlIHNhZmV0
eSBvZiBldmFsQW5kTG9nKCkgYnV0IHByb2R1Y2Ugbm8gb3V0cHV0CisvLyBsaWtlIGVhcmxpZXIg
aXRlcmF0aW9ucyBvZiB0aGlzIGxheW91dCB0ZXN0LgorLy8gRklYTUU6IEp1c3QgdXNlIGV2YWxB
bmRMb2coKSBvbmNlIHRlc3QgY29udmVyc2lvbiBpcyBjb21wbGV0ZS4KK2Z1bmN0aW9uIGV2YWxO
b0xvZyhfYSkKK3sKKyAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FS
TjogZXZhbE5vTG9nKCkgZXhwZWN0cyBhIHN0cmluZyBhcmd1bWVudCIpOwogCi0gICAgdGhpcy5j
bG9zZSA9IGZ1bmN0aW9uKCkgewotICAgICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygi
JyIgKyBpZCArICIuY2xvc2UnIikpOwotICAgICAgICB0aGlzLmhhbmRsZS5jbG9zZSgpOwotICAg
IH07Ci0KLSAgICB0aGlzLnNldFZlcnNpb24gPSBmdW5jdGlvbihvcHRzKSB7Ci0gICAgICAgIHNl
bGYuc3RlcHMucHVzaChldmFsQW5kTG9nKCInIiArIGlkICsgIi5zZXRWZXJzaW9uJyIpKTsKLSAg
ICAgICAgdmFyIHJlcSA9IHRoaXMuaGFuZGxlLnNldFZlcnNpb24oU3RyaW5nKHNlbGYudmVyKysp
KTsKLSAgICAgICAgcmVxLm9uYWJvcnQgPSBmdW5jdGlvbiAoZSkgewotICAgICAgICAgICAgc2Vs
Zi5zdGVwcy5wdXNoKGV2YWxBbmRMb2coIiciICsgaWQgKyAiLnNldFZlcnNpb24ub25hYm9ydCci
KSk7Ci0gICAgICAgICAgICBpZiAob3B0cyAmJiBvcHRzLm9uYWJvcnQpIHsgb3B0cy5vbmFib3J0
LmNhbGwodGhhdCk7IH0KLSAgICAgICAgfTsKLSAgICAgICAgcmVxLm9uYmxvY2tlZCA9IGZ1bmN0
aW9uIChlKSB7Ci0gICAgICAgICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJyIgKyBp
ZCArICIuc2V0VmVyc2lvbi5vbmJsb2NrZWQnIikpOwotICAgICAgICAgICAgaWYgKG9wdHMgJiYg
b3B0cy5vbmJsb2NrZWQpIHsgb3B0cy5vbmJsb2NrZWQuY2FsbCh0aGF0KTsgfQotICAgICAgICB9
OwotICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgICAgIHNl
bGYuc3RlcHMucHVzaChldmFsQW5kTG9nKCInIiArIGlkICsgIi5zZXRWZXJzaW9uLm9uc3VjY2Vz
cyciKSk7Ci0gICAgICAgICAgICBpZiAodGhhdC5oYW5kbGUub2JqZWN0U3RvcmVOYW1lcy5jb250
YWlucygidGVzdC1zdG9yZSIgKyBzZWxmLnZlcikpIHsKLSAgICAgICAgICAgICAgICB0aGF0Lmhh
bmRsZS5kZWxldGVPYmplY3RTdG9yZSgidGVzdC1zdG9yZSIgKyBzZWxmLnZlcik7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB2YXIgc3RvcmUgPSB0aGF0LmhhbmRsZS5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdC1zdG9yZSIgKyBzZWxmLnZlcik7Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAw
OwotICAgICAgICAgICAgZG9fYXN5bmNfcHV0cygpOyAvLyBLZWVwIHRoaXMgdHJhbnNhY3Rpb24g
cnVubmluZyBmb3IgYSB3aGlsZQotICAgICAgICAgICAgZnVuY3Rpb24gZG9fYXN5bmNfcHV0cygp
IHsKLSAgICAgICAgICAgICAgICB2YXIgcmVxID0gc3RvcmUucHV0KGNvdW50LCBjb3VudCk7Ci0g
ICAgICAgICAgICAgICAgcmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICAgICAgICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCsrY291bnQgPCAxMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgZG9f
YXN5bmNfcHV0cygpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5zdGVwcy5wdXNoKGV2YWxBbmRMb2coIiciICsgaWQgKyAiLnNldFZl
cnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUnIikpOwotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG9wdHMgJiYgb3B0cy5vbnN1Y2Nlc3MpIHsgb3B0cy5vbnN1Y2Nlc3MuY2FsbCh0aGF0KTsg
fQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfTsKLSAgICAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbiAoZSkgewotICAg
ICAgICAgICAgc2VsZi5zdGVwcy5wdXNoKGV2YWxBbmRMb2coIiciICsgaWQgKyAiLnNldFZlcnNp
b24ub25lcnJvciciKSk7Ci0gICAgICAgICAgICBpZiAob3B0cyAmJiBvcHRzLm9uZXJyb3IpIHsg
b3B0cy5vbmVycm9yLmNhbGwodGhhdCk7IH0KLSAgICAgICAgfTsKLSAgICB9OwotfQotCi0vLyBy
dW4gYSBzZXJpZXMgb2Ygc3RlcHMgdGhhdCB0YWtlIGEgY29udGludWF0aW9uIGZ1bmN0aW9uCi1m
dW5jdGlvbiBydW5TdGVwcyhjb21tYW5kcykgewotICAgIGlmIChjb21tYW5kcy5sZW5ndGgpIHsK
LSAgICAgICAgdmFyIGNvbW1hbmQgPSBjb21tYW5kcy5zaGlmdCgpOwotICAgICAgICBjb21tYW5k
KGZ1bmN0aW9uKCkgeyBydW5TdGVwcyhjb21tYW5kcyk7IH0pOwotICAgIH0KKyAgdmFyIF9hdjsK
KyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0
RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOworICB9CisgIHJldHVybiBfYXY7
CiB9CiAKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAg
ICBzZXREQk5hbWVGcm9tUGF0aCgpOwogICAgIHRlc3QxKCk7CiB9CiAKIGZ1bmN0aW9uIHRlc3Qx
KCkgewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiVEVTVDogc2V0VmVyc2lvbiBibG9ja2Vk
IG9uIG9wZW4gaGFuZGxlcyIpOwotICAgIGV2YWxBbmRMb2coInNlbGYuZGJuYW1lID0gJ3Rlc3Qx
Jzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0gW10iKTsKLSAgICB2YXIgaDEgPSBuZXcgQ29u
bmVjdGlvbigiaDEiKTsKLSAgICB2YXIgaDIgPSBuZXcgQ29ubmVjdGlvbigiaDIiKTsKLSAgICBy
dW5TdGVwcyhbZnVuY3Rpb24oZG9OZXh0KSB7IGgxLm9wZW4oe29uc3VjY2VzczogZG9OZXh0fSk7
IH0sCi0gICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgaDIub3Blbih7b25zdWNjZXNzOiBkb05l
eHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9udmVyc2lvbjogZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiICAgIGgyIGNs
b3NpbmcsIGJ1dCBub3QgaW1tZWRpYXRlbHkiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGgyLmNsb3NlKCk7IH0sIDApOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7IH0sCi0gICAgICAgICBmdW5jdGlvbihk
b05leHQpIHsgaDEuc2V0VmVyc2lvbih7b25zdWNjZXNzOiBmaW5pc2hUZXN0fSk7IH0sCi0gICAg
ICAgICBdKTsKLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInNlbGYuc3RlcHMudG9TdHJpbmcoKSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbImgxLm9wZW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJo
MS5vcGVuLm9uc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgyLm9w
ZW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vcGVuLm9uc3VjY2VzcyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgxLnNldFZlcnNpb24iLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vbnZlcnNpb25jaGFuZ2UiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uLm9uYmxvY2tlZCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImgyLmNsb3NlIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmcoKSk7Ci0gICAgICAgIHRlc3QyKCk7
Ci0gICAgfQorICAgIGV2YWxBbmRMb2coInNlbGYudGVzdG5hbWUgPSAndGVzdDEnOyBzZWxmLnZl
ciA9IDEiKTsKKyAgICBldmFsTm9Mb2coImJsb2NrZWRFdmVudEZpcmVkID0gZmFsc2UiKTsKKwor
ICAgIGRlYnVnKCInaDEub3BlbiciKTsKKyAgICByZXF1ZXN0ID0gZXZhbE5vTG9nKCJpbmRleGVk
REIub3BlbihkYm5hbWUgKyB0ZXN0bmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVu
ZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRlYnVnKCInaDEub3Blbi5vbnN1Y2Nlc3MnIik7CisgICAgICAgIGgxID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgIGgxLm9udmVyc2lvbmNoYW5nZSA9IHVuZXhwZWN0ZWRWZXJz
aW9uQ2hhbmdlQ2FsbGJhY2s7CisKKyAgICAgICAgZGVidWcoIidoMi5vcGVuJyIpOworICAgICAg
ICByZXF1ZXN0ID0gZXZhbE5vTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUgKyB0ZXN0bmFtZSki
KTsKKyAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNr
OworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAg
ICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkZWJ1
ZygiJ2gyLm9wZW4ub25zdWNjZXNzJyIpOworICAgICAgICAgICAgaDIgPSBlLnRhcmdldC5yZXN1
bHQ7CisKKyAgICAgICAgICAgIGgyLm9udmVyc2lvbmNoYW5nZSA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGRlYnVnKCInaDIub252ZXJzaW9uY2hhbmdlJyIpOworICAgICAgICAgICAg
ICAgIGRlYnVnKCIgICAgaDIgY2xvc2luZywgYnV0IG5vdCBpbW1lZGlhdGVseSIpOworICAgICAg
ICAgICAgICAgIC8vIFRoaXMgc2V0VGltZW91dCgpIGlzIHVzZWQgdG8gbW92ZSB0aGUgY2xvc2Ug
Y2FsbCBvdXRzaWRlIG9mIHRoZSBldmVudCBkaXNwYXRjaAorICAgICAgICAgICAgICAgIC8vIGNh
bGxiYWNrLiBQZXIgc3BlYywgYSBibG9ja2VkIGV2ZW50IHNob3VsZCBvbmx5IGZpcmUgaWYgY29u
bmVjdGlvbnMgYXJlIHN0aWxsCisgICAgICAgICAgICAgICAgLy8gb3BlbiBhZnRlciB0aGUgdmVy
c2lvbmNoYW5nZSBldmVudCBkaXNwYXRjaCBpcyBjb21wbGV0ZS4KKyAgICAgICAgICAgICAgICAv
LyBGSVhNRTogVGhlcmUgaXMgcG90ZW50aWFsIGZvciB0ZXN0IGZsYWtpbmVzcyBpbiB0aGUgdGlt
aW5nIGJldHdlZW4gd2hlbiB0aGUKKyAgICAgICAgICAgICAgICAvLyB0aW1lb3V0IHJ1bnMgYW5k
IHdoZW4gdGhlIGJsb2NrZWQgZXZlbnQgaXMgZGlzcGF0Y2hlZC4gTW92ZSB0aGUgY2xvc2UgY2Fs
bAorICAgICAgICAgICAgICAgIC8vIGludG8gb3IgYWZ0ZXIgdGhlIGJsb2NrZWQgZXZlbnQgaGFu
ZGxlci4KKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBkZWJ1ZygiJ2gyLmNsb3NlJyIpOworICAgICAgICAgICAgICAgICAgICBldmFs
Tm9Mb2coImgyLmNsb3NlKCkiKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAg
IH07CisKKyAgICAgICAgICAgIGRlYnVnKCInaDEuc2V0VmVyc2lvbiciKTsKKyAgICAgICAgICAg
IHJlcXVlc3QgPSBldmFsTm9Mb2coImgxLnNldFZlcnNpb24oU3RyaW5nKHZlcisrKSkiKTsKKyAg
ICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAg
ICAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBkZWJ1ZygiJ2gxLnNldFZlcnNpb24ub25ibG9ja2VkJyIpOworICAgICAgICAgICAgICAgIGV2
YWxOb0xvZygiYmxvY2tlZEV2ZW50RmlyZWQgPSB0cnVlIik7CisgICAgICAgICAgICB9OworICAg
ICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgZGVidWcoIidoMS5zZXRWZXJzaW9uLm9uc3VjY2VzcyciKTsKKworICAgICAgICAgICAgICAg
IHRyYW5zYWN0aW9uID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgICAgIHRyYW5zYWN0
aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICAgICAgICAgICAgICB0
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IGRlYnVnKCInaDEuc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21wbGV0ZSciKTsKKyAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJibG9ja2VkRXZlbnRGaXJlZCIpOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0MigpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9Owor
ICAgICAgICB9OworICAgIH07CiB9CiAKIGZ1bmN0aW9uIHRlc3QyKCkgewogICAgIGRlYnVnKCIi
KTsKICAgICBkZWJ1ZygiVEVTVDogc2V0VmVyc2lvbiBub3QgYmxvY2tlZCBpZiBoYW5kbGUgY2xv
c2VkIGltbWVkaWF0ZWx5Iik7Ci0gICAgZXZhbEFuZExvZygic2VsZi5kYm5hbWUgPSAndGVzdDIn
OyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXSIpOwotICAgIHZhciBoMSA9IG5ldyBDb25u
ZWN0aW9uKCJoMSIpOwotICAgIHZhciBoMiA9IG5ldyBDb25uZWN0aW9uKCJoMiIpOwotICAgIHJ1
blN0ZXBzKFtmdW5jdGlvbihkb05leHQpIHsgaDEub3Blbih7b25zdWNjZXNzOiBkb05leHR9KTsg
fSwKLSAgICAgICAgICAgICAgZnVuY3Rpb24oZG9OZXh0KSB7IGgyLm9wZW4oe29uc3VjY2Vzczog
ZG9OZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb252ZXJz
aW9uOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZWJ1ZygiICAgIGgyIGNsb3NpbmcgaW1tZWRpYXRlbHkiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoMi5jbG9zZSgpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pOyB9LAotICAgICAgICAgICAgICBm
dW5jdGlvbihkb05leHQpIHsgaDEuc2V0VmVyc2lvbih7b25zdWNjZXNzOiBkb05leHR9KTsgfSwK
LSAgICAgICAgICAgICAgZmluaXNoVGVzdAotICAgICAgICAgICAgICBdKTsKLQotICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7Ci0gICAgICAgIGRlYnVnKCJOT1RFOiBXaWxsIEZBSUwgd2l0aCBl
eHRyYSBib2d1cyBoMS5zZXRWZXJzaW9uLm9uYmxvY2tlZCBzdGVwOyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMzAiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJzZWxmLnN0ZXBzLnRvU3RyaW5nKCkiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyJoMS5vcGVuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDEub3Bl
bi5vbnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vcGVuIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDIub3Blbi5vbnN1Y2Nlc3MiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaDIub252ZXJzaW9uY2hhbmdlIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaDIuY2xvc2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJoMS5zZXRWZXJzaW9uLm9uc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImgxLnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXS50b1N0cmluZygpKTsKLSAgICAgICAgdGVzdDMoKTsKLSAgICB9
CisgICAgZXZhbEFuZExvZygic2VsZi50ZXN0bmFtZSA9ICd0ZXN0Mic7IHNlbGYudmVyID0gMSIp
OworICAgIGV2YWxOb0xvZygiYmxvY2tlZEV2ZW50RmlyZWQgPSBmYWxzZSIpOworCisgICAgZGVi
dWcoIidoMS5vcGVuJyIpOworICAgIHJlcXVlc3QgPSBldmFsTm9Mb2coImluZGV4ZWREQi5vcGVu
KGRibmFtZSArIHRlc3RuYW1lKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3Rl
ZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ZGVidWcoIidoMS5vcGVuLm9uc3VjY2VzcyciKTsKKyAgICAgICAgaDEgPSBlLnRhcmdldC5yZXN1
bHQ7CisKKyAgICAgICAgaDEub252ZXJzaW9uY2hhbmdlID0gdW5leHBlY3RlZFZlcnNpb25DaGFu
Z2VDYWxsYmFjazsKKworICAgICAgICBkZWJ1ZygiJ2gyLm9wZW4nIik7CisgICAgICAgIHJlcXVl
c3QgPSBldmFsTm9Mb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSArIHRlc3RuYW1lKSIpOworICAg
ICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAg
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRlYnVnKCInaDIu
b3Blbi5vbnN1Y2Nlc3MnIik7CisgICAgICAgICAgICBoMiA9IGUudGFyZ2V0LnJlc3VsdDsKKwor
ICAgICAgICAgICAgaDIub252ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgZGVidWcoIidoMi5vbnZlcnNpb25jaGFuZ2UnIik7CisgICAgICAgICAgICAgICAgZGVi
dWcoIiAgICBoMiBjbG9zaW5nIGltbWVkaWF0ZWx5Iik7CisgICAgICAgICAgICAgICAgZGVidWco
IidoMi5jbG9zZSciKTsKKyAgICAgICAgICAgICAgICBldmFsTm9Mb2coImgyLmNsb3NlKCkiKTsK
KyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGRlYnVnKCInaDEuc2V0VmVyc2lvbiciKTsK
KyAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsTm9Mb2coImgxLnNldFZlcnNpb24oU3RyaW5nKHZl
cisrKSkiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBkZWJ1ZygiJ2gxLnNldFZlcnNpb24ub25ibG9ja2VkJyIpOworICAgICAg
ICAgICAgICAgIGV2YWxOb0xvZygiYmxvY2tlZEV2ZW50RmlyZWQgPSB0cnVlIik7CisgICAgICAg
ICAgICB9OworICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICAgICAgZGVidWcoIidoMS5zZXRWZXJzaW9uLm9uc3VjY2VzcyciKTsKKworICAg
ICAgICAgICAgICAgIHRyYW5zYWN0aW9uID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
ICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICAg
ICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIGRlYnVnKCInaDEuc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21wbGV0ZSci
KTsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoIk5PVEU6IFdpbGwgRkFJTCB3aXRoIGV4dHJh
IGJvZ3VzIGgxLnNldFZlcnNpb24ub25ibG9ja2VkIHN0ZXA7IGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MTEzMCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRC
ZUZhbHNlKCJibG9ja2VkRXZlbnRGaXJlZCIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0Mygp
OworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH07
CiB9CiAKIGZ1bmN0aW9uIHRlc3QzKCkgewogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiVEVT
VDogb3BlbiBhbmQgc2V0VmVyc2lvbiBibG9ja2VkIGlmIGEgVkVSU0lPTl9DSEFOR0UgdHJhbnNh
Y3Rpb24gaXMgcnVubmluZyAtIGNsb3NlIHdoZW4gYmxvY2tlZCIpOwotICAgIGV2YWxBbmRMb2co
InNlbGYuZGJuYW1lID0gJ3Rlc3QzJzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0gW10iKTsK
LSAgICB2YXIgaDEgPSBuZXcgQ29ubmVjdGlvbigiaDEiKTsKLSAgICB2YXIgaDIgPSBuZXcgQ29u
bmVjdGlvbigiaDIiKTsKLSAgICB2YXIgaDMgPSBuZXcgQ29ubmVjdGlvbigiaDMiKTsKLSAgICBy
dW5TdGVwcyhbZnVuY3Rpb24oZG9OZXh0KSB7IGgxLm9wZW4oe29uc3VjY2VzczogZG9OZXh0fSk7
IH0sCi0gICAgICAgICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBoMi5vcGVuKHtvbnN1Y2Nlc3M6
IGRvTmV4dH0pOyB9LAotICAgICAgICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgaDEuc2V0VmVy
c2lvbigpOyBkb05leHQoKTsgfSwKLSAgICAgICAgICAgICAgZnVuY3Rpb24oZG9OZXh0KSB7IGgy
LnNldFZlcnNpb24oewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb25ibG9ja2VkOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiICAgIGgyIGJsb2NrZWQgc28g
Y2xvc2luZyIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGgyLmNsb3NlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG9OZXh0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7IH0sCi0gICAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBoMy5vcGVuKHtvbnN1Y2Nlc3M6IGZpbmlzaFRlc3R9KTt9Ci0gICAgICAgICAgICAgIF0p
OwotCi0gICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJzZWxmLnN0ZXBzLnRvU3RyaW5nKCkiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyJoMS5vcGVuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDEub3Bl
bi5vbnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vcGVuIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDIub3Blbi5vbnN1Y2Nlc3MiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaDIuc2V0VmVyc2lvbiIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImgyLm9udmVyc2lvbmNoYW5nZSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImgxLnNldFZlcnNpb24ub25ibG9ja2VkIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaDEub252ZXJzaW9uY2hhbmdlIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiaDIuc2V0VmVyc2lvbi5vbmJsb2NrZWQiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJoMi5jbG9zZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgz
Lm9wZW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5zZXRWZXJzaW9uLm9u
ZXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uLm9u
c3VjY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgxLnNldFZlcnNpb24u
dHJhbnNhY3Rpb24tY29tcGxldGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJo
My5vcGVuLm9uc3VjY2VzcyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLnRvU3Ry
aW5nKCkpOwotICAgICAgICB0ZXN0NCgpOwotICAgIH0KKyAgICBldmFsQW5kTG9nKCJzZWxmLnRl
c3RuYW1lID0gJ3Rlc3QzJzsgc2VsZi52ZXIgPSAxIik7CisgICAgZXZhbE5vTG9nKCJibG9ja2Vk
RXZlbnRGaXJlZCA9IGZhbHNlIik7CisgICAgZXZhbE5vTG9nKCJ2ZXJzaW9uQ2hhbmdlQ29tcGxl
dGUgPSBmYWxzZSIpOworCisgICAgZGVidWcoIidoMS5vcGVuJyIpOworICAgIHJlcXVlc3QgPSBl
dmFsTm9Mb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSArIHRlc3RuYW1lKSIpOworICAgIHJlcXVl
c3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGVidWcoIidoMS5vcGVuLm9uc3VjY2VzcyciKTsKKyAg
ICAgICAgaDEgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgaDEub252ZXJzaW9uY2hhbmdl
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkZWJ1ZygiJ2gxLm9udmVyc2lvbmNoYW5nZSci
KTsKKyAgICAgICAgfTsKKworICAgICAgICBkZWJ1ZygiJ2gyLm9wZW4nIik7CisgICAgICAgIHJl
cXVlc3QgPSBldmFsTm9Mb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSArIHRlc3RuYW1lKSIpOwor
ICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cisg
ICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRlYnVnKCIn
aDIub3Blbi5vbnN1Y2Nlc3MnIik7CisgICAgICAgICAgICBoMiA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICAgICAgaDIub252ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgZGVidWcoIidoMi5vbnZlcnNpb25jaGFuZ2UnIik7CisgICAgICAgICAgICB9Owor
CisgICAgICAgICAgICBkZWJ1ZygiJ2gxLnNldFZlcnNpb24nIik7CisgICAgICAgICAgICByZXF1
ZXN0ID0gZXZhbE5vTG9nKCJoMS5zZXRWZXJzaW9uKFN0cmluZyh2ZXIrKykpIik7CisgICAgICAg
ICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAg
ICAgIHJlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZGVi
dWcoIidoMS5zZXRWZXJzaW9uLm9uYmxvY2tlZCciKTsKKyAgICAgICAgICAgICAgICBldmFsTm9M
b2coImJsb2NrZWRFdmVudEZpcmVkID0gdHJ1ZSIpOworICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGRl
YnVnKCInaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MnIik7CisKKyAgICAgICAgICAgICAgICB0cmFu
c2FjdGlvbiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgICAgICAgICAgICAgdHJhbnNh
Y3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkZWJ1
ZygiJ2gxLnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUnIik7CisgICAgICAgICAgICAg
ICAgICAgIGV2YWxOb0xvZygidmVyc2lvbkNoYW5nZUNvbXBsZXRlID0gdHJ1ZSIpOworICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBkZWJ1ZygiJ2gyLnNl
dFZlcnNpb24nIik7CisgICAgICAgICAgICByZXF1ZXN0ID0gZXZhbE5vTG9nKCJoMi5zZXRWZXJz
aW9uKFN0cmluZyh2ZXIrKykpIik7CisgICAgICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGRlYnVnKCInaDIuc2V0VmVyc2lvbi5vbmJsb2Nr
ZWQnIik7CisgICAgICAgICAgICAgICAgZGVidWcoIiAgICBoMiBibG9ja2VkIHNvIGNsb3Npbmci
KTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiJ2gyLmNsb3NlJyIpOworICAgICAgICAgICAgICAg
IGgyLmNsb3NlKCk7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiJ2gzLm9wZW4nIik7CisgICAg
ICAgICAgICAgICAgcmVxdWVzdCA9IGV2YWxOb0xvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lICsg
dGVzdG5hbWUpIik7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVj
dGVkQmxvY2tlZENhbGxiYWNrOworICAgICAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGRlYnVnKCInaDMub3Blbi5vbnN1
Y2Nlc3MnIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYmxvY2tlZEV2ZW50
RmlyZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJ2ZXJzaW9uQ2hhbmdl
Q29tcGxldGUiKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdDQoKTsKKyAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGRlYnVnKCInaDIuc2V0VmVyc2lvbi5vbmVycm9yJyIp
OworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICB9OwogfQogCiBmdW5jdGlvbiB0ZXN0
NCgpIHsKICAgICBkZWJ1ZygiIik7CiAgICAgZGVidWcoIlRFU1Q6IG9wZW4gYW5kIHNldFZlcnNp
b24gYmxvY2tlZCBpZiBhIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9uIGlzIHJ1bm5pbmcgLSBq
dXN0IGNsb3NlIik7Ci0gICAgZXZhbEFuZExvZygic2VsZi5kYm5hbWUgPSAndGVzdDQnOyBzZWxm
LnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXSIpOwotICAgIHZhciBoMSA9IG5ldyBDb25uZWN0aW9u
KCJoMSIpOwotICAgIHZhciBoMiA9IG5ldyBDb25uZWN0aW9uKCJoMiIpOwotICAgIHZhciBoMyA9
IG5ldyBDb25uZWN0aW9uKCJoMyIpOwotICAgIHJ1blN0ZXBzKFtmdW5jdGlvbihkb05leHQpIHsg
aDEub3Blbih7b25zdWNjZXNzOiBkb05leHR9KTsgfSwKLSAgICAgICAgICAgICAgZnVuY3Rpb24o
ZG9OZXh0KSB7IGgyLm9wZW4oe29uc3VjY2VzczogZG9OZXh0fSk7IH0sCi0gICAgICAgICAgICAg
IGZ1bmN0aW9uKGRvTmV4dCkgeyBoMS5zZXRWZXJzaW9uKCk7IGRvTmV4dCgpOyB9LAotICAgICAg
ICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgaDMub3Blbih7b25zdWNjZXNzOiBmaW5pc2hUZXN0
fSk7IGRvTmV4dCgpOyB9LAotICAgICAgICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgaDIuY2xv
c2UoKTsgfSwKLSAgICAgICAgICAgICAgXSk7Ci0KLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkg
ewotICAgICAgICBkZWJ1ZygiTk9URTogV2lsbCBGQUlMIHdpdGggZXh0cmEgYm9ndXMgaDEuc2V0
VmVyc2lvbi5vbmJsb2NrZWQgc3RlcDsgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcxMTMwIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2VsZi5zdGVw
cy50b1N0cmluZygpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiaDEub3BlbiIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgxLm9wZW4ub25zdWNjZXNzIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDIub3BlbiIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImgyLm9wZW4ub25zdWNjZXNzIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaDEuc2V0VmVyc2lvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImgzLm9wZW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5jbG9zZSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgxLnNldFZlcnNpb24ub25zdWNjZXNz
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDEuc2V0VmVyc2lvbi50cmFuc2Fj
dGlvbi1jb21wbGV0ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgzLm9wZW4u
b25zdWNjZXNzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmcoKSk7
Ci0gICAgICAgIHRlc3Q1KCk7Ci0gICAgfQorICAgIGV2YWxBbmRMb2coInNlbGYudGVzdG5hbWUg
PSAndGVzdDQnOyBzZWxmLnZlciA9IDEiKTsKKyAgICBldmFsTm9Mb2coImJsb2NrZWRFdmVudEZp
cmVkID0gZmFsc2UiKTsKKyAgICBldmFsTm9Mb2coInZlcnNpb25DaGFuZ2VDb21wbGV0ZSA9IGZh
bHNlIik7CisKKyAgICBkZWJ1ZygiJ2gxLm9wZW4nIik7CisgICAgcmVxdWVzdCA9IGV2YWxOb0xv
ZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lICsgdGVzdG5hbWUpIik7CisgICAgcmVxdWVzdC5vbmJs
b2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkZWJ1ZygiJ2gxLm9wZW4ub25zdWNjZXNzJyIpOworICAgICAgICBo
MSA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICBoMS5vbnZlcnNpb25jaGFuZ2UgPSB1bmV4
cGVjdGVkVmVyc2lvbkNoYW5nZUNhbGxiYWNrOworCisgICAgICAgIGRlYnVnKCInaDIub3Blbici
KTsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxOb0xvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lICsg
dGVzdG5hbWUpIik7CisgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2Nr
ZWRDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgZGVidWcoIidoMi5vcGVuLm9uc3VjY2VzcyciKTsKKyAgICAgICAgICAgIGgyID0gZS50
YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBoMi5vbnZlcnNpb25jaGFuZ2UgPSB1bmV4cGVj
dGVkVmVyc2lvbkNoYW5nZUNhbGxiYWNrOworCisgICAgICAgICAgICBkZWJ1ZygiJ2gxLnNldFZl
cnNpb24nIik7CisgICAgICAgICAgICByZXF1ZXN0ID0gZXZhbE5vTG9nKCJoMS5zZXRWZXJzaW9u
KFN0cmluZyh2ZXIrKykpIik7CisgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgZGVidWcoIidoMS5zZXRWZXJzaW9uLm9uYmxvY2tlZCci
KTsKKyAgICAgICAgICAgICAgICBldmFsTm9Mb2coImJsb2NrZWRFdmVudEZpcmVkID0gdHJ1ZSIp
OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgICAgIGRlYnVnKCInaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3Mn
Iik7CisKKyAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJh
Y2s7CisgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiJ2gxLnNldFZlcnNpb24udHJhbnNhY3Rpb24t
Y29tcGxldGUnIik7CisgICAgICAgICAgICAgICAgICAgIGV2YWxOb0xvZygidmVyc2lvbkNoYW5n
ZUNvbXBsZXRlID0gdHJ1ZSIpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9Owor
CisgICAgICAgICAgICBkZWJ1ZygiJ2gzLm9wZW4nIik7CisgICAgICAgICAgICByZXF1ZXN0ID0g
ZXZhbE5vTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUgKyB0ZXN0bmFtZSkiKTsKKyAgICAgICAg
ICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICAg
ICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAg
ICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBk
ZWJ1ZygiJ2gzLm9wZW4ub25zdWNjZXNzJyIpOworICAgICAgICAgICAgICAgIGRlYnVnKCJOT1RF
OiBXaWxsIEZBSUwgd2l0aCBleHRyYSBib2d1cyBoMS5zZXRWZXJzaW9uLm9uYmxvY2tlZCBzdGVw
OyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMzAiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJibG9ja2VkRXZlbnRGaXJlZCIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgidmVyc2lvbkNoYW5nZUNvbXBsZXRlIik7CisgICAgICAgICAg
ICAgICAgdGVzdDUoKTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGRlYnVnKCInaDIu
Y2xvc2UnIik7CisgICAgICAgICAgICBldmFsTm9Mb2coImgyLmNsb3NlKCkiKTsKKyAgICAgICAg
fTsKKyAgICB9OwogfQogCiBmdW5jdGlvbiB0ZXN0NSgpIHsKICAgICBkZWJ1ZygiIik7CiAgICAg
ZGVidWcoIlRFU1Q6IG9wZW4gYmxvY2tlZCBpZiBhIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9u
IGlzIHJ1bm5pbmciKTsKLSAgICBldmFsQW5kTG9nKCJzZWxmLmRibmFtZSA9ICd0ZXN0NSc7IHNl
bGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdIik7Ci0gICAgdmFyIGgxID0gbmV3IENvbm5lY3Rp
b24oImgxIik7Ci0gICAgdmFyIGgyID0gbmV3IENvbm5lY3Rpb24oImgyIik7Ci0KLSAgICBydW5T
dGVwcyhbZnVuY3Rpb24oZG9OZXh0KSB7IGgxLm9wZW4oe29uc3VjY2VzczogZG9OZXh0fSk7IH0s
Ci0gICAgICAgICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBoMS5zZXRWZXJzaW9uKCk7IGRvTmV4
dCgpOyB9LAotICAgICAgICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgaDIub3Blbih7b25zdWNj
ZXNzOiBmaW5pc2hUZXN0fSk7IH0KLSAgICAgICAgICAgICAgXSk7Ci0KLSAgICBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkgewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNlbGYuc3RlcHMu
dG9TdHJpbmcoKSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImgxLm9wZW4iLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMS5vcGVuLm9uc3VjY2VzcyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImgxLnNldFZlcnNpb24iLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJoMi5vcGVuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaDIub3Blbi5vbnN1Y2Nlc3MiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXS50b1N0cmluZygpKTsKLSAgICAgICAgdGVzdDYoKTsKLSAgICB9Cisg
ICAgZXZhbEFuZExvZygic2VsZi50ZXN0bmFtZSA9ICd0ZXN0NSc7IHNlbGYudmVyID0gMSIpOwor
ICAgIGV2YWxOb0xvZygidmVyc2lvbkNoYW5nZUNvbXBsZXRlID0gZmFsc2UiKTsKKworICAgIGRl
YnVnKCInaDEub3BlbiciKTsKKyAgICByZXF1ZXN0ID0gZXZhbE5vTG9nKCJpbmRleGVkREIub3Bl
bihkYm5hbWUgKyB0ZXN0bmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0
ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRlYnVnKCInaDEub3Blbi5vbnN1Y2Nlc3MnIik7CisgICAgICAgIGgxID0gZS50YXJnZXQucmVz
dWx0OworCisgICAgICAgIGgxLm9udmVyc2lvbmNoYW5nZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hh
bmdlQ2FsbGJhY2s7CisKKyAgICAgICAgZGVidWcoIidoMS5zZXRWZXJzaW9uJyIpOworICAgICAg
ICByZXF1ZXN0ID0gZXZhbE5vTG9nKCJoMS5zZXRWZXJzaW9uKFN0cmluZyh2ZXIrKykpIik7Cisg
ICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAg
ICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGVidWcoIido
MS5zZXRWZXJzaW9uLm9uc3VjY2VzcyciKTsKKworICAgICAgICAgICAgdHJhbnNhY3Rpb24gPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBl
Y3RlZEFib3J0Q2FsbGJhY2s7CisgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZGVidWcoIidoMS5zZXRWZXJzaW9uLnRyYW5z
YWN0aW9uLWNvbXBsZXRlJyIpOworICAgICAgICAgICAgICAgIGV2YWxOb0xvZygidmVyc2lvbkNo
YW5nZUNvbXBsZXRlID0gdHJ1ZSIpOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAg
ICAgICBkZWJ1ZygiJ2gyLm9wZW4nIik7CisgICAgICAgIHJlcXVlc3QgPSBldmFsTm9Mb2coImlu
ZGV4ZWREQi5vcGVuKGRibmFtZSArIHRlc3RuYW1lKSIpOworICAgICAgICByZXF1ZXN0Lm9uYmxv
Y2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRlYnVnKCInaDIub3Blbi5vbnN1Y2Nlc3MnIik7
CisgICAgICAgICAgICBoMiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGgyLm9udmVy
c2lvbmNoYW5nZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2s7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoInZlcnNpb25DaGFuZ2VDb21wbGV0ZSIpOworICAgICAgICAgICAgdGVz
dDYoKTsKKyAgICAgICAgfTsKKyAgICB9OwogfQogCiBmdW5jdGlvbiB0ZXN0NigpIHsKICAgICBk
ZWJ1ZygiIik7CiAgICAgZGVidWcoIlRFU1Q6IHR3byBzZXRWZXJzaW9ucyBmcm9tIHRoZSBzYW1l
IGNvbm5lY3Rpb24iKTsKLSAgICBldmFsQW5kTG9nKCJzZWxmLmRibmFtZSA9ICd0ZXN0Nic7IHNl
bGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdIik7Ci0gICAgdmFyIGgxID0gbmV3IENvbm5lY3Rp
b24oImgxIik7Ci0KLSAgICBydW5TdGVwcyhbZnVuY3Rpb24oZG9OZXh0KSB7IGgxLm9wZW4oe29u
c3VjY2VzczogZG9OZXh0fSk7IH0sCi0gICAgICAgICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBo
MS5zZXRWZXJzaW9uKHtvbnN1Y2Nlc3M6IGhhbGZEb25lfSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoMS5zZXRWZXJzaW9uKHtvbnN1Y2Nlc3M6IGhhbGZEb25lfSk7IH0KLSAg
ICAgICAgICAgICAgXSk7Ci0KLSAgICB2YXIgY291bnRlciA9IDA7Ci0gICAgZnVuY3Rpb24gaGFs
ZkRvbmUoKSB7Ci0gICAgICAgIGNvdW50ZXIrKzsKLSAgICAgICAgaWYgKGNvdW50ZXIgPCAyKSB7
Ci0gICAgICAgICAgICBkZWJ1ZygnaGFsZiBkb25lJyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkgewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNlbGYuc3RlcHMu
dG9TdHJpbmcoKSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImgxLm9wZW4iLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMS5vcGVuLm9uc3VjY2VzcyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImgxLnNldFZlcnNpb24iLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiaDEuc2V0VmVyc2lvbi5vbnN1Y2Nlc3MiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNv
bXBsZXRlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmcoKSk7Ci0g
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0KKyAgICBldmFsQW5kTG9nKCJzZWxmLnRlc3Ru
YW1lID0gJ3Rlc3Q2Jzsgc2VsZi52ZXIgPSAxIik7CisgICAgZXZhbE5vTG9nKCJ2ZXJzaW9uQ2hh
bmdlQ29tcGxldGUgPSBmYWxzZSIpOworCisgICAgZGVidWcoIidoMS5vcGVuJyIpOworICAgIHJl
cXVlc3QgPSBldmFsTm9Mb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSArIHRlc3RuYW1lKSIpOwor
ICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGVidWcoIidoMS5vcGVuLm9uc3VjY2Vz
cyciKTsKKyAgICAgICAgaDEgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGgxLm9udmVyc2lv
bmNoYW5nZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2s7CisKKyAgICAgICAgZGVi
dWcoIidoMS5zZXRWZXJzaW9uJyIpOworICAgICAgICByZXF1ZXN0ID0gZXZhbE5vTG9nKCJoMS5z
ZXRWZXJzaW9uKFN0cmluZyh2ZXIrKykpIik7CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhw
ZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgZGVidWcoIidoMS5zZXRWZXJzaW9uLm9uc3VjY2VzcyciKTsK
KworICAgICAgICAgICAgdHJhbnNhY3Rpb24gPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAg
ICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgICAg
ICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgZGVidWcoIidoMS5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlJyIpOworICAgICAg
ICAgICAgICAgIGRlYnVnKCJoYWxmIGRvbmUiKTsKKyAgICAgICAgICAgICAgICBldmFsTm9Mb2co
InZlcnNpb25DaGFuZ2VDb21wbGV0ZSA9IHRydWUiKTsKKyAgICAgICAgICAgIH07CisgICAgICAg
IH07CisKKworICAgICAgICBkZWJ1ZygiJ2gxLnNldFZlcnNpb24nIik7CisgICAgICAgIHJlcXVl
c3QgPSBldmFsTm9Mb2coImgxLnNldFZlcnNpb24oU3RyaW5nKHZlcisrKSkiKTsKKyAgICAgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVl
c3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICAgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkZWJ1ZygiJ2gxLnNldFZl
cnNpb24ub25zdWNjZXNzJyIpOworCisgICAgICAgICAgICB0cmFuc2FjdGlvbiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJv
cnRDYWxsYmFjazsKKyAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiJ2gxLnNldFZlcnNpb24udHJhbnNhY3Rpb24t
Y29tcGxldGUnIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJ2ZXJzaW9uQ2hhbmdl
Q29tcGxldGUiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IH07CisgICAgICAgIH07CisgICAgfTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKK3Rlc3QoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>