<?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>23625</bug_id>
          
          <creation_ts>2009-01-29 12:00:31 -0800</creation_ts>
          <short_desc>Skia platform doesn&apos;t render text to a canvas or support clipping to an image buffer</short_desc>
          <delta_ts>2009-02-12 22:55:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Scott Violet">sky</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fishd</cc>
    
    <cc>krit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>107558</commentid>
    <comment_count>0</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-29 12:00:31 -0800</bug_when>
    <thetext>As shown by a number of layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107564</commentid>
    <comment_count>1</comment_count>
      <attachid>27155</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-01-29 12:50:22 -0800</bug_when>
    <thetext>Created attachment 27155
Fix for 23625

This patch helps Chromium pass a number of canvas related test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107567</commentid>
    <comment_count>2</comment_count>
      <attachid>27155</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-29 13:08:49 -0800</bug_when>
    <thetext>Comment on attachment 27155
Fix for 23625

WebKit style omits names for arguments in headers when the names do not provide additional clarity:

Like this:
+    void applyClipFromImage(const WebCore::FloatRect&amp; rect, const SkBitmap&amp; imageBuffer);

neither rect or imageBuffer should be in the definition.

Otherwise this looks fine.  One of us can fix those nits when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107616</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-01-29 16:24:08 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/40383</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108049</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-02-02 15:49:43 -0800</bug_when>
    <thetext>The end of clipToImageBuffer is not necessarily reached with the next restore. You can use combinations of save and restore between clipToImageBuffer and it&apos;s corresponding restore. SVG Masking uses different save/restores between clipToImageBuffer and the real restore.

At the moment we use clipToImageBuffer on three points. Filling/stroking texts with gradients or patterns on Canvas, clipping text on a background for CSS and SVG Masking. There is no implementation for SVG Masking on Skia, but there is a patch for making SVG Masking platform aware at https://bugs.webkit.org/show_bug.cgi?id=19243

And I don&apos;t know if it is possible to use clipToImageBuffer during a clipToImageBuffer. So it&apos;s maybe necessary to store more clipImages:

context-&gt;save();
context-&gt;clipToImageBuffer();

...
context-&gt;save();
context-&gt;clipToImageBuffer();
...
context-&gt;restore();
...

context-&gt;restore();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108063</commentid>
    <comment_count>5</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-02-02 16:50:58 -0800</bug_when>
    <thetext>Do you have a test case I can use?

I believe:

PlatformContextSkia::State::State(const State&amp; other)

Needs to reset the m_imageBufferClip to an empty bitmap. Then the scenario you mention should work fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108065</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-02-02 17:05:23 -0800</bug_when>
    <thetext>Well, just use the patch mentined above (for the save/restore&apos;s during the clipToImageBuffer call) and visit sites like:
http://svg.tutorial.aptico.de/grafik_svg/kap14_2.svg
http://www.w3.org/Graphics/SVG/Test/20061213/htmlObjectHarness/full-masking-mask-01-b.html

I&apos;don&apos;t have an example for the use of clipToImageBuffer during a clipToImageBuffer call.
Don&apos;t know if masking an object with an masked object in SVG could cause that situation, but maybe not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108068</commentid>
    <comment_count>7</comment_count>
      <attachid>27269</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-02-02 17:51:05 -0800</bug_when>
    <thetext>Created attachment 27269
masked mask

This is an example of an masked object as a mask. Don&apos;t know if webkit can handle it. Haven&apos;t tested it on Safari. But it seems to call clipToImageBuffer during the clipToImageBuffer call.
The SVG Masking patch from above is needed to test this on skia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108123</commentid>
    <comment_count>8</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-02-03 09:26:37 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=27269) [review]
&gt; masked mask

Can you attach a screenshot as to what this should look like?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108131</commentid>
    <comment_count>9</comment_count>
      <attachid>27281</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-02-03 11:21:43 -0800</bug_when>
    <thetext>Created attachment 27281
masked mask as tif

... on safari 3.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108205</commentid>
    <comment_count>10</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-02-03 16:52:06 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=27281) [review]
&gt; masked mask as tif
&gt; 
&gt; ... on safari 3.2
&gt; 

If I fix the bug in PlatformContextSkia when I run your test case I hit a divide by zero error in SkPMColorToColor in SkiaUtils.cpp. This is likely happening because getImageData doesn&apos;t fix up the alpha before extracting a value. I&apos;ll attach a patch shortly that fixes PlatformContextSkia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108208</commentid>
    <comment_count>11</comment_count>
      <attachid>27298</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-02-03 16:59:02 -0800</bug_when>
    <thetext>Created attachment 27298
Temporary patch to PlatfromContextSkia to avoid crash

This patch fixes a crash in PlatformContextSkia if beginLayerClippedToImage is called without a subsequent restore. This patch is finicky though, and don&apos;t consider it a final patch. It&apos;s only useful to see the the divide by zero I just mentioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108298</commentid>
    <comment_count>12</comment_count>
      <attachid>27319</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-02-04 10:40:54 -0800</bug_when>
    <thetext>Created attachment 27319
Fixes three bugs introduced in first patch

This fixes three bugs found in the first patch:

. When a new layer was started clipped to an image we used the
  assignment operator to copy the SkBitmap. If the SkBitmap owns it&apos;s
  pixels, this is not the right thing to do. Instead we need to create
  a copy of the image.
. State holds an SkBitmap by value. State&apos;s copy constructor does a
  memcpy. This is confusing and subtle, I&apos;ve converted to use a member
  initializer list which I think is clearer and less error prone.
. When creating a new layer there is no need to copy the clip image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108304</commentid>
    <comment_count>13</comment_count>
      <attachid>27319</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-02-04 11:20:34 -0800</bug_when>
    <thetext>Comment on attachment 27319
Fixes three bugs introduced in first patch

I don&apos;t think this is the patch you meant to attach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108305</commentid>
    <comment_count>14</comment_count>
      <attachid>27320</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-02-04 11:23:12 -0800</bug_when>
    <thetext>Created attachment 27320
Fixes three bugs introduced in first patch (the right patch this time)

Yes, you are absolutely right. Sorry about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108443</commentid>
    <comment_count>15</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-02-05 08:37:23 -0800</bug_when>
    <thetext>Eric, can you look at this again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108492</commentid>
    <comment_count>16</comment_count>
      <attachid>27320</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-02-05 13:03:49 -0800</bug_when>
    <thetext>Comment on attachment 27320
Fixes three bugs introduced in first patch (the right patch this time)

Looks sane enough.  Sad we&apos;re not using smart pointers here and have to do our own &quot;safeRef()&quot; calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108535</commentid>
    <comment_count>17</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-02-05 15:29:10 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/40689.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109627</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-02-12 22:55:10 -0800</bug_when>
    <thetext>*** Bug 23555 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27155</attachid>
            <date>2009-01-29 12:50:22 -0800</date>
            <delta_ts>2009-01-29 13:08:49 -0800</delta_ts>
            <desc>Fix for 23625</desc>
            <filename>23625.patch</filename>
            <type>text/plain</type>
            <size>11029</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDM2NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMDEtMjkgIFNjb3R0IFZpb2xldCAgPHNreUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBi
dWcgMjM2MjU6IFNraWEgcGxhdGZvcm0gZG9lc24ndCByZW5kZXIgdGV4dCB0byBhIGNhbnZhcyBv
ciBzdXBwb3J0IGNsaXBwaW5nIHRvIGFuIGltYWdlIGJ1ZmZlcgorCisgICAgICAgIEZpeGVzIHR3
byBidWdzIGluIFNraWEgcmVuZGVyaW5nIHRvIGEgY2FudmFzOgorICAgICAgICAuIFRleHQgd2Fz
IG5vdCByZW5kZXJlZCBhdCBhbGwuIFRoaXMgaXMgYmVjYXVzZSB3ZSBuZXZlciBwcm9wZXJseQor
ICAgICAgICAgIGZpeGVkIHVwIHRoZSBhbHBoYSB2YWx1ZXMuIFRoZSBmaXggaXMgdG8gY3JlYXRl
IGEgbGF5ZXIgd2hlbgorICAgICAgICAgIHJlbmRlcmluZyB0ZXh0IHRvIGEgbGF5ZXIuCisgICAg
ICAgIC4gV2Ugd2VyZSBub3QgaG9ub3JpbmcgY2xpcHBpbmcgdG8gYW4gaW1hZ2UgYnVmZmVyLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNvbnRleHRT
a2lhOjpQbGF0Zm9ybUNvbnRleHRTa2lhKToKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6
OnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6
OmlzRHJhd2luZ1RvSW1hZ2VCdWZmZXIpOgorICAgICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6
YmVnaW5MYXllckNsaXBwZWRUb0ltYWdlKToKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6
OnJlc3RvcmUpOgorICAgICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6YXBwbHlDbGlwRnJvbUlt
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNr
aWEuaDoKKwogMjAwOS0wMS0yOSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTW92ZSBkaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZCBpbnRvIFJlbmRlckxpbmVCb3hM
aXN0IHNvIHRoYXQgaXQgY2FuIGJlIHNoYXJlZCBieSBSZW5kZXJCbG9jayBhbmQgUmVuZGVySW5s
aW5lLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21p
dW1XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udENocm9taXVtV2luLmNwcAkocmV2aXNpb24gNDAzNjMpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdpbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3NCw2ICsxNzQsMTkgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogZwogewogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gZ3JhcGhpY3ND
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKIAorICAgIGJvb2wgY2FuVXNlR0RJID0gd2luZG93
c0NhbkhhbmRsZVRleHREcmF3aW5nKGdyYXBoaWNzQ29udGV4dCk7CisgICAgYm9vbCBjcmVhdGVk
TGF5ZXIgPSBmYWxzZTsKKworICAgIGlmIChjYW5Vc2VHREkgJiYgY29udGV4dC0+aXNEcmF3aW5n
VG9JbWFnZUJ1ZmZlcigpKSB7CisgICAgICAgIC8vIFdlJ3JlIGRyYXdpbmcgdG8gYW4gaW1hZ2Ug
YnVmZmVyIGFuZCBhYm91dCB0byByZW5kZXIgdGV4dCB3aXRoIEdESS4KKyAgICAgICAgLy8gV2Ug
bmVlZCB0byBzdGFydCBhIGxheWVyIGhlcmUsIG90aGVyd2lzZSB0aGUgYWxwaGEgdmFsdWVzIHJl
bmRlcmVkCisgICAgICAgIC8vIGJ5IEdESSBhcmUgbmV2ZXIgY29ycmVjdGx5IHVwZGF0ZWQuCisg
ICAgICAgIC8vIE5PVEU6IHRoaXMgZG9lc24ndCBoYW5kbGUgY2xlYXIgdHlwZSB3ZWxsIGFuZCBz
aG91bGQgYmUgcmVtb3ZlZCB3aGVuCisgICAgICAgIC8vIHdlIGhhdmUgYmV0dGVyIHRleHQgaGFu
ZGxpbmcgY29kZS4KKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxh
eWVyKDEuMCk7CisgICAgICAgIGNyZWF0ZWRMYXllciA9IHRydWU7CisgICAgfQorCiAgICAgLy8g
TWF4IGJ1ZmZlciBsZW5ndGggcGFzc2VkIHRvIHRoZSB1bmRlcmx5aW5nIHdpbmRvd3MgQVBJLgog
ICAgIGNvbnN0IGludCBrTWF4QnVmZmVyTGVuZ3RoID0gMTAyNDsKICAgICAvLyBEZWZhdWx0IHNp
emUgZm9yIHRoZSBidWZmZXIuIEl0IHNob3VsZCBiZSBlbm91Z2ggZm9yIG1vc3Qgb2YgY2FzZXMu
CkBAIC0yMDUsOCArMjE4LDYgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogZwogICAgIGludCB4ID0gc3RhdGljX2Nhc3Q8aW50Pihwb2ludC54KCkpOwogICAgIGludCBs
aW5lVG9wID0gc3RhdGljX2Nhc3Q8aW50Pihwb2ludC55KCkpIC0gZm9udC0+YXNjZW50KCk7CiAK
LSAgICBib29sIGNhblVzZUdESSA9IHdpbmRvd3NDYW5IYW5kbGVUZXh0RHJhd2luZyhncmFwaGlj
c0NvbnRleHQpOwotCiAgICAgLy8gV2UgZHJhdyB0aGUgZ2x5cGhzIGluIGNodW5rcyB0byBhdm9p
ZCBoYXZpbmcgdG8gZG8gYSBoZWFwIGFsbG9jYXRpb24gZm9yCiAgICAgLy8gdGhlIGFycmF5cyBv
ZiBjaGFyYWN0ZXJzIGFuZCBhZHZhbmNlcy4gU2luY2UgRXh0VGV4dE91dCBpcyB0aGUKICAgICAv
LyBsb3dlc3QtbGV2ZWwgdGV4dCBvdXRwdXQgZnVuY3Rpb24gb24gV2luZG93cywgdGhlcmUgc2hv
dWxkIGJlIGxpdHRsZQpAQCAtMjUyLDYgKzI2Myw4IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhH
cmFwaGljc0NvbnRleHQqIGcKICAgICB9CiAKICAgICBTZWxlY3RPYmplY3QoaGRjLCBvbGRGb250
KTsKKyAgICBpZiAoY3JlYXRlZExheWVyKQorICAgICAgICBncmFwaGljc0NvbnRleHQtPmVuZFRy
YW5zcGFyZW5jeUxheWVyKCk7CiAgICAgY29udGV4dC0+Y2FudmFzKCktPmVuZFBsYXRmb3JtUGFp
bnQoKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNz
Q29udGV4dFNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcAkocmV2aXNpb24gNDAzNjMpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIu
aCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKQEAgLTQxOCw4ICs0MTksOSBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIoCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgbmVlZGVkIGZvciBp
bWFnZSBtYXNraW5nIGFuZCBjb21wbGV4IHRleHQgZmlsbHMuCi0gICAgbm90SW1wbGVtZW50ZWQo
KTsKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgUExBVEZPUk0oV0lOX09TKQorICAgIHBsYXRm
b3JtQ29udGV4dCgpLT5iZWdpbkxheWVyQ2xpcHBlZFRvSW1hZ2UocmVjdCwgaW1hZ2VCdWZmZXIp
OworI2VuZGlmCiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpjb25jYXRDVE0oY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHhmb3JtKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAJKHJldmlzaW9uIDQwMzYzKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYzLDYgKzYzLDkgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0
IEludFNpemUmIAogCiAgICAgbV9kYXRhLm1fcGxhdGZvcm1Db250ZXh0LnNldENhbnZhcygmbV9k
YXRhLm1fY2FudmFzKTsKICAgICBtX2NvbnRleHQuc2V0KG5ldyBHcmFwaGljc0NvbnRleHQoJm1f
ZGF0YS5tX3BsYXRmb3JtQ29udGV4dCkpOworI2lmIFBMQVRGT1JNKFdJTl9PUykKKyAgICBtX2Nv
bnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcih0cnVlKTsK
KyNlbmRpZgogCiAgICAgLy8gTWFrZSB0aGUgYmFja2dyb3VuZCB0cmFuc3BhcmVudC4gSXQgd291
bGQgYmUgbmljZSBpZiB0aGlzIHdhc24ndAogICAgIC8vIHJlcXVpcmVkLCBidXQgdGhlIGNhbnZh
cyBpcyBjdXJyZW50bHkgZmlsbGVkIHdpdGggdGhlIG1hZ2ljIHRyYW5zcGFyZW5jeQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRl
eHRTa2lhLmNwcAkocmV2aXNpb24gNDAzNjMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgogI2luY2x1ZGUgIlNraWFVdGlscy5o
IgpAQCAtODYsNiArODcsMTMgQEAgc3RydWN0IFBsYXRmb3JtQ29udGV4dFNraWE6OlN0YXRlIHsK
ICAgICAvLyBjb2xvciB0byBwcm9kdWNlIGEgbmV3IG91dHB1dCBjb2xvci4KICAgICBTa0NvbG9y
IGFwcGx5QWxwaGEoU2tDb2xvcikgY29uc3Q7CiAKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwg
UExBVEZPUk0oV0lOX09TKQorICAgIC8vIElmIG5vbi1lbXB0eSwgdGhlIGN1cnJlbnQgU3RhdGUg
aXMgY2xpcHBlZCB0byB0aGlzIGltYWdlLgorICAgIFNrQml0bWFwIG1faW1hZ2VCdWZmZXJDbGlw
OworICAgIC8vIElmIG1faW1hZ2VCdWZmZXJDbGlwIGlzIG5vbi1lbXB0eSwgdGhpcyBpcyB0aGUg
cmVnaW9uIHRoZSBpbWFnZSBpcyBjbGlwcGVkIHRvLgorICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBt
X2NsaXA7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICAvLyBOb3Qgc3VwcG9ydGVkLgogICAgIHZv
aWQgb3BlcmF0b3I9KGNvbnN0IFN0YXRlJik7CkBAIC0xNDgsNiArMTU2LDkgQEAgU2tDb2xvciBQ
bGF0Zm9ybUNvbnRleHRTa2lhOjpTdGF0ZTo6YXBwbAogUGxhdGZvcm1Db250ZXh0U2tpYTo6UGxh
dGZvcm1Db250ZXh0U2tpYShza2lhOjpQbGF0Zm9ybUNhbnZhcyogY2FudmFzKQogICAgIDogbV9j
YW52YXMoY2FudmFzKQogICAgICwgbV9zdGF0ZVN0YWNrKHNpemVvZihTdGF0ZSkpCisjaWYgUExB
VEZPUk0oV0lOX09TKQorICAgICwgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlcihmYWxzZSkKKyNlbmRp
ZgogewogICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoU3RhdGUoKSk7CiAgICAgbV9zdGF0ZSA9ICZt
X3N0YXRlU3RhY2subGFzdCgpOwpAQCAtMTcxLDYgKzE4MiwxOCBAQCB2b2lkIFBsYXRmb3JtQ29u
dGV4dFNraWE6OnNldENhbnZhcyhza2lhCiAgICAgbV9jYW52YXMgPSBjYW52YXM7CiB9CiAKKyNp
ZiBQTEFURk9STShXSU5fT1MpCit2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OnNldERyYXdpbmdU
b0ltYWdlQnVmZmVyKGJvb2wgdmFsdWUpCit7CisgICAgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlciA9
IHZhbHVlOworfQorCitib29sIFBsYXRmb3JtQ29udGV4dFNraWE6OmlzRHJhd2luZ1RvSW1hZ2VC
dWZmZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2RyYXdpbmdUb0ltYWdlQnVmZmVyOworfQor
I2VuZGlmCisKIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6c2F2ZSgpCiB7CiAgICAgbV9zdGF0
ZVN0YWNrLmFwcGVuZCgqbV9zdGF0ZSk7CkBAIC0xODAsOCArMjAzLDMyIEBAIHZvaWQgUGxhdGZv
cm1Db250ZXh0U2tpYTo6c2F2ZSgpCiAgICAgY2FudmFzKCktPnNhdmUoKTsKIH0KIAorI2lmIGRl
ZmluZWQoX19saW51eF9fKSB8fCBQTEFURk9STShXSU5fT1MpCit2b2lkIFBsYXRmb3JtQ29udGV4
dFNraWE6OmJlZ2luTGF5ZXJDbGlwcGVkVG9JbWFnZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCit7CisgICAgLy8gU2tp
YSBkb2Vzbid0IHN1cHBvcnQgY2xpcHBpbmcgdG8gYW4gaW1hZ2UsIHNvIHdlIGNyZWF0ZSBhIGxh
eWVyLiBUaGUgbmV4dAorICAgIC8vIHRpbWUgcmVzdG9yZSBpcyBpbnZva2VkIHRoZSBsYXllciBh
bmQgfGltYWdlQnVmZmVyfCBhcmUgY29tYmluZWQgdG8KKyAgICAvLyBjcmVhdGUgdGhlIHJlc3Vs
dGluZyBpbWFnZS4KKyAgICBtX3N0YXRlLT5tX2NsaXAgPSByZWN0OworICAgIFNrUmVjdCBib3Vu
ZHMgPSB7IFNrRmxvYXRUb1NjYWxhcihyZWN0LngoKSksIFNrRmxvYXRUb1NjYWxhcihyZWN0Lnko
KSksCisgICAgICAgICAgICAgICAgICAgICAgU2tGbG9hdFRvU2NhbGFyKHJlY3QucmlnaHQoKSks
IFNrRmxvYXRUb1NjYWxhcihyZWN0LmJvdHRvbSgpKSB9OworICAgICAgICAgICAgICAgICAgICAg
IAorICAgIGNhbnZhcygpLT5zYXZlTGF5ZXJBbHBoYSgmYm91bmRzLCAyNTUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFNrQ2FudmFzOjpTYXZlRmxhZ3M+KFNrQ2Fu
dmFzOjprSGFzQWxwaGFMYXllcl9TYXZlRmxhZyB8IFNrQ2FudmFzOjprRnVsbENvbG9yTGF5ZXJf
U2F2ZUZsYWcpKTsKKyAgICAvLyBDb3B5IG9mZiB0aGUgaW1hZ2UgYXMgfGltYWdlQnVmZmVyfCBt
YXkgYmUgZGVsZXRlZCBiZWZvcmUgcmVzdG9yZSBpcyBpbnZva2VkLgorICAgIG1fc3RhdGUtPm1f
aW1hZ2VCdWZmZXJDbGlwID0gKihpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLT5wbGF0Zm9ybUNvbnRl
eHQoKS0+Yml0bWFwKCkpOworfQorI2VuZGlmCiB2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OnJl
c3RvcmUoKQogeworI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBQTEFURk9STShXSU5fT1MpCisg
ICAgaWYgKCFtX3N0YXRlLT5tX2ltYWdlQnVmZmVyQ2xpcC5lbXB0eSgpKSB7CisgICAgICAgIGFw
cGx5Q2xpcEZyb21JbWFnZShtX3N0YXRlLT5tX2NsaXAsIG1fc3RhdGUtPm1faW1hZ2VCdWZmZXJD
bGlwKTsKKyAgICAgICAgY2FudmFzKCktPnJlc3RvcmUoKTsKKyAgICB9CisjZW5kaWYKKwogICAg
IG1fc3RhdGVTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgbV9zdGF0ZSA9ICZtX3N0YXRlU3RhY2su
bGFzdCgpOwogCkBAIC00MjUsMyArNDcyLDE0IEBAIGJvb2wgUGxhdGZvcm1Db250ZXh0U2tpYTo6
aXNQcmludGluZygpCiB7CiAgICAgcmV0dXJuIG1fY2FudmFzLT5nZXRUb3BQbGF0Zm9ybURldmlj
ZSgpLklzVmVjdG9yaWFsKCk7CiB9CisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgUExBVEZP
Uk0oV0lOX09TKQordm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjphcHBseUNsaXBGcm9tSW1hZ2Uo
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0LCBjb25zdCBTa0JpdG1hcCYgaW1hZ2VCdWZm
ZXIpCit7CisgICAgLy8gTk9URTogdGhpcyBhc3N1bWVzIHRoZSBpbWFnZSBtYXNrIGNvbnRhaW5z
IG9wYXF1ZSBibGFjayBmb3IgdGhlIHBvcnRpb25zIHRoYXQgYXJlIHRvIGJlIHNob3duLCBhcyBz
dWNoIHdlCisgICAgLy8gb25seSBsb29rIGF0IHRoZSBhbHBoYSB3aGVuIGNvbXBvc2l0aW5nLiBJ
J20gbm90IDEwMCUgc3VyZSB0aGlzIGlzIHdoYXQgV2ViS2l0IGV4cGVjdHMgZm9yIGltYWdlIGNs
aXBwaW5nLgorICAgIFNrUGFpbnQgcGFpbnQ7CisgICAgcGFpbnQuc2V0UG9ydGVyRHVmZlhmZXJt
b2RlKFNrUG9ydGVyRHVmZjo6a0RzdEluX01vZGUpOworICAgIG1fY2FudmFzLT5kcmF3Qml0bWFw
KGltYWdlQnVmZmVyLCBTa0Zsb2F0VG9TY2FsYXIocmVjdC54KCkpLCBTa0Zsb2F0VG9TY2FsYXIo
cmVjdC55KCkpLCAmcGFpbnQpOworfQorI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmgJKHJldmlzaW9uIDQw
MzYzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNr
aWEuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsOSArNzMsMjggQEAgcHVibGljOgogICAgIC8vIHRv
IHRoZSBjb25zdHJ1Y3Rvci4KICAgICB2b2lkIHNldENhbnZhcyhza2lhOjpQbGF0Zm9ybUNhbnZh
cyopOwogCisjaWYgUExBVEZPUk0oV0lOX09TKQorICAgIC8vIElmIGZhbHNlIHdlJ3JlIHJlbmRl
cmluZyB0byBhIEdyYXBoaWNzQ29udGV4dCBmb3IgYSB3ZWIgcGFnZSwgaWYgZmFsc2UKKyAgICAv
LyB3ZSdyZSBub3QgKGFzIGlzIHRoZSBjYXNlIHdoZW4gcmVuZGVyaW5nIHRvIGEgY2FudmFzIG9i
amVjdCkuCisgICAgLy8gSWYgdGhpcyBpcyB0cnVlIHRoZSBjb250ZW50cyBoYXZlIG5vdCBiZWVu
IG1hcmtlZCB1cCB3aXRoIHRoZSBtYWdpYworICAgIC8vIGNvbG9yIGFuZCBhbGwgdGV4dCBkcmF3
aW5nIG5lZWRzIHRvIGdvIHRvIGEgbGF5ZXIgc28gdGhhdCB0aGUgYWxwaGEgaXMKKyAgICAvLyBj
b3JyZWN0bHkgdXBkYXRlZC4KKyAgICB2b2lkIHNldERyYXdpbmdUb0ltYWdlQnVmZmVyKGJvb2wg
dmFsdWUpOworICAgIGJvb2wgaXNEcmF3aW5nVG9JbWFnZUJ1ZmZlcigpIGNvbnN0OworI2VuZGlm
CisKICAgICB2b2lkIHNhdmUoKTsKICAgICB2b2lkIHJlc3RvcmUoKTsKIAorICAgIC8vIEJlZ2lu
cyBhIGxheWVyIHRoYXQgaXMgY2xpcHBlZCB0byB0aGUgaW1hZ2UgfGltYWdlQnVmZmVyfCBhdCB0
aGUgbG9jYXRpb24KKyAgICAvLyB8cmVjdHwuIFRoaXMgbGF5ZXIgaXMgaW1wbGljaXRseSByZXN0
b3JlZCB3aGVuIHRoZSBuZXh0IHJlc3RvcmUgaXMKKyAgICAvLyBpbnZva2VkLgorICAgIC8vIE5P
VEU6IHxpbWFnZUJ1ZmZlcnwgbWF5IGJlIGRlbGV0ZWQgYmVmb3JlIHRoZSB8cmVzdG9yZXwgaXMg
aW52b2tlZC4KKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgUExBVEZPUk0oV0lOX09TKQorICAg
IHZvaWQgYmVnaW5MYXllckNsaXBwZWRUb0ltYWdlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
cmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJDb3JlOjpJ
bWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpOworI2VuZGlmCisKICAgICAvLyBTZXRzIHVwIHRoZSBj
b21tb24gZmxhZ3Mgb24gYSBwYWludCBmb3IgYW50aWFsaWFzaW5nLCBlZmZlY3RzLCBldGMuCiAg
ICAgLy8gVGhpcyBpcyBpbXBsaWNpdGx5IGNhbGxlZCBieSBzZXR1cFBhaW50RmlsbCBhbmQgc2V0
dXBQYWludFN0cm9rZSwgYnV0CiAgICAgLy8geW91IG1heSB3aXNoIHRvIGNhbGwgaXQgZGlyZWN0
bHkgc29tZXRpbWVzIGlmIHlvdSBkb24ndCB3YW50IHRoYXQgb3RoZXIKQEAgLTE0OCw2ICsxNjcs
MTIgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6CisjaWYgZGVmaW5lZChfX2xpbnV4X18p
IHx8IFBMQVRGT1JNKFdJTl9PUykKKyAgICAvLyBVc2VkIHdoZW4gcmVzdG9yaW5nIGFuZCB0aGUg
c3RhdGUgaGFzIGFuIGltYWdlIGNsaXAuIE9ubHkgc2hvd3MgdGhlIHBpeGVscyBpbgorICAgIC8v
IG1fY2FudmFzIHRoYXQgYXJlIGFsc28gaW4gaW1hZ2VCdWZmZXIuCisgICAgdm9pZCBhcHBseUNs
aXBGcm9tSW1hZ2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0LCBjb25zdCBTa0JpdG1h
cCYgaW1hZ2VCdWZmZXIpOworI2VuZGlmCisKICAgICAvLyBEZWZpbmVzIGRyYXdpbmcgc3R5bGUu
CiAgICAgc3RydWN0IFN0YXRlOwogCkBAIC0xNjgsNiArMTkzLDEwIEBAIHByaXZhdGU6CiAgICAg
Ly8gQSBwb2ludGVyIHRvIGEgR0RLIERyYXdhYmxlIHdyYXBwaW5nIG9mIHRoaXMgU2tpYSBjYW52
YXMKICAgICBHZGtTa2lhKiBtX2dka3NraWE7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdJTl9P
UykKKyAgICBib29sIG1fZHJhd2luZ1RvSW1hZ2VCdWZmZXI7CisjZW5kaWYKIH07CiAKICNlbmRp
ZiAgLy8gUGxhdGZvcm1Db250ZXh0U2tpYV9oCg==
</data>
<flag name="review"
          id="13055"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27269</attachid>
            <date>2009-02-02 17:51:05 -0800</date>
            <delta_ts>2009-02-02 17:51:05 -0800</delta_ts>
            <desc>masked mask</desc>
            <filename>mask.svg</filename>
            <type>image/svg+xml</type>
            <size>1692</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgc3RhbmRhbG9uZT0ibm8i
Pz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAyMDAxMDkwNC8vRU4iCiAg
Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRk
Ij4KPHN2ZyB3aWR0aD0iMzYwcHgiIGhlaWdodD0iNTEwcHgiCiAgICAgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
bGluayI+CiAgPHRpdGxlPkRhcyBtYXNrLUVsZW1lbnQ8L3RpdGxlPgogIDxkZXNjPgogICAgRGll
c2VzIEJlaXNwaWVsIGbDvHIgTWFza2luZyBiZWluaGFsdGV0IDIgTWFza2VuCiAgICBtaXQgc2Vt
aS10cmFuc3BhcmVudGVuIEbDvGxsdW5nZW4uCiAgPC9kZXNjPgogIDxkZWZzPgogICAgPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KICAgIDwhW0NEQVRBWwogICAgICB0ZXh0IHtmb250LWZhbWlseTpW
ZXJkYW5hLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTozNnB4OwogICAgICAgICAgICBmb250LXdlaWdo
dDpib2xkOyBmaWxsOndoaXRlO30KICAgICAgcmVjdCB7ZmlsbDpub25lOyBzdHJva2U6d2hpdGU7
IHN0cm9rZS1kYXNoYXJyYXk6NSwyO30KICAgIF1dPgogICAgPC9zdHlsZT4KCjwhLS0gVmVybGF1
ZiBmw7xyIE1hc2tlIG0xIC0tPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJ2ZXJsYXVmIgogICAg
ICB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMCI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3Rv
cC1jb2xvcj0id2hpdGUiIC8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjgiIHN0b3AtY29sb3I9ImJs
YWNrIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KPCEtLSBXZWljaHplaWNobnVuZ3NmaWx0ZXIg
ZsO8ciBNYXNrZSBtMiAtLT4KICAgIDxmaWx0ZXIgaWQ9ImZpbHRlciIgeD0iLS4zIiB5PSItLjMi
IHdpZHRoPSIxLjYiIGhlaWdodD0iMS42Ij4KICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlh
dGlvbj0iMTUiIC8+CiAgICA8L2ZpbHRlcj4KCjwhLS0gendlaSBNYXNrZW46IG0xIHVuZCBtMiAt
LT4KICAgIDxtYXNrIGlkPSJtMSI+CiAgICAgIDxnIGZpbGw9InVybCgjdmVybGF1ZikiIG1hc2s9
InVybCgjbTIpIj4KICAgICAgICA8Y2lyY2xlIGN4PSI4MCIgY3k9IjExMCIgcj0iNTAiIC8+CiAg
ICAgICAgPGNpcmNsZSBjeD0iMTgwIiBjeT0iMTMwIiByPSI4MCIgLz4KICAgICAgICA8Y2lyY2xl
IGN4PSIyODAiIGN5PSIxNTAiIHI9IjUwIiAvPgogICAgICA8L2c+CiAgICA8L21hc2s+CiAgICA8
bWFzayBpZD0ibTIiPgogICAgICA8Y2lyY2xlIGN4PSIxODAiIGN5PSIxMzAiIHI9IjkwIgogICAg
ICAgIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgPC9tYXNrPgogIDwvZGVmcz4KCjwhLS0gc2No
d2FyemVyIEhpbnRlcmdydW5kIC0tPgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIzNjAiIGhl
aWdodD0iNTEwIgogICAgc3R5bGU9ImZpbGw6YmxhY2s7IHN0cm9rZTpub25lOyIgLz4KCjwhLS0g
ZGllIE1hc2tlbiB3ZXJkZW4gdm9uIHp3ZWkgaW1hZ2UtRWxlbWVudGVuIHJlZmVyZW56aWVydCAt
LT4KICA8cmVjdCB4PSIyMCIgeT0iMTAiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIiBzdHlsZT0i
ZmlsbDp3aGl0ZTsiIG1hc2s9InVybCgjbTEpIi8+Cjwvc3ZnPgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27281</attachid>
            <date>2009-02-03 11:21:43 -0800</date>
            <delta_ts>2009-02-03 11:21:43 -0800</delta_ts>
            <desc>masked mask as tif</desc>
            <filename>mask.tiff</filename>
            <type>image/tiff</type>
            <size>19450</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">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
SmVSuWS2XS+YTGZTOaTWbTeEP+dQaCTifT+gUGhUOiUWjUekUmlUumU2nU+oVGpRKdT2B1OsVmtV
uuV2vV+wWGxWOyWWzWeFVWeWi2W23W+4XG5XO6XW7Xe8S21QWrXm/X/AYHBYPCYXDYfEV691fE43
HY/IZHJZPKZXLU7FgC+5fOZ3PZ/QaHRaPSWLM5vS6nVavWa3Xa/YaDT7HabXbbfcbndbuhbPeb/g
cHhcPicXV77jcnlcvmc3nc+s8jodPqdXrdfsdmH9Ltd3vd/weHxaLuePzef0en1evTTu+ez4fH5f
P6fW9e7Gfb9fv+f3/Po8r/wFAcCQLAzgwDA8FQXBkGwcyMEwfCUJwpCsLPavrUQvDcOQ7D0PpvCM
QRHEkSxNE6IRFFEVxZFsXQfFUXxlGcaRq9cYxtHMdR3HjlxxHsgSDIUhuO/DNSJJEkyVJbOR/Jkn
yhKMpLPJ0pytK8sSypMqy1LsvS/MCVS5MMyTLM0zxTI0NTRNk2zdN0xzfOU5zpJE4zrPE8z1F07z
3P0/0BC0+0DQlC0M/9B0PRVF0Y9FE0bSFI0k6dH0nS1L0w3lK0zTlO081NN0/UVR1JCE1VLVFU1U
z9Q1XV1X1gs1W1jWla1sqNZ1vXVd14oFc17YFg2FMVT2HY1j2RENi2TZlm2ck1f2faVp2PaNqWvb
Fb2tbNuW7VNt29cNxUzcFx3Nc9F3LdF13ZPd1XbeF4zbd95Xre0vXpe99X3KF835f+ASDf2A4Jgs
Z4Hg2E4VEuEYXh2H0FZeIYnikhYbiuMYy/uL41juPPhjmP5Fkbw5DkmT5Q6uTZTlmWuTleXZjmTd
5hmebZu1+a5xneePJiWe6BoNKZ/oWi6M4udaPpWlr/pOmafqC46dqOqaqsmp6trOtK1rGt69r6ma
7sGx7I3uibLtG0rnsW1bbt1iQzt+5bnq+z7pu+8Khtm875vqHb3v3A8Ege7cHw3DpfwHEcXt/FcZ
x+0cdyHJ6/yXKcvq3LcxzenrUgKAACBP+BQWDQeEQmFQuGQ2HQ+IRGJROKRWLReMRmNRuOR2PR+Q
SGRSOSSWTSeUSmVSuWS2XS+YTGZTOaTWbTeEP+dQaCTifT+gUGhUOiUWjUekUmlUumU2nU+oVGpR
KdT2B1OsVmtVuuV2vV+wWGxWOyWWzWeFVWeWi2W23W+4XG5XO6XW7Xe8S21QWrXm/X/AYHBYPCYX
DYfEV691fE43HY/IZHJZPKZXLU7FgC+5fOZ3PZ/QaHRaPSWLM5vS6nVavWa3Xa/YaDT7HabXbbfc
bndbuhbPeb/gcHhcPicXV77jcnlcvmc3nc+s8jodPqdXrdfsdmH9Ltd3vd/weHxaLuePzef0en1e
vTTu+ez4fH5fP6fW9e7Gfb9fv+f3/Po8r/wFAcCQLAzgwDA8FQXBkGwcyMEwfCUJwpCsLPavrUQv
DcOQ7D0PpvCMQRHEkSxNE6IRFFEVxZFsXQfFUXxlGcaRq9cYxtHMdR3HjlxxHsgSDIUhuO/DNSJJ
EkyVJbOR/JknyhKMpLPJ0pytK8sSypMqy1LsvS/MCVS5MMyTLM0zxTI0NTRNk2zdN0xzfOU5zpJE
4zrPE8z1F07z3P0/0BC0+0DQlC0M/9B0PRVF0Y9FE0bSFI0k6dH0nS1L0w3lK0zTlO081NN0/UVR
1JCE1VLVFU1Uz9Q1XV1X1gs1W1jWla1sqNZ1vXVd14oFc17YFg2FMVT2HY1j2RENi2TZlm2ck1f2
faVp2PaNqWvbFb2tbNuW7VNt29cNxUzcFx3Nc9F3LdF13ZPd1XbeF4zbd95Xre0vXpe99X3KF835
f+ASDf2A4JgsZ4Hg2E4VEuEYXh2H0FZeIYnikhYbiuMYy/uL41juPPhjmP5Fkbw5DkmT5Q6uTZTl
mWuTleXZjmTd5hmebZu1+a5xneePJiWe6BoNKZ/oWi6M4udaPpWlr/pOmafqC46dqOqaqsmp6trO
tK1rGt69r6ma7sGx7I3uibLtG0rnsW1bbt1iQzt+5bnq+z7pu+8Khtm875vqHb3v3A8Ege7cHw3D
pfwHEcXt/FcZx+0cdyHJ6/yXKcvq3LcxzenrUgKAACBP+BQWDQeEQmFQuGQ2HQ+IRGJROKRWLReM
RmNRuOR2PR+QSGRSOSSWTSeUSmVSuWS2XS+YTGZTOaTWbTeEP+dQaCTifT+gUGhUOiUWjUekUmlU
umU2nU+oVGpRKdT2B1OsVmtVuuV2vV+wWGxWOyWWzWeFVWeWi2W23W+4XG5XO6XW7Xe8S21QWrXm
/X/AYHBYPCYXDYfEV691fE43HY/IZHJZPKZXLU7FgC+5fOZ3PZ/QaHRaPSWLM5vS6nVavWa3Xa/Y
aDT7HabXbbfcbndbuhbPeb/gcHhcPicXV77jcnlcvmc3nc+s8jodPqdXrdfsdmH9Ltd3vd/weHxa
LuePzef0en1evTTu+ez4fH5fP6fW9e7Gfb9fv+f3/Po8r/wFAcCQLAzgwDA8FQXBkGwcyMEwfCUJ
wpCsLPavrUQvDcOQ7D0PpvCMQRHEkSxNE6IRFFEVxZFsXQfFUXxlGcaRq9cYxtHMdR3HjlxxHsgS
DIUhuO/DNSJJEkyVJbOR/JknyhKMpLPJ0pytK8sSypMqy1LsvS/MCVS5MMyTLM0zxTI0NTRNk2zd
N0xzfOU5zpJE4zrPE8z1F07z3P0/0BC0+0DQlC0M/9B0PRVF0Y9FE0bSFI0k6dH0nS1L0w3lK0zT
lO081NN0/UVR1JCE1VLVFU1Uz9Q1XV1X1gs1W1jWla1sqNZ1vXVd14oFc17YFg2FMVT2HY1j2REN
i2TZlm2ck1f2faVp2PaNqWvbFb2tbNuW7VNt29cNxUzcFx3Nc9F3LdF13ZPd1XbeF4zbd95Xre0v
Xpe99X3KF835f+ASDf2A4JgsZ4Hg2E4VEuEYXh2H0FZeIYnikhYbiuMYy/uL41juPPhjmP5Fkbwr
Uqs15JlOVQdk+V5dl8GoCAAADwEAAAMAAAABAWkAAAEBAAMAAAABAf8AAAECAAMAAAAEAABGCgED
AAMAAAABAAUAAAEGAAMAAAABAAIAAAERAAQAAAAGAABGEgESAAMAAAABAAEAAAEVAAMAAAABAAQA
AAEWAAMAAAABAFkAAAEXAAQAAAAGAABGKgEcAAMAAAABAAEAAAE9AAMAAAABAAIAAAFSAAMAAAAB
AAEAAAFTAAMAAAAEAABGQodzAAcAAAWwAABGSgAAAAAACAAIAAgACAAAAAgAAAMvAAAoxwAAPGIA
AD+JAABCsAAAAycAACWYAAATmwAAAycAAAMnAAACnwABAAEAAQABAAAFsGFwcGwCIAAAbW50clJH
QiBYWVogB9IABQANAAwAAAAAYWNzcEFQUEwAAAAAYXBwbAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEA
AAAA0y1hcHBsS1ZP0uM2Ga2OskvYGL1VAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN
clhZWgAAASAAAAAUZ1hZWgAAATQAAAAUYlhZWgAAAUgAAAAUd3RwdAAAAVwAAAAUY2hhZAAAAXAA
AAAsclRSQwAAAZwAAAAOZ1RSQwAAAZwAAAAOYlRSQwAAAZwAAAAOZGVzYwAABUAAAABvY3BydAAA
AhQAAAA4dmNndAAAAawAAAAwbmRpbgAAAdwAAAA4ZHNjbQAAAkwAAALyWFlaIAAAAAAAAHRLAAA+
HQAAA8tYWVogAAAAAAAAWnMAAKymAAAXJlhZWiAAAAAAAAAoGAAAFVcAALgzWFlaIAAAAAAAAPNS
AAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYA
AAAAAAAAAQHNAAB2Y2d0AAAAAAAAAAEAALhSAAAAAAABAAAAALhSAAAAAAABAAAAALhSAAAAAAAB
AABuZGluAAAAAAAAADgAAKFIAABXCgAAS4UAAJrhAAAnrgAAE7YAAFANAABUOQACgAAAAoAAAAKA
AHRleHQAAAAAQ29weXJpZ2h0IDIwMDcgQXBwbGUgSW5jLiwgYWxsIHJpZ2h0cyByZXNlcnZlZC4A
bWx1YwAAAAAAAAARAAAADGVuVVMAAAAmAAACfmVzRVMAAAAmAAABgmRhREsAAAAuAAAB6mRlREUA
AAAsAAABqGZpRkkAAAAoAAAA3GZyRlUAAAAoAAABKml0SVQAAAAoAAACVm5sTkwAAAAoAAACGG5i
Tk8AAAAmAAABBHB0QlIAAAAmAAABgnN2U0UAAAAmAAABBGphSlAAAAAaAAABUmtvS1IAAAAWAAAC
QHpoVFcAAAAWAAABbHpoQ04AAAAWAAAB1HJ1UlUAAAAiAAACpHBsUEwAAAAsAAACxgBZAGwAZQBp
AG4AZQBuACAAUgBHAEIALQBwAHIAbwBmAGkAaQBsAGkARwBlAG4AZQByAGkAcwBrACAAUgBHAEIA
LQBwAHIAbwBmAGkAbABQAHIAbwBmAGkAbAAgAEcA6QBuAOkAcgBpAHEAdQBlACAAUgBWAEJOAIIs
ACAAUgBHAEIAIDDXMO0w1TChMKQw65AadSgAIABSAEcAQgAggnJfaWPPj/AAUABlAHIAZgBpAGwA
IABSAEcAQgAgAEcAZQBuAOkAcgBpAGMAbwBBAGwAbABnAGUAbQBlAGkAbgBlAHMAIABSAEcAQgAt
AFAAcgBvAGYAaQBsZm6QGgAgAFIARwBCACBjz4/wZYdO9gBHAGUAbgBlAHIAZQBsACAAUgBHAEIA
LQBiAGUAcwBrAHIAaQB2AGUAbABzAGUAQQBsAGcAZQBtAGUAZQBuACAAUgBHAEIALQBwAHIAbwBm
AGkAZQBsx3y8GAAgAFIARwBCACDVBLhc0wzHfABQAHIAbwBmAGkAbABvACAAUgBHAEIAIABHAGUA
bgBlAHIAaQBjAG8ARwBlAG4AZQByAGkAYwAgAFIARwBCACAAUAByAG8AZgBpAGwAZQQeBDEESQQ4
BDkAIAQ/BEAEPgREBDgEOwRMACAAUgBHAEIAVQBuAGkAdwBlAHIAcwBhAGwAbgB5ACAAcAByAG8A
ZgBpAGwAIABSAEcAQgAAZGVzYwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAA
FEdlbmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27298</attachid>
            <date>2009-02-03 16:59:02 -0800</date>
            <delta_ts>2009-02-04 10:40:54 -0800</delta_ts>
            <desc>Temporary patch to PlatfromContextSkia to avoid crash</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>1799</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFBsYXRmb3JtQ29udGV4dFNraWEuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gUGxhdGZvcm1D
b250ZXh0U2tpYS5jcHAJKHJldmlzaW9uIDkwNzQpCisrKyBQbGF0Zm9ybUNvbnRleHRTa2lhLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsMTMgQEAKICAgICBTa0JpdG1hcCBtX2ltYWdl
QnVmZmVyQ2xpcDsKICAgICAvLyBJZiBtX2ltYWdlQnVmZmVyQ2xpcCBpcyBub24tZW1wdHksIHRo
aXMgaXMgdGhlIHJlZ2lvbiB0aGUgaW1hZ2UgaXMgY2xpcHBlZCB0by4KICAgICBXZWJDb3JlOjpG
bG9hdFJlY3QgbV9jbGlwOworCisgICAgdm9pZCBTZXRJbWFnZUJ1ZmZlckNsaXAoY29uc3QgU2tC
aXRtYXAmIGNsaXBJbWFnZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjbGlwKSB7CisgICAg
ICAgIG1faW1hZ2VCdWZmZXJDbGlwLnJlc2V0KCk7CisgICAgICAgIGlmICghY2xpcEltYWdlLmVt
cHR5KCkpCisgICAgICAgICAgICBjbGlwSW1hZ2UuY29weVRvKCZtX2ltYWdlQnVmZmVyQ2xpcCwg
U2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnKTsKKyAgICAgICAgbV9jbGlwID0gY2xpcDsKKyAg
ICB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTEyOCw2ICsxMzUsMTEgQEAKICAgICBtX2Rhc2gt
PnNhZmVSZWYoKTsKICAgICBtX2dyYWRpZW50LT5zYWZlUmVmKCk7CiAgICAgbV9wYXR0ZXJuLT5z
YWZlUmVmKCk7CisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgUExBVEZPUk0oV0lOX09TKQor
ICAgIGJ6ZXJvKCZtX2ltYWdlQnVmZmVyQ2xpcCwgc2l6ZW9mKFNrQml0bWFwKSk7CisgICAgU2V0
SW1hZ2VCdWZmZXJDbGlwKG90aGVyLm1faW1hZ2VCdWZmZXJDbGlwLCBvdGhlci5tX2NsaXApOwor
I2VuZGlmCiB9CiAKIFBsYXRmb3JtQ29udGV4dFNraWE6OlN0YXRlOjp+U3RhdGUoKQpAQCAtMTk5
LDYgKzIxMSwxMSBAQAogICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoKm1fc3RhdGUpOwogICAgIG1f
c3RhdGUgPSAmbV9zdGF0ZVN0YWNrLmxhc3QoKTsKIAorI2lmIGRlZmluZWQoX19saW51eF9fKSB8
fCBQTEFURk9STShXSU5fT1MpCisgICAgLy8gRG9uJ3QgY29weSBvdmVyIGFueSBjbGlwIGltYWdl
LgorICAgIG1fc3RhdGUtPlNldEltYWdlQnVmZmVyQ2xpcChTa0JpdG1hcCgpLCBXZWJDb3JlOjpG
bG9hdFJlY3QoKSk7CisjZW5kaWYKKwogICAgIC8vIFNhdmUgb3VyIG5hdGl2ZSBjYW52YXMuCiAg
ICAgY2FudmFzKCktPnNhdmUoKTsKIH0KQEAgLTIxNyw3ICsyMzQsNyBAQAogICAgIGNhbnZhcygp
LT5zYXZlTGF5ZXJBbHBoYSgmYm91bmRzLCAyNTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PFNrQ2FudmFzOjpTYXZlRmxhZ3M+KFNrQ2FudmFzOjprSGFzQWxwaGFM
YXllcl9TYXZlRmxhZyB8IFNrQ2FudmFzOjprRnVsbENvbG9yTGF5ZXJfU2F2ZUZsYWcpKTsKICAg
ICAvLyBDb3B5IG9mZiB0aGUgaW1hZ2UgYXMgfGltYWdlQnVmZmVyfCBtYXkgYmUgZGVsZXRlZCBi
ZWZvcmUgcmVzdG9yZSBpcyBpbnZva2VkLgotICAgIG1fc3RhdGUtPm1faW1hZ2VCdWZmZXJDbGlw
ID0gKihpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLT5wbGF0Zm9ybUNvbnRleHQoKS0+Yml0bWFwKCkp
OworICAgIG1fc3RhdGUtPlNldEltYWdlQnVmZmVyQ2xpcCgqKGltYWdlQnVmZmVyLT5jb250ZXh0
KCktPnBsYXRmb3JtQ29udGV4dCgpLT5iaXRtYXAoKSksIHJlY3QpOwogfQogI2VuZGlmCiB2b2lk
IFBsYXRmb3JtQ29udGV4dFNraWE6OnJlc3RvcmUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27319</attachid>
            <date>2009-02-04 10:40:54 -0800</date>
            <delta_ts>2009-02-04 11:23:12 -0800</delta_ts>
            <desc>Fixes three bugs introduced in first patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>2036</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCShyZXZpc2lvbiA0MDA4OCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTYsNiArMTE2LDE1IEBAIFJHQkEzMiBtYWtlUkdCQUZyb21IU0xBKGRvdWJsZSBodWUsIGRvdWIK
ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihhbHBoYSAqIHNjYWxlRmFjdG9y
KSk7CiB9CiAKK1JHQkEzMiBtYWtlUkdCQUZyb21DTVlLQShmbG9hdCBjLCBmbG9hdCBtLCBmbG9h
dCB5LCBmbG9hdCBrLCBmbG9hdCBhKQoreworICAgIGRvdWJsZSBjb2xvcnMgPSAxIC0gazsKKyAg
ICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4obmV4dGFmdGVyKDI1NiwgMCkgKiAoY29sb3JzICog
KDEgLSBjKSkpOworICAgIGludCBnID0gc3RhdGljX2Nhc3Q8aW50PihuZXh0YWZ0ZXIoMjU2LCAw
KSAqIChjb2xvcnMgKiAoMSAtIG0pKSk7CisgICAgaW50IGIgPSBzdGF0aWNfY2FzdDxpbnQ+KG5l
eHRhZnRlcigyNTYsIDApICogKGNvbG9ycyAqICgxIC0geSkpKTsKKyAgICByZXR1cm4gbWFrZVJH
QkEociwgZywgYiwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5leHRhZnRlcigyNTYsIDApICogYSkpOwor
fQorCiAvLyBvcmlnaW5hbGx5IG1vdmVkIGhlcmUgZnJvbSB0aGUgQ1NTIHBhcnNlcgogYm9vbCBD
b2xvcjo6cGFyc2VIZXhDb2xvcihjb25zdCBTdHJpbmcmIG5hbWUsIFJHQkEzMiYgcmdiKQogewpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAkocmV2aXNpb24gNDAwODgpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYw
LDcgQEAgUkdCQTMyIG1ha2VSR0JBKGludCByLCBpbnQgZywgaW50IGIsIGludAogUkdCQTMyIGNv
bG9yV2l0aE92ZXJyaWRlQWxwaGEoUkdCQTMyIGNvbG9yLCBmbG9hdCBvdmVycmlkZUFscGhhKTsK
IFJHQkEzMiBtYWtlUkdCQTMyRnJvbUZsb2F0cyhmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBm
bG9hdCBhKTsKIFJHQkEzMiBtYWtlUkdCQUZyb21IU0xBKGRvdWJsZSBoLCBkb3VibGUgcywgZG91
YmxlIGwsIGRvdWJsZSBhKTsKK1JHQkEzMiBtYWtlUkdCQUZyb21DTVlLQShmbG9hdCBjLCBmbG9h
dCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKTsKIAogaW50IGRpZmZlcmVuY2VTcXVhcmVk
KGNvbnN0IENvbG9yJiwgY29uc3QgQ29sb3ImKTsKIApAQCAtNzEsNiArNzIsOCBAQCBwdWJsaWM6
CiAgICAgQ29sb3IoaW50IHIsIGludCBnLCBpbnQgYiwgaW50IGEpIDogbV9jb2xvcihtYWtlUkdC
QShyLCBnLCBiLCBhKSksIG1fdmFsaWQodHJ1ZSkgeyB9CiAgICAgLy8gQ29sb3IgaXMgY3VycmVu
dGx5IGxpbWl0ZWQgdG8gMzJiaXQgUkdCQSwgcGVyaGFwcyBzb21lIGRheSB3ZSdsbCBzdXBwb3J0
IGJldHRlciBjb2xvcnMKICAgICBDb2xvcihmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9h
dCBhKSA6IG1fY29sb3IobWFrZVJHQkEzMkZyb21GbG9hdHMociwgZywgYiwgYSkpLCBtX3ZhbGlk
KHRydWUpIHsgfQorICAgIC8vIENyZWF0ZXMgYSBuZXcgY29sb3IgZnJvbSB0aGUgc3BlY2lmaWMg
Q01ZSyBhbmQgYWxwaGEgdmFsdWVzLgorICAgIENvbG9yKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0
IHksIGZsb2F0IGssIGZsb2F0IGEpIDogbV9jb2xvcihtYWtlUkdCQUZyb21DTVlLQShjLCBtLCB5
LCBrLCBhKSksIG1fdmFsaWQodHJ1ZSkgeyB9CiAgICAgZXhwbGljaXQgQ29sb3IoY29uc3QgU3Ry
aW5nJik7CiAgICAgZXhwbGljaXQgQ29sb3IoY29uc3QgY2hhciopOwo=
</data>
<flag name="review"
          id="13180"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27320</attachid>
            <date>2009-02-04 11:23:12 -0800</date>
            <delta_ts>2009-02-05 13:03:49 -0800</delta_ts>
            <desc>Fixes three bugs introduced in first patch (the right patch this time)</desc>
            <filename>23625.patch</filename>
            <type>text/plain</type>
            <size>4399</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDYxNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMDItMDQgIFNjb3R0IFZpb2xldCAgPHNreUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0
aW9uYWwgZml4IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2
MjU6CisgICAgICAgIFNraWEgcGxhdGZvcm0gZG9lc24ndCByZW5kZXIgdGV4dCB0byBhIGNhbnZh
cyBvciBzdXBwb3J0IGNsaXBwaW5nIHRvIGFuIGltYWdlIGJ1ZmZlcgorCisgICAgICAgIEZpeGVz
IHRocmVlIGJ1Z3MgaW4gUGxhdGZvcm1Db250ZXh0U2tpYToKKworICAgICAgICAuIFdoZW4gYSBu
ZXcgbGF5ZXIgd2FzIHN0YXJ0ZWQgY2xpcHBlZCB0byBhbiBpbWFnZSB3ZSB1c2VkIHRoZQorICAg
ICAgICAgIGFzc2lnbm1lbnQgb3BlcmF0b3IgdG8gY29weSB0aGUgU2tCaXRtYXAuIElmIHRoZSBT
a0JpdG1hcCBvd25zIGl0J3MKKyAgICAgICAgICBwaXhlbHMsIHRoaXMgaXMgbm90IHRoZSByaWdo
dCB0aGluZyB0byBkby4gSW5zdGVhZCB3ZSBuZWVkIHRvIGNyZWF0ZQorICAgICAgICAgIGEgY29w
eSBvZiB0aGUgaW1hZ2UuCisgICAgICAgIC4gU3RhdGUgaG9sZHMgYW4gU2tCaXRtYXAgYnkgdmFs
dWUuIFN0YXRlJ3MgY29weSBjb25zdHJ1Y3RvciBkb2VzIGEKKyAgICAgICAgICBtZW1jcHkuIFRo
aXMgaXMgY29uZnVzaW5nIGFuZCBzdWJ0bGUsIEkndmUgY29udmVydGVkIHRvIHVzZSBhIG1lbWJl
cgorICAgICAgICAgIGluaXRpYWxpemVyIGxpc3Qgd2hpY2ggSSB0aGluayBpcyBjbGVhcmVyIGFu
ZCBsZXNzIGVycm9yIHByb25lLgorICAgICAgICAuIFdoZW4gY3JlYXRpbmcgYSBuZXcgbGF5ZXIg
dGhlcmUgaXMgbm8gbmVlZCB0byBjb3B5IHRoZSBjbGlwIGltYWdlLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcDoKKyAgICAgICAgKFBs
YXRmb3JtQ29udGV4dFNraWE6OlN0YXRlOjpTdGF0ZSk6CisgICAgICAgIChQbGF0Zm9ybUNvbnRl
eHRTa2lhOjpzYXZlKToKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6OmJlZ2luTGF5ZXJD
bGlwcGVkVG9JbWFnZSk6CisKIDIwMDktMDItMDQgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxl
LmNvbT4KIAogICAgICAgICAtIGJ1aWxkIGZpeApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAkocmV2aXNpb24g
NDA2MTMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0
U2tpYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw5ICsxMjEsMjggQEAgUGxhdGZvcm1Db250
ZXh0U2tpYTo6U3RhdGU6OlN0YXRlKCkKIH0KIAogUGxhdGZvcm1Db250ZXh0U2tpYTo6U3RhdGU6
OlN0YXRlKGNvbnN0IFN0YXRlJiBvdGhlcikKKyAgICA6IG1fYWxwaGEob3RoZXIubV9hbHBoYSkK
KyAgICAsIG1fcG9ydGVyRHVmZk1vZGUob3RoZXIubV9wb3J0ZXJEdWZmTW9kZSkKKyAgICAsIG1f
Z3JhZGllbnQob3RoZXIubV9ncmFkaWVudCkKKyAgICAsIG1fcGF0dGVybihvdGhlci5tX3BhdHRl
cm4pCisgICAgLCBtX3VzZUFudGlhbGlhc2luZyhvdGhlci5tX3VzZUFudGlhbGlhc2luZykKKyAg
ICAsIG1fbG9vcGVyKG90aGVyLm1fbG9vcGVyKQorICAgICwgbV9maWxsQ29sb3Iob3RoZXIubV9m
aWxsQ29sb3IpCisgICAgLCBtX3N0cm9rZVN0eWxlKG90aGVyLm1fc3Ryb2tlU3R5bGUpCisgICAg
LCBtX3N0cm9rZUNvbG9yKG90aGVyLm1fc3Ryb2tlQ29sb3IpCisgICAgLCBtX3N0cm9rZVRoaWNr
bmVzcyhvdGhlci5tX3N0cm9rZVRoaWNrbmVzcykKKyAgICAsIG1fZGFzaFJhdGlvKG90aGVyLm1f
ZGFzaFJhdGlvKQorICAgICwgbV9taXRlckxpbWl0KG90aGVyLm1fbWl0ZXJMaW1pdCkKKyAgICAs
IG1fbGluZUNhcChvdGhlci5tX2xpbmVDYXApCisgICAgLCBtX2xpbmVKb2luKG90aGVyLm1fbGlu
ZUpvaW4pCisgICAgLCBtX2Rhc2gob3RoZXIubV9kYXNoKQorICAgICwgbV90ZXh0RHJhd2luZ01v
ZGUob3RoZXIubV90ZXh0RHJhd2luZ01vZGUpCisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IFBM
QVRGT1JNKFdJTl9PUykKKyAgICAsIG1faW1hZ2VCdWZmZXJDbGlwKG90aGVyLm1faW1hZ2VCdWZm
ZXJDbGlwKQorICAgICwgbV9jbGlwKG90aGVyLm1fY2xpcCkKKyNlbmRpZgogewotICAgIG1lbWNw
eSh0aGlzLCAmb3RoZXIsIHNpemVvZihTdGF0ZSkpOwotCisgICAgLy8gVXAgdGhlIHJlZiBjb3Vu
dCBvZiB0aGVzZS4gc2F2ZVJlZiBkb2VzIG5vdGhpbmcgaWYgJ3RoaXMnIGlzIE5VTEwuCiAgICAg
bV9sb29wZXItPnNhZmVSZWYoKTsKICAgICBtX2Rhc2gtPnNhZmVSZWYoKTsKICAgICBtX2dyYWRp
ZW50LT5zYWZlUmVmKCk7CkBAIC0xOTksNiArMjE4LDEyIEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0
U2tpYTo6c2F2ZSgpCiAgICAgbV9zdGF0ZVN0YWNrLmFwcGVuZCgqbV9zdGF0ZSk7CiAgICAgbV9z
dGF0ZSA9ICZtX3N0YXRlU3RhY2subGFzdCgpOwogCisjaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8
IFBMQVRGT1JNKFdJTl9PUykKKyAgICAvLyBUaGUgY2xpcCBpbWFnZSBvbmx5IG5lZWRzIHRvIGJl
IGFwcGxpZWQgb25jZS4gUmVzZXQgdGhlIGltYWdlIHNvIHRoYXQgd2UKKyAgICAvLyBkb24ndCBh
dHRlbXB0IHRvIGNsaXAgbXVsdGlwbGUgdGltZXMuCisgICAgbV9zdGF0ZS0+bV9pbWFnZUJ1ZmZl
ckNsaXAucmVzZXQoKTsKKyNlbmRpZgorCiAgICAgLy8gU2F2ZSBvdXIgbmF0aXZlIGNhbnZhcy4K
ICAgICBjYW52YXMoKS0+c2F2ZSgpOwogfQpAQCAtMjE3LDkgKzI0MiwyMiBAQCB2b2lkIFBsYXRm
b3JtQ29udGV4dFNraWE6OmJlZ2luTGF5ZXJDbGlwCiAgICAgY2FudmFzKCktPnNhdmVMYXllckFs
cGhhKCZib3VuZHMsIDI1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8U2tDYW52YXM6OlNhdmVGbGFncz4oU2tDYW52YXM6OmtIYXNBbHBoYUxheWVyX1NhdmVGbGFn
IHwgU2tDYW52YXM6OmtGdWxsQ29sb3JMYXllcl9TYXZlRmxhZykpOwogICAgIC8vIENvcHkgb2Zm
IHRoZSBpbWFnZSBhcyB8aW1hZ2VCdWZmZXJ8IG1heSBiZSBkZWxldGVkIGJlZm9yZSByZXN0b3Jl
IGlzIGludm9rZWQuCi0gICAgbV9zdGF0ZS0+bV9pbWFnZUJ1ZmZlckNsaXAgPSAqKGltYWdlQnVm
ZmVyLT5jb250ZXh0KCktPnBsYXRmb3JtQ29udGV4dCgpLT5iaXRtYXAoKSk7CisgICAgY29uc3Qg
U2tCaXRtYXAqIGJpdG1hcCA9IGltYWdlQnVmZmVyLT5jb250ZXh0KCktPnBsYXRmb3JtQ29udGV4
dCgpLT5iaXRtYXAoKTsKKyAgICBpZiAoIWJpdG1hcC0+cGl4ZWxSZWYoKSkgeworICAgICAgICAv
LyBUaGUgYml0bWFwIG93bnMgaXQncyBwaXhlbHMuIFRoaXMgaGFwcGVucyB3aGVuIHdlJ3ZlIGFs
bG9jYXRlZCB0aGUKKyAgICAgICAgLy8gcGl4ZWxzIGluIHNvbWUgd2F5IGFuZCBhc3NpZ25lZCB0
aGVtIGRpcmVjdGx5IHRvIHRoZSBiaXRtYXAgKGFzCisgICAgICAgIC8vIGhhcHBlbnMgd2hlbiB3
ZSBhbGxvY2F0ZSBhIERJQikuIEluIHRoaXMgY2FzZSB0aGUgYXNzaWdubWVudCBvcGVyYXRvcgor
ICAgICAgICAvLyBkb2VzIG5vdCBjb3B5IHRoZSBwaXhlbHMsIHJhdGhlciB0aGUgY29waWVkIGJp
dG1hcCBlbmRzIHVwCisgICAgICAgIC8vIHJlZmVyZW5jaW5nIHRoZSBzYW1lIHBpeGVscy4gQXMg
dGhlIHBpeGVscyBtYXkgbm90IGxpdmUgYXMgbG9uZyBhcyB3ZQorICAgICAgICAvLyBuZWVkIGl0
IHRvLCB3ZSBjb3B5IHRoZSBpbWFnZS4KKyAgICAgICAgYml0bWFwLT5jb3B5VG8oJm1fc3RhdGUt
Pm1faW1hZ2VCdWZmZXJDbGlwLCBTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcGl4ZWwgcmVmLCB3ZSBjYW4gc2FmZWx5
IHVzZSB0aGUgYXNzaWdubWVudCBvcGVyYXRvci4KKyAgICAgICAgbV9zdGF0ZS0+bV9pbWFnZUJ1
ZmZlckNsaXAgPSAqYml0bWFwOworICAgIH0KIH0KICNlbmRpZgorCiB2b2lkIFBsYXRmb3JtQ29u
dGV4dFNraWE6OnJlc3RvcmUoKQogewogI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBQTEFURk9S
TShXSU5fT1MpCg==
</data>
<flag name="review"
          id="13181"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>