<?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>19650</bug_id>
          
          <creation_ts>2008-06-18 02:06:27 -0700</creation_ts>
          <short_desc>-webkit-gradient slows down scrolling when page has horizontal scrollbar</short_desc>
          <delta_ts>2010-01-25 15:21:31 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://w3future.com/weblog/stories/2008/06/16/adtinjs.xml</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adam+webkit</cc>
    
    <cc>bdakin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>83745</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2008-06-18 02:06:27 -0700</bug_when>
    <thetext>The site above has very slow scrolling. Not reproducible in Opera. Site uses some WebKit-specific CSS that could be responsible. Disabling styles results in normal scrolling speed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83813</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-06-18 18:30:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/6020083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125230</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Bryzak">adam+webkit</who>
    <bug_when>2009-06-10 16:23:08 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; The site above has very slow scrolling. Not reproducible in Opera. Site uses
&gt; some WebKit-specific CSS that could be responsible. Disabling styles results in
&gt; normal scrolling speed.
&gt; 

The slow vertical scrolling only seems to happen for me when the horizontal scrollbar is not scrolled completely to the left. As soon as the page is scrolled 1px horizontally, the vertical scrolling slows down considerably. If the horizontal scrollbar is on the left the vertical scrolling is fine. It also happens on http://www.apple.com/safari/whats-new.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125237</commentid>
    <comment_count>3</comment_count>
      <attachid>31144</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-06-10 16:50:51 -0700</bug_when>
    <thetext>Created attachment 31144
simplified version of http://www.apple.com/safari/whats-new.html

this reproduces the bug in Safari 4 (Windows 528.17) but the effect cannot be experienced (by human) in Chrome 3.0.183.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125238</commentid>
    <comment_count>4</comment_count>
      <attachid>31145</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-06-10 16:52:59 -0700</bug_when>
    <thetext>Created attachment 31145
sample HTML copied from http://www.apple.com/safari/whats-new.html

This HTML reproduces the bug both in Chrome and Safari.  The bug disappears when -webkit-gradient is removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125240</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-10 17:12:29 -0700</bug_when>
    <thetext>Hyatt wrote the scroll code and the gradient code. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125241</commentid>
    <comment_count>6</comment_count>
      <attachid>31147</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-10 17:12:54 -0700</bug_when>
    <thetext>Created attachment 31147
reduced test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125242</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-10 17:15:08 -0700</bug_when>
    <thetext>This does not reproduce for me on a TOT Debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125243</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-10 17:15:31 -0700</bug_when>
    <thetext>This may have been fixed since Safari 4?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125244</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Bryzak">adam+webkit</who>
    <bug_when>2009-06-10 17:16:21 -0700</bug_when>
    <thetext>I tested it using Safari 4 final and with the latest WebKit running on OS X 10.5.7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125249</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-06-10 17:22:37 -0700</bug_when>
    <thetext>WebKit build 44547 on Windows reproduced the problem with the reduced test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125252</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-10 17:25:59 -0700</bug_when>
    <thetext>Wow.  This still reproduces on TOT, but I only notice it in Release builds!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125270</commentid>
    <comment_count>12</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-06-10 22:33:11 -0700</bug_when>
    <thetext>This is similar to bug 24130. GeneratedImage::drawPattern() is used to draw the gradient rather than GeneratedImage::draw(), the reason being that, even with the fix for bug 24130, the rect to paint legitimately contains more than one tile. As mentioned in that bug, the way to address this is probably by way of bug 24178.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125272</commentid>
    <comment_count>13</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-06-10 22:40:55 -0700</bug_when>
    <thetext>There are other possible optimizations for vertical and horizontal gradients (adjusting the tile dimensions in the direction perpendicular to the gradient; won’t help with the “reduced test case” attached to this bug, but should help with the What’s New page, for example).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125273</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-10 23:12:32 -0700</bug_when>
    <thetext>I gather this is on Mac and Windows?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127093</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-06-19 18:54:42 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I gather this is on Mac and Windows?
&gt; 

Yes, we have observed it on Mac and Windows.  But it may still reproduce in Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181087</commentid>
    <comment_count>16</comment_count>
      <attachid>46638</attachid>
    <who name="">mitz</who>
    <bug_when>2010-01-14 20:33:59 -0800</bug_when>
    <thetext>Created attachment 46638
Use 1-by-n tiles for horizontal and vertical linear gradients</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181088</commentid>
    <comment_count>17</comment_count>
      <attachid>46638</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-14 20:41:02 -0800</bug_when>
    <thetext>Comment on attachment 46638
Use 1-by-n tiles for horizontal and vertical linear gradients

&gt; Index: WebCore/platform/graphics/Generator.h
&gt; ===================================================================

&gt;      virtual void fill(GraphicsContext*, const FloatRect&amp;) = 0;
&gt; +    virtual void adjustParametersForTiledDrawing(IntSize&amp; /* size */, FloatRect&amp; /* srcRect */, TransformationMatrix&amp; /* patternTransform */, FloatPoint&amp; /* phase */) { 

Maybe remove patternTransform and phase from this method if you think they will never be used. They can easily be added if we find a use.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181094</commentid>
    <comment_count>18</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-01-14 21:11:44 -0800</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/projects/webkit/changeset/53318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184424</commentid>
    <comment_count>19</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-25 15:21:31 -0800</bug_when>
    <thetext>Committed r53816: &lt;http://trac.webkit.org/changeset/53816&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>31144</attachid>
            <date>2009-06-10 16:50:51 -0700</date>
            <delta_ts>2009-06-10 17:12:54 -0700</delta_ts>
            <desc>simplified version of http://www.apple.com/safari/whats-new.html</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>8990</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+IA0KPGh0bWwgbGFuZz0iZW4tdXMiPiANCjxoZWFkPg0KPHN0eWxlIHR5
cGU9InRleHQvY3NzIj4NCmh0bWwgeyBtaW4taGVpZ2h0OiAxMDAlOyB9DQpib2R5IHsgYmFja2dy
b3VuZDogI2Y4ZjhmOCAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQg
dG9wLCBmcm9tKHJnYigyMjgsMjI5LDIzMCkpLCB0byhyZ2IoMjQ3LDI0NywyNDkpKSwgY29sb3It
c3RvcCgwLjMscmdiKDIzNywyMzYsMjM4KSkpOyBtYXJnaW46IDAgYXV0bzsgbWluLWhlaWdodDog
MTAwJTsgd2lkdGg6IDk4NHB4OyB9Cg0KLnJlcGxhY2VkIHsgZGlzcGxheTogYmxvY2s7IGhlaWdo
dDogMTBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IHRleHQtYWxp
Z246IGxlZnQ7IHdpZHRoOiAxMHB4OyB9DQoubmV3X2JhZGdlIHsgYmFja2dyb3VuZDogbm8tcmVw
ZWF0IDAgMDsgaGVpZ2h0OiA3M3B4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDog
LTFweDsgd2lkdGg6IDc0cHg7IGJlaGF2aW9yOiB1cmwoL2dsb2JhbC9zY3JpcHRzL2xpYi9pZXBu
Z2ZpeC5odGMpOyB9DQouY2xlYXIgeyBjbGVhcjogYm90aDsgfQ0KLmNsZWFyX2xlZnQgeyBjbGVh
cjogbGVmdDsgfQ0KLmNsZWFyX3JpZ2h0IHsgY2xlYXI6IHJpZ2h0OyB9DQpoZWFkZXIgeyBkaXNw
bGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IH0NCmZvb3RlciB7IGNsZWFyOiBib3RoOyBkaXNwbGF5
OiBibG9jazsgbWFyZ2luOiAwIGF1dG87IHdpZHRoOiA5ODBweDsgfQ0Kc2VjdGlvbiwKYXJ0aWNs
ZSB7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAwOyB3aWR0aDogMTAwJTsgfQ0KI3Byb2R1Y3Ro
ZWFkZXIgeyBib3JkZXI6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogbGVmdDsgbWFyZ2lu
OiAwIDAgMCAzcHg7IHdpZHRoOiAzMDBweDsgfQ0KI3Byb2R1Y3RoZWFkZXIgaDEgYSB7IGJhY2tn
cm91bmQ6ICBuby1yZXBlYXQgMCAwOyB3aWR0aDogMTAxcHg7IH0NCiNwcm9kdWN0bmF2IHsgZGlz
cGxheTogaW5saW5lOyBmbG9hdDogcmlnaHQ7IG1hcmdpbjogMTJweCAwIDA7IH0NCiNwcm9kdWN0
bmF2IGEgeyBjb2xvcjogIzI1MjUyNTsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi10b3A6IDFlbTsgbWFy
Z2luLWxlZnQ6IDMwcHg7IG1hcmdpbi1yaWdodDogOHB4OyBwYWRkaW5nOiAwOyB0ZXh0LWRlY29y
YXRpb246IG5vbmU7IH0NCiNwcm9kdWN0bmF2IGE6aG92ZXIgeyBjb2xvcjogIzA4YzsgfQoNCiNw
cm9kdWN0bmF2IGEuZG93bmxvYWRub3cgeyBoZWlnaHQ6IDI1cHg7IG1hcmdpbjogMC43ZW0gMCAw
IDIwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl
cGVhdDsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiByaWdodDsgcG9zaXRpb246IHJlbGF0aXZlOyB0
ZXh0LWRlY29yYXRpb246IG5vbmU7IHRleHQtaW5kZW50OiAtOTk5OXB4OyBvdXRsaW5lOiBub25l
OyBvdmVyZmxvdzogaGlkZGVuOyBiZWhhdmlvcjogdXJsKC9nbG9iYWwvc2NyaXB0cy9saWIvaWVw
bmdmaXguaHRjKTsgfQ0KI3Byb2R1Y3RuYXYgYS5kb3dubG9hZG5vdyB7IHdpZHRoOiAxMDhweDsg
aGVpZ2h0OiAyNnB4OyB9Cg0KI3doYXRzbmV3ICNwcm9kdWN0bmF2IGEjcG4td2hhdHMtbmV3LA0K
I3doYXRpcyAjcHJvZHVjdG5hdiBhI3BuLXdoYXQtaXMsDQojZmVhdHVyZXMgI3Byb2R1Y3RuYXYg
YSNwbi1mZWF0dXJlcywNCiNkZXZlbG9wZXIgI3Byb2R1Y3RuYXYgYSNwbi1kZXZlbG9wZXIsDQoj
ZG93bmxvYWQgI3Byb2R1Y3RuYXYgYSNwbi1kb3dubG9hZCB7IGNvbG9yOiAjOTk5OyBjdXJzb3I6
IGRlZmF1bHQ7IH0KDQojbWFpbiB7IGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlcjogMXB4IHNvbGlk
ICNlNWU1ZTU7IGNsZWFyOiBib3RoOyBtYXJnaW4tYm90dG9tOiAxOHB4OyBwYWRkaW5nOiAwOyBw
b3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiA5ODBweDsgLXdlYmtpdC1ib3gtc2hhZG93OiByZ2Jh
KDAsMCwwLDAuMzUpIDAgMXB4IDJweDsgLW1vei1ib3gtc2hhZG93OiByZ2JhKDAsMCwwLDAuMzUp
IDAgMXB4IDJweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7IC1tb3otYm9yZGVyLXJhZGl1
czogNXB4OyAtby1ib3JkZXItcmFkaXVzOiA1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOiA1cHg7
IGJvcmRlci1yYWRpdXM6IDVweDsgfQ0KI21haW46YWZ0ZXIgeyBjb250ZW50OiAiLiI7IGRpc3Bs
YXk6IGJsb2NrOyBoZWlnaHQ6IDA7IGNsZWFyOiBib3RoOyB2aXNpYmlsaXR5OiBoaWRkZW47IH0K
DQojbWFpbiBoZWFkZXIgcCB7IG1hcmdpbi10b3A6IDExcHg7IGNvbG9yOiAjNjY2OyBmb250LXNp
emU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyM3B4OyBmb250LXdlaWdodDogbm9ybWFsOyB9CgovKi0t
LSBjYWxsb3V0IC0tLSovCiNtYWluIC5jYWxsb3V0IHsgYm9yZGVyOiAxcHggc29saWQgI2RjZGNk
YzsgYm9yZGVyLXdpZHRoOiAycHggMXB4IDFweDsgYm9yZGVyLXJhZGl1czogNHB4OyBmbG9hdDog
bGVmdDsgbWFyZ2luLWJvdHRvbTogMThweDsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMzY1
cHg7IHBhZGRpbmc6IDE0cHggMTVweCAxOHB4IDE0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czog
NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDRweDsgLW8tYm9yZGVyLXJhZGl1czogNHB4OyAta2h0
bWwtYm9yZGVyLXJhZGl1czogNHB4OyB6b29tOiAxOyB9CiNtYWluIC5jYWxsb3V0OmFmdGVyIHsg
Y29udGVudDogIi4iOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAwOyBjbGVhcjogYm90aDsgd2lk
dGg6IDA7IHZpc2liaWxpdHk6IGhpZGRlbjsgfQojbWFpbiAuY2FsbG91dCArIHAgeyBjbGVhcjog
bGVmdDsgfQojbWFpbiAuY2FsbG91dC5nYWxsZXJ5IGEudGh1bWIgeyB3aWR0aDogODdweDsgfQoj
bWFpbiAuY2FsbG91dCBhLnRodW1iIHsgYmFja2dyb3VuZDogI2ZmZjsgYm9yZGVyOiAxcHggc29s
aWQgI2U1ZTVlNTsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDhweCAxMHB4
IDAgOHB4OyBwYWRkaW5nOiA0cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQojbWFpbiAuY2FsbG91
dCBhLnRodW1iIGltZyB7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDA7IHBvc2l0aW9uOiByZWxhdGl2
ZTsgei1pbmRleDogMjsgfQojbWFpbiAuY2FsbG91dCBoMyB7IG1hcmdpbi1sZWZ0OiAxMzdweDsg
bWFyZ2luLXRvcDogMC4zZW07IGZvbnQ6IDE2cHggIk15cmlhZCBQcm8iLCAiTXlyaWFkUHJvIiwg
Ikx1Y2lkYSBHcmFuZGUiLCAiTHVjaWRhIFNhbnMgVW5pY29kZSIsIGFyaWFsLCB2ZXJkYW5hLCBz
YW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyB9DQoNCjwvc3R5bGU+DQo8L2hlYWQ+IA0K
PGJvZHkgY2xhc3M9InNhZmFyaSIgaWQ9IndoYXRzbmV3Ij4NCgk8c2VjdGlvbiBpZD0ibWFpbiI+
IA0KCQk8YXJ0aWNsZT4gDQoJCQk8YXJ0aWNsZSBjbGFzcz0iY292ZXJmbG93IGltZ19sZWZ0Ij4g
DQoJCQkJPGEgaWQ9ImNvdmVyZmxvdyIgY2xhc3M9ImhpZGRlbiI+PC9hPiANCgkJCQk8aDI+Q292
ZXIgRmxvdzwvaDI+IA0KCQkJCTxwPk5ldyB0byBTYWZhcmksIENvdmVyIEZsb3cgb2ZmZXJzIGEg
aGlnaGx5IHZpc3VhbCB3YXkgb2YgcmV2aWV3aW5nIHlvdXIgc2l0ZSBoaXN0b3J5IGFuZCBib29r
bWFya2VkIHNpdGVzLCBwcmVzZW50aW5nIGZ1bGwtcGFnZSBwcmV2aWV3cyBvZiB0aGUgd2Vic2l0
ZXMgdGhhdCBsb29rIGV4YWN0bHkgYXMgdGhleSBkaWQgd2hlbiB5b3UgbGFzdCB2aXNpdGVkIHRo
ZW0uPC9wPiANCgkJCQk8cD5PbmUgbG9vayBpcyBhbGwgeW91IG5lZWQgdG8gcmVjb2duaXplIHRo
ZSBzaXRlIHlvdSB3YW50IHRvIHZpc2l0LiBTaW1wbHkgZmxpcCB0aHJvdWdoIHdlYnNpdGUgcHJl
dmlld3MgaW4gQ292ZXIgRmxvdyB0aGUgc2FtZSB3YXkgeW91IGZsaXAgdGhyb3VnaCBhbGJ1bSBh
cnQgaW4gaVR1bmVzLiBEaXJlY3Rpb25hbCBhcnJvd3MgbGV0IHlvdSBicm93c2UgZm9yd2FyZCBh
bmQgYmFjay4gT3IgeW91IGNhbiBxdWlja2x5IGZsaXAgdGhyb3VnaCBtdWx0aXBsZSBzaXRlcyB1
c2luZyB0aGUgc2xpZGVyLiBBbmQgd2hlbiB5b3UgZmluZCB0aGUgc2l0ZSB5b3Ugd2FudCwgc2lt
cGx5IGNsaWNrIHRvIG9wZW4gaXQuPC9wPiANCgkJCTwvYXJ0aWNsZT4gDQoJCQk8YXJ0aWNsZSBj
bGFzcz0iaGlzdG9yeSBpbWdfcmlnaHQiPiANCgkJCQk8YSBpZD0iaGlzdG9yeSIgY2xhc3M9Imhp
ZGRlbiI+PC9hPiANCgkJCQk8aDI+RnVsbCBIaXN0b3J5IFNlYXJjaDwvaDI+IA0KCQkJCTxwPldp
dGggRnVsbCBIaXN0b3J5IFNlYXJjaCBhbmQgQ292ZXIgRmxvdywgd2hhdCB5b3Ugc2VlIGlzIHdo
ZXJlIHlvdSB3ZW50LiBTYWZhcmkgaW50cm9kdWNlcyBhIGRyYW1hdGljIG5ldyB3YXkgdG8gcmV2
aXNpdCBzaXRlcywgbGV0dGluZyB5b3UgZmxpcCB0aHJvdWdoIGZ1bGwtcGFnZSBwcmV2aWV3cyBv
ZiB0aGUgc2l0ZXMgeW91IHZpc2l0ZWQgaW4gdGhlIHBhc3QuIFlvdSBtYXkgbm90IGhhdmUgdG90
YWwgcmVjYWxsLCBidXQgU2FmYXJpIGRvZXMsIGF1dG9tYXRpY2FsbHkgc3RvcmluZyBhbGwgdGhl
IHRleHQgYW5kIGEgdGh1bWJuYWlsIG9mIGV2ZXJ5IHBhZ2UgaW4geW91ciBoaXN0b3J5LiBUaGF0
IG1ha2VzIGl0IGVhc3kgZm9yIFNhZmFyaSB0byBnZXQgcmVzdWx0cyBldmVuIGlmIHlvdSByZW1l
bWJlciBsaXR0bGUgYWJvdXQgdGhlIHNpdGUgeW91JiM4MjE3O3JlIHNlYXJjaGluZyBmb3IuPC9w
PiANCgkJCQk8cD5KdXN0IHR5cGUgYSB3b3JkIG9yIHBocmFzZSBpbiB0aGUgSGlzdG9yeSBTZWFy
Y2ggZmllbGQgaW4gVG9wIFNpdGVzLCBhbmQgU2FmYXJpIHF1aWNrbHkgcHJlc2VudHMgeW91IHdp
dGggYSBsaXN0IG9mIHBvc3NpYmlsaXRpZXMuIEluIGZhY3QsIHlvdSBjYW4gc2VhcmNoIGZvciBh
bnl0aGluZyB0aGF0IHdhcyBvbiBhIHBhZ2UgeW91IHZpc2l0ZWQsIGV2ZW4gcGhvdG8gY2FwdGlv
bnMuIFRvIGpvZyB5b3VyIG1lbW9yeSwgU2FmYXJpIHByZXNlbnRzIHRoZSBzaXRlcyBpdCBmaW5k
cyBpbiBDb3ZlciBGbG93LCBnaXZpbmcgeW91IHRoZSBvcHBvcnR1bml0eSB0byBzcG90IHRoZSBy
aWdodCBzaXRlIG9uIHNpZ2h0LjwvcD4gDQoJCQk8L2FydGljbGU+IA0KCQkJPGFydGljbGUgY2xh
c3M9InBlcmZvcm1hbmNlIGdyaWQyY29sIj4gDQoJCQkJPGEgaWQ9InBlcmZvcm1hbmNlIiBjbGFz
cz0iaGlkZGVuIj48L2E+IA0KCQkJCTxoMj5OaXRybyBFbmdpbmU8L2gyPiANCgkJCQk8ZGl2IGNs
YXNzPSJjb2x1bW4gZmlyc3QiPiANCgkJCQkJPHA+U3RpbGwgdGhlIHdvcmxkJiM4MjE3O3MgZmFz
dGVzdCB3ZWIgYnJvd3NlciwgU2FmYXJpIG91dHJhY2VzIEZpcmVmb3gsIEludGVybmV0IEV4cGxv
cmVyLCBhbmQgQ2hyb21lLiBPbiBldmVuIHRoZSBtb3N0IGRlbWFuZGluZyBXZWIgMi4wIGFwcGxp
Y2F0aW9ucywgU2FmYXJpIGRlbGl2ZXJzIGJsYXppbmdseSBmYXN0IHBlcmZvcm1hbmNlIHRoYW5r
cyB0byB0aGUgaW5kdXN0cnkmIzgyMTc7cyBtb3N0IGFkdmFuY2VkIHJlbmRlcmluZyB0ZWNobm9s
b2dpZXMuPC9wPiANCgkJCQkJPHA+VXNpbmcgdGhlIG5ldyBOaXRybyBFbmdpbmUsIGZvciBleGFt
cGxlLCBTYWZhcmkgZXhlY3V0ZXMgSmF2YVNjcmlwdCBuZWFybHkgOCB0aW1lcyBmYXN0ZXIgdGhh
biBJbnRlcm5ldCBFeHBsb3JlciA4IGFuZCBtb3JlIHRoYW4gNCB0aW1lcyBmYXN0ZXIgdGhhbiBG
aXJlZm94IDMgYmFzZWQgb24gcGVyZm9ybWFuY2UgaW4gbGVhZGluZyBpbmR1c3RyeSBiZW5jaG1h
cmsgdGVzdHM6IGlCZW5jaCBhbmQgU3VuU3BpZGVyLjwvcD4gDQoJCQkJPC9kaXY+IDwhLS0gL2Nv
bHVtbi5maXJzdCAtLT4gDQoJCQkJPGRpdiBjbGFzcz0iY29sdW1uIGxhc3QiPiANCgkJCQkJPHA+
SW4gYWRkaXRpb24gdG8gc3VwZXJpb3IgSmF2YVNjcmlwdCBwZXJmb3JtYW5jZSwgU2FmYXJpIG9m
ZmVycyB0b3AtZmxpZ2h0IEhUTUwgcGVyZm9ybWFuY2UgJiM4MjEyOyB0aGUgYmVzdCBvbiBhbnkg
cGxhdGZvcm0gJiM4MjEyOyBsb2FkaW5nIHBhZ2VzIDMgdGltZXMgZmFzdGVyIHRoYW4gSW50ZXJu
ZXQgRXhwbG9yZXIgOCBhbmQgRmlyZWZveCZuYnNwOzMuPC9wPiANCg0KCQkJCTwvZGl2PiA8IS0t
IC9jb2x1bW4ubGFzdCAtLT4gDQoJCQk8L2FydGljbGU+IA0KCQkJPGFydGljbGUgY2xhc3M9Indp
bmRvd3MgaW1nX2xlZnQiPiANCgkJCQk8YSBpZD0id2luZG93cyIgY2xhc3M9ImhpZGRlbiI+PC9h
PiANCgkJCQk8aDI+V2luZG93cyBOYXRpdmUgTG9vayBhbmQgRmVlbDwvaDI+IA0KCQkJCTxwPklm
IHlvdSYjODIxNztyZSB1c2luZyBTYWZhcmkgb24gYSBQQyB3aXRoIFdpbmRvd3MgVmlzdGEgb3Ig
V2luZG93cyBYUCwgeW91JiM4MjE3O2xsIGZlZWwgcmlnaHQgYXQgaG9tZS4gVGhhdCYjODIxNztz
IGJlY2F1c2UgU2FmYXJpIGZlYXR1cmVzIGEgbmF0aXZlIGxvb2sgJiM4MjEyOyBqdXN0IGxpa2Ug
b3RoZXIgV2luZG93cyBhcHBsaWNhdGlvbnMgJiM4MjEyOyBpbmNsdWRpbmcgYSBuYXRpdmUgdGl0
bGUgYmFyLCBib3JkZXJzLCBhbmQgdG9vbGJhcnMuICBUbyBwcm92aWRlIGEgY29uc2lzdGVudCBX
aW5kb3dzIGV4cGVyaWVuY2UsIFNhZmFyaSBub3cgdXNlcyBXaW5kb3dzIHN0YW5kYXJkIGZvbnRz
LCBidXQgeW91IGNhbiBjaG9vc2UgdG8gdXNlIEFwcGxlJiM4MjE3O3MgY3Jpc3AgYW50aS1hbGlh
c2VkIGZvbnRzIGlmIHlvdSBwcmVmZXIuIE9mIGNvdXJzZSwgU2FmYXJpIGZvciBXaW5kb3dzIGRl
bGl2ZXJzIHRoZSBzYW1lIGxpZ2h0bmluZy1mYXN0IHBlcmZvcm1hbmNlIHByb3ZpZGVkIGJ5IHRo
ZSBNYWMgdmVyc2lvbi48L3A+IA0KCQkJPC9hcnRpY2xlPiANCgkJCTxhcnRpY2xlIGNsYXNzPSJk
ZXZlbG9wZXIgaW1nX3JpZ2h0Ij4gDQoJCQkJPGEgaWQ9ImRldmVsb3BlciIgY2xhc3M9ImhpZGRl
biI+PC9hPiANCgkJCQk8aDI+RGV2ZWxvcGVyIFRvb2xzPC9oMj4gDQoJCQkJPHA+SW4gU2FmYXJp
LCBkZXZlbG9wZXJzIHdpbGwgZmluZCB0aGUgYmVzdCBzZXQgb2YgZGV2ZWxvcG1lbnQgdG9vbHMg
ZXZlciBpbmNsdWRlZCBpbiBhIGJyb3dzZXIuIEp1c3QgdHVybiB0aGVtIG9uIGluIFNhZmFyaSBw
cmVmZXJlbmNlcyBhbmQgdXNlIHRoZW0gdG8gZXhhbWluZSB0aGUgc3RydWN0dXJlIG9mIGEgcGFn
ZSwgZGVidWcgSmF2YVNjcmlwdCwgb3B0aW1pemUgcGVyZm9ybWFuY2UgYW5kIGNvbXBhdGliaWxp
dHksIGluc3BlY3Qgb2ZmbGluZSBkYXRhYmFzZXMsIG9yIHRlc3QgZXhwZXJpbWVudGFsIHBpZWNl
cyBvZiBjb2RlIG9uIHRoZSBmbHkuIEZvciBtb3JlIHNwZWNpZmljIGluZm9ybWF0aW9uIGFib3V0
IGVhY2ggb2YgdGhlIGRldmVsb3BtZW50IHRvb2xzLCB2aXNpdCB0aGUgPGEgaHJlZj0iaHR0cDov
L2RldmVsb3Blci5hcHBsZS5jb20vc2FmYXJpLyI+U2FmYXJpIERldiBDZW50ZXI8L2E+IHBhZ2Uu
PC9wPiANCgkJCTwvYXJ0aWNsZT4gDQoJCQk8c2VjdGlvbiBjbGFzcz0ibW9yZS1mZWF0dXJlcyBn
cmlkNGNvbCI+IA0KCQkJCTxhIGlkPSJtb3JlLWZlYXR1cmVzIiBjbGFzcz0iaGlkZGVuIj48L2E+
IA0KCQkJCTxoMj5Nb3JlIFNhZmFyaSA0IEZlYXR1cmVzPC9oMj4gDQoJCQkJPGRpdiBjbGFzcz0i
Y29sdW1uIGZpcnN0Ij4gDQoJCQkJCTxoMz5GdWxsLVBhZ2UgWm9vbTwvaDM+IA0KCQkJCQk8cD5H
ZXQgYSBjbG9zZSBsb29rIGF0IGV2ZW4gdGhlIGZpbmVzdCBwcmludCB1c2luZyBGdWxsLVBhZ2Ug
Wm9vbS4gU2FmYXJpIHNjYWxlcyBpbWFnZXMgYW5kIGdyYXBoaWNzIGFzIHlvdSB6b29tIGluIGFu
ZCBrZWVwcyB0ZXh0IHJhem9yIHNoYXJwIHdoaWxlIHByZXNlcnZpbmcgdGhlIHBhZ2UgbGF5b3V0
IHBlcmZlY3RseS4gPC9wPiANCgkJCQk8L2Rpdj4gPCEtLSAvY29sdW1uIC0tPiANCgkJCQk8ZGl2
IGNsYXNzPSJjb2x1bW4iPiANCgkJCQkJPGgzPlNtYXJ0IEFkZHJlc3MgRmllbGQ8L2gzPiANCgkJ
CQkJPHA+SnVzdCBzdGFydCB0eXBpbmcsIGFuZCB0aGUgU21hcnQgQWRkcmVzcyBGaWVsZCBpbnN0
YW50bHkgb2ZmZXJzIHN1Z2dlc3Rpb25zLiBZb3UmIzgyMTc7bGwgc2VlIHRoZSBUb3AgSGl0IGFu
ZCB0aGUgYmVzdCBtYXRjaGVzIGZyb20geW91ciBicm93c2luZyBoaXN0b3J5IGFuZCBib29rbWFy
ayBjb2xsZWN0aW9ucywgZWFjaCBpbiB0aGVpciBvd24gZWFzeS10by1yZWFkIHNlY3Rpb24uPC9w
PiANCgkJCQk8L2Rpdj4gPCEtLSAvY29sdW1uIC0tPiANCgkJCQk8ZGl2IGNsYXNzPSJjb2x1bW4i
PiANCgkJCQkJPGgzPlNtYXJ0IFNlYXJjaCBGaWVsZDwvaDM+IA0KCQkJCQk8cD5TYWZhcmkgb2Zm
ZXJzIGV4Y2VsbGVudCBzZWFyY2ggc3VnZ2VzdGlvbnMgY291cnRlc3kgb2YgR29vZ2xlIFN1Z2dl
c3QgYW5kIHlvdXIgcmVjZW50IHNlYXJjaCBoaXN0b3J5LCBtYWtpbmcgaXQgZXZlbiBlYXNpZXIg
dG8gY29uZHVjdCBwcm9kdWN0aXZlIHNlYXJjaGVzLiBZb3UgY2FuIGV2ZW4gc2VhcmNoIGZvciB0
ZXh0IG9uIHRoZSBwYWdlIHlvdSYjODIxNztyZSB2aWV3aW5nLiA8L3A+IA0KCQkJCTwvZGl2PiA8
IS0tIC9jb2x1bW4gLS0+IA0KCQkJCTxkaXYgY2xhc3M9ImNvbHVtbiBsYXN0Ij4gDQoJCQkJCTxo
Mz5QaGlzaGluZyBhbmQgTWFsd2FyZSBQcm90ZWN0aW9uPC9oMz4gDQoJCQkJCTxwPkxhbmQgb24g
YSBzdXNwaWNpb3VzIHdlYnNpdGUsIGFuZCB5b3UmIzgyMTc7bGwga25vdyByaWdodCBhd2F5LiBT
YWZhcmkgYXV0b21hdGljYWxseSBhbGVydHMgeW91IGFuZCB3b24mIzgyMTc7dCBvcGVuIHRoZSBw
YWdlLiBFViBDZXJ0aWZpY2F0ZSBzdXBwb3J0IGxldHMgeW91IGVhc2lseSBzcG90IGxlZ2l0aW1h
dGUgc2l0ZXMuPC9wPiANCgkJCQk8L2Rpdj4gPCEtLSAvY29sdW1uIC0tPiANCgkJCQk8cCBpZD0i
c2VlLWFsbCI+PGEgaHJlZj0iL3NhZmFyaS9mZWF0dXJlcy5odG1sIiBjbGFzcz0ibW9yZSI+U2Vl
IGFsbCAxNTAgZmVhdHVyZXMgb2YgU2FmYXJpPC9hPjwvcD4gDQoJCQk8L3NlY3Rpb24+IA0KCQk8
L2FydGljbGU+IA0KCTwvc2VjdGlvbj4NCjwvYm9keT4NCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>31145</attachid>
            <date>2009-06-10 16:52:59 -0700</date>
            <delta_ts>2009-06-10 17:12:54 -0700</delta_ts>
            <desc>sample HTML copied from http://www.apple.com/safari/whats-new.html</desc>
            <filename>test2.html</filename>
            <type>text/html</type>
            <size>0</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>31147</attachid>
            <date>2009-06-10 17:12:54 -0700</date>
            <delta_ts>2009-06-10 17:12:54 -0700</delta_ts>
            <desc>reduced test case</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>323</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PHN0eWxlPgpib2R5IHsKICBoZWlnaHQ6IDQwMDBweDsKICB3aWR0aDogODAwcHg7Cn0KaHRtbCB7
CiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMTAwJSAw
LCBmcm9tKCNmZjk5MDApLCBjb2xvci1zdG9wKDAuOCwgI2RmNzkwMCksIHRvKCNkZjc5MDApKTsK
fQo8L3N0eWxlPgo8c2NyaXB0Pgp3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgd2luZG93
LnNjcm9sbCgxMDAsIDApOwp9Cjwvc2NyaXB0Pgo8Ym9keT4KVHJ5IHNjcm9sbGluZyB0aGlzIHBh
Z2UgdG8gc2VlIGhvdyAqc2xvb293KiBpdCBpcyEKPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46638</attachid>
            <date>2010-01-14 20:33:59 -0800</date>
            <delta_ts>2010-01-14 20:41:02 -0800</delta_ts>
            <desc>Use 1-by-n tiles for horizontal and vertical linear gradients</desc>
            <filename>gradients_r1.diff</filename>
            <type>text/plain</type>
            <size>7858</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzMxNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDEtMTQgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjAyMDA4Mz4gLXdlYmtpdC1ncmFkaWVudCBzbG93cyBkb3duIHNjcm9sbGlu
ZyB3aGVuIHBhZ2UgaGFzIGhvcml6b250YWwgc2Nyb2xsYmFyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY1MAorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdGVk
SW1hZ2U6OmRyYXdQYXR0ZXJuKTogQWRkZWQgY2FsbCB0byBhZGp1c3RQYXJhbWV0ZXJzRm9yVGls
ZWREcmF3aW5nKCksCisgICAgICAgIGxldHRpbmcgdGhlIGdlbmVyYXRvciBzdWJzdGl0dXRlIHRo
ZSBwYXJhbWV0ZXJzIHdpdGggdmlzdWFsbHktZXF1aXZhbGVudCB2YWx1ZXMgdGhhdAorICAgICAg
ICBhcmUgbW9yZSBlZmZpY2llbnQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJh
dG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0b3I6OmFkanVzdFBhcmFtZXRlcnNGb3JU
aWxlZERyYXdpbmcpOiBBZGRlZCBhIGJhc2UgY2xhc3MgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
dGhhdCBkb2VzIG5vdGhpbmcuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OmFkanVzdFBhcmFtZXRlcnNGb3JUaWxl
ZERyYXdpbmcpOiBBZGRlZC4gSWYgdGhlIGdyYWRpZW50IGlzIGEgaG9yaXpvbnRhbAorICAgICAg
ICBvciB2ZXJ0aWNhbCBsaW5lYXIgZ3JhZGllbnQsIGNoYW5nZXMgdG8gdXNlIGEgMS1waXhlbCB0
YWxsIChvciB3aWRlKSB0aWxlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
Lmg6CisKIDIwMTAtMDEtMTQgIE5vcmJlcnQgTGVzZXIgIDxub3JiZXJ0Lmxlc2VyQG5va2lhLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBMYXN6bG8gR29tYm9zLgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAJKHJldmlzaW9uIDUzMzE0KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIENv
bXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4
LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAsMTcgKzEwLDE3IEBACiAgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCkBAIC01MCwxOSArNTAsMjYgQEAgdm9pZCBH
ZW5lcmF0ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleAogdm9pZCBHZW5lcmF0ZWRJbWFnZTo6
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBwYXR0ZXJuVHJhbnNmb3JtLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKIHsKKyAgICAvLyBBbGxvdyB0aGUgZ2VuZXJhdG9y
IHRvIHByb3ZpZGUgdmlzdWFsbHktZXF1aXZhbGVudCB0aWxpbmcgcGFyYW1ldGVycyBmb3IgYmV0
dGVyIHBlcmZvcm1hbmNlLgorICAgIEludFNpemUgYWRqdXN0ZWRTaXplID0gbV9zaXplOworICAg
IEZsb2F0UmVjdCBhZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OworICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IGFkanVzdGVkUGF0dGVyblRyYW5zZm9ybSA9IHBhdHRlcm5UcmFuc2Zvcm07CisgICAg
RmxvYXRQb2ludCBhZGp1c3RlZFBoYXNlID0gcGhhc2U7CisgICAgbV9nZW5lcmF0b3ItPmFkanVz
dFBhcmFtZXRlcnNGb3JUaWxlZERyYXdpbmcoYWRqdXN0ZWRTaXplLCBhZGp1c3RlZFNyY1JlY3Qs
IGFkanVzdGVkUGF0dGVyblRyYW5zZm9ybSwgYWRqdXN0ZWRQaGFzZSk7CisKICAgICAvLyBDcmVh
dGUgYSBCaXRtYXBJbWFnZSBhbmQgY2FsbCBkcmF3UGF0dGVybiBvbiBpdC4KLSAgICBPd25QdHI8
SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShtX3NpemUpOwor
ICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KGFkanVzdGVkU2l6ZSk7CiAgICAgQVNTRVJUKGltYWdlQnVmZmVyLmdldCgpKTsKLSAgICAKKwog
ICAgIC8vIEZpbGwgd2l0aCB0aGUgZ3JhZGllbnQuCiAgICAgR3JhcGhpY3NDb250ZXh0KiBncmFw
aGljc0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOwotICAgIGdyYXBoaWNzQ29udGV4
dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9zaXplKSwgKm1fZ2VuZXJhdG9y
LmdldCgpKTsKLSAgICAKKyAgICBncmFwaGljc0NvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChG
bG9hdFBvaW50KCksIGFkanVzdGVkU2l6ZSksICptX2dlbmVyYXRvci5nZXQoKSk7CisKICAgICAv
LyBHcmFiIHRoZSBmaW5hbCBpbWFnZSBmcm9tIHRoZSBpbWFnZSBidWZmZXIuCiAgICAgSW1hZ2Uq
IGJpdG1hcCA9IGltYWdlQnVmZmVyLT5pbWFnZSgpOwotICAgIAorCiAgICAgLy8gTm93IGp1c3Qg
Y2FsbCBkcmF3VGlsZWQgb24gdGhhdCBpbWFnZS4KLSAgICBiaXRtYXAtPmRyYXdQYXR0ZXJuKGNv
bnRleHQsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzdHlsZUNvbG9yU3BhY2Us
IGNvbXBvc2l0ZU9wLCBkZXN0UmVjdCk7CisgICAgYml0bWFwLT5kcmF3UGF0dGVybihjb250ZXh0
LCBhZGp1c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVyblRyYW5zZm9ybSwgYWRqdXN0ZWRQaGFz
ZSwgc3R5bGVDb2xvclNwYWNlLCBjb21wb3NpdGVPcCwgZGVzdFJlY3QpOwogfQogCiB9CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdG9yLmgJKHJldmlzaW9uIDUzMzE0KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MzgsNiArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+R2VuZXJhdG9yKCkge307CiAgICAg
CiAgICAgdmlydHVhbCB2b2lkIGZpbGwoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RQYXJhbWV0ZXJzRm9yVGlsZWREcmF3aW5n
KEludFNpemUmIC8qIHNpemUgKi8sIEZsb2F0UmVjdCYgLyogc3JjUmVjdCAqLywgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIC8qIHBhdHRlcm5UcmFuc2Zvcm0gKi8sIEZsb2F0UG9pbnQmIC8qIHBoYXNl
ICovKSB7IH0KIH07CiAKIH0gLy9uYW1lc3BhY2UKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuY3BwCShyZXZpc2lvbiA1MzMxNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yOCw2ICsyOCw4IEBACiAjaW5j
bHVkZSAiR3JhZGllbnQuaCIKIAogI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNjIsNiArNjQsMzAgQEAgR3JhZGllbnQ6On5HcmFkaWVudCgpCiAgICAgcGxhdGZv
cm1EZXN0cm95KCk7CiB9CiAKK3ZvaWQgR3JhZGllbnQ6OmFkanVzdFBhcmFtZXRlcnNGb3JUaWxl
ZERyYXdpbmcoSW50U2l6ZSYgc2l6ZSwgRmxvYXRSZWN0JiBzcmNSZWN0LCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgcGF0dGVyblRyYW5zZm9ybSwgRmxvYXRQb2ludCYgcGhhc2UpCit7CisgICAgVU5V
U0VEX1BBUkFNKHBhdHRlcm5UcmFuc2Zvcm0pOworICAgIFVOVVNFRF9QQVJBTShwaGFzZSk7CisK
KyAgICBpZiAobV9yYWRpYWwpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzcmNSZWN0Lmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcDAueCgpID09IG1fcDEueCgp
KSB7CisgICAgICAgIHNpemUuc2V0V2lkdGgoMSk7CisgICAgICAgIHNyY1JlY3Quc2V0V2lkdGgo
MSk7CisgICAgICAgIHNyY1JlY3Quc2V0WCgwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBpZiAobV9wMC55KCkgIT0gbV9wMS55KCkpCisgICAgICAgIHJldHVybjsKKyAgICBzaXplLnNl
dEhlaWdodCgxKTsKKyAgICBzcmNSZWN0LnNldEhlaWdodCgxKTsKKyAgICBzcmNSZWN0LnNldFko
MCk7Cit9CisKIHZvaWQgR3JhZGllbnQ6OmFkZENvbG9yU3RvcChmbG9hdCB2YWx1ZSwgY29uc3Qg
Q29sb3ImIGNvbG9yKQogewogICAgIGZsb2F0IHI7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5oCShyZXZpc2lvbiA1MzMxNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZ3JhZGllbnRTcGFjZVRy
YW5zZm9ybSgpIHsgcmV0dXJuIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uOyB9CiAKICAg
ICAgICAgdmlydHVhbCB2b2lkIGZpbGwoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0
Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RQYXJhbWV0ZXJzRm9yVGlsZWREcmF3aW5n
KEludFNpemUmIHNpemUsIEZsb2F0UmVjdCYgc3JjUmVjdCwgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IHBhdHRlcm5UcmFuc2Zvcm0sIEZsb2F0UG9pbnQmIHBoYXNlKTsKKwogICAgICAgICB2b2lkIHNl
dFBsYXRmb3JtR3JhZGllbnRTcGFjZVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybWF0aW9uKTsKIAogICAgIHByaXZhdGU6Cg==
</data>
<flag name="review"
          id="28938"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>