<?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>152453</bug_id>
          
          <creation_ts>2015-12-18 17:09:31 -0800</creation_ts>
          <short_desc>Add unary operator tests to compare JIT and LLINT results.</short_desc>
          <delta_ts>2015-12-21 10:42:06 -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>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>152447</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1150446</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-18 17:09:31 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150453</commentid>
    <comment_count>1</comment_count>
      <attachid>267665</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-18 17:18:31 -0800</bug_when>
    <thetext>Created attachment 267665
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150759</commentid>
    <comment_count>2</comment_count>
      <attachid>267665</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-21 10:31:27 -0800</bug_when>
    <thetext>Comment on attachment 267665
proposed patch.

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

&gt; Source/JavaScriptCore/tests/stress/resources/unary-op-test.js:5
&gt; +// from permutations of operand value pairs. For each test, it computes the expected

&quot;using from permutations&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150761</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-21 10:37:22 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 267665 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=267665&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/tests/stress/resources/unary-op-test.js:5
&gt; &gt; +// from permutations of operand value pairs. For each test, it computes the expected
&gt; 
&gt; &quot;using from permutations&quot;?

Sorry.  That&apos;s a stale comment that was partially edited.  I&apos;ve fixed it to say &quot;It works by generating test functions to exercise the specified operator on operand values in a provided set.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150762</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-21 10:42:06 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r194333: &lt;http://trac.webkit.org/r194333&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267665</attachid>
            <date>2015-12-18 17:18:31 -0800</date>
            <delta_ts>2015-12-21 10:31:27 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-152453.patch</filename>
            <type>text/plain</type>
            <size>16138</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0MzA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE1LTEyLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgdW5hcnkgb3BlcmF0b3IgdGVzdHMgdG8gY29tcGFyZSBKSVQgYW5kIExMSU5UIHJlc3VsdHMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIGZp
eGVkIGEgZmV3IHRoaW5ncyBpbiB0aGUgYmluYXJ5LW9wLXRlc3QuanMuCisKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKG8xLnZhbHVlT2YpOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9vcF9wb3N0ZGVjLmpzOiBBZGRlZC4KKyAgICAgICAgKG8x
LnZhbHVlT2YpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9vcF9wb3N0aW5jLmpzOiBBZGRlZC4K
KyAgICAgICAgKG8xLnZhbHVlT2YpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9vcF9wcmVkZWMu
anM6IEFkZGVkLgorICAgICAgICAobzEudmFsdWVPZik6CisgICAgICAgICogdGVzdHMvc3RyZXNz
L29wX3ByZWluYy5qczogQWRkZWQuCisgICAgICAgIChvMS52YWx1ZU9mKToKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3MvcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzOgorICAgICAgICAoc3RyaW5n
aWZ5SWZOZWVkZWQpOgorICAgICAgICAoaXNJZGVudGljYWwpOgorICAgICAgICAocnVuKToKKyAg
ICAgICAgKiB0ZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanM6IEFkZGVkLgor
ICAgICAgICAoc3RyaW5naWZ5SWZOZWVkZWQpOgorICAgICAgICAoZ2VuZXJhdGVCaW5hcnlUZXN0
cyk6CisgICAgICAgIChpc0lkZW50aWNhbCk6CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAg
KHJ1bik6CisKIDIwMTUtMTItMTggIFNhYW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQnl0ZWNvZGVHZW5lcmF0b3I6OnB1c2hMZXhpY2FsU2NvcGVJbnRlcm5hbCBhbmQg
cHVzaExleGljYWxTY29wZSBzaG91bGQgdXNlIGVudW1zIGluc3RlYWQgb2YgYm9vbHMKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9uZWdh
dGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NSBAQAorLy9AIHJ1bkZUTE5vQ0pJVAor
CisvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNp
bGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKKy8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRl
c3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KKworbG9hZCgiLi9yZXNvdXJj
ZXMvdW5hcnktb3AtdGVzdC5qcyIpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFRlc3Qg
Y29uZmlndXJhdGlvbiBkYXRhOgorCit2YXIgb3BOYW1lID0gIm5lZ2F0ZSI7Cit2YXIgb3AgPSAi
LSI7Cit2YXIgb3BlcmF0b3JUeXBlID0gIlByZWZpeCI7CisKK3ZhciBvMSA9IHsKKyAgICB2YWx1
ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIDEwOyB9Cit9OworCit2YXIgcG9zSW5maW5pdHkgPSAx
IC8gMDsKK3ZhciBuZWdJbmZpbml0eSA9IC0xIC8gMDsKKwordmFyIHZhbHVlcyA9IFsKKyAgICAn
bzEnLAorICAgICdudWxsJywKKyAgICAndW5kZWZpbmVkJywKKyAgICAndHJ1ZScsCisgICAgJ2Zh
bHNlJywKKworICAgICdOYU4nLAorICAgICdwb3NJbmZpbml0eScsCisgICAgJ25lZ0luZmluaXR5
JywKKyAgICAnMTAwLjInLCAvLyBTb21lIHJhbmRvbSBzbWFsbCBkb3VibGUgdmFsdWUuCisgICAg
Jy0xMDAuMicsCisgICAgJzU0Mjk0OTY3Mjk2LjI5MjMnLCAvLyBTb21lIHJhbmRvbSBsYXJnZSBk
b3VibGUgdmFsdWUuCisgICAgJy01NDI5NDk2NzI5Ni4yOTIzJywKKworICAgICcwJywKKyAgICAn
LTAnLAorICAgICcxJywKKyAgICAnLTEnLAorICAgICcweDNmZmYnLAorICAgICctMHgzZmZmJywK
KyAgICAnMHg3ZmZmJywKKyAgICAnLTB4N2ZmZicsCisgICAgJzB4MTAwMDAnLAorICAgICctMHgx
MDAwMCcsCisgICAgJzB4N2ZmZmZmZicsCisgICAgJy0weDdmZmZmZmYnLAorICAgICcweDgwMDAw
MDAwJywKKyAgICAnLTB4ODAwMDAwMDAnLAorICAgICcweDEwMDAwMDAwMCcsCisgICAgJy0weDEw
MDAwMDAwMCcsCisKKyAgICAnImFiYyInLAorICAgICciMCInLAorICAgICciLTAiJywKKyAgICAn
IjEiJywKKyAgICAnIi0xIicsCisgICAgJyIweDNmZmYiJywKKyAgICAnIi0weDNmZmYiJywKKyAg
ICAnIjB4N2ZmZiInLAorICAgICciLTB4N2ZmZiInLAorICAgICciMHgxMDAwMCInLAorICAgICci
LTB4MTAwMDAiJywKKyAgICAnIjB4N2ZmZmZmZiInLAorICAgICciLTB4N2ZmZmZmZiInLAorICAg
ICciMHgxMDAwMDAwMDAiJywKKyAgICAnIi0weDEwMDAwMDAwMCInLAorXTsKKwordGVzdHMgPSBb
XTsKK2dlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3BlcmF0b3JUeXBlLCAiSW1t
ZWRpYXRlUmVzdWx0Iiwgb3AsIHZhbHVlcyk7CitnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBv
cE5hbWUsIG9wZXJhdG9yVHlwZSwgIlBvc3RSZXN1bHQiLCBvcCwgdmFsdWVzKTsKKworcnVuKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9wb3N0
ZGVjLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9vcF9wb3N0ZGVjLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzUgQEAKKy8vQCBydW5G
VExOb0NKSVQKKworLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRl
cm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CisvLyBlcnJvcnMuIFNlZSB1
bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCisKK2xvYWQo
Ii4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiKTsKKworLy89PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKKwordmFyIG9wTmFtZSA9ICJwb3N0ZGVjIjsK
K3ZhciBvcCA9ICItLSI7Cit2YXIgb3BlcmF0b3JUeXBlID0gIlBvc3RmaXgiOworCit2YXIgbzEg
PSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiAxMDsgfQorfTsKKwordmFyIHBv
c0luZmluaXR5ID0gMSAvIDA7Cit2YXIgbmVnSW5maW5pdHkgPSAtMSAvIDA7CisKK3ZhciB2YWx1
ZXMgPSBbCisgICAgJ28xJywKKyAgICAnbnVsbCcsCisgICAgJ3VuZGVmaW5lZCcsCisgICAgJ3Ry
dWUnLAorICAgICdmYWxzZScsCisKKyAgICAnTmFOJywKKyAgICAncG9zSW5maW5pdHknLAorICAg
ICduZWdJbmZpbml0eScsCisgICAgJzEwMC4yJywgLy8gU29tZSByYW5kb20gc21hbGwgZG91Ymxl
IHZhbHVlLgorICAgICctMTAwLjInLAorICAgICc1NDI5NDk2NzI5Ni4yOTIzJywgLy8gU29tZSBy
YW5kb20gbGFyZ2UgZG91YmxlIHZhbHVlLgorICAgICctNTQyOTQ5NjcyOTYuMjkyMycsCisKKyAg
ICAnMCcsCisgICAgJy0wJywKKyAgICAnMScsCisgICAgJy0xJywKKyAgICAnMHgzZmZmJywKKyAg
ICAnLTB4M2ZmZicsCisgICAgJzB4N2ZmZicsCisgICAgJy0weDdmZmYnLAorICAgICcweDEwMDAw
JywKKyAgICAnLTB4MTAwMDAnLAorICAgICcweDdmZmZmZmYnLAorICAgICctMHg3ZmZmZmZmJywK
KyAgICAnMHg4MDAwMDAwMCcsCisgICAgJy0weDgwMDAwMDAwJywKKyAgICAnMHgxMDAwMDAwMDAn
LAorICAgICctMHgxMDAwMDAwMDAnLAorCisgICAgJyJhYmMiJywKKyAgICAnIjAiJywKKyAgICAn
Ii0wIicsCisgICAgJyIxIicsCisgICAgJyItMSInLAorICAgICciMHgzZmZmIicsCisgICAgJyIt
MHgzZmZmIicsCisgICAgJyIweDdmZmYiJywKKyAgICAnIi0weDdmZmYiJywKKyAgICAnIjB4MTAw
MDAiJywKKyAgICAnIi0weDEwMDAwIicsCisgICAgJyIweDdmZmZmZmYiJywKKyAgICAnIi0weDdm
ZmZmZmYiJywKKyAgICAnIjB4MTAwMDAwMDAwIicsCisgICAgJyItMHgxMDAwMDAwMDAiJywKK107
CisKK3Rlc3RzID0gW107CitnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wZXJh
dG9yVHlwZSwgIkltbWVkaWF0ZVJlc3VsdCIsIG9wLCB2YWx1ZXMpOworZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcGVyYXRvclR5cGUsICJQb3N0UmVzdWx0Iiwgb3AsIHZhbHVl
cyk7CisKK3J1bigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9v
cF9wb3N0aW5jLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3Mvb3BfcG9zdGluYy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3Mvb3BfcG9zdGluYy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc1
IEBACisvL0AgcnVuRlRMTm9DSklUCisKKy8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBt
b2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAorLy8g
ZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVl
ZGVkLgorCitsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7CisKKy8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CisKK3ZhciBvcE5hbWUg
PSAicG9zdGluYyI7Cit2YXIgb3AgPSAiKysiOwordmFyIG9wZXJhdG9yVHlwZSA9ICJQb3N0Zml4
IjsKKwordmFyIG8xID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTA7IH0K
K307CisKK3ZhciBwb3NJbmZpbml0eSA9IDEgLyAwOwordmFyIG5lZ0luZmluaXR5ID0gLTEgLyAw
OworCit2YXIgdmFsdWVzID0gWworICAgICdvMScsCisgICAgJ251bGwnLAorICAgICd1bmRlZmlu
ZWQnLAorICAgICd0cnVlJywKKyAgICAnZmFsc2UnLAorCisgICAgJ05hTicsCisgICAgJ3Bvc0lu
ZmluaXR5JywKKyAgICAnbmVnSW5maW5pdHknLAorICAgICcxMDAuMicsIC8vIFNvbWUgcmFuZG9t
IHNtYWxsIGRvdWJsZSB2YWx1ZS4KKyAgICAnLTEwMC4yJywKKyAgICAnNTQyOTQ5NjcyOTYuMjky
MycsIC8vIFNvbWUgcmFuZG9tIGxhcmdlIGRvdWJsZSB2YWx1ZS4KKyAgICAnLTU0Mjk0OTY3Mjk2
LjI5MjMnLAorCisgICAgJzAnLAorICAgICctMCcsCisgICAgJzEnLAorICAgICctMScsCisgICAg
JzB4M2ZmZicsCisgICAgJy0weDNmZmYnLAorICAgICcweDdmZmYnLAorICAgICctMHg3ZmZmJywK
KyAgICAnMHgxMDAwMCcsCisgICAgJy0weDEwMDAwJywKKyAgICAnMHg3ZmZmZmZmJywKKyAgICAn
LTB4N2ZmZmZmZicsCisgICAgJzB4ODAwMDAwMDAnLAorICAgICctMHg4MDAwMDAwMCcsCisgICAg
JzB4MTAwMDAwMDAwJywKKyAgICAnLTB4MTAwMDAwMDAwJywKKworICAgICciYWJjIicsCisgICAg
JyIwIicsCisgICAgJyItMCInLAorICAgICciMSInLAorICAgICciLTEiJywKKyAgICAnIjB4M2Zm
ZiInLAorICAgICciLTB4M2ZmZiInLAorICAgICciMHg3ZmZmIicsCisgICAgJyItMHg3ZmZmIics
CisgICAgJyIweDEwMDAwIicsCisgICAgJyItMHgxMDAwMCInLAorICAgICciMHg3ZmZmZmZmIics
CisgICAgJyItMHg3ZmZmZmZmIicsCisgICAgJyIweDEwMDAwMDAwMCInLAorICAgICciLTB4MTAw
MDAwMDAwIicsCitdOworCit0ZXN0cyA9IFtdOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywg
b3BOYW1lLCBvcGVyYXRvclR5cGUsICJJbW1lZGlhdGVSZXN1bHQiLCBvcCwgdmFsdWVzKTsKK2dl
bmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3BlcmF0b3JUeXBlLCAiUG9zdFJlc3Vs
dCIsIG9wLCB2YWx1ZXMpOworCitydW4oKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvb3BfcHJlZGVjLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3Mvb3BfcHJlZGVjLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9wcmVkZWMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw3NSBAQAorLy9AIHJ1bkZUTE5vQ0pJVAorCisvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0
aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwg
cHJpbnQKKy8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRp
b25zIGlmIG5lZWRlZC4KKworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIpOwor
CisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgorCit2
YXIgb3BOYW1lID0gInByZWRlYyI7Cit2YXIgb3AgPSAiLS0iOwordmFyIG9wZXJhdG9yVHlwZSA9
ICJQcmVmaXgiOworCit2YXIgbzEgPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVy
biAxMDsgfQorfTsKKwordmFyIHBvc0luZmluaXR5ID0gMSAvIDA7Cit2YXIgbmVnSW5maW5pdHkg
PSAtMSAvIDA7CisKK3ZhciB2YWx1ZXMgPSBbCisgICAgJ28xJywKKyAgICAnbnVsbCcsCisgICAg
J3VuZGVmaW5lZCcsCisgICAgJ3RydWUnLAorICAgICdmYWxzZScsCisKKyAgICAnTmFOJywKKyAg
ICAncG9zSW5maW5pdHknLAorICAgICduZWdJbmZpbml0eScsCisgICAgJzEwMC4yJywgLy8gU29t
ZSByYW5kb20gc21hbGwgZG91YmxlIHZhbHVlLgorICAgICctMTAwLjInLAorICAgICc1NDI5NDk2
NzI5Ni4yOTIzJywgLy8gU29tZSByYW5kb20gbGFyZ2UgZG91YmxlIHZhbHVlLgorICAgICctNTQy
OTQ5NjcyOTYuMjkyMycsCisKKyAgICAnMCcsCisgICAgJy0wJywKKyAgICAnMScsCisgICAgJy0x
JywKKyAgICAnMHgzZmZmJywKKyAgICAnLTB4M2ZmZicsCisgICAgJzB4N2ZmZicsCisgICAgJy0w
eDdmZmYnLAorICAgICcweDEwMDAwJywKKyAgICAnLTB4MTAwMDAnLAorICAgICcweDdmZmZmZmYn
LAorICAgICctMHg3ZmZmZmZmJywKKyAgICAnMHg4MDAwMDAwMCcsCisgICAgJy0weDgwMDAwMDAw
JywKKyAgICAnMHgxMDAwMDAwMDAnLAorICAgICctMHgxMDAwMDAwMDAnLAorCisgICAgJyJhYmMi
JywKKyAgICAnIjAiJywKKyAgICAnIi0wIicsCisgICAgJyIxIicsCisgICAgJyItMSInLAorICAg
ICciMHgzZmZmIicsCisgICAgJyItMHgzZmZmIicsCisgICAgJyIweDdmZmYiJywKKyAgICAnIi0w
eDdmZmYiJywKKyAgICAnIjB4MTAwMDAiJywKKyAgICAnIi0weDEwMDAwIicsCisgICAgJyIweDdm
ZmZmZmYiJywKKyAgICAnIi0weDdmZmZmZmYiJywKKyAgICAnIjB4MTAwMDAwMDAwIicsCisgICAg
JyItMHgxMDAwMDAwMDAiJywKK107CisKK3Rlc3RzID0gW107CitnZW5lcmF0ZUJpbmFyeVRlc3Rz
KHRlc3RzLCBvcE5hbWUsIG9wZXJhdG9yVHlwZSwgIkltbWVkaWF0ZVJlc3VsdCIsIG9wLCB2YWx1
ZXMpOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcGVyYXRvclR5cGUsICJQ
b3N0UmVzdWx0Iiwgb3AsIHZhbHVlcyk7CisKK3J1bigpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9wcmVpbmMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9wcmVpbmMuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX3ByZWluYy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDc1IEBACisvL0AgcnVuRlRMTm9DSklUCisKKy8vIElmIGFsbCBnb2Vz
IHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwg
aXQgd2lsbCBwcmludAorLy8gZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdn
aW5nIG9wdGlvbnMgaWYgbmVlZGVkLgorCitsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0
LmpzIik7CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gVGVzdCBjb25maWd1cmF0aW9uIGRh
dGE6CisKK3ZhciBvcE5hbWUgPSAicHJlaW5jIjsKK3ZhciBvcCA9ICIrKyI7Cit2YXIgb3BlcmF0
b3JUeXBlID0gIlByZWZpeCI7CisKK3ZhciBvMSA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigp
IHsgcmV0dXJuIDEwOyB9Cit9OworCit2YXIgcG9zSW5maW5pdHkgPSAxIC8gMDsKK3ZhciBuZWdJ
bmZpbml0eSA9IC0xIC8gMDsKKwordmFyIHZhbHVlcyA9IFsKKyAgICAnbzEnLAorICAgICdudWxs
JywKKyAgICAndW5kZWZpbmVkJywKKyAgICAndHJ1ZScsCisgICAgJ2ZhbHNlJywKKworICAgICdO
YU4nLAorICAgICdwb3NJbmZpbml0eScsCisgICAgJ25lZ0luZmluaXR5JywKKyAgICAnMTAwLjIn
LCAvLyBTb21lIHJhbmRvbSBzbWFsbCBkb3VibGUgdmFsdWUuCisgICAgJy0xMDAuMicsCisgICAg
JzU0Mjk0OTY3Mjk2LjI5MjMnLCAvLyBTb21lIHJhbmRvbSBsYXJnZSBkb3VibGUgdmFsdWUuCisg
ICAgJy01NDI5NDk2NzI5Ni4yOTIzJywKKworICAgICcwJywKKyAgICAnLTAnLAorICAgICcxJywK
KyAgICAnLTEnLAorICAgICcweDNmZmYnLAorICAgICctMHgzZmZmJywKKyAgICAnMHg3ZmZmJywK
KyAgICAnLTB4N2ZmZicsCisgICAgJzB4MTAwMDAnLAorICAgICctMHgxMDAwMCcsCisgICAgJzB4
N2ZmZmZmZicsCisgICAgJy0weDdmZmZmZmYnLAorICAgICcweDgwMDAwMDAwJywKKyAgICAnLTB4
ODAwMDAwMDAnLAorICAgICcweDEwMDAwMDAwMCcsCisgICAgJy0weDEwMDAwMDAwMCcsCisKKyAg
ICAnImFiYyInLAorICAgICciMCInLAorICAgICciLTAiJywKKyAgICAnIjEiJywKKyAgICAnIi0x
IicsCisgICAgJyIweDNmZmYiJywKKyAgICAnIi0weDNmZmYiJywKKyAgICAnIjB4N2ZmZiInLAor
ICAgICciLTB4N2ZmZiInLAorICAgICciMHgxMDAwMCInLAorICAgICciLTB4MTAwMDAiJywKKyAg
ICAnIjB4N2ZmZmZmZiInLAorICAgICciLTB4N2ZmZmZmZiInLAorICAgICciMHgxMDAwMDAwMDAi
JywKKyAgICAnIi0weDEwMDAwMDAwMCInLAorXTsKKwordGVzdHMgPSBbXTsKK2dlbmVyYXRlQmlu
YXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3BlcmF0b3JUeXBlLCAiSW1tZWRpYXRlUmVzdWx0Iiwg
b3AsIHZhbHVlcyk7CitnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wZXJhdG9y
VHlwZSwgIlBvc3RSZXN1bHQiLCBvcCwgdmFsdWVzKTsKKworcnVuKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcwkocmV2aXNpb24gMTk0MjkzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDYgKzMwLDggQEAgdmFyIHZlcmJvc2VUZXN0R2VuZXJhdGlvbiA9IGZhbHNl
OwogZnVuY3Rpb24gc3RyaW5naWZ5SWZOZWVkZWQoeCkgewogICAgIGlmICh0eXBlb2YgeCA9PSAi
c3RyaW5nIikKICAgICAgICAgcmV0dXJuICciJyArIHggKyAnIic7CisgICAgaWYgKHR5cGVvZiB4
ID09ICJvYmplY3QiKQorICAgICAgICByZXR1cm4gJ29ialdpdGhWYWw6JyArIHg7CiAgICAgcmV0
dXJuIHg7CiB9CiAKQEAgLTc2LDYgKzc4LDggQEAgZnVuY3Rpb24gZ2VuZXJhdGVCaW5hcnlUZXN0
cyh0ZXN0cywgb3BOYQogdmFyIGVycm9yUmVwb3J0ID0gIiI7CiAKIGZ1bmN0aW9uIGlzSWRlbnRp
Y2FsKHgsIHkpIHsKKyAgICBpZiAodHlwZW9mIHggPT0gInVuZGVmaW5lZCIgJiYgdHlwZW9mIHkg
PT0gInVuZGVmaW5lZCIpCisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmICh0eXBlb2YgeCAh
PSB0eXBlb2YgeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICh4ID09IHkpIHsKQEAg
LTEyMiw4ICsxMjYsNiBAQCBmdW5jdGlvbiBydW4oKSB7CiAKICAgICBmb3IgKHZhciB0ZXN0IG9m
IHRlc3RzKQogICAgICAgICBydW5UZXN0KHRlc3QpOwotICAgIC8vIGZvciAodmFyIGkgPSAwOyBp
IDwgdGVzdHMubGVuZ3RoOyBpKyspCi0gICAgLy8gICAgIHJ1blRlc3QodGVzdHNbaV0pOwogCiAg
ICAgaWYgKGVycm9yUmVwb3J0ICE9PSAiIikKICAgICAgICAgdGhyb3cgIkZvdW5kIGZhaWx1cmVz
OlxuIiArIGVycm9yUmVwb3J0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMv
dW5hcnktb3AtdGVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzNCBAQAorLy8gVGhp
cyB0ZXN0IG1vZHVsZSBwcm92aWRlcyBpbmZyYXN0cnVjdHVyZSBmb3IgZ2VuZXJhdGluZyBhbmQg
cnVubmluZyB0ZXN0cyBvbiBhIHVuYXJ5CisvLyBvcGVyYXRvci4KKy8vCisvLyBJdCB3b3JrcyBi
eSBnZW5lcmF0aW5nIHRlc3QgZnVuY3Rpb25zIHRvIGV4ZXJjaXNlIHRoZSBzcGVjaWZpZWQgb3Bl
cmF0b3IgdXNpbmcKKy8vIGZyb20gcGVybXV0YXRpb25zIG9mIG9wZXJhbmQgdmFsdWUgcGFpcnMu
IEZvciBlYWNoIHRlc3QsIGl0IGNvbXB1dGVzIHRoZSBleHBlY3RlZAorLy8gcmVzdWx0IGJ5IGV4
ZXJjaXNpbmcgdGhlIHRlc3QgZnVuY3Rpb24gb25jZSAodXNpbmcgdGhlIExMSU5UKSBhdCB0ZXN0
IGdlbmVyYXRpb24gdGltZS4KKy8vIFRoZSB0ZXN0IHJ1bm5lciBsYXRlciBjb21wYXJlcyB0aGUg
cmVzdWx0IHByb2R1Y2VkIGJ5IHRoZSBmdW5jdGlvbiAoYXMgaXQgdGllcnMgdXApCisvLyBhZ2Fp
bnN0IHRoZSBleHBlY3RlZCByZXN1bHQuCisvLworLy8gVGhlIGdlbmVyYXRlZCB0ZXN0cyB3aWxs
IGV4ZXJjaXNlIHRoZSBvcGVyYXRvciBvbiBhIHZhcmlhYmxlLgorLy8KKy8vIElmIGFsbCBnb2Vz
IHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwg
aXQgd2lsbCBwcmludAorLy8gZXJyb3JzLgorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIERl
YnVnZ2luZyBvcHRpb25zOgorCit2YXIgdmVyYm9zZSA9IGZhbHNlOwordmFyIGFib3J0T25GaXJz
dEZhaWwgPSBmYWxzZTsKK3ZhciB0ZXN0RmlsdGVyU3RyID0gdW5kZWZpbmVkOyAvLyBEZWZpbmUg
YSBmaWx0ZXIgc3RyaW5nIHRvIGZpbHRlciB0ZXN0cyB0byBydW4uCisKK3ZhciB2ZXJib3NlVGVz
dEdlbmVyYXRpb24gPSBmYWxzZTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBUZXN0IGdl
bmVyYXRpb246CisKK2Z1bmN0aW9uIHN0cmluZ2lmeUlmTmVlZGVkKHgpIHsKKyAgICBpZiAodHlw
ZW9mIHggPT0gInN0cmluZyIpCisgICAgICAgIHJldHVybiAnIicgKyB4ICsgJyInOworICAgIGlm
ICh0eXBlb2YgeCA9PSAib2JqZWN0IikKKyAgICAgICAgcmV0dXJuICdvYmpXaXRoVmFsOicgKyB4
OworICAgIHJldHVybiB4OworfQorCisvLyBvcGVyYXRvclR5cGVzIGNhbiBiZSAiUHJlZml4IiBv
ciAiUG9zdGZpeCIuCisvLyByZXN1bHRUeXBlcyBjYW4gYmUgIkltbWVkaWF0ZVJlc3VsdCIgb3Ig
IlBvc3RSZXN1bHQiLiBQb3N0UmVzdWx0IGlzIG1haW5seSBmb3IKKy8vIGNoZWNraW5nIHRoZSB2
YWx1ZSBvZiBhIHZhcmlhYmxlIG9uIHN1YnNlcXVlbnQgaW5zcGVjdGlvbiwgc28gd2UgY2FuIGNv
bmZpcm0gdGhhdCB0aGUKKy8vIHBvc3RmaXggb3BlcmF0b3IgZGlkIGRvIGl0cyBqb2IuCit2YXIg
ZnVuY0luZGV4ID0gMDsKK2Z1bmN0aW9uIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFt
ZSwgb3BlcmF0b3JUeXBlLCByZXN1bHRUeXBlLCBvcCwgaW5WYWx1ZXMpIHsKKyAgICB2YXIgZnVu
Y05hbWVQcmVmaXggPSBvcE5hbWUgKyByZXN1bHRUeXBlOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgaW5WYWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHRlc3QgPSB7IH07CisgICAg
ICAgIHhTdHIgPSBpblZhbHVlc1tpXTsKKyAgICAgICAgdGVzdC54ID0gZXZhbCh4U3RyKTsKKwor
ICAgICAgICB2YXIgZnVuY05hbWUgPSBmdW5jTmFtZVByZWZpeCArIGZ1bmNJbmRleCsrOworICAg
ICAgICBpZiAob3BlcmF0b3JUeXBlID09ICJQcmVmaXgiKSB7CisgICAgICAgICAgICBpZiAocmVz
dWx0VHlwZSA9PSAiSW1tZWRpYXRlUmVzdWx0IikKKyAgICAgICAgICAgICAgICB0ZXN0LnNpZ25h
dHVyZSA9IGZ1bmNOYW1lICsgIih4KSB7IHJldHVybiAiICsgb3AgKyAieCB9IjsKKyAgICAgICAg
ICAgIGVsc2UgaWYgKHJlc3VsdFR5cGUgPT0gIlBvc3RSZXN1bHQiKQorICAgICAgICAgICAgICAg
IHRlc3Quc2lnbmF0dXJlID0gZnVuY05hbWUgKyAiKHgpIHsgIiArIG9wICsgIng7IHJldHVybiB4
OyB9IjsKKyAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRvclR5cGUgPT0gIlBvc3RmaXgiKSB7Cisg
ICAgICAgICAgICBpZiAocmVzdWx0VHlwZSA9PSAiSW1tZWRpYXRlUmVzdWx0IikKKyAgICAgICAg
ICAgICAgICB0ZXN0LnNpZ25hdHVyZSA9IGZ1bmNOYW1lICsgIih4KSB7IHJldHVybiB4IiArIG9w
ICsgIiB9IjsKKyAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdFR5cGUgPT0gIlBvc3RSZXN1bHQi
KQorICAgICAgICAgICAgICAgIHRlc3Quc2lnbmF0dXJlID0gZnVuY05hbWUgKyAiKHgpIHsgeCIg
KyBvcCArICI7IHJldHVybiB4OyB9IjsKKyAgICAgICAgfQorCisgICAgICAgIHRlc3QubmFtZSA9
IHRlc3Quc2lnbmF0dXJlICsgIiB3aXRoIHg6IiArIHhTdHI7CisKKyAgICAgICAgdGVzdC5mdW5j
ID0gZXZhbCgiKGZ1bmN0aW9uICIgKyB0ZXN0LnNpZ25hdHVyZSArICIpIik7CisgICAgICAgIG5v
SW5saW5lKHRlc3QuZnVuYyk7CisKKyAgICAgICAgdGVzdC5leHBlY3RlZFJlc3VsdCA9IHRlc3Qu
ZnVuYyh0ZXN0LngpOworICAgICAgICB0ZXN0Lm5hbWUgKz0gIiwgZXhwZWN0ZWQ6IiArIHN0cmlu
Z2lmeUlmTmVlZGVkKHRlc3QuZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIHRlc3RzLnB1c2go
dGVzdCk7CisgICAgICAgIGlmICh2ZXJib3NlVGVzdEdlbmVyYXRpb24pCisgICAgICAgICAgICBw
cmludCgiR2VuZXJhdGVkICIgKyB0ZXN0Lm5hbWUpOworICAgIH0KK30KKworLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisvLyBUZXN0IHJ1bm5pbmcgYW5kIHJlcG9ydGluZzoKKwordmFyIGVycm9yUmVw
b3J0ID0gIiI7CisKK2Z1bmN0aW9uIGlzSWRlbnRpY2FsKHgsIHkpIHsKKyAgICBpZiAodHlwZW9m
IHggPT0gInVuZGVmaW5lZCIgJiYgdHlwZW9mIHkgPT0gInVuZGVmaW5lZCIpCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGlmICh0eXBlb2YgeCAhPSB0eXBlb2YgeSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmICh4ID09IHkpIHsKKyAgICAgICAgaWYgKHgpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgLy8gRGlzdGluZ3Vpc2ggYmV0d2VlbiAwIGFuZCBuZWdhdGl2
ZSAwLgorICAgICAgICBpZiAoMSAvIHggPT0gMSAvIHkpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9IGVsc2UgaWYgKE51bWJlci5pc05hTih4KSAmJiBOdW1iZXIuaXNOYU4oeSkpCisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gcnVu
VGVzdCh0ZXN0KSB7CisgICAgaWYgKHRlc3RGaWx0ZXJTdHIgJiYgIXRlc3QubmFtZS5pbmNsdWRl
cyh0ZXN0RmlsdGVyU3RyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIGZpcnN0RmFpbGVk
ID0gLTE7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwcmlu
dCh0ZXN0Lm5hbWUpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsK
KyAgICAgICAgICAgIHZhciByZXN1bHQgPSB0ZXN0LmZ1bmModGVzdC54KTsKKyAgICAgICAgICAg
IGlmIChpc0lkZW50aWNhbChyZXN1bHQsIHRlc3QuZXhwZWN0ZWRSZXN1bHQpKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKGZpcnN0RmFpbGVkIDwgMCkgeworICAg
ICAgICAgICAgICAgIGVycm9yUmVwb3J0ICs9ICJGQUlMRUQ6ICIgKyB0ZXN0Lm5hbWUgKyAiIHN0
YXJ0ZWQgZmFpbGluZyBvbiBpdGVyYXRpb24gIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAi
OiBhY3R1YWwgIiArIHN0cmluZ2lmeUlmTmVlZGVkKHJlc3VsdCkgKyAiXG4iOworICAgICAgICAg
ICAgICAgIGlmIChhYm9ydE9uRmlyc3RGYWlsKQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBl
cnJvclJlcG9ydDsKKyAgICAgICAgICAgICAgICBmaXJzdEZhaWxlZCA9IGk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgaWYgKGFib3J0T25GaXJz
dEZhaWwpCisgICAgICAgICAgICB0aHJvdyBlOyAvLyBOZWdhdGUgdGhlIGNhdGNoIGJ5IHJlLXRo
cm93aW5nLgorICAgICAgICBlcnJvclJlcG9ydCArPSAiRkFJTEVEOiBVbmV4cGVjdGVkIGV4Y2Vw
dGlvbjogIiArIGUgKyAiXG4iOworICAgIH0KK30KKworZnVuY3Rpb24gcnVuKCkgeworICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICBwcmludCgiU3RhcnQgdGVzdGluZyIpOworCisgICAgZm9yICh2
YXIgdGVzdCBvZiB0ZXN0cykKKyAgICAgICAgcnVuVGVzdCh0ZXN0KTsKKworICAgIGlmIChlcnJv
clJlcG9ydCAhPT0gIiIpCisgICAgICAgIHRocm93ICJGb3VuZCBmYWlsdXJlczpcbiIgKyBlcnJv
clJlcG9ydDsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwcmludCgiRG9uZSB0ZXN0aW5n
Iik7Cit9Cg==
</data>
<flag name="review"
          id="292687"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>