<?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>124209</bug_id>
          
          <creation_ts>2013-11-12 09:19:33 -0800</creation_ts>
          <short_desc>[Cairo] Avoid extra copy when drawing images</short_desc>
          <delta_ts>2013-12-05 09:15:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>1</everconfirmed>
          <reporter name="Aloisio Almeida Jr">aloisio.almeida</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alex</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>mrobinson</cc>
    
    <cc>nick.diego</cc>
    
    <cc>noam</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>949696</commentid>
    <comment_count>0</comment_count>
    <who name="Aloisio Almeida Jr">aloisio.almeida</who>
    <bug_when>2013-11-12 09:19:33 -0800</bug_when>
    <thetext>Avoid extra copy when drawing images</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949705</commentid>
    <comment_count>1</comment_count>
      <attachid>216687</attachid>
    <who name="Aloisio Almeida Jr">aloisio.almeida</who>
    <bug_when>2013-11-12 09:32:56 -0800</bug_when>
    <thetext>Created attachment 216687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949712</commentid>
    <comment_count>2</comment_count>
    <who name="Aloisio Almeida Jr">aloisio.almeida</who>
    <bug_when>2013-11-12 09:45:21 -0800</bug_when>
    <thetext>Considering the image benchmark from: http://flashcanvas.net/examples/dl.dropbox.com/u/1865210/mindcat/canvas_perf.html the proposed patch has the following results:

Nix: ~15% gain;
GTK: ~10% gain;
EFL: ~10% gain;

We also did tests with Nix using image low interpolation quality. The gain was ~50%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950769</commentid>
    <comment_count>3</comment_count>
      <attachid>216687</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-11-14 11:03:08 -0800</bug_when>
    <thetext>Comment on attachment 216687
Patch

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

&gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:181
&gt; +    if (srcRect.x() || srcRect.y()
&gt; +        || srcRect.width() != cairo_image_surface_get_width(surface)
&gt; +        || srcRect.height() != cairo_image_surface_get_height(surface)) {

There is no guarantee that this surface is an image surface. You could simplify this check to be:
if (srcRect.x() || srcRect.y() || srcRect.size() == cairoSurfaceSize(surface))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950848</commentid>
    <comment_count>4</comment_count>
      <attachid>216980</attachid>
    <who name="Aloisio Almeida Jr">aloisio.almeida</who>
    <bug_when>2013-11-14 14:25:55 -0800</bug_when>
    <thetext>Created attachment 216980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950851</commentid>
    <comment_count>5</comment_count>
      <attachid>216980</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-11-14 14:32:44 -0800</bug_when>
    <thetext>Comment on attachment 216980
Patch

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

Thanks.

&gt; Source/WebCore/ChangeLog:3
&gt; +        Avoid extra copy when drawing images

The actual bug title is different, so make sure these match up when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950853</commentid>
    <comment_count>6</comment_count>
      <attachid>216982</attachid>
    <who name="Aloisio Almeida Jr">aloisio.almeida</who>
    <bug_when>2013-11-14 14:37:00 -0800</bug_when>
    <thetext>Created attachment 216982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950866</commentid>
    <comment_count>7</comment_count>
      <attachid>216982</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-14 15:13:12 -0800</bug_when>
    <thetext>Comment on attachment 216982
Patch

Clearing flags on attachment: 216982

Committed r159314: &lt;http://trac.webkit.org/changeset/159314&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950867</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-14 15:13:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955260</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-02 00:21:09 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 216687 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216687&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:181
&gt; &gt; +    if (srcRect.x() || srcRect.y()
&gt; &gt; +        || srcRect.width() != cairo_image_surface_get_width(surface)
&gt; &gt; +        || srcRect.height() != cairo_image_surface_get_height(surface)) {
&gt; 
&gt; There is no guarantee that this surface is an image surface. You could simplify this check to be:
&gt; if (srcRect.x() || srcRect.y() || srcRect.size() == cairoSurfaceSize(surface))

Didn&apos;t you actually mean srcRect.x() || srcRect.y() || srcRect.size() != cairoSurfaceSize(surface)? The previous expression checked there&apos;s x or y or size is different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955264</commentid>
    <comment_count>10</comment_count>
      <attachid>216982</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-02 00:25:03 -0800</bug_when>
    <thetext>Comment on attachment 216982
Patch

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

&gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:176
&gt; +    RefPtr&lt;cairo_surface_t&gt; subsurface;

This doesn&apos;t seem to be used outside the if context, I think it could be moved to the if block.

&gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:179
&gt; +    if (srcRect.x() || srcRect.y() || srcRect.size() == cairoSurfaceSize(surface)) {

If I understood correctly the commit message, you want to use a subsurface when source size is different to surface size, right?

&gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:187
&gt; +        subsurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(),
&gt; +            expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));
&gt; +        patternSurface = subsurface.get();

Maybe you don&apos;t even need to subsurface variable if you use a single lines here:

patternSurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(), expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955371</commentid>
    <comment_count>11</comment_count>
    <who name="Aloisio Almeida Jr">aloisio.almeida</who>
    <bug_when>2013-12-02 07:26:10 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 216982 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216982&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:176
&gt; &gt; +    RefPtr&lt;cairo_surface_t&gt; subsurface;
&gt; 
&gt; This doesn&apos;t seem to be used outside the if context, I think it could be moved to the if block.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:179
&gt; &gt; +    if (srcRect.x() || srcRect.y() || srcRect.size() == cairoSurfaceSize(surface)) {
&gt; 
&gt; If I understood correctly the commit message, you want to use a subsurface when source size is different to surface size, right?

Right. I got the line from Robinson review without double check, my bad.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:187
&gt; &gt; +        subsurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(),
&gt; &gt; +            expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));
&gt; &gt; +        patternSurface = subsurface.get();
&gt; 
&gt; Maybe you don&apos;t even need to subsurface variable if you use a single lines here:
&gt; 
&gt; patternSurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(), expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));

Ok.

The question is: the patch has already landed. How to proceed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955405</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-02 09:16:41 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 216982 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216982&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:176
&gt; &gt; &gt; +    RefPtr&lt;cairo_surface_t&gt; subsurface;
&gt; &gt; 
&gt; &gt; This doesn&apos;t seem to be used outside the if context, I think it could be moved to the if block.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:179
&gt; &gt; &gt; +    if (srcRect.x() || srcRect.y() || srcRect.size() == cairoSurfaceSize(surface)) {
&gt; &gt; 
&gt; &gt; If I understood correctly the commit message, you want to use a subsurface when source size is different to surface size, right?
&gt; 
&gt; Right. I got the line from Robinson review without double check, my bad.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:187
&gt; &gt; &gt; +        subsurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(),
&gt; &gt; &gt; +            expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));
&gt; &gt; &gt; +        patternSurface = subsurface.get();
&gt; &gt; 
&gt; &gt; Maybe you don&apos;t even need to subsurface variable if you use a single lines here:
&gt; &gt; 
&gt; &gt; patternSurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(), expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));
&gt; 
&gt; Ok.
&gt; 
&gt; The question is: the patch has already landed. How to proceed?

I don&apos;t think we need to roll it out, since it hasn&apos;t broken anything, I&apos;m reopening the bug and you can just upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956314</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-04 01:54:12 -0800</bug_when>
    <thetext>I&apos;ve merged the correct patch in the stable branch see http://trac.webkit.org/changeset/160081</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956575</commentid>
    <comment_count>14</comment_count>
    <who name="Aloisio Almeida Jr">aloisio.almeida</who>
    <bug_when>2013-12-04 13:41:05 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 216982 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216982&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:176
&gt; &gt; +    RefPtr&lt;cairo_surface_t&gt; subsurface;
&gt; 
&gt; This doesn&apos;t seem to be used outside the if context, I think it could be moved to the if block.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:179
&gt; &gt; +    if (srcRect.x() || srcRect.y() || srcRect.size() == cairoSurfaceSize(surface)) {
&gt; 
&gt; If I understood correctly the commit message, you want to use a subsurface when source size is different to surface size, right?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:187
&gt; &gt; +        subsurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(),
&gt; &gt; +            expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));
&gt; &gt; +        patternSurface = subsurface.get();
&gt; 
&gt; Maybe you don&apos;t even need to subsurface variable if you use a single lines here:
&gt; 
&gt; patternSurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(), expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));


The pattern will hold the subsurface reference. The subsurface will be destroyed together with the pattern. So, I don&apos;t need to hold the subsurface reference as a RefPtr.

I will remove the subsurface variable and use:

patternSurface = cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(), expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956762</commentid>
    <comment_count>15</comment_count>
      <attachid>218485</attachid>
    <who name="Aloisio Almeida Jr">aloisio.almeida</who>
    <bug_when>2013-12-04 20:01:56 -0800</bug_when>
    <thetext>Created attachment 218485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956782</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-04 23:31:28 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 216982 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216982&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:176
&gt; &gt; &gt; +    RefPtr&lt;cairo_surface_t&gt; subsurface;
&gt; &gt; 
&gt; &gt; This doesn&apos;t seem to be used outside the if context, I think it could be moved to the if block.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:179
&gt; &gt; &gt; +    if (srcRect.x() || srcRect.y() || srcRect.size() == cairoSurfaceSize(surface)) {
&gt; &gt; 
&gt; &gt; If I understood correctly the commit message, you want to use a subsurface when source size is different to surface size, right?
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:187
&gt; &gt; &gt; +        subsurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(),
&gt; &gt; &gt; +            expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));
&gt; &gt; &gt; +        patternSurface = subsurface.get();
&gt; &gt; 
&gt; &gt; Maybe you don&apos;t even need to subsurface variable if you use a single lines here:
&gt; &gt; 
&gt; &gt; patternSurface = adoptRef(cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(), expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height()));
&gt; 
&gt; 
&gt; The pattern will hold the subsurface reference. The subsurface will be destroyed together with the pattern. So, I don&apos;t need to hold the subsurface reference as a RefPtr.

No, the pattern doesn&apos;t adopt the surface reference, but increases it.

&gt; I will remove the subsurface variable and use:
&gt; 
&gt; patternSurface = cairo_surface_create_for_rectangle(surface, expandedSrcRect.x(), expandedSrcRect.y(), expandedSrcRect.width(), expandedSrcRect.height());

That leaks the surface, when the pattern is destroyed the surface ref counter will still be 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956784</commentid>
    <comment_count>17</comment_count>
      <attachid>218485</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-04 23:32:15 -0800</bug_when>
    <thetext>Comment on attachment 218485
Patch

This is leaking the surface, please check what I did in the stable branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956904</commentid>
    <comment_count>18</comment_count>
      <attachid>218515</attachid>
    <who name="Aloisio Almeida Jr">aloisio.almeida</who>
    <bug_when>2013-12-05 08:10:07 -0800</bug_when>
    <thetext>Created attachment 218515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956913</commentid>
    <comment_count>19</comment_count>
      <attachid>218515</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-05 08:27:35 -0800</bug_when>
    <thetext>Comment on attachment 218515
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956925</commentid>
    <comment_count>20</comment_count>
      <attachid>218515</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-05 09:15:30 -0800</bug_when>
    <thetext>Comment on attachment 218515
Patch

Clearing flags on attachment: 218515

Committed r160177: &lt;http://trac.webkit.org/changeset/160177&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956927</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-05 09:15:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216687</attachid>
            <date>2013-11-12 09:32:56 -0800</date>
            <delta_ts>2013-11-14 14:25:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124209-20131112143254.patch</filename>
            <type>text/plain</type>
            <size>4490</size>
            <attacher name="Aloisio Almeida Jr">aloisio.almeida</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE4MTYyZjVjZWMzMmVj
MDYyZjA1YTBjYThhOTIzNjVkOWM4YTNmNi4uYjE5NjYxNTJhYjA1NThiMDA2YTE2YTEyNjVhOTQ1
YTU2YTAzMDQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTExLTEyICBBbG9p
c2lvIEFsbWVpZGEgSnIgIDxhbG9pc2lvLmFsbWVpZGFAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBBdm9pZCBleHRyYSBjb3B5IHdoZW4gZHJhd2luZyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDIwOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHNvbHZlIHRoZSBidWcgIzU4MzA5IGEg
Y2Fpcm8gc3Vic3VyZmFjZSBpcyBiZWluZyB1c2VkIHRvIGxpbWl0IHRoZQorICAgICAgICBzb3Vy
Y2UgaW1hZ2UgYm91bmRhcmllcy4KKyAgICAgICAgSW4gbWFueSBjYXNlcywgd2hlbiBhIGNhaXJv
IHN1YnN1cmZhY2UgaXMgdXNlZCBmb3IgZHJhd2luZyBhbiBpbWFnZSwKKyAgICAgICAgaXQgb2Nj
dXJzIGFuIGltYWdlIGNvcHksIGNhdXNpbmcgcGVyZm9ybWFuY2UgcGVuYWx0eS4gSW4gdGhlIGNh
c2Ugb2YKKyAgICAgICAgdGhlIGZ1bmN0aW9uIFBsYXRmb3JtQ29udGV4dENhaXJvOjpkcmF3U3Vy
ZmFjZVRvQ29udGV4dCwgdGhlIGltYWdlCisgICAgICAgIGNvcHkgYWx3YXlzIGhhcHBlbnMuCisg
ICAgICAgIFNvLCB3ZSBzaG91bGQgdXNlIHRoZSBzdWJzdXJmYWNlIG9ubHkgd2hlbiBpdCdzIHJl
YWxseSBuZWNlc3NhcnkuCisgICAgICAgIEluIGNhc2VzIHdoZXJlIHdlJ3JlIGRyYXdpbmcgdGhl
IHdob2xlIGltYWdlLCB0aGUgc3Vic3VyZmFjZSBpcworICAgICAgICB1bm5lY2Vzc2FyeS4KKwor
ICAgICAgICBUaGUgcHJvcG9zZWQgcGF0Y2ggYXZvaWQgdGhlIHVzZSBvZiBzdWJzdXJmYWNlcyB3
aGVuIHNhbXBsaW5nIHRoZSB3aG9sZQorICAgICAgICBpbWFnZS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIEl0J3MgYW4gZW5oYW5jZW1lbnQuIEFscmVhZHkgY292ZXJlZCBieSBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4
dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpkcmF3
U3VyZmFjZVRvQ29udGV4dCk6CisKIDIwMTMtMTEtMTIgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIFRleHQgb24gc2ltcGxlIGxpbmVzIHNvbWV0aW1lcyBwYWlu
dHMgb25lIHBpeGVsIG9mZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCmluZGV4IGE2Njhm
YzJkZDdjNzc0Y2M0MzY0MDhiNTQzYTM1YWI0YWJiNDBlOTguLmYyNWU2NmYzY2Y3ZGNlMThmNTky
M2VmMzdjNzFmZGEzZmUzMjJmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKQEAg
LTE3MiwxNCArMTcyLDI3IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OmRyYXdTdXJmYWNl
VG9Db250ZXh0KGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29uc3QKICAgICAgICAgc3JjUmVj
dC5zZXRIZWlnaHQoc3RkOjpmYWJzKG9yaWdpbmFsU3JjUmVjdC5oZWlnaHQoKSkpOwogICAgIH0K
IAotICAgIC8vIENhaXJvIHN1YnN1cmZhY2VzIGRvbid0IHN1cHBvcnQgZmxvYXRpbmcgcG9pbnQg
Ym91bmRhcmllcyB3ZWxsLCBzbyB3ZSBleHBhbmQgdGhlIHJlY3RhbmdsZS4KLSAgICBJbnRSZWN0
IGV4cGFuZGVkU3JjUmVjdChlbmNsb3NpbmdJbnRSZWN0KHNyY1JlY3QpKTsKKyAgICBjYWlyb19z
dXJmYWNlX3QqIHBhdHRlcm5TdXJmYWNlID0gc3VyZmFjZTsKKyAgICBSZWZQdHI8Y2Fpcm9fc3Vy
ZmFjZV90PiBzdWJzdXJmYWNlOworICAgIGZsb2F0IGxlZnRQYWRkaW5nID0gMDsKKyAgICBmbG9h
dCB0b3BQYWRkaW5nID0gMDsKKyAgICBpZiAoc3JjUmVjdC54KCkgfHwgc3JjUmVjdC55KCkKKyAg
ICAgICAgfHwgc3JjUmVjdC53aWR0aCgpICE9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3dpZHRo
KHN1cmZhY2UpCisgICAgICAgIHx8IHNyY1JlY3QuaGVpZ2h0KCkgIT0gY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9nZXRfaGVpZ2h0KHN1cmZhY2UpKSB7CisgICAgICAgIC8vIENhaXJvIHN1YnN1cmZhY2Vz
IGRvbid0IHN1cHBvcnQgZmxvYXRpbmcgcG9pbnQgYm91bmRhcmllcyB3ZWxsLCBzbyB3ZSBleHBh
bmQgdGhlIHJlY3RhbmdsZS4KKyAgICAgICAgSW50UmVjdCBleHBhbmRlZFNyY1JlY3QoZW5jbG9z
aW5nSW50UmVjdChzcmNSZWN0KSk7CisKKyAgICAgICAgLy8gV2UgdXNlIGEgc3Vic3VyZmFjZSBo
ZXJlIHNvIHRoYXQgd2UgZG9uJ3QgZW5kIHVwIHNhbXBsaW5nIG91dHNpZGUgdGhlIG9yaWdpbmFs
U3JjUmVjdCByZWN0YW5nbGUuCisgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTgzMDkKKyAgICAgICAgc3Vic3VyZmFjZSA9IGFkb3B0UmVmKGNh
aXJvX3N1cmZhY2VfY3JlYXRlX2Zvcl9yZWN0YW5nbGUoc3VyZmFjZSwgZXhwYW5kZWRTcmNSZWN0
LngoKSwKKyAgICAgICAgICAgIGV4cGFuZGVkU3JjUmVjdC55KCksIGV4cGFuZGVkU3JjUmVjdC53
aWR0aCgpLCBleHBhbmRlZFNyY1JlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgcGF0dGVyblN1cmZh
Y2UgPSBzdWJzdXJmYWNlLmdldCgpOworCisgICAgICAgIGxlZnRQYWRkaW5nID0gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGV4cGFuZGVkU3JjUmVjdC54KCkpIC0gZmxvb3JmKHNyY1JlY3QueCgpKTsKKyAg
ICAgICAgdG9wUGFkZGluZyA9IHN0YXRpY19jYXN0PGZsb2F0PihleHBhbmRlZFNyY1JlY3QueSgp
KSAtIGZsb29yZihzcmNSZWN0LnkoKSk7CisgICAgfQogCi0gICAgLy8gV2UgdXNlIGEgc3Vic3Vy
ZmFjZSBoZXJlIHNvIHRoYXQgd2UgZG9uJ3QgZW5kIHVwIHNhbXBsaW5nIG91dHNpZGUgdGhlIG9y
aWdpbmFsU3JjUmVjdCByZWN0YW5nbGUuCi0gICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01ODMwOQotICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1
YnN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19zdXJmYWNlX2NyZWF0ZV9mb3JfcmVjdGFuZ2xlKAot
ICAgICAgICBzdXJmYWNlLCBleHBhbmRlZFNyY1JlY3QueCgpLCBleHBhbmRlZFNyY1JlY3QueSgp
LCBleHBhbmRlZFNyY1JlY3Qud2lkdGgoKSwgZXhwYW5kZWRTcmNSZWN0LmhlaWdodCgpKSk7Ci0g
ICAgUmVmUHRyPGNhaXJvX3BhdHRlcm5fdD4gcGF0dGVybiA9IGFkb3B0UmVmKGNhaXJvX3BhdHRl
cm5fY3JlYXRlX2Zvcl9zdXJmYWNlKHN1YnN1cmZhY2UuZ2V0KCkpKTsKKyAgICBSZWZQdHI8Y2Fp
cm9fcGF0dGVybl90PiBwYXR0ZXJuID0gYWRvcHRSZWYoY2Fpcm9fcGF0dGVybl9jcmVhdGVfZm9y
X3N1cmZhY2UocGF0dGVyblN1cmZhY2UpKTsKIAogICAgIEFTU0VSVChtX3N0YXRlKTsKICAgICBz
d2l0Y2ggKG1fc3RhdGUtPm1faW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSkgewpAQCAtMjAzLDgg
KzIxNiw2IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OmRyYXdTdXJmYWNlVG9Db250ZXh0
KGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29uc3QKICAgICAvLyBvZiB0aGUgc2NhbGUgc2lu
Y2UgdGhlIG9yaWdpbmFsIHdpZHRoIGFuZCBoZWlnaHQgbWlnaHQgYmUgbmVnYXRpdmUuCiAgICAg
ZmxvYXQgc2NhbGVYID0gc3RkOjpmYWJzKHNyY1JlY3Qud2lkdGgoKSAvIGRlc3RSZWN0LndpZHRo
KCkpOwogICAgIGZsb2F0IHNjYWxlWSA9IHN0ZDo6ZmFicyhzcmNSZWN0LmhlaWdodCgpIC8gZGVz
dFJlY3QuaGVpZ2h0KCkpOwotICAgIGZsb2F0IGxlZnRQYWRkaW5nID0gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KGV4cGFuZGVkU3JjUmVjdC54KCkpIC0gZmxvb3JmKHNyY1JlY3QueCgpKTsKLSAgICBmbG9h
dCB0b3BQYWRkaW5nID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGV4cGFuZGVkU3JjUmVjdC55KCkpIC0g
Zmxvb3JmKHNyY1JlY3QueSgpKTsKICAgICBjYWlyb19tYXRyaXhfdCBtYXRyaXggPSB7IHNjYWxl
WCwgMCwgMCwgc2NhbGVZLCBsZWZ0UGFkZGluZywgdG9wUGFkZGluZyB9OwogICAgIGNhaXJvX3Bh
dHRlcm5fc2V0X21hdHJpeChwYXR0ZXJuLmdldCgpLCAmbWF0cml4KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216980</attachid>
            <date>2013-11-14 14:25:55 -0800</date>
            <delta_ts>2013-11-14 14:36:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124209-20131114192553.patch</filename>
            <type>text/plain</type>
            <size>4385</size>
            <attacher name="Aloisio Almeida Jr">aloisio.almeida</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5Mjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRiMDFhYmQ0OTQ4ZTg0
OWYwY2Y1NDNhZjNiYmE5OGI3NzIzM2IwMC4uNDAwZWE4NWE0NDI4ZTUwZmQwNDYzMWU0ZDk5NTc4
NmU4MjEwNDBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTExLTE0ICBBbG9p
c2lvIEFsbWVpZGEgSnIgIDxhbG9pc2lvLmFsbWVpZGFAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBBdm9pZCBleHRyYSBjb3B5IHdoZW4gZHJhd2luZyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDIwOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHNvbHZlIHRoZSBidWcgIzU4MzA5IGEg
Y2Fpcm8gc3Vic3VyZmFjZSBpcyBiZWluZyB1c2VkIHRvIGxpbWl0IHRoZQorICAgICAgICBzb3Vy
Y2UgaW1hZ2UgYm91bmRhcmllcy4KKyAgICAgICAgSW4gbWFueSBjYXNlcywgd2hlbiBhIGNhaXJv
IHN1YnN1cmZhY2UgaXMgdXNlZCBmb3IgZHJhd2luZyBhbiBpbWFnZSwKKyAgICAgICAgaXQgb2Nj
dXJzIGFuIGltYWdlIGNvcHksIGNhdXNpbmcgcGVyZm9ybWFuY2UgcGVuYWx0eS4gSW4gdGhlIGNh
c2Ugb2YKKyAgICAgICAgdGhlIGZ1bmN0aW9uIFBsYXRmb3JtQ29udGV4dENhaXJvOjpkcmF3U3Vy
ZmFjZVRvQ29udGV4dCwgdGhlIGltYWdlCisgICAgICAgIGNvcHkgYWx3YXlzIGhhcHBlbnMuCisg
ICAgICAgIFNvLCB3ZSBzaG91bGQgdXNlIHRoZSBzdWJzdXJmYWNlIG9ubHkgd2hlbiBpdCdzIHJl
YWxseSBuZWNlc3NhcnkuCisgICAgICAgIEluIGNhc2VzIHdoZXJlIHdlJ3JlIGRyYXdpbmcgdGhl
IHdob2xlIGltYWdlLCB0aGUgc3Vic3VyZmFjZSBpcworICAgICAgICB1bm5lY2Vzc2FyeS4KKwor
ICAgICAgICBUaGUgcHJvcG9zZWQgcGF0Y2ggYXZvaWQgdGhlIHVzZSBvZiBzdWJzdXJmYWNlcyB3
aGVuIHNhbXBsaW5nIHRoZSB3aG9sZQorICAgICAgICBpbWFnZS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIEl0J3MgYW4gZW5oYW5jZW1lbnQuIEFscmVhZHkgY292ZXJlZCBieSBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4
dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpkcmF3
U3VyZmFjZVRvQ29udGV4dCk6CisKIDIwMTMtMTEtMTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFJTQVNTQS1QS0NTMS12MV81IHNpZ24v
dmVyaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKaW5kZXggYTY2OGZjMmRkN2M3NzRj
YzQzNjQwOGI1NDNhMzVhYjRhYmI0MGU5OC4uYTcyMTliZTI0NWM0OTA5OTQ4NTgxM2FhYzc5NmYw
MzY3ZThjMTE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcApAQCAtMTcyLDE0ICsx
NzIsMjUgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6ZHJhd1N1cmZhY2VUb0NvbnRleHQo
Y2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBjb25zdAogICAgICAgICBzcmNSZWN0LnNldEhlaWdo
dChzdGQ6OmZhYnMob3JpZ2luYWxTcmNSZWN0LmhlaWdodCgpKSk7CiAgICAgfQogCi0gICAgLy8g
Q2Fpcm8gc3Vic3VyZmFjZXMgZG9uJ3Qgc3VwcG9ydCBmbG9hdGluZyBwb2ludCBib3VuZGFyaWVz
IHdlbGwsIHNvIHdlIGV4cGFuZCB0aGUgcmVjdGFuZ2xlLgotICAgIEludFJlY3QgZXhwYW5kZWRT
cmNSZWN0KGVuY2xvc2luZ0ludFJlY3Qoc3JjUmVjdCkpOworICAgIGNhaXJvX3N1cmZhY2VfdCog
cGF0dGVyblN1cmZhY2UgPSBzdXJmYWNlOworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1
YnN1cmZhY2U7CisgICAgZmxvYXQgbGVmdFBhZGRpbmcgPSAwOworICAgIGZsb2F0IHRvcFBhZGRp
bmcgPSAwOworICAgIGlmIChzcmNSZWN0LngoKSB8fCBzcmNSZWN0LnkoKSB8fCBzcmNSZWN0LnNp
emUoKSA9PSBjYWlyb1N1cmZhY2VTaXplKHN1cmZhY2UpKSB7CisgICAgICAgIC8vIENhaXJvIHN1
YnN1cmZhY2VzIGRvbid0IHN1cHBvcnQgZmxvYXRpbmcgcG9pbnQgYm91bmRhcmllcyB3ZWxsLCBz
byB3ZSBleHBhbmQgdGhlIHJlY3RhbmdsZS4KKyAgICAgICAgSW50UmVjdCBleHBhbmRlZFNyY1Jl
Y3QoZW5jbG9zaW5nSW50UmVjdChzcmNSZWN0KSk7CisKKyAgICAgICAgLy8gV2UgdXNlIGEgc3Vi
c3VyZmFjZSBoZXJlIHNvIHRoYXQgd2UgZG9uJ3QgZW5kIHVwIHNhbXBsaW5nIG91dHNpZGUgdGhl
IG9yaWdpbmFsU3JjUmVjdCByZWN0YW5nbGUuCisgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgzMDkKKyAgICAgICAgc3Vic3VyZmFjZSA9IGFk
b3B0UmVmKGNhaXJvX3N1cmZhY2VfY3JlYXRlX2Zvcl9yZWN0YW5nbGUoc3VyZmFjZSwgZXhwYW5k
ZWRTcmNSZWN0LngoKSwKKyAgICAgICAgICAgIGV4cGFuZGVkU3JjUmVjdC55KCksIGV4cGFuZGVk
U3JjUmVjdC53aWR0aCgpLCBleHBhbmRlZFNyY1JlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgcGF0
dGVyblN1cmZhY2UgPSBzdWJzdXJmYWNlLmdldCgpOworCisgICAgICAgIGxlZnRQYWRkaW5nID0g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGV4cGFuZGVkU3JjUmVjdC54KCkpIC0gZmxvb3JmKHNyY1JlY3Qu
eCgpKTsKKyAgICAgICAgdG9wUGFkZGluZyA9IHN0YXRpY19jYXN0PGZsb2F0PihleHBhbmRlZFNy
Y1JlY3QueSgpKSAtIGZsb29yZihzcmNSZWN0LnkoKSk7CisgICAgfQogCi0gICAgLy8gV2UgdXNl
IGEgc3Vic3VyZmFjZSBoZXJlIHNvIHRoYXQgd2UgZG9uJ3QgZW5kIHVwIHNhbXBsaW5nIG91dHNp
ZGUgdGhlIG9yaWdpbmFsU3JjUmVjdCByZWN0YW5nbGUuCi0gICAgLy8gU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODMwOQotICAgIFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IHN1YnN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19zdXJmYWNlX2NyZWF0ZV9mb3JfcmVj
dGFuZ2xlKAotICAgICAgICBzdXJmYWNlLCBleHBhbmRlZFNyY1JlY3QueCgpLCBleHBhbmRlZFNy
Y1JlY3QueSgpLCBleHBhbmRlZFNyY1JlY3Qud2lkdGgoKSwgZXhwYW5kZWRTcmNSZWN0LmhlaWdo
dCgpKSk7Ci0gICAgUmVmUHRyPGNhaXJvX3BhdHRlcm5fdD4gcGF0dGVybiA9IGFkb3B0UmVmKGNh
aXJvX3BhdHRlcm5fY3JlYXRlX2Zvcl9zdXJmYWNlKHN1YnN1cmZhY2UuZ2V0KCkpKTsKKyAgICBS
ZWZQdHI8Y2Fpcm9fcGF0dGVybl90PiBwYXR0ZXJuID0gYWRvcHRSZWYoY2Fpcm9fcGF0dGVybl9j
cmVhdGVfZm9yX3N1cmZhY2UocGF0dGVyblN1cmZhY2UpKTsKIAogICAgIEFTU0VSVChtX3N0YXRl
KTsKICAgICBzd2l0Y2ggKG1fc3RhdGUtPm1faW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSkgewpA
QCAtMjAzLDggKzIxNCw2IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OmRyYXdTdXJmYWNl
VG9Db250ZXh0KGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29uc3QKICAgICAvLyBvZiB0aGUg
c2NhbGUgc2luY2UgdGhlIG9yaWdpbmFsIHdpZHRoIGFuZCBoZWlnaHQgbWlnaHQgYmUgbmVnYXRp
dmUuCiAgICAgZmxvYXQgc2NhbGVYID0gc3RkOjpmYWJzKHNyY1JlY3Qud2lkdGgoKSAvIGRlc3RS
ZWN0LndpZHRoKCkpOwogICAgIGZsb2F0IHNjYWxlWSA9IHN0ZDo6ZmFicyhzcmNSZWN0LmhlaWdo
dCgpIC8gZGVzdFJlY3QuaGVpZ2h0KCkpOwotICAgIGZsb2F0IGxlZnRQYWRkaW5nID0gc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KGV4cGFuZGVkU3JjUmVjdC54KCkpIC0gZmxvb3JmKHNyY1JlY3QueCgpKTsK
LSAgICBmbG9hdCB0b3BQYWRkaW5nID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGV4cGFuZGVkU3JjUmVj
dC55KCkpIC0gZmxvb3JmKHNyY1JlY3QueSgpKTsKICAgICBjYWlyb19tYXRyaXhfdCBtYXRyaXgg
PSB7IHNjYWxlWCwgMCwgMCwgc2NhbGVZLCBsZWZ0UGFkZGluZywgdG9wUGFkZGluZyB9OwogICAg
IGNhaXJvX3BhdHRlcm5fc2V0X21hdHJpeChwYXR0ZXJuLmdldCgpLCAmbWF0cml4KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216982</attachid>
            <date>2013-11-14 14:37:00 -0800</date>
            <delta_ts>2013-12-04 20:01:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124209-20131114193658.patch</filename>
            <type>text/plain</type>
            <size>4393</size>
            <attacher name="Aloisio Almeida Jr">aloisio.almeida</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5Mjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRiMDFhYmQ0OTQ4ZTg0
OWYwY2Y1NDNhZjNiYmE5OGI3NzIzM2IwMC4uZjk3NGVjNjIyNDBiOWE5NWQ1Mzk1MzZkYTI4MTgz
ZmQzOGUxZjM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTExLTE0ICBBbG9p
c2lvIEFsbWVpZGEgSnIgIDxhbG9pc2lvLmFsbWVpZGFAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBbQ2Fpcm9dIEF2b2lkIGV4dHJhIGNvcHkgd2hlbiBkcmF3aW5nIGltYWdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MjA5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gc29sdmUgdGhlIGJ1ZyAj
NTgzMDkgYSBjYWlybyBzdWJzdXJmYWNlIGlzIGJlaW5nIHVzZWQgdG8gbGltaXQgdGhlCisgICAg
ICAgIHNvdXJjZSBpbWFnZSBib3VuZGFyaWVzLgorICAgICAgICBJbiBtYW55IGNhc2VzLCB3aGVu
IGEgY2Fpcm8gc3Vic3VyZmFjZSBpcyB1c2VkIGZvciBkcmF3aW5nIGFuIGltYWdlLAorICAgICAg
ICBpdCBvY2N1cnMgYW4gaW1hZ2UgY29weSwgY2F1c2luZyBwZXJmb3JtYW5jZSBwZW5hbHR5LiBJ
biB0aGUgY2FzZSBvZgorICAgICAgICB0aGUgZnVuY3Rpb24gUGxhdGZvcm1Db250ZXh0Q2Fpcm86
OmRyYXdTdXJmYWNlVG9Db250ZXh0LCB0aGUgaW1hZ2UKKyAgICAgICAgY29weSBhbHdheXMgaGFw
cGVucy4KKyAgICAgICAgU28sIHdlIHNob3VsZCB1c2UgdGhlIHN1YnN1cmZhY2Ugb25seSB3aGVu
IGl0J3MgcmVhbGx5IG5lY2Vzc2FyeS4KKyAgICAgICAgSW4gY2FzZXMgd2hlcmUgd2UncmUgZHJh
d2luZyB0aGUgd2hvbGUgaW1hZ2UsIHRoZSBzdWJzdXJmYWNlIGlzCisgICAgICAgIHVubmVjZXNz
YXJ5LgorCisgICAgICAgIFRoZSBwcm9wb3NlZCBwYXRjaCBhdm9pZCB0aGUgdXNlIG9mIHN1YnN1
cmZhY2VzIHdoZW4gc2FtcGxpbmcgdGhlIHdob2xlCisgICAgICAgIGltYWdlLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gSXQncyBhbiBlbmhhbmNlbWVudC4gQWxyZWFkeSBjb3ZlcmVkIGJ5IGV4
aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZv
cm1Db250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fp
cm86OmRyYXdTdXJmYWNlVG9Db250ZXh0KToKKwogMjAxMy0xMS0xNCAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgUlNBU1NBLVBLQ1MxLXYx
XzUgc2lnbi92ZXJpZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcAppbmRleCBhNjY4ZmMy
ZGQ3Yzc3NGNjNDM2NDA4YjU0M2EzNWFiNGFiYjQwZTk4Li5hNzIxOWJlMjQ1YzQ5MDk5NDg1ODEz
YWFjNzk2ZjAzNjdlOGMxMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCkBAIC0x
NzIsMTQgKzE3MiwyNSBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpkcmF3U3VyZmFjZVRv
Q29udGV4dChjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGNvbnN0CiAgICAgICAgIHNyY1JlY3Qu
c2V0SGVpZ2h0KHN0ZDo6ZmFicyhvcmlnaW5hbFNyY1JlY3QuaGVpZ2h0KCkpKTsKICAgICB9CiAK
LSAgICAvLyBDYWlybyBzdWJzdXJmYWNlcyBkb24ndCBzdXBwb3J0IGZsb2F0aW5nIHBvaW50IGJv
dW5kYXJpZXMgd2VsbCwgc28gd2UgZXhwYW5kIHRoZSByZWN0YW5nbGUuCi0gICAgSW50UmVjdCBl
eHBhbmRlZFNyY1JlY3QoZW5jbG9zaW5nSW50UmVjdChzcmNSZWN0KSk7CisgICAgY2Fpcm9fc3Vy
ZmFjZV90KiBwYXR0ZXJuU3VyZmFjZSA9IHN1cmZhY2U7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4gc3Vic3VyZmFjZTsKKyAgICBmbG9hdCBsZWZ0UGFkZGluZyA9IDA7CisgICAgZmxvYXQg
dG9wUGFkZGluZyA9IDA7CisgICAgaWYgKHNyY1JlY3QueCgpIHx8IHNyY1JlY3QueSgpIHx8IHNy
Y1JlY3Quc2l6ZSgpID09IGNhaXJvU3VyZmFjZVNpemUoc3VyZmFjZSkpIHsKKyAgICAgICAgLy8g
Q2Fpcm8gc3Vic3VyZmFjZXMgZG9uJ3Qgc3VwcG9ydCBmbG9hdGluZyBwb2ludCBib3VuZGFyaWVz
IHdlbGwsIHNvIHdlIGV4cGFuZCB0aGUgcmVjdGFuZ2xlLgorICAgICAgICBJbnRSZWN0IGV4cGFu
ZGVkU3JjUmVjdChlbmNsb3NpbmdJbnRSZWN0KHNyY1JlY3QpKTsKKworICAgICAgICAvLyBXZSB1
c2UgYSBzdWJzdXJmYWNlIGhlcmUgc28gdGhhdCB3ZSBkb24ndCBlbmQgdXAgc2FtcGxpbmcgb3V0
c2lkZSB0aGUgb3JpZ2luYWxTcmNSZWN0IHJlY3RhbmdsZS4KKyAgICAgICAgLy8gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODMwOQorICAgICAgICBzdWJzdXJm
YWNlID0gYWRvcHRSZWYoY2Fpcm9fc3VyZmFjZV9jcmVhdGVfZm9yX3JlY3RhbmdsZShzdXJmYWNl
LCBleHBhbmRlZFNyY1JlY3QueCgpLAorICAgICAgICAgICAgZXhwYW5kZWRTcmNSZWN0LnkoKSwg
ZXhwYW5kZWRTcmNSZWN0LndpZHRoKCksIGV4cGFuZGVkU3JjUmVjdC5oZWlnaHQoKSkpOworICAg
ICAgICBwYXR0ZXJuU3VyZmFjZSA9IHN1YnN1cmZhY2UuZ2V0KCk7CisKKyAgICAgICAgbGVmdFBh
ZGRpbmcgPSBzdGF0aWNfY2FzdDxmbG9hdD4oZXhwYW5kZWRTcmNSZWN0LngoKSkgLSBmbG9vcmYo
c3JjUmVjdC54KCkpOworICAgICAgICB0b3BQYWRkaW5nID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGV4
cGFuZGVkU3JjUmVjdC55KCkpIC0gZmxvb3JmKHNyY1JlY3QueSgpKTsKKyAgICB9CiAKLSAgICAv
LyBXZSB1c2UgYSBzdWJzdXJmYWNlIGhlcmUgc28gdGhhdCB3ZSBkb24ndCBlbmQgdXAgc2FtcGxp
bmcgb3V0c2lkZSB0aGUgb3JpZ2luYWxTcmNSZWN0IHJlY3RhbmdsZS4KLSAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MzA5Ci0gICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gc3Vic3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX3N1cmZhY2VfY3JlYXRl
X2Zvcl9yZWN0YW5nbGUoCi0gICAgICAgIHN1cmZhY2UsIGV4cGFuZGVkU3JjUmVjdC54KCksIGV4
cGFuZGVkU3JjUmVjdC55KCksIGV4cGFuZGVkU3JjUmVjdC53aWR0aCgpLCBleHBhbmRlZFNyY1Jl
Y3QuaGVpZ2h0KCkpKTsKLSAgICBSZWZQdHI8Y2Fpcm9fcGF0dGVybl90PiBwYXR0ZXJuID0gYWRv
cHRSZWYoY2Fpcm9fcGF0dGVybl9jcmVhdGVfZm9yX3N1cmZhY2Uoc3Vic3VyZmFjZS5nZXQoKSkp
OworICAgIFJlZlB0cjxjYWlyb19wYXR0ZXJuX3Q+IHBhdHRlcm4gPSBhZG9wdFJlZihjYWlyb19w
YXR0ZXJuX2NyZWF0ZV9mb3Jfc3VyZmFjZShwYXR0ZXJuU3VyZmFjZSkpOwogCiAgICAgQVNTRVJU
KG1fc3RhdGUpOwogICAgIHN3aXRjaCAobV9zdGF0ZS0+bV9pbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KSB7CkBAIC0yMDMsOCArMjE0LDYgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6ZHJh
d1N1cmZhY2VUb0NvbnRleHQoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBjb25zdAogICAgIC8v
IG9mIHRoZSBzY2FsZSBzaW5jZSB0aGUgb3JpZ2luYWwgd2lkdGggYW5kIGhlaWdodCBtaWdodCBi
ZSBuZWdhdGl2ZS4KICAgICBmbG9hdCBzY2FsZVggPSBzdGQ6OmZhYnMoc3JjUmVjdC53aWR0aCgp
IC8gZGVzdFJlY3Qud2lkdGgoKSk7CiAgICAgZmxvYXQgc2NhbGVZID0gc3RkOjpmYWJzKHNyY1Jl
Y3QuaGVpZ2h0KCkgLyBkZXN0UmVjdC5oZWlnaHQoKSk7Ci0gICAgZmxvYXQgbGVmdFBhZGRpbmcg
PSBzdGF0aWNfY2FzdDxmbG9hdD4oZXhwYW5kZWRTcmNSZWN0LngoKSkgLSBmbG9vcmYoc3JjUmVj
dC54KCkpOwotICAgIGZsb2F0IHRvcFBhZGRpbmcgPSBzdGF0aWNfY2FzdDxmbG9hdD4oZXhwYW5k
ZWRTcmNSZWN0LnkoKSkgLSBmbG9vcmYoc3JjUmVjdC55KCkpOwogICAgIGNhaXJvX21hdHJpeF90
IG1hdHJpeCA9IHsgc2NhbGVYLCAwLCAwLCBzY2FsZVksIGxlZnRQYWRkaW5nLCB0b3BQYWRkaW5n
IH07CiAgICAgY2Fpcm9fcGF0dGVybl9zZXRfbWF0cml4KHBhdHRlcm4uZ2V0KCksICZtYXRyaXgp
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218485</attachid>
            <date>2013-12-04 20:01:56 -0800</date>
            <delta_ts>2013-12-05 08:09:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124209-20131205010155.patch</filename>
            <type>text/plain</type>
            <size>2781</size>
            <attacher name="Aloisio Almeida Jr">aloisio.almeida</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTYzZWQ0ZjNkMGVlYzNl
Yzg1NjNmYjU1NmYyNThkOWI2MDMyN2QzNi4uYTliYTgyNjM3ODYwNWYwMzhlN2NiNThhYmQ1OTMx
ZGYxNzQzYWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEyLTA0ICBBbG9p
c2lvIEFsbWVpZGEgSnIgIDxhbG9pc2lvLmFsbWVpZGFAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBbQ2Fpcm9dIEF2b2lkIGV4dHJhIGNvcHkgd2hlbiBkcmF3aW5nIGltYWdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MjA5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjb21taXQgYXBwbGll
cyBzb21lIGNoYW5nZXMgcHJvcG9zZWQgYWZ0ZXIgdGhlIG9yaWdpbmFsIHBhdGNoIGhhcworICAg
ICAgICBiZWVuIGxhbmRlZC4gSXQgZml4ZXMgdGhlIGxvZ2ljIHRvIGNyZWF0ZSB0aGUgc3Vic3Vy
ZmFjZSAoYXMgaXQgd2FzCisgICAgICAgIGludmVydGVkKS4gSXQgYWxzbyByZW1vdmUgYW4gdW5u
ZWNlc3NhcnkgUmVmUHRyIHZhcmlhYmxlIHRvIGhvbGQgdGhlCisgICAgICAgIHN1YnN1cmZhY2Uu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJdCdzIGFuIGVuaGFuY2VtZW50LiBBbHJlYWR5IGNv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bUNvbnRleHRDYWlybzo6ZHJhd1N1cmZhY2VUb0NvbnRleHQpOgorCiAyMDEzLTEyLTA0ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHBzZXVkbyBlbGVt
ZW50IGNvbnN0cnVjdGlvbiBvdXQgZnJvbSBFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWly
by5jcHAKaW5kZXggYTcyMTliZTI0NWM0OTA5OTQ4NTgxM2FhYzc5NmYwMzY3ZThjMTE4OS4uZDgy
NTBlNjc3YzJiMDE1YzA1YjY1NGE5NDUyM2I1Nzk2OGFmZmQ3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29u
dGV4dENhaXJvLmNwcApAQCAtMTczLDE4ICsxNzMsMTYgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRD
YWlybzo6ZHJhd1N1cmZhY2VUb0NvbnRleHQoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBjb25z
dAogICAgIH0KIAogICAgIGNhaXJvX3N1cmZhY2VfdCogcGF0dGVyblN1cmZhY2UgPSBzdXJmYWNl
OwotICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1YnN1cmZhY2U7CiAgICAgZmxvYXQgbGVm
dFBhZGRpbmcgPSAwOwogICAgIGZsb2F0IHRvcFBhZGRpbmcgPSAwOwotICAgIGlmIChzcmNSZWN0
LngoKSB8fCBzcmNSZWN0LnkoKSB8fCBzcmNSZWN0LnNpemUoKSA9PSBjYWlyb1N1cmZhY2VTaXpl
KHN1cmZhY2UpKSB7CisgICAgaWYgKHNyY1JlY3QueCgpIHx8IHNyY1JlY3QueSgpIHx8IHNyY1Jl
Y3Quc2l6ZSgpICE9IGNhaXJvU3VyZmFjZVNpemUoc3VyZmFjZSkpIHsKICAgICAgICAgLy8gQ2Fp
cm8gc3Vic3VyZmFjZXMgZG9uJ3Qgc3VwcG9ydCBmbG9hdGluZyBwb2ludCBib3VuZGFyaWVzIHdl
bGwsIHNvIHdlIGV4cGFuZCB0aGUgcmVjdGFuZ2xlLgogICAgICAgICBJbnRSZWN0IGV4cGFuZGVk
U3JjUmVjdChlbmNsb3NpbmdJbnRSZWN0KHNyY1JlY3QpKTsKIAogICAgICAgICAvLyBXZSB1c2Ug
YSBzdWJzdXJmYWNlIGhlcmUgc28gdGhhdCB3ZSBkb24ndCBlbmQgdXAgc2FtcGxpbmcgb3V0c2lk
ZSB0aGUgb3JpZ2luYWxTcmNSZWN0IHJlY3RhbmdsZS4KICAgICAgICAgLy8gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODMwOQotICAgICAgICBzdWJzdXJmYWNl
ID0gYWRvcHRSZWYoY2Fpcm9fc3VyZmFjZV9jcmVhdGVfZm9yX3JlY3RhbmdsZShzdXJmYWNlLCBl
eHBhbmRlZFNyY1JlY3QueCgpLAotICAgICAgICAgICAgZXhwYW5kZWRTcmNSZWN0LnkoKSwgZXhw
YW5kZWRTcmNSZWN0LndpZHRoKCksIGV4cGFuZGVkU3JjUmVjdC5oZWlnaHQoKSkpOwotICAgICAg
ICBwYXR0ZXJuU3VyZmFjZSA9IHN1YnN1cmZhY2UuZ2V0KCk7CisgICAgICAgIHBhdHRlcm5TdXJm
YWNlID0gY2Fpcm9fc3VyZmFjZV9jcmVhdGVfZm9yX3JlY3RhbmdsZShzdXJmYWNlLCBleHBhbmRl
ZFNyY1JlY3QueCgpLAorICAgICAgICAgICAgZXhwYW5kZWRTcmNSZWN0LnkoKSwgZXhwYW5kZWRT
cmNSZWN0LndpZHRoKCksIGV4cGFuZGVkU3JjUmVjdC5oZWlnaHQoKSk7CiAKICAgICAgICAgbGVm
dFBhZGRpbmcgPSBzdGF0aWNfY2FzdDxmbG9hdD4oZXhwYW5kZWRTcmNSZWN0LngoKSkgLSBmbG9v
cmYoc3JjUmVjdC54KCkpOwogICAgICAgICB0b3BQYWRkaW5nID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KGV4cGFuZGVkU3JjUmVjdC55KCkpIC0gZmxvb3JmKHNyY1JlY3QueSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218515</attachid>
            <date>2013-12-05 08:10:07 -0800</date>
            <delta_ts>2013-12-05 09:15:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124209-20131205131006.patch</filename>
            <type>text/plain</type>
            <size>3130</size>
            <attacher name="Aloisio Almeida Jr">aloisio.almeida</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ2M2JhODQ5YjBhMTlm
YTA4ZWE2NGVjOTliYzJkM2Y0M2UyNDQxMS4uMzA3NGJhOGFhOTYzZGIyZjFiMzQ5YTdiOGE2ODdk
ODUwZGM3YWFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEyLTA0ICBBbG9p
c2lvIEFsbWVpZGEgSnIgIDxhbG9pc2lvLmFsbWVpZGFAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBbQ2Fpcm9dIEF2b2lkIGV4dHJhIGNvcHkgd2hlbiBkcmF3aW5nIGltYWdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MjA5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjb21taXQgYXBwbGll
cyBzb21lIGNoYW5nZXMgcHJvcG9zZWQgYWZ0ZXIgdGhlIG9yaWdpbmFsIHBhdGNoIGhhcworICAg
ICAgICBiZWVuIGxhbmRlZC4gSXQgZml4ZXMgdGhlIGxvZ2ljIHRvIGNyZWF0ZSB0aGUgc3Vic3Vy
ZmFjZSAoYXMgaXQgd2FzCisgICAgICAgIGludmVydGVkKS4gSXQgYWxzbyByZW1vdmUgYW4gdW5u
ZWNlc3NhcnkgUmVmUHRyIHZhcmlhYmxlIHRvIGhvbGQgdGhlCisgICAgICAgIHN1YnN1cmZhY2Uu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJdCdzIGFuIGVuaGFuY2VtZW50LiBBbHJlYWR5IGNv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bUNvbnRleHRDYWlybzo6ZHJhd1N1cmZhY2VUb0NvbnRleHQpOgorCiAyMDEzLTEyLTA1ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBB
ZGQgbWlzc2luZyBzeW1ib2xzIHRvIFdlYktpdERPTURlcHJlY2F0ZWQuc3ltYm9scwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250
ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxh
dGZvcm1Db250ZXh0Q2Fpcm8uY3BwCmluZGV4IGE3MjE5YmUyNDVjNDkwOTk0ODU4MTNhYWM3OTZm
MDM2N2U4YzExODkuLmZjMmIyYjBmYzAxNGFkYWVjOTAwNzQzNGNlYmI3YzAwZWNkZWM5NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3Jt
Q29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKQEAgLTE3MiwyNSArMTcyLDIzIEBAIHZvaWQg
UGxhdGZvcm1Db250ZXh0Q2Fpcm86OmRyYXdTdXJmYWNlVG9Db250ZXh0KGNhaXJvX3N1cmZhY2Vf
dCogc3VyZmFjZSwgY29uc3QKICAgICAgICAgc3JjUmVjdC5zZXRIZWlnaHQoc3RkOjpmYWJzKG9y
aWdpbmFsU3JjUmVjdC5oZWlnaHQoKSkpOwogICAgIH0KIAotICAgIGNhaXJvX3N1cmZhY2VfdCog
cGF0dGVyblN1cmZhY2UgPSBzdXJmYWNlOwotICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1
YnN1cmZhY2U7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gcGF0dGVyblN1cmZhY2UgPSBz
dXJmYWNlOwogICAgIGZsb2F0IGxlZnRQYWRkaW5nID0gMDsKICAgICBmbG9hdCB0b3BQYWRkaW5n
ID0gMDsKLSAgICBpZiAoc3JjUmVjdC54KCkgfHwgc3JjUmVjdC55KCkgfHwgc3JjUmVjdC5zaXpl
KCkgPT0gY2Fpcm9TdXJmYWNlU2l6ZShzdXJmYWNlKSkgeworICAgIGlmIChzcmNSZWN0LngoKSB8
fCBzcmNSZWN0LnkoKSB8fCBzcmNSZWN0LnNpemUoKSAhPSBjYWlyb1N1cmZhY2VTaXplKHN1cmZh
Y2UpKSB7CiAgICAgICAgIC8vIENhaXJvIHN1YnN1cmZhY2VzIGRvbid0IHN1cHBvcnQgZmxvYXRp
bmcgcG9pbnQgYm91bmRhcmllcyB3ZWxsLCBzbyB3ZSBleHBhbmQgdGhlIHJlY3RhbmdsZS4KICAg
ICAgICAgSW50UmVjdCBleHBhbmRlZFNyY1JlY3QoZW5jbG9zaW5nSW50UmVjdChzcmNSZWN0KSk7
CiAKICAgICAgICAgLy8gV2UgdXNlIGEgc3Vic3VyZmFjZSBoZXJlIHNvIHRoYXQgd2UgZG9uJ3Qg
ZW5kIHVwIHNhbXBsaW5nIG91dHNpZGUgdGhlIG9yaWdpbmFsU3JjUmVjdCByZWN0YW5nbGUuCiAg
ICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgz
MDkKLSAgICAgICAgc3Vic3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX3N1cmZhY2VfY3JlYXRlX2Zv
cl9yZWN0YW5nbGUoc3VyZmFjZSwgZXhwYW5kZWRTcmNSZWN0LngoKSwKKyAgICAgICAgcGF0dGVy
blN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19zdXJmYWNlX2NyZWF0ZV9mb3JfcmVjdGFuZ2xlKHN1
cmZhY2UsIGV4cGFuZGVkU3JjUmVjdC54KCksCiAgICAgICAgICAgICBleHBhbmRlZFNyY1JlY3Qu
eSgpLCBleHBhbmRlZFNyY1JlY3Qud2lkdGgoKSwgZXhwYW5kZWRTcmNSZWN0LmhlaWdodCgpKSk7
Ci0gICAgICAgIHBhdHRlcm5TdXJmYWNlID0gc3Vic3VyZmFjZS5nZXQoKTsKIAogICAgICAgICBs
ZWZ0UGFkZGluZyA9IHN0YXRpY19jYXN0PGZsb2F0PihleHBhbmRlZFNyY1JlY3QueCgpKSAtIGZs
b29yZihzcmNSZWN0LngoKSk7CiAgICAgICAgIHRvcFBhZGRpbmcgPSBzdGF0aWNfY2FzdDxmbG9h
dD4oZXhwYW5kZWRTcmNSZWN0LnkoKSkgLSBmbG9vcmYoc3JjUmVjdC55KCkpOwogICAgIH0KIAot
ICAgIFJlZlB0cjxjYWlyb19wYXR0ZXJuX3Q+IHBhdHRlcm4gPSBhZG9wdFJlZihjYWlyb19wYXR0
ZXJuX2NyZWF0ZV9mb3Jfc3VyZmFjZShwYXR0ZXJuU3VyZmFjZSkpOworICAgIFJlZlB0cjxjYWly
b19wYXR0ZXJuX3Q+IHBhdHRlcm4gPSBhZG9wdFJlZihjYWlyb19wYXR0ZXJuX2NyZWF0ZV9mb3Jf
c3VyZmFjZShwYXR0ZXJuU3VyZmFjZS5nZXQoKSkpOwogCiAgICAgQVNTRVJUKG1fc3RhdGUpOwog
ICAgIHN3aXRjaCAobV9zdGF0ZS0+bV9pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>