<?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>27842</bug_id>
          
          <creation_ts>2009-07-30 11:12:44 -0700</creation_ts>
          <short_desc>Implement GraphicsContext::fillRoundRect() for WINCE port</short_desc>
          <delta_ts>2009-08-11 07:19:45 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Crystal Zhang">haizhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>staikos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>135891</commentid>
    <comment_count>0</comment_count>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-07-30 11:12:44 -0700</bug_when>
    <thetext>Implement GraphicsContext::fillRoundRect() to draw box shadow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135892</commentid>
    <comment_count>1</comment_count>
      <attachid>33793</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-07-30 11:14:03 -0700</bug_when>
    <thetext>Created attachment 33793
patch to implement fillRoundRect

patch to implement fillRoundRect().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135900</commentid>
    <comment_count>2</comment_count>
      <attachid>33793</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-30 11:35:51 -0700</bug_when>
    <thetext>Comment on attachment 33793
patch to implement fillRoundRect

No need to include &quot;Written by&quot; in this patch and please use the proper/consistent email address

You should use 0 instead of NULL.

You have braces around IntersectClipRect twice where the coding guidelines say there should not be (not that I agree...)

The rest seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135908</commentid>
    <comment_count>3</comment_count>
      <attachid>33798</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-07-30 11:51:55 -0700</bug_when>
    <thetext>Created attachment 33798
Updated patch to implement fillRoundRect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135909</commentid>
    <comment_count>4</comment_count>
      <attachid>33798</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-30 11:55:34 -0700</bug_when>
    <thetext>Comment on attachment 33798
Updated patch to implement fillRoundRect


&gt; +        Written by Crystal Zhang &lt;crystal.zhang@torchmobile.com&gt;

   That should be removed on checkin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135911</commentid>
    <comment_count>5</comment_count>
      <attachid>33798</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-30 11:58:18 -0700</bug_when>
    <thetext>Comment on attachment 33798
Updated patch to implement fillRoundRect

Round() was renamed as pointed out by Yong.  Need to revisit this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135949</commentid>
    <comment_count>6</comment_count>
      <attachid>33809</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-07-30 12:54:04 -0700</bug_when>
    <thetext>Created attachment 33809
Updated patch again

Update patch according to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137722</commentid>
    <comment_count>7</comment_count>
      <attachid>33809</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 18:34:28 -0700</bug_when>
    <thetext>Comment on attachment 33809
Updated patch again

No no no.  This is a bunch of copy/paste code.  Please use functions (static inline perhaps?) instead.  George should be able to help you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138056</commentid>
    <comment_count>8</comment_count>
      <attachid>34314</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-08-07 12:50:54 -0700</bug_when>
    <thetext>Created attachment 34314
Refactor fillRoundRect()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138130</commentid>
    <comment_count>9</comment_count>
      <attachid>34314</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-07 13:59:32 -0700</bug_when>
    <thetext>Comment on attachment 34314
Refactor fillRoundRect()

What is &quot;trRect&quot; supposed to mean?
 1244     IntRect trRect = fillRect;
See the webkit style guidelines about naming variables.

We really need a IntRet::centerPoint() function for this sort of thing:
     // Draw top left half
 1270     RECT clipRect(rectWin);
 1271     clipRect.right = rectWin.left + (rectWin.right - rectWin.left) / 2;
 1272     clipRect.bottom = rectWin.top + (rectWin.bottom - rectWin.top) / 2;

5     bool newClip;
 1276     if (GetClipRgn(dc, clipRgn.get()) &lt;= 0) 
 1277         newClip = true;
 1278     else 
 1279         newClip = false;

simpler as:
bool needsNewClip = (GetClipRgn(dc, clipRegion.get()) &lt;= 0);

Needs better variable names too.

Again, we need a &quot;center point&quot; function.  compute it once, and then use it to make the various different rects you need.
1283     // Draw top right
 1284     clipRect = rectWin;
 1285     clipRect.left = rectWin.left + (rectWin.right - rectWin.left) / 2;
 1286     clipRect.bottom = rectWin.top + (rectWin.bottom - rectWin.top) / 2;

IntPoint centerPoint(const IntRect&amp;) can just be a static inline for now.

Please run check-webkit-style:
317     } else {
 1318         IntersectClipRect(dc, clipRect.left, clipRect.top, clipRect.right, clipRect.bottom);
 1319     }

What does &quot;newClip&quot; mean?  Please give it a more descriptive name.

22     if (newClip) 
 1323         SelectClipRgn(dc, NULL);
 1324     else
 1325         SelectClipRgn(dc, clipRgn.get());

can be written as:

SelectClipRgn(dc, needsNewClip ? 0 : clipRgn.get())

WE don&apos;t use NULL in c++ code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138131</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-07 14:01:13 -0700</bug_when>
    <thetext>I think George should review all WinCE patches before they&apos;re posted here.  We&apos;re just wasting reviewer time catching basic errors like these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138684</commentid>
    <comment_count>11</comment_count>
      <attachid>34476</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-08-10 09:13:24 -0700</bug_when>
    <thetext>Created attachment 34476
Made some improvements to the code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138716</commentid>
    <comment_count>12</comment_count>
      <attachid>34476</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-08-10 10:47:00 -0700</bug_when>
    <thetext>Comment on attachment 34476
Made some improvements to the code

Did you miss a change to the .h file?  It seems like a new method is added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138732</commentid>
    <comment_count>13</comment_count>
      <attachid>34484</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-08-10 11:10:46 -0700</bug_when>
    <thetext>Created attachment 34484
Add update to .h file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138747</commentid>
    <comment_count>14</comment_count>
      <attachid>34484</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-08-10 11:31:40 -0700</bug_when>
    <thetext>Comment on attachment 34484
Add update to .h file


&gt; --- a/WebCore/platform/graphics/GraphicsContext.h
&gt; +++ b/WebCore/platform/graphics/GraphicsContext.h
&gt; @@ -221,6 +221,8 @@ namespace WebCore {
&gt;          void fillRect(const FloatRect&amp;, Generator&amp;);
&gt;          void fillRoundedRect(const IntRect&amp;, const IntSize&amp; topLeft, const IntSize&amp; topRight, const IntSize&amp; bottomLeft, const IntSize&amp; bottomRight, const Color&amp;);
&gt;  
&gt; +        void drawRoundCorner(bool newClip, RECT clipRect, RECT rectWin, HDC dc, int width, int height);
&gt; +
&gt;          void clearRect(const FloatRect&amp;);
&gt;  
&gt;          void strokeRect(const FloatRect&amp;);

That should be in a PLATFORM(WINCE) place or it will break the build for others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138751</commentid>
    <comment_count>15</comment_count>
      <attachid>34492</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-08-10 11:43:41 -0700</bug_when>
    <thetext>Created attachment 34492
Move drawRoundCorner&apos;s declaration to PLATFORM(WINCE) place</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138756</commentid>
    <comment_count>16</comment_count>
      <attachid>34492</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-08-10 11:49:59 -0700</bug_when>
    <thetext>Comment on attachment 34492
Move drawRoundCorner&apos;s declaration to PLATFORM(WINCE) place


&gt; +    if(!dc)
&gt; +        return;

   A space should be added after &quot;if&quot; when checking in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138767</commentid>
    <comment_count>17</comment_count>
      <attachid>34497</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-08-10 12:20:44 -0700</bug_when>
    <thetext>Created attachment 34497
Coding style change, use format-patch to generate patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138783</commentid>
    <comment_count>18</comment_count>
      <attachid>34501</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-08-10 13:05:25 -0700</bug_when>
    <thetext>Created attachment 34501
Fix the errors when applying the patch.

Fix the errors when applying the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138824</commentid>
    <comment_count>19</comment_count>
      <attachid>34516</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-08-10 14:30:40 -0700</bug_when>
    <thetext>Created attachment 34516
Fix the errors when applying the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138833</commentid>
    <comment_count>20</comment_count>
      <attachid>34516</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-08-10 15:04:05 -0700</bug_when>
    <thetext>Comment on attachment 34516
Fix the errors when applying the patch.

When committing, if it&apos;s not applying cleanly please just manually merge if possible.  This could be a never ending game that the files are changing underneath the patch between r+ and commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138877</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-10 19:00:01 -0700</bug_when>
    <thetext>The commit queue isn&apos;t capable of any manual merging.  If the commit fails, it will just be marked as commit-queue- and a committer (like yourself) will have to land it manually.  &quot;bugzilla-tool apply-patches&quot; can help with this.  If you&apos;re worry about it getting stale or needing manual intervention, probably best to just do it yourself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138952</commentid>
    <comment_count>22</comment_count>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2009-08-11 07:19:45 -0700</bug_when>
    <thetext>Has been fixed and committed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33793</attachid>
            <date>2009-07-30 11:14:03 -0700</date>
            <delta_ts>2009-07-30 11:35:51 -0700</delta_ts>
            <desc>patch to implement fillRoundRect</desc>
            <filename>patch to implement fillRoundRect</filename>
            <type>text/plain</type>
            <size>5666</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">aW5kZXggL1dlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZw0KKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTUgQEANCisyMDA5LTA3
LTMwICBDcnlzdGFsIFpoYW5nICA8Y3J5c3RhbC56aGFuZ0BzdGFpa29zLm5ldD4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgSW1wbGVtZW50IEdy
YXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kUmVjdCgpIGZvciBXSU5DRSBwb3J0DQorCQlodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc4NDINCisNCisgICAgICAgIFdyaXR0
ZW4gYnkgQ3J5c3RhbCBaaGFuZyA8Y3J5c3RhbC56aGFuZ0B0b3JjaG1vYmlsZS5jb20+DQorDQor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNw
cDoNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdCk6
DQorDQogMjAwOS0wNy0yNyAgWW9uZyBMaSAgPHlvbmcubGlAdG9yY2htb2JpbGUuY29tPg0KIA0K
ICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQppbmRleCAvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2lu
Y2UuY3BwDQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29u
dGV4dFdpbmNlLmNwcA0KQEAgLTEyMjksOSArMTIyOSwxMjEgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmNsaXBPdXRFbGxpcHNlSW5SZWN0KGNvbnN0IEludFJlY3QmKQ0KICAgICBub3RJbXBsZW1l
bnRlZCgpOw0KIH0NCiANCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNv
bnN0IEludFJlY3QmLCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BS
aWdodCwgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmln
aHQsIGNvbnN0IENvbG9yJikNCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0
KGNvbnN0IEludFJlY3QmIGZpbGxSZWN0LCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJ
bnRTaXplJiB0b3BSaWdodCwgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6
ZSYgYm90dG9tUmlnaHQsIGNvbnN0IENvbG9yJiBjKQ0KIHsNCi0gICAgbm90SW1wbGVtZW50ZWQo
KTsNCisgICAgU2NvcGVEQ1Byb3ZpZGVyIGRjUHJvdmlkZXIobV9kYXRhKTsNCisgICAgaWYgKCFt
X2RhdGEtPm1fZGMpDQorICAgICAgICByZXR1cm47DQorDQorICAgIEludFNpemUgc2hhZG93U2l6
ZTsNCisgICAgaW50IHNoYWRvd0JsdXIgPSAwOw0KKyAgICBDb2xvciBzaGFkb3dDb2xvcjsNCisg
ICAgICAgIA0KKyAgICBnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29s
b3IpOw0KKyAgICANCisgICAgSW50UmVjdCB0clJlY3QgPSBmaWxsUmVjdDsNCisgICAgDQorICAg
IHRyUmVjdC5tb3ZlKHNoYWRvd1NpemUpOw0KKyAgICB0clJlY3QuaW5mbGF0ZShzaGFkb3dCbHVy
KTsNCisgICAgdHJSZWN0ID0gbV9kYXRhLT5tYXBSZWN0KHRyUmVjdCk7DQorICANCisgICAgRmxv
YXRTaXplIG5ld1RvcExlZnQobV9kYXRhLT5tYXBTaXplKHRvcExlZnQpKTsNCisgICAgRmxvYXRT
aXplIG5ld1RvcFJpZ2h0KG1fZGF0YS0+bWFwU2l6ZSh0b3BSaWdodCkpOw0KKyAgICBGbG9hdFNp
emUgbmV3Qm90dG9tTGVmdChtX2RhdGEtPm1hcFNpemUoYm90dG9tTGVmdCkpOw0KKyAgICBGbG9h
dFNpemUgbmV3Qm90dG9tUmlnaHQobV9kYXRhLT5tYXBTaXplKGJvdHRvbVJpZ2h0KSk7DQorDQor
ICAgIFRyYW5zcGFyZW50TGF5ZXJEQyB0cmFuc3BhcmVudERjKG1fZGF0YSwgdHJSZWN0LCAmZmls
bFJlY3QpOw0KKyAgICBIREMgZGMgPSB0cmFuc3BhcmVudERjLmhkYygpOw0KKyAgICBpZiAoIWRj
KQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICB0clJlY3QubW92ZSh0cmFuc3BhcmVudERjLnRv
U2hpZnQoKSk7DQorDQorICAgIFJFQ1QgcmVjdFdpbiA9IHRyUmVjdDsNCisNCisgICAgSEdESU9C
SiBicnVzaCA9IGNyZWF0ZUJydXNoKGMpOw0KKyAgICBIR0RJT0JKIG9sZEJydXNoID0gU2VsZWN0
T2JqZWN0KGRjLCBicnVzaCk7DQorICAgDQorICAgIFNlbGVjdE9iamVjdChkYywgR2V0U3RvY2tP
YmplY3QoTlVMTF9QRU4pKTsNCisgICAgDQorICAgIC8vIERyYXcgdG9wIGxlZnQgaGFsZg0KKyAg
ICBSRUNUIGNsaXBSZWN0KHJlY3RXaW4pOw0KKyAgICBjbGlwUmVjdC5yaWdodCA9IHJlY3RXaW4u
bGVmdCArIChyZWN0V2luLnJpZ2h0IC0gcmVjdFdpbi5sZWZ0KSAvIDI7DQorICAgIGNsaXBSZWN0
LmJvdHRvbSA9IHJlY3RXaW4udG9wICsgKHJlY3RXaW4uYm90dG9tIC0gcmVjdFdpbi50b3ApIC8g
MjsNCisNCisgICAgT3duUHRyPEhSR04+IGNsaXBSZ24oQ3JlYXRlUmVjdFJnbigwLCAwLCAwLCAw
KSk7DQorICAgIGJvb2wgbmV3Q2xpcDsNCisgICAgaWYgKEdldENsaXBSZ24oZGMsIGNsaXBSZ24u
Z2V0KCkpIDw9IDApIHsNCisgICAgICAgIG5ld0NsaXAgPSB0cnVlOw0KKyAgICAgICAgY2xpcFJn
bi5zZXQoQ3JlYXRlUmVjdFJnbihjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0
LnJpZ2h0LCBjbGlwUmVjdC5ib3R0b20pKTsNCisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMsIGNs
aXBSZ24uZ2V0KCkpOw0KKyAgICB9IGVsc2Ugew0KKyAgICAgICAgbmV3Q2xpcCA9IGZhbHNlOw0K
KyAgICAgICAgSW50ZXJzZWN0Q2xpcFJlY3QoZGMsIGNsaXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRv
cCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0LmJvdHRvbSk7DQorICAgIH0NCisgICAgOjpSb3Vu
ZFJlY3QoZGMsIHJlY3RXaW4ubGVmdCAsIHJlY3RXaW4udG9wICwgcmVjdFdpbi5yaWdodCAsIHJl
Y3RXaW4uYm90dG9tICwgUm91bmQobmV3VG9wTGVmdC53aWR0aCgpICogMiksIFJvdW5kKG5ld1Rv
cExlZnQuaGVpZ2h0KCkgKiAyKSk7DQorICAgIA0KKyAgICBpZiAobmV3Q2xpcCkgDQorICAgICAg
ICBTZWxlY3RDbGlwUmduKGRjLCBOVUxMKTsNCisgICAgZWxzZQ0KKyAgICAgICAgU2VsZWN0Q2xp
cFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQorDQorICAgIC8vIERyYXcgdG9wIHJpZ2h0DQorICAg
IGNsaXBSZWN0ID0gcmVjdFdpbjsNCisgICAgY2xpcFJlY3QubGVmdCA9IHJlY3RXaW4ubGVmdCAr
IChyZWN0V2luLnJpZ2h0IC0gcmVjdFdpbi5sZWZ0KSAvIDI7DQorICAgIGNsaXBSZWN0LmJvdHRv
bSA9IHJlY3RXaW4udG9wICsgKHJlY3RXaW4uYm90dG9tIC0gcmVjdFdpbi50b3ApIC8gMjsNCisN
CisgICAgaWYgKG5ld0NsaXApICB7DQorICAgICAgICBjbGlwUmduLnNldChDcmVhdGVSZWN0Umdu
KGNsaXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRvcCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0LmJv
dHRvbSkpOw0KKyAgICAgICAgU2VsZWN0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQorICAg
IH0gZWxzZSB7DQorICAgICAgICBJbnRlcnNlY3RDbGlwUmVjdChkYywgY2xpcFJlY3QubGVmdCwg
Y2xpcFJlY3QudG9wLCBjbGlwUmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKTsNCisgICAgfQ0K
KyAgICANCisgICAgOjpSb3VuZFJlY3QoZGMsIHJlY3RXaW4ubGVmdCAsIHJlY3RXaW4udG9wICwg
cmVjdFdpbi5yaWdodCAsIHJlY3RXaW4uYm90dG9tICwgUm91bmQobmV3VG9wUmlnaHQud2lkdGgo
KSAqIDIpLCBSb3VuZChuZXdUb3BSaWdodC5oZWlnaHQoKSAqIDIpKTsNCisgICAgaWYgKG5ld0Ns
aXApIA0KKyAgICAgICAgU2VsZWN0Q2xpcFJnbihkYywgTlVMTCk7DQorICAgIGVsc2UNCisgICAg
ICAgIFNlbGVjdENsaXBSZ24oZGMsIGNsaXBSZ24uZ2V0KCkpOw0KKw0KKyAgICAvLyBEcmF3IGJv
dHRvbSBsZWZ0DQorICAgIGNsaXBSZWN0ID0gcmVjdFdpbjsNCisgICAgY2xpcFJlY3QucmlnaHQg
PSByZWN0V2luLmxlZnQgKyAocmVjdFdpbi5yaWdodCAtIHJlY3RXaW4ubGVmdCkgLyAyOw0KKyAg
ICBjbGlwUmVjdC50b3AgPSByZWN0V2luLnRvcCArIChyZWN0V2luLmJvdHRvbSAtIHJlY3RXaW4u
dG9wKSAvIDI7DQorDQorICAgIGlmIChuZXdDbGlwKSAgew0KKyAgICAgICAgY2xpcFJnbi5zZXQo
Q3JlYXRlUmVjdFJnbihjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0
LCBjbGlwUmVjdC5ib3R0b20pKTsNCisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMsIGNsaXBSZ24u
Z2V0KCkpOw0KKyAgICB9IGVsc2Ugew0KKyAgICAgICAgSW50ZXJzZWN0Q2xpcFJlY3QoZGMsIGNs
aXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRvcCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0LmJvdHRv
bSk7DQorICAgIH0NCisNCisgICAgOjpSb3VuZFJlY3QoZGMsIHJlY3RXaW4ubGVmdCAsIHJlY3RX
aW4udG9wICwgcmVjdFdpbi5yaWdodCAsIHJlY3RXaW4uYm90dG9tICwgUm91bmQobmV3Qm90dG9t
TGVmdC53aWR0aCgpICogMiksIFJvdW5kKG5ld0JvdHRvbUxlZnQuaGVpZ2h0KCkgKiAyKSk7DQor
ICAgIGlmIChuZXdDbGlwKSANCisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMsIE5VTEwpOw0KKyAg
ICBlbHNlDQorICAgICAgICBTZWxlY3RDbGlwUmduKGRjLCBjbGlwUmduLmdldCgpKTsNCisNCisg
ICAgLy8gRHJhdyBib3R0b20gcmlnaHQNCisgICAgY2xpcFJlY3QgPSByZWN0V2luOw0KKyAgICBj
bGlwUmVjdC5sZWZ0ID0gcmVjdFdpbi5sZWZ0ICsgKHJlY3RXaW4ucmlnaHQgLSByZWN0V2luLmxl
ZnQpIC8gMjsNCisgICAgY2xpcFJlY3QudG9wID0gcmVjdFdpbi50b3AgKyAocmVjdFdpbi5ib3R0
b20gLSByZWN0V2luLnRvcCkgLyAyOw0KKw0KKyAgICBpZiAobmV3Q2xpcCkgIHsNCisgICAgICAg
IGNsaXBSZ24uc2V0KENyZWF0ZVJlY3RSZ24oY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9wLCBj
bGlwUmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKSk7DQorICAgICAgICBTZWxlY3RDbGlwUmdu
KGRjLCBjbGlwUmduLmdldCgpKTsNCisgICAgfSBlbHNlIHsNCisgICAgICAgIEludGVyc2VjdENs
aXBSZWN0KGRjLCBjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBj
bGlwUmVjdC5ib3R0b20pOw0KKyAgICB9DQorICAgIDo6Um91bmRSZWN0KGRjLCByZWN0V2luLmxl
ZnQgLCByZWN0V2luLnRvcCAsIHJlY3RXaW4ucmlnaHQgLCByZWN0V2luLmJvdHRvbSAsIFJvdW5k
KG5ld0JvdHRvbVJpZ2h0LndpZHRoKCkgKiAyKSwgUm91bmQobmV3Qm90dG9tUmlnaHQuaGVpZ2h0
KCkgKiAyKSk7DQorICAgIA0KKyAgICBpZiAobmV3Q2xpcCkgDQorICAgICAgICBTZWxlY3RDbGlw
UmduKGRjLCBOVUxMKTsNCisgICAgZWxzZQ0KKyAgICAgICAgU2VsZWN0Q2xpcFJnbihkYywgY2xp
cFJnbi5nZXQoKSk7DQorDQorICAgIFNlbGVjdE9iamVjdChkYywgb2xkQnJ1c2gpOw0KKyAgICBE
ZWxldGVPYmplY3QoYnJ1c2gpOw0KIH0=
</data>
<flag name="review"
          id="17993"
          type_id="1"
          status="-"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33798</attachid>
            <date>2009-07-30 11:51:55 -0700</date>
            <delta_ts>2009-07-30 11:58:18 -0700</delta_ts>
            <desc>Updated patch to implement fillRoundRect</desc>
            <filename>patch to implement fillRoundRect</filename>
            <type>text/plain</type>
            <size>5635</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">aW5kZXggL1dlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZw0KKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTUgQEANCisyMDA5LTA3
LTMwICBDcnlzdGFsIFpoYW5nICA8Y3J5c3RhbC56aGFuZ0B0b3JjaG1vYmlsZS5jb20+DQorDQor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIEltcGxlbWVu
dCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZFJlY3QoKSBmb3IgV0lOQ0UgcG9ydA0KKwkJaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3ODQyDQorDQorICAgICAgICBX
cml0dGVuIGJ5IENyeXN0YWwgWmhhbmcgPGNyeXN0YWwuemhhbmdAdG9yY2htb2JpbGUuY29tPg0K
Kw0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5j
ZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJl
Y3QpOg0KKw0KIDIwMDktMDctMjcgIFlvbmcgTGkgIDx5b25nLmxpQHRvcmNobW9iaWxlLmNvbT4N
CiANCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KaW5kZXggL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4
dFdpbmNlLmNwcA0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGlj
c0NvbnRleHRXaW5jZS5jcHANCkBAIC0xMjI5LDkgKzEyMjksMTIxIEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpjbGlwT3V0RWxsaXBzZUluUmVjdChjb25zdCBJbnRSZWN0JikNCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsNCiB9DQogDQotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVj
dChjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYg
dG9wUmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRv
bVJpZ2h0LCBjb25zdCBDb2xvciYpDQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVk
UmVjdChjb25zdCBJbnRSZWN0JiBmaWxsUmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29u
c3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IElu
dFNpemUmIGJvdHRvbVJpZ2h0LCBjb25zdCBDb2xvciYgYykNCiB7DQotICAgIG5vdEltcGxlbWVu
dGVkKCk7DQorICAgIFNjb3BlRENQcm92aWRlciBkY1Byb3ZpZGVyKG1fZGF0YSk7DQorICAgIGlm
ICghbV9kYXRhLT5tX2RjKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICBJbnRTaXplIHNoYWRv
d1NpemU7DQorICAgIGludCBzaGFkb3dCbHVyID0gMDsNCisgICAgQ29sb3Igc2hhZG93Q29sb3I7
DQorICAgICAgICANCisgICAgZ2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRv
d0NvbG9yKTsNCisgICAgDQorICAgIEludFJlY3QgdHJSZWN0ID0gZmlsbFJlY3Q7DQorICAgIA0K
KyAgICB0clJlY3QubW92ZShzaGFkb3dTaXplKTsNCisgICAgdHJSZWN0LmluZmxhdGUoc2hhZG93
Qmx1cik7DQorICAgIHRyUmVjdCA9IG1fZGF0YS0+bWFwUmVjdCh0clJlY3QpOw0KKyAgDQorICAg
IEZsb2F0U2l6ZSBuZXdUb3BMZWZ0KG1fZGF0YS0+bWFwU2l6ZSh0b3BMZWZ0KSk7DQorICAgIEZs
b2F0U2l6ZSBuZXdUb3BSaWdodChtX2RhdGEtPm1hcFNpemUodG9wUmlnaHQpKTsNCisgICAgRmxv
YXRTaXplIG5ld0JvdHRvbUxlZnQobV9kYXRhLT5tYXBTaXplKGJvdHRvbUxlZnQpKTsNCisgICAg
RmxvYXRTaXplIG5ld0JvdHRvbVJpZ2h0KG1fZGF0YS0+bWFwU2l6ZShib3R0b21SaWdodCkpOw0K
Kw0KKyAgICBUcmFuc3BhcmVudExheWVyREMgdHJhbnNwYXJlbnREYyhtX2RhdGEsIHRyUmVjdCwg
JmZpbGxSZWN0KTsNCisgICAgSERDIGRjID0gdHJhbnNwYXJlbnREYy5oZGMoKTsNCisgICAgaWYg
KCFkYykNCisgICAgICAgIHJldHVybjsNCisNCisgICAgdHJSZWN0Lm1vdmUodHJhbnNwYXJlbnRE
Yy50b1NoaWZ0KCkpOw0KKw0KKyAgICBSRUNUIHJlY3RXaW4gPSB0clJlY3Q7DQorDQorICAgIEhH
RElPQkogYnJ1c2ggPSBjcmVhdGVCcnVzaChjKTsNCisgICAgSEdESU9CSiBvbGRCcnVzaCA9IFNl
bGVjdE9iamVjdChkYywgYnJ1c2gpOw0KKyAgIA0KKyAgICBTZWxlY3RPYmplY3QoZGMsIEdldFN0
b2NrT2JqZWN0KE5VTExfUEVOKSk7DQorICAgIA0KKyAgICAvLyBEcmF3IHRvcCBsZWZ0IGhhbGYN
CisgICAgUkVDVCBjbGlwUmVjdChyZWN0V2luKTsNCisgICAgY2xpcFJlY3QucmlnaHQgPSByZWN0
V2luLmxlZnQgKyAocmVjdFdpbi5yaWdodCAtIHJlY3RXaW4ubGVmdCkgLyAyOw0KKyAgICBjbGlw
UmVjdC5ib3R0b20gPSByZWN0V2luLnRvcCArIChyZWN0V2luLmJvdHRvbSAtIHJlY3RXaW4udG9w
KSAvIDI7DQorDQorICAgIE93blB0cjxIUkdOPiBjbGlwUmduKENyZWF0ZVJlY3RSZ24oMCwgMCwg
MCwgMCkpOw0KKyAgICBib29sIG5ld0NsaXA7DQorICAgIGlmIChHZXRDbGlwUmduKGRjLCBjbGlw
UmduLmdldCgpKSA8PSAwKSB7DQorICAgICAgICBuZXdDbGlwID0gdHJ1ZTsNCisgICAgICAgIGNs
aXBSZ24uc2V0KENyZWF0ZVJlY3RSZ24oY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9wLCBjbGlw
UmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKSk7DQorICAgICAgICBTZWxlY3RDbGlwUmduKGRj
LCBjbGlwUmduLmdldCgpKTsNCisgICAgfSBlbHNlIHsNCisgICAgICAgIG5ld0NsaXAgPSBmYWxz
ZTsNCisgICAgICAgIEludGVyc2VjdENsaXBSZWN0KGRjLCBjbGlwUmVjdC5sZWZ0LCBjbGlwUmVj
dC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBjbGlwUmVjdC5ib3R0b20pOw0KKyAgICB9DQorICAgIDo6
Um91bmRSZWN0KGRjLCByZWN0V2luLmxlZnQgLCByZWN0V2luLnRvcCAsIHJlY3RXaW4ucmlnaHQg
LCByZWN0V2luLmJvdHRvbSAsIFJvdW5kKG5ld1RvcExlZnQud2lkdGgoKSAqIDIpLCBSb3VuZChu
ZXdUb3BMZWZ0LmhlaWdodCgpICogMikpOw0KKyAgICANCisgICAgaWYgKG5ld0NsaXApIA0KKyAg
ICAgICAgU2VsZWN0Q2xpcFJnbihkYywgMCk7DQorICAgIGVsc2UNCisgICAgICAgIFNlbGVjdENs
aXBSZ24oZGMsIGNsaXBSZ24uZ2V0KCkpOw0KKw0KKyAgICAvLyBEcmF3IHRvcCByaWdodA0KKyAg
ICBjbGlwUmVjdCA9IHJlY3RXaW47DQorICAgIGNsaXBSZWN0LmxlZnQgPSByZWN0V2luLmxlZnQg
KyAocmVjdFdpbi5yaWdodCAtIHJlY3RXaW4ubGVmdCkgLyAyOw0KKyAgICBjbGlwUmVjdC5ib3R0
b20gPSByZWN0V2luLnRvcCArIChyZWN0V2luLmJvdHRvbSAtIHJlY3RXaW4udG9wKSAvIDI7DQor
DQorICAgIGlmIChuZXdDbGlwKSAgew0KKyAgICAgICAgY2xpcFJnbi5zZXQoQ3JlYXRlUmVjdFJn
bihjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBjbGlwUmVjdC5i
b3R0b20pKTsNCisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMsIGNsaXBSZ24uZ2V0KCkpOw0KKyAg
ICB9IGVsc2UgDQorICAgICAgICBJbnRlcnNlY3RDbGlwUmVjdChkYywgY2xpcFJlY3QubGVmdCwg
Y2xpcFJlY3QudG9wLCBjbGlwUmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKTsNCisgICAgIA0K
KyAgICA6OlJvdW5kUmVjdChkYywgcmVjdFdpbi5sZWZ0ICwgcmVjdFdpbi50b3AgLCByZWN0V2lu
LnJpZ2h0ICwgcmVjdFdpbi5ib3R0b20gLCBSb3VuZChuZXdUb3BSaWdodC53aWR0aCgpICogMiks
IFJvdW5kKG5ld1RvcFJpZ2h0LmhlaWdodCgpICogMikpOw0KKyAgICBpZiAobmV3Q2xpcCkgDQor
ICAgICAgICBTZWxlY3RDbGlwUmduKGRjLCAwKTsNCisgICAgZWxzZQ0KKyAgICAgICAgU2VsZWN0
Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQorDQorICAgIC8vIERyYXcgYm90dG9tIGxlZnQN
CisgICAgY2xpcFJlY3QgPSByZWN0V2luOw0KKyAgICBjbGlwUmVjdC5yaWdodCA9IHJlY3RXaW4u
bGVmdCArIChyZWN0V2luLnJpZ2h0IC0gcmVjdFdpbi5sZWZ0KSAvIDI7DQorICAgIGNsaXBSZWN0
LnRvcCA9IHJlY3RXaW4udG9wICsgKHJlY3RXaW4uYm90dG9tIC0gcmVjdFdpbi50b3ApIC8gMjsN
CisNCisgICAgaWYgKG5ld0NsaXApICB7DQorICAgICAgICBjbGlwUmduLnNldChDcmVhdGVSZWN0
UmduKGNsaXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRvcCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0
LmJvdHRvbSkpOw0KKyAgICAgICAgU2VsZWN0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQor
ICAgIH0gZWxzZSANCisgICAgICAgIEludGVyc2VjdENsaXBSZWN0KGRjLCBjbGlwUmVjdC5sZWZ0
LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBjbGlwUmVjdC5ib3R0b20pOw0KKw0KKyAg
ICA6OlJvdW5kUmVjdChkYywgcmVjdFdpbi5sZWZ0ICwgcmVjdFdpbi50b3AgLCByZWN0V2luLnJp
Z2h0ICwgcmVjdFdpbi5ib3R0b20gLCBSb3VuZChuZXdCb3R0b21MZWZ0LndpZHRoKCkgKiAyKSwg
Um91bmQobmV3Qm90dG9tTGVmdC5oZWlnaHQoKSAqIDIpKTsNCisgICAgaWYgKG5ld0NsaXApIA0K
KyAgICAgICAgU2VsZWN0Q2xpcFJnbihkYywgMCk7DQorICAgIGVsc2UNCisgICAgICAgIFNlbGVj
dENsaXBSZ24oZGMsIGNsaXBSZ24uZ2V0KCkpOw0KKw0KKyAgICAvLyBEcmF3IGJvdHRvbSByaWdo
dA0KKyAgICBjbGlwUmVjdCA9IHJlY3RXaW47DQorICAgIGNsaXBSZWN0LmxlZnQgPSByZWN0V2lu
LmxlZnQgKyAocmVjdFdpbi5yaWdodCAtIHJlY3RXaW4ubGVmdCkgLyAyOw0KKyAgICBjbGlwUmVj
dC50b3AgPSByZWN0V2luLnRvcCArIChyZWN0V2luLmJvdHRvbSAtIHJlY3RXaW4udG9wKSAvIDI7
DQorDQorICAgIGlmIChuZXdDbGlwKSAgew0KKyAgICAgICAgY2xpcFJnbi5zZXQoQ3JlYXRlUmVj
dFJnbihjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBjbGlwUmVj
dC5ib3R0b20pKTsNCisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMsIGNsaXBSZ24uZ2V0KCkpOw0K
KyAgICB9IGVsc2UgDQorICAgICAgICBJbnRlcnNlY3RDbGlwUmVjdChkYywgY2xpcFJlY3QubGVm
dCwgY2xpcFJlY3QudG9wLCBjbGlwUmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKTsNCisNCisg
ICAgOjpSb3VuZFJlY3QoZGMsIHJlY3RXaW4ubGVmdCAsIHJlY3RXaW4udG9wICwgcmVjdFdpbi5y
aWdodCAsIHJlY3RXaW4uYm90dG9tICwgUm91bmQobmV3Qm90dG9tUmlnaHQud2lkdGgoKSAqIDIp
LCBSb3VuZChuZXdCb3R0b21SaWdodC5oZWlnaHQoKSAqIDIpKTsNCisgICAgDQorICAgIGlmIChu
ZXdDbGlwKSANCisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMsIDApOw0KKyAgICBlbHNlDQorICAg
ICAgICBTZWxlY3RDbGlwUmduKGRjLCBjbGlwUmduLmdldCgpKTsNCisNCisgICAgU2VsZWN0T2Jq
ZWN0KGRjLCBvbGRCcnVzaCk7DQorICAgIERlbGV0ZU9iamVjdChicnVzaCk7DQogfQ==
</data>
<flag name="review"
          id="17996"
          type_id="1"
          status="-"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33809</attachid>
            <date>2009-07-30 12:54:04 -0700</date>
            <delta_ts>2009-08-06 18:34:28 -0700</delta_ts>
            <desc>Updated patch again</desc>
            <filename>patch to implement fillRoundRect</filename>
            <type>text/plain</type>
            <size>5613</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">aW5kZXggL1dlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZw0KKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTUgQEANCisyMDA5LTA3
LTMwICBDcnlzdGFsIFpoYW5nICA8Y3J5c3RhbC56aGFuZ0B0b3JjaG1vYmlsZS5jb20+DQorDQor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIEltcGxlbWVu
dCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZFJlY3QoKSBmb3IgV0lOQ0UgcG9ydA0KKwkJaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3ODQyDQorDQorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcDoNCisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdCk6DQorDQogMjAw
OS0wNy0yNyAgWW9uZyBMaSAgPHlvbmcubGlAdG9yY2htb2JpbGUuY29tPg0KIA0KICAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQppbmRleCAvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHANCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwDQor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNl
LmNwcA0KQEAgLTEyMjksOSArMTIyOSwxMjEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBP
dXRFbGxpcHNlSW5SZWN0KGNvbnN0IEludFJlY3QmKQ0KICAgICBub3RJbXBsZW1lbnRlZCgpOw0K
IH0NCiANCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJl
Y3QmLCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwgY29u
c3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNvbnN0
IENvbG9yJikNCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IElu
dFJlY3QmIGZpbGxSZWN0LCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0
b3BSaWdodCwgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9t
UmlnaHQsIGNvbnN0IENvbG9yJiBjKQ0KIHsNCi0gICAgbm90SW1wbGVtZW50ZWQoKTsNCisgICAg
U2NvcGVEQ1Byb3ZpZGVyIGRjUHJvdmlkZXIobV9kYXRhKTsNCisgICAgaWYgKCFtX2RhdGEtPm1f
ZGMpDQorICAgICAgICByZXR1cm47DQorDQorICAgIEludFNpemUgc2hhZG93U2l6ZTsNCisgICAg
aW50IHNoYWRvd0JsdXIgPSAwOw0KKyAgICBDb2xvciBzaGFkb3dDb2xvcjsNCisgICAgICAgIA0K
KyAgICBnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpOw0KKyAg
ICANCisgICAgSW50UmVjdCB0clJlY3QgPSBmaWxsUmVjdDsNCisgICAgDQorICAgIHRyUmVjdC5t
b3ZlKHNoYWRvd1NpemUpOw0KKyAgICB0clJlY3QuaW5mbGF0ZShzaGFkb3dCbHVyKTsNCisgICAg
dHJSZWN0ID0gbV9kYXRhLT5tYXBSZWN0KHRyUmVjdCk7DQorICANCisgICAgRmxvYXRTaXplIG5l
d1RvcExlZnQobV9kYXRhLT5tYXBTaXplKHRvcExlZnQpKTsNCisgICAgRmxvYXRTaXplIG5ld1Rv
cFJpZ2h0KG1fZGF0YS0+bWFwU2l6ZSh0b3BSaWdodCkpOw0KKyAgICBGbG9hdFNpemUgbmV3Qm90
dG9tTGVmdChtX2RhdGEtPm1hcFNpemUoYm90dG9tTGVmdCkpOw0KKyAgICBGbG9hdFNpemUgbmV3
Qm90dG9tUmlnaHQobV9kYXRhLT5tYXBTaXplKGJvdHRvbVJpZ2h0KSk7DQorDQorICAgIFRyYW5z
cGFyZW50TGF5ZXJEQyB0cmFuc3BhcmVudERjKG1fZGF0YSwgdHJSZWN0LCAmZmlsbFJlY3QpOw0K
KyAgICBIREMgZGMgPSB0cmFuc3BhcmVudERjLmhkYygpOw0KKyAgICBpZiAoIWRjKQ0KKyAgICAg
ICAgcmV0dXJuOw0KKw0KKyAgICB0clJlY3QubW92ZSh0cmFuc3BhcmVudERjLnRvU2hpZnQoKSk7
DQorDQorICAgIFJFQ1QgcmVjdFdpbiA9IHRyUmVjdDsNCisNCisgICAgSEdESU9CSiBicnVzaCA9
IGNyZWF0ZUJydXNoKGMpOw0KKyAgICBIR0RJT0JKIG9sZEJydXNoID0gU2VsZWN0T2JqZWN0KGRj
LCBicnVzaCk7DQorICAgDQorICAgIFNlbGVjdE9iamVjdChkYywgR2V0U3RvY2tPYmplY3QoTlVM
TF9QRU4pKTsNCisgICAgDQorICAgIC8vIERyYXcgdG9wIGxlZnQgaGFsZg0KKyAgICBSRUNUIGNs
aXBSZWN0KHJlY3RXaW4pOw0KKyAgICBjbGlwUmVjdC5yaWdodCA9IHJlY3RXaW4ubGVmdCArIChy
ZWN0V2luLnJpZ2h0IC0gcmVjdFdpbi5sZWZ0KSAvIDI7DQorICAgIGNsaXBSZWN0LmJvdHRvbSA9
IHJlY3RXaW4udG9wICsgKHJlY3RXaW4uYm90dG9tIC0gcmVjdFdpbi50b3ApIC8gMjsNCisNCisg
ICAgT3duUHRyPEhSR04+IGNsaXBSZ24oQ3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7DQorICAg
IGJvb2wgbmV3Q2xpcDsNCisgICAgaWYgKEdldENsaXBSZ24oZGMsIGNsaXBSZ24uZ2V0KCkpIDw9
IDApIHsNCisgICAgICAgIG5ld0NsaXAgPSB0cnVlOw0KKyAgICAgICAgY2xpcFJnbi5zZXQoQ3Jl
YXRlUmVjdFJnbihjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBj
bGlwUmVjdC5ib3R0b20pKTsNCisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMsIGNsaXBSZ24uZ2V0
KCkpOw0KKyAgICB9IGVsc2Ugew0KKyAgICAgICAgbmV3Q2xpcCA9IGZhbHNlOw0KKyAgICAgICAg
SW50ZXJzZWN0Q2xpcFJlY3QoZGMsIGNsaXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRvcCwgY2xpcFJl
Y3QucmlnaHQsIGNsaXBSZWN0LmJvdHRvbSk7DQorICAgIH0NCisgICAgOjpSb3VuZFJlY3QoZGMs
IHJlY3RXaW4ubGVmdCAsIHJlY3RXaW4udG9wICwgcmVjdFdpbi5yaWdodCAsIHJlY3RXaW4uYm90
dG9tICwgc3RhYmxlUm91bmQobmV3VG9wTGVmdC53aWR0aCgpICogMiksIHN0YWJsZVJvdW5kKG5l
d1RvcExlZnQuaGVpZ2h0KCkgKiAyKSk7DQorICAgIA0KKyAgICBpZiAobmV3Q2xpcCkgDQorICAg
ICAgICBTZWxlY3RDbGlwUmduKGRjLCAwKTsNCisgICAgZWxzZQ0KKyAgICAgICAgU2VsZWN0Q2xp
cFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQorDQorICAgIC8vIERyYXcgdG9wIHJpZ2h0DQorICAg
IGNsaXBSZWN0ID0gcmVjdFdpbjsNCisgICAgY2xpcFJlY3QubGVmdCA9IHJlY3RXaW4ubGVmdCAr
IChyZWN0V2luLnJpZ2h0IC0gcmVjdFdpbi5sZWZ0KSAvIDI7DQorICAgIGNsaXBSZWN0LmJvdHRv
bSA9IHJlY3RXaW4udG9wICsgKHJlY3RXaW4uYm90dG9tIC0gcmVjdFdpbi50b3ApIC8gMjsNCisN
CisgICAgaWYgKG5ld0NsaXApICB7DQorICAgICAgICBjbGlwUmduLnNldChDcmVhdGVSZWN0Umdu
KGNsaXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRvcCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0LmJv
dHRvbSkpOw0KKyAgICAgICAgU2VsZWN0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQorICAg
IH0gZWxzZSANCisgICAgICAgIEludGVyc2VjdENsaXBSZWN0KGRjLCBjbGlwUmVjdC5sZWZ0LCBj
bGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBjbGlwUmVjdC5ib3R0b20pOw0KKyAgICAgDQor
ICAgIDo6Um91bmRSZWN0KGRjLCByZWN0V2luLmxlZnQgLCByZWN0V2luLnRvcCAsIHJlY3RXaW4u
cmlnaHQgLCByZWN0V2luLmJvdHRvbSAsIHN0YWJsZVJvdW5kKG5ld1RvcFJpZ2h0LndpZHRoKCkg
KiAyKSwgc3RhYmxlUm91bmQobmV3VG9wUmlnaHQuaGVpZ2h0KCkgKiAyKSk7DQorICAgIGlmIChu
ZXdDbGlwKSANCisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMsIDApOw0KKyAgICBlbHNlDQorICAg
ICAgICBTZWxlY3RDbGlwUmduKGRjLCBjbGlwUmduLmdldCgpKTsNCisNCisgICAgLy8gRHJhdyBi
b3R0b20gbGVmdA0KKyAgICBjbGlwUmVjdCA9IHJlY3RXaW47DQorICAgIGNsaXBSZWN0LnJpZ2h0
ID0gcmVjdFdpbi5sZWZ0ICsgKHJlY3RXaW4ucmlnaHQgLSByZWN0V2luLmxlZnQpIC8gMjsNCisg
ICAgY2xpcFJlY3QudG9wID0gcmVjdFdpbi50b3AgKyAocmVjdFdpbi5ib3R0b20gLSByZWN0V2lu
LnRvcCkgLyAyOw0KKw0KKyAgICBpZiAobmV3Q2xpcCkgIHsNCisgICAgICAgIGNsaXBSZ24uc2V0
KENyZWF0ZVJlY3RSZ24oY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9wLCBjbGlwUmVjdC5yaWdo
dCwgY2xpcFJlY3QuYm90dG9tKSk7DQorICAgICAgICBTZWxlY3RDbGlwUmduKGRjLCBjbGlwUmdu
LmdldCgpKTsNCisgICAgfSBlbHNlIA0KKyAgICAgICAgSW50ZXJzZWN0Q2xpcFJlY3QoZGMsIGNs
aXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRvcCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0LmJvdHRv
bSk7DQorDQorICAgIDo6Um91bmRSZWN0KGRjLCByZWN0V2luLmxlZnQgLCByZWN0V2luLnRvcCAs
IHJlY3RXaW4ucmlnaHQgLCByZWN0V2luLmJvdHRvbSAsIHN0YWJsZVJvdW5kKG5ld0JvdHRvbUxl
ZnQud2lkdGgoKSAqIDIpLCBzdGFibGVSb3VuZChuZXdCb3R0b21MZWZ0LmhlaWdodCgpICogMikp
Ow0KKyAgICBpZiAobmV3Q2xpcCkgDQorICAgICAgICBTZWxlY3RDbGlwUmduKGRjLCAwKTsNCisg
ICAgZWxzZQ0KKyAgICAgICAgU2VsZWN0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQorDQor
ICAgIC8vIERyYXcgYm90dG9tIHJpZ2h0DQorICAgIGNsaXBSZWN0ID0gcmVjdFdpbjsNCisgICAg
Y2xpcFJlY3QubGVmdCA9IHJlY3RXaW4ubGVmdCArIChyZWN0V2luLnJpZ2h0IC0gcmVjdFdpbi5s
ZWZ0KSAvIDI7DQorICAgIGNsaXBSZWN0LnRvcCA9IHJlY3RXaW4udG9wICsgKHJlY3RXaW4uYm90
dG9tIC0gcmVjdFdpbi50b3ApIC8gMjsNCisNCisgICAgaWYgKG5ld0NsaXApICB7DQorICAgICAg
ICBjbGlwUmduLnNldChDcmVhdGVSZWN0UmduKGNsaXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRvcCwg
Y2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0LmJvdHRvbSkpOw0KKyAgICAgICAgU2VsZWN0Q2xpcFJn
bihkYywgY2xpcFJnbi5nZXQoKSk7DQorICAgIH0gZWxzZSANCisgICAgICAgIEludGVyc2VjdENs
aXBSZWN0KGRjLCBjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBj
bGlwUmVjdC5ib3R0b20pOw0KKw0KKyAgICA6OlJvdW5kUmVjdChkYywgcmVjdFdpbi5sZWZ0ICwg
cmVjdFdpbi50b3AgLCByZWN0V2luLnJpZ2h0ICwgcmVjdFdpbi5ib3R0b20gLCBzdGFibGVSb3Vu
ZChuZXdCb3R0b21SaWdodC53aWR0aCgpICogMiksIHN0YWJsZVJvdW5kKG5ld0JvdHRvbVJpZ2h0
LmhlaWdodCgpICogMikpOw0KKyAgICANCisgICAgaWYgKG5ld0NsaXApIA0KKyAgICAgICAgU2Vs
ZWN0Q2xpcFJnbihkYywgMCk7DQorICAgIGVsc2UNCisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMs
IGNsaXBSZ24uZ2V0KCkpOw0KKw0KKyAgICBTZWxlY3RPYmplY3QoZGMsIG9sZEJydXNoKTsNCisg
ICAgRGVsZXRlT2JqZWN0KGJydXNoKTsNCiB9
</data>
<flag name="review"
          id="18008"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34314</attachid>
            <date>2009-08-07 12:50:54 -0700</date>
            <delta_ts>2009-08-07 13:59:31 -0700</delta_ts>
            <desc>Refactor fillRoundRect()</desc>
            <filename>patch to implement fillRoundRect</filename>
            <type>text/plain</type>
            <size>4803</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">aW5kZXggL1dlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZw0KKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTUgQEANCisyMDA5LTA3
LTMwICBDcnlzdGFsIFpoYW5nICA8Y3J5c3RhbC56aGFuZ0B0b3JjaG1vYmlsZS5jb20+DQorDQor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIEltcGxlbWVu
dCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZFJlY3QoKSBmb3IgV0lOQ0UgcG9ydA0KKwkJIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg0Mg0KKw0KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoNCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwOg0KKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KToNCisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSb3VuZENvcm5lcik6DQorDQogMjAwOS0wNy0yNyAg
WW9uZyBMaSAgPHlvbmcubGlAdG9yY2htb2JpbGUuY29tPg0KIA0KICAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuDQppbmRleCAvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwDQorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcA0KQEAg
LTEyMjksOSArMTIyOSwxMjEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBPdXRFbGxpcHNl
SW5SZWN0KGNvbnN0IEludFJlY3QmKQ0KICAgICBub3RJbXBsZW1lbnRlZCgpOw0KIH0NCiANCi12
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmLCBjb25z
dCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwgY29uc3QgSW50U2l6
ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNvbnN0IENvbG9yJikN
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIGZp
bGxSZWN0LCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwg
Y29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNv
bnN0IENvbG9yJiBjKQ0KIHsNCi0gICAgbm90SW1wbGVtZW50ZWQoKTsNCisgICAgU2NvcGVEQ1By
b3ZpZGVyIGRjUHJvdmlkZXIobV9kYXRhKTsNCisgICAgaWYgKCFtX2RhdGEtPm1fZGMpDQorICAg
ICAgICByZXR1cm47DQorDQorICAgIEludFNpemUgc2hhZG93U2l6ZTsNCisgICAgaW50IHNoYWRv
d0JsdXIgPSAwOw0KKyAgICBDb2xvciBzaGFkb3dDb2xvcjsNCisgICAgICAgIA0KKyAgICBnZXRT
aGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpOw0KKyAgICANCisgICAg
SW50UmVjdCB0clJlY3QgPSBmaWxsUmVjdDsNCisgICAgDQorICAgIHRyUmVjdC5tb3ZlKHNoYWRv
d1NpemUpOw0KKyAgICB0clJlY3QuaW5mbGF0ZShzaGFkb3dCbHVyKTsNCisgICAgdHJSZWN0ID0g
bV9kYXRhLT5tYXBSZWN0KHRyUmVjdCk7DQorICANCisgICAgRmxvYXRTaXplIG5ld1RvcExlZnQo
bV9kYXRhLT5tYXBTaXplKHRvcExlZnQpKTsNCisgICAgRmxvYXRTaXplIG5ld1RvcFJpZ2h0KG1f
ZGF0YS0+bWFwU2l6ZSh0b3BSaWdodCkpOw0KKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tTGVmdCht
X2RhdGEtPm1hcFNpemUoYm90dG9tTGVmdCkpOw0KKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tUmln
aHQobV9kYXRhLT5tYXBTaXplKGJvdHRvbVJpZ2h0KSk7DQorDQorICAgIFRyYW5zcGFyZW50TGF5
ZXJEQyB0cmFuc3BhcmVudERjKG1fZGF0YSwgdHJSZWN0LCAmZmlsbFJlY3QpOw0KKyAgICBIREMg
ZGMgPSB0cmFuc3BhcmVudERjLmhkYygpOw0KKyAgICBpZiAoIWRjKQ0KKyAgICAgICAgcmV0dXJu
Ow0KKw0KKyAgICB0clJlY3QubW92ZSh0cmFuc3BhcmVudERjLnRvU2hpZnQoKSk7DQorDQorICAg
IFJFQ1QgcmVjdFdpbiA9IHRyUmVjdDsNCisNCisgICAgSEdESU9CSiBicnVzaCA9IGNyZWF0ZUJy
dXNoKHNoYWRvd0NvbG9yKTsNCisgICAgSEdESU9CSiBvbGRCcnVzaCA9IFNlbGVjdE9iamVjdChk
YywgYnJ1c2gpOw0KKyAgIA0KKyAgICBTZWxlY3RPYmplY3QoZGMsIEdldFN0b2NrT2JqZWN0KE5V
TExfUEVOKSk7DQorICAgIA0KKyAgICAvLyBEcmF3IHRvcCBsZWZ0IGhhbGYNCisgICAgUkVDVCBj
bGlwUmVjdChyZWN0V2luKTsNCisgICAgY2xpcFJlY3QucmlnaHQgPSByZWN0V2luLmxlZnQgKyAo
cmVjdFdpbi5yaWdodCAtIHJlY3RXaW4ubGVmdCkgLyAyOw0KKyAgICBjbGlwUmVjdC5ib3R0b20g
PSByZWN0V2luLnRvcCArIChyZWN0V2luLmJvdHRvbSAtIHJlY3RXaW4udG9wKSAvIDI7DQorDQor
ICAgIE93blB0cjxIUkdOPiBjbGlwUmduKENyZWF0ZVJlY3RSZ24oMCwgMCwgMCwgMCkpOw0KKyAg
ICBib29sIG5ld0NsaXA7DQorICAgIGlmIChHZXRDbGlwUmduKGRjLCBjbGlwUmduLmdldCgpKSA8
PSAwKSANCisgICAgICAgIG5ld0NsaXAgPSB0cnVlOw0KKyAgICBlbHNlIA0KKyAgICAgICAgbmV3
Q2xpcCA9IGZhbHNlOw0KKyAgICANCisgICAgZHJhd1JvdW5kQ29ybmVyKG5ld0NsaXAsIGNsaXBS
ZWN0LCByZWN0V2luLCBkYywgc3RhYmxlUm91bmQobmV3VG9wTGVmdC53aWR0aCgpICogMiksIHN0
YWJsZVJvdW5kKG5ld1RvcExlZnQuaGVpZ2h0KCkgKiAyKSk7DQorDQorICAgIC8vIERyYXcgdG9w
IHJpZ2h0DQorICAgIGNsaXBSZWN0ID0gcmVjdFdpbjsNCisgICAgY2xpcFJlY3QubGVmdCA9IHJl
Y3RXaW4ubGVmdCArIChyZWN0V2luLnJpZ2h0IC0gcmVjdFdpbi5sZWZ0KSAvIDI7DQorICAgIGNs
aXBSZWN0LmJvdHRvbSA9IHJlY3RXaW4udG9wICsgKHJlY3RXaW4uYm90dG9tIC0gcmVjdFdpbi50
b3ApIC8gMjsNCisNCisgICAgZHJhd1JvdW5kQ29ybmVyKG5ld0NsaXAsIGNsaXBSZWN0LCByZWN0
V2luLCBkYywgc3RhYmxlUm91bmQobmV3VG9wUmlnaHQud2lkdGgoKSAqIDIpLCBzdGFibGVSb3Vu
ZChuZXdUb3BSaWdodC5oZWlnaHQoKSAqIDIpKTsNCisNCisgICAgIC8vIERyYXcgYm90dG9tIGxl
ZnQNCisgICAgY2xpcFJlY3QgPSByZWN0V2luOw0KKyAgICBjbGlwUmVjdC5yaWdodCA9IHJlY3RX
aW4ubGVmdCArIChyZWN0V2luLnJpZ2h0IC0gcmVjdFdpbi5sZWZ0KSAvIDI7DQorICAgIGNsaXBS
ZWN0LnRvcCA9IHJlY3RXaW4udG9wICsgKHJlY3RXaW4uYm90dG9tIC0gcmVjdFdpbi50b3ApIC8g
MjsNCisNCisgICAgZHJhd1JvdW5kQ29ybmVyKG5ld0NsaXAsIGNsaXBSZWN0LCByZWN0V2luLCBk
Yywgc3RhYmxlUm91bmQobmV3Qm90dG9tTGVmdC53aWR0aCgpICogMiksIHN0YWJsZVJvdW5kKG5l
d0JvdHRvbUxlZnQuaGVpZ2h0KCkgKiAyKSk7DQorDQorICAgIC8vIERyYXcgYm90dG9tIHJpZ2h0
DQorICAgIGNsaXBSZWN0ID0gcmVjdFdpbjsNCisgICAgY2xpcFJlY3QubGVmdCA9IHJlY3RXaW4u
bGVmdCArIChyZWN0V2luLnJpZ2h0IC0gcmVjdFdpbi5sZWZ0KSAvIDI7DQorICAgIGNsaXBSZWN0
LnRvcCA9IHJlY3RXaW4udG9wICsgKHJlY3RXaW4uYm90dG9tIC0gcmVjdFdpbi50b3ApIC8gMjsN
CisNCisgICAgZHJhd1JvdW5kQ29ybmVyKG5ld0NsaXAsIGNsaXBSZWN0LCByZWN0V2luLCBkYywg
c3RhYmxlUm91bmQobmV3Qm90dG9tUmlnaHQud2lkdGgoKSAqIDIpLCBzdGFibGVSb3VuZChuZXdC
b3R0b21SaWdodC5oZWlnaHQoKSAqIDIpKTsNCisNCisgICAgU2VsZWN0T2JqZWN0KGRjLCBvbGRC
cnVzaCk7DQorICAgIERlbGV0ZU9iamVjdChicnVzaCk7DQorfQ0KKw0KK3ZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3Um91bmRDb3JuZXIoYm9vbCBuZXdDbGlwLCBSRUNUIGNsaXBSZWN0LCBSRUNU
IHJlY3RXaW4sIEhEQyBkYywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQ0KK3sNCisgICAgaWYoIWRj
KQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICBPd25QdHI8SFJHTj4gY2xpcFJnbihDcmVhdGVS
ZWN0UmduKDAsIDAsIDAsIDApKTsNCisgICAgaWYgKG5ld0NsaXApICB7DQorICAgICAgICBjbGlw
UmduLnNldChDcmVhdGVSZWN0UmduKGNsaXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRvcCwgY2xpcFJl
Y3QucmlnaHQsIGNsaXBSZWN0LmJvdHRvbSkpOw0KKyAgICAgICAgU2VsZWN0Q2xpcFJnbihkYywg
Y2xpcFJnbi5nZXQoKSk7DQorICAgIH0gZWxzZSB7DQorICAgICAgICBJbnRlcnNlY3RDbGlwUmVj
dChkYywgY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9wLCBjbGlwUmVjdC5yaWdodCwgY2xpcFJl
Y3QuYm90dG9tKTsNCisgICAgfQ0KKyAgICA6OlJvdW5kUmVjdChkYywgcmVjdFdpbi5sZWZ0ICwg
cmVjdFdpbi50b3AgLCByZWN0V2luLnJpZ2h0ICwgcmVjdFdpbi5ib3R0b20gLCB3aWR0aCwgaGVp
Z2h0KTsNCisgICAgDQorICAgIGlmIChuZXdDbGlwKSANCisgICAgICAgIFNlbGVjdENsaXBSZ24o
ZGMsIE5VTEwpOw0KKyAgICBlbHNlDQorICAgICAgICBTZWxlY3RDbGlwUmduKGRjLCBjbGlwUmdu
LmdldCgpKTsNCiB9DQog
</data>
<flag name="review"
          id="18486"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34476</attachid>
            <date>2009-08-10 09:13:24 -0700</date>
            <delta_ts>2009-08-10 11:31:08 -0700</delta_ts>
            <desc>Made some improvements to the code</desc>
            <filename>patch to implement fillRoundRect</filename>
            <type>text/plain</type>
            <size>4711</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">aW5kZXggL1dlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZw0KKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTUgQEANCisyMDA5LTA3
LTMwICBDcnlzdGFsIFpoYW5nICA8Y3J5c3RhbC56aGFuZ0B0b3JjaG1vYmlsZS5jb20+DQorDQor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIEltcGxlbWVu
dCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZFJlY3QoKSBmb3IgV0lOQ0UgcG9ydA0KKwkJIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg0Mg0KKw0KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoNCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwOg0KKyAgICAgICAoV2Vi
Q29yZTo6cmVjdENlbnRlclBvaW50KToNCisgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZmlsbFJvdW5kZWRSZWN0KToNCisgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZHJhd1JvdW5kQ29ybmVyKToNCisNCiAyMDA5LTA3LTI3ICBZb25nIExpICA8eW9uZy5saUB0b3Jj
aG1vYmlsZS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCmlu
ZGV4IC9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNl
LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9H
cmFwaGljc0NvbnRleHRXaW5jZS5jcHANCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwDQpAQCAtMTIyOSw5ICsxMjI5LDEyMSBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcE91dEVsbGlwc2VJblJlY3QoY29uc3QgSW50UmVjdCYp
DQogICAgIG5vdEltcGxlbWVudGVkKCk7DQogfQ0KIA0KLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojpm
aWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNv
bnN0IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJ
bnRTaXplJiBib3R0b21SaWdodCwgY29uc3QgQ29sb3ImKQ0KK3N0YXRpYyBpbmxpbmUgSW50UG9p
bnQgcmVjdENlbnRlclBvaW50KGNvbnN0IFJFQ1QmIHJlY3QpDQogew0KLSAgICBub3RJbXBsZW1l
bnRlZCgpOw0KKyAgICByZXR1cm4gSW50UG9pbnQocmVjdC5sZWZ0ICsgKHJlY3QucmlnaHQgLSBy
ZWN0LmxlZnQpIC8gMiwgcmVjdC50b3AgKyAocmVjdC5ib3R0b20gLSByZWN0LnRvcCkgLyAyKTsN
Cit9DQorDQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRS
ZWN0JiBmaWxsUmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9w
UmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJp
Z2h0LCBjb25zdCBDb2xvciYgYykNCit7DQorICAgIFNjb3BlRENQcm92aWRlciBkY1Byb3ZpZGVy
KG1fZGF0YSk7DQorICAgIGlmICghbV9kYXRhLT5tX2RjKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0K
KyAgICBJbnRTaXplIHNoYWRvd1NpemU7DQorICAgIGludCBzaGFkb3dCbHVyID0gMDsNCisgICAg
Q29sb3Igc2hhZG93Q29sb3I7DQorICAgICAgICANCisgICAgZ2V0U2hhZG93KHNoYWRvd1NpemUs
IHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKTsNCisgICAgDQorICAgIEludFJlY3QgZHN0UmVjdCA9
IGZpbGxSZWN0Ow0KKyAgICANCisgICAgZHN0UmVjdC5tb3ZlKHNoYWRvd1NpemUpOw0KKyAgICBk
c3RSZWN0LmluZmxhdGUoc2hhZG93Qmx1cik7DQorICAgIGRzdFJlY3QgPSBtX2RhdGEtPm1hcFJl
Y3QoZHN0UmVjdCk7DQorICANCisgICAgRmxvYXRTaXplIG5ld1RvcExlZnQobV9kYXRhLT5tYXBT
aXplKHRvcExlZnQpKTsNCisgICAgRmxvYXRTaXplIG5ld1RvcFJpZ2h0KG1fZGF0YS0+bWFwU2l6
ZSh0b3BSaWdodCkpOw0KKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tTGVmdChtX2RhdGEtPm1hcFNp
emUoYm90dG9tTGVmdCkpOw0KKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tUmlnaHQobV9kYXRhLT5t
YXBTaXplKGJvdHRvbVJpZ2h0KSk7DQorDQorICAgIFRyYW5zcGFyZW50TGF5ZXJEQyB0cmFuc3Bh
cmVudERjKG1fZGF0YSwgZHN0UmVjdCwgJmZpbGxSZWN0KTsNCisgICAgSERDIGRjID0gdHJhbnNw
YXJlbnREYy5oZGMoKTsNCisgICAgaWYgKCFkYykNCisgICAgICAgIHJldHVybjsNCisNCisgICAg
ZHN0UmVjdC5tb3ZlKHRyYW5zcGFyZW50RGMudG9TaGlmdCgpKTsNCisNCisgICAgUkVDVCByZWN0
V2luID0gZHN0UmVjdDsNCisNCisgICAgSEdESU9CSiBicnVzaCA9IGNyZWF0ZUJydXNoKHNoYWRv
d0NvbG9yKTsNCisgICAgSEdESU9CSiBvbGRCcnVzaCA9IFNlbGVjdE9iamVjdChkYywgYnJ1c2gp
Ow0KKyAgIA0KKyAgICBTZWxlY3RPYmplY3QoZGMsIEdldFN0b2NrT2JqZWN0KE5VTExfUEVOKSk7
DQorDQorICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gcmVjdENlbnRlclBvaW50KHJlY3RXaW4p
Ow0KKyAgICAvLyBEcmF3IHRvcCBsZWZ0IGhhbGYNCisgICAgUkVDVCBjbGlwUmVjdChyZWN0V2lu
KTsNCisgICAgY2xpcFJlY3QucmlnaHQgPSBjZW50ZXJQb2ludC54KCk7DQorICAgIGNsaXBSZWN0
LmJvdHRvbSA9IGNlbnRlclBvaW50LnkoKTsNCisNCisgICAgT3duUHRyPEhSR04+IGNsaXBSZ24o
Q3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7DQorICAgIGJvb2wgbmVlZHNOZXdDbGlwID0gKEdl
dENsaXBSZ24oZGMsIGNsaXBSZ24uZ2V0KCkpIDw9IDApOw0KKyAgICANCisgICAgZHJhd1JvdW5k
Q29ybmVyKG5lZWRzTmV3Q2xpcCwgY2xpcFJlY3QsIHJlY3RXaW4sIGRjLCBzdGFibGVSb3VuZChu
ZXdUb3BMZWZ0LndpZHRoKCkgKiAyKSwgc3RhYmxlUm91bmQobmV3VG9wTGVmdC5oZWlnaHQoKSAq
IDIpKTsNCisNCisgICAgLy8gRHJhdyB0b3AgcmlnaHQNCisgICAgY2xpcFJlY3QgPSByZWN0V2lu
Ow0KKyAgICBjbGlwUmVjdC5sZWZ0ID0gY2VudGVyUG9pbnQueCgpOw0KKyAgICBjbGlwUmVjdC5i
b3R0b20gPSBjZW50ZXJQb2ludC55KCk7DQorDQorICAgIGRyYXdSb3VuZENvcm5lcihuZWVkc05l
d0NsaXAsIGNsaXBSZWN0LCByZWN0V2luLCBkYywgc3RhYmxlUm91bmQobmV3VG9wUmlnaHQud2lk
dGgoKSAqIDIpLCBzdGFibGVSb3VuZChuZXdUb3BSaWdodC5oZWlnaHQoKSAqIDIpKTsNCisNCisg
ICAgIC8vIERyYXcgYm90dG9tIGxlZnQNCisgICAgY2xpcFJlY3QgPSByZWN0V2luOw0KKyAgICBj
bGlwUmVjdC5yaWdodCA9IGNlbnRlclBvaW50LngoKTsNCisgICAgY2xpcFJlY3QudG9wID0gY2Vu
dGVyUG9pbnQueSgpOw0KKw0KKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBjbGlw
UmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld0JvdHRvbUxlZnQud2lkdGgoKSAqIDIp
LCBzdGFibGVSb3VuZChuZXdCb3R0b21MZWZ0LmhlaWdodCgpICogMikpOw0KKw0KKyAgICAvLyBE
cmF3IGJvdHRvbSByaWdodA0KKyAgICBjbGlwUmVjdCA9IHJlY3RXaW47DQorICAgIGNsaXBSZWN0
LmxlZnQgPSBjZW50ZXJQb2ludC54KCk7DQorICAgIGNsaXBSZWN0LnRvcCA9IGNlbnRlclBvaW50
LnkoKTsNCisNCisgICAgZHJhd1JvdW5kQ29ybmVyKG5lZWRzTmV3Q2xpcCwgY2xpcFJlY3QsIHJl
Y3RXaW4sIGRjLCBzdGFibGVSb3VuZChuZXdCb3R0b21SaWdodC53aWR0aCgpICogMiksIHN0YWJs
ZVJvdW5kKG5ld0JvdHRvbVJpZ2h0LmhlaWdodCgpICogMikpOw0KKw0KKyAgICBTZWxlY3RPYmpl
Y3QoZGMsIG9sZEJydXNoKTsNCisgICAgRGVsZXRlT2JqZWN0KGJydXNoKTsNCit9DQorDQordm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSb3VuZENvcm5lcihib29sIG5lZWRzTmV3Q2xpcCwgUkVD
VCBjbGlwUmVjdCwgUkVDVCByZWN0V2luLCBIREMgZGMsIGludCB3aWR0aCwgaW50IGhlaWdodCkN
Cit7DQorICAgIGlmKCFkYykNCisgICAgICAgIHJldHVybjsNCisNCisgICAgT3duUHRyPEhSR04+
IGNsaXBSZ24oQ3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7DQorICAgIGlmIChuZWVkc05ld0Ns
aXApICB7DQorICAgICAgICBjbGlwUmduLnNldChDcmVhdGVSZWN0UmduKGNsaXBSZWN0LmxlZnQs
IGNsaXBSZWN0LnRvcCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0LmJvdHRvbSkpOw0KKyAgICAg
ICAgU2VsZWN0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQorICAgIH0gZWxzZSANCisgICAg
ICAgIEludGVyc2VjdENsaXBSZWN0KGRjLCBjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNs
aXBSZWN0LnJpZ2h0LCBjbGlwUmVjdC5ib3R0b20pOw0KKyAgICANCisgICAgOjpSb3VuZFJlY3Qo
ZGMsIHJlY3RXaW4ubGVmdCAsIHJlY3RXaW4udG9wICwgcmVjdFdpbi5yaWdodCAsIHJlY3RXaW4u
Ym90dG9tICwgd2lkdGgsIGhlaWdodCk7DQorICAgIA0KKyAgICBTZWxlY3RDbGlwUmduKGRjLCBu
ZWVkc05ld0NsaXAgPyAwIDogY2xpcFJnbi5nZXQoKSk7DQogfQ==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34484</attachid>
            <date>2009-08-10 11:10:46 -0700</date>
            <delta_ts>2009-08-10 11:31:40 -0700</delta_ts>
            <desc>Add update to .h file</desc>
            <filename>patch to implement fillRoundRect</filename>
            <type>text/plain</type>
            <size>5406</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">aW5kZXggL1dlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZw0KKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTUgQEANCisyMDA5LTA3
LTMwICBDcnlzdGFsIFpoYW5nICA8Y3J5c3RhbC56aGFuZ0B0b3JjaG1vYmlsZS5jb20+DQorDQor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIEltcGxlbWVu
dCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZFJlY3QoKSBmb3IgV0lOQ0UgcG9ydA0KKwkJIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg0Mg0KKw0KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoNCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwOg0KKyAgICAgICAoV2Vi
Q29yZTo6cmVjdENlbnRlclBvaW50KToNCisgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZmlsbFJvdW5kZWRSZWN0KToNCisgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZHJhd1JvdW5kQ29ybmVyKToNCisNCiAyMDA5LTA3LTI3ICBZb25nIExpICA8eW9uZy5saUB0b3Jj
aG1vYmlsZS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCmlu
ZGV4IC9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNl
LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9H
cmFwaGljc0NvbnRleHRXaW5jZS5jcHANCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwDQpAQCAtMTIyOSw5ICsxMjI5LDEyMSBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcE91dEVsbGlwc2VJblJlY3QoY29uc3QgSW50UmVjdCYp
DQogICAgIG5vdEltcGxlbWVudGVkKCk7DQogfQ0KIA0KLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojpm
aWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNv
bnN0IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJ
bnRTaXplJiBib3R0b21SaWdodCwgY29uc3QgQ29sb3ImKQ0KK3N0YXRpYyBpbmxpbmUgSW50UG9p
bnQgcmVjdENlbnRlclBvaW50KGNvbnN0IFJFQ1QmIHJlY3QpDQogew0KLSAgICBub3RJbXBsZW1l
bnRlZCgpOw0KKyAgICByZXR1cm4gSW50UG9pbnQocmVjdC5sZWZ0ICsgKHJlY3QucmlnaHQgLSBy
ZWN0LmxlZnQpIC8gMiwgcmVjdC50b3AgKyAocmVjdC5ib3R0b20gLSByZWN0LnRvcCkgLyAyKTsN
Cit9DQorDQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRS
ZWN0JiBmaWxsUmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9w
UmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJp
Z2h0LCBjb25zdCBDb2xvciYgYykNCit7DQorICAgIFNjb3BlRENQcm92aWRlciBkY1Byb3ZpZGVy
KG1fZGF0YSk7DQorICAgIGlmICghbV9kYXRhLT5tX2RjKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0K
KyAgICBJbnRTaXplIHNoYWRvd1NpemU7DQorICAgIGludCBzaGFkb3dCbHVyID0gMDsNCisgICAg
Q29sb3Igc2hhZG93Q29sb3I7DQorICAgICAgICANCisgICAgZ2V0U2hhZG93KHNoYWRvd1NpemUs
IHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKTsNCisgICAgDQorICAgIEludFJlY3QgZHN0UmVjdCA9
IGZpbGxSZWN0Ow0KKyAgICANCisgICAgZHN0UmVjdC5tb3ZlKHNoYWRvd1NpemUpOw0KKyAgICBk
c3RSZWN0LmluZmxhdGUoc2hhZG93Qmx1cik7DQorICAgIGRzdFJlY3QgPSBtX2RhdGEtPm1hcFJl
Y3QoZHN0UmVjdCk7DQorICANCisgICAgRmxvYXRTaXplIG5ld1RvcExlZnQobV9kYXRhLT5tYXBT
aXplKHRvcExlZnQpKTsNCisgICAgRmxvYXRTaXplIG5ld1RvcFJpZ2h0KG1fZGF0YS0+bWFwU2l6
ZSh0b3BSaWdodCkpOw0KKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tTGVmdChtX2RhdGEtPm1hcFNp
emUoYm90dG9tTGVmdCkpOw0KKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tUmlnaHQobV9kYXRhLT5t
YXBTaXplKGJvdHRvbVJpZ2h0KSk7DQorDQorICAgIFRyYW5zcGFyZW50TGF5ZXJEQyB0cmFuc3Bh
cmVudERjKG1fZGF0YSwgZHN0UmVjdCwgJmZpbGxSZWN0KTsNCisgICAgSERDIGRjID0gdHJhbnNw
YXJlbnREYy5oZGMoKTsNCisgICAgaWYgKCFkYykNCisgICAgICAgIHJldHVybjsNCisNCisgICAg
ZHN0UmVjdC5tb3ZlKHRyYW5zcGFyZW50RGMudG9TaGlmdCgpKTsNCisNCisgICAgUkVDVCByZWN0
V2luID0gZHN0UmVjdDsNCisNCisgICAgSEdESU9CSiBicnVzaCA9IGNyZWF0ZUJydXNoKHNoYWRv
d0NvbG9yKTsNCisgICAgSEdESU9CSiBvbGRCcnVzaCA9IFNlbGVjdE9iamVjdChkYywgYnJ1c2gp
Ow0KKyAgIA0KKyAgICBTZWxlY3RPYmplY3QoZGMsIEdldFN0b2NrT2JqZWN0KE5VTExfUEVOKSk7
DQorDQorICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gcmVjdENlbnRlclBvaW50KHJlY3RXaW4p
Ow0KKyAgICAvLyBEcmF3IHRvcCBsZWZ0IGhhbGYNCisgICAgUkVDVCBjbGlwUmVjdChyZWN0V2lu
KTsNCisgICAgY2xpcFJlY3QucmlnaHQgPSBjZW50ZXJQb2ludC54KCk7DQorICAgIGNsaXBSZWN0
LmJvdHRvbSA9IGNlbnRlclBvaW50LnkoKTsNCisNCisgICAgT3duUHRyPEhSR04+IGNsaXBSZ24o
Q3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7DQorICAgIGJvb2wgbmVlZHNOZXdDbGlwID0gKEdl
dENsaXBSZ24oZGMsIGNsaXBSZ24uZ2V0KCkpIDw9IDApOw0KKyAgICANCisgICAgZHJhd1JvdW5k
Q29ybmVyKG5lZWRzTmV3Q2xpcCwgY2xpcFJlY3QsIHJlY3RXaW4sIGRjLCBzdGFibGVSb3VuZChu
ZXdUb3BMZWZ0LndpZHRoKCkgKiAyKSwgc3RhYmxlUm91bmQobmV3VG9wTGVmdC5oZWlnaHQoKSAq
IDIpKTsNCisNCisgICAgLy8gRHJhdyB0b3AgcmlnaHQNCisgICAgY2xpcFJlY3QgPSByZWN0V2lu
Ow0KKyAgICBjbGlwUmVjdC5sZWZ0ID0gY2VudGVyUG9pbnQueCgpOw0KKyAgICBjbGlwUmVjdC5i
b3R0b20gPSBjZW50ZXJQb2ludC55KCk7DQorDQorICAgIGRyYXdSb3VuZENvcm5lcihuZWVkc05l
d0NsaXAsIGNsaXBSZWN0LCByZWN0V2luLCBkYywgc3RhYmxlUm91bmQobmV3VG9wUmlnaHQud2lk
dGgoKSAqIDIpLCBzdGFibGVSb3VuZChuZXdUb3BSaWdodC5oZWlnaHQoKSAqIDIpKTsNCisNCisg
ICAgIC8vIERyYXcgYm90dG9tIGxlZnQNCisgICAgY2xpcFJlY3QgPSByZWN0V2luOw0KKyAgICBj
bGlwUmVjdC5yaWdodCA9IGNlbnRlclBvaW50LngoKTsNCisgICAgY2xpcFJlY3QudG9wID0gY2Vu
dGVyUG9pbnQueSgpOw0KKw0KKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBjbGlw
UmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld0JvdHRvbUxlZnQud2lkdGgoKSAqIDIp
LCBzdGFibGVSb3VuZChuZXdCb3R0b21MZWZ0LmhlaWdodCgpICogMikpOw0KKw0KKyAgICAvLyBE
cmF3IGJvdHRvbSByaWdodA0KKyAgICBjbGlwUmVjdCA9IHJlY3RXaW47DQorICAgIGNsaXBSZWN0
LmxlZnQgPSBjZW50ZXJQb2ludC54KCk7DQorICAgIGNsaXBSZWN0LnRvcCA9IGNlbnRlclBvaW50
LnkoKTsNCisNCisgICAgZHJhd1JvdW5kQ29ybmVyKG5lZWRzTmV3Q2xpcCwgY2xpcFJlY3QsIHJl
Y3RXaW4sIGRjLCBzdGFibGVSb3VuZChuZXdCb3R0b21SaWdodC53aWR0aCgpICogMiksIHN0YWJs
ZVJvdW5kKG5ld0JvdHRvbVJpZ2h0LmhlaWdodCgpICogMikpOw0KKw0KKyAgICBTZWxlY3RPYmpl
Y3QoZGMsIG9sZEJydXNoKTsNCisgICAgRGVsZXRlT2JqZWN0KGJydXNoKTsNCit9DQorDQordm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSb3VuZENvcm5lcihib29sIG5lZWRzTmV3Q2xpcCwgUkVD
VCBjbGlwUmVjdCwgUkVDVCByZWN0V2luLCBIREMgZGMsIGludCB3aWR0aCwgaW50IGhlaWdodCkN
Cit7DQorICAgIGlmKCFkYykNCisgICAgICAgIHJldHVybjsNCisNCisgICAgT3duUHRyPEhSR04+
IGNsaXBSZ24oQ3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7DQorICAgIGlmIChuZWVkc05ld0Ns
aXApICB7DQorICAgICAgICBjbGlwUmduLnNldChDcmVhdGVSZWN0UmduKGNsaXBSZWN0LmxlZnQs
IGNsaXBSZWN0LnRvcCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0LmJvdHRvbSkpOw0KKyAgICAg
ICAgU2VsZWN0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQorICAgIH0gZWxzZSANCisgICAg
ICAgIEludGVyc2VjdENsaXBSZWN0KGRjLCBjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNs
aXBSZWN0LnJpZ2h0LCBjbGlwUmVjdC5ib3R0b20pOw0KKyAgICANCisgICAgOjpSb3VuZFJlY3Qo
ZGMsIHJlY3RXaW4ubGVmdCAsIHJlY3RXaW4udG9wICwgcmVjdFdpbi5yaWdodCAsIHJlY3RXaW4u
Ym90dG9tICwgd2lkdGgsIGhlaWdodCk7DQorICAgIA0KKyAgICBTZWxlY3RDbGlwUmduKGRjLCBu
ZWVkc05ld0NsaXAgPyAwIDogY2xpcFJnbi5nZXQoKSk7DQogfQ0KIA0KIA0KaW5kZXggL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgNCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgNCkBAIC0yMjEsNiArMjIxLDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgew0KICAgICAgICAgdm9pZCBmaWxsUmVjdChjb25zdCBGbG9h
dFJlY3QmLCBHZW5lcmF0b3ImKTsNCiAgICAgICAgIHZvaWQgZmlsbFJvdW5kZWRSZWN0KGNvbnN0
IEludFJlY3QmLCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdo
dCwgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQs
IGNvbnN0IENvbG9yJik7DQogDQorICAgICAgICB2b2lkIGRyYXdSb3VuZENvcm5lcihib29sIG5l
d0NsaXAsIFJFQ1QgY2xpcFJlY3QsIFJFQ1QgcmVjdFdpbiwgSERDIGRjLCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQpOw0KKw0KICAgICAgICAgdm9pZCBjbGVhclJlY3QoY29uc3QgRmxvYXRSZWN0Jik7
DQogDQogICAgICAgICB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0Jik7
</data>
<flag name="review"
          id="18645"
          type_id="1"
          status="-"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34492</attachid>
            <date>2009-08-10 11:43:41 -0700</date>
            <delta_ts>2009-08-10 11:49:58 -0700</delta_ts>
            <desc>Move drawRoundCorner&apos;s declaration to PLATFORM(WINCE) place</desc>
            <filename>patch to implement fillRoundRect</filename>
            <type>text/plain</type>
            <size>5656</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">aW5kZXggL1dlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZw0KKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTUgQEANCisyMDA5LTA3
LTMwICBDcnlzdGFsIFpoYW5nICA8Y3J5c3RhbC56aGFuZ0B0b3JjaG1vYmlsZS5jb20+DQorDQor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIEltcGxlbWVu
dCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZFJlY3QoKSBmb3IgV0lOQ0UgcG9ydA0KKwkJIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg0Mg0KKw0KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoNCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwOg0KKyAgICAgICAoV2Vi
Q29yZTo6cmVjdENlbnRlclBvaW50KToNCisgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZmlsbFJvdW5kZWRSZWN0KToNCisgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZHJhd1JvdW5kQ29ybmVyKToNCisNCiAyMDA5LTA3LTI3ICBZb25nIExpICA8eW9uZy5saUB0b3Jj
aG1vYmlsZS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCmlu
ZGV4IC9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNl
LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9H
cmFwaGljc0NvbnRleHRXaW5jZS5jcHANCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwDQpAQCAtMTIyOSw5ICsxMjI5LDEyMSBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcE91dEVsbGlwc2VJblJlY3QoY29uc3QgSW50UmVjdCYp
DQogICAgIG5vdEltcGxlbWVudGVkKCk7DQogfQ0KIA0KLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojpm
aWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNv
bnN0IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJ
bnRTaXplJiBib3R0b21SaWdodCwgY29uc3QgQ29sb3ImKQ0KK3N0YXRpYyBpbmxpbmUgSW50UG9p
bnQgcmVjdENlbnRlclBvaW50KGNvbnN0IFJFQ1QmIHJlY3QpDQogew0KLSAgICBub3RJbXBsZW1l
bnRlZCgpOw0KKyAgICByZXR1cm4gSW50UG9pbnQocmVjdC5sZWZ0ICsgKHJlY3QucmlnaHQgLSBy
ZWN0LmxlZnQpIC8gMiwgcmVjdC50b3AgKyAocmVjdC5ib3R0b20gLSByZWN0LnRvcCkgLyAyKTsN
Cit9DQorDQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRS
ZWN0JiBmaWxsUmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9w
UmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJp
Z2h0LCBjb25zdCBDb2xvciYgYykNCit7DQorICAgIFNjb3BlRENQcm92aWRlciBkY1Byb3ZpZGVy
KG1fZGF0YSk7DQorICAgIGlmICghbV9kYXRhLT5tX2RjKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0K
KyAgICBJbnRTaXplIHNoYWRvd1NpemU7DQorICAgIGludCBzaGFkb3dCbHVyID0gMDsNCisgICAg
Q29sb3Igc2hhZG93Q29sb3I7DQorICAgICAgICANCisgICAgZ2V0U2hhZG93KHNoYWRvd1NpemUs
IHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKTsNCisgICAgDQorICAgIEludFJlY3QgZHN0UmVjdCA9
IGZpbGxSZWN0Ow0KKyAgICANCisgICAgZHN0UmVjdC5tb3ZlKHNoYWRvd1NpemUpOw0KKyAgICBk
c3RSZWN0LmluZmxhdGUoc2hhZG93Qmx1cik7DQorICAgIGRzdFJlY3QgPSBtX2RhdGEtPm1hcFJl
Y3QoZHN0UmVjdCk7DQorICANCisgICAgRmxvYXRTaXplIG5ld1RvcExlZnQobV9kYXRhLT5tYXBT
aXplKHRvcExlZnQpKTsNCisgICAgRmxvYXRTaXplIG5ld1RvcFJpZ2h0KG1fZGF0YS0+bWFwU2l6
ZSh0b3BSaWdodCkpOw0KKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tTGVmdChtX2RhdGEtPm1hcFNp
emUoYm90dG9tTGVmdCkpOw0KKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tUmlnaHQobV9kYXRhLT5t
YXBTaXplKGJvdHRvbVJpZ2h0KSk7DQorDQorICAgIFRyYW5zcGFyZW50TGF5ZXJEQyB0cmFuc3Bh
cmVudERjKG1fZGF0YSwgZHN0UmVjdCwgJmZpbGxSZWN0KTsNCisgICAgSERDIGRjID0gdHJhbnNw
YXJlbnREYy5oZGMoKTsNCisgICAgaWYgKCFkYykNCisgICAgICAgIHJldHVybjsNCisNCisgICAg
ZHN0UmVjdC5tb3ZlKHRyYW5zcGFyZW50RGMudG9TaGlmdCgpKTsNCisNCisgICAgUkVDVCByZWN0
V2luID0gZHN0UmVjdDsNCisNCisgICAgSEdESU9CSiBicnVzaCA9IGNyZWF0ZUJydXNoKHNoYWRv
d0NvbG9yKTsNCisgICAgSEdESU9CSiBvbGRCcnVzaCA9IFNlbGVjdE9iamVjdChkYywgYnJ1c2gp
Ow0KKyAgIA0KKyAgICBTZWxlY3RPYmplY3QoZGMsIEdldFN0b2NrT2JqZWN0KE5VTExfUEVOKSk7
DQorDQorICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gcmVjdENlbnRlclBvaW50KHJlY3RXaW4p
Ow0KKyAgICAvLyBEcmF3IHRvcCBsZWZ0IGhhbGYNCisgICAgUkVDVCBjbGlwUmVjdChyZWN0V2lu
KTsNCisgICAgY2xpcFJlY3QucmlnaHQgPSBjZW50ZXJQb2ludC54KCk7DQorICAgIGNsaXBSZWN0
LmJvdHRvbSA9IGNlbnRlclBvaW50LnkoKTsNCisNCisgICAgT3duUHRyPEhSR04+IGNsaXBSZ24o
Q3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7DQorICAgIGJvb2wgbmVlZHNOZXdDbGlwID0gKEdl
dENsaXBSZ24oZGMsIGNsaXBSZ24uZ2V0KCkpIDw9IDApOw0KKyAgICANCisgICAgZHJhd1JvdW5k
Q29ybmVyKG5lZWRzTmV3Q2xpcCwgY2xpcFJlY3QsIHJlY3RXaW4sIGRjLCBzdGFibGVSb3VuZChu
ZXdUb3BMZWZ0LndpZHRoKCkgKiAyKSwgc3RhYmxlUm91bmQobmV3VG9wTGVmdC5oZWlnaHQoKSAq
IDIpKTsNCisNCisgICAgLy8gRHJhdyB0b3AgcmlnaHQNCisgICAgY2xpcFJlY3QgPSByZWN0V2lu
Ow0KKyAgICBjbGlwUmVjdC5sZWZ0ID0gY2VudGVyUG9pbnQueCgpOw0KKyAgICBjbGlwUmVjdC5i
b3R0b20gPSBjZW50ZXJQb2ludC55KCk7DQorDQorICAgIGRyYXdSb3VuZENvcm5lcihuZWVkc05l
d0NsaXAsIGNsaXBSZWN0LCByZWN0V2luLCBkYywgc3RhYmxlUm91bmQobmV3VG9wUmlnaHQud2lk
dGgoKSAqIDIpLCBzdGFibGVSb3VuZChuZXdUb3BSaWdodC5oZWlnaHQoKSAqIDIpKTsNCisNCisg
ICAgIC8vIERyYXcgYm90dG9tIGxlZnQNCisgICAgY2xpcFJlY3QgPSByZWN0V2luOw0KKyAgICBj
bGlwUmVjdC5yaWdodCA9IGNlbnRlclBvaW50LngoKTsNCisgICAgY2xpcFJlY3QudG9wID0gY2Vu
dGVyUG9pbnQueSgpOw0KKw0KKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBjbGlw
UmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld0JvdHRvbUxlZnQud2lkdGgoKSAqIDIp
LCBzdGFibGVSb3VuZChuZXdCb3R0b21MZWZ0LmhlaWdodCgpICogMikpOw0KKw0KKyAgICAvLyBE
cmF3IGJvdHRvbSByaWdodA0KKyAgICBjbGlwUmVjdCA9IHJlY3RXaW47DQorICAgIGNsaXBSZWN0
LmxlZnQgPSBjZW50ZXJQb2ludC54KCk7DQorICAgIGNsaXBSZWN0LnRvcCA9IGNlbnRlclBvaW50
LnkoKTsNCisNCisgICAgZHJhd1JvdW5kQ29ybmVyKG5lZWRzTmV3Q2xpcCwgY2xpcFJlY3QsIHJl
Y3RXaW4sIGRjLCBzdGFibGVSb3VuZChuZXdCb3R0b21SaWdodC53aWR0aCgpICogMiksIHN0YWJs
ZVJvdW5kKG5ld0JvdHRvbVJpZ2h0LmhlaWdodCgpICogMikpOw0KKw0KKyAgICBTZWxlY3RPYmpl
Y3QoZGMsIG9sZEJydXNoKTsNCisgICAgRGVsZXRlT2JqZWN0KGJydXNoKTsNCit9DQorDQordm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSb3VuZENvcm5lcihib29sIG5lZWRzTmV3Q2xpcCwgUkVD
VCBjbGlwUmVjdCwgUkVDVCByZWN0V2luLCBIREMgZGMsIGludCB3aWR0aCwgaW50IGhlaWdodCkN
Cit7DQorICAgIGlmKCFkYykNCisgICAgICAgIHJldHVybjsNCisNCisgICAgT3duUHRyPEhSR04+
IGNsaXBSZ24oQ3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7DQorICAgIGlmIChuZWVkc05ld0Ns
aXApICB7DQorICAgICAgICBjbGlwUmduLnNldChDcmVhdGVSZWN0UmduKGNsaXBSZWN0LmxlZnQs
IGNsaXBSZWN0LnRvcCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0LmJvdHRvbSkpOw0KKyAgICAg
ICAgU2VsZWN0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7DQorICAgIH0gZWxzZSANCisgICAg
ICAgIEludGVyc2VjdENsaXBSZWN0KGRjLCBjbGlwUmVjdC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNs
aXBSZWN0LnJpZ2h0LCBjbGlwUmVjdC5ib3R0b20pOw0KKyAgICANCisgICAgOjpSb3VuZFJlY3Qo
ZGMsIHJlY3RXaW4ubGVmdCAsIHJlY3RXaW4udG9wICwgcmVjdFdpbi5yaWdodCAsIHJlY3RXaW4u
Ym90dG9tICwgd2lkdGgsIGhlaWdodCk7DQorICAgIA0KKyAgICBTZWxlY3RDbGlwUmduKGRjLCBu
ZWVkc05ld0NsaXAgPyAwIDogY2xpcFJnbi5nZXQoKSk7DQogfQ0KIA0KIA0KaW5kZXggL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgNCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgNCkBAIC0zMjcsNiArMzI3LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgew0KICAgICAgICAgdm9pZCBkcmF3Qml0bWFwKFNoYXJlZEJp
dG1hcCosIGNvbnN0IEludFJlY3QmIGRzdFJlY3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENv
bXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKTsNCiAgICAgICAgIHZvaWQgZHJhd0JpdG1hcFBh
dHRlcm4oU2hhcmVkQml0bWFwKiwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdEluLCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBJbnRTaXplJiBvcmlnU291cmNlU2l6ZSk7DQogICAgICAgICB2b2lkIGRyYXdJY29uKEhJ
Q09OIGljb24sIGNvbnN0IEludFJlY3QmIGRzdFJlY3QsIFVJTlQgZmxhZ3MpOw0KKyAgICAgICAg
dm9pZCBkcmF3Um91bmRDb3JuZXIoYm9vbCBuZXdDbGlwLCBSRUNUIGNsaXBSZWN0LCBSRUNUIHJl
Y3RXaW4sIEhEQyBkYywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsNCiAjZWxpZiBQTEFURk9STShX
SU4pDQogICAgICAgICBHcmFwaGljc0NvbnRleHQoSERDLCBib29sIGhhc0FscGhhID0gZmFsc2Up
OyAvLyBGSVhNRTogVG8gYmUgcmVtb3ZlZC4NCiAgICAgICAgIGJvb2wgaW5UcmFuc3BhcmVuY3lM
YXllcigpIGNvbnN0Ow==
</data>
<flag name="review"
          id="18648"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34497</attachid>
            <date>2009-08-10 12:20:44 -0700</date>
            <delta_ts>2009-08-10 13:05:25 -0700</delta_ts>
            <desc>Coding style change, use format-patch to generate patch</desc>
            <filename>0001-Add-draw-rounded-rect-function.patch</filename>
            <type>text/plain</type>
            <size>5635</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWEyYWZjZS4uNzczN2M0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOS0wOC0xMCAgQ3J5c3RhbCBaaGFu
ZyAgPGNyeXN0YWwuemhhbmdAc3RhaWtvcy5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJv
dW5kUmVjdCgpIGZvciBXSU5DRSBwb3J0CisJCSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjc4NDIKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29u
dGV4dFdpbmNlLmNwcDoKKyAgICAgICAoV2ViQ29yZTo6cmVjdENlbnRlclBvaW50KToKKyAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSb3VuZENvcm5lcik6CisKIDIwMDktMDctMjcg
IFlvbmcgTGkgIDx5b25nLmxpQHRvcmNobW9iaWxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oCmluZGV4IGFmZDZkNTguLjc1YjlkYmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzI3LDYgKzMyNyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCBkcmF3Qml0bWFwKFNoYXJlZEJpdG1hcCosIGNvbnN0IEludFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wKTsKICAgICAgICAgdm9pZCBkcmF3Qml0bWFwUGF0dGVybihTaGFyZWRCaXRtYXAq
LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0SW4sIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEludFNpemUmIG9yaWdT
b3VyY2VTaXplKTsKICAgICAgICAgdm9pZCBkcmF3SWNvbihISUNPTiBpY29uLCBjb25zdCBJbnRS
ZWN0JiBkc3RSZWN0LCBVSU5UIGZsYWdzKTsKKyAgICAgICAgdm9pZCBkcmF3Um91bmRDb3JuZXIo
Ym9vbCBuZXdDbGlwLCBSRUNUIGNsaXBSZWN0LCBSRUNUIHJlY3RXaW4sIEhEQyBkYywgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0KTsKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICAgICAgR3JhcGhpY3ND
b250ZXh0KEhEQywgYm9vbCBoYXNBbHBoYSA9IGZhbHNlKTsgLy8gRklYTUU6IFRvIGJlIHJlbW92
ZWQuCiAgICAgICAgIGJvb2wgaW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5jZS5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNl
LmNwcAppbmRleCA2YTljYmNhLi43MzAzZGIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcApAQCAtMTIyOSw5
ICsxMjI5LDk5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwT3V0RWxsaXBzZUluUmVjdChj
b25zdCBJbnRSZWN0JikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRTaXplJiB0
b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVm
dCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNvbnN0IENvbG9yJikKK3N0YXRpYyBpbmxp
bmUgSW50UG9pbnQgcmVjdENlbnRlclBvaW50KGNvbnN0IFJFQ1QmIHJlY3QpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UG9pbnQocmVjdC5sZWZ0ICsgKHJlY3Qucmln
aHQgLSByZWN0LmxlZnQpIC8gMiwgcmVjdC50b3AgKyAocmVjdC5ib3R0b20gLSByZWN0LnRvcCkg
LyAyKTsKK30KKwordm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJ
bnRSZWN0JiBmaWxsUmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYg
dG9wUmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRv
bVJpZ2h0LCBjb25zdCBDb2xvciYgYykKK3sKKyAgICBTY29wZURDUHJvdmlkZXIgZGNQcm92aWRl
cihtX2RhdGEpOworICAgIGlmICghbV9kYXRhLT5tX2RjKQorICAgICAgICByZXR1cm47CisKKyAg
ICBJbnRTaXplIHNoYWRvd1NpemU7CisgICAgaW50IHNoYWRvd0JsdXIgPSAwOworICAgIENvbG9y
IHNoYWRvd0NvbG9yOworICAgICAgICAKKyAgICBnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93
Qmx1ciwgc2hhZG93Q29sb3IpOworICAgIAorICAgIEludFJlY3QgZHN0UmVjdCA9IGZpbGxSZWN0
OworICAgIAorICAgIGRzdFJlY3QubW92ZShzaGFkb3dTaXplKTsKKyAgICBkc3RSZWN0LmluZmxh
dGUoc2hhZG93Qmx1cik7CisgICAgZHN0UmVjdCA9IG1fZGF0YS0+bWFwUmVjdChkc3RSZWN0KTsK
KyAgCisgICAgRmxvYXRTaXplIG5ld1RvcExlZnQobV9kYXRhLT5tYXBTaXplKHRvcExlZnQpKTsK
KyAgICBGbG9hdFNpemUgbmV3VG9wUmlnaHQobV9kYXRhLT5tYXBTaXplKHRvcFJpZ2h0KSk7Cisg
ICAgRmxvYXRTaXplIG5ld0JvdHRvbUxlZnQobV9kYXRhLT5tYXBTaXplKGJvdHRvbUxlZnQpKTsK
KyAgICBGbG9hdFNpemUgbmV3Qm90dG9tUmlnaHQobV9kYXRhLT5tYXBTaXplKGJvdHRvbVJpZ2h0
KSk7CisKKyAgICBUcmFuc3BhcmVudExheWVyREMgdHJhbnNwYXJlbnREYyhtX2RhdGEsIGRzdFJl
Y3QsICZmaWxsUmVjdCk7CisgICAgSERDIGRjID0gdHJhbnNwYXJlbnREYy5oZGMoKTsKKyAgICBp
ZiAoIWRjKQorICAgICAgICByZXR1cm47CisKKyAgICBkc3RSZWN0Lm1vdmUodHJhbnNwYXJlbnRE
Yy50b1NoaWZ0KCkpOworCisgICAgUkVDVCByZWN0V2luID0gZHN0UmVjdDsKKworICAgIEhHRElP
QkogYnJ1c2ggPSBjcmVhdGVCcnVzaChzaGFkb3dDb2xvcik7CisgICAgSEdESU9CSiBvbGRCcnVz
aCA9IFNlbGVjdE9iamVjdChkYywgYnJ1c2gpOworICAgCisgICAgU2VsZWN0T2JqZWN0KGRjLCBH
ZXRTdG9ja09iamVjdChOVUxMX1BFTikpOworCisgICAgSW50UG9pbnQgY2VudGVyUG9pbnQgPSBy
ZWN0Q2VudGVyUG9pbnQocmVjdFdpbik7CisgICAgLy8gRHJhdyB0b3AgbGVmdCBoYWxmCisgICAg
UkVDVCBjbGlwUmVjdChyZWN0V2luKTsKKyAgICBjbGlwUmVjdC5yaWdodCA9IGNlbnRlclBvaW50
LngoKTsKKyAgICBjbGlwUmVjdC5ib3R0b20gPSBjZW50ZXJQb2ludC55KCk7CisKKyAgICBPd25Q
dHI8SFJHTj4gY2xpcFJnbihDcmVhdGVSZWN0UmduKDAsIDAsIDAsIDApKTsKKyAgICBib29sIG5l
ZWRzTmV3Q2xpcCA9IChHZXRDbGlwUmduKGRjLCBjbGlwUmduLmdldCgpKSA8PSAwKTsKKyAgICAK
KyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBjbGlwUmVjdCwgcmVjdFdpbiwgZGMs
IHN0YWJsZVJvdW5kKG5ld1RvcExlZnQud2lkdGgoKSAqIDIpLCBzdGFibGVSb3VuZChuZXdUb3BM
ZWZ0LmhlaWdodCgpICogMikpOworCisgICAgLy8gRHJhdyB0b3AgcmlnaHQKKyAgICBjbGlwUmVj
dCA9IHJlY3RXaW47CisgICAgY2xpcFJlY3QubGVmdCA9IGNlbnRlclBvaW50LngoKTsKKyAgICBj
bGlwUmVjdC5ib3R0b20gPSBjZW50ZXJQb2ludC55KCk7CisKKyAgICBkcmF3Um91bmRDb3JuZXIo
bmVlZHNOZXdDbGlwLCBjbGlwUmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld1RvcFJp
Z2h0LndpZHRoKCkgKiAyKSwgc3RhYmxlUm91bmQobmV3VG9wUmlnaHQuaGVpZ2h0KCkgKiAyKSk7
CisKKyAgICAgLy8gRHJhdyBib3R0b20gbGVmdAorICAgIGNsaXBSZWN0ID0gcmVjdFdpbjsKKyAg
ICBjbGlwUmVjdC5yaWdodCA9IGNlbnRlclBvaW50LngoKTsKKyAgICBjbGlwUmVjdC50b3AgPSBj
ZW50ZXJQb2ludC55KCk7CisKKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBjbGlw
UmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld0JvdHRvbUxlZnQud2lkdGgoKSAqIDIp
LCBzdGFibGVSb3VuZChuZXdCb3R0b21MZWZ0LmhlaWdodCgpICogMikpOworCisgICAgLy8gRHJh
dyBib3R0b20gcmlnaHQKKyAgICBjbGlwUmVjdCA9IHJlY3RXaW47CisgICAgY2xpcFJlY3QubGVm
dCA9IGNlbnRlclBvaW50LngoKTsKKyAgICBjbGlwUmVjdC50b3AgPSBjZW50ZXJQb2ludC55KCk7
CisKKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBjbGlwUmVjdCwgcmVjdFdpbiwg
ZGMsIHN0YWJsZVJvdW5kKG5ld0JvdHRvbVJpZ2h0LndpZHRoKCkgKiAyKSwgc3RhYmxlUm91bmQo
bmV3Qm90dG9tUmlnaHQuaGVpZ2h0KCkgKiAyKSk7CisKKyAgICBTZWxlY3RPYmplY3QoZGMsIG9s
ZEJydXNoKTsKKyAgICBEZWxldGVPYmplY3QoYnJ1c2gpOworfQorCit2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd1JvdW5kQ29ybmVyKGJvb2wgbmVlZHNOZXdDbGlwLCBSRUNUIGNsaXBSZWN0LCBS
RUNUIHJlY3RXaW4sIEhEQyBkYywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIGlmICgh
ZGMpCisgICAgICAgIHJldHVybjsKKworICAgIE93blB0cjxIUkdOPiBjbGlwUmduKENyZWF0ZVJl
Y3RSZ24oMCwgMCwgMCwgMCkpOworICAgIGlmIChuZWVkc05ld0NsaXApICB7CisgICAgICAgIGNs
aXBSZ24uc2V0KENyZWF0ZVJlY3RSZ24oY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9wLCBjbGlw
UmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKSk7CisgICAgICAgIFNlbGVjdENsaXBSZ24oZGMs
IGNsaXBSZ24uZ2V0KCkpOworICAgIH0gZWxzZSAKKyAgICAgICAgSW50ZXJzZWN0Q2xpcFJlY3Qo
ZGMsIGNsaXBSZWN0LmxlZnQsIGNsaXBSZWN0LnRvcCwgY2xpcFJlY3QucmlnaHQsIGNsaXBSZWN0
LmJvdHRvbSk7CisgICAgCisgICAgOjpSb3VuZFJlY3QoZGMsIHJlY3RXaW4ubGVmdCAsIHJlY3RX
aW4udG9wICwgcmVjdFdpbi5yaWdodCAsIHJlY3RXaW4uYm90dG9tICwgd2lkdGgsIGhlaWdodCk7
CisgICAgCisgICAgU2VsZWN0Q2xpcFJnbihkYywgbmVlZHNOZXdDbGlwID8gMCA6IGNsaXBSZ24u
Z2V0KCkpOwogfQogCiBGbG9hdFJlY3QgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4
ZWxzKGNvbnN0IEZsb2F0UmVjdCYgZnJlY3QpCi0tIAoxLjYuMy5tc3lzZ2l0LjAKCg==
</data>
<flag name="review"
          id="18652"
          type_id="1"
          status="+"
          setter="staikos"
    />
    <flag name="commit-queue"
          id="18655"
          type_id="3"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34501</attachid>
            <date>2009-08-10 13:05:25 -0700</date>
            <delta_ts>2009-08-10 14:30:40 -0700</delta_ts>
            <desc>Fix the errors when applying the patch.</desc>
            <filename>0001-Add-rounded-rect-drawing-function.patch</filename>
            <type>text/plain</type>
            <size>6114</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSBlNzBjZmE1MDM0Yjk3NjgyNWY3MzA4NTdkZjYyOTc2OGY4YTJmN2E4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxjcnlzdGFsLnpoYW5nQHN0YWlrb3Mu
bmV0PgpEYXRlOiBNb24sIDEwIEF1ZyAyMDA5IDE2OjAxOjI2IC0wNDAwClN1YmplY3Q6IFtQQVRD
SF0gQWRkIHJvdW5kZWQgcmVjdCBkcmF3aW5nIGZ1bmN0aW9uLgoKLS0tCiBXZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oICAgICAgICB8ICAgIDEgKwogLi4u
L2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcCAgICAgICAgfCAgIDk0ICsr
KysrKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAy
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZWEyYWZjZS4uOTNjZDFkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wOC0x
MCAgQ3J5c3RhbCBaaGFuZyAgPGNyeXN0YWwuemhhbmdAc3RhaWtvcy5uZXQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEdyYXBoaWNz
Q29udGV4dDo6ZmlsbFJvdW5kUmVjdCgpIGZvciBXSU5DRSBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg0MgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVj
dENlbnRlclBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJv
dW5kZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1JvdW5k
Q29ybmVyKToKKwogMjAwOS0wNy0yNyAgWW9uZyBMaSAgPHlvbmcubGlAdG9yY2htb2JpbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggYWZkNmQ1OC4uNzViOWRiYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0zMjcsNiAr
MzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdCaXRtYXAoU2hh
cmVkQml0bWFwKiwgY29uc3QgSW50UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApOwogICAgICAgICB2b2lkIGRyYXdCaXRt
YXBQYXR0ZXJuKFNoYXJlZEJpdG1hcCosIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3RJbiwgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgSW50U2l6ZSYgb3JpZ1NvdXJjZVNpemUpOwogICAgICAgICB2b2lkIGRyYXdJY29u
KEhJQ09OIGljb24sIGNvbnN0IEludFJlY3QmIGRzdFJlY3QsIFVJTlQgZmxhZ3MpOworICAgICAg
ICB2b2lkIGRyYXdSb3VuZENvcm5lcihib29sIG5ld0NsaXAsIFJFQ1QgY2xpcFJlY3QsIFJFQ1Qg
cmVjdFdpbiwgSERDIGRjLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogI2VsaWYgUExBVEZPUk0o
V0lOKQogICAgICAgICBHcmFwaGljc0NvbnRleHQoSERDLCBib29sIGhhc0FscGhhID0gZmFsc2Up
OyAvLyBGSVhNRTogVG8gYmUgcmVtb3ZlZC4KICAgICAgICAgYm9vbCBpblRyYW5zcGFyZW5jeUxh
eWVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNl
L0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwCmluZGV4IDZhOWNiY2EuLjc1Njk1ZGQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2lu
Y2UuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250
ZXh0V2luY2UuY3BwCkBAIC0xMjI5LDkgKzEyMjksOTkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmNsaXBPdXRFbGxpcHNlSW5SZWN0KGNvbnN0IEludFJlY3QmKQogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY29uc3QgSW50
UmVjdCYsIGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNvbnN0IEludFNpemUmIHRvcFJpZ2h0LCBj
b25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJbnRTaXplJiBib3R0b21SaWdodCwgY29u
c3QgQ29sb3ImKQorc3RhdGljIGlubGluZSBJbnRQb2ludCByZWN0Q2VudGVyUG9pbnQoY29uc3Qg
UkVDVCYgcmVjdCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRQb2lu
dChyZWN0LmxlZnQgKyAocmVjdC5yaWdodCAtIHJlY3QubGVmdCkgLyAyLCByZWN0LnRvcCArIChy
ZWN0LmJvdHRvbSAtIHJlY3QudG9wKSAvIDIpOworfQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmZp
bGxSb3VuZGVkUmVjdChjb25zdCBJbnRSZWN0JiBmaWxsUmVjdCwgY29uc3QgSW50U2l6ZSYgdG9w
TGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQs
IGNvbnN0IEludFNpemUmIGJvdHRvbVJpZ2h0LCBjb25zdCBDb2xvciYgYykKK3sKKyAgICBTY29w
ZURDUHJvdmlkZXIgZGNQcm92aWRlcihtX2RhdGEpOworICAgIGlmICghbV9kYXRhLT5tX2RjKQor
ICAgICAgICByZXR1cm47CisKKyAgICBJbnRTaXplIHNoYWRvd1NpemU7CisgICAgaW50IHNoYWRv
d0JsdXIgPSAwOworICAgIENvbG9yIHNoYWRvd0NvbG9yOworICAgICAgICAKKyAgICBnZXRTaGFk
b3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpOworICAgIAorICAgIEludFJl
Y3QgZHN0UmVjdCA9IGZpbGxSZWN0OworICAgIAorICAgIGRzdFJlY3QubW92ZShzaGFkb3dTaXpl
KTsKKyAgICBkc3RSZWN0LmluZmxhdGUoc2hhZG93Qmx1cik7CisgICAgZHN0UmVjdCA9IG1fZGF0
YS0+bWFwUmVjdChkc3RSZWN0KTsKKyAgCisgICAgRmxvYXRTaXplIG5ld1RvcExlZnQobV9kYXRh
LT5tYXBTaXplKHRvcExlZnQpKTsKKyAgICBGbG9hdFNpemUgbmV3VG9wUmlnaHQobV9kYXRhLT5t
YXBTaXplKHRvcFJpZ2h0KSk7CisgICAgRmxvYXRTaXplIG5ld0JvdHRvbUxlZnQobV9kYXRhLT5t
YXBTaXplKGJvdHRvbUxlZnQpKTsKKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tUmlnaHQobV9kYXRh
LT5tYXBTaXplKGJvdHRvbVJpZ2h0KSk7CisKKyAgICBUcmFuc3BhcmVudExheWVyREMgdHJhbnNw
YXJlbnREYyhtX2RhdGEsIGRzdFJlY3QsICZmaWxsUmVjdCk7CisgICAgSERDIGRjID0gdHJhbnNw
YXJlbnREYy5oZGMoKTsKKyAgICBpZiAoIWRjKQorICAgICAgICByZXR1cm47CisKKyAgICBkc3RS
ZWN0Lm1vdmUodHJhbnNwYXJlbnREYy50b1NoaWZ0KCkpOworCisgICAgUkVDVCByZWN0V2luID0g
ZHN0UmVjdDsKKworICAgIEhHRElPQkogYnJ1c2ggPSBjcmVhdGVCcnVzaChzaGFkb3dDb2xvcik7
CisgICAgSEdESU9CSiBvbGRCcnVzaCA9IFNlbGVjdE9iamVjdChkYywgYnJ1c2gpOworICAgCisg
ICAgU2VsZWN0T2JqZWN0KGRjLCBHZXRTdG9ja09iamVjdChOVUxMX1BFTikpOworCisgICAgSW50
UG9pbnQgY2VudGVyUG9pbnQgPSByZWN0Q2VudGVyUG9pbnQocmVjdFdpbik7CisgICAgLy8gRHJh
dyB0b3AgbGVmdCBoYWxmCisgICAgUkVDVCBjbGlwUmVjdChyZWN0V2luKTsKKyAgICBjbGlwUmVj
dC5yaWdodCA9IGNlbnRlclBvaW50LngoKTsKKyAgICBjbGlwUmVjdC5ib3R0b20gPSBjZW50ZXJQ
b2ludC55KCk7CisKKyAgICBPd25QdHI8SFJHTj4gY2xpcFJnbihDcmVhdGVSZWN0UmduKDAsIDAs
IDAsIDApKTsKKyAgICBib29sIG5lZWRzTmV3Q2xpcCA9IChHZXRDbGlwUmduKGRjLCBjbGlwUmdu
LmdldCgpKSA8PSAwKTsKKyAgICAKKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBj
bGlwUmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld1RvcExlZnQud2lkdGgoKSAqIDIp
LCBzdGFibGVSb3VuZChuZXdUb3BMZWZ0LmhlaWdodCgpICogMikpOworCisgICAgLy8gRHJhdyB0
b3AgcmlnaHQKKyAgICBjbGlwUmVjdCA9IHJlY3RXaW47CisgICAgY2xpcFJlY3QubGVmdCA9IGNl
bnRlclBvaW50LngoKTsKKyAgICBjbGlwUmVjdC5ib3R0b20gPSBjZW50ZXJQb2ludC55KCk7CisK
KyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBjbGlwUmVjdCwgcmVjdFdpbiwgZGMs
IHN0YWJsZVJvdW5kKG5ld1RvcFJpZ2h0LndpZHRoKCkgKiAyKSwgc3RhYmxlUm91bmQobmV3VG9w
UmlnaHQuaGVpZ2h0KCkgKiAyKSk7CisKKyAgICAgLy8gRHJhdyBib3R0b20gbGVmdAorICAgIGNs
aXBSZWN0ID0gcmVjdFdpbjsKKyAgICBjbGlwUmVjdC5yaWdodCA9IGNlbnRlclBvaW50LngoKTsK
KyAgICBjbGlwUmVjdC50b3AgPSBjZW50ZXJQb2ludC55KCk7CisKKyAgICBkcmF3Um91bmRDb3Ju
ZXIobmVlZHNOZXdDbGlwLCBjbGlwUmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld0Jv
dHRvbUxlZnQud2lkdGgoKSAqIDIpLCBzdGFibGVSb3VuZChuZXdCb3R0b21MZWZ0LmhlaWdodCgp
ICogMikpOworCisgICAgLy8gRHJhdyBib3R0b20gcmlnaHQKKyAgICBjbGlwUmVjdCA9IHJlY3RX
aW47CisgICAgY2xpcFJlY3QubGVmdCA9IGNlbnRlclBvaW50LngoKTsKKyAgICBjbGlwUmVjdC50
b3AgPSBjZW50ZXJQb2ludC55KCk7CisKKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlw
LCBjbGlwUmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld0JvdHRvbVJpZ2h0LndpZHRo
KCkgKiAyKSwgc3RhYmxlUm91bmQobmV3Qm90dG9tUmlnaHQuaGVpZ2h0KCkgKiAyKSk7CisKKyAg
ICBTZWxlY3RPYmplY3QoZGMsIG9sZEJydXNoKTsKKyAgICBEZWxldGVPYmplY3QoYnJ1c2gpOwor
fQorCisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Um91bmRDb3JuZXIoYm9vbCBuZWVkc05l
d0NsaXAsIFJFQ1QgY2xpcFJlY3QsIFJFQ1QgcmVjdFdpbiwgSERDIGRjLCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQpCit7CisgICAgaWYgKCFkYykKKyAgICAgICAgcmV0dXJuOworCisgICAgT3duUHRy
PEhSR04+IGNsaXBSZ24oQ3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7CisgICAgaWYgKG5lZWRz
TmV3Q2xpcCkgIHsKKyAgICAgICAgY2xpcFJnbi5zZXQoQ3JlYXRlUmVjdFJnbihjbGlwUmVjdC5s
ZWZ0LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBjbGlwUmVjdC5ib3R0b20pKTsKKyAg
ICAgICAgU2VsZWN0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7CisgICAgfSBlbHNlIAorICAg
ICAgICBJbnRlcnNlY3RDbGlwUmVjdChkYywgY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9wLCBj
bGlwUmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKTsKKyAgICAKKyAgICA6OlJvdW5kUmVjdChk
YywgcmVjdFdpbi5sZWZ0ICwgcmVjdFdpbi50b3AgLCByZWN0V2luLnJpZ2h0ICwgcmVjdFdpbi5i
b3R0b20gLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAKKyAgICBTZWxlY3RDbGlwUmduKGRjLCBuZWVk
c05ld0NsaXAgPyAwIDogY2xpcFJnbi5nZXQoKSk7CiB9CiAKIEZsb2F0UmVjdCBHcmFwaGljc0Nv
bnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMoY29uc3QgRmxvYXRSZWN0JiBmcmVjdCkKLS0gCjEu
Ni4zLm1zeXNnaXQuMAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34516</attachid>
            <date>2009-08-10 14:30:40 -0700</date>
            <delta_ts>2009-08-10 19:08:49 -0700</delta_ts>
            <desc>Fix the errors when applying the patch.</desc>
            <filename>0001-Add-rounded-rect-drawing-function.patch</filename>
            <type>text/plain</type>
            <size>6179</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSAyZGU3ZWM4NDZiMGM4Mzg5ZjY0NzViMTJlOGUzNzkxZWFhZTI2ODg0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxjcnlzdGFsLnpoYW5nQHN0YWlrb3Mu
bmV0PgpEYXRlOiBNb24sIDEwIEF1ZyAyMDA5IDE3OjI3OjU3IC0wNDAwClN1YmplY3Q6IFtQQVRD
SF0gQWRkIHJvdW5kZWQgcmVjdCBkcmF3aW5nIGZ1bmN0aW9uLgoKLS0tCiBXZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oICAgICAgICB8ICAgIDEgKwogLi4u
L2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcCAgICAgICAgfCAgIDk1ICsr
KysrKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAy
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNmUxZjBjYS4uMDBlYjc2MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wOC0x
MCAgQ3J5c3RhbCBaaGFuZyAgPGNyeXN0YWwuemhhbmdAc3RhaWtvcy5uZXQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEdyYXBoaWNz
Q29udGV4dDo6ZmlsbFJvdW5kUmVjdCgpIGZvciBXSU5DRSBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg0MgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVj
dENlbnRlclBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJv
dW5kZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1JvdW5k
Q29ybmVyKToKIDIwMDktMDgtMDYgIEFuZHJhcyBCZWNzaSAgPGJlY3NpLmFuZHJhc0BzdHVkLnUt
c3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggNmY2MzIyZC4uODk0
OWQ0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBA
IC0zMjAsNiArMzIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdJ
Y29uKEhJQ09OIGljb24sIGNvbnN0IEludFJlY3QmIGRzdFJlY3QsIFVJTlQgZmxhZ3MpOwogICAg
ICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wgc3VwcG9ydEFs
cGhhQmxlbmQgPSBmYWxzZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgLy8gVGhlIHBh
c3NlZCBpbiByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGluZyBp
bnNpZGUgdHJhbnNwYXJlbmN5IGxheWVycy4KICAgICAgICAgdm9pZCByZWxlYXNlV2luZG93c0Nv
bnRleHQoSERDLCBjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IGZhbHNl
LCBib29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAgICAvLyBUaGUgcGFzc2VkIGluIEhEQyBz
aG91bGQgYmUgdGhlIG9uZSBoYW5kZWQgYmFjayBieSBnZXRXaW5kb3dzQ29udGV4dC4KKyAgICAg
ICAgdm9pZCBkcmF3Um91bmRDb3JuZXIoYm9vbCBuZXdDbGlwLCBSRUNUIGNsaXBSZWN0LCBSRUNU
IHJlY3RXaW4sIEhEQyBkYywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKICNlbGlmIFBMQVRGT1JN
KFdJTikKICAgICAgICAgR3JhcGhpY3NDb250ZXh0KEhEQywgYm9vbCBoYXNBbHBoYSA9IGZhbHNl
KTsgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQuCiAgICAgICAgIGJvb2wgaW5UcmFuc3BhcmVuY3lM
YXllcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcAppbmRleCA2YTljYmNhLi4yOGFiYjk4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdp
bmNlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29u
dGV4dFdpbmNlLmNwcApAQCAtMTIyOSwxMCArMTIyOSwxMDEgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmNsaXBPdXRFbGxpcHNlSW5SZWN0KGNvbnN0IEludFJlY3QmKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY29uc3Qg
SW50UmVjdCYsIGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNvbnN0IEludFNpemUmIHRvcFJpZ2h0
LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJbnRTaXplJiBib3R0b21SaWdodCwg
Y29uc3QgQ29sb3ImKQorc3RhdGljIGlubGluZSBJbnRQb2ludCByZWN0Q2VudGVyUG9pbnQoY29u
c3QgUkVDVCYgcmVjdCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRQ
b2ludChyZWN0LmxlZnQgKyAocmVjdC5yaWdodCAtIHJlY3QubGVmdCkgLyAyLCByZWN0LnRvcCAr
IChyZWN0LmJvdHRvbSAtIHJlY3QudG9wKSAvIDIpOwogfQordm9pZCBHcmFwaGljc0NvbnRleHQ6
OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRSZWN0JiBmaWxsUmVjdCwgY29uc3QgSW50U2l6ZSYg
dG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxl
ZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJpZ2h0LCBjb25zdCBDb2xvciYgYykKK3sKKyAgICBT
Y29wZURDUHJvdmlkZXIgZGNQcm92aWRlcihtX2RhdGEpOworICAgIGlmICghbV9kYXRhLT5tX2Rj
KQorICAgICAgICByZXR1cm47CisKKyAgICBJbnRTaXplIHNoYWRvd1NpemU7CisgICAgaW50IHNo
YWRvd0JsdXIgPSAwOworICAgIENvbG9yIHNoYWRvd0NvbG9yOworICAgICAgICAKKyAgICBnZXRT
aGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpOworICAgIAorICAgIElu
dFJlY3QgZHN0UmVjdCA9IGZpbGxSZWN0OworICAgIAorICAgIGRzdFJlY3QubW92ZShzaGFkb3dT
aXplKTsKKyAgICBkc3RSZWN0LmluZmxhdGUoc2hhZG93Qmx1cik7CisgICAgZHN0UmVjdCA9IG1f
ZGF0YS0+bWFwUmVjdChkc3RSZWN0KTsKKyAgCisgICAgRmxvYXRTaXplIG5ld1RvcExlZnQobV9k
YXRhLT5tYXBTaXplKHRvcExlZnQpKTsKKyAgICBGbG9hdFNpemUgbmV3VG9wUmlnaHQobV9kYXRh
LT5tYXBTaXplKHRvcFJpZ2h0KSk7CisgICAgRmxvYXRTaXplIG5ld0JvdHRvbUxlZnQobV9kYXRh
LT5tYXBTaXplKGJvdHRvbUxlZnQpKTsKKyAgICBGbG9hdFNpemUgbmV3Qm90dG9tUmlnaHQobV9k
YXRhLT5tYXBTaXplKGJvdHRvbVJpZ2h0KSk7CisKKyAgICBUcmFuc3BhcmVudExheWVyREMgdHJh
bnNwYXJlbnREYyhtX2RhdGEsIGRzdFJlY3QsICZmaWxsUmVjdCk7CisgICAgSERDIGRjID0gdHJh
bnNwYXJlbnREYy5oZGMoKTsKKyAgICBpZiAoIWRjKQorICAgICAgICByZXR1cm47CisKKyAgICBk
c3RSZWN0Lm1vdmUodHJhbnNwYXJlbnREYy50b1NoaWZ0KCkpOworCisgICAgUkVDVCByZWN0V2lu
ID0gZHN0UmVjdDsKKworICAgIEhHRElPQkogYnJ1c2ggPSBjcmVhdGVCcnVzaChzaGFkb3dDb2xv
cik7CisgICAgSEdESU9CSiBvbGRCcnVzaCA9IFNlbGVjdE9iamVjdChkYywgYnJ1c2gpOworICAg
CisgICAgU2VsZWN0T2JqZWN0KGRjLCBHZXRTdG9ja09iamVjdChOVUxMX1BFTikpOworCisgICAg
SW50UG9pbnQgY2VudGVyUG9pbnQgPSByZWN0Q2VudGVyUG9pbnQocmVjdFdpbik7CisgICAgLy8g
RHJhdyB0b3AgbGVmdCBoYWxmCisgICAgUkVDVCBjbGlwUmVjdChyZWN0V2luKTsKKyAgICBjbGlw
UmVjdC5yaWdodCA9IGNlbnRlclBvaW50LngoKTsKKyAgICBjbGlwUmVjdC5ib3R0b20gPSBjZW50
ZXJQb2ludC55KCk7CisKKyAgICBPd25QdHI8SFJHTj4gY2xpcFJnbihDcmVhdGVSZWN0UmduKDAs
IDAsIDAsIDApKTsKKyAgICBib29sIG5lZWRzTmV3Q2xpcCA9IChHZXRDbGlwUmduKGRjLCBjbGlw
UmduLmdldCgpKSA8PSAwKTsKKyAgICAKKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlw
LCBjbGlwUmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld1RvcExlZnQud2lkdGgoKSAq
IDIpLCBzdGFibGVSb3VuZChuZXdUb3BMZWZ0LmhlaWdodCgpICogMikpOworCisgICAgLy8gRHJh
dyB0b3AgcmlnaHQKKyAgICBjbGlwUmVjdCA9IHJlY3RXaW47CisgICAgY2xpcFJlY3QubGVmdCA9
IGNlbnRlclBvaW50LngoKTsKKyAgICBjbGlwUmVjdC5ib3R0b20gPSBjZW50ZXJQb2ludC55KCk7
CisKKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBjbGlwUmVjdCwgcmVjdFdpbiwg
ZGMsIHN0YWJsZVJvdW5kKG5ld1RvcFJpZ2h0LndpZHRoKCkgKiAyKSwgc3RhYmxlUm91bmQobmV3
VG9wUmlnaHQuaGVpZ2h0KCkgKiAyKSk7CisKKyAgICAgLy8gRHJhdyBib3R0b20gbGVmdAorICAg
IGNsaXBSZWN0ID0gcmVjdFdpbjsKKyAgICBjbGlwUmVjdC5yaWdodCA9IGNlbnRlclBvaW50Lngo
KTsKKyAgICBjbGlwUmVjdC50b3AgPSBjZW50ZXJQb2ludC55KCk7CisKKyAgICBkcmF3Um91bmRD
b3JuZXIobmVlZHNOZXdDbGlwLCBjbGlwUmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5l
d0JvdHRvbUxlZnQud2lkdGgoKSAqIDIpLCBzdGFibGVSb3VuZChuZXdCb3R0b21MZWZ0LmhlaWdo
dCgpICogMikpOworCisgICAgLy8gRHJhdyBib3R0b20gcmlnaHQKKyAgICBjbGlwUmVjdCA9IHJl
Y3RXaW47CisgICAgY2xpcFJlY3QubGVmdCA9IGNlbnRlclBvaW50LngoKTsKKyAgICBjbGlwUmVj
dC50b3AgPSBjZW50ZXJQb2ludC55KCk7CisKKyAgICBkcmF3Um91bmRDb3JuZXIobmVlZHNOZXdD
bGlwLCBjbGlwUmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJsZVJvdW5kKG5ld0JvdHRvbVJpZ2h0Lndp
ZHRoKCkgKiAyKSwgc3RhYmxlUm91bmQobmV3Qm90dG9tUmlnaHQuaGVpZ2h0KCkgKiAyKSk7CisK
KyAgICBTZWxlY3RPYmplY3QoZGMsIG9sZEJydXNoKTsKKyAgICBEZWxldGVPYmplY3QoYnJ1c2gp
OworfQorCisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Um91bmRDb3JuZXIoYm9vbCBuZWVk
c05ld0NsaXAsIFJFQ1QgY2xpcFJlY3QsIFJFQ1QgcmVjdFdpbiwgSERDIGRjLCBpbnQgd2lkdGgs
IGludCBoZWlnaHQpCit7CisgICAgaWYgKCFkYykKKyAgICAgICAgcmV0dXJuOworCisgICAgT3du
UHRyPEhSR04+IGNsaXBSZ24oQ3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7CisgICAgaWYgKG5l
ZWRzTmV3Q2xpcCkgIHsKKyAgICAgICAgY2xpcFJnbi5zZXQoQ3JlYXRlUmVjdFJnbihjbGlwUmVj
dC5sZWZ0LCBjbGlwUmVjdC50b3AsIGNsaXBSZWN0LnJpZ2h0LCBjbGlwUmVjdC5ib3R0b20pKTsK
KyAgICAgICAgU2VsZWN0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSk7CisgICAgfSBlbHNlIAor
ICAgICAgICBJbnRlcnNlY3RDbGlwUmVjdChkYywgY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9w
LCBjbGlwUmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKTsKKyAgICAKKyAgICA6OlJvdW5kUmVj
dChkYywgcmVjdFdpbi5sZWZ0ICwgcmVjdFdpbi50b3AgLCByZWN0V2luLnJpZ2h0ICwgcmVjdFdp
bi5ib3R0b20gLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAKKyAgICBTZWxlY3RDbGlwUmduKGRjLCBu
ZWVkc05ld0NsaXAgPyAwIDogY2xpcFJnbi5nZXQoKSk7Cit9CisKIAogRmxvYXRSZWN0IEdyYXBo
aWNzQ29udGV4dDo6cm91bmRUb0RldmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3QmIGZyZWN0KQog
ewotLSAKMS42LjMubXN5c2dpdC4wCgo=
</data>
<flag name="review"
          id="18673"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
      

    </bug>

</bugzilla>