<?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>123506</bug_id>
          
          <creation_ts>2013-10-30 04:32:33 -0700</creation_ts>
          <short_desc>JavaScript parser bug</short_desc>
          <delta_ts>2013-11-01 01:00:09 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://gist.github.com/mishoo/7230949</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihai Bazon">mihai.bazon</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>ggaren</cc>
    
    <cc>oliver</cc>
    
    <cc>thaddee.tyl</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>944866</commentid>
    <comment_count>0</comment_count>
    <who name="Mihai Bazon">mihai.bazon</who>
    <bug_when>2013-10-30 04:32:33 -0700</bug_when>
    <thetext>// fails with SyntaxError: Expected token &apos;)&apos;
( function(){ return this || eval(&apos;this&apos;); }().x = &quot;y&quot; );

// fails with SyntaxError: Unexpected token &apos;=&apos;
1, function(){ return this || eval(&apos;this&apos;); }().x = &quot;y&quot;;

//// weird that we get different error messages

//// The following all work.

// place the function call inside parens
( (function(){ return this || eval(&apos;this&apos;); }()).x = &quot;y&quot; );
1, (function(){ return this || eval(&apos;this&apos;); }()).x = &quot;y&quot;;

// simplify the return expression, keep `then`
( function(){ return this; }().x = &quot;y&quot; );
1, function(){ return this; }().x = &quot;y&quot;;

// keep `eval`
( function(){ return eval(&apos;this&apos;); }().x = &quot;y&quot; );
1, function(){ return eval(&apos;this&apos;); }().x = &quot;y&quot;;

// place the return expression inside parens (!!)
( function(){ return ( this || eval(&apos;this&apos;) ); }().x = &quot;y&quot; );
1, function(){ return ( this || eval(&apos;this&apos;) ); }().x = &quot;y&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945550</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-10-31 09:42:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/15362517&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945690</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-31 14:12:57 -0700</bug_when>
    <thetext>Alas shipping safari has really broken error messages, trunk is much much better.  I suspect that the problem here is that we&apos;re not correctly resetting state after we finish parsing the function body</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945826</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-31 19:36:31 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; // fails with SyntaxError: Expected token &apos;)&apos;
&gt; ( function(){ return this || eval(&apos;this&apos;); }().x = &quot;y&quot; );
This is incorrectly propagating parser state out of the function body.

&gt; 
&gt; // fails with SyntaxError: Unexpected token &apos;=&apos;
&gt; 1, function(){ return this || eval(&apos;this&apos;); }().x = &quot;y&quot;;

This is a correct failure.  The error message is just really bad</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945832</commentid>
    <comment_count>4</comment_count>
      <attachid>215716</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-31 21:56:33 -0700</bug_when>
    <thetext>Created attachment 215716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945833</commentid>
    <comment_count>5</comment_count>
      <attachid>215716</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-10-31 22:08:15 -0700</bug_when>
    <thetext>Comment on attachment 215716
Patch

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

r=me with the spaces clean up.

&gt; Source/JavaScriptCore/parser/Parser.h:404
&gt; -
&gt; +    

Remove these blank spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945834</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-31 22:12:10 -0700</bug_when>
    <thetext>Committed r158425: &lt;http://trac.webkit.org/changeset/158425&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945852</commentid>
    <comment_count>7</comment_count>
    <who name="Mihai Bazon">mihai.bazon</who>
    <bug_when>2013-11-01 00:31:58 -0700</bug_when>
    <thetext>&gt;&gt; // fails with SyntaxError: Unexpected token &apos;=&apos;
&gt;&gt; 1, function(){ return this || eval(&apos;this&apos;); }().x = &quot;y&quot;;

&gt; This is a correct failure.  The error message is just really bad

Nope, it&apos;s valid code.  It&apos;s just the assignment from the first line, in a sequence expression.  All other engines parse it correctly, also JS-based parsers (UglifyJS [1], Acorn [2] and Esprima [3]).

[1] https://github.com/mishoo/UglifyJS2
[2] https://github.com/marijnh/acorn
[3] http://esprima.org/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945853</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-01 01:00:09 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt;&gt; // fails with SyntaxError: Unexpected token &apos;=&apos;
&gt; &gt;&gt; 1, function(){ return this || eval(&apos;this&apos;); }().x = &quot;y&quot;;
&gt; 
&gt; &gt; This is a correct failure.  The error message is just really bad
&gt; 

Oh, whoops i missed the 1, at the beginning (i interpreted it as an enumerated list) anyhow, both cases are fixed</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215716</attachid>
            <date>2013-10-31 21:56:33 -0700</date>
            <delta_ts>2013-10-31 22:08:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123506-20131101175632.patch</filename>
            <type>text/plain</type>
            <size>15790</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZjAxNzgzMzkzYjAxMmE0MzAwYjZjMTJhNTQ2ZjVkMGY1ODUwZmQyLi5lNjE4ODc1OTgwYzg4MWQ1
ZmFlODkyYzE1YjI5OGY2M2EzYmY5ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxMy0xMC0zMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEphdmFTY3JpcHQgcGFyc2VyIGJ1ZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFBhcnNlclN0YXRlIGFzIGFuIGFic3RyYWN0aW9u
IGFuZCB1c2UgdGhhdCB0byBzYXZlIGFuZCByZXN0b3JlCisgICAgICAgIHRoZSBwYXJzZXIgc3Rh
dGUgYXJvdW5kIG5lc3RlZCBmdW5jdGlvbnMgKFdlJ2xsIG5lZWQgdG8gdXNlIHRoaXMgaW4KKyAg
ICAgICAgbW9yZSBwbGFjZXMgaW4gZnV0dXJlKS4gIEFsc28gZml4IGEgbWlub3IgZXJyb3IgdHlw
byB0aGlzIHRlc3RjYXNlcworICAgICAgICBoaXQuCisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6OjpwYXJzZUZ1bmN0aW9uSW5mbyk6CisgICAgICAgIChKU0M6
Ojo6cGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5o
OgorICAgICAgICAoSlNDOjpQYXJzZXI6OnNhdmVTdGF0ZSk6CisgICAgICAgIChKU0M6OlBhcnNl
cjo6cmVzdG9yZVN0YXRlKToKKwogMjAxMy0xMC0zMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIEZUTCBJbnQzMlRvRG91YmxlIHNob3VsZCBoYW5kbGUgdGhlIGZv
cndhcmQgdHlwZSBjaGVjayBjYXNlIHdoZXJlIHlvdSBuZWVkIGEgcmVjb3ZlcnkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCBkOWM3NjBjMzhiOGQ5MjgzMGE1YTEx
MzZmMjRhZmZjNDE4OTIyNWE1Li43ZTNiM2QwNDQzNGYxMmMyYTI5OTY5Y2EyODliOGQ1MzMxZjgw
OWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0xMTA1LDcg
KzExMDUsOSBAQCB0ZW1wbGF0ZSA8RnVuY3Rpb25SZXF1aXJlbWVudHMgcmVxdWlyZW1lbnRzLCBG
dW5jdGlvblBhcnNlTW9kZSBtb2RlLCBib29sIG5hbWVJcwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgbV9sYXN0RnVuY3Rpb25OYW1lID0gbGFzdEZ1bmN0aW9uTmFtZTsKKyAgICBQ
YXJzZXJTdGF0ZSBvbGRTdGF0ZSA9IHNhdmVTdGF0ZSgpOwogICAgIGJvZHkgPSBwYXJzZUZ1bmN0
aW9uQm9keShjb250ZXh0KTsKKyAgICByZXN0b3JlU3RhdGUob2xkU3RhdGUpOwogICAgIGZhaWxJ
ZkZhbHNlKGJvZHksICJDYW5ub3QgcGFyc2UgdGhlIGJvZHkgb2YgdGhpcyAiLCBzdHJpbmdGb3JG
dW5jdGlvbk1vZGUobW9kZSkpOwogICAgIGlmIChmdW5jdGlvblNjb3BlLT5zdHJpY3RNb2RlKCkg
JiYgbmFtZSkgewogICAgICAgICBSRUxFQVNFX0FTU0VSVChtb2RlID09IEZ1bmN0aW9uTW9kZSk7
CkBAIC0xMzcwLDcgKzEzNzIsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRy
ZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1lbgogICAgIGZhaWxJ
ZkZhbHNlKGxocywgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIik7CiAgICAgaWYgKGluaXRpYWxO
b25MSFNDb3VudCAhPSBtX25vbkxIU0NvdW50KSB7CiAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlw
ZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBPUkVRVUFMKQotICAgICAgICAgICAgc2Vt
YW50aWNGYWlsKCJMZWZ0IGhhbmQgc2lnbiBvZiBvcGVyYXRvciAnIiwgZ2V0VG9rZW4oKSwgIicg
bXVzdCBiZSBhIHJlZmVyZW5jZSIpOworICAgICAgICAgICAgc2VtYW50aWNGYWlsKCJMZWZ0IGhh
bmQgc2lkZSBvZiBvcGVyYXRvciAnIiwgZ2V0VG9rZW4oKSwgIicgbXVzdCBiZSBhIHJlZmVyZW5j
ZSIpOwogCiAgICAgICAgIHJldHVybiBsaHM7CiAgICAgfQpAQCAtMTQxMSw3ICsxNDEzLDcgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAgICAgZmFpbElmRmFsc2UobGhzLCAiQ2Fubm90
IHBhcnNlIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBleHByZXNzaW9uIik7
CiAgICAgICAgIGlmIChpbml0aWFsTm9uTEhTQ291bnQgIT0gbV9ub25MSFNDb3VudCkgewogICAg
ICAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90eXBlIDw9
IE9SRVFVQUwpCi0gICAgICAgICAgICAgICAgc2VtYW50aWNGYWlsKCJMZWZ0IGhhbmQgc2lnbiBv
ZiBvcGVyYXRvciAnIiwgZ2V0VG9rZW4oKSwgIicgbXVzdCBiZSBhIHJlZmVyZW5jZSIpOworICAg
ICAgICAgICAgICAgIHNlbWFudGljRmFpbCgiTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJyIs
IGdldFRva2VuKCksICInIG11c3QgYmUgYSByZWZlcmVuY2UiKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5k
ZXggZTQzMWRjZjE4ZGE4YmEzYjRmMWNiZDg0MjYxZDc4MDVjMjRmMzczOC4uMmVlM2I2YWQ1ZjNm
ZDYwNzVkYjQ5ZmY5NmRmMDJmODM1YmVkMjAzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlci5oCkBAIC00MDEsNyArNDAxLDcgQEAgcHJpdmF0ZToKICAgICBTY29wZVN0YWNrKiBt
X3Njb3BlU3RhY2s7CiAgICAgdW5zaWduZWQgbV9pbmRleDsKIH07Ci0KKyAgICAKIHRlbXBsYXRl
IDx0eXBlbmFtZSBMZXhlclR5cGU+CiBjbGFzcyBQYXJzZXIgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBhcnNlcik7CkBAIC03ODUsNiArNzg1LDMwIEBAIHByaXZhdGU6CiAgICAgICAgIG1f
bGV4ZXItPnNldExpbmVOdW1iZXIoc2F2ZVBvaW50Lm9sZExpbmVOdW1iZXIpOwogICAgIH0KICAg
ICAKKyAgICBzdHJ1Y3QgUGFyc2VyU3RhdGUgeworICAgICAgICBpbnQgYXNzaWdubWVudENvdW50
OworICAgICAgICBpbnQgbm9uTEhTQ291bnQ7CisgICAgICAgIGludCBub25Ucml2aWFsRXhwcmVz
c2lvbkNvdW50OworICAgIH07CisgICAgCisgICAgQUxXQVlTX0lOTElORSBQYXJzZXJTdGF0ZSBz
YXZlU3RhdGUoKQorICAgIHsKKyAgICAgICAgUGFyc2VyU3RhdGUgcmVzdWx0OworICAgICAgICBy
ZXN1bHQuYXNzaWdubWVudENvdW50ID0gbV9hc3NpZ25tZW50Q291bnQ7CisgICAgICAgIHJlc3Vs
dC5ub25MSFNDb3VudCA9IG1fbm9uTEhTQ291bnQ7CisgICAgICAgIHJlc3VsdC5ub25Ucml2aWFs
RXhwcmVzc2lvbkNvdW50ID0gbV9ub25Ucml2aWFsRXhwcmVzc2lvbkNvdW50OworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcmVzdG9y
ZVN0YXRlKGNvbnN0IFBhcnNlclN0YXRlJiBzdGF0ZSkKKyAgICB7CisgICAgICAgIG1fYXNzaWdu
bWVudENvdW50ID0gc3RhdGUuYXNzaWdubWVudENvdW50OworICAgICAgICBtX25vbkxIU0NvdW50
ID0gc3RhdGUubm9uTEhTQ291bnQ7CisgICAgICAgIG1fbm9uVHJpdmlhbEV4cHJlc3Npb25Db3Vu
dCA9IHN0YXRlLm5vblRyaXZpYWxFeHByZXNzaW9uQ291bnQ7CisgICAgICAgIAorICAgIH0KKyAg
ICAKKwogICAgIFZNKiBtX3ZtOwogICAgIGNvbnN0IFNvdXJjZUNvZGUqIG1fc291cmNlOwogICAg
IFBhcnNlckFyZW5hKiBtX2FyZW5hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ1YTViYTI5OWEwY2ZjODIzZmMyZmI0MjRi
ZjZmMjJiODczMTQxZTEuLjkwOGY1ZTZkYjNiZDhhYzZmMmQ1ZTZlMWYzYTM5OTViYjYwMDgwMmIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0xMC0zMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEphdmFTY3JpcHQgcGFyc2VyIGJ1ZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNTA2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGFuZCBhZGQgdGVzdHMK
KworICAgICAgICAqIGpzL2RvbS9hc3NpZ24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2Z1
bmN0aW9uLXRvU3RyaW5nLXBhcmVudGhlc2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9w
YXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVz
dHMvcGFyc2VyLXN5bnRheC1jaGVjay5qczoKKwogMjAxMy0xMC0zMSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubmZAZ21haWwuY29tPgogCiAgICAgICAgIENvcnJlY3QgdGhlIGVsYXBzZWRUaW1lIGNh
bGN1bGF0aW9uIGluIFNWRyBhbmltYXRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vYXNzaWduLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9hc3NpZ24tZXhwZWN0
ZWQudHh0CmluZGV4IDE1MGM5NjBjZGIwYjBkYjkyMzJkYjkxNWFlMjYyNDgxNjI2MjM0ZjMuLjI3
YWIyODc0YzFmMjQyNzBjZDM5NjYxZTc5YTc1ZTI1YzNiMTIzYWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2pzL2RvbS9hc3NpZ24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9hc3NpZ24tZXhwZWN0ZWQudHh0CkBAIC0xNSw3ICsxNSw3IEBAIFBBU1MgKCh3aW5kb3cueCkp
ID0gOTsgeCBpcyA5CiBQQVNTICgod2luZG93WyJ4Il0pKSA9IDEwOyB4IGlzIDEwCiBQQVNTICh5
LCB4KSA9ICJGQUlMIjsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBMZWZ0IHNpZGUg
b2YgYXNzaWdubWVudCBpcyBub3QgYSByZWZlcmVuY2UuLgogUEFTUyAodHJ1ZSA/IHggOiB5KSA9
ICJGQUlMIjsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBMZWZ0IHNpZGUgb2YgYXNz
aWdubWVudCBpcyBub3QgYSByZWZlcmVuY2UuLgotUEFTUyB4KysgPSAiRkFJTCI7IHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogTGVmdCBoYW5kIHNpZ24gb2Ygb3BlcmF0b3IgJz0nIG11c3Qg
YmUgYSByZWZlcmVuY2UuLgorUEFTUyB4KysgPSAiRkFJTCI7IHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJz0nIG11c3QgYmUgYSByZWZlcmVu
Y2UuLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9mdW5jdGlvbi10b1N0cmluZy1wYXJlbnRoZXNlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9mdW5jdGlvbi10b1N0cmluZy1wYXJlbnRoZXNl
cy1leHBlY3RlZC50eHQKaW5kZXggYzJlZjBjZjBmMzI2ZjM2Mzk1ODJhM2NiY2MwYzFkZmIzY2Nk
OGZhMS4uNjMzOGY0ZTdiZjM0ZjFiNTg3NjNlOTM1Y2ZiMjUxYzUyNjIxOGQ3NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvanMvZnVuY3Rpb24tdG9TdHJpbmctcGFyZW50aGVzZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2Z1bmN0aW9uLXRvU3RyaW5nLXBhcmVudGhlc2VzLWV4
cGVjdGVkLnR4dApAQCAtMjE2LDcgKzIxNiw3IEBAIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSA9IChiID0gYyknKSBpcyAnYSA9IChiID0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
J2EgPSBiICsgYycpIGlzICdhID0gYiArIGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhh
ID0gYikgKyBjJykgaXMgJyhhID0gYikgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID0gKGIgKyBjKScpIGlzICdhID0gKGIgKyBjKScKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSArIGIgPSBjJykgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBMZWZ0IGhhbmQgc2lnbiBv
ZiBvcGVyYXRvciAnPScgbXVzdCBiZSBhIHJlZmVyZW5jZS4uCitQQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJ2EgKyBiID0gYycpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTGVmdCBoYW5k
IHNpZGUgb2Ygb3BlcmF0b3IgJz0nIG11c3QgYmUgYSByZWZlcmVuY2UuLgogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCcoYSArIGIpID0gYycpIGlzICcoYSArIGIpID0gYycKIFBBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnYSArIChiID0gYyknKSBpcyAnYSArIChiID0gYyknCiBQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgKj0gYiAqPSBjJykgaXMgJ2EgKj0gYiAqPSBjJwpAQCAtMjI4LDcg
KzIyOCw3IEBAIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IChiICo9IGMpJykgaXMgJ2Eg
PSAoYiAqPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSAqPSBiICsgYycpIGlzICdh
ICo9IGIgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSAqPSBiKSArIGMnKSBpcyAn
KGEgKj0gYikgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICo9IChiICsgYyknKSBp
cyAnYSAqPSAoYiArIGMpJwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICsgYiAqPSBjJykg
dGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBMZWZ0IGhhbmQgc2lnbiBvZiBvcGVyYXRvciAn
Kj0nIG11c3QgYmUgYSByZWZlcmVuY2UuLgorUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICsg
YiAqPSBjJykgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBMZWZ0IGhhbmQgc2lkZSBvZiBv
cGVyYXRvciAnKj0nIG11c3QgYmUgYSByZWZlcmVuY2UuLgogUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCcoYSArIGIpICo9IGMnKSBpcyAnKGEgKyBiKSAqPSBjJwogUEFTUyBjb21waWxlQW5kU2Vy
aWFsaXplKCdhICsgKGIgKj0gYyknKSBpcyAnYSArIChiICo9IGMpJwogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCdhIC89IGIgLz0gYycpIGlzICdhIC89IGIgLz0gYycKQEAgLTI0MCw3ICsyNDAs
NyBAQCBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSAoYiAvPSBjKScpIGlzICdhID0gKGIg
Lz0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgLz0gYiArIGMnKSBpcyAnYSAvPSBi
ICsgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgLz0gYikgKyBjJykgaXMgJyhhIC89
IGIpICsgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSAvPSAoYiArIGMpJykgaXMgJ2Eg
Lz0gKGIgKyBjKScKLVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgLz0gYycpIHRocmV3
IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTGVmdCBoYW5kIHNpZ24gb2Ygb3BlcmF0b3IgJy89JyBt
dXN0IGJlIGEgcmVmZXJlbmNlLi4KK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgLz0g
YycpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0
b3IgJy89JyBtdXN0IGJlIGEgcmVmZXJlbmNlLi4KIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
KGEgKyBiKSAvPSBjJykgaXMgJyhhICsgYikgLz0gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnYSArIChiIC89IGMpJykgaXMgJ2EgKyAoYiAvPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSAlPSBiICU9IGMnKSBpcyAnYSAlPSBiICU9IGMnCkBAIC0yNTIsNyArMjUyLDcgQEAg
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID0gKGIgJT0gYyknKSBpcyAnYSA9IChiICU9IGMp
JwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICU9IGIgKyBjJykgaXMgJ2EgJT0gYiArIGMn
CiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICU9IGIpICsgYycpIGlzICcoYSAlPSBiKSAr
IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgJT0gKGIgKyBjKScpIGlzICdhICU9IChi
ICsgYyknCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyBiICU9IGMnKSB0aHJldyBleGNl
cHRpb24gU3ludGF4RXJyb3I6IExlZnQgaGFuZCBzaWduIG9mIG9wZXJhdG9yICclPScgbXVzdCBi
ZSBhIHJlZmVyZW5jZS4uCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyBiICU9IGMnKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IExlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICcl
PScgbXVzdCBiZSBhIHJlZmVyZW5jZS4uCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICsg
YikgJT0gYycpIGlzICcoYSArIGIpICU9IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2Eg
KyAoYiAlPSBjKScpIGlzICdhICsgKGIgJT0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
J2EgKz0gYiArPSBjJykgaXMgJ2EgKz0gYiArPSBjJwpAQCAtMjY0LDcgKzI2NCw3IEBAIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IChiICs9IGMpJykgaXMgJ2EgPSAoYiArPSBjKScKIFBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArPSBiICsgYycpIGlzICdhICs9IGIgKyBjJwogUEFT
UyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSArPSBiKSArIGMnKSBpcyAnKGEgKz0gYikgKyBjJwog
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICs9IChiICsgYyknKSBpcyAnYSArPSAoYiArIGMp
JwotUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICsgYiArPSBjJykgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBMZWZ0IGhhbmQgc2lnbiBvZiBvcGVyYXRvciAnKz0nIG11c3QgYmUgYSBy
ZWZlcmVuY2UuLgorUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICsgYiArPSBjJykgdGhyZXcg
ZXhjZXB0aW9uIFN5bnRheEVycm9yOiBMZWZ0IGhhbmQgc2lkZSBvZiBvcGVyYXRvciAnKz0nIG11
c3QgYmUgYSByZWZlcmVuY2UuLgogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSArIGIpICs9
IGMnKSBpcyAnKGEgKyBiKSArPSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICsgKGIg
Kz0gYyknKSBpcyAnYSArIChiICs9IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIC09
IGIgLT0gYycpIGlzICdhIC09IGIgLT0gYycKQEAgLTI3Niw3ICsyNzYsNyBAQCBQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgPSAoYiAtPSBjKScpIGlzICdhID0gKGIgLT0gYyknCiBQQVNTIGNv
bXBpbGVBbmRTZXJpYWxpemUoJ2EgLT0gYiArIGMnKSBpcyAnYSAtPSBiICsgYycKIFBBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKGEgLT0gYikgKyBjJykgaXMgJyhhIC09IGIpICsgYycKIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnYSAtPSAoYiArIGMpJykgaXMgJ2EgLT0gKGIgKyBjKScKLVBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgLT0gYycpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTGVmdCBoYW5kIHNpZ24gb2Ygb3BlcmF0b3IgJy09JyBtdXN0IGJlIGEgcmVmZXJl
bmNlLi4KK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgLT0gYycpIHRocmV3IGV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJy09JyBtdXN0IGJl
IGEgcmVmZXJlbmNlLi4KIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgKyBiKSAtPSBjJykg
aXMgJyhhICsgYikgLT0gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIChiIC09IGMp
JykgaXMgJ2EgKyAoYiAtPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA8PD0gYiA8
PD0gYycpIGlzICdhIDw8PSBiIDw8PSBjJwpAQCAtMjg4LDcgKzI4OCw3IEBAIFBBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnYSA9IChiIDw8PSBjKScpIGlzICdhID0gKGIgPDw9IGMpJwogUEFTUyBj
b21waWxlQW5kU2VyaWFsaXplKCdhIDw8PSBiICsgYycpIGlzICdhIDw8PSBiICsgYycKIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPDw9IGIpICsgYycpIGlzICcoYSA8PD0gYikgKyBjJwog
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhIDw8PSAoYiArIGMpJykgaXMgJ2EgPDw9IChiICsg
YyknCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyBiIDw8PSBjJykgdGhyZXcgZXhjZXB0
aW9uIFN5bnRheEVycm9yOiBMZWZ0IGhhbmQgc2lnbiBvZiBvcGVyYXRvciAnPDw9JyBtdXN0IGJl
IGEgcmVmZXJlbmNlLi4KK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgPDw9IGMnKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IExlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICc8
PD0nIG11c3QgYmUgYSByZWZlcmVuY2UuLgogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSAr
IGIpIDw8PSBjJykgaXMgJyhhICsgYikgPDw9IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUo
J2EgKyAoYiA8PD0gYyknKSBpcyAnYSArIChiIDw8PSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnYSA+Pj0gYiA+Pj0gYycpIGlzICdhID4+PSBiID4+PSBjJwpAQCAtMzAwLDcgKzMwMCw3
IEBAIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA9IChiID4+PSBjKScpIGlzICdhID0gKGIg
Pj49IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID4+PSBiICsgYycpIGlzICdhID4+
PSBiICsgYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgPj49IGIpICsgYycpIGlzICco
YSA+Pj0gYikgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhID4+PSAoYiArIGMpJykg
aXMgJ2EgPj49IChiICsgYyknCi1QQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyBiID4+PSBj
JykgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBMZWZ0IGhhbmQgc2lnbiBvZiBvcGVyYXRv
ciAnPj49JyBtdXN0IGJlIGEgcmVmZXJlbmNlLi4KK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
YSArIGIgPj49IGMnKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IExlZnQgaGFuZCBzaWRl
IG9mIG9wZXJhdG9yICc+Pj0nIG11c3QgYmUgYSByZWZlcmVuY2UuLgogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCcoYSArIGIpID4+PSBjJykgaXMgJyhhICsgYikgPj49IGMnCiBQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgKyAoYiA+Pj0gYyknKSBpcyAnYSArIChiID4+PSBjKScKIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnYSA+Pj49IGIgPj4+PSBjJykgaXMgJ2EgPj4+PSBiID4+Pj0g
YycKQEAgLTMxMiw3ICszMTIsNyBAQCBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgPSAoYiA+
Pj49IGMpJykgaXMgJ2EgPSAoYiA+Pj49IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ID4+Pj0gYiArIGMnKSBpcyAnYSA+Pj49IGIgKyBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCcoYSA+Pj49IGIpICsgYycpIGlzICcoYSA+Pj49IGIpICsgYycKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSA+Pj49IChiICsgYyknKSBpcyAnYSA+Pj49IChiICsgYyknCi1QQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJ2EgKyBiID4+Pj0gYycpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJv
cjogTGVmdCBoYW5kIHNpZ24gb2Ygb3BlcmF0b3IgJz4+Pj0nIG11c3QgYmUgYSByZWZlcmVuY2Uu
LgorUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICsgYiA+Pj49IGMnKSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IExlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICc+Pj49JyBtdXN0IGJl
IGEgcmVmZXJlbmNlLi4KIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgKyBiKSA+Pj49IGMn
KSBpcyAnKGEgKyBiKSA+Pj49IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyAoYiA+
Pj49IGMpJykgaXMgJ2EgKyAoYiA+Pj49IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdh
ICY9IGIgJj0gYycpIGlzICdhICY9IGIgJj0gYycKQEAgLTMyNCw3ICszMjQsNyBAQCBQQVNTIGNv
bXBpbGVBbmRTZXJpYWxpemUoJ2EgPSAoYiAmPSBjKScpIGlzICdhID0gKGIgJj0gYyknCiBQQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgJj0gYiArIGMnKSBpcyAnYSAmPSBiICsgYycKIFBBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgJj0gYikgKyBjJykgaXMgJyhhICY9IGIpICsgYycKIFBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSAmPSAoYiArIGMpJykgaXMgJ2EgJj0gKGIgKyBjKScK
LVBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgJj0gYycpIHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogTGVmdCBoYW5kIHNpZ24gb2Ygb3BlcmF0b3IgJyY9JyBtdXN0IGJlIGEgcmVm
ZXJlbmNlLi4KK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIGIgJj0gYycpIHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJyY9JyBtdXN0
IGJlIGEgcmVmZXJlbmNlLi4KIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKGEgKyBiKSAmPSBj
JykgaXMgJyhhICsgYikgJj0gYycKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSArIChiICY9
IGMpJykgaXMgJ2EgKyAoYiAmPSBjKScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnYSBePSBi
IF49IGMnKSBpcyAnYSBePSBiIF49IGMnCkBAIC0zMzYsNyArMzM2LDcgQEAgUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCdhID0gKGIgXj0gYyknKSBpcyAnYSA9IChiIF49IGMpJwogUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdhIF49IGIgKyBjJykgaXMgJ2EgXj0gYiArIGMnCiBQQVNTIGNvbXBp
bGVBbmRTZXJpYWxpemUoJyhhIF49IGIpICsgYycpIGlzICcoYSBePSBiKSArIGMnCiBQQVNTIGNv
bXBpbGVBbmRTZXJpYWxpemUoJ2EgXj0gKGIgKyBjKScpIGlzICdhIF49IChiICsgYyknCi1QQVNT
IGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyBiIF49IGMnKSB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IExlZnQgaGFuZCBzaWduIG9mIG9wZXJhdG9yICdePScgbXVzdCBiZSBhIHJlZmVyZW5j
ZS4uCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyBiIF49IGMnKSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IExlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICdePScgbXVzdCBiZSBh
IHJlZmVyZW5jZS4uCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJyhhICsgYikgXj0gYycpIGlz
ICcoYSArIGIpIF49IGMnCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgKyAoYiBePSBjKScp
IGlzICdhICsgKGIgXj0gYyknCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJ2EgfD0gYiB8PSBj
JykgaXMgJ2EgfD0gYiB8PSBjJwpAQCAtMzQ4LDcgKzM0OCw3IEBAIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnYSA9IChiIHw9IGMpJykgaXMgJ2EgPSAoYiB8PSBjKScKIFBBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnYSB8PSBiICsgYycpIGlzICdhIHw9IGIgKyBjJwogUEFTUyBjb21waWxlQW5k
U2VyaWFsaXplKCcoYSB8PSBiKSArIGMnKSBpcyAnKGEgfD0gYikgKyBjJwogUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCdhIHw9IChiICsgYyknKSBpcyAnYSB8PSAoYiArIGMpJwotUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCdhICsgYiB8PSBjJykgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9y
OiBMZWZ0IGhhbmQgc2lnbiBvZiBvcGVyYXRvciAnfD0nIG11c3QgYmUgYSByZWZlcmVuY2UuLgor
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICsgYiB8PSBjJykgdGhyZXcgZXhjZXB0aW9uIFN5
bnRheEVycm9yOiBMZWZ0IGhhbmQgc2lkZSBvZiBvcGVyYXRvciAnfD0nIG11c3QgYmUgYSByZWZl
cmVuY2UuLgogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoYSArIGIpIHw9IGMnKSBpcyAnKGEg
KyBiKSB8PSBjJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdhICsgKGIgfD0gYyknKSBpcyAn
YSArIChiIHw9IGMpJwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCdkZWxldGUgYSArIGInKSBp
cyAnZGVsZXRlIGEgKyBiJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcGFyc2VyLXN5bnRh
eC1jaGVjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9wYXJzZXItc3ludGF4LWNoZWNr
LWV4cGVjdGVkLnR4dAppbmRleCBiOTM4MDMwN2JkNjYxNzgzYzE4Y2ExYTVkNDMxYmUzYzY2MWNh
ODlhLi4wMzliMjMwNTczNDI2MzYyZDE3NzU5NGYzMWE4NDU2ZGQ4MGVhNTdkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9qcy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4dApAQCAtNjg4LDYg
KzY4OCwxMCBAQCBQQVNTIEludmFsaWQ6ICIoe3NldCBbeF0oKXt9fSkiCiBQQVNTIEludmFsaWQ6
ICJmdW5jdGlvbiBmKCkgeyAoe3NldCBbeF0oKXt9fSkgfSIKIFBBU1MgSW52YWxpZDogIih7Wy4u
LnhdOiAxfSkiCiBQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyAoe1suLi54XTogMX0pIH0i
CitQQVNTIFZhbGlkOiAgICIoIGZ1bmN0aW9uKCl7IHJldHVybiB0aGlzIHx8IGV2YWwoJ3RoaXMn
KTsgfSgpLnggPSAneScgKSIKK1BBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7ICggZnVuY3Rp
b24oKXsgcmV0dXJuIHRoaXMgfHwgZXZhbCgndGhpcycpOyB9KCkueCA9ICd5JyApIH0iCitQQVNT
IEludmFsaWQ6ICJmdW5jdGlvbigpeyByZXR1cm4gdGhpcyB8fCBldmFsKCd0aGlzJyk7IH0oKS54
ID0gJ3knIgorUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgZnVuY3Rpb24oKXsgcmV0dXJu
IHRoaXMgfHwgZXZhbCgndGhpcycpOyB9KCkueCA9ICd5JyB9IgogUEFTUyBlLmxpbmUgaXMgMQog
UEFTUyBmb28gaXMgJ1BBU1MnCiBQQVNTIGJhciBpcyAnUEFTUycKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9wYXJzZXItc3ludGF4LWNoZWNrLmpzIGIvTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL3BhcnNlci1zeW50YXgtY2hlY2suanMKaW5kZXggMzRkM2QyM2Q2
MTE0YTk3NjlmNzVhYzM5OWUzZTA4NmZlMDU3YzMwNi4uNmY1ZGQ1MWRlNWJmZGZlNzdiOWU2NTU1
NjgzMjA1OTAzMzlmMDhlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L3BhcnNlci1zeW50YXgtY2hlY2suanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L3BhcnNlci1zeW50YXgtY2hlY2suanMKQEAgLTQyNyw2ICs0MjcsOCBAQCB2YWxpZCgiKHtbeF06
IDF9KSIpCiBpbnZhbGlkKCIoe2dldCBbeF0oKXt9fSkiKQogaW52YWxpZCgiKHtzZXQgW3hdKCl7
fX0pIikKIGludmFsaWQoIih7Wy4uLnhdOiAxfSkiKQordmFsaWQoIiggZnVuY3Rpb24oKXsgcmV0
dXJuIHRoaXMgfHwgZXZhbCgndGhpcycpOyB9KCkueCA9ICd5JyApIik7CitpbnZhbGlkKCJmdW5j
dGlvbigpeyByZXR1cm4gdGhpcyB8fCBldmFsKCd0aGlzJyk7IH0oKS54ID0gJ3knIik7CiAKIAog
Cg==
</data>
<flag name="review"
          id="238512"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>