<?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>25532</bug_id>
          
          <creation_ts>2009-05-03 17:16:45 -0700</creation_ts>
          <short_desc>Clean up SVG rendering tree more</short_desc>
          <delta_ts>2009-05-05 07:45:37 -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>Mac</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>25568</dependson>
          <blocked>14019</blocked>
    
    <blocked>16939</blocked>
    
    <blocked>23112</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>krit</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>119749</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 17:16:45 -0700</bug_when>
    <thetext>Clean up SVG rendering tree more

I wrote 16 patches on my flight from LAX-&gt;SYD cleaning up the SVG rendering tree more.  They&apos;re all small (some of them tiny) and don&apos;t really need their own bugs, so I&apos;m going to attach the ones which don&apos;t already have other bugs here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119755</commentid>
    <comment_count>1</comment_count>
      <attachid>29972</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:16 -0700</bug_when>
    <thetext>Created attachment 29972
Fix RenderForeignObject::paint()

 .../text/foreignObject-repaint-expected.checksum   |    1 +
 .../svg/text/foreignObject-repaint-expected.png    |  Bin 0 -&gt; 32329 bytes
 .../svg/text/foreignObject-repaint-expected.txt    |   10 +++++++
 LayoutTests/svg/text/foreignObject-repaint.xml     |   15 +++++++++++
 WebCore/ChangeLog                                  |   11 ++++++++
 WebCore/rendering/RenderForeignObject.cpp          |   26 ++++++++-----------
 6 files changed, 48 insertions(+), 15 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119756</commentid>
    <comment_count>2</comment_count>
      <attachid>29973</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:21 -0700</bug_when>
    <thetext>Created attachment 29973
Remove redundant disableLayoutState() calls

 WebCore/ChangeLog                                |   14 ++++++++++++++
 WebCore/rendering/RenderForeignObject.cpp        |    9 ++-------
 WebCore/rendering/RenderSVGContainer.cpp         |    7 +------
 WebCore/rendering/RenderSVGViewportContainer.cpp |   12 ++++--------
 4 files changed, 21 insertions(+), 21 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119757</commentid>
    <comment_count>3</comment_count>
      <attachid>29974</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:25 -0700</bug_when>
    <thetext>Created attachment 29974
Share layout code between RenderSVGViewportContainer and RenderSVGContainer

 WebCore/ChangeLog                                |   15 ++++++++++++++
 WebCore/rendering/RenderSVGContainer.cpp         |    4 ++-
 WebCore/rendering/RenderSVGContainer.h           |    3 +-
 WebCore/rendering/RenderSVGViewportContainer.cpp |   23 ----------------------
 WebCore/rendering/RenderSVGViewportContainer.h   |    3 +-
 5 files changed, 21 insertions(+), 27 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119758</commentid>
    <comment_count>4</comment_count>
      <attachid>29975</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:29 -0700</bug_when>
    <thetext>Created attachment 29975
Remove dead code from RenderPath

 WebCore/ChangeLog                |   10 ++++++++++
 WebCore/rendering/RenderPath.cpp |   10 ----------
 WebCore/rendering/RenderPath.h   |    2 --
 3 files changed, 10 insertions(+), 12 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119759</commentid>
    <comment_count>5</comment_count>
      <attachid>29976</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:34 -0700</bug_when>
    <thetext>Created attachment 29976
Remove broken absoluteTransform() code from RenderSVGInlineText

 .../mac/svg/custom/focus-ring-expected.checksum    |    2 +-
 .../mac/svg/custom/focus-ring-expected.png         |  Bin 40658 -&gt; 43386 bytes
 .../svg/custom/svgsvgelement-ctm-expected.txt      |    8 ++--
 WebCore/ChangeLog                                  |   33 ++++++++++++++++++++
 WebCore/rendering/RenderSVGInlineText.cpp          |   30 ++++++++----------
 WebCore/rendering/RenderSVGInlineText.h            |    1 +
 WebCore/rendering/RenderSVGRoot.cpp                |   14 ++++++++
 WebCore/rendering/RenderSVGRoot.h                  |    2 +
 WebCore/rendering/RenderSVGText.cpp                |   14 ++++++++
 WebCore/rendering/RenderSVGText.h                  |    2 +
 WebCore/svg/SVGSVGElement.cpp                      |    4 +-
 11 files changed, 86 insertions(+), 24 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119760</commentid>
    <comment_count>6</comment_count>
      <attachid>29977</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:39 -0700</bug_when>
    <thetext>Created attachment 29977
Move RenderSVGText off of localToAbsolute()

 WebCore/ChangeLog                   |   11 +++++++++++
 WebCore/rendering/RenderSVGText.cpp |   20 ++++++--------------
 2 files changed, 17 insertions(+), 14 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119761</commentid>
    <comment_count>7</comment_count>
      <attachid>29978</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:43 -0700</bug_when>
    <thetext>Created attachment 29978
Move absoluteRects and absoluteQuads into RenderSVGInline and remove absoluteTransform() usage

 WebCore/ChangeLog                       |   16 +++++++++++
 WebCore/rendering/RenderSVGInline.cpp   |   43 ++++++++++++++++++++++++++++-
 WebCore/rendering/RenderSVGInline.h     |    4 +++
 WebCore/rendering/RenderSVGTSpan.cpp    |   45 -------------------------------
 WebCore/rendering/RenderSVGTSpan.h      |    2 -
 WebCore/rendering/RenderSVGTextPath.cpp |   40 ---------------------------
 WebCore/rendering/RenderSVGTextPath.h   |    2 -
 7 files changed, 62 insertions(+), 90 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119762</commentid>
    <comment_count>8</comment_count>
      <attachid>29979</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:49 -0700</bug_when>
    <thetext>Created attachment 29979
Add SVGRenderBase to share logic between SVG renderers

 WebCore/ChangeLog                               |   39 ++++++++++++++++++
 WebCore/rendering/RenderSVGBlock.h              |    3 +-
 WebCore/rendering/RenderSVGImage.h              |    3 +-
 WebCore/rendering/RenderSVGModelObject.h        |    7 ++-
 WebCore/rendering/RenderSVGRoot.h               |    3 +-
 WebCore/rendering/SVGRenderSupport.cpp          |   20 ++++-----
 WebCore/rendering/SVGRenderSupport.h            |   50 ++++++++++++++--------
 WebCore/rendering/SVGRootInlineBox.cpp          |    9 ++--
 WebCore/svg/SVGMaskElement.cpp                  |    2 +-
 WebCore/svg/SVGPatternElement.cpp               |    4 +-
 WebCore/svg/graphics/SVGPaintServerGradient.cpp |    5 +-
 11 files changed, 100 insertions(+), 45 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119763</commentid>
    <comment_count>9</comment_count>
      <attachid>29980</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:53 -0700</bug_when>
    <thetext>Created attachment 29980
Move more code into SVGRenderBase

 WebCore/ChangeLog                          |   35 +++++++++++++++++++++++++++
 WebCore/rendering/RenderSVGImage.cpp       |   19 +++++---------
 WebCore/rendering/RenderSVGImage.h         |    4 ++-
 WebCore/rendering/RenderSVGModelObject.cpp |   27 ++++-----------------
 WebCore/rendering/RenderSVGText.cpp        |   25 ++-----------------
 WebCore/rendering/SVGRenderSupport.cpp     |   36 +++++++++++++++++++++++++++-
 WebCore/rendering/SVGRenderSupport.h       |    5 ++++
 7 files changed, 93 insertions(+), 58 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119764</commentid>
    <comment_count>10</comment_count>
      <attachid>29981</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:01:57 -0700</bug_when>
    <thetext>Created attachment 29981
Remove the vestigial calculateLocalTransform()

 .../mac/svg/custom/focus-ring-expected.checksum    |    2 +-
 .../mac/svg/custom/focus-ring-expected.png         |  Bin 43386 -&gt; 50898 bytes
 WebCore/ChangeLog                                  |   33 ++++++++++++++++++++
 WebCore/rendering/RenderForeignObject.cpp          |    9 +-----
 WebCore/rendering/RenderForeignObject.h            |    4 +-
 WebCore/rendering/RenderPath.cpp                   |   14 ++------
 WebCore/rendering/RenderPath.h                     |    1 -
 WebCore/rendering/RenderSVGContainer.cpp           |    6 ---
 WebCore/rendering/RenderSVGContainer.h             |    3 +-
 WebCore/rendering/RenderSVGImage.cpp               |   20 +++++-------
 WebCore/rendering/RenderSVGImage.h                 |    1 -
 WebCore/rendering/RenderSVGText.cpp                |   13 ++------
 WebCore/rendering/RenderSVGText.h                  |    2 -
 .../rendering/RenderSVGTransformableContainer.cpp  |    4 +--
 .../rendering/RenderSVGTransformableContainer.h    |    4 +-
 15 files changed, 56 insertions(+), 60 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119765</commentid>
    <comment_count>11</comment_count>
      <attachid>29982</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:02:03 -0700</bug_when>
    <thetext>Created attachment 29982
Remove m_absoluteBounds hack from RenderSVGText

 WebCore/ChangeLog                   |   13 +++++++++++++
 WebCore/rendering/RenderSVGText.cpp |    6 +-----
 WebCore/rendering/RenderSVGText.h   |    1 -
 3 files changed, 14 insertions(+), 6 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119766</commentid>
    <comment_count>12</comment_count>
      <attachid>29983</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:02:08 -0700</bug_when>
    <thetext>Created attachment 29983
ASSERT(useTransforms) in SVG mapLocalToContainer implementations

 WebCore/ChangeLog                      |   12 ++++++++++++
 WebCore/rendering/RenderSVGRoot.cpp    |    9 +++------
 WebCore/rendering/SVGRenderSupport.cpp |    9 ++-------
 3 files changed, 17 insertions(+), 13 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119767</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-03 21:03:21 -0700</bug_when>
    <thetext>Oops.  I need to fix my get-send-bugzilla script to be shorter. :(

Also, I know this is a lot of patches for one bug.  I expect that pretty much all of these will be simple r+&apos;s.  If any of them need discussion I&apos;m happy to break them out into other bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119908</commentid>
    <comment_count>14</comment_count>
      <attachid>29979</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-05-04 17:32:37 -0700</bug_when>
    <thetext>Comment on attachment 29979
Add SVGRenderBase to share logic between SVG renderers

&gt;  // Most renderers in the SVG rendering tree will inherit from this class
&gt;  // but not all. (e.g. RenderSVGForeignObject, RenderSVGBlock, RenderSVGImage) thus methods
&gt; -// required by SVG renders need to be declared on RenderObject, but some shared
&gt; -// logic can go in this class.
&gt; +// required by SVG renders need to be declared on RenderObject, but shared
&gt; +// logic can go in this class or in SVGRenderBase.

You should give some direction about why one or the other is appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119910</commentid>
    <comment_count>15</comment_count>
      <attachid>29980</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-05-04 17:37:23 -0700</bug_when>
    <thetext>Comment on attachment 29980
Move more code into SVGRenderBase

&gt; +IntRect SVGRenderBase::clippedOverflowRectForRepaint(RenderObject* object, RenderBoxModelObject* repaintContainer)
&gt; +{

Maybe assert that repaintContainer != this to make sure that someone isn&apos;t trying to do a container-relative
repaint inside of SVG content?

&gt; +    // Return early for any cases where we don&apos;t actually paint
&gt; +    if (object-&gt;style()-&gt;visibility() != VISIBLE &amp;&amp; !object-&gt;enclosingLayer()-&gt;hasVisibleContent())
&gt; +        return IntRect();
&gt; +
&gt; +    // Pass our local paint rect to computeRectForRepaint() which will
&gt; +    // map to parent coords and recurse up the parent chain.
&gt; +    IntRect repaintRect = enclosingIntRect(object-&gt;repaintRectInLocalCoordinates());
&gt; +    object-&gt;computeRectForRepaint(repaintContainer, repaintRect);
&gt; +    return repaintRect;


&gt; +void SVGRenderBase::computeRectForRepaint(RenderObject* object, RenderBoxModelObject* repaintContainer, IntRect&amp; repaintRect, bool fixed)
&gt; +{

Assert that this != repaintContainer ?

&gt; +    // Translate to coords in our parent renderer, and then call computeRectForRepaint on our parent
&gt; +    repaintRect = object-&gt;localToParentTransform().mapRect(repaintRect);
&gt; +    object-&gt;parent()-&gt;computeRectForRepaint(repaintContainer, repaintRect, fixed);

Is object-&gt;parent() always non-null?

&gt; +void SVGRenderBase::mapLocalToContainer(const RenderObject* object, RenderBoxModelObject* repaintContainer, bool fixed , bool useTransforms, TransformState&amp; transformState)
&gt; +{
&gt; +    ASSERT(!fixed); // We should have no fixed content in the SVG rendering tree.
&gt; +
&gt; +    // FIXME: If we don&apos;t respect useTransforms we break SVG text rendering.
&gt; +    // Seems RenderSVGInlineText has some own broken translation hacks which depend useTransforms=false
&gt; +    // This should instead be ASSERT(useTransforms) once we fix RenderSVGInlineText
&gt; +    if (useTransforms)
&gt; +        transformState.applyTransform(object-&gt;localToParentTransform());
&gt; +
&gt; +    object-&gt;parent()-&gt;mapLocalToContainer(repaintContainer, fixed, useTransforms, transformState);

Is object-&gt;parent() always non-null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119912</commentid>
    <comment_count>16</comment_count>
      <attachid>29982</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-05-04 17:41:36 -0700</bug_when>
    <thetext>Comment on attachment 29982
Remove m_absoluteBounds hack from RenderSVGText

&gt; +        No functional changes (SVGs inside CSS transformed HTML should theoretically repaint better)

Can we have a testcase pls?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119913</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-04 18:04:30 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 29982 [review])
&gt; &gt; +        No functional changes (SVGs inside CSS transformed HTML should theoretically repaint better)
&gt; 
&gt; Can we have a testcase pls?

It&apos;s possible that the test cases from bug 23112 or bug 23113 may already be fixed by these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119934</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-05 01:11:39 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 29980 [review])

object()-&gt;parent() is alwasy non-null, yes.  Unless you&apos;re the root of the render tree... which is only RenderCanvas iirc.

And few SVG renderers are RenderBoxModelObject&apos;s so checking this != repaintContainer seems overkill to me.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119935</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-05 01:14:56 -0700</bug_when>
    <thetext>Yay, these are all landed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119936</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-05 01:16:35 -0700</bug_when>
    <thetext>A test case for some of this is up for review at:
https://bugs.webkit.org/show_bug.cgi?id=23112</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119939</commentid>
    <comment_count>21</comment_count>
      <attachid>29983</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-05 02:11:00 -0700</bug_when>
    <thetext>Comment on attachment 29983
ASSERT(useTransforms) in SVG mapLocalToContainer implementations

Had to roll this one out, I must not have run the tests after this change... I thought I did.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/rendering/RenderSVGRoot.cpp
	M	WebCore/rendering/SVGRenderSupport.cpp
Committed r43218</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119940</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-05 02:11:20 -0700</bug_when>
    <thetext>Re-opening since I rolled out the last change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119963</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-05 07:45:37 -0700</bug_when>
    <thetext>I&apos;ll land this last patch as part of:
https://bugs.webkit.org/show_bug.cgi?id=25568

We can go ahead and close this bug again. :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29972</attachid>
            <date>2009-05-03 21:01:16 -0700</date>
            <delta_ts>2009-05-03 21:18:47 -0700</delta_ts>
            <desc>Fix RenderForeignObject::paint()</desc>
            <filename>Fix-RenderForeignObject-paint-.patch</filename>
            <type>text/plain</type>
            <size>5203</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">YzA2M2U0M2NhZTc3YzlhOThjZWI3OTFmOWQ1ZDJkNjJmNWZjOGE5MgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L2ZvcmVpZ25PYmplY3QtcmVwYWludC1leHBl
Y3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4dC9mb3JlaWdu
T2JqZWN0LXJlcGFpbnQtZXhwZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMmEzZDBmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvdGV4dC9mb3JlaWduT2JqZWN0LXJlcGFpbnQtZXhwZWN0ZWQuY2hlY2tzdW0K
QEAgLTAsMCArMSBAQAorMDAwZWI0YjFiNGRjOGU2Nzk1ZTdkN2Q4NWI1NjMzOTgKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL3RleHQvZm9yZWlnbk9iamVjdC1yZXBhaW50LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvdGV4dC9mb3JlaWduT2JqZWN0LXJlcGFpbnQtZXhwZWN0ZWQucG5n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NDlhYmQKQmluYXJ5IGZpbGVz
IC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvZm9yZWln
bk9iamVjdC1yZXBhaW50LWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4dC9mb3JlaWduT2JqZWN0LXJlcGFpbnQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L2ZvcmVpZ25PYmplY3QtcmVw
YWludC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE1
OGYwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4
dC9mb3JlaWduT2JqZWN0LXJlcGFpbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAw
eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30g
YXQgKDAsMCkgc2l6ZSAweDAKKyAgICBSZW5kZXJGb3JlaWduT2JqZWN0IHtmb3JlaWduT2JqZWN0
fSBhdCAoMCwwKSBzaXplIDUwMHgzMDAKKyAgICAgIFJlbmRlckJsb2NrIHtkaXZ9IGF0ICgwLDAp
IHNpemUgNTAweDE4MworICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0
ODd4MTgzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDg3OiAiU2VsZWN0IHRo
aXMgdGV4dCB1c2luZyIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw2MSkgd2lkdGggNDczOiAi
dGhlIG1vdXNlLCBpdCBzaG91bGQiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTIyKSB3aWR0
aCAzMzQ6ICJub3QgZGlzYXBwZWFyISIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90ZXh0
L2ZvcmVpZ25PYmplY3QtcmVwYWludC54bWwgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9mb3JlaWdu
T2JqZWN0LXJlcGFpbnQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBm
YzgwMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9mb3JlaWduT2Jq
ZWN0LXJlcGFpbnQueG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIj4KKyAgPGZvcmVpZ25PYmplY3QgeD0iMTAwIiB5PSIxMDAiIHdpZHRo
PSI1MDAiIGhlaWdodD0iMzAwIiBzdHlsZT0ib3ZlcmZsb3c6aGlkZGVuOyI+CisgICAgPGRpdiB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImZvbnQ6IDQwcHQgc2Fu
cy1zZXJpZiIgPgorICAgICAgU2VsZWN0IHRoaXMgdGV4dCB1c2luZyB0aGUgbW91c2UsIGl0IHNo
b3VsZCBub3QgZGlzYXBwZWFyIQorICAgIDwvZGl2PgorICA8L2ZvcmVpZ25PYmplY3Q+CisgIDxz
Y3JpcHQ+CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIlNlbGVjdEFsbCIpOworICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAw
LCAyMDApOworICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7CisgICAgfQorICA8L3NjcmlwdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2OGU5ZjY4Li5kNzRlOWZl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDA5LTA1LTAzICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1w
bGlmeSBSZW5kZXJGb3JlaWduT2JqZWN0OjpwYWludCBhbmQgZml4IGEgcmVwYWludCBidWcuCisg
ICAgICAgIFBhaW50IG5vdyBjYWxscyBhcHBseVRyYW5zZm9ybVRvUGFpbnRJbmZvIHdoaWNoIGNv
cnJlY3RseSB0cmFuc2Zvcm1zIHRoZSBkYW1hZ2UgcmVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTM5CisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRm9yZWlnbk9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGb3JlaWdu
T2JqZWN0OjpwYWludCk6CisKIDIwMDktMDUtMDMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSb2xsIEpTQyBBUEkgbnVtYmVyIG1hcnNoYWxpbmcgYmFjayBpbiBvbmUg
bGFzdCB0aW1lIChJIGhvcGUpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Rm9yZWlnbk9iamVjdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGb3JlaWduT2JqZWN0
LmNwcAppbmRleCBiM2Y1OTcwLi5mODJiNjI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGb3JlaWduT2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
b3JlaWduT2JqZWN0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcu
aCIKICNpbmNsdWRlICJTVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0xl
bmd0aC5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKICNpbmNsdWRlICJTVkdUcmFu
c2Zvcm1MaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDMyICs0NCwyNyBAQCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBSZW5kZXJGb3JlaWduT2JqZWN0Ojp0cmFuc2xhdGlvbkZvckF0
dHJpYnV0ZXMoKSBjb25zdAogICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLnRyYW5z
bGF0ZShmb3JlaWduLT54KCkudmFsdWUoZm9yZWlnbiksIGZvcmVpZ24tPnkoKS52YWx1ZShmb3Jl
aWduKSk7CiB9CiAKLXZvaWQgUmVuZGVyRm9yZWlnbk9iamVjdDo6cGFpbnQoUGFpbnRJbmZvJiBw
YWludEluZm8sIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSkKK3ZvaWQgUmVuZGVyRm9yZWlnbk9i
amVjdDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCwgaW50KQogewotICAgIC8vIFRo
ZSBTVkcgcmVuZGVyaW5nIHRyZWUgc2hvdWxkIG5vdCBiZSB1c2luZyBwYXJlbnRYL3BhcmVudFkK
LSAgICBBU1NFUlQoIXBhcmVudFgpOwotICAgIEFTU0VSVCghcGFyZW50WSk7CiAgICAgaWYgKHBh
aW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHBhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7Ci0gICAgcGFpbnRJbmZvLmNvbnRleHQtPmNv
bmNhdENUTShUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLnRyYW5zbGF0ZShwYXJlbnRYLCBwYXJlbnRZ
KSk7Ci0gICAgcGFpbnRJbmZvLmNvbnRleHQtPmNvbmNhdENUTShsb2NhbFRvUGFyZW50VHJhbnNm
b3JtKCkpOwotICAgIHBhaW50SW5mby5jb250ZXh0LT5jbGlwKGNsaXBSZWN0KHBhcmVudFgsIHBh
cmVudFkpKTsKKyAgICAvLyBDb3B5IHRoZSBwYWludCBpbmZvIHNvIHRoYXQgbW9kaWZpY2F0aW9u
cyB0byB0aGUgZGFtYWdlIHJlY3QgZG8gbm90IGFmZmVjdCBjYWxsZXJzCisgICAgUGFpbnRJbmZv
IGNoaWxkUGFpbnRJbmZvID0gcGFpbnRJbmZvOworICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQt
PnNhdmUoKTsKKyAgICBhcHBseVRyYW5zZm9ybVRvUGFpbnRJbmZvKGNoaWxkUGFpbnRJbmZvLCBs
b2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOworICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPmNs
aXAoY2xpcFJlY3QoMCwgMCkpOwogCiAgICAgZmxvYXQgb3BhY2l0eSA9IHN0eWxlKCktPm9wYWNp
dHkoKTsKICAgICBpZiAob3BhY2l0eSA8IDEuMGYpCi0gICAgICAgIC8vIEZJWE1FOiBQb3NzaWJs
ZSBvcHRpbWl6YXRpb24gYnkgY2xpcHBpbmcgdG8gYmJveCBoZXJlLCBvbmNlIHJlbGF0aXZlQkJv
eCBpcyBpbXBsZW1lbnRlZCAmIGNsaXAsIG1hc2sgYW5kIGZpbHRlciBzdXBwb3J0IGFkZGVkLgot
ICAgICAgICBwYWludEluZm8uY29udGV4dC0+YmVnaW5UcmFuc3BhcmVuY3lMYXllcihvcGFjaXR5
KTsKKyAgICAgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+YmVnaW5UcmFuc3BhcmVuY3lMYXll
cihvcGFjaXR5KTsKIAotICAgIFBhaW50SW5mbyBwaShwYWludEluZm8pOwotICAgIHBpLnJlY3Qg
PSBhYnNvbHV0ZVRyYW5zZm9ybSgpLmludmVyc2UoKS5tYXBSZWN0KHBhaW50SW5mby5yZWN0KTsK
LSAgICBSZW5kZXJCbG9jazo6cGFpbnQocGksIDAsIDApOworICAgIFJlbmRlckJsb2NrOjpwYWlu
dChjaGlsZFBhaW50SW5mbywgMCwgMCk7CiAKICAgICBpZiAob3BhY2l0eSA8IDEuMGYpCi0gICAg
ICAgIHBhaW50SW5mby5jb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworICAgICAgICBj
aGlsZFBhaW50SW5mby5jb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwogCi0gICAgcGFp
bnRJbmZvLmNvbnRleHQtPnJlc3RvcmUoKTsKKyAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5y
ZXN0b3JlKCk7CiB9CiAKIEZsb2F0UmVjdCBSZW5kZXJGb3JlaWduT2JqZWN0OjpvYmplY3RCb3Vu
ZGluZ0JveCgpIGNvbnN0Cg==
</data>
<flag name="review"
          id="15021"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29973</attachid>
            <date>2009-05-03 21:01:21 -0700</date>
            <delta_ts>2009-05-03 21:19:22 -0700</delta_ts>
            <desc>Remove redundant disableLayoutState() calls</desc>
            <filename>Remove-redundant-disableLayoutState-calls.patch</filename>
            <type>text/plain</type>
            <size>3956</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MWNjOWU3YjI2NTU5ZTViODJiZTdmMGNkMDQ4NTUyOTNmODQ2ZDllYwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNzRlOWZlLi44MzA5MzE0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDIwIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgUmVtb3ZlIHJlZHVuZGFudCBkaXNhYmxlTGF5b3V0U3RhdGUoKSBjYWxscworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzIKKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJGb3JlaWduT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckZvcmVpZ25PYmplY3Q6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNWR0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWlu
ZXI6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFp
bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyOjps
YXlvdXQpOgorCisyMDA5LTA1LTAzICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBTaW1wbGlmeSBS
ZW5kZXJGb3JlaWduT2JqZWN0OjpwYWludCBhbmQgZml4IGEgcmVwYWludCBidWcuCiAgICAgICAg
IFBhaW50IG5vdyBjYWxscyBhcHBseVRyYW5zZm9ybVRvUGFpbnRJbmZvIHdoaWNoIGNvcnJlY3Rs
eSB0cmFuc2Zvcm1zIHRoZSBkYW1hZ2UgcmVjdC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTM5CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGb3JlaWduT2JqZWN0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZvcmVp
Z25PYmplY3QuY3BwCmluZGV4IGY4MmI2MjUuLjg5MmI3OWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZvcmVpZ25PYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZvcmVpZ25PYmplY3QuY3BwCkBAIC0xMDIsMTkgKzEwMiwxNCBAQCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBSZW5kZXJGb3JlaWduT2JqZWN0Ojpsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkg
Y29uc3QKIHZvaWQgUmVuZGVyRm9yZWlnbk9iamVjdDo6bGF5b3V0KCkKIHsKICAgICBBU1NFUlQo
bmVlZHNMYXlvdXQoKSk7Ci0KLSAgICAvLyBBcmJpdHJhcnkgYWZmaW5lIHRyYW5zZm9ybXMgYXJl
IGluY29tcGF0aWJsZSB3aXRoIExheW91dFN0YXRlLgotICAgIHZpZXcoKS0+ZGlzYWJsZUxheW91
dFN0YXRlKCk7CisgICAgQVNTRVJUKCF2aWV3KCktPmxheW91dFN0YXRlRW5hYmxlZCgpKTsgLy8g
UmVuZGVyU1ZHUm9vdCBkaXNhYmxlcyBsYXlvdXRTdGF0ZSBmb3IgdGhlIFNWRyByZW5kZXJpbmcg
dHJlZS4KIAogICAgIExheW91dFJlcGFpbnRlciByZXBhaW50ZXIoKnRoaXMsIGNoZWNrRm9yUmVw
YWludER1cmluZ0xheW91dCgpKTsKLSAgICAKICAgICBjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgp
OwotICAgIAotICAgIFJlbmRlckJsb2NrOjpsYXlvdXQoKTsKIAorICAgIFJlbmRlckJsb2NrOjps
YXlvdXQoKTsKICAgICByZXBhaW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7CiAKLSAgICB2aWV3
KCktPmVuYWJsZUxheW91dFN0YXRlKCk7CiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250YWluZXIuY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAppbmRleCA5YzliMjA1Li43
YTNkOWNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250YWluZXIu
Y3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKQEAgLTY1
LDEyICs2NSw5IEBAIGJvb2wgUmVuZGVyU1ZHQ29udGFpbmVyOjpjYWxjdWxhdGVMb2NhbFRyYW5z
Zm9ybSgpCiB2b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6bGF5b3V0KCkKIHsKICAgICBBU1NFUlQo
bmVlZHNMYXlvdXQoKSk7Ci0KLSAgICAvLyBBcmJpdHJhcnkgYWZmaW5lIHRyYW5zZm9ybXMgYXJl
IGluY29tcGF0aWJsZSB3aXRoIExheW91dFN0YXRlLgotICAgIHZpZXcoKS0+ZGlzYWJsZUxheW91
dFN0YXRlKCk7CisgICAgQVNTRVJUKCF2aWV3KCktPmxheW91dFN0YXRlRW5hYmxlZCgpKTsgLy8g
UmVuZGVyU1ZHUm9vdCBkaXNhYmxlcyBsYXlvdXRTdGF0ZSBmb3IgdGhlIFNWRyByZW5kZXJpbmcg
dHJlZS4KIAogICAgIExheW91dFJlcGFpbnRlciByZXBhaW50ZXIoKnRoaXMsIGNoZWNrRm9yUmVw
YWludER1cmluZ0xheW91dCgpIHx8IHNlbGZXaWxsUGFpbnQoKSk7Ci0KICAgICBjYWxjdWxhdGVM
b2NhbFRyYW5zZm9ybSgpOwogCiAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewpAQCAtODQsMTAg
KzgxLDggQEAgdm9pZCBSZW5kZXJTVkdDb250YWluZXI6OmxheW91dCgpCiAgICAgICAgIGNoaWxk
LT5sYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICBBU1NFUlQoIWNoaWxkLT5uZWVkc0xheW91dCgp
KTsKICAgICB9Ci0KICAgICByZXBhaW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7CiAKLSAgICB2
aWV3KCktPmVuYWJsZUxheW91dFN0YXRlKCk7CiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwog
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5j
cHAKaW5kZXggM2ZhNjYzMi4uYmJiMzg2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcApAQCAtNDUsMTIgKzQ1LDEwIEBAIFJlbmRlclNW
R1ZpZXdwb3J0Q29udGFpbmVyOjp+UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIoKQogdm9pZCBS
ZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcjo6bGF5b3V0KCkKIHsKICAgICBBU1NFUlQobmVlZHNM
YXlvdXQoKSk7Ci0gICAgCisgICAgQVNTRVJUKCF2aWV3KCktPmxheW91dFN0YXRlRW5hYmxlZCgp
KTsgLy8gUmVuZGVyU1ZHUm9vdCBkaXNhYmxlcyBsYXlvdXRTdGF0ZSBmb3IgdGhlIFNWRyByZW5k
ZXJpbmcgdHJlZS4KKwogICAgIGNhbGNWaWV3cG9ydCgpOwotICAgIAotICAgIC8vIEFyYml0cmFy
eSBhZmZpbmUgdHJhbnNmb3JtcyBhcmUgaW5jb21wYXRpYmxlIHdpdGggTGF5b3V0U3RhdGUuCi0g
ICAgdmlldygpLT5kaXNhYmxlTGF5b3V0U3RhdGUoKTsKLSAgICAKKwogICAgIExheW91dFJlcGFp
bnRlciByZXBhaW50ZXIoKnRoaXMsIGNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgpICYmIHNl
bGZOZWVkc0xheW91dCgpKTsKIAogICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKQEAgLTYwLDEw
ICs1OCw4IEBAIHZvaWQgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXI6OmxheW91dCgpCiAgICAg
ICAgIGNoaWxkLT5sYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICBBU1NFUlQoIWNoaWxkLT5uZWVk
c0xheW91dCgpKTsKICAgICB9Ci0gICAgCiAgICAgcmVwYWludGVyLnJlcGFpbnRBZnRlckxheW91
dCgpOwotICAgIAotICAgIHZpZXcoKS0+ZW5hYmxlTGF5b3V0U3RhdGUoKTsKKwogICAgIHNldE5l
ZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAo=
</data>
<flag name="review"
          id="15022"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29974</attachid>
            <date>2009-05-03 21:01:25 -0700</date>
            <delta_ts>2009-05-03 21:20:16 -0700</delta_ts>
            <desc>Share layout code between RenderSVGViewportContainer and RenderSVGContainer</desc>
            <filename>Share-layout-code-between-RenderSVGViewportContainer-and-RenderSVGContainer.patch</filename>
            <type>text/plain</type>
            <size>4888</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">OTNmM2RmZjY5MDNhYWMxYTQ5MDRmMTQ5YmRiODdhOTgwZTFjMzhkZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MzA5MzE0Li5hMGY4YTA4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDIxIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgU2hhcmUgbGF5b3V0IGNvZGUgYmV0d2VlbiBSZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lciBhbmQgUmVuZGVyU1ZHQ29udGFpbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUzMgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNW
R0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWluZXI6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHQ29udGFpbmVyOjpjYWxjVmlld3BvcnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcjo6YXBwbHlWaWV3cG9ydENsaXApOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oOgorCisyMDA5LTA1
LTAzICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBSZW1vdmUgcmVkdW5kYW50IGRpc2FibGVMYXlv
dXRTdGF0ZSgpIGNhbGxzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNTUzMgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdD
b250YWluZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcApp
bmRleCA3YTNkOWNkLi5jOWEzMzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdDb250YWluZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRh
aW5lci5jcHAKQEAgLTY3LDggKzY3LDEwIEBAIHZvaWQgUmVuZGVyU1ZHQ29udGFpbmVyOjpsYXlv
dXQoKQogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKICAgICBBU1NFUlQoIXZpZXcoKS0+bGF5
b3V0U3RhdGVFbmFibGVkKCkpOyAvLyBSZW5kZXJTVkdSb290IGRpc2FibGVzIGxheW91dFN0YXRl
IGZvciB0aGUgU1ZHIHJlbmRlcmluZyB0cmVlLgogCisgICAgY2FsY1ZpZXdwb3J0KCk7IC8vIEFs
bG93IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHRvIHVwZGF0ZSBpdHMgdmlld3BvcnQKKwog
ICAgIExheW91dFJlcGFpbnRlciByZXBhaW50ZXIoKnRoaXMsIGNoZWNrRm9yUmVwYWludER1cmlu
Z0xheW91dCgpIHx8IHNlbGZXaWxsUGFpbnQoKSk7Ci0gICAgY2FsY3VsYXRlTG9jYWxUcmFuc2Zv
cm0oKTsKKyAgICBjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgpOyAvLyBBbGxvdyBSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyIHRvIHVwZGF0ZSBpdHMgdHJhbnNmb3JtCiAKICAgICBmb3Ig
KFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIC8vIE9ubHkgZm9yY2Ugb3VyIGtpZHMgdG8gbGF5
b3V0IGlmIHdlJ3JlIGJlaW5nIGFza2VkIHRvIHJlbGF5b3V0IGFzIGEgcmVzdWx0IG9mIGEgcGFy
ZW50IGNoYW5naW5nCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250
YWluZXIuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5oCmluZGV4IGEw
YjU0YjguLjA3NWFlMDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0Nv
bnRhaW5lci5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5oCkBA
IC01OSw3ICs1OSw4IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgY2Fs
Y3VsYXRlTG9jYWxUcmFuc2Zvcm0oKTsKIAotICAgIC8vIEFsbG93IFJlbmRlclNWR1ZpZXdwb3J0
Q29udGFpbmVyIHRvIGhvb2sgaW4gYXQgdGhlIHJpZ2h0IHRpbWVzIGluIHBhaW50KCkgYW5kIG5v
ZGVBdEZsb2F0UG9pbnQoKQorICAgIC8vIEFsbG93IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
IHRvIGhvb2sgaW4gYXQgdGhlIHJpZ2h0IHRpbWVzIGluIGxheW91dCgpLCBwYWludCgpIGFuZCBu
b2RlQXRGbG9hdFBvaW50KCkKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY1ZpZXdwb3J0KCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGFwcGx5Vmlld3BvcnRDbGlwKFBhaW50SW5mbyYpIHsgfQogICAgIHZp
cnR1YWwgYm9vbCBwb2ludElzSW5zaWRlVmlld3BvcnRDbGlwKGNvbnN0IEZsb2F0UG9pbnQmIC8q
cG9pbnRJblBhcmVudCovKSB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcCBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcAppbmRleCBiYmIzODZjLi5kMjA4NjIx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ci5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIu
Y3BwCkBAIC00MiwyNyArNDIsNiBAQCBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcjo6flJlbmRl
clNWR1ZpZXdwb3J0Q29udGFpbmVyKCkKIHsKIH0KIAotdm9pZCBSZW5kZXJTVkdWaWV3cG9ydENv
bnRhaW5lcjo6bGF5b3V0KCkKLXsKLSAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7Ci0gICAgQVNT
RVJUKCF2aWV3KCktPmxheW91dFN0YXRlRW5hYmxlZCgpKTsgLy8gUmVuZGVyU1ZHUm9vdCBkaXNh
YmxlcyBsYXlvdXRTdGF0ZSBmb3IgdGhlIFNWRyByZW5kZXJpbmcgdHJlZS4KLQotICAgIGNhbGNW
aWV3cG9ydCgpOwotCi0gICAgTGF5b3V0UmVwYWludGVyIHJlcGFpbnRlcigqdGhpcywgY2hlY2tG
b3JSZXBhaW50RHVyaW5nTGF5b3V0KCkgJiYgc2VsZk5lZWRzTGF5b3V0KCkpOwotCi0gICAgZm9y
IChSZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAoc2VsZk5lZWRzTGF5b3V0KCkpCi0gICAg
ICAgICAgICBjaGlsZC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7Ci0gICAgICAgIAotICAgICAgICBj
aGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKLSAgICAgICAgQVNTRVJUKCFjaGlsZC0+bmVlZHNMYXlv
dXQoKSk7Ci0gICAgfQotICAgIHJlcGFpbnRlci5yZXBhaW50QWZ0ZXJMYXlvdXQoKTsKLQotICAg
IHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKLX0KLQogdm9pZCBSZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lcjo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCBwYXJlbnRYLCBpbnQgcGFyZW50
WSkKIHsKICAgICAvLyBBIHZhbHVlIG9mIHplcm8gZGlzYWJsZXMgcmVuZGVyaW5nIG9mIHRoZSBl
bGVtZW50LiAKQEAgLTc2LDggKzU1LDYgQEAgdm9pZCBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
cjo6YXBwbHlWaWV3cG9ydENsaXAoUGFpbnRJbmZvJiBwYWludEluZm8pCiB7CiAgICAgaWYgKHN0
eWxlKCktPm92ZXJmbG93WCgpICE9IE9WSVNJQkxFKQogICAgICAgICBwYWludEluZm8uY29udGV4
dC0+Y2xpcChlbmNsb3NpbmdJbnRSZWN0KHZpZXdwb3J0KCkpKTsgLy8gRklYTUU6IEV2ZW50dWFs
bHkgd2UnbGwgd2FudCBmbG9hdC1wcmVjaXNpb24gY2xpcHBpbmcKLQotICAgIFJlbmRlclNWR0Nv
bnRhaW5lcjo6YXBwbHlWaWV3cG9ydENsaXAocGFpbnRJbmZvKTsKIH0KIAogRmxvYXRSZWN0IFJl
bmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyOjp2aWV3cG9ydCgpIGNvbnN0CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaAppbmRleCA3OTYyMjJiLi44NjU3
YWY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lci5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
LmgKQEAgLTM4LDcgKzM4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0NvbnRh
aW5lcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIiOyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBh
aW50SW5mbyYsIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSk7CiAKICAgICB2aXJ0dWFsIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSBjb25zdDsKQEAgLTUyLDcg
KzUxLDcgQEAgcHVibGljOgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHZpZXdwb3J0VHJhbnNm
b3JtKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBjYWxjVmlld3BvcnQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgY2FsY1ZpZXdwb3J0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlWaWV3
cG9ydENsaXAoUGFpbnRJbmZvJik7CiAgICAgdmlydHVhbCBib29sIHBvaW50SXNJbnNpZGVWaWV3
cG9ydENsaXAoY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBhcmVudCk7Cg==
</data>
<flag name="review"
          id="15023"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29975</attachid>
            <date>2009-05-03 21:01:29 -0700</date>
            <delta_ts>2009-05-03 21:20:52 -0700</delta_ts>
            <desc>Remove dead code from RenderPath</desc>
            <filename>Remove-dead-code-from-RenderPath.patch</filename>
            <type>text/plain</type>
            <size>1885</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MzljMzgxYjY4MjFkNWY5NmI2MmE2ZjAyZTA0NTEwZDk3ZTQzYjM3ZApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMGY4YTA4Li4zMDk3YzI0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDE2IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgUmVtb3ZlIGRlYWQgY29kZSBmcm9tIFJlbmRlclBhdGgKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NTMyCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUGF0aC5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhdGguaDoK
KworMjAwOS0wNS0wMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgU2hhcmUgbGF5b3V0IGNvZGUg
YmV0d2VlbiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciBhbmQgUmVuZGVyU1ZHQ29udGFpbmVy
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUzMgog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclBhdGguY3BwCmluZGV4IDYxNzE0ZGQuLmE2ZDUxM2IgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclBhdGguY3BwCkBAIC03OCwxNiArNzgsNiBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBSZW5kZXJQYXRoOjpsb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxU
cmFuc2Zvcm07CiB9CiAKLUZsb2F0UG9pbnQgUmVuZGVyUGF0aDo6bWFwQWJzb2x1dGVQb2ludFRv
TG9jYWwoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IGRv
ZXMgaXQgbWFrZSBzZW5zZSB0byBtYXAgaW5jb21pbmcgcG9pbnRzIHdpdGggdGhlIGludmVyc2Ug
b2YgdGhlCi0gICAgLy8gYWJzb2x1dGUgdHJhbnNmb3JtPyAKLSAgICBkb3VibGUgbG9jYWxYOwot
ICAgIGRvdWJsZSBsb2NhbFk7Ci0gICAgYWJzb2x1dGVUcmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFw
KHBvaW50LngoKSwgcG9pbnQueSgpLCBsb2NhbFgsIGxvY2FsWSk7Ci0gICAgcmV0dXJuIEZsb2F0
UG9pbnQ6Om5hcnJvd1ByZWNpc2lvbihsb2NhbFgsIGxvY2FsWSk7Ci19Ci0KIGJvb2wgUmVuZGVy
UGF0aDo6ZmlsbENvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBib29sIHJlcXVpcmVz
RmlsbCkgY29uc3QKIHsKICAgICBpZiAobV9wYXRoLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBh
dGguaAppbmRleCBmMTlkZmQ0Li45ODZkYmUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJQYXRoLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5oCkBAIC02
NCw4ICs2NCw2IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3QgZHJhd01hcmtlcnNJZk5lZWRlZChH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBQYXRoJikgY29uc3Q7CiAK
IHByaXZhdGU6Ci0gICAgRmxvYXRQb2ludCBtYXBBYnNvbHV0ZVBvaW50VG9Mb2NhbChjb25zdCBG
bG9hdFBvaW50JikgY29uc3Q7Ci0KICAgICBib29sIGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCk7
CiAgICAgdmlydHVhbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0
OwogCg==
</data>
<flag name="review"
          id="15024"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29976</attachid>
            <date>2009-05-03 21:01:34 -0700</date>
            <delta_ts>2009-05-03 21:41:16 -0700</delta_ts>
            <desc>Remove broken absoluteTransform() code from RenderSVGInlineText</desc>
            <filename>Remove-broken-absoluteTransform-code-from-RenderSVGInlineText.patch</filename>
            <type>text/plain</type>
            <size>12482</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MjcyZTUxOWRmNDRjMDFiMjU4YzY4NDA0MGI3MzIxMGY5NTVmZmEzOApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhw
ZWN0ZWQuY2hlY2tzdW0KaW5kZXggMjAyN2M2Yi4uNmYzMTVlYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC5jaGVja3N1
bQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4
cGVjdGVkLmNoZWNrc3VtCkBAIC0xICsxIEBACi1iMDI3MWJhMzYyNzQ2NjY4YWE2OThiMWRjMTJk
MzM5MwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzc0ZjIxNzBlM2Y4YWVmMjk1Y2JhZjIz
NmZkOTQ3ZjQxClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLnBu
ZwppbmRleCAzYTIwNTNlLi5iZDhmZGQyIDEwMDY0NApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLnBuZyBhbmQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLnBu
ZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3Znc3ZnZWxlbWVu
dC1jdG0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmdzdmdlbGVtZW50
LWN0bS1leHBlY3RlZC50eHQKaW5kZXggOWU0YmM4Mi4uZTQyYzc5NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmdzdmdlbGVtZW50LWN0bS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmdzdmdlbGVtZW50LWN0bS1leHBlY3RlZC50eHQKQEAg
LTEsOSArMSw5IEBACiBzdmcxIENUTTogW29iamVjdCBTVkdNYXRyaXhdIFsoMCwgMCkoMCwgMCko
TmFOLCBOYU4pXQotc3ZnMSBTY3JlZW5DVE06IFtvYmplY3QgU1ZHTWF0cml4XSBbKDEsIDApKDAs
IDEpKDEwLCAxMTApXQorc3ZnMSBTY3JlZW5DVE06IFtvYmplY3QgU1ZHTWF0cml4XSBbKDEsIDAp
KDAsIDEpKDEwLCAyMTApXQogc3ZnMiBDVE06IFtvYmplY3QgU1ZHTWF0cml4XSBbKDIwLCAwKSgw
LCAyMCkoLTEwMCwgLTEwMCldCi1zdmcyIFNjcmVlbkNUTTogW29iamVjdCBTVkdNYXRyaXhdIFso
MjAsIDApKDAsIDIwKSgtOTAsIDEwKV0KK3N2ZzIgU2NyZWVuQ1RNOiBbb2JqZWN0IFNWR01hdHJp
eF0gWygyMCwgMCkoMCwgMjApKC05MCwgMTEwKV0KIGdyb3VwIENUTTogW29iamVjdCBTVkdNYXRy
aXhdIFsoMjAsIDApKDAsIDIwKSgxMDAsIDEwMCldCi1ncm91cCBTY3JlZW5DVE06IFtvYmplY3Qg
U1ZHTWF0cml4XSBbKDIwLCAwKSgwLCAyMCkoMTEwLCAyMTApXQorZ3JvdXAgU2NyZWVuQ1RNOiBb
b2JqZWN0IFNWR01hdHJpeF0gWygyMCwgMCkoMCwgMjApKDExMCwgMzEwKV0KIHN2ZzMgQ1RNOiBb
b2JqZWN0IFNWR01hdHJpeF0gWygxLCAwKSgwLCAxKSgtNSwgLTUpXQotc3ZnMyBTY3JlZW5DVE06
IFtvYmplY3QgU1ZHTWF0cml4XSBbKDIwLCAwKSgwLCAyMCkoMTAsIDExMCldCitzdmczIFNjcmVl
bkNUTTogW29iamVjdCBTVkdNYXRyaXhdIFsoMjAsIDApKDAsIDIwKSgxMCwgMjEwKV0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMDk3
YzI0Li42ODVhNDZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMiw2ICsyLDM5IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCiAKKyAgICAgICAgUmVtb3ZlIGJyb2tlbiBhYnNvbHV0ZVRyYW5zZm9ybSgpIGNv
ZGUgZnJvbSBSZW5kZXJTVkdJbmxpbmVUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUzMgorCisgICAgICAgIFRoaXMgaW1wcm92ZWQgU1ZHIHRl
eHQgZm9jdXMgcmluZ3MuCisgICAgICAgIFRoaXMgYWxzbyBpbXByb3ZlZCBTVkcuZ2V0U2NyZWVu
Q1RNKCkgcmVzdWx0cy4KKworICAgICAgICBTVkdTVkdFbGVtZW50OjpnZXRTY3JlZW5DVE0gd2Fz
IHBhc3NpbmcgInRydWUiIGZvciB0aGUgc2Vjb25kIGFyZ3VtZW50IGluCisgICAgICAgIGxvY2Fs
VG9BYnNvbHV0ZSwgd2hpY2ggaXMgImZpeGVkIiBpdCBtZWFudCB0byBwYXNzICJ0cnVlIiBmb3Ig
dGhlCisgICAgICAgIHRoaXJkIGFyZ3VtZW50ICh1c2VUcmFuc2Zvcm1zKS4gIFRoYXQgY2hhbmdl
IGFsb25lIGNhdXNlZCBubyBsYXlvdXQgdGVzdCBjaGFuZ2VzLCBob3dldmVyCisgICAgICAgIGJl
Zm9yZSBJIGZpeGVkIHRoaXMsIGl0IHdhcyBoaXR0aW5nIEFTU0VSVCghZml4ZWQpIGluIFJlbmRl
clNWR1Jvb3Q6Om1hcExvY2FsVG9Db250YWluZXIKKworICAgICAgICBtYXBMb2NhbFRvQ29udGFp
bmVyIGltcGxlbWVudGF0aW9ucyByZWFsbHkgc2hvdWxkIGJlIHNoYXJlZCwKKyAgICAgICAgYnV0
IEknbGwgZG8gdGhhdCBpbiBhIGxhdGVyIHBhdGNoLgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNWR0lubGluZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5l
VGV4dDo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5l
VGV4dDo6YWJzb2x1dGVRdWFkcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbmxpbmVU
ZXh0Ojpjb21wdXRlUmVwYWludFJlY3RGb3JSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbmxpbmVUZXh0Ojpjb21wdXRlUmVwYWludFF1YWRGb3JSYW5nZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclNWR0lubGluZVRleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjptYXBMb2Nh
bFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Z2V0U2NyZWVuQ1RNKToKKworMjAwOS0wNS0wMyAg
RXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKICAgICAgICAgUmVtb3ZlIGRlYWQgY29kZSBmcm9tIFJlbmRlclBhdGgK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NTMyCiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZVRleHQuY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKaW5kZXggZTQxYmE3OS4u
YjFhMjFkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lVGV4
dC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKQEAg
LTU4LDEwICs1OCwxMCBAQCBSZW5kZXJTVkdJbmxpbmVUZXh0OjpSZW5kZXJTVkdJbmxpbmVUZXh0
KE5vZGUqIG4sIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gc3RyKQogCiB2b2lkIFJlbmRlclNWR0lu
bGluZVRleHQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpCiB7Ci0gICAgLy8gU2tpcCBSZW5kZXJUZXh0J3Mgd29yay4KKyAg
ICAvLyBTa2lwIFJlbmRlclRleHQncyBwb3NzaWJsZSBsYXlvdXQgc2NoZWR1bGluZyBvbiBzdHls
ZSBjaGFuZ2UKICAgICBSZW5kZXJPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKGRpZmYsIG9sZFN0eWxl
KTsKICAgICAKLSAgICAvLyBTVkcgdGV4dCBpcyBhcHBhcmVudGx5IGFsd2F5cyB0cmFuc2Zvcm1l
ZC4KKyAgICAvLyBGSVhNRTogU1ZHIHRleHQgaXMgYXBwYXJlbnRseSBhbHdheXMgdHJhbnNmb3Jt
ZWQ/CiAgICAgaWYgKFJlZlB0cjxTdHJpbmdJbXBsPiB0ZXh0VG9UcmFuc2Zvcm0gPSBvcmlnaW5h
bFRleHQoKSkKICAgICAgICAgc2V0VGV4dCh0ZXh0VG9UcmFuc2Zvcm0ucmVsZWFzZSgpLCB0cnVl
KTsKIH0KQEAgLTczLDcgKzczLDcgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmVUZXh0OjphYnNvbHV0
ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGludCwgaW50KQogCiB2b2lkIFJlbmRlclNW
R0lubGluZVRleHQ6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKQogewot
ICAgIHF1YWRzLmFwcGVuZChGbG9hdFJlY3QoY29tcHV0ZVJlcGFpbnRSZWN0Rm9yUmFuZ2UoMCwg
MCwgdGV4dExlbmd0aCgpKSkpOworICAgIHF1YWRzLmFwcGVuZChjb21wdXRlUmVwYWludFF1YWRG
b3JSYW5nZSgwLCAwLCB0ZXh0TGVuZ3RoKCkpKTsKIH0KIAogSW50UmVjdCBSZW5kZXJTVkdJbmxp
bmVUZXh0OjpzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgYm9vbCAvKmNsaXBUb1Zpc2libGVDb250ZW50Ki8pCkBAIC0xMDgsMzEg
KzEwOCwyNyBAQCBJbnRSZWN0IFJlbmRlclNWR0lubGluZVRleHQ6OnNlbGVjdGlvblJlY3RGb3JS
ZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaQogICAgIHJldHVybiBjb21wdXRlUmVw
YWludFJlY3RGb3JSYW5nZShyZXBhaW50Q29udGFpbmVyLCBzdGFydFBvcywgZW5kUG9zKTsKIH0K
IAotSW50UmVjdCBSZW5kZXJTVkdJbmxpbmVUZXh0Ojpjb21wdXRlUmVwYWludFJlY3RGb3JSYW5n
ZShSZW5kZXJCb3hNb2RlbE9iamVjdCogLypyZXBhaW50Q29udGFpbmVyKi8sIGludCBzdGFydFBv
cywgaW50IGVuZFBvcykKK0ludFJlY3QgUmVuZGVyU1ZHSW5saW5lVGV4dDo6Y29tcHV0ZVJlcGFp
bnRSZWN0Rm9yUmFuZ2UoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGlu
dCBzdGFydFBvcywgaW50IGVuZFBvcykKK3sKKyAgICBGbG9hdFF1YWQgcmVwYWludFF1YWQgPSBj
b21wdXRlUmVwYWludFF1YWRGb3JSYW5nZShyZXBhaW50Q29udGFpbmVyLCBzdGFydFBvcywgZW5k
UG9zKTsKKyAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UXVhZC5ib3VuZGluZ0Jv
eCgpKTsKK30KKworRmxvYXRRdWFkIFJlbmRlclNWR0lubGluZVRleHQ6OmNvbXB1dGVSZXBhaW50
UXVhZEZvclJhbmdlKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBpbnQg
c3RhcnRQb3MsIGludCBlbmRQb3MpCiB7CiAgICAgUmVuZGVyQmxvY2sqIGNiID0gY29udGFpbmlu
Z0Jsb2NrKCk7CiAgICAgaWYgKCFjYiB8fCAhY2ItPmNvbnRhaW5lcigpKQotICAgICAgICByZXR1
cm4gSW50UmVjdCgpOworICAgICAgICByZXR1cm4gRmxvYXRRdWFkKCk7CiAKICAgICBSZW5kZXJT
VkdSb290KiByb290ID0gZmluZFNWR1Jvb3RPYmplY3QocGFyZW50KCkpOwogICAgIGlmICghcm9v
dCkKLSAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKKyAgICAgICAgcmV0dXJuIEZsb2F0UXVhZCgp
OwogCiAgICAgSW50UmVjdCByZWN0OwogICAgIGZvciAoSW5saW5lVGV4dEJveCogYm94ID0gZmly
c3RUZXh0Qm94KCk7IGJveDsgYm94ID0gYm94LT5uZXh0VGV4dEJveCgpKQogICAgICAgICByZWN0
LnVuaXRlKGJveC0+c2VsZWN0aW9uUmVjdCgwLCAwLCBzdGFydFBvcywgZW5kUG9zKSk7CiAKLSAg
ICAvLyBNaW1pYyBSZW5kZXJCb3g6OmNvbXB1dGVBYnNvbHV0ZVJlcGFpbnRSZWN0KCkgZnVuY3Rp
b25hbGl0eS4gQnV0IG9ubHkgdGhlIHN1YnNldCBuZWVkZWQgZm9yIFNWRyBhbmQgcmVzcGVjdGlu
ZyBTVkcgdHJhbnNmb3JtYXRpb25zLgotICAgIEZsb2F0UG9pbnQgYWJzUG9zID0gY2ItPmNvbnRh
aW5lcigpLT5sb2NhbFRvQWJzb2x1dGUoKTsKLQotICAgIC8vIFJlbW92ZSBIVE1MIHBhcmVudCB0
cmFuc2xhdGlvbiBvZmZzZXRzIGhlcmUhIFRoZXNlIG5lZWQgdG8gYmUgcmV0cmlldmVkIGZyb20g
dGhlIFJlbmRlclNWR1Jvb3Qgb2JqZWN0LgotICAgIC8vIEJ1dCBkbyB0YWtlIHRoZSBjb250YWlu
aW5nQmxvY2tzJ3MgY29udGFpbmVyIHBvc2l0aW9uIGludG8gYWNjb3VudCwgaWUuIFNWRyB0ZXh0
IGluIHNjcm9sbGFibGUgPGRpdj4uCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggaHRtbFBhcmVu
dEN0bSA9IHJvb3QtPlJlbmRlckJveDo6YWJzb2x1dGVUcmFuc2Zvcm0oKTsKLQotICAgIEZsb2F0
UmVjdCBmaXhlZFJlY3QobmFycm93UHJlY2lzaW9uVG9GbG9hdChyZWN0LngoKSArIGFic1Bvcy54
KCkgLSBodG1sUGFyZW50Q3RtLmUoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICBuYXJyb3dQ
cmVjaXNpb25Ub0Zsb2F0KHJlY3QueSgpICsgYWJzUG9zLnkoKSAtIGh0bWxQYXJlbnRDdG0uZigp
KSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKLSAgICAvLyBGSVhNRTogYnJva2VuIHdp
dGggQ1NTIHRyYW5zZm9ybXMsIGFuZCBub24temVybyByZXBhaW50Q29udGFpbmVyCi0gICAgcmV0
dXJuIGVuY2xvc2luZ0ludFJlY3QoYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KGZpeGVkUmVj
dCkpOworICAgIHJldHVybiBsb2NhbFRvQ29udGFpbmVyUXVhZChGbG9hdFF1YWQocmVjdCksIHJl
cGFpbnRDb250YWluZXIpOwogfQogCiBJbmxpbmVUZXh0Qm94KiBSZW5kZXJTVkdJbmxpbmVUZXh0
OjpjcmVhdGVUZXh0Qm94KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNW
R0lubGluZVRleHQuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZVRleHQuaApp
bmRleCA3NDJmNjkzLi5jNGEwOTZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdJbmxpbmVUZXh0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5l
VGV4dC5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBJ
bmxpbmVUZXh0Qm94KiBjcmVhdGVUZXh0Qm94KCk7CiAgICAgSW50UmVjdCBjb21wdXRlUmVwYWlu
dFJlY3RGb3JSYW5nZShSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgaW50
IHN0YXJ0UG9zLCBpbnQgZW5kUG9zKTsKKyAgICBGbG9hdFF1YWQgY29tcHV0ZVJlcGFpbnRRdWFk
Rm9yUmFuZ2UoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGludCBzdGFy
dFBvcywgaW50IGVuZFBvcyk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTVkdSb290LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuY3Bw
CmluZGV4IGJkOTA5ZDQuLjI1MTYwNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR1Jvb3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuY3Bw
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogI2luY2x1
ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCisjaW5j
bHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKIAogI2lmIEVOQUJMRShTVkdfRklMVEVSUykKICNpbmNs
dWRlICJTVkdSZXNvdXJjZUZpbHRlci5oIgpAQCAtMjY3LDYgKzI2OCwxOSBAQCB2b2lkIFJlbmRl
clNWR1Jvb3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lcgogICAgIFJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFp
bnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKK3ZvaWQgUmVuZGVyU1ZHUm9v
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgYm9vbCBmaXhlZCAsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRy
YW5zZm9ybVN0YXRlKSBjb25zdAoreworICAgIEFTU0VSVCghZml4ZWQpOyAvLyBXZSBzaG91bGQg
aGF2ZSBubyBmaXhlZCBjb250ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCisKKyAgICAv
LyBGSVhNRTogSWYgd2UgZG9uJ3QgcmVzcGVjdCB1c2VUcmFuc2Zvcm1zIHdlIGJyZWFrIFNWRyB0
ZXh0IHJlbmRlcmluZy4KKyAgICAvLyBTZWVtcyBSZW5kZXJTVkdJbmxpbmVUZXh0IGhhcyBzb21l
IG93biBicm9rZW4gdHJhbnNsYXRpb24gaGFja3Mgd2hpY2ggZGVwZW5kIHVzZVRyYW5zZm9ybXM9
ZmFsc2UKKyAgICAvLyBUaGlzIHNob3VsZCBpbnN0ZWFkIGJlIEFTU0VSVCh1c2VUcmFuc2Zvcm1z
KSBvbmNlIHdlIGZpeCBSZW5kZXJTVkdJbmxpbmVUZXh0CisgICAgaWYgKHVzZVRyYW5zZm9ybXMp
CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKGxvY2FsVG9Cb3JkZXJCb3hU
cmFuc2Zvcm0oKSk7CisKKyAgICBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIocmVwYWlu
dENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKK30KKwog
Ym9vbCBSZW5kZXJTVkdSb290Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBpbnQgX3gsIGludCBfeSwgaW50IF90eCwgaW50
IF90eSwgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQogewogICAgIEludFBvaW50IHBvaW50
SW5Db250YWluZXIoX3gsIF95KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNWR1Jvb3QuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuaAppbmRleCBmMmVk
YTRlLi5hMTBmMmNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290
LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC02Nyw2ICs2Nyw4
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVu
ZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmIHJlcGFpbnRSZWN0
LCBib29sIGZpeGVkKTsKIAorICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMs
IGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdm9p
ZCBjYWxjVmlld3BvcnQoKTsKICAgICBjb25zdCBGbG9hdFNpemUmIHZpZXdwb3J0U2l6ZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAppbmRleCA3MDVkMWZiLi40MDc1MDcx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAorKysgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2lu
Y2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3QuaCIKICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgorI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzEsNiArNzIsMTkgQEAgdm9pZCBSZW5kZXJT
VkdUZXh0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIKICAgICBwYXJlbnQoKS0+Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRD
b250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6
bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgYm9vbCBmaXhlZCAsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5z
Zm9ybVN0YXRlKSBjb25zdAoreworICAgIEFTU0VSVCghZml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2
ZSBubyBmaXhlZCBjb250ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCisKKyAgICAvLyBG
SVhNRTogSWYgd2UgZG9uJ3QgcmVzcGVjdCB1c2VUcmFuc2Zvcm1zIHdlIGJyZWFrIFNWRyB0ZXh0
IHJlbmRlcmluZy4KKyAgICAvLyBTZWVtcyBSZW5kZXJTVkdJbmxpbmVUZXh0IGhhcyBzb21lIG93
biBicm9rZW4gdHJhbnNsYXRpb24gaGFja3Mgd2hpY2ggZGVwZW5kIHVzZVRyYW5zZm9ybXM9ZmFs
c2UKKyAgICAvLyBUaGlzIHNob3VsZCBpbnN0ZWFkIGJlIEFTU0VSVCh1c2VUcmFuc2Zvcm1zKSBv
bmNlIHdlIGZpeCBSZW5kZXJTVkdJbmxpbmVUZXh0CisgICAgaWYgKHVzZVRyYW5zZm9ybXMpCisg
ICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKGxvY2FsVG9QYXJlbnRUcmFuc2Zv
cm0oKSk7CisKKyAgICBwYXJlbnQoKS0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFp
bmVyLCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworfQorCiBib29sIFJl
bmRlclNWR1RleHQ6OmNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCkKIHsKICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBvbGRUcmFuc2Zvcm0gPSBtX2xvY2FsVHJhbnNmb3JtOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHVGV4dC5oCmluZGV4IDQxNDIzNTcuLjBjYjI1NzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNWR1RleHQuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
VkdUZXh0LmgKQEAgLTU2LDYgKzU2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UmVjdCBj
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lcik7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5k
ZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgSW50UmVjdCYsIGJvb2wgZml4ZWQg
PSBmYWxzZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJC
b3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29s
IGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OworCiAgICAgdmlydHVhbCBGbG9hdFJlY3Qg
b2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdDsKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50
UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4
IGM3NjNjM2EuLmY0NGE1NGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQu
Y3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCkBAIC00MTgsMTQgKzQxOCwx
NCBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBTVkdTVkdFbGVtZW50OjpnZXRDVE0oKSBjb25zdAog
VHJhbnNmb3JtYXRpb25NYXRyaXggU1ZHU1ZHRWxlbWVudDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QK
IHsKICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKLSAgICBGbG9hdFBvaW50IHJvb3RMb2NhdGlvbjsgICAgCisgICAgRmxvYXRQb2ludCByb290
TG9jYXRpb247CiAKICAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRl
cmVyKCkpIHsKICAgICAgICAgaWYgKGlzT3V0ZXJtb3N0U1ZHKCkpIHsKICAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCBDU1MgdHJhbnNmb3Jtcy4K
ICAgICAgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQ7CiAgICAgICAgICAgICBpZiAocmVuZGVyZXIt
PnBhcmVudCgpKQotICAgICAgICAgICAgICAgIHBvaW50ID0gcmVuZGVyZXItPmxvY2FsVG9BYnNv
bHV0ZShwb2ludCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgcG9pbnQgPSByZW5kZXJlci0+bG9j
YWxUb0Fic29sdXRlKHBvaW50LCBmYWxzZSwgdHJ1ZSk7CiAgICAgICAgICAgICByb290TG9jYXRp
b24ubW92ZShwb2ludC54KCksIHBvaW50LnkoKSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgcm9vdExvY2F0aW9uLm1vdmUoeCgpLnZhbHVlKHRoaXMpLCB5KCkudmFsdWUodGhpcykpOwo=
</data>
<flag name="review"
          id="15025"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29977</attachid>
            <date>2009-05-03 21:01:39 -0700</date>
            <delta_ts>2009-05-03 21:42:01 -0700</delta_ts>
            <desc>Move RenderSVGText off of localToAbsolute()</desc>
            <filename>Move-RenderSVGText-off-of-localToAbsolute-.patch</filename>
            <type>text/plain</type>
            <size>3584</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NzdkZWMyMzQ4NjdmNDhmMTNmMTk5NjY2NmYxZTY4YjAwYTUxMjE0NQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ODVhNDZiLi45ZTNmZjMz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDE3IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgTW92ZSBSZW5kZXJTVkdUZXh0IG9mZiBvZiBsb2NhbFRvQWJzb2x1dGUoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzIKKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1RleHQ6OmFic29sdXRlUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
VGV4dDo6YWJzb2x1dGVRdWFkcyk6CisKKzIwMDktMDUtMDMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIFJlbW92ZSBicm9rZW4gYWJzb2x1dGVUcmFuc2Zvcm0oKSBjb2RlIGZyb20gUmVuZGVyU1ZH
SW5saW5lVGV4dAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjU1MzIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5j
cHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAppbmRleCA0MDc1MDcxLi4w
ZjdmOTllIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcApAQCAtMTUyLDEwICsxNTIs
NiBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiBy
ZWN0cywgaW50LCBpbnQpCiAgICAgUmVuZGVyU1ZHUm9vdCogcm9vdCA9IGZpbmRTVkdSb290T2Jq
ZWN0KHBhcmVudCgpKTsKICAgICBpZiAoIXJvb3QpCiAgICAgICAgIHJldHVybjsKLQotICAgIEZs
b2F0UG9pbnQgYWJzUG9zID0gbG9jYWxUb0Fic29sdXRlKCk7Ci0KLSAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBodG1sUGFyZW50Q3RtID0gcm9vdC0+UmVuZGVyQm94OjphYnNvbHV0ZVRyYW5zZm9y
bSgpOwogIAogICAgIC8vIERvbid0IHVzZSBvYmplY3RCb3VuZGluZ0JveCBoZXJlLCBhcyBpdCdz
IHVuaXRlcyB0aGUgc2VsZWN0aW9uIHJlY3RzLiBNYWtlcyBpdCBoYXJkCiAgICAgLy8gdG8gc3Bv
dCBlcnJvcnMsIGlmIHRoZXJlIGFyZSBhbnkgdXNpbmcgV2ViSW5zcGVjdG9yLiBJbmRpdmlkdWFs
bHkgZmVlZCB0aGVtIGludG8gJ3JlY3RzJy4KQEAgLTE2NSw5ICsxNjEsOSBAQCB2b2lkIFJlbmRl
clNWR1RleHQ6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50LCBpbnQp
CiAgICAgICAgIElubGluZUZsb3dCb3gqIGZsb3dCb3ggPSBzdGF0aWNfY2FzdDxJbmxpbmVGbG93
Qm94Kj4ocnVuQm94KTsKICAgICAgICAgZm9yIChJbmxpbmVCb3gqIGJveCA9IGZsb3dCb3gtPmZp
cnN0Q2hpbGQoKTsgYm94OyBib3ggPSBib3gtPm5leHRPbkxpbmUoKSkgewogICAgICAgICAgICAg
RmxvYXRSZWN0IGJveFJlY3QoYm94LT54KCksIGJveC0+eSgpLCBib3gtPndpZHRoKCksIGJveC0+
aGVpZ2h0KCkpOwotICAgICAgICAgICAgYm94UmVjdC5tb3ZlKG5hcnJvd1ByZWNpc2lvblRvRmxv
YXQoYWJzUG9zLngoKSAtIGh0bWxQYXJlbnRDdG0uZSgpKSwgbmFycm93UHJlY2lzaW9uVG9GbG9h
dChhYnNQb3MueSgpIC0gaHRtbFBhcmVudEN0bS5mKCkpKTsKLSAgICAgICAgICAgIC8vIEZJWE1F
OiBicm9rZW4gd2l0aCBDU1MgdHJhbnNmb3JtcwotICAgICAgICAgICAgcmVjdHMuYXBwZW5kKGVu
Y2xvc2luZ0ludFJlY3QoYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KGJveFJlY3QpKSk7Cisg
ICAgICAgICAgICAvLyBGSVhNRTogY3Jhd2xpbmcgdXAgdGhlIHBhcmVudCBjaGFpbiB0byBtYXAg
ZWFjaCByZWN0IGlzIHZlcnkgaW5lZmZpY2llbnQKKyAgICAgICAgICAgIC8vIHdlIHNob3VsZCBj
b21wdXRlIHRoZSBhYnNvbHV0ZVRyYW5zZm9ybSBvdXRzaWRlIHRoaXMgbG9vcCBmaXJzdC4KKyAg
ICAgICAgICAgIHJlY3RzLmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KGxvY2FsVG9BYnNvbHV0ZVF1
YWQoYm94UmVjdCkuYm91bmRpbmdCb3goKSkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTc3
LDEwICsxNzMsNiBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZs
b2F0UXVhZD4mIHF1YWRzKQogICAgIFJlbmRlclNWR1Jvb3QqIHJvb3QgPSBmaW5kU1ZHUm9vdE9i
amVjdChwYXJlbnQoKSk7CiAgICAgaWYgKCFyb290KQogICAgICAgICByZXR1cm47Ci0KLSAgICBG
bG9hdFBvaW50IGFic1BvcyA9IGxvY2FsVG9BYnNvbHV0ZSgpOwotCi0gICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggaHRtbFBhcmVudEN0bSA9IHJvb3QtPlJlbmRlckJveDo6YWJzb2x1dGVUcmFuc2Zv
cm0oKTsKICAKICAgICAvLyBEb24ndCB1c2Ugb2JqZWN0Qm91bmRpbmdCb3ggaGVyZSwgYXMgaXQn
cyB1bml0ZXMgdGhlIHNlbGVjdGlvbiByZWN0cy4gTWFrZXMgaXQgaGFyZAogICAgIC8vIHRvIHNw
b3QgZXJyb3JzLCBpZiB0aGVyZSBhcmUgYW55IHVzaW5nIFdlYkluc3BlY3Rvci4gSW5kaXZpZHVh
bGx5IGZlZWQgdGhlbSBpbnRvICdyZWN0cycuCkBAIC0xOTAsOSArMTgyLDkgQEAgdm9pZCBSZW5k
ZXJTVkdUZXh0OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKICAgICAg
ICAgSW5saW5lRmxvd0JveCogZmxvd0JveCA9IHN0YXRpY19jYXN0PElubGluZUZsb3dCb3gqPihy
dW5Cb3gpOwogICAgICAgICBmb3IgKElubGluZUJveCogYm94ID0gZmxvd0JveC0+Zmlyc3RDaGls
ZCgpOyBib3g7IGJveCA9IGJveC0+bmV4dE9uTGluZSgpKSB7CiAgICAgICAgICAgICBGbG9hdFJl
Y3QgYm94UmVjdChib3gtPngoKSwgYm94LT55KCksIGJveC0+d2lkdGgoKSwgYm94LT5oZWlnaHQo
KSk7Ci0gICAgICAgICAgICBib3hSZWN0Lm1vdmUobmFycm93UHJlY2lzaW9uVG9GbG9hdChhYnNQ
b3MueCgpIC0gaHRtbFBhcmVudEN0bS5lKCkpLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGFic1Bv
cy55KCkgLSBodG1sUGFyZW50Q3RtLmYoKSkpOwotICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tl
biB3aXRoIENTUyB0cmFuc2Zvcm1zCi0gICAgICAgICAgICBxdWFkcy5hcHBlbmQoYWJzb2x1dGVU
cmFuc2Zvcm0oKS5tYXBSZWN0KGJveFJlY3QpKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBjcmF3
bGluZyB1cCB0aGUgcGFyZW50IGNoYWluIHRvIG1hcCBlYWNoIHF1YWQgaXMgdmVyeSBpbmVmZmlj
aWVudAorICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIGNvbXB1dGUgdGhlIGFic29sdXRlVHJhbnNm
b3JtIG91dHNpZGUgdGhpcyBsb29wIGZpcnN0LgorICAgICAgICAgICAgcXVhZHMuYXBwZW5kKGxv
Y2FsVG9BYnNvbHV0ZVF1YWQoYm94UmVjdCkpOwogICAgICAgICB9CiAgICAgfQogfQo=
</data>
<flag name="review"
          id="15026"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29978</attachid>
            <date>2009-05-03 21:01:43 -0700</date>
            <delta_ts>2009-05-03 21:42:25 -0700</delta_ts>
            <desc>Move absoluteRects and absoluteQuads into RenderSVGInline and remove absoluteTransform() usage</desc>
            <filename>Move-absoluteRects-and-absoluteQuads-into-RenderSVGInline-and-remove-absoluteTransform-usage.patch</filename>
            <type>text/plain</type>
            <size>8322</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZTQxMmEyOTc3NmQwN2MzNjJlMGM5NTU5ZjFlY2ViZmM4MzhiMjdlYQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZTNmZjMzLi4yMmE2NDVj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDIyIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgTW92ZSBhYnNvbHV0ZVJlY3RzIGFuZCBhYnNvbHV0ZVF1YWRzIGludG8gUmVuZGVy
U1ZHSW5saW5lIGFuZCByZW1vdmUgYWJzb2x1dGVUcmFuc2Zvcm0oKSB1c2FnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzIKKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHSW5saW5lOjphYnNvbHV0ZVJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lu
bGluZTo6YWJzb2x1dGVRdWFkcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR0lubGlu
ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdUU3Bhbi5jcHA6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclNWR1RTcGFuLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNW
R1RleHRQYXRoLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dFBhdGguaDoK
KworMjAwOS0wNS0wMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgTW92ZSBSZW5kZXJTVkdUZXh0
IG9mZiBvZiBsb2NhbFRvQWJzb2x1dGUoKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU1ZHSW5saW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZS5j
cHAKaW5kZXggNDBjMWNkZC4uM2M0NGRkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU1ZHSW5saW5lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbmxp
bmUuY3BwCkBAIC0yNiw4ICsyNiwxMSBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiUmVu
ZGVyU1ZHSW5saW5lLmgiCiAKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIKKyNpbmNsdWRlICJSZW5k
ZXJCbG9jay5oIgogI2luY2x1ZGUgIlNWR0lubGluZUZsb3dCb3guaCIKLSNpbmNsdWRlIDx3dGYv
VW51c2VkUGFyYW0uaD4KKyNpbmNsdWRlICJTVkdJbmxpbmVUZXh0Qm94LmgiCisjaW5jbHVkZSAi
U1ZHUm9vdElubGluZUJveC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCkBAIC00Myw2
ICs0Niw0NCBAQCBJbmxpbmVGbG93Qm94KiBSZW5kZXJTVkdJbmxpbmU6OmNyZWF0ZUZsb3dCb3go
KQogICAgIHJldHVybiBib3g7CiB9CiAKK3ZvaWQgUmVuZGVyU1ZHSW5saW5lOjphYnNvbHV0ZVJl
Y3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGludCwgaW50KQoreworICAgIElubGluZVJ1bkJv
eCogZmlyc3RCb3ggPSBmaXJzdExpbmVCb3goKTsKKworICAgIFNWR1Jvb3RJbmxpbmVCb3gqIHJv
b3RCb3ggPSBmaXJzdEJveCA/IHN0YXRpY19jYXN0PFNWR0lubGluZVRleHRCb3gqPihmaXJzdEJv
eCktPnN2Z1Jvb3RJbmxpbmVCb3goKSA6IDA7CisgICAgUmVuZGVyQm94KiBvYmplY3QgPSByb290
Qm94ID8gcm9vdEJveC0+YmxvY2soKSA6IDA7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaW50IHhSZWYgPSBvYmplY3QtPngoKTsKKyAgICBpbnQgeVJlZiA9IG9i
amVjdC0+eSgpOworCisgICAgZm9yIChJbmxpbmVSdW5Cb3gqIGN1cnIgPSBmaXJzdEJveDsgY3Vy
cjsgY3VyciA9IGN1cnItPm5leHRMaW5lQm94KCkpIHsKKyAgICAgICAgRmxvYXRSZWN0IHJlY3Qo
eFJlZiArIGN1cnItPngoKSwgeVJlZiArIGN1cnItPnkoKSwgY3Vyci0+d2lkdGgoKSwgY3Vyci0+
aGVpZ2h0KCkpOworICAgICAgICByZWN0cy5hcHBlbmQoZW5jbG9zaW5nSW50UmVjdChsb2NhbFRv
QWJzb2x1dGVRdWFkKHJlY3QpLmJvdW5kaW5nQm94KCkpKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVu
ZGVyU1ZHSW5saW5lOjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKK3sK
KyAgICBJbmxpbmVSdW5Cb3gqIGZpcnN0Qm94ID0gZmlyc3RMaW5lQm94KCk7CisKKyAgICBTVkdS
b290SW5saW5lQm94KiByb290Qm94ID0gZmlyc3RCb3ggPyBzdGF0aWNfY2FzdDxTVkdJbmxpbmVU
ZXh0Qm94Kj4oZmlyc3RCb3gpLT5zdmdSb290SW5saW5lQm94KCkgOiAwOworICAgIFJlbmRlckJv
eCogb2JqZWN0ID0gcm9vdEJveCA/IHJvb3RCb3gtPmJsb2NrKCkgOiAwOworCisgICAgaWYgKCFv
YmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIGludCB4UmVmID0gb2JqZWN0LT54KCk7Cisg
ICAgaW50IHlSZWYgPSBvYmplY3QtPnkoKTsKKworICAgIGZvciAoSW5saW5lUnVuQm94KiBjdXJy
ID0gZmlyc3RCb3g7IGN1cnI7IGN1cnIgPSBjdXJyLT5uZXh0TGluZUJveCgpKSB7CisgICAgICAg
IEZsb2F0UmVjdCByZWN0KHhSZWYgKyBjdXJyLT54KCksIHlSZWYgKyBjdXJyLT55KCksIGN1cnIt
PndpZHRoKCksIGN1cnItPmhlaWdodCgpKTsKKyAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9B
YnNvbHV0ZVF1YWQocmVjdCkpOworICAgIH0KK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNW
RykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZS5oIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lLmgKaW5kZXggY2I4YmY5NS4uMWZmOGQwMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lLmgKQEAgLTM0LDYgKzM0LDEwIEBAIHB1Ymxp
YzoKICAgICBSZW5kZXJTVkdJbmxpbmUoTm9kZSopOwogICAgIHZpcnR1YWwgY29uc3QgY2hhciog
cmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdJbmxpbmUiOyB9CiAgICAgdmly
dHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAg
Ly8gVGhlc2UgYXJlIHNoYXJlZCBiZXR3ZWVuIFJlbmRlclNWR1RTcGFuIGFuZCBSZW5kZXJTVkdU
ZXh0UGF0aAorICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYg
cmVjdHMsIGludCB0eCwgaW50IHR5KTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhW
ZWN0b3I8RmxvYXRRdWFkPiYpOwogICAgIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIElubGluZUZs
b3dCb3gqIGNyZWF0ZUZsb3dCb3goKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR1RTcGFuLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RTcGFuLmNwcApp
bmRleCBmZTQ2ZGU4Li45MGZmMzZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdUU3Bhbi5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVFNwYW4uY3Bw
CkBAIC0yNiwxMSArMjYsNiBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiUmVuZGVyU1ZH
VFNwYW4uaCIKIAotI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgotI2luY2x1ZGUgIlJlbmRlckJsb2Nr
LmgiCi0jaW5jbHVkZSAiU1ZHSW5saW5lVGV4dEJveC5oIgotI2luY2x1ZGUgIlNWR1Jvb3RJbmxp
bmVCb3guaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdUU3Bhbjo6UmVuZGVy
U1ZHVFNwYW4oTm9kZSogbikKQEAgLTM4LDQ2ICszMyw2IEBAIFJlbmRlclNWR1RTcGFuOjpSZW5k
ZXJTVkdUU3BhbihOb2RlKiBuKQogewogfQogCi12b2lkIFJlbmRlclNWR1RTcGFuOjphYnNvbHV0
ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGludCwgaW50KQotewotICAgIElubGluZVJ1
bkJveCogZmlyc3RCb3ggPSBmaXJzdExpbmVCb3goKTsKLQotICAgIFNWR1Jvb3RJbmxpbmVCb3gq
IHJvb3RCb3ggPSBmaXJzdEJveCA/IHN0YXRpY19jYXN0PFNWR0lubGluZVRleHRCb3gqPihmaXJz
dEJveCktPnN2Z1Jvb3RJbmxpbmVCb3goKSA6IDA7Ci0gICAgUmVuZGVyQm94KiBvYmplY3QgPSBy
b290Qm94ID8gcm9vdEJveC0+YmxvY2soKSA6IDA7Ci0KLSAgICBpZiAoIW9iamVjdCkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaW50IHhSZWYgPSBvYmplY3QtPngoKTsKLSAgICBpbnQgeVJlZiA9
IG9iamVjdC0+eSgpOwotIAotICAgIGZvciAoSW5saW5lUnVuQm94KiBjdXJyID0gZmlyc3RCb3g7
IGN1cnI7IGN1cnIgPSBjdXJyLT5uZXh0TGluZUJveCgpKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBy
ZWN0KHhSZWYgKyBjdXJyLT54KCksIHlSZWYgKyBjdXJyLT55KCksIGN1cnItPndpZHRoKCksIGN1
cnItPmhlaWdodCgpKTsKLSAgICAgICAgLy8gRklYTUU6IGJyb2tlbiB3aXRoIENTUyB0cmFuc2Zv
cm1zCi0gICAgICAgIHJlY3RzLmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KGFic29sdXRlVHJhbnNm
b3JtKCkubWFwUmVjdChyZWN0KSkpOwotICAgIH0KLX0KLQotdm9pZCBSZW5kZXJTVkdUU3Bhbjo6
YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCi17Ci0gICAgSW5saW5lUnVu
Qm94KiBmaXJzdEJveCA9IGZpcnN0TGluZUJveCgpOwotCi0gICAgU1ZHUm9vdElubGluZUJveCog
cm9vdEJveCA9IGZpcnN0Qm94ID8gc3RhdGljX2Nhc3Q8U1ZHSW5saW5lVGV4dEJveCo+KGZpcnN0
Qm94KS0+c3ZnUm9vdElubGluZUJveCgpIDogMDsKLSAgICBSZW5kZXJCb3gqIG9iamVjdCA9IHJv
b3RCb3ggPyByb290Qm94LT5ibG9jaygpIDogMDsKLQotICAgIGlmICghb2JqZWN0KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpbnQgeFJlZiA9IG9iamVjdC0+eCgpOwotICAgIGludCB5UmVmID0g
b2JqZWN0LT55KCk7Ci0gCi0gICAgZm9yIChJbmxpbmVSdW5Cb3gqIGN1cnIgPSBmaXJzdEJveDsg
Y3VycjsgY3VyciA9IGN1cnItPm5leHRMaW5lQm94KCkpIHsKLSAgICAgICAgRmxvYXRSZWN0IHJl
Y3QoeFJlZiArIGN1cnItPngoKSwgeVJlZiArIGN1cnItPnkoKSwgY3Vyci0+d2lkdGgoKSwgY3Vy
ci0+aGVpZ2h0KCkpOwotICAgICAgICAvLyBGSVhNRTogYnJva2VuIHdpdGggQ1NTIHRyYW5zZm9y
bXMKLSAgICAgICAgcXVhZHMuYXBwZW5kKGFic29sdXRlVHJhbnNmb3JtKCkubWFwUmVjdChyZWN0
KSk7Ci0gICAgfQotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVFNwYW4uaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR1RTcGFuLmgKaW5kZXggNjdlMWEwOC4uNjUyYzVlMyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVFNwYW4uaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdUU3Bhbi5oCkBAIC0zMSw4ICszMSw2IEBAIGNsYXNzIFJlbmRlclNWR1RTcGFuIDogcHVi
bGljIFJlbmRlclNWR0lubGluZSB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU1ZHVFNwYW4oTm9kZSop
OwogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJS
ZW5kZXJTVkdUU3BhbiI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8
SW50UmVjdD4mIHJlY3RzLCBpbnQgdHgsIGludCB0eSk7Ci0gICAgdmlydHVhbCB2b2lkIGFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mKTsKIAogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUg
aW5jb3JyZWN0LCBidXQgaGF2ZSBhbHdheXMgYmVoYXZlZCB0aGlzIHdheS4KICAgICAvLyBUaGVz
ZSBlbXB0eSBpbXBsZW1lbnRhdGlvbnMgcHJldmVudCB1cyBmcm9tIGhpdHRpbmcgUmVuZGVyT2Jq
ZWN0IEFTU0VSVFMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0
UGF0aC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAKaW5kZXgg
NThjYzA0Zi4uNWQ5NzdmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZH
VGV4dFBhdGguY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHRQYXRoLmNw
cApAQCAtNzgsNDYgKzc4LDYgQEAgYm9vbCBSZW5kZXJTVkdUZXh0UGF0aDo6c3RyZXRjaE1ldGhv
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1RleHRQYXRoRWxlbWVudCo+KG5v
ZGUoKSktPm1ldGhvZCgpID09IFNWR19URVhUUEFUSF9NRVRIT0RUWVBFX1NUUkVUQ0g7CiB9CiAK
LXZvaWQgUmVuZGVyU1ZHVGV4dFBhdGg6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiBy
ZWN0cywgaW50LCBpbnQpCi17Ci0gICAgSW5saW5lUnVuQm94KiBmaXJzdEJveCA9IGZpcnN0TGlu
ZUJveCgpOwotCi0gICAgU1ZHUm9vdElubGluZUJveCogcm9vdEJveCA9IGZpcnN0Qm94ID8gc3Rh
dGljX2Nhc3Q8U1ZHSW5saW5lVGV4dEJveCo+KGZpcnN0Qm94KS0+c3ZnUm9vdElubGluZUJveCgp
IDogMDsKLSAgICBSZW5kZXJCbG9jayogb2JqZWN0ID0gcm9vdEJveCA/IHJvb3RCb3gtPmJsb2Nr
KCkgOiAwOwotCi0gICAgaWYgKCFvYmplY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCB4
UmVmID0gb2JqZWN0LT54KCk7Ci0gICAgaW50IHlSZWYgPSBvYmplY3QtPnkoKTsKLQotICAgIGZv
ciAoSW5saW5lUnVuQm94KiBjdXJyID0gZmlyc3RCb3g7IGN1cnI7IGN1cnIgPSBjdXJyLT5uZXh0
TGluZUJveCgpKSB7Ci0gICAgICAgIEZsb2F0UmVjdCByZWN0KHhSZWYgKyBjdXJyLT54KCksIHlS
ZWYgKyBjdXJyLT55KCksIGN1cnItPndpZHRoKCksIGN1cnItPmhlaWdodCgpKTsKLSAgICAgICAg
Ly8gRklYTUU6IGJyb2tlbiB3aXRoIENTUyB0cmFuc2Zvcm1zCi0gICAgICAgIHJlY3RzLmFwcGVu
ZChlbmNsb3NpbmdJbnRSZWN0KGFic29sdXRlVHJhbnNmb3JtKCkubWFwUmVjdChyZWN0KSkpOwot
ICAgIH0KLX0KLQotdm9pZCBSZW5kZXJTVkdUZXh0UGF0aDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8
RmxvYXRRdWFkPiYgcXVhZHMpCi17Ci0gICAgSW5saW5lUnVuQm94KiBmaXJzdEJveCA9IGZpcnN0
TGluZUJveCgpOwotCi0gICAgU1ZHUm9vdElubGluZUJveCogcm9vdEJveCA9IGZpcnN0Qm94ID8g
c3RhdGljX2Nhc3Q8U1ZHSW5saW5lVGV4dEJveCo+KGZpcnN0Qm94KS0+c3ZnUm9vdElubGluZUJv
eCgpIDogMDsKLSAgICBSZW5kZXJCbG9jayogb2JqZWN0ID0gcm9vdEJveCA/IHJvb3RCb3gtPmJs
b2NrKCkgOiAwOwotCi0gICAgaWYgKCFvYmplY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlu
dCB4UmVmID0gb2JqZWN0LT54KCk7Ci0gICAgaW50IHlSZWYgPSBvYmplY3QtPnkoKTsKLQotICAg
IGZvciAoSW5saW5lUnVuQm94KiBjdXJyID0gZmlyc3RCb3g7IGN1cnI7IGN1cnIgPSBjdXJyLT5u
ZXh0TGluZUJveCgpKSB7Ci0gICAgICAgIEZsb2F0UmVjdCByZWN0KHhSZWYgKyBjdXJyLT54KCks
IHlSZWYgKyBjdXJyLT55KCksIGN1cnItPndpZHRoKCksIGN1cnItPmhlaWdodCgpKTsKLSAgICAg
ICAgLy8gRklYTUU6IGJyb2tlbiB3aXRoIENTUyB0cmFuc2Zvcm1zCi0gICAgICAgIHF1YWRzLmFw
cGVuZChhYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3QocmVjdCkpOwotICAgIH0KLX0KLQogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR1RleHRQYXRoLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0UGF0aC5o
CmluZGV4IGFiODQ0MjkuLmVmYWI2NTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR1RleHRQYXRoLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dFBh
dGguaApAQCAtMzgsOCArMzgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
c3RyZXRjaE1ldGhvZCgpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVu
ZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdUZXh0UGF0aCI7IH0KLSAgICAgICAg
dmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50IHR4
LCBpbnQgdHkpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8Rmxv
YXRRdWFkPiYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZmxvYXQgbV9zdGFydE9mZnNldDsK
</data>
<flag name="review"
          id="15027"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29979</attachid>
            <date>2009-05-03 21:01:49 -0700</date>
            <delta_ts>2009-05-04 17:32:37 -0700</delta_ts>
            <desc>Add SVGRenderBase to share logic between SVG renderers</desc>
            <filename>Add-SVGRenderBase-to-share-logic-between-SVG-renderers.patch</filename>
            <type>text/plain</type>
            <size>16704</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MTRiNDczM2U3NzlmY2U5M2E3ZGM5MjZhNWVjNDFlZDJhZWZkZWZkMApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMmE2NDVjLi5hOTA5Yjcy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDQ1IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgQWRkIFNWR1JlbmRlckJhc2UgdG8gc2hhcmUgbG9naWMgYmV0d2VlbiBTVkcgcmVu
ZGVyZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NTUzMgorCisgICAgICAgIEkndmUgYWRkZWQgYW4gU1ZHUmVuZGVyQmFzZSBiYXNlIGNsYXNzIHdo
aWNoIGlzIHNoYXJlZCBieQorICAgICAgICBhbGwgb2YgdGhlIFNWRyByZW5kZXJzIG5vdy4gIFRo
aXMgcGF0Y2ggaXMganVzdCBtb3ZpbmcgY29kZQorICAgICAgICB0aGVyZSBhcmUgbm8gZnVuY3Rp
b25hbCBjaGFuZ2VzIGluIHRoaXMgcGF0Y2guCisKKyAgICAgICAgQ3VycmVudGx5IEkndmUgbGVm
dCB0aGVzZSBmdW5jdGlvbnMgaW4gU1ZHUmVuZGVyU3VwcG9ydC5oCisgICAgICAgIEluIGEgbGF0
ZXIgcGF0Y2ggSSB3aWxsIHJlbmFtZSBTVkdSZW5kZXJTdXBwb3J0LiogdG8gU1ZHUmVuZGVyQmFz
ZS4qCisKKyAgICAgICAgY2xhbXBJbWFnZUJ1ZmZlclNpemVUb1ZpZXdwb3J0IG5vdyB0YWtlcyBh
IEZyYW1lVmlldyogd2hpY2ggbWFrZXMgc29tZSBjb2RlIGVhc2llciB0byByZWFkLgorCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclNWR0Jsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNWR0ltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJC
YXNlOjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jl
bmRlckJhc2U6OmZpbmlzaFJlbmRlclNWR0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y2xh
bXBJbWFnZUJ1ZmZlclNpemVUb1ZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRl
ckJhc2U6OmNvbXB1dGVDb250YWluZXJCb3VuZGluZ0JveCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZW5kZXJCYXNlOjpmaWx0ZXJCb3VuZGluZ0JveEZvclJlbmRlcmVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5oOgorICAgICAgICAqIHJlbmRlcmluZy9TVkdSb290
SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jvb3RJbmxpbmVCb3hQYWludFdh
bGtlcjo6Y2h1bmtTdGFydENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jvb3RJbmxp
bmVCb3hQYWludFdhbGtlcjo6Y2h1bmtFbmRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSb290SW5saW5lQm94OjpwYWludCk6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50OjpkcmF3TWFza2VyQ29udGVudCk6
CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdHRlcm5FbGVtZW50OjpidWlsZFBhdHRlcm4pOgorICAgICAgICAqIHN2Zy9ncmFwaGlj
cy9TVkdQYWludFNlcnZlckdyYWRpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1h
c2tBbmRTd2FwQ29udGV4dEZvclRleHRHcmFkaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpjbGlw
VG9UZXh0TWFzayk6CisKKzIwMDktMDUtMDMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIE1vdmUg
YWJzb2x1dGVSZWN0cyBhbmQgYWJzb2x1dGVRdWFkcyBpbnRvIFJlbmRlclNWR0lubGluZSBhbmQg
cmVtb3ZlIGFic29sdXRlVHJhbnNmb3JtKCkgdXNhZ2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NTMyCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNWR0Jsb2NrLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdCbG9j
ay5oCmluZGV4IGQ1NDVmZDAuLmY4YWZkMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNWR0Jsb2NrLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQmxvY2su
aApAQCAtMjUsMTIgKzI1LDEzIEBACiAjaWYgRU5BQkxFKFNWRykKIAogI2luY2x1ZGUgIlJlbmRl
ckJsb2NrLmgiCisjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFNWR0VsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclNWR0Jsb2NrIDogcHVi
bGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclNWR0Jsb2NrIDogcHVibGljIFJlbmRlckJs
b2NrLCBwcm90ZWN0ZWQgU1ZHUmVuZGVyQmFzZSB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU1ZHQmxv
Y2soU1ZHRWxlbWVudCopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZShQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbWFn
ZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW1hZ2UuaAppbmRleCA1NTZiODM2Li4x
MmY4MjM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbWFnZS5oCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0ltYWdlLmgKQEAgLTI4LDEzICsyOCwxNCBA
QAogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKKyNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR0ltYWdlRWxlbWVudDsK
ICAgICBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOwogCi0gICAgY2xhc3MgUmVuZGVyU1ZH
SW1hZ2UgOiBwdWJsaWMgUmVuZGVySW1hZ2UgeworICAgIGNsYXNzIFJlbmRlclNWR0ltYWdlIDog
cHVibGljIFJlbmRlckltYWdlLCBTVkdSZW5kZXJCYXNlIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IFJlbmRlclNWR0ltYWdlKFNWR0ltYWdlRWxlbWVudCopOwogICAgICAgICB2aXJ0dWFsIH5SZW5k
ZXJTVkdJbWFnZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5k
ZXggNWYzNTQ0YS4uMGFhMTNhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdNb2RlbE9i
amVjdC5oCkBAIC0zNCwxNyArMzQsMTggQEAKICNpZiBFTkFCTEUoU1ZHKQogCiAjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIC8vIE1vc3QgcmVuZGVyZXJzIGluIHRoZSBTVkcgcmVuZGVyaW5nIHRy
ZWUgd2lsbCBpbmhlcml0IGZyb20gdGhpcyBjbGFzcwogLy8gYnV0IG5vdCBhbGwuIChlLmcuIFJl
bmRlclNWR0ZvcmVpZ25PYmplY3QsIFJlbmRlclNWR0Jsb2NrLCBSZW5kZXJTVkdJbWFnZSkgdGh1
cyBtZXRob2RzCi0vLyByZXF1aXJlZCBieSBTVkcgcmVuZGVycyBuZWVkIHRvIGJlIGRlY2xhcmVk
IG9uIFJlbmRlck9iamVjdCwgYnV0IHNvbWUgc2hhcmVkCi0vLyBsb2dpYyBjYW4gZ28gaW4gdGhp
cyBjbGFzcy4KKy8vIHJlcXVpcmVkIGJ5IFNWRyByZW5kZXJzIG5lZWQgdG8gYmUgZGVjbGFyZWQg
b24gUmVuZGVyT2JqZWN0LCBidXQgc2hhcmVkCisvLyBsb2dpYyBjYW4gZ28gaW4gdGhpcyBjbGFz
cyBvciBpbiBTVkdSZW5kZXJCYXNlLgogCiBjbGFzcyBTVkdTdHlsZWRFbGVtZW50OwogCi1jbGFz
cyBSZW5kZXJTVkdNb2RlbE9iamVjdCA6IHB1YmxpYyBSZW5kZXJPYmplY3QgeworY2xhc3MgUmVu
ZGVyU1ZHTW9kZWxPYmplY3QgOiBwdWJsaWMgUmVuZGVyT2JqZWN0LCBwcm90ZWN0ZWQgU1ZHUmVu
ZGVyQmFzZSB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU1ZHTW9kZWxPYmplY3QoU1ZHU3R5bGVkRWxl
bWVudCopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290Lmgg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmgKaW5kZXggYTEwZjJjYy4uNTA4NjZk
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuaApAQCAtMjUsMTMgKzI1LDE0IEBACiAjaWYg
RU5BQkxFKFNWRykKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKKyNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU1ZHU3R5bGVkRWxlbWVudDsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4Owog
Ci1jbGFzcyBSZW5kZXJTVkdSb290IDogcHVibGljIFJlbmRlckJveCB7CitjbGFzcyBSZW5kZXJT
VkdSb290IDogcHVibGljIFJlbmRlckJveCwgU1ZHUmVuZGVyQmFzZSB7CiBwdWJsaWM6CiAgICAg
UmVuZGVyU1ZHUm9vdChTVkdTdHlsZWRFbGVtZW50Kik7CiAgICAgflJlbmRlclNWR1Jvb3QoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggNTE0M2E2MS4uOGMwNjBi
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKKysr
IGIvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIHByZXBhcmVUb1JlbmRlclNWR0NvbnRl
bnQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIFNWR1Jlc291cmNlRmlsdGVyKiYgZmls
dGVyLCBTVkdSZXNvdXJjZUZpbHRlciogcm9vdEZpbHRlcikKK3ZvaWQgU1ZHUmVuZGVyQmFzZTo6
cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudChSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyT2Jq
ZWN0OjpQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwg
U1ZHUmVzb3VyY2VGaWx0ZXIqJiBmaWx0ZXIsIFNWR1Jlc291cmNlRmlsdGVyKiByb290RmlsdGVy
KQogewogI2lmICFFTkFCTEUoU1ZHX0ZJTFRFUlMpCiAgICAgVU5VU0VEX1BBUkFNKGZpbHRlcik7
CkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KFJlbmRl
ck9iamVjdCogb2JqZWN0LCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGEKICAgICAgICAgc3Zn
RWxlbWVudC0+ZG9jdW1lbnQoKS0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT5hZGRQZW5kaW5nUmVz
b3VyY2UobWFza2VySWQsIHN0eWxlZEVsZW1lbnQpOwogfQogCi12b2lkIGZpbmlzaFJlbmRlclNW
R0NvbnRlbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIFNWR1Jlc291cmNlRmlsdGVy
KiYgZmlsdGVyLCBHcmFwaGljc0NvbnRleHQqIHNhdmVkQ29udGV4dCkKK3ZvaWQgU1ZHUmVuZGVy
QmFzZTo6ZmluaXNoUmVuZGVyU1ZHQ29udGVudChSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVy
T2JqZWN0OjpQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eCwgU1ZHUmVzb3VyY2VGaWx0ZXIqJiBmaWx0ZXIsIEdyYXBoaWNzQ29udGV4dCogc2F2ZWRDb250
ZXh0KQogewogI2lmICFFTkFCTEUoU1ZHX0ZJTFRFUlMpCiAgICAgVU5VU0VEX1BBUkFNKGJvdW5k
aW5nQm94KTsKQEAgLTE1NiwxNyArMTU2LDEzIEBAIHZvaWQgcmVuZGVyU3VidHJlZVRvSW1hZ2Uo
SW1hZ2VCdWZmZXIqIGltYWdlLCBSZW5kZXJPYmplY3QqIGl0ZW0pCiAgICAgICAgIHN2Z0NvbnRh
aW5lci0+c2V0RHJhd3NDb250ZW50cyhmYWxzZSk7CiB9CiAKLXZvaWQgY2xhbXBJbWFnZUJ1ZmZl
clNpemVUb1ZpZXdwb3J0KFJlbmRlck9iamVjdCogb2JqZWN0LCBJbnRTaXplJiBzaXplKQordm9p
ZCBjbGFtcEltYWdlQnVmZmVyU2l6ZVRvVmlld3BvcnQoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIElu
dFNpemUmIHNpemUpCiB7Ci0gICAgaWYgKCFvYmplY3QgfHwgIW9iamVjdC0+aXNSZW5kZXJWaWV3
KCkpCisgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlbmRlclZp
ZXcqIHZpZXcgPSB0b1JlbmRlclZpZXcob2JqZWN0KTsKLSAgICBpZiAoIXZpZXctPmZyYW1lVmll
dygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbnQgdmlld1dpZHRoID0gdmlldy0+ZnJhbWVW
aWV3KCktPnZpc2libGVXaWR0aCgpOwotICAgIGludCB2aWV3SGVpZ2h0ID0gdmlldy0+ZnJhbWVW
aWV3KCktPnZpc2libGVIZWlnaHQoKTsKKyAgICBpbnQgdmlld1dpZHRoID0gZnJhbWVWaWV3LT52
aXNpYmxlV2lkdGgoKTsKKyAgICBpbnQgdmlld0hlaWdodCA9IGZyYW1lVmlldy0+dmlzaWJsZUhl
aWdodCgpOwogCiAgICAgaWYgKHNpemUud2lkdGgoKSA+IHZpZXdXaWR0aCkKICAgICAgICAgc2l6
ZS5zZXRXaWR0aCh2aWV3V2lkdGgpOwpAQCAtMTc1LDcgKzE3MSw3IEBAIHZvaWQgY2xhbXBJbWFn
ZUJ1ZmZlclNpemVUb1ZpZXdwb3J0KFJlbmRlck9iamVjdCogb2JqZWN0LCBJbnRTaXplJiBzaXpl
KQogICAgICAgICBzaXplLnNldEhlaWdodCh2aWV3SGVpZ2h0KTsKIH0KIAotRmxvYXRSZWN0IGNv
bXB1dGVDb250YWluZXJCb3VuZGluZ0JveChjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciwg
Ym9vbCBpbmNsdWRlQWxsUGFpbnRlZENvbnRlbnQpCitGbG9hdFJlY3QgU1ZHUmVuZGVyQmFzZTo6
Y29tcHV0ZUNvbnRhaW5lckJvdW5kaW5nQm94KGNvbnN0IFJlbmRlck9iamVjdCogY29udGFpbmVy
LCBib29sIGluY2x1ZGVBbGxQYWludGVkQ29udGVudCkKIHsKICAgICBGbG9hdFJlY3QgYm91bmRp
bmdCb3g7CiAKQEAgLTE4OSw3ICsxODUsNyBAQCBGbG9hdFJlY3QgY29tcHV0ZUNvbnRhaW5lckJv
dW5kaW5nQm94KGNvbnN0IFJlbmRlck9iamVjdCogY29udGFpbmVyLCBib29sIGluY2x1ZAogICAg
IHJldHVybiBib3VuZGluZ0JveDsKIH0KIAotRmxvYXRSZWN0IGZpbHRlckJvdW5kaW5nQm94Rm9y
UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCitGbG9hdFJlY3QgU1ZHUmVuZGVy
QmFzZTo6ZmlsdGVyQm91bmRpbmdCb3hGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKIHsKICNpZiBFTkFCTEUoU1ZHX0ZJTFRFUlMpCiAgICAgU1ZHUmVzb3VyY2VGaWx0ZXIq
IGZpbHRlciA9IGdldEZpbHRlckJ5SWQob2JqZWN0LT5kb2N1bWVudCgpLCBvYmplY3QtPnN0eWxl
KCktPnN2Z1N0eWxlKCktPmZpbHRlcigpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1NWR1JlbmRlclN1cHBvcnQuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQu
aAppbmRleCA3YjQ1ZGYxLi5iZDFiNmEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9T
VkdSZW5kZXJTdXBwb3J0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9y
dC5oCkBAIC0yMSwzNCArMjEsNDggQEAKICAqCiAgKi8KIAorI2lmbmRlZiBTVkdSZW5kZXJCYXNl
X2gKKyNkZWZpbmUgU1ZHUmVuZGVyQmFzZV9oCisKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUg
IlJlbmRlck9iamVjdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBNb3N0
IG9mIHRoaXMgY29kZSBzaG91bGQgbW92ZSB0byBSZW5kZXJTVkdNb2RlbE9iamVjdCBvbmNlCi0v
LyBhbGwgU1ZHIHJlbmRlcmVycyBpbmhlcml0IGZyb20gUmVuZGVyU1ZHTW9kZWxPYmplY3QKKyAg
ICBjbGFzcyBTVkdSZXNvdXJjZUZpbHRlcjsKKyAgICBjbGFzcyBJbWFnZUJ1ZmZlcjsKIAotY2xh
c3MgU1ZHUmVzb3VyY2VGaWx0ZXI7Ci12b2lkIHByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVu
ZGVyT2JqZWN0KiwgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmIGJv
dW5kaW5nQm94LCBTVkdSZXNvdXJjZUZpbHRlciomLCBTVkdSZXNvdXJjZUZpbHRlciogcm9vdEZp
bHRlciA9IDApOwotdm9pZCBmaW5pc2hSZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVjdCosIFJl
bmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgU1ZH
UmVzb3VyY2VGaWx0ZXIqJiwgR3JhcGhpY3NDb250ZXh0KiBzYXZlZENvbnRleHQpOworICAgIC8v
IFNWR1JlbmRlcmVyQmFzZSBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIHdoaWNoIGFsbCBTVkcg
cmVuZGVyZXJzIGluaGVyaXQKKyAgICAvLyBmcm9tIGluIG9yZGVyIHRvIHNoYXJlIFNWRyByZW5k
ZXJlciBjb2RlLgorICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgY2FuIGFsbCBtb3ZlIGludG8gUmVu
ZGVyU1ZHTW9kZWxPYmplY3Qgb25jZQorICAgIC8vIGFsbCBTVkcgcmVuZGVyZXJzIGluaGVyaXQg
ZnJvbSBSZW5kZXJTVkdNb2RlbE9iamVjdC4KKyAgICBjbGFzcyBTVkdSZW5kZXJCYXNlIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgb25seSBwdWJsaWMgZm9yIFNW
R1Jvb3RJbmxpbmVCb3guCisgICAgICAgIC8vIEl0J3MgdW5jbGVhciBpZiB0aGVzZSBzaG91bGQg
YmUgZXhwb3NlZCBvciBub3QuICBTVkdSb290SW5saW5lQm94IG1heQorICAgICAgICAvLyBwYXNz
IHRoZSB3cm9uZyBSZW5kZXJPYmplY3QqIGFuZCBib3VuZGluZ0JveCB0byB0aGVzZSBmdW5jdGlv
bnMuCisgICAgICAgIHN0YXRpYyB2b2lkIHByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVuZGVy
T2JqZWN0KiwgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5k
aW5nQm94LCBTVkdSZXNvdXJjZUZpbHRlciomLCBTVkdSZXNvdXJjZUZpbHRlciogcm9vdEZpbHRl
ciA9IDApOworICAgICAgICBzdGF0aWMgdm9pZCBmaW5pc2hSZW5kZXJTVkdDb250ZW50KFJlbmRl
ck9iamVjdCosIFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ0JveCwgU1ZHUmVzb3VyY2VGaWx0ZXIqJiwgR3JhcGhpY3NDb250ZXh0KiBzYXZlZENvbnRl
eHQpOwogCi0vLyBUaGlzIG9mZmVycyBhIHdheSB0byByZW5kZXIgcGFydHMgb2YgYSBXZWJLaXQg
cmVuZGVyaW5nIHRyZWUgaW50byBhIEltYWdlQnVmZmVyLgotY2xhc3MgSW1hZ2VCdWZmZXI7Ci12
b2lkIHJlbmRlclN1YnRyZWVUb0ltYWdlKEltYWdlQnVmZmVyKiwgUmVuZGVyT2JqZWN0Kik7Cisg
ICAgcHJvdGVjdGVkOgorICAgICAgICAvLyBVc2VkIHRvIHNoYXJlIHRoZSAid2FsayBhbGwgdGhl
IGNoaWxkcmVuIiBsb2dpYyBiZXR3ZWVuIG9iamVjdEJvdW5kaW5nQm94CisgICAgICAgIC8vIGFu
ZCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcyBpbiBSZW5kZXJTVkdSb290IGFuZCBSZW5k
ZXJTVkdDb250YWluZXIKKyAgICAgICAgc3RhdGljIEZsb2F0UmVjdCBjb21wdXRlQ29udGFpbmVy
Qm91bmRpbmdCb3goY29uc3QgUmVuZGVyT2JqZWN0KiBjb250YWluZXIsIGJvb2wgaW5jbHVkZUFs
bFBhaW50ZWRDb250ZW50KTsKIAotdm9pZCBjbGFtcEltYWdlQnVmZmVyU2l6ZVRvVmlld3BvcnQo
UmVuZGVyT2JqZWN0KiwgSW50U2l6ZSYpOworICAgICAgICAvLyByZXR1cm5zIHRoZSBmaWx0ZXIg
Ym91bmRpbmcgYm94IChvciB0aGUgZW1wdHkgcmVjdCBpZiBubyBmaWx0ZXIpIGluIGxvY2FsIGNv
b3JkaW5hdGVzCisgICAgICAgIHN0YXRpYyBGbG9hdFJlY3QgZmlsdGVyQm91bmRpbmdCb3hGb3JS
ZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqKTsKKyAgICB9OwogCi0vLyBVc2VkIHRvIHNoYXJl
IHRoZSAid2FsayBhbGwgdGhlIGNoaWxkcmVuIiBsb2dpYyBiZXR3ZWVuIG9iamVjdEJvdW5kaW5n
Qm94Ci0vLyBhbmQgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMgaW4gUmVuZGVyU1ZHUm9v
dCBhbmQgUmVuZGVyU1ZHQ29udGFpbmVyCi1GbG9hdFJlY3QgY29tcHV0ZUNvbnRhaW5lckJvdW5k
aW5nQm94KGNvbnN0IFJlbmRlck9iamVjdCogY29udGFpbmVyLCBib29sIGluY2x1ZGVBbGxQYWlu
dGVkQ29udGVudCk7CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG1vdmUgdG8gUmVuZGVyT2Jq
ZWN0IG9yIFBhaW50SW5mbworICAgIC8vIFVzZWQgZm9yIHRyYW5zZm9ybWluZyB0aGUgR3JhcGhp
Y3NDb250ZXh0IGFuZCBkYW1hZ2UgcmVjdCBiZWZvcmUgcGFzc2luZyBQYWludEluZm8gdG8gY2hp
bGQgcmVuZGVyZXJzLgorICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm1Ub1BhaW50SW5mbyhSZW5kZXJP
YmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBsb2NhbFRvQ2hp
bGRUcmFuc2Zvcm0pOwogCi0vLyByZXR1cm5zIHRoZSBmaWx0ZXIgYm91bmRpbmcgYm94IChvciB0
aGUgZW1wdHkgcmVjdCBpZiBubyBmaWx0ZXIpIGluIGxvY2FsIGNvb3JkaW5hdGVzCi1GbG9hdFJl
Y3QgZmlsdGVyQm91bmRpbmdCb3hGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqKTsKKyAg
ICAvLyBUaGlzIG9mZmVycyBhIHdheSB0byByZW5kZXIgcGFydHMgb2YgYSBXZWJLaXQgcmVuZGVy
aW5nIHRyZWUgaW50byBhIEltYWdlQnVmZmVyLgorICAgIHZvaWQgcmVuZGVyU3VidHJlZVRvSW1h
Z2UoSW1hZ2VCdWZmZXIqLCBSZW5kZXJPYmplY3QqKTsKIAotLy8gVXNlZCBmb3IgdHJhbnNmb3Jt
aW5nIHRoZSBHcmFwaGljc0NvbnRleHQgYW5kIGRhbWFnZSByZWN0IGJlZm9yZSBwYXNzaW5nIFBh
aW50SW5mbyB0byBjaGlsZCByZW5kZXJlcnMuCi12b2lkIGFwcGx5VHJhbnNmb3JtVG9QYWludElu
Zm8oUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIGxvY2FsVG9DaGlsZFRyYW5zZm9ybSk7CisgICAgdm9pZCBjbGFtcEltYWdlQnVm
ZmVyU2l6ZVRvVmlld3BvcnQoRnJhbWVWaWV3KiwgSW50U2l6ZSYgaW1hZ2VCdWZmZXJTaXplKTsK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotfQorI2VuZGlmIC8vIEVOQUJMRShTVkcpCiAKLSNl
bmRpZgorI2VuZGlmIC8vIFNWR1JlbmRlckJhc2VfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvU1ZHUm9vdElubGluZUJveC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9TVkdSb290SW5s
aW5lQm94LmNwcAppbmRleCA3NjU1MTRiLi41OWJmYjQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9TVkdSb290SW5saW5lQm94LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9TVkdS
b290SW5saW5lQm94LmNwcApAQCAtNDAyLDggKzQwMiw5IEBAIHN0cnVjdCBTVkdSb290SW5saW5l
Qm94UGFpbnRXYWxrZXIgewogICAgICAgICBtX3NhdmVkSW5mbyA9IG1fcGFpbnRJbmZvOwogICAg
ICAgICBtX3BhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7CiAKKyAgICAgICAgLy8gRklYTUU6IFdo
eSBpcyB0aGlzIGRvbmUgaGVyZSBpbnN0ZWFkIG9mIGluIFJlbmRlclNWR1RleHQ/CiAgICAgICAg
IGlmICghZmxvd0JveC0+aXNSb290SW5saW5lQm94KCkpCi0gICAgICAgICAgICBwcmVwYXJlVG9S
ZW5kZXJTVkdDb250ZW50KG9iamVjdCwgbV9wYWludEluZm8sIG1fYm91bmRpbmdCb3gsIG1fZmls
dGVyLCBtX3Jvb3RGaWx0ZXIpOworICAgICAgICAgICAgU1ZHUmVuZGVyQmFzZTo6cHJlcGFyZVRv
UmVuZGVyU1ZHQ29udGVudChvYmplY3QsIG1fcGFpbnRJbmZvLCBtX2JvdW5kaW5nQm94LCBtX2Zp
bHRlciwgbV9yb290RmlsdGVyKTsKICAgICB9CiAKICAgICB2b2lkIGNodW5rRW5kQ2FsbGJhY2so
SW5saW5lQm94KiBib3gpCkBAIC00MjIsNyArNDIzLDcgQEAgc3RydWN0IFNWR1Jvb3RJbmxpbmVC
b3hQYWludFdhbGtlciB7CiAKICAgICAgICAgLy8gRmluYWxpemUgdGV4dCByZW5kZXJpbmcgCiAg
ICAgICAgIGlmICghZmxvd0JveC0+aXNSb290SW5saW5lQm94KCkpIHsKLSAgICAgICAgICAgIGZp
bmlzaFJlbmRlclNWR0NvbnRlbnQob2JqZWN0LCBtX3BhaW50SW5mbywgbV9ib3VuZGluZ0JveCwg
bV9maWx0ZXIsIG1fc2F2ZWRJbmZvLmNvbnRleHQpOworICAgICAgICAgICAgU1ZHUmVuZGVyQmFz
ZTo6ZmluaXNoUmVuZGVyU1ZHQ29udGVudChvYmplY3QsIG1fcGFpbnRJbmZvLCBtX2JvdW5kaW5n
Qm94LCBtX2ZpbHRlciwgbV9zYXZlZEluZm8uY29udGV4dCk7CiAgICAgICAgICAgICBtX2ZpbHRl
ciA9IDA7CiAgICAgICAgIH0KIApAQCAtNTc3LDcgKzU3OCw3IEBAIHZvaWQgU1ZHUm9vdElubGlu
ZUJveDo6cGFpbnQoUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBp
bnQgdHkpCiAgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94KHR4ICsgeCgpLCB0eSArIHkoKSwgd2lk
dGgoKSwgaGVpZ2h0KCkpOwogCiAgICAgLy8gSW5pdGlhbGl6ZSB0ZXh0IHJlbmRlcmluZwotICAg
IHByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQocmVuZGVyZXIoKSwgcGFpbnRJbmZvLCBib3VuZGlu
Z0JveCwgZmlsdGVyKTsKKyAgICBTVkdSZW5kZXJCYXNlOjpwcmVwYXJlVG9SZW5kZXJTVkdDb250
ZW50KHJlbmRlcmVyKCksIHBhaW50SW5mbywgYm91bmRpbmdCb3gsIGZpbHRlcik7CiAgCiAgICAg
Ly8gUmVuZGVyIHRleHQsIGNodW5rLWJ5LWNodW5rCiAgICAgU1ZHUm9vdElubGluZUJveFBhaW50
V2Fsa2VyIHdhbGtlckNhbGxiYWNrKHRoaXMsIGZpbHRlciwgcGFpbnRJbmZvLCB0eCwgdHkpOwpA
QCAtNTkxLDcgKzU5Miw3IEBAIHZvaWQgU1ZHUm9vdElubGluZUJveDo6cGFpbnQoUmVuZGVyT2Jq
ZWN0OjpQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkpCiAgICAgd2Fsa1RleHRD
aHVua3MoJndhbGtlcik7CiAKICAgICAvLyBGaW5hbGl6ZSB0ZXh0IHJlbmRlcmluZyAKLSAgICBm
aW5pc2hSZW5kZXJTVkdDb250ZW50KHJlbmRlcmVyKCksIHBhaW50SW5mbywgYm91bmRpbmdCb3gs
IGZpbHRlciwgc2F2ZWRJbmZvLmNvbnRleHQpOworICAgIFNWR1JlbmRlckJhc2U6OmZpbmlzaFJl
bmRlclNWR0NvbnRlbnQocmVuZGVyZXIoKSwgcGFpbnRJbmZvLCBib3VuZGluZ0JveCwgZmlsdGVy
LCBzYXZlZEluZm8uY29udGV4dCk7CiAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnJlc3RvcmUoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwIGIvV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCmluZGV4IDlmOWFlMzQuLmI2ZGYyZTYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdN
YXNrRWxlbWVudC5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBhdXRvX3B0cjxJbWFnZUJ1ZmZlcj4g
U1ZHTWFza0VsZW1lbnQ6OmRyYXdNYXNrZXJDb250ZW50KGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0
UgogICAgIH0gCiAKICAgICBJbnRTaXplIGltYWdlU2l6ZShscm91bmRmKHdpZHRoVmFsdWUpLCBs
cm91bmRmKGhlaWdodFZhbHVlKSk7Ci0gICAgY2xhbXBJbWFnZUJ1ZmZlclNpemVUb1ZpZXdwb3J0
KGRvY3VtZW50KCktPnJlbmRlcmVyKCksIGltYWdlU2l6ZSk7CisgICAgY2xhbXBJbWFnZUJ1ZmZl
clNpemVUb1ZpZXdwb3J0KGRvY3VtZW50KCktPnZpZXcoKSwgaW1hZ2VTaXplKTsKIAogICAgIGlm
IChpbWFnZVNpemUud2lkdGgoKSA8IHN0YXRpY19jYXN0PGludD4od2lkdGhWYWx1ZSkpCiAgICAg
ICAgIHdpZHRoVmFsdWUgPSBpbWFnZVNpemUud2lkdGgoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50
LmNwcAppbmRleCBhNTJhMWExLi44MjBjMWQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdQ
YXR0ZXJuRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3Bw
CkBAIC0xNzcsNyArMTc3LDcgQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6YnVpbGRQYXR0ZXJu
KGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCkgY29uc3QKICAgICAgICAgcGF0dGVybkJvdW5k
YXJpZXMuc2V0SGVpZ2h0KHRhcmdldFJlY3QuaGVpZ2h0KCkpOwogCiAgICAgSW50U2l6ZSBwYXR0
ZXJuU2l6ZShwYXR0ZXJuQm91bmRhcmllcy53aWR0aCgpLCBwYXR0ZXJuQm91bmRhcmllcy5oZWln
aHQoKSk7Ci0gICAgY2xhbXBJbWFnZUJ1ZmZlclNpemVUb1ZpZXdwb3J0KGRvY3VtZW50KCktPnJl
bmRlcmVyKCksIHBhdHRlcm5TaXplKTsKKyAgICBjbGFtcEltYWdlQnVmZmVyU2l6ZVRvVmlld3Bv
cnQoZG9jdW1lbnQoKS0+dmlldygpLCBwYXR0ZXJuU2l6ZSk7CiAKICAgICBpZiAocGF0dGVyblNp
emUud2lkdGgoKSA8IHN0YXRpY19jYXN0PGludD4ocGF0dGVybkJvdW5kYXJpZXMud2lkdGgoKSkp
CiAgICAgICAgIHBhdHRlcm5Cb3VuZGFyaWVzLnNldFdpZHRoKHBhdHRlcm5TaXplLndpZHRoKCkp
OwpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgU1ZHUGF0dGVybkVsZW1lbnQ6OmJ1aWxkUGF0dGVy
bihjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpIGNvbnN0CiAgICAgfQogCiAgICAgSW50U2l6
ZSBpbWFnZVNpemUobHJvdW5kZihwYXR0ZXJuQm91bmRhcmllc0luY2x1ZGluZ092ZXJmbG93Lndp
ZHRoKCkpLCBscm91bmRmKHBhdHRlcm5Cb3VuZGFyaWVzSW5jbHVkaW5nT3ZlcmZsb3cuaGVpZ2h0
KCkpKTsKLSAgICBjbGFtcEltYWdlQnVmZmVyU2l6ZVRvVmlld3BvcnQoZG9jdW1lbnQoKS0+cmVu
ZGVyZXIoKSwgaW1hZ2VTaXplKTsKKyAgICBjbGFtcEltYWdlQnVmZmVyU2l6ZVRvVmlld3BvcnQo
ZG9jdW1lbnQoKS0+dmlldygpLCBpbWFnZVNpemUpOwogCiAgICAgYXV0b19wdHI8SW1hZ2VCdWZm
ZXI+IHBhdHRlcm5JbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoaW1hZ2VTaXplLCBmYWxzZSk7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyR3JhZGll
bnQuY3BwIGIvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVudC5jcHAK
aW5kZXggODEyZTA1MC4uZjllOWM2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
U1ZHUGFpbnRTZXJ2ZXJHcmFkaWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZH
UGFpbnRTZXJ2ZXJHcmFkaWVudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlbmRl
ck9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTVkdHcmFkaWVu
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdQYWludFNlcnZlckxpbmVhckdyYWRpZW50LmgiCiAj
aW5jbHVkZSAiU1ZHUGFpbnRTZXJ2ZXJSYWRpYWxHcmFkaWVudC5oIgpAQCAtMTM0LDcgKzEzNSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjcmVhdGVNYXNrQW5kU3dhcENvbnRleHRGb3JUZXh0R3Jh
ZGllbnQoCiAgICAgSW50UmVjdCBtYXNrUmVjdCA9IGVuY2xvc2luZ0ludFJlY3Qob2JqZWN0LT5h
YnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3QobWFza0JCb3gpKTsKIAogICAgIEludFNpemUgbWFz
a1NpemUobWFza1JlY3Qud2lkdGgoKSwgbWFza1JlY3QuaGVpZ2h0KCkpOwotICAgIGNsYW1wSW1h
Z2VCdWZmZXJTaXplVG9WaWV3cG9ydChvYmplY3QtPmRvY3VtZW50KCktPnJlbmRlcmVyKCksIG1h
c2tTaXplKTsKKyAgICBjbGFtcEltYWdlQnVmZmVyU2l6ZVRvVmlld3BvcnQob2JqZWN0LT52aWV3
KCktPmZyYW1lVmlldygpLCBtYXNrU2l6ZSk7CiAKICAgICBhdXRvX3B0cjxJbWFnZUJ1ZmZlcj4g
bWFza0ltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShtYXNrU2l6ZSwgZmFsc2UpOwogCkBAIC0x
NjYsNyArMTY3LDcgQEAgc3RhdGljIGlubGluZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjbGlwVG9U
ZXh0TWFzayhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsCiAgICAgRmxvYXRSZWN0IHRleHRCb3Vu
ZGFyeSA9IHRyYW5zZm9ybS5tYXBSZWN0KG1hc2tCQm94KTsKIAogICAgIEludFNpemUgbWFza1Np
emUobHJvdW5kZih0ZXh0Qm91bmRhcnkud2lkdGgoKSksIGxyb3VuZGYodGV4dEJvdW5kYXJ5Lmhl
aWdodCgpKSk7Ci0gICAgY2xhbXBJbWFnZUJ1ZmZlclNpemVUb1ZpZXdwb3J0KG9iamVjdC0+ZG9j
dW1lbnQoKS0+cmVuZGVyZXIoKSwgbWFza1NpemUpOworICAgIGNsYW1wSW1hZ2VCdWZmZXJTaXpl
VG9WaWV3cG9ydChvYmplY3QtPnZpZXcoKS0+ZnJhbWVWaWV3KCksIG1hc2tTaXplKTsKICAgICB0
ZXh0Qm91bmRhcnkuc2V0U2l6ZSh0ZXh0Qm91bmRhcnkuc2l6ZSgpLnNocnVua1RvKG1hc2tTaXpl
KSk7CiAKICAgICAvLyBDbGlwIGN1cnJlbnQgY29udGV4dCB0byBtYXNrIGltYWdlIChncmFkaWVu
dCkK
</data>
<flag name="review"
          id="15028"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29980</attachid>
            <date>2009-05-03 21:01:53 -0700</date>
            <delta_ts>2009-05-04 17:37:23 -0700</delta_ts>
            <desc>Move more code into SVGRenderBase</desc>
            <filename>Move-more-code-into-SVGRenderBase.patch</filename>
            <type>text/plain</type>
            <size>13605</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MDQyYjYxYTNlYTZhYjllNGNjODllNjdlMjNmMzNiM2IxOGUxNjdjMQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhOTA5YjcyLi5jZGU4OGMz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDQxIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgTW92ZSBtb3JlIGNvZGUgaW50byBTVkdSZW5kZXJCYXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUzMgorCisgICAgICAgIGNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50LCBjb21wdXRlUmVjdEZvclJlcGFpbnQgYW5kIG1hcExv
Y2FsVG9Db250YWluZXIKKyAgICAgICAgYXJlIG5vdyBhbGwgc2hhcmVkIHZpYSBTVkdSZW5kZXJC
YXNlLgorCisgICAgICAgIFJlbmRlckZvcmVpZ25PYmplY3Qgc2hvdWxkIGFsc28gYmUgc2hhcmlu
ZyB0aGlzIGNvZGUsIGJ1dCBJJ3ZlIGxlZnQgaXQKKyAgICAgICAgYWxvbmUgZm9yIG5vdywgYXMg
Y2hhbmdpbmcgdGhhdCB3b3VsZCBsaWtlbHkgY2F1c2UgdGVzdCBjaGFuZ2VzLgorCisgICAgICAg
IE5vIHRlc3QgY2hhbmdlcy4gIEl0J3MgcG9zc2libGUgdGhhdCB0cmFuc2Zvcm1lZCA8c3ZnOmlt
YWdlPiBlbGVtZW50cyB3aWxsCisgICAgICAgIG5vdyBzaG93IHVwIHdpdGggYmV0dGVyIG1ldHJp
Y3MgaW4gdGhlIGluc3BlY3Rvci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdJbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6Y2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6OmNvbXB1
dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6bWFw
TG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR0ltYWdlLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y29tcHV0ZVJl
Y3RGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0
Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0Ojpjb21wdXRlUmVj
dEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxU
b0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyQmFzZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyQmFzZTo6Y29tcHV0ZVJlY3RGb3JS
ZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlckJhc2U6Om1hcExvY2FsVG9Db250
YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisKKzIwMDkt
MDUtMDMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIEFkZCBTVkdSZW5kZXJCYXNlIHRvIHNoYXJl
IGxvZ2ljIGJldHdlZW4gU1ZHIHJlbmRlcmVycwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU1ZHSW1hZ2UuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW1hZ2Uu
Y3BwCmluZGV4IGQ2N2I0YjcuLjdjMDdjNzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNWR0ltYWdlLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbWFn
ZS5jcHAKQEAgLTIzOSwyMiArMjM5LDE3IEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6OmltYWdlQ2hh
bmdlZChXcmFwcGVkSW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IEludFJlY3QqIHJlY3QpCiAKIEludFJl
Y3QgUmVuZGVyU1ZHSW1hZ2U6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJv
eE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKQogewotICAgIC8vIFJldHVybiBlYXJseSBm
b3IgYW55IGNhc2VzIHdoZXJlIHdlIGRvbid0IGFjdHVhbGx5IHBhaW50Ci0gICAgaWYgKHN0eWxl
KCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFICYmICFlbmNsb3NpbmdMYXllcigpLT5oYXNWaXNp
YmxlQ29udGVudCgpKQotICAgICAgICByZXR1cm4gSW50UmVjdCgpOwotCi0gICAgLy8gUGFzcyBv
dXIgbG9jYWwgcGFpbnQgcmVjdCB0byBjb21wdXRlUmVjdEZvclJlcGFpbnQoKSB3aGljaCB3aWxs
Ci0gICAgLy8gbWFwIHRvIHBhcmVudCBjb29yZHMgYW5kIHJlY3Vyc2UgdXAgdGhlIHBhcmVudCBj
aGFpbi4KLSAgICBJbnRSZWN0IHJlcGFpbnRSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChyZXBhaW50
UmVjdEluTG9jYWxDb29yZGluYXRlcygpKTsKLSAgICBjb21wdXRlUmVjdEZvclJlcGFpbnQocmVw
YWludENvbnRhaW5lciwgcmVwYWludFJlY3QpOwotICAgIHJldHVybiByZXBhaW50UmVjdDsKKyAg
ICByZXR1cm4gU1ZHUmVuZGVyQmFzZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQodGhp
cywgcmVwYWludENvbnRhaW5lcik7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6OmNvbXB1dGVS
ZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgSW50
UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpCiB7Ci0gICAgLy8gVHJhbnNsYXRlIHRvIGNv
b3JkcyBpbiBvdXIgcGFyZW50IHJlbmRlcmVyLCBhbmQgdGhlbiBjYWxsIGNvbXB1dGVSZWN0Rm9y
UmVwYWludCBvbiBvdXIgcGFyZW50Ci0gICAgcmVwYWludFJlY3QgPSBsb2NhbFRvUGFyZW50VHJh
bnNmb3JtKCkubWFwUmVjdChyZXBhaW50UmVjdCk7Ci0gICAgcGFyZW50KCktPmNvbXB1dGVSZWN0
Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOworICAgIFNW
R1JlbmRlckJhc2U6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVy
LCByZXBhaW50UmVjdCwgZml4ZWQpOworfQorCit2b2lkIFJlbmRlclNWR0ltYWdlOjptYXBMb2Nh
bFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29s
IGZpeGVkICwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUpIGNvbnN0Cit7CisgICAgU1ZHUmVuZGVyQmFzZTo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlz
LCByZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUp
OwogfQogCiB2b2lkIFJlbmRlclNWR0ltYWdlOjphZGRGb2N1c1JpbmdSZWN0cyhHcmFwaGljc0Nv
bnRleHQqIGdyYXBoaWNzQ29udGV4dCwgaW50LCBpbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTVkdJbWFnZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW1h
Z2UuaAppbmRleCAxMmY4MjM4Li4wYzlhYTgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTVkdJbWFnZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0ltYWdl
LmgKQEAgLTUwLDcgKzUwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1
YWwgSW50UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lcik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVj
dEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJl
Y3QmLCBib29sIGZpeGVkID0gZmFsc2UpOwotICAgIAorCisgICAgICAgIHZpcnR1YWwgdm9pZCBt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7
CisKICAgICAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+Jiwg
aW50IHR4LCBpbnQgdHkpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0
b3I8RmxvYXRRdWFkPiYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMo
R3JhcGhpY3NDb250ZXh0KiwgaW50IHR4LCBpbnQgdHkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IGQyMjUwNDAuLmQyN2E5M2MgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNp
bmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJTVkdTdHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKIAogI2lm
IEVOQUJMRShTVkdfRklMVEVSUykKICNpbmNsdWRlICJTVkdSZXNvdXJjZUZpbHRlci5oIgpAQCAt
NTIsMzggKzUxLDIyIEBAIFJlbmRlclNWR01vZGVsT2JqZWN0OjpSZW5kZXJTVkdNb2RlbE9iamVj
dChTVkdTdHlsZWRFbGVtZW50KiBub2RlKQogCiBJbnRSZWN0IFJlbmRlclNWR01vZGVsT2JqZWN0
OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lcikKIHsKLSAgICAvLyBSZXR1cm4gZWFybHkgZm9yIGFueSBjYXNlcyB3aGVy
ZSB3ZSBkb24ndCBhY3R1YWxseSBwYWludAotICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkg
IT0gVklTSUJMRSAmJiAhZW5jbG9zaW5nTGF5ZXIoKS0+aGFzVmlzaWJsZUNvbnRlbnQoKSkKLSAg
ICAgICAgcmV0dXJuIEludFJlY3QoKTsKLQotICAgIC8vIFBhc3Mgb3VyIGxvY2FsIHBhaW50IHJl
Y3QgdG8gY29tcHV0ZVJlY3RGb3JSZXBhaW50KCkgd2hpY2ggd2lsbAotICAgIC8vIG1hcCB0byBw
YXJlbnQgY29vcmRzIGFuZCByZWN1cnNlIHVwIHRoZSBwYXJlbnQgY2hhaW4uCi0gICAgSW50UmVj
dCByZXBhaW50UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXMoKSk7Ci0gICAgY29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJl
cGFpbnRSZWN0KTsKLSAgICByZXR1cm4gcmVwYWludFJlY3Q7CisgICAgcmV0dXJuIFNWR1JlbmRl
ckJhc2U6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWlu
ZXIpOwogfQogCiB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFp
bnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmIHJlcGFp
bnRSZWN0LCBib29sIGZpeGVkKQogewotICAgIC8vIFRyYW5zbGF0ZSB0byBjb29yZHMgaW4gb3Vy
IHBhcmVudCByZW5kZXJlciwgYW5kIHRoZW4gY2FsbCBjb21wdXRlUmVjdEZvclJlcGFpbnQgb24g
b3VyIHBhcmVudAotICAgIHJlcGFpbnRSZWN0ID0gbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLm1h
cFJlY3QocmVwYWludFJlY3QpOwotICAgIHBhcmVudCgpLT5jb21wdXRlUmVjdEZvclJlcGFpbnQo
cmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKKyAgICBTVkdSZW5kZXJCYXNl
Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJl
Y3QsIGZpeGVkKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhl
ZCAsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBj
b25zdAogewotICAgIEFTU0VSVCghZml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2ZSBubyBmaXhlZCBj
b250ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCi0KLSAgICAvLyBGSVhNRTogSWYgd2Ug
ZG9uJ3QgcmVzcGVjdCB1c2VUcmFuc2Zvcm1zIHdlIGJyZWFrIFNWRyB0ZXh0IHJlbmRlcmluZy4K
LSAgICAvLyBTZWVtcyBSZW5kZXJTVkdJbmxpbmVUZXh0IGhhcyBzb21lIG93biBicm9rZW4gdHJh
bnNsYXRpb24gaGFja3Mgd2hpY2ggZGVwZW5kIHVzZVRyYW5zZm9ybXM9ZmFsc2UKLSAgICAvLyBU
aGlzIHNob3VsZCBpbnN0ZWFkIGJlIEFTU0VSVCh1c2VUcmFuc2Zvcm1zKSBvbmNlIHdlIGZpeCBS
ZW5kZXJTVkdJbmxpbmVUZXh0Ci0gICAgaWYgKHVzZVRyYW5zZm9ybXMpCi0gICAgICAgIHRyYW5z
Zm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSk7Ci0KLSAg
ICBwYXJlbnQoKS0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhlZCwg
dXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIFNWR1JlbmRlckJhc2U6Om1hcExv
Y2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9y
bXMsIHRyYW5zZm9ybVN0YXRlKTsKIH0KIAogLy8gQ29waWVkIGZyb20gUmVuZGVyQm94LCB0aGlz
IG1ldGhvZCBsaWtlbHkgcmVxdWlyZXMgZnVydGhlciByZWZhY3RvcmluZyB0byB3b3JrIGVhc2ls
eSBmb3IgYm90aCBTVkcgYW5kIENTUyBCb3ggTW9kZWwgY29udGVudC4KKy8vIEZJWE1FOiBUaGlz
IG1heSBhbHNvIG5lZWQgdG8gbW92ZSBpbnRvIFNWR1JlbmRlckJhc2UgYXMgdGhlIFJlbmRlckJv
eCB2ZXJzaW9uIGRlcGVuZHMKKy8vIG9uIGJvcmRlckJvdW5kaW5nQm94KCkgd2hpY2ggU1ZHIFJl
bmRlckJveCBzdWJjbGFzZXMgKGxpa2UgU1ZHUmVuZGVyQmxvY2spIGRvIG5vdCBpbXBsZW1lbnQu
CiBJbnRSZWN0IFJlbmRlclNWR01vZGVsT2JqZWN0OjpvdXRsaW5lQm91bmRzRm9yUmVwYWludChS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QKIHsKICAgICBJbnRS
ZWN0IGJveCA9IGVuY2xvc2luZ0ludFJlY3QocmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMo
KSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcCBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwCmluZGV4IDBmN2Y5OWUuLmUxZGI0ZGUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5j
bHVkZSAiU1ZHVHJhbnNmb3JtTGlzdC5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgog
I2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCi0jaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCwzNSArNTMsMTcgQEAgUmVuZGVyU1ZHVGV4
dDo6UmVuZGVyU1ZHVGV4dChTVkdUZXh0RWxlbWVudCogbm9kZSkKIAogSW50UmVjdCBSZW5kZXJT
VkdUZXh0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lcikKIHsKLSAgICAvLyBSZXR1cm4gZWFybHkgZm9yIGFueSBjYXNl
cyB3aGVyZSB3ZSBkb24ndCBhY3R1YWxseSBwYWludAotICAgIGlmIChzdHlsZSgpLT52aXNpYmls
aXR5KCkgIT0gVklTSUJMRSAmJiAhZW5jbG9zaW5nTGF5ZXIoKS0+aGFzVmlzaWJsZUNvbnRlbnQo
KSkKLSAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKLQotICAgIC8vIFBhc3Mgb3VyIGxvY2FsIHBh
aW50IHJlY3QgdG8gY29tcHV0ZVJlY3RGb3JSZXBhaW50KCkgd2hpY2ggd2lsbAotICAgIC8vIG1h
cCB0byBwYXJlbnQgY29vcmRzIGFuZCByZWN1cnNlIHVwIHRoZSBwYXJlbnQgY2hhaW4uCi0gICAg
SW50UmVjdCByZXBhaW50UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXMoKSk7Ci0gICAgY29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWlu
ZXIsIHJlcGFpbnRSZWN0KTsKLSAgICByZXR1cm4gcmVwYWludFJlY3Q7CisgICAgcmV0dXJuIFNW
R1JlbmRlckJhc2U6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRD
b250YWluZXIpOwogfQogCiB2b2lkIFJlbmRlclNWR1RleHQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWlu
dChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgSW50UmVjdCYgcmVwYWlu
dFJlY3QsIGJvb2wgZml4ZWQpCiB7Ci0gICAgLy8gVHJhbnNsYXRlIHRvIGNvb3JkcyBpbiBvdXIg
cGFyZW50IHJlbmRlcmVyLCBhbmQgdGhlbiBjYWxsIGNvbXB1dGVSZWN0Rm9yUmVwYWludCBvbiBv
dXIgcGFyZW50Ci0gICAgcmVwYWludFJlY3QgPSBsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkubWFw
UmVjdChyZXBhaW50UmVjdCk7Ci0gICAgcGFyZW50KCktPmNvbXB1dGVSZWN0Rm9yUmVwYWludChy
ZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOworICAgIFNWR1JlbmRlckJhc2U6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVj
dCwgZml4ZWQpOwogfQogCiB2b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIo
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgLCBib29s
IHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKIHsK
LSAgICBBU1NFUlQoIWZpeGVkKTsgLy8gV2Ugc2hvdWxkIGhhdmUgbm8gZml4ZWQgY29udGVudCBp
biB0aGUgU1ZHIHJlbmRlcmluZyB0cmVlLgotCi0gICAgLy8gRklYTUU6IElmIHdlIGRvbid0IHJl
c3BlY3QgdXNlVHJhbnNmb3JtcyB3ZSBicmVhayBTVkcgdGV4dCByZW5kZXJpbmcuCi0gICAgLy8g
U2VlbXMgUmVuZGVyU1ZHSW5saW5lVGV4dCBoYXMgc29tZSBvd24gYnJva2VuIHRyYW5zbGF0aW9u
IGhhY2tzIHdoaWNoIGRlcGVuZCB1c2VUcmFuc2Zvcm1zPWZhbHNlCi0gICAgLy8gVGhpcyBzaG91
bGQgaW5zdGVhZCBiZSBBU1NFUlQodXNlVHJhbnNmb3Jtcykgb25jZSB3ZSBmaXggUmVuZGVyU1ZH
SW5saW5lVGV4dAotICAgIGlmICh1c2VUcmFuc2Zvcm1zKQotICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5hcHBseVRyYW5zZm9ybShsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwotCi0gICAgcGFyZW50
KCktPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5z
Zm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBTVkdSZW5kZXJCYXNlOjptYXBMb2NhbFRvQ29u
dGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFu
c2Zvcm1TdGF0ZSk7CiB9CiAKIGJvb2wgUmVuZGVyU1ZHVGV4dDo6Y2FsY3VsYXRlTG9jYWxUcmFu
c2Zvcm0oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5j
cHAgYi9XZWJDb3JlL3JlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCA4YzA2MGJm
Li4xZmY0OGJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0LmNwcApAQCAtMjYs
NyArMjYsNiBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5o
IgogCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJJbWFnZUJ1
ZmZlci5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0Nv
bnRhaW5lci5oIgpAQCAtMzYsMTAgKzM1LDQ1IEBACiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VNYXNr
ZXIuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHVVJJUmVm
ZXJlbmNlLmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKKyNpbmNsdWRlICJUcmFuc2Zv
cm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK0ludFJlY3QgU1ZHUmVuZGVyQmFzZTo6Y2xpcHBlZE92ZXJmbG93UmVj
dEZvclJlcGFpbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlckJveE1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyKQoreworICAgIC8vIFJldHVybiBlYXJseSBmb3IgYW55IGNhc2VzIHdo
ZXJlIHdlIGRvbid0IGFjdHVhbGx5IHBhaW50CisgICAgaWYgKG9iamVjdC0+c3R5bGUoKS0+dmlz
aWJpbGl0eSgpICE9IFZJU0lCTEUgJiYgIW9iamVjdC0+ZW5jbG9zaW5nTGF5ZXIoKS0+aGFzVmlz
aWJsZUNvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKKworICAgIC8vIFBhc3Mg
b3VyIGxvY2FsIHBhaW50IHJlY3QgdG8gY29tcHV0ZVJlY3RGb3JSZXBhaW50KCkgd2hpY2ggd2ls
bAorICAgIC8vIG1hcCB0byBwYXJlbnQgY29vcmRzIGFuZCByZWN1cnNlIHVwIHRoZSBwYXJlbnQg
Y2hhaW4uCisgICAgSW50UmVjdCByZXBhaW50UmVjdCA9IGVuY2xvc2luZ0ludFJlY3Qob2JqZWN0
LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpKTsKKyAgICBvYmplY3QtPmNvbXB1dGVS
ZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCk7CisgICAgcmV0dXJu
IHJlcGFpbnRSZWN0OworfQorCit2b2lkIFNWR1JlbmRlckJhc2U6OmNvbXB1dGVSZWN0Rm9yUmVw
YWludChSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIEludFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKQoreworICAgIC8vIFRy
YW5zbGF0ZSB0byBjb29yZHMgaW4gb3VyIHBhcmVudCByZW5kZXJlciwgYW5kIHRoZW4gY2FsbCBj
b21wdXRlUmVjdEZvclJlcGFpbnQgb24gb3VyIHBhcmVudAorICAgIHJlcGFpbnRSZWN0ID0gb2Jq
ZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkubWFwUmVjdChyZXBhaW50UmVjdCk7CisgICAg
b2JqZWN0LT5wYXJlbnQoKS0+Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIs
IHJlcGFpbnRSZWN0LCBmaXhlZCk7Cit9CisKK3ZvaWQgU1ZHUmVuZGVyQmFzZTo6bWFwTG9jYWxU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyQm94TW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgLCBib29sIHVzZVRyYW5zZm9ybXMsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkKK3sKKyAgICBBU1NFUlQoIWZpeGVkKTsgLy8g
V2Ugc2hvdWxkIGhhdmUgbm8gZml4ZWQgY29udGVudCBpbiB0aGUgU1ZHIHJlbmRlcmluZyB0cmVl
LgorCisgICAgLy8gRklYTUU6IElmIHdlIGRvbid0IHJlc3BlY3QgdXNlVHJhbnNmb3JtcyB3ZSBi
cmVhayBTVkcgdGV4dCByZW5kZXJpbmcuCisgICAgLy8gU2VlbXMgUmVuZGVyU1ZHSW5saW5lVGV4
dCBoYXMgc29tZSBvd24gYnJva2VuIHRyYW5zbGF0aW9uIGhhY2tzIHdoaWNoIGRlcGVuZCB1c2VU
cmFuc2Zvcm1zPWZhbHNlCisgICAgLy8gVGhpcyBzaG91bGQgaW5zdGVhZCBiZSBBU1NFUlQodXNl
VHJhbnNmb3Jtcykgb25jZSB3ZSBmaXggUmVuZGVyU1ZHSW5saW5lVGV4dAorICAgIGlmICh1c2VU
cmFuc2Zvcm1zKQorICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybShvYmplY3Qt
PmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSk7CisKKyAgICBvYmplY3QtPnBhcmVudCgpLT5tYXBM
b2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0
cmFuc2Zvcm1TdGF0ZSk7Cit9CisKIHZvaWQgU1ZHUmVuZGVyQmFzZTo6cHJlcGFyZVRvUmVuZGVy
U1ZHQ29udGVudChSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyT2JqZWN0OjpQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgU1ZHUmVzb3VyY2VGaWx0
ZXIqJiBmaWx0ZXIsIFNWR1Jlc291cmNlRmlsdGVyKiByb290RmlsdGVyKQogewogI2lmICFFTkFC
TEUoU1ZHX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9TVkdSZW5kZXJT
dXBwb3J0LmggYi9XZWJDb3JlL3JlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0LmgKaW5kZXggYmQx
YjZhMi4uYzAxYWFhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3Vw
cG9ydC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQuaApAQCAtNDUs
NiArNDUsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCBmaW5p
c2hSZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVjdCosIFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgU1ZHUmVzb3VyY2VGaWx0ZXIqJiwgR3Jh
cGhpY3NDb250ZXh0KiBzYXZlZENvbnRleHQpOwogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICBz
dGF0aWMgSW50UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJPYmplY3Qq
LCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7CisgICAgICAgIHN0YXRp
YyB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJPYmplY3QqLCBSZW5kZXJCb3hNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgSW50UmVjdCYsIGJvb2wgZml4ZWQpOworCisgICAg
ICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0Kiwg
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3Jt
cywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUmKTsKKwogICAgICAgICAvLyBVc2VkIHRvIHNo
YXJlIHRoZSAid2FsayBhbGwgdGhlIGNoaWxkcmVuIiBsb2dpYyBiZXR3ZWVuIG9iamVjdEJvdW5k
aW5nQm94CiAgICAgICAgIC8vIGFuZCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcyBpbiBS
ZW5kZXJTVkdSb290IGFuZCBSZW5kZXJTVkdDb250YWluZXIKICAgICAgICAgc3RhdGljIEZsb2F0
UmVjdCBjb21wdXRlQ29udGFpbmVyQm91bmRpbmdCb3goY29uc3QgUmVuZGVyT2JqZWN0KiBjb250
YWluZXIsIGJvb2wgaW5jbHVkZUFsbFBhaW50ZWRDb250ZW50KTsK
</data>
<flag name="review"
          id="15029"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29981</attachid>
            <date>2009-05-03 21:01:57 -0700</date>
            <delta_ts>2009-05-04 17:40:40 -0700</delta_ts>
            <desc>Remove the vestigial calculateLocalTransform()</desc>
            <filename>Remove-the-vestigial-calculateLocalTransform-.patch</filename>
            <type>text/plain</type>
            <size>12835</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NGVjY2ZjNjY2MDU0YTg0N2U2YzM4NDc5MDNmYTQwZTMzOTJkODNhNwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhw
ZWN0ZWQuY2hlY2tzdW0KaW5kZXggNmYzMTVlYy4uNDJkNDhjZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC5jaGVja3N1
bQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4
cGVjdGVkLmNoZWNrc3VtCkBAIC0xICsxIEBACi03NGYyMTcwZTNmOGFlZjI5NWNiYWYyMzZmZDk0
N2Y0MQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2QwYTg0ZjA2Yjg1YjZiZWY2YzIwNDI2
OWVhOGZhNjNlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLnBu
ZwppbmRleCBiZDhmZGQyLi5lMzZlZGRjIDEwMDY0NApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLnBuZyBhbmQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLnBu
ZyBkaWZmZXIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggY2RlODhjMy4uMzJjZDVhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzOSBAQAogCiAgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAgIFJlbW92ZSB0aGUgdmVzdGlnaWFsIGNh
bGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI1NTMyCisKKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIGlzIG5v
dyB0aGUgb25seSByZW5kZXIgd2hpY2ggbmVlZHMgdGhpcworICAgICAgICBmdW5jdGlvbiwgYnV0
IGl0IG5vIGxvbmdlciByZXR1cm5zIHRoZSB1bnVzZWQgYm9vbC4KKworICAgICAgICBjYWxjdWxh
dGVMb2NhbFRyYW5zZm9ybSgpIHByZXZpb3VzbHkgd2FzIGNhbGxlZCBieSB0aGUgRE9NIGJlZm9y
ZQorICAgICAgICB0cmFuc2Zvcm0gdXBkYXRlcyB3ZXJlIHBhcnQgb2YgbGF5b3V0KCkuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRm9yZWlnbk9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGb3JlaWduT2JqZWN0OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJGb3JlaWduT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGb3JlaWduT2Jq
ZWN0Ojpsb2NhbFRyYW5zZm9ybSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhdGguY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGF0aDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUGF0aC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdDb250YWlu
ZXIuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdDb250YWluZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR0NvbnRhaW5lcjo6Y2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0p
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdJbWFnZTo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U1ZHSW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1RyYW5zZm9y
bWFibGVDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVHJhbnNmb3Jt
YWJsZUNvbnRhaW5lcjo6Y2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0pOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmg6CisKKzIwMDktMDUtMDMgIEVy
aWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCiAgICAgICAgIE1vdmUgbW9yZSBjb2RlIGludG8gU1ZHUmVuZGVyQmFzZQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzIKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRm9yZWlnbk9iamVjdC5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGb3JlaWduT2JqZWN0LmNwcAppbmRleCA4OTJiNzlkLi5i
MTVkNTVjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGb3JlaWduT2JqZWN0
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGb3JlaWduT2JqZWN0LmNwcApAQCAt
ODcsMTMgKzg3LDYgQEAgdm9pZCBSZW5kZXJGb3JlaWduT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJl
cGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb24KICAgICBSZW5kZXJCbG9jazo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlY3QsIGZpeGVkKTsKIH0K
IAotYm9vbCBSZW5kZXJGb3JlaWduT2JqZWN0OjpjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgpCi17
Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggb2xkVHJhbnNmb3JtID0gbV9sb2NhbFRyYW5zZm9y
bTsKLSAgICBtX2xvY2FsVHJhbnNmb3JtID0gc3RhdGljX2Nhc3Q8U1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQqPihub2RlKCkpLT5hbmltYXRlZExvY2FsVHJhbnNmb3JtKCk7Ci0gICAgcmV0dXJuIChv
bGRUcmFuc2Zvcm0gIT0gbV9sb2NhbFRyYW5zZm9ybSk7Ci19Ci0KIFRyYW5zZm9ybWF0aW9uTWF0
cml4IFJlbmRlckZvcmVpZ25PYmplY3Q6OmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSBjb25zdAog
ewogICAgIHJldHVybiBsb2NhbFRyYW5zZm9ybSgpICogdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVz
KCk7CkBAIC0xMDUsNyArOTgsNyBAQCB2b2lkIFJlbmRlckZvcmVpZ25PYmplY3Q6OmxheW91dCgp
CiAgICAgQVNTRVJUKCF2aWV3KCktPmxheW91dFN0YXRlRW5hYmxlZCgpKTsgLy8gUmVuZGVyU1ZH
Um9vdCBkaXNhYmxlcyBsYXlvdXRTdGF0ZSBmb3IgdGhlIFNWRyByZW5kZXJpbmcgdHJlZS4KIAog
ICAgIExheW91dFJlcGFpbnRlciByZXBhaW50ZXIoKnRoaXMsIGNoZWNrRm9yUmVwYWludER1cmlu
Z0xheW91dCgpKTsKLSAgICBjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgpOworICAgIG1fbG9jYWxU
cmFuc2Zvcm0gPSBzdGF0aWNfY2FzdDxTVkdGb3JlaWduT2JqZWN0RWxlbWVudCo+KG5vZGUoKSkt
PmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKTsKIAogICAgIFJlbmRlckJsb2NrOjpsYXlvdXQoKTsK
ICAgICByZXBhaW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGb3JlaWduT2JqZWN0LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGb3JlaWduT2JqZWN0LmgKaW5kZXggODQzMzY2YS4uOGZkYjgxNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRm9yZWlnbk9iamVjdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZvcmVpZ25PYmplY3QuaApAQCAtMzksOCArMzksNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSk7
CiAKICAgICB2aXJ0dWFsIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxvY2FsVG9QYXJlbnRUcmFuc2Zv
cm0oKSBjb25zdDsKLSAgICB2aXJ0dWFsIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxvY2FsVHJhbnNm
b3JtKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFRyYW5zZm9ybTsgfQotICAgIGJvb2wgY2FsY3Vs
YXRlTG9jYWxUcmFuc2Zvcm0oKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJl
cGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmLCBi
b29sIGZpeGVkID0gZmFsc2UpOwogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTU1LDYgKzUzLDggQEAgcHVibGljOgogIHByaXZhdGU6
CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCkgY29u
c3Q7CiAKKyAgICB2aXJ0dWFsIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxvY2FsVHJhbnNmb3JtKCkg
Y29uc3QgeyByZXR1cm4gbV9sb2NhbFRyYW5zZm9ybTsgfQorCiAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbV9sb2NhbFRyYW5zZm9ybTsKIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclBhdGguY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKaW5k
ZXggYTZkNTEzYi4uN2U0NmI4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UGF0aC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKQEAgLTE0Nywy
MyArMTQ3LDE1IEBAIGNvbnN0IFBhdGgmIFJlbmRlclBhdGg6OnBhdGgoKSBjb25zdAogICAgIHJl
dHVybiBtX3BhdGg7CiB9CiAKLWJvb2wgUmVuZGVyUGF0aDo6Y2FsY3VsYXRlTG9jYWxUcmFuc2Zv
cm0oKQotewotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG9sZFRyYW5zZm9ybSA9IG1fbG9jYWxU
cmFuc2Zvcm07Ci0gICAgbV9sb2NhbFRyYW5zZm9ybSA9IHN0YXRpY19jYXN0PFNWR1N0eWxlZFRy
YW5zZm9ybWFibGVFbGVtZW50Kj4obm9kZSgpKS0+YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpOwot
ICAgIHJldHVybiAobV9sb2NhbFRyYW5zZm9ybSAhPSBvbGRUcmFuc2Zvcm0pOwotfQotCiB2b2lk
IFJlbmRlclBhdGg6OmxheW91dCgpCiB7CiAgICAgTGF5b3V0UmVwYWludGVyIHJlcGFpbnRlcigq
dGhpcywgY2hlY2tGb3JSZXBhaW50RHVyaW5nTGF5b3V0KCkgJiYgc2VsZk5lZWRzTGF5b3V0KCkp
OwotICAgIAotICAgIGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCk7CiAKLSAgICBzZXRQYXRoKHN0
YXRpY19jYXN0PFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Kj4obm9kZSgpKS0+dG9QYXRo
RGF0YSgpKTsKKyAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudCogZWxlbWVudCA9IHN0
YXRpY19jYXN0PFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Kj4obm9kZSgpKTsKKyAgICBt
X2xvY2FsVHJhbnNmb3JtID0gZWxlbWVudC0+YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpOworICAg
IHNldFBhdGgoZWxlbWVudC0+dG9QYXRoRGF0YSgpKTsKIAogICAgIHJlcGFpbnRlci5yZXBhaW50
QWZ0ZXJMYXlvdXQoKTsKLQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUGF0aC5oCmluZGV4IDk4NmRiZTEuLmE0YWVmZWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclBhdGguaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRo
LmgKQEAgLTY0LDcgKzY0LDYgQEAgcHVibGljOgogICAgIEZsb2F0UmVjdCBkcmF3TWFya2Vyc0lm
TmVlZGVkKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFBhdGgmKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBib29sIGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCk7CiAg
ICAgdmlydHVhbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0Owog
CiAgICAgbXV0YWJsZSBQYXRoIG1fcGF0aDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNWR0NvbnRhaW5lci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250
YWluZXIuY3BwCmluZGV4IGM5YTMzNTYuLmI2MTdhNmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHQ29udGFpbmVyLmNwcApAQCAtNTYsMTIgKzU2LDYgQEAgdm9pZCBSZW5kZXJTVkdDb250
YWluZXI6OnNldERyYXdzQ29udGVudHMoYm9vbCBkcmF3c0NvbnRlbnRzKQogICAgIG1fZHJhd3ND
b250ZW50cyA9IGRyYXdzQ29udGVudHM7CiB9CiAKLWJvb2wgUmVuZGVyU1ZHQ29udGFpbmVyOjpj
YWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgpCi17Ci0gICAgLy8gc3ViY2xhc3NlcyBjYW4gb3ZlcnJp
ZGUgdGhpcyB0byBhZGQgdHJhbnNmb3JtIHN1cHBvcnQKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
IHZvaWQgUmVuZGVyU1ZHQ29udGFpbmVyOjpsYXlvdXQoKQogewogICAgIEFTU0VSVChuZWVkc0xh
eW91dCgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5l
ci5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKaW5kZXggMDc1YWUw
MS4uNGJiN2U0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFp
bmVyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKQEAgLTU3
LDcgKzU3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50SW5QYXJlbnQsIEhpdFRlc3RBY3Rpb24pOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBi
b29sIGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCk7CisgICAgLy8gQWxsb3cgUmVuZGVyU1ZHVHJh
bnNmb3JtYWJsZUNvbnRhaW5lciB0byBob29rIGluIGF0IHRoZSByaWdodCB0aW1lIGluIGxheW91
dCgpCisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCkgeyB9CiAKICAg
ICAvLyBBbGxvdyBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB0byBob29rIGluIGF0IHRoZSBy
aWdodCB0aW1lcyBpbiBsYXlvdXQoKSwgcGFpbnQoKSBhbmQgbm9kZUF0RmxvYXRQb2ludCgpCiAg
ICAgdmlydHVhbCB2b2lkIGNhbGNWaWV3cG9ydCgpIHsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU1ZHSW1hZ2UuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZH
SW1hZ2UuY3BwCmluZGV4IDdjMDdjNzMuLjBhM2ZkZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNWR0ltYWdlLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
VkdJbWFnZS5jcHAKQEAgLTEyNiwyMCArMTI2LDE0IEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6OmFk
anVzdFJlY3RzRm9yQXNwZWN0UmF0aW8oRmxvYXRSZWN0JiBkZXN0UmVjdCwgRmxvYXRSZWN0JiBz
CiAgICAgfQogfQogCi1ib29sIFJlbmRlclNWR0ltYWdlOjpjYWxjdWxhdGVMb2NhbFRyYW5zZm9y
bSgpCi17Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggb2xkVHJhbnNmb3JtID0gbV9sb2NhbFRy
YW5zZm9ybTsKLSAgICBtX2xvY2FsVHJhbnNmb3JtID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQqPihub2RlKCkpLT5hbmltYXRlZExvY2FsVHJhbnNmb3JtKCk7Ci0g
ICAgcmV0dXJuIChtX2xvY2FsVHJhbnNmb3JtICE9IG9sZFRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQg
UmVuZGVyU1ZHSW1hZ2U6OmxheW91dCgpCiB7CiAgICAgQVNTRVJUKG5lZWRzTGF5b3V0KCkpOwot
ICAgIAorCiAgICAgTGF5b3V0UmVwYWludGVyIHJlcGFpbnRlcigqdGhpcywgY2hlY2tGb3JSZXBh
aW50RHVyaW5nTGF5b3V0KCkpOwotICAgIAotICAgIGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCk7
CisKKyAgICBTVkdJbWFnZUVsZW1lbnQqIGltYWdlID0gc3RhdGljX2Nhc3Q8U1ZHSW1hZ2VFbGVt
ZW50Kj4obm9kZSgpKTsKKyAgICBtX2xvY2FsVHJhbnNmb3JtID0gaW1hZ2UtPmFuaW1hdGVkTG9j
YWxUcmFuc2Zvcm0oKTsKICAgICAKICAgICAvLyBtaW5pbXVtIGhlaWdodAogICAgIHNldEhlaWdo
dChlcnJvck9jY3VycmVkKCkgPyBpbnRyaW5zaWNTaXplKCkuaGVpZ2h0KCkgOiAwKTsKQEAgLTE0
Nyw3ICsxNDEsNiBAQCB2b2lkIFJlbmRlclNWR0ltYWdlOjpsYXlvdXQoKQogICAgIGNhbGNXaWR0
aCgpOwogICAgIGNhbGNIZWlnaHQoKTsKIAotICAgIFNWR0ltYWdlRWxlbWVudCogaW1hZ2UgPSBz
dGF0aWNfY2FzdDxTVkdJbWFnZUVsZW1lbnQqPihub2RlKCkpOwogICAgIG1fbG9jYWxCb3VuZHMg
PSBGbG9hdFJlY3QoaW1hZ2UtPngoKS52YWx1ZShpbWFnZSksIGltYWdlLT55KCkudmFsdWUoaW1h
Z2UpLCBpbWFnZS0+d2lkdGgoKS52YWx1ZShpbWFnZSksIGltYWdlLT5oZWlnaHQoKS52YWx1ZShp
bWFnZSkpOwogCiAgICAgcmVwYWludGVyLnJlcGFpbnRBZnRlckxheW91dCgpOwpAQCAtMTgxLDcg
KzE3NCwxMCBAQCB2b2lkIFJlbmRlclNWR0ltYWdlOjpwYWludChQYWludEluZm8mIHBhaW50SW5m
bywgaW50LCBpbnQpCiAKICAgICAgICAgZmluaXNoUmVuZGVyU1ZHQ29udGVudCh0aGlzLCBwYWlu
dEluZm8sIG1fbG9jYWxCb3VuZHMsIGZpbHRlciwgc2F2ZWRJbmZvLmNvbnRleHQpOwogICAgIH0K
LSAgICAKKworICAgIGlmICgocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VPdXRsaW5lIHx8
IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZk91dGxpbmUpICYmIHN0eWxlKCktPm91
dGxpbmVXaWR0aCgpKQorICAgICAgICBwYWludE91dGxpbmUocGFpbnRJbmZvLmNvbnRleHQsIDAs
IDAsIHdpZHRoKCksIGhlaWdodCgpLCBzdHlsZSgpKTsKKwogICAgIHBhaW50SW5mby5jb250ZXh0
LT5yZXN0b3JlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNW
R0ltYWdlLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbWFnZS5oCmluZGV4IDBjOWFh
ODIuLjAxYjhiNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0ltYWdl
LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW1hZ2UuaApAQCAtNjksNyArNjks
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2lu
dChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBpbnQgX3gsIGludCBfeSwg
aW50IF90eCwgaW50IF90eSwgSGl0VGVzdEFjdGlvbik7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBib29sIGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCk7CiAgICAgICAgIHZpcnR1YWwgVHJhbnNm
b3JtYXRpb25NYXRyaXggbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsVHJh
bnNmb3JtOyB9CiAKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9sb2NhbFRyYW5zZm9y
bTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAKaW5kZXggZTFkYjRkZS4uZjc0YTJkMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAKKysrIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAKQEAgLTY2LDE3ICs2NiwxMCBAQCB2b2lk
IFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsCiAgICAgU1ZHUmVuZGVyQmFzZTo6bWFwTG9jYWxUb0NvbnRhaW5l
cih0aGlzLCByZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3Jt
U3RhdGUpOwogfQogCi1ib29sIFJlbmRlclNWR1RleHQ6OmNhbGN1bGF0ZUxvY2FsVHJhbnNmb3Jt
KCkKLXsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBvbGRUcmFuc2Zvcm0gPSBtX2xvY2FsVHJh
bnNmb3JtOwotICAgIG1fbG9jYWxUcmFuc2Zvcm0gPSBzdGF0aWNfY2FzdDxTVkdUZXh0RWxlbWVu
dCo+KG5vZGUoKSktPmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKTsKLSAgICByZXR1cm4gKG9sZFRy
YW5zZm9ybSAhPSBtX2xvY2FsVHJhbnNmb3JtKTsKLX0KLQogdm9pZCBSZW5kZXJTVkdUZXh0Ojps
YXlvdXQoKQogewogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKLSAgICAKKwogICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGEgaGFjayB0byBhdm9pZCB0aGUgUmVuZGVyQmxvY2s6OmxheW91dCgpIHBh
cnRpYWwgcmVwYWludGluZyBjb2RlIHdoaWNoIGlzIG5vdCAoeWV0KSBTVkcgYXdhcmUKICAgICBz
ZXROZWVkc0xheW91dCh0cnVlKTsKIApAQCAtODgsOCArODEsOCBAQCB2b2lkIFJlbmRlclNWR1Rl
eHQ6OmxheW91dCgpCiAgICAgaW50IHhPZmZzZXQgPSAoaW50KSh0ZXh0LT54KCktPmdldEZpcnN0
KCkudmFsdWUodGV4dCkpOwogICAgIGludCB5T2Zmc2V0ID0gKGludCkodGV4dC0+eSgpLT5nZXRG
aXJzdCgpLnZhbHVlKHRleHQpKTsKICAgICBzZXRMb2NhdGlvbih4T2Zmc2V0LCB5T2Zmc2V0KTsK
LSAgICAKLSAgICBjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgpOworCisgICAgbV9sb2NhbFRyYW5z
Zm9ybSA9IHRleHQtPmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKTsKIAogICAgIFJlbmRlckJsb2Nr
OjpsYXlvdXQoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4
dC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4IDBjYjI1NzMuLjJk
ODA4MGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmgKQEAgLTYyLDggKzYyLDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVz
KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgp
OwotCiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIGJlIHJlbW92ZWQgd2hlbiBsb2NhbFRyYW5zZm9y
bSgpIGlzIHJlbW92ZWQgZnJvbSBSZW5kZXJPYmplY3QKICAgICB2aXJ0dWFsIFRyYW5zZm9ybWF0
aW9uTWF0cml4IGxvY2FsVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFRyYW5zZm9y
bTsgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIuY3BwCmluZGV4IDQ0YTNiZWQuLjIzMjRlZWUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCkBAIC00
NCwxMSArNDQsOSBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyOjpsb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxUcmFu
c2Zvcm07CiB9CiAKLWJvb2wgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6Y2FsY3Vs
YXRlTG9jYWxUcmFuc2Zvcm0oKQordm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
OjpjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgpCiB7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
b2xkVHJhbnNmb3JtID0gbV9sb2NhbFRyYW5zZm9ybTsKICAgICBtX2xvY2FsVHJhbnNmb3JtID0g
c3RhdGljX2Nhc3Q8U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQqPihub2RlKCkpLT5hbmlt
YXRlZExvY2FsVHJhbnNmb3JtKCk7Ci0gICAgcmV0dXJuIChtX2xvY2FsVHJhbnNmb3JtICE9IG9s
ZFRyYW5zZm9ybSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNW
R1RyYW5zZm9ybWFibGVDb250YWluZXIuaAppbmRleCAyMGQ5NTdhLi5jOTI5NzYxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5o
CkBAIC0zMywxMSArMzMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1
YWwgVHJhbnNmb3JtYXRpb25NYXRyaXggbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpIGNvbnN0Owog
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgpOworICAgIHBy
aXZhdGU6CisgICAgICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSgpOwog
ICAgICAgICAvLyBGSVhNRTogVGhpcyBjYW4gYmUgbWFkZSBub24tdmlydHVhbCBvbmNlIFNWR1Jl
bmRlclRyZWVBc1RleHQgc3RvcHMgdXNpbmcgbG9jYWxUcmFuc2Zvcm0oKQogICAgICAgICB2aXJ0
dWFsIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxvY2FsVHJhbnNmb3JtKCkgY29uc3Q7CiAKLSAgICBw
cml2YXRlOgogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2xvY2FsVHJhbnNmb3JtOwog
ICAgIH07CiB9Cg==
</data>
<flag name="review"
          id="15030"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29982</attachid>
            <date>2009-05-03 21:02:03 -0700</date>
            <delta_ts>2009-05-04 17:41:11 -0700</delta_ts>
            <desc>Remove m_absoluteBounds hack from RenderSVGText</desc>
            <filename>Remove-m_absoluteBounds-hack-from-RenderSVGText.patch</filename>
            <type>text/plain</type>
            <size>2092</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZjkwNDNlM2ZmZGM2NzUzNjg0NjQxYTY4MjljNWYyZjcyZDUyZGE3NgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMmNkNWE2Li43OGEzMmY4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDE5IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgUmVtb3ZlIG1fYWJzb2x1dGVCb3VuZHMgaGFjayBmcm9tIFJlbmRlclNWR1RleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NTMyCisK
KyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzIChTVkdzIGluc2lkZSBDU1MgdHJhbnNmb3Jt
ZWQgSFRNTCBzaG91bGQgdGhlb3JldGljYWxseSByZXBhaW50IGJldHRlcikKKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R1RleHQ6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuaDoKKwor
MjAwOS0wNS0wMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgUmVtb3ZlIHRoZSB2ZXN0aWdpYWwg
Y2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0oKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU1ZHVGV4dC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcApp
bmRleCBmNzRhMmQzLi45ZTk4MDlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdUZXh0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcApA
QCAtNzMsOCArNzMsNyBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmxheW91dCgpCiAgICAgLy8gRklY
TUU6IFRoaXMgaXMgYSBoYWNrIHRvIGF2b2lkIHRoZSBSZW5kZXJCbG9jazo6bGF5b3V0KCkgcGFy
dGlhbCByZXBhaW50aW5nIGNvZGUgd2hpY2ggaXMgbm90ICh5ZXQpIFNWRyBhd2FyZQogICAgIHNl
dE5lZWRzTGF5b3V0KHRydWUpOwogCi0gICAgLy8gRklYTUU6IHVzaW5nIG1fYWJzb2x1dGVCb3Vu
ZHMgYnJlYWtzIGlmIGNvbnRhaW5lckZvclJlcGFpbnQoKSBpcyBub3QgdGhlIHJvb3QKLSAgICBM
YXlvdXRSZXBhaW50ZXIgcmVwYWludGVyKCp0aGlzLCBjaGVja0ZvclJlcGFpbnREdXJpbmdMYXlv
dXQoKSwgJm1fYWJzb2x1dGVCb3VuZHMpOworICAgIExheW91dFJlcGFpbnRlciByZXBhaW50ZXIo
KnRoaXMsIGNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgpKTsKIAogICAgIC8vIEJlc3QgZ3Vl
c3MgZm9yIGEgcmVsYXRpdmUgc3RhcnRpbmcgcG9pbnQKICAgICBTVkdUZXh0RWxlbWVudCogdGV4
dCA9IHN0YXRpY19jYXN0PFNWR1RleHRFbGVtZW50Kj4obm9kZSgpKTsKQEAgLTg2LDEwICs4NSw3
IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6bGF5b3V0KCkKIAogICAgIFJlbmRlckJsb2NrOjpsYXlv
dXQoKTsKIAotICAgIG1fYWJzb2x1dGVCb3VuZHMgPSBhYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1Jl
Y3QoKTsKLQogICAgIHJlcGFpbnRlci5yZXBhaW50QWZ0ZXJMYXlvdXQoKTsKLSAgICAgICAgCiAg
ICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTVkdUZXh0LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmgK
aW5kZXggMmQ4MDgwZi4uYzFmMTQzMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHVGV4dC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuaApAQCAt
NjgsNyArNjgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUm9vdElubGluZUJveCogY3JlYXRl
Um9vdEJveCgpOwogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9sb2NhbFRyYW5zZm9ybTsK
LSAgICBJbnRSZWN0IG1fYWJzb2x1dGVCb3VuZHM7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="15031"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29983</attachid>
            <date>2009-05-03 21:02:08 -0700</date>
            <delta_ts>2009-05-05 02:11:00 -0700</delta_ts>
            <desc>ASSERT(useTransforms) in SVG mapLocalToContainer implementations</desc>
            <filename>ASSERT-useTransforms-in-SVG-mapLocalToContainer-implementations.patch</filename>
            <type>text/plain</type>
            <size>3222</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZmRiMGQzODZlMjFhYTE3OThjM2JiM2Y5ZmMzY2IxNGY0ZmZlMDUyOApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OGEzMmY4Li5kODVjNmFj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDE4IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgQVNTRVJUKHVzZVRyYW5zZm9ybXMpIGluIFNWRyBtYXBMb2NhbFRvQ29udGFpbmVy
IGltcGxlbWVudGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU1MzIKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlbmRlckJhc2U6Om1hcExvY2FsVG9Db250YWluZXIpOgorCisyMDA5LTA1LTAzICBF
cmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKwogICAgICAgICBSZW1vdmUgbV9hYnNvbHV0ZUJvdW5kcyBoYWNrIGZyb20g
UmVuZGVyU1ZHVGV4dAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU1MzIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9v
dC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcAppbmRleCAyNTE2MDY1
Li41NjJkOTBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNw
cAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcApAQCAtMjcxLDEzICsy
NzEsMTAgQEAgdm9pZCBSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIKIHZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
Ym9vbCBmaXhlZCAsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9y
bVN0YXRlKSBjb25zdAogewogICAgIEFTU0VSVCghZml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2ZSBu
byBmaXhlZCBjb250ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCisgICAgQVNTRVJUKHVz
ZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJlc3BlY3Rp
bmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgogCi0gICAgLy8gRklYTUU6IElmIHdlIGRvbid0IHJl
c3BlY3QgdXNlVHJhbnNmb3JtcyB3ZSBicmVhayBTVkcgdGV4dCByZW5kZXJpbmcuCi0gICAgLy8g
U2VlbXMgUmVuZGVyU1ZHSW5saW5lVGV4dCBoYXMgc29tZSBvd24gYnJva2VuIHRyYW5zbGF0aW9u
IGhhY2tzIHdoaWNoIGRlcGVuZCB1c2VUcmFuc2Zvcm1zPWZhbHNlCi0gICAgLy8gVGhpcyBzaG91
bGQgaW5zdGVhZCBiZSBBU1NFUlQodXNlVHJhbnNmb3Jtcykgb25jZSB3ZSBmaXggUmVuZGVyU1ZH
SW5saW5lVGV4dAotICAgIGlmICh1c2VUcmFuc2Zvcm1zKQotICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5hcHBseVRyYW5zZm9ybShsb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtKCkpOwotCisgICAgLy8g
VHJhbnNmb3JtIHRvIG91ciBib3JkZXIgYm94IGFuZCBsZXQgUmVuZGVyQm94IHRyYW5zZm9ybSB0
aGUgcmVzdCBvZiB0aGUgd2F5LgorICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKGxv
Y2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm0oKSk7CiAgICAgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29u
dGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1T
dGF0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBv
cnQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggMWZm
NDhiYi4uOWI0ODFlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3Vw
cG9ydC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAg
LTY0LDEzICs2NCw4IEBAIHZvaWQgU1ZHUmVuZGVyQmFzZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50
KFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJCb3hNb2RlbE9iCiB2b2lkIFNWR1JlbmRlckJh
c2U6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRl
ckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkICwgYm9vbCB1c2VU
cmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpCiB7CiAgICAgQVNTRVJU
KCFmaXhlZCk7IC8vIFdlIHNob3VsZCBoYXZlIG5vIGZpeGVkIGNvbnRlbnQgaW4gdGhlIFNWRyBy
ZW5kZXJpbmcgdHJlZS4KLQotICAgIC8vIEZJWE1FOiBJZiB3ZSBkb24ndCByZXNwZWN0IHVzZVRy
YW5zZm9ybXMgd2UgYnJlYWsgU1ZHIHRleHQgcmVuZGVyaW5nLgotICAgIC8vIFNlZW1zIFJlbmRl
clNWR0lubGluZVRleHQgaGFzIHNvbWUgb3duIGJyb2tlbiB0cmFuc2xhdGlvbiBoYWNrcyB3aGlj
aCBkZXBlbmQgdXNlVHJhbnNmb3Jtcz1mYWxzZQotICAgIC8vIFRoaXMgc2hvdWxkIGluc3RlYWQg
YmUgQVNTRVJUKHVzZVRyYW5zZm9ybXMpIG9uY2Ugd2UgZml4IFJlbmRlclNWR0lubGluZVRleHQK
LSAgICBpZiAodXNlVHJhbnNmb3JtcykKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFu
c2Zvcm0ob2JqZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwotCisgICAgQVNTRVJUKHVz
ZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJlc3BlY3Rp
bmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgorICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNm
b3JtKG9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpKTsKICAgICBvYmplY3QtPnBhcmVu
dCgpLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFu
c2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CiB9CiAK
</data>
<flag name="review"
          id="15032"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>