<?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>81954</bug_id>
          
          <creation_ts>2012-03-22 13:16:26 -0700</creation_ts>
          <short_desc>[Chromium] Using WebViewPlugins with --force-compositing-mode causes an ASSERT to fail</short_desc>
          <delta_ts>2012-03-26 17:09:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Fady Samuel">fsamuel</reporter>
          <assigned_to name="Fady Samuel">fsamuel</assigned_to>
          <cc>bauerb</cc>
    
    <cc>danakj</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>585623</commentid>
    <comment_count>0</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-22 13:16:26 -0700</bug_when>
    <thetext>Here is a stack trace:

#0  0x00007f2b3c1d5597 in WebCore::GraphicsLayer::~GraphicsLayer (this=0x7f2b2e8fc400, __in_chrg=&lt;optimized out&gt;) at ../../third_party/WebKit/Source/WebCore/platform/graphics/GraphicsLayer.cpp:99
#1  0x00007f2b3c1f7ad7 in WebCore::GraphicsLayerChromium::~GraphicsLayerChromium (this=0x7f2b2e8fc400, __in_chrg=&lt;optimized out&gt;) at ../../third_party/WebKit/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:107
#2  0x00007f2b3b576f08 in WTF::deleteOwnedPtr&lt;WebCore::GraphicsLayer&gt; (ptr=0x7f2b2e8fc400) at ../../third_party/WebKit/Source/JavaScriptCore/wtf/OwnPtrCommon.h:55
#3  0x00007f2b3b57e434 in WTF::OwnPtr&lt;WebCore::GraphicsLayer&gt;::clear (this=0x7f2b2e87c298) at ../../third_party/WebKit/Source/JavaScriptCore/wtf/OwnPtr.h:100
#4  0x00007f2b3b57e252 in WTF::OwnPtr&lt;WebCore::GraphicsLayer&gt;::operator= (this=0x7f2b2e87c298) at ../../third_party/WebKit/Source/JavaScriptCore/wtf/OwnPtr.h:73
#5  0x00007f2b3bbbd2b6 in WebCore::RenderLayerCompositor::destroyRootLayer (this=0x7f2b2e87c210) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:2021
#6  0x00007f2b3bbb68fb in WebCore::RenderLayerCompositor::enableCompositingMode (this=0x7f2b2e87c210, enable=false) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:184
#7  0x00007f2b3bbb906b in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x7f2b2e87c210, layer=0x7f2b2e8792d8, overlapMap=0x7fffbc3bc6a0, compositingState=..., layersChanged=@0x7fffbc3bc69c)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:856
#8  0x00007f2b3bbb70ec in WebCore::RenderLayerCompositor::updateCompositingLayers (this=0x7f2b2e87c210, updateType=WebCore::CompositingUpdateAfterLayoutOrStyleChange, updateRoot=0x7f2b2e8792d8)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:361
#9  0x00007f2b3c8de2a5 in WebCore::FrameView::updateCompositingLayers (this=0x7f2b2f90a700) at ../../third_party/WebKit/Source/WebCore/page/FrameView.cpp:646
#10 0x00007f2b3c8dfa35 in WebCore::FrameView::layout (this=0x7f2b2f90a700, allowSubtree=true) at ../../third_party/WebKit/Source/WebCore/page/FrameView.cpp:1128
#11 0x00007f2b3c8e6f89 in WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive (this=0x7f2b2f90a700) at ../../third_party/WebKit/Source/WebCore/page/FrameView.cpp:3079
#12 0x00007f2b3b5c1336 in WebKit::WebFrameImpl::layout (this=0x7f2b2e844a00) at ../../third_party/WebKit/Source/WebKit/chromium/src/WebFrameImpl.cpp:2053
#13 0x00007f2b3b61becd in WebKit::WebViewImpl::layout (this=0x7f2b320a7600) at ../../third_party/WebKit/Source/WebKit/chromium/src/WebViewImpl.cpp:1391
#14 0x00007f2b39d2d9cc in webkit::WebViewPlugin::paint (this=0x7f2b2e87a270, canvas=0x7f2b2f8e1c40, rect=...) at ../../webkit/plugins/webview_plugin.cc:140
#15 0x00007f2b3b5f9883 in WebKit::WebPluginContainerImpl::paint (this=0x7f2b2e827640, gc=0x7f2b2e896b40, damageRect=...) at ../../third_party/WebKit/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:138
#16 0x00007f2b3bc4de6a in WebCore::RenderWidget::paint (this=0x7f2b2e849b58, paintInfo=..., paintOffset=...) at ../../third_party/WebKit/Source/WebCore/rendering/RenderWidget.cpp:299
#17 0x00007f2b3bb5c1e7 in WebCore::RenderEmbeddedObject::paint (this=0x7f2b2e849b58, paintInfo=..., paintOffset=...) at ../../third_party/WebKit/Source/WebCore/rendering/RenderEmbeddedObject.cpp:156

The simplest solution seems to be to get rid of the ASSERT(!s_inPaintContents) in GraphicsLayer::~GraphicsLayer.

Is there a better solution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585657</commentid>
    <comment_count>1</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-22 13:45:36 -0700</bug_when>
    <thetext>This isn&apos;t really a crash, it&apos;s an ASSERT(). Debug only.

Why is a WebViewPlugin (what is that?) calling layout() during paint()? Why can&apos;t it layout its child when layout() is called on itself?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585664</commentid>
    <comment_count>2</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-22 13:53:48 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; This isn&apos;t really a crash, it&apos;s an ASSERT(). Debug only.
&gt; 

Yes, updated title to better represent this.

&gt; Why is a WebViewPlugin (what is that?) calling layout() during paint()? Why can&apos;t it layout its child when layout() is called on itself?

A WebViewPlugin is, more or less, what its name suggests, it&apos;s a PluginContainer holds a WebView. This is used for things like the &quot;Plugin not found&quot; box.

The crash is in WebKit but this is more of a chromium bug. Will post it there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585679</commentid>
    <comment_count>3</comment_count>
    <who name="Bernhard Bauer">bauerb</who>
    <bug_when>2012-03-22 14:12:31 -0700</bug_when>
    <thetext>To expand a bit, WebViewPlugin is a WebPlugin implementation that forwards drawing and input event handling to a separate WebView, to allow us to draw plug-in placeholders in HTML. The inner WebView is by design completely independent from the outer one (from the point of view of the outer one, it&apos;s just a plug-in), so it shouldn&apos;t be a problem that we call layout() on the inner one during paint() in the outer one. WebPlugin also doesn&apos;t have a layout() method, so we can&apos;t call layout() on the inner WebView when the outer one is being layouted.

Is the crash caused by the two RenderViews somehow sharing graphics layers? If so, maybe that&apos;s what we should prevent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585683</commentid>
    <comment_count>4</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-22 14:15:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; To expand a bit, WebViewPlugin is a WebPlugin implementation that forwards drawing and input event handling to a separate WebView, to allow us to draw plug-in placeholders in HTML. The inner WebView is by design completely independent from the outer one (from the point of view of the outer one, it&apos;s just a plug-in), so it shouldn&apos;t be a problem that we call layout() on the inner one during paint() in the outer one. WebPlugin also doesn&apos;t have a layout() method, so we can&apos;t call layout() on the inner WebView when the outer one is being layouted.
&gt; 
&gt; Is the crash caused by the two RenderViews somehow sharing graphics layers? If so, maybe that&apos;s what we should prevent.

The problem here is s_inPaintContents is a static variable that&apos;s shared between the two WebView instances. One WebView is painting while the other is laying out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585689</commentid>
    <comment_count>5</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-22 14:19:43 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; To expand a bit, WebViewPlugin is a WebPlugin implementation that forwards drawing and input event handling to a separate WebView, to allow us to draw plug-in placeholders in HTML. The inner WebView is by design completely independent from the outer one (from the point of view of the outer one, it&apos;s just a plug-in), so it shouldn&apos;t be a problem that we call layout() on the inner one during paint() in the outer one. WebPlugin also doesn&apos;t have a layout() method, so we can&apos;t call layout() on the inner WebView when the outer one is being layouted.
&gt; &gt; 
&gt; &gt; Is the crash caused by the two RenderViews somehow sharing graphics layers? If so, maybe that&apos;s what we should prevent.
&gt; 
&gt; The problem here is s_inPaintContents is a static variable that&apos;s shared between the two WebView instances. One WebView is painting while the other is laying out.

How important is it that we keep this assert? It would be nice to debug in force-compositing-mode and not occasionally fire this assert when there&apos;s an old or missing plugin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585697</commentid>
    <comment_count>6</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-22 14:24:28 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; To expand a bit, WebViewPlugin is a WebPlugin implementation that forwards drawing and input event handling to a separate WebView, to allow us to draw plug-in placeholders in HTML. The inner WebView is by design completely independent from the outer one (from the point of view of the outer one, it&apos;s just a plug-in), so it shouldn&apos;t be a problem that we call layout() on the inner one during paint() in the outer one. WebPlugin also doesn&apos;t have a layout() method, so we can&apos;t call layout() on the inner WebView when the outer one is being layouted.
&gt; &gt; 
&gt; &gt; Is the crash caused by the two RenderViews somehow sharing graphics layers? If so, maybe that&apos;s what we should prevent.
&gt; 
&gt; The problem here is s_inPaintContents is a static variable that&apos;s shared between the two WebView instances. One WebView is painting while the other is laying out.

Perhaps we can move this flag (which seems to be for debugging purposes only) to Page or some other &quot;one per WebView&quot; object?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585699</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-22 14:24:59 -0700</bug_when>
    <thetext>It&apos;s very important for the normal case where there&apos;s one compositing tree in the process and mutating it is a sign of either concurrent access from multiple threads (always bad) or something mutating layout inside a WebView while that WebView is being painted.

You could make this restriction per-WebView if you wanted isolation here.  I would not be OK with turning the ASSERT() off completely, it&apos;s helped us catch many other bugs.

Or just do layout inside the WebView at the same time inside the WebViewPlugin as outside the WebView if you are painting them in lockstep, which it appears from this callstack that you are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585820</commentid>
    <comment_count>8</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-22 16:01:26 -0700</bug_when>
    <thetext>Discussed this offline, here&apos;s my suggestion. What do you think James?

GraphicsLayer::~GraphicsLayer { m_client-&gt;verifyNotPainting() }

RenderLayerBacking::verifyNotPainting()
{
  ASSERT(!toRenderView(renderer())-&gt;frameView()-&gt;frame()-&gt;page()-&gt;isPainting());
}

RenderLayerBacking::paintContents() {
 toRenderView(renderer())-&gt;frameView()-&gt;frame()-&gt;page()-&gt;setIsPainting(true));
 ...
 toRenderView(renderer())-&gt;frameView()-&gt;frame()-&gt;page()-&gt;setIsPainting(false));
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586368</commentid>
    <comment_count>9</comment_count>
      <attachid>133492</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-23 08:53:03 -0700</bug_when>
    <thetext>Created attachment 133492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586369</commentid>
    <comment_count>10</comment_count>
      <attachid>133493</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-23 08:54:13 -0700</bug_when>
    <thetext>Created attachment 133493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586376</commentid>
    <comment_count>11</comment_count>
      <attachid>133493</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 09:04:45 -0700</bug_when>
    <thetext>Comment on attachment 133493
Patch

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

This seems like a good compromise to me, as long as renderer-&gt;frame and frame-&gt;page always exist! :)

&gt; Source/WebCore/page/Page.h:437
&gt; +#ifndef NDEBG

typo: NDEBUG

&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:91
&gt; +    if (m_client)
&gt; +        m_client-&gt;verifyNotPainting();

ifndef NDEBUG?

&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:97
&gt; +    if (m_client)
&gt; +        m_client-&gt;verifyNotPainting();

ifndef NDEBUG?

&gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:78
&gt; +    virtual void verifyNotPainting() { }

ifndef NDEBUG?

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1179
&gt; +    toRenderView(renderer())-&gt;frameView()-&gt;frame()-&gt;page()-&gt;setIsPainting(false);

should this be renderer()-&gt;frame()-&gt;page()-&gt; like below?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586405</commentid>
    <comment_count>12</comment_count>
      <attachid>133493</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-23 09:30:30 -0700</bug_when>
    <thetext>Comment on attachment 133493
Patch

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

&gt;&gt; Source/WebCore/page/Page.h:437
&gt;&gt; +#ifndef NDEBG
&gt; 
&gt; typo: NDEBUG

Thanks, fixed. Reuploading, but will do a sanity check by building release locally.

&gt;&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:91
&gt;&gt; +        m_client-&gt;verifyNotPainting();
&gt; 
&gt; ifndef NDEBUG?

Seems unnecessary? This will just do nothing.

&gt;&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:97
&gt;&gt; +        m_client-&gt;verifyNotPainting();
&gt; 
&gt; ifndef NDEBUG?

Unnecessary. This will just do nothing.

&gt;&gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:78
&gt;&gt; +    virtual void verifyNotPainting() { }
&gt; 
&gt; ifndef NDEBUG?

Is that necessary? One extra pointer in the vtable...

&gt;&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1179
&gt;&gt; +    toRenderView(renderer())-&gt;frameView()-&gt;frame()-&gt;page()-&gt;setIsPainting(false);
&gt; 
&gt; should this be renderer()-&gt;frame()-&gt;page()-&gt; like below?

Yup, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586425</commentid>
    <comment_count>13</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-23 09:36:26 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 133493 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133493&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/page/Page.h:437
&gt; &gt;&gt; +#ifndef NDEBG
&gt; &gt; 
&gt; &gt; typo: NDEBUG
&gt; 
&gt; Thanks, fixed. Reuploading, but will do a sanity check by building release locally.
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:91
&gt; &gt;&gt; +        m_client-&gt;verifyNotPainting();
&gt; &gt; 
&gt; &gt; ifndef NDEBUG?
&gt; 
&gt; Seems unnecessary? This will just do nothing.
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:97
&gt; &gt;&gt; +        m_client-&gt;verifyNotPainting();
&gt; &gt; 
&gt; &gt; ifndef NDEBUG?
&gt; 
&gt; Unnecessary. This will just do nothing.
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:78
&gt; &gt;&gt; +    virtual void verifyNotPainting() { }
&gt; &gt; 
&gt; &gt; ifndef NDEBUG?
&gt; 
&gt; Is that necessary? One extra pointer in the vtable...
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1179
&gt; &gt;&gt; +    toRenderView(renderer())-&gt;frameView()-&gt;frame()-&gt;page()-&gt;setIsPainting(false);
&gt; &gt; 
&gt; &gt; should this be renderer()-&gt;frame()-&gt;page()-&gt; like below?
&gt; 
&gt; Yup, thanks.

Nevermind, I&apos;ll guard calls in GraphicsLayer too. We probably don&apos;t want to do an extra virtual method call in GraphicsLayer construction/destruction on release builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586430</commentid>
    <comment_count>14</comment_count>
      <attachid>133504</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-23 09:40:36 -0700</bug_when>
    <thetext>Created attachment 133504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586464</commentid>
    <comment_count>15</comment_count>
      <attachid>133504</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 10:23:52 -0700</bug_when>
    <thetext>Comment on attachment 133504
Patch

lgtm. Does this work for you James?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586814</commentid>
    <comment_count>16</comment_count>
      <attachid>133504</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-23 15:38:39 -0700</bug_when>
    <thetext>Comment on attachment 133504
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:78
&gt; +    virtual void verifyNotPainting() { }

why is this not #ifndef NDEBUG guarded?

I think you need to document what this is or give it a better name, it&apos;s not very obvious what it means from the name along (what exactly is it verifying? what happens if the &quot;verification&quot; fails? who is it checking painting on - this client, or others?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586838</commentid>
    <comment_count>17</comment_count>
      <attachid>133580</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-23 16:05:16 -0700</bug_when>
    <thetext>Created attachment 133580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586839</commentid>
    <comment_count>18</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-03-23 16:05:39 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 133504 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133504&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:78
&gt; &gt; +    virtual void verifyNotPainting() { }
&gt; 
&gt; why is this not #ifndef NDEBUG guarded?
&gt; 
&gt; I think you need to document what this is or give it a better name, it&apos;s not very obvious what it means from the name along (what exactly is it verifying? what happens if the &quot;verification&quot; fails? who is it checking painting on - this client, or others?)

Done. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588269</commentid>
    <comment_count>19</comment_count>
      <attachid>133580</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 16:14:43 -0700</bug_when>
    <thetext>Comment on attachment 133580
Patch

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588337</commentid>
    <comment_count>20</comment_count>
      <attachid>133580</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-26 17:09:28 -0700</bug_when>
    <thetext>Comment on attachment 133580
Patch

Clearing flags on attachment: 133580

Committed r112178: &lt;http://trac.webkit.org/changeset/112178&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588338</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-26 17:09:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133492</attachid>
            <date>2012-03-23 08:53:03 -0700</date>
            <delta_ts>2012-03-23 08:54:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81954-20120323115301.patch</filename>
            <type>text/plain</type>
            <size>8513</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZkNDk1NGE5ZDM0YWY2
NzlhNjIzMzI5Y2EyMTVjZDU3ZTU1MTRmMi4uZTMyMDUzNTkzMmI4MWMxNzNiMTRiODFjNWNlNDRi
NjI0NTU0NDAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAzLTIzICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gVXNp
bmcgV2ViVmlld1BsdWdpbnMgd2l0aCAtLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUgY2F1c2VzIGFu
IEFTU0VSVCB0byBmYWlsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MTk1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEEgc3RhdGljIHZhcmlhYmxlIHNfaW5QYWludENvbnRlbnRzIGlzIHNldCB3aGVuIHBh
aW50aW5nLCBhbmQgaXQgZW5zdXJlcworICAgICAgICB0aGF0IHdlIGRvbid0IGRlbGV0ZSBHcmFw
aGljc0xheWVycyBvciBjcmVhdGUgR3JhcGhpY3NMYXllcnMgd2hpbGUgcGFpbnRpbmcuCisKKyAg
ICAgICAgSG93ZXZlciwgYmVjYXVzZSB0aGlzIHZhcmlhYmxlIGlzIHN0YXRpYywgaXQgZG9lcyBu
b3QgcGVybWl0IHRoZSBleGlzdGVuY2UKKyAgICAgICAgb2YgbXVsdGlwbGUgV2ViVmlld3MgaW4g
ZGlmZmVyZW50IHN0YWdlcyAob25lIGxheWluZyBvdXQgYW5kIG9uZSBwYWludGluZykuCisKKyAg
ICAgICAgVGhpcyBtYW5pZmVzdHMgaXRzZWxmIGlmIG9uZSBhdHRlbXB0cyB0byB1c2UgdGhlIC0t
Zm9yY2UtY29tcG9zaXRpbmctbW9kZQorICAgICAgICBpbiBDaHJvbWl1bSBhbmQgYXR0ZW1wdHMg
dG8gbmF2aWdhdGUgdG8gYSBwYWdlIHdpdGggYSBtaXNzaW5nIG9yIG9sZCBwbHVnaW4KKyAgICAg
ICAgb3IgYSBicm93c2VyIHBsdWdpbiAod2hpY2ggdXNlcyBhIFdlYlZpZXdQbHVnaW4gYXMgYSBw
bGFjZWhvbGRlciB1bnRpbCBpdCdzCisgICAgICAgIGRvbmUgbG9hZGluZykuCisKKyAgICAgICAg
VGhlIHNvbHV0aW9uIHRvIHNpbXBsaWZ5IGRlYnVnZ2luZyBpcyB0byBtYWtlIHRoaXMgZmxhZyBw
ZXItUGFnZS4KKyAgICAgICAgV2UgY2FuIGFjY2VzcyBQYWdlIGZyb20gUmVuZGVyTGF5ZXJCYWNr
aW5nIHdoaWNoIGlzIGEgR3JhcGhpY3NMYXllckNsaWVudC4KKyAgICAgICAgV2UgYWRkIGEgbmV3
IG1ldGhvZCBHcmFwaGljc0xheWVyQ2xpZW50Ojp2ZXJpZnlOb3RQYWludGluZyB3aXRoIGEgZGVm
YXVsdAorICAgICAgICAoZG8gbm90aGluZykgaW1wbGVtZW50YXRpb24gYW5kIG92ZXJyaWRlIGl0
IGluIFJlbmRlckxheWVyQmFja2luZyB0bworICAgICAgICB0ZXN0IHRoZSBmbGFnIHNldCBpbiBQ
YWdlLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoUGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpzZXRJc1BhaW50aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmlzUGFpbnRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjp+R3JhcGhpY3NMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAg
ICAoR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2xpZW50Ojp2ZXJpZnlOb3RQYWludGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBh
aW50Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnZlcmlmeU5vdFBhaW50aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorCiAy
MDEyLTAzLTIxICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEV4dHJhY3QgV2ViSW5zcGVjdG9yLlVJQnJlYWtwb2ludCBmcm9t
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNDJkMmIyY2U1
ZmI3MDU5MmRhNGE2ZTgxMDE0OWY5YmM1NDJhMzEzMS4uZDcyYjVmYjBiNDVmNjY1MGY0NTZkZDg3
Zjk2ZmZhNmYzMTEzZWVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjAsNiArMTYwLDkgQEAg
UGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fZGlz
cGxheUlEKDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoZmFs
c2UpCisjaWZuZGVmIE5ERUJVRworICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQorI2VuZGlmCiB7
CiAgICAgaWYgKCFhbGxQYWdlcykgewogICAgICAgICBhbGxQYWdlcyA9IG5ldyBIYXNoU2V0PFBh
Z2UqPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNDExNTA4MTFhMTZhZjUzNjdmZDY1N2Q3OTY5MmUwOTE2
MTQwMTk3Yi4uYmRhMjVmMzA3YTVlOWM1NDhhYzY0MzNiMTM0ZTUzOGZkZDgyOTE1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTMzMSw3ICszMzEsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgICAg
IHZvaWQgcmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKLQorI2lmbmRlZiBO
REVCVUcKKyAgICAgICAgdm9pZCBzZXRJc1BhaW50aW5nKGJvb2wgcGFpbnRpbmcpIHsgbV9pc1Bh
aW50aW5nID0gcGFpbnRpbmc7IH0KKyAgICAgICAgYm9vbCBpc1BhaW50aW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1BhaW50aW5nOyB9CisjZW5kaWYKICAgICBwcml2YXRlOgogICAgICAgICB2b2lk
IGluaXRHcm91cCgpOwogCkBAIC00MzEsNiArNDM0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBSZWdpb24gbV9yZWxldmFudFBhaW50ZWRSZWdpb247CiAgICAgICAgIFJlZ2lvbiBt
X3JlbGV2YW50VW5wYWludGVkUmVnaW9uOwogICAgICAgICBib29sIG1faXNDb3VudGluZ1JlbGV2
YW50UmVwYWludGVkT2JqZWN0czsKKyNpZm5kZWYgTkRFQkcKKyAgICAgICAgYm9vbCBtX2lzUGFp
bnRpbmc7CisjZW5kaWYKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4
IDMwZWI0MWRhMTE0NjgyMjU1YjM2NWQ1MjgxZjgzNGMyMjc5ZjA4M2EuLmQ0NDBkNWU1MmRkNDdl
Njk5ZTMxZjk0OGU1OWNmYjNjZWFmN2VkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC02MywxMCArNjMsNiBAQCB2b2lk
IEtleWZyYW1lVmFsdWVMaXN0OjppbnNlcnQoY29uc3QgQW5pbWF0aW9uVmFsdWUqIHZhbHVlKQog
ICAgIG1fdmFsdWVzLmFwcGVuZCh2YWx1ZSk7CiB9CiAKLSNpZm5kZWYgTkRFQlVHCi1zdGF0aWMg
Ym9vbCBzX2luUGFpbnRDb250ZW50cyA9IGZhbHNlOwotI2VuZGlmCi0KIEdyYXBoaWNzTGF5ZXI6
OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogICAgIDogbV9jbGll
bnQoY2xpZW50KQogICAgICwgbV9hbmNob3JQb2ludCgwLjVmLCAwLjVmLCAwKQpAQCAtOTEsMTIg
Kzg3LDE0IEBAIEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCogY2xpZW50KQogICAgICwgbV9yZXBsaWNhdGVkTGF5ZXIoMCkKICAgICAsIG1fcmVwYWludENv
dW50KDApCiB7Ci0gICAgQVNTRVJUKCFzX2luUGFpbnRDb250ZW50cyk7CisgICAgaWYgKG1fY2xp
ZW50KQorICAgICAgICBtX2NsaWVudC0+dmVyaWZ5Tm90UGFpbnRpbmcoKTsKIH0KIAogR3JhcGhp
Y3NMYXllcjo6fkdyYXBoaWNzTGF5ZXIoKQogewotICAgIEFTU0VSVCghc19pblBhaW50Q29udGVu
dHMpOworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPnZlcmlmeU5vdFBhaW50
aW5nKCk7CiAgICAgcmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICByZW1vdmVGcm9tUGFyZW50KCk7
CiB9CkBAIC0yODgsOSArMjg2LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpjbGVhckJhY2tncm91
bmRDb2xvcigpCiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6cGFpbnRHcmFwaGljc0xheWVyQ29udGVu
dHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBjbGlwKQogewotI2lm
bmRlZiBOREVCVUcKLSAgICBzX2luUGFpbnRDb250ZW50cyA9IHRydWU7Ci0jZW5kaWYKICAgICBp
ZiAobV9jbGllbnQpIHsKICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBvZmZzZXRGcm9tUmVu
ZGVyZXIoKTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoLW9mZnNldCk7CkBAIC0zMDAsOSAr
Mjk1LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEkKIAogICAgICAgICBtX2NsaWVudC0+cGFp
bnRDb250ZW50cyh0aGlzLCBjb250ZXh0LCBtX3BhaW50aW5nUGhhc2UsIHBpeGVsU25hcHBlZElu
dFJlY3QoY2xpcFJlY3QpKTsKICAgICB9Ci0jaWZuZGVmIE5ERUJVRwotICAgIHNfaW5QYWludENv
bnRlbnRzID0gZmFsc2U7Ci0jZW5kaWYKIH0KIAogU3RyaW5nIEdyYXBoaWNzTGF5ZXI6OmFuaW1h
dGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaAppbmRleCA0MDU4YjY1ZjA5OTUxMGU4MzEyNTc0Nzg1NDkzNzMyMzUyM2FjNWNhLi5jZTEy
NDE1NTc5MDRjNDExMWJjM2E3NWUwYzA1ZmFiZWNhMTRhZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC03
NCw2ICs3NCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJz
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3dS
ZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgPSAwOworCisgICAgdmly
dHVhbCB2b2lkIHZlcmlmeU5vdFBhaW50aW5nKCkgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCmluZGV4IDkyMjhmOGJiOTgzYzk2Y2NiNzhmODZjOWM3MDJmNDliYzBlZjU2NGQuLjQ5MTI3
YjNjMjQyYjBkYTQwYTk5OThjN2Q0MzgxYjA0NjZjYmUyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xMTQ3LDYgKzExNDcsNyBA
QCBzdGF0aWMgdm9pZCBwYWludFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogLy8gVXAtY2FsbCBmcm9tIGNvbXBvc2l0aW5nIGxh
eWVyIGRyYXdpbmcgY2FsbGJhY2suCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2UsIGNvbnN0
IEludFJlY3QmIGNsaXApCiB7CisgICAgdG9SZW5kZXJWaWV3KHJlbmRlcmVyKCkpLT5mcmFtZVZp
ZXcoKS0+ZnJhbWUoKS0+cGFnZSgpLT5zZXRJc1BhaW50aW5nKHRydWUpOwogICAgIGlmIChncmFw
aGljc0xheWVyID09IG1fZ3JhcGhpY3NMYXllci5nZXQoKSB8fCBncmFwaGljc0xheWVyID09IG1f
Zm9yZWdyb3VuZExheWVyLmdldCgpIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9tYXNrTGF5ZXIuZ2V0
KCkpIHsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KG1fb3duaW5nTGF5ZXItPnJlbmRlcmVy
KCktPmZyYW1lKCksICZjb250ZXh0LCBjbGlwKTsKIApAQCAtMTE3Miw2ICsxMTczLDcgQEAgdm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllciwgR3JhcGgKICAgICAgICAgbV9vd25pbmdMYXllci0+cGFpbnRSZXNpemVy
KCZjb250ZXh0LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZENsaXApOwogICAgICAgICBjb250ZXh0
LnJlc3RvcmUoKTsKICAgICB9CisgICAgdG9SZW5kZXJWaWV3KHJlbmRlcmVyKCkpLT5mcmFtZVZp
ZXcoKS0+ZnJhbWUoKS0+cGFnZSgpLT5zZXRJc1BhaW50aW5nKGZhbHNlKTsKIH0KIAogZmxvYXQg
UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25zdApAQCAtMTE5OSw2ICsx
MjAxLDEzIEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG93UmVwYWludENvdW50ZXIoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0CiAgICAgcmV0dXJuIGNvbXBvc2l0b3IoKSA/IGNvbXBv
c2l0b3IoKS0+Y29tcG9zaXRvclNob3dSZXBhaW50Q291bnRlcigpIDogZmFsc2U7CiB9CiAKKyNp
Zm5kZWYgTkRFQlVHCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dmVyaWZ5Tm90UGFpbnRpbmco
KQoreworICAgIEFTU0VSVCghcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5pc1BhaW50aW5n
KCkpOworfQorI2VuZGlmCisKIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlv
bihkb3VibGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFt
ZUxpc3QmIGtleWZyYW1lcykKIHsKICAgICBib29sIGhhc09wYWNpdHkgPSBrZXlmcmFtZXMuY29u
dGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDQ3MjhjMWNjNzYzMjE5ZGUyNGFjMGVi
NTE5ZTRjZTc1MDRkMTU1MDAuLmY3ZjdkMjc1YzEzY2EwN2RhOTY5NzAyMDJkYmQ1Yjk4YzEwYWYz
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgK
QEAgLTEzNiw2ICsxMzYsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdC
b3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
d1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAorI2lmbmRlZiBO
REVCVUcKKyAgICB2aXJ0dWFsIHZvaWQgdmVyaWZ5Tm90UGFpbnRpbmcoKTsKKyNlbmRpZgorCiAg
ICAgSW50UmVjdCBjb250ZW50c0JveCgpIGNvbnN0OwogICAgIAogICAgIC8vIEZvciBpbmZvcm1h
dGl2ZSBwdXJwb3NlcyBvbmx5Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133493</attachid>
            <date>2012-03-23 08:54:13 -0700</date>
            <delta_ts>2012-03-23 09:40:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81954-20120323115411.patch</filename>
            <type>text/plain</type>
            <size>8561</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZkNDk1NGE5ZDM0YWY2
NzlhNjIzMzI5Y2EyMTVjZDU3ZTU1MTRmMi4uZTMyMDUzNTkzMmI4MWMxNzNiMTRiODFjNWNlNDRi
NjI0NTU0NDAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAzLTIzICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gVXNp
bmcgV2ViVmlld1BsdWdpbnMgd2l0aCAtLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUgY2F1c2VzIGFu
IEFTU0VSVCB0byBmYWlsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MTk1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEEgc3RhdGljIHZhcmlhYmxlIHNfaW5QYWludENvbnRlbnRzIGlzIHNldCB3aGVuIHBh
aW50aW5nLCBhbmQgaXQgZW5zdXJlcworICAgICAgICB0aGF0IHdlIGRvbid0IGRlbGV0ZSBHcmFw
aGljc0xheWVycyBvciBjcmVhdGUgR3JhcGhpY3NMYXllcnMgd2hpbGUgcGFpbnRpbmcuCisKKyAg
ICAgICAgSG93ZXZlciwgYmVjYXVzZSB0aGlzIHZhcmlhYmxlIGlzIHN0YXRpYywgaXQgZG9lcyBu
b3QgcGVybWl0IHRoZSBleGlzdGVuY2UKKyAgICAgICAgb2YgbXVsdGlwbGUgV2ViVmlld3MgaW4g
ZGlmZmVyZW50IHN0YWdlcyAob25lIGxheWluZyBvdXQgYW5kIG9uZSBwYWludGluZykuCisKKyAg
ICAgICAgVGhpcyBtYW5pZmVzdHMgaXRzZWxmIGlmIG9uZSBhdHRlbXB0cyB0byB1c2UgdGhlIC0t
Zm9yY2UtY29tcG9zaXRpbmctbW9kZQorICAgICAgICBpbiBDaHJvbWl1bSBhbmQgYXR0ZW1wdHMg
dG8gbmF2aWdhdGUgdG8gYSBwYWdlIHdpdGggYSBtaXNzaW5nIG9yIG9sZCBwbHVnaW4KKyAgICAg
ICAgb3IgYSBicm93c2VyIHBsdWdpbiAod2hpY2ggdXNlcyBhIFdlYlZpZXdQbHVnaW4gYXMgYSBw
bGFjZWhvbGRlciB1bnRpbCBpdCdzCisgICAgICAgIGRvbmUgbG9hZGluZykuCisKKyAgICAgICAg
VGhlIHNvbHV0aW9uIHRvIHNpbXBsaWZ5IGRlYnVnZ2luZyBpcyB0byBtYWtlIHRoaXMgZmxhZyBw
ZXItUGFnZS4KKyAgICAgICAgV2UgY2FuIGFjY2VzcyBQYWdlIGZyb20gUmVuZGVyTGF5ZXJCYWNr
aW5nIHdoaWNoIGlzIGEgR3JhcGhpY3NMYXllckNsaWVudC4KKyAgICAgICAgV2UgYWRkIGEgbmV3
IG1ldGhvZCBHcmFwaGljc0xheWVyQ2xpZW50Ojp2ZXJpZnlOb3RQYWludGluZyB3aXRoIGEgZGVm
YXVsdAorICAgICAgICAoZG8gbm90aGluZykgaW1wbGVtZW50YXRpb24gYW5kIG92ZXJyaWRlIGl0
IGluIFJlbmRlckxheWVyQmFja2luZyB0bworICAgICAgICB0ZXN0IHRoZSBmbGFnIHNldCBpbiBQ
YWdlLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoUGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpzZXRJc1BhaW50aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmlzUGFpbnRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjp+R3JhcGhpY3NMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAg
ICAoR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2xpZW50Ojp2ZXJpZnlOb3RQYWludGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBh
aW50Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnZlcmlmeU5vdFBhaW50aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorCiAy
MDEyLTAzLTIxICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEV4dHJhY3QgV2ViSW5zcGVjdG9yLlVJQnJlYWtwb2ludCBmcm9t
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNDJkMmIyY2U1
ZmI3MDU5MmRhNGE2ZTgxMDE0OWY5YmM1NDJhMzEzMS4uZDcyYjVmYjBiNDVmNjY1MGY0NTZkZDg3
Zjk2ZmZhNmYzMTEzZWVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjAsNiArMTYwLDkgQEAg
UGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fZGlz
cGxheUlEKDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoZmFs
c2UpCisjaWZuZGVmIE5ERUJVRworICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQorI2VuZGlmCiB7
CiAgICAgaWYgKCFhbGxQYWdlcykgewogICAgICAgICBhbGxQYWdlcyA9IG5ldyBIYXNoU2V0PFBh
Z2UqPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNDExNTA4MTFhMTZhZjUzNjdmZDY1N2Q3OTY5MmUwOTE2
MTQwMTk3Yi4uYmRhMjVmMzA3YTVlOWM1NDhhYzY0MzNiMTM0ZTUzOGZkZDgyOTE1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTMzMSw3ICszMzEsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgICAg
IHZvaWQgcmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKLQorI2lmbmRlZiBO
REVCVUcKKyAgICAgICAgdm9pZCBzZXRJc1BhaW50aW5nKGJvb2wgcGFpbnRpbmcpIHsgbV9pc1Bh
aW50aW5nID0gcGFpbnRpbmc7IH0KKyAgICAgICAgYm9vbCBpc1BhaW50aW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1BhaW50aW5nOyB9CisjZW5kaWYKICAgICBwcml2YXRlOgogICAgICAgICB2b2lk
IGluaXRHcm91cCgpOwogCkBAIC00MzEsNiArNDM0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBSZWdpb24gbV9yZWxldmFudFBhaW50ZWRSZWdpb247CiAgICAgICAgIFJlZ2lvbiBt
X3JlbGV2YW50VW5wYWludGVkUmVnaW9uOwogICAgICAgICBib29sIG1faXNDb3VudGluZ1JlbGV2
YW50UmVwYWludGVkT2JqZWN0czsKKyNpZm5kZWYgTkRFQkcKKyAgICAgICAgYm9vbCBtX2lzUGFp
bnRpbmc7CisjZW5kaWYKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4
IDMwZWI0MWRhMTE0NjgyMjU1YjM2NWQ1MjgxZjgzNGMyMjc5ZjA4M2EuLmQ0NDBkNWU1MmRkNDdl
Njk5ZTMxZjk0OGU1OWNmYjNjZWFmN2VkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC02MywxMCArNjMsNiBAQCB2b2lk
IEtleWZyYW1lVmFsdWVMaXN0OjppbnNlcnQoY29uc3QgQW5pbWF0aW9uVmFsdWUqIHZhbHVlKQog
ICAgIG1fdmFsdWVzLmFwcGVuZCh2YWx1ZSk7CiB9CiAKLSNpZm5kZWYgTkRFQlVHCi1zdGF0aWMg
Ym9vbCBzX2luUGFpbnRDb250ZW50cyA9IGZhbHNlOwotI2VuZGlmCi0KIEdyYXBoaWNzTGF5ZXI6
OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogICAgIDogbV9jbGll
bnQoY2xpZW50KQogICAgICwgbV9hbmNob3JQb2ludCgwLjVmLCAwLjVmLCAwKQpAQCAtOTEsMTIg
Kzg3LDE0IEBAIEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCogY2xpZW50KQogICAgICwgbV9yZXBsaWNhdGVkTGF5ZXIoMCkKICAgICAsIG1fcmVwYWludENv
dW50KDApCiB7Ci0gICAgQVNTRVJUKCFzX2luUGFpbnRDb250ZW50cyk7CisgICAgaWYgKG1fY2xp
ZW50KQorICAgICAgICBtX2NsaWVudC0+dmVyaWZ5Tm90UGFpbnRpbmcoKTsKIH0KIAogR3JhcGhp
Y3NMYXllcjo6fkdyYXBoaWNzTGF5ZXIoKQogewotICAgIEFTU0VSVCghc19pblBhaW50Q29udGVu
dHMpOworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPnZlcmlmeU5vdFBhaW50
aW5nKCk7CiAgICAgcmVtb3ZlQWxsQ2hpbGRyZW4oKTsKICAgICByZW1vdmVGcm9tUGFyZW50KCk7
CiB9CkBAIC0yODgsOSArMjg2LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpjbGVhckJhY2tncm91
bmRDb2xvcigpCiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6cGFpbnRHcmFwaGljc0xheWVyQ29udGVu
dHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBjbGlwKQogewotI2lm
bmRlZiBOREVCVUcKLSAgICBzX2luUGFpbnRDb250ZW50cyA9IHRydWU7Ci0jZW5kaWYKICAgICBp
ZiAobV9jbGllbnQpIHsKICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBvZmZzZXRGcm9tUmVu
ZGVyZXIoKTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoLW9mZnNldCk7CkBAIC0zMDAsOSAr
Mjk1LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEkKIAogICAgICAgICBtX2NsaWVudC0+cGFp
bnRDb250ZW50cyh0aGlzLCBjb250ZXh0LCBtX3BhaW50aW5nUGhhc2UsIHBpeGVsU25hcHBlZElu
dFJlY3QoY2xpcFJlY3QpKTsKICAgICB9Ci0jaWZuZGVmIE5ERUJVRwotICAgIHNfaW5QYWludENv
bnRlbnRzID0gZmFsc2U7Ci0jZW5kaWYKIH0KIAogU3RyaW5nIEdyYXBoaWNzTGF5ZXI6OmFuaW1h
dGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaAppbmRleCA0MDU4YjY1ZjA5OTUxMGU4MzEyNTc0Nzg1NDkzNzMyMzUyM2FjNWNhLi5jZTEy
NDE1NTc5MDRjNDExMWJjM2E3NWUwYzA1ZmFiZWNhMTRhZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC03
NCw2ICs3NCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJz
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3dS
ZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgPSAwOworCisgICAgdmly
dHVhbCB2b2lkIHZlcmlmeU5vdFBhaW50aW5nKCkgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCmluZGV4IDkyMjhmOGJiOTgzYzk2Y2NiNzhmODZjOWM3MDJmNDliYzBlZjU2NGQuLjk2YjI4
ZWY1YTI0YmQwYzAzYTE4N2IyZDEyMjdlMzliNTI1ZTIzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xMTQ3LDYgKzExNDcsOSBA
QCBzdGF0aWMgdm9pZCBwYWludFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogLy8gVXAtY2FsbCBmcm9tIGNvbXBvc2l0aW5nIGxh
eWVyIGRyYXdpbmcgY2FsbGJhY2suCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2UsIGNvbnN0
IEludFJlY3QmIGNsaXApCiB7CisjaWZuZGVmIE5ERUJVRworICAgIHRvUmVuZGVyVmlldyhyZW5k
ZXJlcigpKS0+ZnJhbWVWaWV3KCktPmZyYW1lKCktPnBhZ2UoKS0+c2V0SXNQYWludGluZyh0cnVl
KTsKKyNlbmRpZgogICAgIGlmIChncmFwaGljc0xheWVyID09IG1fZ3JhcGhpY3NMYXllci5nZXQo
KSB8fCBncmFwaGljc0xheWVyID09IG1fZm9yZWdyb3VuZExheWVyLmdldCgpIHx8IGdyYXBoaWNz
TGF5ZXIgPT0gbV9tYXNrTGF5ZXIuZ2V0KCkpIHsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50
KG1fb3duaW5nTGF5ZXItPnJlbmRlcmVyKCktPmZyYW1lKCksICZjb250ZXh0LCBjbGlwKTsKIApA
QCAtMTE3Miw2ICsxMTc1LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVu
dHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGgKICAgICAgICAgbV9v
d25pbmdMYXllci0+cGFpbnRSZXNpemVyKCZjb250ZXh0LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1l
ZENsaXApOwogICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsKICAgICB9CisjaWZuZGVmIE5ERUJV
RworICAgIHRvUmVuZGVyVmlldyhyZW5kZXJlcigpKS0+ZnJhbWVWaWV3KCktPmZyYW1lKCktPnBh
Z2UoKS0+c2V0SXNQYWludGluZyhmYWxzZSk7CisjZW5kaWYKIH0KIAogZmxvYXQgUmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25zdApAQCAtMTE5OSw2ICsxMjA1LDEzIEBA
IGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciopIGNvbnN0CiAgICAgcmV0dXJuIGNvbXBvc2l0b3IoKSA/IGNvbXBvc2l0b3IoKS0+
Y29tcG9zaXRvclNob3dSZXBhaW50Q291bnRlcigpIDogZmFsc2U7CiB9CiAKKyNpZm5kZWYgTkRF
QlVHCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dmVyaWZ5Tm90UGFpbnRpbmcoKQoreworICAg
IEFTU0VSVCghcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5pc1BhaW50aW5nKCkpOworfQor
I2VuZGlmCisKIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbihkb3VibGUg
dGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFtZUxpc3QmIGtl
eWZyYW1lcykKIHsKICAgICBib29sIGhhc09wYWNpdHkgPSBrZXlmcmFtZXMuY29udGFpbnNQcm9w
ZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5oCmluZGV4IDQ3MjhjMWNjNzYzMjE5ZGUyNGFjMGViNTE5ZTRjZTc1
MDRkMTU1MDAuLmY3ZjdkMjc1YzEzY2EwN2RhOTY5NzAyMDJkYmQ1Yjk4YzEwYWYzMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTEzNiw2
ICsxMzYsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRD
b3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAorI2lmbmRlZiBOREVCVUcKKyAg
ICB2aXJ0dWFsIHZvaWQgdmVyaWZ5Tm90UGFpbnRpbmcoKTsKKyNlbmRpZgorCiAgICAgSW50UmVj
dCBjb250ZW50c0JveCgpIGNvbnN0OwogICAgIAogICAgIC8vIEZvciBpbmZvcm1hdGl2ZSBwdXJw
b3NlcyBvbmx5Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133504</attachid>
            <date>2012-03-23 09:40:36 -0700</date>
            <delta_ts>2012-03-23 16:05:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81954-20120323124035.patch</filename>
            <type>text/plain</type>
            <size>8654</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZkNDk1NGE5ZDM0YWY2
NzlhNjIzMzI5Y2EyMTVjZDU3ZTU1MTRmMi4uZTMyMDUzNTkzMmI4MWMxNzNiMTRiODFjNWNlNDRi
NjI0NTU0NDAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAzLTIzICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gVXNp
bmcgV2ViVmlld1BsdWdpbnMgd2l0aCAtLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUgY2F1c2VzIGFu
IEFTU0VSVCB0byBmYWlsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MTk1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEEgc3RhdGljIHZhcmlhYmxlIHNfaW5QYWludENvbnRlbnRzIGlzIHNldCB3aGVuIHBh
aW50aW5nLCBhbmQgaXQgZW5zdXJlcworICAgICAgICB0aGF0IHdlIGRvbid0IGRlbGV0ZSBHcmFw
aGljc0xheWVycyBvciBjcmVhdGUgR3JhcGhpY3NMYXllcnMgd2hpbGUgcGFpbnRpbmcuCisKKyAg
ICAgICAgSG93ZXZlciwgYmVjYXVzZSB0aGlzIHZhcmlhYmxlIGlzIHN0YXRpYywgaXQgZG9lcyBu
b3QgcGVybWl0IHRoZSBleGlzdGVuY2UKKyAgICAgICAgb2YgbXVsdGlwbGUgV2ViVmlld3MgaW4g
ZGlmZmVyZW50IHN0YWdlcyAob25lIGxheWluZyBvdXQgYW5kIG9uZSBwYWludGluZykuCisKKyAg
ICAgICAgVGhpcyBtYW5pZmVzdHMgaXRzZWxmIGlmIG9uZSBhdHRlbXB0cyB0byB1c2UgdGhlIC0t
Zm9yY2UtY29tcG9zaXRpbmctbW9kZQorICAgICAgICBpbiBDaHJvbWl1bSBhbmQgYXR0ZW1wdHMg
dG8gbmF2aWdhdGUgdG8gYSBwYWdlIHdpdGggYSBtaXNzaW5nIG9yIG9sZCBwbHVnaW4KKyAgICAg
ICAgb3IgYSBicm93c2VyIHBsdWdpbiAod2hpY2ggdXNlcyBhIFdlYlZpZXdQbHVnaW4gYXMgYSBw
bGFjZWhvbGRlciB1bnRpbCBpdCdzCisgICAgICAgIGRvbmUgbG9hZGluZykuCisKKyAgICAgICAg
VGhlIHNvbHV0aW9uIHRvIHNpbXBsaWZ5IGRlYnVnZ2luZyBpcyB0byBtYWtlIHRoaXMgZmxhZyBw
ZXItUGFnZS4KKyAgICAgICAgV2UgY2FuIGFjY2VzcyBQYWdlIGZyb20gUmVuZGVyTGF5ZXJCYWNr
aW5nIHdoaWNoIGlzIGEgR3JhcGhpY3NMYXllckNsaWVudC4KKyAgICAgICAgV2UgYWRkIGEgbmV3
IG1ldGhvZCBHcmFwaGljc0xheWVyQ2xpZW50Ojp2ZXJpZnlOb3RQYWludGluZyB3aXRoIGEgZGVm
YXVsdAorICAgICAgICAoZG8gbm90aGluZykgaW1wbGVtZW50YXRpb24gYW5kIG92ZXJyaWRlIGl0
IGluIFJlbmRlckxheWVyQmFja2luZyB0bworICAgICAgICB0ZXN0IHRoZSBmbGFnIHNldCBpbiBQ
YWdlLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoUGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpzZXRJc1BhaW50aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmlzUGFpbnRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjp+R3JhcGhpY3NMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAg
ICAoR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2xpZW50Ojp2ZXJpZnlOb3RQYWludGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBh
aW50Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnZlcmlmeU5vdFBhaW50aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorCiAy
MDEyLTAzLTIxICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEV4dHJhY3QgV2ViSW5zcGVjdG9yLlVJQnJlYWtwb2ludCBmcm9t
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNDJkMmIyY2U1
ZmI3MDU5MmRhNGE2ZTgxMDE0OWY5YmM1NDJhMzEzMS4uZDcyYjVmYjBiNDVmNjY1MGY0NTZkZDg3
Zjk2ZmZhNmYzMTEzZWVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjAsNiArMTYwLDkgQEAg
UGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fZGlz
cGxheUlEKDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoZmFs
c2UpCisjaWZuZGVmIE5ERUJVRworICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQorI2VuZGlmCiB7
CiAgICAgaWYgKCFhbGxQYWdlcykgewogICAgICAgICBhbGxQYWdlcyA9IG5ldyBIYXNoU2V0PFBh
Z2UqPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNDExNTA4MTFhMTZhZjUzNjdmZDY1N2Q3OTY5MmUwOTE2
MTQwMTk3Yi4uZDJhNzYxNmM0YTZmMzhkMmI2NTIwMmZhODM4ODdkZDFlMzU4M2NkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTMzMSw3ICszMzEsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgICAg
IHZvaWQgcmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKLQorI2lmbmRlZiBO
REVCVUcKKyAgICAgICAgdm9pZCBzZXRJc1BhaW50aW5nKGJvb2wgcGFpbnRpbmcpIHsgbV9pc1Bh
aW50aW5nID0gcGFpbnRpbmc7IH0KKyAgICAgICAgYm9vbCBpc1BhaW50aW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1BhaW50aW5nOyB9CisjZW5kaWYKICAgICBwcml2YXRlOgogICAgICAgICB2b2lk
IGluaXRHcm91cCgpOwogCkBAIC00MzEsNiArNDM0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBSZWdpb24gbV9yZWxldmFudFBhaW50ZWRSZWdpb247CiAgICAgICAgIFJlZ2lvbiBt
X3JlbGV2YW50VW5wYWludGVkUmVnaW9uOwogICAgICAgICBib29sIG1faXNDb3VudGluZ1JlbGV2
YW50UmVwYWludGVkT2JqZWN0czsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIGJvb2wgbV9pc1Bh
aW50aW5nOworI2VuZGlmCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRl
eCAzMGViNDFkYTExNDY4MjI1NWIzNjVkNTI4MWY4MzRjMjI3OWYwODNhLi4yZTZmOWQ0NTllOGY5
OTM1MzRmMDBhYTVmNDFjNDRiMTBjNTdmNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtNjMsMTAgKzYzLDYgQEAgdm9p
ZCBLZXlmcmFtZVZhbHVlTGlzdDo6aW5zZXJ0KGNvbnN0IEFuaW1hdGlvblZhbHVlKiB2YWx1ZSkK
ICAgICBtX3ZhbHVlcy5hcHBlbmQodmFsdWUpOwogfQogCi0jaWZuZGVmIE5ERUJVRwotc3RhdGlj
IGJvb2wgc19pblBhaW50Q29udGVudHMgPSBmYWxzZTsKLSNlbmRpZgotCiBHcmFwaGljc0xheWVy
OjpHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICA6IG1fY2xp
ZW50KGNsaWVudCkKICAgICAsIG1fYW5jaG9yUG9pbnQoMC41ZiwgMC41ZiwgMCkKQEAgLTkxLDEy
ICs4NywxOCBAQCBHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGll
bnQqIGNsaWVudCkKICAgICAsIG1fcmVwbGljYXRlZExheWVyKDApCiAgICAgLCBtX3JlcGFpbnRD
b3VudCgwKQogewotICAgIEFTU0VSVCghc19pblBhaW50Q29udGVudHMpOworI2lmbmRlZiBOREVC
VUcKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT52ZXJpZnlOb3RQYWludGlu
ZygpOworI2VuZGlmCiB9CiAKIEdyYXBoaWNzTGF5ZXI6On5HcmFwaGljc0xheWVyKCkKIHsKLSAg
ICBBU1NFUlQoIXNfaW5QYWludENvbnRlbnRzKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgaWYgKG1f
Y2xpZW50KQorICAgICAgICBtX2NsaWVudC0+dmVyaWZ5Tm90UGFpbnRpbmcoKTsKKyNlbmRpZgog
ICAgIHJlbW92ZUFsbENoaWxkcmVuKCk7CiAgICAgcmVtb3ZlRnJvbVBhcmVudCgpOwogfQpAQCAt
Mjg4LDkgKzI5MCw2IEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6Y2xlYXJCYWNrZ3JvdW5kQ29sb3Io
KQogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OnBhaW50R3JhcGhpY3NMYXllckNvbnRlbnRzKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UmVjdCYgY2xpcCkKIHsKLSNpZm5kZWYgTkRF
QlVHCi0gICAgc19pblBhaW50Q29udGVudHMgPSB0cnVlOwotI2VuZGlmCiAgICAgaWYgKG1fY2xp
ZW50KSB7CiAgICAgICAgIExheW91dFNpemUgb2Zmc2V0ID0gb2Zmc2V0RnJvbVJlbmRlcmVyKCk7
CiAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKC1vZmZzZXQpOwpAQCAtMzAwLDkgKzI5OSw2IEBA
IHZvaWQgR3JhcGhpY3NMYXllcjo6cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBJCiAKICAgICAgICAgbV9jbGllbnQtPnBhaW50Q29udGVu
dHModGhpcywgY29udGV4dCwgbV9wYWludGluZ1BoYXNlLCBwaXhlbFNuYXBwZWRJbnRSZWN0KGNs
aXBSZWN0KSk7CiAgICAgfQotI2lmbmRlZiBOREVCVUcKLSAgICBzX2luUGFpbnRDb250ZW50cyA9
IGZhbHNlOwotI2VuZGlmCiB9CiAKIFN0cmluZyBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1l
Rm9yVHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5k
ZXggNDA1OGI2NWYwOTk1MTBlODMxMjU3NDc4NTQ5MzczMjM1MjNhYzVjYS4uY2UxMjQxNTU3OTA0
YzQxMTFiYzNhNzVlMGMwNWZhYmVjYTE0YWVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaApAQCAtNzQsNiArNzQs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBH
cmFwaGljc0xheWVyKikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENv
dW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCB2ZXJpZnlOb3RQYWludGluZygpIHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRl
eCA5MjI4ZjhiYjk4M2M5NmNjYjc4Zjg2YzljNzAyZjQ5YmMwZWY1NjRkLi43NWZmNDFhZThlYjc3
ZjUwZWNmZWI4MjUwMDI1OTQyZTllZjYxMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTE0Nyw2ICsxMTQ3LDEwIEBAIHN0YXRp
YyB2b2lkIHBhaW50U2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0CiAvLyBVcC1jYWxsIGZyb20gY29tcG9zaXRpbmcgbGF5ZXIgZHJh
d2luZyBjYWxsYmFjay4KIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgcGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVj
dCYgY2xpcCkKIHsKKyNpZm5kZWYgTkRFQlVHCisgICAgaWYgKFBhZ2UqIHBhZ2UgPSByZW5kZXJl
cigpLT5mcmFtZSgpLT5wYWdlKCkpCisgICAgICAgIHBhZ2UtPnNldElzUGFpbnRpbmcodHJ1ZSk7
CisjZW5kaWYKICAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCkg
fHwgZ3JhcGhpY3NMYXllciA9PSBtX2ZvcmVncm91bmRMYXllci5nZXQoKSB8fCBncmFwaGljc0xh
eWVyID09IG1fbWFza0xheWVyLmdldCgpKSB7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludCht
X293bmluZ0xheWVyLT5yZW5kZXJlcigpLT5mcmFtZSgpLCAmY29udGV4dCwgY2xpcCk7CiAKQEAg
LTExNzIsNiArMTE3NiwxMCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50
cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaAogICAgICAgICBtX293
bmluZ0xheWVyLT5wYWludFJlc2l6ZXIoJmNvbnRleHQsIEludFBvaW50KCksIHRyYW5zZm9ybWVk
Q2xpcCk7CiAgICAgICAgIGNvbnRleHQucmVzdG9yZSgpOwogICAgIH0KKyNpZm5kZWYgTkRFQlVH
CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdlKCkpCisgICAg
ICAgIHBhZ2UtPnNldElzUGFpbnRpbmcoZmFsc2UpOworI2VuZGlmCiB9CiAKIGZsb2F0IFJlbmRl
ckxheWVyQmFja2luZzo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKQEAgLTExOTksNiArMTIwNywx
MyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBjb25zdAogICAgIHJldHVybiBjb21wb3NpdG9yKCkgPyBjb21wb3NpdG9y
KCktPmNvbXBvc2l0b3JTaG93UmVwYWludENvdW50ZXIoKSA6IGZhbHNlOwogfQogCisjaWZuZGVm
IE5ERUJVRwordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnZlcmlmeU5vdFBhaW50aW5nKCkKK3sK
KyAgICBBU1NFUlQoIXJlbmRlcmVyKCktPmZyYW1lKCktPnBhZ2UoKSB8fCAhcmVuZGVyZXIoKS0+
ZnJhbWUoKS0+cGFnZSgpLT5pc1BhaW50aW5nKCkpOworfQorI2VuZGlmCisKIGJvb2wgUmVuZGVy
TGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCwgY29uc3QgQW5p
bWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFtZUxpc3QmIGtleWZyYW1lcykKIHsKICAgICBib29s
IGhhc09wYWNpdHkgPSBrZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNp
dHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmlu
ZGV4IDQ3MjhjMWNjNzYzMjE5ZGUyNGFjMGViNTE5ZTRjZTc1MDRkMTU1MDAuLmY3ZjdkMjc1YzEz
Y2EwN2RhOTY5NzAyMDJkYmQ1Yjk4YzEwYWYzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTEzNiw2ICsxMzYsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqKSBjb25zdDsKIAorI2lmbmRlZiBOREVCVUcKKyAgICB2aXJ0dWFsIHZvaWQgdmVyaWZ5
Tm90UGFpbnRpbmcoKTsKKyNlbmRpZgorCiAgICAgSW50UmVjdCBjb250ZW50c0JveCgpIGNvbnN0
OwogICAgIAogICAgIC8vIEZvciBpbmZvcm1hdGl2ZSBwdXJwb3NlcyBvbmx5Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133580</attachid>
            <date>2012-03-23 16:05:16 -0700</date>
            <delta_ts>2012-03-26 17:09:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81954-20120323190514.patch</filename>
            <type>text/plain</type>
            <size>8960</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU2YmY0YTY4YjEyZGU2
ZjA1YzNmNDMwNjY5MjBkM2I2YTVjNGM4Mi4uODY3MGJhYTcxMzNiNDM3YWQ5M2FmNGI5YzEwZGQ2
YmNlZTI1YjcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAzLTIzICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gVXNp
bmcgV2ViVmlld1BsdWdpbnMgd2l0aCAtLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUgY2F1c2VzIGFu
IEFTU0VSVCB0byBmYWlsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MTk1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEEgc3RhdGljIHZhcmlhYmxlIHNfaW5QYWludENvbnRlbnRzIGlzIHNldCB3aGVuIHBh
aW50aW5nLCBhbmQgaXQgZW5zdXJlcworICAgICAgICB0aGF0IHdlIGRvbid0IGRlbGV0ZSBHcmFw
aGljc0xheWVycyBvciBjcmVhdGUgR3JhcGhpY3NMYXllcnMgd2hpbGUgcGFpbnRpbmcuCisKKyAg
ICAgICAgSG93ZXZlciwgYmVjYXVzZSB0aGlzIHZhcmlhYmxlIGlzIHN0YXRpYywgaXQgZG9lcyBu
b3QgcGVybWl0IHRoZSBleGlzdGVuY2UKKyAgICAgICAgb2YgbXVsdGlwbGUgV2ViVmlld3MgaW4g
ZGlmZmVyZW50IHN0YWdlcyAob25lIGxheWluZyBvdXQgYW5kIG9uZSBwYWludGluZykuCisKKyAg
ICAgICAgVGhpcyBtYW5pZmVzdHMgaXRzZWxmIGlmIG9uZSBhdHRlbXB0cyB0byB1c2UgdGhlIC0t
Zm9yY2UtY29tcG9zaXRpbmctbW9kZQorICAgICAgICBpbiBDaHJvbWl1bSBhbmQgYXR0ZW1wdHMg
dG8gbmF2aWdhdGUgdG8gYSBwYWdlIHdpdGggYSBtaXNzaW5nIG9yIG9sZCBwbHVnaW4KKyAgICAg
ICAgb3IgYSBicm93c2VyIHBsdWdpbiAod2hpY2ggdXNlcyBhIFdlYlZpZXdQbHVnaW4gYXMgYSBw
bGFjZWhvbGRlciB1bnRpbCBpdCdzCisgICAgICAgIGRvbmUgbG9hZGluZykuCisKKyAgICAgICAg
VGhlIHNvbHV0aW9uIHRvIHNpbXBsaWZ5IGRlYnVnZ2luZyBpcyB0byBtYWtlIHRoaXMgZmxhZyBw
ZXItUGFnZS4KKyAgICAgICAgV2UgY2FuIGFjY2VzcyBQYWdlIGZyb20gUmVuZGVyTGF5ZXJCYWNr
aW5nIHdoaWNoIGlzIGEgR3JhcGhpY3NMYXllckNsaWVudC4KKyAgICAgICAgV2UgYWRkIGEgbmV3
IG1ldGhvZCBHcmFwaGljc0xheWVyQ2xpZW50Ojp2ZXJpZnlOb3RQYWludGluZyB3aXRoIGEgZGVm
YXVsdAorICAgICAgICAoZG8gbm90aGluZykgaW1wbGVtZW50YXRpb24gYW5kIG92ZXJyaWRlIGl0
IGluIFJlbmRlckxheWVyQmFja2luZyB0bworICAgICAgICB0ZXN0IHRoZSBmbGFnIHNldCBpbiBQ
YWdlLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoUGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpzZXRJc1BhaW50aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmlzUGFpbnRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjp+R3JhcGhpY3NMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAg
ICAoR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2xpZW50Ojp2ZXJpZnlOb3RQYWludGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBh
aW50Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnZlcmlmeU5vdFBhaW50aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorCiAy
MDEyLTAzLTIzICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSSAoSlNFUCk6IEludHJvZHVjaW5nIFBlZXJDb25uZWN0aW9uMDAg
YW5kIEljZUNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA0MmQyYjJjZTVmYjcwNTkyZGE0
YTZlODEwMTQ5ZjliYzU0MmEzMTMxLi5kNzJiNWZiMGI0NWY2NjUwZjQ1NmRkODdmOTZmZmE2ZjMx
MTNlZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2MCw2ICsxNjAsOSBAQCBQYWdlOjpQYWdl
KFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9kaXNwbGF5SUQoMCkK
ICAgICAsIG1faXNDb3VudGluZ1JlbGV2YW50UmVwYWludGVkT2JqZWN0cyhmYWxzZSkKKyNpZm5k
ZWYgTkRFQlVHCisgICAgLCBtX2lzUGFpbnRpbmcoZmFsc2UpCisjZW5kaWYKIHsKICAgICBpZiAo
IWFsbFBhZ2VzKSB7CiAgICAgICAgIGFsbFBhZ2VzID0gbmV3IEhhc2hTZXQ8UGFnZSo+OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAppbmRleCA0MTE1MDgxMWExNmFmNTM2N2ZkNjU3ZDc5NjkyZTA5MTYxNDAxOTdiLi5k
MmE3NjE2YzRhNmYzOGQyYjY1MjAyZmE4Mzg4N2RkMWUzNTgzY2QwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApA
QCAtMzMxLDcgKzMzMSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBz
dXNwZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKICAgICAgICAgdm9pZCByZXN1
bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwotCisjaWZuZGVmIE5ERUJVRworICAg
ICAgICB2b2lkIHNldElzUGFpbnRpbmcoYm9vbCBwYWludGluZykgeyBtX2lzUGFpbnRpbmcgPSBw
YWludGluZzsgfQorICAgICAgICBib29sIGlzUGFpbnRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lz
UGFpbnRpbmc7IH0KKyNlbmRpZgogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5pdEdyb3Vw
KCk7CiAKQEAgLTQzMSw2ICs0MzQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFJl
Z2lvbiBtX3JlbGV2YW50UGFpbnRlZFJlZ2lvbjsKICAgICAgICAgUmVnaW9uIG1fcmVsZXZhbnRV
bnBhaW50ZWRSZWdpb247CiAgICAgICAgIGJvb2wgbV9pc0NvdW50aW5nUmVsZXZhbnRSZXBhaW50
ZWRPYmplY3RzOworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgYm9vbCBtX2lzUGFpbnRpbmc7Cisj
ZW5kaWYKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDMwZWI0MWRh
MTE0NjgyMjU1YjM2NWQ1MjgxZjgzNGMyMjc5ZjA4M2EuLjJlNmY5ZDQ1OWU4Zjk5MzUzNGYwMGFh
NWY0MWM0NGIxMGM1N2Y0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC02MywxMCArNjMsNiBAQCB2b2lkIEtleWZyYW1l
VmFsdWVMaXN0OjppbnNlcnQoY29uc3QgQW5pbWF0aW9uVmFsdWUqIHZhbHVlKQogICAgIG1fdmFs
dWVzLmFwcGVuZCh2YWx1ZSk7CiB9CiAKLSNpZm5kZWYgTkRFQlVHCi1zdGF0aWMgYm9vbCBzX2lu
UGFpbnRDb250ZW50cyA9IGZhbHNlOwotI2VuZGlmCi0KIEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNz
TGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50
KQogICAgICwgbV9hbmNob3JQb2ludCgwLjVmLCAwLjVmLCAwKQpAQCAtOTEsMTIgKzg3LDE4IEBA
IEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50
KQogICAgICwgbV9yZXBsaWNhdGVkTGF5ZXIoMCkKICAgICAsIG1fcmVwYWludENvdW50KDApCiB7
Ci0gICAgQVNTRVJUKCFzX2luUGFpbnRDb250ZW50cyk7CisjaWZuZGVmIE5ERUJVRworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPnZlcmlmeU5vdFBhaW50aW5nKCk7CisjZW5k
aWYKIH0KIAogR3JhcGhpY3NMYXllcjo6fkdyYXBoaWNzTGF5ZXIoKQogewotICAgIEFTU0VSVCgh
c19pblBhaW50Q29udGVudHMpOworI2lmbmRlZiBOREVCVUcKKyAgICBpZiAobV9jbGllbnQpCisg
ICAgICAgIG1fY2xpZW50LT52ZXJpZnlOb3RQYWludGluZygpOworI2VuZGlmCiAgICAgcmVtb3Zl
QWxsQ2hpbGRyZW4oKTsKICAgICByZW1vdmVGcm9tUGFyZW50KCk7CiB9CkBAIC0yODgsOSArMjkw
LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpjbGVhckJhY2tncm91bmRDb2xvcigpCiAKIHZvaWQg
R3JhcGhpY3NMYXllcjo6cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBjbGlwKQogewotI2lmbmRlZiBOREVCVUcKLSAgICBz
X2luUGFpbnRDb250ZW50cyA9IHRydWU7Ci0jZW5kaWYKICAgICBpZiAobV9jbGllbnQpIHsKICAg
ICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBvZmZzZXRGcm9tUmVuZGVyZXIoKTsKICAgICAgICAg
Y29udGV4dC50cmFuc2xhdGUoLW9mZnNldCk7CkBAIC0zMDAsOSArMjk5LDYgQEAgdm9pZCBHcmFw
aGljc0xheWVyOjpwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEkKIAogICAgICAgICBtX2NsaWVudC0+cGFpbnRDb250ZW50cyh0aGlzLCBj
b250ZXh0LCBtX3BhaW50aW5nUGhhc2UsIHBpeGVsU25hcHBlZEludFJlY3QoY2xpcFJlY3QpKTsK
ICAgICB9Ci0jaWZuZGVmIE5ERUJVRwotICAgIHNfaW5QYWludENvbnRlbnRzID0gZmFsc2U7Ci0j
ZW5kaWYKIH0KIAogU3RyaW5nIEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0
aW9uKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAppbmRleCA0MDU4YjY1
ZjA5OTUxMGU4MzEyNTc0Nzg1NDkzNzMyMzUyM2FjNWNhLi4zNmE3ZjQzNjU4YTM3ZWVhMmZlN2Fm
N2NjMWU5ZGU2OGZjYThjYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC03NCw2ICs3NCwxNSBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xh
eWVyKikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0ID0gMDsKKworI2lmbmRlZiBOREVCVUcKKyAgICAvLyBS
ZW5kZXJMYXllckJhY2tpbmcgb3ZlcnJpZGVzIHRoaXMgdG8gdmVyaWZ5IHRoYXQgaXQgaXMgbm90
CisgICAgLy8gY3VycmVudGx5IHBhaW50aW5nIGNvbnRlbnRzLiBBbiBBU1NFUlQgZmFpbHMsIGlm
IGl0IGlzLgorICAgIC8vIFRoaXMgaXMgZXhlY3V0ZWQgaW4gR3JhcGhpY3NMYXllciBjb25zdHJ1
Y3Rpb24gYW5kIGRlc3RydWN0aW9uCisgICAgLy8gdG8gdmVyaWZ5IHRoYXQgd2UgZG9uJ3QgY3Jl
YXRlIG9yIGRlc3Ryb3kgR3JhcGhpY3NMYXllcnMKKyAgICAvLyB3aGlsZSBwYWludGluZy4KKyAg
ICB2aXJ0dWFsIHZvaWQgdmVyaWZ5Tm90UGFpbnRpbmcoKSB7IH0KKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCA5MjI4ZjhiYjk4M2M5NmNjYjc4Zjg2YzljNzAyZjQ5YmMw
ZWY1NjRkLi43NWZmNDFhZThlYjc3ZjUwZWNmZWI4MjUwMDI1OTQyZTllZjYxMTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTE0
Nyw2ICsxMTQ3LDEwIEBAIHN0YXRpYyB2b2lkIHBhaW50U2Nyb2xsYmFyKFNjcm9sbGJhciogc2Ny
b2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAvLyBVcC1jYWxsIGZyb20g
Y29tcG9zaXRpbmcgbGF5ZXIgZHJhd2luZyBjYWxsYmFjay4KIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgcGFpbnRp
bmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcCkKIHsKKyNpZm5kZWYgTkRFQlVHCisgICAgaWYg
KFBhZ2UqIHBhZ2UgPSByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdlKCkpCisgICAgICAgIHBhZ2Ut
PnNldElzUGFpbnRpbmcodHJ1ZSk7CisjZW5kaWYKICAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBt
X2dyYXBoaWNzTGF5ZXIuZ2V0KCkgfHwgZ3JhcGhpY3NMYXllciA9PSBtX2ZvcmVncm91bmRMYXll
ci5nZXQoKSB8fCBncmFwaGljc0xheWVyID09IG1fbWFza0xheWVyLmdldCgpKSB7CiAgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxQYWludChtX293bmluZ0xheWVyLT5yZW5kZXJlcigpLT5mcmFtZSgpLCAm
Y29udGV4dCwgY2xpcCk7CiAKQEAgLTExNzIsNiArMTE3NiwxMCBAQCB2b2lkIFJlbmRlckxheWVy
QmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
LCBHcmFwaAogICAgICAgICBtX293bmluZ0xheWVyLT5wYWludFJlc2l6ZXIoJmNvbnRleHQsIElu
dFBvaW50KCksIHRyYW5zZm9ybWVkQ2xpcCk7CiAgICAgICAgIGNvbnRleHQucmVzdG9yZSgpOwog
ICAgIH0KKyNpZm5kZWYgTkRFQlVHCisgICAgaWYgKFBhZ2UqIHBhZ2UgPSByZW5kZXJlcigpLT5m
cmFtZSgpLT5wYWdlKCkpCisgICAgICAgIHBhZ2UtPnNldElzUGFpbnRpbmcoZmFsc2UpOworI2Vu
ZGlmCiB9CiAKIGZsb2F0IFJlbmRlckxheWVyQmFja2luZzo6cGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QKQEAgLTExOTksNiArMTIwNywxMyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAogICAgIHJldHVybiBjb21w
b3NpdG9yKCkgPyBjb21wb3NpdG9yKCktPmNvbXBvc2l0b3JTaG93UmVwYWludENvdW50ZXIoKSA6
IGZhbHNlOwogfQogCisjaWZuZGVmIE5ERUJVRwordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnZl
cmlmeU5vdFBhaW50aW5nKCkKK3sKKyAgICBBU1NFUlQoIXJlbmRlcmVyKCktPmZyYW1lKCktPnBh
Z2UoKSB8fCAhcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5pc1BhaW50aW5nKCkpOworfQor
I2VuZGlmCisKIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbihkb3VibGUg
dGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFtZUxpc3QmIGtl
eWZyYW1lcykKIHsKICAgICBib29sIGhhc09wYWNpdHkgPSBrZXlmcmFtZXMuY29udGFpbnNQcm9w
ZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5oCmluZGV4IDQ3MjhjMWNjNzYzMjE5ZGUyNGFjMGViNTE5ZTRjZTc1
MDRkMTU1MDAuLmY3ZjdkMjc1YzEzY2EwN2RhOTY5NzAyMDJkYmQ1Yjk4YzEwYWYzMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTEzNiw2
ICsxMzYsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRD
b3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAorI2lmbmRlZiBOREVCVUcKKyAg
ICB2aXJ0dWFsIHZvaWQgdmVyaWZ5Tm90UGFpbnRpbmcoKTsKKyNlbmRpZgorCiAgICAgSW50UmVj
dCBjb250ZW50c0JveCgpIGNvbnN0OwogICAgIAogICAgIC8vIEZvciBpbmZvcm1hdGl2ZSBwdXJw
b3NlcyBvbmx5Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>