<?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>51698</bug_id>
          
          <creation_ts>2010-12-29 01:14:06 -0800</creation_ts>
          <short_desc>SVG pathsegs not sanitized before being passed through to platform Path</short_desc>
          <delta_ts>2014-05-12 07:19:03 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stefan Ring">s.r</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ademar</cc>
    
    <cc>kling</cc>
    
    <cc>krit</cc>
    
    <cc>rhodovan.u-szeged</cc>
    
    <cc>schenney</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>327507</commentid>
    <comment_count>0</comment_count>
      <attachid>77606</attachid>
    <who name="Stefan Ring">s.r</who>
    <bug_when>2010-12-29 01:14:06 -0800</bug_when>
    <thetext>Created attachment 77606
Test case

I&apos;m not sure about the version number, as they mean nothing to me. I&apos;m talking about the version included with Qt 4.7.

I have some JavaScript code that creates a curved path element where some coordinates are NaNs (due to a bug in the rest of my code). Apparently, QPainterPath is used to paint SVG paths, and this is where the problems occur. What happens is this:

QPainterPath::cubicTo: Adding point where x or y is NaN, results are undefined
QPainterPath::lineTo: Adding point where x or y is NaN, results are undefined
QPainterPath::cubicTo: Adding point where x or y is NaN, results are undefined
QPainterPath::lineTo: Adding point where x or y is NaN, results are undefined
QPainterPath::cubicTo: Adding point where x or y is NaN, results are undefined
QPainterPath::cubicTo: Adding point where x or y is NaN, results are undefined
QPainterPath::lineTo: Adding point where x or y is NaN, results are undefined
QPainterPath::cubicTo: Adding point where x or y is NaN, results are undefined
QPainterPath::lineTo: Adding point where x or y is NaN, results are undefined
QPainterPath::cubicTo: Adding point where x or y is NaN, results are undefined
QPainterPath::lineTo: Adding point where x or y is NaN, results are undefined
QPainterPath::cubicTo: Adding point where x or y is NaN, results are undefined
QPainterPath::lineTo: Adding point where x or y is NaN, results are undefined
QPainterPath::cubicTo: Adding point where x or y is NaN, results are undefined

and after a few seconds:

Catchpoint 1 (exception thrown), 0x0000003cb5cbcd00 in __cxa_throw () from /usr/lib64/libstdc++.so.6
(gdb) bt
#0 0x0000003cb5cbcd00 in __cxa_throw () from /usr/lib64/libstdc++.so.6
#1 0x00007ffff7b1eb25 in qBadAlloc () at global/qglobal.cpp:1996
#2 0x00007ffff6e317a7 in QVector&lt;QPointF&gt;::realloc (this=0x7fffffff8cb0, asize=67108863, aalloc=134217727) at ../../include/QtCore/../../src/corelib/tools/qvector.h:481
#3 0x00007ffff6e3deee in QVector&lt;QPointF&gt;::append (this=0x7fffffff8cb0, t=...) at ../../include/QtCore/../../src/corelib/tools/qvector.h:548
#4 0x00007ffff6e77514 in QBezier::addToPolygon (this=0x7fffffff8c70, polygon=0x7fffffff8cb0, bezier_flattening_threshold=0.5) at painting/qbezier.cpp:220
#5 0x00007ffff6ee6848 in QPainterPath::toSubpathPolygons (this=0x7fffffff9fe0, matrix=...) at painting/qpainterpath.cpp:1509
#6 0x00007ffff6ee69b4 in QPainterPath::toFillPolygons (this=0x7fffffff9fe0, matrix=...) at painting/qpainterpath.cpp:1560
#7 0x00007ffff6ee6f65 in QPainterPath::toFillPolygons (this=0x7fffffff9fe0, matrix=...) at painting/qpainterpath.cpp:1655
#8 0x00007ffff6fb8347 in QX11PaintEnginePrivate::fillPath (this=0xc60db0, path=..., gc_mode=QX11PaintEnginePrivate::PenGC, transform=true) at painting/qpaintengine_x11.cpp:1752
#9 0x00007ffff6fb8c23 in QX11PaintEngine::drawPath (this=0xc8ff60, path=...) at painting/qpaintengine_x11.cpp:1815
#10 0x00007ffff6ecee45 in QPainter::drawPath (this=0x7fffffffb6b0, path=...) at painting/qpainter.cpp:3381
#11 0x00007ffff6eceac5 in QPainter::strokePath (this=0x7fffffffb6b0, path=..., pen=...) at painting/qpainter.cpp:3293
#12 0x00007ffff578facc in WebCore::GraphicsContext::strokePath() () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#13 0x00007ffff59e912d in WebCore::SVGPaintServer::renderPath(WebCore::GraphicsContext*&amp;, WebCore::RenderObject const*, WebCore::SVGPaintTargetType) const () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#14 0x00007ffff59e9039 in WebCore::SVGPaintServer::draw(WebCore::GraphicsContext*&amp;, WebCore::RenderObject const*, WebCore::SVGPaintTargetType) const () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#15 0x00007ffff59f22f1 in WebCore::fillAndStrokePath(WebCore::Path const&amp;, WebCore::GraphicsContext*, WebCore::RenderStyle*, WebCore::RenderPath*) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#16 0x00007ffff59f2603 in WebCore::RenderPath::paint(WebCore::RenderObject::PaintInfo&amp;, int, int) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#17 0x00007ffff59f3850 in WebCore::RenderSVGContainer::paint(WebCore::RenderObject::PaintInfo&amp;, int, int) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#18 0x00007ffff59f3850 in WebCore::RenderSVGContainer::paint(WebCore::RenderObject::PaintInfo&amp;, int, int) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#19 0x00007ffff569d1aa in WebCore::RenderBox::paint(WebCore::RenderObject::PaintInfo&amp;, int, int) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#20 0x00007ffff59fd101 in WebCore::RenderSVGRoot::paint(WebCore::RenderObject::PaintInfo&amp;, int, int) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#21 0x00007ffff56df20c in WebCore::RenderLayer::paintLayer(WebCore::RenderLayer*, WebCore::GraphicsContext*, WebCore::IntRect const&amp;, unsigned int, WebCore::RenderObject*, WTF::HashMap&lt;WebCore::OverlapTestRequestClient*, WebCore::IntRect, WTF::PtrHash&lt;WebCore::OverlapTestRequestClient*&gt;, WTF::HashTraits&lt;WebCore::OverlapTestRequestClient*&gt;, WTF::HashTraits&lt;WebCore::IntRect&gt; &gt;*, unsigned int) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#22 0x00007ffff56df478 in WebCore::RenderLayer::paintLayer(WebCore::RenderLayer*, WebCore::GraphicsContext*, WebCore::IntRect const&amp;, unsigned int, WebCore::RenderObject*, WTF::HashMap&lt;WebCore::OverlapTestRequestClient*, WebCore::IntRect, WTF::PtrHash&lt;WebCore::OverlapTestRequestClient*&gt;, WTF::HashTraits&lt;WebCore::OverlapTestRequestClient*&gt;, WTF::HashTraits&lt;WebCore::IntRect&gt; &gt;*, unsigned int) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#23 0x00007ffff56df478 in WebCore::RenderLayer::paintLayer(WebCore::RenderLayer*, WebCore::GraphicsContext*, WebCore::IntRect const&amp;, unsigned int, WebCore::RenderObject*, WTF::HashMap&lt;WebCore::OverlapTestRequestClient*, WebCore::IntRect, WTF::PtrHash&lt;WebCore::OverlapTestRequestClient*&gt;, WTF::HashTraits&lt;WebCore::OverlapTestRequestClient*&gt;, WTF::HashTraits&lt;WebCore::IntRect&gt; &gt;*, unsigned int) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#24 0x00007ffff56de34d in WebCore::RenderLayer::paint(WebCore::GraphicsContext*, WebCore::IntRect const&amp;, unsigned int, WebCore::RenderObject*) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#25 0x00007ffff5592f26 in WebCore::FrameView::paintContents(WebCore::GraphicsContext*, WebCore::IntRect const&amp;) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#26 0x00007ffff57d296e in QWebFramePrivate::renderRelativeCoords(WebCore::GraphicsContext*, QWebFrame::RenderLayer, QRegion const&amp;) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#27 0x00007ffff57d56ec in QWebFrame::render(QPainter*, QRegion const&amp;) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4
#28 0x00007ffff57f070c in QWebView::paintEvent(QPaintEvent*) () from /home/sr/build/qt47_debug/lib/libQtWebKit.so.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329538</commentid>
    <comment_count>1</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-01-05 06:30:49 -0800</bug_when>
    <thetext>Reproduced here. I&apos;ll investigate the cause.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338956</commentid>
    <comment_count>2</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-01-24 05:02:17 -0800</bug_when>
    <thetext>I submited a patch to Qt last week fixing this problem on their side: http://qt.gitorious.org/qt/qt/merge_requests/1026 (merged already).

Although this was fixed in Qt, I believe it should be fixed in WebKit as well. I had to focus on other higher priority tasks for the moment and what I have here is not ready for submission.

The SVG Micro DOM spec (http://www.w3.org/TR/SVGTiny12/svgudom.html) clearly says that a DOMException with error code NOT_SUPPORTED_ERR must be thrown when a NaN/Inf is used, but I couldn&apos;t find any refrences to NaN/Inf in the &quot;standard&quot; SVG spec. I had the impression that NaN/Inf values are ignored by WebKit in other places, so maybe a patch just checking for it (similar to my patch in Qt) is enough.

I plan to get back to it, but if someone wants to work on it right now, feel free to do so. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385822</commentid>
    <comment_count>3</comment_count>
      <attachid>89597</attachid>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-14 09:42:25 -0700</bug_when>
    <thetext>Created attachment 89597
patch

This is a patch that ignores calls with NaNs and a simple test for the crash (based on the test-cased provided in this bug).

Maybe the testcase can be reduced, but I lack the javascript/svg knowledge to prepare something better... Hope it&apos;s good enough :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385826</commentid>
    <comment_count>4</comment_count>
      <attachid>89597</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-04-14 09:52:51 -0700</bug_when>
    <thetext>Comment on attachment 89597
patch

Change itself is fine, but the test only covers one specific configuration of the curveToCubic() code path. All three functions should be covered, and we should verify that any of the coordinate arguments can be non-finite without causing a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385853</commentid>
    <comment_count>5</comment_count>
      <attachid>89604</attachid>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-14 10:37:39 -0700</bug_when>
    <thetext>Created attachment 89604
patch with improved test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385854</commentid>
    <comment_count>6</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-14 10:39:08 -0700</bug_when>
    <thetext>blocking 2.2, as it&apos;s a crash and the Qt fix is not included in Qt-4.7 (only qt-4.8)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385857</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-04-14 10:41:05 -0700</bug_when>
    <thetext>Are infinite values allowed for SVGPathSegs at all? We may should take care on it in general, not only for creating the platform path. Also, with your patch we would just ignore the certain segment and continue with the next segment. The Spec want us to stop drawing a path on the first invalid segment and drop all following segments. It&apos;s just the question if a segment with infinite values is invalid and how other browsers handle infinite values for segments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385884</commentid>
    <comment_count>8</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-14 11:09:22 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Are infinite values allowed for SVGPathSegs at all? We may should take care on it in general, not only for creating the platform path. Also, with your patch we would just ignore the certain segment and continue with the next segment. The Spec want us to stop drawing a path on the first invalid segment and drop all following segments. It&apos;s just the question if a segment with infinite values is invalid and how other browsers handle infinite values for segments.

I couldn&apos;t find any mention of non-finite floats nor exceptions to be raised in such case... I also couln&apos;t find a clear statement that says we have to stop drawing on the first invalid segment... But again, I&apos;m no SVG expert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385897</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-04-14 11:17:32 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Are infinite values allowed for SVGPathSegs at all? We may should take care on it in general, not only for creating the platform path. Also, with your patch we would just ignore the certain segment and continue with the next segment. The Spec want us to stop drawing a path on the first invalid segment and drop all following segments. It&apos;s just the question if a segment with infinite values is invalid and how other browsers handle infinite values for segments.
&gt; 
&gt; I couldn&apos;t find any mention of non-finite floats nor exceptions to be raised in such case... I also couln&apos;t find a clear statement that says we have to stop drawing on the first invalid segment... But again, I&apos;m no SVG expert.

How do other browsers react? Can you check the displayed path and the SVGPathSegList? Are following valid Segments in the seglist and are they displayed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385917</commentid>
    <comment_count>10</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-14 11:45:41 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; I couldn&apos;t find any mention of non-finite floats nor exceptions to be raised in such case... I also couln&apos;t find a clear statement that says we have to stop drawing on the first invalid segment... But again, I&apos;m no SVG expert.
&gt; 
&gt; How do other browsers react? Can you check the displayed path and the SVGPathSegList? Are following valid Segments in the seglist and are they displayed?

Sure. I used the path-nans-crash.html file from my patch but only with the invalid calls:

Safari 5.0.3: nothing is displayed
Firefox 3.6.16: nothing is displayed
Opera 11.10 (Linux): nothing
IE8: nothing
QtTestBrowser: with latest Qt (trunk), nothing, with stable Qt (4.7), it crashes
Google-chrome 10.0.648.204 (Linux): the polygon is drawn (not sure how it interprets the NaNs)

So the only browser I could find that does drawn a polygon when the pathseg calls include NaNs is google-chrome.

I&apos;ll investigate a bit more, as my tests were blind. I&apos;ll try to make sense of the numbers passed to the pathseg calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385931</commentid>
    <comment_count>11</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-14 11:54:24 -0700</bug_when>
    <thetext>&gt; So the only browser I could find that does drawn a polygon when the pathseg calls include NaNs is google-chrome.
&gt; 
&gt; I&apos;ll investigate a bit more, as my tests were blind. I&apos;ll try to make sense of the numbers passed to the pathseg calls.

Simple enough: google-chrome converts NaNs to zeros, all the other browsers I could test just don&apos;t display anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385935</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-04-14 11:57:05 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; So the only browser I could find that does drawn a polygon when the pathseg calls include NaNs is google-chrome.
&gt; &gt; 
&gt; &gt; I&apos;ll investigate a bit more, as my tests were blind. I&apos;ll try to make sense of the numbers passed to the pathseg calls.
&gt; 
&gt; Simple enough: google-chrome converts NaNs to zeros, all the other browsers I could test just don&apos;t display anything.

You have not added two or more valid segments without infinite values. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385958</commentid>
    <comment_count>13</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-14 12:34:16 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; Simple enough: google-chrome converts NaNs to zeros, all the other browsers I could test just don&apos;t display anything.
&gt; 
&gt; You have not added two or more valid segments without infinite values. :-)

You&apos;re right. In this case, safari shows something, while the other browsers ignore everything.

Google-chrome: converts NaNs to zero and draws everything;
Safari: ignores the NaNs calls and draws something;
Firefox an Opera: don&apos;t display anything;
QtTestBrowser: ignores the NaN calls and draws the rest;

In the end we have four different behaviors, since the images drawn by chrome, safari and QtTestBrowser are all different (I&apos;ll attach an screenshot).

With the patch we&apos;ll at least have some consistency, as the calls with NaNs will be ignored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385959</commentid>
    <comment_count>14</comment_count>
      <attachid>89626</attachid>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-14 12:35:05 -0700</bug_when>
    <thetext>Created attachment 89626
screenshot of the different results on chrome, safari and qttestbrowser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385962</commentid>
    <comment_count>15</comment_count>
      <attachid>89628</attachid>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-14 12:35:53 -0700</bug_when>
    <thetext>Created attachment 89628
html file used for the rendering tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386411</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-04-14 23:37:14 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; &gt; Simple enough: google-chrome converts NaNs to zeros, all the other browsers I could test just don&apos;t display anything.
&gt; &gt; 
&gt; &gt; You have not added two or more valid segments without infinite values. :-)
&gt; 
&gt; You&apos;re right. In this case, safari shows something, while the other browsers ignore everything.
&gt; 
&gt; Google-chrome: converts NaNs to zero and draws everything;
&gt; Safari: ignores the NaNs calls and draws something;
&gt; Firefox an Opera: don&apos;t display anything;
&gt; QtTestBrowser: ignores the NaN calls and draws the rest;
&gt; 
&gt; In the end we have four different behaviors, since the images drawn by chrome, safari and QtTestBrowser are all different (I&apos;ll attach an screenshot).
&gt; 
&gt; With the patch we&apos;ll at least have some consistency, as the calls with NaNs will be ignored.

To have a consistant behavior across webkit implementations is one point, but we should also take care to be consistent with other browsers, namely: IE9, Firefox and Opera. And it seems all browsers raise a DOMException for NaN values.

I greped in the history of our IDL files and it looks like we had the following lines commented out: setter raises(DOMException)
Event this line is gone away today. We should add it for every value but I guess we would need more changes.

Niko any idea? Is there a reason why we did not activate this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388482</commentid>
    <comment_count>17</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-19 06:59:36 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #13)
&gt; To have a consistant behavior across webkit implementations is one point, but we should also take care to be consistent with other browsers, namely: IE9, Firefox and Opera. And it seems all browsers raise a DOMException for NaN values.
&gt; 
&gt; I greped in the history of our IDL files and it looks like we had the following lines commented out: setter raises(DOMException)
&gt; Event this line is gone away today. We should add it for every value but I guess we would need more changes.
&gt; 
&gt; Niko any idea? Is there a reason why we did not activate this?

All right. Makes sense.

Looking at the code history (thanks for pointing this out), looks like the exception was never implemented (it was introduced as a comment).

I&apos;ll prepare a new patch for review: this time introducing the exception. Please let me know if there&apos;s any guideline I should follwo regarding this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397108</commentid>
    <comment_count>18</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-05-03 09:05:45 -0700</bug_when>
    <thetext>A fix for the crash on QtWebKit has been merged into Qt-4.7 (next minor update will include it) as well as Qt-4.8 (to be released).

I&apos;m afraid I won&apos;t be able to work on this bug in the short term, so I&apos;m marking it as unassigned for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008583</commentid>
    <comment_count>19</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-05-12 07:19:03 -0700</bug_when>
    <thetext>Since this seems to be a Qt only problem and QtWebKit doesn&apos;t exist anymore: closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>77606</attachid>
            <date>2010-12-29 01:14:06 -0800</date>
            <delta_ts>2010-12-29 01:14:06 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>testcase.html</filename>
            <type>text/html</type>
            <size>894</size>
            <attacher name="Stefan Ring">s.r</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgiIC8+CjxzY3JpcHQ+CmZ1bmN0
aW9uIHNldHVwKCkgewp2YXIgY2FudmFzRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2
Z2NhbnZhcyIpLAogICAgc3ZnZG9jID0gY2FudmFzRGl2Lm93bmVyRG9jdW1lbnQsCiAgICBzdmdu
cyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsCiAgICBzdmdyb290ID0gbnVsbDsKCiAg
ICBmdW5jdGlvbiBta3N2Z19lbChlbCkgewogICAgICAgIHJldHVybiBzdmdkb2MuY3JlYXRlRWxl
bWVudE5TKHN2Z25zLCBlbCk7CiAgICB9CgogICAgc3Zncm9vdCA9IG1rc3ZnX2VsKCJzdmciKTsK
ICAgIGNhbnZhc0Rpdi5hcHBlbmRDaGlsZChzdmdyb290KTsKCiAgICB2YXIgc3ZnbGluZSA9IG1r
c3ZnX2VsKCJwYXRoIik7CgogICAgdmFyIHBhdGhkID0gc3ZnbGluZS5wYXRoU2VnTGlzdDsKICAg
IHBhdGhkLmluaXRpYWxpemUoc3ZnbGluZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKDEwLCAx
MCkpOwogICAgcGF0aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNBYnMoCiAgICAgICAgNTAsIDMwLAogICAgICAgIE5hTiwgTmFOLAogICAgICAgIDEwLCA3
MCkpOwogICAgc3Zncm9vdC5hcHBlbmRDaGlsZChzdmdsaW5lKTsKfQoKKGZ1bmN0aW9uKCkgewog
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzZXR1cCwgZmFsc2UgKTsKfSgpKTsK
PC9zY3JpcHQ+Cgo8dGl0bGU+U1ZHIFRlc3Q8L3RpdGxlPgo8L2hlYWQ+Cgo8Ym9keT4KPGRpdiBp
ZD0ic3ZnY2FudmFzIj4KPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89597</attachid>
            <date>2011-04-14 09:42:25 -0700</date>
            <delta_ts>2011-04-14 10:37:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-SVG-pathsegs-not-sanitized-before-being-passed-throu.patch</filename>
            <type>text/plain</type>
            <size>5421</size>
            <attacher name="Ademar Reis">ademar</attacher>
            
              <data encoding="base64">RnJvbSBlNTE2YzRiOWZhMDNmYzc0Y2FmZDBhYjc5OTMzYjgyYjk3YzM5N2Y0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVtYXIgZGUgU291emEgUmVpcyBKciA8YWRlbWFyLnJlaXNA
b3BlbmJvc3NhLm9yZz4KRGF0ZTogRnJpLCAxOCBGZWIgMjAxMSAxNDowNzozOSAtMDMwMApTdWJq
ZWN0OiBbUEFUQ0hdIFNWRyBwYXRoc2VncyBub3Qgc2FuaXRpemVkIGJlZm9yZSBiZWluZyBwYXNz
ZWQgdGhyb3VnaCB0byBwbGF0Zm9ybSBQYXRoCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysrKysKIExheW91dFRlc3RzL3N2Zy9k
b20vcGF0aC1uYW5zLWNyYXNoLWV4cGVjdGVkLnR4dCB8ICAgIDEgKwogTGF5b3V0VGVzdHMvc3Zn
L2RvbS9wYXRoLW5hbnMtY3Jhc2guaHRtbCAgICAgICAgIHwgICA0NSArKysrKysrKysrKysrKysr
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDE5ICsrKysrKysrKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCdWlsZGVyLmNwcCAg
ICAgICAgICAgIHwgICAxMSArKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCsp
LCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3N2Zy9kb20v
cGF0aC1uYW5zLWNyYXNoLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL3N2Zy9kb20vcGF0aC1uYW5zLWNyYXNoLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDViOWU2ZS4uZDczODUy
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA0LTE0ICBBZGVtYXIgZGUgU291emEgUmVp
cyBKciAgPGFkZW1hci5yZWlzQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHIHBhdGhzZWdzIG5vdCBzYW5pdGl6ZWQgYmVm
b3JlIGJlaW5nIHBhc3NlZCB0aHJvdWdoIHRvIHBsYXRmb3JtIFBhdGgKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNjk4CisKKyAgICAgICAgKiBzdmcv
ZG9tL3BhdGgtbmFucy1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9k
b20vcGF0aC1uYW5zLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDExLTA0LTEyICBQYXZlbCBQb2Rp
dmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBh
dmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL3BhdGgtbmFucy1j
cmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3BhdGgtbmFucy1jcmFzaC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VmMjJlOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vcGF0aC1uYW5zLWNyYXNoLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dmcvZG9tL3BhdGgtbmFucy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9wYXRoLW5h
bnMtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTc4ZGIz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9wYXRoLW5hbnMtY3Jhc2gu
aHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+CisKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PVVURi04IiAvPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Cit9CitmdW5jdGlvbiBzZXR1cCgpIHsKK3ZhciBjYW52YXNEaXYgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnY2FudmFzIiksCisgICAgc3ZnZG9jID0gY2FudmFz
RGl2Lm93bmVyRG9jdW1lbnQsCisgICAgc3ZnbnMgPSAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciLAorICAgIHN2Z3Jvb3QgPSBudWxsOworCisgICAgZnVuY3Rpb24gbWtzdmdfZWwoZWwpIHsK
KyAgICAgICAgcmV0dXJuIHN2Z2RvYy5jcmVhdGVFbGVtZW50TlMoc3ZnbnMsIGVsKTsKKyAgICB9
CisKKyAgICBzdmdyb290ID0gbWtzdmdfZWwoInN2ZyIpOworICAgIGNhbnZhc0Rpdi5hcHBlbmRD
aGlsZChzdmdyb290KTsKKworICAgIHZhciBzdmdsaW5lID0gbWtzdmdfZWwoInBhdGgiKTsKKwor
ICAgIHZhciBwYXRoZCA9IHN2Z2xpbmUucGF0aFNlZ0xpc3Q7CisgICAgcGF0aGQuaW5pdGlhbGl6
ZShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnMoMTAsIDEwKSk7CisgICAgcGF0aGQu
YXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMoCisgICAg
ICAgIDUwLCAzMCwKKyAgICAgICAgTmFOLCBOYU4sCisgICAgICAgIDEwLCA3MCkpOworICAgIHN2
Z3Jvb3QuYXBwZW5kQ2hpbGQoc3ZnbGluZSk7Cit9CisKKyhmdW5jdGlvbigpIHsKKyAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHNldHVwLCBmYWxzZSApOworfSgpKTsKKzwvc2Ny
aXB0PgorPC9oZWFkPgorCis8Ym9keT4KKzxkaXYgaWQ9InN2Z2NhbnZhcyI+Cis8L2Rpdj4KK1BB
U1MKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlODI0M2U2Li43M2NkYTQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDQtMTQgIEFkZW1hciBkZSBTb3V6YSBSZWlz
IEpyICA8YWRlbWFyLnJlaXNAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcgcGF0aHNlZ3Mgbm90IHNhbml0aXplZCBiZWZv
cmUgYmVpbmcgcGFzc2VkIHRocm91Z2ggdG8gcGxhdGZvcm0gUGF0aAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE2OTgKKworICAgICAgICBOYU4ncyBh
cmUgbm93IGlnbm9yZWQgaW5zdGVhZCBvZiBiZWluZyBwYXNzZWQgdGhyb3VnaCwgZm9sbG93aW5n
IHRoZQorICAgICAgICBleGFtcGxlIG9mIG90aGVyIHdlYmtpdCBjb2RlcGF0aHMuCisKKyAgICAg
ICAgQSBzaW1wbGUgdGVzdCBmb3IgYSBjcmFzaCBpcyBhbHNvIHByb3ZpZGVkLgorCisgICAgICAg
IFRlc3Q6IHN2Zy9kb20vcGF0aC1uYW5zLWNyYXNoLmh0bWwKKworICAgICAgICAqIHN2Zy9TVkdQ
YXRoQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnVpbGRlcjo6bW92ZVRv
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCdWlsZGVyOjpsaW5lVG8pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyk6CisKIDIwMTEtMDQtMTIgIFBh
dmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ1aWxkZXIuY3BwCmlu
ZGV4IDY2ODdlZGYuLjZkNDE2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCdWlsZGVyLmNw
cApAQCAtMzUsNiArMzUsOSBAQCBTVkdQYXRoQnVpbGRlcjo6U1ZHUGF0aEJ1aWxkZXIoKQogCiB2
b2lkIFNWR1BhdGhCdWlsZGVyOjptb3ZlVG8oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQs
IGJvb2wgY2xvc2VkLCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKKyAgICBpZiAoIWlzZmlu
aXRlKHRhcmdldFBvaW50LngoKSkgfHwgIWlzZmluaXRlKHRhcmdldFBvaW50LnkoKSkpCisgICAg
ICAgIHJldHVybjsKKwogICAgIEFTU0VSVChtX3BhdGgpOwogICAgIG1fY3VycmVudCA9IG1vZGUg
PT0gQWJzb2x1dGVDb29yZGluYXRlcyA/IHRhcmdldFBvaW50IDogbV9jdXJyZW50ICsgdGFyZ2V0
UG9pbnQ7CiAgICAgaWYgKGNsb3NlZCAmJiAhbV9wYXRoLT5pc0VtcHR5KCkpCkBAIC00NCw2ICs0
Nyw5IEBAIHZvaWQgU1ZHUGF0aEJ1aWxkZXI6Om1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJn
ZXRQb2ludCwgYm9vbCBjbG9zZWQsIFBhdGhDb29yCiAKIHZvaWQgU1ZHUGF0aEJ1aWxkZXI6Omxp
bmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1v
ZGUpCiB7CisgICAgaWYgKCFpc2Zpbml0ZSh0YXJnZXRQb2ludC54KCkpIHx8ICFpc2Zpbml0ZSh0
YXJnZXRQb2ludC55KCkpKQorICAgICAgICByZXR1cm47CisKICAgICBBU1NFUlQobV9wYXRoKTsK
ICAgICBtX2N1cnJlbnQgPSBtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMgPyB0YXJnZXRQb2lu
dCA6IG1fY3VycmVudCArIHRhcmdldFBvaW50OwogICAgIG1fcGF0aC0+YWRkTGluZVRvKG1fY3Vy
cmVudCk7CkBAIC01MSw2ICs1NywxMSBAQCB2b2lkIFNWR1BhdGhCdWlsZGVyOjpsaW5lVG8oY29u
c3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtbwogCiB2b2lk
IFNWR1BhdGhCdWlsZGVyOjpjdXJ2ZVRvQ3ViaWMoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBj
b25zdCBGbG9hdFBvaW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQ
YXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKKyAgICBpZiAoIWlzZmluaXRlKHBvaW50MS54KCkp
IHx8ICFpc2Zpbml0ZShwb2ludDEueSgpKQorICAgICAgICB8fCAhaXNmaW5pdGUocG9pbnQyLngo
KSkgfHwgIWlzZmluaXRlKHBvaW50Mi55KCkpCisgICAgICAgIHx8ICFpc2Zpbml0ZSh0YXJnZXRQ
b2ludC54KCkpIHx8ICFpc2Zpbml0ZSh0YXJnZXRQb2ludC55KCkpKQorICAgICAgICByZXR1cm47
CisKICAgICBBU1NFUlQobV9wYXRoKTsKICAgICBpZiAobW9kZSA9PSBSZWxhdGl2ZUNvb3JkaW5h
dGVzKSB7CiAgICAgICAgIG1fcGF0aC0+YWRkQmV6aWVyQ3VydmVUbyhtX2N1cnJlbnQgKyBwb2lu
dDEsIG1fY3VycmVudCArIHBvaW50MiwgbV9jdXJyZW50ICsgdGFyZ2V0UG9pbnQpOwotLSAKMS43
LjMuNAoK
</data>
<flag name="review"
          id="82301"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89604</attachid>
            <date>2011-04-14 10:37:39 -0700</date>
            <delta_ts>2011-04-19 06:59:59 -0700</delta_ts>
            <desc>patch with improved test</desc>
            <filename>0001-SVG-pathsegs-not-sanitized-before-being-passed-throu.patch</filename>
            <type>text/plain</type>
            <size>6518</size>
            <attacher name="Ademar Reis">ademar</attacher>
            
              <data encoding="base64">RnJvbSAxNmE1MGJlNGQxZWUyMDg4ZDU2ODhhODE4M2U4MzgyNWI4ZmY5MmQ0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVtYXIgZGUgU291emEgUmVpcyBKciA8YWRlbWFyLnJlaXNA
b3BlbmJvc3NhLm9yZz4KRGF0ZTogRnJpLCAxOCBGZWIgMjAxMSAxNDowNzozOSAtMDMwMApTdWJq
ZWN0OiBbUEFUQ0hdIFNWRyBwYXRoc2VncyBub3Qgc2FuaXRpemVkIGJlZm9yZSBiZWluZyBwYXNz
ZWQgdGhyb3VnaCB0byBwbGF0Zm9ybSBQYXRoCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysrCiBMYXlvdXRUZXN0cy9zdmcvZG9t
L3BhdGgtbmFucy1jcmFzaC1leHBlY3RlZC50eHQgfCAgICAxICsKIExheW91dFRlc3RzL3N2Zy9k
b20vcGF0aC1uYW5zLWNyYXNoLmh0bWwgICAgICAgICB8ICAgNzkgKysrKysrKysrKysrKysrKysr
KysrKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxOSArKysrKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCdWlsZGVyLmNwcCAgICAgICAg
ICAgIHwgICAxMSArKysKIDUgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDAgZGVs
ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvc3ZnL2RvbS9wYXRoLW5h
bnMtY3Jhc2gtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvc3Zn
L2RvbS9wYXRoLW5hbnMtY3Jhc2guaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwNWI5ZTZlLi5kNzM4NTI3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMTQgIEFkZW1hciBkZSBTb3V6YSBSZWlzIEpyICA8
YWRlbWFyLnJlaXNAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTVkcgcGF0aHNlZ3Mgbm90IHNhbml0aXplZCBiZWZvcmUgYmVp
bmcgcGFzc2VkIHRocm91Z2ggdG8gcGxhdGZvcm0gUGF0aAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE2OTgKKworICAgICAgICAqIHN2Zy9kb20vcGF0
aC1uYW5zLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2RvbS9wYXRo
LW5hbnMtY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMTEtMDQtMTIgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVs
ZG1hbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vcGF0aC1uYW5zLWNyYXNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9kb20vcGF0aC1uYW5zLWNyYXNoLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9wYXRoLW5hbnMtY3Jhc2gtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20v
cGF0aC1uYW5zLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3BhdGgtbmFucy1jcmFz
aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwOGRjOWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3BhdGgtbmFucy1jcmFzaC5odG1sCkBA
IC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKworPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIg
Y29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgiIC8+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKK30KK2Z1bmN0aW9uIHNldHVwKCkgewordmFyIGNhbnZhc0RpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdmdjYW52YXMiKSwKKyAgICBzdmdkb2MgPSBjYW52YXNEaXYub3du
ZXJEb2N1bWVudCwKKyAgICBzdmducyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsCisg
ICAgc3Zncm9vdCA9IG51bGw7CisKKyAgICBmdW5jdGlvbiBta3N2Z19lbChlbCkgeworICAgICAg
ICByZXR1cm4gc3ZnZG9jLmNyZWF0ZUVsZW1lbnROUyhzdmducywgZWwpOworICAgIH0KKworICAg
IHN2Z3Jvb3QgPSBta3N2Z19lbCgic3ZnIik7CisgICAgY2FudmFzRGl2LmFwcGVuZENoaWxkKHN2
Z3Jvb3QpOworCisgICAgdmFyIHN2Z2xpbmUgPSBta3N2Z19lbCgicGF0aCIpOworCisgICAgdmFy
IHBhdGhkID0gc3ZnbGluZS5wYXRoU2VnTGlzdDsKKyAgICBwYXRoZC5pbml0aWFsaXplKHN2Z2xp
bmUuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0FicygxMCwgMTApKTsKKworICAgIHBhdGhkLmFwcGVu
ZEl0ZW0oc3ZnbGluZS5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKAorICAgICAgICA1
MCwgMzAsCisgICAgICAgIDEwLCAxMCwKKyAgICAgICAgMjAsIDcwKSk7CisgICAgcGF0aGQuYXBw
ZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMoCisgICAgICAg
IE5hTiwgMzAsCisgICAgICAgIDEwLCAxMCwKKyAgICAgICAgMTAsIDcwKSk7CisgICAgcGF0aGQu
YXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMoCisgICAg
ICAgIDUwLCBOYU4sCisgICAgICAgIDEwLCAxMCwKKyAgICAgICAgMTAsIDcwKSk7CisgICAgcGF0
aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMoCisg
ICAgICAgIDUwLCAzMCwKKyAgICAgICAgTmFOLCAxMCwKKyAgICAgICAgMTAsIDcwKSk7CisgICAg
cGF0aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMo
CisgICAgICAgIDUwLCAzMCwKKyAgICAgICAgMTAsIE5hTiwKKyAgICAgICAgMTAsIDcwKSk7Cisg
ICAgcGF0aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNB
YnMoCisgICAgICAgIDUwLCAzMCwKKyAgICAgICAgMTAsIDEwLAorICAgICAgICBOYU4sIDcwKSk7
CisgICAgcGF0aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNBYnMoCisgICAgICAgIDUwLCAzMCwKKyAgICAgICAgMTAsIDEwLAorICAgICAgICAxMCwgTmFO
KSk7CisKKyAgICBwYXRoZC5hcHBlbmRJdGVtKHN2Z2xpbmUuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0
b0FicygxLCAxMCkpOworICAgIHBhdGhkLmFwcGVuZEl0ZW0oc3ZnbGluZS5jcmVhdGVTVkdQYXRo
U2VnTGluZXRvQWJzKE5hTiwgMTApKTsKKyAgICBwYXRoZC5hcHBlbmRJdGVtKHN2Z2xpbmUuY3Jl
YXRlU1ZHUGF0aFNlZ0xpbmV0b0FicygxLCBOYU4pKTsKKworICAgIHBhdGhkLmFwcGVuZEl0ZW0o
c3ZnbGluZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKDEsIDEwKSk7CisgICAgcGF0aGQuYXBw
ZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnMoTmFOLCAxMCkpOworICAg
IHBhdGhkLmFwcGVuZEl0ZW0oc3ZnbGluZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKDEsIE5h
TikpOworCisgICAgc3Zncm9vdC5hcHBlbmRDaGlsZChzdmdsaW5lKTsKK30KKworKGZ1bmN0aW9u
KCkgeworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc2V0dXAsIGZhbHNlICk7
Cit9KCkpOworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorPGRpdiBpZD0ic3ZnY2FudmFz
Ij4KKzwvZGl2PgorUEFTUworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU4MjQzZTYu
LjczY2RhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0wNC0xNCAgQWRlbWFy
IGRlIFNvdXphIFJlaXMgSnIgIDxhZGVtYXIucmVpc0BvcGVuYm9zc2Eub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWRyBwYXRoc2VncyBub3Qg
c2FuaXRpemVkIGJlZm9yZSBiZWluZyBwYXNzZWQgdGhyb3VnaCB0byBwbGF0Zm9ybSBQYXRoCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTY5OAorCisg
ICAgICAgIE5hTidzIGFyZSBub3cgaWdub3JlZCBpbnN0ZWFkIG9mIGJlaW5nIHBhc3NlZCB0aHJv
dWdoLCBmb2xsb3dpbmcgdGhlCisgICAgICAgIGV4YW1wbGUgb2Ygb3RoZXIgd2Via2l0IGNvZGVw
YXRocy4KKworICAgICAgICBBIHNpbXBsZSB0ZXN0IGZvciBhIGNyYXNoIGlzIGFsc28gcHJvdmlk
ZWQuCisKKyAgICAgICAgVGVzdDogc3ZnL2RvbS9wYXRoLW5hbnMtY3Jhc2guaHRtbAorCisgICAg
ICAgICogc3ZnL1NWR1BhdGhCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhC
dWlsZGVyOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ1aWxkZXI6OmxpbmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnVpbGRlcjo6Y3VydmVUb0N1YmljKToKKwog
MjAxMS0wNC0xMiAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
QnVpbGRlci5jcHAKaW5kZXggNjY4N2VkZi4uNmQ0MTZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aEJ1aWxkZXIuY3BwCkBAIC0zNSw2ICszNSw5IEBAIFNWR1BhdGhCdWlsZGVyOjpTVkdQYXRo
QnVpbGRlcigpCiAKIHZvaWQgU1ZHUGF0aEJ1aWxkZXI6Om1vdmVUbyhjb25zdCBGbG9hdFBvaW50
JiB0YXJnZXRQb2ludCwgYm9vbCBjbG9zZWQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewor
ICAgIGlmICghaXNmaW5pdGUodGFyZ2V0UG9pbnQueCgpKSB8fCAhaXNmaW5pdGUodGFyZ2V0UG9p
bnQueSgpKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgQVNTRVJUKG1fcGF0aCk7CiAgICAgbV9j
dXJyZW50ID0gbW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzID8gdGFyZ2V0UG9pbnQgOiBtX2N1
cnJlbnQgKyB0YXJnZXRQb2ludDsKICAgICBpZiAoY2xvc2VkICYmICFtX3BhdGgtPmlzRW1wdHko
KSkKQEAgLTQ0LDYgKzQ3LDkgQEAgdm9pZCBTVkdQYXRoQnVpbGRlcjo6bW92ZVRvKGNvbnN0IEZs
b2F0UG9pbnQmIHRhcmdldFBvaW50LCBib29sIGNsb3NlZCwgUGF0aENvb3IKIAogdm9pZCBTVkdQ
YXRoQnVpbGRlcjo6bGluZVRvKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29v
cmRpbmF0ZU1vZGUgbW9kZSkKIHsKKyAgICBpZiAoIWlzZmluaXRlKHRhcmdldFBvaW50LngoKSkg
fHwgIWlzZmluaXRlKHRhcmdldFBvaW50LnkoKSkpCisgICAgICAgIHJldHVybjsKKwogICAgIEFT
U0VSVChtX3BhdGgpOwogICAgIG1fY3VycmVudCA9IG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRl
cyA/IHRhcmdldFBvaW50IDogbV9jdXJyZW50ICsgdGFyZ2V0UG9pbnQ7CiAgICAgbV9wYXRoLT5h
ZGRMaW5lVG8obV9jdXJyZW50KTsKQEAgLTUxLDYgKzU3LDExIEBAIHZvaWQgU1ZHUGF0aEJ1aWxk
ZXI6OmxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVN
b2RlIG1vCiAKIHZvaWQgU1ZHUGF0aEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyhjb25zdCBGbG9hdFBv
aW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MiwgY29uc3QgRmxvYXRQb2ludCYg
dGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogeworICAgIGlmICghaXNmaW5p
dGUocG9pbnQxLngoKSkgfHwgIWlzZmluaXRlKHBvaW50MS55KCkpCisgICAgICAgIHx8ICFpc2Zp
bml0ZShwb2ludDIueCgpKSB8fCAhaXNmaW5pdGUocG9pbnQyLnkoKSkKKyAgICAgICAgfHwgIWlz
ZmluaXRlKHRhcmdldFBvaW50LngoKSkgfHwgIWlzZmluaXRlKHRhcmdldFBvaW50LnkoKSkpCisg
ICAgICAgIHJldHVybjsKKwogICAgIEFTU0VSVChtX3BhdGgpOwogICAgIGlmIChtb2RlID09IFJl
bGF0aXZlQ29vcmRpbmF0ZXMpIHsKICAgICAgICAgbV9wYXRoLT5hZGRCZXppZXJDdXJ2ZVRvKG1f
Y3VycmVudCArIHBvaW50MSwgbV9jdXJyZW50ICsgcG9pbnQyLCBtX2N1cnJlbnQgKyB0YXJnZXRQ
b2ludCk7Ci0tIAoxLjcuMy40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>89626</attachid>
            <date>2011-04-14 12:35:05 -0700</date>
            <delta_ts>2011-04-14 12:35:05 -0700</delta_ts>
            <desc>screenshot of the different results on chrome, safari and qttestbrowser</desc>
            <filename>screenshot-chrome+safari+qttestbrowser.png</filename>
            <type>image/png</type>
            <size>25902</size>
            <attacher name="Ademar Reis">ademar</attacher>
            
              <data encoding="base64">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
0HUFjI2NpeYVipMnTyYmJob/5NChQyUlJfPnz1+wYIHVaq2srLzqqqtqa2vvu+++p556qrGx0eS/
V69eS5cufeuttyZPnvziiy8CQHp6uiAIAHDkyJHhw4cDgNVqTUlJOXHixDnnnPPTTz9t37593Lhx
sixv3749MzMTAMJH8UsAJ4jOC0LI+vXrJ06cOGjQoBdeeCE6OnrVqlXffPNNdnZ2eXn5pEmTZsyY
QQcjXQ5Dhw7duXNncXExAPh8vpUrV15//fWiKMqyHOqT9PT0tLS0hQsXLly48JVXXhkyZIjdbv/t
b3/76quvOhyOTZs2hfo8Li6OThvryx9TU1P37t0LAF6vt7i4uFevXoIgpKamvvPOOxdccEFGRsZr
r712wQUXAIApil9gJZR4O+z8OHz48MMPP/z444/fcccdDz744I4dO1auXPnYY48tW7bs66+/fuut
t0aNGtW1JHI4HM8+++wzzzwjimJhYeG0adMuueQSjLGiKI888sikSZMuvvhi0yeXXHLJ7t2777//
/piYGIzxX/7yly+++OKLL76wWq0ej+fOO++Mj4/XPx8xYsSJEyceeOABRVHcbvef/vQnNqhLL730
u+++e+CBB5qamu69996YmBgAuOCCC955552kpKRRo0a9+uqrI0eOBIDPP/+cjYLbIDg6hQ0iPMaP
H79mzZra2tqFCxdGR0dLkrRw4UJZlrvoOoi333770UcfbfvkAl8HwW0QHAAAX3311ZQpU4YPH26z
2b7//vv77rvv6aefHjt2LNXYuxxuu+22Z599lloHOLgNgqN9UFxc/Ic//CEnJ6epqentt99OTk7O
yspavXo1zxkOThAcKtxu95tvvnnzzTcfO3Zs5syZr7322syZM0NtG+Xg4ATxC8WWLVv+8pe/7N69
u7i4+O677963b19nTu3ZtAPt7AafxTirUFJSUlJSYrVaCwoKFixYcOONN3bCRJ4dp638Qs6M4RrE
WQiv17t3715+hh0H1yA4goOuOOycacvKyorcc15eHi9NThAcvxR2aAW66OkynCA4ODucIXCjZkeB
2yA4O3BwcILg7MDBwQniNKHzz2hxduA4HeA2CK47dDz0ndRBT/rm4BoEB9cdODhBcHB24OBDDA7O
Di0CH1lwDYKDswMHJwgOzg4cnCA4ODtwcILg4OzAwQmCg7NDJwbfiNGB4LMYnB3ONPLz8yP3/As5
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
wPjz/wptE3IAMkS0AAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>89628</attachid>
            <date>2011-04-14 12:35:53 -0700</date>
            <delta_ts>2011-04-14 12:35:53 -0700</delta_ts>
            <desc>html file used for the rendering tests</desc>
            <filename>path-nans-crash-misc.html</filename>
            <type>text/html</type>
            <size>2350</size>
            <attacher name="Ademar Reis">ademar</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgoKPGh0bWw+Cjxo
ZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtj
aGFyc2V0PVVURi04IiAvPgo8c2NyaXB0PgppZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CiAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cn0KZnVuY3Rpb24gc2V0
dXAoKSB7CnZhciBjYW52YXNEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnY2FudmFz
IiksCiAgICBzdmdkb2MgPSBjYW52YXNEaXYub3duZXJEb2N1bWVudCwKICAgIHN2Z25zID0gImh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwKICAgIHN2Z3Jvb3QgPSBudWxsOwoKICAgIGZ1bmN0
aW9uIG1rc3ZnX2VsKGVsKSB7CiAgICAgICAgcmV0dXJuIHN2Z2RvYy5jcmVhdGVFbGVtZW50TlMo
c3ZnbnMsIGVsKTsKICAgIH0KCiAgICBzdmdyb290ID0gbWtzdmdfZWwoInN2ZyIpOwogICAgY2Fu
dmFzRGl2LmFwcGVuZENoaWxkKHN2Z3Jvb3QpOwoKICAgIHZhciBzdmdsaW5lID0gbWtzdmdfZWwo
InBhdGgiKTsKCiAgICB2YXIgcGF0aGQgPSBzdmdsaW5lLnBhdGhTZWdMaXN0OwogICAgcGF0aGQu
aW5pdGlhbGl6ZShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnMoMTAsIDEwKSk7Cgog
ICAgcGF0aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNB
YnMoCiAgICAgICAgTmFOLCAzMCwKICAgICAgICAxMCwgMTAsCiAgICAgICAgMTAsIDcwKSk7CiAg
ICBwYXRoZC5hcHBlbmRJdGVtKHN2Z2xpbmUuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Fi
cygKICAgICAgICAwLCAzMCwKICAgICAgICAxMCwgMTAsCiAgICAgICAgMTAsIDcwKSk7CiAgICBw
YXRoZC5hcHBlbmRJdGVtKHN2Z2xpbmUuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicygK
ICAgICAgICA1MCwgTmFOLAogICAgICAgIDEwLCAxMCwKICAgICAgICAxMCwgNzApKTsKICAgIHBh
dGhkLmFwcGVuZEl0ZW0oc3ZnbGluZS5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKAog
ICAgICAgIDUwLCAzMCwKICAgICAgICBOYU4sIDEwLAogICAgICAgIDEwLCA3MCkpOwogICAgcGF0
aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMoCiAg
ICAgICAgNTAsIDMwLAogICAgICAgIDEwLCBOYU4sCiAgICAgICAgMTAsIDcwKSk7CiAgICBwYXRo
ZC5hcHBlbmRJdGVtKHN2Z2xpbmUuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicygKICAg
ICAgICA1MCwgMzAsCiAgICAgICAgMTAsIDEwLAogICAgICAgIE5hTiwgNzApKTsKICAgIHBhdGhk
LmFwcGVuZEl0ZW0oc3ZnbGluZS5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKAogICAg
ICAgIDUwLCAzMCwKICAgICAgICAxMCwgMTAsCiAgICAgICAgMTAsIE5hTikpOwogICAgcGF0aGQu
YXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMoCiAgICAg
ICAgNTAsIDMwLAogICAgICAgIDEwLCAxMCwKICAgICAgICAxMCwgMCkpOwoKICAgIHBhdGhkLmFw
cGVuZEl0ZW0oc3ZnbGluZS5jcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzKDMsIDEwKSk7CiAgICBw
YXRoZC5hcHBlbmRJdGVtKHN2Z2xpbmUuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0FicygzLCA4KSk7
CiAgICBwYXRoZC5hcHBlbmRJdGVtKHN2Z2xpbmUuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0Ficygz
LCAxNSkpOwogICAgcGF0aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1BhdGhTZWdMaW5l
dG9BYnMoTmFOLCAxMCkpOwogICAgcGF0aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNyZWF0ZVNWR1Bh
dGhTZWdMaW5ldG9BYnMoMSwgTmFOKSk7CgogICAgcGF0aGQuYXBwZW5kSXRlbShzdmdsaW5lLmNy
ZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnMoMTAsIDgpKTsKICAgIHBhdGhkLmFwcGVuZEl0ZW0oc3Zn
bGluZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKDgsIDUpKTsKICAgIHBhdGhkLmFwcGVuZEl0
ZW0oc3ZnbGluZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKE5hTiwgMTApKTsKICAgIHBhdGhk
LmFwcGVuZEl0ZW0oc3ZnbGluZS5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKDEsIE5hTikpOwoK
ICAgIHN2Z3Jvb3QuYXBwZW5kQ2hpbGQoc3ZnbGluZSk7Cn0KCihmdW5jdGlvbigpIHsKICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc2V0dXAsIGZhbHNlICk7Cn0oKSk7Cjwvc2Ny
aXB0Pgo8L2hlYWQ+Cgo8Ym9keT4KPGRpdiBpZD0ic3ZnY2FudmFzIj4KPC9kaXY+ClBBU1MKPC9i
b2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>