<?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>120808</bug_id>
          
          <creation_ts>2013-09-05 15:58:39 -0700</creation_ts>
          <short_desc>Introduce a way to run benchmarks and JSRegress as stress tests with different jsc command-line options</short_desc>
          <delta_ts>2013-09-06 15:04:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>120696</blocked>
    
    <blocked>120809</blocked>
    
    <blocked>120831</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>abrhm</cc>
    
    <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>kadam</cc>
    
    <cc>loki</cc>
    
    <cc>mario</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>zarvai</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>925265</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-05 15:58:39 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925277</commentid>
    <comment_count>1</comment_count>
      <attachid>210680</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-05 16:31:54 -0700</bug_when>
    <thetext>Created attachment 210680
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925278</commentid>
    <comment_count>2</comment_count>
      <attachid>210680</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-05 16:35:31 -0700</bug_when>
    <thetext>Comment on attachment 210680
the patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925281</commentid>
    <comment_count>3</comment_count>
      <attachid>210680</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-09-05 16:43:19 -0700</bug_when>
    <thetext>Comment on attachment 210680
the patch

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

r=me too with a couple comments

&gt; Tools/Scripts/run-javascriptcore-tests:281
&gt;      print &quot;\n** The following fast/js test failures have been introduced:\n&quot;;

s/failures/crashes

&gt; Tools/Scripts/run-jsc-stress-tests:45
&gt; +begin
&gt; +    require &apos;shellwords&apos;
&gt; +    
&gt; +    def shellescape(text)
&gt; +        Shellwords.shellescape(text)
&gt; +    end
&gt; +rescue =&gt; e
&gt; +    $stderr.puts &quot;Warning: no shellwords, will emulate: #{e.inspect}&quot;
&gt; +    def shellescape(text)
&gt; +        text
&gt; +    end
&gt; +end
&gt; +
&gt; +def mysys(*cmd)
&gt; +    commandArray = cmd.each{|value| shellescape(value.to_s)}.join(&apos; &apos;)
&gt; +    $stderr.puts &quot;&gt;&gt; #{commandArray}&quot;
&gt; +    riase unless system(*cmd)
&gt; +end

You said in person that this is all dead code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925389</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-09-05 21:35:03 -0700</bug_when>
    <thetext>Yay, I like this new script. ;) Thank you very much for it.
With  this script we will be able easily catch new regressions 
early in different JIT tiers.

Just out of curiosity, are you planning to extend running 
stress tests to use_JIT=false and use_DFGJIT=false too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925750</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-06 11:48:08 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Yay, I like this new script. ;) Thank you very much for it.
&gt; With  this script we will be able easily catch new regressions 
&gt; early in different JIT tiers.
&gt; 
&gt; Just out of curiosity, are you planning to extend running 
&gt; stress tests to use_JIT=false and use_DFGJIT=false too?

Yeah we should do something like this.

I don&apos;t recommend doing this for all tests, though.  SunSpider and V8 run fairly slow with the JITs disabled.  At some point you have to trade off test run time for coverage.

What I think we should do, is make new test commands available like:

//@ runLLInt
//@ runBaselineJIT

That do what you say.  So, if you want to write a test that tests any of those configurations you just add that kind of comment to the top of the test.

I also think we&apos;ll want to introduce a new test directory (like, Source/JavaScriptCore/tests/stress?) and run tests from there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925753</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-06 11:50:29 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/155200</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925854</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-09-06 14:30:18 -0700</bug_when>
    <thetext>jscore-test fails on the bots after this patch.

Can you please have a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925863</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-06 14:57:45 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; jscore-test fails on the bots after this patch.
&gt; 
&gt; Can you please have a look?

Yup, looking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925864</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-06 15:04:08 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; jscore-test fails on the bots after this patch.
&gt; &gt; 
&gt; &gt; Can you please have a look?
&gt; 
&gt; Yup, looking.

Should be fixed in http://trac.webkit.org/changeset/155216.  I verified that this new script runs on the bots which have an old version of Ruby.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210680</attachid>
            <date>2013-09-05 16:31:54 -0700</date>
            <delta_ts>2013-09-05 16:43:19 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>31455</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU1MTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDEzLTA5LTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SW50cm9kdWNlIGEgd2F5IHRvIHJ1biBiZW5jaG1hcmtzIGFuZCBKU1JlZ3Jlc3MgYXMgc3RyZXNz
IHRlc3RzIHdpdGggZGlmZmVyZW50IGpzYyBjb21tYW5kLWxpbmUgb3B0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwODA4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBbGxvdyAtLXVz
ZUV4cGVyaW1lbnRhbEZUTD10cnVlIGV2ZW4gaWYgRlRMIGlzbid0IGJ1aWx0IHNpbmNlIHRoaXMg
c2ltcGxpZmllcworICAgICAgICB0ZXN0aW5nLgorCisgICAgICAgICogZGZnL0RGR1RpZXJVcENo
ZWNrSW5qZWN0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlRpZXJVcENoZWNrSW5q
ZWN0aW9uUGhhc2U6OnJ1bik6CisKIDIwMTMtMDktMDUgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9m
ZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW51cCBmb3JtYXR0aW5nIG9mIGJ5dGUgY29kZSBk
ZWJ1ZyBvdXRwdXQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGllclVwQ2hl
Y2tJbmplY3Rpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTU1MTUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6CiAgICAgICAgIAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlIC8vIEVOQUJMRShGVExfSklUKQotICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYgLy8gRU5BQkxFKEZUTF9KSVQpCiAgICAgfQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTU1MTU5KQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDktMDUgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSB3YXkgdG8g
cnVuIGJlbmNobWFya3MgYW5kIEpTUmVncmVzcyBhcyBzdHJlc3MgdGVzdHMgd2l0aCBkaWZmZXJl
bnQganNjIGNvbW1hbmQtbGluZSBvcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA4MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIHNjcmlwdCBmb3IgcnVubmluZyBzdHJl
c3MgdGVzdHMuICBBIHN0cmVzcyB0ZXN0IGlzIGEgLmpzIGZpbGUgdGhhdCBpcyBydW4KKyAgICAg
ICAgdGhyb3VnaCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnMgb2YgSlNDLiAgSXQgY2FuIGNvbnRy
b2wgd2hpY2ggY29uZmlndXJhdGlvbnMgaXQKKyAgICAgICAgcnVucyBieSB1c2luZyAiLy9AIDxy
dWJ5IGNvZGU+IiB0byBndWlkZSB0aGUgc2NyaXB0LgorICAgICAgICAKKyAgICAgICAgVGhpcyBz
Y3JpcHQgaXMgbm93IHJ1biBhcyBwYXJ0IG9mIHJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cywgb24g
TWFjIG9ubHkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0czoK
KyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzOiBBZGRlZC4KKwogMjAxMy0w
OS0wNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1h
a2UgVmVjdG9yOjp1bmNoZWNrZWRBcHBlbmQgd29yayB3aXRoIG1vdmUtb25seSB0eXBlcwpJbmRl
eDogVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMJKHJldmlzaW9uIDE1NTE1MCkK
KysrIFRvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDQsNiArMjA0LDI0IEBAIGlmICgkcnVuRmFzdEpTKSB7CiAgICAgZXhpdCBleGl0U3Rh
dHVzKCRyZXN1bHQpIGlmICRyZXN1bHQ7CiB9CiAKK215ICRqc2NTdHJlc3NSZXN1bHRzRGlyID0g
JHByb2R1Y3REaXIgLiAiL2pzYy1zdHJlc3MtcmVzdWx0cyI7CisKKyMgRklYTUU6IHJ1bi1qc2Mt
c3RyZXNzLXRlc3RzIHNob3VsZCBiZSBwb3J0ZWQgdG8gb3RoZXIgcGxhdGZvcm1zLgorIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwODA5CitteSAkcnVuSlNDU3Ry
ZXNzID0gaXNBcHBsZU1hY1dlYktpdCgpOworaWYgKCRydW5KU0NTdHJlc3MpIHsKKyAgICBteSBA
anNjU3RyZXNzRHJpdmVyQ21kID0gKAorICAgICAgICAiL3Vzci9iaW4vZW52IiwgInJ1YnkiLCAi
VG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cyIsCisgICAgICAgICItaiIsIGpzY1Bh
dGgoJHByb2R1Y3REaXIpLCAiLW8iLCAkanNjU3RyZXNzUmVzdWx0c0RpciwKKyAgICAgICAgIlBl
cmZvcm1hbmNlVGVzdHMvU3VuU3BpZGVyL3Rlc3RzL3N1bnNwaWRlci0xLjAiLAorICAgICAgICAi
UGVyZm9ybWFuY2VUZXN0cy9TdW5TcGlkZXIvdGVzdHMvdjgtdjYiLAorICAgICAgICAiTGF5b3V0
VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cyIKKyAgICApOworICAgIHByaW50ICJS
dW5uaW5nOiAiIC4gam9pbigiICIsIEBqc2NTdHJlc3NEcml2ZXJDbWQpIC4gIlxuIjsKKyAgICAk
cmVzdWx0ID0gc3lzdGVtKEBqc2NTdHJlc3NEcml2ZXJDbWQpOworICAgIGV4aXQgZXhpdFN0YXR1
cygkcmVzdWx0KSBpZiAkcmVzdWx0OworfQorCiBteSAkbnVtTmV3TW96aWxsYUZhaWx1cmVzID0g
a2V5cyAlbmV3TW96aWxsYUZhaWx1cmVzOwogaWYgKCRudW1OZXdNb3ppbGxhRmFpbHVyZXMpIHsK
ICAgICBwcmludCAiXG4qKiBUaGUgZm9sbG93aW5nIE1vemlsbGEgdGVzdCBmYWlsdXJlcyBoYXZl
IGJlZW4gaW50cm9kdWNlZDpcbiI7CkBAIC0yNTMsOSArMjcxLDI1IEBAIG15IEBmYXN0SlNDcmFz
aExpc3QgPSByZWFkQWxsTGluZXMoJGZhc3QKIG15ICRudW1KU0ZhaWx1cmVzID0gQGZhc3RKU0Zh
aWxMaXN0OwogbXkgJG51bUpTQ3Jhc2hlcyA9IEBmYXN0SlNDcmFzaExpc3Q7CiAKLWlmICgkbnVt
SlNGYWlsdXJlcyB8fCAkbnVtSlNDcmFzaGVzKSB7CitpZiAoJG51bUpTRmFpbHVyZXMpIHsKKyAg
ICBwcmludCAiXG4qKiBUaGUgZm9sbG93aW5nIGZhc3QvanMgdGVzdCBmYWlsdXJlcyBoYXZlIGJl
ZW4gaW50cm9kdWNlZDpcbiI7CisgICAgZm9yZWFjaCBteSAkdGVzdEZhaWx1cmUgKEBmYXN0SlNG
YWlsTGlzdCkgeworICAgICAgICBwcmludCAiXHQkdGVzdEZhaWx1cmUiOworICAgIH0KK30KK2lm
ICgkbnVtSlNDcmFzaGVzKSB7CiAgICAgcHJpbnQgIlxuKiogVGhlIGZvbGxvd2luZyBmYXN0L2pz
IHRlc3QgZmFpbHVyZXMgaGF2ZSBiZWVuIGludHJvZHVjZWQ6XG4iOwotICAgIGZvcmVhY2ggbXkg
JHRlc3RGYWlsdXJlIChAZmFzdEpTRmFpbExpc3QsIEBmYXN0SlNDcmFzaExpc3QpIHsKKyAgICBm
b3JlYWNoIG15ICR0ZXN0Q3Jhc2ggKEBmYXN0SlNDcmFzaExpc3QpIHsKKyAgICAgICAgcHJpbnQg
Ilx0JHRlc3RDcmFzaCI7CisgICAgfQorfQorCitteSBAanNjU3RyZXNzRmFpbExpc3QgPSByZWFk
QWxsTGluZXMoJGpzY1N0cmVzc1Jlc3VsdHNEaXIgLiAiL2ZhaWxlZCIpOworbXkgJG51bUpTQ1N0
cmVzc0ZhaWx1cmVzID0gQGpzY1N0cmVzc0ZhaWxMaXN0OworCitpZiAoJG51bUpTQ1N0cmVzc0Zh
aWx1cmVzKSB7CisgICAgcHJpbnQgIlxuKiogVGhlIGZvbGxvd2luZyBKU0Mgc3RyZXNzIHRlc3Qg
ZmFpbHVyZXMgaGF2ZSBiZWVuIGludHJvZHVjZWQ6XG4iOworICAgIGZvcmVhY2ggbXkgJHRlc3RG
YWlsdXJlIChAanNjU3RyZXNzRmFpbExpc3QpIHsKICAgICAgICAgcHJpbnQgIlx0JHRlc3RGYWls
dXJlIjsKICAgICB9CiB9CkBAIC0yNzcsNSArMzExLDEzIEBAIGlmICgkcnVuRmFzdEpTKSB7CiAg
ICAgCiAgICAgcHJpbnQgIlxuIjsKIH0KKworaWYgKCRydW5KU0NTdHJlc3MpIHsKKyAgICBwcmlu
dCAiUmVzdWx0cyBmb3IgSlNDIHN0cmVzcyB0ZXN0czpcbiI7CisgICAgcHJpbnRUaGluZ3NGb3Vu
ZCgkbnVtSlNDU3RyZXNzRmFpbHVyZXMsICJmYWlsdXJlIiwgImZhaWx1cmVzIiwgImZvdW5kIik7
CisgICAgcHJpbnQgIiAgICBPSy5cbiIgaWYgJG51bUpTQ1N0cmVzc0ZhaWx1cmVzID09IDA7CiAg
ICAgCi1leGl0KDEpICBpZiAkbnVtTmV3TW96aWxsYUZhaWx1cmVzIHx8ICRudW1KU0ZhaWx1cmVz
IHx8ICRudW1KU0NyYXNoZXM7CisgICAgcHJpbnQgIlxuIjsKK30KKworZXhpdCgxKSAgaWYgJG51
bU5ld01vemlsbGFGYWlsdXJlcyB8fCAkbnVtSlNGYWlsdXJlcyB8fCAkbnVtSlNDcmFzaGVzIHx8
ICRudW1KU0NTdHJlc3NGYWlsdXJlczsKSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJl
c3MtdGVzdHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0
cwkocmV2aXNpb24gMCkKKysrIFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxODEgQEAKKyMhL3Vzci9iaW4vZW52IHJ1YnkKKworIyBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLiAKKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LiAKKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK3JlcXVpcmUgJ2dldG9wdGxvbmcnCisKK2Jl
Z2luCisgICAgcmVxdWlyZSAnc2hlbGx3b3JkcycKKyAgICAKKyAgICBkZWYgc2hlbGxlc2NhcGUo
dGV4dCkKKyAgICAgICAgU2hlbGx3b3Jkcy5zaGVsbGVzY2FwZSh0ZXh0KQorICAgIGVuZAorcmVz
Y3VlID0+IGUKKyAgICAkc3RkZXJyLnB1dHMgIldhcm5pbmc6IG5vIHNoZWxsd29yZHMsIHdpbGwg
ZW11bGF0ZTogI3tlLmluc3BlY3R9IgorICAgIGRlZiBzaGVsbGVzY2FwZSh0ZXh0KQorICAgICAg
ICB0ZXh0CisgICAgZW5kCitlbmQKKworZGVmIG15c3lzKCpjbWQpCisgICAgY29tbWFuZEFycmF5
ID0gY21kLmVhY2h7fHZhbHVlfCBzaGVsbGVzY2FwZSh2YWx1ZS50b19zKX0uam9pbignICcpCisg
ICAgJHN0ZGVyci5wdXRzICI+PiAje2NvbW1hbmRBcnJheX0iCisgICAgcmlhc2UgdW5sZXNzIHN5
c3RlbSgqY21kKQorZW5kCisKKyRqc2NQYXRoID0gbmlsCiskY29sbGVjdGlvbnMgPSBbXQorJG91
dHB1dERpciA9ICJyZXN1bHRzIgorCitkZWYgdXNhZ2UKKyAgICBwdXRzICJydW4tanNjLXN0cmVz
cy10ZXN0cyAtaiA8c2hlbGwgcGF0aD4gPGNvbGxlY3Rpb25zIHBhdGg+IFs8Y29sbGVjdGlvbnMg
cGF0aD4gLi4uXSIKKyAgICBwdXRzCisgICAgcHV0cyAiLS1qc2MgICAgICAgICAgICAoLWopICAg
UGF0aCB0byBKYXZhU2NyaXB0Q29yZS4gVGhpcyBvcHRpb24gaXMgcmVxdWlyZWQuIgorICAgIHB1
dHMgIi0tb3V0cHV0LWRpciAgICAgKC1vKSAgIFBhdGggd2hlcmUgdG8gcHV0IHJlc3VsdHMuIERl
ZmF1bHQgaXMgI3skb3V0cHV0RGlyfS4iCisgICAgcHV0cyAiLS1oZWxwICAgICAgICAgICAoLWgp
ICAgUHJpbnQgdGhpcyBtZXNzYWdlLiIKKyAgICBleGl0IDEKK2VuZAorCitHZXRvcHRMb25nLm5l
dyhbJy0taGVscCcsICctaCcsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKKyAgICAgICAgICAg
ICAgIFsnLS1qc2MnLCAnLWonLCBHZXRvcHRMb25nOjpSRVFVSVJFRF9BUkdVTUVOVF0sCisgICAg
ICAgICAgICAgICBbJy0tb3V0cHV0LWRpcicsICctbycsIEdldG9wdExvbmc6OlJFUVVJUkVEX0FS
R1VNRU5UXSkuZWFjaCB7CisgICAgfCBvcHQsIGFyZyB8CisgICAgY2FzZSBvcHQKKyAgICB3aGVu
ICctLWhlbHAnCisgICAgICAgIHVzYWdlCisgICAgd2hlbiAnLS1qc2MnCisgICAgICAgICRqc2NQ
YXRoID0gRmlsZS5yZWFscGF0aChhcmcpCisgICAgd2hlbiAnLS1vdXRwdXQtZGlyJworICAgICAg
ICAkb3V0cHV0RGlyID0gYXJnCisgICAgZW5kCit9CisKK3VubGVzcyAkanNjUGF0aAorICAgICRz
dGRlcnIucHV0cyAiRXJyb3I6IG11c3Qgc3BlY2lmeSAtaiA8cGF0aD4uIgorICAgIGV4aXQgMQor
ZW5kCisKKyRudW1GYWlsdXJlcyA9IDAKKworZGVmIHJ1bihraW5kLCAqb3B0aW9ucykKKyAgICBu
YW1lID0gIiN7JGJlbmNobWFya30uI3traW5kfSIKKyAgICBwcmludCAiI3tuYW1lfTogIgorICAg
IElPLnBvcGVuKFskanNjUGF0aF0gKyBvcHRpb25zICsgWyRiZW5jaG1hcmtdLCAiciIpIHsKKyAg
ICAgICAgfCBpbnAgfAorICAgICAgICBGaWxlLm9wZW4oJG91dHB1dERpciArICIvIiArICRjb2xs
ZWN0aW9uTmFtZSArICIvIiArIG5hbWUsICJ3IikgeworICAgICAgICAgICAgfCBvdXRwIHwKKyAg
ICAgICAgICAgIG91dHAud3JpdGUgaW5wLnJlYWQKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAk
Py5zdWNjZXNzPworICAgICAgICBwdXRzICJPSy4iCisgICAgZWxzZQorICAgICAgICBwdXRzICJG
QUlMOiAjeyQ/Lmluc3BlY3R9IgorICAgICAgICBGaWxlLm9wZW4oJG91dHB1dERpciArICIvZmFp
bGVkIiwgImEiKSB7CisgICAgICAgICAgICB8IG91dHAgfAorICAgICAgICAgICAgb3V0cC5wdXRz
IG5hbWUKKyAgICAgICAgfQorICAgICAgICAkbnVtRmFpbHVyZXMgPSAwCisgICAgZW5kCitlbmQK
KworZGVmIHJ1bkRlZmF1bHQKKyAgICBydW4oImRlZmF1bHQiKQorZW5kCisKK2RlZiBydW5Ob0NK
SVQKKyAgICBydW4oIm5vLWNqaXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIikKK2Vu
ZAorCitkZWYgcnVuRGVmYXVsdEZUTAorICAgIHJ1bigiZGVmYXVsdC1mdGwiLCAiLS11c2VFeHBl
cmltZW50YWxGVEw9dHJ1ZSIpCitlbmQKKworZGVmIHJ1bkZUTE5vQ0pJVAorICAgIHJ1bigiZnRs
LW5vLWNqaXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdXNlRXhwZXJpbWVu
dGFsRlRMPXRydWUiKQorZW5kCisKK2RlZiBydW5GVExFYWdlcgorICAgIHJ1bigiZnRsLWVhZ2Vy
IiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10
cnVlIiwgIi0tdGhyZXNob2xkRm9ySklUQWZ0ZXJXYXJtVXA9MTAiLCAiLS10aHJlc2hvbGRGb3JK
SVRTb29uPTEwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcD0yMCIsICItLXRo
cmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yT3B0
aW1pemVTb29uPTIwIiwgIi0tdGhyZXNob2xkRm9yRlRMT3B0aW1pemVBZnRlcldhcm1VcD0yMCIs
ICItLXRocmVzaG9sZEZvckZUTE9wdGltaXplU29vbj0yMCIpCitlbmQKKworZGVmIGRlZmF1bHRS
dW4KKyAgICBydW5EZWZhdWx0CisgICAgcnVuTm9DSklUCisgICAgcnVuRGVmYXVsdEZUTAorICAg
IHJ1bkZUTE5vQ0pJVAorICAgIHJ1bkZUTEVhZ2VyCitlbmQKKworZGVmIHNraXAKKyAgICBwdXRz
ICJTa2lwcGluZyAjeyRiZW5jaG1hcmt9IgorZW5kCisKK2NvbGxlY3Rpb25OYW1lcyA9IHt9CisK
K0Rpci5ta2Rpcigkb3V0cHV0RGlyKSB1bmxlc3MgRmlsZVRlc3QuZGlyZWN0b3J5PyAkb3V0cHV0
RGlyCitiZWdpbgorICAgIEZpbGUuZGVsZXRlKCRvdXRwdXREaXIgKyAiL2ZhaWxlZCIpCityZXNj
dWUKK2VuZAorCiskb3V0cHV0RGlyID0gRmlsZS5yZWFscGF0aCgkb3V0cHV0RGlyKQorCitBUkdW
LmVhY2ggeworICAgIHwgY29sbGVjdGlvbiB8CisgICAgJGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9u
CisgICAgJGNvbGxlY3Rpb25OYW1lID0gRmlsZS5iYXNlbmFtZShjb2xsZWN0aW9uKQorICAgIHRv
QWRkID0gMQorICAgIHdoaWxlIGNvbGxlY3Rpb25OYW1lc1skY29sbGVjdGlvbk5hbWVdCisgICAg
ICAgICRjb2xsZWN0aW9uTmFtZSA9IEZpbGUuYmFzZW5hbWUoY29sbGVjdGlvbikgKyAiLSN7dG9B
ZGR9IgorICAgICAgICB0b0FkZCArPSAxCisgICAgZW5kCisgICAgY29sbGVjdGlvbk5hbWVzWyRj
b2xsZWN0aW9uTmFtZV0gPSB0cnVlCisgICAgZGlyID0gJG91dHB1dERpciArICIvIiArICRjb2xs
ZWN0aW9uTmFtZQorICAgIERpci5ta2RpcihkaXIpIHVubGVzcyBGaWxlVGVzdC5kaXJlY3Rvcnk/
IGRpcgorICAgIERpci5jaGRpcihjb2xsZWN0aW9uKSB7CisgICAgICAgIERpci5mb3JlYWNoKCcu
JykgeworICAgICAgICAgICAgfCBiZW5jaG1hcmsgfAorICAgICAgICAgICAgbmV4dCB1bmxlc3Mg
YmVuY2htYXJrID1+IC9cLmpzJC8KKyAgICAgICAgICAgIG5leHQgdW5sZXNzIEZpbGVUZXN0LmZp
bGU/IGJlbmNobWFyaworICAgICAgICAgICAgCisgICAgICAgICAgICAkYmVuY2htYXJrID0gYmVu
Y2htYXJrCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRpZFJ1biA9IGZhbHNlCisgICAgICAg
ICAgICBGaWxlLm9wZW4oYmVuY2htYXJrKSB7CisgICAgICAgICAgICAgICAgfCBpbnAgfAorICAg
ICAgICAgICAgICAgIGlucC5lYWNoX2xpbmUgeworICAgICAgICAgICAgICAgICAgICB8IGxpbmUg
fAorICAgICAgICAgICAgICAgICAgICBuZXh0IHVubGVzcyBsaW5lID1+IC9eXC9cL0AvCisgICAg
ICAgICAgICAgICAgICAgIGV2YWwgJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAgICAgICBk
aWRSdW4gPSB0cnVlCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgICAgICBkZWZhdWx0UnVuIHVubGVzcyBkaWRSdW4KKyAgICAgICAgfQorICAg
IH0KK30KKworcHV0cyAiRmFpbGVkICN7JG51bUZhaWx1cmVzfSB0ZXN0cy4iCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0wLDAgKzEgIyMKKyoKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTU1MTU5KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTMtMDktMDUgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSB3YXkg
dG8gcnVuIGJlbmNobWFya3MgYW5kIEpTUmVncmVzcyBhcyBzdHJlc3MgdGVzdHMgd2l0aCBkaWZm
ZXJlbnQganNjIGNvbW1hbmQtbGluZSBvcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA4MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIE1ha2UgaXQgc28gdGhhdCBsb25nLXJ1bm5p
bmcgdGVzdHMgYXJlbid0IHJ1biBhcyBwYXJ0IG9mIHRoZSBzdHJlc3MgdGVzdCAodGhleQorICAg
ICAgICB3aWxsIHN0aWxsIHJ1biBhcyBwYXJ0IG9mIGJlbmNobWFya3MgYW5kIExheW91dFRlc3Rz
KSBvciBydW4gdGhlbSB3aXRoIGZld2VyCisgICAgICAgIGNvbmZpZ3VyYXRpb25zLgorCisgICAg
ICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1EYXRhVmlldy1h
bGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzOgorICAgICAgICAqIGZhc3QvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZC5qczoKKyAgICAg
ICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDMyQXJyYXkt
Ynl0ZU9mZnNldC5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0Fy
cmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQuanM6CisgICAgICAgICog
ZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2Mt
bGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVkLmpzOgorICAgICAgICAqIGZhc3QvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2
ZWQuanM6CisgICAgICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZl
ci1JbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZC1idWZmZXIuanM6CisgICAgICAgICogZmFzdC9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbG9uZy1s
aXZlZC5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVm
ZmVyLUludDhBcnJheS1hbGxvYy5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL0RhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVzLmpzOgorICAgICAgICAqIGZhc3QvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvRmxvYXQzMkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQuanM6
CisgICAgICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9GbG9hdDY0QXJyYXktYWxs
b2MtbG9uZy1saXZlZC5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L0Zsb2F0NjRBcnJheS10by1JbnQxNkFycmF5LXNldC5qczoKKyAgICAgICAgKiBmYXN0L2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL0hhc2hNYXAtcHV0LWdldC1pdGVyYXRlLWtleXMuanM6CisgICAg
ICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9IYXNoTWFwLXB1dC1nZXQtaXRlcmF0
ZS5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0hhc2hNYXAtc3Ry
aW5nLXB1dC1nZXQtaXRlcmF0ZS5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL0ludDE2QXJyYXktYWxsb2MtbG9uZy1saXZlZC5qczoKKyAgICAgICAgKiBmYXN0L2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0ludDE2QXJyYXktdG8tSW50MzJBcnJheS1zZXQuanM6Cisg
ICAgICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWh1
Z2UtbG9uZy1saXZlZC5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L0ludDMyQXJyYXktYWxsb2MtaHVnZS5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5qczoKKyAgICAgICAg
KiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0ludDMyQXJyYXktYWxsb2MtbGFyZ2UuanM6
CisgICAgICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9j
LWxvbmctbGl2ZWQuanM6CisgICAgICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9J
bnQzMkFycmF5LWFsbG9jLmpzOgorICAgICAgICAqIGZhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQuanM6CisgICAgICAgICogZmFzdC9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9hcnJheS1ub25hcnJheS1wb2x5bW9yaHBpYy1hY2Nlc3MuanM6Cisg
ICAgICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iYXNpYy1zZXQuanM6CisgICAg
ICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9lbXNjcmlwdGVuLW1lbW9wcy5qczoK
KyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2lubGluZS1hcmd1bWVudHMt
bG9jYWwtZXNjYXBlLmpzOgorICAgICAgICAqIGZhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
bWV0aG9kLW9uLW51bWJlci5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5qczoKKyAgICAgICAgKiBmYXN0L2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLmpzOgorICAgICAg
ICAqIGZhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbmV3LWFycmF5LWJ1ZmZlci1wdXNoLmpz
OgorICAgICAgICAqIGZhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbmV3LWFycmF5LXB1c2gu
anM6CisgICAgICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9wb2x5LXN0cmljdGVx
LmpzOgorICAgICAgICAqIGZhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3BsaWNlLXRvLXJl
bW92ZS5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1l
cXVhbGl0eS5qczoKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmlu
Zy1yZXBlYXQtYXJpdGguanM6CisgICAgICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9zdHJpbmctc3ViLmpzOgorCiAyMDEzLTA5LTA0ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW5hbWUgc3VwcG9ydHNDb250ZXh0IHRvIHByb2JhYmx5U3VwcG9y
dHNDb250ZXh0CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L0FycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZl
ci1EYXRhVmlldy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzCShyZXZpc2lvbiAxNTUxNTApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLURh
dGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSw1IEBACisvL0Agc2tpcAorCiB2YXIgYXJyYXkgPSBuZXcgQXJyYXkoMTAwMDApOwogCiBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVk
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZC5qcwkocmV2aXNpb24gMTU1
MTUwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1
ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsNSBAQAorLy9AIHNraXAKKwogdmFyIGFycmF5ID0gbmV3IEFycmF5KDEwMDAwKTsKIAogZm9y
ICh2YXIgaSA9IDA7IGkgPCA3MDAwMDsgKytpKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25n
LWxpdmVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5qcwko
cmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKwogdmFyIGFycmF5ID0gbmV3IEFy
cmF5KDEwMDApOwogCiB2YXIgbiA9IDEwMDAwOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9u
Zy1saXZlZC1mcmFnbWVudGVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxv
bmctbGl2ZWQtZnJhZ21lbnRlZC5qcwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2Mt
bGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
NSBAQAorLy9AIHNraXAKKwogdmFyIGFycmF5ID0gbmV3IEFycmF5KDEwMDAwKTsKIAogdmFyIGZy
YWdtZW50ZWRBcnJheSA9IFtdOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzCShyZXZpc2lv
biAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0Fy
cmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKwogdmFyIGFycmF5ID0gbmV3IEFycmF5KDEw
MDAwKTsKIAogZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFs
bG9jLWxvbmctbGl2ZWQtYnVmZmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxvbmct
bGl2ZWQtYnVmZmVyLmpzCShyZXZpc2lvbiAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxp
dmVkLWJ1ZmZlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUgQEAKKy8vQCBza2lwCisK
IHZhciBhcnJheSA9IG5ldyBBcnJheSgxMDAwMCk7CiAKIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50
OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQuanMJKHJldmlzaW9uIDE1NTE1MCkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItSW50OEFycmF5LWFs
bG9jLWxvbmctbGl2ZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1IEBACisvL0Agc2tp
cAorCiB2YXIgYXJyYXkgPSBuZXcgQXJyYXkoMTAwMDApOwogCiBmb3IgKHZhciBpID0gMDsgaSA8
IDcwMDAwOyArK2kpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL0FycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLUludDhBcnJheS1h
bGxvYy5qcwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSw1IEBACisvL0Agc2tpcAorCiBmb3IgKHZhciBpID0gMDsgaSA8IDcwMDAw
OyArK2kpCiAgICAgbmV3IEludDhBcnJheShuZXcgQXJyYXlCdWZmZXIoMTApKTsKIApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQz
MkFycmF5LWJ5dGVPZmZzZXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1JbnQzMkFycmF5LWJ5dGVPZmZzZXQuanMJ
KHJldmlzaW9uIDE1NTE1MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvQXJyYXlCdWZmZXItSW50MzJBcnJheS1ieXRlT2Zmc2V0LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKwogdmFyIHJlc3VsdCA9IDA7CiB2YXIgYnVmZmVy
ID0gbmV3IEFycmF5QnVmZmVyKDEwKTsKIHZhciBhcnJheTEgPSBuZXcgSW50MzJBcnJheShidWZm
ZXIsIDQsIDEpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9EYXRhVmlldy1jdXN0b20tcHJvcGVydGllcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0RhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVz
LmpzCShyZXZpc2lvbiAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL0RhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNSBAQAorLy9AIHJ1bkRlZmF1bHQKKwogdmFyIGFycmF5ID0gbmV3IEFycmF5KDEw
MDAwKTsKIAogZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9GbG9hdDMyQXJyYXktdG8tRmxvYXQ2
NEFycmF5LXNldC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL0Zsb2F0MzJBcnJheS10by1GbG9hdDY0QXJyYXktc2V0LmpzCShyZXZpc2lv
biAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0Zs
b2F0MzJBcnJheS10by1GbG9hdDY0QXJyYXktc2V0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsNSBAQAorLy9AIHNraXAKKwogKGZ1bmN0aW9uKCkgewogICAgIHZhciByZXN1bHQgPSAwOwog
ICAgIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9GbG9h
dDY0QXJyYXktYWxsb2MtbG9uZy1saXZlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0Zsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVk
LmpzCShyZXZpc2lvbiAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL0Zsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKwogdmFyIGFycmF5ID0gbmV3IEFycmF5KDEwMDAw
MCk7CiAKIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDAwMDsgKytpKQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9GbG9hdDY0QXJyYXktdG8tSW50MTZBcnJh
eS1zZXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9GbG9hdDY0QXJyYXktdG8tSW50MTZBcnJheS1zZXQuanMJKHJldmlzaW9uIDE1NTE1
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvRmxvYXQ2NEFy
cmF5LXRvLUludDE2QXJyYXktc2V0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBAQAor
Ly9AIHNraXAKKwogKGZ1bmN0aW9uKCkgewogICAgIHZhciByZXN1bHQgPSAwOwogICAgIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9IYXNoTWFwLXB1dC1n
ZXQtaXRlcmF0ZS1rZXlzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUta2V5cy5qcwkocmV2aXNp
b24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9I
YXNoTWFwLXB1dC1nZXQtaXRlcmF0ZS1rZXlzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
NSBAQAorLy9AIHJ1bkRlZmF1bHQKKwogLyoKICAqICBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNv
ZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKICAqICBjb250cmlidXRv
ciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBiZWxvdyBmb3IgYWRkaXRpb25h
bApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9IYXNoTWFw
LXB1dC1nZXQtaXRlcmF0ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL0hhc2hNYXAtcHV0LWdldC1pdGVyYXRlLmpzCShyZXZpc2lvbiAx
NTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0hhc2hN
YXAtcHV0LWdldC1pdGVyYXRlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBAQAorLy9A
IHJ1bkRlZmF1bHQKKwogLyoKICAqICBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZv
dW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKICAqICBjb250cmlidXRvciBsaWNlbnNl
IGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBiZWxvdyBmb3IgYWRkaXRpb25hbApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9IYXNoTWFwLXN0cmluZy1w
dXQtZ2V0LWl0ZXJhdGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9IYXNoTWFwLXN0cmluZy1wdXQtZ2V0LWl0ZXJhdGUuanMJKHJldmlz
aW9uIDE1NTE1MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
SGFzaE1hcC1zdHJpbmctcHV0LWdldC1pdGVyYXRlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsNSBAQAorLy9AIHJ1bkRlZmF1bHQKKwogLyoKICAqICBMaWNlbnNlZCB0byB0aGUgQXBhY2hl
IFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKICAqICBjb250cmli
dXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBiZWxvdyBmb3IgYWRkaXRp
b25hbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQ4
QXJyYXktYWxsb2MtbG9uZy1saXZlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0ludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLmpzCShy
ZXZpc2lvbiAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL0ludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsNSBAQAorLy9AIHNraXAKKwogdmFyIGFycmF5ID0gbmV3IEFycmF5KDEwMDAwMCk7CiAKIGZv
ciAodmFyIGkgPSAwOyBpIDwgMjAwMDAwMDsgKytpKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQxNkFycmF5LWFsbG9jLWxvbmctbGl2ZWQuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQx
NkFycmF5LWFsbG9jLWxvbmctbGl2ZWQuanMJKHJldmlzaW9uIDE1NTE1MCkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MTZBcnJheS1hbGxvYy1sb25nLWxp
dmVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKwogdmFyIGFy
cmF5ID0gbmV3IEFycmF5KDEwMDAwMCk7CiAKIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDAwMDsg
KytpKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQx
NkFycmF5LXRvLUludDMyQXJyYXktc2V0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MTZBcnJheS10by1JbnQzMkFycmF5LXNldC5q
cwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9JbnQxNkFycmF5LXRvLUludDMyQXJyYXktc2V0LmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKwogKGZ1bmN0aW9uKCkgewogICAgIHZhciByZXN1bHQg
PSAwOwogICAgIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0ludDMyQXJyYXktYWxsb2MtaHVn
ZS1sb25nLWxpdmVkLmpzCShyZXZpc2lvbiAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0ludDMyQXJyYXktYWxsb2MtaHVnZS1sb25nLWxpdmVkLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKwogdmFyIGFycmF5ID0g
bmV3IEFycmF5KDEwMDApOwogCiB2YXIgbiA9IDEwMDAwOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFy
cmF5LWFsbG9jLWh1Z2UuanMJKHJldmlzaW9uIDE1NTE1MCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1odWdlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKwogZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwOyArK2kpCiAgICAgbmV3IEludDMyQXJyYXkoMTAwMDAwMCk7CiAKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1s
b25nLWxpdmVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzCShyZXZpc2lv
biAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0lu
dDMyQXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUgQEAKKy8vQCBza2lwCisKIHZhciBhcnJheSA9IG5ldyBBcnJheSgxMDAwMCk7CiAKIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJh
eS1hbGxvYy1sYXJnZS5qcwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWxhcmdlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDIgKzEsNCBAQAorLy9AIHNraXAKKwogZm9yICh2YXIgaSA9IDA7IGkgPCA1
MDAwOyArK2kpCiAgICAgbmV3IEludDMyQXJyYXkoMTAwMDApOwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5LWFsbG9jLWxvbmctbGl2ZWQu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9JbnQzMkFycmF5LWFsbG9jLWxvbmctbGl2ZWQuanMJKHJldmlzaW9uIDE1NTE1MCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy1s
b25nLWxpdmVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKwog
dmFyIGFycmF5ID0gbmV3IEFycmF5KDEwMDAwMCk7CiAKIGZvciAodmFyIGkgPSAwOyBpIDwgMjAw
MDAwMDsgKytpKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9JbnQzMkFycmF5LWFsbG9jLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvSW50MzJBcnJheS1hbGxvYy5qcwkocmV2aXNpb24gMTU1MTUw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9JbnQzMkFycmF5
LWFsbG9jLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsNCBAQAorLy9AIHNraXAKKwogZm9y
ICh2YXIgaSA9IDA7IGkgPCAyMDAwMDA7ICsraSkKICAgICBuZXcgSW50MzJBcnJheSgxMCk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2FycmF5LW5vbmFy
cmF5LXBvbHltb3JocGljLWFjY2Vzcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2FycmF5LW5vbmFycmF5LXBvbHltb3JocGljLWFjY2Vz
cy5qcwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9hcnJheS1ub25hcnJheS1wb2x5bW9yaHBpYy1hY2Nlc3MuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSw1IEBACisvL0AgcnVuRGVmYXVsdAorCiB2YXIgZiA9IGZ1bmN0aW9u
KGEpIHsKICAgICB2YXIgc3VtID0gMDsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3Ro
OyBpKyspIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
YmFzaWMtc2V0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvYmFzaWMtc2V0LmpzCShyZXZpc2lvbiAxNTUxNTApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Jhc2ljLXNldC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDUgQEAKKy8vQCBydW5EZWZhdWx0CisKIHZhciBzZXQgPSBuZXcgU2V0Owog
Zm9yICh2YXIgaSA9IDA7IGkgPCA4MDAwOyArK2kpIHsKICAgICBzZXQuYWRkKGkpOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9lbXNjcmlwdGVuLW1lbW9w
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2Vtc2NyaXB0ZW4tbWVtb3BzLmpzCShyZXZpc2lvbiAxNTUxNTApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Vtc2NyaXB0ZW4tbWVtb3BzLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNiBAQAorLy8gSWdub3JlIHRoaXMgdGVzdCBpbiBydW4tanNj
LXN0cmVzcy10ZXN0cworLy9AIHNraXAKKwogLy8gTm90ZTogRm9yIG1heGltdW0tc3BlZWQgY29k
ZSwgc2VlICJPcHRpbWl6aW5nIENvZGUiIG9uIHRoZSBFbXNjcmlwdGVuIHdpa2ksIGh0dHBzOi8v
Z2l0aHViLmNvbS9rcmlwa2VuL2Vtc2NyaXB0ZW4vd2lraS9PcHRpbWl6aW5nLUNvZGUKIC8vIE5v
dGU6IFNvbWUgRW1zY3JpcHRlbiBzZXR0aW5ncyBtYXkgbGltaXQgdGhlIHNwZWVkIG9mIHRoZSBn
ZW5lcmF0ZWQgY29kZS4KIC8vIFRoZSBNb2R1bGUgb2JqZWN0OiBPdXIgaW50ZXJmYWNlIHRvIHRo
ZSBvdXRzaWRlIHdvcmxkLiBXZSBpbXBvcnQKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvaW5saW5lLWFyZ3VtZW50cy1sb2NhbC1lc2NhcGUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9pbmxpbmUt
YXJndW1lbnRzLWxvY2FsLWVzY2FwZS5qcwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9pbmxpbmUtYXJndW1lbnRzLWxvY2FsLWVz
Y2FwZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUgQEAKKy8vQCBydW5EZWZhdWx0CisK
IGZ1bmN0aW9uIGZvbygpIHsKICAgICByZXR1cm4gYXJndW1lbnRzOwogfQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9tZXRob2Qtb24tbnVtYmVyLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbWV0
aG9kLW9uLW51bWJlci5qcwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9tZXRob2Qtb24tbnVtYmVyLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNSBAQAorLy9AIHJ1bkRlZmF1bHQKKwogZnVuY3Rpb24gZm9vKGEpIHsKICAg
ICB2YXIgcmVzdWx0ID0gMDsKICAgICBmb3IgKHZhciBpID0gMCA7IGkgPCA1MDAwMDA7ICsraSkK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbmVzdGVkLWZ1
bmN0aW9uLXBhcnNpbmctcmFuZG9tLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmctcmFuZG9tLmpz
CShyZXZpc2lvbiAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLXJhbmRvbS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDUgQEAKKy8vQCBza2lwCisKIGZ1bmN0aW9uIHJhbmRvbUlkZW50KHByZWZpeCkK
IHsKICAgICB2YXIgcmFuZG9tID0gTWF0aC5yYW5kb20oKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmcuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9uZXN0
ZWQtZnVuY3Rpb24tcGFyc2luZy5qcwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUgQEAKKy8vQCBza2lwCisKIChmdW5jdGlvbigpIHsK
ICAgICB2YXIgcmVzdWx0ID0gMDsKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9uZXctYXJyYXktYnVmZmVyLXB1c2guanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9uZXctYXJyYXktYnVmZmVyLXB1
c2guanMJKHJldmlzaW9uIDE1NTE1MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvbmV3LWFycmF5LWJ1ZmZlci1wdXNoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsNSBAQAorLy9AIHJ1bkRlZmF1bHQKKwogZnVuY3Rpb24gZm9vKCkgewogICAgIHJldHVy
biBbWzEsMiwzXSwgWzUsNiw2XV07CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL25ldy1hcnJheS1wdXNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbmV3LWFycmF5LXB1c2guanMJKHJldmlz
aW9uIDE1NTE1MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
bmV3LWFycmF5LXB1c2guanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1IEBACisvL0AgcnVu
RGVmYXVsdAorCiBmdW5jdGlvbiBmb28oKSB7CiAgICAgcmV0dXJuIG5ldyBBcnJheSgpOwogfQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9wb2x5LXN0cmlj
dGVxLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvcG9seS1zdHJpY3RlcS5qcwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9wb2x5LXN0cmljdGVxLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsNSBAQAorLy9AIHJ1bkRlZmF1bHQKKwogLy8gVGVzdHMgdGhlIHBlcmZv
cm1hbmNlIG9mIGNvbXBsZXRlbHkgcG9seW1vcnBoaWMgc3RyaWN0IGVxdWFsaXR5LgogCiB2YXIg
YXJyYXkgPSBbXTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvc3BsaWNlLXRvLXJlbW92ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3NwbGljZS10by1yZW1vdmUuanMJKHJldmlzaW9uIDE1NTE1
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3BsaWNlLXRv
LXJlbW92ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUgQEAKKy8vQCBza2lwCisKIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKICAgICB2YXIgYXJyYXkgPSBbXTsKICAgICBm
b3IgKHZhciBqID0gMDsgaiA8IDEwMDA7ICsraikKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLWVxdWFsaXR5LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLWVxdWFsaXR5Lmpz
CShyZXZpc2lvbiAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL3N0cmluZy1lcXVhbGl0eS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUgQEAK
Ky8vQCBydW5EZWZhdWx0CisKIHZhciBhcnJheSA9IFsgImEiLCAiYiIsICJjIiwgImQiIF07CiAK
IGZ1bmN0aW9uIGZvbyhhcnJheSwgcykgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmctcmVwZWF0LWFyaXRoLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXJlcGVhdC1hcml0
aC5qcwkocmV2aXNpb24gMTU1MTUwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9zdHJpbmctcmVwZWF0LWFyaXRoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsNSBAQAorLy9AIHJ1bkRlZmF1bHQKKwogZnVuY3Rpb24gZm9vKGEsIGIpIHsKICAgICB2YXIg
YyA9IGEgLSBiOwogICAgIHZhciBkID0gYSAqIGI7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1zdWIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmctc3ViLmpzCShyZXZpc2lv
biAxNTUxNTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0
cmluZy1zdWIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1IEBACisvL0AgcnVuRGVmYXVs
dAorCiBmdW5jdGlvbiBmb28oYSwgYikgewogICAgIHJldHVybiBhIC0gYjsKIH0K
</data>
<flag name="review"
          id="232770"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>