<?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>92974</bug_id>
          
          <creation_ts>2012-08-02 04:16:40 -0700</creation_ts>
          <short_desc>Fix  LayoutTests/canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html</short_desc>
          <delta_ts>2013-08-08 02:33:40 -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>Canvas</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://w3c-test.org/html/tests/approved/canvas/2d.text.draw.space.collapse.nonspace.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>61799</dependson>
          <blocked>46506</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Pravin D">pravind.2k4</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>arpitabahuguna</cc>
    
    <cc>cdumez</cc>
    
    <cc>dglazkov</cc>
    
    <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>pravind</cc>
    
    <cc>rakuco</cc>
    
    <cc>rashmi.s2</cc>
    
    <cc>rashmi.shyam</cc>
    
    <cc>s.choi</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>685213</commentid>
    <comment_count>0</comment_count>
    <who name="Pravin D">pravind.2k4</who>
    <bug_when>2012-08-02 04:16:40 -0700</bug_when>
    <thetext>Fix LayoutTests/canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html. This is failing because we are collapsing some whitespace characters in canvas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688388</commentid>
    <comment_count>1</comment_count>
    <who name="Pravin D">pravind.2k4</who>
    <bug_when>2012-08-06 13:35:43 -0700</bug_when>
    <thetext>The issue is that when calculating the text run width in CanvasRenderingContext2D::drawTextInternal() the character \x0b(vertical tab) is not replaced by space(U+0020) character(according to SPEC). \x0b being the zero width space character for the given font text run width is calculated incorrectly.

SPEC: http://www.w3.org/TR/2dcontext/#drawing-text-to-the-canvas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694933</commentid>
    <comment_count>2</comment_count>
      <attachid>158320</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-14 07:10:30 -0700</bug_when>
    <thetext>Created attachment 158320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694947</commentid>
    <comment_count>3</comment_count>
      <attachid>158320</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 07:26:39 -0700</bug_when>
    <thetext>Comment on attachment 158320
Patch

Attachment 158320 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13489685</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694948</commentid>
    <comment_count>4</comment_count>
      <attachid>158320</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-14 07:28:58 -0700</bug_when>
    <thetext>Comment on attachment 158320
Patch

Attachment 158320 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13491611</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694970</commentid>
    <comment_count>5</comment_count>
      <attachid>158329</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-14 07:52:14 -0700</bug_when>
    <thetext>Created attachment 158329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694973</commentid>
    <comment_count>6</comment_count>
      <attachid>158329</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 07:55:20 -0700</bug_when>
    <thetext>Comment on attachment 158329
Patch

Attachment 158329 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13489695</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694974</commentid>
    <comment_count>7</comment_count>
      <attachid>158329</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-14 07:58:58 -0700</bug_when>
    <thetext>Comment on attachment 158329
Patch

Attachment 158329 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13493648</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694990</commentid>
    <comment_count>8</comment_count>
      <attachid>158329</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-08-14 08:09:38 -0700</bug_when>
    <thetext>Comment on attachment 158329
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=158329&amp;action=review

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2135
&gt; +static String replaceInString(const String&amp; text, WTF::CharacterMatchFunctionPtr matchFunction, const String&amp; replacement)

replaceOccurrenceInString ? InString makes it sounds a bit like it is replacing in the original string

Maybe substituteOccurancesInString ?

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2141
&gt; +        index += replacement.length();

Why not store the length?

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2164
&gt; +    String cleanedText = replaceInString(text, isSpaceOrNewline, &quot;\u0020&quot;);

cleaned doesn&apos;t sounds so nice, what about legalText or normalizedText or similar</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694995</commentid>
    <comment_count>9</comment_count>
      <attachid>158329</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-14 08:14:27 -0700</bug_when>
    <thetext>Comment on attachment 158329
Patch

Attachment 158329 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13503222</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695003</commentid>
    <comment_count>10</comment_count>
      <attachid>158329</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-14 08:31:19 -0700</bug_when>
    <thetext>Comment on attachment 158329
Patch

Attachment 158329 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13501241</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695004</commentid>
    <comment_count>11</comment_count>
    <who name="Pravin D">pravind.2k4</who>
    <bug_when>2012-08-14 08:31:32 -0700</bug_when>
    <thetext>Christophe Dumez u might want to see the https://bugs.webkit.org/show_bug.cgi?id=61799 ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695018</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-14 08:51:39 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Christophe Dumez u might want to see the https://bugs.webkit.org/show_bug.cgi?id=61799 ...

Thanks for the heads up. I had a quick look but that patch and it is not going to help for this present test (canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html) since we do NOT want to simplify white spaces. We want to replaces space characters by u+0020, that&apos;s it, no collapsing. If we collapse spaces, then canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html will still fail.

Do we want to merge the patches?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695019</commentid>
    <comment_count>13</comment_count>
      <attachid>158329</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-14 08:53:10 -0700</bug_when>
    <thetext>Comment on attachment 158329
Patch

Attachment 158329 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13486956</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695057</commentid>
    <comment_count>14</comment_count>
    <who name="Pravin D">pravind.2k4</who>
    <bug_when>2012-08-14 09:40:05 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Christophe Dumez u might want to see the https://bugs.webkit.org/show_bug.cgi?id=61799 ...
&gt; 
&gt; Thanks for the heads up. I had a quick look but that patch and it is not going to help for this present test (canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html) since we do NOT want to simplify white spaces. We want to replaces space characters by u+0020, that&apos;s it, no collapsing. If we collapse spaces, then canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html will still fail.

&gt; 

I&apos;m don&apos;t think the space is getting collapsed in the other patch(bug 61799). He is doing a very similar thing to what you are doing. However the function that decides if a character is space or newline seems to be the difference.

&gt; 
&gt; Do we want to merge the patches?
&gt; 
Maybe u can ask some reviewer on this :) .

PS: 

String cleanedText = replaceInString(text, isSpaceOrNewline, &quot;\u0020&quot;); u might want to replace &quot;\u0020&quot; with space (&apos; &apos;). I think its ok to do so not sure though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695071</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-14 09:47:55 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; Christophe Dumez u might want to see the https://bugs.webkit.org/show_bug.cgi?id=61799 ...
&gt; &gt; 
&gt; &gt; Thanks for the heads up. I had a quick look but that patch and it is not going to help for this present test (canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html) since we do NOT want to simplify white spaces. We want to replaces space characters by u+0020, that&apos;s it, no collapsing. If we collapse spaces, then canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html will still fail.
&gt; 
&gt; &gt; 
&gt; 
&gt; I&apos;m don&apos;t think the space is getting collapsed in the other patch(bug 61799). He is doing a very similar thing to what you are doing. However the function that decides if a character is space or newline seems to be the difference.

well, the other patch calls simplifyWhiteSpace(), which collapses spaces.

&gt; 
&gt; &gt; 
&gt; &gt; Do we want to merge the patches?
&gt; &gt; 
&gt; Maybe u can ask some reviewer on this :) .
&gt; 
&gt; PS: 
&gt; 
&gt; String cleanedText = replaceInString(text, isSpaceOrNewline, &quot;\u0020&quot;); u might want to replace &quot;\u0020&quot; with space (&apos; &apos;). I think its ok to do so not sure though.

Right, this is why EWS bots are complaining. I&apos;m fixing it now. \u0020 is equivalent to an ASCII space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695072</commentid>
    <comment_count>16</comment_count>
      <attachid>158351</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-14 09:50:38 -0700</bug_when>
    <thetext>Created attachment 158351
Patch

Take Kenneth&apos;s feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695105</commentid>
    <comment_count>17</comment_count>
      <attachid>158351</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 10:16:35 -0700</bug_when>
    <thetext>Comment on attachment 158351
Patch

Clearing flags on attachment: 158351

Committed r125575: &lt;http://trac.webkit.org/changeset/125575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695106</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 10:16:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698232</commentid>
    <comment_count>19</comment_count>
    <who name="Pravin D">pravind.2k4</who>
    <bug_when>2012-08-17 05:18:49 -0700</bug_when>
    <thetext>There is a bug in w3 regarding a similar issue.
https://www.w3.org/Bugs/Public/show_bug.cgi?id=15925 

Is it a little contradicting to this fix ?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158320</attachid>
            <date>2012-08-14 07:10:30 -0700</date>
            <delta_ts>2012-08-14 07:52:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>92974_canvas_space_replace.patch</filename>
            <type>text/plain</type>
            <size>8600</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4YTVmN2E0Li42ODIxNzgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDgt
MTQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBGaXggIExheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNw
YWNlLmNvbGxhcHNlLm5vbnNwYWNlLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkyOTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5za2lwIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3
LnNwYWNlLmNvbGxhcHNlLm5vbnNwYWNlLmh0bWwgZm9yCisgICAgICAgIGFsbCB0aGUgcG9ydHMg
bm93IHRoYXQgc3BhY2UgY2hhcmFjdGVycyBhcmUgY29ycmVjdGx5IHJlcGxhY2VkIGluCisgICAg
ICAgIHRoZSB0ZXh0IHBhc3NlZCB0byBmaWxsVGV4dCgpIGFuZCBzdHJva2VUZXh0KCkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQu
ZHJhdy5zcGFjZS5jb2xsYXBzZS5ub25zcGFjZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMi0wOC0xNCAgWXV0YSBLaXRhbXVyYSAg
PHl1dGFrQGdvb2dsZS5jb20+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRl
bmluZy4gQWRkIGV4cGVjdGF0aW9ucyBmb3IgcmVjZW50IGZsYWtpbmVzcy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDRmZDJmNWUuLmU5
ZmEzNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTkyNSwxMiArMTkyNSwxMCBAQCBCVUdXSzM4NDYzIDogY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUudG9wLmh0bWwgPSBURVhUCiBCVUdXSzM4NDYzIDog
cGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0
LmRyYXcuYmFzZWxpbmUudG9wLmh0bWwgPSBURVhUCiAKIEJVR1dLNDU5OTEgOiBjYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5lbmQuaHRtbCA9IFRFWFQKLUJV
R1dLNDU5OTEgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBz
ZS5ub25zcGFjZS5odG1sID0gVEVYVAogQlVHV0s0NTk5MSA6IGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLm90aGVyLmh0bWwgPSBURVhUCiBCVUdXSzQ1OTkx
IDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3BhY2Uu
aHRtbCA9IFRFWFQKIEJVR1dLNDU5OTEgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJh
dy5zcGFjZS5jb2xsYXBzZS5zdGFydC5odG1sID0gVEVYVAogQlVHV0s0NTk5MSA6IHBsYXRmb3Jt
L2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNw
YWNlLmNvbGxhcHNlLmVuZC5odG1sID0gVEVYVAotQlVHV0s0NTk5MSA6IHBsYXRmb3JtL2Nocm9t
aXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNv
bGxhcHNlLm5vbnNwYWNlLmh0bWwgPSBURVhUCiBCVUdXSzQ1OTkxIDogcGxhdGZvcm0vY2hyb21p
dW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29s
bGFwc2Uub3RoZXIuaHRtbCA9IFRFWFQKIEJVR1dLNDU5OTEgOiBwbGF0Zm9ybS9jaHJvbWl1bS92
aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBz
ZS5zcGFjZS5odG1sID0gVEVYVAogQlVHV0s0NTk5MSA6IHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1
YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLnN0
YXJ0Lmh0bWwgPSBURVhUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDFjYzBjMzguLmZi
MDk3YzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC0zMjEsNyArMzIxLDYgQEAgY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUuaWRlb2dyYXBoaWMuaHRtbAog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUubWlkZGxlLmh0bWwKIGNh
bnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLnRvcC5odG1sCiBjYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5lbmQuaHRtbAotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2UuaHRtbAog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uub3RoZXIuaHRt
bAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3BhY2Uu
aHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3Rh
cnQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1
ZTFiNWQwLi5iYjU2Mzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtOTAzLDcgKzkwMyw2IEBAIEJVR1dLR1RLIDogY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC50ZXh0LmRyYXcuYmFzZWxpbmUuaWRlb2dyYXBoaWMuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUubWlkZGxlLmh0bWwgPSBU
RVhUCiBCVUdXS0dUSyA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5l
LnRvcC5odG1sID0gVEVYVAogQlVHV0tHVEsgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQu
ZHJhdy5zcGFjZS5jb2xsYXBzZS5lbmQuaHRtbCA9IFRFWFQKLUJVR1dLR1RLIDogY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2UuaHRtbCA9IFRF
WFQKIEJVR1dLR1RLIDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29s
bGFwc2Uub3RoZXIuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDogY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3BhY2UuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3RhcnQuaHRt
bCA9IFRFWFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5ub25zcGFjZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0
LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2ZGQwOTIyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5u
b25zcGFjZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1GYWlsZWQg
YXNzZXJ0aW9uOiBnb3QgcGl4ZWwgWzI1NSwwLDAsMjU1XSBhdCAoNzUsMjUpLCBleHBlY3RlZCBb
MCwyNTUsMCwyNTVdICsvLSAyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCAxZmM4M2VlLi43
YmZjYjE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTIxMDcsNyArMjEwNyw2IEBAIGNh
bnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLm1pZGRsZS5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5iYXNlbGluZS50b3AuaHRtbAogY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuZm9udGZhY2Uubm90aW5wYWdlLmh0bWwKIGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLmVuZC5odG1sCi1jYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5ub25zcGFjZS5odG1sCiBj
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5vdGhlci5odG1s
CiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5zcGFjZS5o
dG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5zdGFy
dC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMGYzMWNhYS4uZDU1ZGNmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEyLTA4LTE0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1l
ekBpbnRlbC5jb20+CisKKyAgICAgICAgRml4IExheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVz
dHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLm5vbnNwYWNlLmh0bWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyOTc0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBzcGFjZSBjaGFyYWN0
ZXJzIGJ5IFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXJzIGluCisgICAgICAgIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCgpIGluIG9yZGVyIHRvCisgICAgICAgIGNvbXBs
eSB3aXRoIHRoZSBIVE1MIENhbnZhcyAyRCBDb250ZXh0IHNwZWNpZmljYXRpb246CisgICAgICAg
IC0gaHR0cDovL3d3dy53My5vcmcvVFIvMmRjb250ZXh0LyNkcmF3aW5nLXRleHQtdG8tdGhlLWNh
bnZhcworCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWxyZWFkeSB0ZXN0ZWQgYnkgY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2UuaHRtbC4KKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpyZXBsYWNlSW5TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwp
OgorCiAyMDEyLTA4LTE0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBBdXRob3JTaGFkb3dET00gZm9yIG1ldGVyIGVsZW1lbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
CmluZGV4IGEwNzM4MDIuLjUwMmU1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMjEzMiw2ICsyMTMy
LDE4IEBAIFBhc3NSZWZQdHI8VGV4dE1ldHJpY3M+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
bWVhc3VyZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0CiAgICAgcmV0dXJuIG1ldHJpY3MucmVsZWFz
ZSgpOwogfQogCitzdGF0aWMgU3RyaW5nIHJlcGxhY2VJblN0cmluZyhjb25zdCBTdHJpbmcmIHRl
eHQsIFdURjo6Q2hhcmFjdGVyTWF0Y2hGdW5jdGlvblB0ciBtYXRjaEZ1bmN0aW9uLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50KQoreworICAgIFN0cmluZyByZXN1bHQgPSB0ZXh0OworICAgIHNp
emVfdCBpbmRleCA9IDA7CisgICAgd2hpbGUgKGluZGV4ID0gcmVzdWx0LmZpbmQobWF0Y2hGdW5j
dGlvbiwgaW5kZXgpICE9IG5vdEZvdW5kKSB7CisgICAgICAgIHJlc3VsdC5yZXBsYWNlKGluZGV4
LCAxLCByZXBsYWNlbWVudCk7CisgICAgICAgIGluZGV4ICs9IHJlcGxhY2VtZW50Lmxlbmd0aCgp
ICsgMTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0
IHgsIGZsb2F0IHksIGJvb2wgZmlsbCwgZmxvYXQgbWF4V2lkdGgsIGJvb2wgdXNlTWF4V2lkdGgp
CiB7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKQEAgLTIxNDgs
NiArMjE2MCw4IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVy
bmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICBjb25zdCBGb250JiBm
b250ID0gYWNjZXNzRm9udCgpOwogICAgIGNvbnN0IEZvbnRNZXRyaWNzJiBmb250TWV0cmljcyA9
IGZvbnQuZm9udE1ldHJpY3MoKTsKKyAgICAvLyBBY2NvcmRpbmcgdG8gc3BlYywgYWxsIHRoZSBz
cGFjZSBjaGFyYWN0ZXJzIG11c3QgYmUgcmVwbGFjZWQgd2l0aCBVKzAwMjAgU1BBQ0UgY2hhcmFj
dGVycy4KKyAgICBTdHJpbmcgY2xlYW5lZFRleHQgPSByZXBsYWNlSW5TdHJpbmcodGV4dCwgaXNT
cGFjZU9yTmV3bGluZSwgIlx1MDAyMCIpOwogCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gdHVybiBv
ZmYgZm9udCBzbW9vdGhpbmcuCiAKQEAgLTIxNTYsNyArMjE3MCw3IEBAIHZvaWQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxv
YXQgeCwgZmxvCiAgICAgYm9vbCBpc1JUTCA9IGRpcmVjdGlvbiA9PSBSVEw7CiAgICAgYm9vbCBv
dmVycmlkZSA9IGNvbXB1dGVkU3R5bGUgPyBpc092ZXJyaWRlKGNvbXB1dGVkU3R5bGUtPnVuaWNv
ZGVCaWRpKCkpIDogZmFsc2U7CiAKLSAgICBUZXh0UnVuIHRleHRSdW4odGV4dCwgMCwgMCwgVGV4
dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lvbiwgZGlyZWN0aW9uLCBvdmVycmlkZSwgdHJ1ZSwg
VGV4dFJ1bjo6Tm9Sb3VuZGluZyk7CisgICAgVGV4dFJ1biB0ZXh0UnVuKGNsZWFuZWRUZXh0LCAw
LCAwLCBUZXh0UnVuOjpBbGxvd1RyYWlsaW5nRXhwYW5zaW9uLCBkaXJlY3Rpb24sIG92ZXJyaWRl
LCB0cnVlLCBUZXh0UnVuOjpOb1JvdW5kaW5nKTsKICAgICAvLyBEcmF3IHRoZSBpdGVtIHRleHQg
YXQgdGhlIGNvcnJlY3QgcG9pbnQuCiAgICAgRmxvYXRQb2ludCBsb2NhdGlvbih4LCB5KTsKICAg
ICBzd2l0Y2ggKHN0YXRlKCkubV90ZXh0QmFzZWxpbmUpIHsKQEAgLTIxNzcsNyArMjE5MSw3IEBA
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0
cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGZs
b2F0IGZvbnRXaWR0aCA9IGZvbnQud2lkdGgoVGV4dFJ1bih0ZXh0LCAwLCAwLCBUZXh0UnVuOjpB
bGxvd1RyYWlsaW5nRXhwYW5zaW9uLCBkaXJlY3Rpb24sIG92ZXJyaWRlKSk7CisgICAgZmxvYXQg
Zm9udFdpZHRoID0gZm9udC53aWR0aChUZXh0UnVuKGNsZWFuZWRUZXh0LCAwLCAwLCBUZXh0UnVu
OjpBbGxvd1RyYWlsaW5nRXhwYW5zaW9uLCBkaXJlY3Rpb24sIG92ZXJyaWRlKSk7CiAKICAgICB1
c2VNYXhXaWR0aCA9ICh1c2VNYXhXaWR0aCAmJiBtYXhXaWR0aCA8IGZvbnRXaWR0aCk7CiAgICAg
ZmxvYXQgd2lkdGggPSB1c2VNYXhXaWR0aCA/IG1heFdpZHRoIDogZm9udFdpZHRoOwo=
</data>
<flag name="commit-queue"
          id="168412"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158329</attachid>
            <date>2012-08-14 07:52:14 -0700</date>
            <delta_ts>2012-08-14 09:50:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>92974_canvas_space_replace.patch</filename>
            <type>text/plain</type>
            <size>8598</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4YTVmN2E0Li42ODIxNzgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDgt
MTQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBGaXggIExheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNw
YWNlLmNvbGxhcHNlLm5vbnNwYWNlLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkyOTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5za2lwIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3
LnNwYWNlLmNvbGxhcHNlLm5vbnNwYWNlLmh0bWwgZm9yCisgICAgICAgIGFsbCB0aGUgcG9ydHMg
bm93IHRoYXQgc3BhY2UgY2hhcmFjdGVycyBhcmUgY29ycmVjdGx5IHJlcGxhY2VkIGluCisgICAg
ICAgIHRoZSB0ZXh0IHBhc3NlZCB0byBmaWxsVGV4dCgpIGFuZCBzdHJva2VUZXh0KCkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQu
ZHJhdy5zcGFjZS5jb2xsYXBzZS5ub25zcGFjZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMi0wOC0xNCAgWXV0YSBLaXRhbXVyYSAg
PHl1dGFrQGdvb2dsZS5jb20+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRl
bmluZy4gQWRkIGV4cGVjdGF0aW9ucyBmb3IgcmVjZW50IGZsYWtpbmVzcy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDRmZDJmNWUuLmU5
ZmEzNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTkyNSwxMiArMTkyNSwxMCBAQCBCVUdXSzM4NDYzIDogY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUudG9wLmh0bWwgPSBURVhUCiBCVUdXSzM4NDYzIDog
cGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0
LmRyYXcuYmFzZWxpbmUudG9wLmh0bWwgPSBURVhUCiAKIEJVR1dLNDU5OTEgOiBjYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5lbmQuaHRtbCA9IFRFWFQKLUJV
R1dLNDU5OTEgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBz
ZS5ub25zcGFjZS5odG1sID0gVEVYVAogQlVHV0s0NTk5MSA6IGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLm90aGVyLmh0bWwgPSBURVhUCiBCVUdXSzQ1OTkx
IDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3BhY2Uu
aHRtbCA9IFRFWFQKIEJVR1dLNDU5OTEgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJh
dy5zcGFjZS5jb2xsYXBzZS5zdGFydC5odG1sID0gVEVYVAogQlVHV0s0NTk5MSA6IHBsYXRmb3Jt
L2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNw
YWNlLmNvbGxhcHNlLmVuZC5odG1sID0gVEVYVAotQlVHV0s0NTk5MSA6IHBsYXRmb3JtL2Nocm9t
aXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNv
bGxhcHNlLm5vbnNwYWNlLmh0bWwgPSBURVhUCiBCVUdXSzQ1OTkxIDogcGxhdGZvcm0vY2hyb21p
dW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29s
bGFwc2Uub3RoZXIuaHRtbCA9IFRFWFQKIEJVR1dLNDU5OTEgOiBwbGF0Zm9ybS9jaHJvbWl1bS92
aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBz
ZS5zcGFjZS5odG1sID0gVEVYVAogQlVHV0s0NTk5MSA6IHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1
YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLnN0
YXJ0Lmh0bWwgPSBURVhUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDFjYzBjMzguLmZi
MDk3YzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC0zMjEsNyArMzIxLDYgQEAgY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUuaWRlb2dyYXBoaWMuaHRtbAog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUubWlkZGxlLmh0bWwKIGNh
bnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLnRvcC5odG1sCiBjYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5lbmQuaHRtbAotY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2UuaHRtbAog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uub3RoZXIuaHRt
bAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3BhY2Uu
aHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3Rh
cnQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1
ZTFiNWQwLi5iYjU2Mzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtOTAzLDcgKzkwMyw2IEBAIEJVR1dLR1RLIDogY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC50ZXh0LmRyYXcuYmFzZWxpbmUuaWRlb2dyYXBoaWMuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUubWlkZGxlLmh0bWwgPSBU
RVhUCiBCVUdXS0dUSyA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5l
LnRvcC5odG1sID0gVEVYVAogQlVHV0tHVEsgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQu
ZHJhdy5zcGFjZS5jb2xsYXBzZS5lbmQuaHRtbCA9IFRFWFQKLUJVR1dLR1RLIDogY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2UuaHRtbCA9IFRF
WFQKIEJVR1dLR1RLIDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29s
bGFwc2Uub3RoZXIuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDogY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3BhY2UuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3RhcnQuaHRt
bCA9IFRFWFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5ub25zcGFjZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0
LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2ZGQwOTIyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5u
b25zcGFjZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1GYWlsZWQg
YXNzZXJ0aW9uOiBnb3QgcGl4ZWwgWzI1NSwwLDAsMjU1XSBhdCAoNzUsMjUpLCBleHBlY3RlZCBb
MCwyNTUsMCwyNTVdICsvLSAyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCAxZmM4M2VlLi43
YmZjYjE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTIxMDcsNyArMjEwNyw2IEBAIGNh
bnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLm1pZGRsZS5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5iYXNlbGluZS50b3AuaHRtbAogY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuZm9udGZhY2Uubm90aW5wYWdlLmh0bWwKIGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLmVuZC5odG1sCi1jYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5ub25zcGFjZS5odG1sCiBj
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5vdGhlci5odG1s
CiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5zcGFjZS5o
dG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5zdGFy
dC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMGYzMWNhYS4uZDU1ZGNmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEyLTA4LTE0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1l
ekBpbnRlbC5jb20+CisKKyAgICAgICAgRml4IExheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVz
dHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLm5vbnNwYWNlLmh0bWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyOTc0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBzcGFjZSBjaGFyYWN0
ZXJzIGJ5IFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXJzIGluCisgICAgICAgIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCgpIGluIG9yZGVyIHRvCisgICAgICAgIGNvbXBs
eSB3aXRoIHRoZSBIVE1MIENhbnZhcyAyRCBDb250ZXh0IHNwZWNpZmljYXRpb246CisgICAgICAg
IC0gaHR0cDovL3d3dy53My5vcmcvVFIvMmRjb250ZXh0LyNkcmF3aW5nLXRleHQtdG8tdGhlLWNh
bnZhcworCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWxyZWFkeSB0ZXN0ZWQgYnkgY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2UuaHRtbC4KKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpyZXBsYWNlSW5TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwp
OgorCiAyMDEyLTA4LTE0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBBdXRob3JTaGFkb3dET00gZm9yIG1ldGVyIGVsZW1lbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
CmluZGV4IGEwNzM4MDIuLmFhOWU2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMjEzMiw2ICsyMTMy
LDE4IEBAIFBhc3NSZWZQdHI8VGV4dE1ldHJpY3M+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
bWVhc3VyZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0CiAgICAgcmV0dXJuIG1ldHJpY3MucmVsZWFz
ZSgpOwogfQogCitzdGF0aWMgU3RyaW5nIHJlcGxhY2VJblN0cmluZyhjb25zdCBTdHJpbmcmIHRl
eHQsIFdURjo6Q2hhcmFjdGVyTWF0Y2hGdW5jdGlvblB0ciBtYXRjaEZ1bmN0aW9uLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50KQoreworICAgIFN0cmluZyByZXN1bHQgPSB0ZXh0OworICAgIHNp
emVfdCBpbmRleCA9IDA7CisgICAgd2hpbGUgKChpbmRleCA9IHJlc3VsdC5maW5kKG1hdGNoRnVu
Y3Rpb24sIGluZGV4KSkgIT0gbm90Rm91bmQpIHsKKyAgICAgICAgcmVzdWx0LnJlcGxhY2UoaW5k
ZXgsIDEsIHJlcGxhY2VtZW50KTsKKyAgICAgICAgaW5kZXggKz0gcmVwbGFjZW1lbnQubGVuZ3Ro
KCk7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4
LCBmbG9hdCB5LCBib29sIGZpbGwsIGZsb2F0IG1heFdpZHRoLCBib29sIHVzZU1heFdpZHRoKQog
ewogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CkBAIC0yMTQ4LDYg
KzIxNjAsOCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5h
bChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsbwogCiAgICAgY29uc3QgRm9udCYgZm9u
dCA9IGFjY2Vzc0ZvbnQoKTsKICAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MgPSBm
b250LmZvbnRNZXRyaWNzKCk7CisgICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMsIGFsbCB0aGUgc3Bh
Y2UgY2hhcmFjdGVycyBtdXN0IGJlIHJlcGxhY2VkIHdpdGggVSswMDIwIFNQQUNFIGNoYXJhY3Rl
cnMuCisgICAgU3RyaW5nIGNsZWFuZWRUZXh0ID0gcmVwbGFjZUluU3RyaW5nKHRleHQsIGlzU3Bh
Y2VPck5ld2xpbmUsICJcdTAwMjAiKTsKIAogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHR1cm4gb2Zm
IGZvbnQgc21vb3RoaW5nLgogCkBAIC0yMTU2LDcgKzIxNzAsNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0
IHgsIGZsbwogICAgIGJvb2wgaXNSVEwgPSBkaXJlY3Rpb24gPT0gUlRMOwogICAgIGJvb2wgb3Zl
cnJpZGUgPSBjb21wdXRlZFN0eWxlID8gaXNPdmVycmlkZShjb21wdXRlZFN0eWxlLT51bmljb2Rl
QmlkaSgpKSA6IGZhbHNlOwogCi0gICAgVGV4dFJ1biB0ZXh0UnVuKHRleHQsIDAsIDAsIFRleHRS
dW46OkFsbG93VHJhaWxpbmdFeHBhbnNpb24sIGRpcmVjdGlvbiwgb3ZlcnJpZGUsIHRydWUsIFRl
eHRSdW46Ok5vUm91bmRpbmcpOworICAgIFRleHRSdW4gdGV4dFJ1bihjbGVhbmVkVGV4dCwgMCwg
MCwgVGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lvbiwgZGlyZWN0aW9uLCBvdmVycmlkZSwg
dHJ1ZSwgVGV4dFJ1bjo6Tm9Sb3VuZGluZyk7CiAgICAgLy8gRHJhdyB0aGUgaXRlbSB0ZXh0IGF0
IHRoZSBjb3JyZWN0IHBvaW50LgogICAgIEZsb2F0UG9pbnQgbG9jYXRpb24oeCwgeSk7CiAgICAg
c3dpdGNoIChzdGF0ZSgpLm1fdGV4dEJhc2VsaW5lKSB7CkBAIC0yMTc3LDcgKzIxOTEsNyBAQCB2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJp
bmcmIHRleHQsIGZsb2F0IHgsIGZsbwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBmbG9h
dCBmb250V2lkdGggPSBmb250LndpZHRoKFRleHRSdW4odGV4dCwgMCwgMCwgVGV4dFJ1bjo6QWxs
b3dUcmFpbGluZ0V4cGFuc2lvbiwgZGlyZWN0aW9uLCBvdmVycmlkZSkpOworICAgIGZsb2F0IGZv
bnRXaWR0aCA9IGZvbnQud2lkdGgoVGV4dFJ1bihjbGVhbmVkVGV4dCwgMCwgMCwgVGV4dFJ1bjo6
QWxsb3dUcmFpbGluZ0V4cGFuc2lvbiwgZGlyZWN0aW9uLCBvdmVycmlkZSkpOwogCiAgICAgdXNl
TWF4V2lkdGggPSAodXNlTWF4V2lkdGggJiYgbWF4V2lkdGggPCBmb250V2lkdGgpOwogICAgIGZs
b2F0IHdpZHRoID0gdXNlTWF4V2lkdGggPyBtYXhXaWR0aCA6IGZvbnRXaWR0aDsK
</data>
<flag name="commit-queue"
          id="168420"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158351</attachid>
            <date>2012-08-14 09:50:38 -0700</date>
            <delta_ts>2012-08-14 10:16:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>92974_canvas_space_replace.patch</filename>
            <type>text/plain</type>
            <size>8695</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MGEyZTVmLi4wM2NjN2U5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDgt
MTQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBGaXggIExheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNw
YWNlLmNvbGxhcHNlLm5vbnNwYWNlLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkyOTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5za2lwIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3
LnNwYWNlLmNvbGxhcHNlLm5vbnNwYWNlLmh0bWwgZm9yCisgICAgICAgIGFsbCB0aGUgcG9ydHMg
bm93IHRoYXQgc3BhY2UgY2hhcmFjdGVycyBhcmUgY29ycmVjdGx5IHJlcGxhY2VkIGluCisgICAg
ICAgIHRoZSB0ZXh0IHBhc3NlZCB0byBmaWxsVGV4dCgpIGFuZCBzdHJva2VUZXh0KCkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQu
ZHJhdy5zcGFjZS5jb2xsYXBzZS5ub25zcGFjZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMi0wOC0xNCAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVcGRhdGUgZXhwZWN0YXRp
b24gZmlsZXMgZm9yIGZhc3QvZm9ybXMvZGF0ZS9jYWxlbmRhci1waWNrZXItYXBwZWFyYW5jZS5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA0ZmQyZjVlLi5lOWZhMzViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE5MjUsMTIgKzE5MjUsMTAgQEAgQlVHV0szODQ2MyA6
IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLnRvcC5odG1sID0gVEVY
VAogQlVHV0szODQ2MyA6IHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGls
aXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLnRvcC5odG1sID0gVEVYVAogCiBCVUdXSzQ1
OTkxIDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2UuZW5k
Lmh0bWwgPSBURVhUCi1CVUdXSzQ1OTkxIDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRy
YXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2UuaHRtbCA9IFRFWFQKIEJVR1dLNDU5OTEgOiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5vdGhlci5odG1sID0g
VEVYVAogQlVHV0s0NTk5MSA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNl
LmNvbGxhcHNlLnNwYWNlLmh0bWwgPSBURVhUCiBCVUdXSzQ1OTkxIDogY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uuc3RhcnQuaHRtbCA9IFRFWFQKIEJVR1dL
NDU5OTEgOiBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5lbmQuaHRtbCA9IFRFWFQKLUJVR1dLNDU5OTEg
OiBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRl
eHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5ub25zcGFjZS5odG1sID0gVEVYVAogQlVHV0s0NTk5MSA6
IHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4
dC5kcmF3LnNwYWNlLmNvbGxhcHNlLm90aGVyLmh0bWwgPSBURVhUCiBCVUdXSzQ1OTkxIDogcGxh
dGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRy
YXcuc3BhY2UuY29sbGFwc2Uuc3BhY2UuaHRtbCA9IFRFWFQKIEJVR1dLNDU5OTEgOiBwbGF0Zm9y
bS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5z
cGFjZS5jb2xsYXBzZS5zdGFydC5odG1sID0gVEVYVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApp
bmRleCAxY2MwYzM4Li5mYjA5N2MyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtMzIx
LDcgKzMyMSw2IEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLmlk
ZW9ncmFwaGljLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5l
Lm1pZGRsZS5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5iYXNlbGluZS50
b3AuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uu
ZW5kLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNl
Lm5vbnNwYWNlLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNv
bGxhcHNlLm90aGVyLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNl
LmNvbGxhcHNlLnNwYWNlLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNw
YWNlLmNvbGxhcHNlLnN0YXJ0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggYWY5YjdmMS4uMWE4YTY0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkwMiw3ICs5MDIsNiBAQCBCVUdXS0dUSyA6IGNhbnZh
cy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLmlkZW9ncmFwaGljLmh0bWwgPSBU
RVhUCiBCVUdXS0dUSyA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmJhc2VsaW5l
Lm1pZGRsZS5odG1sID0gVEVYVAogQlVHV0tHVEsgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRl
eHQuZHJhdy5iYXNlbGluZS50b3AuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDogY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2UuZW5kLmh0bWwgPSBURVhUCi1CVUdX
S0dUSyA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLm5v
bnNwYWNlLmh0bWwgPSBURVhUCiBCVUdXS0dUSyA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4
dC5kcmF3LnNwYWNlLmNvbGxhcHNlLm90aGVyLmh0bWwgPSBURVhUCiBCVUdXS0dUSyA6IGNhbnZh
cy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLnNwYWNlLmh0bWwgPSBU
RVhUCiBCVUdXS0dUSyA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNv
bGxhcHNlLnN0YXJ0Lmh0bWwgPSBURVhUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9u
c3BhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NhbnZhcy9waGls
aXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxhcHNlLm5vbnNwYWNlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmRkMDkyMi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcu
c3BhY2UuY29sbGFwc2Uubm9uc3BhY2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotRmFpbGVkIGFzc2VydGlvbjogZ290IHBpeGVsIFsyNTUsMCwwLDI1NV0gYXQgKDc1
LDI1KSwgZXhwZWN0ZWQgWzAsMjU1LDAsMjU1XSArLy0gMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
aW5kZXggMWZjODNlZS4uN2JmY2IxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yMTA3
LDcgKzIxMDcsNiBAQCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5iYXNlbGluZS5t
aWRkbGUuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUudG9w
Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmZvbnRmYWNlLm5vdGlucGFn
ZS5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5l
bmQuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uu
bm9uc3BhY2UuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29s
bGFwc2Uub3RoZXIuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2Uu
Y29sbGFwc2Uuc3BhY2UuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3Bh
Y2UuY29sbGFwc2Uuc3RhcnQuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNiMDFkYjEuLmEwZGZjODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wOC0xNCAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIEZpeCAgTGF5b3V0VGVzdHMv
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC50ZXh0LmRyYXcuc3BhY2UuY29sbGFwc2Uubm9uc3BhY2Uu
aHRtbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5
NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBs
YWNlIHNwYWNlIGNoYXJhY3RlcnMgYnkgVSswMDIwIFNQQUNFIGNoYXJhY3RlcnMgaW4KKyAgICAg
ICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKCkgaW4gb3JkZXIg
dG8KKyAgICAgICAgY29tcGx5IHdpdGggdGhlIEhUTUwgQ2FudmFzIDJEIENvbnRleHQgc3BlY2lm
aWNhdGlvbjoKKyAgICAgICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi8yZGNvbnRleHQvI2RyYXdp
bmctdGV4dC10by10aGUtY2FudmFzCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IHRl
c3RlZCBieSBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnRleHQuZHJhdy5zcGFjZS5jb2xsYXBzZS5u
b25zcGFjZS5odG1sLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcGxhY2VDaGFyYWN0ZXJJblN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6CisKIDIwMTItMDgtMTQgIEFydmlkIE5pbHNzb24g
IDxhbmlsc3NvbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBHZXQgcmlkIG9mIGds
Q29weVRleEltYWdlMkQgaW4gQ2FudmFzIGFuZCBXZWJHTCBjb2RlIHBhdGhzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cAppbmRleCBhMDczODAyLi43MDY3MzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTIxMzIsNiArMjEz
MiwxNiBAQCBQYXNzUmVmUHRyPFRleHRNZXRyaWNzPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
Om1lYXN1cmVUZXh0KGNvbnN0IFN0cmluZyYgdGV4dAogICAgIHJldHVybiBtZXRyaWNzLnJlbGVh
c2UoKTsKIH0KIAorc3RhdGljIHZvaWQgcmVwbGFjZUNoYXJhY3RlckluU3RyaW5nKFN0cmluZyYg
dGV4dCwgV1RGOjpDaGFyYWN0ZXJNYXRjaEZ1bmN0aW9uUHRyIG1hdGNoRnVuY3Rpb24sIGNvbnN0
IFN0cmluZyYgcmVwbGFjZW1lbnQpCit7CisgICAgY29uc3Qgc2l6ZV90IHJlcGxhY2VtZW50TGVu
Z3RoID0gcmVwbGFjZW1lbnQubGVuZ3RoKCk7CisgICAgc2l6ZV90IGluZGV4ID0gMDsKKyAgICB3
aGlsZSAoKGluZGV4ID0gdGV4dC5maW5kKG1hdGNoRnVuY3Rpb24sIGluZGV4KSkgIT0gbm90Rm91
bmQpIHsKKyAgICAgICAgdGV4dC5yZXBsYWNlKGluZGV4LCAxLCByZXBsYWNlbWVudCk7CisgICAg
ICAgIGluZGV4ICs9IHJlcGxhY2VtZW50TGVuZ3RoOworICAgIH0KK30KKwogdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBm
bG9hdCB4LCBmbG9hdCB5LCBib29sIGZpbGwsIGZsb2F0IG1heFdpZHRoLCBib29sIHVzZU1heFdp
ZHRoKQogewogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CkBAIC0y
MTQ4LDYgKzIxNTgsOSBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJ
bnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsbwogCiAgICAgY29uc3QgRm9u
dCYgZm9udCA9IGFjY2Vzc0ZvbnQoKTsKICAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJp
Y3MgPSBmb250LmZvbnRNZXRyaWNzKCk7CisgICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMsIGFsbCB0
aGUgc3BhY2UgY2hhcmFjdGVycyBtdXN0IGJlIHJlcGxhY2VkIHdpdGggVSswMDIwIFNQQUNFIGNo
YXJhY3RlcnMuCisgICAgU3RyaW5nIG5vcm1hbGl6ZWRUZXh0ID0gdGV4dDsKKyAgICByZXBsYWNl
Q2hhcmFjdGVySW5TdHJpbmcobm9ybWFsaXplZFRleHQsIGlzU3BhY2VPck5ld2xpbmUsICIgIik7
CiAKICAgICAvLyBGSVhNRTogTmVlZCB0byB0dXJuIG9mZiBmb250IHNtb290aGluZy4KIApAQCAt
MjE1Niw3ICsyMTY5LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0
SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBmbG8KICAgICBib29sIGlzUlRM
ID0gZGlyZWN0aW9uID09IFJUTDsKICAgICBib29sIG92ZXJyaWRlID0gY29tcHV0ZWRTdHlsZSA/
IGlzT3ZlcnJpZGUoY29tcHV0ZWRTdHlsZS0+dW5pY29kZUJpZGkoKSkgOiBmYWxzZTsKIAotICAg
IFRleHRSdW4gdGV4dFJ1bih0ZXh0LCAwLCAwLCBUZXh0UnVuOjpBbGxvd1RyYWlsaW5nRXhwYW5z
aW9uLCBkaXJlY3Rpb24sIG92ZXJyaWRlLCB0cnVlLCBUZXh0UnVuOjpOb1JvdW5kaW5nKTsKKyAg
ICBUZXh0UnVuIHRleHRSdW4obm9ybWFsaXplZFRleHQsIDAsIDAsIFRleHRSdW46OkFsbG93VHJh
aWxpbmdFeHBhbnNpb24sIGRpcmVjdGlvbiwgb3ZlcnJpZGUsIHRydWUsIFRleHRSdW46Ok5vUm91
bmRpbmcpOwogICAgIC8vIERyYXcgdGhlIGl0ZW0gdGV4dCBhdCB0aGUgY29ycmVjdCBwb2ludC4K
ICAgICBGbG9hdFBvaW50IGxvY2F0aW9uKHgsIHkpOwogICAgIHN3aXRjaCAoc3RhdGUoKS5tX3Rl
eHRCYXNlbGluZSkgewpAQCAtMjE3Nyw3ICsyMTkwLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBm
bG8KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgZmxvYXQgZm9udFdpZHRoID0gZm9udC53
aWR0aChUZXh0UnVuKHRleHQsIDAsIDAsIFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBhbnNpb24s
IGRpcmVjdGlvbiwgb3ZlcnJpZGUpKTsKKyAgICBmbG9hdCBmb250V2lkdGggPSBmb250LndpZHRo
KFRleHRSdW4obm9ybWFsaXplZFRleHQsIDAsIDAsIFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBh
bnNpb24sIGRpcmVjdGlvbiwgb3ZlcnJpZGUpKTsKIAogICAgIHVzZU1heFdpZHRoID0gKHVzZU1h
eFdpZHRoICYmIG1heFdpZHRoIDwgZm9udFdpZHRoKTsKICAgICBmbG9hdCB3aWR0aCA9IHVzZU1h
eFdpZHRoID8gbWF4V2lkdGggOiBmb250V2lkdGg7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>