<?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>54491</bug_id>
          
          <creation_ts>2011-02-15 13:14:09 -0800</creation_ts>
          <short_desc>[cairo][canvas] Drawing from/into float rectangles with width or height in range 0 to 1 fails</short_desc>
          <delta_ts>2011-02-19 12:29:11 -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>Canvas</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          
          <blocked>54458</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351520</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2011-02-15 13:14:09 -0800</bug_when>
    <thetext>This bug covers the failure and fix for test canvas/philip/tests/2d.drawImage.floatsource.html.

Failure occurs when context draws image from source float rectangle (x:10.1, y:10.1, width:0.1, height:0.1).
The x and y coordinates both properly round to 10, but width and height are both rounded to 0, which results in this test not passing.

Rounding algorithms should be adjusted to correctly round width and height in such cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351532</commentid>
    <comment_count>1</comment_count>
      <attachid>82515</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2011-02-15 13:25:00 -0800</bug_when>
    <thetext>Created attachment 82515
Adjust rounding steps to ensure minimal width or height in such cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351534</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-15 13:30:12 -0800</bug_when>
    <thetext>Attachment 82515 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:768:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:769:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352054</commentid>
    <comment_count>3</comment_count>
      <attachid>82631</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2011-02-16 07:26:56 -0800</bug_when>
    <thetext>Created attachment 82631
Adjust rounding steps to ensure minimal width or height in such cases

Updated patch that no longer fails style checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353207</commentid>
    <comment_count>4</comment_count>
      <attachid>82631</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-17 15:31:51 -0800</bug_when>
    <thetext>Comment on attachment 82631
Adjust rounding steps to ensure minimal width or height in such cases

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

Great stuff. Just a bit more cleanup and I think this is a definite r+.

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:755
&gt; -    double x = frect.x();
&gt; -    double y = frect.y();
&gt; +    double x, y;
&gt; +
&gt;      cairo_t* cr = m_data-&gt;cr;
&gt; +
&gt; +    x = frect.x();
&gt; +    y = frect.y();

I think you don&apos;t need to make this change.

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:766
&gt;      x = frect.width();
&gt;      y = frect.height();

Please create two more variables here width and height. This code needs a little cleanup and the memory savings are not worth the rampant chaos. :)

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:769
&gt; +    x = !round(x) ? (!x ? 0.0f : (x &gt; 0 ? 1.0f : -1.0f)) : round(x);
&gt; +    y = !round(y) ? (!y ? 0.0f : (y &gt; 0 ? 1.0f : -1.0f)) : round(y);

Instead of rounding twice, I&apos;d rather this be cached.

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:772
&gt;      result.setWidth(static_cast&lt;float&gt;(x));
&gt;      result.setHeight(static_cast&lt;float&gt;(y));

It might be more appropriate to do narrowToFloatPrecision here. I&apos;m not sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353632</commentid>
    <comment_count>5</comment_count>
      <attachid>82971</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2011-02-18 09:41:22 -0800</bug_when>
    <thetext>Created attachment 82971
Updated patch

Updated patch.

Uses narrowFloatToPrecision and makes variables declared where assigned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353634</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-18 09:43:20 -0800</bug_when>
    <thetext>Attachment 82971 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:770:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:771:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353635</commentid>
    <comment_count>7</comment_count>
      <attachid>82972</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2011-02-18 09:46:40 -0800</bug_when>
    <thetext>Created attachment 82972
Style-compliant patch

The same patch as before, but now style-compliant!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353652</commentid>
    <comment_count>8</comment_count>
      <attachid>82972</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-18 10:27:59 -0800</bug_when>
    <thetext>Comment on attachment 82972
Style-compliant patch

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

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:771
&gt; +    double rwidth = round(width);
&gt; +    double rheight = round(height);
&gt; +    width = !rwidth ? (!width ? 0 : (width &gt; 0 ? 1 : -1)) : rwidth;
&gt; +    height = !rheight ? (!height ? 0 : (height &gt; 0 ? 1 : -1)) : rheight;

Is it okay to simply write this as:
if (width &lt; 0 &amp;&amp; width &gt; -1)
    width = -1;
if (width &gt; 0 &amp;&amp; width &lt; 1)
    width = 1;
if (height &lt; 0 &amp;&amp; height &gt; -1)
    height = -1;
if (height &gt; 0 &amp;&amp; height &lt; 1)
    height = 1;

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353700</commentid>
    <comment_count>9</comment_count>
      <attachid>82972</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2011-02-18 11:24:20 -0800</bug_when>
    <thetext>Comment on attachment 82972
Style-compliant patch

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

&gt;&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:771
&gt;&gt; +    height = !rheight ? (!height ? 0 : (height &gt; 0 ? 1 : -1)) : rheight;
&gt; 
&gt; Is it okay to simply write this as:
&gt; if (width &lt; 0 &amp;&amp; width &gt; -1)
&gt;     width = -1;
&gt; if (width &gt; 0 &amp;&amp; width &lt; 1)
&gt;     width = 1;
&gt; if (height &lt; 0 &amp;&amp; height &gt; -1)
&gt;     height = -1;
&gt; if (height &gt; 0 &amp;&amp; height &lt; 1)
&gt;     height = 1;
&gt; 
&gt; ?

A shorter hack that should work goes like this, only shown on width:

width = frect.width();
...
rwidth = round(frect.width());
if (!rwidth &amp;&amp; width) // width rounds to zero, but is not zero itself
    rwidth = width/fabs(width) // This returns either -1 or 1, depends on the sign of the number value
...
result.setWidth(narrowPrecisionToFloat(rwidth));

It&apos;s shorter, and it works also.
So, there are a few options, what to go with?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353719</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-18 11:54:51 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 82972 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82972&amp;action=review
&gt; It&apos;s shorter, and it works also.
&gt; So, there are a few options, what to go with?

I think we should go for two things in this section: execution speed and clarity. If this is not a particularly hot function, we should go mostly for clarity. If this is a hot function we should maximize execution speed and if there are some particularly low hanging speedups we can apply, we should be sure to comment them thorougly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353830</commentid>
    <comment_count>11</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2011-02-18 14:29:08 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 82972 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82972&amp;action=review
&gt; &gt; It&apos;s shorter, and it works also.
&gt; &gt; So, there are a few options, what to go with?
&gt; 
&gt; I think we should go for two things in this section: execution speed and clarity. If this is not a particularly hot function, we should go mostly for clarity. If this is a hot function we should maximize execution speed and if there are some particularly low hanging speedups we can apply, we should be sure to comment them thorougly.

I&apos;ve ran the three options through a benchmark. The four if statements proved to be the fastest, executing in half the time than the other two options.

They also offer the most clarity, so I&apos;ll be updating the patch to use this option and uploading it tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353831</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-18 14:31:17 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; I&apos;ve ran the three options through a benchmark. The four if statements proved to be the fastest, executing in half the time than the other two options.
&gt; They also offer the most clarity, so I&apos;ll be updating the patch to use this option and uploading it 
tomorrow.

Great! Thanks for your work here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354080</commentid>
    <comment_count>13</comment_count>
      <attachid>83060</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2011-02-18 23:57:19 -0800</bug_when>
    <thetext>Created attachment 83060
Updated patch

Updated patch, now if statements are used, faster and more clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354209</commentid>
    <comment_count>14</comment_count>
      <attachid>83060</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-19 12:29:08 -0800</bug_when>
    <thetext>Comment on attachment 83060
Updated patch

Clearing flags on attachment: 83060

Committed r79129: &lt;http://trac.webkit.org/changeset/79129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354210</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-19 12:29:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82515</attachid>
            <date>2011-02-15 13:25:00 -0800</date>
            <delta_ts>2011-02-16 07:26:56 -0800</delta_ts>
            <desc>Adjust rounding steps to ensure minimal width or height in such cases</desc>
            <filename>c3.patch</filename>
            <type>text/plain</type>
            <size>3493</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMGVjYzBhLi5mNmRhYTcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDIt
MTUgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2Fpcm9dW2NhbnZhc10gRHJhd2lu
ZyBmcm9tL2ludG8gZmxvYXQgcmVjdGFuZ2xlcyB3aXRoIHdpZHRoIG9yIGhlaWdodCBpbiByYW5n
ZSAwIHRvIDEgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU0NDkxCisKKyAgICAgICAgRW5hYmxlIGFub3RoZXIgcGFzc2luZyB0ZXN0IGFmdGVy
IGZpeGluZyBmbG9hdCB2YWx1ZXMgcm91bmRpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
U2tpcHBlZDoKKwogMjAxMS0wMi0xNSAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOyBuZXcgQ2hyb21pdW0vTGludXggdGVzdCBi
YXNlbGluZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGI1YWUzYjMuLjllYzM0Njcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xOTQyLDcgKzE5NDIsNiBAQCBjYW52YXMv
cGhpbGlwL3Rlc3RzL3R5cGUucHJvdG90eXBlLmh0bWwKIAogIyBUaGVzZSB0ZXN0cyBhcmUgZmFp
bGluZyBmb3IgdXMsIGJ1dCBub3QgZm9yIE1hYy4gVGhpcyBsaWtlbHkKICMgaW5kaWNhdGVzIHBs
YXRmb3JtIHNwZWNpZmljIHByb2JsZW1zLgotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1h
Z2UuZmxvYXRzb3VyY2UuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2Uuc2Vs
Zi4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmMuc2VsZmludGVyc2VjdC4x
Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmMuc2hhcGUuMy5odG1sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZDNkYTE2My4uZWI2NTI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDExLTAyLTE1ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2NhaXJvXVtjYW52YXNd
IERyYXdpbmcgZnJvbS9pbnRvIGZsb2F0IHJlY3RhbmdsZXMgd2l0aCB3aWR0aCBvciBoZWlnaHQg
aW4gcmFuZ2UgMCB0byAxIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDQ5MQorCisgICAgICAgIFdoZW4gd2lkdGggb3IgaGVpZ2h0IGluIGZs
b2F0IHJlY3RhbmdsZSBhcmUgaW4gcmFuZ2UgKDAsIDAuNSkgb3IgKC0wLjUsIDApCisgICAgICAg
IGFuZCB3b3VsZCByb3VuZCB0byAwLCBhbHRlciB0aGUgYmVoYXZpb3VyIHRvIGVuc3VyZSB0aGF0
IHdpZHRoIG9yIGhlaWdodCBhcmUKKyAgICAgICAgYXQgbGVhc3QgMSBwaXhlbCBpbiBzaXplIGlu
IHRoZXNlIGNhc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpy
b3VuZFRvRGV2aWNlUGl4ZWxzKToKKwogMjAxMS0wMi0xNSAgQW5kcmVhcyBLbGluZyAgPGtsaW5n
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggY2RiZmM1Ny4uYTlhNDA5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fp
cm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcApAQCAtNzQ3LDIzICs3NDcsMzAgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdMaW5lRm9yVGV4dENoZWNraW5nKGNvbnN0IEludFBvaW50JiBvcmlnaW4sIGlu
dCB3aWR0aCwKIEZsb2F0UmVjdCBHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMo
Y29uc3QgRmxvYXRSZWN0JiBmcmVjdCkKIHsKICAgICBGbG9hdFJlY3QgcmVzdWx0OwotICAgIGRv
dWJsZSB4ID0gZnJlY3QueCgpOwotICAgIGRvdWJsZSB5ID0gZnJlY3QueSgpOworICAgIGRvdWJs
ZSB4LCB5OworCiAgICAgY2Fpcm9fdCogY3IgPSBtX2RhdGEtPmNyOworCisgICAgeCA9IGZyZWN0
LngoKTsKKyAgICB5ID0gZnJlY3QueSgpOwogICAgIGNhaXJvX3VzZXJfdG9fZGV2aWNlKGNyLCAm
eCwgJnkpOwogICAgIHggPSByb3VuZCh4KTsKICAgICB5ID0gcm91bmQoeSk7CiAgICAgY2Fpcm9f
ZGV2aWNlX3RvX3VzZXIoY3IsICZ4LCAmeSk7CiAgICAgcmVzdWx0LnNldFgoc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHgpKTsKICAgICByZXN1bHQuc2V0WShzdGF0aWNfY2FzdDxmbG9hdD4oeSkpOworCisg
ICAgLy8gV2UgbXVzdCBlbnN1cmUgd2lkdGggYW5kIGhlaWdodCBhcmUgYXQgbGVhc3QgMSAob3Ig
LTEpIHdoZW4KKyAgICAvLyB3ZSdyZSBnaXZlbiBmbG9hdCB2YWx1ZXMgaW4gdGhlIHJhbmdlIGJl
dHdlZW4gMCBhbmQgMC41IChvciAtMC41IGFuZCAwKS4KICAgICB4ID0gZnJlY3Qud2lkdGgoKTsK
ICAgICB5ID0gZnJlY3QuaGVpZ2h0KCk7CiAgICAgY2Fpcm9fdXNlcl90b19kZXZpY2VfZGlzdGFu
Y2UoY3IsICZ4LCAmeSk7Ci0gICAgeCA9IHJvdW5kKHgpOwotICAgIHkgPSByb3VuZCh5KTsKKyAg
ICB4ID0gcm91bmQoeCkgPT0gMCA/ICh4ID09IDAgPyAwIDogKHggPiAwID8gMSA6IC0xKSkgOiBy
b3VuZCh4KTsKKyAgICB5ID0gcm91bmQoeSkgPT0gMCA/ICh5ID09IDAgPyAwIDogKHkgPiAwID8g
MSA6IC0xKSkgOiByb3VuZCh5KTsKICAgICBjYWlyb19kZXZpY2VfdG9fdXNlcl9kaXN0YW5jZShj
ciwgJngsICZ5KTsKICAgICByZXN1bHQuc2V0V2lkdGgoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHgpKTsK
ICAgICByZXN1bHQuc2V0SGVpZ2h0KHN0YXRpY19jYXN0PGZsb2F0Pih5KSk7CisKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82631</attachid>
            <date>2011-02-16 07:26:56 -0800</date>
            <delta_ts>2011-02-18 09:41:22 -0800</delta_ts>
            <desc>Adjust rounding steps to ensure minimal width or height in such cases</desc>
            <filename>c3.1.patch</filename>
            <type>text/plain</type>
            <size>3495</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMGVjYzBhLi5mNmRhYTcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDIt
MTUgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2Fpcm9dW2NhbnZhc10gRHJhd2lu
ZyBmcm9tL2ludG8gZmxvYXQgcmVjdGFuZ2xlcyB3aXRoIHdpZHRoIG9yIGhlaWdodCBpbiByYW5n
ZSAwIHRvIDEgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU0NDkxCisKKyAgICAgICAgRW5hYmxlIGFub3RoZXIgcGFzc2luZyB0ZXN0IGFmdGVy
IGZpeGluZyBmbG9hdCB2YWx1ZXMgcm91bmRpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
U2tpcHBlZDoKKwogMjAxMS0wMi0xNSAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOyBuZXcgQ2hyb21pdW0vTGludXggdGVzdCBi
YXNlbGluZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGI1YWUzYjMuLjllYzM0Njcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xOTQyLDcgKzE5NDIsNiBAQCBjYW52YXMv
cGhpbGlwL3Rlc3RzL3R5cGUucHJvdG90eXBlLmh0bWwKIAogIyBUaGVzZSB0ZXN0cyBhcmUgZmFp
bGluZyBmb3IgdXMsIGJ1dCBub3QgZm9yIE1hYy4gVGhpcyBsaWtlbHkKICMgaW5kaWNhdGVzIHBs
YXRmb3JtIHNwZWNpZmljIHByb2JsZW1zLgotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1h
Z2UuZmxvYXRzb3VyY2UuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2Uuc2Vs
Zi4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmMuc2VsZmludGVyc2VjdC4x
Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmMuc2hhcGUuMy5odG1sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZDNkYTE2My4uZWI2NTI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDExLTAyLTE1ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2NhaXJvXVtjYW52YXNd
IERyYXdpbmcgZnJvbS9pbnRvIGZsb2F0IHJlY3RhbmdsZXMgd2l0aCB3aWR0aCBvciBoZWlnaHQg
aW4gcmFuZ2UgMCB0byAxIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDQ5MQorCisgICAgICAgIFdoZW4gd2lkdGggb3IgaGVpZ2h0IGluIGZs
b2F0IHJlY3RhbmdsZSBhcmUgaW4gcmFuZ2UgKDAsIDAuNSkgb3IgKC0wLjUsIDApCisgICAgICAg
IGFuZCB3b3VsZCByb3VuZCB0byAwLCBhbHRlciB0aGUgYmVoYXZpb3VyIHRvIGVuc3VyZSB0aGF0
IHdpZHRoIG9yIGhlaWdodCBhcmUKKyAgICAgICAgYXQgbGVhc3QgMSBwaXhlbCBpbiBzaXplIGlu
IHRoZXNlIGNhc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpy
b3VuZFRvRGV2aWNlUGl4ZWxzKToKKwogMjAxMS0wMi0xNSAgQW5kcmVhcyBLbGluZyAgPGtsaW5n
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggY2RiZmM1Ny4uODM3ZWI2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fp
cm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcApAQCAtNzQ3LDIzICs3NDcsMzAgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdMaW5lRm9yVGV4dENoZWNraW5nKGNvbnN0IEludFBvaW50JiBvcmlnaW4sIGlu
dCB3aWR0aCwKIEZsb2F0UmVjdCBHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMo
Y29uc3QgRmxvYXRSZWN0JiBmcmVjdCkKIHsKICAgICBGbG9hdFJlY3QgcmVzdWx0OwotICAgIGRv
dWJsZSB4ID0gZnJlY3QueCgpOwotICAgIGRvdWJsZSB5ID0gZnJlY3QueSgpOworICAgIGRvdWJs
ZSB4LCB5OworCiAgICAgY2Fpcm9fdCogY3IgPSBtX2RhdGEtPmNyOworCisgICAgeCA9IGZyZWN0
LngoKTsKKyAgICB5ID0gZnJlY3QueSgpOwogICAgIGNhaXJvX3VzZXJfdG9fZGV2aWNlKGNyLCAm
eCwgJnkpOwogICAgIHggPSByb3VuZCh4KTsKICAgICB5ID0gcm91bmQoeSk7CiAgICAgY2Fpcm9f
ZGV2aWNlX3RvX3VzZXIoY3IsICZ4LCAmeSk7CiAgICAgcmVzdWx0LnNldFgoc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHgpKTsKICAgICByZXN1bHQuc2V0WShzdGF0aWNfY2FzdDxmbG9hdD4oeSkpOworCisg
ICAgLy8gV2UgbXVzdCBlbnN1cmUgd2lkdGggYW5kIGhlaWdodCBhcmUgYXQgbGVhc3QgMSAob3Ig
LTEpIHdoZW4KKyAgICAvLyB3ZSdyZSBnaXZlbiBmbG9hdCB2YWx1ZXMgaW4gdGhlIHJhbmdlIGJl
dHdlZW4gMCBhbmQgMC41IChvciAtMC41IGFuZCAwKS4KICAgICB4ID0gZnJlY3Qud2lkdGgoKTsK
ICAgICB5ID0gZnJlY3QuaGVpZ2h0KCk7CiAgICAgY2Fpcm9fdXNlcl90b19kZXZpY2VfZGlzdGFu
Y2UoY3IsICZ4LCAmeSk7Ci0gICAgeCA9IHJvdW5kKHgpOwotICAgIHkgPSByb3VuZCh5KTsKKyAg
ICB4ID0gIXJvdW5kKHgpID8gKCF4ID8gMC4wZiA6ICh4ID4gMCA/IDEuMGYgOiAtMS4wZikpIDog
cm91bmQoeCk7CisgICAgeSA9ICFyb3VuZCh5KSA/ICgheSA/IDAuMGYgOiAoeSA+IDAgPyAxLjBm
IDogLTEuMGYpKSA6IHJvdW5kKHkpOwogICAgIGNhaXJvX2RldmljZV90b191c2VyX2Rpc3RhbmNl
KGNyLCAmeCwgJnkpOwogICAgIHJlc3VsdC5zZXRXaWR0aChzdGF0aWNfY2FzdDxmbG9hdD4oeCkp
OwogICAgIHJlc3VsdC5zZXRIZWlnaHQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHkpKTsKKwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAK
</data>
<flag name="review"
          id="74306"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82971</attachid>
            <date>2011-02-18 09:41:22 -0800</date>
            <delta_ts>2011-02-18 09:46:40 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>c3.2.patch</filename>
            <type>text/plain</type>
            <size>3864</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODBjZDY3Li45NmQ4MDk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDIt
MTggIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2Fpcm9dW2NhbnZhc10gRHJhd2lu
ZyBmcm9tL2ludG8gZmxvYXQgcmVjdGFuZ2xlcyB3aXRoIHdpZHRoIG9yIGhlaWdodCBpbiByYW5n
ZSAwIHRvIDEgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU0NDkxCisKKyAgICAgICAgRW5hYmxlIGFub3RoZXIgcGFzc2luZyB0ZXN0IGFmdGVy
IGZpeGluZyBmbG9hdCB2YWx1ZXMgcm91bmRpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
U2tpcHBlZDoKKwogMjAxMS0wMi0xOCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4
IDMwYmJlZWUuLjdkYTc1OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMjg0LDcg
KzEyODQsNiBAQCBjYW52YXMvcGhpbGlwL3Rlc3RzL3R5cGUucHJvdG90eXBlLmh0bWwKIAogIyBU
aGVzZSB0ZXN0cyBhcmUgZmFpbGluZyBmb3IgdXMsIGJ1dCBub3QgZm9yIE1hYy4gVGhpcyBsaWtl
bHkKICMgaW5kaWNhdGVzIHBsYXRmb3JtIHNwZWNpZmljIHByb2JsZW1zLgotY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5kcmF3SW1hZ2UuZmxvYXRzb3VyY2UuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5kcmF3SW1hZ2Uuc2VsZi4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5h
cmMuc2VsZmludGVyc2VjdC4xLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmMu
c2hhcGUuMy5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU0OTI5MS4uN2IwOTI3YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDExLTAyLTE4ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0Bn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW2NhaXJvXVtjYW52YXNdIERyYXdpbmcgZnJvbS9pbnRvIGZsb2F0IHJlY3RhbmdsZXMgd2l0
aCB3aWR0aCBvciBoZWlnaHQgaW4gcmFuZ2UgMCB0byAxIGZhaWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDQ5MQorCisgICAgICAgIFdoZW4gd2lk
dGggb3IgaGVpZ2h0IGluIGZsb2F0IHJlY3RhbmdsZSBhcmUgaW4gcmFuZ2UgKDAsIDAuNSkgb3Ig
KC0wLjUsIDApCisgICAgICAgIGFuZCB3b3VsZCByb3VuZCB0byAwLCBhbHRlciB0aGUgYmVoYXZp
b3VyIHRvIGVuc3VyZSB0aGF0IHdpZHRoIG9yIGhlaWdodCBhcmUKKyAgICAgICAgYXQgbGVhc3Qg
MSBwaXhlbCBpbiBzaXplIGluIHRoZXNlIGNhc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzKToKKwogMjAxMS0wMi0xOCAgQW5k
cmV5IEFkYWlraW4gIDxhYW5kcmV5QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
UGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCBiNGQxOTdk
Li4xZmVhZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSAiQ2Fpcm9QYXRoLmgiCiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIK
ICNpbmNsdWRlICJDb250ZXh0U2hhZG93LmgiCisjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgi
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmgiCkBAIC03NTYsMTYgKzc1NywyMiBA
QCBGbG9hdFJlY3QgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzKGNvbnN0IEZs
b2F0UmVjdCYgZnJlY3QpCiAgICAgeCA9IHJvdW5kKHgpOwogICAgIHkgPSByb3VuZCh5KTsKICAg
ICBjYWlyb19kZXZpY2VfdG9fdXNlcihjciwgJngsICZ5KTsKLSAgICByZXN1bHQuc2V0WChzdGF0
aWNfY2FzdDxmbG9hdD4oeCkpOwotICAgIHJlc3VsdC5zZXRZKHN0YXRpY19jYXN0PGZsb2F0Pih5
KSk7Ci0gICAgeCA9IGZyZWN0LndpZHRoKCk7Ci0gICAgeSA9IGZyZWN0LmhlaWdodCgpOwotICAg
IGNhaXJvX3VzZXJfdG9fZGV2aWNlX2Rpc3RhbmNlKGNyLCAmeCwgJnkpOwotICAgIHggPSByb3Vu
ZCh4KTsKLSAgICB5ID0gcm91bmQoeSk7Ci0gICAgY2Fpcm9fZGV2aWNlX3RvX3VzZXJfZGlzdGFu
Y2UoY3IsICZ4LCAmeSk7Ci0gICAgcmVzdWx0LnNldFdpZHRoKHN0YXRpY19jYXN0PGZsb2F0Pih4
KSk7Ci0gICAgcmVzdWx0LnNldEhlaWdodChzdGF0aWNfY2FzdDxmbG9hdD4oeSkpOworICAgIHJl
c3VsdC5zZXRYKG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoeCkpOworICAgIHJlc3VsdC5zZXRZKG5h
cnJvd1ByZWNpc2lvblRvRmxvYXQoeSkpOworCisgICAgLy8gV2UgbXVzdCBlbnN1cmUgd2lkdGgg
YW5kIGhlaWdodCBhcmUgYXQgbGVhc3QgMSAob3IgLTEpIHdoZW4KKyAgICAvLyB3ZSdyZSBnaXZl
biBmbG9hdCB2YWx1ZXMgaW4gdGhlIHJhbmdlIGJldHdlZW4gMCBhbmQgMC41IChvciAtMC41IGFu
ZCAwKS4KKyAgICBkb3VibGUgd2lkdGggPSBmcmVjdC53aWR0aCgpOworICAgIGRvdWJsZSBoZWln
aHQgPSBmcmVjdC5oZWlnaHQoKTsKKyAgICBjYWlyb191c2VyX3RvX2RldmljZV9kaXN0YW5jZShj
ciwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICBkb3VibGUgcndpZHRoID0gcm91bmQod2lkdGgpOwor
ICAgIGRvdWJsZSByaGVpZ2h0ID0gcm91bmQoaGVpZ2h0KTsKKyAgICB3aWR0aCA9IHJ3aWR0aCA9
PSAwID8gKHdpZHRoID09IDAgPyAwIDogKHdpZHRoID4gMCA/IDEgOiAtMSkpIDogcndpZHRoOwor
ICAgIGhlaWdodCA9IHJoZWlnaHQgPT0gMCA/IChoZWlnaHQgPT0gMCA/IDAgOiAoaGVpZ2h0ID4g
MCA/IDEgOiAtMSkpIDogcmhlaWdodDsKKyAgICBjYWlyb19kZXZpY2VfdG9fdXNlcl9kaXN0YW5j
ZShjciwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICByZXN1bHQuc2V0V2lkdGgobmFycm93UHJlY2lz
aW9uVG9GbG9hdCh3aWR0aCkpOworICAgIHJlc3VsdC5zZXRIZWlnaHQobmFycm93UHJlY2lzaW9u
VG9GbG9hdChoZWlnaHQpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82972</attachid>
            <date>2011-02-18 09:46:40 -0800</date>
            <delta_ts>2011-02-18 23:57:19 -0800</delta_ts>
            <desc>Style-compliant patch</desc>
            <filename>c3.3.patch</filename>
            <type>text/plain</type>
            <size>3848</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODBjZDY3Li45NmQ4MDk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDIt
MTggIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2Fpcm9dW2NhbnZhc10gRHJhd2lu
ZyBmcm9tL2ludG8gZmxvYXQgcmVjdGFuZ2xlcyB3aXRoIHdpZHRoIG9yIGhlaWdodCBpbiByYW5n
ZSAwIHRvIDEgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU0NDkxCisKKyAgICAgICAgRW5hYmxlIGFub3RoZXIgcGFzc2luZyB0ZXN0IGFmdGVy
IGZpeGluZyBmbG9hdCB2YWx1ZXMgcm91bmRpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
U2tpcHBlZDoKKwogMjAxMS0wMi0xOCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4
IDMwYmJlZWUuLjdkYTc1OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMjg0LDcg
KzEyODQsNiBAQCBjYW52YXMvcGhpbGlwL3Rlc3RzL3R5cGUucHJvdG90eXBlLmh0bWwKIAogIyBU
aGVzZSB0ZXN0cyBhcmUgZmFpbGluZyBmb3IgdXMsIGJ1dCBub3QgZm9yIE1hYy4gVGhpcyBsaWtl
bHkKICMgaW5kaWNhdGVzIHBsYXRmb3JtIHNwZWNpZmljIHByb2JsZW1zLgotY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5kcmF3SW1hZ2UuZmxvYXRzb3VyY2UuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5kcmF3SW1hZ2Uuc2VsZi4yLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5h
cmMuc2VsZmludGVyc2VjdC4xLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5hcmMu
c2hhcGUuMy5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU0OTI5MS4uN2IwOTI3YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDExLTAyLTE4ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0Bn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW2NhaXJvXVtjYW52YXNdIERyYXdpbmcgZnJvbS9pbnRvIGZsb2F0IHJlY3RhbmdsZXMgd2l0
aCB3aWR0aCBvciBoZWlnaHQgaW4gcmFuZ2UgMCB0byAxIGZhaWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDQ5MQorCisgICAgICAgIFdoZW4gd2lk
dGggb3IgaGVpZ2h0IGluIGZsb2F0IHJlY3RhbmdsZSBhcmUgaW4gcmFuZ2UgKDAsIDAuNSkgb3Ig
KC0wLjUsIDApCisgICAgICAgIGFuZCB3b3VsZCByb3VuZCB0byAwLCBhbHRlciB0aGUgYmVoYXZp
b3VyIHRvIGVuc3VyZSB0aGF0IHdpZHRoIG9yIGhlaWdodCBhcmUKKyAgICAgICAgYXQgbGVhc3Qg
MSBwaXhlbCBpbiBzaXplIGluIHRoZXNlIGNhc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzKToKKwogMjAxMS0wMi0xOCAgQW5k
cmV5IEFkYWlraW4gIDxhYW5kcmV5QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
UGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCBiNGQxOTdk
Li42MjJkNmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSAiQ2Fpcm9QYXRoLmgiCiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIK
ICNpbmNsdWRlICJDb250ZXh0U2hhZG93LmgiCisjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgi
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmgiCkBAIC03NTYsMTYgKzc1NywyMiBA
QCBGbG9hdFJlY3QgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzKGNvbnN0IEZs
b2F0UmVjdCYgZnJlY3QpCiAgICAgeCA9IHJvdW5kKHgpOwogICAgIHkgPSByb3VuZCh5KTsKICAg
ICBjYWlyb19kZXZpY2VfdG9fdXNlcihjciwgJngsICZ5KTsKLSAgICByZXN1bHQuc2V0WChzdGF0
aWNfY2FzdDxmbG9hdD4oeCkpOwotICAgIHJlc3VsdC5zZXRZKHN0YXRpY19jYXN0PGZsb2F0Pih5
KSk7Ci0gICAgeCA9IGZyZWN0LndpZHRoKCk7Ci0gICAgeSA9IGZyZWN0LmhlaWdodCgpOwotICAg
IGNhaXJvX3VzZXJfdG9fZGV2aWNlX2Rpc3RhbmNlKGNyLCAmeCwgJnkpOwotICAgIHggPSByb3Vu
ZCh4KTsKLSAgICB5ID0gcm91bmQoeSk7Ci0gICAgY2Fpcm9fZGV2aWNlX3RvX3VzZXJfZGlzdGFu
Y2UoY3IsICZ4LCAmeSk7Ci0gICAgcmVzdWx0LnNldFdpZHRoKHN0YXRpY19jYXN0PGZsb2F0Pih4
KSk7Ci0gICAgcmVzdWx0LnNldEhlaWdodChzdGF0aWNfY2FzdDxmbG9hdD4oeSkpOworICAgIHJl
c3VsdC5zZXRYKG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoeCkpOworICAgIHJlc3VsdC5zZXRZKG5h
cnJvd1ByZWNpc2lvblRvRmxvYXQoeSkpOworCisgICAgLy8gV2UgbXVzdCBlbnN1cmUgd2lkdGgg
YW5kIGhlaWdodCBhcmUgYXQgbGVhc3QgMSAob3IgLTEpIHdoZW4KKyAgICAvLyB3ZSdyZSBnaXZl
biBmbG9hdCB2YWx1ZXMgaW4gdGhlIHJhbmdlIGJldHdlZW4gMCBhbmQgMC41IChvciAtMC41IGFu
ZCAwKS4KKyAgICBkb3VibGUgd2lkdGggPSBmcmVjdC53aWR0aCgpOworICAgIGRvdWJsZSBoZWln
aHQgPSBmcmVjdC5oZWlnaHQoKTsKKyAgICBjYWlyb191c2VyX3RvX2RldmljZV9kaXN0YW5jZShj
ciwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICBkb3VibGUgcndpZHRoID0gcm91bmQod2lkdGgpOwor
ICAgIGRvdWJsZSByaGVpZ2h0ID0gcm91bmQoaGVpZ2h0KTsKKyAgICB3aWR0aCA9ICFyd2lkdGgg
PyAoIXdpZHRoID8gMCA6ICh3aWR0aCA+IDAgPyAxIDogLTEpKSA6IHJ3aWR0aDsKKyAgICBoZWln
aHQgPSAhcmhlaWdodCA/ICghaGVpZ2h0ID8gMCA6IChoZWlnaHQgPiAwID8gMSA6IC0xKSkgOiBy
aGVpZ2h0OworICAgIGNhaXJvX2RldmljZV90b191c2VyX2Rpc3RhbmNlKGNyLCAmd2lkdGgsICZo
ZWlnaHQpOworICAgIHJlc3VsdC5zZXRXaWR0aChuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHdpZHRo
KSk7CisgICAgcmVzdWx0LnNldEhlaWdodChuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGhlaWdodCkp
OworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83060</attachid>
            <date>2011-02-18 23:57:19 -0800</date>
            <delta_ts>2011-02-19 12:29:07 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>c3.4.patch</filename>
            <type>text/plain</type>
            <size>3967</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwOTU4Y2FlLi45MmU0MGZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDIt
MTkgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2Fpcm9dW2NhbnZhc10gRHJhd2lu
ZyBmcm9tL2ludG8gZmxvYXQgcmVjdGFuZ2xlcyB3aXRoIHdpZHRoIG9yIGhlaWdodCBpbiByYW5n
ZSAwIHRvIDEgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU0NDkxCisKKyAgICAgICAgRW5hYmxlIGFub3RoZXIgcGFzc2luZyB0ZXN0IGFmdGVy
IGZpeGluZyBmbG9hdCB2YWx1ZXMgcm91bmRpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
U2tpcHBlZDoKKwogMjAxMS0wMi0xOCAgQW5kcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb25zIGZpeC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMzgwYmQ2My4uZmJjNWVkMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKQEAgLTEwMTksNyArMTAxOSw2IEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvdHlw
ZS5wcm90b3R5cGUuaHRtbAogCiAjIFRoZXNlIHRlc3RzIGFyZSBmYWlsaW5nIGZvciB1cywgYnV0
IG5vdCBmb3IgTWFjLiBUaGlzIGxpa2VseQogIyBpbmRpY2F0ZXMgcGxhdGZvcm0gc3BlY2lmaWMg
cHJvYmxlbXMuCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5mbG9hdHNvdXJjZS5o
dG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5zZWxmLjIuaHRtbAogY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyYy5zZWxmaW50ZXJzZWN0LjEuaHRtbAogY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5wYXRoLmFyYy5zaGFwZS4zLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMTI4ODU1
Li5jZjhhMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMTkgIFphbiBE
b2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2Fpcm9dW2NhbnZhc10gRHJhd2luZyBmcm9tL2lu
dG8gZmxvYXQgcmVjdGFuZ2xlcyB3aXRoIHdpZHRoIG9yIGhlaWdodCBpbiByYW5nZSAwIHRvIDEg
ZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
NDkxCisKKyAgICAgICAgV2hlbiB3aWR0aCBvciBoZWlnaHQgaW4gZmxvYXQgcmVjdGFuZ2xlIGFy
ZSBpbiByYW5nZSAoMCwgMC41KSBvciAoLTAuNSwgMCkKKyAgICAgICAgYW5kIHdvdWxkIHJvdW5k
IHRvIDAsIGFsdGVyIHRoZSBiZWhhdmlvdXIgdG8gZW5zdXJlIHRoYXQgd2lkdGggb3IgaGVpZ2h0
IGFyZQorICAgICAgICBhdCBsZWFzdCAxIHBpeGVsIGluIHNpemUgaW4gdGhlc2UgY2FzZXMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhl
bHMpOgorCiAyMDExLTAyLTE4ICBKb25hdGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0
Q2Fpcm8uY3BwCmluZGV4IGI0ZDE5N2QuLjdiMGI0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRD
YWlyby5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJDYWlyb1BhdGguaCIKICNpbmNs
dWRlICJDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkNvbnRleHRTaGFkb3cuaCIKKyNpbmNs
dWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJGb250LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8u
aCIKQEAgLTc1NiwxNiArNzU3LDMwIEBAIEZsb2F0UmVjdCBHcmFwaGljc0NvbnRleHQ6OnJvdW5k
VG9EZXZpY2VQaXhlbHMoY29uc3QgRmxvYXRSZWN0JiBmcmVjdCkKICAgICB4ID0gcm91bmQoeCk7
CiAgICAgeSA9IHJvdW5kKHkpOwogICAgIGNhaXJvX2RldmljZV90b191c2VyKGNyLCAmeCwgJnkp
OwotICAgIHJlc3VsdC5zZXRYKHN0YXRpY19jYXN0PGZsb2F0Pih4KSk7Ci0gICAgcmVzdWx0LnNl
dFkoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHkpKTsKLSAgICB4ID0gZnJlY3Qud2lkdGgoKTsKLSAgICB5
ID0gZnJlY3QuaGVpZ2h0KCk7Ci0gICAgY2Fpcm9fdXNlcl90b19kZXZpY2VfZGlzdGFuY2UoY3Is
ICZ4LCAmeSk7Ci0gICAgeCA9IHJvdW5kKHgpOwotICAgIHkgPSByb3VuZCh5KTsKLSAgICBjYWly
b19kZXZpY2VfdG9fdXNlcl9kaXN0YW5jZShjciwgJngsICZ5KTsKLSAgICByZXN1bHQuc2V0V2lk
dGgoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHgpKTsKLSAgICByZXN1bHQuc2V0SGVpZ2h0KHN0YXRpY19j
YXN0PGZsb2F0Pih5KSk7CisgICAgcmVzdWx0LnNldFgobmFycm93UHJlY2lzaW9uVG9GbG9hdCh4
KSk7CisgICAgcmVzdWx0LnNldFkobmFycm93UHJlY2lzaW9uVG9GbG9hdCh5KSk7CisKKyAgICAv
LyBXZSBtdXN0IGVuc3VyZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBhdCBsZWFzdCAxIChvciAtMSkg
d2hlbgorICAgIC8vIHdlJ3JlIGdpdmVuIGZsb2F0IHZhbHVlcyBpbiB0aGUgcmFuZ2UgYmV0d2Vl
biAwIGFuZCAxIChvciAtMSBhbmQgMCkuCisgICAgZG91YmxlIHdpZHRoID0gZnJlY3Qud2lkdGgo
KTsKKyAgICBkb3VibGUgaGVpZ2h0ID0gZnJlY3QuaGVpZ2h0KCk7CisgICAgY2Fpcm9fdXNlcl90
b19kZXZpY2VfZGlzdGFuY2UoY3IsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgaWYgKHdpZHRoID4g
LTEgJiYgd2lkdGggPCAwKQorICAgICAgICB3aWR0aCA9IC0xOworICAgIGVsc2UgaWYgKHdpZHRo
ID4gMCAmJiB3aWR0aCA8IDEpCisgICAgICAgIHdpZHRoID0gMTsKKyAgICBlbHNlCisgICAgICAg
IHdpZHRoID0gcm91bmQod2lkdGgpOworICAgIGlmIChoZWlnaHQgPiAtMSAmJiB3aWR0aCA8IDAp
CisgICAgICAgIGhlaWdodCA9IC0xOworICAgIGVsc2UgaWYgKGhlaWdodCA+IDAgJiYgaGVpZ2h0
IDwgMSkKKyAgICAgICAgaGVpZ2h0ID0gMTsKKyAgICBlbHNlCisgICAgICAgIGhlaWdodCA9IHJv
dW5kKGhlaWdodCk7CisgICAgY2Fpcm9fZGV2aWNlX3RvX3VzZXJfZGlzdGFuY2UoY3IsICZ3aWR0
aCwgJmhlaWdodCk7CisgICAgcmVzdWx0LnNldFdpZHRoKG5hcnJvd1ByZWNpc2lvblRvRmxvYXQo
d2lkdGgpKTsKKyAgICByZXN1bHQuc2V0SGVpZ2h0KG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoaGVp
Z2h0KSk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>