<?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>111589</bug_id>
          
          <creation_ts>2013-03-06 09:37:09 -0800</creation_ts>
          <short_desc>Remove GC code duplication in http/tests LayoutTests.</short_desc>
          <delta_ts>2013-03-07 10:10:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aaron Colwell">acolwell</reporter>
          <assigned_to name="Aaron Colwell">acolwell</assigned_to>
          <cc>ap</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>haraken</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>848954</commentid>
    <comment_count>0</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2013-03-06 09:37:09 -0800</bug_when>
    <thetext>Remove GC code duplication in http/tests LayoutTests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848959</commentid>
    <comment_count>1</comment_count>
      <attachid>191772</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2013-03-06 09:41:03 -0800</bug_when>
    <thetext>Created attachment 191772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849488</commentid>
    <comment_count>2</comment_count>
      <attachid>191772</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-06 16:59:39 -0800</bug_when>
    <thetext>Comment on attachment 191772
Patch

Can we just use js-test-pre.js, which also defines gc()? I&apos;m not quite sure if this script doesn&apos;t have any side effects when included though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849536</commentid>
    <comment_count>3</comment_count>
      <attachid>191874</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2013-03-06 17:40:03 -0800</bug_when>
    <thetext>Created attachment 191874
Use gc() in js-test-pre.js instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849539</commentid>
    <comment_count>4</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2013-03-06 17:42:04 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 191772 [details])
&gt; Can we just use js-test-pre.js, which also defines gc()? I&apos;m not quite sure if this script doesn&apos;t have any side effects when included though.

I changed the code to use js-test-pre.js and reran all the tests locally and they seem to pass. Lets see what the EWS bots say. The mechanism for triggering GC when GCController is not available is different in the js-test-pre.js implementation, but I&apos;m not sure how much that matters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849553</commentid>
    <comment_count>5</comment_count>
      <attachid>191874</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-06 18:00:04 -0800</bug_when>
    <thetext>Comment on attachment 191874
Use gc() in js-test-pre.js instead.

Good refactoring. GC behavior is a bit unpredictable (e.g. 10000 and 100000 can result in different behavior) and thus it&apos;s important to maintain the code in one place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849554</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-06 18:01:56 -0800</bug_when>
    <thetext>Actually I&apos;ve observed a couple of cases where manually written gc() didn&apos;t trigger a major GC of V8 because the number of object instantiation was not enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849652</commentid>
    <comment_count>7</comment_count>
      <attachid>191874</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-06 19:37:47 -0800</bug_when>
    <thetext>Comment on attachment 191874
Use gc() in js-test-pre.js instead.

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

r=me too, but I have comments that need to be addressed.

&gt; LayoutTests/ChangeLog:8
&gt; +Replaced duplicated GC logic in various tests with a function call to the implementation in resources/js-test-pre.js

Please fix formatting.

&gt; LayoutTests/http/tests/appcache/destroyed-frame.html:6
&gt; +&lt;script src=&quot;/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;

We should not have these files in http/tests/resources. Someone was confused when adding them.

Please use &quot;/js-test-resources/js-test-pre.js&quot;. This path is mapped to fast/js/resources, so we avoid code duplication.

It would be helpful to remove the copies in http/tests/resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850142</commentid>
    <comment_count>8</comment_count>
      <attachid>191874</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2013-03-07 09:11:58 -0800</bug_when>
    <thetext>Comment on attachment 191874
Use gc() in js-test-pre.js instead.

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

&gt;&gt; LayoutTests/ChangeLog:8
&gt;&gt; +Replaced duplicated GC logic in various tests with a function call to the implementation in resources/js-test-pre.js
&gt; 
&gt; Please fix formatting.

done.

&gt;&gt; LayoutTests/http/tests/appcache/destroyed-frame.html:6
&gt;&gt; +&lt;script src=&quot;/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; We should not have these files in http/tests/resources. Someone was confused when adding them.
&gt; 
&gt; Please use &quot;/js-test-resources/js-test-pre.js&quot;. This path is mapped to fast/js/resources, so we avoid code duplication.
&gt; 
&gt; It would be helpful to remove the copies in http/tests/resources.

I&apos;ve changed includes to /js-test-resources/js-test-pre.js, but I think removing the duplicate file and updating the other tests should be in a different patch since it is unrelated to the goal of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850143</commentid>
    <comment_count>9</comment_count>
      <attachid>192014</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2013-03-07 09:12:07 -0800</bug_when>
    <thetext>Created attachment 192014
Update includes to /js-test-resources/js-test-pre.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850173</commentid>
    <comment_count>10</comment_count>
      <attachid>192014</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-07 09:41:51 -0800</bug_when>
    <thetext>Comment on attachment 192014
Update includes to /js-test-resources/js-test-pre.js

Clearing flags on attachment: 192014

Committed r145090: &lt;http://trac.webkit.org/changeset/145090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850174</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-07 09:41:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850213</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-07 10:10:32 -0800</bug_when>
    <thetext>&gt; I think removing the duplicate file and updating the other tests should be in a different patch since it is unrelated to the goal of this bug.

The title of this bug is &quot;Remove GC code duplication in http/tests LayoutTests&quot;, so updating other tests is part of that task as stated. It&apos;s perfectly fine to do it in one patch or in multiple patches, whichever is more practical.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191772</attachid>
            <date>2013-03-06 09:41:03 -0800</date>
            <delta_ts>2013-03-06 17:40:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111589-20130306093709.patch</filename>
            <type>text/plain</type>
            <size>14100</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0OTMxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjk5ZTEwMWU1NjVkMzY0YThiNzk1
ZWVkNDY5MzliN2RiYjYyOWI3OC4uYmU2NDdkN2E0ZWYzMDY3N2MzNWZiZWE2OGFjMzZiNjU0MzJl
NmZhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAzLTA2ICBBYXJvbiBDb2x3ZWxsICA8
YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBHQyBjb2RlIGR1cGxpY2F0
aW9uIGluIGh0dHAvdGVzdHMgTGF5b3V0VGVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworUmVwbGFjZWQgZHVwbGljYXRlZCBHQyBsb2dpYyBpbiB2YXJpb3VzIHRl
c3RzIHdpdGggYSBmdW5jdGlvbiBjYWxsIHRvIGEgc2luZ2xlIGltcGxlbWVudGF0aW9uLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9kZXN0cm95ZWQtZnJhbWUuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc291
cmNlYnVmZmVybGlzdC1jcmFzaC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9hc3lu
Yy1zY3JpcHQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvZW1iZWQtaW1hZ2UtbG9h
ZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9taXNjL2ltYWdlLWlucHV0LXR5cGUtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhv
dXQtY3Jhc2hpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvamF2YXNjcmlwdC11
cmwtc3RvcC1sb2FkZXJzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL29iamVjdC1p
bWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL21pc2Mvc3ZnLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGlu
Zy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy92aWRlby1wb3N0ZXItaW1hZ2UtbG9h
ZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZXMvZ2MuanM6IEFkZGVkLgorICAgICAgICAoZ2MpOiBOZXcgY29tbW9uIGZ1bmN0
aW9uIHRoYXQgZm9yY2VzIGdhcmJhZ2UgY29sbGVjdGlvbi4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2RldGFjaGVkLXNhbmRib3hlZC1mcmFtZS1hY2Nlc3MuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2
aXR5Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9ldmVudC1saXN0
ZW5lci1nYy5odG1sOgorCiAyMDEzLTAzLTA2ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVwZGF0ZSBvcGVuIHJlc291cmNl
IGRpYWxvZyB3aGVuIG5ldyB1aVNvdXJjZUNvZGVzIGFyZSBsb2FkZWQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2Rlc3Ryb3llZC1mcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9kZXN0cm95ZWQtZnJhbWUuaHRtbAppbmRleCA2
YzFiNjNiNjJjMTFiOTg2MTBmY2RjZDIzZTdkMDczNDk4NjhmYmI5Li5jZjhhMDIxOWQ1ZmUzZjhh
ZjUwOTM5MDYzOGY5MzA0ZmM4ODE2YTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcGNhY2hlL2Rlc3Ryb3llZC1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwY2FjaGUvZGVzdHJveWVkLWZyYW1lLmh0bWwKQEAgLTMsMTcgKzMsOSBAQAogPHA+
UEFTUyBpZiBkaWRuJ3QgY3Jhc2guPC9wPgogPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48L2lm
cmFtZT4KIAotPHNjcmlwdD4KLQotZnVuY3Rpb24gZ2MoKQotewotICAgIGlmICh3aW5kb3cuR0ND
b250cm9sbGVyKQotICAgICAgICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KIAotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbiAoRkYgcmVx
dWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29sbGVjdCkKLSAgICAgICAgdmFy
IHMgPSBuZXcgU3RyaW5nKCIiKTsKLSAgICB9Ci19Cis8c2NyaXB0PgogCiBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJj
ZS1zb3VyY2VidWZmZXJsaXN0LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc291cmNlYnVmZmVybGlzdC1jcmFz
aC5odG1sCmluZGV4IDRlY2I1Njg4ZWE3YWZkZDY3OWEwZGFkNjIwZjgwZWQxOWEyOGQ5YjcuLjFi
OWVjYjJjNWEzMDVjOTA2MmZlZDllNGQ5OTNiOTFiYjIwMWMzN2IgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1z
b3VyY2VidWZmZXJsaXN0LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtY3Jh
c2guaHRtbApAQCAtMSw2ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiAgICAgPGhl
YWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KICAg
ICAgICAgPHNjcmlwdCBzcmM9Ii9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcyI+PC9zY3Jp
cHQ+CiAgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAgICAg
IGZ1bmN0aW9uIG9uU291cmNlT3BlbihlKQpAQCAtOCwxMCArOSw4IEBACiAgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCJDYWxsaW5nIGFkZFNvdXJjZUJ1ZmZlcigpIik7CiAgICAgICAgICAg
ICAgICAgZS50YXJnZXQuYWRkU291cmNlQnVmZmVyKCd2aWRlby93ZWJtO2NvZGVjcz0idnA4Iicp
OwogCi0gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpIHsKLSAgICAgICAg
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCJSdW5uaW5nIGdhcmJhZ2UgY29sbGVjdG9yIHRvIGNs
ZWFudXAgdGhlIFNvdXJjZUJ1ZmZlciByZWZlcmVuY2UgcmV0dXJuZWQgYnkgYWRkU291cmNlQnVm
ZmVyKCkiKTsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LkdDQ29udHJvbGxlci5jb2xsZWN0
KCk7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiUnVu
bmluZyBnYXJiYWdlIGNvbGxlY3RvciB0byBjbGVhbnVwIHRoZSBTb3VyY2VCdWZmZXIgcmVmZXJl
bmNlIHJldHVybmVkIGJ5IGFkZFNvdXJjZUJ1ZmZlcigpIik7CisgICAgICAgICAgICAgICAgZ2Mo
KTsKIAogICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN2Jykuc3JjID0g
IiI7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvYXN5bmMtc2NyaXB0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMt
c2NyaXB0Lmh0bWwKaW5kZXggMDNlNzc3OWUzOTY1MWY3Y2NkZDY4YzY0ZWY1OTE1YzA4ZjY2MDA4
Yy4uZmNjZmVjZWZkNDFmYWU2OGE0M2RmMDNmZjEwZTQ1ZmFiNDNlODExNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2FzeW5jLXNjcmlwdC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hc3luYy1zY3JpcHQuaHRtbApAQCAtMSw1ICsxLDYgQEAK
IDxodG1sPgogPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9nYy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CkBAIC0xMCwxNSArMTEsNiBAQCBmdW5jdGlvbiBsb2cobXNnKSB7CiAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLmlubmVySFRNTCArPSBtc2c7CiB9CiAKLWZ1bmN0
aW9uIGdjKCkgewotICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQotICAgICAgICBHQ0NvbnRy
b2xsZXIuY29sbGVjdCgpOwotICAgIGVsc2UgewotICAgICAgICAvLyBBbGxvY2F0ZSBhIHN1ZmZp
Y2llbnQgbnVtYmVyIG9mIG9iamVjdHMgdG8gZm9yY2UgYSBHQy4KLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDsgaSsrKQotICAgICAgICAgICAgbmV3IE9iamVjdDsKLSAgICB9Ci19
CiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c2NyaXB0Iik7CiAgICAgcy5zcmMgPSAicmVzb3VyY2VzL2RlbGF5ZWQtbG9nLnBocD9kZWxheT0x
Jm1zZz1QQVNTJmRvbmU9MSI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvZW1iZWQtaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZW1iZWQtaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13
aXRob3V0LWNyYXNoaW5nLmh0bWwKaW5kZXggNjJlMjgxZGZmODg4NTZiOWQwMDJiOWRkNDE5MDBh
YjE5ZjM2ZDk3MS4uODVmZmE4YWJjYjNjMzFlMjRkZTRlYTRlNDM4MTI3YTkzZTIyODI2NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2VtYmVkLWltYWdlLWxvYWQtb3V0
bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9lbWJlZC1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRt
bApAQCAtMSwzICsxLDQgQEAKKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2djLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpAQCAtMzEsMTMgKzMyLDcg
QEAgZnVuY3Rpb24gZmluaXNoZWQoKSB7CiB9CiAKIGZ1bmN0aW9uIGZvcmNlR0MoKSB7Ci0gICAg
aWYgKHRoaXMuR0NDb250cm9sbGVyKQotICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwot
ICAgIGVsc2UgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIC8vIEFs
bG9jYXRlIGEgc3VmZmljaWVudCBudW1iZXIgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIEdDLgotICAg
ICAgICAgICAgKHt9KTsKLQl9Ci0KKwlnYygpOwogCXNldFRpbWVvdXQoImZpbmlzaGVkKCk7Iiwg
MCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9pbWFnZS1p
bnB1dC10eXBlLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9pbWFnZS1pbnB1dC10eXBlLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jh
c2hpbmcuaHRtbAppbmRleCBlZmU3MWZhNWE5YjFhNTUxNDU0NzQ5MWVkMzM5MWMwZWMxNTM4YzNj
Li44MDZmNWFmMzNkNzY2OTU3OTI4MTVhNGYyNDEwMjNhYmUyMGRlYWQ2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvaW1hZ2UtaW5wdXQtdHlwZS1vdXRsaXZlcy1nYy13
aXRob3V0LWNyYXNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2lt
YWdlLWlucHV0LXR5cGUtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCkBAIC0xLDMg
KzEsNCBAQAorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvZ2MuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CkBAIC0zMiwxMyArMzMsNyBAQCBmdW5jdGlv
biBmaW5pc2hlZCgpIHsKIH0KIAogZnVuY3Rpb24gZm9yY2VHQygpIHsKLSAgICBpZiAodGhpcy5H
Q0NvbnRyb2xsZXIpCi0gICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgZWxzZSB7
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgLy8gQWxsb2NhdGUgYSBz
dWZmaWNpZW50IG51bWJlciBvZiBvYmplY3RzIHRvIGZvcmNlIGEgR0MuCi0gICAgICAgICAgICAo
e30pOwotCX0KLQorCWdjKCk7CiAJc2V0VGltZW91dCgiZmluaXNoZWQoKTsiLCAwKTsKIH0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2ltYWdlLWxvYWQtb3V0bGl2
ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L2ltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCmluZGV4IGVlOTll
NTkwNjgzMDNlMGE4ZWI3OWIyMTVhODM2MzExZTlkN2IwZjIuLmFhMjJlMWIwNjA4OWFlZTg3ZGY5
YmY5ZmQzMDYxNTJhM2MyM2ZmYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0
LWNyYXNoaW5nLmh0bWwKQEAgLTEsMyArMSw0IEBACis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9n
Yy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAg
LTMwLDEzICszMSw3IEBAIGZ1bmN0aW9uIGZpbmlzaGVkKCkgewogfQogCiBmdW5jdGlvbiBmb3Jj
ZUdDKCkgewotICAgIGlmICh0aGlzLkdDQ29udHJvbGxlcikKLSAgICAgICAgR0NDb250cm9sbGVy
LmNvbGxlY3QoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSAvLyBBbGxvY2F0ZSBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIG9iamVjdHMgdG8gZm9y
Y2UgYSBHQy4KLSAgICAgICAgICAgICh7fSk7Ci0JfQotCisJZ2MoKTsKIAlzZXRUaW1lb3V0KCJm
aW5pc2hlZCgpOyIsIDApOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2MvamF2YXNjcmlwdC11cmwtc3RvcC1sb2FkZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvamF2YXNjcmlwdC11cmwtc3RvcC1sb2FkZXJzLmh0bWwKaW5kZXggZjYyYWY3
ZWJkNmQ2NTY0YmJjZTUxM2YzOTBkODUxYmU5Mjg0NDczYy4uZWE2YjFjMDQ2NmFlNjlkOWQ4YWNk
NTUwNDAwOGM5Y2ZkNWZkNmM2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL2phdmFzY3JpcHQtdXJsLXN0b3AtbG9hZGVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9qYXZhc2NyaXB0LXVybC1zdG9wLWxvYWRlcnMuaHRtbApAQCAtMSw2ICsx
LDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL2djLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
IHZhciBzdHIgPSAiPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL2hhbmctY29ubmVjdGlvbi5waHAnPjwiICsgIi9z
Y3JpcHQ+IjsKIApAQCAtMTEsMTMgKzEyLDcgQEAgZnVuY3Rpb24gbG9hZEZpcnN0KCkKIAogZnVu
Y3Rpb24gZmluaXNoKCkKIHsKLSAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKLSAgICAgICAg
R0NDb250cm9sbGVyLmNvbGxlY3QoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgLy8gQWxsb2NhdGUg
YSBzdWZmaWNpZW50IG51bWJlciBvZiBvYmplY3RzIHRvIGZvcmNlIGEgR0MuCi0gICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICAgICAgICAgIG5ldyBPYmplY3Q7Ci0g
ICAgfQorICAgIGdjKCk7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsgICAgCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2Mvb2JqZWN0LWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL29iamVjdC1pbWFnZS1sb2FkLW91
dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbAppbmRleCBlMzkzMTM3NWNhN2Y4ZjY1ZDI3
NTU3YTg2MGUyYTU0MjYzYTg1OWY1Li5iOWI1ZDAxYzU2NTI4NWFhYmI1MzljMWNhMTI0ZDY0YTAy
NTQwMzQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvb2JqZWN0LWlt
YWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9vYmplY3QtaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0
LWNyYXNoaW5nLmh0bWwKQEAgLTEsMyArMSw0IEBACis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9n
Yy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAg
LTMxLDEzICszMiw3IEBAIGZ1bmN0aW9uIGZpbmlzaGVkKCkgewogfQogCiBmdW5jdGlvbiBmb3Jj
ZUdDKCkgewotICAgIGlmICh0aGlzLkdDQ29udHJvbGxlcikKLSAgICAgICAgR0NDb250cm9sbGVy
LmNvbGxlY3QoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSAvLyBBbGxvY2F0ZSBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIG9iamVjdHMgdG8gZm9y
Y2UgYSBHQy4KLSAgICAgICAgICAgICh7fSk7Ci0JfQotCisJZ2MoKTsKIAlzZXRUaW1lb3V0KCJm
aW5pc2hlZCgpOyIsIDApOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2Mvc3ZnLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3N2Zy1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdp
dGhvdXQtY3Jhc2hpbmcuaHRtbAppbmRleCBjMmI2OWM4MTAxMDU5MTQ5ODBlMzFkMjljMWYzNmVh
MTc1YzNkNDdhLi5kNGU4ZjA4ZGFhNDA0ZTQzZjRmNWIyZDg3YjE3ZTEwMGQ1YTRjZDkxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc3ZnLWltYWdlLWxvYWQtb3V0bGl2
ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9zdmctaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwKQEAg
LTEsMyArMSw0IEBACis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9nYy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAgLTMyLDEzICszMyw3IEBAIGZ1
bmN0aW9uIGZpbmlzaGVkKCkgewogfQogCiBmdW5jdGlvbiBmb3JjZUdDKCkgewotICAgIGlmICh0
aGlzLkdDQ29udHJvbGxlcikKLSAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKLSAgICBl
bHNlIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSAvLyBBbGxvY2F0
ZSBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIG9iamVjdHMgdG8gZm9yY2UgYSBHQy4KLSAgICAgICAg
ICAgICh7fSk7Ci0JfQotCisJZ2MoKTsKIAlzZXRUaW1lb3V0KCJmaW5pc2hlZCgpOyIsIDApOwog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvdmlkZW8tcG9zdGVy
LWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL3ZpZGVvLXBvc3Rlci1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdp
dGhvdXQtY3Jhc2hpbmcuaHRtbAppbmRleCBjNzNiYTZjZGEyYTU5MmIxNzZlMjc3YzJlMWFlZmVk
ZDQ0NDlmYWRiLi4wODBjYWRlNjZjMjdmZTkxMmFhMzU5MWMyNjJmM2M5ZTA2NmE5NGUxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvdmlkZW8tcG9zdGVyLWltYWdlLWxv
YWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy92aWRlby1wb3N0ZXItaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0
LWNyYXNoaW5nLmh0bWwKQEAgLTEsMyArMSw0IEBACis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9n
Yy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAg
LTMxLDEzICszMiw3IEBAIGZ1bmN0aW9uIGZpbmlzaGVkKCkgewogfQogCiBmdW5jdGlvbiBmb3Jj
ZUdDKCkgewotICAgIGlmICh0aGlzLkdDQ29udHJvbGxlcikKLSAgICAgICAgR0NDb250cm9sbGVy
LmNvbGxlY3QoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSAvLyBBbGxvY2F0ZSBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIG9iamVjdHMgdG8gZm9y
Y2UgYSBHQy4KLSAgICAgICAgICAgICh7fSk7Ci0JfQotCisJZ2MoKTsKIAlzZXRUaW1lb3V0KCJm
aW5pc2hlZCgpOyIsIDApOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlcy9nYy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2djLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJjOWJiM2VmY2YyNmM5NTcxNzc5OWRjNzA5N2ZhOTFlYTdjMGQ1YjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9nYy5qcwpA
QCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiBnYygpCit7CisgICAgaWYgKHdpbmRvdy5HQ0NvbnRy
b2xsZXIpCisgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisgICAgZWxzZSB7CisgICAg
ICAgIC8vIEFsbG9jYXRlIGEgc3VmZmljaWVudCBudW1iZXIgb2Ygb2JqZWN0cyB0byBmb3JjZSBh
IEdDLgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAgICAg
ICBuZXcgT2JqZWN0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RldGFjaGVkLXNhbmRib3hl
ZC1mcmFtZS1hY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGV0
YWNoZWQtc2FuZGJveGVkLWZyYW1lLWFjY2Vzcy5odG1sCmluZGV4IDQ4YmQwZjIyMGQ1OWExODY5
MmQ0ODRkN2U5NjdmMTVmMTEzN2VmMzguLjhlNjA0MjUwYzcyOWI5NzIxNGJhY2JlNjlhNzE4YmM0
ZDM1ZjM2ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGV0
YWNoZWQtc2FuZGJveGVkLWZyYW1lLWFjY2Vzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvZGV0YWNoZWQtc2FuZGJveGVkLWZyYW1lLWFjY2Vzcy5odG1sCkBAIC0y
LDIxICsyLDEzIEBACiA8cD48L3A+CiA8ZGl2IGlkPXJlc3VsdD5UZXN0aW5nLi4uPC9kaXY+CiA8
aWZyYW1lIHNyYz0iZG9lcy1ub3QtZXhpc3QuaHRtbCIgc2FuZGJveD0iIj48L2lmcmFtZT4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAotZnVuY3Rpb24gZ2MoKQotewotICAgIGlmICh3
aW5kb3cuR0NDb250cm9sbGVyKQotICAgICAgICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxlY3Qo
KTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNlIGdh
cmJhZ2UgY29sbGVjdGlvbiAoRkYgcmVxdWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3Jl
IGEgY29sbGVjdCkKLSAgICAgICAgdmFyIHMgPSBuZXcgU3RyaW5nKCJhYmMiKTsKLSAgICB9Ci19
CiAKIHZhciB3OwogZnVuY3Rpb24gdGVzdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tl
dC1wZW5kaW5nLWFjdGl2aXR5Lmh0bWwKaW5kZXggNGU1NzVjZDY0YzM0MzBmNzZiZTFhMWMxODZk
Mjg3ZjkxODQ4YTYzMi4uZmI5MGY3ZDU5MGM0ZmMyNjM1MGMzOTg1OTA3NGJiMGM3M2FiNjk2ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93
ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHkuaHRtbApA
QCAtMSwyMSArMSwxMiBAQAogPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgogPHA+U2hvdWxkIGFsZXJ0
ICJQQVNTIi48L3A+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9nYy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAKLWZ1bmN0aW9uIGdj
KCkKLXsKLSAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuIEdDQ29u
dHJvbGxlci5jb2xsZWN0KCk7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKysp
IHsgLy8gPiBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFib3V0IDlLIGFs
bG9jYXRpb25zIGJlZm9yZSBhIGNvbGxlY3QpCi0gICAgICAgIHZhciBzID0gbmV3IFN0cmluZygi
YWJjIik7Ci0gICAgfQotfQotCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICB2YXIgd3MgPSBuZXcg
V2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2VjaG8i
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZXZl
bnQtbGlzdGVuZXItZ2MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvZXZlbnQtbGlzdGVuZXItZ2MuaHRtbAppbmRleCBhMmMyYzE1MWI2ZDU2YTkyMmFmYmJmYWUz
MTRlODIwZGUzMmQ2MTFhLi5hOWNmZmUwNjNlNzY3NTFjYTYxM2Y0NmUxZGQyYzk3OGVhMWNiY2Nk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2V2ZW50
LWxpc3RlbmVyLWdjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9ldmVudC1saXN0ZW5lci1nYy5odG1sCkBAIC0xLDUgKzEsNiBAQAogPGh0bWw+CiA8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBm
dW5jdGlvbiB3cml0ZShzKQogewpAQCAtMTAsMTEgKzExLDcgQEAgdmFyIGRpZENvbGxlY3QgPSBm
YWxzZTsKIGZ1bmN0aW9uIGNvbGxlY3QoKQogewogICAgIGRpZENvbGxlY3QgPSB0cnVlOwotICAg
IGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQotICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgp
OwotICAgIGVsc2UKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSAvLyA+
Ci0gICAgICAgICAgICBuZXcgU3RyaW5nKCIiKTsKKyAgICBnYygpOwogfQogCiBmdW5jdGlvbiBw
cm9jZXNzU3RhdGVDaGFuZ2UoZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191874</attachid>
            <date>2013-03-06 17:40:03 -0800</date>
            <delta_ts>2013-03-07 09:12:05 -0800</delta_ts>
            <desc>Use gc() in js-test-pre.js instead.</desc>
            <filename>bug-111589-20130306173608.patch</filename>
            <type>text/plain</type>
            <size>13583</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0OTMxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjk5ZTEwMWU1NjVkMzY0YThiNzk1
ZWVkNDY5MzliN2RiYjYyOWI3OC4uM2FjZDFhYzY5NzVjMWEyMTRkZmI4NjUxZDZiMWY0MjliZTY2
NzBkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAzLTA2ICBBYXJvbiBDb2x3ZWxsICA8
YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBHQyBjb2RlIGR1cGxpY2F0
aW9uIGluIGh0dHAvdGVzdHMgTGF5b3V0VGVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworUmVwbGFjZWQgZHVwbGljYXRlZCBHQyBsb2dpYyBpbiB2YXJpb3VzIHRl
c3RzIHdpdGggYSBmdW5jdGlvbiBjYWxsIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiByZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMKKworICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvZGVzdHJv
eWVkLWZyYW1lLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
dmlkZW8tbWVkaWEtc291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtY3Jhc2guaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL21pc2MvYXN5bmMtc2NyaXB0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9taXNjL2VtYmVkLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9pbWFnZS1pbnB1dC10eXBlLW91dGxpdmVzLWdj
LXdpdGhvdXQtY3Jhc2hpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvaW1hZ2Ut
bG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9taXNjL2phdmFzY3JpcHQtdXJsLXN0b3AtbG9hZGVycy5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvbWlzYy9vYmplY3QtaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNo
aW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3N2Zy1pbWFnZS1sb2FkLW91dGxp
dmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mv
dmlkZW8tcG9zdGVyLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvZGV0YWNoZWQtc2FuZGJveGVkLWZyYW1l
LWFjY2Vzcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
d2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHkuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2V2ZW50LWxpc3RlbmVyLWdjLmh0bWw6CisKIDIwMTMtMDMtMDYgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogVXBkYXRlIG9wZW4gcmVzb3VyY2UgZGlhbG9nIHdoZW4gbmV3IHVpU291cmNlQ29kZXMgYXJl
IGxvYWRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvZGVz
dHJveWVkLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2Rlc3Ry
b3llZC1mcmFtZS5odG1sCmluZGV4IDZjMWI2M2I2MmMxMWI5ODYxMGZjZGNkMjNlN2QwNzM0OTg2
OGZiYjkuLmI5ZWRmNWM5M2JlZTYxYzFmNjY1ZTUzM2M1Y2EyZTZjYzVlMTYzODEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvZGVzdHJveWVkLWZyYW1lLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9kZXN0cm95ZWQtZnJhbWUuaHRt
bApAQCAtMywxNyArMyw5IEBACiA8cD5QQVNTIGlmIGRpZG4ndCBjcmFzaC48L3A+CiA8aWZyYW1l
IHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgogCi08c2NyaXB0PgotCi1mdW5jdGlvbiBnYygp
Ci17Ci0gICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybiBHQ0NvbnRy
b2xsZXIuY29sbGVjdCgpOworPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7IC8vID4g
Zm9yY2UgZ2FyYmFnZSBjb2xsZWN0aW9uIChGRiByZXF1aXJlcyBhYm91dCA5SyBhbGxvY2F0aW9u
cyBiZWZvcmUgYSBjb2xsZWN0KQotICAgICAgICB2YXIgcyA9IG5ldyBTdHJpbmcoIiIpOwotICAg
IH0KLX0KKzxzY3JpcHQ+CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtY3Jhc2gu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1l
ZGlhLXNvdXJjZS1zb3VyY2VidWZmZXJsaXN0LWNyYXNoLmh0bWwKaW5kZXggNGVjYjU2ODhlYTdh
ZmRkNjc5YTBkYWQ2MjBmODBlZDE5YTI4ZDliNy4uZDJkZjE0NTY0OGMxOThjYjE2NWI1Yjc3Nzdk
MmEwNTkyYTM0NTFkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtY3Jhc2guaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1t
ZWRpYS1zb3VyY2Utc291cmNlYnVmZmVybGlzdC1jcmFzaC5odG1sCkBAIC0xLDYgKzEsNyBAQAog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KICAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNy
Yz0iL21lZGlhLXJlc291cmNlcy92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICAgICAgZnVuY3Rpb24gb25Tb3Vy
Y2VPcGVuKGUpCkBAIC04LDEwICs5LDggQEAKICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IkNhbGxpbmcgYWRkU291cmNlQnVmZmVyKCkiKTsKICAgICAgICAgICAgICAgICBlLnRhcmdldC5h
ZGRTb3VyY2VCdWZmZXIoJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgiJyk7CiAKLSAgICAgICAgICAg
ICAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikgewotICAgICAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIlJ1bm5pbmcgZ2FyYmFnZSBjb2xsZWN0b3IgdG8gY2xlYW51cCB0aGUgU291cmNl
QnVmZmVyIHJlZmVyZW5jZSByZXR1cm5lZCBieSBhZGRTb3VyY2VCdWZmZXIoKSIpOwotICAgICAg
ICAgICAgICAgICAgICB3aW5kb3cuR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKLSAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJSdW5uaW5nIGdhcmJhZ2UgY29s
bGVjdG9yIHRvIGNsZWFudXAgdGhlIFNvdXJjZUJ1ZmZlciByZWZlcmVuY2UgcmV0dXJuZWQgYnkg
YWRkU291cmNlQnVmZmVyKCkiKTsKKyAgICAgICAgICAgICAgICBnYygpOwogCiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3YnKS5zcmMgPSAiIjsKICAgICAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hc3luYy1zY3JpcHQu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hc3luYy1zY3JpcHQuaHRtbAppbmRl
eCAwM2U3Nzc5ZTM5NjUxZjdjY2RkNjhjNjRlZjU5MTVjMDhmNjYwMDhjLi5lMGZlMzQyOGI3NDIx
MzRjOWYxMzE3ZDNjOTA1NmVkYzRlYmMyODIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvYXN5bmMtc2NyaXB0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2FzeW5jLXNjcmlwdC5odG1sCkBAIC0xLDUgKzEsNiBAQAogPGh0bWw+CiA8aGVhZD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKQEAgLTEwLDE1ICsxMSw2IEBAIGZ1bmN0aW9uIGxvZyhtc2cpIHsKICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJIVE1MICs9IG1zZzsKIH0KIAotZnVuY3Rpb24gZ2Mo
KSB7Ci0gICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCi0gICAgICAgIEdDQ29udHJvbGxlci5j
b2xsZWN0KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIEFsbG9jYXRlIGEgc3VmZmljaWVudCBu
dW1iZXIgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIEdDLgotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwOyBpKyspCi0gICAgICAgICAgICBuZXcgT2JqZWN0OwotICAgIH0KLX0KIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQi
KTsKICAgICBzLnNyYyA9ICJyZXNvdXJjZXMvZGVsYXllZC1sb2cucGhwP2RlbGF5PTEmbXNnPVBB
U1MmZG9uZT0xIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9lbWJl
ZC1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9lbWJlZC1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQt
Y3Jhc2hpbmcuaHRtbAppbmRleCA2MmUyODFkZmY4ODg1NmI5ZDAwMmI5ZGQ0MTkwMGFiMTlmMzZk
OTcxLi5jNzQ5MzMwMWRiNjc3NTM0ZTczNDg3OGU0NGM0Y2VhMWQzZTkxNWM5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZW1iZWQtaW1hZ2UtbG9hZC1vdXRsaXZlcy1n
Yy13aXRob3V0LWNyYXNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L2VtYmVkLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCkBAIC0x
LDMgKzEsNCBAQAorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CkBAIC0zMSwxMyArMzIs
NyBAQCBmdW5jdGlvbiBmaW5pc2hlZCgpIHsKIH0KIAogZnVuY3Rpb24gZm9yY2VHQygpIHsKLSAg
ICBpZiAodGhpcy5HQ0NvbnRyb2xsZXIpCi0gICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7
Ci0gICAgZWxzZSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgLy8g
QWxsb2NhdGUgYSBzdWZmaWNpZW50IG51bWJlciBvZiBvYmplY3RzIHRvIGZvcmNlIGEgR0MuCi0g
ICAgICAgICAgICAoe30pOwotCX0KLQorCWdjKCk7CiAJc2V0VGltZW91dCgiZmluaXNoZWQoKTsi
LCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2ltYWdl
LWlucHV0LXR5cGUtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL2ltYWdlLWlucHV0LXR5cGUtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1j
cmFzaGluZy5odG1sCmluZGV4IGVmZTcxZmE1YTliMWE1NTE0NTQ3NDkxZWQzMzkxYzBlYzE1Mzhj
M2MuLjgwNTMzNGIyYmMwYWM1NzAxZDZiOGQxNGVkNzdkMTQxOTlhOGVhOTkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9pbWFnZS1pbnB1dC10eXBlLW91dGxpdmVzLWdj
LXdpdGhvdXQtY3Jhc2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
aW1hZ2UtaW5wdXQtdHlwZS1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwKQEAgLTEs
MyArMSw0IEBACis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAgLTMyLDEzICszMyw3
IEBAIGZ1bmN0aW9uIGZpbmlzaGVkKCkgewogfQogCiBmdW5jdGlvbiBmb3JjZUdDKCkgewotICAg
IGlmICh0aGlzLkdDQ29udHJvbGxlcikKLSAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsK
LSAgICBlbHNlIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSAvLyBB
bGxvY2F0ZSBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIG9iamVjdHMgdG8gZm9yY2UgYSBHQy4KLSAg
ICAgICAgICAgICh7fSk7Ci0JfQotCisJZ2MoKTsKIAlzZXRUaW1lb3V0KCJmaW5pc2hlZCgpOyIs
IDApOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvaW1hZ2Ut
bG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwK
aW5kZXggZWU5OWU1OTA2ODMwM2UwYThlYjc5YjIxNWE4MzYzMTFlOWQ3YjBmMi4uZDk5ZDUwZmMz
NDdkMmE4Y2EwMmNkMmZkNDk0NTYzZDM2OTcwZjE0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL2ltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9pbWFnZS1sb2FkLW91dGxpdmVz
LWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbApAQCAtMSwzICsxLDQgQEAKKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewpAQCAtMzAsMTMgKzMxLDcgQEAgZnVuY3Rpb24gZmluaXNoZWQoKSB7
CiB9CiAKIGZ1bmN0aW9uIGZvcmNlR0MoKSB7Ci0gICAgaWYgKHRoaXMuR0NDb250cm9sbGVyKQot
ICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwotICAgIGVsc2UgewotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIC8vIEFsbG9jYXRlIGEgc3VmZmljaWVudCBudW1i
ZXIgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIEdDLgotICAgICAgICAgICAgKHt9KTsKLQl9Ci0KKwln
YygpOwogCXNldFRpbWVvdXQoImZpbmlzaGVkKCk7IiwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9qYXZhc2NyaXB0LXVybC1zdG9wLWxvYWRlcnMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9qYXZhc2NyaXB0LXVybC1zdG9wLWxvYWRl
cnMuaHRtbAppbmRleCBmNjJhZjdlYmQ2ZDY1NjRiYmNlNTEzZjM5MGQ4NTFiZTkyODQ0NzNjLi43
NGU2ZmNmZDc1NDk2MjY5MzI2YTBhYTdmZjdjOTU5N2IyMDcyNmEwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvamF2YXNjcmlwdC11cmwtc3RvcC1sb2FkZXJzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2phdmFzY3JpcHQtdXJsLXN0b3AtbG9h
ZGVycy5odG1sCkBAIC0xLDYgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFk
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogdmFyIHN0ciA9ICI8c2NyaXB0IHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMv
aGFuZy1jb25uZWN0aW9uLnBocCc+PCIgKyAiL3NjcmlwdD4iOwogCkBAIC0xMSwxMyArMTIsNyBA
QCBmdW5jdGlvbiBsb2FkRmlyc3QoKQogCiBmdW5jdGlvbiBmaW5pc2goKQogewotICAgIGlmICh3
aW5kb3cuR0NDb250cm9sbGVyKQotICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwotICAg
IGVsc2UgewotICAgICAgICAvLyBBbGxvY2F0ZSBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIG9iamVj
dHMgdG8gZm9yY2UgYSBHQy4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytp
KQotICAgICAgICAgICAgbmV3IE9iamVjdDsKLSAgICB9CisgICAgZ2MoKTsKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOyAgICAKIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9vYmplY3QtaW1hZ2UtbG9h
ZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2Mvb2JqZWN0LWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5o
dG1sCmluZGV4IGUzOTMxMzc1Y2E3ZjhmNjVkMjc1NTdhODYwZTJhNTQyNjNhODU5ZjUuLmFlZTgz
NTFkNWE2MTBmOWZkMzI1MjJmNGVmZjE5NDRmMTE0ODhmMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9vYmplY3QtaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0
LWNyYXNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL29iamVjdC1p
bWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbApAQCAtMSwzICsxLDQg
QEAKKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQ+CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpAQCAtMzEsMTMgKzMyLDcgQEAgZnVu
Y3Rpb24gZmluaXNoZWQoKSB7CiB9CiAKIGZ1bmN0aW9uIGZvcmNlR0MoKSB7Ci0gICAgaWYgKHRo
aXMuR0NDb250cm9sbGVyKQotICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwotICAgIGVs
c2UgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIC8vIEFsbG9jYXRl
IGEgc3VmZmljaWVudCBudW1iZXIgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIEdDLgotICAgICAgICAg
ICAgKHt9KTsKLQl9Ci0KKwlnYygpOwogCXNldFRpbWVvdXQoImZpbmlzaGVkKCk7IiwgMCk7CiB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zdmctaW1hZ2UtbG9h
ZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2Mvc3ZnLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1s
CmluZGV4IGMyYjY5YzgxMDEwNTkxNDk4MGUzMWQyOWMxZjM2ZWExNzVjM2Q0N2EuLjc4NTc5NWM4
M2E1ODVjNGVhZmNlN2JkM2Q4YWRjYjY1ODdjY2NhNjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9zdmctaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNo
aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3N2Zy1pbWFnZS1sb2Fk
LW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbApAQCAtMSwzICsxLDQgQEAKKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpAQCAtMzIsMTMgKzMzLDcgQEAgZnVuY3Rpb24gZmlu
aXNoZWQoKSB7CiB9CiAKIGZ1bmN0aW9uIGZvcmNlR0MoKSB7Ci0gICAgaWYgKHRoaXMuR0NDb250
cm9sbGVyKQotICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwotICAgIGVsc2UgewotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIC8vIEFsbG9jYXRlIGEgc3VmZmlj
aWVudCBudW1iZXIgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIEdDLgotICAgICAgICAgICAgKHt9KTsK
LQl9Ci0KKwlnYygpOwogCXNldFRpbWVvdXQoImZpbmlzaGVkKCk7IiwgMCk7CiB9CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy92aWRlby1wb3N0ZXItaW1hZ2UtbG9h
ZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvdmlkZW8tcG9zdGVyLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFz
aGluZy5odG1sCmluZGV4IGM3M2JhNmNkYTJhNTkyYjE3NmUyNzdjMmUxYWVmZWRkNDQ0OWZhZGIu
LjRiYjFmZmRmMjc1YjI2ODBkODhlNmI4ZWI0NTRlMTk2OTk5NmMzZDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy92aWRlby1wb3N0ZXItaW1hZ2UtbG9hZC1vdXRsaXZl
cy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL3ZpZGVvLXBvc3Rlci1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcu
aHRtbApAQCAtMSwzICsxLDQgQEAKKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpAQCAt
MzEsMTMgKzMyLDcgQEAgZnVuY3Rpb24gZmluaXNoZWQoKSB7CiB9CiAKIGZ1bmN0aW9uIGZvcmNl
R0MoKSB7Ci0gICAgaWYgKHRoaXMuR0NDb250cm9sbGVyKQotICAgICAgICBHQ0NvbnRyb2xsZXIu
Y29sbGVjdCgpOwotICAgIGVsc2UgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIC8vIEFsbG9jYXRlIGEgc3VmZmljaWVudCBudW1iZXIgb2Ygb2JqZWN0cyB0byBmb3Jj
ZSBhIEdDLgotICAgICAgICAgICAgKHt9KTsKLQl9Ci0KKwlnYygpOwogCXNldFRpbWVvdXQoImZp
bmlzaGVkKCk7IiwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvZGV0YWNoZWQtc2FuZGJveGVkLWZyYW1lLWFjY2Vzcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9kZXRhY2hlZC1zYW5kYm94ZWQtZnJhbWUtYWNjZXNzLmh0
bWwKaW5kZXggNDhiZDBmMjIwZDU5YTE4NjkyZDQ4NGQ3ZTk2N2YxNWYxMTM3ZWYzOC4uNmYyNTky
ZTY2YjNkZWVkZGZkYTlkMDEyYzRlNmJhM2U2YTIzZGYyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9kZXRhY2hlZC1zYW5kYm94ZWQtZnJhbWUtYWNjZXNzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9kZXRhY2hlZC1zYW5kYm94
ZWQtZnJhbWUtYWNjZXNzLmh0bWwKQEAgLTIsMjEgKzIsMTMgQEAKIDxwPjwvcD4KIDxkaXYgaWQ9
cmVzdWx0PlRlc3RpbmcuLi48L2Rpdj4KIDxpZnJhbWUgc3JjPSJkb2VzLW5vdC1leGlzdC5odG1s
IiBzYW5kYm94PSIiPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwogfQogCi1mdW5jdGlvbiBnYygpCi17Ci0gICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCi0g
ICAgICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwotCi0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgaSsrKSB7IC8vID4gZm9yY2UgZ2FyYmFnZSBjb2xsZWN0aW9uIChGRiBy
ZXF1aXJlcyBhYm91dCA5SyBhbGxvY2F0aW9ucyBiZWZvcmUgYSBjb2xsZWN0KQotICAgICAgICB2
YXIgcyA9IG5ldyBTdHJpbmcoImFiYyIpOwotICAgIH0KLX0KIAogdmFyIHc7CiBmdW5jdGlvbiB0
ZXN0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHkuaHRt
bAppbmRleCA0ZTU3NWNkNjRjMzQzMGY3NmJlMWExYzE4NmQyODdmOTE4NDhhNjMyLi4wNTA4YWM4
MjljMjFmZGJkMGY3NGJmOGM4ZTg0YmY0ZWEyMjllN2I1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2
aXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1sCkBAIC0xLDIxICsxLDEyIEBACiA8Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+CiA8cD5TaG91bGQgYWxlcnQgIlBBU1MiLjwvcD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAotZnVuY3Rpb24gZ2MoKQotewotICAgIGlm
ICh3aW5kb3cuR0NDb250cm9sbGVyKQotICAgICAgICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxl
Y3QoKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNl
IGdhcmJhZ2UgY29sbGVjdGlvbiAoRkYgcmVxdWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVm
b3JlIGEgY29sbGVjdCkKLSAgICAgICAgdmFyIHMgPSBuZXcgU3RyaW5nKCJhYmMiKTsKLSAgICB9
Ci19Ci0KIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndz
Oi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNobyIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9ldmVudC1saXN0ZW5lci1n
Yy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9ldmVudC1saXN0
ZW5lci1nYy5odG1sCmluZGV4IGEyYzJjMTUxYjZkNTZhOTIyYWZiYmZhZTMxNGU4MjBkZTMyZDYx
MWEuLmE0OTVlNDBlOTc1MjkwODJhYWUzY2EzYTc3NGQ0ZTk4NGRmMDhlYTAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZXZlbnQtbGlzdGVuZXItZ2Mu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2V2ZW50LWxp
c3RlbmVyLWdjLmh0bWwKQEAgLTEsNSArMSw2IEBACiA8aHRtbD4KIDxoZWFkPgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGZ1bmN0
aW9uIHdyaXRlKHMpCiB7CkBAIC0xMCwxMSArMTEsNyBAQCB2YXIgZGlkQ29sbGVjdCA9IGZhbHNl
OwogZnVuY3Rpb24gY29sbGVjdCgpCiB7CiAgICAgZGlkQ29sbGVjdCA9IHRydWU7Ci0gICAgaWYg
KHdpbmRvdy5HQ0NvbnRyb2xsZXIpCi0gICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0g
ICAgZWxzZQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspIC8vID4KLSAg
ICAgICAgICAgIG5ldyBTdHJpbmcoIiIpOworICAgIGdjKCk7CiB9CiAKIGZ1bmN0aW9uIHByb2Nl
c3NTdGF0ZUNoYW5nZShlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192014</attachid>
            <date>2013-03-07 09:12:07 -0800</date>
            <delta_ts>2013-03-07 09:41:51 -0800</delta_ts>
            <desc>Update includes to /js-test-resources/js-test-pre.js</desc>
            <filename>bug-111589-20130307090811.patch</filename>
            <type>text/plain</type>
            <size>13732</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0OTMxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjk5ZTEwMWU1NjVkMzY0YThiNzk1
ZWVkNDY5MzliN2RiYjYyOWI3OC4uNTI2ZDc4ZTI5YTcwOGQ1MjBmMmJiODk0MjUwZWQ0ZDNmYjM5
YmFkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAzLTA3ICBBYXJvbiBDb2x3ZWxsICA8
YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBHQyBjb2RlIGR1cGxpY2F0
aW9uIGluIGh0dHAvdGVzdHMgTGF5b3V0VGVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1ODkKKworICAgICAgICBSZXZpZXdlZCBieSBLZW50
YXJvIEhhcmEsIEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgUmVwbGFjZWQgZHVwbGlj
YXRlZCBHQyBsb2dpYyBpbiB2YXJpb3VzIHRlc3RzIHdpdGggYSBmdW5jdGlvbiBjYWxsIHRvIHRo
ZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBpbiAvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMKKworICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvZGVzdHJveWVkLWZyYW1lLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEt
c291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21pc2MvYXN5bmMtc2NyaXB0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL2VtYmVk
LWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWlzYy9pbWFnZS1pbnB1dC10eXBlLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jh
c2hpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvaW1hZ2UtbG9hZC1vdXRsaXZl
cy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL2ph
dmFzY3JpcHQtdXJsLXN0b3AtbG9hZGVycy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlz
Yy9vYmplY3QtaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9taXNjL3N2Zy1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhv
dXQtY3Jhc2hpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvdmlkZW8tcG9zdGVy
LWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvZGV0YWNoZWQtc2FuZGJveGVkLWZyYW1lLWFjY2Vzcy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LXBl
bmRpbmctYWN0aXZpdHkuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2V2ZW50LWxpc3RlbmVyLWdjLmh0bWw6CisKIDIwMTMtMDMtMDYgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVXBkYXRlIG9w
ZW4gcmVzb3VyY2UgZGlhbG9nIHdoZW4gbmV3IHVpU291cmNlQ29kZXMgYXJlIGxvYWRlZC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvZGVzdHJveWVkLWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2Rlc3Ryb3llZC1mcmFtZS5o
dG1sCmluZGV4IDZjMWI2M2I2MmMxMWI5ODYxMGZjZGNkMjNlN2QwNzM0OTg2OGZiYjkuLjhmNjgw
Y2RjOGVmNzRmNGFjYjFlNjRmZDliMDc1M2YwNjllODY5M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvZGVzdHJveWVkLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9kZXN0cm95ZWQtZnJhbWUuaHRtbApAQCAtMywxNyAr
Myw5IEBACiA8cD5QQVNTIGlmIGRpZG4ndCBjcmFzaC48L3A+CiA8aWZyYW1lIHNyYz0iYWJvdXQ6
YmxhbmsiPjwvaWZyYW1lPgogCi08c2NyaXB0PgotCi1mdW5jdGlvbiBnYygpCi17Ci0gICAgaWYg
KHdpbmRvdy5HQ0NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuY29sbGVj
dCgpOworPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CiAKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsgLy8gPiBmb3Jj
ZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFib3V0IDlLIGFsbG9jYXRpb25zIGJl
Zm9yZSBhIGNvbGxlY3QpCi0gICAgICAgIHZhciBzID0gbmV3IFN0cmluZygiIik7Ci0gICAgfQot
fQorPHNjcmlwdD4KIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc291cmNlYnVmZmVybGlzdC1jcmFzaC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEt
c291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtY3Jhc2guaHRtbAppbmRleCA0ZWNiNTY4OGVhN2FmZGQ2
NzlhMGRhZDYyMGY4MGVkMTlhMjhkOWI3Li5iYThmYjE1NWQ2Y2IyNmE4ODQ5MGY4Yzc2NWJjYTM2
YzA1MThjODA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc291cmNlYnVmZmVybGlzdC1jcmFzaC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlh
LXNvdXJjZS1zb3VyY2VidWZmZXJsaXN0LWNyYXNoLmh0bWwKQEAgLTEsNiArMSw3IEBACiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlw
dCBzcmM9Ii9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAgICAgIGZ1bmN0aW9uIG9u
U291cmNlT3BlbihlKQpAQCAtOCwxMCArOSw4IEBACiAgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCJDYWxsaW5nIGFkZFNvdXJjZUJ1ZmZlcigpIik7CiAgICAgICAgICAgICAgICAgZS50YXJn
ZXQuYWRkU291cmNlQnVmZmVyKCd2aWRlby93ZWJtO2NvZGVjcz0idnA4IicpOwogCi0gICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCJSdW5uaW5nIGdhcmJhZ2UgY29sbGVjdG9yIHRvIGNsZWFudXAgdGhlIFNv
dXJjZUJ1ZmZlciByZWZlcmVuY2UgcmV0dXJuZWQgYnkgYWRkU291cmNlQnVmZmVyKCkiKTsKLSAg
ICAgICAgICAgICAgICAgICAgd2luZG93LkdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiUnVubmluZyBnYXJiYWdl
IGNvbGxlY3RvciB0byBjbGVhbnVwIHRoZSBTb3VyY2VCdWZmZXIgcmVmZXJlbmNlIHJldHVybmVk
IGJ5IGFkZFNvdXJjZUJ1ZmZlcigpIik7CisgICAgICAgICAgICAgICAgZ2MoKTsKIAogICAgICAg
ICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN2Jykuc3JjID0gIiI7CiAgICAgICAg
ICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMtc2Ny
aXB0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYXN5bmMtc2NyaXB0Lmh0bWwK
aW5kZXggMDNlNzc3OWUzOTY1MWY3Y2NkZDY4YzY0ZWY1OTE1YzA4ZjY2MDA4Yy4uNzRkMDkxZmFi
YWI0MzhiZDA1NWU2ZDliNGFjMmM4MWE0ZmY5MWI3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL2FzeW5jLXNjcmlwdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9hc3luYy1zY3JpcHQuaHRtbApAQCAtMSw1ICsxLDYgQEAKIDxodG1sPgogPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKQEAgLTEwLDE1ICsxMSw2IEBAIGZ1bmN0aW9uIGxvZyhtc2cpIHsKICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJIVE1MICs9IG1zZzsKIH0KIAot
ZnVuY3Rpb24gZ2MoKSB7Ci0gICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCi0gICAgICAgIEdD
Q29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIEFsbG9jYXRlIGEg
c3VmZmljaWVudCBudW1iZXIgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIEdDLgotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspCi0gICAgICAgICAgICBuZXcgT2JqZWN0OwotICAg
IH0KLX0KIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzY3JpcHQiKTsKICAgICBzLnNyYyA9ICJyZXNvdXJjZXMvZGVsYXllZC1sb2cucGhwP2Rl
bGF5PTEmbXNnPVBBU1MmZG9uZT0xIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9lbWJlZC1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9lbWJlZC1pbWFnZS1sb2FkLW91dGxpdmVz
LWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbAppbmRleCA2MmUyODFkZmY4ODg1NmI5ZDAwMmI5ZGQ0
MTkwMGFiMTlmMzZkOTcxLi4zZDdiNmNiNDRjMTMwNTNiNjk4MTM0YzVlNGM4ZTk4MzQ2MjllZDI1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZW1iZWQtaW1hZ2UtbG9h
ZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL2VtYmVkLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGlu
Zy5odG1sCkBAIC0xLDMgKzEsNCBAQAorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKQEAgLTMxLDEzICszMiw3IEBAIGZ1bmN0aW9uIGZpbmlzaGVkKCkgewogfQogCiBmdW5j
dGlvbiBmb3JjZUdDKCkgewotICAgIGlmICh0aGlzLkdDQ29udHJvbGxlcikKLSAgICAgICAgR0ND
b250cm9sbGVyLmNvbGxlY3QoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSAvLyBBbGxvY2F0ZSBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIG9iamVj
dHMgdG8gZm9yY2UgYSBHQy4KLSAgICAgICAgICAgICh7fSk7Ci0JfQotCisJZ2MoKTsKIAlzZXRU
aW1lb3V0KCJmaW5pc2hlZCgpOyIsIDApOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvaW1hZ2UtaW5wdXQtdHlwZS1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNo
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvaW1hZ2UtaW5wdXQtdHlwZS1v
dXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwKaW5kZXggZWZlNzFmYTVhOWIxYTU1MTQ1
NDc0OTFlZDMzOTFjMGVjMTUzOGMzYy4uOGRlYTZkYjFjMzU5MzA2OTU4N2IzYzNhNDQ4Y2NiZjg5
ODE5ZWIxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2ltYWdlLWlu
cHV0LXR5cGUtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9pbWFnZS1pbnB1dC10eXBlLW91dGxpdmVzLWdjLXdpdGhvdXQt
Y3Jhc2hpbmcuaHRtbApAQCAtMSwzICsxLDQgQEAKKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CkBAIC0zMiwxMyArMzMsNyBAQCBmdW5jdGlvbiBmaW5pc2hlZCgpIHsKIH0K
IAogZnVuY3Rpb24gZm9yY2VHQygpIHsKLSAgICBpZiAodGhpcy5HQ0NvbnRyb2xsZXIpCi0gICAg
ICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgLy8gQWxsb2NhdGUgYSBzdWZmaWNpZW50IG51bWJlciBv
ZiBvYmplY3RzIHRvIGZvcmNlIGEgR0MuCi0gICAgICAgICAgICAoe30pOwotCX0KLQorCWdjKCk7
CiAJc2V0VGltZW91dCgiZmluaXNoZWQoKTsiLCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL2ltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFz
aGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2ltYWdlLWxvYWQtb3V0bGl2
ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCmluZGV4IGVlOTllNTkwNjgzMDNlMGE4ZWI3OWIy
MTVhODM2MzExZTlkN2IwZjIuLmQzNTVmNTYzZjYzYjQ4MDc1YzRmZDVjYWU3YTY3NmVkZTkzNDRm
MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9pbWFnZS1sb2FkLW91
dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwKQEAg
LTEsMyArMSw0IEBACis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpAQCAt
MzAsMTMgKzMxLDcgQEAgZnVuY3Rpb24gZmluaXNoZWQoKSB7CiB9CiAKIGZ1bmN0aW9uIGZvcmNl
R0MoKSB7Ci0gICAgaWYgKHRoaXMuR0NDb250cm9sbGVyKQotICAgICAgICBHQ0NvbnRyb2xsZXIu
Y29sbGVjdCgpOwotICAgIGVsc2UgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIC8vIEFsbG9jYXRlIGEgc3VmZmljaWVudCBudW1iZXIgb2Ygb2JqZWN0cyB0byBmb3Jj
ZSBhIEdDLgotICAgICAgICAgICAgKHt9KTsKLQl9Ci0KKwlnYygpOwogCXNldFRpbWVvdXQoImZp
bmlzaGVkKCk7IiwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9qYXZhc2NyaXB0LXVybC1zdG9wLWxvYWRlcnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9qYXZhc2NyaXB0LXVybC1zdG9wLWxvYWRlcnMuaHRtbAppbmRleCBmNjJhZjdl
YmQ2ZDY1NjRiYmNlNTEzZjM5MGQ4NTFiZTkyODQ0NzNjLi45Y2UxNmFlMDJlYTE5YWQ1NjM1OTM0
NjgyMDFjODBlNmM4ZWE3YWY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvamF2YXNjcmlwdC11cmwtc3RvcC1sb2FkZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL2phdmFzY3JpcHQtdXJsLXN0b3AtbG9hZGVycy5odG1sCkBAIC0xLDYgKzEs
NyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CiB2YXIgc3RyID0gIjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0
JyBzcmM9J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9oYW5nLWNvbm5lY3Rp
b24ucGhwJz48IiArICIvc2NyaXB0PiI7CiAKQEAgLTExLDEzICsxMiw3IEBAIGZ1bmN0aW9uIGxv
YWRGaXJzdCgpCiAKIGZ1bmN0aW9uIGZpbmlzaCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5HQ0NvbnRy
b2xsZXIpCi0gICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgZWxzZSB7Ci0gICAg
ICAgIC8vIEFsbG9jYXRlIGEgc3VmZmljaWVudCBudW1iZXIgb2Ygb2JqZWN0cyB0byBmb3JjZSBh
IEdDLgotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgICAgICAg
ICBuZXcgT2JqZWN0OwotICAgIH0KKyAgICBnYygpOwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7ICAgIAogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL29iamVjdC1pbWFnZS1sb2FkLW91dGxpdmVzLWdj
LXdpdGhvdXQtY3Jhc2hpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9vYmpl
Y3QtaW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwKaW5kZXggZTM5
MzEzNzVjYTdmOGY2NWQyNzU1N2E4NjBlMmE1NDI2M2E4NTlmNS4uMDk2ZWQ5ODQ5YmNjYjYxNWI4
YWNjMjE4Mzg3NzZhYTg2NzA2YTdiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL29iamVjdC1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvb2JqZWN0LWltYWdlLWxvYWQtb3V0
bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCkBAIC0xLDMgKzEsNCBAQAorPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
PgogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAgLTMxLDEzICszMiw3IEBAIGZ1bmN0aW9u
IGZpbmlzaGVkKCkgewogfQogCiBmdW5jdGlvbiBmb3JjZUdDKCkgewotICAgIGlmICh0aGlzLkdD
Q29udHJvbGxlcikKLSAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKLSAgICBlbHNlIHsK
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSAvLyBBbGxvY2F0ZSBhIHN1
ZmZpY2llbnQgbnVtYmVyIG9mIG9iamVjdHMgdG8gZm9yY2UgYSBHQy4KLSAgICAgICAgICAgICh7
fSk7Ci0JfQotCisJZ2MoKTsKIAlzZXRUaW1lb3V0KCJmaW5pc2hlZCgpOyIsIDApOwogfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc3ZnLWltYWdlLWxvYWQtb3V0
bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL3N2Zy1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hpbmcuaHRtbAppbmRl
eCBjMmI2OWM4MTAxMDU5MTQ5ODBlMzFkMjljMWYzNmVhMTc1YzNkNDdhLi4yYzFiYzJhYTFmODhk
MzM2ZjRhN2EzOWM1YWI1ZmUxNDYxMWMwMTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2Mvc3ZnLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zdmctaW1hZ2UtbG9hZC1vdXRs
aXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwKQEAgLTEsMyArMSw0IEBACis8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpAQCAtMzIsMTMgKzMzLDcgQEAgZnVuY3Rpb24g
ZmluaXNoZWQoKSB7CiB9CiAKIGZ1bmN0aW9uIGZvcmNlR0MoKSB7Ci0gICAgaWYgKHRoaXMuR0ND
b250cm9sbGVyKQotICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwotICAgIGVsc2Ugewot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIC8vIEFsbG9jYXRlIGEgc3Vm
ZmljaWVudCBudW1iZXIgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIEdDLgotICAgICAgICAgICAgKHt9
KTsKLQl9Ci0KKwlnYygpOwogCXNldFRpbWVvdXQoImZpbmlzaGVkKCk7IiwgMCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy92aWRlby1wb3N0ZXItaW1hZ2Ut
bG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvdmlkZW8tcG9zdGVyLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1j
cmFzaGluZy5odG1sCmluZGV4IGM3M2JhNmNkYTJhNTkyYjE3NmUyNzdjMmUxYWVmZWRkNDQ0OWZh
ZGIuLjI2ZTUwZTAzNzFlN2IwMTA1NzFiYmM5YzQxNDNmNDI3MmM1YTk4OTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy92aWRlby1wb3N0ZXItaW1hZ2UtbG9hZC1vdXRs
aXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL3ZpZGVvLXBvc3Rlci1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jhc2hp
bmcuaHRtbApAQCAtMSwzICsxLDQgQEAKKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CkBAIC0zMSwxMyArMzIsNyBAQCBmdW5jdGlvbiBmaW5pc2hlZCgpIHsKIH0KIAogZnVu
Y3Rpb24gZm9yY2VHQygpIHsKLSAgICBpZiAodGhpcy5HQ0NvbnRyb2xsZXIpCi0gICAgICAgIEdD
Q29udHJvbGxlci5jb2xsZWN0KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkgLy8gQWxsb2NhdGUgYSBzdWZmaWNpZW50IG51bWJlciBvZiBvYmpl
Y3RzIHRvIGZvcmNlIGEgR0MuCi0gICAgICAgICAgICAoe30pOwotCX0KLQorCWdjKCk7CiAJc2V0
VGltZW91dCgiZmluaXNoZWQoKTsiLCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9kZXRhY2hlZC1zYW5kYm94ZWQtZnJhbWUtYWNjZXNzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RldGFjaGVkLXNhbmRib3hlZC1mcmFt
ZS1hY2Nlc3MuaHRtbAppbmRleCA0OGJkMGYyMjBkNTlhMTg2OTJkNDg0ZDdlOTY3ZjE1ZjExMzdl
ZjM4Li4xNDZkYmExZGM2M2ZiMTlkNTUxNjhmYTcwNzcwNjhjODU0YjUwNmNkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RldGFjaGVkLXNhbmRib3hlZC1mcmFt
ZS1hY2Nlc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RldGFj
aGVkLXNhbmRib3hlZC1mcmFtZS1hY2Nlc3MuaHRtbApAQCAtMiwyMSArMiwxMyBAQAogPHA+PC9w
PgogPGRpdiBpZD1yZXN1bHQ+VGVzdGluZy4uLjwvZGl2PgogPGlmcmFtZSBzcmM9ImRvZXMtbm90
LWV4aXN0Lmh0bWwiIHNhbmRib3g9IiI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAotZnVuY3Rpb24gZ2MoKQotewotICAgIGlmICh3aW5k
b3cuR0NDb250cm9sbGVyKQotICAgICAgICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxlY3QoKTsK
LQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJh
Z2UgY29sbGVjdGlvbiAoRkYgcmVxdWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEg
Y29sbGVjdCkKLSAgICAgICAgdmFyIHMgPSBuZXcgU3RyaW5nKCJhYmMiKTsKLSAgICB9Ci19CiAK
IHZhciB3OwogZnVuY3Rpb24gdGVzdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1w
ZW5kaW5nLWFjdGl2aXR5Lmh0bWwKaW5kZXggNGU1NzVjZDY0YzM0MzBmNzZiZTFhMWMxODZkMjg3
ZjkxODQ4YTYzMi4uNTJiN2ZiMDQ1YzVhMWNjZGM3M2JlMDdjY2QzMjQyMTQzMmU5MjQzYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93ZWJz
b2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHkuaHRtbApAQCAt
MSwyMSArMSwxMiBAQAogPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgogPHA+U2hvdWxkIGFsZXJ0ICJQ
QVNTIi48L3A+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0K
IAotZnVuY3Rpb24gZ2MoKQotewotICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQotICAgICAg
ICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbiAoRkYgcmVxdWly
ZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29sbGVjdCkKLSAgICAgICAgdmFyIHMg
PSBuZXcgU3RyaW5nKCJhYmMiKTsKLSAgICB9Ci19Ci0KIGZ1bmN0aW9uIHRlc3QoKQogewogICAg
IHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvZWNobyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9ldmVudC1saXN0ZW5lci1nYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9ldmVudC1saXN0ZW5lci1nYy5odG1sCmluZGV4IGEyYzJjMTUxYjZk
NTZhOTIyYWZiYmZhZTMxNGU4MjBkZTMyZDYxMWEuLjYwM2Y4OTQwMGI2ODQ5Y2NhNGI3NjNjNDlm
ZWE2OGQ5MTFhOWFjODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvZXZlbnQtbGlzdGVuZXItZ2MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2V2ZW50LWxpc3RlbmVyLWdjLmh0bWwKQEAgLTEsNSArMSw2IEBA
CiA8aHRtbD4KIDxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogZnVuY3Rpb24gd3JpdGUocykKIHsKQEAgLTEw
LDExICsxMSw3IEBAIHZhciBkaWRDb2xsZWN0ID0gZmFsc2U7CiBmdW5jdGlvbiBjb2xsZWN0KCkK
IHsKICAgICBkaWRDb2xsZWN0ID0gdHJ1ZTsKLSAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikK
LSAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKLSAgICBlbHNlCi0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgLy8gPgotICAgICAgICAgICAgbmV3IFN0cmluZygi
Iik7CisgICAgZ2MoKTsKIH0KIAogZnVuY3Rpb24gcHJvY2Vzc1N0YXRlQ2hhbmdlKGUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>