<?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>17027</bug_id>
          
          <creation_ts>2008-01-26 18:20:38 -0800</creation_ts>
          <short_desc>Incorrect Function.toString behaviour with read/modify/write operators performed on negative numbers</short_desc>
          <delta_ts>2008-02-11 17:02:21 -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>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13638</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>darin</cc>
    
    <cc>jruderman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>68332</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-01-26 18:20:38 -0800</bug_when>
    <thetext>Function.toString loses necessary parentheses when performing read/modify/write operations like &gt;&gt;&gt;=, etc on *negative* numbers.

eg.
function f() {
   (-1) &gt;&gt;&gt;= 1;
}
becomes
function f() {
  -1 &gt;&gt;&gt;= 1;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68334</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-26 19:10:50 -0800</bug_when>
    <thetext>I think the trick here is that in SourceStream::operator&lt;&lt;(double) we need to treat the &quot;-&quot; sign from the negative number as an operator, since that&apos;s how the lexer is going to treat it.

Thus we need to check the precedence against the precedence of unary minus and set needParens in that case. This can all be fixed on the first line of that function where we initialize a needParens bool.

Assigning to myself, assuming that if Ollie was going to fix this he&apos;d have assigned it to himself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68336</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-26 19:22:28 -0800</bug_when>
    <thetext>I found an even better way to fix this, by just returning the appropriate precedence. I&apos;ll make the test exhaustive now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68337</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-01-26 19:35:45 -0800</bug_when>
    <thetext>That&apos;s basically what i was thinking :D

However i decided to get food :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68338</commentid>
    <comment_count>4</comment_count>
      <attachid>18715</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-26 20:05:26 -0800</bug_when>
    <thetext>Created attachment 18715
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68339</commentid>
    <comment_count>5</comment_count>
      <attachid>18715</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-01-26 20:15:05 -0800</bug_when>
    <thetext>Comment on attachment 18715
patch

r=m1, with the additional tests i requested on irc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68340</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-26 20:23:15 -0800</bug_when>
    <thetext>Committed revision 29815.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18715</attachid>
            <date>2008-01-26 20:05:26 -0800</date>
            <delta_ts>2008-01-26 20:15:05 -0800</delta_ts>
            <desc>patch</desc>
            <filename>NumberToStringPatch.txt</filename>
            <type>text/plain</type>
            <size>12074</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5ODEzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDgtMDEtMjYgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gZml4IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MDI3CisgICAgICAgICAgSW5jb3JyZWN0IEZ1bmN0aW9uLnRvU3RyaW5nIGJlaGF2aW91
ciB3aXRoIHJlYWQvbW9kaWZ5L3dyaXRlIG9wZXJhdG9ycyBwZXJmb3JtZWQgb24gbmVnYXRpdmUg
bnVtYmVycworCisgICAgICAgIFRlc3Q6IGZhc3QvanMvZnVuY3Rpb24tdG9TdHJpbmctcGFyZW50
aGVzZXMuaHRtbAorCisgICAgICAgIFRoZSBwcm9ibGVtIGhlcmUgd2FzIHRoYXQgYSBOdW1iZXJO
b2RlIHdpdGggYSBuZWdhdGl2ZSBudW1iZXIgaW4gaXQgaGFkIHRoZSB3cm9uZworICAgICAgICBw
cmVjZWRlbmNlLiBJdCdzIG5vdCBhIHByaW1hcnkgZXhwcmVzc2lvbiwgaXQncyBhIHVuYXJ5IG9w
ZXJhdG9yIHdpdGggYSBwcmltYXJ5CisgICAgICAgIGV4cHJlc3Npb24gYWZ0ZXIgaXQuCisKKyAg
ICAgICAgT25jZSB0aGUgcHJlY2VkZW5jZSBvZiBOdW1iZXJOb2RlIHdhcyBmaXhlZCwgdGhlIGNh
c2VzIGZyb20gYnVnIDE3MDIwIHdlcmUgYWxzbworICAgICAgICBmaXhlZCB3aXRob3V0IHRyeWlu
ZyB0byB0cmVhdCBicmFja2V0IG5vZGVzIGxpa2UgZG90IG5vZGVzLiBUaGF0IHdhc24ndCBuZWVk
ZWQuCisgICAgICAgIFRoZSByZWFzb24gd2UgaGFuZGxlIG51bWJlcnMgYmVmb3JlIGRvdCBub2Rl
cyBzcGVjaWFsbHkgaXMgdGhhdCB0aGUgZG90IGlzIGEKKyAgICAgICAgbGVnYWwgY2hhcmFjdGVy
IGluIGEgbnVtYmVyLiBUaGUgc2FtZSBpcyBub3QgdHJ1ZSBvZiBhIGJyYWNrZXQuIEV2ZW50dWFs
bHkgd2UKKyAgICAgICAgY291bGQgZ2V0IHNtYXJ0ZXIsIGFuZCBvbmx5IGFkZCB0aGUgcGFyZW50
aGVzZXMgd2hlbiB0aGVyZSBpcyBhY3R1YWwgYW1iaWd1aXR5LgorICAgICAgICBUaGVyZSBpcyBu
b25lIGlmIHRoZSBzdHJpbmcgZm9ybSBvZiB0aGUgbnVtYmVyIGFscmVhZHkgaGFzIGEgZG90IGlu
IGl0LCBvciBpZgorICAgICAgICBpdCdzIGEgbnVtYmVyIHdpdGggYSBhbHBoYWJldGljIG5hbWUg
bGlrZSBpbmZpbml0eSBvciBOQU4uCisKKyAgICAgICAgKiBranMvbm9kZXMuaDogUmVuYW1lZCBi
YWNrIGZyb20gT2JqZWN0QWNjZXNzIHRvIERvdEV4cHIuCisgICAgICAgIChLSlM6Ok51bWJlck5v
ZGU6OnByZWNlZGVuY2UpOiBSZXR1cm4gUHJlY1VuYXJ5IGZvciBuZWdhdGl2ZSBudW1iZXJzLCBz
aW5jZQorICAgICAgICB0aGV5IHNlcmlhbGl6ZSBhcyBhIHVuYXJ5IG9wZXJhdG9yLCBub3QgYSBw
cmltYXJ5IGV4cHJlc3Npb24uCisgICAgICAgICoga2pzL25vZGVzMnN0cmluZy5jcHA6CisgICAg
ICAgIChLSlM6OlNvdXJjZVN0cmVhbTo6b3BlcmF0b3I8PCk6IENsZWFyIG1fbnVtYmVyTmVlZHNQ
YXJlbnMgaWYgdGhpcyBhZGRzCisgICAgICAgIHBhcmVuczsgb25lIHNldCBpcyBlbm91Z2guCisg
ICAgICAgIChLSlM6OmJyYWNrZXROb2RlU3RyZWFtVG8pOiBSZW1vdmUgdW5uZWVkZWQgc3BlY2lh
bCBmbGFnIGhlcmUuIE5vcm1hbAorICAgICAgICBvcGVyYXRvciBwcmVjZWRlbmNlIHN1ZmZpY2Vz
LgorICAgICAgICAoS0pTOjpOZXdFeHByTm9kZTo6c3RyZWFtVG8pOiBEaXR0by4KKwogMjAwOC0w
MS0yNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1hY2llaiBhbmQgRGFyaW4uCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMyc3Ry
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMyc3RyaW5nLmNw
cAkocmV2aXNpb24gMjk4MTMpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMyc3RyaW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAy
MDAyIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAz
LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNyBFcmlj
IFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zNyw3ICszNyw3IEBA
IG5hbWVzcGFjZSBLSlMgewogZW51bSBFbmRsVHlwZSB7IEVuZGwgfTsKIGVudW0gSW5kZW50VHlw
ZSB7IEluZGVudCB9OwogZW51bSBVbmluZGVudFR5cGUgeyBVbmluZGVudCB9OwotZW51bSBPYmpl
Y3RBY2Nlc3NUeXBlIHsgT2JqZWN0QWNjZXNzIH07CitlbnVtIERvdEV4cHJUeXBlIHsgRG90RXhw
ciB9OwogCiBjbGFzcyBTb3VyY2VTdHJlYW0gewogcHVibGljOgpAQCAtNTEsNyArNTEsNyBAQCBw
dWJsaWM6CiAgICAgU291cmNlU3RyZWFtJiBvcGVyYXRvcjw8KEVuZGxUeXBlKTsKICAgICBTb3Vy
Y2VTdHJlYW0mIG9wZXJhdG9yPDwoSW5kZW50VHlwZSk7CiAgICAgU291cmNlU3RyZWFtJiBvcGVy
YXRvcjw8KFVuaW5kZW50VHlwZSk7Ci0gICAgU291cmNlU3RyZWFtJiBvcGVyYXRvcjw8KE9iamVj
dEFjY2Vzc1R5cGUpOworICAgIFNvdXJjZVN0cmVhbSYgb3BlcmF0b3I8PChEb3RFeHByVHlwZSk7
CiAgICAgU291cmNlU3RyZWFtJiBvcGVyYXRvcjw8KFByZWNlZGVuY2UpOwogICAgIFNvdXJjZVN0
cmVhbSYgb3BlcmF0b3I8PChjb25zdCBOb2RlKik7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IFNvdXJjZVN0cmVhbSYgb3BlcmF0b3I8PChjb25zdCBSZWZQdHI8VD4mIG4pIHsgcmV0dXJuICp0
aGlzIDw8IG4uZ2V0KCk7IH0KQEAgLTIwMCwxMyArMjAwLDE1IEBAIFNvdXJjZVN0cmVhbSYgU291
cmNlU3RyZWFtOjpvcGVyYXRvcjw8KGMKIHsKICAgICBib29sIG5lZWRQYXJlbnMgPSAobV9wcmVj
ZWRlbmNlICE9IFByZWNFeHByZXNzaW9uICYmIG4tPnByZWNlZGVuY2UoKSA+IG1fcHJlY2VkZW5j
ZSkgfHwgKG1fYXRTdGFydE9mU3RhdGVtZW50ICYmIG4tPm5lZWRzUGFyZW5zSWZMZWZ0bW9zdCgp
KTsKICAgICBtX3ByZWNlZGVuY2UgPSBQcmVjRXhwcmVzc2lvbjsKLSAgICBpZiAobikgewotICAg
ICAgICBpZiAobmVlZFBhcmVucykKLSAgICAgICAgICAgIG1fc3RyaW5nLmFwcGVuZCgnKCcpOwot
ICAgICAgICBuLT5zdHJlYW1UbygqdGhpcyk7Ci0gICAgICAgIGlmIChuZWVkUGFyZW5zKQotICAg
ICAgICAgICAgbV9zdHJpbmcuYXBwZW5kKCcpJyk7CisgICAgaWYgKCFuKQorICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgaWYgKG5lZWRQYXJlbnMpIHsKKyAgICAgICAgbV9udW1iZXJOZWVkc1Bh
cmVucyA9IGZhbHNlOworICAgICAgICBtX3N0cmluZy5hcHBlbmQoJygnKTsKICAgICB9CisgICAg
bi0+c3RyZWFtVG8oKnRoaXMpOworICAgIGlmIChuZWVkUGFyZW5zKQorICAgICAgICBtX3N0cmlu
Zy5hcHBlbmQoJyknKTsKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKQEAgLTIzNSw3ICsyMzcsNyBA
QCBTb3VyY2VTdHJlYW0mIFNvdXJjZVN0cmVhbTo6b3BlcmF0b3I8PChVCiAgICAgcmV0dXJuICp0
aGlzOwogfQogCi1pbmxpbmUgU291cmNlU3RyZWFtJiBTb3VyY2VTdHJlYW06Om9wZXJhdG9yPDwo
T2JqZWN0QWNjZXNzVHlwZSkKK2lubGluZSBTb3VyY2VTdHJlYW0mIFNvdXJjZVN0cmVhbTo6b3Bl
cmF0b3I8PChEb3RFeHByVHlwZSkKIHsKICAgICBtX251bWJlck5lZWRzUGFyZW5zID0gdHJ1ZTsK
ICAgICByZXR1cm4gKnRoaXM7CkBAIC0yNjMsMTIgKzI2NSwxMiBAQCB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gc3RhdGljIGlubGluZSB2b2lkCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBicmFja2V0Tm9k
ZVN0cmVhbVRvKFNvdXJjZVN0cmVhbSYgcywgY29uc3QgUmVmUHRyPEV4cHJlc3Npb25Ob2RlPiYg
YmFzZSwgY29uc3QgUmVmUHRyPEV4cHJlc3Npb25Ob2RlPiYgc3Vic2NyaXB0KQogewotICAgIHMg
PDwgT2JqZWN0QWNjZXNzIDw8IFByZWNDYWxsIDw8IGJhc2UuZ2V0KCkgPDwgIlsiIDw8IHN1YnNj
cmlwdC5nZXQoKSA8PCAiXSI7CisgICAgcyA8PCBQcmVjQ2FsbCA8PCBiYXNlLmdldCgpIDw8ICJb
IiA8PCBzdWJzY3JpcHQuZ2V0KCkgPDwgIl0iOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZG90
Tm9kZVN0cmVhbVRvKFNvdXJjZVN0cmVhbSYgcywgY29uc3QgUmVmUHRyPEV4cHJlc3Npb25Ob2Rl
PiYgYmFzZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCiB7Ci0gICAgcyA8PCBPYmplY3RBY2Nl
c3MgPDwgUHJlY0NhbGwgPDwgYmFzZS5nZXQoKSA8PCAiLiIgPDwgaWRlbnQ7CisgICAgcyA8PCBE
b3RFeHByIDw8IFByZWNDYWxsIDw8IGJhc2UuZ2V0KCkgPDwgIi4iIDw8IGlkZW50OwogfQogCiAv
LyAtLS0tLS0tLQpAQCAtNDE0LDcgKzQxNiw3IEBAIHZvaWQgQXJndW1lbnRzTm9kZTo6c3RyZWFt
VG8oU291cmNlU3RyZWEKIAogdm9pZCBOZXdFeHByTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFt
JiBzKSBjb25zdAogewotICAgIHMgPDwgIm5ldyAiIDw8IE9iamVjdEFjY2VzcyA8PCBQcmVjTWVt
YmVyIDw8IGV4cHIgPDwgYXJnczsKKyAgICBzIDw8ICJuZXcgIiA8PCBQcmVjTWVtYmVyIDw8IGV4
cHIgPDwgYXJnczsKIH0KIAogdm9pZCBGdW5jdGlvbkNhbGxWYWx1ZU5vZGU6OnN0cmVhbVRvKFNv
dXJjZVN0cmVhbSYgcykgY29uc3QKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCShyZXZpc2lvbiAyOTgxMykK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsNyAr
MjUyLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgdmlydHVhbCBpbnQzMl90IGV2YWx1YXRlVG9J
bnQzMihFeGVjU3RhdGUqKSBLSlNfRkFTVF9DQUxMOwogICAgIHZpcnR1YWwgdWludDMyX3QgZXZh
bHVhdGVUb1VJbnQzMihFeGVjU3RhdGUqKSBLSlNfRkFTVF9DQUxMOwogICAgIHZpcnR1YWwgdm9p
ZCBzdHJlYW1UbyhTb3VyY2VTdHJlYW0mKSBjb25zdCBLSlNfRkFTVF9DQUxMOwotICAgIHZpcnR1
YWwgUHJlY2VkZW5jZSBwcmVjZWRlbmNlKCkgY29uc3QgeyByZXR1cm4gUHJlY1ByaW1hcnk7IH0K
KyAgICB2aXJ0dWFsIFByZWNlZGVuY2UgcHJlY2VkZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG91
YmxlIDwgMC4wID8gUHJlY1VuYXJ5IDogUHJlY1ByaW1hcnk7IH0KIAogICAgIHZpcnR1YWwgYm9v
bCBpc051bWJlcigpIGNvbnN0IEtKU19GQVNUX0NBTEwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGRv
dWJsZSB2YWx1ZSgpIGNvbnN0IEtKU19GQVNUX0NBTEwgeyByZXR1cm4gbV9kb3VibGU7IH0KSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDI5ODEzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDgtMDEtMjYgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcw
MjcKKyAgICAgICAgICBJbmNvcnJlY3QgRnVuY3Rpb24udG9TdHJpbmcgYmVoYXZpb3VyIHdpdGgg
cmVhZC9tb2RpZnkvd3JpdGUgb3BlcmF0b3JzIHBlcmZvcm1lZCBvbiBuZWdhdGl2ZSBudW1iZXJz
CisKKyAgICAgICAgKiBmYXN0L2pzL2Z1bmN0aW9uLXRvU3RyaW5nLXBhcmVudGhlc2VzLWV4cGVj
dGVkLnR4dDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Jlc291cmNlcy9mdW5jdGlvbi10
b1N0cmluZy1wYXJlbnRoZXNlcy5qczogTW9yZSB0ZXN0IGNhc2VzLgorCiAyMDA4LTAxLTI2ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFj
aWVqIGFuZCBEYXJpbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZnVuY3Rpb24tdG9TdHJp
bmctcGFyZW50aGVzZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvZnVuY3Rpb24tdG9TdHJpbmctcGFyZW50aGVzZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyOTgxMykKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZnVuY3Rpb24tdG9TdHJpbmctcGFyZW50
aGVzZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MDgsNiArNDA4LDUwIEBAIFBB
U1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0xKVthXSArPSBiJykKIFBBU1MgY29tcGlsZUFuZFNl
cmlhbGl6ZSgnKC0xKVthXSsrJykgaXMgJygtMSlbYV0rKycKIFBBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnKysoLTEpW2FdJykgaXMgJysrKC0xKVthXScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnKC0xKVthXSgpJykgaXMgJygtMSlbYV0oKScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgn
bmV3ICgtMSkoKScpIGlzICduZXcgKC0xKSgpJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCco
LTEpLmEnKSBpcyAnKC0xKS5hJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoLTEpLmEgPSBi
JykgaXMgJygtMSkuYSA9IGInCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygtMSkuYSArPSBi
JykgaXMgJygtMSkuYSArPSBiJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoLTEpLmErKycp
IGlzICcoLTEpLmErKycKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKysoLTEpLmEnKSBpcyAn
KysoLTEpLmEnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygtMSkuYSgpJykgaXMgJygtMSku
YSgpJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoMSlbYV0nKSBpcyAnMVthXScKK1BBU1Mg
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKDEpW2FdID0gYicpIGlzICcxW2FdID0gYicKK1BBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKDEpW2FdICs9IGInKSBpcyAnMVthXSArPSBiJworUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCcoMSlbYV0rKycpIGlzICcxW2FdKysnCitQQVNTIGNvbXBpbGVBbmRT
ZXJpYWxpemUoJysrKDEpW2FdJykgaXMgJysrMVthXScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnKDEpW2FdKCknKSBpcyAnMVthXSgpJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCduZXcg
KDEpKCknKSBpcyAnbmV3IDEoKScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKDEpLmEnKSBp
cyAnKDEpLmEnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygxKS5hID0gYicpIGlzICcoMSku
YSA9IGInCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygxKS5hICs9IGInKSBpcyAnKDEpLmEg
Kz0gYicKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKDEpLmErKycpIGlzICcoMSkuYSsrJwor
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcrKygxKS5hJykgaXMgJysrKDEpLmEnCitQQVNTIGNv
bXBpbGVBbmRTZXJpYWxpemUoJygxKS5hKCknKSBpcyAnKDEpLmEoKScKK1BBU1MgY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnKC0xKSA9IGEnKSBpcyAnKC0xKSA9IGEnCitQQVNTIGNvbXBpbGVBbmRTZXJp
YWxpemUoJzEgPSBhJykgaXMgJzEgPSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoLTEp
ICo9IGEnKSBpcyAnKC0xKSAqPSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcxICo9IGEn
KSBpcyAnMSAqPSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoLTEpIC89IGEnKSBpcyAn
KC0xKSAvPSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcxIC89IGEnKSBpcyAnMSAvPSBh
JworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoLTEpICU9IGEnKSBpcyAnKC0xKSAlPSBhJwor
UEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcxICU9IGEnKSBpcyAnMSAlPSBhJworUEFTUyBjb21w
aWxlQW5kU2VyaWFsaXplKCcoLTEpICs9IGEnKSBpcyAnKC0xKSArPSBhJworUEFTUyBjb21waWxl
QW5kU2VyaWFsaXplKCcxICs9IGEnKSBpcyAnMSArPSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFs
aXplKCcoLTEpIC09IGEnKSBpcyAnKC0xKSAtPSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXpl
KCcxIC09IGEnKSBpcyAnMSAtPSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcoLTEpIDw8
PSBhJykgaXMgJygtMSkgPDw9IGEnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJzEgPDw9IGEn
KSBpcyAnMSA8PD0gYScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0xKSA+Pj0gYScpIGlz
ICcoLTEpID4+PSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcxID4+PSBhJykgaXMgJzEg
Pj49IGEnCitQQVNTIGNvbXBpbGVBbmRTZXJpYWxpemUoJygtMSkgPj4+PSBhJykgaXMgJygtMSkg
Pj4+PSBhJworUEFTUyBjb21waWxlQW5kU2VyaWFsaXplKCcxID4+Pj0gYScpIGlzICcxID4+Pj0g
YScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0xKSAmPSBhJykgaXMgJygtMSkgJj0gYScK
K1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZSgnMSAmPSBhJykgaXMgJzEgJj0gYScKK1BBU1MgY29t
cGlsZUFuZFNlcmlhbGl6ZSgnKC0xKSBePSBhJykgaXMgJygtMSkgXj0gYScKK1BBU1MgY29tcGls
ZUFuZFNlcmlhbGl6ZSgnMSBePSBhJykgaXMgJzEgXj0gYScKK1BBU1MgY29tcGlsZUFuZFNlcmlh
bGl6ZSgnKC0xKSB8PSBhJykgaXMgJygtMSkgfD0gYScKK1BBU1MgY29tcGlsZUFuZFNlcmlhbGl6
ZSgnMSB8PSBhJykgaXMgJzEgfD0gYScKIFBBU1MgY29tcGlsZUFuZFNlcmlhbGl6ZUxlZnRtb3N0
VGVzdCgnKHsgfSkueCcpIGlzICcoeyB9KS54JwogUEFTUyBjb21waWxlQW5kU2VyaWFsaXplTGVm
dG1vc3RUZXN0KCd4ID0geyB9JykgaXMgJ3ggPSB7IH0nCiBQQVNTIGNvbXBpbGVBbmRTZXJpYWxp
emVMZWZ0bW9zdFRlc3QoJyhmdW5jdGlvbiAoKSB7IH0pKCknKSBpcyAnKGZ1bmN0aW9uICgpIHsg
fSkoKScKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2Z1bmN0aW9uLXRvU3Ry
aW5nLXBhcmVudGhlc2VzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVz
b3VyY2VzL2Z1bmN0aW9uLXRvU3RyaW5nLXBhcmVudGhlc2VzLmpzCShyZXZpc2lvbiAyOTgxMykK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2Z1bmN0aW9uLXRvU3RyaW5nLXBhcmVu
dGhlc2VzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMTMgKzEzNyw0NSBAQCBzaG91bGRCZSgi
Y29tcGlsZUFuZFNlcmlhbGl6ZSgnKCFhKSsrJykiCiBzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlh
bGl6ZSgnIWEtLScpIiwgIichYS0tJyIpOwogc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUo
JyEoYS0tKScpIiwgIichYS0tJyIpOwogc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygh
YSktLScpIiwgIicoIWEpLS0nIik7CisKIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCco
LTEpW2FdJykiLCAiJygtMSlbYV0nIik7CiBzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgn
KC0xKVthXSA9IGInKSIsICInKC0xKVthXSA9IGInIik7CiBzaG91bGRCZSgiY29tcGlsZUFuZFNl
cmlhbGl6ZSgnKC0xKVthXSArPSBiJykiLCAiJygtMSlbYV0gKz0gYiciKTsKIHNob3VsZEJlKCJj
b21waWxlQW5kU2VyaWFsaXplKCcoLTEpW2FdKysnKSIsICInKC0xKVthXSsrJyIpOwogc2hvdWxk
QmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJysrKC0xKVthXScpIiwgIicrKygtMSlbYV0nIik7CiBz
aG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0xKVthXSgpJykiLCAiJygtMSlbYV0oKSci
KTsKKwogc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJ25ldyAoLTEpKCknKSIsICInbmV3
ICgtMSkoKSciKTsKKworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygtMSkuYScpIiwg
IicoLTEpLmEnIik7CitzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgnKC0xKS5hID0gYicp
IiwgIicoLTEpLmEgPSBiJyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygtMSku
YSArPSBiJykiLCAiJygtMSkuYSArPSBiJyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxp
emUoJygtMSkuYSsrJykiLCAiJygtMSkuYSsrJyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJp
YWxpemUoJysrKC0xKS5hJykiLCAiJysrKC0xKS5hJyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRT
ZXJpYWxpemUoJygtMSkuYSgpJykiLCAiJygtMSkuYSgpJyIpOworCitzaG91bGRCZSgiY29tcGls
ZUFuZFNlcmlhbGl6ZSgnKDEpW2FdJykiLCAiJzFbYV0nIik7CitzaG91bGRCZSgiY29tcGlsZUFu
ZFNlcmlhbGl6ZSgnKDEpW2FdID0gYicpIiwgIicxW2FdID0gYiciKTsKK3Nob3VsZEJlKCJjb21w
aWxlQW5kU2VyaWFsaXplKCcoMSlbYV0gKz0gYicpIiwgIicxW2FdICs9IGInIik7CitzaG91bGRC
ZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgnKDEpW2FdKysnKSIsICInMVthXSsrJyIpOworc2hvdWxk
QmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJysrKDEpW2FdJykiLCAiJysrMVthXSciKTsKK3Nob3Vs
ZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCcoMSlbYV0oKScpIiwgIicxW2FdKCknIik7CisKK3No
b3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCduZXcgKDEpKCknKSIsICInbmV3IDEoKSciKTsK
Kworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygxKS5hJykiLCAiJygxKS5hJyIpOwor
c2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygxKS5hID0gYicpIiwgIicoMSkuYSA9IGIn
Iik7CitzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgnKDEpLmEgKz0gYicpIiwgIicoMSku
YSArPSBiJyIpOworc2hvdWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygxKS5hKysnKSIsICIn
KDEpLmErKyciKTsKK3Nob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCcrKygxKS5hJykiLCAi
JysrKDEpLmEnIik7CitzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6ZSgnKDEpLmEoKScpIiwg
IicoMSkuYSgpJyIpOworCitmb3IgKGkgPSAwOyBpIDwgYXNzaWdubWVudE9wZXJhdG9ycy5sZW5n
dGg7ICsraSkgeworICAgIHZhciBvcCA9IGFzc2lnbm1lbnRPcGVyYXRvcnNbaV07CisgICAgc2hv
dWxkQmUoImNvbXBpbGVBbmRTZXJpYWxpemUoJygtMSkgIiArIG9wICsgIiBhJykiLCAiJygtMSkg
IiArIG9wICsgIiBhJyIpOworICAgIHNob3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplKCcxICIg
KyBvcCArICIgYScpIiwgIicxICIgKyBvcCArICIgYSciKTsKK30KKwogc2hvdWxkQmUoImNvbXBp
bGVBbmRTZXJpYWxpemVMZWZ0bW9zdFRlc3QoJyh7IH0pLngnKSIsICInKHsgfSkueCciKTsKIHNo
b3VsZEJlKCJjb21waWxlQW5kU2VyaWFsaXplTGVmdG1vc3RUZXN0KCd4ID0geyB9JykiLCAiJ3gg
PSB7IH0nIik7CiBzaG91bGRCZSgiY29tcGlsZUFuZFNlcmlhbGl6ZUxlZnRtb3N0VGVzdCgnKGZ1
bmN0aW9uICgpIHsgfSkoKScpIiwgIicoZnVuY3Rpb24gKCkgeyB9KSgpJyIpOwo=
</data>
<flag name="review"
          id="8174"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>