<?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>100164</bug_id>
          
          <creation_ts>2012-10-23 15:13:56 -0700</creation_ts>
          <short_desc>Pass on exif orientation from ImageSource when using the open-source image decoders</short_desc>
          <delta_ts>2012-10-24 19:06:09 -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>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>
          
          <blocked>100191</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nico Weber">thakis</reporter>
          <assigned_to name="Nico Weber">thakis</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>noel.gordon</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>749048</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-23 15:13:56 -0700</bug_when>
    <thetext>Pass on exif orientation from ImageSource when using the open-source image decoders</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749050</commentid>
    <comment_count>1</comment_count>
      <attachid>170248</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-23 15:19:18 -0700</bug_when>
    <thetext>Created attachment 170248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749054</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 15:23:44 -0700</bug_when>
    <thetext>Attachment 170248 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/rendering/RenderObject.cpp:2225:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749253</commentid>
    <comment_count>3</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-23 19:49:24 -0700</bug_when>
    <thetext>+noel.gordon fyi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749720</commentid>
    <comment_count>4</comment_count>
      <attachid>170248</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-10-24 09:02:07 -0700</bug_when>
    <thetext>Comment on attachment 170248
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        default). However, the feature needs port-specific modifications to
&gt; +        GraphicsContext (without this, webcore will use the rotated bounds but
&gt; +        draw the image as if it hadn&apos;t be rotated, resulting in squished
&gt; +        pixels), and most ports don&apos;t implement these yet -- so put
&gt; +        turning this on for image documents behind a port-specific #ifdef.

Were bugs filed about this?  Chromium didn&apos;t have the port-specific modifications you mention, yet I don&apos;t recall any chromium bugs about squished pixels.  Perhaps I&apos;m not understanding.

&gt; Source/WebCore/platform/graphics/ImageSource.cpp:110
&gt;  }

Good.

&gt; Source/WebCore/platform/graphics/ImageSource.cpp:122
&gt; +    if (!m_decoder)
&gt; +        return IntSize();
&gt; +
&gt; +    IntSize size = m_decoder-&gt;frameSizeAtIndex(index);
&gt; +    if ((shouldRespectOrientation == RespectImageOrientation) &amp;&amp; m_decoder-&gt;orientation().usesWidthAsHeight())
&gt; +        return IntSize(size.height(), size.width());
&gt;  
&gt; -    return m_decoder ? m_decoder-&gt;frameSizeAtIndex(index) : IntSize();
&gt; +    return size;
&gt;  }

m_decoder-&gt;frameSizeAtIndex(index) could return an empty IntSize, right?  Maybe write this function body as:

IntSize size = m_decoder ? m_decoder-&gt;frameSizeAtIndex(index) : IntSize();

if (shouldRespectOrientation == RespectImageOrientation &amp;&amp; orientationAtIndex(index).usesWidthAsHeight())
    return IntSize(size.height(), size.width());

return size;

&gt; Source/WebCore/platform/graphics/ImageSource.cpp:184
&gt; +    return m_decoder ? m_decoder-&gt;orientation() : ImageOrientation();

return m_decoder ? m_decoder-&gt;orientation() : DefaultImageOrientation;

&gt; Source/WebCore/platform/graphics/chromium/DeferredImageDecoder.cpp:156
&gt; +    return m_actualDecoder ? m_actualDecoder-&gt;orientation() : ImageOrientation();

return m_actualDecoder ? m_actualDecoder-&gt;orientation() : DefaultImageOrientation;

You should prefix this statement with:

// FIXME: Make this work with deferred image decoding.

&gt; Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:182
&gt; +    // The JPEG decoder looks at EXIF metadata.
&gt; +    // TODO: Possibly implement XMP and IPTC support.

If you renamed the function to readExifOrientation, the first comment would be redundant :)  The rename could happen in another patch.  The second comment should be a FIXME, but I&apos;m not sure this is a great place for it.  Drop it, or file a bug about it.

&gt; Source/WebCore/rendering/RenderObject.cpp:2226
&gt; +#endif

Use an if statement to avoid the style nit @2225</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749736</commentid>
    <comment_count>5</comment_count>
      <attachid>170414</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-24 09:18:39 -0700</bug_when>
    <thetext>Created attachment 170414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749738</commentid>
    <comment_count>6</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-24 09:19:20 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=170248&amp;action=review

&gt;&gt; Source/WebCore/ChangeLog:14
&gt;&gt; +        turning this on for image documents behind a port-specific #ifdef.
&gt; 
&gt; Were bugs filed about this?  Chromium didn&apos;t have the port-specific modifications you mention, yet I don&apos;t recall any chromium bugs about squished pixels.  Perhaps I&apos;m not understanding.

Before this CL, orientation was never set on images, so the bug wasn&apos;t visible. This CL keeps it that way. If you want to see the squishing, patch in this CL to trunk webkit, remove the ifdef, and look at a exif-rotated jpeg.

&gt;&gt; Source/WebCore/platform/graphics/ImageSource.cpp:122
&gt;&gt;  }
&gt; 
&gt; m_decoder-&gt;frameSizeAtIndex(index) could return an empty IntSize, right?  Maybe write this function body as:
&gt; 
&gt; IntSize size = m_decoder ? m_decoder-&gt;frameSizeAtIndex(index) : IntSize();
&gt; 
&gt; if (shouldRespectOrientation == RespectImageOrientation &amp;&amp; orientationAtIndex(index).usesWidthAsHeight())
&gt;     return IntSize(size.height(), size.width());
&gt; 
&gt; return size;

The current code is more similar to ImageSourceCG. Do you see a problem with the corrent code if frameSizeAtIndex() returns an empty size?

&gt;&gt; Source/WebCore/platform/graphics/ImageSource.cpp:184
&gt;&gt; +    return m_decoder ? m_decoder-&gt;orientation() : ImageOrientation();
&gt; 
&gt; return m_decoder ? m_decoder-&gt;orientation() : DefaultImageOrientation;

Done.

&gt;&gt; Source/WebCore/platform/graphics/chromium/DeferredImageDecoder.cpp:156
&gt;&gt; +    return m_actualDecoder ? m_actualDecoder-&gt;orientation() : ImageOrientation();
&gt; 
&gt; return m_actualDecoder ? m_actualDecoder-&gt;orientation() : DefaultImageOrientation;
&gt; 
&gt; You should prefix this statement with:
&gt; 
&gt; // FIXME: Make this work with deferred image decoding.

Done.

Re FIXME: Does it not already work? Why not?

&gt;&gt; Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:182
&gt;&gt; +    // TODO: Possibly implement XMP and IPTC support.
&gt; 
&gt; If you renamed the function to readExifOrientation, the first comment would be redundant :)  The rename could happen in another patch.  The second comment should be a FIXME, but I&apos;m not sure this is a great place for it.  Drop it, or file a bug about it.

Changed to FIXME

&gt;&gt; Source/WebCore/rendering/RenderObject.cpp:2226
&gt;&gt; +#endif
&gt; 
&gt; Use an if statement to avoid the style nit @2225

I think the style nit isn&apos;t critical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749739</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 09:20:47 -0700</bug_when>
    <thetext>Attachment 170414 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/rendering/RenderObject.cpp:2225:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750052</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-24 14:37:03 -0700</bug_when>
    <thetext>Looks fine to me, but Noel may have further comments.  I think SYD is asleep right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750064</commentid>
    <comment_count>9</comment_count>
      <attachid>170414</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-24 14:42:14 -0700</bug_when>
    <thetext>Comment on attachment 170414
Patch

r=me.  Please consult with Noel before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750191</commentid>
    <comment_count>10</comment_count>
      <attachid>170506</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-24 16:31:56 -0700</bug_when>
    <thetext>Created attachment 170506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750197</commentid>
    <comment_count>11</comment_count>
      <attachid>170510</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-24 16:37:32 -0700</bug_when>
    <thetext>Created attachment 170510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750199</commentid>
    <comment_count>12</comment_count>
      <attachid>170511</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-24 16:38:50 -0700</bug_when>
    <thetext>Created attachment 170511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750209</commentid>
    <comment_count>13</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-10-24 16:49:34 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170248&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/ChangeLog:14
&gt; &gt;&gt; +        turning this on for image documents behind a port-specific #ifdef.
&gt; &gt; 
&gt; &gt; Were bugs filed about this?  Chromium didn&apos;t have the port-specific modifications you mention, yet I don&apos;t recall any chromium bugs about squished pixels.  Perhaps I&apos;m not understanding.
&gt; 
&gt; Before this CL, orientation was never set on images, so the bug wasn&apos;t visible. This CL keeps it that way. If you want to see the squishing, patch in this CL to trunk webkit, remove the ifdef, and look at a exif-rotated jpeg.


We need BitmapImage::draw modifications whichj we&apos;re fixing elsewhere. 

&gt; &gt;&gt; Source/WebCore/platform/graphics/ImageSource.cpp:122
&gt; &gt;&gt;  }
&gt; &gt; 
&gt; &gt; m_decoder-&gt;frameSizeAtIndex(index) could return an empty IntSize, right?  Maybe write this function body as:
&gt; &gt; 
&gt; &gt; IntSize size = m_decoder ? m_decoder-&gt;frameSizeAtIndex(index) : IntSize();
&gt; &gt; 
&gt; &gt; if (shouldRespectOrientation == RespectImageOrientation &amp;&amp; orientationAtIndex(index).usesWidthAsHeight())
&gt; &gt;     return IntSize(size.height(), size.width());
&gt; &gt; 
&gt; &gt; return size;
&gt; 
&gt; The current code is more similar to ImageSourceCG. Do you see a problem with the current code if frameSizeAtIndex() returns an empty size?

Nope.

 
&gt; &gt; // FIXME: Make this work with deferred image decoding.
&gt; 
&gt; Done.
&gt; Re FIXME: Does it not already work? Why not?

Because m_actualDecoder becomes NULL when deferred decoding starts.

 
&gt; &gt;&gt; Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:182
&gt; &gt;&gt; +    // TODO: Possibly implement XMP and IPTC support.
&gt; &gt; 
&gt; &gt; If you renamed the function to readExifOrientation, the first comment would be redundant :)  The rename could happen in another patch.  The second comment should be a FIXME, but I&apos;m not sure this is a great place for it.  Drop it, or file a bug about it.
&gt; 
&gt; Changed to FIXME
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/RenderObject.cpp:2226
&gt; &gt;&gt; +#endif
&gt; &gt; 
&gt; &gt; Use an if statement to avoid the style nit @2225
&gt; 
&gt; I think the style nit isn&apos;t critical.

Not critical but it makes noise for me and others.

I&apos;m fine with this patch though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750213</commentid>
    <comment_count>14</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-10-24 16:51:15 -0700</bug_when>
    <thetext>Lots of mid-air collisions while trying to say the above :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750249</commentid>
    <comment_count>15</comment_count>
      <attachid>170511</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 17:43:05 -0700</bug_when>
    <thetext>Comment on attachment 170511
Patch

Clearing flags on attachment: 170511

Committed r132433: &lt;http://trac.webkit.org/changeset/132433&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750250</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 17:43:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750299</commentid>
    <comment_count>17</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-10-24 19:06:09 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #6)
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170248&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/ChangeLog:14
&gt; &gt; &gt;&gt; +        turning this on for image documents behind a port-specific #ifdef.
&gt; &gt; &gt; 
&gt; &gt; &gt; Were bugs filed about this?  Chromium didn&apos;t have the port-specific modifications you mention, yet I don&apos;t recall any chromium bugs about squished pixels.  Perhaps I&apos;m not understanding.
&gt; &gt; 
&gt; &gt; Before this CL, orientation was never set on images, so the bug wasn&apos;t visible. This CL keeps it that way. If you want to see the squishing, patch in this CL to trunk webkit, remove the ifdef, and look at a exif-rotated jpeg.
&gt; 
&gt; We need BitmapImage::draw modifications which we&apos;re fixing elsewhere. 

And to be precise, since ImageSource now returns orientation on all ports, those without the BitmapImage::draw modifications will squish.  Hence the #ifdef.

The #ifdef is missing an || PLATFORM(CHROMIUM) fyi, so imageDocument orientation is not yet working on chromium.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170248</attachid>
            <date>2012-10-23 15:19:18 -0700</date>
            <delta_ts>2012-10-24 09:18:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100164-20121023151754.patch</filename>
            <type>text/plain</type>
            <size>7483</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQwNzNlMzVmMDU2MTc1
MzIyYjNiNGEyODUwNjQ0M2ZhOTQ3NzJjMS4uMjlmYjhlMWZiMDNkMjEyNTYzNmJjNmZhYjVjMjdh
M2I4YmFjYzgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTEwLTIzICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBQYXNzIG9uIGV4aWYgb3Jp
ZW50YXRpb24gZnJvbSBJbWFnZVNvdXJjZSB3aGVuIHVzaW5nIHRoZSBvcGVuLXNvdXJjZSBpbWFn
ZSBkZWNvZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAwMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIG9yaWVudGF0aW9uIGlzIGhvbm9yZWQgYWx3YXlzIGZvciBpbWFnZSBkb2N1bWVudHMs
IGFuZCBvcHRpb25hbGx5CisgICAgICAgIGZvciA8aW1nPiBlbGVtZW50cyBpZiBzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbiBpcyBzZXQgKG9mZiBieQorICAgICAgICBkZWZhdWx0KS4gSG93
ZXZlciwgdGhlIGZlYXR1cmUgbmVlZHMgcG9ydC1zcGVjaWZpYyBtb2RpZmljYXRpb25zIHRvCisg
ICAgICAgIEdyYXBoaWNzQ29udGV4dCAod2l0aG91dCB0aGlzLCB3ZWJjb3JlIHdpbGwgdXNlIHRo
ZSByb3RhdGVkIGJvdW5kcyBidXQKKyAgICAgICAgZHJhdyB0aGUgaW1hZ2UgYXMgaWYgaXQgaGFk
bid0IGJlIHJvdGF0ZWQsIHJlc3VsdGluZyBpbiBzcXVpc2hlZAorICAgICAgICBwaXhlbHMpLCBh
bmQgbW9zdCBwb3J0cyBkb24ndCBpbXBsZW1lbnQgdGhlc2UgeWV0IC0tIHNvIHB1dAorICAgICAg
ICB0dXJuaW5nIHRoaXMgb24gZm9yIGltYWdlIGRvY3VtZW50cyBiZWhpbmQgYSBwb3J0LXNwZWNp
ZmljICNpZmRlZi4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4gT25j
ZSBpdCdzIGhvb2tlZCB1cCwgaXQgd2lsbCBiZSB0ZXN0ZWQKKyAgICAgICAgYnkgZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGVmZXJyZWRJbWFnZURlY29kZXI6Om9yaWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVy
cmVkSW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChEZWZlcnJlZEltYWdlRGVjb2Rlcik6CisgICAg
ICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnJlYWRJbWFnZU9yaWVudGF0aW9uKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOgorCisyMDEyLTEwLTIzICBOaWNvIFdlYmVy
ICA8dGhha2lzQGNocm9taXVtLm9yZz4KKwogICAgICAgICBJbiB0aGUgb3Blbi1zb3VyY2UganBl
ZyBkZWNvZGVyLCByZWFkIGltYWdlIG9yaWVudGF0aW9uIGZyb20gdGhlIGV4aWYgZGF0YQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMTQ0CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRl
eCBhYmZhNTk4OGI0MmJjNjkwZjdlYWJjOTUzZWViMDdkMDUzMDAzYzRjLi4xYTFlZTRlNDNmM2E2
YzUyZDUzZTIwZDAxNTQ1M2RjOTZmNThiNzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0xMDYsMjAgKzEwNiwxOSBAQCBib29s
IEltYWdlU291cmNlOjppc1NpemVBdmFpbGFibGUoKQogCiBJbnRTaXplIEltYWdlU291cmNlOjpz
aXplKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24p
IGNvbnN0CiB7Ci0gICAgLy8gVGhlIEpQRUcgYW5kIFRJRkYgZGVjb2RlcnMgbmVlZCB0byBiZSB0
YXVnaHQgaG93IHRvIHJlYWQgRVhJRiwgWE1QLCBvciBJUFRDIGRhdGEuCi0gICAgaWYgKHNob3Vs
ZFJlc3BlY3RPcmllbnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKLSAgICAgICAg
bm90SW1wbGVtZW50ZWQoKTsKLQotICAgIHJldHVybiBtX2RlY29kZXIgPyBtX2RlY29kZXItPnNp
emUoKSA6IEludFNpemUoKTsKKyAgICByZXR1cm4gZnJhbWVTaXplQXRJbmRleCgwLCBzaG91bGRS
ZXNwZWN0T3JpZW50YXRpb24pOwogfQogCiBJbnRTaXplIEltYWdlU291cmNlOjpmcmFtZVNpemVB
dEluZGV4KHNpemVfdCBpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJl
c3BlY3RPcmllbnRhdGlvbikgY29uc3QKIHsKLSAgICAvLyBUaGUgSlBFRyBhbmQgVElGRiBkZWNv
ZGVycyBuZWVkIHRvIGJlIHRhdWdodCBob3cgdG8gcmVhZCBFWElGLCBYTVAsIG9yIElQVEMgZGF0
YS4KLSAgICBpZiAoc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKQotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICghbV9kZWNvZGVyKQor
ICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgSW50U2l6ZSBzaXplID0gbV9kZWNvZGVy
LT5mcmFtZVNpemVBdEluZGV4KGluZGV4KTsKKyAgICBpZiAoKHNob3VsZFJlc3BlY3RPcmllbnRh
dGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgJiYgbV9kZWNvZGVyLT5vcmllbnRhdGlv
bigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisgICAgICAgIHJldHVybiBJbnRTaXplKHNpemUuaGVp
Z2h0KCksIHNpemUud2lkdGgoKSk7CiAKLSAgICByZXR1cm4gbV9kZWNvZGVyID8gbV9kZWNvZGVy
LT5mcmFtZVNpemVBdEluZGV4KGluZGV4KSA6IEludFNpemUoKTsKKyAgICByZXR1cm4gc2l6ZTsK
IH0KIAogYm9vbCBJbWFnZVNvdXJjZTo6Z2V0SG90U3BvdChJbnRQb2ludCYpIGNvbnN0CkBAIC0x
ODIsOSArMTgxLDcgQEAgZmxvYXQgSW1hZ2VTb3VyY2U6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNp
emVfdCBpbmRleCkKIAogSW1hZ2VPcmllbnRhdGlvbiBJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25B
dEluZGV4KHNpemVfdCkgY29uc3QKIHsKLSAgICAvLyBUaGUgSlBFRyBhbmQgVElGRiBkZWNvZGVy
cyBuZWVkIHRvIGJlIHRhdWdodCBob3cgdG8gcmVhZCBFWElGLCBYTVAsIG9yIElQVEMgZGF0YS4K
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlv
bjsKKyAgICByZXR1cm4gbV9kZWNvZGVyID8gbV9kZWNvZGVyLT5vcmllbnRhdGlvbigpIDogSW1h
Z2VPcmllbnRhdGlvbigpOwogfQogCiBib29sIEltYWdlU291cmNlOjpmcmFtZUhhc0FscGhhQXRJ
bmRleChzaXplX3QgaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5jcHAKaW5k
ZXggNzU3NDE5NmU3MWFkYjQxMzE1Y2RiM2NiNzU2MmVhMDBhZjAxNjg1YS4uODQ4ZDhlZWU5MjA0
NGMxNjliYzM1MTdiMDc0YmE5YmU1MmE2ZDhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VE
ZWNvZGVyLmNwcApAQCAtMTUxLDQgKzE1MSw5IEBAIHVuc2lnbmVkIERlZmVycmVkSW1hZ2VEZWNv
ZGVyOjpmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
YWN0dWFsRGVjb2RlciA/IG1fYWN0dWFsRGVjb2Rlci0+ZnJhbWVCeXRlc0F0SW5kZXgoaW5kZXgp
IDogMDsKIH0KIAorSW1hZ2VPcmllbnRhdGlvbiBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6b3JpZW50
YXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2FjdHVhbERlY29kZXIgPyBtX2FjdHVhbERl
Y29kZXItPm9yaWVudGF0aW9uKCkgOiBJbWFnZU9yaWVudGF0aW9uKCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5oCmluZGV4IDZiMzNm
ZTM1ZTBlYzZiMzIxNWE5NDNkMjc2MTZmMGMzZDljMzhiZDMuLmQ4MmFlYzg3MmQwZjlmZWEyYjkw
ZDQ5OTljZTY4Y2NhN2NhY2I5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuaApA
QCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUo
c2l6ZV90KTsKICAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29u
c3Q7CiAgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdDsK
KyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgRGVmZXJyZWRJbWFnZURlY29kZXIoSW1hZ2VEZWNvZGVyKiBhY3R1YWxEZWNv
ZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCmluZGV4IDE0MTMzN2NmMDE4MDNi
NjEyM2Y1OTU3MmY5YWQzNzgwMjQ4NTEyMjcuLjU4YmQ0YTViNWQyZjhkNDQyMGM1NWFhY2U4N2Yz
OWVjODI3NjVhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcApAQCAtMTc4LDYg
KzE3OCw4IEBAIHN0YXRpYyBib29sIGNoZWNrRXhpZkhlYWRlcihqcGVnX3NhdmVkX21hcmtlcl9w
dHIgbWFya2VyLCBib29sJiBpc0JpZ0VuZGlhbiwgdW5zCiAKIHN0YXRpYyBJbWFnZU9yaWVudGF0
aW9uIHJlYWRJbWFnZU9yaWVudGF0aW9uKGpwZWdfZGVjb21wcmVzc19zdHJ1Y3QqIGluZm8pCiB7
CisgICAgLy8gVGhlIEpQRUcgZGVjb2RlciBsb29rcyBhdCBFWElGIG1ldGFkYXRhLgorICAgIC8v
IFRPRE86IFBvc3NpYmx5IGltcGxlbWVudCBYTVAgYW5kIElQVEMgc3VwcG9ydC4KICAgICBjb25z
dCB1bnNpZ25lZCBvcmllbnRhdGlvblRhZyA9IDB4MTEyOwogICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0VHlwZSA9IDM7CiAgICAgZm9yIChqcGVnX3NhdmVkX21hcmtlcl9wdHIgbWFya2VyID0gaW5m
by0+bWFya2VyX2xpc3Q7IG1hcmtlcjsgbWFya2VyID0gbWFya2VyLT5uZXh0KSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDMxOGExNDk3ZTAwNjI3ZDhj
NGIyZTg4N2FmNWQ5OGU5YTlhMGJjNTYuLjczOTgwMTAzMWVjODhkMjY3NTM5MDQyNDExNDNjMzJk
ZjhmYmRjMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBA
IC0yMjE5LDcgKzIyMTksMTIgQEAgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIFJlbmRlck9i
amVjdDo6c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSBjb25zdAogewogICAgIC8vIFJl
c3BlY3QgdGhlIGltYWdlJ3Mgb3JpZW50YXRpb24gaWYgaXQncyBiZWluZyB1c2VkIGFzIGEgZnVs
bC1wYWdlIGltYWdlIG9yIGl0J3MKICAgICAvLyBhbiA8aW1nPiBhbmQgdGhlIHNldHRpbmcgdG8g
cmVzcGVjdCBpdCBldmVyeXdoZXJlIGlzIHNldC4KLSAgICByZXR1cm4gZG9jdW1lbnQoKS0+aXNJ
bWFnZURvY3VtZW50KCkgfHwgKGRvY3VtZW50KCktPnNldHRpbmdzKCkgJiYgZG9jdW1lbnQoKS0+
c2V0dGluZ3MoKS0+c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSAmJiBub2RlKCkgJiYg
KG5vZGUoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZykgfHwgbm9kZSgpLT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6d2Via2l0SW5uZXJJbWFnZVRhZykpKSA/IFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uIDogRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsKKyAgICByZXR1cm4KKyNpZiBV
U0UoQ0cpCisgICAgICAgIC8vIFRoaXMgY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3IgcG9ydHMgd2hp
Y2ggaG9ub3IgdGhlIG9yaWVudGF0aW9uIGZsYWcgaW4gdGhlaXIgZHJhd2luZyBjb2RlLgorICAg
ICAgICBkb2N1bWVudCgpLT5pc0ltYWdlRG9jdW1lbnQoKSB8fAorI2VuZGlmCisgICAgICAgIChk
b2N1bWVudCgpLT5zZXR0aW5ncygpICYmIGRvY3VtZW50KCktPnNldHRpbmdzKCktPnNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgJiYgbm9kZSgpICYmIChub2RlKCktPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjppbWdUYWcpIHx8IG5vZGUoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OndlYmtp
dElubmVySW1hZ2VUYWcpKSkgPyBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA6IERvTm90UmVzcGVj
dEltYWdlT3JpZW50YXRpb247CiB9CiAKIGJvb2wgUmVuZGVyT2JqZWN0OjpoYXNPdXRsaW5lQW5u
b3RhdGlvbigpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170414</attachid>
            <date>2012-10-24 09:18:39 -0700</date>
            <delta_ts>2012-10-24 16:31:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100164-20121024091715.patch</filename>
            <type>text/plain</type>
            <size>7494</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQwNzNlMzVmMDU2MTc1
MzIyYjNiNGEyODUwNjQ0M2ZhOTQ3NzJjMS4uMjlmYjhlMWZiMDNkMjEyNTYzNmJjNmZhYjVjMjdh
M2I4YmFjYzgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTEwLTIzICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBQYXNzIG9uIGV4aWYgb3Jp
ZW50YXRpb24gZnJvbSBJbWFnZVNvdXJjZSB3aGVuIHVzaW5nIHRoZSBvcGVuLXNvdXJjZSBpbWFn
ZSBkZWNvZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAwMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIG9yaWVudGF0aW9uIGlzIGhvbm9yZWQgYWx3YXlzIGZvciBpbWFnZSBkb2N1bWVudHMs
IGFuZCBvcHRpb25hbGx5CisgICAgICAgIGZvciA8aW1nPiBlbGVtZW50cyBpZiBzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbiBpcyBzZXQgKG9mZiBieQorICAgICAgICBkZWZhdWx0KS4gSG93
ZXZlciwgdGhlIGZlYXR1cmUgbmVlZHMgcG9ydC1zcGVjaWZpYyBtb2RpZmljYXRpb25zIHRvCisg
ICAgICAgIEdyYXBoaWNzQ29udGV4dCAod2l0aG91dCB0aGlzLCB3ZWJjb3JlIHdpbGwgdXNlIHRo
ZSByb3RhdGVkIGJvdW5kcyBidXQKKyAgICAgICAgZHJhdyB0aGUgaW1hZ2UgYXMgaWYgaXQgaGFk
bid0IGJlIHJvdGF0ZWQsIHJlc3VsdGluZyBpbiBzcXVpc2hlZAorICAgICAgICBwaXhlbHMpLCBh
bmQgbW9zdCBwb3J0cyBkb24ndCBpbXBsZW1lbnQgdGhlc2UgeWV0IC0tIHNvIHB1dAorICAgICAg
ICB0dXJuaW5nIHRoaXMgb24gZm9yIGltYWdlIGRvY3VtZW50cyBiZWhpbmQgYSBwb3J0LXNwZWNp
ZmljICNpZmRlZi4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4gT25j
ZSBpdCdzIGhvb2tlZCB1cCwgaXQgd2lsbCBiZSB0ZXN0ZWQKKyAgICAgICAgYnkgZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGVmZXJyZWRJbWFnZURlY29kZXI6Om9yaWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVy
cmVkSW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChEZWZlcnJlZEltYWdlRGVjb2Rlcik6CisgICAg
ICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnJlYWRJbWFnZU9yaWVudGF0aW9uKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOgorCisyMDEyLTEwLTIzICBOaWNvIFdlYmVy
ICA8dGhha2lzQGNocm9taXVtLm9yZz4KKwogICAgICAgICBJbiB0aGUgb3Blbi1zb3VyY2UganBl
ZyBkZWNvZGVyLCByZWFkIGltYWdlIG9yaWVudGF0aW9uIGZyb20gdGhlIGV4aWYgZGF0YQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMTQ0CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRl
eCBhYmZhNTk4OGI0MmJjNjkwZjdlYWJjOTUzZWViMDdkMDUzMDAzYzRjLi41Njg1N2E0M2Y1NDg0
MjNlOGJkOTJkMzIyZDk2ZDgxMGMyYmI2NzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0xMDYsMjAgKzEwNiwxOSBAQCBib29s
IEltYWdlU291cmNlOjppc1NpemVBdmFpbGFibGUoKQogCiBJbnRTaXplIEltYWdlU291cmNlOjpz
aXplKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24p
IGNvbnN0CiB7Ci0gICAgLy8gVGhlIEpQRUcgYW5kIFRJRkYgZGVjb2RlcnMgbmVlZCB0byBiZSB0
YXVnaHQgaG93IHRvIHJlYWQgRVhJRiwgWE1QLCBvciBJUFRDIGRhdGEuCi0gICAgaWYgKHNob3Vs
ZFJlc3BlY3RPcmllbnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKLSAgICAgICAg
bm90SW1wbGVtZW50ZWQoKTsKLQotICAgIHJldHVybiBtX2RlY29kZXIgPyBtX2RlY29kZXItPnNp
emUoKSA6IEludFNpemUoKTsKKyAgICByZXR1cm4gZnJhbWVTaXplQXRJbmRleCgwLCBzaG91bGRS
ZXNwZWN0T3JpZW50YXRpb24pOwogfQogCiBJbnRTaXplIEltYWdlU291cmNlOjpmcmFtZVNpemVB
dEluZGV4KHNpemVfdCBpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJl
c3BlY3RPcmllbnRhdGlvbikgY29uc3QKIHsKLSAgICAvLyBUaGUgSlBFRyBhbmQgVElGRiBkZWNv
ZGVycyBuZWVkIHRvIGJlIHRhdWdodCBob3cgdG8gcmVhZCBFWElGLCBYTVAsIG9yIElQVEMgZGF0
YS4KLSAgICBpZiAoc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKQotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICghbV9kZWNvZGVyKQor
ICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgSW50U2l6ZSBzaXplID0gbV9kZWNvZGVy
LT5mcmFtZVNpemVBdEluZGV4KGluZGV4KTsKKyAgICBpZiAoKHNob3VsZFJlc3BlY3RPcmllbnRh
dGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgJiYgbV9kZWNvZGVyLT5vcmllbnRhdGlv
bigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisgICAgICAgIHJldHVybiBJbnRTaXplKHNpemUuaGVp
Z2h0KCksIHNpemUud2lkdGgoKSk7CiAKLSAgICByZXR1cm4gbV9kZWNvZGVyID8gbV9kZWNvZGVy
LT5mcmFtZVNpemVBdEluZGV4KGluZGV4KSA6IEludFNpemUoKTsKKyAgICByZXR1cm4gc2l6ZTsK
IH0KIAogYm9vbCBJbWFnZVNvdXJjZTo6Z2V0SG90U3BvdChJbnRQb2ludCYpIGNvbnN0CkBAIC0x
ODIsOSArMTgxLDcgQEAgZmxvYXQgSW1hZ2VTb3VyY2U6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNp
emVfdCBpbmRleCkKIAogSW1hZ2VPcmllbnRhdGlvbiBJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25B
dEluZGV4KHNpemVfdCkgY29uc3QKIHsKLSAgICAvLyBUaGUgSlBFRyBhbmQgVElGRiBkZWNvZGVy
cyBuZWVkIHRvIGJlIHRhdWdodCBob3cgdG8gcmVhZCBFWElGLCBYTVAsIG9yIElQVEMgZGF0YS4K
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlv
bjsKKyAgICByZXR1cm4gbV9kZWNvZGVyID8gbV9kZWNvZGVyLT5vcmllbnRhdGlvbigpIDogRGVm
YXVsdEltYWdlT3JpZW50YXRpb247CiB9CiAKIGJvb2wgSW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxw
aGFBdEluZGV4KHNpemVfdCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmNw
cAppbmRleCA3NTc0MTk2ZTcxYWRiNDEzMTVjZGIzY2I3NTYyZWEwMGFmMDE2ODVhLi43YTAxYzcx
ZTZlNDdmZDQzZTEwZDIwYTI4OWRiMDUxZTFlZGU1MDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJ
bWFnZURlY29kZXIuY3BwCkBAIC0xNTEsNCArMTUxLDkgQEAgdW5zaWduZWQgRGVmZXJyZWRJbWFn
ZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKICAgICByZXR1
cm4gbV9hY3R1YWxEZWNvZGVyID8gbV9hY3R1YWxEZWNvZGVyLT5mcmFtZUJ5dGVzQXRJbmRleChp
bmRleCkgOiAwOwogfQogCitJbWFnZU9yaWVudGF0aW9uIERlZmVycmVkSW1hZ2VEZWNvZGVyOjpv
cmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYWN0dWFsRGVjb2RlciA/IG1fYWN0
dWFsRGVjb2Rlci0+b3JpZW50YXRpb24oKSA6IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuaApp
bmRleCA2YjMzZmUzNWUwZWM2YjMyMTVhOTQzZDI3NjE2ZjBjM2Q5YzM4YmQzLi5kODJhZWM4NzJk
MGY5ZmVhMmI5MGQ0OTk5Y2U2OGNjYTdjYWNiOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VE
ZWNvZGVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJGcmFtZUJ1
ZmZlckNhY2hlKHNpemVfdCk7CiAgICAgYm9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3Qg
aW5kZXgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRl
eCkgY29uc3Q7CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0OwogCiBw
cml2YXRlOgogICAgIGV4cGxpY2l0IERlZmVycmVkSW1hZ2VEZWNvZGVyKEltYWdlRGVjb2Rlciog
YWN0dWFsRGVjb2Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAppbmRleCAxNDEz
MzdjZjAxODAzYjYxMjNmNTk1NzJmOWFkMzc4MDI0ODUxMjI3Li5hZmI0NDc1ZTJjZGU2ZjIxOTE3
NTE1MGYzODYzZjUyYmZmZjg0OTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAK
QEAgLTE3OCw2ICsxNzgsOCBAQCBzdGF0aWMgYm9vbCBjaGVja0V4aWZIZWFkZXIoanBlZ19zYXZl
ZF9tYXJrZXJfcHRyIG1hcmtlciwgYm9vbCYgaXNCaWdFbmRpYW4sIHVucwogCiBzdGF0aWMgSW1h
Z2VPcmllbnRhdGlvbiByZWFkSW1hZ2VPcmllbnRhdGlvbihqcGVnX2RlY29tcHJlc3Nfc3RydWN0
KiBpbmZvKQogeworICAgIC8vIFRoZSBKUEVHIGRlY29kZXIgbG9va3MgYXQgRVhJRiBtZXRhZGF0
YS4KKyAgICAvLyBGSVhNRTogUG9zc2libHkgaW1wbGVtZW50IFhNUCBhbmQgSVBUQyBzdXBwb3J0
LgogICAgIGNvbnN0IHVuc2lnbmVkIG9yaWVudGF0aW9uVGFnID0gMHgxMTI7CiAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnRUeXBlID0gMzsKICAgICBmb3IgKGpwZWdfc2F2ZWRfbWFya2VyX3B0ciBt
YXJrZXIgPSBpbmZvLT5tYXJrZXJfbGlzdDsgbWFya2VyOyBtYXJrZXIgPSBtYXJrZXItPm5leHQp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggMzE4YTE0
OTdlMDA2MjdkOGM0YjJlODg3YWY1ZDk4ZTlhOWEwYmM1Ni4uNzM5ODAxMDMxZWM4OGQyNjc1Mzkw
NDI0MTE0M2MzMmRmOGZiZGMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKQEAgLTIyMTksNyArMjIxOSwxMiBAQCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0gUmVuZGVyT2JqZWN0OjpzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpIGNvbnN0CiB7
CiAgICAgLy8gUmVzcGVjdCB0aGUgaW1hZ2UncyBvcmllbnRhdGlvbiBpZiBpdCdzIGJlaW5nIHVz
ZWQgYXMgYSBmdWxsLXBhZ2UgaW1hZ2Ugb3IgaXQncwogICAgIC8vIGFuIDxpbWc+IGFuZCB0aGUg
c2V0dGluZyB0byByZXNwZWN0IGl0IGV2ZXJ5d2hlcmUgaXMgc2V0LgotICAgIHJldHVybiBkb2N1
bWVudCgpLT5pc0ltYWdlRG9jdW1lbnQoKSB8fCAoZG9jdW1lbnQoKS0+c2V0dGluZ3MoKSAmJiBk
b2N1bWVudCgpLT5zZXR0aW5ncygpLT5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpICYm
IG5vZGUoKSAmJiAobm9kZSgpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSB8fCBub2Rl
KCktPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp3ZWJraXRJbm5lckltYWdlVGFnKSkpID8gUmVzcGVj
dEltYWdlT3JpZW50YXRpb24gOiBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uOworICAgIHJl
dHVybgorI2lmIFVTRShDRykKKyAgICAgICAgLy8gVGhpcyBjYW4gb25seSBiZSBlbmFibGVkIGZv
ciBwb3J0cyB3aGljaCBob25vciB0aGUgb3JpZW50YXRpb24gZmxhZyBpbiB0aGVpciBkcmF3aW5n
IGNvZGUuCisgICAgICAgIGRvY3VtZW50KCktPmlzSW1hZ2VEb2N1bWVudCgpIHx8CisjZW5kaWYK
KyAgICAgICAgKGRvY3VtZW50KCktPnNldHRpbmdzKCkgJiYgZG9jdW1lbnQoKS0+c2V0dGluZ3Mo
KS0+c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSAmJiBub2RlKCkgJiYgKG5vZGUoKS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZykgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKEhUTUxO
YW1lczo6d2Via2l0SW5uZXJJbWFnZVRhZykpKSA/IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIDog
RG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsKIH0KIAogYm9vbCBSZW5kZXJPYmplY3Q6Omhh
c091dGxpbmVBbm5vdGF0aW9uKCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170506</attachid>
            <date>2012-10-24 16:31:56 -0700</date>
            <delta_ts>2012-10-24 16:37:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100164-20121024163032.patch</filename>
            <type>text/plain</type>
            <size>16055</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhjZDVlZWQzMzAxMDJi
ZDU0NzQ0Mjg2MDBiMzQ4ZmQ5YTY3ODdjMy4uMmI1ODNhNzEwNzEyNzk3ZTViYmVjNGU2NjAyNWUz
MTRlMGNiNTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTEwLTI0ICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBQYXNzIG9uIGV4aWYgb3Jp
ZW50YXRpb24gZnJvbSBJbWFnZVNvdXJjZSB3aGVuIHVzaW5nIHRoZSBvcGVuLXNvdXJjZSBpbWFn
ZSBkZWNvZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAwMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAg
VGhlIG9yaWVudGF0aW9uIGlzIGhvbm9yZWQgYWx3YXlzIGZvciBpbWFnZSBkb2N1bWVudHMsIGFu
ZCBvcHRpb25hbGx5CisgICAgICAgIGZvciA8aW1nPiBlbGVtZW50cyBpZiBzaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbiBpcyBzZXQgKG9mZiBieQorICAgICAgICBkZWZhdWx0KS4gSG93ZXZl
ciwgdGhlIGZlYXR1cmUgbmVlZHMgcG9ydC1zcGVjaWZpYyBtb2RpZmljYXRpb25zIHRvCisgICAg
ICAgIEdyYXBoaWNzQ29udGV4dCAod2l0aG91dCB0aGlzLCB3ZWJjb3JlIHdpbGwgdXNlIHRoZSBy
b3RhdGVkIGJvdW5kcyBidXQKKyAgICAgICAgZHJhdyB0aGUgaW1hZ2UgYXMgaWYgaXQgaGFkbid0
IGJlIHJvdGF0ZWQsIHJlc3VsdGluZyBpbiBzcXVpc2hlZAorICAgICAgICBwaXhlbHMpLCBhbmQg
bW9zdCBwb3J0cyBkb24ndCBpbXBsZW1lbnQgdGhlc2UgeWV0IC0tIHNvIHB1dAorICAgICAgICB0
dXJuaW5nIHRoaXMgb24gZm9yIGltYWdlIGRvY3VtZW50cyBiZWhpbmQgYSBwb3J0LXNwZWNpZmlj
ICNpZmRlZi4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4gT25jZSBp
dCdzIGhvb2tlZCB1cCwgaXQgd2lsbCBiZSB0ZXN0ZWQKKyAgICAgICAgYnkgZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi5odG1sLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGVmZXJyZWRJbWFnZURlY29kZXI6Om9yaWVudGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVk
SW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChEZWZlcnJlZEltYWdlRGVjb2Rlcik6CisgICAgICAg
ICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnJlYWRJbWFnZU9yaWVudGF0aW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOgorCisyMDEyLTEwLTI0ICBOaWNvIFdlYmVyICA8
dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBIb25vciBpbWFnZSBvcmllbnRhdGlvbiBp
biBHcmFwaGljc0NvbnRleHRTa2lhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDAxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBbHNvIGZpeCBhIGJ1ZyBpbiBJbWFnZU9yaWVudGF0aW9uLmg6IFNvbWUg
b2YgdGhlIHZhbHVlcyB3ZXJlCisgICAgICAgIHN3aXRjaGVkLiBUaGV5IG5vdyBtYXRjaCB0aGUg
ZGVzY3JpcHRpb24gaW4gdGhlIGV4aWYgc3BlYyBhdAorICAgICAgICBodHRwOi8vd3d3LmV4aWYu
b3JnL0V4aWYyLTIuUERGIHBhZ2UgMTgsIGFuZCB0aGUgbm90ZXMgYXQKKyAgICAgICAgaHR0cDov
L3d3dy5zbm8ucGh5LnF1ZWVuc3UuY2EvfnBoaWwvZXhpZnRvb2wvVGFnTmFtZXMvRVhJRi5odG1s
IGFuZAorICAgICAgICB0aGUgcGljdHVyZSBhdCBodHRwOi8vd3d3Ljgwc2lkZWEuY29tL2FyY2hp
dmVzLzIzMTYuCisKKyAgICAgICAgVGhleSBzaG93ZWQgdXAgY29ycmVjdGx5IGluIFNhZmFyaSBi
ZWNhdXNlIHRoZSBvcmllbnRhdGlvbiB0cmFuc2Zvcm0KKyAgICAgICAgd2FzIGRvbmUgYWZ0ZXIg
ZmxpcHBpbmcgWS4gTGV0IHRoZSBmbGlwcGluZyBoYXBwZW4gbGF0ZXIuIEkgdmVyaWZpZWQKKyAg
ICAgICAgdGhhdCBmbGlwcGluZyB0cmFuc2Zvcm1hdGlvbiBvcmRlciBhbmQgZml4aW5nIHRoZSBl
eGlmIGVudW0gY2FuY2VsbGVkCisgICAgICAgIGVhY2ggb3RoZXIgb3V0LCBzbyB0aGlzIGhhcyBu
byBlZmZlY3Qgb24gdGhlIGFwcGxlIHBvcnQuCisKKyAgICAgICAgTm90IGhvb2tlZCB1cCB5ZXQs
IHNvIG5vIG9ic2VydmFibGUgZGlmZmVyZW5jZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmll
bnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6dXNlc1dpZHRo
QXNIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbjo6ZnJvbUVYSUZW
YWx1ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBhaW50U2tCaXRtYXApOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1h
Z2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMTAtMjQgIExldmkgV2VpbnRy
YXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeGluZyB0aGUgQ2hyb21pdW0g
YnVpbGQgYWZ0ZXIgdHlwbyBpbiByMTMyMzY3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggMjBiMzA4MWZiZmI5ZTYzMzUwZmI4MDlkNjI2
OTgxZTljYjNhZThmOS4uZjQ0OWZiYzFiMjk3Y2QzZjIxZDc5MmEzYTZhZTZmOTQ4OTZjMDAzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBA
IC0yMDQsNyArMjA0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkcmF3RnJhbWVN
YXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Q29tcG9zaXRlT3BlcmF0b3IpOwogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvcik7Ci0j
aWYgVVNFKENHKQorI2lmIFVTRShDRykgfHwgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgdmlydHVh
bCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKSBPVkVSUklERTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZU9yaWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9y
aWVudGF0aW9uLmgKaW5kZXggODZiZTVmZTc3YWJiZDk5YTBjYjJjYmE0YTY3OGU0N2NjZmU5NmQx
Ni4uMjQxMDYxODdhMzQwZDM3ODRmOGRkYmFhOGE3YzhlYzIwMzFlNzlhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaApAQCAt
MzYsMTMgKzM2LDEzIEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGVudW0gSW1hZ2VPcmllbnRhdGlvbkVu
dW0gewogICAgIC8vICJUb3BMZWZ0IiBtZWFucyB0aGF0IHRoZSAwIHJvdyBzdGFydHMgYXQgdGhl
IFRvcCwgdGhlIDAgY29sdW1uIHN0YXJ0cyBhdCB0aGUgTGVmdC4KICAgICBPcmlnaW5Ub3BMZWZ0
ID0gMSwgLy8gZGVmYXVsdAotICAgIE9yaWdpblRvcFJpZ2h0ID0gMiwgLy8gbWlycm9yIGFsb25n
IHktYXhlcworICAgIE9yaWdpblRvcFJpZ2h0ID0gMiwgLy8gbWlycm9yIGFsb25nIHktYXhpcwog
ICAgIE9yaWdpbkJvdHRvbVJpZ2h0ID0gMywgLy8gMTgwIGRlZ3JlZSByb3RhdGlvbgotICAgIE9y
aWdpbkJvdHRvbUxlZnQgPSA0LCAvLyBtaXJyb3IgYWxvbmcgdGhlIHgtYXhlcwotICAgIE9yaWdp
bkxlZnRUb3AgPSA1LCAvLyAtOTAgZGVncmVlIHJvdGF0aW9uICsgbWlycm9yIGFsb25nIHgtYXhl
cwotICAgIE9yaWdpblJpZ2h0VG9wID0gNiwgLy8gOTAgZGVncmVlIHJvdGF0aW9uCi0gICAgT3Jp
Z2luUmlnaHRCb3R0b20gPSA3LCAvLyA5MCBkZWdyZWUgcm90YXRpb24gKyBtaXJyb3IgYWxvbmcg
eC1heGVzCi0gICAgT3JpZ2luTGVmdEJvdHRvbSA9IDgsIC8vIC05MCBkZWdyZWUgcm90YXRpb24K
KyAgICBPcmlnaW5Cb3R0b21MZWZ0ID0gNCwgLy8gbWlycm9yIGFsb25nIHRoZSB4LWF4aXMKKyAg
ICBPcmlnaW5SaWdodEJvdHRvbSA9IDUsIC8vIG1pcnJvciBhbG9uZyB4LWF4aXMgKyAyNzAgZGVn
cmVlIENXIHJvdGF0aW9uCisgICAgT3JpZ2luTGVmdEJvdHRvbSA9IDYsIC8vIDkwIGRlZ3JlZSBD
VyByb3RhdGlvbgorICAgIE9yaWdpbkxlZnRUb3AgPSA3LCAvLyBtaXJyb3IgYWxvbmcgeC1heGlz
ICsgOTAgZGVncmVlIENXIHJvdGF0aW9uCisgICAgT3JpZ2luUmlnaHRUb3AgPSA4LCAvLyAyNzAg
ZGVncmVlIENXIHJvdGF0aW9uCiAgICAgLy8gQWxsIG90aGVyIHZhbHVlcyBhcmUgInJlc2VydmVk
IiBhcyBvZiBFWElGIDIuMgogICAgIERlZmF1bHRJbWFnZU9yaWVudGF0aW9uID0gT3JpZ2luVG9w
TGVmdCwKIH07CkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHVzZXNXaWR0aEFz
SGVpZ2h0KCkgY29uc3QKICAgICB7CiAgICAgICAgIC8vIFZhbHVlcyA1IHRocm91Z2ggOCBhbGwg
ZmxpcCB0aGUgd2lkdGgvaGVpZ2h0LgotICAgICAgICByZXR1cm4gbV9vcmllbnRhdGlvbiA+PSBP
cmlnaW5MZWZ0VG9wOworICAgICAgICByZXR1cm4gbV9vcmllbnRhdGlvbiA+PSBPcmlnaW5SaWdo
dEJvdHRvbTsKICAgICB9CiAKICAgICAvLyBJbWFnZU9yaWVudGF0aW9uRW51bSBjdXJyZW50bHkg
bWF0Y2hlcyBFWElGIHZhbHVlcywgaG93ZXZlciBjb2RlIG91dHNpZGUKQEAgLTcwLDcgKzcwLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBJbWFnZU9yaWVudGF0aW9uIGZyb21FWElGVmFsdWUoaW50
IGV4aWZWYWx1ZSkKICAgICB7CiAgICAgICAgIC8vIFZhbHVlcyBkaXJlY3QgZnJvbSBpbWFnZXMg
bWF5IGJlIGludmFsaWQsIGluIHdoaWNoIGNhc2Ugd2UgdXNlIHRoZSBkZWZhdWx0LgotICAgICAg
ICBpZiAoZXhpZlZhbHVlIDwgT3JpZ2luVG9wTGVmdCB8fCBleGlmVmFsdWUgPiBPcmlnaW5MZWZ0
Qm90dG9tKQorICAgICAgICBpZiAoZXhpZlZhbHVlIDwgT3JpZ2luVG9wTGVmdCB8fCBleGlmVmFs
dWUgPiBPcmlnaW5SaWdodFRvcCkKICAgICAgICAgICAgIHJldHVybiBEZWZhdWx0SW1hZ2VPcmll
bnRhdGlvbjsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEltYWdlT3JpZW50YXRpb25FbnVt
PihleGlmVmFsdWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmNwcAppbmRleCBhYmZhNTk4OGI0MmJjNjkwZjdlYWJjOTUzZWViMDdk
MDUzMDAzYzRjLi41Njg1N2E0M2Y1NDg0MjNlOGJkOTJkMzIyZDk2ZDgxMGMyYmI2NzlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBA
IC0xMDYsMjAgKzEwNiwxOSBAQCBib29sIEltYWdlU291cmNlOjppc1NpemVBdmFpbGFibGUoKQog
CiBJbnRTaXplIEltYWdlU291cmNlOjpzaXplKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBz
aG91bGRSZXNwZWN0T3JpZW50YXRpb24pIGNvbnN0CiB7Ci0gICAgLy8gVGhlIEpQRUcgYW5kIFRJ
RkYgZGVjb2RlcnMgbmVlZCB0byBiZSB0YXVnaHQgaG93IHRvIHJlYWQgRVhJRiwgWE1QLCBvciBJ
UFRDIGRhdGEuCi0gICAgaWYgKHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbiA9PSBSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbikKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLQotICAgIHJldHVybiBt
X2RlY29kZXIgPyBtX2RlY29kZXItPnNpemUoKSA6IEludFNpemUoKTsKKyAgICByZXR1cm4gZnJh
bWVTaXplQXRJbmRleCgwLCBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24pOwogfQogCiBJbnRTaXpl
IEltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCBpbmRleCwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKIHsKLSAgICAv
LyBUaGUgSlBFRyBhbmQgVElGRiBkZWNvZGVycyBuZWVkIHRvIGJlIHRhdWdodCBob3cgdG8gcmVh
ZCBFWElGLCBYTVAsIG9yIElQVEMgZGF0YS4KLSAgICBpZiAoc2hvdWxkUmVzcGVjdE9yaWVudGF0
aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQotICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIGlmICghbV9kZWNvZGVyKQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAg
SW50U2l6ZSBzaXplID0gbV9kZWNvZGVyLT5mcmFtZVNpemVBdEluZGV4KGluZGV4KTsKKyAgICBp
ZiAoKHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikg
JiYgbV9kZWNvZGVyLT5vcmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisgICAgICAg
IHJldHVybiBJbnRTaXplKHNpemUuaGVpZ2h0KCksIHNpemUud2lkdGgoKSk7CiAKLSAgICByZXR1
cm4gbV9kZWNvZGVyID8gbV9kZWNvZGVyLT5mcmFtZVNpemVBdEluZGV4KGluZGV4KSA6IEludFNp
emUoKTsKKyAgICByZXR1cm4gc2l6ZTsKIH0KIAogYm9vbCBJbWFnZVNvdXJjZTo6Z2V0SG90U3Bv
dChJbnRQb2ludCYpIGNvbnN0CkBAIC0xODIsOSArMTgxLDcgQEAgZmxvYXQgSW1hZ2VTb3VyY2U6
OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkKIAogSW1hZ2VPcmllbnRhdGlvbiBJ
bWFnZVNvdXJjZTo6b3JpZW50YXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QKIHsKLSAgICAvLyBU
aGUgSlBFRyBhbmQgVElGRiBkZWNvZGVycyBuZWVkIHRvIGJlIHRhdWdodCBob3cgdG8gcmVhZCBF
WElGLCBYTVAsIG9yIElQVEMgZGF0YS4KLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKKyAgICByZXR1cm4gbV9kZWNvZGVyID8gbV9kZWNv
ZGVyLT5vcmllbnRhdGlvbigpIDogRGVmYXVsdEltYWdlT3JpZW50YXRpb247CiB9CiAKIGJvb2wg
SW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENH
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmNwcAppbmRleCA2Y2VhY2UzNWQzMjJiMDkwZDczOWM4YzdlNjYzOGU2MmY0YWRjOGY1Li4x
Yzk2MmU3Yjc3Njg0NDA3YzU4Y2NlNWNiODhlM2ZiNGY2NWMyZGQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
Y3BwCkBAIC0zMjYsMTEgKzMyNiw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZl
SW1hZ2UoTmF0aXZlSW1hZ2VQdHIgaW1hZ2VQdHIsIGNvbnN0IEZsb2F0U2l6ZSYKIAogICAgIHNl
dFBsYXRmb3JtQ29tcG9zaXRlT3BlcmF0aW9uKG9wKTsKIAotICAgIC8vIEZsaXAgdGhlIGNvb3Jk
cy4KLSAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgYWRqdXN0ZWREZXN0UmVjdC54
KCksIGFkanVzdGVkRGVzdFJlY3QubWF4WSgpKTsKLSAgICBDR0NvbnRleHRTY2FsZUNUTShjb250
ZXh0LCAxLCAtMSk7Ci0gICAgYWRqdXN0ZWREZXN0UmVjdC5zZXRMb2NhdGlvbihGbG9hdFBvaW50
KCkpOwotCiAgICAgaWYgKG9yaWVudGF0aW9uICE9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uKSB7
CiAgICAgICAgIENHQ29udGV4dENvbmNhdENUTShjb250ZXh0LCBvcmllbnRhdGlvbi50cmFuc2Zv
cm1Gcm9tRGVmYXVsdChhZGp1c3RlZERlc3RSZWN0LnNpemUoKSkpOwogICAgICAgICBpZiAob3Jp
ZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSkgewpAQCAtMzQwLDYgKzMzNSwxMSBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKE5hdGl2ZUltYWdlUHRyIGltYWdlUHRy
LCBjb25zdCBGbG9hdFNpemUmCiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgLy8gRmxpcCB0
aGUgY29vcmRzLgorICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCBhZGp1c3RlZERl
c3RSZWN0LngoKSwgYWRqdXN0ZWREZXN0UmVjdC5tYXhZKCkpOworICAgIENHQ29udGV4dFNjYWxl
Q1RNKGNvbnRleHQsIDEsIC0xKTsKKyAgICBhZGp1c3RlZERlc3RSZWN0LnNldExvY2F0aW9uKEZs
b2F0UG9pbnQoKSk7CisKICAgICAvLyBBZGp1c3QgdGhlIGNvbG9yIHNwYWNlLgogICAgIGltYWdl
ID0gSW1hZ2U6OmltYWdlV2l0aENvbG9yU3BhY2UoaW1hZ2UuZ2V0KCksIHN0eWxlQ29sb3JTcGFj
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmNwcAppbmRleCA3NTc0MTk2ZTcx
YWRiNDEzMTVjZGIzY2I3NTYyZWEwMGFmMDE2ODVhLi5lOTQyNGRmYzUwZGVlYzNmZWMwNTQyM2Zh
Mjg5MzMwNTgyYTFjNmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwCkBA
IC0xNTEsNCArMTUxLDEwIEBAIHVuc2lnbmVkIERlZmVycmVkSW1hZ2VEZWNvZGVyOjpmcmFtZUJ5
dGVzQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYWN0dWFsRGVjb2Rl
ciA/IG1fYWN0dWFsRGVjb2Rlci0+ZnJhbWVCeXRlc0F0SW5kZXgoaW5kZXgpIDogMDsKIH0KIAor
SW1hZ2VPcmllbnRhdGlvbiBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6b3JpZW50YXRpb24oKSBjb25z
dAoreworICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgd29yayB3aXRoIGRlZmVycmVkIGRlY29kaW5n
LgorICAgIHJldHVybiBtX2FjdHVhbERlY29kZXIgPyBtX2FjdHVhbERlY29kZXItPm9yaWVudGF0
aW9uKCkgOiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRGVmZXJyZWRJbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmgKaW5kZXggNmIzM2ZlMzVlMGVjNmIz
MjE1YTk0M2QyNzYxNmYwYzNkOWMzOGJkMy4uZDgyYWVjODcyZDBmOWZlYTJiOTBkNDk5OWNlNjhj
Y2E3Y2FjYjkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5oCkBAIC01Niw2ICs1
Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRnJhbWVCdWZmZXJDYWNoZShzaXplX3QpOwog
ICAgIGJvb2wgZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdDsKICAgICB1
bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0OworICAgIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBEZWZlcnJlZEltYWdlRGVjb2RlcihJbWFnZURlY29kZXIqIGFjdHVhbERlY29kZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZVNraWEuY3Bw
CmluZGV4IGU1YTUyNDExZDIxOWY3ZGJiYjk4MGU2MGZkOWVhYzI3NjA4MDYzZmEuLmM1MWNiNmI4
N2NhNmVkZmY0NGIwZTk1NmMxMmUxMGRjNGNhMTQ2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAKQEAgLTM4OSw5ICszODks
OSBAQCBzdGF0aWMgdm9pZCBwYWludFNrQml0bWFwKFBsYXRmb3JtQ29udGV4dFNraWEqIHBsYXRm
b3JtQ29udGV4dCwgY29uc3QgTmF0aXZlSW1hZwogICAgIH0KIAogICAgIGlmIChyZXNhbXBsaW5n
ID09IFJFU0FNUExFX05PTkUpIHsKLSAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHRvIG5vdCBicmVh
ayB0ZXN0cyAoaXQgcmVzdWx0cyBpbiB0aGUgZmlsdGVyIGJpdG1hcCBmbGFnCi0gICAgICAvLyBi
ZWluZyBzZXQgdG8gdHJ1ZSkuIFdlIG5lZWQgdG8gZGVjaWRlIGlmIHdlIHJlc3BlY3QgUkVTQU1Q
TEVfTk9ORQotICAgICAgLy8gYmVpbmcgcmV0dXJuZWQgZnJvbSBjb21wdXRlUmVzYW1wbGluZ01v
ZGUuCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHRvIG5vdCBicmVhayB0ZXN0cyAoaXQgcmVz
dWx0cyBpbiB0aGUgZmlsdGVyIGJpdG1hcCBmbGFnCisgICAgICAgIC8vIGJlaW5nIHNldCB0byB0
cnVlKS4gV2UgbmVlZCB0byBkZWNpZGUgaWYgd2UgcmVzcGVjdCBSRVNBTVBMRV9OT05FCisgICAg
ICAgIC8vIGJlaW5nIHJldHVybmVkIGZyb20gY29tcHV0ZVJlc2FtcGxpbmdNb2RlLgogICAgICAg
ICByZXNhbXBsaW5nID0gUkVTQU1QTEVfTElORUFSOwogICAgIH0KICAgICByZXNhbXBsaW5nID0g
bGltaXRSZXNhbXBsaW5nTW9kZShwbGF0Zm9ybUNvbnRleHQsIHJlc2FtcGxpbmcpOwpAQCAtNTgy
LDggKzU4MiwxMiBAQCB2b2lkIEJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IoKQogICAg
IH0KIH0KIAotdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNv
bnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9y
IGNvbXBvc2l0ZU9wKQordm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKQorewor
ICAgIGRyYXcoY3R4dCwgZHN0UmVjdCwgc3JjUmVjdCwgY29sb3JTcGFjZSwgY29tcG9zaXRlT3As
IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworfQorCit2b2lkIEJpdG1hcEltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29tcG9zaXRlT3Bl
cmF0b3IgY29tcG9zaXRlT3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbikKIHsKICAgICBpZiAoIW1fc291cmNlLmluaXRpYWxpemVkKCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTYwMyw2ICs2MDcsMjEgQEAgdm9pZCBCaXRtYXBJbWFnZTo6
ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwKICAg
ICBpZiAobm9ybVNyY1JlY3QuaXNFbXB0eSgpIHx8IG5vcm1Ec3RSZWN0LmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOyAvLyBOb3RoaW5nIHRvIGRyYXcuCiAKKyAgICBJbWFnZU9yaWVudGF0aW9u
IG9yaWVudGF0aW9uID0gRGVmYXVsdEltYWdlT3JpZW50YXRpb247CisgICAgaWYgKHNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorICAgICAg
ICBvcmllbnRhdGlvbiA9IGZyYW1lT3JpZW50YXRpb25BdEluZGV4KG1fY3VycmVudEZyYW1lKTsK
KworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc2F2ZUNvbnRleHQoKmN0eHQsIGZhbHNl
KTsKKyAgICBpZiAob3JpZW50YXRpb24gIT0gRGVmYXVsdEltYWdlT3JpZW50YXRpb24pIHsKKyAg
ICAgICAgc2F2ZUNvbnRleHQuc2F2ZSgpOworICAgICAgICBjdHh0LT5jb25jYXRDVE0ob3JpZW50
YXRpb24udHJhbnNmb3JtRnJvbURlZmF1bHQobm9ybURzdFJlY3Quc2l6ZSgpKSk7CisgICAgICAg
IGlmIChvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpKSB7CisgICAgICAgICAgICAvLyBU
aGUgZGVzdGluYXRpb24gcmVjdCB3aWxsIGhhdmUgaXQncyB3aWR0aCBhbmQgaGVpZ2h0IGFscmVh
ZHkgcmV2ZXJzZWQgZm9yIHRoZSBvcmllbnRhdGlvbiBvZgorICAgICAgICAgICAgLy8gdGhlIGlt
YWdlLCBhcyBpdCB3YXMgbmVlZGVkIGZvciBwYWdlIGxheW91dCwgc28gd2UgbmVlZCB0byByZXZl
cnNlIGl0IGJhY2sgaGVyZS4KKyAgICAgICAgICAgIG5vcm1Ec3RSZWN0ID0gRmxvYXRSZWN0KG5v
cm1Ec3RSZWN0LngoKSwgbm9ybURzdFJlY3QueSgpLCBub3JtRHN0UmVjdC5oZWlnaHQoKSwgbm9y
bURzdFJlY3Qud2lkdGgoKSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBwYWludFNrQml0bWFw
KGN0eHQtPnBsYXRmb3JtQ29udGV4dCgpLAogICAgICAgICAqYm0sCiAgICAgICAgIG5vcm1TcmNS
ZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
anBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKaW5kZXggMTQxMzM3Y2YwMTgwM2I2
MTIzZjU5NTcyZjlhZDM3ODAyNDg1MTIyNy4uYWZiNDQ3NWUyY2RlNmYyMTkxNzUxNTBmMzg2M2Y1
MmJmZmY4NDk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCkBAIC0xNzgsNiAr
MTc4LDggQEAgc3RhdGljIGJvb2wgY2hlY2tFeGlmSGVhZGVyKGpwZWdfc2F2ZWRfbWFya2VyX3B0
ciBtYXJrZXIsIGJvb2wmIGlzQmlnRW5kaWFuLCB1bnMKIAogc3RhdGljIEltYWdlT3JpZW50YXRp
b24gcmVhZEltYWdlT3JpZW50YXRpb24oanBlZ19kZWNvbXByZXNzX3N0cnVjdCogaW5mbykKIHsK
KyAgICAvLyBUaGUgSlBFRyBkZWNvZGVyIGxvb2tzIGF0IEVYSUYgbWV0YWRhdGEuCisgICAgLy8g
RklYTUU6IFBvc3NpYmx5IGltcGxlbWVudCBYTVAgYW5kIElQVEMgc3VwcG9ydC4KICAgICBjb25z
dCB1bnNpZ25lZCBvcmllbnRhdGlvblRhZyA9IDB4MTEyOwogICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0VHlwZSA9IDM7CiAgICAgZm9yIChqcGVnX3NhdmVkX21hcmtlcl9wdHIgbWFya2VyID0gaW5m
by0+bWFya2VyX2xpc3Q7IG1hcmtlcjsgbWFya2VyID0gbWFya2VyLT5uZXh0KSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDMxOGExNDk3ZTAwNjI3ZDhj
NGIyZTg4N2FmNWQ5OGU5YTlhMGJjNTYuLmJmYTYwNzk2MTgwNGMwNTg3NzMwZTg3OTcyZTI5NGMy
OTE0NDQyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBA
IC0yMjE5LDcgKzIyMTksMTIgQEAgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIFJlbmRlck9i
amVjdDo6c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSBjb25zdAogewogICAgIC8vIFJl
c3BlY3QgdGhlIGltYWdlJ3Mgb3JpZW50YXRpb24gaWYgaXQncyBiZWluZyB1c2VkIGFzIGEgZnVs
bC1wYWdlIGltYWdlIG9yIGl0J3MKICAgICAvLyBhbiA8aW1nPiBhbmQgdGhlIHNldHRpbmcgdG8g
cmVzcGVjdCBpdCBldmVyeXdoZXJlIGlzIHNldC4KLSAgICByZXR1cm4gZG9jdW1lbnQoKS0+aXNJ
bWFnZURvY3VtZW50KCkgfHwgKGRvY3VtZW50KCktPnNldHRpbmdzKCkgJiYgZG9jdW1lbnQoKS0+
c2V0dGluZ3MoKS0+c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSAmJiBub2RlKCkgJiYg
KG5vZGUoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZykgfHwgbm9kZSgpLT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6d2Via2l0SW5uZXJJbWFnZVRhZykpKSA/IFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uIDogRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsKKyAgICByZXR1cm4KKyNpZiBV
U0UoQ0cpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQorICAgICAgICAvLyBUaGlzIGNhbiBvbmx5IGJl
IGVuYWJsZWQgZm9yIHBvcnRzIHdoaWNoIGhvbm9yIHRoZSBvcmllbnRhdGlvbiBmbGFnIGluIHRo
ZWlyIGRyYXdpbmcgY29kZS4KKyAgICAgICAgZG9jdW1lbnQoKS0+aXNJbWFnZURvY3VtZW50KCkg
fHwKKyNlbmRpZgorICAgICAgICAoZG9jdW1lbnQoKS0+c2V0dGluZ3MoKSAmJiBkb2N1bWVudCgp
LT5zZXR0aW5ncygpLT5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpICYmIG5vZGUoKSAm
JiAobm9kZSgpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSB8fCBub2RlKCktPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjp3ZWJraXRJbm5lckltYWdlVGFnKSkpID8gUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24gOiBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uOwogfQogCiBib29sIFJlbmRl
ck9iamVjdDo6aGFzT3V0bGluZUFubm90YXRpb24oKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170510</attachid>
            <date>2012-10-24 16:37:32 -0700</date>
            <delta_ts>2012-10-24 16:38:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100164-20121024163608.patch</filename>
            <type>text/plain</type>
            <size>7540</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA5YzZjMmRjNDlkZGM0
M2JlN2U0NTk5YmY3NDdmYzQzMWEyMmZmYy4uMmI1ODNhNzEwNzEyNzk3ZTViYmVjNGU2NjAyNWUz
MTRlMGNiNTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTEwLTI0ICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBQYXNzIG9uIGV4aWYgb3Jp
ZW50YXRpb24gZnJvbSBJbWFnZVNvdXJjZSB3aGVuIHVzaW5nIHRoZSBvcGVuLXNvdXJjZSBpbWFn
ZSBkZWNvZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAwMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAg
VGhlIG9yaWVudGF0aW9uIGlzIGhvbm9yZWQgYWx3YXlzIGZvciBpbWFnZSBkb2N1bWVudHMsIGFu
ZCBvcHRpb25hbGx5CisgICAgICAgIGZvciA8aW1nPiBlbGVtZW50cyBpZiBzaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbiBpcyBzZXQgKG9mZiBieQorICAgICAgICBkZWZhdWx0KS4gSG93ZXZl
ciwgdGhlIGZlYXR1cmUgbmVlZHMgcG9ydC1zcGVjaWZpYyBtb2RpZmljYXRpb25zIHRvCisgICAg
ICAgIEdyYXBoaWNzQ29udGV4dCAod2l0aG91dCB0aGlzLCB3ZWJjb3JlIHdpbGwgdXNlIHRoZSBy
b3RhdGVkIGJvdW5kcyBidXQKKyAgICAgICAgZHJhdyB0aGUgaW1hZ2UgYXMgaWYgaXQgaGFkbid0
IGJlIHJvdGF0ZWQsIHJlc3VsdGluZyBpbiBzcXVpc2hlZAorICAgICAgICBwaXhlbHMpLCBhbmQg
bW9zdCBwb3J0cyBkb24ndCBpbXBsZW1lbnQgdGhlc2UgeWV0IC0tIHNvIHB1dAorICAgICAgICB0
dXJuaW5nIHRoaXMgb24gZm9yIGltYWdlIGRvY3VtZW50cyBiZWhpbmQgYSBwb3J0LXNwZWNpZmlj
ICNpZmRlZi4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4gT25jZSBp
dCdzIGhvb2tlZCB1cCwgaXQgd2lsbCBiZSB0ZXN0ZWQKKyAgICAgICAgYnkgZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi5odG1sLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGVmZXJyZWRJbWFnZURlY29kZXI6Om9yaWVudGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVk
SW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChEZWZlcnJlZEltYWdlRGVjb2Rlcik6CisgICAgICAg
ICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnJlYWRJbWFnZU9yaWVudGF0aW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOgorCisyMDEyLTEwLTI0ICBOaWNvIFdlYmVyICA8
dGhha2lzQGNocm9taXVtLm9yZz4KKwogICAgICAgICBIb25vciBpbWFnZSBvcmllbnRhdGlvbiBp
biBHcmFwaGljc0NvbnRleHRTa2lhCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDAxNzkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IGFiZmE1OTg4YjQyYmM2OTBmN2VhYmM5NTNlZWIw
N2QwNTMwMDNjNGMuLjU2ODU3YTQzZjU0ODQyM2U4YmQ5MmQzMjJkOTZkODEwYzJiYjY3OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAK
QEAgLTEwNiwyMCArMTA2LDE5IEBAIGJvb2wgSW1hZ2VTb3VyY2U6OmlzU2l6ZUF2YWlsYWJsZSgp
CiAKIEludFNpemUgSW1hZ2VTb3VyY2U6OnNpemUoUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVt
IHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKIHsKLSAgICAvLyBUaGUgSlBFRyBhbmQg
VElGRiBkZWNvZGVycyBuZWVkIHRvIGJlIHRhdWdodCBob3cgdG8gcmVhZCBFWElGLCBYTVAsIG9y
IElQVEMgZGF0YS4KLSAgICBpZiAoc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKQotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotCi0gICAgcmV0dXJu
IG1fZGVjb2RlciA/IG1fZGVjb2Rlci0+c2l6ZSgpIDogSW50U2l6ZSgpOworICAgIHJldHVybiBm
cmFtZVNpemVBdEluZGV4KDAsIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbik7CiB9CiAKIEludFNp
emUgSW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uKSBjb25zdAogewotICAg
IC8vIFRoZSBKUEVHIGFuZCBUSUZGIGRlY29kZXJzIG5lZWQgdG8gYmUgdGF1Z2h0IGhvdyB0byBy
ZWFkIEVYSUYsIFhNUCwgb3IgSVBUQyBkYXRhLgotICAgIGlmIChzaG91bGRSZXNwZWN0T3JpZW50
YXRpb24gPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCi0gICAgICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgaWYgKCFtX2RlY29kZXIpCisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAg
ICBJbnRTaXplIHNpemUgPSBtX2RlY29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgpOworICAg
IGlmICgoc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KSAmJiBtX2RlY29kZXItPm9yaWVudGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkKKyAgICAg
ICAgcmV0dXJuIEludFNpemUoc2l6ZS5oZWlnaHQoKSwgc2l6ZS53aWR0aCgpKTsKIAotICAgIHJl
dHVybiBtX2RlY29kZXIgPyBtX2RlY29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgpIDogSW50
U2l6ZSgpOworICAgIHJldHVybiBzaXplOwogfQogCiBib29sIEltYWdlU291cmNlOjpnZXRIb3RT
cG90KEludFBvaW50JikgY29uc3QKQEAgLTE4Miw5ICsxODEsNyBAQCBmbG9hdCBJbWFnZVNvdXJj
ZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KQogCiBJbWFnZU9yaWVudGF0aW9u
IEltYWdlU291cmNlOjpvcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdAogewotICAgIC8v
IFRoZSBKUEVHIGFuZCBUSUZGIGRlY29kZXJzIG5lZWQgdG8gYmUgdGF1Z2h0IGhvdyB0byByZWFk
IEVYSUYsIFhNUCwgb3IgSVBUQyBkYXRhLgotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOworICAgIHJldHVybiBtX2RlY29kZXIgPyBtX2Rl
Y29kZXItPm9yaWVudGF0aW9uKCkgOiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKIH0KIAogYm9v
bCBJbWFnZVNvdXJjZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJ
bWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwCmluZGV4IDc1NzQxOTZlNzFhZGI0MTMxNWNkYjNj
Yjc1NjJlYTAwYWYwMTY4NWEuLmU5NDI0ZGZjNTBkZWVjM2ZlYzA1NDIzZmEyODkzMzA1ODJhMWM2
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0RlZmVycmVkSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5jcHAKQEAgLTE1MSw0ICsxNTEs
MTAgQEAgdW5zaWduZWQgRGVmZXJyZWRJbWFnZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNp
emVfdCBpbmRleCkgY29uc3QKICAgICByZXR1cm4gbV9hY3R1YWxEZWNvZGVyID8gbV9hY3R1YWxE
ZWNvZGVyLT5mcmFtZUJ5dGVzQXRJbmRleChpbmRleCkgOiAwOwogfQogCitJbWFnZU9yaWVudGF0
aW9uIERlZmVycmVkSW1hZ2VEZWNvZGVyOjpvcmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgLy8g
RklYTUU6IE1ha2UgdGhpcyB3b3JrIHdpdGggZGVmZXJyZWQgZGVjb2RpbmcuCisgICAgcmV0dXJu
IG1fYWN0dWFsRGVjb2RlciA/IG1fYWN0dWFsRGVjb2Rlci0+b3JpZW50YXRpb24oKSA6IERlZmF1
bHRJbWFnZU9yaWVudGF0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZElt
YWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
RGVmZXJyZWRJbWFnZURlY29kZXIuaAppbmRleCA2YjMzZmUzNWUwZWM2YjMyMTVhOTQzZDI3NjE2
ZjBjM2Q5YzM4YmQzLi5kODJhZWM4NzJkMGY5ZmVhMmI5MGQ0OTk5Y2U2OGNjYTdjYWNiOTFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZl
cnJlZEltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVfdCk7CiAgICAgYm9vbCBmcmFt
ZUhhc0FscGhhQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGZyYW1l
Qnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3Q7CisgICAgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbigpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERlZmVycmVkSW1h
Z2VEZWNvZGVyKEltYWdlRGVjb2RlciogYWN0dWFsRGVjb2Rlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1h
Z2VEZWNvZGVyLmNwcAppbmRleCAxNDEzMzdjZjAxODAzYjYxMjNmNTk1NzJmOWFkMzc4MDI0ODUx
MjI3Li5hZmI0NDc1ZTJjZGU2ZjIxOTE3NTE1MGYzODYzZjUyYmZmZjg0OTZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURl
Y29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pw
ZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKQEAgLTE3OCw2ICsxNzgsOCBAQCBzdGF0aWMgYm9vbCBj
aGVja0V4aWZIZWFkZXIoanBlZ19zYXZlZF9tYXJrZXJfcHRyIG1hcmtlciwgYm9vbCYgaXNCaWdF
bmRpYW4sIHVucwogCiBzdGF0aWMgSW1hZ2VPcmllbnRhdGlvbiByZWFkSW1hZ2VPcmllbnRhdGlv
bihqcGVnX2RlY29tcHJlc3Nfc3RydWN0KiBpbmZvKQogeworICAgIC8vIFRoZSBKUEVHIGRlY29k
ZXIgbG9va3MgYXQgRVhJRiBtZXRhZGF0YS4KKyAgICAvLyBGSVhNRTogUG9zc2libHkgaW1wbGVt
ZW50IFhNUCBhbmQgSVBUQyBzdXBwb3J0LgogICAgIGNvbnN0IHVuc2lnbmVkIG9yaWVudGF0aW9u
VGFnID0gMHgxMTI7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnRUeXBlID0gMzsKICAgICBmb3Ig
KGpwZWdfc2F2ZWRfbWFya2VyX3B0ciBtYXJrZXIgPSBpbmZvLT5tYXJrZXJfbGlzdDsgbWFya2Vy
OyBtYXJrZXIgPSBtYXJrZXItPm5leHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKaW5kZXggMzE4YTE0OTdlMDA2MjdkOGM0YjJlODg3YWY1ZDk4ZTlhOWEwYmM1
Ni4uYmZhNjA3OTYxODA0YzA1ODc3MzBlODc5NzJlMjk0YzI5MTQ0NDI2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTIyMTksNyArMjIxOSwxMiBAQCBS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gUmVuZGVyT2JqZWN0OjpzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gUmVzcGVjdCB0aGUgaW1hZ2UncyBvcmll
bnRhdGlvbiBpZiBpdCdzIGJlaW5nIHVzZWQgYXMgYSBmdWxsLXBhZ2UgaW1hZ2Ugb3IgaXQncwog
ICAgIC8vIGFuIDxpbWc+IGFuZCB0aGUgc2V0dGluZyB0byByZXNwZWN0IGl0IGV2ZXJ5d2hlcmUg
aXMgc2V0LgotICAgIHJldHVybiBkb2N1bWVudCgpLT5pc0ltYWdlRG9jdW1lbnQoKSB8fCAoZG9j
dW1lbnQoKS0+c2V0dGluZ3MoKSAmJiBkb2N1bWVudCgpLT5zZXR0aW5ncygpLT5zaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbigpICYmIG5vZGUoKSAmJiAobm9kZSgpLT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6aW1nVGFnKSB8fCBub2RlKCktPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp3ZWJraXRJ
bm5lckltYWdlVGFnKSkpID8gUmVzcGVjdEltYWdlT3JpZW50YXRpb24gOiBEb05vdFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uOworICAgIHJldHVybgorI2lmIFVTRShDRykgfHwgUExBVEZPUk0oQ0hS
T01JVU0pCisgICAgICAgIC8vIFRoaXMgY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3IgcG9ydHMgd2hp
Y2ggaG9ub3IgdGhlIG9yaWVudGF0aW9uIGZsYWcgaW4gdGhlaXIgZHJhd2luZyBjb2RlLgorICAg
ICAgICBkb2N1bWVudCgpLT5pc0ltYWdlRG9jdW1lbnQoKSB8fAorI2VuZGlmCisgICAgICAgIChk
b2N1bWVudCgpLT5zZXR0aW5ncygpICYmIGRvY3VtZW50KCktPnNldHRpbmdzKCktPnNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgJiYgbm9kZSgpICYmIChub2RlKCktPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjppbWdUYWcpIHx8IG5vZGUoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OndlYmtp
dElubmVySW1hZ2VUYWcpKSkgPyBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA6IERvTm90UmVzcGVj
dEltYWdlT3JpZW50YXRpb247CiB9CiAKIGJvb2wgUmVuZGVyT2JqZWN0OjpoYXNPdXRsaW5lQW5u
b3RhdGlvbigpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170511</attachid>
            <date>2012-10-24 16:38:50 -0700</date>
            <delta_ts>2012-10-24 17:43:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100164-20121024163727.patch</filename>
            <type>text/plain</type>
            <size>7518</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA5YzZjMmRjNDlkZGM0
M2JlN2U0NTk5YmY3NDdmYzQzMWEyMmZmYy4uMmI1ODNhNzEwNzEyNzk3ZTViYmVjNGU2NjAyNWUz
MTRlMGNiNTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTEwLTI0ICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBQYXNzIG9uIGV4aWYgb3Jp
ZW50YXRpb24gZnJvbSBJbWFnZVNvdXJjZSB3aGVuIHVzaW5nIHRoZSBvcGVuLXNvdXJjZSBpbWFn
ZSBkZWNvZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAwMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAg
VGhlIG9yaWVudGF0aW9uIGlzIGhvbm9yZWQgYWx3YXlzIGZvciBpbWFnZSBkb2N1bWVudHMsIGFu
ZCBvcHRpb25hbGx5CisgICAgICAgIGZvciA8aW1nPiBlbGVtZW50cyBpZiBzaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbiBpcyBzZXQgKG9mZiBieQorICAgICAgICBkZWZhdWx0KS4gSG93ZXZl
ciwgdGhlIGZlYXR1cmUgbmVlZHMgcG9ydC1zcGVjaWZpYyBtb2RpZmljYXRpb25zIHRvCisgICAg
ICAgIEdyYXBoaWNzQ29udGV4dCAod2l0aG91dCB0aGlzLCB3ZWJjb3JlIHdpbGwgdXNlIHRoZSBy
b3RhdGVkIGJvdW5kcyBidXQKKyAgICAgICAgZHJhdyB0aGUgaW1hZ2UgYXMgaWYgaXQgaGFkbid0
IGJlIHJvdGF0ZWQsIHJlc3VsdGluZyBpbiBzcXVpc2hlZAorICAgICAgICBwaXhlbHMpLCBhbmQg
bW9zdCBwb3J0cyBkb24ndCBpbXBsZW1lbnQgdGhlc2UgeWV0IC0tIHNvIHB1dAorICAgICAgICB0
dXJuaW5nIHRoaXMgb24gZm9yIGltYWdlIGRvY3VtZW50cyBiZWhpbmQgYSBwb3J0LXNwZWNpZmlj
ICNpZmRlZi4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4gT25jZSBp
dCdzIGhvb2tlZCB1cCwgaXQgd2lsbCBiZSB0ZXN0ZWQKKyAgICAgICAgYnkgZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi5odG1sLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGVmZXJyZWRJbWFnZURlY29kZXI6Om9yaWVudGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVk
SW1hZ2VEZWNvZGVyLmg6CisgICAgICAgIChEZWZlcnJlZEltYWdlRGVjb2Rlcik6CisgICAgICAg
ICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnJlYWRJbWFnZU9yaWVudGF0aW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOgorCisyMDEyLTEwLTI0ICBOaWNvIFdlYmVyICA8
dGhha2lzQGNocm9taXVtLm9yZz4KKwogICAgICAgICBIb25vciBpbWFnZSBvcmllbnRhdGlvbiBp
biBHcmFwaGljc0NvbnRleHRTa2lhCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDAxNzkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IGFiZmE1OTg4YjQyYmM2OTBmN2VhYmM5NTNlZWIw
N2QwNTMwMDNjNGMuLjU2ODU3YTQzZjU0ODQyM2U4YmQ5MmQzMjJkOTZkODEwYzJiYjY3OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAK
QEAgLTEwNiwyMCArMTA2LDE5IEBAIGJvb2wgSW1hZ2VTb3VyY2U6OmlzU2l6ZUF2YWlsYWJsZSgp
CiAKIEludFNpemUgSW1hZ2VTb3VyY2U6OnNpemUoUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVt
IHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKIHsKLSAgICAvLyBUaGUgSlBFRyBhbmQg
VElGRiBkZWNvZGVycyBuZWVkIHRvIGJlIHRhdWdodCBob3cgdG8gcmVhZCBFWElGLCBYTVAsIG9y
IElQVEMgZGF0YS4KLSAgICBpZiAoc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKQotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotCi0gICAgcmV0dXJu
IG1fZGVjb2RlciA/IG1fZGVjb2Rlci0+c2l6ZSgpIDogSW50U2l6ZSgpOworICAgIHJldHVybiBm
cmFtZVNpemVBdEluZGV4KDAsIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbik7CiB9CiAKIEludFNp
emUgSW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uKSBjb25zdAogewotICAg
IC8vIFRoZSBKUEVHIGFuZCBUSUZGIGRlY29kZXJzIG5lZWQgdG8gYmUgdGF1Z2h0IGhvdyB0byBy
ZWFkIEVYSUYsIFhNUCwgb3IgSVBUQyBkYXRhLgotICAgIGlmIChzaG91bGRSZXNwZWN0T3JpZW50
YXRpb24gPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCi0gICAgICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgaWYgKCFtX2RlY29kZXIpCisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAg
ICBJbnRTaXplIHNpemUgPSBtX2RlY29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgpOworICAg
IGlmICgoc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KSAmJiBtX2RlY29kZXItPm9yaWVudGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkKKyAgICAg
ICAgcmV0dXJuIEludFNpemUoc2l6ZS5oZWlnaHQoKSwgc2l6ZS53aWR0aCgpKTsKIAotICAgIHJl
dHVybiBtX2RlY29kZXIgPyBtX2RlY29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgpIDogSW50
U2l6ZSgpOworICAgIHJldHVybiBzaXplOwogfQogCiBib29sIEltYWdlU291cmNlOjpnZXRIb3RT
cG90KEludFBvaW50JikgY29uc3QKQEAgLTE4Miw5ICsxODEsNyBAQCBmbG9hdCBJbWFnZVNvdXJj
ZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KQogCiBJbWFnZU9yaWVudGF0aW9u
IEltYWdlU291cmNlOjpvcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdAogewotICAgIC8v
IFRoZSBKUEVHIGFuZCBUSUZGIGRlY29kZXJzIG5lZWQgdG8gYmUgdGF1Z2h0IGhvdyB0byByZWFk
IEVYSUYsIFhNUCwgb3IgSVBUQyBkYXRhLgotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOworICAgIHJldHVybiBtX2RlY29kZXIgPyBtX2Rl
Y29kZXItPm9yaWVudGF0aW9uKCkgOiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKIH0KIAogYm9v
bCBJbWFnZVNvdXJjZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJ
bWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwCmluZGV4IDc1NzQxOTZlNzFhZGI0MTMxNWNkYjNj
Yjc1NjJlYTAwYWYwMTY4NWEuLmU5NDI0ZGZjNTBkZWVjM2ZlYzA1NDIzZmEyODkzMzA1ODJhMWM2
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0RlZmVycmVkSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5jcHAKQEAgLTE1MSw0ICsxNTEs
MTAgQEAgdW5zaWduZWQgRGVmZXJyZWRJbWFnZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNp
emVfdCBpbmRleCkgY29uc3QKICAgICByZXR1cm4gbV9hY3R1YWxEZWNvZGVyID8gbV9hY3R1YWxE
ZWNvZGVyLT5mcmFtZUJ5dGVzQXRJbmRleChpbmRleCkgOiAwOwogfQogCitJbWFnZU9yaWVudGF0
aW9uIERlZmVycmVkSW1hZ2VEZWNvZGVyOjpvcmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgLy8g
RklYTUU6IE1ha2UgdGhpcyB3b3JrIHdpdGggZGVmZXJyZWQgZGVjb2RpbmcuCisgICAgcmV0dXJu
IG1fYWN0dWFsRGVjb2RlciA/IG1fYWN0dWFsRGVjb2Rlci0+b3JpZW50YXRpb24oKSA6IERlZmF1
bHRJbWFnZU9yaWVudGF0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZElt
YWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
RGVmZXJyZWRJbWFnZURlY29kZXIuaAppbmRleCA2YjMzZmUzNWUwZWM2YjMyMTVhOTQzZDI3NjE2
ZjBjM2Q5YzM4YmQzLi5kODJhZWM4NzJkMGY5ZmVhMmI5MGQ0OTk5Y2U2OGNjYTdjYWNiOTFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZl
cnJlZEltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVfdCk7CiAgICAgYm9vbCBmcmFt
ZUhhc0FscGhhQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGZyYW1l
Qnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3Q7CisgICAgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbigpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERlZmVycmVkSW1h
Z2VEZWNvZGVyKEltYWdlRGVjb2RlciogYWN0dWFsRGVjb2Rlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1h
Z2VEZWNvZGVyLmNwcAppbmRleCAxNDEzMzdjZjAxODAzYjYxMjNmNTk1NzJmOWFkMzc4MDI0ODUx
MjI3Li5hZmI0NDc1ZTJjZGU2ZjIxOTE3NTE1MGYzODYzZjUyYmZmZjg0OTZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURl
Y29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pw
ZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKQEAgLTE3OCw2ICsxNzgsOCBAQCBzdGF0aWMgYm9vbCBj
aGVja0V4aWZIZWFkZXIoanBlZ19zYXZlZF9tYXJrZXJfcHRyIG1hcmtlciwgYm9vbCYgaXNCaWdF
bmRpYW4sIHVucwogCiBzdGF0aWMgSW1hZ2VPcmllbnRhdGlvbiByZWFkSW1hZ2VPcmllbnRhdGlv
bihqcGVnX2RlY29tcHJlc3Nfc3RydWN0KiBpbmZvKQogeworICAgIC8vIFRoZSBKUEVHIGRlY29k
ZXIgbG9va3MgYXQgRVhJRiBtZXRhZGF0YS4KKyAgICAvLyBGSVhNRTogUG9zc2libHkgaW1wbGVt
ZW50IFhNUCBhbmQgSVBUQyBzdXBwb3J0LgogICAgIGNvbnN0IHVuc2lnbmVkIG9yaWVudGF0aW9u
VGFnID0gMHgxMTI7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnRUeXBlID0gMzsKICAgICBmb3Ig
KGpwZWdfc2F2ZWRfbWFya2VyX3B0ciBtYXJrZXIgPSBpbmZvLT5tYXJrZXJfbGlzdDsgbWFya2Vy
OyBtYXJrZXIgPSBtYXJrZXItPm5leHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKaW5kZXggMzE4YTE0OTdlMDA2MjdkOGM0YjJlODg3YWY1ZDk4ZTlhOWEwYmM1
Ni4uNzM5ODAxMDMxZWM4OGQyNjc1MzkwNDI0MTE0M2MzMmRmOGZiZGMwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTIyMTksNyArMjIxOSwxMiBAQCBS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gUmVuZGVyT2JqZWN0OjpzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gUmVzcGVjdCB0aGUgaW1hZ2UncyBvcmll
bnRhdGlvbiBpZiBpdCdzIGJlaW5nIHVzZWQgYXMgYSBmdWxsLXBhZ2UgaW1hZ2Ugb3IgaXQncwog
ICAgIC8vIGFuIDxpbWc+IGFuZCB0aGUgc2V0dGluZyB0byByZXNwZWN0IGl0IGV2ZXJ5d2hlcmUg
aXMgc2V0LgotICAgIHJldHVybiBkb2N1bWVudCgpLT5pc0ltYWdlRG9jdW1lbnQoKSB8fCAoZG9j
dW1lbnQoKS0+c2V0dGluZ3MoKSAmJiBkb2N1bWVudCgpLT5zZXR0aW5ncygpLT5zaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbigpICYmIG5vZGUoKSAmJiAobm9kZSgpLT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6aW1nVGFnKSB8fCBub2RlKCktPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp3ZWJraXRJ
bm5lckltYWdlVGFnKSkpID8gUmVzcGVjdEltYWdlT3JpZW50YXRpb24gOiBEb05vdFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uOworICAgIHJldHVybgorI2lmIFVTRShDRykKKyAgICAgICAgLy8gVGhp
cyBjYW4gb25seSBiZSBlbmFibGVkIGZvciBwb3J0cyB3aGljaCBob25vciB0aGUgb3JpZW50YXRp
b24gZmxhZyBpbiB0aGVpciBkcmF3aW5nIGNvZGUuCisgICAgICAgIGRvY3VtZW50KCktPmlzSW1h
Z2VEb2N1bWVudCgpIHx8CisjZW5kaWYKKyAgICAgICAgKGRvY3VtZW50KCktPnNldHRpbmdzKCkg
JiYgZG9jdW1lbnQoKS0+c2V0dGluZ3MoKS0+c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24o
KSAmJiBub2RlKCkgJiYgKG5vZGUoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZykgfHwg
bm9kZSgpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6d2Via2l0SW5uZXJJbWFnZVRhZykpKSA/IFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uIDogRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsKIH0K
IAogYm9vbCBSZW5kZXJPYmplY3Q6Omhhc091dGxpbmVBbm5vdGF0aW9uKCkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>