<?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>25645</bug_id>
          <alias>CVE-2011-0147</alias>
          <creation_ts>2009-05-08 09:12:18 -0700</creation_ts>
          <short_desc>SVG - numeric overflow for very large elements</short_desc>
          <delta_ts>2011-03-24 10:52:53 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>38684</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>davinci</cc>
    
    <cc>eric</cc>
    
    <cc>oliver</cc>
    
    <cc>rjkroege</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vdanen</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>120427</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-05-08 09:12:18 -0700</bug_when>
    <thetext>If an element has a very big width or height of 1000000000000000000 (on qt more than ~500,000,000,000,000,000) webkit gets a overflow and tell us that width/height is negative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120428</commentid>
    <comment_count>1</comment_count>
      <attachid>30132</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-05-08 09:14:29 -0700</bug_when>
    <thetext>Created attachment 30132
SVG with a big sized rect

A test case for the overflow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176056</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-12-30 14:50:51 -0800</bug_when>
    <thetext>It looks like the biggest number for real values is 2^31 -1 don&apos;t know why we just support 31bit numbers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203284</commentid>
    <comment_count>3</comment_count>
      <attachid>51467</attachid>
    <who name="David Yonge-Mallo">davinci</who>
    <bug_when>2010-03-23 16:45:35 -0700</bug_when>
    <thetext>Created attachment 51467
Patch to use floating point in SVG number parser

I&apos;ve made a little patch and test case for this.  The patch prevents the overflow (positive into negative and negative into positive) at the parser.  This doesn&apos;t solve the problem entirely since the number returned by the parser may now be too big for the later rendering code, but it&apos;s a first step.

This bug appears to be the cause of http://crbug.com/825.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203377</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-03-24 04:44:12 -0700</bug_when>
    <thetext>Hi David,

did you notice the -expected.txt results don&apos;t make much sense? Can you investigate the cause?
123456789 is correct, and afterwards it&apos;s broken...

 5     RenderPath {path} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF]}] [data=&quot;M-1000.00,12345679395506094080.00 L200.00,200.00&quot;]
 6     RenderPath {path} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#00FF00]}] [data=&quot;M600.00,400.00 L1000.00,-98765435164048752640.00&quot;]

CC&apos;ing Darin, who might have more comments here!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203386</commentid>
    <comment_count>5</comment_count>
    <who name="David Yonge-Mallo">davinci</who>
    <bug_when>2010-03-24 05:41:12 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Hi David,
&gt; 
&gt; did you notice the -expected.txt results don&apos;t make much sense? Can you
&gt; investigate the cause?
&gt; 123456789 is correct, and afterwards it&apos;s broken...
&gt; 
&gt;  5     RenderPath {path} at (0,0) size 0x0 [stroke={[type=SOLID]
&gt; [color=#0000FF]}] [data=&quot;M-1000.00,12345679395506094080.00 L200.00,200.00&quot;]
&gt;  6     RenderPath {path} at (0,0) size 0x0 [stroke={[type=SOLID]
&gt; [color=#00FF00]}] [data=&quot;M600.00,400.00 L1000.00,-98765435164048752640.00&quot;]
&gt; 
&gt; CC&apos;ing Darin, who might have more comments here!

The results are like that because of FloatType&apos;s (lack of) precision.  The numbers are 1.234568e+19 and 9.876543e+19.  When these are formatted for printing (using a format string of &quot;%.2f&quot;), that is how they appear.  I checked the output on Mac and Linux, and perhaps surprisingly they are the same.  

If we want to prettify these up, we&apos;ll have to change the dump render tree code, which will involve different changes on Mac and Linux (since the Linux one uses Skia).

On the other hand, we could go to a higher precision representation of floats.  Changing the definition of FloatType, however, will have repercussions beyond just this bug.  The question is then whether around 7 decimal digits of precision (float) is enough, and if switching to double (around 16 digits) is worth it.  It&apos;s probable that we will rarely even need 7 significant digits on numbers sufficiently large that precision becomes a problem.  But that&apos;s a separate (though related) bug from overflow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203388</commentid>
    <comment_count>6</comment_count>
    <who name="David Yonge-Mallo">davinci</who>
    <bug_when>2010-03-24 05:46:24 -0700</bug_when>
    <thetext>By the way, the bug can be &quot;solved&quot; entirely by clamping the output from the parser to std::limits::max()-1 and std::limits::min()+1.  With the above suggested patch, the renderer will fail to display anything because the numbers are too big, but if the clamping hack is put in, it will display something that visually appears to be correct (because the coordinates are so big they are effectively the same from the view port).  This &quot;fix&quot; is of course a bad idea as transforms may later push the coordinates beyond the limits of integer storage again.  However, you may want to put such code in for debugging purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203391</commentid>
    <comment_count>7</comment_count>
    <who name="David Yonge-Mallo">davinci</who>
    <bug_when>2010-03-24 05:52:13 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I checked the output on Mac and Linux, and perhaps surprisingly they are 
&gt; the same.  

The reason I chose 123... and 987... is because they&apos;re easy to spot while debugging.  When I noticed the output was different than the input, I thought about using other numbers, but any number large enough to cause integer overflow is also large enough to cause floating point imprecision.  For example, 1000... changes to 999... and so on, and at least with the current choice of numbers the first few digits remain the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203459</commentid>
    <comment_count>8</comment_count>
    <who name="David Yonge-Mallo">davinci</who>
    <bug_when>2010-03-24 10:15:01 -0700</bug_when>
    <thetext>Problems with large number output precision are also discussed here: https://bugs.webkit.org/show_bug.cgi?id=23927</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203474</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-03-24 10:34:07 -0700</bug_when>
    <thetext>There&apos;s also some discussion of large number round-tripping through CSS in bug 20674.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203479</commentid>
    <comment_count>10</comment_count>
      <attachid>51467</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-03-24 10:37:08 -0700</bug_when>
    <thetext>Comment on attachment 51467
Patch to use floating point in SVG number parser



&gt;  template &lt;typename FloatType&gt; static bool _parseNumber(const UChar*&amp; ptr, const UChar* end, FloatType&amp; number, bool skip)
&gt;  {
&gt; -    int integer, exponent;
&gt; -    FloatType decimal, frac;
&gt; +    int exponent;
&gt; +    FloatType integer, decimal, frac;

I&apos;m not sure I agree with this. Why not use &apos;long long&apos; for integer and exponent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203558</commentid>
    <comment_count>11</comment_count>
    <who name="David Yonge-Mallo">davinci</who>
    <bug_when>2010-03-24 13:45:08 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 51467 [details])
&gt; &gt; 
&gt; &gt;  template &lt;typename FloatType&gt; static bool _parseNumber(const UChar*&amp; ptr, const UChar* end, FloatType&amp; number, bool skip)
&gt; &gt;  {
&gt; &gt; -    int integer, exponent;
&gt; &gt; -    FloatType decimal, frac;
&gt; &gt; +    int exponent;
&gt; &gt; +    FloatType integer, decimal, frac;
&gt; 
&gt; I&apos;m not sure I agree with this. Why not use &apos;long long&apos; for integer and
&gt; exponent?

The test case in the patch actually overflows &apos;long long&apos; as well, so it will return the wrong result.

Also, I&apos;m not sure that &apos;long long&apos; for the exponent is realistic (even though we should aim to handle anything).  Even for enormous numbers, the exponent is relatively small (fits into an int).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203562</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-03-24 13:52:18 -0700</bug_when>
    <thetext>I&apos;d argue that dimensions that overflow a long long are not going to be encountered in normal content.
Agreed on the size of exponent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203898</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-25 01:22:25 -0700</bug_when>
    <thetext>I wonder if ConformingHighQualitySVGViewers: http://www.w3.org/TR/SVG11/conform.html#ConformingHighQualitySVGViewers
has any relation to anything here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204082</commentid>
    <comment_count>14</comment_count>
    <who name="David Yonge-Mallo">davinci</who>
    <bug_when>2010-03-25 08:55:04 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I&apos;d argue that dimensions that overflow a long long are not going to be
&gt; encountered in normal content.
&gt; Agreed on the size of exponent.

Nothing is really gained by using long long for the representation of the integer portion of the coordinate.  I think any precision gained in doing so is lost in the subsequent conversion back into FloatType.

(In reply to comment #13)
&gt; I wonder if ConformingHighQualitySVGViewers:
&gt; http://www.w3.org/TR/SVG11/conform.html#ConformingHighQualitySVGViewers
&gt; has any relation to anything here.

The relevant part would be: &quot;Both a Conforming High-Quality Static SVG Viewer and a Conforming High-Quality Dynamic SVG Viewer must support the following additional features: ... At least double-precision floating point computation on coordinate system transformation numerical calculations.&quot;

Does WebKit aim to be a Conforming &quot;High-Quality&quot; SVG Viewer?  If so, then FloatType needs to be double rather than float, which would affect many things other than this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215421</commentid>
    <comment_count>15</comment_count>
      <attachid>53973</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-04-21 11:23:16 -0700</bug_when>
    <thetext>Created attachment 53973
SVG file of tan(), all values in range of int</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215422</commentid>
    <comment_count>16</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-04-21 11:24:41 -0700</bug_when>
    <thetext>Are there any further thoughts on David&apos;s proposed patch? It seems like a reasonable approach, and it would be nice to get a fix for the _parseNumber() function, which is clearly broken at present.

That being said, there are further issues, as it is easy to create a sample SVG file that works with the current parser (and even stays in the range of &apos;int&apos;), but still fails to render in the current release of WebKit under Chrome (see attached).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215424</commentid>
    <comment_count>17</comment_count>
      <attachid>53974</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-04-21 11:26:01 -0700</bug_when>
    <thetext>Created attachment 53974
SVG of tan() function, int&apos;s only

Sorry, here&apos;s the attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215927</commentid>
    <comment_count>18</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-04-22 09:51:01 -0700</bug_when>
    <thetext>Simon, can you recomment given you had concerns about the patch?

Very busy atm, but we should work towards resolving the issues :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216147</commentid>
    <comment_count>19</comment_count>
      <attachid>51467</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-22 16:27:13 -0700</bug_when>
    <thetext>Comment on attachment 51467
Patch to use floating point in SVG number parser

Rejecting patch 51467 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 12715 test cases.
svg/custom/mask-excessive-malloc.svg -&gt; failed

Exiting early after 1 failures. 10198 tests run.
245.44s total testing time

10197 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
10 test cases (&lt;1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/1821054</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219454</commentid>
    <comment_count>20</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-04-30 05:15:16 -0700</bug_when>
    <thetext>Davi, can you have a look at the patch? It fails with commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219471</commentid>
    <comment_count>21</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-04-30 06:45:43 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Davi, can you have a look at the patch? It fails with commit queue.

I&apos;ve taken over this bug from David. I&apos;m looking at the failed test case now to see where the problem lies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221680</commentid>
    <comment_count>22</comment_count>
      <attachid>55237</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-05-06 07:52:04 -0700</bug_when>
    <thetext>Created attachment 55237
Revised patch to fix SVG number parsing, large number handling, fix 2 layout test outputs

Here is a revised patch for discussion.

I apologize for the length of this post, but there are several inter-related issues to be considered. I would appreciate feedback on whether the proposed patch is reasonable (at least in the short term), and thoughts on the larger issue of unsafe float-to-int conversions elsewhere in the code base.

*** Issue: The previous patch failed a layout test (svg/custom/mask-excessive-malloc.svg)

*** Summary of Discussion points:

1) The layout tests 

svg/custom/mask-excessive-malloc.svg
svg/custom/pattern-excessive-malloc.svg 

both appear to have errors in their expected output files. 

2) The revised patch handles this test now (with the corrected layout test).

3) The original patch would also have failed svg/custom/pattern-excessive-malloc.svg. The revised patch passes the corrected version of this layout test.

4) Similar float-to-int conversion errors exist elsewhere in WebKit.

*** Detailed Discussion Points:

1) It appears two of the svg layout tests have errors in their expected outputs.

platform/mac/svg/custom/mask-excessive-malloc-expected.txt show a RenderPath object (child of RenderSVGResourceMasker) with a size of 0x0. I believe this should actually be 800x600 (the cause for this will be discussed in (2)). Note that in the similar case of pattern-excessive-malloc.svg, the RenderPath size is 800x600.

platform/mac/svg/custom/pattern-excessive-malloc-expected.txt shows multiple point coordinates of 1215752192.00 when the correct value should be 99999997952.00 .

In the original file (pattern-excessive-malloc.svg) the coordinate value is 100000000000. This value can be exactly represented by a double, but the closest representation as a float is 99999997952. The value 1215752192 arises when we truncate the leading bytes of the integer representation.

The proposed patch includes corrections for both expected output files.

2) The reason the original patch failed is that, although 2147483647 cannot be represented exactly by float, the closest representable value of 2147483648 will not be obtained when building digit-by-digit using float.

This proposed patch uses double rather than float for building the representation, which is then cast to float. While similar problems could also occur with double, fixing that would require a complete overhaul of the number parser.

3) The original patch also failed on pattern-excessive-malloc.svg, in that its render tree dump shows a RenderPath with size 0x0 (not unlike the expected output file for mask-excessive-malloc.txt). This occurs due to an incorrect conversion from int to float in FloatRect::enclosingIntRect(). The problem arises when doing

float Xf = &lt;value larger than 2147483647&gt;
int Xi = static_cast&lt;int&gt;(Xf); // now Xi = -2147483648

When the negative value is returned, later processing detects a rect with negative height &amp; width, and changes them to 0.

A simple, although not entirely elegant, fix is to merely check to see if the value is above 2147483647.0f and if it is, return 2147483647 (thus clipping the value to the max representable by an int). Similarly for values below -2147483647.

4) While hunting down this bug, I noticed at least two other places where unsafe float-to-int conversions where taking place. The proposed patch does not address these, although they should be fixed. It seems likely that a concerted effort would uncover more problematic conversions.

The constructor IntRect::IntRect(FloatRect &amp;) makes the same float-to-int conversion error as does FloatRect::enclosingIntRect().

In SVGRenderStyle::inflateForShadow(FloatRect &amp;) internal computations are performed by (i) converting the FLoatRect to an IntRect, (ii) making the required changes, (iii) storing the result back into the FloatRect. This incurs the same error as mentioned above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221718</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-05-06 09:17:26 -0700</bug_when>
    <thetext>(In reply to comment #22)

&gt; 1) It appears two of the svg layout tests have errors in their expected
&gt; outputs.
...
&gt; The proposed patch includes corrections for both expected output files.

Sounds good.

&gt; 2) The reason the original patch failed is that, although 2147483647 cannot be
&gt; represented exactly by float, the closest representable value of 2147483648
&gt; will not be obtained when building digit-by-digit using float.
&gt; 
&gt; This proposed patch uses double rather than float for building the
&gt; representation, which is then cast to float. While similar problems could also
&gt; occur with double, fixing that would require a complete overhaul of the number
&gt; parser.

Looks reasonable.

&gt; 3) The original patch also failed on pattern-excessive-malloc.svg, in that its
&gt; render tree dump shows a RenderPath with size 0x0 (not unlike the expected
&gt; output file for mask-excessive-malloc.txt). This occurs due to an incorrect
&gt; conversion from int to float in FloatRect::enclosingIntRect(). The problem
&gt; arises when doing
&gt; 
&gt; float Xf = &lt;value larger than 2147483647&gt;
&gt; int Xi = static_cast&lt;int&gt;(Xf); // now Xi = -2147483648
&gt; 
&gt; When the negative value is returned, later processing detects a rect with
&gt; negative height &amp; width, and changes them to 0.
&gt; 
&gt; A simple, although not entirely elegant, fix is to merely check to see if the
&gt; value is above 2147483647.0f and if it is, return 2147483647 (thus clipping the
&gt; value to the max representable by an int). Similarly for values below
&gt; -2147483647.

Please file a new bug on this issue.

&gt; 4) While hunting down this bug, I noticed at least two other places where
&gt; unsafe float-to-int conversions where taking place. The proposed patch does not
&gt; address these, although they should be fixed. It seems likely that a concerted
&gt; effort would uncover more problematic conversions.
&gt; 
&gt; The constructor IntRect::IntRect(FloatRect &amp;) makes the same float-to-int
&gt; conversion error as does FloatRect::enclosingIntRect().
&gt; 
&gt; In SVGRenderStyle::inflateForShadow(FloatRect &amp;) internal computations are
&gt; performed by (i) converting the FLoatRect to an IntRect, (ii) making the
&gt; required changes, (iii) storing the result back into the FloatRect. This incurs
&gt; the same error as mentioned above.

Please file another new bug on these instances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221727</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-06 09:29:56 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; 2) The reason the original patch failed is that, although 2147483647 cannot be
&gt; &gt; represented exactly by float, the closest representable value of 2147483648
&gt; &gt; will not be obtained when building digit-by-digit using float.
&gt; &gt; 
&gt; &gt; This proposed patch uses double rather than float for building the
&gt; &gt; representation, which is then cast to float. While similar problems could also
&gt; &gt; occur with double, fixing that would require a complete overhaul of the number
&gt; &gt; parser.
&gt; 
&gt; Looks reasonable.

The same issue can exist with numbers at the extreme range of what double can represent, and in the case of double using a larger floating point number is not practical. One way to fix this is to build digit by digit in the opposite direction after counting digits. This is what the constant mantissaOverflowLowerBound and parseIntOverflow in JSGlobalObjectFunctions.h are written to deal with. We might want to take a similar approach for float.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221780</commentid>
    <comment_count>25</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-05-06 10:21:37 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; 
&gt; The same issue can exist with numbers at the extreme range of what double can
&gt; represent, and in the case of double using a larger floating point number is
&gt; not practical. One way to fix this is to build digit by digit in the opposite
&gt; direction after counting digits. This is what the constant
&gt; mantissaOverflowLowerBound and parseIntOverflow in JSGlobalObjectFunctions.h
&gt; are written to deal with. We might want to take a similar approach for float.

I agree that a right-to-left parsing of the number is appropriate. It&apos;s also more effort, so the questions in my mind are:

1) Should we implement a double-based short-term fix before doing a full-blown parser (based on the notion that we will do the full-blown parser, but it will take longer)? 

and

2) In the full blown parser, what rules are appropriate for those numbers that cannot be represented (too large, too much precision, etc.)?

I would think any compiler has standard code to solve this type of problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221785</commentid>
    <comment_count>26</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-05-06 10:26:28 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; &gt; A simple, although not entirely elegant, fix is to merely check to see if the
&gt; &gt; value is above 2147483647.0f and if it is, return 2147483647 (thus clipping the
&gt; &gt; value to the max representable by an int). Similarly for values below
&gt; &gt; -2147483647.
&gt; 
&gt; Please file a new bug on this issue.

If we file this as a separate bug, I presume we would then resolve the new bug before fixing bug 25645? The proposed fixes for 25645 won&apos;t pass the layout tests without a fix for this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221792</commentid>
    <comment_count>27</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-05-06 10:32:42 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; If we file this as a separate bug, I presume we would then resolve the new bug
&gt; before fixing bug 25645?

It&apos;s fine for it to be &quot;Depends on&quot; this bug. That&apos;s what those fields are for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223912</commentid>
    <comment_count>28</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-05-11 07:14:58 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; 
&gt; The same issue can exist with numbers at the extreme range of what double can represent, and in the case of double using a larger floating point number is not practical. One way to fix this is to build digit by digit in the opposite direction after counting digits. This is what the constant mantissaOverflowLowerBound and parseIntOverflow in JSGlobalObjectFunctions.h are written to deal with. We might want to take a similar approach for float.

I&apos;m happy enough to implement code for SVGParserUtilities that is equivalent to what&apos;s in JSGlobalObjectFunctions if that&apos;s what you and Simon feel is best. Just let me know if this is what you prefer.

I&apos;m curious ... what would happen if &apos;Inf&apos;/&apos;-Inf&apos; float values started propagating into WebKit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226182</commentid>
    <comment_count>29</comment_count>
      <attachid>51467</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-15 00:10:04 -0700</bug_when>
    <thetext>Comment on attachment 51467
Patch to use floating point in SVG number parser

Clearing Simon Fraser&apos;s R+ from this patch because it appears to cause a test failure.

Please upload a single patch that includes all the changes that need to landed at once so that we don&apos;t break anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234371</commentid>
    <comment_count>30</comment_count>
      <attachid>57913</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-04 14:11:32 -0700</bug_when>
    <thetext>Created attachment 57913
Revised patch to fix SVG number parsing of large numbers

Revised patch.

This patch updates two expected results in the layout tests. I have modified the number parsing to parse the integer portion from right-to-left, allowing an as-accurate-as-possible representation using FloatType instead of double.

This should pass the layout tests for Mac. The Windows/Linux chromium layout tests may break until an upstream Skia patch (changelist submitted) is committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234648</commentid>
    <comment_count>31</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-06 03:53:32 -0700</bug_when>
    <thetext>Hi W. James,

can you mark your patch for review and set the &quot;Patch&quot; flag, otherwhise I can&apos;t officially review it. Please obsolete the old patches, it&apos;s hard to find out which one is valid :-)

Cheers,
Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234822</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-07 06:37:09 -0700</bug_when>
    <thetext>Attachment 57913 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/svg/SVGParserUtilities.cpp:83:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/svg/SVGParserUtilities.cpp:85:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/svg/SVGParserUtilities.cpp:88:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/svg/SVGParserUtilities.cpp:89:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/svg/SVGParserUtilities.cpp:92:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/platform/graphics/FloatRect.cpp:116:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/platform/graphics/FloatRect.cpp:118:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/platform/graphics/FloatRect.cpp:126:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/platform/graphics/FloatRect.cpp:127:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
Total errors found: 9 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234841</commentid>
    <comment_count>33</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-07 07:28:23 -0700</bug_when>
    <thetext>Done ... I&apos;ve asked David to mark his patch as obsolete.

Cheers,

James

(In reply to comment #31)
&gt; Hi W. James,
&gt; 
&gt; can you mark your patch for review and set the &quot;Patch&quot; flag, otherwhise I can&apos;t officially review it. Please obsolete the old patches, it&apos;s hard to find out which one is valid :-)
&gt; 
&gt; Cheers,
&gt; Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234858</commentid>
    <comment_count>34</comment_count>
      <attachid>57913</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-07 08:18:24 -0700</bug_when>
    <thetext>Comment on attachment 57913
Revised patch to fix SVG number parsing of large numbers

Hi W. James, almost r+. Your patch is missing a proper ChangeLog (use prepare-Changelog --bug=25645, to generate a template to be filled out).
The style bot also reported issues regarding trailing spaces that need to be fixed.Some more comments:

WebCore/platform/graphics/FloatRect.cpp:124
 +      float lf = floorf(rect.x());
Please use descriptive variable names like &quot;left&quot; &quot;right&quot; &quot;top&quot; &quot;bottom&quot; here.

WebCore/platform/graphics/FloatRect.cpp:126
 +      float wf = ceilf(rect.right()) - lf ;
Why do we need to use right - left here to figure out the width? Why is using width() not sufficient?

WebCore/svg/SVGParserUtilities.cpp:83
 +      const UChar *ptr2 = ptr ;
Wrong style: you need to use &quot;const UChar*&quot; (star next to type). Also &quot;ptr2&quot; is not a good name, please use longer descriptive names.

Waiting your new patch :-)
I guess you tested running all webkit tests - enclosingIntRect() is used in lots of places - and I am afraid of side-effects in tests. Please rule that out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234866</commentid>
    <comment_count>35</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-07 08:32:39 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; (From update of attachment 57913 [details])
&gt; 
&gt; WebCore/platform/graphics/FloatRect.cpp:124
&gt;  +      float lf = floorf(rect.x());
&gt; Please use descriptive variable names like &quot;left&quot; &quot;right&quot; &quot;top&quot; &quot;bottom&quot; here.

I will improve these names ... I just re-used the existing names.

&gt; WebCore/platform/graphics/FloatRect.cpp:126
&gt;  +      float wf = ceilf(rect.right()) - lf ;
&gt; Why do we need to use right - left here to figure out the width? Why is using width() not sufficient?
&gt; 

I think we need &apos;right - left&apos; since we want an enclosing rect, and 

ceil(right) - floor(left) 

is not going to equal 

round/ceil/floor (right - left)

in general (where width = right - left).

&gt; Waiting your new patch :-)
&gt; I guess you tested running all webkit tests - enclosingIntRect() is used in lots of places - and I am afraid of side-effects in tests. Please rule that out.

I believe I am running the full set of tests, but will verify.

Cheers,

James</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234983</commentid>
    <comment_count>36</comment_count>
      <attachid>58066</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-07 12:01:42 -0700</bug_when>
    <thetext>Created attachment 58066
Revised (v3) patch to fix SVG number parsing of large numbers

Revised as per Nikolas&apos; suggestions, although kept &quot;right-left&quot; as opposed to &quot;width&quot; as per my comment #35. Re-added David&apos;s test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234989</commentid>
    <comment_count>37</comment_count>
      <attachid>58066</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-07 12:11:05 -0700</bug_when>
    <thetext>Comment on attachment 58066
Revised (v3) patch to fix SVG number parsing of large numbers

Almost there, sorry for forcing you to another iteration: LayoutTests is also missing a ChangeLog.
A last suggestion: Can you just name the variables &quot;left&quot; / &quot;top&quot; / etc. in enclosingIntRect(), we don&apos;t use type prefixes in variable names like &quot;int iFoo&quot; / &quot;float fFoo&quot; in WebKit.
Can you land on your own, or do you need cq+ after I set r+ on the new patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234990</commentid>
    <comment_count>38</comment_count>
      <attachid>58066</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-07 12:13:50 -0700</bug_when>
    <thetext>Comment on attachment 58066
Revised (v3) patch to fix SVG number parsing of large numbers

Oops, hit Submit too fast, some more comments:
Please don&apos;t change the order in the ChangeLog, the &quot;Bug description&quot; and bug number fields should stay in their current location. Your text needs to go below them. So:

Reviewed by NOBODY (OOPS!).

SVG - numeric overflow
https://...

Revised to improve...

Another style issue (no idea why the style bot did not complain):

WebCore/svg/SVGParserUtilities.cpp:83
 +      const UChar *ptrStartIntPart = ptr;
&quot;const UChar* ptrStartIntPart = ptr&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234991</commentid>
    <comment_count>39</comment_count>
      <attachid>58066</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-07 12:14:08 -0700</bug_when>
    <thetext>Comment on attachment 58066
Revised (v3) patch to fix SVG number parsing of large numbers

Oops, hit Submit too fast, some more comments:
Please don&apos;t change the order in the ChangeLog, the &quot;Bug description&quot; and bug number fields should stay in their current location. Your text needs to go below them. So:

Reviewed by NOBODY (OOPS!).

SVG - numeric overflow
https://...

Revised to improve...

Another style issue (no idea why the style bot did not complain):

WebCore/svg/SVGParserUtilities.cpp:83
 +      const UChar *ptrStartIntPart = ptr;
&quot;const UChar* ptrStartIntPart = ptr&quot;;

WebCore/svg/SVGParserUtilities.cpp:88
 +        const UChar *ptrScanIntPart = ptr - 1;
const UChar* ptrScanIntPart = ptr - 1;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235002</commentid>
    <comment_count>40</comment_count>
      <attachid>58072</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-07 12:48:30 -0700</bug_when>
    <thetext>Created attachment 58072
Revised (v4) patch to fix SVG number parsing of large numbers

- fixed var names in enclosingIntRect()
- fixed &apos;UChar*&apos; style issue
- ChangeLog files fixed (for some reason my git commit comments are ending up ahead of bug number, etc., but I fixed this manually)

&quot;or do you need cq+ after I set r+ on the new patch?&quot;

I assume I&apos;ll need &apos;cq+&apos; - I&apos;m not sure of the exact steps to finish landing the patch ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235404</commentid>
    <comment_count>41</comment_count>
      <attachid>58072</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-08 11:43:30 -0700</bug_when>
    <thetext>Comment on attachment 58072
Revised (v4) patch to fix SVG number parsing of large numbers

Hi W. James,

almost there! Your WebCore/ChangeLog contains unrelated entries though, you need to remove them, before I can set r+ and cq+. Setting cq+ will auto-land the patch for you.
I don&apos;t think you need to mention twice that you&apos;ve revised the variable naming. Just make it one statement.

Thanks for your patience,
Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235418</commentid>
    <comment_count>42</comment_count>
      <attachid>58167</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-08 12:08:51 -0700</bug_when>
    <thetext>Created attachment 58167
Revised (v5) patch to fix SVG number parsing of large numbers

Fixed change log issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235725</commentid>
    <comment_count>43</comment_count>
      <attachid>58167</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-09 03:05:26 -0700</bug_when>
    <thetext>Comment on attachment 58167
Revised (v5) patch to fix SVG number parsing of large numbers

Looks good, r=me. Thanks for fixing this bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236146</commentid>
    <comment_count>44</comment_count>
      <attachid>58167</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-09 21:14:36 -0700</bug_when>
    <thetext>Comment on attachment 58167
Revised (v5) patch to fix SVG number parsing of large numbers

Rejecting patch 58167 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--ignore-tests&apos;, &apos;compositing&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Last 500 characters of output:
e
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Skipped list contained &apos;compositing/iframes/composited-iframe.html&apos;, but no file of that name could be found
Testing 19073 test cases.
svg/custom/mask-excessive-malloc.svg -&gt; failed

Exiting early after 1 failures. 16523 tests run.
316.95s total testing time

16522 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
15 test cases (&lt;1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/3176104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236327</commentid>
    <comment_count>45</comment_count>
      <attachid>58370</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-10 06:09:39 -0700</bug_when>
    <thetext>Created attachment 58370
Revised (v6) patch to fix SVG number parsing of large numbers

Previous patch forgot to change two test outputs that were previously discussed (Comment #22) but I missed putting into the patch submission (sorry!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236777</commentid>
    <comment_count>46</comment_count>
      <attachid>58370</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-11 04:37:54 -0700</bug_when>
    <thetext>Comment on attachment 58370
Revised (v6) patch to fix SVG number parsing of large numbers

Patch looks good. I made up my mind regarding safeFloatToInt, I find it rather dangerous to hardcode these values. How about using:
static inline int safeFloatToInt(float x)
{
    static const int s_intMax = std::numeric_limit&lt;int&gt;::max();
    static const int s_intMax = std::numeric_limit&lt;int&gt;::min();

    if (x &gt;= float(intMax) + 1.0f)
        return intMax;
    if (x &lt; float(intMin)
        return intMin; // NOTE: You&apos;ve returned intMin + 1, I don&apos;t know why intMin, is not allowed. But if you see errors with intMin, just return intMin+1
    return static_cast&lt;int&gt;(x);
}

Sorry for bringing up this so late :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236810</commentid>
    <comment_count>47</comment_count>
      <attachid>58470</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-11 07:08:30 -0700</bug_when>
    <thetext>Created attachment 58470
Revised (v7) patch to fix SVG number parsing of large numbers

Agreed about using the values from numeric_limits ... I should have done this in the first place :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236813</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-11 07:11:01 -0700</bug_when>
    <thetext>Attachment 58470 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/FloatRect.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236815</commentid>
    <comment_count>49</comment_count>
      <attachid>58472</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-11 07:21:51 -0700</bug_when>
    <thetext>Created attachment 58472
Revised (v8) patch to fix SVG number parsing of large numbers

Alphabetised includes in FloatRect.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236824</commentid>
    <comment_count>50</comment_count>
      <attachid>58472</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-11 07:56:36 -0700</bug_when>
    <thetext>Comment on attachment 58472
Revised (v8) patch to fix SVG number parsing of large numbers

Hi W. James, still r-, sorry:

ChangeLog order is wrong again. Your comments have to go below the bug number &amp; description, just have a look at WebCore/ChangeLog to see how it works.
Also the ChangeLog entries are confusing. You&apos;ve basically added a line for every new patch you&apos;ve uploaded here, instead you should only the describe the &quot;final patch&quot;

&gt; +        Revised safeIntToFloat() to use values from &lt;limits&gt;.
&gt; +
&gt; +        Fixed two test outputs involving large coordinate values.
&gt; +
&gt; +        Two of the expected test outputs were incorrect now that parsing of large values
&gt; +        is handled correctly.
&gt; +
&gt; +        Revised to improve variable names in enclosingIntRect(), _parseNumber(), and fix style issues.
&gt; +
&gt; +        - Revised FloatRect to remove bad float-to-int conversions in enclosingIntRect()
&gt; +        - Revised _parseNumber to do right-to-left float-based parsing of input value

Just use:

&gt; +        Two of the expected test outputs were incorrect now that parsing of large values
&gt; +        is handled correctly.
&gt; +        - Revised FloatRect to remove bad float-to-int conversions in enclosingIntRect()
&gt; +        - Revised _parseNumber to do right-to-left float-based parsing of input value


&gt; +static inline int safeFloatToInt(float x)
&gt; +{
&gt; +    static int intMax = std::numeric_limits&lt;int&gt;::max();
&gt; +    static int intMin = std::numeric_limits&lt;int&gt;::min();

Recently the naming of these statics has been discussed on webkit-dev: use s_intMax, s_intMin here.

Other than those last two issues, it&apos;s r+ :-)
You must hate me by now, sorry for the numerous of reiterations ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236839</commentid>
    <comment_count>51</comment_count>
      <attachid>58476</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-11 08:19:10 -0700</bug_when>
    <thetext>Created attachment 58476
Revised (v9) patch to fix SVG number parsing of large numbers

Fixed changelogs, change static var names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236867</commentid>
    <comment_count>52</comment_count>
      <attachid>58476</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-11 09:26:12 -0700</bug_when>
    <thetext>Comment on attachment 58476
Revised (v9) patch to fix SVG number parsing of large numbers

Looks great, r=me! Thanks for taking the time to fix it properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236930</commentid>
    <comment_count>53</comment_count>
      <attachid>58476</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-11 11:24:18 -0700</bug_when>
    <thetext>Comment on attachment 58476
Revised (v9) patch to fix SVG number parsing of large numbers

Rejecting patch 58476 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--ignore-tests&apos;, &apos;compositing&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Last 500 characters of output:
e
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Skipped list contained &apos;compositing/iframes/composited-iframe.html&apos;, but no file of that name could be found
Testing 19084 test cases.
svg/custom/mask-excessive-malloc.svg -&gt; failed

Exiting early after 1 failures. 16534 tests run.
335.48s total testing time

16533 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
15 test cases (&lt;1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/3220222</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236935</commentid>
    <comment_count>54</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-06-11 11:30:11 -0700</bug_when>
    <thetext>(In reply to comment #53)
&gt; (From update of attachment 58476 [details])
&gt; Rejecting patch 58476 from commit-queue.
&gt; 
&gt; svg/custom/mask-excessive-malloc.svg -&gt; failed
&gt; 
&gt; Exiting early after 1 failures. 16534 tests run.
&gt; 335.48s total testing time

Is there any way I can see the actual output that failed? I&apos;ve tested this case myself, and it passed, so I need more info to see what&apos;s going on.
 
&gt; Full output: http://webkit-commit-queue.appspot.com/results/3220222

This link has no more info than the comment I&apos;m replying to :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238245</commentid>
    <comment_count>55</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-06-14 22:35:42 -0700</bug_when>
    <thetext>(In reply to comment #54)
&gt; (In reply to comment #53)
&gt; &gt; (From update of attachment 58476 [details] [details])
&gt; &gt; Rejecting patch 58476 from commit-queue.
&gt; &gt; 
&gt; &gt; svg/custom/mask-excessive-malloc.svg -&gt; failed
&gt; &gt; 
&gt; &gt; Exiting early after 1 failures. 16534 tests run.
&gt; &gt; 335.48s total testing time
&gt; 
&gt; Is there any way I can see the actual output that failed? I&apos;ve tested this case myself, and it passed, so I need more info to see what&apos;s going on.
&gt; 
&gt; &gt; Full output: http://webkit-commit-queue.appspot.com/results/3220222
&gt; 
&gt; This link has no more info than the comment I&apos;m replying to :-(

Hm, can you find someone @ Google with access to Safari to run the test? I probably can&apos;t test it for another two days... if you still need someone, drop me a line then.

Cheers,
Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238766</commentid>
    <comment_count>56</comment_count>
      <attachid>58167</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-16 03:16:23 -0700</bug_when>
    <thetext>Comment on attachment 58167
Revised (v5) patch to fix SVG number parsing of large numbers

Cleared Nikolas Zimmermann&apos;s review+ from obsolete attachment 58167 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257192</commentid>
    <comment_count>57</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-07-28 09:16:00 -0700</bug_when>
    <thetext>I&apos;d like to re-submit this patch, but I&apos;m a bit confused about expected output files. It seems the expected output from some tests is a bit different on mac than other platforms: do I then need to provide expected output for *all* other platforms? (gtk, chromium-linux, ... there are 19 platforms other than &apos;mac&apos; listed in the Layout/platform directory). What&apos;s the best way to handle this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257196</commentid>
    <comment_count>58</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-28 09:22:50 -0700</bug_when>
    <thetext>(In reply to comment #57)
&gt; I&apos;d like to re-submit this patch, but I&apos;m a bit confused about expected output files. It seems the expected output from some tests is a bit different on mac than other platforms: do I then need to provide expected output for *all* other platforms?

No. You can provide cross-platform expected results, then override those with platform-specific results when necessary (e.g. in LayoutTests/platform/mac/...).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257288</commentid>
    <comment_count>59</comment_count>
      <attachid>62859</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-07-28 12:20:26 -0700</bug_when>
    <thetext>Created attachment 62859
Revised (vA) patch to fix SVG number parsing of large numbers

Revised to update GTK and QT expected outputs to match those for Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257307</commentid>
    <comment_count>60</comment_count>
      <attachid>62866</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-07-28 12:54:38 -0700</bug_when>
    <thetext>Created attachment 62866
Revised (vB) patch to fix SVG number parsing of large numbers

Previous patch missing binary info.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257312</commentid>
    <comment_count>61</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-28 12:58:25 -0700</bug_when>
    <thetext>Attachment 62866 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/graphics/FloatRect.cpp:128:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/graphics/FloatRect.cpp:129:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/graphics/FloatRect.cpp:130:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/platform/graphics/FloatRect.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257320</commentid>
    <comment_count>62</comment_count>
      <attachid>62869</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-07-28 13:04:55 -0700</bug_when>
    <thetext>Created attachment 62869
Revised (vC) patch to fix SVG number parsing of large numbers

Fixed spaces in FloatRect.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257418</commentid>
    <comment_count>63</comment_count>
      <attachid>62869</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-28 16:11:19 -0700</bug_when>
    <thetext>Comment on attachment 62869
Revised (vC) patch to fix SVG number parsing of large numbers

&gt; +static inline int safeFloatToInt(float x)
&gt; +{
&gt; +    static int s_intMax = std::numeric_limits&lt;int&gt;::max();
&gt; +    static int s_intMin = std::numeric_limits&lt;int&gt;::min();

Is caching in global data really worth it? std::numeric_limits&lt;int&gt;::max() may just &apos;return MAX_INT&apos; which is much faster than accessing global data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257427</commentid>
    <comment_count>64</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-28 16:24:56 -0700</bug_when>
    <thetext>(In reply to comment #63)
&gt; (From update of attachment 62869 [details])
&gt; &gt; +static inline int safeFloatToInt(float x)
&gt; &gt; +{
&gt; &gt; +    static int s_intMax = std::numeric_limits&lt;int&gt;::max();
&gt; &gt; +    static int s_intMin = std::numeric_limits&lt;int&gt;::min();
&gt; 
&gt; Is caching in global data really worth it? std::numeric_limits&lt;int&gt;::max() may just &apos;return MAX_INT&apos; which is much faster than accessing global data.

Should just be static const int, and then it will not involve any global data at all in the compilers we use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257642</commentid>
    <comment_count>65</comment_count>
      <attachid>62940</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-07-29 05:32:58 -0700</bug_when>
    <thetext>Created attachment 62940
Revised (vD) patch to fix SVG number parsing of large numbers

Made int vars &apos;const&apos; in safeFloatToInt().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257704</commentid>
    <comment_count>66</comment_count>
      <attachid>62940</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-29 09:01:22 -0700</bug_when>
    <thetext>Comment on attachment 62940
Revised (vD) patch to fix SVG number parsing of large numbers

They are still static, so I think this is still a global memory access. Maybe you can disassemble to find out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257767</commentid>
    <comment_count>67</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-29 11:00:26 -0700</bug_when>
    <thetext>(In reply to comment #66)
&gt; They are still static, so I think this is still a global memory access. Maybe you can disassemble to find out.

I can disassemble and did, and it is not a global memory access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258208</commentid>
    <comment_count>68</comment_count>
      <attachid>62940</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-30 08:36:34 -0700</bug_when>
    <thetext>Comment on attachment 62940
Revised (vD) patch to fix SVG number parsing of large numbers

r-, ChangeLogs are missing. And some additional issues:

WebCore/svg/SVGParserUtilities.cpp:70
 +        ++ptr; // Advance to first non-digit.
Four-spaces indention please.

WebCore/svg/SVGParserUtilities.cpp:73
 +        const UChar* ptrScanIntPart = ptr - 1;
Ditto.

WebCore/svg/SVGParserUtilities.cpp:76
 +          integer = integer + multiplier * static_cast&lt;FloatType&gt;(*(ptrScanIntPart--) - &apos;0&apos;);
Ditto. And you can use integer += multipler * ... here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258212</commentid>
    <comment_count>69</comment_count>
      <attachid>63063</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-07-30 08:55:49 -0700</bug_when>
    <thetext>Created attachment 63063
Revised (vE) patch to fix SVG number parsing of large numbers

Fixed spacing, re-added CL entries</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258307</commentid>
    <comment_count>70</comment_count>
      <attachid>63063</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-30 11:25:45 -0700</bug_when>
    <thetext>Comment on attachment 63063
Revised (vE) patch to fix SVG number parsing of large numbers

Looks good to me! Please watch the bots if anything breaks, maybe some other platforms need specific results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258339</commentid>
    <comment_count>71</comment_count>
      <attachid>63063</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-30 12:59:53 -0700</bug_when>
    <thetext>Comment on attachment 63063
Revised (vE) patch to fix SVG number parsing of large numbers

Rejecting patch 63063 from commit-queue.

Unexpected failure when processing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 63063, &apos;--test&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Logging in as eseidel@chromium.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=63063&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=25645&amp;ctype=xml
Processing 1 patch from 1 bug.
Cleaning working directory
Processing patch 63063 from bug 25645.
ERROR: /Users/eseidel/Projects/CommitQueue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258343</commentid>
    <comment_count>72</comment_count>
      <attachid>63096</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-07-30 13:10:12 -0700</bug_when>
    <thetext>Created attachment 63096
Revised (vF) patch to fix SVG number parsing of large numbers

Added reviewer line to LayoutTests/Changelog (sigh).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258371</commentid>
    <comment_count>73</comment_count>
      <attachid>63096</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-30 14:08:21 -0700</bug_when>
    <thetext>Comment on attachment 63096
Revised (vF) patch to fix SVG number parsing of large numbers

2nd try :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258420</commentid>
    <comment_count>74</comment_count>
      <attachid>63096</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-30 15:24:39 -0700</bug_when>
    <thetext>Comment on attachment 63096
Revised (vF) patch to fix SVG number parsing of large numbers

Clearing flags on attachment: 63096

Committed r64379: &lt;http://trac.webkit.org/changeset/64379&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258421</commentid>
    <comment_count>75</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-30 15:24:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258431</commentid>
    <comment_count>76</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 15:48:55 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64379 might have broken GTK Linux 32-bit Release, GTK Linux 64-bit Debug, and Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258561</commentid>
    <comment_count>77</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-30 23:42:49 -0700</bug_when>
    <thetext>(In reply to comment #70)
&gt; (From update of attachment 63063 [details])
&gt; Looks good to me! Please watch the bots if anything breaks, maybe some other platforms need specific results.

James, please have a look at:
http://build.webkit.org/results/GTK%20Linux%2032-bit%20Debug/r64408%20(8613)/svg/custom/massive-coordinates-pretty-diff.html
http://build.webkit.org/results/Qt%20Linux%20Release/r64410%20(16443)/svg/custom/massive-coordinates-pretty-diff.html

Both Qt/Gtk have problems, bots are red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258617</commentid>
    <comment_count>78</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-31 10:29:41 -0700</bug_when>
    <thetext>(In reply to comment #77)
&gt; (In reply to comment #70)
&gt; &gt; (From update of attachment 63063 [details] [details])
&gt; &gt; Looks good to me! Please watch the bots if anything breaks, maybe some other platforms need specific results.
&gt; 
&gt; James, please have a look at:
&gt; http://build.webkit.org/results/GTK%20Linux%2032-bit%20Debug/r64408%20(8613)/svg/custom/massive-coordinates-pretty-diff.html
&gt; http://build.webkit.org/results/Qt%20Linux%20Release/r64410%20(16443)/svg/custom/massive-coordinates-pretty-diff.html
&gt; 
&gt; Both Qt/Gtk have problems, bots are red.

Same with the windows bot:
http://build.webkit.org/results/Windows%20Release%20(Tests)/r64419%20(2158)/svg/custom/massive-coordinates-pretty-diff.html

Please look into the problem ASAP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258686</commentid>
    <comment_count>79</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-08-01 09:23:05 -0700</bug_when>
    <thetext>This looks to be just a re-baselining issue for Qt/GTK/Windows ... I&apos;ll re-submit with updated -expected.txt files for this test on Tuesday morning when I&apos;m back in the office. I&apos;m assuming these are the only broken tests?

(In reply to comment #78)
&gt; (In reply to comment #77)
&gt; &gt; (In reply to comment #70)
&gt; &gt; &gt; (From update of attachment 63063 [details] [details] [details])
&gt; &gt; &gt; Looks good to me! Please watch the bots if anything breaks, maybe some other platforms need specific results.
&gt; &gt; 
&gt; &gt; James, please have a look at:
&gt; &gt; http://build.webkit.org/results/GTK%20Linux%2032-bit%20Debug/r64408%20(8613)/svg/custom/massive-coordinates-pretty-diff.html
&gt; &gt; http://build.webkit.org/results/Qt%20Linux%20Release/r64410%20(16443)/svg/custom/massive-coordinates-pretty-diff.html
&gt; &gt; 
&gt; &gt; Both Qt/Gtk have problems, bots are red.
&gt; 
&gt; Same with the windows bot:
&gt; http://build.webkit.org/results/Windows%20Release%20(Tests)/r64419%20(2158)/svg/custom/massive-coordinates-pretty-diff.html
&gt; 
&gt; Please look into the problem ASAP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258896</commentid>
    <comment_count>80</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-02 08:52:07 -0700</bug_when>
    <thetext>I think it would be better to find a way to make the test insensitive to platform rounding/precision issues. Printing a float with lots of significant digits in tests in never a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258927</commentid>
    <comment_count>81</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-02 09:35:08 -0700</bug_when>
    <thetext>(In reply to comment #80)
&gt; I think it would be better to find a way to make the test insensitive to platform rounding/precision issues. Printing a float with lots of significant digits in tests in never a good idea.

Brings us to platform independent LayoutTests.. Something we could do, once SVGPath uses SVGPathByteStream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259431</commentid>
    <comment_count>82</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-08-03 06:57:06 -0700</bug_when>
    <thetext>I&apos;m happy enough to revise the tests, but I&apos;m not sure how we would go about making it insensitive to rounding/precision errors. Isn&apos;t that sort of dictated by using DumpRenderTree? If there&apos;s a way to devise a different style of test that doesn&apos;t use DumpRenderTree and someone can aim me at an example, I can look after it.

Otherwise, I&apos;ll proceed with re-baselining the tests according to the output from the Qt/GTK/Win bots.


(In reply to comment #80)
&gt; I think it would be better to find a way to make the test insensitive to platform rounding/precision issues. Printing a float with lots of significant digits in tests in never a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260094</commentid>
    <comment_count>83</comment_count>
      <attachid>63464</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-08-04 10:25:57 -0700</bug_when>
    <thetext>Created attachment 63464
Re-baseline massive-coordinates.svg test expectations for platform/win.

This patch re-baselines the expected output for LayoutTests/svg/custom/massive-coordinates.svg for platform/win. The change appears to just be a numeric precision/round-off issue.

This patch also removes the expected output for LayoutTests/svg/custom/pattern-excessive-malloc.svg for the GTK platform, as the current expected output is *very broken*. This test, along with that for LayoutTests/svg/custom/massive-coordinates.svg needs to be re-baselined for GTK, but I think it is likely better not to test against a known bad -expected.txt file in the meantime. Since all other platforms seem to be in close agreement, I suspect this is a debugging-output issue in GTK.

Both tests expectations for Qt were re-baselined in https://bugs.webkit.org/show_bug.cgi?id=43361 (thanks Martin Robinson!).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260578</commentid>
    <comment_count>84</comment_count>
      <attachid>63584</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-08-05 06:52:34 -0700</bug_when>
    <thetext>Created attachment 63584
Re-baseline massive-coordinates.svg test expectations for platform/win, skip on GTK.

Revised to skip pattern-excessive-malloc.svg test on GTK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260587</commentid>
    <comment_count>85</comment_count>
      <attachid>63584</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-08-05 07:03:59 -0700</bug_when>
    <thetext>Comment on attachment 63584
Re-baseline massive-coordinates.svg test expectations for platform/win, skip on GTK.

r-, you need to modify platform/gtk/Skipped, not test_expectations.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260590</commentid>
    <comment_count>86</comment_count>
      <attachid>63587</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-08-05 07:16:19 -0700</bug_when>
    <thetext>Created attachment 63587
Re-baseline massive-coordinates.svg test expectations for platform/win, skip on GTK.

Moved &apos;skip&apos; request to platform/gtk/Skipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260591</commentid>
    <comment_count>87</comment_count>
      <attachid>63587</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-08-05 07:22:25 -0700</bug_when>
    <thetext>Comment on attachment 63587
Re-baseline massive-coordinates.svg test expectations for platform/win, skip on GTK.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260643</commentid>
    <comment_count>88</comment_count>
      <attachid>58476</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-05 08:57:12 -0700</bug_when>
    <thetext>Comment on attachment 58476
Revised (v9) patch to fix SVG number parsing of large numbers

Cleared Nikolas Zimmermann&apos;s review+ from obsolete attachment 58476 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260644</commentid>
    <comment_count>89</comment_count>
      <attachid>63063</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-05 08:57:18 -0700</bug_when>
    <thetext>Comment on attachment 63063
Revised (vE) patch to fix SVG number parsing of large numbers

Cleared Nikolas Zimmermann&apos;s review+ from obsolete attachment 63063 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261082</commentid>
    <comment_count>90</comment_count>
      <attachid>63587</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-05 21:50:54 -0700</bug_when>
    <thetext>Comment on attachment 63587
Re-baseline massive-coordinates.svg test expectations for platform/win, skip on GTK.

Clearing flags on attachment: 63587

Committed r64815: &lt;http://trac.webkit.org/changeset/64815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261083</commentid>
    <comment_count>91</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-05 21:51:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323231</commentid>
    <comment_count>92</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-12-16 09:52:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/8777860&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372929</commentid>
    <comment_count>93</comment_count>
    <who name="Vincent Danen">vdanen</who>
    <bug_when>2011-03-24 10:52:53 -0700</bug_when>
    <thetext>This was assigned CVE-2011-0147.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>30132</attachid>
            <date>2009-05-08 09:14:29 -0700</date>
            <delta_ts>2009-05-08 09:14:29 -0700</delta_ts>
            <desc>SVG with a big sized rect</desc>
            <filename>test7.svg</filename>
            <type>image/svg+xml</type>
            <size>162</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIj4KPHJlY3Qgd2lkdGg9IjEwMDAwMDAwMDAwMDAwMDAwMDAiIGhlaWdodD0iMTAwMDAwMDAw
MDAwMDAwMDAwMCIgeD0iMCIgeT0iMCIgZmlsbD0iZ3JlZW4iIC8+Cjwvc3ZnPgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51467</attachid>
            <date>2010-03-23 16:45:35 -0700</date>
            <delta_ts>2010-06-07 08:11:30 -0700</delta_ts>
            <desc>Patch to use floating point in SVG number parser</desc>
            <filename>massive-coordinates-20100323.patch</filename>
            <type>text/plain</type>
            <size>3684</size>
            <attacher name="David Yonge-Mallo">davinci</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YjZjMzI0Li4yZDgyNmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMt
MjMgIERhdmlkIFlvbmdlLU1hbGxvICA8ZGF2aW5jaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBjYXNlIGZv
ciBsYXJnZSBudW1iZXIgb3ZlcmZsb3cgYW5kIHNjaWVudGlmaWMgbm90YXRpb24uCisKKyAgICAg
ICAgU1ZHIC0gb3ZlcmZsb3cgZm9yIGJpZyBzaXplZCBlbGVtZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2NDUKKworICAgICAgICAqIHN2Zy9j
dXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmc6IEFkZGVkLgorCiAyMDEwLTAzLTIz
ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lNTdhZWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qg
e3N2Z30gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAs
MCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRh
PSJNLTEwMDAuMDAsMTIzNDU2NzkzOTU1MDYwOTQwODAuMDAgTDIwMC4wMCwyMDAuMDAiXQorICAg
IFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDApIHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwRkYwMF19XSBbZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEwMDAuMDAsLTk4NzY1
NDM1MTY0MDQ4NzUyNjQwLjAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20v
bWFzc2l2ZS1jb29yZGluYXRlcy5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUt
Y29vcmRpbmF0ZXMuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkNjMy
MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29v
cmRpbmF0ZXMuc3ZnCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/Pg0KKw0KKzwhRE9DVFlQRSBzdmcgUFVCTElDICIt
Ly9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8x
LjEvRFREL3N2ZzExLmR0ZCI+DQorDQorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciIGhlaWdodD0iNjAwIiBpZD0ic3Zncm9vdCIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iODAw
IiB4PSIwIiB5PSIwIj4NCisNCisgICAgPHBhdGggZD0iTSAtMTAwMCwxMjM0NTY3ODkwMTIzNDU2
Nzg5MCBMIDIwMCwyMDAiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLXdp
ZHRoOjFweDtzdHJva2Utb3BhY2l0eToxIiAvPg0KKyAgICA8cGF0aCBkPSJNIDYwMCw0MDAgTCAx
MDAwLC05Ljg3NjU0MzIxMDk4NzY1NDMyMTBlKzE5IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZToj
MDBmZjAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLW9wYWNpdHk6MSIgLz4NCisNCis8L3N2Zz4N
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGU4MjQ3ZTcuLmI0N2U2NmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDMtMjMgIERhdmlkIFlvbmdl
LU1hbGxvICA8ZGF2aW5jaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlZCBTVkcgbnVtYmVyIHBhcnNlciB0byB1c2Ug
ZmxvYXRpbmcgcG9pbnQgaW50ZXJuYWxseSBmb3IgaW50ZWdlciBwb3J0aW9uIG9mIG51bWJlciB0
byBwcmV2ZW50IG92ZXJmbG93LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFRlc3Q6IHN2Zy9jdXN0b20vbWFzc2l2ZS1j
b29yZGluYXRlcy5zdmcKKworICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6X3BhcnNlTnVtYmVyKToKKwogMjAxMC0wMy0yMyAgRGF2aWQgSHlh
dHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2Vy
IGFuZCBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxp
dGllcy5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCmluZGV4IGMwNWUw
ZjguLjA3YmUxNmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5j
cHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcApAQCAtNTQsOCArNTQs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgKi8gICAgCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxv
YXRUeXBlPiBzdGF0aWMgYm9vbCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0
IFVDaGFyKiBlbmQsIEZsb2F0VHlwZSYgbnVtYmVyLCBib29sIHNraXApCiB7Ci0gICAgaW50IGlu
dGVnZXIsIGV4cG9uZW50OwotICAgIEZsb2F0VHlwZSBkZWNpbWFsLCBmcmFjOworICAgIGludCBl
eHBvbmVudDsKKyAgICBGbG9hdFR5cGUgaW50ZWdlciwgZGVjaW1hbCwgZnJhYzsKICAgICBpbnQg
c2lnbiwgZXhwc2lnbjsKICAgICBjb25zdCBVQ2hhciogc3RhcnQgPSBwdHI7CiAKQEAgLTgwLDcg
KzgwLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEZsb2F0VHlwZT4gc3RhdGljIGJvb2wgX3BhcnNl
TnVtYmVyKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdAogCiAgICAgLy8gcmVhZCB0aGUgaW50ZWdl
ciBwYXJ0CiAgICAgd2hpbGUgKHB0ciA8IGVuZCAmJiAqcHRyID49ICcwJyAmJiAqcHRyIDw9ICc5
JykKLSAgICAgICAgaW50ZWdlciA9IChpbnRlZ2VyICogMTApICsgKihwdHIrKykgLSAnMCc7Cisg
ICAgICAgIGludGVnZXIgPSAoaW50ZWdlciAqIDEwKSArIHN0YXRpY19jYXN0PEZsb2F0VHlwZT4o
KihwdHIrKykgLSAnMCcpOwogCiAgICAgaWYgKHB0ciA8IGVuZCAmJiAqcHRyID09ICcuJykgeyAv
LyByZWFkIHRoZSBkZWNpbWFscwogICAgICAgICBwdHIrKzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>53973</attachid>
            <date>2010-04-21 11:23:16 -0700</date>
            <delta_ts>2010-05-06 07:52:04 -0700</delta_ts>
            <desc>SVG file of tan(), all values in range of int</desc>
            <filename>TanLine2.svg</filename>
            <type>image/svg+xml</type>
            <size>2408</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8
c3ZnDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICBoZWlnaHQ9IjYw
MCINCiAgIGlkPSJzdmdyb290Ig0KICAgdmVyc2lvbj0iMS4xIg0KICAgd2lkdGg9IjgwMCINCiAg
IHg9IjAiDQogICB5PSIwIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMzIj4NCiAgICA8Y2xpcFBh
dGgNCiAgICAgICBpZD0iY2xpcDEiPg0KICAgICAgPHBhdGgNCiAgICAgICAgIGlkPSJwYXRoNTI1
Ig0KICAgICAgICAgZD0iTSA4MS41LDUwLjUgTCA3NzUuNSw1MC41IEwgNzc1LjUsNTE5LjUgTCA4
MS41LDUxOS41IiAvPg0KICAgIDwvY2xpcFBhdGg+DQogIDwvZGVmcz4NCiAgPHBhdGgNCiAgICAg
c3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDBmZjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1v
cGFjaXR5OjEiDQogICAgIGlkPSJzZXJpZXMzIg0KICAgICBkPSJNIDgxLjUsMjg1IEwgODguNDQs
Mjc3LjYyMzI1IEwgOTUuMzgsMjcwLjE4Nzg4IEwgMTAyLjMyLDI2Mi42MzMzNyBMIDEwOS4yNiwy
NTQuODk1MzIgTCAxMTYuMiwyNDYuOTAzMTcgTCAxMjMuMTQsMjM4LjU3NzQ0IEwgMTMwLjA4LDIy
OS44MjYzNCBMIDEzNy4wMiwyMjAuNTQxMjcgTCAxNDMuOTYsMjEwLjU5MDg5IEwgMTUwLjksMTk5
LjgxMjg5IEwgMTU3Ljg0LDE4OC4wMDIzNiBMIDE2NC43OCwxNzQuODk0OTIgTCAxNzEuNzIsMTYw
LjE0MTQzIEwgMTc4LjY2LDE0My4yNjkxIEwgMTg1LjYsMTIzLjYxOTIyIEwgMTkyLjU0LDEwMC4y
NDM1NiBMIDE5OS40OCw3MS43MjMwNDIgTCAyMDYuNDIsMzUuODMxMDY3IEwgMjEzLjM2LC0xMS4x
Mzk2OTYgTCAyMjAuMywtNzUuODU4Mzk1IEwgMjI3LjI0LC0xNzEuNjU4NiBMIDIzNC4xOCwtMzI5
LjY0NjAzIEwgMjQxLjEyLC02NDMuMTI5MzIgTCAyNDguMDYsLTE1NzguNjM1NCBMIDI1NSwxMTQ3
NDgzNjQ1IEwgMjYxLjk0LDIxNDguNjM1NCBMIDI2OC44OCwxMjEzLjEyOTMgTCAyNzUuODIsODk5
LjY0NjAyIEwgMjgyLjc2LDc0MS42NTg2IEwgMjg5LjcsNjQ1Ljg1ODM5IEwgMjk2LjY0LDU4MS4x
Mzk3IEwgMzAzLjU4LDUzNC4xNjg5MyBMIDMxMC41Miw0OTguMjc2OTYgTCAzMTcuNDYsNDY5Ljc1
NjQ0IEwgMzI0LjQsNDQ2LjM4MDc4IEwgMzMxLjM0LDQyNi43MzA5IEwgMzM4LjI4LDQwOS44NTg1
NyBMIDM0NS4yMiwzOTUuMTA1MDggTCAzNTIuMTYsMzgxLjk5NzY0IEwgMzU5LjEsMzcwLjE4NzEx
IEwgMzY2LjA0LDM1OS40MDkxMSBMIDM3Mi45OCwzNDkuNDU4NzMgTCAzNzkuOTIsMzQwLjE3MzY2
IEwgMzg2Ljg2LDMzMS40MjI1NiBMIDM5My44LDMyMy4wOTY4MyBMIDQwMC43NCwzMTUuMTA0Njgg
TCA0MDcuNjgsMzA3LjM2NjYzIEwgNDE0LjYyLDI5OS44MTIxMiBMIDQyMS41NiwyOTIuMzc2NzQg
TCA0MjguNSwyODUgTCA0MzUuNDQsMjc3LjYyMzI1IEwgNDQyLjM4LDI3MC4xODc4OCBMIDQ0OS4z
MiwyNjIuNjMzMzcgTCA0NTYuMjYsMjU0Ljg5NTMyIEwgNDYzLjIsMjQ2LjkwMzE3IEwgNDcwLjE0
LDIzOC41Nzc0NCBMIDQ3Ny4wOCwyMjkuODI2MzQgTCA0ODQuMDIsMjIwLjU0MTI3IEwgNDkwLjk2
LDIxMC41OTA4OSBMIDQ5Ny45LDE5OS44MTI4OSBMIDUwNC44NCwxODguMDAyMzYgTCA1MTEuNzgs
MTc0Ljg5NDkyIEwgNTE4LjcyLDE2MC4xNDE0MyBMIDUyNS42NiwxNDMuMjY5MSBMIDUzMi42LDEy
My42MTkyMiBMIDUzOS41NCwxMDAuMjQzNTYgTCA1NDYuNDgsNzEuNzIzMDQyIEwgNTUzLjQyLDM1
LjgzMTA2NyBMIDU2MC4zNiwtMTEuMTM5Njk2IEwgNTY3LjMsLTc1Ljg1ODM5NSBMIDU3NC4yNCwt
MTcxLjY1ODYgTCA1ODEuMTgsLTMyOS42NDYwMyBMIDU4OC4xMiwtNjQzLjEyOTMyIEwgNTk1LjA2
LC0xNTc4LjYzNTQgTCA2MDIsMjE0OSBMIDYwOC45NCwyMTQ4LjYzNTQgTCA2MTUuODgsMTIxMy4x
MjkzIEwgNjIyLjgyLDg5OS42NDYwMiBMIDYyOS43Niw3NDEuNjU4NiBMIDYzNi43LDY0NS44NTgz
OSBMIDY0My42NCw1ODEuMTM5NyBMIDY1MC41OCw1MzQuMTY4OTMgTCA2NTcuNTIsNDk4LjI3Njk2
IEwgNjY0LjQ2LDQ2OS43NTY0NCBMIDY3MS40LDQ0Ni4zODA3OCBMIDY3OC4zNCw0MjYuNzMwOSBM
IDY4NS4yOCw0MDkuODU4NTcgTCA2OTIuMjIsMzk1LjEwNTA4IEwgNjk5LjE2LDM4MS45OTc2NCBM
IDcwNi4xLDM3MC4xODcxMSBMIDcxMy4wNCwzNTkuNDA5MTEgTCA3MTkuOTgsMzQ5LjQ1ODczIEwg
NzI2LjkyLDM0MC4xNzM2NiBMIDczMy44NiwzMzEuNDIyNTYgTCA3NDAuOCwzMjMuMDk2ODMgTCA3
NDcuNzQsMzE1LjEwNDY4IEwgNzU0LjY4LDMwNy4zNjY2MyBMIDc2MS42MiwyOTkuODEyMTIgTCA3
NjguNTYsMjkyLjM3Njc0IEwgNzc1LjUsMjg1Ig0KICAgICBjbGlwLXBhdGg9InVybCgjY2xpcDEp
IiAvPg0KPC9zdmc+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>53974</attachid>
            <date>2010-04-21 11:26:01 -0700</date>
            <delta_ts>2010-05-06 07:52:04 -0700</delta_ts>
            <desc>SVG of tan() function, int&apos;s only</desc>
            <filename>TanLine2.svg</filename>
            <type>image/svg+xml</type>
            <size>2408</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8
c3ZnDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICBoZWlnaHQ9IjYw
MCINCiAgIGlkPSJzdmdyb290Ig0KICAgdmVyc2lvbj0iMS4xIg0KICAgd2lkdGg9IjgwMCINCiAg
IHg9IjAiDQogICB5PSIwIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMzIj4NCiAgICA8Y2xpcFBh
dGgNCiAgICAgICBpZD0iY2xpcDEiPg0KICAgICAgPHBhdGgNCiAgICAgICAgIGlkPSJwYXRoNTI1
Ig0KICAgICAgICAgZD0iTSA4MS41LDUwLjUgTCA3NzUuNSw1MC41IEwgNzc1LjUsNTE5LjUgTCA4
MS41LDUxOS41IiAvPg0KICAgIDwvY2xpcFBhdGg+DQogIDwvZGVmcz4NCiAgPHBhdGgNCiAgICAg
c3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDBmZjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1v
cGFjaXR5OjEiDQogICAgIGlkPSJzZXJpZXMzIg0KICAgICBkPSJNIDgxLjUsMjg1IEwgODguNDQs
Mjc3LjYyMzI1IEwgOTUuMzgsMjcwLjE4Nzg4IEwgMTAyLjMyLDI2Mi42MzMzNyBMIDEwOS4yNiwy
NTQuODk1MzIgTCAxMTYuMiwyNDYuOTAzMTcgTCAxMjMuMTQsMjM4LjU3NzQ0IEwgMTMwLjA4LDIy
OS44MjYzNCBMIDEzNy4wMiwyMjAuNTQxMjcgTCAxNDMuOTYsMjEwLjU5MDg5IEwgMTUwLjksMTk5
LjgxMjg5IEwgMTU3Ljg0LDE4OC4wMDIzNiBMIDE2NC43OCwxNzQuODk0OTIgTCAxNzEuNzIsMTYw
LjE0MTQzIEwgMTc4LjY2LDE0My4yNjkxIEwgMTg1LjYsMTIzLjYxOTIyIEwgMTkyLjU0LDEwMC4y
NDM1NiBMIDE5OS40OCw3MS43MjMwNDIgTCAyMDYuNDIsMzUuODMxMDY3IEwgMjEzLjM2LC0xMS4x
Mzk2OTYgTCAyMjAuMywtNzUuODU4Mzk1IEwgMjI3LjI0LC0xNzEuNjU4NiBMIDIzNC4xOCwtMzI5
LjY0NjAzIEwgMjQxLjEyLC02NDMuMTI5MzIgTCAyNDguMDYsLTE1NzguNjM1NCBMIDI1NSwxMTQ3
NDgzNjQ1IEwgMjYxLjk0LDIxNDguNjM1NCBMIDI2OC44OCwxMjEzLjEyOTMgTCAyNzUuODIsODk5
LjY0NjAyIEwgMjgyLjc2LDc0MS42NTg2IEwgMjg5LjcsNjQ1Ljg1ODM5IEwgMjk2LjY0LDU4MS4x
Mzk3IEwgMzAzLjU4LDUzNC4xNjg5MyBMIDMxMC41Miw0OTguMjc2OTYgTCAzMTcuNDYsNDY5Ljc1
NjQ0IEwgMzI0LjQsNDQ2LjM4MDc4IEwgMzMxLjM0LDQyNi43MzA5IEwgMzM4LjI4LDQwOS44NTg1
NyBMIDM0NS4yMiwzOTUuMTA1MDggTCAzNTIuMTYsMzgxLjk5NzY0IEwgMzU5LjEsMzcwLjE4NzEx
IEwgMzY2LjA0LDM1OS40MDkxMSBMIDM3Mi45OCwzNDkuNDU4NzMgTCAzNzkuOTIsMzQwLjE3MzY2
IEwgMzg2Ljg2LDMzMS40MjI1NiBMIDM5My44LDMyMy4wOTY4MyBMIDQwMC43NCwzMTUuMTA0Njgg
TCA0MDcuNjgsMzA3LjM2NjYzIEwgNDE0LjYyLDI5OS44MTIxMiBMIDQyMS41NiwyOTIuMzc2NzQg
TCA0MjguNSwyODUgTCA0MzUuNDQsMjc3LjYyMzI1IEwgNDQyLjM4LDI3MC4xODc4OCBMIDQ0OS4z
MiwyNjIuNjMzMzcgTCA0NTYuMjYsMjU0Ljg5NTMyIEwgNDYzLjIsMjQ2LjkwMzE3IEwgNDcwLjE0
LDIzOC41Nzc0NCBMIDQ3Ny4wOCwyMjkuODI2MzQgTCA0ODQuMDIsMjIwLjU0MTI3IEwgNDkwLjk2
LDIxMC41OTA4OSBMIDQ5Ny45LDE5OS44MTI4OSBMIDUwNC44NCwxODguMDAyMzYgTCA1MTEuNzgs
MTc0Ljg5NDkyIEwgNTE4LjcyLDE2MC4xNDE0MyBMIDUyNS42NiwxNDMuMjY5MSBMIDUzMi42LDEy
My42MTkyMiBMIDUzOS41NCwxMDAuMjQzNTYgTCA1NDYuNDgsNzEuNzIzMDQyIEwgNTUzLjQyLDM1
LjgzMTA2NyBMIDU2MC4zNiwtMTEuMTM5Njk2IEwgNTY3LjMsLTc1Ljg1ODM5NSBMIDU3NC4yNCwt
MTcxLjY1ODYgTCA1ODEuMTgsLTMyOS42NDYwMyBMIDU4OC4xMiwtNjQzLjEyOTMyIEwgNTk1LjA2
LC0xNTc4LjYzNTQgTCA2MDIsMjE0OSBMIDYwOC45NCwyMTQ4LjYzNTQgTCA2MTUuODgsMTIxMy4x
MjkzIEwgNjIyLjgyLDg5OS42NDYwMiBMIDYyOS43Niw3NDEuNjU4NiBMIDYzNi43LDY0NS44NTgz
OSBMIDY0My42NCw1ODEuMTM5NyBMIDY1MC41OCw1MzQuMTY4OTMgTCA2NTcuNTIsNDk4LjI3Njk2
IEwgNjY0LjQ2LDQ2OS43NTY0NCBMIDY3MS40LDQ0Ni4zODA3OCBMIDY3OC4zNCw0MjYuNzMwOSBM
IDY4NS4yOCw0MDkuODU4NTcgTCA2OTIuMjIsMzk1LjEwNTA4IEwgNjk5LjE2LDM4MS45OTc2NCBM
IDcwNi4xLDM3MC4xODcxMSBMIDcxMy4wNCwzNTkuNDA5MTEgTCA3MTkuOTgsMzQ5LjQ1ODczIEwg
NzI2LjkyLDM0MC4xNzM2NiBMIDczMy44NiwzMzEuNDIyNTYgTCA3NDAuOCwzMjMuMDk2ODMgTCA3
NDcuNzQsMzE1LjEwNDY4IEwgNzU0LjY4LDMwNy4zNjY2MyBMIDc2MS42MiwyOTkuODEyMTIgTCA3
NjguNTYsMjkyLjM3Njc0IEwgNzc1LjUsMjg1Ig0KICAgICBjbGlwLXBhdGg9InVybCgjY2xpcDEp
IiAvPg0KPC9zdmc+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55237</attachid>
            <date>2010-05-06 07:52:04 -0700</date>
            <delta_ts>2010-06-07 06:37:25 -0700</delta_ts>
            <desc>Revised patch to fix SVG number parsing, large number handling, fix 2 layout test outputs</desc>
            <filename>svg-patch-all.txt</filename>
            <type>text/plain</type>
            <size>5221</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc2stZXhj
ZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CmluZGV4IDIxZDdhMGMu
LmMwYTgwM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApA
QCAtMyw2ICszLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgICBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gW2lkPSJtYXNrIl0gW21hc2tV
bml0cz1vYmplY3RCb3VuZGluZ0JveF0gW21hc2tDb250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2Vd
Ci0gICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDB4MCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAw
LDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0OC4wMCBMMC4wMCwyMTQ3NDgzNjQ4LjAwIFoi
XQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2
NDguMDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDgu
MDAgWiJdCiAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIwMCwyMDApIHNpemUgMTAweDIwMCBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjAwLjAwLDIwMC4w
MCBMMzAwLjAwLDIwMC4wMCBMMzAwLjAwLDQwMC4wMCBMMjAwLjAwLDQwMC4wMCBaIl0KICAgICAg
IFttYXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDE5MCwx
ODApIHNpemUgMjE0NzQ4MzY0ODAwLjAweDQyOTQ5NjcyOTYwMC4wMApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9j
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRl
cm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKaW5kZXggM2IxM2M4NC4uZDM2YmU1MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVybi1l
eGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CkBAIC00
LDUgKzQsNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7
c3ZnfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIg
e2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4g
e3BhdHRlcm59IFtpZD0icGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtw
YXR0ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwwLjAwIEwxMjE1NzUyMTky
LjAwLDEyMTU3NTIxOTIuMDAgTDAuMDAsMTIxNTc1MjE5Mi4wMCBaIl0KKyAgICAgICAgUmVuZGVy
UGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDAuMDAgTDk5
OTk5OTk3OTUyLjAwLDk5OTk5OTk3OTUyLjAwIEwwLjAwLDk5OTk5OTk3OTUyLjAwIFoiXQogICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMCwzMDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9
UEFUVEVSTl0gW2lkPSJwYXR0ZXJuIl19XSBbZGF0YT0iTTEwLjAwLDMwMC4wMCBMMTEwLjAwLDMw
MC4wMCBMMTEwLjAwLDQwMC4wMCBMMTAuMDAsNDAwLjAwIFoiXQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFJlY3QuY3BwCmluZGV4IDdhNTRmMjEuLjYzYjI1Y2UgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKQEAgLTExMCwxMyArMTEwLDIzIEBAIHZvaWQgRmxv
YXRSZWN0OjpzY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kpCiAgICAgbV9zaXplLnNldEhlaWdodCho
ZWlnaHQoKSAqIHN5KTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgc2FmZUZsb2F0VG9JbnQoZmxv
YXQgeCkKK3sKKyAgICBpZiAoeCA+PSAyMTQ3NDgzNjQ4LjBmKQorICAgICAgICByZXR1cm4gMjE0
NzQ4MzY0NyA7CisgICAgaWYgKHggPCAtMjE0NzQ4MzY0OC4wZikKKyAgICAgICAgcmV0dXJuIC0y
MTQ3NDgzNjQ3IDsgLy8gbm90IGFsbG93ZWQgLTIxNDc0ODM2NDcgaW4gSVNPIEM5MAorICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxpbnQ+KHgpOworfQorCiBJbnRSZWN0IGVuY2xvc2luZ0ludFJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGludCBsID0gc3RhdGljX2Nhc3Q8aW50Pihm
bG9vcmYocmVjdC54KCkpKTsKLSAgICBpbnQgdCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKHJl
Y3QueSgpKSk7Ci0gICAgaW50IHIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJlY3QucmlnaHQo
KSkpOwotICAgIGludCBiID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0LmJvdHRvbSgpKSk7
Ci0gICAgcmV0dXJuIEludFJlY3QobCwgdCwgciAtIGwsIGIgLSB0KTsKKyAgICBmbG9hdCBsZiA9
IGZsb29yZihyZWN0LngoKSk7CisgICAgZmxvYXQgdGYgPSBmbG9vcmYocmVjdC55KCkpOworICAg
IGZsb2F0IHdmID0gY2VpbGYocmVjdC5yaWdodCgpKSAtIGxmIDsKKyAgICBmbG9hdCBoZiA9IGNl
aWxmKHJlY3QuYm90dG9tKCkpIC0gdGYgOworICAgIHJldHVybiBJbnRSZWN0KHNhZmVGbG9hdFRv
SW50KGxmKSwgc2FmZUZsb2F0VG9JbnQodGYpLCAKKyAgICAgICAgICAgICAgICAgICBzYWZlRmxv
YXRUb0ludCh3ZiksIHNhZmVGbG9hdFRvSW50KGhmKSk7CiB9CiAKIEZsb2F0UmVjdCBtYXBSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgciwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0
aWVzLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKaW5kZXggYjI0YzNj
Yy4uNTMyZWI5ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNw
cAorKysgYi9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCkBAIC01NSw4ICs1NSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAqLyAgICAKIHRlbXBsYXRlIDx0eXBlbmFtZSBGbG9h
dFR5cGU+IHN0YXRpYyBib29sIF9wYXJzZU51bWJlcihjb25zdCBVQ2hhciomIHB0ciwgY29uc3Qg
VUNoYXIqIGVuZCwgRmxvYXRUeXBlJiBudW1iZXIsIGJvb2wgc2tpcCkKIHsKLSAgICBpbnQgaW50
ZWdlciwgZXhwb25lbnQ7Ci0gICAgRmxvYXRUeXBlIGRlY2ltYWwsIGZyYWM7CisgICAgaW50IGV4
cG9uZW50OworICAgIGRvdWJsZSBkZWNpbWFsLCBpbnRlZ2VyLCBmcmFjOwogICAgIGludCBzaWdu
LCBleHBzaWduOwogICAgIGNvbnN0IFVDaGFyKiBzdGFydCA9IHB0cjsKIApAQCAtODEsNyArODEs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxvYXRUeXBlPiBzdGF0aWMgYm9vbCBfcGFyc2VOdW1i
ZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0CiAKICAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBh
cnQKICAgICB3aGlsZSAocHRyIDwgZW5kICYmICpwdHIgPj0gJzAnICYmICpwdHIgPD0gJzknKQot
ICAgICAgICBpbnRlZ2VyID0gKGludGVnZXIgKiAxMCkgKyAqKHB0cisrKSAtICcwJzsKKyAgICAg
ICAgaW50ZWdlciA9IChpbnRlZ2VyICogMTApICsgc3RhdGljX2Nhc3Q8ZG91YmxlPigqKHB0cisr
KSAtICcwJyk7CiAKICAgICBpZiAocHRyIDwgZW5kICYmICpwdHIgPT0gJy4nKSB7IC8vIHJlYWQg
dGhlIGRlY2ltYWxzCiAgICAgICAgIHB0cisrOwpAQCAtOTEsNyArOTEsNyBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgRmxvYXRUeXBlPiBzdGF0aWMgYm9vbCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIq
JiBwdHIsIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAgICAg
ICB3aGlsZSAocHRyIDwgZW5kICYmICpwdHIgPj0gJzAnICYmICpwdHIgPD0gJzknKQotICAgICAg
ICAgICAgZGVjaW1hbCArPSAoKihwdHIrKykgLSAnMCcpICogKGZyYWMgKj0gc3RhdGljX2Nhc3Q8
RmxvYXRUeXBlPigwLjEpKTsKKyAgICAgICAgICAgIGRlY2ltYWwgKz0gKCoocHRyKyspIC0gJzAn
KSAqIChmcmFjICo9IDAuMSk7CiAgICAgfQogCiAgICAgLy8gcmVhZCB0aGUgZXhwb25lbnQgcGFy
dApAQCAtMTE4LDggKzExOCw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBGbG9hdFR5cGU+IHN0YXRp
YyBib29sIF9wYXJzZU51bWJlcihjb25zdCBVQ2hhciomIHB0ciwgY29uc3QKICAgICAgICAgfQog
ICAgIH0KIAotICAgIG51bWJlciA9IGludGVnZXIgKyBkZWNpbWFsOwotICAgIG51bWJlciAqPSBz
aWduICogc3RhdGljX2Nhc3Q8RmxvYXRUeXBlPihwb3coMTAuMCwgZXhwc2lnbiAqIGV4cG9uZW50
KSk7CisgICAgbnVtYmVyID0gc2lnbiAqIHN0YXRpY19jYXN0PEZsb2F0VHlwZT4oKGludGVnZXIg
KyBkZWNpbWFsKSpwb3coMTAuMCwgZXhwc2lnbiAqIGV4cG9uZW50KSk7CiAKICAgICBpZiAoc3Rh
cnQgPT0gcHRyKQogICAgICAgICByZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57913</attachid>
            <date>2010-06-04 14:11:32 -0700</date>
            <delta_ts>2010-06-07 12:01:42 -0700</delta_ts>
            <desc>Revised patch to fix SVG number parsing of large numbers</desc>
            <filename>SVG_Large_Values.patch</filename>
            <type>text/plain</type>
            <size>5716</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">W1BBVENIXQogICAtIE1vZGlmaWVkIG1hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQg
dG8gY29ycmVjdCBzaXplIG9mIG5lc3RlZCBSZW5kZXJQYXRoIG9iamVjdAogICAtIE1vZGlmaWVk
IHBhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgdG8gcmVmbGVjdCBjb3JyZWN0
IHBhcnNpbmcgb2YgbGFyZ2UKICAgICB2YWx1ZXMgaW4gUmVuZGVyUGF0aCBvYmplY3QncyBjb29y
ZGluYXRlIHZhbHVlcwogICAtIE1vZGlmaWVkIGVuY2xvc2luZ0ludFJlY3QgdG8gcGVyZm9ybSBz
YWZlIGZsb2F0IHRvIGludCBjb252ZXJzaW9ucyBmb3IgbGFyZ2UgdmFsdWVzCiAgIC0gbW9kaWZp
ZWQgcGFyc2luZyBpbiBfcGFyc2VOdW1iZXIgdG8KICAgICAxKSBkbyBpbnRlZ2VyLXBhcnQgcGFy
c2luZyByaWdoLXRvLWxlZnQgKGJldHRlciBvdmVyYWxsIGFjY3VyYWN5KSwgYW5kCiAgICAgMikg
ZG8gaW50ZWdlci1wYXJ0IHBhcnNpbmcgdXNpbmcgRmxvYXRUeXBlIHZhcmlhYmxlLCB0byBpbmNy
ZWFzZSByYW5nZSB0byBiZXN0IGF2YWlsYWJsZQoKLS0tCiAuLi4vc3ZnL2N1c3RvbS9tYXNrLWV4
Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0ICB8ICAgIDIgKy0KIC4uLi9jdXN0b20vcGF0dGVy
bi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCAgIHwgICAgMiArLQogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysr
KysrKy0tLS0tCiBXZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwICAgICAgICAgICAg
ICAgICB8ICAgMTggKysrKysrKysrKysrKystLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDMxIGluc2Vy
dGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2Mt
ZXhwZWN0ZWQudHh0CmluZGV4IDQ2MDU4ZjYuLjhjOWNjZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNl
c3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDYgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9v
dCB7c3ZnfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
ciB7bWFza30gW2lkPSJtYXNrIl0gW21hc2tVbml0cz1vYmplY3RCb3VuZGluZ0JveF0gW21hc2tD
b250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MCwwKSBzaXplIDB4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRh
PSJNMC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0
OC4wMCBMMC4wMCwyMTQ3NDgzNjQ4LjAwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0g
W2RhdGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3
NDgzNjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDguMDAgWiJdCiAgICAgUmVuZGVyUGF0aCB7cGF0aH0g
YXQgKDIwMCwyMDApIHNpemUgMTAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MEZGXX1dIFtkYXRhPSJNMjAwLjAwLDIwMC4wMCBMMzAwLjAwLDIwMC4wMCBMMzAwLjAwLDQwMC4w
MCBMMjAwLjAwLDQwMC4wMCBaIl0KICAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNv
dXJjZU1hc2tlciB7bWFza30gYXQgKDE5MCwxODApIHNpemUgMjE0NzQ4MzUyMHgyMTQ3NDgzNTIw
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJu
LWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAppbmRleCAz
YjEzYzg0Li5kMzZiZTUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1l
eHBlY3RlZC50eHQKQEAgLTQsNSArNCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlclNW
R0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRlclNW
R1Jlc291cmNlUGF0dGVybiB7cGF0dGVybn0gW2lkPSJwYXR0ZXJuIl0gW3BhdHRlcm5Vbml0cz11
c2VyU3BhY2VPblVzZV0gW3BhdHRlcm5Db250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwxMjE1NzUyMTkyLjAw
LDAuMDAgTDEyMTU3NTIxOTIuMDAsMTIxNTc1MjE5Mi4wMCBMMC4wMCwxMjE1NzUyMTkyLjAwIFoi
XQorICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMOTk5OTk5
OTc5NTIuMDAsMC4wMCBMOTk5OTk5OTc5NTIuMDAsOTk5OTk5OTc5NTIuMDAgTDAuMDAsOTk5OTk5
OTc5NTIuMDAgWiJdCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEwLDMwMCkgc2l6ZSAxMDB4
MTAwIFtmaWxsPXtbdHlwZT1QQVRURVJOXSBbaWQ9InBhdHRlcm4iXX1dIFtkYXRhPSJNMTAuMDAs
MzAwLjAwIEwxMTAuMDAsMzAwLjAwIEwxMTAuMDAsNDAwLjAwIEwxMC4wMCw0MDAuMDAgWiJdCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKaW5kZXggN2E1NGYyMS4uNjNiMjVj
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcApAQCAtMTEwLDEzICsx
MTAsMjMgQEAgdm9pZCBGbG9hdFJlY3Q6OnNjYWxlKGZsb2F0IHN4LCBmbG9hdCBzeSkKICAgICBt
X3NpemUuc2V0SGVpZ2h0KGhlaWdodCgpICogc3kpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBz
YWZlRmxvYXRUb0ludChmbG9hdCB4KQoreworICAgIGlmICh4ID49IDIxNDc0ODM2NDguMGYpCisg
ICAgICAgIHJldHVybiAyMTQ3NDgzNjQ3IDsKKyAgICBpZiAoeCA8IC0yMTQ3NDgzNjQ4LjBmKQor
ICAgICAgICByZXR1cm4gLTIxNDc0ODM2NDcgOyAvLyBub3QgYWxsb3dlZCAtMjE0NzQ4MzY0NyBp
biBJU08gQzkwCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oeCk7Cit9CisKIEludFJlY3Qg
ZW5jbG9zaW5nSW50UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgaW50IGwgPSBz
dGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0LngoKSkpOwotICAgIGludCB0ID0gc3RhdGljX2Nh
c3Q8aW50PihmbG9vcmYocmVjdC55KCkpKTsKLSAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4o
Y2VpbGYocmVjdC5yaWdodCgpKSk7Ci0gICAgaW50IGIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxm
KHJlY3QuYm90dG9tKCkpKTsKLSAgICByZXR1cm4gSW50UmVjdChsLCB0LCByIC0gbCwgYiAtIHQp
OworICAgIGZsb2F0IGxmID0gZmxvb3JmKHJlY3QueCgpKTsKKyAgICBmbG9hdCB0ZiA9IGZsb29y
ZihyZWN0LnkoKSk7CisgICAgZmxvYXQgd2YgPSBjZWlsZihyZWN0LnJpZ2h0KCkpIC0gbGYgOwor
ICAgIGZsb2F0IGhmID0gY2VpbGYocmVjdC5ib3R0b20oKSkgLSB0ZiA7CisgICAgcmV0dXJuIElu
dFJlY3Qoc2FmZUZsb2F0VG9JbnQobGYpLCBzYWZlRmxvYXRUb0ludCh0ZiksIAorICAgICAgICAg
ICAgICAgICAgIHNhZmVGbG9hdFRvSW50KHdmKSwgc2FmZUZsb2F0VG9JbnQoaGYpKTsKIH0KIAog
RmxvYXRSZWN0IG1hcFJlY3QoY29uc3QgRmxvYXRSZWN0JiByLCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2
Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVz
LmNwcAppbmRleCBjNzIyMjMyLi5hZGM5OWJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdQ
YXJzZXJVdGlsaXRpZXMuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5j
cHAKQEAgLTU1LDggKzU1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICovICAgIAogdGVtcGxh
dGUgPHR5cGVuYW1lIEZsb2F0VHlwZT4gc3RhdGljIGJvb2wgX3BhcnNlTnVtYmVyKGNvbnN0IFVD
aGFyKiYgcHRyLCBjb25zdCBVQ2hhciogZW5kLCBGbG9hdFR5cGUmIG51bWJlciwgYm9vbCBza2lw
KQogewotICAgIGludCBpbnRlZ2VyLCBleHBvbmVudDsKLSAgICBGbG9hdFR5cGUgZGVjaW1hbCwg
ZnJhYzsKKyAgICBpbnQgZXhwb25lbnQ7CisgICAgRmxvYXRUeXBlIGludGVnZXIsIGRlY2ltYWws
IGZyYWM7CiAgICAgaW50IHNpZ24sIGV4cHNpZ247CiAgICAgY29uc3QgVUNoYXIqIHN0YXJ0ID0g
cHRyOwogCkBAIC03OSw5ICs3OSwxOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxvYXRUeXBlPiBz
dGF0aWMgYm9vbCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0CiAgICAgICAg
IC8vIFRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSBudW1iZXIgbXVzdCBiZSBvbmUgb2YgWzAtOSst
Ll0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gcmVhZCB0aGUgaW50ZWdlciBwYXJ0
CisgICAgLy8gcmVhZCB0aGUgaW50ZWdlciBwYXJ0LCByaWdodC10by1sZWZ0CisgICAgY29uc3Qg
VUNoYXIgKnB0cjIgPSBwdHIgOwogICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKnB0ciA+PSAnMCcg
JiYgKnB0ciA8PSAnOScpCi0gICAgICAgIGludGVnZXIgPSAoaW50ZWdlciAqIDEwKSArICoocHRy
KyspIC0gJzAnOworICAgICAgKytwdHIgOworCisgICAgaWYgKHB0ciAhPSBwdHIyKSB7CisgICAg
ICBjb25zdCBVQ2hhciAqcHRyMyA9IHB0ciAtIDEgOworICAgICAgRmxvYXRUeXBlIG11bHRpcGxp
ZXIgPSAxIDsKKyAgICAgIHdoaWxlIChwdHIzID49IHB0cjIpIHsKKyAgICAgICAgaW50ZWdlciAr
PSBtdWx0aXBsaWVyICogc3RhdGljX2Nhc3Q8RmxvYXRUeXBlPigqKHB0cjMtLSkgLSAnMCcpOwor
ICAgICAgICBtdWx0aXBsaWVyICo9IDEwIDsKKyAgICAgIH0KKyAgICB9CiAKICAgICBpZiAocHRy
IDwgZW5kICYmICpwdHIgPT0gJy4nKSB7IC8vIHJlYWQgdGhlIGRlY2ltYWxzCiAgICAgICAgIHB0
cisrOwotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="42817"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58066</attachid>
            <date>2010-06-07 12:01:42 -0700</date>
            <delta_ts>2010-06-07 12:48:30 -0700</delta_ts>
            <desc>Revised (v3) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>5129</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1N2FlZWQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRp
bmF0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMCwwKSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0tMTAwMC4wMCwxMjM0NTY3OTM5NTUw
NjA5NDA4MC4wMCBMMjAwLjAwLDIwMC4wMCJdCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAs
MCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBGRjAwXX1dIFtkYXRh
PSJNNjAwLjAwLDQwMC4wMCBMMTAwMC4wMCwtOTg3NjU0MzUxNjQwNDg3NTI2NDAuMDAiXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLnN2ZyBi
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg5ZDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcKQEAgLTAsMCArMSwx
MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5v
Ij8+CisKKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0
dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CisKKzxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjYwMCIgaWQ9InN2Z3Jv
b3QiIHZlcnNpb249IjEuMSIgd2lkdGg9IjgwMCIgeD0iMCIgeT0iMCI+CisKKyAgICA8cGF0aCBk
PSJNIC0xMDAwLDEyMzQ1Njc4OTAxMjM0NTY3ODkwIEwgMjAwLDIwMCIgc3R5bGU9ImZpbGw6bm9u
ZTtzdHJva2U6IzAwMDBmZjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1vcGFjaXR5OjEiIC8+Cisg
ICAgPHBhdGggZD0iTSA2MDAsNDAwIEwgMTAwMCwtOS44NzY1NDMyMTA5ODc2NTQzMjEwZSsxOSIg
c3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwZmYwMDtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1v
cGFjaXR5OjEiIC8+CisgCis8L3N2Zz4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OTg5ZC4uMmJjMjBmYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxMC0wNi0wNyAgVy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldmlzZWQgdG8g
aW1wcm92ZSB2YXJpYWJsZSBuYW1lcyBpbiBlbmNsb3NpbmdJbnRSZWN0KCksIF9wYXJzZU51bWJl
cigpLCBhbmQgZml4IHN0eWxlIGlzc3Vlcy4KKworICAgICAgICAtIFJldmlzZWQgRmxvYXRSZWN0
IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZlcnNpb25zIGluIGVuY2xvc2luZ0ludFJl
Y3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVtYmVyIHRvIGRvIHJpZ2h0LXRvLWxlZnQg
ZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1ZQorCisgICAgICAgIFNWRyAtIG51bWVy
aWMgb3ZlcmZsb3cgZm9yIHZlcnkgbGFyZ2UgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NjQ1CisKKyAgICAgICAgKiBzdmcvY3VzdG9t
L21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
Y3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnOiBBZGRlZC4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYWZlRmxvYXRU
b0ludCk6CisgICAgICAgIChXZWJDb3JlOjplbmNsb3NpbmdJbnRSZWN0KToKKyAgICAgICAgKiBz
dmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ol9wYXJzZU51bWJl
cik6CisKIDIwMTAtMDYtMDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRSZWN0LmNwcAppbmRleCA3YTU0ZjIxLi45NTcxNDhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFJlY3QuY3BwCkBAIC0xMTAsMTMgKzExMCwyMyBAQCB2b2lkIEZsb2F0UmVjdDo6
c2NhbGUoZmxvYXQgc3gsIGZsb2F0IHN5KQogICAgIG1fc2l6ZS5zZXRIZWlnaHQoaGVpZ2h0KCkg
KiBzeSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHNhZmVGbG9hdFRvSW50KGZsb2F0IHgpCit7
CisgICAgaWYgKHggPj0gMjE0NzQ4MzY0OC4wZikKKyAgICAgICAgcmV0dXJuIDIxNDc0ODM2NDc7
CisgICAgaWYgKHggPCAtMjE0NzQ4MzY0OC4wZikKKyAgICAgICAgcmV0dXJuIC0yMTQ3NDgzNjQ3
OyAvLyBub3QgYWxsb3dlZCAtMjE0NzQ4MzY0NyBpbiBJU08gQzkwCisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4oeCk7Cit9CisKIEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCiB7Ci0gICAgaW50IGwgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0
LngoKSkpOwotICAgIGludCB0ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC55KCkpKTsK
LSAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5yaWdodCgpKSk7Ci0gICAg
aW50IGIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJlY3QuYm90dG9tKCkpKTsKLSAgICByZXR1
cm4gSW50UmVjdChsLCB0LCByIC0gbCwgYiAtIHQpOworICAgIGZsb2F0IGZMZWZ0ID0gZmxvb3Jm
KHJlY3QueCgpKTsKKyAgICBmbG9hdCBmVG9wID0gZmxvb3JmKHJlY3QueSgpKTsKKyAgICBmbG9h
dCBmV2lkdGggPSBjZWlsZihyZWN0LnJpZ2h0KCkpIC0gZkxlZnQ7CisgICAgZmxvYXQgZkhlaWdo
dCA9IGNlaWxmKHJlY3QuYm90dG9tKCkpIC0gZlRvcDsKKyAgICByZXR1cm4gSW50UmVjdChzYWZl
RmxvYXRUb0ludChmTGVmdCksIHNhZmVGbG9hdFRvSW50KGZUb3ApLCAKKyAgICAgICAgICAgICAg
ICAgICBzYWZlRmxvYXRUb0ludChmV2lkdGgpLCBzYWZlRmxvYXRUb0ludChmSGVpZ2h0KSk7CiB9
CiAKIEZsb2F0UmVjdCBtYXBSZWN0KGNvbnN0IEZsb2F0UmVjdCYgciwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxp
dGllcy5jcHAKaW5kZXggYzcyMjIzMi4uMjQ5ODFiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcv
U1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRp
ZXMuY3BwCkBAIC01NSw4ICs1NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAqLyAgICAKIHRl
bXBsYXRlIDx0eXBlbmFtZSBGbG9hdFR5cGU+IHN0YXRpYyBib29sIF9wYXJzZU51bWJlcihjb25z
dCBVQ2hhciomIHB0ciwgY29uc3QgVUNoYXIqIGVuZCwgRmxvYXRUeXBlJiBudW1iZXIsIGJvb2wg
c2tpcCkKIHsKLSAgICBpbnQgaW50ZWdlciwgZXhwb25lbnQ7Ci0gICAgRmxvYXRUeXBlIGRlY2lt
YWwsIGZyYWM7CisgICAgaW50IGV4cG9uZW50OworICAgIEZsb2F0VHlwZSBpbnRlZ2VyLCBkZWNp
bWFsLCBmcmFjOwogICAgIGludCBzaWduLCBleHBzaWduOwogICAgIGNvbnN0IFVDaGFyKiBzdGFy
dCA9IHB0cjsKIApAQCAtNzksOSArNzksMTkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEZsb2F0VHlw
ZT4gc3RhdGljIGJvb2wgX3BhcnNlTnVtYmVyKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdAogICAg
ICAgICAvLyBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbnVtYmVyIG11c3QgYmUgb25lIG9mIFsw
LTkrLS5dCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIHJlYWQgdGhlIGludGVnZXIg
cGFydAorICAgIC8vIHJlYWQgdGhlIGludGVnZXIgcGFydCwgYnVpbGQgcmlnaHQtdG8tbGVmdAor
ICAgIGNvbnN0IFVDaGFyICpwdHJTdGFydEludFBhcnQgPSBwdHI7CiAgICAgd2hpbGUgKHB0ciA8
IGVuZCAmJiAqcHRyID49ICcwJyAmJiAqcHRyIDw9ICc5JykKLSAgICAgICAgaW50ZWdlciA9IChp
bnRlZ2VyICogMTApICsgKihwdHIrKykgLSAnMCc7CisgICAgICArK3B0cjsgLy8gQWR2YW5jZSB0
byBmaXJzdCBub24tZGlnaXQuCisKKyAgICBpZiAocHRyICE9IHB0clN0YXJ0SW50UGFydCkgewor
ICAgICAgY29uc3QgVUNoYXIgKnB0clNjYW5JbnRQYXJ0ID0gcHRyIC0gMTsKKyAgICAgIEZsb2F0
VHlwZSBtdWx0aXBsaWVyID0gMTsKKyAgICAgIHdoaWxlIChwdHJTY2FuSW50UGFydCA+PSBwdHJT
dGFydEludFBhcnQpIHsKKyAgICAgICAgaW50ZWdlciA9IGludGVnZXIgKyBtdWx0aXBsaWVyICog
c3RhdGljX2Nhc3Q8RmxvYXRUeXBlPigqKHB0clNjYW5JbnRQYXJ0LS0pIC0gJzAnKTsKKyAgICAg
ICAgbXVsdGlwbGllciAqPSAxMDsKKyAgICAgIH0KKyAgICB9CiAKICAgICBpZiAocHRyIDwgZW5k
ICYmICpwdHIgPT0gJy4nKSB7IC8vIHJlYWQgdGhlIGRlY2ltYWxzCiAgICAgICAgIHB0cisrOwo=
</data>
<flag name="review"
          id="42879"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58072</attachid>
            <date>2010-06-07 12:48:30 -0700</date>
            <delta_ts>2010-06-08 12:08:51 -0700</delta_ts>
            <desc>Revised (v4) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>6898</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOGFmY2Q3Li42MDNjMDY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDYt
MDcgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcgLSBudW1lcmljIG92ZXJm
bG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFJldmlzZWQgdmFyaWFibGUgbmFt
aW5nIGluIGVuY2xvc2luZ0ludFJlY3QoKS4KKworICAgICAgICBSZXZpc2VkIHRvIGltcHJvdmUg
dmFyaWFibGUgbmFtZXMgaW4gZW5jbG9zaW5nSW50UmVjdCgpLCBfcGFyc2VOdW1iZXIoKSwgYW5k
IGZpeCBzdHlsZSBpc3N1ZXMuCisKKyAgICAgICAgLSBSZXZpc2VkIEZsb2F0UmVjdCB0byByZW1v
dmUgYmFkIGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3NpbmdJbnRSZWN0KCkKKyAg
ICAgICAgLSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10by1sZWZ0IGZsb2F0LWJh
c2VkIHBhcnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICAqIHN2Zy9jdXN0b20vbWFzc2l2
ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20v
bWFzc2l2ZS1jb29yZGluYXRlcy5zdmc6IEFkZGVkLgorCiAyMDEwLTA2LTA0ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
SHlhdHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRp
bmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3Jk
aW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
NTdhZWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZl
LWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNLTEwMDAuMDAsMTIzNDU2
NzkzOTU1MDYwOTQwODAuMDAgTDIwMC4wMCwyMDAuMDAiXQorICAgIFJlbmRlclBhdGgge3BhdGh9
IGF0ICgwLDApIHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF19
XSBbZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEwMDAuMDAsLTk4NzY1NDM1MTY0MDQ4NzUyNjQwLjAw
Il0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRl
cy5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OWQ4YzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCkBAIC0w
LDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFs
b25lPSJubyI/PgorCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgor
Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI2MDAiIGlk
PSJzdmdyb290IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSI4MDAiIHg9IjAiIHk9IjAiPgorCisgICAg
PHBhdGggZD0iTSAtMTAwMCwxMjM0NTY3ODkwMTIzNDU2Nzg5MCBMIDIwMCwyMDAiIHN0eWxlPSJm
aWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2Utb3BhY2l0eTox
IiAvPgorICAgIDxwYXRoIGQ9Ik0gNjAwLDQwMCBMIDEwMDAsLTkuODc2NTQzMjEwOTg3NjU0MzIx
MGUrMTkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMGZmMDA7c3Ryb2tlLXdpZHRoOjFweDtz
dHJva2Utb3BhY2l0eToxIiAvPgorIAorPC9zdmc+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjODk4OWQuLmVjNGZhZjQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTIgQEAKKzIwMTAtMDYtMDcgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
LSBudW1lcmljIG92ZXJmbG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFJldmlz
ZWQgdmFyaWFibGUgbmFtaW5nIGluIGVuY2xvc2luZ0ludFJlY3QoKS4KKworICAgICAgICBSZXZp
c2VkIHRvIGltcHJvdmUgdmFyaWFibGUgbmFtZXMgaW4gZW5jbG9zaW5nSW50UmVjdCgpLCBfcGFy
c2VOdW1iZXIoKSwgYW5kIGZpeCBzdHlsZSBpc3N1ZXMuCisKKyAgICAgICAgLSBSZXZpc2VkIEZs
b2F0UmVjdCB0byByZW1vdmUgYmFkIGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3Np
bmdJbnRSZWN0KCkKKyAgICAgICAgLSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10
by1sZWZ0IGZsb2F0LWJhc2VkIHBhcnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICBUZXN0
OiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2FmZUZsb2F0VG9J
bnQpOgorICAgICAgICAoV2ViQ29yZTo6ZW5jbG9zaW5nSW50UmVjdCk6CisgICAgICAgICogc3Zn
L1NWR1BhcnNlclV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpfcGFyc2VOdW1iZXIp
OgorCisyMDEwLTA2LTA3ICBhYmFydGhAd2Via2l0Lm9yZyAgPGFiYXJ0aEB3ZWJraXQub3JnQDI2
OGY0NWNjLWNkMDktMDQxMC1hYjNjLWQ1MjY5MWI0ZGJmYz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAyMDEwLTA2LTA0ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KKworICAgICAgICAgICAgICAgIE1ha2UgSFRNTDVMZXhlciBnbyBmYXN0CisgICAgICAgICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDQ4CisKKyAg
ICAgICAgICAgICAgICBXZSdyZSBnb2luZyB0byBkbyB0aGlzIHBhdGNoIGluIHNtYWxsIHN0ZXBz
IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHZlcmlmeSBjb3JyZWN0bmVzcy4KKworICAgICAgICAgICAg
ICAgICogaHRtbC9IVE1MNUxleGVyLmNwcDoKKyAgICAgICAgICAgICAgICAoV2ViQ29yZTo6SFRN
TDVMZXhlcjo6bmV4dFRva2VuKToKKworCisgICAgICAgIGdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4u
d2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC90cnVua0A2MDY5NCAyNjhmNDVjYy1jZDA5LTA0
MTAtYWIzYy1kNTI2OTFiNGRiZmMKKworICAgICAgICBTVkcgLSBudW1lcmljIG92ZXJmbG93IGZv
ciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisg
ICAgICAgICogaHRtbC9IVE1MNUxleGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1TGV4
ZXI6Om5leHRUb2tlbik6CisKIDIwMTAtMDYtMDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRSZWN0LmNwcAppbmRleCA3YTU0ZjIxLi43MTQwNDI5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCkBAIC0xMTAsMTMgKzExMCwyMyBAQCB2b2lk
IEZsb2F0UmVjdDo6c2NhbGUoZmxvYXQgc3gsIGZsb2F0IHN5KQogICAgIG1fc2l6ZS5zZXRIZWln
aHQoaGVpZ2h0KCkgKiBzeSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHNhZmVGbG9hdFRvSW50
KGZsb2F0IHgpCit7CisgICAgaWYgKHggPj0gMjE0NzQ4MzY0OC4wZikKKyAgICAgICAgcmV0dXJu
IDIxNDc0ODM2NDc7CisgICAgaWYgKHggPCAtMjE0NzQ4MzY0OC4wZikKKyAgICAgICAgcmV0dXJu
IC0yMTQ3NDgzNjQ3OyAvLyBub3QgYWxsb3dlZCAtMjE0NzQ4MzY0OCBpbiBJU08gQzkwCisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGludD4oeCk7Cit9CisKIEludFJlY3QgZW5jbG9zaW5nSW50UmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgaW50IGwgPSBzdGF0aWNfY2FzdDxpbnQ+
KGZsb29yZihyZWN0LngoKSkpOwotICAgIGludCB0ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYo
cmVjdC55KCkpKTsKLSAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5yaWdo
dCgpKSk7Ci0gICAgaW50IGIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJlY3QuYm90dG9tKCkp
KTsKLSAgICByZXR1cm4gSW50UmVjdChsLCB0LCByIC0gbCwgYiAtIHQpOworICAgIGZsb2F0IGxl
ZnQgPSBmbG9vcmYocmVjdC54KCkpOworICAgIGZsb2F0IHRvcCA9IGZsb29yZihyZWN0LnkoKSk7
CisgICAgZmxvYXQgd2lkdGggPSBjZWlsZihyZWN0LnJpZ2h0KCkpIC0gbGVmdDsKKyAgICBmbG9h
dCBoZWlnaHQgPSBjZWlsZihyZWN0LmJvdHRvbSgpKSAtIHRvcDsKKyAgICByZXR1cm4gSW50UmVj
dChzYWZlRmxvYXRUb0ludChsZWZ0KSwgc2FmZUZsb2F0VG9JbnQodG9wKSwgCisgICAgICAgICAg
ICAgICAgICAgc2FmZUZsb2F0VG9JbnQod2lkdGgpLCBzYWZlRmxvYXRUb0ludChoZWlnaHQpKTsK
IH0KIAogRmxvYXRSZWN0IG1hcFJlY3QoY29uc3QgRmxvYXRSZWN0JiByLCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRp
bGl0aWVzLmNwcAppbmRleCBjNzIyMjMyLi40ODgwZTc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2
Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxp
dGllcy5jcHAKQEAgLTU1LDggKzU1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICovICAgIAog
dGVtcGxhdGUgPHR5cGVuYW1lIEZsb2F0VHlwZT4gc3RhdGljIGJvb2wgX3BhcnNlTnVtYmVyKGNv
bnN0IFVDaGFyKiYgcHRyLCBjb25zdCBVQ2hhciogZW5kLCBGbG9hdFR5cGUmIG51bWJlciwgYm9v
bCBza2lwKQogewotICAgIGludCBpbnRlZ2VyLCBleHBvbmVudDsKLSAgICBGbG9hdFR5cGUgZGVj
aW1hbCwgZnJhYzsKKyAgICBpbnQgZXhwb25lbnQ7CisgICAgRmxvYXRUeXBlIGludGVnZXIsIGRl
Y2ltYWwsIGZyYWM7CiAgICAgaW50IHNpZ24sIGV4cHNpZ247CiAgICAgY29uc3QgVUNoYXIqIHN0
YXJ0ID0gcHRyOwogCkBAIC03OSw5ICs3OSwxOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxvYXRU
eXBlPiBzdGF0aWMgYm9vbCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0CiAg
ICAgICAgIC8vIFRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSBudW1iZXIgbXVzdCBiZSBvbmUgb2Yg
WzAtOSstLl0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gcmVhZCB0aGUgaW50ZWdl
ciBwYXJ0CisgICAgLy8gcmVhZCB0aGUgaW50ZWdlciBwYXJ0LCBidWlsZCByaWdodC10by1sZWZ0
CisgICAgY29uc3QgVUNoYXIqIHB0clN0YXJ0SW50UGFydCA9IHB0cjsKICAgICB3aGlsZSAocHRy
IDwgZW5kICYmICpwdHIgPj0gJzAnICYmICpwdHIgPD0gJzknKQotICAgICAgICBpbnRlZ2VyID0g
KGludGVnZXIgKiAxMCkgKyAqKHB0cisrKSAtICcwJzsKKyAgICAgICsrcHRyOyAvLyBBZHZhbmNl
IHRvIGZpcnN0IG5vbi1kaWdpdC4KKworICAgIGlmIChwdHIgIT0gcHRyU3RhcnRJbnRQYXJ0KSB7
CisgICAgICBjb25zdCBVQ2hhciogcHRyU2NhbkludFBhcnQgPSBwdHIgLSAxOworICAgICAgRmxv
YXRUeXBlIG11bHRpcGxpZXIgPSAxOworICAgICAgd2hpbGUgKHB0clNjYW5JbnRQYXJ0ID49IHB0
clN0YXJ0SW50UGFydCkgeworICAgICAgICBpbnRlZ2VyID0gaW50ZWdlciArIG11bHRpcGxpZXIg
KiBzdGF0aWNfY2FzdDxGbG9hdFR5cGU+KCoocHRyU2NhbkludFBhcnQtLSkgLSAnMCcpOworICAg
ICAgICBtdWx0aXBsaWVyICo9IDEwOworICAgICAgfQorICAgIH0KIAogICAgIGlmIChwdHIgPCBl
bmQgJiYgKnB0ciA9PSAnLicpIHsgLy8gcmVhZCB0aGUgZGVjaW1hbHMKICAgICAgICAgcHRyKys7
Cg==
</data>
<flag name="review"
          id="43056"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58167</attachid>
            <date>2010-06-08 12:08:51 -0700</date>
            <delta_ts>2010-06-16 03:16:23 -0700</delta_ts>
            <desc>Revised (v5) patch to fix SVG number parsing of large numbers</desc>
            <filename>cl1</filename>
            <type>text/plain</type>
            <size>5971</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOGFmY2Q3Li42MDNjMDY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDYt
MDcgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcgLSBudW1lcmljIG92ZXJm
bG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFJldmlzZWQgdmFyaWFibGUgbmFt
aW5nIGluIGVuY2xvc2luZ0ludFJlY3QoKS4KKworICAgICAgICBSZXZpc2VkIHRvIGltcHJvdmUg
dmFyaWFibGUgbmFtZXMgaW4gZW5jbG9zaW5nSW50UmVjdCgpLCBfcGFyc2VOdW1iZXIoKSwgYW5k
IGZpeCBzdHlsZSBpc3N1ZXMuCisKKyAgICAgICAgLSBSZXZpc2VkIEZsb2F0UmVjdCB0byByZW1v
dmUgYmFkIGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3NpbmdJbnRSZWN0KCkKKyAg
ICAgICAgLSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10by1sZWZ0IGZsb2F0LWJh
c2VkIHBhcnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICAqIHN2Zy9jdXN0b20vbWFzc2l2
ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20v
bWFzc2l2ZS1jb29yZGluYXRlcy5zdmc6IEFkZGVkLgorCiAyMDEwLTA2LTA0ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
SHlhdHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRp
bmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3Jk
aW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
NTdhZWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZl
LWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNLTEwMDAuMDAsMTIzNDU2
NzkzOTU1MDYwOTQwODAuMDAgTDIwMC4wMCwyMDAuMDAiXQorICAgIFJlbmRlclBhdGgge3BhdGh9
IGF0ICgwLDApIHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF19
XSBbZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEwMDAuMDAsLTk4NzY1NDM1MTY0MDQ4NzUyNjQwLjAw
Il0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRl
cy5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OWQ4YzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCkBAIC0w
LDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFs
b25lPSJubyI/PgorCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgor
Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI2MDAiIGlk
PSJzdmdyb290IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSI4MDAiIHg9IjAiIHk9IjAiPgorCisgICAg
PHBhdGggZD0iTSAtMTAwMCwxMjM0NTY3ODkwMTIzNDU2Nzg5MCBMIDIwMCwyMDAiIHN0eWxlPSJm
aWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2Utb3BhY2l0eTox
IiAvPgorICAgIDxwYXRoIGQ9Ik0gNjAwLDQwMCBMIDEwMDAsLTkuODc2NTQzMjEwOTg3NjU0MzIx
MGUrMTkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMGZmMDA7c3Ryb2tlLXdpZHRoOjFweDtz
dHJva2Utb3BhY2l0eToxIiAvPgorIAorPC9zdmc+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjODk4OWQuLjRhZGRhMzggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMTAtMDYtMDcgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
LSBudW1lcmljIG92ZXJmbG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFJldmlz
ZWQgdG8gaW1wcm92ZSB2YXJpYWJsZSBuYW1lcyBpbiBlbmNsb3NpbmdJbnRSZWN0KCksIF9wYXJz
ZU51bWJlcigpLCBhbmQgZml4IHN0eWxlIGlzc3Vlcy4KKworICAgICAgICAtIFJldmlzZWQgRmxv
YXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZlcnNpb25zIGluIGVuY2xvc2lu
Z0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVtYmVyIHRvIGRvIHJpZ2h0LXRv
LWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1ZQorCisgICAgICAgIFRlc3Q6
IHN2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcKKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYWZlRmxvYXRUb0lu
dCk6CisgICAgICAgIChXZWJDb3JlOjplbmNsb3NpbmdJbnRSZWN0KToKKyAgICAgICAgKiBzdmcv
U1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ol9wYXJzZU51bWJlcik6
CisKIDIwMTAtMDYtMDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
ZWN0LmNwcAppbmRleCA3YTU0ZjIxLi43MTQwNDI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJlY3QuY3BwCkBAIC0xMTAsMTMgKzExMCwyMyBAQCB2b2lkIEZsb2F0UmVjdDo6c2Nh
bGUoZmxvYXQgc3gsIGZsb2F0IHN5KQogICAgIG1fc2l6ZS5zZXRIZWlnaHQoaGVpZ2h0KCkgKiBz
eSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHNhZmVGbG9hdFRvSW50KGZsb2F0IHgpCit7Cisg
ICAgaWYgKHggPj0gMjE0NzQ4MzY0OC4wZikKKyAgICAgICAgcmV0dXJuIDIxNDc0ODM2NDc7Cisg
ICAgaWYgKHggPCAtMjE0NzQ4MzY0OC4wZikKKyAgICAgICAgcmV0dXJuIC0yMTQ3NDgzNjQ3OyAv
LyBub3QgYWxsb3dlZCAtMjE0NzQ4MzY0OCBpbiBJU08gQzkwCisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGludD4oeCk7Cit9CisKIEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBGbG9hdFJl
Y3QmIHJlY3QpCiB7Ci0gICAgaW50IGwgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0Lngo
KSkpOwotICAgIGludCB0ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC55KCkpKTsKLSAg
ICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5yaWdodCgpKSk7Ci0gICAgaW50
IGIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJlY3QuYm90dG9tKCkpKTsKLSAgICByZXR1cm4g
SW50UmVjdChsLCB0LCByIC0gbCwgYiAtIHQpOworICAgIGZsb2F0IGxlZnQgPSBmbG9vcmYocmVj
dC54KCkpOworICAgIGZsb2F0IHRvcCA9IGZsb29yZihyZWN0LnkoKSk7CisgICAgZmxvYXQgd2lk
dGggPSBjZWlsZihyZWN0LnJpZ2h0KCkpIC0gbGVmdDsKKyAgICBmbG9hdCBoZWlnaHQgPSBjZWls
ZihyZWN0LmJvdHRvbSgpKSAtIHRvcDsKKyAgICByZXR1cm4gSW50UmVjdChzYWZlRmxvYXRUb0lu
dChsZWZ0KSwgc2FmZUZsb2F0VG9JbnQodG9wKSwgCisgICAgICAgICAgICAgICAgICAgc2FmZUZs
b2F0VG9JbnQod2lkdGgpLCBzYWZlRmxvYXRUb0ludChoZWlnaHQpKTsKIH0KIAogRmxvYXRSZWN0
IG1hcFJlY3QoY29uc3QgRmxvYXRSZWN0JiByLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdQYXJz
ZXJVdGlsaXRpZXMuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAppbmRl
eCBjNzIyMjMyLi40ODgwZTc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGls
aXRpZXMuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKQEAgLTU1
LDggKzU1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICovICAgIAogdGVtcGxhdGUgPHR5cGVu
YW1lIEZsb2F0VHlwZT4gc3RhdGljIGJvb2wgX3BhcnNlTnVtYmVyKGNvbnN0IFVDaGFyKiYgcHRy
LCBjb25zdCBVQ2hhciogZW5kLCBGbG9hdFR5cGUmIG51bWJlciwgYm9vbCBza2lwKQogewotICAg
IGludCBpbnRlZ2VyLCBleHBvbmVudDsKLSAgICBGbG9hdFR5cGUgZGVjaW1hbCwgZnJhYzsKKyAg
ICBpbnQgZXhwb25lbnQ7CisgICAgRmxvYXRUeXBlIGludGVnZXIsIGRlY2ltYWwsIGZyYWM7CiAg
ICAgaW50IHNpZ24sIGV4cHNpZ247CiAgICAgY29uc3QgVUNoYXIqIHN0YXJ0ID0gcHRyOwogCkBA
IC03OSw5ICs3OSwxOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxvYXRUeXBlPiBzdGF0aWMgYm9v
bCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0CiAgICAgICAgIC8vIFRoZSBm
aXJzdCBjaGFyYWN0ZXIgb2YgYSBudW1iZXIgbXVzdCBiZSBvbmUgb2YgWzAtOSstLl0KICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gcmVhZCB0aGUgaW50ZWdlciBwYXJ0CisgICAgLy8g
cmVhZCB0aGUgaW50ZWdlciBwYXJ0LCBidWlsZCByaWdodC10by1sZWZ0CisgICAgY29uc3QgVUNo
YXIqIHB0clN0YXJ0SW50UGFydCA9IHB0cjsKICAgICB3aGlsZSAocHRyIDwgZW5kICYmICpwdHIg
Pj0gJzAnICYmICpwdHIgPD0gJzknKQotICAgICAgICBpbnRlZ2VyID0gKGludGVnZXIgKiAxMCkg
KyAqKHB0cisrKSAtICcwJzsKKyAgICAgICsrcHRyOyAvLyBBZHZhbmNlIHRvIGZpcnN0IG5vbi1k
aWdpdC4KKworICAgIGlmIChwdHIgIT0gcHRyU3RhcnRJbnRQYXJ0KSB7CisgICAgICBjb25zdCBV
Q2hhciogcHRyU2NhbkludFBhcnQgPSBwdHIgLSAxOworICAgICAgRmxvYXRUeXBlIG11bHRpcGxp
ZXIgPSAxOworICAgICAgd2hpbGUgKHB0clNjYW5JbnRQYXJ0ID49IHB0clN0YXJ0SW50UGFydCkg
eworICAgICAgICBpbnRlZ2VyID0gaW50ZWdlciArIG11bHRpcGxpZXIgKiBzdGF0aWNfY2FzdDxG
bG9hdFR5cGU+KCoocHRyU2NhbkludFBhcnQtLSkgLSAnMCcpOworICAgICAgICBtdWx0aXBsaWVy
ICo9IDEwOworICAgICAgfQorICAgIH0KIAogICAgIGlmIChwdHIgPCBlbmQgJiYgKnB0ciA9PSAn
LicpIHsgLy8gcmVhZCB0aGUgZGVjaW1hbHMKICAgICAgICAgcHRyKys7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58370</attachid>
            <date>2010-06-10 06:09:39 -0700</date>
            <delta_ts>2010-06-11 07:08:30 -0700</delta_ts>
            <desc>Revised (v6) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>8556</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOGFmY2Q3Li45MjgzODcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDYt
MTAgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlZCB0d28gdGVzdCBvdXRw
dXRzIGludm9sdmluZyBsYXJnZSBjb29yZGluYXRlIHZhbHVlcy4KKyAgICAgICAgVHdvIG9mIHRo
ZSBleHBlY3RlZCB0ZXN0IG91dHB1dHMgd2VyZSBpbmNvcnJlY3Qgbm93IHRoYXQgcGFyc2luZyBv
ZiBsYXJnZSB2YWx1ZXMKKyAgICAgICAgaXMgaGFuZGxlZCBjb3JyZWN0bHkuCisKKyAgICAgICAg
UmV2aXNlZCB0byBpbXByb3ZlIHZhcmlhYmxlIG5hbWVzIGluIGVuY2xvc2luZ0ludFJlY3QoKSwg
X3BhcnNlTnVtYmVyKCksIGFuZCBmaXggc3R5bGUgaXNzdWVzLgorCisgICAgICAgIC0gUmV2aXNl
ZCBGbG9hdFJlY3QgdG8gcmVtb3ZlIGJhZCBmbG9hdC10by1pbnQgY29udmVyc2lvbnMgaW4gZW5j
bG9zaW5nSW50UmVjdCgpCisgICAgICAgIC0gUmV2aXNlZCBfcGFyc2VOdW1iZXIgdG8gZG8gcmln
aHQtdG8tbGVmdCBmbG9hdC1iYXNlZCBwYXJzaW5nIG9mIGlucHV0IHZhbHVlCisKKyAgICAgICAg
U1ZHIC0gbnVtZXJpYyBvdmVyZmxvdyBmb3IgdmVyeSBsYXJnZSBlbGVtZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2NDUKKworICAgICAgICAq
IHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUt
bWFsbG9jLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRp
bmF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL21hc3NpdmUt
Y29vcmRpbmF0ZXMuc3ZnOiBBZGRlZC4KKwogMjAxMC0wNi0wNCAgQW5kZXJzIENhcmxzc29uICA8
YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0Lgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNl
c3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
Y3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKaW5kZXggNDYwNThmNi4u
OGM5Y2NlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20v
bWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CkBA
IC0zLDYgKzMsNiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBbaWQ9Im1hc2siXSBbbWFza1Vu
aXRzPW9iamVjdEJvdW5kaW5nQm94XSBbbWFza0NvbnRlbnRVbml0cz11c2VyU3BhY2VPblVzZV0K
LSAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMHgwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2NDguMDAs
MC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDguMDAgWiJd
CisgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMjE0NzQ4MzY0
OC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDIxNDc0ODM2NDguMDAgTDAuMDAsMjE0NzQ4MzY0OC4w
MCBaIl0KICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjAwLDIwMCkgc2l6ZSAxMDB4MjAwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0yMDAuMDAsMjAwLjAw
IEwzMDAuMDAsMjAwLjAwIEwzMDAuMDAsNDAwLjAwIEwyMDAuMDAsNDAwLjAwIFoiXQogICAgICAg
W21hc2tlcj0ibWFzayJdIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBhdCAoMTkwLDE4
MCkgc2l6ZSAyMTQ3NDgzNTIweDIxNDc0ODM1MjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2
ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CmluZGV4IDNiMTNjODQuLmQzNmJlNTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1h
bGxvYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAtNCw1ICs0LDUgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAo
MCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBb
aWQ9InBhdHRlcm4iXSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRl
bnRVbml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2Rh
dGE9Ik0wLjAwLDAuMDAgTDEyMTU3NTIxOTIuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwxMjE1NzUy
MTkyLjAwIEwwLjAwLDEyMTU3NTIxOTIuMDAgWiJdCisgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAw
XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4w
MCw5OTk5OTk5Nzk1Mi4wMCBMMC4wMCw5OTk5OTk5Nzk1Mi4wMCBaIl0KICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtp
ZD0icGF0dGVybiJdfV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4w
MCw0MDAuMDAgTDEwLjAwLDQwMC4wMCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9j
dXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmU1N2FlZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9v
dCB7c3ZnfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
MCwwKSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2Rh
dGE9Ik0tMTAwMC4wMCwxMjM0NTY3OTM5NTUwNjA5NDA4MC4wMCBMMjAwLjAwLDIwMC4wMCJdCisg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDBGRjAwXX1dIFtkYXRhPSJNNjAwLjAwLDQwMC4wMCBMMTAwMC4wMCwtOTg3
NjU0MzUxNjQwNDg3NTI2NDAuMDAiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9tYXNzaXZlLWNvb3JkaW5hdGVzLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2
ZS1jb29yZGluYXRlcy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg5
ZDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1j
b29yZGluYXRlcy5zdmcKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CisKKzwhRE9DVFlQRSBzdmcgUFVCTElDICIt
Ly9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8x
LjEvRFREL3N2ZzExLmR0ZCI+CisKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIiBoZWlnaHQ9IjYwMCIgaWQ9InN2Z3Jvb3QiIHZlcnNpb249IjEuMSIgd2lkdGg9IjgwMCIg
eD0iMCIgeT0iMCI+CisKKyAgICA8cGF0aCBkPSJNIC0xMDAwLDEyMzQ1Njc4OTAxMjM0NTY3ODkw
IEwgMjAwLDIwMCIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDBmZjtzdHJva2Utd2lkdGg6
MXB4O3N0cm9rZS1vcGFjaXR5OjEiIC8+CisgICAgPHBhdGggZD0iTSA2MDAsNDAwIEwgMTAwMCwt
OS44NzY1NDMyMTA5ODc2NTQzMjEwZSsxOSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwZmYw
MDtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1vcGFjaXR5OjEiIC8+CisgCis8L3N2Zz4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OTg5
ZC4uYWYyOGFkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNi0xMCAgVy4gSmFtZXMgTWFjTGVhbiAg
PHdqbWFjbGVhbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJldmlzZWQgdG8gaW1wcm92ZSB2YXJpYWJsZSBuYW1lcyBpbiBlbmNs
b3NpbmdJbnRSZWN0KCksIF9wYXJzZU51bWJlcigpLCBhbmQgZml4IHN0eWxlIGlzc3Vlcy4KKwor
ICAgICAgICAtIFJldmlzZWQgRmxvYXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNv
bnZlcnNpb25zIGluIGVuY2xvc2luZ0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNl
TnVtYmVyIHRvIGRvIHJpZ2h0LXRvLWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2
YWx1ZQorCisgICAgICAgIFNWRyAtIG51bWVyaWMgb3ZlcmZsb3cgZm9yIHZlcnkgbGFyZ2UgZWxl
bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1
NjQ1CisKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLnN2Zwor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNhZmVGbG9hdFRvSW50KToKKyAgICAgICAgKFdlYkNvcmU6OmVuY2xvc2luZ0ludFJl
Y3QpOgorICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6X3BhcnNlTnVtYmVyKToKKwogMjAxMC0wNi0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCmluZGV4IDdhNTRmMjEuLjcxNDA0MjkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKQEAgLTExMCwxMyArMTEwLDIzIEBA
IHZvaWQgRmxvYXRSZWN0OjpzY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kpCiAgICAgbV9zaXplLnNl
dEhlaWdodChoZWlnaHQoKSAqIHN5KTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgc2FmZUZsb2F0
VG9JbnQoZmxvYXQgeCkKK3sKKyAgICBpZiAoeCA+PSAyMTQ3NDgzNjQ4LjBmKQorICAgICAgICBy
ZXR1cm4gMjE0NzQ4MzY0NzsKKyAgICBpZiAoeCA8IC0yMTQ3NDgzNjQ4LjBmKQorICAgICAgICBy
ZXR1cm4gLTIxNDc0ODM2NDc7IC8vIG5vdCBhbGxvd2VkIC0yMTQ3NDgzNjQ4IGluIElTTyBDOTAK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih4KTsKK30KKwogSW50UmVjdCBlbmNsb3NpbmdJ
bnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBpbnQgbCA9IHN0YXRpY19jYXN0
PGludD4oZmxvb3JmKHJlY3QueCgpKSk7Ci0gICAgaW50IHQgPSBzdGF0aWNfY2FzdDxpbnQ+KGZs
b29yZihyZWN0LnkoKSkpOwotICAgIGludCByID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0
LnJpZ2h0KCkpKTsKLSAgICBpbnQgYiA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5ib3R0
b20oKSkpOwotICAgIHJldHVybiBJbnRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CisgICAgZmxv
YXQgbGVmdCA9IGZsb29yZihyZWN0LngoKSk7CisgICAgZmxvYXQgdG9wID0gZmxvb3JmKHJlY3Qu
eSgpKTsKKyAgICBmbG9hdCB3aWR0aCA9IGNlaWxmKHJlY3QucmlnaHQoKSkgLSBsZWZ0OworICAg
IGZsb2F0IGhlaWdodCA9IGNlaWxmKHJlY3QuYm90dG9tKCkpIC0gdG9wOworICAgIHJldHVybiBJ
bnRSZWN0KHNhZmVGbG9hdFRvSW50KGxlZnQpLCBzYWZlRmxvYXRUb0ludCh0b3ApLCAKKyAgICAg
ICAgICAgICAgICAgICBzYWZlRmxvYXRUb0ludCh3aWR0aCksIHNhZmVGbG9hdFRvSW50KGhlaWdo
dCkpOwogfQogCiBGbG9hdFJlY3QgbWFwUmVjdChjb25zdCBGbG9hdFJlY3QmIHIsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdQYXJz
ZXJVdGlsaXRpZXMuY3BwCmluZGV4IGM3MjIyMzIuLjQ4ODBlNzggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHUGFyc2Vy
VXRpbGl0aWVzLmNwcApAQCAtNTUsOCArNTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgKi8g
ICAgCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxvYXRUeXBlPiBzdGF0aWMgYm9vbCBfcGFyc2VOdW1i
ZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQsIEZsb2F0VHlwZSYgbnVtYmVy
LCBib29sIHNraXApCiB7Ci0gICAgaW50IGludGVnZXIsIGV4cG9uZW50OwotICAgIEZsb2F0VHlw
ZSBkZWNpbWFsLCBmcmFjOworICAgIGludCBleHBvbmVudDsKKyAgICBGbG9hdFR5cGUgaW50ZWdl
ciwgZGVjaW1hbCwgZnJhYzsKICAgICBpbnQgc2lnbiwgZXhwc2lnbjsKICAgICBjb25zdCBVQ2hh
ciogc3RhcnQgPSBwdHI7CiAKQEAgLTc5LDkgKzc5LDE5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBG
bG9hdFR5cGU+IHN0YXRpYyBib29sIF9wYXJzZU51bWJlcihjb25zdCBVQ2hhciomIHB0ciwgY29u
c3QKICAgICAgICAgLy8gVGhlIGZpcnN0IGNoYXJhY3RlciBvZiBhIG51bWJlciBtdXN0IGJlIG9u
ZSBvZiBbMC05Ky0uXQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyByZWFkIHRoZSBp
bnRlZ2VyIHBhcnQKKyAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQsIGJ1aWxkIHJpZ2h0LXRv
LWxlZnQKKyAgICBjb25zdCBVQ2hhciogcHRyU3RhcnRJbnRQYXJ0ID0gcHRyOwogICAgIHdoaWxl
IChwdHIgPCBlbmQgJiYgKnB0ciA+PSAnMCcgJiYgKnB0ciA8PSAnOScpCi0gICAgICAgIGludGVn
ZXIgPSAoaW50ZWdlciAqIDEwKSArICoocHRyKyspIC0gJzAnOworICAgICAgKytwdHI7IC8vIEFk
dmFuY2UgdG8gZmlyc3Qgbm9uLWRpZ2l0LgorCisgICAgaWYgKHB0ciAhPSBwdHJTdGFydEludFBh
cnQpIHsKKyAgICAgIGNvbnN0IFVDaGFyKiBwdHJTY2FuSW50UGFydCA9IHB0ciAtIDE7CisgICAg
ICBGbG9hdFR5cGUgbXVsdGlwbGllciA9IDE7CisgICAgICB3aGlsZSAocHRyU2NhbkludFBhcnQg
Pj0gcHRyU3RhcnRJbnRQYXJ0KSB7CisgICAgICAgIGludGVnZXIgPSBpbnRlZ2VyICsgbXVsdGlw
bGllciAqIHN0YXRpY19jYXN0PEZsb2F0VHlwZT4oKihwdHJTY2FuSW50UGFydC0tKSAtICcwJyk7
CisgICAgICAgIG11bHRpcGxpZXIgKj0gMTA7CisgICAgICB9CisgICAgfQogCiAgICAgaWYgKHB0
ciA8IGVuZCAmJiAqcHRyID09ICcuJykgeyAvLyByZWFkIHRoZSBkZWNpbWFscwogICAgICAgICBw
dHIrKzsK
</data>
<flag name="review"
          id="43435"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58470</attachid>
            <date>2010-06-11 07:08:30 -0700</date>
            <delta_ts>2010-06-11 07:21:51 -0700</delta_ts>
            <desc>Revised (v7) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>9109</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOGFmY2Q3Li4xYTUxOGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDYt
MTEgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZpc2VkIHNhZmVJbnRUb0Zs
b2F0KCkgdG8gdXNlIHZhbHVlcyBmcm9tIDxsaW1pdHM+LgorCisgICAgICAgIEZpeGVkIHR3byB0
ZXN0IG91dHB1dHMgaW52b2x2aW5nIGxhcmdlIGNvb3JkaW5hdGUgdmFsdWVzLgorCisgICAgICAg
IFR3byBvZiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0
IHBhcnNpbmcgb2YgbGFyZ2UgdmFsdWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5Lgor
CisgICAgICAgIFJldmlzZWQgdG8gaW1wcm92ZSB2YXJpYWJsZSBuYW1lcyBpbiBlbmNsb3NpbmdJ
bnRSZWN0KCksIF9wYXJzZU51bWJlcigpLCBhbmQgZml4IHN0eWxlIGlzc3Vlcy4KKworICAgICAg
ICAtIFJldmlzZWQgRmxvYXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZlcnNp
b25zIGluIGVuY2xvc2luZ0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVtYmVy
IHRvIGRvIHJpZ2h0LXRvLWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1ZQor
CisgICAgICAgIFNWRyAtIG51bWVyaWMgb3ZlcmZsb3cgZm9yIHZlcnkgbGFyZ2UgZWxlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NjQ1CisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2Mt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4t
ZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2N1c3RvbS9tYXNz
aXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3Rv
bS9tYXNzaXZlLWNvb3JkaW5hdGVzLnN2ZzogQWRkZWQuCisKIDIwMTAtMDYtMDQgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZp
ZCBIeWF0dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CmluZGV4
IDQ2MDU4ZjYuLjhjOWNjZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVj
dGVkLnR4dApAQCAtMyw2ICszLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gW2lkPSJtYXNr
Il0gW21hc2tVbml0cz1vYmplY3RCb3VuZGluZ0JveF0gW21hc2tDb250ZW50VW5pdHM9dXNlclNw
YWNlT25Vc2VdCi0gICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDB4MCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTQ3
NDgzNjQ4LjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0OC4wMCBMMC4wMCwyMTQ3NDgz
NjQ4LjAwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAg
TDIxNDc0ODM2NDguMDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIx
NDc0ODM2NDguMDAgWiJdCiAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIwMCwyMDApIHNpemUg
MTAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjAw
LjAwLDIwMC4wMCBMMzAwLjAwLDIwMC4wMCBMMzAwLjAwLDQwMC4wMCBMMjAwLjAwLDQwMC4wMCBa
Il0KICAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30g
YXQgKDE5MCwxODApIHNpemUgMjE0NzQ4MzUyMHgyMTQ3NDgzNTIwCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVy
bi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAppbmRleCAzYjEzYzg0Li5kMzZiZTUyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4
Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKQEAgLTQs
NSArNCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJTVkdSb290IHtz
dmd9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7
ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybiB7
cGF0dGVybn0gW2lkPSJwYXR0ZXJuIl0gW3BhdHRlcm5Vbml0cz11c2VyU3BhY2VPblVzZV0gW3Bh
dHRlcm5Db250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYw
MDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwxMjE1NzUyMTkyLjAwLDAuMDAgTDEyMTU3NTIxOTIu
MDAsMTIxNTc1MjE5Mi4wMCBMMC4wMCwxMjE1NzUyMTkyLjAwIFoiXQorICAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMOTk5OTk5OTc5NTIuMDAsMC4wMCBMOTk5
OTk5OTc5NTIuMDAsOTk5OTk5OTc5NTIuMDAgTDAuMDAsOTk5OTk5OTc5NTIuMDAgWiJdCiAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEwLDMwMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1Q
QVRURVJOXSBbaWQ9InBhdHRlcm4iXX1dIFtkYXRhPSJNMTAuMDAsMzAwLjAwIEwxMTAuMDAsMzAw
LjAwIEwxMTAuMDAsNDAwLjAwIEwxMC4wMCw0MDAuMDAgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTdhZWVkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MEZGXX1dIFtkYXRhPSJNLTEwMDAuMDAsMTIzNDU2NzkzOTU1MDYwOTQwODAuMDAgTDIwMC4wMCwy
MDAuMDAiXQorICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDApIHNpemUgMHgwIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF19XSBbZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEw
MDAuMDAsLTk4NzY1NDM1MTY0MDQ4NzUyNjQwLjAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjM4OWQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgorCis8IURPQ1RZUEUgc3Zn
IFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFw
aGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgorCis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI2MDAiIGlkPSJzdmdyb290IiB2ZXJzaW9uPSIxLjEiIHdp
ZHRoPSI4MDAiIHg9IjAiIHk9IjAiPgorCisgICAgPHBhdGggZD0iTSAtMTAwMCwxMjM0NTY3ODkw
MTIzNDU2Nzg5MCBMIDIwMCwyMDAiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7c3Ry
b2tlLXdpZHRoOjFweDtzdHJva2Utb3BhY2l0eToxIiAvPgorICAgIDxwYXRoIGQ9Ik0gNjAwLDQw
MCBMIDEwMDAsLTkuODc2NTQzMjEwOTg3NjU0MzIxMGUrMTkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ry
b2tlOiMwMGZmMDA7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2Utb3BhY2l0eToxIiAvPgorIAorPC9z
dmc+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDRjODk4OWQuLmFiZjBiOWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDYtMTEgIFcuIEphbWVz
IE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZpc2VkIHNhZmVGbG9hdFRvSW50KCkgdG8gdXNl
IHZhbHVlcyBmcm9tIDxsaW1pdHM+LgorCisgICAgICAgIEZpeGVkIHR3byB0ZXN0IG91dHB1dHMg
aW52b2x2aW5nIGxhcmdlIGNvb3JkaW5hdGUgdmFsdWVzLgorCisgICAgICAgIFR3byBvZiB0aGUg
ZXhwZWN0ZWQgdGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0IHBhcnNpbmcgb2Yg
bGFyZ2UgdmFsdWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5LgorCisgICAgICAgIFJl
dmlzZWQgdG8gaW1wcm92ZSB2YXJpYWJsZSBuYW1lcyBpbiBlbmNsb3NpbmdJbnRSZWN0KCksIF9w
YXJzZU51bWJlcigpLCBhbmQgZml4IHN0eWxlIGlzc3Vlcy4KKworICAgICAgICBSZXZpc2VkIEZs
b2F0UmVjdCB0byByZW1vdmUgYmFkIGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3Np
bmdJbnRSZWN0KCkKKyAgICAgICAgLSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10
by1sZWZ0IGZsb2F0LWJhc2VkIHBhcnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICBTVkcg
LSBudW1lcmljIG92ZXJmbG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFRlc3Q6
IHN2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcKKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYWZlRmxvYXRUb0lu
dCk6CisgICAgICAgIChXZWJDb3JlOjplbmNsb3NpbmdJbnRSZWN0KToKKyAgICAgICAgKiBzdmcv
U1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ol9wYXJzZU51bWJlcik6
CisKIDIwMTAtMDYtMDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
ZWN0LmNwcAppbmRleCA3YTU0ZjIxLi4zMTg5OTY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJlY3QuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgog
I2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8bGltaXRz
PgogCiB1c2luZyBzdGQ6Om1heDsKIHVzaW5nIHN0ZDo6bWluOwpAQCAtMTEwLDEzICsxMTEsMjYg
QEAgdm9pZCBGbG9hdFJlY3Q6OnNjYWxlKGZsb2F0IHN4LCBmbG9hdCBzeSkKICAgICBtX3NpemUu
c2V0SGVpZ2h0KGhlaWdodCgpICogc3kpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBzYWZlRmxv
YXRUb0ludChmbG9hdCB4KQoreworICAgIHN0YXRpYyBpbnQgaW50TWF4ID0gc3RkOjpudW1lcmlj
X2xpbWl0czxpbnQ+OjptYXgoKTsKKyAgICBzdGF0aWMgaW50IGludE1pbiA9IHN0ZDo6bnVtZXJp
Y19saW1pdHM8aW50Pjo6bWluKCk7CisKKyAgICBpZiAoeCA+IHN0YXRpY19jYXN0PGZsb2F0Pihp
bnRNYXgpKQorICAgICAgICByZXR1cm4gaW50TWF4OworICAgIGlmICh4IDwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGludE1pbikpCisgICAgICAgIHJldHVybiBpbnRNaW47CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4oeCk7Cit9CisKIEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCiB7Ci0gICAgaW50IGwgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0
LngoKSkpOwotICAgIGludCB0ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC55KCkpKTsK
LSAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5yaWdodCgpKSk7Ci0gICAg
aW50IGIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJlY3QuYm90dG9tKCkpKTsKLSAgICByZXR1
cm4gSW50UmVjdChsLCB0LCByIC0gbCwgYiAtIHQpOworICAgIGZsb2F0IGxlZnQgPSBmbG9vcmYo
cmVjdC54KCkpOworICAgIGZsb2F0IHRvcCA9IGZsb29yZihyZWN0LnkoKSk7CisgICAgZmxvYXQg
d2lkdGggPSBjZWlsZihyZWN0LnJpZ2h0KCkpIC0gbGVmdDsKKyAgICBmbG9hdCBoZWlnaHQgPSBj
ZWlsZihyZWN0LmJvdHRvbSgpKSAtIHRvcDsKKyAgICByZXR1cm4gSW50UmVjdChzYWZlRmxvYXRU
b0ludChsZWZ0KSwgc2FmZUZsb2F0VG9JbnQodG9wKSwgCisgICAgICAgICAgICAgICAgICAgc2Fm
ZUZsb2F0VG9JbnQod2lkdGgpLCBzYWZlRmxvYXRUb0ludChoZWlnaHQpKTsKIH0KIAogRmxvYXRS
ZWN0IG1hcFJlY3QoY29uc3QgRmxvYXRSZWN0JiByLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdQ
YXJzZXJVdGlsaXRpZXMuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcApp
bmRleCBjNzIyMjMyLi40ODgwZTc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJV
dGlsaXRpZXMuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKQEAg
LTU1LDggKzU1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICovICAgIAogdGVtcGxhdGUgPHR5
cGVuYW1lIEZsb2F0VHlwZT4gc3RhdGljIGJvb2wgX3BhcnNlTnVtYmVyKGNvbnN0IFVDaGFyKiYg
cHRyLCBjb25zdCBVQ2hhciogZW5kLCBGbG9hdFR5cGUmIG51bWJlciwgYm9vbCBza2lwKQogewot
ICAgIGludCBpbnRlZ2VyLCBleHBvbmVudDsKLSAgICBGbG9hdFR5cGUgZGVjaW1hbCwgZnJhYzsK
KyAgICBpbnQgZXhwb25lbnQ7CisgICAgRmxvYXRUeXBlIGludGVnZXIsIGRlY2ltYWwsIGZyYWM7
CiAgICAgaW50IHNpZ24sIGV4cHNpZ247CiAgICAgY29uc3QgVUNoYXIqIHN0YXJ0ID0gcHRyOwog
CkBAIC03OSw5ICs3OSwxOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxvYXRUeXBlPiBzdGF0aWMg
Ym9vbCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0CiAgICAgICAgIC8vIFRo
ZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSBudW1iZXIgbXVzdCBiZSBvbmUgb2YgWzAtOSstLl0KICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gcmVhZCB0aGUgaW50ZWdlciBwYXJ0CisgICAg
Ly8gcmVhZCB0aGUgaW50ZWdlciBwYXJ0LCBidWlsZCByaWdodC10by1sZWZ0CisgICAgY29uc3Qg
VUNoYXIqIHB0clN0YXJ0SW50UGFydCA9IHB0cjsKICAgICB3aGlsZSAocHRyIDwgZW5kICYmICpw
dHIgPj0gJzAnICYmICpwdHIgPD0gJzknKQotICAgICAgICBpbnRlZ2VyID0gKGludGVnZXIgKiAx
MCkgKyAqKHB0cisrKSAtICcwJzsKKyAgICAgICsrcHRyOyAvLyBBZHZhbmNlIHRvIGZpcnN0IG5v
bi1kaWdpdC4KKworICAgIGlmIChwdHIgIT0gcHRyU3RhcnRJbnRQYXJ0KSB7CisgICAgICBjb25z
dCBVQ2hhciogcHRyU2NhbkludFBhcnQgPSBwdHIgLSAxOworICAgICAgRmxvYXRUeXBlIG11bHRp
cGxpZXIgPSAxOworICAgICAgd2hpbGUgKHB0clNjYW5JbnRQYXJ0ID49IHB0clN0YXJ0SW50UGFy
dCkgeworICAgICAgICBpbnRlZ2VyID0gaW50ZWdlciArIG11bHRpcGxpZXIgKiBzdGF0aWNfY2Fz
dDxGbG9hdFR5cGU+KCoocHRyU2NhbkludFBhcnQtLSkgLSAnMCcpOworICAgICAgICBtdWx0aXBs
aWVyICo9IDEwOworICAgICAgfQorICAgIH0KIAogICAgIGlmIChwdHIgPCBlbmQgJiYgKnB0ciA9
PSAnLicpIHsgLy8gcmVhZCB0aGUgZGVjaW1hbHMKICAgICAgICAgcHRyKys7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58472</attachid>
            <date>2010-06-11 07:21:51 -0700</date>
            <delta_ts>2010-06-11 08:19:10 -0700</delta_ts>
            <desc>Revised (v8) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>9122</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOGFmY2Q3Li4xYTUxOGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDYt
MTEgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZpc2VkIHNhZmVJbnRUb0Zs
b2F0KCkgdG8gdXNlIHZhbHVlcyBmcm9tIDxsaW1pdHM+LgorCisgICAgICAgIEZpeGVkIHR3byB0
ZXN0IG91dHB1dHMgaW52b2x2aW5nIGxhcmdlIGNvb3JkaW5hdGUgdmFsdWVzLgorCisgICAgICAg
IFR3byBvZiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0
IHBhcnNpbmcgb2YgbGFyZ2UgdmFsdWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5Lgor
CisgICAgICAgIFJldmlzZWQgdG8gaW1wcm92ZSB2YXJpYWJsZSBuYW1lcyBpbiBlbmNsb3NpbmdJ
bnRSZWN0KCksIF9wYXJzZU51bWJlcigpLCBhbmQgZml4IHN0eWxlIGlzc3Vlcy4KKworICAgICAg
ICAtIFJldmlzZWQgRmxvYXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZlcnNp
b25zIGluIGVuY2xvc2luZ0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVtYmVy
IHRvIGRvIHJpZ2h0LXRvLWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1ZQor
CisgICAgICAgIFNWRyAtIG51bWVyaWMgb3ZlcmZsb3cgZm9yIHZlcnkgbGFyZ2UgZWxlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NjQ1CisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2Mt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4t
ZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2N1c3RvbS9tYXNz
aXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3Rv
bS9tYXNzaXZlLWNvb3JkaW5hdGVzLnN2ZzogQWRkZWQuCisKIDIwMTAtMDYtMDQgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZp
ZCBIeWF0dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CmluZGV4
IDQ2MDU4ZjYuLjhjOWNjZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVj
dGVkLnR4dApAQCAtMyw2ICszLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gW2lkPSJtYXNr
Il0gW21hc2tVbml0cz1vYmplY3RCb3VuZGluZ0JveF0gW21hc2tDb250ZW50VW5pdHM9dXNlclNw
YWNlT25Vc2VdCi0gICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDB4MCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTQ3
NDgzNjQ4LjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0OC4wMCBMMC4wMCwyMTQ3NDgz
NjQ4LjAwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAg
TDIxNDc0ODM2NDguMDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIx
NDc0ODM2NDguMDAgWiJdCiAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIwMCwyMDApIHNpemUg
MTAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjAw
LjAwLDIwMC4wMCBMMzAwLjAwLDIwMC4wMCBMMzAwLjAwLDQwMC4wMCBMMjAwLjAwLDQwMC4wMCBa
Il0KICAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30g
YXQgKDE5MCwxODApIHNpemUgMjE0NzQ4MzUyMHgyMTQ3NDgzNTIwCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVy
bi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAppbmRleCAzYjEzYzg0Li5kMzZiZTUyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4
Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKQEAgLTQs
NSArNCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJTVkdSb290IHtz
dmd9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7
ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybiB7
cGF0dGVybn0gW2lkPSJwYXR0ZXJuIl0gW3BhdHRlcm5Vbml0cz11c2VyU3BhY2VPblVzZV0gW3Bh
dHRlcm5Db250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYw
MDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwxMjE1NzUyMTkyLjAwLDAuMDAgTDEyMTU3NTIxOTIu
MDAsMTIxNTc1MjE5Mi4wMCBMMC4wMCwxMjE1NzUyMTkyLjAwIFoiXQorICAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMOTk5OTk5OTc5NTIuMDAsMC4wMCBMOTk5
OTk5OTc5NTIuMDAsOTk5OTk5OTc5NTIuMDAgTDAuMDAsOTk5OTk5OTc5NTIuMDAgWiJdCiAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEwLDMwMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1Q
QVRURVJOXSBbaWQ9InBhdHRlcm4iXX1dIFtkYXRhPSJNMTAuMDAsMzAwLjAwIEwxMTAuMDAsMzAw
LjAwIEwxMTAuMDAsNDAwLjAwIEwxMC4wMCw0MDAuMDAgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTdhZWVkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MEZGXX1dIFtkYXRhPSJNLTEwMDAuMDAsMTIzNDU2NzkzOTU1MDYwOTQwODAuMDAgTDIwMC4wMCwy
MDAuMDAiXQorICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDApIHNpemUgMHgwIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF19XSBbZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEw
MDAuMDAsLTk4NzY1NDM1MTY0MDQ4NzUyNjQwLjAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjM4OWQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgorCis8IURPQ1RZUEUgc3Zn
IFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFw
aGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgorCis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI2MDAiIGlkPSJzdmdyb290IiB2ZXJzaW9uPSIxLjEiIHdp
ZHRoPSI4MDAiIHg9IjAiIHk9IjAiPgorCisgICAgPHBhdGggZD0iTSAtMTAwMCwxMjM0NTY3ODkw
MTIzNDU2Nzg5MCBMIDIwMCwyMDAiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7c3Ry
b2tlLXdpZHRoOjFweDtzdHJva2Utb3BhY2l0eToxIiAvPgorICAgIDxwYXRoIGQ9Ik0gNjAwLDQw
MCBMIDEwMDAsLTkuODc2NTQzMjEwOTg3NjU0MzIxMGUrMTkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ry
b2tlOiMwMGZmMDA7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2Utb3BhY2l0eToxIiAvPgorIAorPC9z
dmc+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDRjODk4OWQuLmFiZjBiOWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDYtMTEgIFcuIEphbWVz
IE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZpc2VkIHNhZmVGbG9hdFRvSW50KCkgdG8gdXNl
IHZhbHVlcyBmcm9tIDxsaW1pdHM+LgorCisgICAgICAgIEZpeGVkIHR3byB0ZXN0IG91dHB1dHMg
aW52b2x2aW5nIGxhcmdlIGNvb3JkaW5hdGUgdmFsdWVzLgorCisgICAgICAgIFR3byBvZiB0aGUg
ZXhwZWN0ZWQgdGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0IHBhcnNpbmcgb2Yg
bGFyZ2UgdmFsdWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5LgorCisgICAgICAgIFJl
dmlzZWQgdG8gaW1wcm92ZSB2YXJpYWJsZSBuYW1lcyBpbiBlbmNsb3NpbmdJbnRSZWN0KCksIF9w
YXJzZU51bWJlcigpLCBhbmQgZml4IHN0eWxlIGlzc3Vlcy4KKworICAgICAgICBSZXZpc2VkIEZs
b2F0UmVjdCB0byByZW1vdmUgYmFkIGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3Np
bmdJbnRSZWN0KCkKKyAgICAgICAgLSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10
by1sZWZ0IGZsb2F0LWJhc2VkIHBhcnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICBTVkcg
LSBudW1lcmljIG92ZXJmbG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFRlc3Q6
IHN2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcKKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYWZlRmxvYXRUb0lu
dCk6CisgICAgICAgIChXZWJDb3JlOjplbmNsb3NpbmdJbnRSZWN0KToKKyAgICAgICAgKiBzdmcv
U1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ol9wYXJzZU51bWJlcik6
CisKIDIwMTAtMDYtMDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
ZWN0LmNwcAppbmRleCA3YTU0ZjIxLi44NzQwZTI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJlY3QuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJz
aW9uLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNs
dWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgogCiB1c2luZyBzdGQ6Om1heDsKQEAgLTEx
MCwxMyArMTExLDI2IEBAIHZvaWQgRmxvYXRSZWN0OjpzY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kp
CiAgICAgbV9zaXplLnNldEhlaWdodChoZWlnaHQoKSAqIHN5KTsKIH0KIAorc3RhdGljIGlubGlu
ZSBpbnQgc2FmZUZsb2F0VG9JbnQoZmxvYXQgeCkKK3sKKyAgICBzdGF0aWMgaW50IGludE1heCA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgc3RhdGljIGludCBpbnRNaW4g
PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1pbigpOworCisgICAgaWYgKHggPiBzdGF0aWNf
Y2FzdDxmbG9hdD4oaW50TWF4KSkKKyAgICAgICAgcmV0dXJuIGludE1heDsKKyAgICBpZiAoeCA8
IHN0YXRpY19jYXN0PGZsb2F0PihpbnRNaW4pKQorICAgICAgICByZXR1cm4gaW50TWluOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHgpOworfQorCiBJbnRSZWN0IGVuY2xvc2luZ0ludFJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGludCBsID0gc3RhdGljX2Nhc3Q8aW50
PihmbG9vcmYocmVjdC54KCkpKTsKLSAgICBpbnQgdCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3Jm
KHJlY3QueSgpKSk7Ci0gICAgaW50IHIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJlY3Qucmln
aHQoKSkpOwotICAgIGludCBiID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0LmJvdHRvbSgp
KSk7Ci0gICAgcmV0dXJuIEludFJlY3QobCwgdCwgciAtIGwsIGIgLSB0KTsKKyAgICBmbG9hdCBs
ZWZ0ID0gZmxvb3JmKHJlY3QueCgpKTsKKyAgICBmbG9hdCB0b3AgPSBmbG9vcmYocmVjdC55KCkp
OworICAgIGZsb2F0IHdpZHRoID0gY2VpbGYocmVjdC5yaWdodCgpKSAtIGxlZnQ7CisgICAgZmxv
YXQgaGVpZ2h0ID0gY2VpbGYocmVjdC5ib3R0b20oKSkgLSB0b3A7CisgICAgcmV0dXJuIEludFJl
Y3Qoc2FmZUZsb2F0VG9JbnQobGVmdCksIHNhZmVGbG9hdFRvSW50KHRvcCksIAorICAgICAgICAg
ICAgICAgICAgIHNhZmVGbG9hdFRvSW50KHdpZHRoKSwgc2FmZUZsb2F0VG9JbnQoaGVpZ2h0KSk7
CiB9CiAKIEZsb2F0UmVjdCBtYXBSZWN0KGNvbnN0IEZsb2F0UmVjdCYgciwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0
aWxpdGllcy5jcHAKaW5kZXggYzcyMjIzMi4uNDg4MGU3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGls
aXRpZXMuY3BwCkBAIC01NSw4ICs1NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAqLyAgICAK
IHRlbXBsYXRlIDx0eXBlbmFtZSBGbG9hdFR5cGU+IHN0YXRpYyBib29sIF9wYXJzZU51bWJlcihj
b25zdCBVQ2hhciomIHB0ciwgY29uc3QgVUNoYXIqIGVuZCwgRmxvYXRUeXBlJiBudW1iZXIsIGJv
b2wgc2tpcCkKIHsKLSAgICBpbnQgaW50ZWdlciwgZXhwb25lbnQ7Ci0gICAgRmxvYXRUeXBlIGRl
Y2ltYWwsIGZyYWM7CisgICAgaW50IGV4cG9uZW50OworICAgIEZsb2F0VHlwZSBpbnRlZ2VyLCBk
ZWNpbWFsLCBmcmFjOwogICAgIGludCBzaWduLCBleHBzaWduOwogICAgIGNvbnN0IFVDaGFyKiBz
dGFydCA9IHB0cjsKIApAQCAtNzksOSArNzksMTkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEZsb2F0
VHlwZT4gc3RhdGljIGJvb2wgX3BhcnNlTnVtYmVyKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdAog
ICAgICAgICAvLyBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbnVtYmVyIG11c3QgYmUgb25lIG9m
IFswLTkrLS5dCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIHJlYWQgdGhlIGludGVn
ZXIgcGFydAorICAgIC8vIHJlYWQgdGhlIGludGVnZXIgcGFydCwgYnVpbGQgcmlnaHQtdG8tbGVm
dAorICAgIGNvbnN0IFVDaGFyKiBwdHJTdGFydEludFBhcnQgPSBwdHI7CiAgICAgd2hpbGUgKHB0
ciA8IGVuZCAmJiAqcHRyID49ICcwJyAmJiAqcHRyIDw9ICc5JykKLSAgICAgICAgaW50ZWdlciA9
IChpbnRlZ2VyICogMTApICsgKihwdHIrKykgLSAnMCc7CisgICAgICArK3B0cjsgLy8gQWR2YW5j
ZSB0byBmaXJzdCBub24tZGlnaXQuCisKKyAgICBpZiAocHRyICE9IHB0clN0YXJ0SW50UGFydCkg
eworICAgICAgY29uc3QgVUNoYXIqIHB0clNjYW5JbnRQYXJ0ID0gcHRyIC0gMTsKKyAgICAgIEZs
b2F0VHlwZSBtdWx0aXBsaWVyID0gMTsKKyAgICAgIHdoaWxlIChwdHJTY2FuSW50UGFydCA+PSBw
dHJTdGFydEludFBhcnQpIHsKKyAgICAgICAgaW50ZWdlciA9IGludGVnZXIgKyBtdWx0aXBsaWVy
ICogc3RhdGljX2Nhc3Q8RmxvYXRUeXBlPigqKHB0clNjYW5JbnRQYXJ0LS0pIC0gJzAnKTsKKyAg
ICAgICAgbXVsdGlwbGllciAqPSAxMDsKKyAgICAgIH0KKyAgICB9CiAKICAgICBpZiAocHRyIDwg
ZW5kICYmICpwdHIgPT0gJy4nKSB7IC8vIHJlYWQgdGhlIGRlY2ltYWxzCiAgICAgICAgIHB0cisr
Owo=
</data>
<flag name="review"
          id="44213"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58476</attachid>
            <date>2010-06-11 08:19:10 -0700</date>
            <delta_ts>2010-08-05 08:57:12 -0700</delta_ts>
            <desc>Revised (v9) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>8652</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOGFmY2Q3Li5kOTBkNWNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDYt
MTEgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcgLSBudW1lcmljIG92ZXJm
bG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFR3byBvZiB0aGUgZXhwZWN0ZWQg
dGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0IHBhcnNpbmcgb2YgbGFyZ2UgdmFs
dWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5LgorICAgICAgICAtIFJldmlzZWQgRmxv
YXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZlcnNpb25zIGluIGVuY2xvc2lu
Z0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVtYmVyIHRvIGRvIHJpZ2h0LXRv
LWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1ZQorCisgICAgICAgICogcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxs
b2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRl
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vbWFzc2l2ZS1jb29y
ZGluYXRlcy5zdmc6IEFkZGVkLgorCiAyMDEwLTA2LTA0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2
ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAppbmRleCA0NjA1OGY2Li44Yzlj
Y2U2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNr
LWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKQEAgLTMs
NiArMyw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCiAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAg
ICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IFtpZD0ibWFzayJdIFttYXNrVW5pdHM9
b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwwLjAw
IEwyMTQ3NDgzNjQ4LjAwLDIxNDc0ODM2NDguMDAgTDAuMDAsMjE0NzQ4MzY0OC4wMCBaIl0KKyAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAw
LDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0OC4wMCBMMC4wMCwyMTQ3NDgzNjQ4LjAwIFoi
XQogICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMDAsMjAwKSBzaXplIDEwMHgyMDAgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTIwMC4wMCwyMDAuMDAgTDMw
MC4wMCwyMDAuMDAgTDMwMC4wMCw0MDAuMDAgTDIwMC4wMCw0MDAuMDAgWiJdCiAgICAgICBbbWFz
a2VyPSJtYXNrIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgxOTAsMTgwKSBz
aXplIDIxNDc0ODM1MjB4MjE0NzQ4MzUyMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1h
bGxvYy1leHBlY3RlZC50eHQKaW5kZXggM2IxM2M4NC4uZDM2YmU1MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9j
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9w
YXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CkBAIC00LDUgKzQsNSBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDAp
IHNpemUgMHgwCiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3BhdHRlcm59IFtpZD0i
cGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtwYXR0ZXJuQ29udGVudFVu
aXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBz
aXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0i
TTAuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwwLjAwIEwxMjE1NzUyMTkyLjAwLDEyMTU3NTIxOTIu
MDAgTDAuMDAsMTIxNTc1MjE5Mi4wMCBaIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0g
W2RhdGE9Ik0wLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDk5
OTk5OTk3OTUyLjAwIEwwLjAwLDk5OTk5OTk3OTUyLjAwIFoiXQogICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICgxMCwzMDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9UEFUVEVSTl0gW2lkPSJw
YXR0ZXJuIl19XSBbZGF0YT0iTTEwLjAwLDMwMC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEwLjAwLDQw
MC4wMCBMMTAuMDAsNDAwLjAwIFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0
b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZTU3YWVlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2
Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtz
dmd9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDAp
IHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0i
TS0xMDAwLjAwLDEyMzQ1Njc5Mzk1NTA2MDk0MDgwLjAwIEwyMDAuMDAsMjAwLjAwIl0KKyAgICBS
ZW5kZXJQYXRoIHtwYXRofSBhdCAoMCwwKSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMEZGMDBdfV0gW2RhdGE9Ik02MDAuMDAsNDAwLjAwIEwxMDAwLjAwLC05ODc2NTQz
NTE2NDA0ODc1MjY0MC4wMCJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21h
c3NpdmUtY29vcmRpbmF0ZXMuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNv
b3JkaW5hdGVzLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODlkOGMz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3Jk
aW5hdGVzLnN2ZwpAQCAtMCwwICsxLDEwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
PSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKworPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1cz
Qy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9E
VEQvc3ZnMTEuZHRkIj4KKworPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
IGhlaWdodD0iNjAwIiBpZD0ic3Zncm9vdCIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iODAwIiB4PSIw
IiB5PSIwIj4KKworICAgIDxwYXRoIGQ9Ik0gLTEwMDAsMTIzNDU2Nzg5MDEyMzQ1Njc4OTAgTCAy
MDAsMjAwIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMGZmO3N0cm9rZS13aWR0aDoxcHg7
c3Ryb2tlLW9wYWNpdHk6MSIgLz4KKyAgICA8cGF0aCBkPSJNIDYwMCw0MDAgTCAxMDAwLC05Ljg3
NjU0MzIxMDk4NzY1NDMyMTBlKzE5IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDBmZjAwO3N0
cm9rZS13aWR0aDoxcHg7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KKyAKKzwvc3ZnPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0Yzg5ODlkLi41
MDVlMzFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA2LTExICBXLiBKYW1lcyBNYWNMZWFuICA8d2pt
YWNsZWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU1ZHIC0gbnVtZXJpYyBvdmVyZmxvdyBmb3IgdmVyeSBsYXJnZSBlbGVtZW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2NDUK
KworICAgICAgICBUd28gb2YgdGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0cyB3ZXJlIGluY29ycmVj
dCBub3cgdGhhdCBwYXJzaW5nIG9mIGxhcmdlIHZhbHVlcworICAgICAgICBpcyBoYW5kbGVkIGNv
cnJlY3RseS4KKyAgICAgICAgLSBSZXZpc2VkIEZsb2F0UmVjdCB0byByZW1vdmUgYmFkIGZsb2F0
LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3NpbmdJbnRSZWN0KCkKKyAgICAgICAgLSBSZXZp
c2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10by1sZWZ0IGZsb2F0LWJhc2VkIHBhcnNpbmcg
b2YgaW5wdXQgdmFsdWUKKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRp
bmF0ZXMuc3ZnCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2FmZUZsb2F0VG9JbnQpOgorICAgICAgICAoV2ViQ29yZTo6ZW5j
bG9zaW5nSW50UmVjdCk6CisgICAgICAgICogc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpfcGFyc2VOdW1iZXIpOgorCiAyMDEwLTA2LTA0ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKaW5kZXggN2E1NGYyMS4uNTU4
NTYzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkludFJlY3Qu
aCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG1h
dGguaD4KIAogdXNpbmcgc3RkOjptYXg7CkBAIC0xMTAsMTMgKzExMSwyNiBAQCB2b2lkIEZsb2F0
UmVjdDo6c2NhbGUoZmxvYXQgc3gsIGZsb2F0IHN5KQogICAgIG1fc2l6ZS5zZXRIZWlnaHQoaGVp
Z2h0KCkgKiBzeSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHNhZmVGbG9hdFRvSW50KGZsb2F0
IHgpCit7CisgICAgc3RhdGljIGludCBzX2ludE1heCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
Pjo6bWF4KCk7CisgICAgc3RhdGljIGludCBzX2ludE1pbiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
aW50Pjo6bWluKCk7CisKKyAgICBpZiAoeCA+IHN0YXRpY19jYXN0PGZsb2F0PihzX2ludE1heCkp
CisgICAgICAgIHJldHVybiBzX2ludE1heDsKKyAgICBpZiAoeCA8IHN0YXRpY19jYXN0PGZsb2F0
PihzX2ludE1pbikpCisgICAgICAgIHJldHVybiBzX2ludE1pbjsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50Pih4KTsKK30KKwogSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKIHsKLSAgICBpbnQgbCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKHJlY3Qu
eCgpKSk7Ci0gICAgaW50IHQgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0LnkoKSkpOwot
ICAgIGludCByID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0LnJpZ2h0KCkpKTsKLSAgICBp
bnQgYiA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5ib3R0b20oKSkpOwotICAgIHJldHVy
biBJbnRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CisgICAgZmxvYXQgbGVmdCA9IGZsb29yZihy
ZWN0LngoKSk7CisgICAgZmxvYXQgdG9wID0gZmxvb3JmKHJlY3QueSgpKTsKKyAgICBmbG9hdCB3
aWR0aCA9IGNlaWxmKHJlY3QucmlnaHQoKSkgLSBsZWZ0OworICAgIGZsb2F0IGhlaWdodCA9IGNl
aWxmKHJlY3QuYm90dG9tKCkpIC0gdG9wOworICAgIHJldHVybiBJbnRSZWN0KHNhZmVGbG9hdFRv
SW50KGxlZnQpLCBzYWZlRmxvYXRUb0ludCh0b3ApLCAKKyAgICAgICAgICAgICAgICAgICBzYWZl
RmxvYXRUb0ludCh3aWR0aCksIHNhZmVGbG9hdFRvSW50KGhlaWdodCkpOwogfQogCiBGbG9hdFJl
Y3QgbWFwUmVjdChjb25zdCBGbG9hdFJlY3QmIHIsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1Bh
cnNlclV0aWxpdGllcy5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCmlu
ZGV4IGM3MjIyMzIuLjQ4ODBlNzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0
aWxpdGllcy5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcApAQCAt
NTUsOCArNTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgKi8gICAgCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgRmxvYXRUeXBlPiBzdGF0aWMgYm9vbCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBw
dHIsIGNvbnN0IFVDaGFyKiBlbmQsIEZsb2F0VHlwZSYgbnVtYmVyLCBib29sIHNraXApCiB7Ci0g
ICAgaW50IGludGVnZXIsIGV4cG9uZW50OwotICAgIEZsb2F0VHlwZSBkZWNpbWFsLCBmcmFjOwor
ICAgIGludCBleHBvbmVudDsKKyAgICBGbG9hdFR5cGUgaW50ZWdlciwgZGVjaW1hbCwgZnJhYzsK
ICAgICBpbnQgc2lnbiwgZXhwc2lnbjsKICAgICBjb25zdCBVQ2hhciogc3RhcnQgPSBwdHI7CiAK
QEAgLTc5LDkgKzc5LDE5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBGbG9hdFR5cGU+IHN0YXRpYyBi
b29sIF9wYXJzZU51bWJlcihjb25zdCBVQ2hhciomIHB0ciwgY29uc3QKICAgICAgICAgLy8gVGhl
IGZpcnN0IGNoYXJhY3RlciBvZiBhIG51bWJlciBtdXN0IGJlIG9uZSBvZiBbMC05Ky0uXQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQKKyAgICAv
LyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQsIGJ1aWxkIHJpZ2h0LXRvLWxlZnQKKyAgICBjb25zdCBV
Q2hhciogcHRyU3RhcnRJbnRQYXJ0ID0gcHRyOwogICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKnB0
ciA+PSAnMCcgJiYgKnB0ciA8PSAnOScpCi0gICAgICAgIGludGVnZXIgPSAoaW50ZWdlciAqIDEw
KSArICoocHRyKyspIC0gJzAnOworICAgICAgKytwdHI7IC8vIEFkdmFuY2UgdG8gZmlyc3Qgbm9u
LWRpZ2l0LgorCisgICAgaWYgKHB0ciAhPSBwdHJTdGFydEludFBhcnQpIHsKKyAgICAgIGNvbnN0
IFVDaGFyKiBwdHJTY2FuSW50UGFydCA9IHB0ciAtIDE7CisgICAgICBGbG9hdFR5cGUgbXVsdGlw
bGllciA9IDE7CisgICAgICB3aGlsZSAocHRyU2NhbkludFBhcnQgPj0gcHRyU3RhcnRJbnRQYXJ0
KSB7CisgICAgICAgIGludGVnZXIgPSBpbnRlZ2VyICsgbXVsdGlwbGllciAqIHN0YXRpY19jYXN0
PEZsb2F0VHlwZT4oKihwdHJTY2FuSW50UGFydC0tKSAtICcwJyk7CisgICAgICAgIG11bHRpcGxp
ZXIgKj0gMTA7CisgICAgICB9CisgICAgfQogCiAgICAgaWYgKHB0ciA8IGVuZCAmJiAqcHRyID09
ICcuJykgeyAvLyByZWFkIHRoZSBkZWNpbWFscwogICAgICAgICBwdHIrKzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62859</attachid>
            <date>2010-07-28 12:20:26 -0700</date>
            <delta_ts>2010-07-28 12:54:38 -0700</delta_ts>
            <desc>Revised (vA) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>14471</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyM2VlOTBjLi4zMzAxZjc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDct
MjggIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcgLSBudW1lcmljIG92ZXJm
bG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFR3byBvZiB0aGUgZXhwZWN0ZWQg
dGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0IHBhcnNpbmcgb2YgbGFyZ2UgdmFs
dWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5LgorICAgICAgICAtIFJldmlzZWQgRmxv
YXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZlcnNpb25zIGluIGVuY2xvc2lu
Z0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVtYmVyIHRvIGRvIHJpZ2h0LXRv
LWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1ZQorCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vz
c2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3Vz
dG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUt
bWFsbG9jLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0
L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnBuZzogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1h
bGxvYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9tYXNrLWV4
Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9t
L21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
Y3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3Vz
dG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEw
LTA3LTI3ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFs
bG9jLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM3NTc1ZC4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS9wYXR0ZXJu
LWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCww
IEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJTVkdSb290
IHtzdmd9IGF0ICgxMCwzMDApIHNpemUgMTAweDEwMAotICAgIFJlbmRlclNWR0hpZGRlbkNvbnRh
aW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclNWR1Jlc291cmNlUGF0
dGVybiB7cGF0dGVybn0gW2lkPSJwYXR0ZXJuIl0gW3BhdHRlcm5Vbml0cz11c2VyU3BhY2VPblVz
ZV0gW3BhdHRlcm5Db250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEw3NzkyNjQwLjAwLDAuMDAgTDc3OTI2NDAu
MDAsNzc5MjY0MC4wMCBMMC4wMCw3NzkyNjQwLjAwIFoiXQotICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgxMCwzMDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9UEFUVEVSTl0gW2lkPSJwYXR0
ZXJuIl19XSBbZGF0YT0iTTEwLjAwLDMwMC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEwLjAwLDQwMC4w
MCBMMTAuMDAsNDAwLjAwIFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3Rl
ZC50eHQKaW5kZXggOTYyYWZmYS4uYzg5M2QwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1t
YWxsb2MtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJTVkdSb290IHtzdmd9
IGF0ICgyMDAsMjAwKSBzaXplIDEwMHgyMDAKICAgICBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7
bWFza30gW2lkPSJtYXNrIl0gW21hc2tVbml0cz1vYmplY3RCb3VuZGluZ0JveF0gW21hc2tDb250
ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCww
KSBzaXplIDB4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJN
MC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0OC4w
MCBMMC4wMCwyMTQ3NDgzNjQ4LjAwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2Rh
dGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3NDgz
NjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDguMDAgWiJdCiAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDIwMCwyMDApIHNpemUgMTAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZG
XX1dIFtkYXRhPSJNMjAwLjAwLDIwMC4wMCBMMzAwLjAwLDIwMC4wMCBMMzAwLjAwLDQwMC4wMCBM
MjAwLjAwLDQwMC4wMCBaIl0KICAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJj
ZU1hc2tlciB7bWFza30gYXQgKDE5MCwxODApIHNpemUgMjE0NzQ4MzUyMHgyMTQ3NDgzNTIwCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNv
b3JkaW5hdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3Vz
dG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNiMGIxOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICBSZW5kZXJQYXRoIHtwYXRo
fSBhdCAoMCwwKSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZd
fV0gW2RhdGE9Ik0tMTAwMC4wMCwxMjM0NTY3OTM5NTUwNjA5NDA4MC4wMCBMMjAwLjAwLDIwMC4w
MCJdCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDBGRjAwXX1dIFtkYXRhPSJNNjAwLjAwLDQwMC4wMCBMMTAwMC4w
MCwtOTg3NjU0MjYzNjc5NTU3MzA0MzIuMDAiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZl
LW1hbGxvYy1leHBlY3RlZC50eHQKaW5kZXggYTMzZGNmYi4uMWQ0YThhZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFs
bG9jLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3Rv
bS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CkBAIC00LDUgKzQsNSBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMTAs
MzAwKSBzaXplIDEwMHgxMDAKICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0
ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3BhdHRlcm59
IFtpZD0icGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtwYXR0ZXJuQ29u
dGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBb
ZGF0YT0iTTAuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwwLjAwIEwxMjE1NzUyMTkyLjAwLDEyMTU3
NTIxOTIuMDAgTDAuMDAsMTIxNTc1MjE5Mi4wMCBaIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDAuMDAgTDk5OTk5OTk3OTUy
LjAwLDk5OTk5OTk3OTUyLjAwIEwwLjAwLDk5OTk5OTk3OTUyLjAwIFoiXQogICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgxMCwzMDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9UEFUVEVSTl0g
W2lkPSJwYXR0ZXJuIl19XSBbZGF0YT0iTTEwLjAwLDMwMC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEw
LjAwLDQwMC4wMCBMMTAuMDAsNDAwLjAwIFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNz
aXZlLW1hbGxvYy1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggODhkYTEyMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9zdmcvY3Vz
dG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLTcyOTBhNzVhYTJjNTU0M2Q4N2Y2OGY3MjAwNjgzYzIwClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2Mt
ZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTdhYmU1Li4wMDAw
MDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0
dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4
Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3Zn
L2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NmU4NTc1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMTAsMzAwKSBzaXplIDEwMHgx
MDAKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgw
Ci0gICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3BhdHRlcm59IFtpZD0icGF0dGVybiJd
IFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtwYXR0ZXJuQ29udGVudFVuaXRzPXVzZXJT
cGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2
MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4w
MCBMMTIxNTc1MjE5Mi4wMCwwLjAwIEwxMjE1NzUyMTkyLjAwLDEyMTU3NTIxOTIuMDAgTDAuMDAs
MTIxNTc1MjE5Mi4wMCBMMC4wMCwwLjAwIl0KLSAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTAs
MzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0dGVybiJdfV0g
W2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0MDAuMDAgTDEwLjAw
LDQwMC4wMCBMMTAuMDAsMzAwLjAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0
b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9j
dXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jODkzZDAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyU1ZH
Um9vdCB7c3ZnfSBhdCAoMjAwLDIwMCkgc2l6ZSAxMDB4MjAwCisgICAgUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXIge21hc2t9IFtpZD0ibWFzayJdIFttYXNrVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hd
IFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQorICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZG
RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMC4wMCBMMjE0NzQ4MzY0OC4w
MCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDguMDAgWiJdCisgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDIwMCwyMDApIHNpemUgMTAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMEZGXX1dIFtkYXRhPSJNMjAwLjAwLDIwMC4wMCBMMzAwLjAwLDIwMC4wMCBMMzAwLjAw
LDQwMC4wMCBMMjAwLjAwLDQwMC4wMCBaIl0KKyAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDE5MCwxODApIHNpemUgMjE0NzQ4MzUyMHgyMTQ3
NDgzNTIwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRp
bmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3Jk
aW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45
ZWQwMmRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZl
LWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6
ZSAweDAKKyAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMCwwKSBzaXplIDB4MCBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0tMTAwMC4wMCwxMjM0NTY3OTM5
NTUwNjA5NDA4MC4wMCBMMjAwLjAwLDIwMC4wMCJdCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBGRjAwXX1dIFtk
YXRhPSJNNjAwLjAwLDQwMC4wMCBMMTAwMC4wMCwtOTg3NjU0MzUxNjQwNDg3NTI2NDAuMDAiXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLnN2
ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGExY2RlMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcKQEAgLTAsMCAr
MSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9
Im5vIj8+CisKKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CisKKzxz
dmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjYwMCIgaWQ9InN2
Z3Jvb3QiIHZlcnNpb249IjEuMSIgd2lkdGg9IjgwMCIgeD0iMCIgeT0iMCI+CisKKyAgIDxwYXRo
IGQ9Ik0gLTEwMDAsMTIzNDU2Nzg5MDEyMzQ1Njc4OTAgTCAyMDAsMjAwIiBzdHlsZT0iZmlsbDpu
b25lO3N0cm9rZTojMDAwMGZmO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLW9wYWNpdHk6MSIgLz4K
KyAgIDxwYXRoIGQ9Ik0gNjAwLDQwMCBMIDEwMDAsLTkuODc2NTQzMjEwOTg3NjU0MzIxMGUrMTki
IHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMGZmMDA7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2Ut
b3BhY2l0eToxIiAvPgorCis8L3N2Zz4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ0YThhZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkgc2l6ZSAxMDB4MTAwCisgICAgUmVu
ZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVu
ZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9InBhdHRlcm4iXSBbcGF0dGVyblVu
aXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRVbml0cz11c2VyU3BhY2VPblVzZV0K
KyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDk5OTk5OTk3
OTUyLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDk5OTk5OTk3OTUyLjAwIEwwLjAwLDk5OTk5OTk3
OTUyLjAwIFoiXQorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMCwzMDApIHNpemUgMTAweDEw
MCBbZmlsbD17W3R5cGU9UEFUVEVSTl0gW2lkPSJwYXR0ZXJuIl19XSBbZGF0YT0iTTEwLjAwLDMw
MC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEwLjAwLDQwMC4wMCBMMTAuMDAsNDAwLjAwIFoiXQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNTBk
MGUzLi5hMmY0Y2FjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA3LTI4ICBXLiBKYW1lcyBNYWNMZWFu
ICA8d2ptYWNsZWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU1ZHIC0gbnVtZXJpYyBvdmVyZmxvdyBmb3IgdmVyeSBsYXJnZSBl
bGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjU2NDUKKworICAgICAgICBUd28gb2YgdGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0cyB3ZXJlIGlu
Y29ycmVjdCBub3cgdGhhdCBwYXJzaW5nIG9mIGxhcmdlIHZhbHVlcworICAgICAgICBpcyBoYW5k
bGVkIGNvcnJlY3RseS4KKyAgICAgICAgLSBSZXZpc2VkIEZsb2F0UmVjdCB0byByZW1vdmUgYmFk
IGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3NpbmdJbnRSZWN0KCkKKyAgICAgICAg
LSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10by1sZWZ0IGZsb2F0LWJhc2VkIHBh
cnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL21hc3NpdmUt
Y29vcmRpbmF0ZXMuc3ZnCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6c2FmZUZsb2F0VG9JbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6ZW5jbG9zaW5nSW50UmVjdCk6CisgICAgICAgICogc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpfcGFyc2VOdW1iZXIpOgorCiAyMDEwLTA3LTI3ICBQcmFu
YXYgS2VkaWEgIDxwcmFuYXZrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJl
Y3QuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCmluZGV4IDdh
NTRmMjEuLmU3NzM0MTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRSZWN0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRl
ICJJbnRSZWN0LmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDxtYXRoLmg+CiAKIHVzaW5nIHN0ZDo6bWF4OwpAQCAtMTEwLDEzICsxMTEsMjYgQEAg
dm9pZCBGbG9hdFJlY3Q6OnNjYWxlKGZsb2F0IHN4LCBmbG9hdCBzeSkKICAgICBtX3NpemUuc2V0
SGVpZ2h0KGhlaWdodCgpICogc3kpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBzYWZlRmxvYXRU
b0ludChmbG9hdCB4KQoreworICAgIHN0YXRpYyBpbnQgc19pbnRNYXggPSBzdGQ6Om51bWVyaWNf
bGltaXRzPGludD46Om1heCgpOworICAgIHN0YXRpYyBpbnQgc19pbnRNaW4gPSBzdGQ6Om51bWVy
aWNfbGltaXRzPGludD46Om1pbigpOworCisgICAgaWYgKHggPj0gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHNfaW50TWF4KSkKKyAgICAgICAgcmV0dXJuIHNfaW50TWF4OworICAgIGlmICh4IDwgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHNfaW50TWluKSkKKyAgICAgICAgcmV0dXJuIHNfaW50TWluOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxpbnQ+KHgpOworfQorCiBJbnRSZWN0IGVuY2xvc2luZ0ludFJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGludCBsID0gc3RhdGljX2Nhc3Q8aW50Pihm
bG9vcmYocmVjdC54KCkpKTsKLSAgICBpbnQgdCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKHJl
Y3QueSgpKSk7Ci0gICAgaW50IHIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJlY3QucmlnaHQo
KSkpOwotICAgIGludCBiID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0LmJvdHRvbSgpKSk7
Ci0gICAgcmV0dXJuIEludFJlY3QobCwgdCwgciAtIGwsIGIgLSB0KTsKKyAgIGZsb2F0IGxlZnQg
PSBmbG9vcmYocmVjdC54KCkpOworICAgZmxvYXQgdG9wID0gZmxvb3JmKHJlY3QueSgpKTsKKyAg
IGZsb2F0IHdpZHRoID0gY2VpbGYocmVjdC5yaWdodCgpKSAtIGxlZnQ7CisgICBmbG9hdCBoZWln
aHQgPSBjZWlsZihyZWN0LmJvdHRvbSgpKSAtIHRvcDsKKyAgIHJldHVybiBJbnRSZWN0KHNhZmVG
bG9hdFRvSW50KGxlZnQpLCBzYWZlRmxvYXRUb0ludCh0b3ApLCAKKyAgICAgICAgICAgICAgICAg
IHNhZmVGbG9hdFRvSW50KHdpZHRoKSwgc2FmZUZsb2F0VG9JbnQoaGVpZ2h0KSk7CiB9CiAKIEZs
b2F0UmVjdCBtYXBSZWN0KGNvbnN0IEZsb2F0UmVjdCYgciwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcv
U1ZHUGFyc2VyVXRpbGl0aWVzLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5j
cHAKaW5kZXggMTRlM2Q1OC4uZDFiZjFlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHUGFy
c2VyVXRpbGl0aWVzLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3Bw
CkBAIC00MCw4ICs0MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAqLyAgICAKIHRlbXBsYXRl
IDx0eXBlbmFtZSBGbG9hdFR5cGU+IHN0YXRpYyBib29sIF9wYXJzZU51bWJlcihjb25zdCBVQ2hh
ciomIHB0ciwgY29uc3QgVUNoYXIqIGVuZCwgRmxvYXRUeXBlJiBudW1iZXIsIGJvb2wgc2tpcCkK
IHsKLSAgICBpbnQgaW50ZWdlciwgZXhwb25lbnQ7Ci0gICAgRmxvYXRUeXBlIGRlY2ltYWwsIGZy
YWM7CisgICAgaW50IGV4cG9uZW50OworICAgIEZsb2F0VHlwZSBpbnRlZ2VyLCBkZWNpbWFsLCBm
cmFjOwogICAgIGludCBzaWduLCBleHBzaWduOwogICAgIGNvbnN0IFVDaGFyKiBzdGFydCA9IHB0
cjsKIApAQCAtNjQsOSArNjQsMTkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEZsb2F0VHlwZT4gc3Rh
dGljIGJvb2wgX3BhcnNlTnVtYmVyKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdAogICAgICAgICAv
LyBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbnVtYmVyIG11c3QgYmUgb25lIG9mIFswLTkrLS5d
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIHJlYWQgdGhlIGludGVnZXIgcGFydAor
ICAgIC8vIHJlYWQgdGhlIGludGVnZXIgcGFydCwgYnVpbGQgcmlnaHQtdG8tbGVmdAorICAgIGNv
bnN0IFVDaGFyKiBwdHJTdGFydEludFBhcnQgPSBwdHI7CiAgICAgd2hpbGUgKHB0ciA8IGVuZCAm
JiAqcHRyID49ICcwJyAmJiAqcHRyIDw9ICc5JykKLSAgICAgICAgaW50ZWdlciA9IChpbnRlZ2Vy
ICogMTApICsgKihwdHIrKykgLSAnMCc7CisgICAgICArK3B0cjsgLy8gQWR2YW5jZSB0byBmaXJz
dCBub24tZGlnaXQuCisKKyAgICBpZiAocHRyICE9IHB0clN0YXJ0SW50UGFydCkgeworICAgICAg
Y29uc3QgVUNoYXIqIHB0clNjYW5JbnRQYXJ0ID0gcHRyIC0gMTsKKyAgICAgIEZsb2F0VHlwZSBt
dWx0aXBsaWVyID0gMTsKKyAgICAgIHdoaWxlIChwdHJTY2FuSW50UGFydCA+PSBwdHJTdGFydElu
dFBhcnQpIHsKKyAgICAgICAgaW50ZWdlciA9IGludGVnZXIgKyBtdWx0aXBsaWVyICogc3RhdGlj
X2Nhc3Q8RmxvYXRUeXBlPigqKHB0clNjYW5JbnRQYXJ0LS0pIC0gJzAnKTsKKyAgICAgICAgbXVs
dGlwbGllciAqPSAxMDsKKyAgICAgIH0KKyAgICB9CiAKICAgICBpZiAocHRyIDwgZW5kICYmICpw
dHIgPT0gJy4nKSB7IC8vIHJlYWQgdGhlIGRlY2ltYWxzCiAgICAgICAgIHB0cisrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62866</attachid>
            <date>2010-07-28 12:54:38 -0700</date>
            <delta_ts>2010-07-28 13:04:55 -0700</delta_ts>
            <desc>Revised (vB) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>14781</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZDA4OTZhLi5kYzcyMWY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDct
MjggIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBT
VkcgLSBudW1lcmljIG92ZXJmbG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFR3
byBvZiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0IHBh
cnNpbmcgb2YgbGFyZ2UgdmFsdWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5LgorICAg
ICAgICAtIFJldmlzZWQgRmxvYXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZl
cnNpb25zIGluIGVuY2xvc2luZ0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVt
YmVyIHRvIGRvIHJpZ2h0LXRvLWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1
ZQorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUt
bWFsbG9jLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3Zn
L2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2
ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L3N2Zy9jdXN0b20v
cGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4
cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9zdmcvY3VzdG9tL3Bh
dHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
c3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorCiAyMDEwLTA3LTI4ICBWaWN0b3IgV2FuZyAgPHZpY3RvcndAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBjaHJvbWl1bSB0ZXN0IGV4cGVjdGF0
aW9ucyBmb3IgdGVzc3QgdGhhdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjNzU3NWQuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNl
c3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAot
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3Zn
fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIg
e2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4g
e3BhdHRlcm59IFtpZD0icGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtw
YXR0ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMNzc5MjY0MC4wMCwwLjAwIEw3NzkyNjQwLjAwLDc3
OTI2NDAuMDAgTDAuMDAsNzc5MjY0MC4wMCBaIl0KLSAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0dGVybiJd
fV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0MDAuMDAgTDEw
LjAwLDQwMC4wMCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
Y3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0
CmluZGV4IDk2MmFmZmEuLmM4OTNkMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9j
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAo
MjAwLDIwMCkgc2l6ZSAxMDB4MjAwCiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9
IFtpZD0ibWFzayJdIFttYXNrVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVu
aXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6
ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTAuMDAs
MC4wMCBMMjE0NzQ4MzY0OC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDIxNDc0ODM2NDguMDAgTDAu
MDAsMjE0NzQ4MzY0OC4wMCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNp
emUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJN
MC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0OC4w
MCBMMC4wMCwyMTQ3NDgzNjQ4LjAwIFoiXQogICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMDAs
MjAwKSBzaXplIDEwMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBb
ZGF0YT0iTTIwMC4wMCwyMDAuMDAgTDMwMC4wMCwyMDAuMDAgTDMwMC4wMCw0MDAuMDAgTDIwMC4w
MCw0MDAuMDAgWiJdCiAgICAgICBbbWFza2VyPSJtYXNrIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNr
ZXIge21hc2t9IGF0ICgxOTAsMTgwKSBzaXplIDIxNDc0ODM1MjB4MjE0NzQ4MzUyMApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGlu
YXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9t
YXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zYjBiMTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMHgwCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtk
YXRhPSJNLTEwMDAuMDAsMTIzNDU2NzkzOTU1MDYwOTQwODAuMDAgTDIwMC4wMCwyMDAuMDAiXQor
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDApIHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwRkYwMF19XSBbZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEwMDAuMDAsLTk4
NzY1NDI2MzY3OTU1NzMwNDMyLjAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxs
b2MtZXhwZWN0ZWQudHh0CmluZGV4IGEzM2RjZmIuLjFkNGE4YWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0
dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAtNCw1ICs0LDUgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkg
c2l6ZSAxMDB4MTAwCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9
InBhdHRlcm4iXSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRV
bml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgTDEyMTU3NTIxOTIuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwxMjE1NzUyMTky
LjAwIEwwLjAwLDEyMTU3NTIxOTIuMDAgWiJdCisgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtkYXRhPSJNMC4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4wMCw5
OTk5OTk5Nzk1Mi4wMCBMMC4wMCw5OTk5OTk5Nzk1Mi4wMCBaIl0KICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0i
cGF0dGVybiJdfV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0
MDAuMDAgTDEwLjAwLDQwMC4wMCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1t
YWxsb2MtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4
ZGExMjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9w
YXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApA
QCAtMSArMCwwIEBACi03MjkwYTc1YWEyYzU1NDNkODdmNjhmNzIwMDY4M2MyMApcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2
Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU3YWJlNTQ3NTVjMDQ1MDM4
MDhkZjBhZDY0M2E0ZjM3MTA5YzhiZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAz
Mjc5CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpvQ098eyNT
OUY1TT9qY3lzeTNmQQp6MHxRVF5yO0I0cSNoa1l7SHdyZDVAVVIlcFRsanlQRkwldVdBJSZ4U2RV
cnEwbnJSOHQkQEtnPkdYcTF6ZSp2SkcKejRzSCFWNWxLY1MyOEkrQzRoRHReZn0/Xz8wV3o4eE1s
LUBfJHVOPmojaElAXks4P35wbXZIO2NiIzRaUmd4VU9+CnpiO0Q/NyQtbj9nN0g3SlJmdnBHbzR+
JmNxM2BSXlczPUFoWTFRLXw7bHBUUGdKcSk5UXFYOUNTNylFTUZDfXVYVgpYPVVGJF5fdjN6R0Ji
dmR9KXo0Kn1RJGlCfUNuS0UzCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
c3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmU4NTc1Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3Np
dmUtbWFsbG9jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBh
dCAoMTAsMzAwKSBzaXplIDEwMHgxMDAKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2Rl
ZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3Bh
dHRlcm59IFtpZD0icGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtwYXR0
ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAw
MF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwwLjAwIEwxMjE1NzUyMTkyLjAw
LDEyMTU3NTIxOTIuMDAgTDAuMDAsMTIxNTc1MjE5Mi4wMCBMMC4wMCwwLjAwIl0KLSAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRF
Uk5dIFtpZD0icGF0dGVybiJdfV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAg
TDExMC4wMCw0MDAuMDAgTDEwLjAwLDQwMC4wMCBMMTAuMDAsMzAwLjAwIl0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODkzZDAzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAwLDIwMCkgc2l6ZSAxMDB4MjAw
CisgICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IFtpZD0ibWFzayJdIFttYXNrVW5p
dHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQor
ICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2NDgu
MDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDguMDAg
WiJdCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIwMCwyMDApIHNpemUgMTAweDIwMCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjAwLjAwLDIwMC4wMCBM
MzAwLjAwLDIwMC4wMCBMMzAwLjAwLDQwMC4wMCBMMjAwLjAwLDQwMC4wMCBaIl0KKyAgICAgIFtt
YXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDE5MCwxODAp
IHNpemUgMjE0NzQ4MzUyMHgyMTQ3NDgzNTIwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Zn
L2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45ZWQwMmRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMCww
KSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9
Ik0tMTAwMC4wMCwxMjM0NTY3OTM5NTUwNjA5NDA4MC4wMCBMMjAwLjAwLDIwMC4wMCJdCisgICAg
UmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDBGRjAwXX1dIFtkYXRhPSJNNjAwLjAwLDQwMC4wMCBMMTAwMC4wMCwtOTg3NjU0
MzUxNjQwNDg3NTI2NDAuMDAiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9t
YXNzaXZlLWNvb3JkaW5hdGVzLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1j
b29yZGluYXRlcy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGExY2Rl
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29y
ZGluYXRlcy5zdmcKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CisKKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9X
M0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEv
RFREL3N2ZzExLmR0ZCI+CisKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiBoZWlnaHQ9IjYwMCIgaWQ9InN2Z3Jvb3QiIHZlcnNpb249IjEuMSIgd2lkdGg9IjgwMCIgeD0i
MCIgeT0iMCI+CisKKyAgIDxwYXRoIGQ9Ik0gLTEwMDAsMTIzNDU2Nzg5MDEyMzQ1Njc4OTAgTCAy
MDAsMjAwIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMGZmO3N0cm9rZS13aWR0aDoxcHg7
c3Ryb2tlLW9wYWNpdHk6MSIgLz4KKyAgIDxwYXRoIGQ9Ik0gNjAwLDQwMCBMIDEwMDAsLTkuODc2
NTQzMjEwOTg3NjU0MzIxMGUrMTkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMGZmMDA7c3Ry
b2tlLXdpZHRoOjFweDtzdHJva2Utb3BhY2l0eToxIiAvPgorCis8L3N2Zz4KKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxv
Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ0YThh
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0dGVybi1leGNl
c3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkg
c2l6ZSAxMDB4MTAwCisgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAorICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9
InBhdHRlcm4iXSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRV
bml0cz11c2VyU3BhY2VPblVzZV0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDk5OTk5OTk3
OTUyLjAwIEwwLjAwLDk5OTk5OTk3OTUyLjAwIFoiXQorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgxMCwzMDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9UEFUVEVSTl0gW2lkPSJwYXR0ZXJu
Il19XSBbZGF0YT0iTTEwLjAwLDMwMC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEwLjAwLDQwMC4wMCBM
MTAuMDAsNDAwLjAwIFoiXQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAzMmU1NWMwLi5hYjU5ZWI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA3
LTI4ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHIC0gbnVtZXJpYyBvdmVy
ZmxvdyBmb3IgdmVyeSBsYXJnZSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2NDUKKworICAgICAgICBUd28gb2YgdGhlIGV4cGVjdGVk
IHRlc3Qgb3V0cHV0cyB3ZXJlIGluY29ycmVjdCBub3cgdGhhdCBwYXJzaW5nIG9mIGxhcmdlIHZh
bHVlcworICAgICAgICBpcyBoYW5kbGVkIGNvcnJlY3RseS4KKyAgICAgICAgLSBSZXZpc2VkIEZs
b2F0UmVjdCB0byByZW1vdmUgYmFkIGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3Np
bmdJbnRSZWN0KCkKKyAgICAgICAgLSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10
by1sZWZ0IGZsb2F0LWJhc2VkIHBhcnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICBUZXN0
OiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2FmZUZsb2F0VG9J
bnQpOgorICAgICAgICAoV2ViQ29yZTo6ZW5jbG9zaW5nSW50UmVjdCk6CisgICAgICAgICogc3Zn
L1NWR1BhcnNlclV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpfcGFyc2VOdW1iZXIp
OgorCiAyMDEwLTA3LTI4ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRSZWN0LmNwcAppbmRleCA3YTU0ZjIxLi5lNzczNDE4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRmxv
YXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKyNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgogCiB1c2luZyBzdGQ6Om1h
eDsKQEAgLTExMCwxMyArMTExLDI2IEBAIHZvaWQgRmxvYXRSZWN0OjpzY2FsZShmbG9hdCBzeCwg
ZmxvYXQgc3kpCiAgICAgbV9zaXplLnNldEhlaWdodChoZWlnaHQoKSAqIHN5KTsKIH0KIAorc3Rh
dGljIGlubGluZSBpbnQgc2FmZUZsb2F0VG9JbnQoZmxvYXQgeCkKK3sKKyAgICBzdGF0aWMgaW50
IHNfaW50TWF4ID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsKKyAgICBzdGF0aWMg
aW50IHNfaW50TWluID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptaW4oKTsKKworICAgIGlm
ICh4ID49IHN0YXRpY19jYXN0PGZsb2F0PihzX2ludE1heCkpCisgICAgICAgIHJldHVybiBzX2lu
dE1heDsKKyAgICBpZiAoeCA8IHN0YXRpY19jYXN0PGZsb2F0PihzX2ludE1pbikpCisgICAgICAg
IHJldHVybiBzX2ludE1pbjsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih4KTsKK30KKwog
SW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBp
bnQgbCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKHJlY3QueCgpKSk7Ci0gICAgaW50IHQgPSBz
dGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0LnkoKSkpOwotICAgIGludCByID0gc3RhdGljX2Nh
c3Q8aW50PihjZWlsZihyZWN0LnJpZ2h0KCkpKTsKLSAgICBpbnQgYiA9IHN0YXRpY19jYXN0PGlu
dD4oY2VpbGYocmVjdC5ib3R0b20oKSkpOwotICAgIHJldHVybiBJbnRSZWN0KGwsIHQsIHIgLSBs
LCBiIC0gdCk7CisgICBmbG9hdCBsZWZ0ID0gZmxvb3JmKHJlY3QueCgpKTsKKyAgIGZsb2F0IHRv
cCA9IGZsb29yZihyZWN0LnkoKSk7CisgICBmbG9hdCB3aWR0aCA9IGNlaWxmKHJlY3QucmlnaHQo
KSkgLSBsZWZ0OworICAgZmxvYXQgaGVpZ2h0ID0gY2VpbGYocmVjdC5ib3R0b20oKSkgLSB0b3A7
CisgICByZXR1cm4gSW50UmVjdChzYWZlRmxvYXRUb0ludChsZWZ0KSwgc2FmZUZsb2F0VG9JbnQo
dG9wKSwgCisgICAgICAgICAgICAgICAgICBzYWZlRmxvYXRUb0ludCh3aWR0aCksIHNhZmVGbG9h
dFRvSW50KGhlaWdodCkpOwogfQogCiBGbG9hdFJlY3QgbWFwUmVjdChjb25zdCBGbG9hdFJlY3Qm
IHIsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAgYi9XZWJDb3Jl
L3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCmluZGV4IDE0ZTNkNTguLmQxYmYxZTQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKKysrIGIvV2ViQ29yZS9z
dmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcApAQCAtNDAsOCArNDAsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgKi8gICAgCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxvYXRUeXBlPiBzdGF0aWMgYm9v
bCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQsIEZsb2F0
VHlwZSYgbnVtYmVyLCBib29sIHNraXApCiB7Ci0gICAgaW50IGludGVnZXIsIGV4cG9uZW50Owot
ICAgIEZsb2F0VHlwZSBkZWNpbWFsLCBmcmFjOworICAgIGludCBleHBvbmVudDsKKyAgICBGbG9h
dFR5cGUgaW50ZWdlciwgZGVjaW1hbCwgZnJhYzsKICAgICBpbnQgc2lnbiwgZXhwc2lnbjsKICAg
ICBjb25zdCBVQ2hhciogc3RhcnQgPSBwdHI7CiAKQEAgLTY0LDkgKzY0LDE5IEBAIHRlbXBsYXRl
IDx0eXBlbmFtZSBGbG9hdFR5cGU+IHN0YXRpYyBib29sIF9wYXJzZU51bWJlcihjb25zdCBVQ2hh
ciomIHB0ciwgY29uc3QKICAgICAgICAgLy8gVGhlIGZpcnN0IGNoYXJhY3RlciBvZiBhIG51bWJl
ciBtdXN0IGJlIG9uZSBvZiBbMC05Ky0uXQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAv
LyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQKKyAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQsIGJ1
aWxkIHJpZ2h0LXRvLWxlZnQKKyAgICBjb25zdCBVQ2hhciogcHRyU3RhcnRJbnRQYXJ0ID0gcHRy
OwogICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKnB0ciA+PSAnMCcgJiYgKnB0ciA8PSAnOScpCi0g
ICAgICAgIGludGVnZXIgPSAoaW50ZWdlciAqIDEwKSArICoocHRyKyspIC0gJzAnOworICAgICAg
KytwdHI7IC8vIEFkdmFuY2UgdG8gZmlyc3Qgbm9uLWRpZ2l0LgorCisgICAgaWYgKHB0ciAhPSBw
dHJTdGFydEludFBhcnQpIHsKKyAgICAgIGNvbnN0IFVDaGFyKiBwdHJTY2FuSW50UGFydCA9IHB0
ciAtIDE7CisgICAgICBGbG9hdFR5cGUgbXVsdGlwbGllciA9IDE7CisgICAgICB3aGlsZSAocHRy
U2NhbkludFBhcnQgPj0gcHRyU3RhcnRJbnRQYXJ0KSB7CisgICAgICAgIGludGVnZXIgPSBpbnRl
Z2VyICsgbXVsdGlwbGllciAqIHN0YXRpY19jYXN0PEZsb2F0VHlwZT4oKihwdHJTY2FuSW50UGFy
dC0tKSAtICcwJyk7CisgICAgICAgIG11bHRpcGxpZXIgKj0gMTA7CisgICAgICB9CisgICAgfQog
CiAgICAgaWYgKHB0ciA8IGVuZCAmJiAqcHRyID09ICcuJykgeyAvLyByZWFkIHRoZSBkZWNpbWFs
cwogICAgICAgICBwdHIrKzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62869</attachid>
            <date>2010-07-28 13:04:55 -0700</date>
            <delta_ts>2010-07-29 05:32:58 -0700</delta_ts>
            <desc>Revised (vC) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>14787</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZDA4OTZhLi5kYzcyMWY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDct
MjggIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBT
VkcgLSBudW1lcmljIG92ZXJmbG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFR3
byBvZiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0IHBh
cnNpbmcgb2YgbGFyZ2UgdmFsdWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5LgorICAg
ICAgICAtIFJldmlzZWQgRmxvYXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZl
cnNpb25zIGluIGVuY2xvc2luZ0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVt
YmVyIHRvIGRvIHJpZ2h0LXRvLWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1
ZQorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUt
bWFsbG9jLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3Zn
L2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2
ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L3N2Zy9jdXN0b20v
cGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4
cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9zdmcvY3VzdG9tL3Bh
dHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
c3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorCiAyMDEwLTA3LTI4ICBWaWN0b3IgV2FuZyAgPHZpY3RvcndAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBjaHJvbWl1bSB0ZXN0IGV4cGVjdGF0
aW9ucyBmb3IgdGVzc3QgdGhhdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjNzU3NWQuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNl
c3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAot
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3Zn
fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIg
e2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4g
e3BhdHRlcm59IFtpZD0icGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtw
YXR0ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMNzc5MjY0MC4wMCwwLjAwIEw3NzkyNjQwLjAwLDc3
OTI2NDAuMDAgTDAuMDAsNzc5MjY0MC4wMCBaIl0KLSAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0dGVybiJd
fV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0MDAuMDAgTDEw
LjAwLDQwMC4wMCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
Y3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0
CmluZGV4IDk2MmFmZmEuLmM4OTNkMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9j
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAo
MjAwLDIwMCkgc2l6ZSAxMDB4MjAwCiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9
IFtpZD0ibWFzayJdIFttYXNrVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVu
aXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6
ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTAuMDAs
MC4wMCBMMjE0NzQ4MzY0OC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDIxNDc0ODM2NDguMDAgTDAu
MDAsMjE0NzQ4MzY0OC4wMCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNp
emUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJN
MC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0OC4w
MCBMMC4wMCwyMTQ3NDgzNjQ4LjAwIFoiXQogICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMDAs
MjAwKSBzaXplIDEwMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBb
ZGF0YT0iTTIwMC4wMCwyMDAuMDAgTDMwMC4wMCwyMDAuMDAgTDMwMC4wMCw0MDAuMDAgTDIwMC4w
MCw0MDAuMDAgWiJdCiAgICAgICBbbWFza2VyPSJtYXNrIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNr
ZXIge21hc2t9IGF0ICgxOTAsMTgwKSBzaXplIDIxNDc0ODM1MjB4MjE0NzQ4MzUyMApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGlu
YXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9t
YXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zYjBiMTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMHgwCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtk
YXRhPSJNLTEwMDAuMDAsMTIzNDU2NzkzOTU1MDYwOTQwODAuMDAgTDIwMC4wMCwyMDAuMDAiXQor
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDApIHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwRkYwMF19XSBbZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEwMDAuMDAsLTk4
NzY1NDI2MzY3OTU1NzMwNDMyLjAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxs
b2MtZXhwZWN0ZWQudHh0CmluZGV4IGEzM2RjZmIuLjFkNGE4YWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0
dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAtNCw1ICs0LDUgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkg
c2l6ZSAxMDB4MTAwCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9
InBhdHRlcm4iXSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRV
bml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgTDEyMTU3NTIxOTIuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwxMjE1NzUyMTky
LjAwIEwwLjAwLDEyMTU3NTIxOTIuMDAgWiJdCisgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtkYXRhPSJNMC4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4wMCw5
OTk5OTk5Nzk1Mi4wMCBMMC4wMCw5OTk5OTk5Nzk1Mi4wMCBaIl0KICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0i
cGF0dGVybiJdfV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0
MDAuMDAgTDEwLjAwLDQwMC4wMCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1t
YWxsb2MtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4
ZGExMjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9w
YXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApA
QCAtMSArMCwwIEBACi03MjkwYTc1YWEyYzU1NDNkODdmNjhmNzIwMDY4M2MyMApcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2
Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU3YWJlNTQ3NTVjMDQ1MDM4
MDhkZjBhZDY0M2E0ZjM3MTA5YzhiZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAz
Mjc5CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpvQ098eyNT
OUY1TT9qY3lzeTNmQQp6MHxRVF5yO0I0cSNoa1l7SHdyZDVAVVIlcFRsanlQRkwldVdBJSZ4U2RV
cnEwbnJSOHQkQEtnPkdYcTF6ZSp2SkcKejRzSCFWNWxLY1MyOEkrQzRoRHReZn0/Xz8wV3o4eE1s
LUBfJHVOPmojaElAXks4P35wbXZIO2NiIzRaUmd4VU9+CnpiO0Q/NyQtbj9nN0g3SlJmdnBHbzR+
JmNxM2BSXlczPUFoWTFRLXw7bHBUUGdKcSk5UXFYOUNTNylFTUZDfXVYVgpYPVVGJF5fdjN6R0Ji
dmR9KXo0Kn1RJGlCfUNuS0UzCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
c3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmU4NTc1Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3Np
dmUtbWFsbG9jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBh
dCAoMTAsMzAwKSBzaXplIDEwMHgxMDAKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2Rl
ZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3Bh
dHRlcm59IFtpZD0icGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtwYXR0
ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAw
MF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwwLjAwIEwxMjE1NzUyMTkyLjAw
LDEyMTU3NTIxOTIuMDAgTDAuMDAsMTIxNTc1MjE5Mi4wMCBMMC4wMCwwLjAwIl0KLSAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRF
Uk5dIFtpZD0icGF0dGVybiJdfV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAg
TDExMC4wMCw0MDAuMDAgTDEwLjAwLDQwMC4wMCBMMTAuMDAsMzAwLjAwIl0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODkzZDAzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAwLDIwMCkgc2l6ZSAxMDB4MjAw
CisgICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IFtpZD0ibWFzayJdIFttYXNrVW5p
dHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQor
ICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2NDgu
MDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDguMDAg
WiJdCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIwMCwyMDApIHNpemUgMTAweDIwMCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjAwLjAwLDIwMC4wMCBM
MzAwLjAwLDIwMC4wMCBMMzAwLjAwLDQwMC4wMCBMMjAwLjAwLDQwMC4wMCBaIl0KKyAgICAgIFtt
YXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDE5MCwxODAp
IHNpemUgMjE0NzQ4MzUyMHgyMTQ3NDgzNTIwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Zn
L2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45ZWQwMmRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMCww
KSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9
Ik0tMTAwMC4wMCwxMjM0NTY3OTM5NTUwNjA5NDA4MC4wMCBMMjAwLjAwLDIwMC4wMCJdCisgICAg
UmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDBGRjAwXX1dIFtkYXRhPSJNNjAwLjAwLDQwMC4wMCBMMTAwMC4wMCwtOTg3NjU0
MzUxNjQwNDg3NTI2NDAuMDAiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9t
YXNzaXZlLWNvb3JkaW5hdGVzLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1j
b29yZGluYXRlcy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGExY2Rl
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29y
ZGluYXRlcy5zdmcKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CisKKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9X
M0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEv
RFREL3N2ZzExLmR0ZCI+CisKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiBoZWlnaHQ9IjYwMCIgaWQ9InN2Z3Jvb3QiIHZlcnNpb249IjEuMSIgd2lkdGg9IjgwMCIgeD0i
MCIgeT0iMCI+CisKKyAgIDxwYXRoIGQ9Ik0gLTEwMDAsMTIzNDU2Nzg5MDEyMzQ1Njc4OTAgTCAy
MDAsMjAwIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMGZmO3N0cm9rZS13aWR0aDoxcHg7
c3Ryb2tlLW9wYWNpdHk6MSIgLz4KKyAgIDxwYXRoIGQ9Ik0gNjAwLDQwMCBMIDEwMDAsLTkuODc2
NTQzMjEwOTg3NjU0MzIxMGUrMTkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMGZmMDA7c3Ry
b2tlLXdpZHRoOjFweDtzdHJva2Utb3BhY2l0eToxIiAvPgorCis8L3N2Zz4KKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxv
Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ0YThh
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0dGVybi1leGNl
c3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkg
c2l6ZSAxMDB4MTAwCisgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAorICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9
InBhdHRlcm4iXSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRV
bml0cz11c2VyU3BhY2VPblVzZV0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDk5OTk5OTk3
OTUyLjAwIEwwLjAwLDk5OTk5OTk3OTUyLjAwIFoiXQorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgxMCwzMDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9UEFUVEVSTl0gW2lkPSJwYXR0ZXJu
Il19XSBbZGF0YT0iTTEwLjAwLDMwMC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEwLjAwLDQwMC4wMCBM
MTAuMDAsNDAwLjAwIFoiXQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAzMmU1NWMwLi5hYjU5ZWI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA3
LTI4ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHIC0gbnVtZXJpYyBvdmVy
ZmxvdyBmb3IgdmVyeSBsYXJnZSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2NDUKKworICAgICAgICBUd28gb2YgdGhlIGV4cGVjdGVk
IHRlc3Qgb3V0cHV0cyB3ZXJlIGluY29ycmVjdCBub3cgdGhhdCBwYXJzaW5nIG9mIGxhcmdlIHZh
bHVlcworICAgICAgICBpcyBoYW5kbGVkIGNvcnJlY3RseS4KKyAgICAgICAgLSBSZXZpc2VkIEZs
b2F0UmVjdCB0byByZW1vdmUgYmFkIGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3Np
bmdJbnRSZWN0KCkKKyAgICAgICAgLSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10
by1sZWZ0IGZsb2F0LWJhc2VkIHBhcnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICBUZXN0
OiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2FmZUZsb2F0VG9J
bnQpOgorICAgICAgICAoV2ViQ29yZTo6ZW5jbG9zaW5nSW50UmVjdCk6CisgICAgICAgICogc3Zn
L1NWR1BhcnNlclV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpfcGFyc2VOdW1iZXIp
OgorCiAyMDEwLTA3LTI4ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRSZWN0LmNwcAppbmRleCA3YTU0ZjIxLi5iYzNmY2FmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRmxv
YXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKyNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgogCiB1c2luZyBzdGQ6Om1h
eDsKQEAgLTExMCwxMyArMTExLDI2IEBAIHZvaWQgRmxvYXRSZWN0OjpzY2FsZShmbG9hdCBzeCwg
ZmxvYXQgc3kpCiAgICAgbV9zaXplLnNldEhlaWdodChoZWlnaHQoKSAqIHN5KTsKIH0KIAorc3Rh
dGljIGlubGluZSBpbnQgc2FmZUZsb2F0VG9JbnQoZmxvYXQgeCkKK3sKKyAgICBzdGF0aWMgaW50
IHNfaW50TWF4ID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsKKyAgICBzdGF0aWMg
aW50IHNfaW50TWluID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptaW4oKTsKKworICAgIGlm
ICh4ID49IHN0YXRpY19jYXN0PGZsb2F0PihzX2ludE1heCkpCisgICAgICAgIHJldHVybiBzX2lu
dE1heDsKKyAgICBpZiAoeCA8IHN0YXRpY19jYXN0PGZsb2F0PihzX2ludE1pbikpCisgICAgICAg
IHJldHVybiBzX2ludE1pbjsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih4KTsKK30KKwog
SW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBp
bnQgbCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKHJlY3QueCgpKSk7Ci0gICAgaW50IHQgPSBz
dGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0LnkoKSkpOwotICAgIGludCByID0gc3RhdGljX2Nh
c3Q8aW50PihjZWlsZihyZWN0LnJpZ2h0KCkpKTsKLSAgICBpbnQgYiA9IHN0YXRpY19jYXN0PGlu
dD4oY2VpbGYocmVjdC5ib3R0b20oKSkpOwotICAgIHJldHVybiBJbnRSZWN0KGwsIHQsIHIgLSBs
LCBiIC0gdCk7CisgICAgZmxvYXQgbGVmdCA9IGZsb29yZihyZWN0LngoKSk7CisgICAgZmxvYXQg
dG9wID0gZmxvb3JmKHJlY3QueSgpKTsKKyAgICBmbG9hdCB3aWR0aCA9IGNlaWxmKHJlY3Qucmln
aHQoKSkgLSBsZWZ0OworICAgIGZsb2F0IGhlaWdodCA9IGNlaWxmKHJlY3QuYm90dG9tKCkpIC0g
dG9wOworICAgIHJldHVybiBJbnRSZWN0KHNhZmVGbG9hdFRvSW50KGxlZnQpLCBzYWZlRmxvYXRU
b0ludCh0b3ApLCAKKyAgICAgICAgICAgICAgICAgICBzYWZlRmxvYXRUb0ludCh3aWR0aCksIHNh
ZmVGbG9hdFRvSW50KGhlaWdodCkpOwogfQogCiBGbG9hdFJlY3QgbWFwUmVjdChjb25zdCBGbG9h
dFJlY3QmIHIsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAgYi9X
ZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCmluZGV4IDE0ZTNkNTguLmQxYmYxZTQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKKysrIGIvV2Vi
Q29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcApAQCAtNDAsOCArNDAsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgKi8gICAgCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxvYXRUeXBlPiBzdGF0
aWMgYm9vbCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQs
IEZsb2F0VHlwZSYgbnVtYmVyLCBib29sIHNraXApCiB7Ci0gICAgaW50IGludGVnZXIsIGV4cG9u
ZW50OwotICAgIEZsb2F0VHlwZSBkZWNpbWFsLCBmcmFjOworICAgIGludCBleHBvbmVudDsKKyAg
ICBGbG9hdFR5cGUgaW50ZWdlciwgZGVjaW1hbCwgZnJhYzsKICAgICBpbnQgc2lnbiwgZXhwc2ln
bjsKICAgICBjb25zdCBVQ2hhciogc3RhcnQgPSBwdHI7CiAKQEAgLTY0LDkgKzY0LDE5IEBAIHRl
bXBsYXRlIDx0eXBlbmFtZSBGbG9hdFR5cGU+IHN0YXRpYyBib29sIF9wYXJzZU51bWJlcihjb25z
dCBVQ2hhciomIHB0ciwgY29uc3QKICAgICAgICAgLy8gVGhlIGZpcnN0IGNoYXJhY3RlciBvZiBh
IG51bWJlciBtdXN0IGJlIG9uZSBvZiBbMC05Ky0uXQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQKKyAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBh
cnQsIGJ1aWxkIHJpZ2h0LXRvLWxlZnQKKyAgICBjb25zdCBVQ2hhciogcHRyU3RhcnRJbnRQYXJ0
ID0gcHRyOwogICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKnB0ciA+PSAnMCcgJiYgKnB0ciA8PSAn
OScpCi0gICAgICAgIGludGVnZXIgPSAoaW50ZWdlciAqIDEwKSArICoocHRyKyspIC0gJzAnOwor
ICAgICAgKytwdHI7IC8vIEFkdmFuY2UgdG8gZmlyc3Qgbm9uLWRpZ2l0LgorCisgICAgaWYgKHB0
ciAhPSBwdHJTdGFydEludFBhcnQpIHsKKyAgICAgIGNvbnN0IFVDaGFyKiBwdHJTY2FuSW50UGFy
dCA9IHB0ciAtIDE7CisgICAgICBGbG9hdFR5cGUgbXVsdGlwbGllciA9IDE7CisgICAgICB3aGls
ZSAocHRyU2NhbkludFBhcnQgPj0gcHRyU3RhcnRJbnRQYXJ0KSB7CisgICAgICAgIGludGVnZXIg
PSBpbnRlZ2VyICsgbXVsdGlwbGllciAqIHN0YXRpY19jYXN0PEZsb2F0VHlwZT4oKihwdHJTY2Fu
SW50UGFydC0tKSAtICcwJyk7CisgICAgICAgIG11bHRpcGxpZXIgKj0gMTA7CisgICAgICB9Cisg
ICAgfQogCiAgICAgaWYgKHB0ciA8IGVuZCAmJiAqcHRyID09ICcuJykgeyAvLyByZWFkIHRoZSBk
ZWNpbWFscwogICAgICAgICBwdHIrKzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62940</attachid>
            <date>2010-07-29 05:32:58 -0700</date>
            <delta_ts>2010-07-30 08:55:49 -0700</delta_ts>
            <desc>Revised (vD) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>12252</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3BhdHRlcm4t
ZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
c3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzc1NzVkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkgc2l6ZSAx
MDB4MTAwCi0gICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXpl
IDB4MAotICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9InBhdHRl
cm4iXSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRVbml0cz11
c2VyU3BhY2VPblVzZV0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAw
LDAuMDAgTDc3OTI2NDAuMDAsMC4wMCBMNzc5MjY0MC4wMCw3NzkyNjQwLjAwIEwwLjAwLDc3OTI2
NDAuMDAgWiJdCi0gICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEwLDMwMCkgc2l6ZSAxMDB4MTAw
IFtmaWxsPXtbdHlwZT1QQVRURVJOXSBbaWQ9InBhdHRlcm4iXX1dIFtkYXRhPSJNMTAuMDAsMzAw
LjAwIEwxMTAuMDAsMzAwLjAwIEwxMTAuMDAsNDAwLjAwIEwxMC4wMCw0MDAuMDAgWiJdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2
ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAppbmRleCA5NjJhZmZhLi5jODkz
ZDAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNr
LWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKQEAgLTMs
NiArMyw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCiAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDIwMCwyMDApIHNpemUgMTAweDIw
MAogICAgIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBbaWQ9Im1hc2siXSBbbWFza1Vu
aXRzPW9iamVjdEJvdW5kaW5nQm94XSBbbWFza0NvbnRlbnRVbml0cz11c2VyU3BhY2VPblVzZV0K
LSAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMHgwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2NDguMDAs
MC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDguMDAgWiJd
CisgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMjE0NzQ4MzY0
OC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDIxNDc0ODM2NDguMDAgTDAuMDAsMjE0NzQ4MzY0OC4w
MCBaIl0KICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjAwLDIwMCkgc2l6ZSAxMDB4MjAwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0yMDAuMDAsMjAwLjAw
IEwzMDAuMDAsMjAwLjAwIEwzMDAuMDAsNDAwLjAwIEwyMDAuMDAsNDAwLjAwIFoiXQogICAgICAg
W21hc2tlcj0ibWFzayJdIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBhdCAoMTkwLDE4
MCkgc2l6ZSAyMTQ3NDgzNTIweDIxNDc0ODM1MjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2IwYjE5Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21h
c3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCww
KSBzaXplIDB4MAorICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDApIHNpemUgMHgwIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTS0xMDAwLjAwLDEyMzQ1
Njc5Mzk1NTA2MDk0MDgwLjAwIEwyMDAuMDAsMjAwLjAwIl0KKyAgICBSZW5kZXJQYXRoIHtwYXRo
fSBhdCAoMCwwKSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMEZGMDBd
fV0gW2RhdGE9Ik02MDAuMDAsNDAwLjAwIEwxMDAwLjAwLC05ODc2NTQyNjM2Nzk1NTczMDQzMi4w
MCJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0
ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAppbmRl
eCBhMzNkY2ZiLi4xZDRhOGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxv
Yy1leHBlY3RlZC50eHQKQEAgLTQsNSArNCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgxMCwzMDApIHNpemUgMTAweDEwMAogICAgIFJl
bmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJl
bmRlclNWR1Jlc291cmNlUGF0dGVybiB7cGF0dGVybn0gW2lkPSJwYXR0ZXJuIl0gW3BhdHRlcm5V
bml0cz11c2VyU3BhY2VPblVzZV0gW3BhdHRlcm5Db250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2Vd
Ci0gICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwxMjE1NzUy
MTkyLjAwLDAuMDAgTDEyMTU3NTIxOTIuMDAsMTIxNTc1MjE5Mi4wMCBMMC4wMCwxMjE1NzUyMTky
LjAwIFoiXQorICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBM
OTk5OTk5OTc5NTIuMDAsMC4wMCBMOTk5OTk5OTc5NTIuMDAsOTk5OTk5OTc5NTIuMDAgTDAuMDAs
OTk5OTk5OTc5NTIuMDAgWiJdCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEwLDMwMCkgc2l6
ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1QQVRURVJOXSBbaWQ9InBhdHRlcm4iXX1dIFtkYXRhPSJN
MTAuMDAsMzAwLjAwIEwxMTAuMDAsMzAwLjAwIEwxMTAuMDAsNDAwLjAwIEwxMC4wMCw0MDAuMDAg
WiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9zdmcvY3VzdG9tL3BhdHRl
cm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OGRhMTIxLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFs
bG9jLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNzI5MGE3
NWFhMmM1NTQzZDg3ZjY4ZjcyMDA2ODNjMjAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9zdmcvY3VzdG9tL3BhdHRlcm4tZXhj
ZXNzaXZlLW1hbGxvYy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9zdmcv
Y3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE1N2FiZTU0NzU1YzA0NTAzODA4ZGYwYWQ2NDNhNGYzNzEwOWM4
YmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMzI3OQp6Y21lQVNATj8ob2xIeWB1
VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6b0NPfHsjUzlGNU0/amN5c3kzZkEKejB8UVRe
cjtCNHEjaGtZe0h3cmQ1QFVSJXBUbGp5UEZMJXVXQSUmeFNkVXJxMG5yUjh0JEBLZz5HWHExemUq
dkpHCno0c0ghVjVsS2NTMjhJK0M0aER0XmZ9P18/MFd6OHhNbC1AXyR1Tj5qI2hJQF5LOD9+cG12
SDtjYiM0WlJneFVPfgp6YjtEPzckLW4/ZzdIN0pSZnZwR280fiZjcTNgUl5XMz1BaFkxUS18O2xw
VFBnSnEpOVFxWDlDUzcpRU1GQ311WFYKWD1VRiReX3YzekdCYnZkfSl6NCp9USRpQn1DbktFMwoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1l
eGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2
Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDZlODU3NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkgc2l6ZSAxMDB4
MTAwCi0gICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4
MAotICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9InBhdHRlcm4i
XSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRVbml0cz11c2Vy
U3BhY2VPblVzZV0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAu
MDAgTDEyMTU3NTIxOTIuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwxMjE1NzUyMTkyLjAwIEwwLjAw
LDEyMTU3NTIxOTIuMDAgTDAuMDAsMC4wMCJdCi0gICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEw
LDMwMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1QQVRURVJOXSBbaWQ9InBhdHRlcm4iXX1d
IFtkYXRhPSJNMTAuMDAsMzAwLjAwIEwxMTAuMDAsMzAwLjAwIEwxMTAuMDAsNDAwLjAwIEwxMC4w
MCw0MDAuMDAgTDEwLjAwLDMwMC4wMCJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYzg5M2QwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDIwMCwyMDApIHNpemUgMTAweDIwMAorICAgIFJlbmRlclNWR1Jlc291
cmNlTWFza2VyIHttYXNrfSBbaWQ9Im1hc2siXSBbbWFza1VuaXRzPW9iamVjdEJvdW5kaW5nQm94
XSBbbWFza0NvbnRlbnRVbml0cz11c2VyU3BhY2VPblVzZV0KKyAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZG
RkZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDAuMDAgTDIxNDc0ODM2NDgu
MDAsMjE0NzQ4MzY0OC4wMCBMMC4wMCwyMTQ3NDgzNjQ4LjAwIFoiXQorICAgIFJlbmRlclBhdGgg
e3BhdGh9IGF0ICgyMDAsMjAwKSBzaXplIDEwMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDBGRl19XSBbZGF0YT0iTTIwMC4wMCwyMDAuMDAgTDMwMC4wMCwyMDAuMDAgTDMwMC4w
MCw0MDAuMDAgTDIwMC4wMCw0MDAuMDAgWiJdCisgICAgICBbbWFza2VyPSJtYXNrIl0gUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgxOTAsMTgwKSBzaXplIDIxNDc0ODM1MjB4MjE0
NzQ4MzUyMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3Jk
aW5hdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29y
ZGluYXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OWVkMDJkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2
ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNp
emUgMHgwCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNLTEwMDAuMDAsMTIzNDU2Nzkz
OTU1MDYwOTQwODAuMDAgTDIwMC4wMCwyMDAuMDAiXQorICAgIFJlbmRlclBhdGgge3BhdGh9IGF0
ICgwLDApIHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF19XSBb
ZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEwMDAuMDAsLTk4NzY1NDM1MTY0MDQ4NzUyNjQwLjAwIl0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5z
dmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMWNkZTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCkBAIC0wLDAg
KzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25l
PSJubyI/PgorCis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4i
ICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgorCis8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI2MDAiIGlkPSJz
dmdyb290IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSI4MDAiIHg9IjAiIHk9IjAiPgorCisgICA8cGF0
aCBkPSJNIC0xMDAwLDEyMzQ1Njc4OTAxMjM0NTY3ODkwIEwgMjAwLDIwMCIgc3R5bGU9ImZpbGw6
bm9uZTtzdHJva2U6IzAwMDBmZjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1vcGFjaXR5OjEiIC8+
CisgICA8cGF0aCBkPSJNIDYwMCw0MDAgTCAxMDAwLC05Ljg3NjU0MzIxMDk4NzY1NDMyMTBlKzE5
IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDBmZjAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tl
LW9wYWNpdHk6MSIgLz4KKworPC9zdmc+CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Zn
L2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNGE4YWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgxMCwzMDApIHNpemUgMTAweDEwMAorICAgIFJl
bmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgIFJl
bmRlclNWR1Jlc291cmNlUGF0dGVybiB7cGF0dGVybn0gW2lkPSJwYXR0ZXJuIl0gW3BhdHRlcm5V
bml0cz11c2VyU3BhY2VPblVzZV0gW3BhdHRlcm5Db250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2Vd
CisgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEw5OTk5OTk5
Nzk1Mi4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4wMCw5OTk5OTk5Nzk1Mi4wMCBMMC4wMCw5OTk5OTk5
Nzk1Mi4wMCBaIl0KKyAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgx
MDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0dGVybiJdfV0gW2RhdGE9Ik0xMC4wMCwz
MDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0MDAuMDAgTDEwLjAwLDQwMC4wMCBaIl0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcAppbmRleCA3YTU0ZjIxLi42ZGZhODA4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgog
I2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5o
PgogCiB1c2luZyBzdGQ6Om1heDsKQEAgLTExMCwxMyArMTExLDI2IEBAIHZvaWQgRmxvYXRSZWN0
OjpzY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kpCiAgICAgbV9zaXplLnNldEhlaWdodChoZWlnaHQo
KSAqIHN5KTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgc2FmZUZsb2F0VG9JbnQoZmxvYXQgeCkK
K3sKKyAgICBzdGF0aWMgY29uc3QgaW50IHNfaW50TWF4ID0gc3RkOjpudW1lcmljX2xpbWl0czxp
bnQ+OjptYXgoKTsKKyAgICBzdGF0aWMgY29uc3QgaW50IHNfaW50TWluID0gc3RkOjpudW1lcmlj
X2xpbWl0czxpbnQ+OjptaW4oKTsKKworICAgIGlmICh4ID49IHN0YXRpY19jYXN0PGZsb2F0Pihz
X2ludE1heCkpCisgICAgICAgIHJldHVybiBzX2ludE1heDsKKyAgICBpZiAoeCA8IHN0YXRpY19j
YXN0PGZsb2F0PihzX2ludE1pbikpCisgICAgICAgIHJldHVybiBzX2ludE1pbjsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50Pih4KTsKK30KKwogSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBpbnQgbCA9IHN0YXRpY19jYXN0PGludD4oZmxv
b3JmKHJlY3QueCgpKSk7Ci0gICAgaW50IHQgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0
LnkoKSkpOwotICAgIGludCByID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0LnJpZ2h0KCkp
KTsKLSAgICBpbnQgYiA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5ib3R0b20oKSkpOwot
ICAgIHJldHVybiBJbnRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CisgICAgZmxvYXQgbGVmdCA9
IGZsb29yZihyZWN0LngoKSk7CisgICAgZmxvYXQgdG9wID0gZmxvb3JmKHJlY3QueSgpKTsKKyAg
ICBmbG9hdCB3aWR0aCA9IGNlaWxmKHJlY3QucmlnaHQoKSkgLSBsZWZ0OworICAgIGZsb2F0IGhl
aWdodCA9IGNlaWxmKHJlY3QuYm90dG9tKCkpIC0gdG9wOworICAgIHJldHVybiBJbnRSZWN0KHNh
ZmVGbG9hdFRvSW50KGxlZnQpLCBzYWZlRmxvYXRUb0ludCh0b3ApLCAKKyAgICAgICAgICAgICAg
ICAgICBzYWZlRmxvYXRUb0ludCh3aWR0aCksIHNhZmVGbG9hdFRvSW50KGhlaWdodCkpOwogfQog
CiBGbG9hdFJlY3QgbWFwUmVjdChjb25zdCBGbG9hdFJlY3QmIHIsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRp
ZXMuY3BwCmluZGV4IDE0ZTNkNTguLmQxYmYxZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NW
R1BhcnNlclV0aWxpdGllcy5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVz
LmNwcApAQCAtNDAsOCArNDAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgKi8gICAgCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgRmxvYXRUeXBlPiBzdGF0aWMgYm9vbCBfcGFyc2VOdW1iZXIoY29uc3Qg
VUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQsIEZsb2F0VHlwZSYgbnVtYmVyLCBib29sIHNr
aXApCiB7Ci0gICAgaW50IGludGVnZXIsIGV4cG9uZW50OwotICAgIEZsb2F0VHlwZSBkZWNpbWFs
LCBmcmFjOworICAgIGludCBleHBvbmVudDsKKyAgICBGbG9hdFR5cGUgaW50ZWdlciwgZGVjaW1h
bCwgZnJhYzsKICAgICBpbnQgc2lnbiwgZXhwc2lnbjsKICAgICBjb25zdCBVQ2hhciogc3RhcnQg
PSBwdHI7CiAKQEAgLTY0LDkgKzY0LDE5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBGbG9hdFR5cGU+
IHN0YXRpYyBib29sIF9wYXJzZU51bWJlcihjb25zdCBVQ2hhciomIHB0ciwgY29uc3QKICAgICAg
ICAgLy8gVGhlIGZpcnN0IGNoYXJhY3RlciBvZiBhIG51bWJlciBtdXN0IGJlIG9uZSBvZiBbMC05
Ky0uXQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBh
cnQKKyAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQsIGJ1aWxkIHJpZ2h0LXRvLWxlZnQKKyAg
ICBjb25zdCBVQ2hhciogcHRyU3RhcnRJbnRQYXJ0ID0gcHRyOwogICAgIHdoaWxlIChwdHIgPCBl
bmQgJiYgKnB0ciA+PSAnMCcgJiYgKnB0ciA8PSAnOScpCi0gICAgICAgIGludGVnZXIgPSAoaW50
ZWdlciAqIDEwKSArICoocHRyKyspIC0gJzAnOworICAgICAgKytwdHI7IC8vIEFkdmFuY2UgdG8g
Zmlyc3Qgbm9uLWRpZ2l0LgorCisgICAgaWYgKHB0ciAhPSBwdHJTdGFydEludFBhcnQpIHsKKyAg
ICAgIGNvbnN0IFVDaGFyKiBwdHJTY2FuSW50UGFydCA9IHB0ciAtIDE7CisgICAgICBGbG9hdFR5
cGUgbXVsdGlwbGllciA9IDE7CisgICAgICB3aGlsZSAocHRyU2NhbkludFBhcnQgPj0gcHRyU3Rh
cnRJbnRQYXJ0KSB7CisgICAgICAgIGludGVnZXIgPSBpbnRlZ2VyICsgbXVsdGlwbGllciAqIHN0
YXRpY19jYXN0PEZsb2F0VHlwZT4oKihwdHJTY2FuSW50UGFydC0tKSAtICcwJyk7CisgICAgICAg
IG11bHRpcGxpZXIgKj0gMTA7CisgICAgICB9CisgICAgfQogCiAgICAgaWYgKHB0ciA8IGVuZCAm
JiAqcHRyID09ICcuJykgeyAvLyByZWFkIHRoZSBkZWNpbWFscwogICAgICAgICBwdHIrKzsK
</data>
<flag name="review"
          id="51211"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63063</attachid>
            <date>2010-07-30 08:55:49 -0700</date>
            <delta_ts>2010-08-05 08:57:18 -0700</delta_ts>
            <desc>Revised (vE) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>14808</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZDA4OTZhLi5kYzcyMWY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDct
MjggIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBT
VkcgLSBudW1lcmljIG92ZXJmbG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFR3
byBvZiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0IHBh
cnNpbmcgb2YgbGFyZ2UgdmFsdWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5LgorICAg
ICAgICAtIFJldmlzZWQgRmxvYXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZl
cnNpb25zIGluIGVuY2xvc2luZ0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVt
YmVyIHRvIGRvIHJpZ2h0LXRvLWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1
ZQorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUt
bWFsbG9jLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3Zn
L2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2
ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L3N2Zy9jdXN0b20v
cGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4
cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9zdmcvY3VzdG9tL3Bh
dHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
c3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorCiAyMDEwLTA3LTI4ICBWaWN0b3IgV2FuZyAgPHZpY3RvcndAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBjaHJvbWl1bSB0ZXN0IGV4cGVjdGF0
aW9ucyBmb3IgdGVzc3QgdGhhdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjNzU3NWQuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNl
c3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAot
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3Zn
fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIg
e2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4g
e3BhdHRlcm59IFtpZD0icGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtw
YXR0ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMNzc5MjY0MC4wMCwwLjAwIEw3NzkyNjQwLjAwLDc3
OTI2NDAuMDAgTDAuMDAsNzc5MjY0MC4wMCBaIl0KLSAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0dGVybiJd
fV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0MDAuMDAgTDEw
LjAwLDQwMC4wMCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
Y3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0
CmluZGV4IDk2MmFmZmEuLmM4OTNkMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9j
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAo
MjAwLDIwMCkgc2l6ZSAxMDB4MjAwCiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9
IFtpZD0ibWFzayJdIFttYXNrVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVu
aXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6
ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTAuMDAs
MC4wMCBMMjE0NzQ4MzY0OC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDIxNDc0ODM2NDguMDAgTDAu
MDAsMjE0NzQ4MzY0OC4wMCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNp
emUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJN
MC4wMCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0OC4w
MCBMMC4wMCwyMTQ3NDgzNjQ4LjAwIFoiXQogICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMDAs
MjAwKSBzaXplIDEwMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBb
ZGF0YT0iTTIwMC4wMCwyMDAuMDAgTDMwMC4wMCwyMDAuMDAgTDMwMC4wMCw0MDAuMDAgTDIwMC4w
MCw0MDAuMDAgWiJdCiAgICAgICBbbWFza2VyPSJtYXNrIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNr
ZXIge21hc2t9IGF0ICgxOTAsMTgwKSBzaXplIDIxNDc0ODM1MjB4MjE0NzQ4MzUyMApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGlu
YXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9t
YXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zYjBiMTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMHgwCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtk
YXRhPSJNLTEwMDAuMDAsMTIzNDU2NzkzOTU1MDYwOTQwODAuMDAgTDIwMC4wMCwyMDAuMDAiXQor
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDApIHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwRkYwMF19XSBbZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEwMDAuMDAsLTk4
NzY1NDI2MzY3OTU1NzMwNDMyLjAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxs
b2MtZXhwZWN0ZWQudHh0CmluZGV4IGEzM2RjZmIuLjFkNGE4YWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0
dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAtNCw1ICs0LDUgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkg
c2l6ZSAxMDB4MTAwCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9
InBhdHRlcm4iXSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRV
bml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgTDEyMTU3NTIxOTIuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwxMjE1NzUyMTky
LjAwIEwwLjAwLDEyMTU3NTIxOTIuMDAgWiJdCisgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtkYXRhPSJNMC4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4wMCw5
OTk5OTk5Nzk1Mi4wMCBMMC4wMCw5OTk5OTk5Nzk1Mi4wMCBaIl0KICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0i
cGF0dGVybiJdfV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0
MDAuMDAgTDEwLjAwLDQwMC4wMCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1t
YWxsb2MtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4
ZGExMjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9w
YXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApA
QCAtMSArMCwwIEBACi03MjkwYTc1YWEyYzU1NDNkODdmNjhmNzIwMDY4M2MyMApcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2
Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU3YWJlNTQ3NTVjMDQ1MDM4
MDhkZjBhZDY0M2E0ZjM3MTA5YzhiZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAz
Mjc5CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpvQ098eyNT
OUY1TT9qY3lzeTNmQQp6MHxRVF5yO0I0cSNoa1l7SHdyZDVAVVIlcFRsanlQRkwldVdBJSZ4U2RV
cnEwbnJSOHQkQEtnPkdYcTF6ZSp2SkcKejRzSCFWNWxLY1MyOEkrQzRoRHReZn0/Xz8wV3o4eE1s
LUBfJHVOPmojaElAXks4P35wbXZIO2NiIzRaUmd4VU9+CnpiO0Q/NyQtbj9nN0g3SlJmdnBHbzR+
JmNxM2BSXlczPUFoWTFRLXw7bHBUUGdKcSk5UXFYOUNTNylFTUZDfXVYVgpYPVVGJF5fdjN6R0Ji
dmR9KXo0Kn1RJGlCfUNuS0UzCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
c3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmU4NTc1Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3Np
dmUtbWFsbG9jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBh
dCAoMTAsMzAwKSBzaXplIDEwMHgxMDAKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2Rl
ZnN9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3Bh
dHRlcm59IFtpZD0icGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtwYXR0
ZXJuQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAw
MF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwwLjAwIEwxMjE1NzUyMTkyLjAw
LDEyMTU3NTIxOTIuMDAgTDAuMDAsMTIxNTc1MjE5Mi4wMCBMMC4wMCwwLjAwIl0KLSAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRF
Uk5dIFtpZD0icGF0dGVybiJdfV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAg
TDExMC4wMCw0MDAuMDAgTDEwLjAwLDQwMC4wMCBMMTAuMDAsMzAwLjAwIl0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODkzZDAzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAwLDIwMCkgc2l6ZSAxMDB4MjAw
CisgICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IFtpZD0ibWFzayJdIFttYXNrVW5p
dHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQor
ICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2NDgu
MDAsMC4wMCBMMjE0NzQ4MzY0OC4wMCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDguMDAg
WiJdCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIwMCwyMDApIHNpemUgMTAweDIwMCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjAwLjAwLDIwMC4wMCBM
MzAwLjAwLDIwMC4wMCBMMzAwLjAwLDQwMC4wMCBMMjAwLjAwLDQwMC4wMCBaIl0KKyAgICAgIFtt
YXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDE5MCwxODAp
IHNpemUgMjE0NzQ4MzUyMHgyMTQ3NDgzNTIwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Zn
L2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45ZWQwMmRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMCww
KSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9
Ik0tMTAwMC4wMCwxMjM0NTY3OTM5NTUwNjA5NDA4MC4wMCBMMjAwLjAwLDIwMC4wMCJdCisgICAg
UmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDBGRjAwXX1dIFtkYXRhPSJNNjAwLjAwLDQwMC4wMCBMMTAwMC4wMCwtOTg3NjU0
MzUxNjQwNDg3NTI2NDAuMDAiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9t
YXNzaXZlLWNvb3JkaW5hdGVzLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1j
b29yZGluYXRlcy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGExY2Rl
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29y
ZGluYXRlcy5zdmcKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CisKKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9X
M0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEv
RFREL3N2ZzExLmR0ZCI+CisKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiBoZWlnaHQ9IjYwMCIgaWQ9InN2Z3Jvb3QiIHZlcnNpb249IjEuMSIgd2lkdGg9IjgwMCIgeD0i
MCIgeT0iMCI+CisKKyAgIDxwYXRoIGQ9Ik0gLTEwMDAsMTIzNDU2Nzg5MDEyMzQ1Njc4OTAgTCAy
MDAsMjAwIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMGZmO3N0cm9rZS13aWR0aDoxcHg7
c3Ryb2tlLW9wYWNpdHk6MSIgLz4KKyAgIDxwYXRoIGQ9Ik0gNjAwLDQwMCBMIDEwMDAsLTkuODc2
NTQzMjEwOTg3NjU0MzIxMGUrMTkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMGZmMDA7c3Ry
b2tlLXdpZHRoOjFweDtzdHJva2Utb3BhY2l0eToxIiAvPgorCis8L3N2Zz4KKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxv
Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ0YThh
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0dGVybi1leGNl
c3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkg
c2l6ZSAxMDB4MTAwCisgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAorICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9
InBhdHRlcm4iXSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRV
bml0cz11c2VyU3BhY2VPblVzZV0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDk5OTk5OTk3
OTUyLjAwIEwwLjAwLDk5OTk5OTk3OTUyLjAwIFoiXQorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgxMCwzMDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9UEFUVEVSTl0gW2lkPSJwYXR0ZXJu
Il19XSBbZGF0YT0iTTEwLjAwLDMwMC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEwLjAwLDQwMC4wMCBM
MTAuMDAsNDAwLjAwIFoiXQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAzMmU1NWMwLi5hYjU5ZWI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA3
LTI4ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHIC0gbnVtZXJpYyBvdmVy
ZmxvdyBmb3IgdmVyeSBsYXJnZSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2NDUKKworICAgICAgICBUd28gb2YgdGhlIGV4cGVjdGVk
IHRlc3Qgb3V0cHV0cyB3ZXJlIGluY29ycmVjdCBub3cgdGhhdCBwYXJzaW5nIG9mIGxhcmdlIHZh
bHVlcworICAgICAgICBpcyBoYW5kbGVkIGNvcnJlY3RseS4KKyAgICAgICAgLSBSZXZpc2VkIEZs
b2F0UmVjdCB0byByZW1vdmUgYmFkIGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3Np
bmdJbnRSZWN0KCkKKyAgICAgICAgLSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10
by1sZWZ0IGZsb2F0LWJhc2VkIHBhcnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICBUZXN0
OiBzdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2FmZUZsb2F0VG9J
bnQpOgorICAgICAgICAoV2ViQ29yZTo6ZW5jbG9zaW5nSW50UmVjdCk6CisgICAgICAgICogc3Zn
L1NWR1BhcnNlclV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpfcGFyc2VOdW1iZXIp
OgorCiAyMDEwLTA3LTI4ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRSZWN0LmNwcAppbmRleCA3YTU0ZjIxLi42ZGZhODA4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRmxv
YXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKyNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgogCiB1c2luZyBzdGQ6Om1h
eDsKQEAgLTExMCwxMyArMTExLDI2IEBAIHZvaWQgRmxvYXRSZWN0OjpzY2FsZShmbG9hdCBzeCwg
ZmxvYXQgc3kpCiAgICAgbV9zaXplLnNldEhlaWdodChoZWlnaHQoKSAqIHN5KTsKIH0KIAorc3Rh
dGljIGlubGluZSBpbnQgc2FmZUZsb2F0VG9JbnQoZmxvYXQgeCkKK3sKKyAgICBzdGF0aWMgY29u
c3QgaW50IHNfaW50TWF4ID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsKKyAgICBz
dGF0aWMgY29uc3QgaW50IHNfaW50TWluID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptaW4o
KTsKKworICAgIGlmICh4ID49IHN0YXRpY19jYXN0PGZsb2F0PihzX2ludE1heCkpCisgICAgICAg
IHJldHVybiBzX2ludE1heDsKKyAgICBpZiAoeCA8IHN0YXRpY19jYXN0PGZsb2F0PihzX2ludE1p
bikpCisgICAgICAgIHJldHVybiBzX2ludE1pbjsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50
Pih4KTsKK30KKwogSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKIHsKLSAgICBpbnQgbCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKHJlY3QueCgpKSk7Ci0g
ICAgaW50IHQgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0LnkoKSkpOwotICAgIGludCBy
ID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0LnJpZ2h0KCkpKTsKLSAgICBpbnQgYiA9IHN0
YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5ib3R0b20oKSkpOwotICAgIHJldHVybiBJbnRSZWN0
KGwsIHQsIHIgLSBsLCBiIC0gdCk7CisgICAgZmxvYXQgbGVmdCA9IGZsb29yZihyZWN0LngoKSk7
CisgICAgZmxvYXQgdG9wID0gZmxvb3JmKHJlY3QueSgpKTsKKyAgICBmbG9hdCB3aWR0aCA9IGNl
aWxmKHJlY3QucmlnaHQoKSkgLSBsZWZ0OworICAgIGZsb2F0IGhlaWdodCA9IGNlaWxmKHJlY3Qu
Ym90dG9tKCkpIC0gdG9wOworICAgIHJldHVybiBJbnRSZWN0KHNhZmVGbG9hdFRvSW50KGxlZnQp
LCBzYWZlRmxvYXRUb0ludCh0b3ApLCAKKyAgICAgICAgICAgICAgICAgICBzYWZlRmxvYXRUb0lu
dCh3aWR0aCksIHNhZmVGbG9hdFRvSW50KGhlaWdodCkpOwogfQogCiBGbG9hdFJlY3QgbWFwUmVj
dChjb25zdCBGbG9hdFJlY3QmIHIsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxp
dGllcy5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCmluZGV4IDE0ZTNk
NTguLmI1ZTY5NWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5j
cHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcApAQCAtNDAsOCArNDAs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgKi8gICAgCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxv
YXRUeXBlPiBzdGF0aWMgYm9vbCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0
IFVDaGFyKiBlbmQsIEZsb2F0VHlwZSYgbnVtYmVyLCBib29sIHNraXApCiB7Ci0gICAgaW50IGlu
dGVnZXIsIGV4cG9uZW50OwotICAgIEZsb2F0VHlwZSBkZWNpbWFsLCBmcmFjOworICAgIGludCBl
eHBvbmVudDsKKyAgICBGbG9hdFR5cGUgaW50ZWdlciwgZGVjaW1hbCwgZnJhYzsKICAgICBpbnQg
c2lnbiwgZXhwc2lnbjsKICAgICBjb25zdCBVQ2hhciogc3RhcnQgPSBwdHI7CiAKQEAgLTY0LDkg
KzY0LDE5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBGbG9hdFR5cGU+IHN0YXRpYyBib29sIF9wYXJz
ZU51bWJlcihjb25zdCBVQ2hhciomIHB0ciwgY29uc3QKICAgICAgICAgLy8gVGhlIGZpcnN0IGNo
YXJhY3RlciBvZiBhIG51bWJlciBtdXN0IGJlIG9uZSBvZiBbMC05Ky0uXQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQKKyAgICAvLyByZWFkIHRo
ZSBpbnRlZ2VyIHBhcnQsIGJ1aWxkIHJpZ2h0LXRvLWxlZnQKKyAgICBjb25zdCBVQ2hhciogcHRy
U3RhcnRJbnRQYXJ0ID0gcHRyOwogICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKnB0ciA+PSAnMCcg
JiYgKnB0ciA8PSAnOScpCi0gICAgICAgIGludGVnZXIgPSAoaW50ZWdlciAqIDEwKSArICoocHRy
KyspIC0gJzAnOworICAgICAgICArK3B0cjsgLy8gQWR2YW5jZSB0byBmaXJzdCBub24tZGlnaXQu
CisKKyAgICBpZiAocHRyICE9IHB0clN0YXJ0SW50UGFydCkgeworICAgICAgICBjb25zdCBVQ2hh
ciogcHRyU2NhbkludFBhcnQgPSBwdHIgLSAxOworICAgICAgICBGbG9hdFR5cGUgbXVsdGlwbGll
ciA9IDE7CisgICAgICAgIHdoaWxlIChwdHJTY2FuSW50UGFydCA+PSBwdHJTdGFydEludFBhcnQp
IHsKKyAgICAgICAgICAgIGludGVnZXIgKz0gbXVsdGlwbGllciAqIHN0YXRpY19jYXN0PEZsb2F0
VHlwZT4oKihwdHJTY2FuSW50UGFydC0tKSAtICcwJyk7CisgICAgICAgICAgICBtdWx0aXBsaWVy
ICo9IDEwOworICAgICAgICB9CisgICAgfQogCiAgICAgaWYgKHB0ciA8IGVuZCAmJiAqcHRyID09
ICcuJykgeyAvLyByZWFkIHRoZSBkZWNpbWFscwogICAgICAgICBwdHIrKzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63096</attachid>
            <date>2010-07-30 13:10:12 -0700</date>
            <delta_ts>2010-07-30 15:24:39 -0700</delta_ts>
            <desc>Revised (vF) patch to fix SVG number parsing of large numbers</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>14847</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZDA4OTZhLi45Zjg5ZTRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDct
MjggIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcgLSBudW1lcmljIG92ZXJm
bG93IGZvciB2ZXJ5IGxhcmdlIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorCisgICAgICAgIFR3byBvZiB0aGUgZXhwZWN0ZWQg
dGVzdCBvdXRwdXRzIHdlcmUgaW5jb3JyZWN0IG5vdyB0aGF0IHBhcnNpbmcgb2YgbGFyZ2UgdmFs
dWVzCisgICAgICAgIGlzIGhhbmRsZWQgY29ycmVjdGx5LgorICAgICAgICAtIFJldmlzZWQgRmxv
YXRSZWN0IHRvIHJlbW92ZSBiYWQgZmxvYXQtdG8taW50IGNvbnZlcnNpb25zIGluIGVuY2xvc2lu
Z0ludFJlY3QoKQorICAgICAgICAtIFJldmlzZWQgX3BhcnNlTnVtYmVyIHRvIGRvIHJpZ2h0LXRv
LWxlZnQgZmxvYXQtYmFzZWQgcGFyc2luZyBvZiBpbnB1dCB2YWx1ZQorCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vz
c2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3Vz
dG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUt
bWFsbG9jLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0
L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnBuZzogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1h
bGxvYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9tYXNrLWV4
Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9t
L21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
Y3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3Vz
dG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEw
LTA3LTI4ICBWaWN0b3IgV2FuZyAgPHZpY3RvcndAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuIFVwZGF0ZSBjaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgdGVzc3QgdGhh
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVy
bi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjNzU3NWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMTAsMzAwKSBzaXpl
IDEwMHgxMDAKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNp
emUgMHgwCi0gICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3BhdHRlcm59IFtpZD0icGF0
dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtwYXR0ZXJuQ29udGVudFVuaXRz
PXVzZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAu
MDAsMC4wMCBMNzc5MjY0MC4wMCwwLjAwIEw3NzkyNjQwLjAwLDc3OTI2NDAuMDAgTDAuMDAsNzc5
MjY0MC4wMCBaIl0KLSAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTAsMzAwKSBzaXplIDEwMHgx
MDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0dGVybiJdfV0gW2RhdGE9Ik0xMC4wMCwz
MDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0MDAuMDAgTDEwLjAwLDQwMC4wMCBaIl0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hc2stZXhjZXNz
aXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1
c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CmluZGV4IDk2MmFmZmEuLmM4
OTNkMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21h
c2stZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApAQCAt
Myw2ICszLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAwLDIwMCkgc2l6ZSAxMDB4
MjAwCiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IFtpZD0ibWFzayJdIFttYXNr
VW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNl
XQotICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAweDAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMjE0NzQ4MzY0OC4w
MCwwLjAwIEwyMTQ3NDgzNjQ4LjAwLDIxNDc0ODM2NDguMDAgTDAuMDAsMjE0NzQ4MzY0OC4wMCBa
Il0KKyAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTQ3NDgz
NjQ4LjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMjE0NzQ4MzY0OC4wMCBMMC4wMCwyMTQ3NDgzNjQ4
LjAwIFoiXQogICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMDAsMjAwKSBzaXplIDEwMHgyMDAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTIwMC4wMCwyMDAu
MDAgTDMwMC4wMCwyMDAuMDAgTDMwMC4wMCw0MDAuMDAgTDIwMC4wMCw0MDAuMDAgWiJdCiAgICAg
ICBbbWFza2VyPSJtYXNrIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICgxOTAs
MTgwKSBzaXplIDIxNDc0ODM1MjB4MjE0NzQ4MzUyMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjBiMTk3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20v
bWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgw
LDApIHNpemUgMHgwCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNLTEwMDAuMDAsMTIz
NDU2NzkzOTU1MDYwOTQwODAuMDAgTDIwMC4wMCwyMDAuMDAiXQorICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgwLDApIHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYw
MF19XSBbZGF0YT0iTTYwMC4wMCw0MDAuMDAgTDEwMDAuMDAsLTk4NzY1NDI2MzY3OTU1NzMwNDMy
LjAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Bh
dHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGEzM2RjZmIuLjFkNGE4YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFs
bG9jLWV4cGVjdGVkLnR4dApAQCAtNCw1ICs0LDUgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCiAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkgc2l6ZSAxMDB4MTAwCiAgICAg
UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAg
UmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9InBhdHRlcm4iXSBbcGF0dGVy
blVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRVbml0cz11c2VyU3BhY2VPblVz
ZV0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDEyMTU3
NTIxOTIuMDAsMC4wMCBMMTIxNTc1MjE5Mi4wMCwxMjE1NzUyMTkyLjAwIEwwLjAwLDEyMTU3NTIx
OTIuMDAgWiJdCisgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgODAweDYw
MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAw
IEw5OTk5OTk5Nzk1Mi4wMCwwLjAwIEw5OTk5OTk5Nzk1Mi4wMCw5OTk5OTk5Nzk1Mi4wMCBMMC4w
MCw5OTk5OTk5Nzk1Mi4wMCBaIl0KICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTAsMzAwKSBz
aXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0dGVybiJdfV0gW2RhdGE9
Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0MDAuMDAgTDEwLjAwLDQwMC4w
MCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0
dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4ZGExMjEuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1t
YWxsb2MtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi03Mjkw
YTc1YWEyYzU1NDNkODdmNjhmNzIwMDY4M2MyMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1l
eGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L3N2
Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTU3YWJlNTQ3NTVjMDQ1MDM4MDhkZjBhZDY0M2E0ZjM3MTA5
YzhiZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAzMjc5CnpjbWVBU0BOPyhvbEh5
YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpvQ098eyNTOUY1TT9qY3lzeTNmQQp6MHxR
VF5yO0I0cSNoa1l7SHdyZDVAVVIlcFRsanlQRkwldVdBJSZ4U2RVcnEwbnJSOHQkQEtnPkdYcTF6
ZSp2SkcKejRzSCFWNWxLY1MyOEkrQzRoRHReZn0/Xz8wV3o4eE1sLUBfJHVOPmojaElAXks4P35w
bXZIO2NiIzRaUmd4VU9+CnpiO0Q/NyQtbj9nN0g3SlJmdnBHbzR+JmNxM2BSXlczPUFoWTFRLXw7
bHBUUGdKcSk5UXFYOUNTNylFTUZDfXVYVgpYPVVGJF5fdjN6R0JidmR9KXo0Kn1RJGlCfUNuS0Uz
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS9wYXR0ZXJu
LWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
c3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmU4NTc1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMTAsMzAwKSBzaXplIDEw
MHgxMDAKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUg
MHgwCi0gICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3BhdHRlcm59IFtpZD0icGF0dGVy
biJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtwYXR0ZXJuQ29udGVudFVuaXRzPXVz
ZXJTcGFjZU9uVXNlXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDgw
MHg2MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAs
MC4wMCBMMTIxNTc1MjE5Mi4wMCwwLjAwIEwxMjE1NzUyMTkyLjAwLDEyMTU3NTIxOTIuMDAgTDAu
MDAsMTIxNTc1MjE5Mi4wMCBMMC4wMCwwLjAwIl0KLSAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MTAsMzAwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0dGVybiJd
fV0gW2RhdGE9Ik0xMC4wMCwzMDAuMDAgTDExMC4wMCwzMDAuMDAgTDExMC4wMCw0MDAuMDAgTDEw
LjAwLDQwMC4wMCBMMTAuMDAsMzAwLjAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9j
dXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2
Zy9jdXN0b20vbWFzay1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODkzZDAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9tYXNrLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
U1ZHUm9vdCB7c3ZnfSBhdCAoMjAwLDIwMCkgc2l6ZSAxMDB4MjAwCisgICAgUmVuZGVyU1ZHUmVz
b3VyY2VNYXNrZXIge21hc2t9IFtpZD0ibWFzayJdIFttYXNrVW5pdHM9b2JqZWN0Qm91bmRpbmdC
b3hdIFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQorICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RkZGRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxNDc0ODM2NDguMDAsMC4wMCBMMjE0NzQ4MzY0
OC4wMCwyMTQ3NDgzNjQ4LjAwIEwwLjAwLDIxNDc0ODM2NDguMDAgWiJdCisgICAgUmVuZGVyUGF0
aCB7cGF0aH0gYXQgKDIwMCwyMDApIHNpemUgMTAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjAwLjAwLDIwMC4wMCBMMzAwLjAwLDIwMC4wMCBMMzAw
LjAwLDQwMC4wMCBMMjAwLjAwLDQwMC4wMCBaIl0KKyAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5k
ZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDE5MCwxODApIHNpemUgMjE0NzQ4MzUyMHgy
MTQ3NDgzNTIwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21hc3NpdmUtY29v
cmRpbmF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNv
b3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45ZWQwMmRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNz
aXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkg
c2l6ZSAweDAKKyAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMCwwKSBzaXplIDB4MCBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0tMTAwMC4wMCwxMjM0NTY3
OTM5NTUwNjA5NDA4MC4wMCBMMjAwLjAwLDIwMC4wMCJdCisgICAgUmVuZGVyUGF0aCB7cGF0aH0g
YXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBGRjAwXX1d
IFtkYXRhPSJNNjAwLjAwLDQwMC4wMCBMMTAwMC4wMCwtOTg3NjU0MzUxNjQwNDg3NTI2NDAuMDAi
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVz
LnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGExY2RlMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy5zdmcKQEAgLTAs
MCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxv
bmU9Im5vIj8+CisKKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9F
TiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CisK
KzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjYwMCIgaWQ9
InN2Z3Jvb3QiIHZlcnNpb249IjEuMSIgd2lkdGg9IjgwMCIgeD0iMCIgeT0iMCI+CisKKyAgIDxw
YXRoIGQ9Ik0gLTEwMDAsMTIzNDU2Nzg5MDEyMzQ1Njc4OTAgTCAyMDAsMjAwIiBzdHlsZT0iZmls
bDpub25lO3N0cm9rZTojMDAwMGZmO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLW9wYWNpdHk6MSIg
Lz4KKyAgIDxwYXRoIGQ9Ik0gNjAwLDQwMCBMIDEwMDAsLTkuODc2NTQzMjEwOTg3NjU0MzIxMGUr
MTkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMGZmMDA7c3Ryb2tlLXdpZHRoOjFweDtzdHJv
a2Utb3BhY2l0eToxIiAvPgorCis8L3N2Zz4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ0YThhZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEwLDMwMCkgc2l6ZSAxMDB4MTAwCisgICAg
UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAg
UmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtwYXR0ZXJufSBbaWQ9InBhdHRlcm4iXSBbcGF0dGVy
blVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0dGVybkNvbnRlbnRVbml0cz11c2VyU3BhY2VPblVz
ZV0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDk5OTk5
OTk3OTUyLjAwLDAuMDAgTDk5OTk5OTk3OTUyLjAwLDk5OTk5OTk3OTUyLjAwIEwwLjAwLDk5OTk5
OTk3OTUyLjAwIFoiXQorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMCwzMDApIHNpemUgMTAw
eDEwMCBbZmlsbD17W3R5cGU9UEFUVEVSTl0gW2lkPSJwYXR0ZXJuIl19XSBbZGF0YT0iTTEwLjAw
LDMwMC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEwLjAwLDQwMC4wMCBMMTAuMDAsNDAwLjAwIFoiXQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAz
MmU1NWMwLi5hYjU5ZWI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA3LTI4ICBXLiBKYW1lcyBNYWNM
ZWFuICA8d2ptYWNsZWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU1ZHIC0gbnVtZXJpYyBvdmVyZmxvdyBmb3IgdmVyeSBsYXJn
ZSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjU2NDUKKworICAgICAgICBUd28gb2YgdGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0cyB3ZXJl
IGluY29ycmVjdCBub3cgdGhhdCBwYXJzaW5nIG9mIGxhcmdlIHZhbHVlcworICAgICAgICBpcyBo
YW5kbGVkIGNvcnJlY3RseS4KKyAgICAgICAgLSBSZXZpc2VkIEZsb2F0UmVjdCB0byByZW1vdmUg
YmFkIGZsb2F0LXRvLWludCBjb252ZXJzaW9ucyBpbiBlbmNsb3NpbmdJbnRSZWN0KCkKKyAgICAg
ICAgLSBSZXZpc2VkIF9wYXJzZU51bWJlciB0byBkbyByaWdodC10by1sZWZ0IGZsb2F0LWJhc2Vk
IHBhcnNpbmcgb2YgaW5wdXQgdmFsdWUKKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL21hc3Np
dmUtY29vcmRpbmF0ZXMuc3ZnCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2FmZUZsb2F0VG9JbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6ZW5jbG9zaW5nSW50UmVjdCk6CisgICAgICAgICogc3ZnL1NWR1BhcnNlclV0aWxpdGll
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpfcGFyc2VOdW1iZXIpOgorCiAyMDEwLTA3LTI4ICBU
b255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSZWN0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcApp
bmRleCA3YTU0ZjIxLi42ZGZhODA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJl
Y3QuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAj
aW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxsaW1p
dHM+CiAjaW5jbHVkZSA8bWF0aC5oPgogCiB1c2luZyBzdGQ6Om1heDsKQEAgLTExMCwxMyArMTEx
LDI2IEBAIHZvaWQgRmxvYXRSZWN0OjpzY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kpCiAgICAgbV9z
aXplLnNldEhlaWdodChoZWlnaHQoKSAqIHN5KTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgc2Fm
ZUZsb2F0VG9JbnQoZmxvYXQgeCkKK3sKKyAgICBzdGF0aWMgY29uc3QgaW50IHNfaW50TWF4ID0g
c3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsKKyAgICBzdGF0aWMgY29uc3QgaW50IHNf
aW50TWluID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptaW4oKTsKKworICAgIGlmICh4ID49
IHN0YXRpY19jYXN0PGZsb2F0PihzX2ludE1heCkpCisgICAgICAgIHJldHVybiBzX2ludE1heDsK
KyAgICBpZiAoeCA8IHN0YXRpY19jYXN0PGZsb2F0PihzX2ludE1pbikpCisgICAgICAgIHJldHVy
biBzX2ludE1pbjsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih4KTsKK30KKwogSW50UmVj
dCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBpbnQgbCA9
IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKHJlY3QueCgpKSk7Ci0gICAgaW50IHQgPSBzdGF0aWNf
Y2FzdDxpbnQ+KGZsb29yZihyZWN0LnkoKSkpOwotICAgIGludCByID0gc3RhdGljX2Nhc3Q8aW50
PihjZWlsZihyZWN0LnJpZ2h0KCkpKTsKLSAgICBpbnQgYiA9IHN0YXRpY19jYXN0PGludD4oY2Vp
bGYocmVjdC5ib3R0b20oKSkpOwotICAgIHJldHVybiBJbnRSZWN0KGwsIHQsIHIgLSBsLCBiIC0g
dCk7CisgICAgZmxvYXQgbGVmdCA9IGZsb29yZihyZWN0LngoKSk7CisgICAgZmxvYXQgdG9wID0g
Zmxvb3JmKHJlY3QueSgpKTsKKyAgICBmbG9hdCB3aWR0aCA9IGNlaWxmKHJlY3QucmlnaHQoKSkg
LSBsZWZ0OworICAgIGZsb2F0IGhlaWdodCA9IGNlaWxmKHJlY3QuYm90dG9tKCkpIC0gdG9wOwor
ICAgIHJldHVybiBJbnRSZWN0KHNhZmVGbG9hdFRvSW50KGxlZnQpLCBzYWZlRmxvYXRUb0ludCh0
b3ApLCAKKyAgICAgICAgICAgICAgICAgICBzYWZlRmxvYXRUb0ludCh3aWR0aCksIHNhZmVGbG9h
dFRvSW50KGhlaWdodCkpOwogfQogCiBGbG9hdFJlY3QgbWFwUmVjdChjb25zdCBGbG9hdFJlY3Qm
IHIsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAgYi9XZWJDb3Jl
L3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCmluZGV4IDE0ZTNkNTguLmI1ZTY5NWIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKKysrIGIvV2ViQ29yZS9z
dmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcApAQCAtNDAsOCArNDAsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgKi8gICAgCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmxvYXRUeXBlPiBzdGF0aWMgYm9v
bCBfcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQsIEZsb2F0
VHlwZSYgbnVtYmVyLCBib29sIHNraXApCiB7Ci0gICAgaW50IGludGVnZXIsIGV4cG9uZW50Owot
ICAgIEZsb2F0VHlwZSBkZWNpbWFsLCBmcmFjOworICAgIGludCBleHBvbmVudDsKKyAgICBGbG9h
dFR5cGUgaW50ZWdlciwgZGVjaW1hbCwgZnJhYzsKICAgICBpbnQgc2lnbiwgZXhwc2lnbjsKICAg
ICBjb25zdCBVQ2hhciogc3RhcnQgPSBwdHI7CiAKQEAgLTY0LDkgKzY0LDE5IEBAIHRlbXBsYXRl
IDx0eXBlbmFtZSBGbG9hdFR5cGU+IHN0YXRpYyBib29sIF9wYXJzZU51bWJlcihjb25zdCBVQ2hh
ciomIHB0ciwgY29uc3QKICAgICAgICAgLy8gVGhlIGZpcnN0IGNoYXJhY3RlciBvZiBhIG51bWJl
ciBtdXN0IGJlIG9uZSBvZiBbMC05Ky0uXQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAv
LyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQKKyAgICAvLyByZWFkIHRoZSBpbnRlZ2VyIHBhcnQsIGJ1
aWxkIHJpZ2h0LXRvLWxlZnQKKyAgICBjb25zdCBVQ2hhciogcHRyU3RhcnRJbnRQYXJ0ID0gcHRy
OwogICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKnB0ciA+PSAnMCcgJiYgKnB0ciA8PSAnOScpCi0g
ICAgICAgIGludGVnZXIgPSAoaW50ZWdlciAqIDEwKSArICoocHRyKyspIC0gJzAnOworICAgICAg
ICArK3B0cjsgLy8gQWR2YW5jZSB0byBmaXJzdCBub24tZGlnaXQuCisKKyAgICBpZiAocHRyICE9
IHB0clN0YXJ0SW50UGFydCkgeworICAgICAgICBjb25zdCBVQ2hhciogcHRyU2NhbkludFBhcnQg
PSBwdHIgLSAxOworICAgICAgICBGbG9hdFR5cGUgbXVsdGlwbGllciA9IDE7CisgICAgICAgIHdo
aWxlIChwdHJTY2FuSW50UGFydCA+PSBwdHJTdGFydEludFBhcnQpIHsKKyAgICAgICAgICAgIGlu
dGVnZXIgKz0gbXVsdGlwbGllciAqIHN0YXRpY19jYXN0PEZsb2F0VHlwZT4oKihwdHJTY2FuSW50
UGFydC0tKSAtICcwJyk7CisgICAgICAgICAgICBtdWx0aXBsaWVyICo9IDEwOworICAgICAgICB9
CisgICAgfQogCiAgICAgaWYgKHB0ciA8IGVuZCAmJiAqcHRyID09ICcuJykgeyAvLyByZWFkIHRo
ZSBkZWNpbWFscwogICAgICAgICBwdHIrKzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63464</attachid>
            <date>2010-08-04 10:25:57 -0700</date>
            <delta_ts>2010-08-05 06:52:34 -0700</delta_ts>
            <desc>Re-baseline massive-coordinates.svg test expectations for platform/win.</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>2379</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjM0NDQyLi4zMTJlMjlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDgt
MDQgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWRyAtIG51bWVyaWMgb3Zl
cmZsb3cgZm9yIHZlcnkgbGFyZ2UgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NjQ1CisKKyAgICAgICAgUmViYXNlbGluaW5nIHJlc3Vs
dHMgZm9yIGd0ay93aW4gcGxhdGZvcm1zLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3N2Zy9j
dXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDgtMDQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBDaHJvbWl1bSB0ZXN0IGV4cGVj
dGF0aW9ucyB1cGRhdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3Zn
L2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RmMjZlYy4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2
ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1sYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0
ICgxMCwzMDApIHNpemUgMTAweDEwMAotICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVm
c30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybiB7cGF0
dGVybn0gW2lkPSJwYXR0ZXJuIl0gW3BhdHRlcm5Vbml0cz11c2VyU3BhY2VPblVzZV0gW3BhdHRl
cm5Db250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAw
XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEw3NzkwNTkyLjAwLDAuMDAgTDc3OTA1OTIuMDAsNzc5MDU5
Mi4wMCBMMC4wMCw3NzkwNTkyLjAwIFoiXQotICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMCwz
MDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9UEFUVEVSTl0gW2lkPSJwYXR0ZXJuIl19XSBb
ZGF0YT0iTTEwLjAwLDMwMC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEwLjAwLDQwMC4wMCBMMTAuMDAs
NDAwLjAwIFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3N2Zy9jdXN0
b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTQ2ZTU1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMHgwCisgICAgUmVu
ZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNLTEwMDAuMDAsMTIzNDU2NzkzOTU1MDYwOTQwMDAuMDAg
TDIwMC4wMCwyMDAuMDAiXQorICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDApIHNpemUgMHgw
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF19XSBbZGF0YT0iTTYwMC4wMCw0
MDAuMDAgTDEwMDAuMDAsLTk4NzY1NDI2MzY3OTU1NzMwMDAwLjAwIl0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63584</attachid>
            <date>2010-08-05 06:52:34 -0700</date>
            <delta_ts>2010-08-05 07:16:19 -0700</delta_ts>
            <desc>Re-baseline massive-coordinates.svg test expectations for platform/win, skip on GTK.</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>2974</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjM0NDQyLi5jMTY5M2RjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDgt
MDQgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWRyAtIG51bWVyaWMgb3Zl
cmZsb3cgZm9yIHZlcnkgbGFyZ2UgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NjQ1CisKKyAgICAgICAgUmViYXNlbGluaW5nIHJlc3Vs
dHMgZm9yIGd0ay93aW4gcGxhdGZvcm1zLgorICAgICAgICBTa2lwIHBhdHRlcm4tZXhjZXNzaXZl
LW1hbGxvYy5zdmcgb24gR1RLIGZvciBub3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvc3Zn
L2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6IE1vZGlmaWVkLgor
ICAgICAgICAqIHBsYXRmb3JtL3dpbi9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0wOC0wNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuIENocm9taXVtIHRlc3QgZXhw
ZWN0YXRpb25zIHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9z
dmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNzaXZlLW1hbGxvYy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGYyNmVjLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9zdmcvY3VzdG9tL3BhdHRlcm4tZXhjZXNz
aXZlLW1hbGxvYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLWxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAw
eDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30g
YXQgKDEwLDMwMCkgc2l6ZSAxMDB4MTAwCi0gICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtk
ZWZzfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIHtw
YXR0ZXJufSBbaWQ9InBhdHRlcm4iXSBbcGF0dGVyblVuaXRzPXVzZXJTcGFjZU9uVXNlXSBbcGF0
dGVybkNvbnRlbnRVbml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDc3OTA1OTIuMDAsMC4wMCBMNzc5MDU5Mi4wMCw3Nzkw
NTkyLjAwIEwwLjAwLDc3OTA1OTIuMDAgWiJdCi0gICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEw
LDMwMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1QQVRURVJOXSBbaWQ9InBhdHRlcm4iXX1d
IFtkYXRhPSJNMTAuMDAsMzAwLjAwIEwxMTAuMDAsMzAwLjAwIEwxMTAuMDAsNDAwLjAwIEwxMC4w
MCw0MDAuMDAgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvdGVzdF9l
eHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAppbmRleCBlNjlkZTI5Li44NTk5N2NmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTAsMCArMSwzIEBACisvLyBUaGlzIHRl
c3QgbmVlZHMgdG8gYmUgbG9va2VkIGF0OiBydW5zIG9uIG90aGVyIHBsYXRmb3JtcywgbWF5IGZh
aWwgaGVyZSBkdWUgdG8KKy8vIGRlYnVnIG91dHB1dCBsaW1pdGF0aW9ucy4gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorU0tJUCA6IHN2Zy9jdXN0b20v
cGF0dGVybi1leGNlc3NpdmUtbWFsbG9jLnN2ZyA9IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9zdmcvY3VzdG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGlu
YXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0
NmU1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9zdmcvY3Vz
dG9tL21hc3NpdmUtY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBh
dCAoMCwwKSBzaXplIDB4MAorICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDApIHNpemUgMHgw
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTS0xMDAwLjAw
LDEyMzQ1Njc5Mzk1NTA2MDk0MDAwLjAwIEwyMDAuMDAsMjAwLjAwIl0KKyAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoMCwwKSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MEZGMDBdfV0gW2RhdGE9Ik02MDAuMDAsNDAwLjAwIEwxMDAwLjAwLC05ODc2NTQyNjM2Nzk1NTcz
MDAwMC4wMCJdCg==
</data>
<flag name="review"
          id="51963"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63587</attachid>
            <date>2010-08-05 07:16:19 -0700</date>
            <delta_ts>2010-08-05 21:50:54 -0700</delta_ts>
            <desc>Re-baseline massive-coordinates.svg test expectations for platform/win, skip on GTK.</desc>
            <filename>bug25645cl</filename>
            <type>text/plain</type>
            <size>3186</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjM0NDQyLi4wNTJlZDY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDgt
MDQgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWRyAtIG51bWVyaWMgb3Zl
cmZsb3cgZm9yIHZlcnkgbGFyZ2UgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NjQ1CisKKyAgICAgICAgUmViYXNlbGluaW5nIHJlc3Vs
dHMgZm9yIGd0ay93aW4gcGxhdGZvcm1zLgorICAgICAgICBTa2lwIHBhdHRlcm4tZXhjZXNzaXZl
LW1hbGxvYy5zdmcgb24gR1RLIGZvciBub3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvc3Zn
L2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBNb2RpZmllZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisKIDIwMTAtMDgtMDQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgTm90IHJldmlld2VkLiBDaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9ucyB1cGRh
dGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGRhZGIzOGIuLmFkYjdjYTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0zMzM2LDYgKzMzMzYsMTIgQEAgc3ZnL2N1c3RvbS91
c2UtZWxlbWVudEluc3RhbmNlLWV2ZW50LXRhcmdldC5zdmcKIHN2Zy9jdXN0b20vdXNlLWVsZW1l
bnRJbnN0YW5jZS1tZXRob2RzLnN2Zwogc3ZnL2N1c3RvbS91c2Utb24tc3ltYm9sLWluc2lkZS1w
YXR0ZXJuLnN2Zwogc3ZnL2N1c3RvbS91c2Utc2V0QXR0cmlidXRlLWNyYXNoLnN2ZworCisjIFRo
aXMgdGVzdCBuZWVkcyB0byBiZSBsb29rZWQgYXQ6IHJ1bnMgb24gb3RoZXIgcGxhdGZvcm1zLAor
IyBtYXkgZmFpbCBoZXJlIGR1ZSB0byBkZWJ1ZyBvdXRwdXQgbGltaXRhdGlvbnMuCisjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY0NQorc3ZnL2N1c3RvbS9wYXR0
ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2Muc3ZnCisKICMgICBUZXN0cyBnZW5lcmF0aW5nIG5ldyByZXN1
bHRzCiBzdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTAyLXQuc3ZnCiBzdmcvVzNDLVNWRy0x
LjEvYW5pbWF0ZS1lbGVtLTAzLXQuc3ZnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3N2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFs
bG9jLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RmMjZlYy4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvc3ZnL2N1c3RvbS9wYXR0ZXJu
LWV4Y2Vzc2l2ZS1tYWxsb2MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCww
IEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJTVkdSb290
IHtzdmd9IGF0ICgxMCwzMDApIHNpemUgMTAweDEwMAotICAgIFJlbmRlclNWR0hpZGRlbkNvbnRh
aW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclNWR1Jlc291cmNlUGF0
dGVybiB7cGF0dGVybn0gW2lkPSJwYXR0ZXJuIl0gW3BhdHRlcm5Vbml0cz11c2VyU3BhY2VPblVz
ZV0gW3BhdHRlcm5Db250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCi0gICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgwLDApIHNpemUgODAweDYwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEw3NzkwNTkyLjAwLDAuMDAgTDc3OTA1OTIu
MDAsNzc5MDU5Mi4wMCBMMC4wMCw3NzkwNTkyLjAwIFoiXQotICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgxMCwzMDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9UEFUVEVSTl0gW2lkPSJwYXR0
ZXJuIl19XSBbZGF0YT0iTTEwLjAwLDMwMC4wMCBMMTEwLjAwLDMwMC4wMCBMMTEwLjAwLDQwMC4w
MCBMMTAuMDAsNDAwLjAwIFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29yZGluYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vc3ZnL2N1c3RvbS9tYXNzaXZlLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTQ2ZTU1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3N2Zy9jdXN0b20vbWFzc2l2ZS1jb29y
ZGluYXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMHgw
CisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNLTEwMDAuMDAsMTIzNDU2NzkzOTU1MDYw
OTQwMDAuMDAgTDIwMC4wMCwyMDAuMDAiXQorICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgwLDAp
IHNpemUgMHgwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF19XSBbZGF0YT0i
TTYwMC4wMCw0MDAuMDAgTDEwMDAuMDAsLTk4NzY1NDI2MzY3OTU1NzMwMDAwLjAwIl0K
</data>

          </attachment>
      

    </bug>

</bugzilla>