<?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>10878</bug_id>
          
          <creation_ts>2006-09-15 23:18:38 -0700</creation_ts>
          <short_desc>Incorrect decompilation for &quot;4..x&quot;</short_desc>
          <delta_ts>2007-05-14 06:47:25 -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>420+</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13638</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesse Ruderman">jruderman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gavin.sharp</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>55633</commentid>
    <comment_count>0</comment_count>
    <who name="Jesse Ruderman">jruderman</who>
    <bug_when>2006-09-15 23:18:38 -0700</bug_when>
    <thetext>javascript:alert(function(){alert(4..x)})

decompiles with &quot;4.x&quot;, which is a syntax error.

Here are some decompilations that I think would be correct; please choose one ;)

(4).x  (this is what Firefox trunk does)
4..x
4 .x</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10503</commentid>
    <comment_count>1</comment_count>
      <attachid>14441</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-09 13:40:21 -0700</bug_when>
    <thetext>Created attachment 14441
Fix the 4..x toString output by grouping the number if it&apos;s in dotted expression</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10524</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-05-09 16:42:29 -0700</bug_when>
    <thetext>I still don&apos;t 100% understand this bug (since I don&apos;t really understand what 4..x is supposed to mean).  But in your fix, groupIfNumber should be m_groupIfNumber, I&apos;m pretty sure the goal is to eventually move JSC to more modern conventions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10528</commentid>
    <comment_count>3</comment_count>
      <attachid>14441</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-05-09 17:28:21 -0700</bug_when>
    <thetext>Comment on attachment 14441
Fix the 4..x toString output by grouping the number if it&apos;s in dotted expression

In this middle of your patch you have the following, which looks unrelated and incorrect:

-  for (int i = 0; i &lt; elision; i++)
+  for (int i = 0; i = elision; i++)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10535</commentid>
    <comment_count>4</comment_count>
      <attachid>14441</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-09 19:26:11 -0700</bug_when>
    <thetext>Comment on attachment 14441
Fix the 4..x toString output by grouping the number if it&apos;s in dotted expression

+    SourceStream(): groupIfNumber(false) {};

No semicolon needed here. We normally put a space before the colon that introduces the initializer list.

+  groupIfNumber = false;
   str += s.ustring();
+  groupIfNumber = false;

Why do you need to set the variable twice here?

+  for (int i = 0; i = elision; i++)

This is wrong. The loop condition is an assignment statement. You&apos;ll end up with an infinite loop. Why didn&apos;t a test case catch this? Also, why the change at all? This seems to be an unnecessary change.

+  if (groupIfNumber) {
+    UChar ch(&apos;(&apos;);
+    str += UString(&amp;ch, 1);
+  }

I think this would read nicer as:

    if (groupIfNumber)
        str.append(&quot;(&quot;);

No need to use a UChar local variable. You can use += if you prefer it over append(), but I suggest &quot;&quot; instead of the UChar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10342</commentid>
    <comment_count>5</comment_count>
      <attachid>14489</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-11 07:02:00 -0700</bug_when>
    <thetext>Created attachment 14489
Second try, address the comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10304</commentid>
    <comment_count>6</comment_count>
      <attachid>14489</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-11 08:13:10 -0700</bug_when>
    <thetext>Comment on attachment 14489
Second try, address the comments

r=me

I noticed that the test case doesn&apos;t cover all the code. For example, there are many lines of code in nodes2string.cpp that you could delete without breaking any test case. I suggest making an even better test case that covers every single case at some point, but no need to do this before landing this.

Typo: &quot;formating&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10316</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-05-11 09:40:11 -0700</bug_when>
    <thetext>Landed in r21406, tests in r21407 due to operator error.

Kimmo, can you be sure to include a ChangeLog entry for your layout test changes in future?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10061</commentid>
    <comment_count>8</comment_count>
      <attachid>14543</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-14 06:35:00 -0700</bug_when>
    <thetext>Created attachment 14543
Improved testcases 

The patch contains improved testcases. It tries to cover all the parse tree nodes which were modified in the previous patch.
Sorry about omitting LayoutTests/ChangeLog. A mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10053</commentid>
    <comment_count>9</comment_count>
      <attachid>14543</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-14 06:47:25 -0700</bug_when>
    <thetext>Comment on attachment 14543
Improved testcases 

Please also don&apos;t use tabs in your patches. We don&apos;t use tabs and whoever goes to land your changes will have to replace them with spaces so Subversion will accept the patch.

This is very thorough. Great!

I think it would be even better if the test case output reflected the test cases instead of just f1 through f6. To do that you need to structure the test so the strings you pass to shouldBe contain the interesting part of the test.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14441</attachid>
            <date>2007-05-09 13:40:21 -0700</date>
            <delta_ts>2007-05-11 07:02:00 -0700</delta_ts>
            <desc>Fix the 4..x toString output by grouping the number if it&apos;s in dotted expression</desc>
            <filename>toString-number-dot-expr.diff</filename>
            <type>text/plain</type>
            <size>9888</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzMyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMDctMDUtMDkgIEtpbW1vIEtp
bm51bmVuICA8a2ltbW9rQGlraS5maT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAtIEdyb3VwIG51bWJlcnMgaW4gZG90dGVkIGV4cHJlc3Npb25zIGlu
IHRvU3RyaW5nKCkgb3V0cHV0LCBzbyB3ZSBhdm9pZCB0aGUgNC54IGNvbnN0cnVjdHMKKyAgICAg
ICAgICB3aGVuIHRoZSBvcmlnaW5hbCBpbnB1dCBpcyA0Li54CisgICAgICAgIC0gRml4ZXMgaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NzggKEluY29ycmVjdCBkZWNv
bXBpbGF0aW9uCisgICAgICAgICAgZm9yICI0Li54IikKKworICAgICAgICAqIGtqcy9ub2RlczJz
dHJpbmcuY3BwOgorICAgICAgICAoS0pTOjpTb3VyY2VTdHJlYW06Oik6CisgICAgICAgIEFkZCBi
b29sZWFuIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBpZiBuZXh0IGl0ZW0gaXMgYSBudW1iZXIsIGl0
IHNob3VsZCBiZSBncm91cGVkLgorICAgICAgICBBZGQgbmV3IGZvcm1hdGluZyBlbnVtIHdoaWNo
IHR1cm5zIG9uIHRoZSBib29sZWFuIGZsYWcuCisgICAgICAgIChLSlM6OlNvdXJjZVN0cmVhbTo6
U291cmNlU3RyZWFtKTogQWRkZWQuIEluaXRpYWxpemUgdGhlIGZsYWcuCisgICAgICAgIChTb3Vy
Y2VTdHJlYW06Om9wZXJhdG9yPDwpOiBBZGRlZC4gTmV3IG92ZXJsb2FkZWQgb3BlcmF0b3Igd2l0
aCBkb3VibGUgdmFsdWUgYXMgcGFyYW1ldGVyLgorICAgICAgICAoTnVtYmVyTm9kZTo6c3RyZWFt
VG8pOiBVc2UgdGhlIGRvdWJsZSBvcGVyYXRvcgorICAgICAgICAoQXJyYXlOb2RlOjpzdHJlYW1U
byk6CisgICAgICAgIChEb3RBY2Nlc3Nvck5vZGU6OnN0cmVhbVRvKToKKyAgICAgICAgKEZ1bmN0
aW9uQ2FsbERvdE5vZGU6OnN0cmVhbVRvKToKKyAgICAgICAgKEZ1bmN0aW9uQ2FsbFBhcmVuRG90
Tm9kZTo6c3RyZWFtVG8pOgorICAgICAgICAoUG9zdGZpeERvdE5vZGU6OnN0cmVhbVRvKToKKyAg
ICAgICAgKERlbGV0ZURvdE5vZGU6OnN0cmVhbVRvKToKKyAgICAgICAgKFByZWZpeERvdE5vZGU6
OnN0cmVhbVRvKToKKyAgICAgICAgKEFzc2lnbkRvdE5vZGU6OnN0cmVhbVRvKTogVXNlIHRoZSBu
ZXcgZm9ybWF0aW5nIGVudW0gdG8gdHVybiBvbiB0aGUgZ3JvdXBpbmcgZmxhZy4KKwogMjAwNy0w
NS0wOSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgbWpzLgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL25vZGVzMnN0cmluZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL25vZGVzMnN0cmluZy5jcHAJKHJldmlzaW9uIDIx
MzI2KQorKysgSmF2YVNjcmlwdENvcmUva2pzL25vZGVzMnN0cmluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDIwICszMSwyMyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgY2xhc3MgU291cmNlU3Ry
ZWFtIHsKICAgcHVibGljOgogICAgIGVudW0gRm9ybWF0IHsKLSAgICAgIEVuZGwsIEluZGVudCwg
VW5pbmRlbnQKKyAgICAgIEVuZGwsIEluZGVudCwgVW5pbmRlbnQsIERvdEV4cHIKICAgICB9Owot
CisgICAgU291cmNlU3RyZWFtKCk6IGdyb3VwSWZOdW1iZXIoZmFsc2UpIHt9OwogICAgIFVTdHJp
bmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBzdHI7IH0KICAgICBTb3VyY2VTdHJlYW0mIG9w
ZXJhdG9yPDwoY29uc3QgSWRlbnRpZmllciAmKTsKICAgICBTb3VyY2VTdHJlYW0mIG9wZXJhdG9y
PDwoY29uc3QgVVN0cmluZyAmKTsKICAgICBTb3VyY2VTdHJlYW0mIG9wZXJhdG9yPDwoY29uc3Qg
Y2hhciAqKTsKKyAgICBTb3VyY2VTdHJlYW0mIG9wZXJhdG9yPDwoZG91YmxlKTsKICAgICBTb3Vy
Y2VTdHJlYW0mIG9wZXJhdG9yPDwoY2hhcik7CiAgICAgU291cmNlU3RyZWFtJiBvcGVyYXRvcjw8
KEZvcm1hdCBmKTsKICAgICBTb3VyY2VTdHJlYW0mIG9wZXJhdG9yPDwoY29uc3QgTm9kZSAqKTsK
ICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gU291cmNlU3RyZWFtJiBvcGVyYXRvcjw8KFJlZlB0
cjxUPiBuKSB7IHJldHVybiB0aGlzLT5vcGVyYXRvcjw8KG4uZ2V0KCkpOyB9CisKICAgcHJpdmF0
ZToKICAgICBVU3RyaW5nIHN0cjsgLyogVE9ETzogYnVmZmVyICovCiAgICAgVVN0cmluZyBpbmQ7
CisgICAgYm9vbCBncm91cElmTnVtYmVyOwogICB9OwogfQogCkBAIC01Miw2ICs1NSw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBLSlM7CiAKIFNvdXJjZVN0cmVhbSYgU291cmNlU3RyZWFtOjpvcGVyYXRv
cjw8KGNoYXIgYykKIHsKKyAgZ3JvdXBJZk51bWJlciA9IGZhbHNlOwogICBVQ2hhciBjaChjKTsK
ICAgc3RyICs9IFVTdHJpbmcoJmNoLCAxKTsKICAgcmV0dXJuICp0aGlzOwpAQCAtNTksMTkgKzYz
LDQwIEBAIFNvdXJjZVN0cmVhbSYgU291cmNlU3RyZWFtOjpvcGVyYXRvcjw8KGMKIAogU291cmNl
U3RyZWFtJiBTb3VyY2VTdHJlYW06Om9wZXJhdG9yPDwoY29uc3QgY2hhciAqcykKIHsKKyAgZ3Jv
dXBJZk51bWJlciA9IGZhbHNlOwogICBzdHIgKz0gVVN0cmluZyhzKTsKICAgcmV0dXJuICp0aGlz
OwogfQogCitTb3VyY2VTdHJlYW0mIFNvdXJjZVN0cmVhbTo6b3BlcmF0b3I8PChkb3VibGUgdmFs
dWUpCit7CisgIGlmIChncm91cElmTnVtYmVyKSB7CisgICAgVUNoYXIgY2goJygnKTsKKyAgICBz
dHIgKz0gVVN0cmluZygmY2gsIDEpOworICB9CisKKyAgc3RyICs9IFVTdHJpbmc6OmZyb20odmFs
dWUpOworCisgIGlmIChncm91cElmTnVtYmVyKSB7CisgICAgVUNoYXIgY2goJyknKTsKKyAgICBz
dHIgKz0gVVN0cmluZygmY2gsIDEpOworICB9CisgIGdyb3VwSWZOdW1iZXIgPSBmYWxzZTsKKyAg
cmV0dXJuICp0aGlzOworfQorCiBTb3VyY2VTdHJlYW0mIFNvdXJjZVN0cmVhbTo6b3BlcmF0b3I8
PChjb25zdCBVU3RyaW5nICZzKQogeworICBncm91cElmTnVtYmVyID0gZmFsc2U7CiAgIHN0ciAr
PSBzOwogICByZXR1cm4gKnRoaXM7CiB9CiAKIFNvdXJjZVN0cmVhbSYgU291cmNlU3RyZWFtOjpv
cGVyYXRvcjw8KGNvbnN0IElkZW50aWZpZXIgJnMpCiB7CisgIGdyb3VwSWZOdW1iZXIgPSBmYWxz
ZTsKICAgc3RyICs9IHMudXN0cmluZygpOworICBncm91cElmTnVtYmVyID0gZmFsc2U7CiAgIHJl
dHVybiAqdGhpczsKIH0KIApAQCAtNzksMTEgKzEwNCwxMyBAQCBTb3VyY2VTdHJlYW0mIFNvdXJj
ZVN0cmVhbTo6b3BlcmF0b3I8PChjCiB7CiAgIGlmIChuKQogICAgIG4tPnN0cmVhbVRvKCp0aGlz
KTsKKyAgZ3JvdXBJZk51bWJlciA9IGZhbHNlOwogICByZXR1cm4gKnRoaXM7CiB9CiAKIFNvdXJj
ZVN0cmVhbSYgU291cmNlU3RyZWFtOjpvcGVyYXRvcjw8KEZvcm1hdCBmKQogeworICBncm91cElm
TnVtYmVyID0gZmFsc2U7CiAgIHN3aXRjaCAoZikgewogICAgIGNhc2UgRW5kbDoKICAgICAgIHN0
ciArPSAiXG4iICsgaW5kOwpAQCAtOTQsNiArMTIxLDkgQEAgU291cmNlU3RyZWFtJiBTb3VyY2VT
dHJlYW06Om9wZXJhdG9yPDwoRgogICAgIGNhc2UgVW5pbmRlbnQ6CiAgICAgICBpbmQgPSBpbmQu
c3Vic3RyKDAsIGluZC5zaXplKCkgLSAyKTsKICAgICAgIGJyZWFrOworICBjYXNlIERvdEV4cHI6
CisgICAgICBncm91cElmTnVtYmVyID0gdHJ1ZTsKKyAgICAgIGJyZWFrOwogICB9CiAKICAgcmV0
dXJuICp0aGlzOwpAQCAtMTE0LDcgKzE0NCw3IEBAIHZvaWQgQm9vbGVhbk5vZGU6OnN0cmVhbVRv
KFNvdXJjZVN0cmVhbSAKICAgcyA8PCAodmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIH0KIAot
dm9pZCBOdW1iZXJOb2RlOjpzdHJlYW1UbyhTb3VyY2VTdHJlYW0gJnMpIGNvbnN0IHsgcyA8PCBV
U3RyaW5nOjpmcm9tKHZhbHVlKTsgfQordm9pZCBOdW1iZXJOb2RlOjpzdHJlYW1UbyhTb3VyY2VT
dHJlYW0gJnMpIGNvbnN0IHsgcyA8PCB2YWx1ZTsgfQogCiB2b2lkIFN0cmluZ05vZGU6OnN0cmVh
bVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKIHsKQEAgLTE0OSw3ICsxNzksNyBAQCB2b2lkIEVs
ZW1lbnROb2RlOjpzdHJlYW1UbyhTb3VyY2VTdHJlYW0gCiB2b2lkIEFycmF5Tm9kZTo6c3RyZWFt
VG8oU291cmNlU3RyZWFtICZzKSBjb25zdAogewogICBzIDw8ICJbIiA8PCBlbGVtZW50OwotICBm
b3IgKGludCBpID0gMDsgaSA8IGVsaXNpb247IGkrKykKKyAgZm9yIChpbnQgaSA9IDA7IGkgPSBl
bGlzaW9uOyBpKyspCiAgICAgcyA8PCAiLCI7CiAgIHMgPDwgIl0iOwogfQpAQCAtMjA1LDcgKzIz
NSw3IEBAIHZvaWQgQnJhY2tldEFjY2Vzc29yTm9kZTo6c3RyZWFtVG8oU291cmMKIAogdm9pZCBE
b3RBY2Nlc3Nvck5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKIHsKLSAgcyA8
PCBleHByIDw8ICIuIiA8PCBpZGVudDsKKyAgcyA8PCBTb3VyY2VTdHJlYW06OkRvdEV4cHIgPDwg
ZXhwciA8PCAiLiIgPDwgaWRlbnQ7CiB9CiAKIHZvaWQgQXJndW1lbnRMaXN0Tm9kZTo6c3RyZWFt
VG8oU291cmNlU3RyZWFtICZzKSBjb25zdApAQCAtMjQ3LDEyICsyNzcsMTIgQEAgdm9pZCBGdW5j
dGlvbkNhbGxQYXJlbkJyYWNrZXROb2RlOjpzdHJlYQogCiB2b2lkIEZ1bmN0aW9uQ2FsbERvdE5v
ZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKIHsKLSAgcyA8PCBiYXNlIDw8ICIu
IiA8PCBpZGVudCA8PCBhcmdzOworICBzIDw8IFNvdXJjZVN0cmVhbTo6RG90RXhwciA8PCBiYXNl
IDw8ICIuIiA8PCBpZGVudCA8PCBhcmdzOwogfQogCiB2b2lkIEZ1bmN0aW9uQ2FsbFBhcmVuRG90
Tm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtICZzKSBjb25zdAogewotICBzIDw8ICIoIiA8PCBi
YXNlIDw8ICIuIiA8PCBpZGVudCA8PCAiKSIgPDwgYXJnczsKKyAgcyA8PCAiKCIgPDwgU291cmNl
U3RyZWFtOjpEb3RFeHByIDw8IGJhc2UgPDwgIi4iIDw8IGlkZW50IDw8ICIpIiA8PCBhcmdzOwog
fQogCiB2b2lkIFBvc3RmaXhSZXNvbHZlTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtICZzKSBj
b25zdApAQCAtMjc1LDcgKzMwNSw3IEBAIHZvaWQgUG9zdGZpeEJyYWNrZXROb2RlOjpzdHJlYW1U
byhTb3VyY2UKIAogdm9pZCBQb3N0Zml4RG90Tm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtICZz
KSBjb25zdAogewotICBzIDw8IG1fYmFzZSA8PCAiLiIgPDwgbV9pZGVudDsKKyAgcyA8PCBTb3Vy
Y2VTdHJlYW06OkRvdEV4cHIgPDwgbV9iYXNlIDw8ICIuIiA8PCBtX2lkZW50OwogICBpZiAobV9v
cGVyID09IE9wUGx1c1BsdXMpCiAgICAgcyA8PCAiKysiOwogICBlbHNlCkBAIC0zMDMsNyArMzMz
LDcgQEAgdm9pZCBEZWxldGVCcmFja2V0Tm9kZTo6c3RyZWFtVG8oU291cmNlUwogCiB2b2lkIERl
bGV0ZURvdE5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKIHsKLSAgcyA8PCAi
ZGVsZXRlICIgPDwgbV9iYXNlIDw8ICIuIiA8PCBtX2lkZW50OworICBzIDw8ICJkZWxldGUgIiA8
PCBTb3VyY2VTdHJlYW06OkRvdEV4cHIgPDwgbV9iYXNlIDw8ICIuIiA8PCBtX2lkZW50OwogfQog
CiB2b2lkIERlbGV0ZVZhbHVlTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtICZzKSBjb25zdApA
QCAtMzUwLDcgKzM4MCw3IEBAIHZvaWQgUHJlZml4RG90Tm9kZTo6c3RyZWFtVG8oU291cmNlU3Ry
ZWEKICAgICBzIDw8ICIrKyI7CiAgIGVsc2UKICAgICBzIDw8ICItLSI7Ci0gIHMgPDwgbV9iYXNl
IDw8ICIuIiA8PCBtX2lkZW50OworICBzIDw8IFNvdXJjZVN0cmVhbTo6RG90RXhwciA8PCBtX2Jh
c2UgPDwgIi4iIDw8IG1faWRlbnQ7CiB9CiAKIHZvaWQgUHJlZml4RXJyb3JOb2RlOjpzdHJlYW1U
byhTb3VyY2VTdHJlYW0mIHMpIGNvbnN0CkBAIC01MzgsNyArNTY4LDcgQEAgdm9pZCBBc3NpZ25C
cmFja2V0Tm9kZTo6c3RyZWFtVG8oU291cmNlUwogCiB2b2lkIEFzc2lnbkRvdE5vZGU6OnN0cmVh
bVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKIHsKLSAgcyA8PCBtX2Jhc2UgPDwgIi4iIDw8IG1f
aWRlbnQ7CisgIHMgPDwgU291cmNlU3RyZWFtOjpEb3RFeHByIDw8IG1fYmFzZSA8PCAiLiIgPDwg
bV9pZGVudDsKICAgc3RyZWFtQXNzaWdubWVudE9wZXJhdG9yVG8ocywgbV9vcGVyKTsKICAgcyA8
PCBtX3JpZ2h0OwogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjEzMzIpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwNy0wNS0wOSAgS2lt
bW8gS2lubnVuZW4gIDxraW1tb2tAaWtpLmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIC0gVGVzdHMgZm9yIGZpeCB0byBodHRwOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3OCAoSW5jb3JyZWN0IGRlY29tcGlsYXRpb24KKyAg
ICAgICAgICBmb3IgIjQuLngiKQorCisgICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvdG9TdHJp
bmctbnVtYmVyLWRvdC1leHByLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3RvU3RyaW5n
LW51bWJlci1kb3QtZXhwci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMv
dG9TdHJpbmctbnVtYmVyLWRvdC1leHByLmh0bWw6IEFkZGVkLgorCiAyMDA3LTA1LTA5ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBtanMuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLW51bWJlci1kb3QtZXhwci1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1udW1iZXIt
ZG90LWV4cHItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9q
cy90b1N0cmluZy1udW1iZXItZG90LWV4cHItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE1IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdG9TdHJpbmcoKSByb3VuZC10cmlw
IG9uIGEgZnVuY3Rpb24gdGhhdCBoYXMgYSBleHByZXNzaW9uIG9mIGZvcm0gNC4ueCBkb2VzIG5v
dCBsb3NlIGl0cyBtZWFuaW5nLiBUaGUgZXhwcmVzc2lvbiBhY2Nlc3NlcyB0aGUgcHJvcGVydHkg
J3gnIGZyb20gbnVtYmVyICc0Jy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgdWV1ZjEgaXMgdWYxCitQQVNTIHVldWYyIGlzIHVmMgorUEFTUyB1ZXVmMyBpcyB1ZjMKK1BB
U1MgdWV1ZjQgaXMgdWY0CitQQVNTIHVldWY1IGlzIHVmNQorUEFTUyB1ZXVmNiBpcyB1ZjYKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLW51bWJlci1kb3QtZXhwci5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctbnVtYmVyLWRvdC1leHByLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLW51bWJlci1kb3Qt
ZXhwci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RvU3RyaW5nLW51bWJlci1kb3QtZXhwci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy90b1N0
cmluZy1udW1iZXItZG90LWV4cHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZXNvdXJjZXMvdG9TdHJpbmctbnVtYmVyLWRvdC1leHByLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvdG9TdHJpbmctbnVtYmVyLWRvdC1leHByLmpz
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACitkZXNjcmlwdGlvbigKKyJUaGlzIHRlc3Qg
Y2hlY2tzIHRoYXQgdG9TdHJpbmcoKSByb3VuZC10cmlwIG9uIGEgZnVuY3Rpb24gdGhhdCBoYXMg
YSBleHByZXNzaW9uIG9mIGZvcm0gNC4ueCBkb2VzIG5vdCBsb3NlIGl0cyBtZWFuaW5nLiIKKysg
IiBUaGUgZXhwcmVzc2lvbiBhY2Nlc3NlcyB0aGUgcHJvcGVydHkgJ3gnIGZyb20gbnVtYmVyICc0
Jy4iCispOworCitmdW5jdGlvbiBmMSgpIHsKKyAgICByZXR1cm4gNC4ueDsKK30KKworZnVuY3Rp
b24gZjIoKSB7CisgICAgcmV0dXJuIDRlMjAueDsKK30KKworZnVuY3Rpb24gZjMoKSB7CisgICAg
cmV0dXJuIDQuMC54OworfQorCitmdW5jdGlvbiBmNCgpIHsKKyAgICByZXR1cm4gNC5beF07Cit9
CisKK2Z1bmN0aW9uIGY1KCkgeworICAgIHJldHVybiA0LigpOworfQorCitmdW5jdGlvbiBmNigp
IHsKKyAgICByZXR1cm4gNC4uZigpOworfQorCisKKworCit1bmV2YWxmID0gZnVuY3Rpb24oeCkg
eyByZXR1cm4gJygnICsgeC50b1N0cmluZygpICsgJyknOyB9CisKK3RyeSB7CisgICAgdWYxID0g
dW5ldmFsZihmMSk7CisgICAgdWV1ZjEgPSB1bmV2YWxmKGV2YWwodW5ldmFsZihmMSkpKTsKK30g
IGNhdGNoKGUpIHt9OwordHJ5IHsKKyAgICB1ZjIgPSB1bmV2YWxmKGYyKTsKKyAgICB1ZXVmMiA9
IHVuZXZhbGYoZXZhbCh1bmV2YWxmKGYyKSkpOworfSBjYXRjaChlKSB7fTsKK3RyeSB7CisgICAg
dWYzID0gdW5ldmFsZihmMyk7CisgICAgdWV1ZjMgPSB1bmV2YWxmKGV2YWwodW5ldmFsZihmMykp
KTsKK30gY2F0Y2goZSkge307Cit0cnkgeworICAgIHVmNCA9IHVuZXZhbGYoZjQpOworICAgIHVl
dWY0ID0gdW5ldmFsZihldmFsKHVuZXZhbGYoZjQpKSk7Cit9IGNhdGNoKGUpIHt9OwordHJ5IHsK
KyAgICB1ZjUgPSB1bmV2YWxmKGY1KTsKKyAgICB1ZXVmNSA9IHVuZXZhbGYoZXZhbCh1bmV2YWxm
KGY1KSkpOworfSBjYXRjaChlKSB7fTsKK3RyeSB7CisgICAgdWY2ID0gdW5ldmFsZihmNik7Cisg
ICAgdWV1ZjYgPSB1bmV2YWxmKGV2YWwodW5ldmFsZihmNikpKTsKK30gY2F0Y2goZSkge307CisK
K3Nob3VsZEJlKCJ1ZXVmMSIsICJ1ZjEiKTsKK3Nob3VsZEJlKCJ1ZXVmMiIsICJ1ZjIiKTsKK3No
b3VsZEJlKCJ1ZXVmMyIsICJ1ZjMiKTsKK3Nob3VsZEJlKCJ1ZXVmNCIsICJ1ZjQiKTsKK3Nob3Vs
ZEJlKCJ1ZXVmNSIsICJ1ZjUiKTsKK3Nob3VsZEJlKCJ1ZXVmNiIsICJ1ZjYiKTsKKworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="5891"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14489</attachid>
            <date>2007-05-11 07:02:00 -0700</date>
            <delta_ts>2007-05-11 08:13:10 -0700</delta_ts>
            <desc>Second try, address the comments</desc>
            <filename>toString-number-dot-expr-2.diff</filename>
            <type>text/plain</type>
            <size>8975</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzkyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMDctMDUtMTEgIEtpbW1vIEtp
bm51bmVuICA8a2ltbW9rQGlraS5maT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAtIEdyb3VwIG51bWJlcnMgaW4gZG90dGVkIGV4cHJlc3Npb25zIGlu
IHRvU3RyaW5nKCkgb3V0cHV0LCBzbyB3ZQorICAgICAgICAgIGF2b2lkIHRoZSA0LnggY29uc3Ry
dWN0cyAgd2hlbiB0aGUgb3JpZ2luYWwgaW5wdXQgaXMgNC4ueC4KKyAgICAgICAgICA0Li54IG1l
YW5zIHRoZSBzYW1lIGFzIDQuIC54IG9yICg0KS54IG9yIE51bWJlcig0KS54CisgICAgICAgIC0g
Rml4ZXMgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NzggKEluY29y
cmVjdAorICAgICAgICAgIGRlY29tcGlsYXRpb24gZm9yICI0Li54IikKKworICAgICAgICAqIGtq
cy9ub2RlczJzdHJpbmcuY3BwOgorICAgICAgICAoS0pTOjpTb3VyY2VTdHJlYW06Oik6CisgICAg
ICAgIEFkZCBib29sZWFuIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBpZiBuZXh0IGl0ZW0gaXMgYSBu
dW1iZXIsIGl0IHNob3VsZCBiZSBncm91cGVkLgorICAgICAgICBBZGQgbmV3IGZvcm1hdGluZyBl
bnVtIHdoaWNoIHR1cm5zIG9uIHRoZSBib29sZWFuIGZsYWcuCisgICAgICAgIChLSlM6OlNvdXJj
ZVN0cmVhbTo6U291cmNlU3RyZWFtKTogQWRkZWQuIEluaXRpYWxpemUgdGhlIGZsYWcuCisgICAg
ICAgIChTb3VyY2VTdHJlYW06Om9wZXJhdG9yPDwpOiBBZGRlZC4gTmV3IG92ZXJsb2FkZWQgb3Bl
cmF0b3Igd2l0aCBkb3VibGUgdmFsdWUgYXMgcGFyYW1ldGVyLgorICAgICAgICAoTnVtYmVyTm9k
ZTo6c3RyZWFtVG8pOiBVc2UgdGhlIGRvdWJsZSBvcGVyYXRvcgorICAgICAgICAoQXJyYXlOb2Rl
OjpzdHJlYW1Ubyk6CisgICAgICAgIChEb3RBY2Nlc3Nvck5vZGU6OnN0cmVhbVRvKToKKyAgICAg
ICAgKEZ1bmN0aW9uQ2FsbERvdE5vZGU6OnN0cmVhbVRvKToKKyAgICAgICAgKEZ1bmN0aW9uQ2Fs
bFBhcmVuRG90Tm9kZTo6c3RyZWFtVG8pOgorICAgICAgICAoUG9zdGZpeERvdE5vZGU6OnN0cmVh
bVRvKToKKyAgICAgICAgKERlbGV0ZURvdE5vZGU6OnN0cmVhbVRvKToKKyAgICAgICAgKFByZWZp
eERvdE5vZGU6OnN0cmVhbVRvKToKKyAgICAgICAgKEFzc2lnbkRvdE5vZGU6OnN0cmVhbVRvKTog
VXNlIHRoZSBuZXcgZm9ybWF0aW5nIGVudW0gdG8gdHVybiBvbiB0aGUgZ3JvdXBpbmcgZmxhZy4K
KwogMjAwNy0wNS0xMCAgTGFycyBLbm9sbCA8bGFyc0B0cm9sbHRlY2guY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFphY2sKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCShy
ZXZpc2lvbiAyMTM5MikKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSwyMCArMzEsMjMgQEAgbmFtZXNwYWNlIEtKUyB7CiAgIGNsYXNz
IFNvdXJjZVN0cmVhbSB7CiAgIHB1YmxpYzoKICAgICBlbnVtIEZvcm1hdCB7Ci0gICAgICBFbmRs
LCBJbmRlbnQsIFVuaW5kZW50CisgICAgICBFbmRsLCBJbmRlbnQsIFVuaW5kZW50LCBEb3RFeHBy
CiAgICAgfTsKLQorICAgIFNvdXJjZVN0cmVhbSgpIDogbV9ncm91cElmTnVtYmVyKGZhbHNlKSB7
fQogICAgIFVTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBzdHI7IH0KICAgICBTb3Vy
Y2VTdHJlYW0mIG9wZXJhdG9yPDwoY29uc3QgSWRlbnRpZmllciAmKTsKICAgICBTb3VyY2VTdHJl
YW0mIG9wZXJhdG9yPDwoY29uc3QgVVN0cmluZyAmKTsKICAgICBTb3VyY2VTdHJlYW0mIG9wZXJh
dG9yPDwoY29uc3QgY2hhciAqKTsKKyAgICBTb3VyY2VTdHJlYW0mIG9wZXJhdG9yPDwoZG91Ymxl
KTsKICAgICBTb3VyY2VTdHJlYW0mIG9wZXJhdG9yPDwoY2hhcik7CiAgICAgU291cmNlU3RyZWFt
JiBvcGVyYXRvcjw8KEZvcm1hdCBmKTsKICAgICBTb3VyY2VTdHJlYW0mIG9wZXJhdG9yPDwoY29u
c3QgTm9kZSAqKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gU291cmNlU3RyZWFtJiBvcGVy
YXRvcjw8KFJlZlB0cjxUPiBuKSB7IHJldHVybiB0aGlzLT5vcGVyYXRvcjw8KG4uZ2V0KCkpOyB9
CisKICAgcHJpdmF0ZToKICAgICBVU3RyaW5nIHN0cjsgLyogVE9ETzogYnVmZmVyICovCiAgICAg
VVN0cmluZyBpbmQ7CisgICAgYm9vbCBtX2dyb3VwSWZOdW1iZXI7CiAgIH07CiB9CiAKQEAgLTUy
LDYgKzU1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEtKUzsKIAogU291cmNlU3RyZWFtJiBTb3VyY2VT
dHJlYW06Om9wZXJhdG9yPDwoY2hhciBjKQogeworICBtX2dyb3VwSWZOdW1iZXIgPSBmYWxzZTsK
ICAgVUNoYXIgY2goYyk7CiAgIHN0ciArPSBVU3RyaW5nKCZjaCwgMSk7CiAgIHJldHVybiAqdGhp
czsKQEAgLTU5LDE4ICs2MywzNSBAQCBTb3VyY2VTdHJlYW0mIFNvdXJjZVN0cmVhbTo6b3BlcmF0
b3I8PChjCiAKIFNvdXJjZVN0cmVhbSYgU291cmNlU3RyZWFtOjpvcGVyYXRvcjw8KGNvbnN0IGNo
YXIgKnMpCiB7CisgIG1fZ3JvdXBJZk51bWJlciA9IGZhbHNlOwogICBzdHIgKz0gVVN0cmluZyhz
KTsKICAgcmV0dXJuICp0aGlzOwogfQogCitTb3VyY2VTdHJlYW0mIFNvdXJjZVN0cmVhbTo6b3Bl
cmF0b3I8PChkb3VibGUgdmFsdWUpCit7CisgIGlmIChtX2dyb3VwSWZOdW1iZXIpCisgICAgc3Ry
LmFwcGVuZCgiKCIpOworCisgIHN0ciArPSBVU3RyaW5nOjpmcm9tKHZhbHVlKTsKKworICBpZiAo
bV9ncm91cElmTnVtYmVyKQorICAgIHN0ci5hcHBlbmQoIikiKTsKKworICBtX2dyb3VwSWZOdW1i
ZXIgPSBmYWxzZTsKKyAgcmV0dXJuICp0aGlzOworfQorCiBTb3VyY2VTdHJlYW0mIFNvdXJjZVN0
cmVhbTo6b3BlcmF0b3I8PChjb25zdCBVU3RyaW5nICZzKQogeworICBtX2dyb3VwSWZOdW1iZXIg
PSBmYWxzZTsKICAgc3RyICs9IHM7CiAgIHJldHVybiAqdGhpczsKIH0KIAogU291cmNlU3RyZWFt
JiBTb3VyY2VTdHJlYW06Om9wZXJhdG9yPDwoY29uc3QgSWRlbnRpZmllciAmcykKIHsKKyAgbV9n
cm91cElmTnVtYmVyID0gZmFsc2U7CiAgIHN0ciArPSBzLnVzdHJpbmcoKTsKICAgcmV0dXJuICp0
aGlzOwogfQpAQCAtNzksMTEgKzEwMCwxMyBAQCBTb3VyY2VTdHJlYW0mIFNvdXJjZVN0cmVhbTo6
b3BlcmF0b3I8PChjCiB7CiAgIGlmIChuKQogICAgIG4tPnN0cmVhbVRvKCp0aGlzKTsKKyAgbV9n
cm91cElmTnVtYmVyID0gZmFsc2U7CiAgIHJldHVybiAqdGhpczsKIH0KIAogU291cmNlU3RyZWFt
JiBTb3VyY2VTdHJlYW06Om9wZXJhdG9yPDwoRm9ybWF0IGYpCiB7CisgIG1fZ3JvdXBJZk51bWJl
ciA9IGZhbHNlOwogICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIEVuZGw6CiAgICAgICBzdHIgKz0g
IlxuIiArIGluZDsKQEAgLTk0LDYgKzExNyw5IEBAIFNvdXJjZVN0cmVhbSYgU291cmNlU3RyZWFt
OjpvcGVyYXRvcjw8KEYKICAgICBjYXNlIFVuaW5kZW50OgogICAgICAgaW5kID0gaW5kLnN1YnN0
cigwLCBpbmQuc2l6ZSgpIC0gMik7CiAgICAgICBicmVhazsKKyAgY2FzZSBEb3RFeHByOgorICAg
ICAgbV9ncm91cElmTnVtYmVyID0gdHJ1ZTsKKyAgICAgIGJyZWFrOwogICB9CiAKICAgcmV0dXJu
ICp0aGlzOwpAQCAtMTE0LDcgKzE0MCw3IEBAIHZvaWQgQm9vbGVhbk5vZGU6OnN0cmVhbVRvKFNv
dXJjZVN0cmVhbSAKICAgcyA8PCAodmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIH0KIAotdm9p
ZCBOdW1iZXJOb2RlOjpzdHJlYW1UbyhTb3VyY2VTdHJlYW0gJnMpIGNvbnN0IHsgcyA8PCBVU3Ry
aW5nOjpmcm9tKHZhbHVlKTsgfQordm9pZCBOdW1iZXJOb2RlOjpzdHJlYW1UbyhTb3VyY2VTdHJl
YW0gJnMpIGNvbnN0IHsgcyA8PCB2YWx1ZTsgfQogCiB2b2lkIFN0cmluZ05vZGU6OnN0cmVhbVRv
KFNvdXJjZVN0cmVhbSAmcykgY29uc3QKIHsKQEAgLTIwNSw3ICsyMzEsNyBAQCB2b2lkIEJyYWNr
ZXRBY2Nlc3Nvck5vZGU6OnN0cmVhbVRvKFNvdXJjCiAKIHZvaWQgRG90QWNjZXNzb3JOb2RlOjpz
dHJlYW1UbyhTb3VyY2VTdHJlYW0gJnMpIGNvbnN0CiB7Ci0gIHMgPDwgZXhwciA8PCAiLiIgPDwg
aWRlbnQ7CisgIHMgPDwgU291cmNlU3RyZWFtOjpEb3RFeHByIDw8IGV4cHIgPDwgIi4iIDw8IGlk
ZW50OwogfQogCiB2b2lkIEFyZ3VtZW50TGlzdE5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAm
cykgY29uc3QKQEAgLTI0NywxMiArMjczLDEyIEBAIHZvaWQgRnVuY3Rpb25DYWxsUGFyZW5CcmFj
a2V0Tm9kZTo6c3RyZWEKIAogdm9pZCBGdW5jdGlvbkNhbGxEb3ROb2RlOjpzdHJlYW1UbyhTb3Vy
Y2VTdHJlYW0gJnMpIGNvbnN0CiB7Ci0gIHMgPDwgYmFzZSA8PCAiLiIgPDwgaWRlbnQgPDwgYXJn
czsKKyAgcyA8PCBTb3VyY2VTdHJlYW06OkRvdEV4cHIgPDwgYmFzZSA8PCAiLiIgPDwgaWRlbnQg
PDwgYXJnczsKIH0KIAogdm9pZCBGdW5jdGlvbkNhbGxQYXJlbkRvdE5vZGU6OnN0cmVhbVRvKFNv
dXJjZVN0cmVhbSAmcykgY29uc3QKIHsKLSAgcyA8PCAiKCIgPDwgYmFzZSA8PCAiLiIgPDwgaWRl
bnQgPDwgIikiIDw8IGFyZ3M7CisgIHMgPDwgIigiIDw8IFNvdXJjZVN0cmVhbTo6RG90RXhwciA8
PCBiYXNlIDw8ICIuIiA8PCBpZGVudCA8PCAiKSIgPDwgYXJnczsKIH0KIAogdm9pZCBQb3N0Zml4
UmVzb2x2ZU5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKQEAgLTI3NSw3ICsz
MDEsNyBAQCB2b2lkIFBvc3RmaXhCcmFja2V0Tm9kZTo6c3RyZWFtVG8oU291cmNlCiAKIHZvaWQg
UG9zdGZpeERvdE5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKIHsKLSAgcyA8
PCBtX2Jhc2UgPDwgIi4iIDw8IG1faWRlbnQ7CisgIHMgPDwgU291cmNlU3RyZWFtOjpEb3RFeHBy
IDw8IG1fYmFzZSA8PCAiLiIgPDwgbV9pZGVudDsKICAgaWYgKG1fb3BlciA9PSBPcFBsdXNQbHVz
KQogICAgIHMgPDwgIisrIjsKICAgZWxzZQpAQCAtMzAzLDcgKzMyOSw3IEBAIHZvaWQgRGVsZXRl
QnJhY2tldE5vZGU6OnN0cmVhbVRvKFNvdXJjZVMKIAogdm9pZCBEZWxldGVEb3ROb2RlOjpzdHJl
YW1UbyhTb3VyY2VTdHJlYW0gJnMpIGNvbnN0CiB7Ci0gIHMgPDwgImRlbGV0ZSAiIDw8IG1fYmFz
ZSA8PCAiLiIgPDwgbV9pZGVudDsKKyAgcyA8PCAiZGVsZXRlICIgPDwgU291cmNlU3RyZWFtOjpE
b3RFeHByIDw8IG1fYmFzZSA8PCAiLiIgPDwgbV9pZGVudDsKIH0KIAogdm9pZCBEZWxldGVWYWx1
ZU5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKQEAgLTM1MCw3ICszNzYsNyBA
QCB2b2lkIFByZWZpeERvdE5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhCiAgICAgcyA8PCAiKysi
OwogICBlbHNlCiAgICAgcyA8PCAiLS0iOwotICBzIDw8IG1fYmFzZSA8PCAiLiIgPDwgbV9pZGVu
dDsKKyAgcyA8PCBTb3VyY2VTdHJlYW06OkRvdEV4cHIgPDwgbV9iYXNlIDw8ICIuIiA8PCBtX2lk
ZW50OwogfQogCiB2b2lkIFByZWZpeEVycm9yTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtJiBz
KSBjb25zdApAQCAtNTM4LDcgKzU2NCw3IEBAIHZvaWQgQXNzaWduQnJhY2tldE5vZGU6OnN0cmVh
bVRvKFNvdXJjZVMKIAogdm9pZCBBc3NpZ25Eb3ROb2RlOjpzdHJlYW1UbyhTb3VyY2VTdHJlYW0g
JnMpIGNvbnN0CiB7Ci0gIHMgPDwgbV9iYXNlIDw8ICIuIiA8PCBtX2lkZW50OworICBzIDw8IFNv
dXJjZVN0cmVhbTo6RG90RXhwciA8PCBtX2Jhc2UgPDwgIi4iIDw8IG1faWRlbnQ7CiAgIHN0cmVh
bUFzc2lnbm1lbnRPcGVyYXRvclRvKHMsIG1fb3Blcik7CiAgIHMgPDwgbV9yaWdodDsKIH0KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctbnVtYmVyLWRvdC1leHByLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLW51bWJlci1k
b3QtZXhwci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pz
L3RvU3RyaW5nLW51bWJlci1kb3QtZXhwci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0b1N0cmluZygpIHJvdW5kLXRyaXAg
b24gYSBmdW5jdGlvbiB0aGF0IGhhcyBhIGV4cHJlc3Npb24gb2YgZm9ybSA0Li54IGRvZXMgbm90
IGxvc2UgaXRzIG1lYW5pbmcuIFRoZSBleHByZXNzaW9uIGFjY2Vzc2VzIHRoZSBwcm9wZXJ0eSAn
eCcgZnJvbSBudW1iZXIgJzQnLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB1ZXVmMSBpcyB1ZjEKK1BBU1MgdWV1ZjIgaXMgdWYyCitQQVNTIHVldWYzIGlzIHVmMworUEFT
UyB1ZXVmNCBpcyB1ZjQKK1BBU1MgdWV1ZjUgaXMgdWY1CitQQVNTIHVldWY2IGlzIHVmNgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctbnVtYmVyLWRvdC1leHByLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1udW1iZXItZG90LWV4cHIuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctbnVtYmVyLWRvdC1l
eHByLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdG9TdHJpbmctbnVtYmVyLWRvdC1leHByLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL3RvU3Ry
aW5nLW51bWJlci1kb3QtZXhwci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pz
L3Jlc291cmNlcy90b1N0cmluZy1udW1iZXItZG90LWV4cHIuanMJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy90b1N0cmluZy1udW1iZXItZG90LWV4cHIuanMJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKK2Rlc2NyaXB0aW9uKAorIlRoaXMgdGVzdCBj
aGVja3MgdGhhdCB0b1N0cmluZygpIHJvdW5kLXRyaXAgb24gYSBmdW5jdGlvbiB0aGF0IGhhcyBh
IGV4cHJlc3Npb24gb2YgZm9ybSA0Li54IGRvZXMgbm90IGxvc2UgaXRzIG1lYW5pbmcuIgorKyAi
IFRoZSBleHByZXNzaW9uIGFjY2Vzc2VzIHRoZSBwcm9wZXJ0eSAneCcgZnJvbSBudW1iZXIgJzQn
LiIKKyk7CisKK2Z1bmN0aW9uIGYxKCkgeworICAgIHJldHVybiA0Li54OworfQorCitmdW5jdGlv
biBmMigpIHsKKyAgICByZXR1cm4gNGUyMC54OworfQorCitmdW5jdGlvbiBmMygpIHsKKyAgICBy
ZXR1cm4gNC4wLng7Cit9CisKK2Z1bmN0aW9uIGY0KCkgeworICAgIHJldHVybiA0Llt4XTsKK30K
KworZnVuY3Rpb24gZjUoKSB7CisgICAgcmV0dXJuIDQuKCk7Cit9CisKK2Z1bmN0aW9uIGY2KCkg
eworICAgIHJldHVybiA0Li5mKCk7Cit9CisKKworCisKK3VuZXZhbGYgPSBmdW5jdGlvbih4KSB7
IHJldHVybiAnKCcgKyB4LnRvU3RyaW5nKCkgKyAnKSc7IH0KKwordHJ5IHsKKyAgICB1ZjEgPSB1
bmV2YWxmKGYxKTsKKyAgICB1ZXVmMSA9IHVuZXZhbGYoZXZhbCh1bmV2YWxmKGYxKSkpOworfSAg
Y2F0Y2goZSkge307Cit0cnkgeworICAgIHVmMiA9IHVuZXZhbGYoZjIpOworICAgIHVldWYyID0g
dW5ldmFsZihldmFsKHVuZXZhbGYoZjIpKSk7Cit9IGNhdGNoKGUpIHt9OwordHJ5IHsKKyAgICB1
ZjMgPSB1bmV2YWxmKGYzKTsKKyAgICB1ZXVmMyA9IHVuZXZhbGYoZXZhbCh1bmV2YWxmKGYzKSkp
OworfSBjYXRjaChlKSB7fTsKK3RyeSB7CisgICAgdWY0ID0gdW5ldmFsZihmNCk7CisgICAgdWV1
ZjQgPSB1bmV2YWxmKGV2YWwodW5ldmFsZihmNCkpKTsKK30gY2F0Y2goZSkge307Cit0cnkgewor
ICAgIHVmNSA9IHVuZXZhbGYoZjUpOworICAgIHVldWY1ID0gdW5ldmFsZihldmFsKHVuZXZhbGYo
ZjUpKSk7Cit9IGNhdGNoKGUpIHt9OwordHJ5IHsKKyAgICB1ZjYgPSB1bmV2YWxmKGY2KTsKKyAg
ICB1ZXVmNiA9IHVuZXZhbGYoZXZhbCh1bmV2YWxmKGY2KSkpOworfSBjYXRjaChlKSB7fTsKKwor
c2hvdWxkQmUoInVldWYxIiwgInVmMSIpOworc2hvdWxkQmUoInVldWYyIiwgInVmMiIpOworc2hv
dWxkQmUoInVldWYzIiwgInVmMyIpOworc2hvdWxkQmUoInVldWY0IiwgInVmNCIpOworc2hvdWxk
QmUoInVldWY1IiwgInVmNSIpOworc2hvdWxkQmUoInVldWY2IiwgInVmNiIpOworCisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="5921"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14543</attachid>
            <date>2007-05-14 06:35:00 -0700</date>
            <delta_ts>2007-05-14 06:47:25 -0700</delta_ts>
            <desc>Improved testcases </desc>
            <filename>toString-number-dot-expr-testcases.diff</filename>
            <type>text/plain</type>
            <size>7032</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxNDUwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDctMDUtMTQgIEtpbW1vIEtpbm51bmVuICA8
c2V0IEVNQUlMX0FERFJFU1MgZW52aXJvbm1lbnQgdmFyaWFibGU+CisKKyAgICAgICAgVGVzdHMg
Zm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODc4CisgICAgICAg
IEJ1ZyAxMDg3ODogSW5jb3JyZWN0IGRlY29tcGlsYXRpb24gZm9yICI0Li54IgorCisJVGVzdCBh
bGwgdGhlIGRpZmZlcmVudCBmb3JtcyBvZiBleHByZXNzaW9ucyB0aGF0IGNhbiBjb250YWluCisJ
YSBkb3QgZm9sbG93aW5nIGEgbnVtYmVyIGxpdGVyYWwuCisJSW5jbHVkZXMgbmV3IHRlc3RzIGZv
ciBQcmVmaXhEb3ROb2RlLCBQb3N0Zml4RG90Tm9kZSwgRGVsZXRlRG90Tm9kZSwKKwlBc3NpZ25E
b3ROb2RlIGFuZCBGdW5jdGlvbkNhbGxQYXJlbkRvdE5vZGUuCisKKyAgICAgICAgKiBmYXN0L2pz
L3Jlc291cmNlcy90b1N0cmluZy1udW1iZXItZG90LWV4cHIuanM6CisgICAgICAgICogZmFzdC9q
cy90b1N0cmluZy1udW1iZXItZG90LWV4cHItZXhwZWN0ZWQudHh0OiBVcGRhdGVkLgorCiAyMDA3
LTA1LTEzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctbnVt
YmVyLWRvdC1leHByLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL3RvU3RyaW5nLW51bWJlci1kb3QtZXhwci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNDQ5
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1udW1iZXItZG90LWV4cHItZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDEyICszLDExIEBAIFRoaXMgdGVzdCBjaGVja3Mg
dGhhdCB0b1N0cmluZygpIHJvdW5kLXQKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1Q
QVNTIHVldWYxIGlzIHVmMQotUEFTUyB1ZXVmMiBpcyB1ZjIKLVBBU1MgdWV1ZjMgaXMgdWYzCi1Q
QVNTIHVldWY0IGlzIHVmNAotUEFTUyB1ZXVmNSBpcyB1ZjUKLVBBU1MgdWV1ZjYgaXMgdWY2CitQ
QVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKGYxKSkpIGlzIHVuZXZhbGYoZjEpCitQQVNTIHVuZXZh
bGYoZXZhbCh1bmV2YWxmKGYyKSkpIGlzIHVuZXZhbGYoZjIpCitQQVNTIHVuZXZhbGYoZXZhbCh1
bmV2YWxmKGYzKSkpIGlzIHVuZXZhbGYoZjMpCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKGY0
KSkpIGlzIHVuZXZhbGYoZjQpCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKGY1KSkpIGlzIHVu
ZXZhbGYoZjUpCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL3RvU3RyaW5nLW51bWJlci1k
b3QtZXhwci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy90
b1N0cmluZy1udW1iZXItZG90LWV4cHIuanMJKHJldmlzaW9uIDIxNDQ5KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9qcy9yZXNvdXJjZXMvdG9TdHJpbmctbnVtYmVyLWRvdC1leHByLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDY2ICszLDE5MSBAQCBkZXNjcmlwdGlvbigKICsgIiBUaGUgZXhwcmVzc2lv
biBhY2Nlc3NlcyB0aGUgcHJvcGVydHkgJ3gnIGZyb20gbnVtYmVyICc0Jy4iCiApOwogCi1mdW5j
dGlvbiBmMSgpIHsKLSAgICByZXR1cm4gNC4ueDsKLX0KLQotZnVuY3Rpb24gZjIoKSB7Ci0gICAg
cmV0dXJuIDRlMjAueDsKLX0KLQotZnVuY3Rpb24gZjMoKSB7Ci0gICAgcmV0dXJuIDQuMC54Owot
fQotCi1mdW5jdGlvbiBmNCgpIHsKLSAgICByZXR1cm4gNC5beF07Ci19CisvLyBjb25zdHJ1Y3Qg
c2FtZSB0ZXN0LWNhc2UgZm9yIGRpZmZlcmVudCBraW5kcyBvZiBudW1iZXIgbGl0ZXJhbHMuIHRo
ZSBzd2l0Y2ggaXMgdXNlZCB0byBhdm9pZAorLy8gaW5kaXZpZHVhbCByZXR1cm5zIGdldHRpbmcg
b3B0aW1pemVkIGF3YXkgKGlmIHRoZSBpbnRlcnByZXRlciB3b3VsZCBkbyBkZWFkIGNvZGUgZWxp
bWluYXRpb24pCiAKLWZ1bmN0aW9uIGY1KCkgewotICAgIHJldHVybiA0LigpOworLy8gdGVzdGNh
c2UgZm9yIG51bWJlciBsaXRlcmFsIHdpdGggZGVjaW1hbCBwb2ludCwgaS5lICc0LicKK2Z1bmN0
aW9uIGYxKGEpIHsKKyAgICBzd2l0Y2goYSkgeworICAgIGNhc2UgIm1lbWJlciI6CisgICAgICAg
IHJldHVybiA0Li54OworICAgIGNhc2UgImFycmF5Z2V0IjoKKyAgICAgICAgcmV0dXJuIDQuWyJ4
Il07CisgICAgY2FzZSAiY29uc3RyIjoKKyAgICAgICAgcmV0dXJuIDQuKCk7CisgICAgY2FzZSAi
ZnVuY2NhbGwiOgorICAgICAgICByZXR1cm4gNC4uZigpOworICAgIGNhc2UgInBhcmVuZnVuY2Nh
bGwiOgorICAgICAgICByZXR1cm4gKDQuLngpKCk7CisgICAgY2FzZSAiYXNzaWdubWVudCI6Cisg
ICAgICAgIHJldHVybiA0Li54ID0gMzM7CisgICAgY2FzZSAiYXNzaWdubWVudDIiOgorICAgICAg
ICByZXR1cm4gNC4ueCA+Pj49IDE7CisgICAgY2FzZSAicHJlZml4IjoKKyAgICAgICAgcmV0dXJu
ICsrNC4ueDsKKyAgICBjYXNlICJwb3N0Zml4IjoKKyAgICAgICAgcmV0dXJuIDQuLngrKzsKKyAg
IGNhc2UgImRlbGV0ZSI6CisgICAgICAgIGRlbGV0ZSA0Li54OworICAgICAgICByZXR1cm4gNC4u
eDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLy8gJzQuIC4nCitmdW5jdGlvbiBmMihh
KSB7CisgICAgc3dpdGNoKGEpIHsKKyAgICBjYXNlICJtZW1iZXIiOgorICAgICAgICByZXR1cm4g
NC4gLng7CisgICAgY2FzZSAiYXJyYXlnZXQiOgorICAgICAgICByZXR1cm4gNC4gWyJ4Il07Cisg
ICAgY2FzZSAiY29uc3RyIjoKKyAgICAgICAgcmV0dXJuIDQuKCk7CisgICAgY2FzZSAiZnVuY2Nh
bGwiOgorICAgICAgICByZXR1cm4gNC4gLmYoKTsKKyAgICBjYXNlICJwYXJlbmZ1bmNjYWxsIjoK
KyAgICAgICAgcmV0dXJuICg0LiAueCkoKTsKKyAgICBjYXNlICJhc3NpZ25tZW50IjoKKyAgICAg
ICAgcmV0dXJuIDQuIC54ID0gMzM7CisgICAgY2FzZSAiYXNzaWdubWVudDIiOgorICAgICAgICBy
ZXR1cm4gNC4gLnggPj4+PSAxOworICAgIGNhc2UgInByZWZpeCI6CisgICAgICAgIHJldHVybiAr
KzQuIC54OworICAgIGNhc2UgInBvc3RmaXgiOgorICAgICAgICByZXR1cm4gNC4gLngrKzsKKyAg
ICBjYXNlICJkZWxldGUiOgorICAgICAgICBkZWxldGUgNC4gLng7CisgICAgICAgIHJldHVybiA0
LiAueDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLy8gJzRlMjAnCitmdW5jdGlvbiBm
MihhKSB7CisgICAgc3dpdGNoKGEpIHsKKyAgICBjYXNlICJtZW1iZXIiOgorICAgICAgICByZXR1
cm4gNGUyMC54OworICAgIGNhc2UgImFycmF5Z2V0IjoKKyAgICAgICAgcmV0dXJuIDRlMjBbIngi
XTsKKyAgICBjYXNlICJjb25zdHIiOgorICAgICAgICByZXR1cm4gNGUyMCgpOworICAgIGNhc2Ug
ImZ1bmNjYWxsIjoKKyAgICAgICAgcmV0dXJuIDRlMjAuZigpOworICAgIGNhc2UgInBhcmVuZnVu
Y2NhbGwiOgorICAgICAgICByZXR1cm4gKDRlMjAueCkoKTsKKyAgICBjYXNlICJhc3NpZ25tZW50
IjoKKyAgICAgICAgcmV0dXJuIDRlMjAueCA9IDMzOworICAgIGNhc2UgImFzc2lnbm1lbnQyIjoK
KyAgICAgICAgcmV0dXJuIDRlMjAueCA+Pj49IDE7CisgICAgY2FzZSAicHJlZml4IjoKKyAgICAg
ICAgcmV0dXJuICsrNGUyMC54OworICAgIGNhc2UgInBvc3RmaXgiOgorICAgICAgICByZXR1cm4g
NGUyMC54Kys7CisgICAgY2FzZSAiZGVsZXRlIjoKKyAgICAgICAgZGVsZXRlIDRlMjAueDsKKyAg
ICAgICAgcmV0dXJuIDRlMjAueDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLy8gJzQu
MWUtMjAnCitmdW5jdGlvbiBmMyhhKSB7CisgICAgc3dpdGNoKGEpIHsKKyAgICBjYXNlICJtZW1i
ZXIiOgorICAgICAgICByZXR1cm4gNC4xZS0yMC54OworICAgIGNhc2UgImFycmF5Z2V0IjoKKyAg
ICAgICAgcmV0dXJuIDQuMWUtMjBbIngiXTsKKyAgICBjYXNlICJjb25zdHIiOgorICAgICAgICBy
ZXR1cm4gNC4xZS0yMCgpOworICAgIGNhc2UgImZ1bmNjYWxsIjoKKyAgICAgICAgcmV0dXJuIDQu
MWUtMjAuZigpOworICAgIGNhc2UgInBhcmVuZnVuY2NhbGwiOgorICAgICAgICByZXR1cm4gKDQu
MWUtMjAueCkoKTsKKyAgICBjYXNlICJhc3NpZ25tZW50IjoKKyAgICAgICAgcmV0dXJuIDQuMWUt
MjAueCA9IDMzOworICAgIGNhc2UgImFzc2lnbm1lbnQyIjoKKyAgICAgICAgcmV0dXJuIDQuMWUt
MjAueCA+Pj49IDE7CisgICAgY2FzZSAicHJlZml4IjoKKyAgICAgICAgcmV0dXJuICsrNC4xZS0y
MC54OworICAgIGNhc2UgInBvc3RmaXgiOgorICAgICAgICByZXR1cm4gNC4xZS0yMC54Kys7Cisg
ICBjYXNlICJkZWxldGUiOgorICAgICAgICBkZWxldGUgNC4xZS0yMC54OworICAgICAgICByZXR1
cm4gNC4xZS0yMC54OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvLyAnNCcKK2Z1bmN0
aW9uIGY0KGEpIHsKKyAgICBzd2l0Y2goYSkgeworICAgIGNhc2UgIm1lbWJlciI6CisgICAgICAg
IHJldHVybiA0IC54OworICAgIGNhc2UgImFycmF5Z2V0IjoKKyAgICAgICAgcmV0dXJuIDRbIngi
XTsKKyAgICBjYXNlICJjb25zdHIiOgorICAgICAgICByZXR1cm4gNCgpOworICAgIGNhc2UgImZ1
bmNjYWxsIjoKKyAgICAgICAgcmV0dXJuIDQgLmYoKTsKKyAgICBjYXNlICJwYXJlbmZ1bmNjYWxs
IjoKKyAgICAgICAgcmV0dXJuICg0IC54KSgpOworICAgIGNhc2UgImFzc2lnbm1lbnQiOgorICAg
ICAgICByZXR1cm4gNCAueCA9IDMzOworICAgIGNhc2UgImFzc2lnbm1lbnQyIjoKKyAgICAgICAg
cmV0dXJuIDQgLnggPj4+PSAxOworICAgIGNhc2UgInByZWZpeCI6CisgICAgICAgIHJldHVybiAr
KzQgLng7CisgICAgY2FzZSAicG9zdGZpeCI6CisgICAgICAgIHJldHVybiA0IC54Kys7CisgICAg
Y2FzZSAiZGVsZXRlIjoKKyAgICAgICAgZGVsZXRlIDQgLng7CisgICAgICAgIHJldHVybiA0IC54
OworCisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8vICcoNCknCitmdW5jdGlvbiBmNShh
KSB7CisgICAgc3dpdGNoKGEpIHsKKyAgICBjYXNlICJtZW1iZXIiOgorICAgICAgICByZXR1cm4g
KDQpLng7CisgICAgY2FzZSAiYXJyYXlnZXQiOgorICAgICAgICByZXR1cm4gKDQpWyJ4Il07Cisg
ICAgY2FzZSAiY29uc3RyIjoKKyAgICAgICAgcmV0dXJuICg0KSgpOworICAgIGNhc2UgImZ1bmNj
YWxsIjoKKyAgICAgICAgcmV0dXJuICg0KS5mKCk7CisgICAgY2FzZSAicGFyZW5mdW5jY2FsbCI6
CisgICAgICAgIHJldHVybiAoKDQpLngpKCk7CisgICAgY2FzZSAiYXNzaWdubWVudCI6CisgICAg
ICAgIHJldHVybiAoNCkueCA9IDMzOworICAgIGNhc2UgImFzc2lnbm1lbnQyIjoKKyAgICAgICAg
cmV0dXJuICg0KS54ID4+Pj0gMTsKKyAgICBjYXNlICJwcmVmaXgiOgorICAgICAgICByZXR1cm4g
KysoNCkueDsKKyAgICBjYXNlICJwb3N0Zml4IjoKKyAgICAgICAgcmV0dXJuICg0KS54Kys7Cisg
ICAgY2FzZSAiZGVsZXRlIjoKKyAgICAgICAgZGVsZXRlICg0KS54OworICAgICAgICByZXR1cm4g
KDQpLng7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9Cit1bmV2YWxmID0gZnVuY3Rpb24oeCkg
eyByZXR1cm4gJygnICsgeC50b1N0cmluZygpICsgJyknOyB9OworCitmdW5jdGlvbiB0ZXN0VG9T
dHJpbmcoZm4pIAoreworICAgIHNob3VsZEJlKCJ1bmV2YWxmKGV2YWwodW5ldmFsZigiICsgZm4g
KyAiKSkpIiwgInVuZXZhbGYoIiArIGZuICsgIikiKTsKIH0KIAotZnVuY3Rpb24gZjYoKSB7Ci0g
ICAgcmV0dXJuIDQuLmYoKTsKLX0KLQotCi0KLQotdW5ldmFsZiA9IGZ1bmN0aW9uKHgpIHsgcmV0
dXJuICcoJyArIHgudG9TdHJpbmcoKSArICcpJzsgfQotCi10cnkgewotICAgIHVmMSA9IHVuZXZh
bGYoZjEpOwotICAgIHVldWYxID0gdW5ldmFsZihldmFsKHVuZXZhbGYoZjEpKSk7Ci19ICBjYXRj
aChlKSB7fTsKLXRyeSB7Ci0gICAgdWYyID0gdW5ldmFsZihmMik7Ci0gICAgdWV1ZjIgPSB1bmV2
YWxmKGV2YWwodW5ldmFsZihmMikpKTsKLX0gY2F0Y2goZSkge307Ci10cnkgewotICAgIHVmMyA9
IHVuZXZhbGYoZjMpOwotICAgIHVldWYzID0gdW5ldmFsZihldmFsKHVuZXZhbGYoZjMpKSk7Ci19
IGNhdGNoKGUpIHt9OwotdHJ5IHsKLSAgICB1ZjQgPSB1bmV2YWxmKGY0KTsKLSAgICB1ZXVmNCA9
IHVuZXZhbGYoZXZhbCh1bmV2YWxmKGY0KSkpOwotfSBjYXRjaChlKSB7fTsKLXRyeSB7Ci0gICAg
dWY1ID0gdW5ldmFsZihmNSk7Ci0gICAgdWV1ZjUgPSB1bmV2YWxmKGV2YWwodW5ldmFsZihmNSkp
KTsKLX0gY2F0Y2goZSkge307Ci10cnkgewotICAgIHVmNiA9IHVuZXZhbGYoZjYpOwotICAgIHVl
dWY2ID0gdW5ldmFsZihldmFsKHVuZXZhbGYoZjYpKSk7Ci19IGNhdGNoKGUpIHt9OwotCi1zaG91
bGRCZSgidWV1ZjEiLCAidWYxIik7Ci1zaG91bGRCZSgidWV1ZjIiLCAidWYyIik7Ci1zaG91bGRC
ZSgidWV1ZjMiLCAidWYzIik7Ci1zaG91bGRCZSgidWV1ZjQiLCAidWY0Iik7Ci1zaG91bGRCZSgi
dWV1ZjUiLCAidWY1Iik7Ci1zaG91bGRCZSgidWV1ZjYiLCAidWY2Iik7Ci0KK2Zvcih2YXIgaSA9
IDE7IGkgPCA2OyArK2kpCisgICAgdGVzdFRvU3RyaW5nKCJmIiArIGkpOwogCiB2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="5951"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>