<?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>87996</bug_id>
          
          <creation_ts>2012-05-31 11:36:59 -0700</creation_ts>
          <short_desc>[chromium] Set default memory allocation limit bytes when GL_CHROMIUM_gpu_memory_manager is not supported by graphics context.</short_desc>
          <delta_ts>2012-06-05 21:45:17 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michal Mocny">mmocny</reporter>
          <assigned_to name="Michal Mocny">mmocny</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>danakj</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>638597</commentid>
    <comment_count>0</comment_count>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-05-31 11:36:59 -0700</bug_when>
    <thetext>[chromium] Set default memory allocation limit bytes when GL_CHROMIUM_gpu_memory_manager is not supported by graphics context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638599</commentid>
    <comment_count>1</comment_count>
      <attachid>145121</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-05-31 11:38:49 -0700</bug_when>
    <thetext>Created attachment 145121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638603</commentid>
    <comment_count>2</comment_count>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-05-31 11:42:03 -0700</bug_when>
    <thetext>Nat, I&apos;ve gotten bit by the &quot;graphics context callback are called on the wrong thread&quot; issue here again.

I got around the issue by introducing a new DebugScopedSetMainThreadFromEither which will set main thread and reset to whatever thread it was on during initialization, instead of forcing reset to impl.

The real solution would be to make graphics context callbacks run on impl.  An alternative workaround would be to remove all ASSERT(is*Thread) from the allocation plumbing.  Please advise, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640699</commentid>
    <comment_count>3</comment_count>
      <attachid>145121</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-04 11:17:20 -0700</bug_when>
    <thetext>Comment on attachment 145121
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:318
&gt; +        m_client-&gt;setContentsMemoryAllocationLimitBytes(TextureManager::highLimitBytes(viewportSize()));

How about calling postSetContentsMemoryAllocationBlahballbahbah? Then you can assert impl thread...

&gt; Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h:144
&gt;  

This smells</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640717</commentid>
    <comment_count>4</comment_count>
      <attachid>145121</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-04 11:48:28 -0700</bug_when>
    <thetext>Comment on attachment 145121
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:318
&gt;&gt; +        m_client-&gt;setContentsMemoryAllocationLimitBytes(TextureManager::highLimitBytes(viewportSize()));
&gt; 
&gt; How about calling postSetContentsMemoryAllocationBlahballbahbah? Then you can assert impl thread...

This is possible, but it seems so ugly that I want to make sure we are on the same page:

- I would need to add two different postSetContentsMemoryAllocationBlahballbahbah to CCLayerTreeHostImpl
-- postSetContentsMemoryAllocationOnImpl, used here (initialize)
-- postSetContentsMemoryAllocationOnMainIfSingleThreadedOtherwiseOnImpl, used by wgc memory allocation callback
- CCLTHImpl would forward over to two equivalent versions in CCProxy
- Then finally CCSingleThreadProxy::postSetContentsMemoryAllocationOnMainIfSingleThreadedOtherwiseOnImpl will know its on the wrong thread, and can DebugScopedImplThread

Another possible alternative is that LRC callback could test if we are running with threaded compositing and DebugScopedImplThread if not.  This is a lot cleaner, but I am not sure if it is possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641125</commentid>
    <comment_count>5</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-04 19:32:35 -0700</bug_when>
    <thetext>Have the single threaded memory allocation callback call through an apapter class that DebugSetsImplThread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641546</commentid>
    <comment_count>6</comment_count>
      <attachid>145795</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 07:56:22 -0700</bug_when>
    <thetext>Created attachment 145795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641563</commentid>
    <comment_count>7</comment_count>
      <attachid>145795</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-05 08:10:13 -0700</bug_when>
    <thetext>Comment on attachment 145795
Patch

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

does it make sense to have a unit test that verifies the allocation is non-zero in this scenario?

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:208
&gt; +        if (!CCProxy::hasImplThread())
&gt; +            onGpuMemoryAllocationChangedOnMain(allocation);
&gt; +        else
&gt; +            onGpuMemoryAllocationChangedOnImpl(allocation);

Why not just put a DebugScopedSetImplThread here and avoid the 2 extra functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641564</commentid>
    <comment_count>8</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-05 08:11:02 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Why not just put a DebugScopedSetImplThread here and avoid the 2 extra functions?

Oh I see, previous comments.. heh :) Yay bikesheds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641598</commentid>
    <comment_count>9</comment_count>
      <attachid>145807</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 08:42:29 -0700</bug_when>
    <thetext>Created attachment 145807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641599</commentid>
    <comment_count>10</comment_count>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 08:43:56 -0700</bug_when>
    <thetext>I&apos;ve changed this to use two adaptors so that we don&apos;t have to test the if statement inside the callback every time, just once during initialization.

I&apos;ve also added the unit test as Dana suggested, but unit tests are currently failing since some of the thread assertions have changed.  Will fix that and post update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641658</commentid>
    <comment_count>11</comment_count>
      <attachid>145824</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 09:48:21 -0700</bug_when>
    <thetext>Created attachment 145824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641659</commentid>
    <comment_count>12</comment_count>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 09:49:32 -0700</bug_when>
    <thetext>Unittests were failing because LRCTest was not initializing WebCompositor, but thats all fixed up now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641666</commentid>
    <comment_count>13</comment_count>
      <attachid>145824</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-05 09:56:01 -0700</bug_when>
    <thetext>Comment on attachment 145824
Patch

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

Looks like it needs a rebase, I like the separate SingleThread class, seems cleaner than the extra methods in the last patch to me.

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:200
&gt; +

nit: extra whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641701</commentid>
    <comment_count>14</comment_count>
      <attachid>145835</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 10:41:23 -0700</bug_when>
    <thetext>Created attachment 145835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641702</commentid>
    <comment_count>15</comment_count>
      <attachid>145835</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 10:41:57 -0700</bug_when>
    <thetext>Comment on attachment 145835
Patch

Rebasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641711</commentid>
    <comment_count>16</comment_count>
      <attachid>145835</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-06-05 10:51:15 -0700</bug_when>
    <thetext>Comment on attachment 145835
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:67
&gt; +#include &quot;cc/CCSingleThreadProxy.h&quot;

Why this and not CCPRoxy?

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:221
&gt; +class LayerRendererGpuMemoryAllocationChangedCallbackAdapterSingleThread : public LayerRendererGpuMemoryAllocationChangedCallbackAdapter {

Why not just make the existing adapter have a bool saying &quot;m_bindToImplThread&quot; that you set in the single threaded case?

&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:129
&gt; +        WebKit::WebCompositor::initialize(0);

Eep, whats this?

&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:339
&gt; +class NonGpuMemoryManagingFakeContext : public FakeWebGraphicsContext3D {

ContextThatDoesNotSupportMemoryManagmentExtensions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641719</commentid>
    <comment_count>17</comment_count>
      <attachid>145835</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 10:57:54 -0700</bug_when>
    <thetext>Comment on attachment 145835
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:67
&gt;&gt; +#include &quot;cc/CCSingleThreadProxy.h&quot;
&gt; 
&gt; Why this and not CCPRoxy?

This was needed for ScopedSet*Thread.  This is not the only place where CCSingleThreadProxy.h is included just for those, should I move them into CCProxy.h?

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:221
&gt;&gt; +class LayerRendererGpuMemoryAllocationChangedCallbackAdapterSingleThread : public LayerRendererGpuMemoryAllocationChangedCallbackAdapter {
&gt; 
&gt; Why not just make the existing adapter have a bool saying &quot;m_bindToImplThread&quot; that you set in the single threaded case?

Sure, I&apos;ll do that.

&gt;&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:129
&gt;&gt; +        WebKit::WebCompositor::initialize(0);
&gt; 
&gt; Eep, whats this?

This initializes the main/impl threads and calls CCProxy::setMainThread (among other things) which you need before you can ASSERT(CCProxy::isMainThread()) etc.

I copied this from the behaviour of other unittests: CCLayerTreeHostTest.cpp, Canvas2DLayerChromiumTest.cpp, etc etc

&gt;&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:339
&gt;&gt; +class NonGpuMemoryManagingFakeContext : public FakeWebGraphicsContext3D {
&gt; 
&gt; ContextThatDoesNotSupportMemoryManagmentExtensions

sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641734</commentid>
    <comment_count>18</comment_count>
      <attachid>145835</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-05 11:14:42 -0700</bug_when>
    <thetext>Comment on attachment 145835
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:67
&gt;&gt; +#include &quot;cc/CCSingleThreadProxy.h&quot;
&gt; 
&gt; Why this and not CCPRoxy?

Woah, why does LRC need to know about the proxy at all?  LayerRendererChromium should call out to the embedder via CCRendererClient and the client implementation (normally CCLayerTreeHostImpl) should be dealing with any proxy interactions

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:347
&gt; +        if (CCProxy::hasImplThread())

LayerRendererChromium is only accessed from the thread owning the GC3D, so it never should have to worry about whether it&apos;s in threaded mode or not.  Its client (CCLTHI) may have to make some threading decisions, but that&apos;s not LRC&apos;s concern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641741</commentid>
    <comment_count>19</comment_count>
      <attachid>145844</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 11:20:01 -0700</bug_when>
    <thetext>Created attachment 145844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641745</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-05 11:22:56 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Nat, I&apos;ve gotten bit by the &quot;graphics context callback are called on the wrong thread&quot; issue here again.
&gt; 

Mind expanding on what this issue is?  Is it just that our debug thread tracking isn&apos;t set to &quot;impl&quot; when running GC3D callbacks, or are we actually running code on the wrong thread?  In which mode do you have an issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641751</commentid>
    <comment_count>21</comment_count>
      <attachid>145835</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 11:27:52 -0700</bug_when>
    <thetext>Comment on attachment 145835
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:67
&gt;&gt;&gt;&gt; +#include &quot;cc/CCSingleThreadProxy.h&quot;
&gt;&gt;&gt; 
&gt;&gt;&gt; Why this and not CCPRoxy?
&gt;&gt; 
&gt;&gt; This was needed for ScopedSet*Thread.  This is not the only place where CCSingleThreadProxy.h is included just for those, should I move them into CCProxy.h?
&gt; 
&gt; Woah, why does LRC need to know about the proxy at all?  LayerRendererChromium should call out to the embedder via CCRendererClient and the client implementation (normally CCLayerTreeHostImpl) should be dealing with any proxy interactions

CCProxy has been used in LRC for a while now.  Grepping the file, its only used to make a few decisions depending on CCProxy::hasImplThread and assert which thread we are on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641756</commentid>
    <comment_count>22</comment_count>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-06-05 11:29:36 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #2)
&gt; &gt; Nat, I&apos;ve gotten bit by the &quot;graphics context callback are called on the wrong thread&quot; issue here again.
&gt; &gt; 
&gt; 
&gt; Mind expanding on what this issue is?  Is it just that our debug thread tracking isn&apos;t set to &quot;impl&quot; when running GC3D callbacks, or are we actually running code on the wrong thread?  In which mode do you have an issue?

The former, our debug thread tracking isn&apos;t set to impl when running the callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641820</commentid>
    <comment_count>23</comment_count>
      <attachid>145844</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-05 13:03:40 -0700</bug_when>
    <thetext>Comment on attachment 145844
Patch

R=me. It&apos;s a bit sad to me that these ASSERT()s are getting in the way - they&apos;re supposed to just be helpful - but this seems like a pretty reasonable way to deal with them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642162</commentid>
    <comment_count>24</comment_count>
      <attachid>145844</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 21:45:11 -0700</bug_when>
    <thetext>Comment on attachment 145844
Patch

Clearing flags on attachment: 145844

Committed r119554: &lt;http://trac.webkit.org/changeset/119554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642163</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 21:45:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145121</attachid>
            <date>2012-05-31 11:38:49 -0700</date>
            <delta_ts>2012-06-05 07:56:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87996-20120531143848.patch</filename>
            <type>text/plain</type>
            <size>5270</size>
            <attacher name="Michal Mocny">mmocny</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUzYzcwOWM5YTg2YjFi
YmRkZGM5Yzc2ZjQ3ZDY4ZjA2MjJiZWFjMy4uNWM5ZTk3MDU2YjlkNWE0ODgzZTdmOGExN2I5Njhk
ODliMTQxZjI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA1LTMxICBNaWNo
YWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFNldCBk
ZWZhdWx0IG1lbW9yeSBhbGxvY2F0aW9uIGxpbWl0IGJ5dGVzIHdoZW4gR0xfQ0hST01JVU1fZ3B1
X21lbW9yeV9tYW5hZ2VyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZ3JhcGhpY3MgY29udGV4dC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29vbiB3ZSBob3Bl
IHRvIGhhdmUgcmVuZGVyZXJzIG5vdCBtYW5hZ2UgdGhlcmUgb3duIG1lbW9yeSBhbGxvY2F0aW9u
IGxpbWl0cywgYW5kIHJlbHkgZXhjbHVzaXZlbHkgb24gdGhlCisgICAgICAgIGFsbG9jYXRpb24g
Z2l2ZW4gYnkgR3B1TWVtb3J5TWFuYWdlci4gIEhvd2V2ZXIsIHdoZW4gdGhlIGdyYXBoaWNzIGNv
bnRleHQgZG9lcyBub3Qgc3VwcG9ydCB0aGF0IGV4dGVuc2lvbiwKKyAgICAgICAgc3VjaCBhcyB0
aGUgaW4gcHJvY2VzcyBvbmUgdXNlZCBmb3IgRHVtcFJlbmRlclRyZWUsIHdlIG11c3Qgc2V0IGFs
bG9jYXRpb24gbGltaXQgdG8gc29tZSBub24tMCB2YWx1ZS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6cG9zdFNldENvbnRlbnRzTWVtb3J5
QWxsb2NhdGlvbkxpbWl0Qnl0ZXNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGVidWdTY29wZWRTZXRNYWluVGhyZWFkRnJvbUVp
dGhlcik6CisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0
aGVyOjpEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlYnVnU2NvcGVkU2V0TWFpblRocmVhZEZyb21FaXRoZXI6On5EZWJ1Z1Njb3BlZFNldE1h
aW5UaHJlYWRGcm9tRWl0aGVyKToKKwogMjAxMi0wNS0zMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNo
cmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEVuYWJsZSBDU1NfSU1B
R0VfU0VUIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGE5
ZjNkNDY2NWQzNmU1MjhkM2ZlM2ZjOTFjODYwMjVmNGU5YTg3ZWQuLjRkYTJkZGNiOWRjZjk3YTNl
NTVjNjRiMDRiN2Q5MzIzZjkyODdjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9t
aXVtLmNwcApAQCAtMzE0LDYgKzMxNCw4IEBAIGJvb2wgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpp
bml0aWFsaXplKCkKICAgICAgICAgZXh0ZW5zaW9ucy0+ZW5zdXJlRW5hYmxlZCgiR0xfQ0hST01J
VU1fZ3B1X21lbW9yeV9tYW5hZ2VyIik7CiAgICAgICAgIEV4dGVuc2lvbnMzRENocm9taXVtKiBl
eHRlbnNpb25zM0RDaHJvbWl1bSA9IHN0YXRpY19jYXN0PEV4dGVuc2lvbnMzRENocm9taXVtKj4o
ZXh0ZW5zaW9ucyk7CiAgICAgICAgIGV4dGVuc2lvbnMzRENocm9taXVtLT5zZXRHcHVNZW1vcnlB
bGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQ0hST01JVU0oTGF5ZXJSZW5kZXJlckdwdU1lbW9yeUFs
bG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFwdGVyOjpjcmVhdGUodGhpcykpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIG1fY2xpZW50LT5zZXRDb250ZW50c01lbW9yeUFsbG9jYXRpb25MaW1pdEJ5
dGVzKFRleHR1cmVNYW5hZ2VyOjpoaWdoTGltaXRCeXRlcyh2aWV3cG9ydFNpemUoKSkpOwogICAg
IH0KIAogICAgIG1fY2FwYWJpbGl0aWVzLnVzaW5nRGlzY2FyZEZyYW1lYnVmZmVyID0gZXh0ZW5z
aW9ucy0+c3VwcG9ydHMoIkdMX0NIUk9NSVVNX2Rpc2NhcmRfZnJhbWVidWZmZXIiKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2lu
Z2xlVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKaW5kZXggMDExM2MwNzlhNjg0YmFhZGNk
ZDRlZTQ3MTYyYjNjZmIxOTI4Yjk4Ny4uYTM4NjAzZDQ2YjYxYTc4ZmI5Mjc3YTM3ZGRhMGQ4NzI3
YTY5Yjg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAgLTMx
MSw4ICszMTEsOSBAQCB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OnBvc3RBbmltYXRpb25FdmVu
dHNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQoUGFzc093blB0cgogCiB2b2lkIENDU2luZ2xlVGhy
ZWFkUHJveHk6OnBvc3RTZXRDb250ZW50c01lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzVG9NYWlu
VGhyZWFkT25JbXBsVGhyZWFkKHNpemVfdCBieXRlcykKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBp
cyBjYWxsZWQgdmlhIGEgZ3JhcGhpY3MgY29udGV4dCBjYWxsYmFjaywgb24gbWFpbiB0aHJlYWQg
aW4gc2luZ2xlIHRocmVhZGVkIG1vZGUsIGJlY2F1c2UgaXRzIGhhcmQgdG8gZmFrZSB0aGUgaW1w
bCB0aHJlYWQuIFRoaXMgc2hvdWxkIG5lZWQgdG8gRGVidWdTY29wZWRTZXRNYWluVGhyZWFkLCBi
dXQgaXMgYWN0dWFsbHkgYWxyZWFkeSBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgQVNTRVJUKEND
UHJveHk6OmlzTWFpblRocmVhZCgpKTsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBzb21ldGltZXMg
Y2FsbGVkIGFzIGlmIG9uIG1haW4gdGhyZWFkIHdoZW4gc2luZ2xlIHRocmVhZGVkCisgICAgLy8g
ZHVlIHRvIGdyYXBoaWNzIGNvbnRleHQgY2FsbGJhY2tzIGluY29ycmVjdGx5IGJlaW5nIG9uIG1h
aW4uCisgICAgRGVidWdTY29wZWRTZXRNYWluVGhyZWFkRnJvbUVpdGhlciBtYWluOwogICAgIEFT
U0VSVChtX2xheWVyVHJlZUhvc3QpOwogICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Q29udGVudHNN
ZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcyhieXRlcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Npbmds
ZVRocmVhZFByb3h5LmgKaW5kZXggOGZjODk4NGJmOTQwMGYyYjgzZmZiOGUxNGFkYzFlNDIwZjIx
ZGZlYy4uYzJmZmQxNGUzMGU1YTA0OTk2M2VkOTY2NWRhMWYzZDE0ZWM5MzBjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVU
aHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaApAQCAtMTQyLDYgKzE0MiwzMyBAQCBwdWJsaWM6
CiAgICAgfQogfTsKIAorLy8gRm9yIHVzZSBpbiB0aGUgc2luZ2xlLXRocmVhZGVkIGNhc2UuIElu
IGRlYnVnIGJ1aWxkcywgaXQgcHJldGVuZHMgdGhhdCB0aGUKKy8vIGNvZGUgaXMgcnVubmluZyBv
biB0aGUgbWFpbiB0aHJlYWQgdG8gc2F0aXNmeSBhc3NlcnRpb24gY2hlY2tzLgorLy8gVGhpcyB2
ZXJzaW9uIGRpZmZlcnMgZnJvbSBEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWQgaW4gdGhhdCBpdCBk
b2VzIG5vdCBhc3N1bWUKKy8vIHlvdSBhcmUgb24gdGhlIGltcGwgdGhyZWFkIHVwb24gaW5pdGlh
bGl6YXRpb24sIGFuZCB3aWxsIHJlc2V0IHRvIHRoZSBjb3JyZWN0CisvLyB2YWx1ZSBkdXJpbmcg
ZGVzdHJ1Y3Rpb24uIFRoaXMgaXMgdXNlZnVsIHdoZW4gYSBmdW5jdGlvbiBtYXkgYmUgY2FsbGVk
IGFzIGlmCisvLyBvbiB0aGUgd3JvbmcgdGhyZWFkLCBidXQgaXMgc3RpbGwgY29ycmVjdC4gVGhp
cyBpcyBqdXN0IGRlYnVnIGluZm9ybWF0aW9uLAorLy8gdXNlZCBmb3IgYXNzZXJ0aW9ucywgYW5k
IGlmIHdlIGhhZCBhbGwgY29kZSBzY29wZWQgY29ycmVjdGx5IHRoaXMgd291bGQgbm90CisvLyBi
ZSBuZWVkZWQuCitjbGFzcyBEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyIHsKK3B1
YmxpYzoKKyAgICBEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyKCkKKyAgICB7Cisj
aWYgIUFTU0VSVF9ESVNBQkxFRAorICAgICAgICBtX2luaXRpYWxWYWx1ZSA9IENDUHJveHk6Omlz
SW1wbFRocmVhZCgpOworICAgICAgICBDQ1Byb3h5OjpzZXRDdXJyZW50VGhyZWFkSXNJbXBsVGhy
ZWFkKGZhbHNlKTsKKyNlbmRpZgorICAgIH0KKyAgICB+RGVidWdTY29wZWRTZXRNYWluVGhyZWFk
RnJvbUVpdGhlcigpCisgICAgeworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICAgICAgQ0NQcm94
eTo6c2V0Q3VycmVudFRocmVhZElzSW1wbFRocmVhZChtX2luaXRpYWxWYWx1ZSk7CisjZW5kaWYK
KyAgICB9Citwcml2YXRlOgorICAgIGJvb2wgbV9pbml0aWFsVmFsdWU7Cit9OworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145795</attachid>
            <date>2012-06-05 07:56:22 -0700</date>
            <delta_ts>2012-06-05 08:42:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87996-20120605105621.patch</filename>
            <type>text/plain</type>
            <size>5311</size>
            <attacher name="Michal Mocny">mmocny</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Mzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI2NWQxYTkwM2NhODY0
YWZjYzhjZWM4MGUwMWM1NWE5ZmJhMWM5OS4uZWNiNzJiNGViYmNhZDRjYjIyOTEwYmNmOWJiNDJk
NmY1NmI5NmVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTMxICBNaWNo
YWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFNldCBk
ZWZhdWx0IG1lbW9yeSBhbGxvY2F0aW9uIGxpbWl0IGJ5dGVzIHdoZW4gR0xfQ0hST01JVU1fZ3B1
X21lbW9yeV9tYW5hZ2VyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZ3JhcGhpY3MgY29udGV4dC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29vbiB3ZSBob3Bl
IHRvIGhhdmUgcmVuZGVyZXJzIG5vdCBtYW5hZ2UgdGhlcmUgb3duIG1lbW9yeSBhbGxvY2F0aW9u
IGxpbWl0cywgYW5kIHJlbHkgZXhjbHVzaXZlbHkgb24gdGhlCisgICAgICAgIGFsbG9jYXRpb24g
Z2l2ZW4gYnkgR3B1TWVtb3J5TWFuYWdlci4gIEhvd2V2ZXIsIHdoZW4gdGhlIGdyYXBoaWNzIGNv
bnRleHQgZG9lcyBub3Qgc3VwcG9ydCB0aGUKKyAgICAgICAgR0xfQ0hST01JVU1fZ3B1X21lbW9y
eV9tYW5hZ2VyIGV4dGVuc2lvbiwgc3VjaCBhcyB0aGUgb25lIHVzZWQgYnkgRHVtcFJlbmRlclRy
ZWUsIHdlIG11c3QgZGVmYXVsdCB0aGUKKyAgICAgICAgbWVtb3J5IGFsbG9jYXRpb24gbGltaXQg
dG8gc29tZSBub24tMCB2YWx1ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJl
bmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NTaW5nbGVUaHJlYWRQcm94eTo6cG9zdFNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0
Qnl0ZXNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoRGVidWdTY29wZWRTZXRNYWluVGhyZWFkRnJvbUVpdGhlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyOjpEZWJ1Z1Njb3Bl
ZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRlYnVnU2NvcGVk
U2V0TWFpblRocmVhZEZyb21FaXRoZXI6On5EZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0
aGVyKToKKwogMjAxMi0wNi0wNCAgQWxleGVpIEZpbGlwcG92ICA8YWxleGVpZkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3BlZWQgdXAgX2NhbGN1bGF0ZVJldGFpbmVk
U2l6ZXMgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4
IDRkOTBjZTU2ODk0Mjc1ZmNiOGUzMGMyODhkNTJkZmFjODA2YjQ3YWQuLmI3YzBkNWNkOGFkNWJl
MGZmMjE1YTY3MWMyNDM4ZmE0NzIzNmVjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgImNjL0NDUmVuZGVyUGFzcy5o
IgogI2luY2x1ZGUgImNjL0NDUmVuZGVyU3VyZmFjZURyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2Mv
Q0NSZW5kZXJTdXJmYWNlRmlsdGVycy5oIgorI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFkUHJv
eHkuaCIKICNpbmNsdWRlICJjYy9DQ1NvbGlkQ29sb3JEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNj
L0NDVGV4dHVyZURyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2MvQ0NUaWxlRHJhd1F1YWQuaCIKQEAg
LTIwMCw2ICsyMDEsMjUgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uR3B1TWVtb3J5
QWxsb2NhdGlvbkNoYW5nZWQoRXh0ZW5zaW9uczNEQ2hyb21pdW06OkdwdU1lbW9yeUFsbG9jYXRp
b25DSFJPTUlVTSBhbGxvY2F0aW9uKQogICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMg
Y2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZCBpbiBzaW5nbGUgdGhyZWFkZWQgbW9kZSwgYnV0IHdl
IGV4cGVjdCBpdCBvbiB0aGUgaW1wbCB0aHJlYWQuCisgICAgICAgIGlmICghQ0NQcm94eTo6aGFz
SW1wbFRocmVhZCgpKQorICAgICAgICAgICAgb25HcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZE9u
TWFpbihhbGxvY2F0aW9uKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb25HcHVNZW1vcnlB
bGxvY2F0aW9uQ2hhbmdlZE9uSW1wbChhbGxvY2F0aW9uKTsKKworICAgIH0KKworcHJpdmF0ZToK
KyAgICB2b2lkIG9uR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRPbk1haW4oRXh0ZW5zaW9uczNE
Q2hyb21pdW06OkdwdU1lbW9yeUFsbG9jYXRpb25DSFJPTUlVTSBhbGxvY2F0aW9uKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgRGVidWdT
Y29wZWRTZXRJbXBsVGhyZWFkIGltcGw7CisgICAgICAgIG9uR3B1TWVtb3J5QWxsb2NhdGlvbkNo
YW5nZWRPbkltcGwoYWxsb2NhdGlvbik7CisgICAgfQorCisgICAgdm9pZCBvbkdwdU1lbW9yeUFs
bG9jYXRpb25DaGFuZ2VkT25JbXBsKEV4dGVuc2lvbnMzRENocm9taXVtOjpHcHVNZW1vcnlBbGxv
Y2F0aW9uQ0hST01JVU0gYWxsb2NhdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVChDQ1Byb3h5
Ojppc0ltcGxUaHJlYWQoKSk7CiAgICAgICAgIGlmICghYWxsb2NhdGlvbi5zdWdnZXN0SGF2ZUJh
Y2tidWZmZXIpCiAgICAgICAgICAgICBtX2xheWVyUmVuZGVyZXItPmRpc2NhcmRGcmFtZWJ1ZmZl
cigpOwogICAgICAgICBlbHNlCkBAIC0yMDcsNyArMjI3LDYgQEAgcHVibGljOgogICAgICAgICBt
X2xheWVyUmVuZGVyZXItPm1fY2xpZW50LT5zZXRDb250ZW50c01lbW9yeUFsbG9jYXRpb25MaW1p
dEJ5dGVzKGFsbG9jYXRpb24uZ3B1UmVzb3VyY2VTaXplSW5CeXRlcyk7CiAgICAgfQogCi1wcml2
YXRlOgogICAgIGV4cGxpY2l0IExheWVyUmVuZGVyZXJHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdl
ZENhbGxiYWNrQWRhcHRlcihMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIpCiAg
ICAgICAgIDogbV9sYXllclJlbmRlcmVyKGxheWVyUmVuZGVyZXIpCiAgICAgewpAQCAtMzIwLDYg
KzMzOSw4IEBAIGJvb2wgTGF5ZXJSZW5kZXJlckNocm9taXVtOjppbml0aWFsaXplKCkKICAgICAg
ICAgZXh0ZW5zaW9ucy0+ZW5zdXJlRW5hYmxlZCgiR0xfQ0hST01JVU1fZ3B1X21lbW9yeV9tYW5h
Z2VyIik7CiAgICAgICAgIEV4dGVuc2lvbnMzRENocm9taXVtKiBleHRlbnNpb25zM0RDaHJvbWl1
bSA9IHN0YXRpY19jYXN0PEV4dGVuc2lvbnMzRENocm9taXVtKj4oZXh0ZW5zaW9ucyk7CiAgICAg
ICAgIGV4dGVuc2lvbnMzRENocm9taXVtLT5zZXRHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENh
bGxiYWNrQ0hST01JVU0oTGF5ZXJSZW5kZXJlckdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2Fs
bGJhY2tBZGFwdGVyOjpjcmVhdGUodGhpcykpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fY2xp
ZW50LT5zZXRDb250ZW50c01lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKFRleHR1cmVNYW5hZ2Vy
OjpoaWdoTGltaXRCeXRlcyh2aWV3cG9ydFNpemUoKSkpOwogICAgIH0KIAogICAgIG1fY2FwYWJp
bGl0aWVzLnVzaW5nRGlzY2FyZEZyYW1lYnVmZmVyID0gZXh0ZW5zaW9ucy0+c3VwcG9ydHMoIkdM
X0NIUk9NSVVNX2Rpc2NhcmRfZnJhbWVidWZmZXIiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVU
aHJlYWRQcm94eS5jcHAKaW5kZXggZmEwZGVkMGZlMDM5MWFjOTdhZWI4NWI3NzI3NmNmYjRlMDZl
ZTI3OS4uYTYyY2Q2YjNiNzc1Y2M2ODhkZDg3NWJmOTY2NDYxMTJjNDRhM2FjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVU
aHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAgLTMxMCw4ICszMTAsOCBAQCB2b2lk
IENDU2luZ2xlVGhyZWFkUHJveHk6OnBvc3RBbmltYXRpb25FdmVudHNUb01haW5UaHJlYWRPbklt
cGxUaHJlYWQoUGFzc093blB0cgogCiB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OnBvc3RTZXRD
b250ZW50c01lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzVG9NYWluVGhyZWFkT25JbXBsVGhyZWFk
KHNpemVfdCBieXRlcykKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBjYWxsZWQgdmlhIGEgZ3Jh
cGhpY3MgY29udGV4dCBjYWxsYmFjaywgb24gbWFpbiB0aHJlYWQgaW4gc2luZ2xlIHRocmVhZGVk
IG1vZGUsIGJlY2F1c2UgaXRzIGhhcmQgdG8gZmFrZSB0aGUgaW1wbCB0aHJlYWQuIFRoaXMgc2hv
dWxkIG5lZWQgdG8gRGVidWdTY29wZWRTZXRNYWluVGhyZWFkLCBidXQgaXMgYWN0dWFsbHkgYWxy
ZWFkeSBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgQVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOworICAgIERlYnVnU2Nv
cGVkU2V0TWFpblRocmVhZCBtYWluOwogICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOwogICAg
IG1fbGF5ZXJUcmVlSG9zdC0+c2V0Q29udGVudHNNZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcyhi
eXRlcyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145807</attachid>
            <date>2012-06-05 08:42:29 -0700</date>
            <delta_ts>2012-06-05 09:48:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87996-20120605114228.patch</filename>
            <type>text/plain</type>
            <size>9331</size>
            <attacher name="Michal Mocny">mmocny</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Mzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI2NWQxYTkwM2NhODY0
YWZjYzhjZWM4MGUwMWM1NWE5ZmJhMWM5OS4uZWNiNzJiNGViYmNhZDRjYjIyOTEwYmNmOWJiNDJk
NmY1NmI5NmVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTMxICBNaWNo
YWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFNldCBk
ZWZhdWx0IG1lbW9yeSBhbGxvY2F0aW9uIGxpbWl0IGJ5dGVzIHdoZW4gR0xfQ0hST01JVU1fZ3B1
X21lbW9yeV9tYW5hZ2VyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZ3JhcGhpY3MgY29udGV4dC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29vbiB3ZSBob3Bl
IHRvIGhhdmUgcmVuZGVyZXJzIG5vdCBtYW5hZ2UgdGhlcmUgb3duIG1lbW9yeSBhbGxvY2F0aW9u
IGxpbWl0cywgYW5kIHJlbHkgZXhjbHVzaXZlbHkgb24gdGhlCisgICAgICAgIGFsbG9jYXRpb24g
Z2l2ZW4gYnkgR3B1TWVtb3J5TWFuYWdlci4gIEhvd2V2ZXIsIHdoZW4gdGhlIGdyYXBoaWNzIGNv
bnRleHQgZG9lcyBub3Qgc3VwcG9ydCB0aGUKKyAgICAgICAgR0xfQ0hST01JVU1fZ3B1X21lbW9y
eV9tYW5hZ2VyIGV4dGVuc2lvbiwgc3VjaCBhcyB0aGUgb25lIHVzZWQgYnkgRHVtcFJlbmRlclRy
ZWUsIHdlIG11c3QgZGVmYXVsdCB0aGUKKyAgICAgICAgbWVtb3J5IGFsbG9jYXRpb24gbGltaXQg
dG8gc29tZSBub24tMCB2YWx1ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJl
bmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NTaW5nbGVUaHJlYWRQcm94eTo6cG9zdFNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0
Qnl0ZXNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoRGVidWdTY29wZWRTZXRNYWluVGhyZWFkRnJvbUVpdGhlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyOjpEZWJ1Z1Njb3Bl
ZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRlYnVnU2NvcGVk
U2V0TWFpblRocmVhZEZyb21FaXRoZXI6On5EZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0
aGVyKToKKwogMjAxMi0wNi0wNCAgQWxleGVpIEZpbGlwcG92ICA8YWxleGVpZkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3BlZWQgdXAgX2NhbGN1bGF0ZVJldGFpbmVk
U2l6ZXMgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4
IDRkOTBjZTU2ODk0Mjc1ZmNiOGUzMGMyODhkNTJkZmFjODA2YjQ3YWQuLjMxMDE5ODI5ODEyNDYy
NDRlOTgzZGJjZjU4ZWQzZGZkYjM0ZDZkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgImNjL0NDUmVuZGVyUGFzcy5o
IgogI2luY2x1ZGUgImNjL0NDUmVuZGVyU3VyZmFjZURyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2Mv
Q0NSZW5kZXJTdXJmYWNlRmlsdGVycy5oIgorI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFkUHJv
eHkuaCIKICNpbmNsdWRlICJjYy9DQ1NvbGlkQ29sb3JEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNj
L0NDVGV4dHVyZURyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2MvQ0NUaWxlRHJhd1F1YWQuaCIKQEAg
LTE5NiwxMCArMTk3LDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgTGF5ZXJSZW5kZXJlckdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFw
dGVyKGxheWVyUmVuZGVyZXIpKTsKICAgICB9CisKICAgICB2aXJ0dWFsIH5MYXllclJlbmRlcmVy
R3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXIoKSB7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBvbkdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkKEV4dGVuc2lvbnMzRENocm9t
aXVtOjpHcHVNZW1vcnlBbGxvY2F0aW9uQ0hST01JVU0gYWxsb2NhdGlvbikKICAgICB7CisgICAg
ICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CiAgICAgICAgIGlmICghYWxsb2Nh
dGlvbi5zdWdnZXN0SGF2ZUJhY2tidWZmZXIpCiAgICAgICAgICAgICBtX2xheWVyUmVuZGVyZXIt
PmRpc2NhcmRGcmFtZWJ1ZmZlcigpOwogICAgICAgICBlbHNlCkBAIC0yMDcsMTUgKzIxMCwzOSBA
QCBwdWJsaWM6CiAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+bV9jbGllbnQtPnNldENvbnRlbnRz
TWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoYWxsb2NhdGlvbi5ncHVSZXNvdXJjZVNpemVJbkJ5
dGVzKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgTGF5ZXJS
ZW5kZXJlckdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFwdGVyKExheWVyUmVu
ZGVyZXJDaHJvbWl1bSogbGF5ZXJSZW5kZXJlcikKICAgICAgICAgOiBtX2xheWVyUmVuZGVyZXIo
bGF5ZXJSZW5kZXJlcikKICAgICB7CiAgICAgfQogCitwcml2YXRlOgogICAgIExheWVyUmVuZGVy
ZXJDaHJvbWl1bSogbV9sYXllclJlbmRlcmVyOwogfTsKIAorY2xhc3MgTGF5ZXJSZW5kZXJlckdw
dU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFwdGVyU2luZ2xlVGhyZWFkIDogcHVi
bGljIExheWVyUmVuZGVyZXJHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8TGF5ZXJSZW5kZXJlckdwdU1lbW9y
eUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFwdGVyPiBjcmVhdGUoTGF5ZXJSZW5kZXJlckNo
cm9taXVtKiBsYXllclJlbmRlcmVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXJT
aW5nbGVUaHJlYWQobGF5ZXJSZW5kZXJlcikpOworICAgIH0KKworICAgIHZpcnR1YWwgfkxheWVy
UmVuZGVyZXJHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRlclNpbmdsZVRo
cmVhZCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIG9uR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5n
ZWQoRXh0ZW5zaW9uczNEQ2hyb21pdW06OkdwdU1lbW9yeUFsbG9jYXRpb25DSFJPTUlVTSBhbGxv
Y2F0aW9uKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgY2FsbGVkIG9uIHRoZSBt
YWluIHRocmVhZCBpbiBzaW5nbGUgdGhyZWFkZWQgbW9kZSwgYnV0IHdlIGV4cGVjdCBpdCBvbiB0
aGUgaW1wbCB0aHJlYWQuCisgICAgICAgIEFTU0VSVChDQ1Byb3h5Ojppc01haW5UaHJlYWQoKSk7
CisgICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsOworICAgICAgICBMYXllclJl
bmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXI6Om9uR3B1TWVt
b3J5QWxsb2NhdGlvbkNoYW5nZWQoYWxsb2NhdGlvbik7CisgICAgfQorCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IExheWVyUmVuZGVyZXJHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNr
QWRhcHRlclNpbmdsZVRocmVhZChMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIp
CisgICAgICAgIDogTGF5ZXJSZW5kZXJlckdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJh
Y2tBZGFwdGVyKGxheWVyUmVuZGVyZXIpCisgICAgeworICAgIH0KK307CiAKIFBhc3NPd25QdHI8
TGF5ZXJSZW5kZXJlckNocm9taXVtPiBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNyZWF0ZShDQ1Jl
bmRlcmVyQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRl
eHQsIFRleHR1cmVVcGxvYWRlck9wdGlvbiB0ZXh0dXJlVXBsb2FkZXJTZXR0aW5nKQogewpAQCAt
MzE5LDcgKzM0NiwxMiBAQCBib29sIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6aW5pdGlhbGl6ZSgp
CiAgICAgaWYgKG1fY2FwYWJpbGl0aWVzLnVzaW5nR3B1TWVtb3J5TWFuYWdlcikgewogICAgICAg
ICBleHRlbnNpb25zLT5lbnN1cmVFbmFibGVkKCJHTF9DSFJPTUlVTV9ncHVfbWVtb3J5X21hbmFn
ZXIiKTsKICAgICAgICAgRXh0ZW5zaW9uczNEQ2hyb21pdW0qIGV4dGVuc2lvbnMzRENocm9taXVt
ID0gc3RhdGljX2Nhc3Q8RXh0ZW5zaW9uczNEQ2hyb21pdW0qPihleHRlbnNpb25zKTsKLSAgICAg
ICAgZXh0ZW5zaW9uczNEQ2hyb21pdW0tPnNldEdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2Fs
bGJhY2tDSFJPTUlVTShMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxs
YmFja0FkYXB0ZXI6OmNyZWF0ZSh0aGlzKSk7CisgICAgICAgIGlmIChDQ1Byb3h5OjpoYXNJbXBs
VGhyZWFkKCkpCisgICAgICAgICAgICBleHRlbnNpb25zM0RDaHJvbWl1bS0+c2V0R3B1TWVtb3J5
QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKExheWVyUmVuZGVyZXJHcHVNZW1vcnlB
bGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRlcjo6Y3JlYXRlKHRoaXMpKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgZXh0ZW5zaW9uczNEQ2hyb21pdW0tPnNldEdwdU1lbW9yeUFsbG9j
YXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTShMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2Nh
dGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXJTaW5nbGVUaHJlYWQ6OmNyZWF0ZSh0aGlzKSk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgbV9jbGllbnQtPnNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlv
bkxpbWl0Qnl0ZXMoVGV4dHVyZU1hbmFnZXI6OmhpZ2hMaW1pdEJ5dGVzKHZpZXdwb3J0U2l6ZSgp
KSk7CiAgICAgfQogCiAgICAgbV9jYXBhYmlsaXRpZXMudXNpbmdEaXNjYXJkRnJhbWVidWZmZXIg
PSBleHRlbnNpb25zLT5zdXBwb3J0cygiR0xfQ0hST01JVU1fZGlzY2FyZF9mcmFtZWJ1ZmZlciIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBmYTBkZWQwZmUw
MzkxYWM5N2FlYjg1Yjc3Mjc2Y2ZiNGUwNmVlMjc5Li5hNjJjZDZiM2I3NzVjYzY4OGRkODc1YmY5
NjY0NjExMmM0NGEzYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNw
cApAQCAtMzEwLDggKzMxMCw4IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6cG9zdEFuaW1h
dGlvbkV2ZW50c1RvTWFpblRocmVhZE9uSW1wbFRocmVhZChQYXNzT3duUHRyCiAKIHZvaWQgQ0NT
aW5nbGVUaHJlYWRQcm94eTo6cG9zdFNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0
ZXNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQoc2l6ZV90IGJ5dGVzKQogewotICAgIC8vIEZJWE1F
OiBUaGlzIGlzIGNhbGxlZCB2aWEgYSBncmFwaGljcyBjb250ZXh0IGNhbGxiYWNrLCBvbiBtYWlu
IHRocmVhZCBpbiBzaW5nbGUgdGhyZWFkZWQgbW9kZSwgYmVjYXVzZSBpdHMgaGFyZCB0byBmYWtl
IHRoZSBpbXBsIHRocmVhZC4gVGhpcyBzaG91bGQgbmVlZCB0byBEZWJ1Z1Njb3BlZFNldE1haW5U
aHJlYWQsIGJ1dCBpcyBhY3R1YWxseSBhbHJlYWR5IG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICBB
U1NFUlQoQ0NQcm94eTo6aXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChDQ1Byb3h5Ojppc0lt
cGxUaHJlYWQoKSk7CisgICAgRGVidWdTY29wZWRTZXRNYWluVGhyZWFkIG1haW47CiAgICAgQVNT
RVJUKG1fbGF5ZXJUcmVlSG9zdCk7CiAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRDb250ZW50c01l
bW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKGJ5dGVzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QuY3BwCmlu
ZGV4IDMxNDgyZWQ5OTcxODA2ZWZmZDBhYTg4ZTg3ZjljNTlmMDM5ZDEwODIuLjE5MmZlMWRlMGI4
MDIzNjQ1OTNmODBkMjc3ZDM3NTVmOTQ4ZTEyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcApAQCAt
NjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgRmFrZUNDUmVuZGVyZXJDbGllbnQoKQogICAgICAg
ICA6IG1fc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50KDApCiAgICAgICAgICwgbV9yb290TGF5
ZXIoQ0NMYXllckltcGw6OmNyZWF0ZSgxKSkKKyAgICAgICAgLCBtX21lbW9yeUFsbG9jYXRpb25M
aW1pdEJ5dGVzKDApCiAgICAgewogICAgICAgICBtX3Jvb3RMYXllci0+Y3JlYXRlUmVuZGVyU3Vy
ZmFjZSgpOwogICAgIH0KQEAgLTc2LDE3ICs3NywyMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRpZExvc2VDb250ZXh0KCkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3dh
cEJ1ZmZlcnNDb21wbGV0ZSgpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRGdWxs
Um9vdExheWVyRGFtYWdlKCkgT1ZFUlJJREUgeyBtX3NldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3Vu
dCsrOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0
Qnl0ZXMoc2l6ZV90KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNN
ZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcyhzaXplX3QgYnl0ZXMpIE9WRVJSSURFIHsgbV9tZW1v
cnlBbGxvY2F0aW9uTGltaXRCeXRlcyA9IGJ5dGVzOyB9CiAKICAgICAvLyBNZXRob2RzIGFkZGVk
IGZvciB0ZXN0LgogICAgIGludCBzZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQoKSBjb25zdCB7
IHJldHVybiBtX3NldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudDsgfQogCiAgICAgQ0NMYXllcklt
cGwqIHJvb3RMYXllcigpIHsgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9CiAKKyAgICBzaXpl
X3QgbWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX21lbW9yeUFs
bG9jYXRpb25MaW1pdEJ5dGVzOyB9CisKIHByaXZhdGU6CiAgICAgaW50IG1fc2V0RnVsbFJvb3RM
YXllckRhbWFnZUNvdW50OwogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBtX2ltcGxUaHJl
YWQ7CiAgICAgT3duUHRyPENDTGF5ZXJJbXBsPiBtX3Jvb3RMYXllcjsKKyAgICBzaXplX3QgbV9t
ZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlczsKIH07CiAKIGNsYXNzIEZha2VMYXllclJlbmRlcmVy
Q2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJSZW5kZXJlckNocm9taXVtIHsKQEAgLTMxNiwzICszMjAs
MjUgQEAgVEVTVChMYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0MiwgaW5pdGlhbGl6YXRpb25XaXRo
UXVpY2tseUxvc3RDb250ZXh0RG9lc05vdEFzc2UKIAogICAgIGxheWVyUmVuZGVyZXJDaHJvbWl1
bS5pbml0aWFsaXplKCk7CiB9CisKK2NsYXNzIE5vbkdwdU1lbW9yeU1hbmFnaW5nRmFrZUNvbnRl
eHQgOiBwdWJsaWMgRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEIHsKK3B1YmxpYzoKKyAgICBOb25H
cHVNZW1vcnlNYW5hZ2luZ0Zha2VDb250ZXh0KCkgeyB9CisKKyAgICAvLyBXZWJHcmFwaGljc0Nv
bnRleHQzRCBtZXRob2RzLgorCisgICAgLy8gVGhpcyBtZXRob2Qgd291bGQgbm9ybWFsbHkgZG8g
YSBnbFN3YXBCdWZmZXJzIHVuZGVyIHRoZSBob29kLgorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJl
VGV4dHVyZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNZW1vcnlBbGxvY2F0aW9uQ2hhbmdl
ZENhbGxiYWNrQ0hST01JVU0oV2ViR3JhcGhpY3NNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxi
YWNrQ0hST01JVU0qIGNhbGxiYWNrKSB7IH0KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRTdHJp
bmcoV2ViS2l0OjpXR0MzRGVudW0gbmFtZSkgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KK307CisK
K1RFU1QoTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdDIsIGluaXRpYWxpemF0aW9uV2l0aG91dEdw
dU1lbW9yeU1hbmFnZXJFeHRlbnNpb25TdXBwb3J0U2hvdWxkRGVmYXVsdFRvTm9uWmVyb0FsbG9j
YXRpb24pCit7CisgICAgRmFrZUNDUmVuZGVyZXJDbGllbnQgbW9ja0NsaWVudDsKKyAgICBGYWtl
TGF5ZXJSZW5kZXJlckNocm9taXVtIGxheWVyUmVuZGVyZXJDaHJvbWl1bSgmbW9ja0NsaWVudCwg
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29u
dGV4dChhZG9wdFB0cihuZXcgTm9uR3B1TWVtb3J5TWFuYWdpbmdGYWtlQ29udGV4dCksIEdyYXBo
aWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykpOworCisgICAgbGF5ZXJS
ZW5kZXJlckNocm9taXVtLmluaXRpYWxpemUoKTsKKworICAgIEVYUEVDVF9HVChtb2NrQ2xpZW50
Lm1lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKCksIDB1bCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145824</attachid>
            <date>2012-06-05 09:48:21 -0700</date>
            <delta_ts>2012-06-05 10:41:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87996-20120605124820.patch</filename>
            <type>text/plain</type>
            <size>10505</size>
            <attacher name="Michal Mocny">mmocny</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Mzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI2NWQxYTkwM2NhODY0
YWZjYzhjZWM4MGUwMWM1NWE5ZmJhMWM5OS4uZWNiNzJiNGViYmNhZDRjYjIyOTEwYmNmOWJiNDJk
NmY1NmI5NmVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTMxICBNaWNo
YWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFNldCBk
ZWZhdWx0IG1lbW9yeSBhbGxvY2F0aW9uIGxpbWl0IGJ5dGVzIHdoZW4gR0xfQ0hST01JVU1fZ3B1
X21lbW9yeV9tYW5hZ2VyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZ3JhcGhpY3MgY29udGV4dC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29vbiB3ZSBob3Bl
IHRvIGhhdmUgcmVuZGVyZXJzIG5vdCBtYW5hZ2UgdGhlcmUgb3duIG1lbW9yeSBhbGxvY2F0aW9u
IGxpbWl0cywgYW5kIHJlbHkgZXhjbHVzaXZlbHkgb24gdGhlCisgICAgICAgIGFsbG9jYXRpb24g
Z2l2ZW4gYnkgR3B1TWVtb3J5TWFuYWdlci4gIEhvd2V2ZXIsIHdoZW4gdGhlIGdyYXBoaWNzIGNv
bnRleHQgZG9lcyBub3Qgc3VwcG9ydCB0aGUKKyAgICAgICAgR0xfQ0hST01JVU1fZ3B1X21lbW9y
eV9tYW5hZ2VyIGV4dGVuc2lvbiwgc3VjaCBhcyB0aGUgb25lIHVzZWQgYnkgRHVtcFJlbmRlclRy
ZWUsIHdlIG11c3QgZGVmYXVsdCB0aGUKKyAgICAgICAgbWVtb3J5IGFsbG9jYXRpb24gbGltaXQg
dG8gc29tZSBub24tMCB2YWx1ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJl
bmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NTaW5nbGVUaHJlYWRQcm94eTo6cG9zdFNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0
Qnl0ZXNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoRGVidWdTY29wZWRTZXRNYWluVGhyZWFkRnJvbUVpdGhlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyOjpEZWJ1Z1Njb3Bl
ZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRlYnVnU2NvcGVk
U2V0TWFpblRocmVhZEZyb21FaXRoZXI6On5EZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0
aGVyKToKKwogMjAxMi0wNi0wNCAgQWxleGVpIEZpbGlwcG92ICA8YWxleGVpZkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3BlZWQgdXAgX2NhbGN1bGF0ZVJldGFpbmVk
U2l6ZXMgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4
IDRkOTBjZTU2ODk0Mjc1ZmNiOGUzMGMyODhkNTJkZmFjODA2YjQ3YWQuLjMxMDE5ODI5ODEyNDYy
NDRlOTgzZGJjZjU4ZWQzZGZkYjM0ZDZkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgImNjL0NDUmVuZGVyUGFzcy5o
IgogI2luY2x1ZGUgImNjL0NDUmVuZGVyU3VyZmFjZURyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2Mv
Q0NSZW5kZXJTdXJmYWNlRmlsdGVycy5oIgorI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFkUHJv
eHkuaCIKICNpbmNsdWRlICJjYy9DQ1NvbGlkQ29sb3JEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNj
L0NDVGV4dHVyZURyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2MvQ0NUaWxlRHJhd1F1YWQuaCIKQEAg
LTE5NiwxMCArMTk3LDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgTGF5ZXJSZW5kZXJlckdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFw
dGVyKGxheWVyUmVuZGVyZXIpKTsKICAgICB9CisKICAgICB2aXJ0dWFsIH5MYXllclJlbmRlcmVy
R3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXIoKSB7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBvbkdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkKEV4dGVuc2lvbnMzRENocm9t
aXVtOjpHcHVNZW1vcnlBbGxvY2F0aW9uQ0hST01JVU0gYWxsb2NhdGlvbikKICAgICB7CisgICAg
ICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CiAgICAgICAgIGlmICghYWxsb2Nh
dGlvbi5zdWdnZXN0SGF2ZUJhY2tidWZmZXIpCiAgICAgICAgICAgICBtX2xheWVyUmVuZGVyZXIt
PmRpc2NhcmRGcmFtZWJ1ZmZlcigpOwogICAgICAgICBlbHNlCkBAIC0yMDcsMTUgKzIxMCwzOSBA
QCBwdWJsaWM6CiAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+bV9jbGllbnQtPnNldENvbnRlbnRz
TWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoYWxsb2NhdGlvbi5ncHVSZXNvdXJjZVNpemVJbkJ5
dGVzKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgTGF5ZXJS
ZW5kZXJlckdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFwdGVyKExheWVyUmVu
ZGVyZXJDaHJvbWl1bSogbGF5ZXJSZW5kZXJlcikKICAgICAgICAgOiBtX2xheWVyUmVuZGVyZXIo
bGF5ZXJSZW5kZXJlcikKICAgICB7CiAgICAgfQogCitwcml2YXRlOgogICAgIExheWVyUmVuZGVy
ZXJDaHJvbWl1bSogbV9sYXllclJlbmRlcmVyOwogfTsKIAorY2xhc3MgTGF5ZXJSZW5kZXJlckdw
dU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFwdGVyU2luZ2xlVGhyZWFkIDogcHVi
bGljIExheWVyUmVuZGVyZXJHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8TGF5ZXJSZW5kZXJlckdwdU1lbW9y
eUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFwdGVyPiBjcmVhdGUoTGF5ZXJSZW5kZXJlckNo
cm9taXVtKiBsYXllclJlbmRlcmVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXJT
aW5nbGVUaHJlYWQobGF5ZXJSZW5kZXJlcikpOworICAgIH0KKworICAgIHZpcnR1YWwgfkxheWVy
UmVuZGVyZXJHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRlclNpbmdsZVRo
cmVhZCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIG9uR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5n
ZWQoRXh0ZW5zaW9uczNEQ2hyb21pdW06OkdwdU1lbW9yeUFsbG9jYXRpb25DSFJPTUlVTSBhbGxv
Y2F0aW9uKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgY2FsbGVkIG9uIHRoZSBt
YWluIHRocmVhZCBpbiBzaW5nbGUgdGhyZWFkZWQgbW9kZSwgYnV0IHdlIGV4cGVjdCBpdCBvbiB0
aGUgaW1wbCB0aHJlYWQuCisgICAgICAgIEFTU0VSVChDQ1Byb3h5Ojppc01haW5UaHJlYWQoKSk7
CisgICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsOworICAgICAgICBMYXllclJl
bmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXI6Om9uR3B1TWVt
b3J5QWxsb2NhdGlvbkNoYW5nZWQoYWxsb2NhdGlvbik7CisgICAgfQorCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IExheWVyUmVuZGVyZXJHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNr
QWRhcHRlclNpbmdsZVRocmVhZChMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIp
CisgICAgICAgIDogTGF5ZXJSZW5kZXJlckdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJh
Y2tBZGFwdGVyKGxheWVyUmVuZGVyZXIpCisgICAgeworICAgIH0KK307CiAKIFBhc3NPd25QdHI8
TGF5ZXJSZW5kZXJlckNocm9taXVtPiBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNyZWF0ZShDQ1Jl
bmRlcmVyQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRl
eHQsIFRleHR1cmVVcGxvYWRlck9wdGlvbiB0ZXh0dXJlVXBsb2FkZXJTZXR0aW5nKQogewpAQCAt
MzE5LDcgKzM0NiwxMiBAQCBib29sIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6aW5pdGlhbGl6ZSgp
CiAgICAgaWYgKG1fY2FwYWJpbGl0aWVzLnVzaW5nR3B1TWVtb3J5TWFuYWdlcikgewogICAgICAg
ICBleHRlbnNpb25zLT5lbnN1cmVFbmFibGVkKCJHTF9DSFJPTUlVTV9ncHVfbWVtb3J5X21hbmFn
ZXIiKTsKICAgICAgICAgRXh0ZW5zaW9uczNEQ2hyb21pdW0qIGV4dGVuc2lvbnMzRENocm9taXVt
ID0gc3RhdGljX2Nhc3Q8RXh0ZW5zaW9uczNEQ2hyb21pdW0qPihleHRlbnNpb25zKTsKLSAgICAg
ICAgZXh0ZW5zaW9uczNEQ2hyb21pdW0tPnNldEdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2Fs
bGJhY2tDSFJPTUlVTShMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxs
YmFja0FkYXB0ZXI6OmNyZWF0ZSh0aGlzKSk7CisgICAgICAgIGlmIChDQ1Byb3h5OjpoYXNJbXBs
VGhyZWFkKCkpCisgICAgICAgICAgICBleHRlbnNpb25zM0RDaHJvbWl1bS0+c2V0R3B1TWVtb3J5
QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKExheWVyUmVuZGVyZXJHcHVNZW1vcnlB
bGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRlcjo6Y3JlYXRlKHRoaXMpKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgZXh0ZW5zaW9uczNEQ2hyb21pdW0tPnNldEdwdU1lbW9yeUFsbG9j
YXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTShMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2Nh
dGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXJTaW5nbGVUaHJlYWQ6OmNyZWF0ZSh0aGlzKSk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgbV9jbGllbnQtPnNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlv
bkxpbWl0Qnl0ZXMoVGV4dHVyZU1hbmFnZXI6OmhpZ2hMaW1pdEJ5dGVzKHZpZXdwb3J0U2l6ZSgp
KSk7CiAgICAgfQogCiAgICAgbV9jYXBhYmlsaXRpZXMudXNpbmdEaXNjYXJkRnJhbWVidWZmZXIg
PSBleHRlbnNpb25zLT5zdXBwb3J0cygiR0xfQ0hST01JVU1fZGlzY2FyZF9mcmFtZWJ1ZmZlciIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBmYTBkZWQwZmUw
MzkxYWM5N2FlYjg1Yjc3Mjc2Y2ZiNGUwNmVlMjc5Li5hNjJjZDZiM2I3NzVjYzY4OGRkODc1YmY5
NjY0NjExMmM0NGEzYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNw
cApAQCAtMzEwLDggKzMxMCw4IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6cG9zdEFuaW1h
dGlvbkV2ZW50c1RvTWFpblRocmVhZE9uSW1wbFRocmVhZChQYXNzT3duUHRyCiAKIHZvaWQgQ0NT
aW5nbGVUaHJlYWRQcm94eTo6cG9zdFNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0
ZXNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQoc2l6ZV90IGJ5dGVzKQogewotICAgIC8vIEZJWE1F
OiBUaGlzIGlzIGNhbGxlZCB2aWEgYSBncmFwaGljcyBjb250ZXh0IGNhbGxiYWNrLCBvbiBtYWlu
IHRocmVhZCBpbiBzaW5nbGUgdGhyZWFkZWQgbW9kZSwgYmVjYXVzZSBpdHMgaGFyZCB0byBmYWtl
IHRoZSBpbXBsIHRocmVhZC4gVGhpcyBzaG91bGQgbmVlZCB0byBEZWJ1Z1Njb3BlZFNldE1haW5U
aHJlYWQsIGJ1dCBpcyBhY3R1YWxseSBhbHJlYWR5IG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICBB
U1NFUlQoQ0NQcm94eTo6aXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChDQ1Byb3h5Ojppc0lt
cGxUaHJlYWQoKSk7CisgICAgRGVidWdTY29wZWRTZXRNYWluVGhyZWFkIG1haW47CiAgICAgQVNT
RVJUKG1fbGF5ZXJUcmVlSG9zdCk7CiAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRDb250ZW50c01l
bW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKGJ5dGVzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QuY3BwCmlu
ZGV4IDMxNDgyZWQ5OTcxODA2ZWZmZDBhYTg4ZTg3ZjljNTlmMDM5ZDEwODIuLjQxNTYxMTljZGM5
MzkzZmYyOGU0ODc1MGQ4MzNmYzRkYjBjNjkxOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgImNjL0NDU2lu
Z2xlVGhyZWFkUHJveHkuaCIKIAogI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CkBAIC01NCw3ICs1
NSwxMyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZXRob2RzIGFkZGVkIGZvciB0ZXN0LgogICAgIGlu
dCBmcmFtZUNvdW50KCkgeyByZXR1cm4gbV9mcmFtZTsgfQotICAgIHZvaWQgc2V0TWVtb3J5QWxs
b2NhdGlvbihXZWJHcmFwaGljc01lbW9yeUFsbG9jYXRpb24gYWxsb2NhdGlvbikgeyBtX21lbW9y
eUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2stPm9uTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWQoYWxs
b2NhdGlvbik7IH0KKyAgICB2b2lkIHNldE1lbW9yeUFsbG9jYXRpb24oV2ViR3JhcGhpY3NNZW1v
cnlBbGxvY2F0aW9uIGFsbG9jYXRpb24pCisgICAgeworICAgICAgICBBU1NFUlQoQ0NQcm94eTo6
aXNJbXBsVGhyZWFkKCkpOworICAgICAgICAvLyBJbiBzaW5nbGUgdGhyZWFkZWQgbW9kZSB3ZSBl
eHBlY3QgdGhpcyBjYWxsYmFjayBvbiBtYWluIHRocmVhZC4KKyAgICAgICAgRGVidWdTY29wZWRT
ZXRNYWluVGhyZWFkIG1haW47CisgICAgICAgIG1fbWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxs
YmFjay0+b25NZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZChhbGxvY2F0aW9uKTsKKyAgICB9CiAKIHBy
aXZhdGU6CiAgICAgaW50IG1fZnJhbWU7CkBAIC02Niw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICBG
YWtlQ0NSZW5kZXJlckNsaWVudCgpCiAgICAgICAgIDogbV9zZXRGdWxsUm9vdExheWVyRGFtYWdl
Q291bnQoMCkKICAgICAgICAgLCBtX3Jvb3RMYXllcihDQ0xheWVySW1wbDo6Y3JlYXRlKDEpKQor
ICAgICAgICAsIG1fbWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoMCkKICAgICB7CiAgICAgICAg
IG1fcm9vdExheWVyLT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7CiAgICAgfQpAQCAtNzYsMTcgKzg0
LDIwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZUNvbnRleHQoKSBPVkVSUklE
RSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25Td2FwQnVmZmVyc0NvbXBsZXRlKCkgT1ZFUlJJREUg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEZ1bGxSb290TGF5ZXJEYW1hZ2UoKSBPVkVSUklERSB7
IG1fc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50Kys7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29udGVudHNNZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcyhzaXplX3QpIE9WRVJSSURFIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c01lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKHNp
emVfdCBieXRlcykgT1ZFUlJJREUgeyBtX21lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzID0gYnl0
ZXM7IH0KIAogICAgIC8vIE1ldGhvZHMgYWRkZWQgZm9yIHRlc3QuCiAgICAgaW50IHNldEZ1bGxS
b290TGF5ZXJEYW1hZ2VDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0RnVsbFJvb3RMYXllckRh
bWFnZUNvdW50OyB9CiAKICAgICBDQ0xheWVySW1wbCogcm9vdExheWVyKCkgeyByZXR1cm4gbV9y
b290TGF5ZXIuZ2V0KCk7IH0KIAorICAgIHNpemVfdCBtZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRl
cygpIGNvbnN0IHsgcmV0dXJuIG1fbWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXM7IH0KKwogcHJp
dmF0ZToKICAgICBpbnQgbV9zZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQ7CiAgICAgRGVidWdT
Y29wZWRTZXRJbXBsVGhyZWFkIG1faW1wbFRocmVhZDsKICAgICBPd25QdHI8Q0NMYXllckltcGw+
IG1fcm9vdExheWVyOworICAgIHNpemVfdCBtX21lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzOwog
fTsKIAogY2xhc3MgRmFrZUxheWVyUmVuZGVyZXJDaHJvbWl1bSA6IHB1YmxpYyBMYXllclJlbmRl
cmVyQ2hyb21pdW0gewpAQCAtMTEzLDkgKzEyNCwxNSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0
dWFsIHZvaWQgU2V0VXAoKQogICAgIHsKKyAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjpp
bml0aWFsaXplKDApOwogICAgICAgICBtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5pbml0aWFsaXpl
KCk7CiAgICAgfQogCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkKKyAgICB7CisgICAgICAg
IFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKKyAgICB9CisKICAgICB2b2lkIHN3
YXBCdWZmZXJzKCkKICAgICB7CiAgICAgICAgIG1fbGF5ZXJSZW5kZXJlckNocm9taXVtLnN3YXBC
dWZmZXJzKEludFJlY3QoKSk7CkBAIC0zMTYsMyArMzMzLDI1IEBAIFRFU1QoTGF5ZXJSZW5kZXJl
ckNocm9taXVtVGVzdDIsIGluaXRpYWxpemF0aW9uV2l0aFF1aWNrbHlMb3N0Q29udGV4dERvZXNO
b3RBc3NlCiAKICAgICBsYXllclJlbmRlcmVyQ2hyb21pdW0uaW5pdGlhbGl6ZSgpOwogfQorCitj
bGFzcyBOb25HcHVNZW1vcnlNYW5hZ2luZ0Zha2VDb250ZXh0IDogcHVibGljIEZha2VXZWJHcmFw
aGljc0NvbnRleHQzRCB7CitwdWJsaWM6CisgICAgTm9uR3B1TWVtb3J5TWFuYWdpbmdGYWtlQ29u
dGV4dCgpIHsgfQorCisgICAgLy8gV2ViR3JhcGhpY3NDb250ZXh0M0QgbWV0aG9kcy4KKworICAg
IC8vIFRoaXMgbWV0aG9kIHdvdWxkIG5vcm1hbGx5IGRvIGEgZ2xTd2FwQnVmZmVycyB1bmRlciB0
aGUgaG9vZC4KKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRleHR1cmUoKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKFdlYkdy
YXBoaWNzTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKiBjYWxsYmFjaykg
eyB9CisgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U3RyaW5nKFdlYktpdDo6V0dDM0RlbnVtIG5h
bWUpIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9Cit9OworCitURVNUKExheWVyUmVuZGVyZXJDaHJv
bWl1bVRlc3QyLCBpbml0aWFsaXphdGlvbldpdGhvdXRHcHVNZW1vcnlNYW5hZ2VyRXh0ZW5zaW9u
U3VwcG9ydFNob3VsZERlZmF1bHRUb05vblplcm9BbGxvY2F0aW9uKQoreworICAgIEZha2VDQ1Jl
bmRlcmVyQ2xpZW50IG1vY2tDbGllbnQ7CisgICAgRmFrZUxheWVyUmVuZGVyZXJDaHJvbWl1bSBs
YXllclJlbmRlcmVyQ2hyb21pdW0oJm1vY2tDbGllbnQsIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQdHIobmV3IE5vbkdw
dU1lbW9yeU1hbmFnaW5nRmFrZUNvbnRleHQpLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGly
ZWN0bHlUb0hvc3RXaW5kb3cpKTsKKworICAgIGxheWVyUmVuZGVyZXJDaHJvbWl1bS5pbml0aWFs
aXplKCk7CisKKyAgICBFWFBFQ1RfR1QobW9ja0NsaWVudC5tZW1vcnlBbGxvY2F0aW9uTGltaXRC
eXRlcygpLCAwdWwpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145835</attachid>
            <date>2012-06-05 10:41:23 -0700</date>
            <delta_ts>2012-06-05 11:27:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87996-20120605134122.patch</filename>
            <type>text/plain</type>
            <size>10434</size>
            <attacher name="Michal Mocny">mmocny</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZmMTljZGY1OTNhZDlk
MjAzZTU3YjJjMWI3ZjVjMjg1MzRjMjNkYS4uZWFhMDQ5OGMzZTU3NTMwNDAzNDFjOGM3Mjk3ZGFl
YTMzNGVlNzllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTMxICBNaWNo
YWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFNldCBk
ZWZhdWx0IG1lbW9yeSBhbGxvY2F0aW9uIGxpbWl0IGJ5dGVzIHdoZW4gR0xfQ0hST01JVU1fZ3B1
X21lbW9yeV9tYW5hZ2VyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZ3JhcGhpY3MgY29udGV4dC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29vbiB3ZSBob3Bl
IHRvIGhhdmUgcmVuZGVyZXJzIG5vdCBtYW5hZ2UgdGhlcmUgb3duIG1lbW9yeSBhbGxvY2F0aW9u
IGxpbWl0cywgYW5kIHJlbHkgZXhjbHVzaXZlbHkgb24gdGhlCisgICAgICAgIGFsbG9jYXRpb24g
Z2l2ZW4gYnkgR3B1TWVtb3J5TWFuYWdlci4gIEhvd2V2ZXIsIHdoZW4gdGhlIGdyYXBoaWNzIGNv
bnRleHQgZG9lcyBub3Qgc3VwcG9ydCB0aGUKKyAgICAgICAgR0xfQ0hST01JVU1fZ3B1X21lbW9y
eV9tYW5hZ2VyIGV4dGVuc2lvbiwgc3VjaCBhcyB0aGUgb25lIHVzZWQgYnkgRHVtcFJlbmRlclRy
ZWUsIHdlIG11c3QgZGVmYXVsdCB0aGUKKyAgICAgICAgbWVtb3J5IGFsbG9jYXRpb24gbGltaXQg
dG8gc29tZSBub24tMCB2YWx1ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJl
bmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NTaW5nbGVUaHJlYWRQcm94eTo6cG9zdFNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0
Qnl0ZXNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoRGVidWdTY29wZWRTZXRNYWluVGhyZWFkRnJvbUVpdGhlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyOjpEZWJ1Z1Njb3Bl
ZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRlYnVnU2NvcGVk
U2V0TWFpblRocmVhZEZyb21FaXRoZXI6On5EZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0
aGVyKToKKwogMjAxMi0wNi0wNSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbmRlciB0aW1lbGluZSBwYWludCBjYXRlZ29y
eSBkYXJrIGdyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAppbmRleCA4
ZGU0NDljMDM0ZDA4ZWQ1Mjc5N2ZjY2RjMmE1YjVmNTE0ZGIzNjc2Li5kNTE2NzIwNDQyMzhmZTg4
ZDcwNTVhM2Q4NmQwMGE4MGMxMTc2ZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5jcHAKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYy9DQ1JlbmRlclBhc3MuaCIK
ICNpbmNsdWRlICJjYy9DQ1JlbmRlclBhc3NEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNjL0NDUmVu
ZGVyU3VyZmFjZUZpbHRlcnMuaCIKKyNpbmNsdWRlICJjYy9DQ1NpbmdsZVRocmVhZFByb3h5Lmgi
CiAjaW5jbHVkZSAiY2MvQ0NTb2xpZENvbG9yRHJhd1F1YWQuaCIKICNpbmNsdWRlICJjYy9DQ1Rl
eHR1cmVEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNjL0NDVGlsZURyYXdRdWFkLmgiCkBAIC0xOTks
NiArMjAwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uR3B1TWVtb3J5QWxsb2Nh
dGlvbkNoYW5nZWQoRXh0ZW5zaW9uczNEQ2hyb21pdW06OkdwdU1lbW9yeUFsbG9jYXRpb25DSFJP
TUlVTSBhbGxvY2F0aW9uKQogICAgIHsKKyAgICAgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRo
cmVhZCgpKTsKICAgICAgICAgaWYgKCFhbGxvY2F0aW9uLnN1Z2dlc3RIYXZlQmFja2J1ZmZlcikK
ICAgICAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+ZGlzY2FyZEZyYW1lYnVmZmVyKCk7CiAgICAg
ICAgIGVsc2UKQEAgLTIwNiwxNSArMjA4LDM5IEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclJl
bmRlcmVyLT5tX2NsaWVudC0+c2V0Q29udGVudHNNZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcyhh
bGxvY2F0aW9uLmdwdVJlc291cmNlU2l6ZUluQnl0ZXMpOwogICAgIH0KIAotcHJpdmF0ZToKK3By
b3RlY3RlZDoKICAgICBleHBsaWNpdCBMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNo
YW5nZWRDYWxsYmFja0FkYXB0ZXIoTGF5ZXJSZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVy
KQogICAgICAgICA6IG1fbGF5ZXJSZW5kZXJlcihsYXllclJlbmRlcmVyKQogICAgIHsKICAgICB9
CiAKK3ByaXZhdGU6CiAgICAgTGF5ZXJSZW5kZXJlckNocm9taXVtKiBtX2xheWVyUmVuZGVyZXI7
CiB9OwogCitjbGFzcyBMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxs
YmFja0FkYXB0ZXJTaW5nbGVUaHJlYWQgOiBwdWJsaWMgTGF5ZXJSZW5kZXJlckdwdU1lbW9yeUFs
bG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFwdGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c093blB0cjxMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0Fk
YXB0ZXI+IGNyZWF0ZShMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IExheWVyUmVuZGVyZXJHcHVNZW1vcnlBbGxv
Y2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRlclNpbmdsZVRocmVhZChsYXllclJlbmRlcmVyKSk7
CisgICAgfQorCisgICAgdmlydHVhbCB+TGF5ZXJSZW5kZXJlckdwdU1lbW9yeUFsbG9jYXRpb25D
aGFuZ2VkQ2FsbGJhY2tBZGFwdGVyU2luZ2xlVGhyZWFkKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgb25HcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZChFeHRlbnNpb25zM0RDaHJvbWl1bTo6R3B1
TWVtb3J5QWxsb2NhdGlvbkNIUk9NSVVNIGFsbG9jYXRpb24pCisgICAgeworICAgICAgICAvLyBG
SVhNRTogVGhpcyBpcyBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkIGluIHNpbmdsZSB0aHJlYWRl
ZCBtb2RlLCBidXQgd2UgZXhwZWN0IGl0IG9uIHRoZSBpbXBsIHRocmVhZC4KKyAgICAgICAgQVNT
RVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgRGVidWdTY29wZWRTZXRJbXBs
VGhyZWFkIGltcGw7CisgICAgICAgIExheWVyUmVuZGVyZXJHcHVNZW1vcnlBbGxvY2F0aW9uQ2hh
bmdlZENhbGxiYWNrQWRhcHRlcjo6b25HcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZChhbGxvY2F0
aW9uKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTGF5ZXJSZW5kZXJlckdwdU1l
bW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFwdGVyU2luZ2xlVGhyZWFkKExheWVyUmVu
ZGVyZXJDaHJvbWl1bSogbGF5ZXJSZW5kZXJlcikKKyAgICAgICAgOiBMYXllclJlbmRlcmVyR3B1
TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXIobGF5ZXJSZW5kZXJlcikKKyAg
ICB7CisgICAgfQorfTsKIAogUGFzc093blB0cjxMYXllclJlbmRlcmVyQ2hyb21pdW0+IExheWVy
UmVuZGVyZXJDaHJvbWl1bTo6Y3JlYXRlKENDUmVuZGVyZXJDbGllbnQqIGNsaWVudCwgUGFzc1Jl
ZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgVGV4dHVyZVVwbG9hZGVyT3B0aW9uIHRl
eHR1cmVVcGxvYWRlclNldHRpbmcpCiB7CkBAIC0zMTgsNyArMzQ0LDEyIEBAIGJvb2wgTGF5ZXJS
ZW5kZXJlckNocm9taXVtOjppbml0aWFsaXplKCkKICAgICBpZiAobV9jYXBhYmlsaXRpZXMudXNp
bmdHcHVNZW1vcnlNYW5hZ2VyKSB7CiAgICAgICAgIGV4dGVuc2lvbnMtPmVuc3VyZUVuYWJsZWQo
IkdMX0NIUk9NSVVNX2dwdV9tZW1vcnlfbWFuYWdlciIpOwogICAgICAgICBFeHRlbnNpb25zM0RD
aHJvbWl1bSogZXh0ZW5zaW9uczNEQ2hyb21pdW0gPSBzdGF0aWNfY2FzdDxFeHRlbnNpb25zM0RD
aHJvbWl1bSo+KGV4dGVuc2lvbnMpOwotICAgICAgICBleHRlbnNpb25zM0RDaHJvbWl1bS0+c2V0
R3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKExheWVyUmVuZGVyZXJH
cHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRlcjo6Y3JlYXRlKHRoaXMpKTsK
KyAgICAgICAgaWYgKENDUHJveHk6Omhhc0ltcGxUaHJlYWQoKSkKKyAgICAgICAgICAgIGV4dGVu
c2lvbnMzRENocm9taXVtLT5zZXRHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQ0hS
T01JVU0oTGF5ZXJSZW5kZXJlckdwdU1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tBZGFw
dGVyOjpjcmVhdGUodGhpcykpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBleHRlbnNpb25z
M0RDaHJvbWl1bS0+c2V0R3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVN
KExheWVyUmVuZGVyZXJHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRlclNp
bmdsZVRocmVhZDo6Y3JlYXRlKHRoaXMpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2NsaWVu
dC0+c2V0Q29udGVudHNNZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcyhUZXh0dXJlTWFuYWdlcjo6
aGlnaExpbWl0Qnl0ZXModmlld3BvcnRTaXplKCkpKTsKICAgICB9CiAKICAgICBtX2NhcGFiaWxp
dGllcy51c2luZ0Rpc2NhcmRGcmFtZWJ1ZmZlciA9IGV4dGVuc2lvbnMtPnN1cHBvcnRzKCJHTF9D
SFJPTUlVTV9kaXNjYXJkX2ZyYW1lYnVmZmVyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhy
ZWFkUHJveHkuY3BwCmluZGV4IGZhMGRlZDBmZTAzOTFhYzk3YWViODViNzcyNzZjZmI0ZTA2ZWUy
NzkuLmE2MmNkNmIzYjc3NWNjNjg4ZGQ4NzViZjk2NjQ2MTEyYzQ0YTNhY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhy
ZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCkBAIC0zMTAsOCArMzEwLDggQEAgdm9pZCBD
Q1NpbmdsZVRocmVhZFByb3h5Ojpwb3N0QW5pbWF0aW9uRXZlbnRzVG9NYWluVGhyZWFkT25JbXBs
VGhyZWFkKFBhc3NPd25QdHIKIAogdm9pZCBDQ1NpbmdsZVRocmVhZFByb3h5Ojpwb3N0U2V0Q29u
dGVudHNNZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlc1RvTWFpblRocmVhZE9uSW1wbFRocmVhZChz
aXplX3QgYnl0ZXMpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgY2FsbGVkIHZpYSBhIGdyYXBo
aWNzIGNvbnRleHQgY2FsbGJhY2ssIG9uIG1haW4gdGhyZWFkIGluIHNpbmdsZSB0aHJlYWRlZCBt
b2RlLCBiZWNhdXNlIGl0cyBoYXJkIHRvIGZha2UgdGhlIGltcGwgdGhyZWFkLiBUaGlzIHNob3Vs
ZCBuZWVkIHRvIERlYnVnU2NvcGVkU2V0TWFpblRocmVhZCwgYnV0IGlzIGFjdHVhbGx5IGFscmVh
ZHkgb24gdGhlIG1haW4gdGhyZWFkLgotICAgIEFTU0VSVChDQ1Byb3h5Ojppc01haW5UaHJlYWQo
KSk7CisgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKKyAgICBEZWJ1Z1Njb3Bl
ZFNldE1haW5UaHJlYWQgbWFpbjsKICAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKICAgICBt
X2xheWVyVHJlZUhvc3QtPnNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoYnl0
ZXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJl
bmRlcmVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5
ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAKaW5kZXggZTg2ZmQwYmUxMDkyZmY2YmJlMGVlZjk2
NWYwZjRlN2EwYzA2MThlNi4uZDM5N2M1YjMxMmQ4ZDlhZjViMzRlMWE4MWJkMjU2NWIzYWQ0OWRh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVy
Q2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVy
UmVuZGVyZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRmFr
ZVdlYkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJDb21w
b3NpdG9yLmgiCiAjaW5jbHVkZSAiY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oIgogCiAjaW5jbHVk
ZSA8Z21vY2svZ21vY2suaD4KQEAgLTU0LDcgKzU1LDEzIEBAIHB1YmxpYzoKIAogICAgIC8vIE1l
dGhvZHMgYWRkZWQgZm9yIHRlc3QuCiAgICAgaW50IGZyYW1lQ291bnQoKSB7IHJldHVybiBtX2Zy
YW1lOyB9Ci0gICAgdm9pZCBzZXRNZW1vcnlBbGxvY2F0aW9uKFdlYkdyYXBoaWNzTWVtb3J5QWxs
b2NhdGlvbiBhbGxvY2F0aW9uKSB7IG1fbWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFjay0+
b25NZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZChhbGxvY2F0aW9uKTsgfQorICAgIHZvaWQgc2V0TWVt
b3J5QWxsb2NhdGlvbihXZWJHcmFwaGljc01lbW9yeUFsbG9jYXRpb24gYWxsb2NhdGlvbikKKyAg
ICB7CisgICAgICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CisgICAgICAgIC8v
IEluIHNpbmdsZSB0aHJlYWRlZCBtb2RlIHdlIGV4cGVjdCB0aGlzIGNhbGxiYWNrIG9uIG1haW4g
dGhyZWFkLgorICAgICAgICBEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWQgbWFpbjsKKyAgICAgICAg
bV9tZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrLT5vbk1lbW9yeUFsbG9jYXRpb25DaGFu
Z2VkKGFsbG9jYXRpb24pOworICAgIH0KIAogcHJpdmF0ZToKICAgICBpbnQgbV9mcmFtZTsKQEAg
LTY2LDYgKzczLDcgQEAgcHVibGljOgogICAgIEZha2VDQ1JlbmRlcmVyQ2xpZW50KCkKICAgICAg
ICAgOiBtX3NldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudCgwKQogICAgICAgICAsIG1fcm9vdExh
eWVyKENDTGF5ZXJJbXBsOjpjcmVhdGUoMSkpCisgICAgICAgICwgbV9tZW1vcnlBbGxvY2F0aW9u
TGltaXRCeXRlcygwKQogICAgIHsKICAgICAgICAgbV9yb290TGF5ZXItPmNyZWF0ZVJlbmRlclN1
cmZhY2UoKTsKICAgICAgICAgbV9yb290UmVuZGVyUGFzcyA9IENDUmVuZGVyUGFzczo6Y3JlYXRl
KG1fcm9vdExheWVyLT5yZW5kZXJTdXJmYWNlKCkpOwpAQCAtNzcsMTggKzg1LDIxIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZUNvbnRleHQoKSBPVkVSUklERSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25Td2FwQnVmZmVyc0NvbXBsZXRlKCkgT1ZFUlJJREUgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldEZ1bGxSb290TGF5ZXJEYW1hZ2UoKSBPVkVSUklERSB7IG1fc2V0RnVsbFJv
b3RMYXllckRhbWFnZUNvdW50Kys7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNNZW1v
cnlBbGxvY2F0aW9uTGltaXRCeXRlcyhzaXplX3QpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBzZXRDb250ZW50c01lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKHNpemVfdCBieXRlcykg
T1ZFUlJJREUgeyBtX21lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzID0gYnl0ZXM7IH0KIAogICAg
IC8vIE1ldGhvZHMgYWRkZWQgZm9yIHRlc3QuCiAgICAgaW50IHNldEZ1bGxSb290TGF5ZXJEYW1h
Z2VDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50OyB9
CiAKICAgICBDQ1JlbmRlclBhc3MqIHJvb3RSZW5kZXJQYXNzKCkgeyByZXR1cm4gbV9yb290UmVu
ZGVyUGFzcy5nZXQoKTsgfQogCisgICAgc2l6ZV90IG1lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVz
KCkgY29uc3QgeyByZXR1cm4gbV9tZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlczsgfQorCiBwcml2
YXRlOgogICAgIGludCBtX3NldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudDsKICAgICBEZWJ1Z1Nj
b3BlZFNldEltcGxUaHJlYWQgbV9pbXBsVGhyZWFkOwogICAgIE93blB0cjxDQ0xheWVySW1wbD4g
bV9yb290TGF5ZXI7CiAgICAgT3duUHRyPENDUmVuZGVyUGFzcz4gbV9yb290UmVuZGVyUGFzczsK
KyAgICBzaXplX3QgbV9tZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlczsKIH07CiAKIGNsYXNzIEZh
a2VMYXllclJlbmRlcmVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJSZW5kZXJlckNocm9taXVtIHsK
QEAgLTExNSw5ICsxMjYsMTUgQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCB2b2lkIFNldFVw
KCkKICAgICB7CisgICAgICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsK
ICAgICAgICAgbV9sYXllclJlbmRlcmVyQ2hyb21pdW0uaW5pdGlhbGl6ZSgpOwogICAgIH0KIAor
ICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpCisgICAgeworICAgICAgICBXZWJLaXQ6OldlYkNv
bXBvc2l0b3I6OnNodXRkb3duKCk7CisgICAgfQorCiAgICAgdm9pZCBzd2FwQnVmZmVycygpCiAg
ICAgewogICAgICAgICBtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5zd2FwQnVmZmVycyhJbnRSZWN0
KCkpOwpAQCAtMzE4LDMgKzMzNSwyNSBAQCBURVNUKExheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3Qy
LCBpbml0aWFsaXphdGlvbldpdGhRdWlja2x5TG9zdENvbnRleHREb2VzTm90QXNzZQogCiAgICAg
bGF5ZXJSZW5kZXJlckNocm9taXVtLmluaXRpYWxpemUoKTsKIH0KKworY2xhc3MgTm9uR3B1TWVt
b3J5TWFuYWdpbmdGYWtlQ29udGV4dCA6IHB1YmxpYyBGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Qg
eworcHVibGljOgorICAgIE5vbkdwdU1lbW9yeU1hbmFnaW5nRmFrZUNvbnRleHQoKSB7IH0KKwor
ICAgIC8vIFdlYkdyYXBoaWNzQ29udGV4dDNEIG1ldGhvZHMuCisKKyAgICAvLyBUaGlzIG1ldGhv
ZCB3b3VsZCBub3JtYWxseSBkbyBhIGdsU3dhcEJ1ZmZlcnMgdW5kZXIgdGhlIGhvb2QuCisgICAg
dmlydHVhbCB2b2lkIHByZXBhcmVUZXh0dXJlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldE1l
bW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTShXZWJHcmFwaGljc01lbW9yeUFs
bG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTSogY2FsbGJhY2spIHsgfQorICAgIHZpcnR1
YWwgV2ViU3RyaW5nIGdldFN0cmluZyhXZWJLaXQ6OldHQzNEZW51bSBuYW1lKSB7IHJldHVybiBX
ZWJTdHJpbmcoKTsgfQorfTsKKworVEVTVChMYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0MiwgaW5p
dGlhbGl6YXRpb25XaXRob3V0R3B1TWVtb3J5TWFuYWdlckV4dGVuc2lvblN1cHBvcnRTaG91bGRE
ZWZhdWx0VG9Ob25aZXJvQWxsb2NhdGlvbikKK3sKKyAgICBGYWtlQ0NSZW5kZXJlckNsaWVudCBt
b2NrQ2xpZW50OworICAgIEZha2VMYXllclJlbmRlcmVyQ2hyb21pdW0gbGF5ZXJSZW5kZXJlckNo
cm9taXVtKCZtb2NrQ2xpZW50LCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBOb25HcHVNZW1vcnlNYW5hZ2lu
Z0Zha2VDb250ZXh0KSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2lu
ZG93KSk7CisKKyAgICBsYXllclJlbmRlcmVyQ2hyb21pdW0uaW5pdGlhbGl6ZSgpOworCisgICAg
RVhQRUNUX0dUKG1vY2tDbGllbnQubWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoKSwgMHVsKTsK
K30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145844</attachid>
            <date>2012-06-05 11:20:01 -0700</date>
            <delta_ts>2012-06-05 21:45:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87996-20120605142001.patch</filename>
            <type>text/plain</type>
            <size>9997</size>
            <attacher name="Michal Mocny">mmocny</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZmMTljZGY1OTNhZDlk
MjAzZTU3YjJjMWI3ZjVjMjg1MzRjMjNkYS4uZWFhMDQ5OGMzZTU3NTMwNDAzNDFjOGM3Mjk3ZGFl
YTMzNGVlNzllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTMxICBNaWNo
YWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFNldCBk
ZWZhdWx0IG1lbW9yeSBhbGxvY2F0aW9uIGxpbWl0IGJ5dGVzIHdoZW4gR0xfQ0hST01JVU1fZ3B1
X21lbW9yeV9tYW5hZ2VyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZ3JhcGhpY3MgY29udGV4dC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29vbiB3ZSBob3Bl
IHRvIGhhdmUgcmVuZGVyZXJzIG5vdCBtYW5hZ2UgdGhlcmUgb3duIG1lbW9yeSBhbGxvY2F0aW9u
IGxpbWl0cywgYW5kIHJlbHkgZXhjbHVzaXZlbHkgb24gdGhlCisgICAgICAgIGFsbG9jYXRpb24g
Z2l2ZW4gYnkgR3B1TWVtb3J5TWFuYWdlci4gIEhvd2V2ZXIsIHdoZW4gdGhlIGdyYXBoaWNzIGNv
bnRleHQgZG9lcyBub3Qgc3VwcG9ydCB0aGUKKyAgICAgICAgR0xfQ0hST01JVU1fZ3B1X21lbW9y
eV9tYW5hZ2VyIGV4dGVuc2lvbiwgc3VjaCBhcyB0aGUgb25lIHVzZWQgYnkgRHVtcFJlbmRlclRy
ZWUsIHdlIG11c3QgZGVmYXVsdCB0aGUKKyAgICAgICAgbWVtb3J5IGFsbG9jYXRpb24gbGltaXQg
dG8gc29tZSBub24tMCB2YWx1ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJl
bmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NTaW5nbGVUaHJlYWRQcm94eTo6cG9zdFNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0
Qnl0ZXNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoRGVidWdTY29wZWRTZXRNYWluVGhyZWFkRnJvbUVpdGhlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyOjpEZWJ1Z1Njb3Bl
ZFNldE1haW5UaHJlYWRGcm9tRWl0aGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRlYnVnU2NvcGVk
U2V0TWFpblRocmVhZEZyb21FaXRoZXI6On5EZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWRGcm9tRWl0
aGVyKToKKwogMjAxMi0wNi0wNSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbmRlciB0aW1lbGluZSBwYWludCBjYXRlZ29y
eSBkYXJrIGdyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAppbmRleCA4
ZGU0NDljMDM0ZDA4ZWQ1Mjc5N2ZjY2RjMmE1YjVmNTE0ZGIzNjc2Li41NWNmNzRmMmY4NDFlMmJm
MmVjOWU0NjdjMWY1N2IwNzljYWU5ZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5jcHAKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYy9DQ1JlbmRlclBhc3MuaCIK
ICNpbmNsdWRlICJjYy9DQ1JlbmRlclBhc3NEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNjL0NDUmVu
ZGVyU3VyZmFjZUZpbHRlcnMuaCIKKyNpbmNsdWRlICJjYy9DQ1NpbmdsZVRocmVhZFByb3h5Lmgi
CiAjaW5jbHVkZSAiY2MvQ0NTb2xpZENvbG9yRHJhd1F1YWQuaCIKICNpbmNsdWRlICJjYy9DQ1Rl
eHR1cmVEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNjL0NDVGlsZURyYXdRdWFkLmgiCkBAIC0xOTks
MjMgKzIwMCwzNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgb25HcHVNZW1vcnlBbGxv
Y2F0aW9uQ2hhbmdlZChFeHRlbnNpb25zM0RDaHJvbWl1bTo6R3B1TWVtb3J5QWxsb2NhdGlvbkNI
Uk9NSVVNIGFsbG9jYXRpb24pCiAgICAgewotICAgICAgICBpZiAoIWFsbG9jYXRpb24uc3VnZ2Vz
dEhhdmVCYWNrYnVmZmVyKQotICAgICAgICAgICAgbV9sYXllclJlbmRlcmVyLT5kaXNjYXJkRnJh
bWVidWZmZXIoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9sYXllclJlbmRlcmVyLT5l
bnN1cmVGcmFtZWJ1ZmZlcigpOwotICAgICAgICBtX2xheWVyUmVuZGVyZXItPm1fY2xpZW50LT5z
ZXRDb250ZW50c01lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKGFsbG9jYXRpb24uZ3B1UmVzb3Vy
Y2VTaXplSW5CeXRlcyk7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGNhbGxlZCBvbiB0aGUg
bWFpbiB0aHJlYWQgaW4gc2luZ2xlIHRocmVhZGVkIG1vZGUsIGJ1dCB3ZSBleHBlY3QgaXQgb24g
dGhlIGltcGwgdGhyZWFkLgorICAgICAgICBpZiAobV9iaW5kVG9JbXBsVGhyZWFkKSB7CisgICAg
ICAgICAgQVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgICBEZWJ1Z1Nj
b3BlZFNldEltcGxUaHJlYWQgaW1wbDsKKyAgICAgICAgICBvbkdwdU1lbW9yeUFsbG9jYXRpb25D
aGFuZ2VkT25JbXBsKGFsbG9jYXRpb24pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIEFT
U0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CisgICAgICAgICAgb25HcHVNZW1vcnlBbGxv
Y2F0aW9uQ2hhbmdlZE9uSW1wbChhbGxvY2F0aW9uKTsKKyAgICAgICAgfQogICAgIH0KIAogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5n
ZWRDYWxsYmFja0FkYXB0ZXIoTGF5ZXJSZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVyKQot
ICAgICAgICA6IG1fbGF5ZXJSZW5kZXJlcihsYXllclJlbmRlcmVyKQorICAgICAgICA6IG1fbGF5
ZXJSZW5kZXJlcihsYXllclJlbmRlcmVyKSwgbV9iaW5kVG9JbXBsVGhyZWFkKCFDQ1Byb3h5Ojpo
YXNJbXBsVGhyZWFkKCkpCiAgICAgewogICAgIH0KIAorICAgIHZvaWQgb25HcHVNZW1vcnlBbGxv
Y2F0aW9uQ2hhbmdlZE9uSW1wbChFeHRlbnNpb25zM0RDaHJvbWl1bTo6R3B1TWVtb3J5QWxsb2Nh
dGlvbkNIUk9NSVVNIGFsbG9jYXRpb24pCisgICAgeworICAgICAgICBBU1NFUlQoQ0NQcm94eTo6
aXNJbXBsVGhyZWFkKCkpOworICAgICAgICBpZiAoIWFsbG9jYXRpb24uc3VnZ2VzdEhhdmVCYWNr
YnVmZmVyKQorICAgICAgICAgICAgbV9sYXllclJlbmRlcmVyLT5kaXNjYXJkRnJhbWVidWZmZXIo
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9sYXllclJlbmRlcmVyLT5lbnN1cmVGcmFt
ZWJ1ZmZlcigpOworICAgICAgICBtX2xheWVyUmVuZGVyZXItPm1fY2xpZW50LT5zZXRDb250ZW50
c01lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKGFsbG9jYXRpb24uZ3B1UmVzb3VyY2VTaXplSW5C
eXRlcyk7CisgICAgfQorCiAgICAgTGF5ZXJSZW5kZXJlckNocm9taXVtKiBtX2xheWVyUmVuZGVy
ZXI7CisgICAgYm9vbCBtX2JpbmRUb0ltcGxUaHJlYWQ7CiB9OwogCi0KIFBhc3NPd25QdHI8TGF5
ZXJSZW5kZXJlckNocm9taXVtPiBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNyZWF0ZShDQ1JlbmRl
cmVyQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQs
IFRleHR1cmVVcGxvYWRlck9wdGlvbiB0ZXh0dXJlVXBsb2FkZXJTZXR0aW5nKQogewogICAgIE93
blB0cjxMYXllclJlbmRlcmVyQ2hyb21pdW0+IGxheWVyUmVuZGVyZXIoYWRvcHRQdHIobmV3IExh
eWVyUmVuZGVyZXJDaHJvbWl1bShjbGllbnQsIGNvbnRleHQsIHRleHR1cmVVcGxvYWRlclNldHRp
bmcpKSk7CkBAIC0zMTksNiArMzM0LDggQEAgYm9vbCBMYXllclJlbmRlcmVyQ2hyb21pdW06Omlu
aXRpYWxpemUoKQogICAgICAgICBleHRlbnNpb25zLT5lbnN1cmVFbmFibGVkKCJHTF9DSFJPTUlV
TV9ncHVfbWVtb3J5X21hbmFnZXIiKTsKICAgICAgICAgRXh0ZW5zaW9uczNEQ2hyb21pdW0qIGV4
dGVuc2lvbnMzRENocm9taXVtID0gc3RhdGljX2Nhc3Q8RXh0ZW5zaW9uczNEQ2hyb21pdW0qPihl
eHRlbnNpb25zKTsKICAgICAgICAgZXh0ZW5zaW9uczNEQ2hyb21pdW0tPnNldEdwdU1lbW9yeUFs
bG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTShMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxs
b2NhdGlvbkNoYW5nZWRDYWxsYmFja0FkYXB0ZXI6OmNyZWF0ZSh0aGlzKSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgbV9jbGllbnQtPnNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0
ZXMoVGV4dHVyZU1hbmFnZXI6OmhpZ2hMaW1pdEJ5dGVzKHZpZXdwb3J0U2l6ZSgpKSk7CiAgICAg
fQogCiAgICAgbV9jYXBhYmlsaXRpZXMudXNpbmdEaXNjYXJkRnJhbWVidWZmZXIgPSBleHRlbnNp
b25zLT5zdXBwb3J0cygiR0xfQ0hST01JVU1fZGlzY2FyZF9mcmFtZWJ1ZmZlciIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5n
bGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBmYTBkZWQwZmUwMzkxYWM5N2Fl
Yjg1Yjc3Mjc2Y2ZiNGUwNmVlMjc5Li5hNjJjZDZiM2I3NzVjYzY4OGRkODc1YmY5NjY0NjExMmM0
NGEzYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAtMzEw
LDggKzMxMCw4IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6cG9zdEFuaW1hdGlvbkV2ZW50
c1RvTWFpblRocmVhZE9uSW1wbFRocmVhZChQYXNzT3duUHRyCiAKIHZvaWQgQ0NTaW5nbGVUaHJl
YWRQcm94eTo6cG9zdFNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXNUb01haW5U
aHJlYWRPbkltcGxUaHJlYWQoc2l6ZV90IGJ5dGVzKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGlz
IGNhbGxlZCB2aWEgYSBncmFwaGljcyBjb250ZXh0IGNhbGxiYWNrLCBvbiBtYWluIHRocmVhZCBp
biBzaW5nbGUgdGhyZWFkZWQgbW9kZSwgYmVjYXVzZSBpdHMgaGFyZCB0byBmYWtlIHRoZSBpbXBs
IHRocmVhZC4gVGhpcyBzaG91bGQgbmVlZCB0byBEZWJ1Z1Njb3BlZFNldE1haW5UaHJlYWQsIGJ1
dCBpcyBhY3R1YWxseSBhbHJlYWR5IG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICBBU1NFUlQoQ0NQ
cm94eTo6aXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQo
KSk7CisgICAgRGVidWdTY29wZWRTZXRNYWluVGhyZWFkIG1haW47CiAgICAgQVNTRVJUKG1fbGF5
ZXJUcmVlSG9zdCk7CiAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRDb250ZW50c01lbW9yeUFsbG9j
YXRpb25MaW1pdEJ5dGVzKGJ5dGVzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGU4NmZk
MGJlMTA5MmZmNmJiZTBlZWY5NjVmMGY0ZTdhMGMwNjE4ZTYuLjQwMTdkMzhiZmYyN2I4M2MwMWUw
MDIxMzYxYTUwNjg1ODQyYTJiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIkZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgi
CisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFk
UHJveHkuaCIKIAogI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CkBAIC01NCw3ICs1NSwxMyBAQCBw
dWJsaWM6CiAKICAgICAvLyBNZXRob2RzIGFkZGVkIGZvciB0ZXN0LgogICAgIGludCBmcmFtZUNv
dW50KCkgeyByZXR1cm4gbV9mcmFtZTsgfQotICAgIHZvaWQgc2V0TWVtb3J5QWxsb2NhdGlvbihX
ZWJHcmFwaGljc01lbW9yeUFsbG9jYXRpb24gYWxsb2NhdGlvbikgeyBtX21lbW9yeUFsbG9jYXRp
b25DaGFuZ2VkQ2FsbGJhY2stPm9uTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWQoYWxsb2NhdGlvbik7
IH0KKyAgICB2b2lkIHNldE1lbW9yeUFsbG9jYXRpb24oV2ViR3JhcGhpY3NNZW1vcnlBbGxvY2F0
aW9uIGFsbG9jYXRpb24pCisgICAgeworICAgICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhy
ZWFkKCkpOworICAgICAgICAvLyBJbiBzaW5nbGUgdGhyZWFkZWQgbW9kZSB3ZSBleHBlY3QgdGhp
cyBjYWxsYmFjayBvbiBtYWluIHRocmVhZC4KKyAgICAgICAgRGVidWdTY29wZWRTZXRNYWluVGhy
ZWFkIG1haW47CisgICAgICAgIG1fbWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFjay0+b25N
ZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZChhbGxvY2F0aW9uKTsKKyAgICB9CiAKIHByaXZhdGU6CiAg
ICAgaW50IG1fZnJhbWU7CkBAIC02Niw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICBGYWtlQ0NSZW5k
ZXJlckNsaWVudCgpCiAgICAgICAgIDogbV9zZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQoMCkK
ICAgICAgICAgLCBtX3Jvb3RMYXllcihDQ0xheWVySW1wbDo6Y3JlYXRlKDEpKQorICAgICAgICAs
IG1fbWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoMCkKICAgICB7CiAgICAgICAgIG1fcm9vdExh
eWVyLT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7CiAgICAgICAgIG1fcm9vdFJlbmRlclBhc3MgPSBD
Q1JlbmRlclBhc3M6OmNyZWF0ZShtX3Jvb3RMYXllci0+cmVuZGVyU3VyZmFjZSgpKTsKQEAgLTc3
LDE4ICs4NSwyMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZExvc2VDb250ZXh0KCkg
T1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3dhcEJ1ZmZlcnNDb21wbGV0ZSgpIE9W
RVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRGdWxsUm9vdExheWVyRGFtYWdlKCkgT1ZF
UlJJREUgeyBtX3NldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudCsrOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldENvbnRlbnRzTWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoc2l6ZV90KSBPVkVSUklE
RSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNNZW1vcnlBbGxvY2F0aW9uTGltaXRC
eXRlcyhzaXplX3QgYnl0ZXMpIE9WRVJSSURFIHsgbV9tZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRl
cyA9IGJ5dGVzOyB9CiAKICAgICAvLyBNZXRob2RzIGFkZGVkIGZvciB0ZXN0LgogICAgIGludCBz
ZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3NldEZ1bGxSb290
TGF5ZXJEYW1hZ2VDb3VudDsgfQogCiAgICAgQ0NSZW5kZXJQYXNzKiByb290UmVuZGVyUGFzcygp
IHsgcmV0dXJuIG1fcm9vdFJlbmRlclBhc3MuZ2V0KCk7IH0KIAorICAgIHNpemVfdCBtZW1vcnlB
bGxvY2F0aW9uTGltaXRCeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fbWVtb3J5QWxsb2NhdGlvbkxp
bWl0Qnl0ZXM7IH0KKwogcHJpdmF0ZToKICAgICBpbnQgbV9zZXRGdWxsUm9vdExheWVyRGFtYWdl
Q291bnQ7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIG1faW1wbFRocmVhZDsKICAgICBP
d25QdHI8Q0NMYXllckltcGw+IG1fcm9vdExheWVyOwogICAgIE93blB0cjxDQ1JlbmRlclBhc3M+
IG1fcm9vdFJlbmRlclBhc3M7CisgICAgc2l6ZV90IG1fbWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0
ZXM7CiB9OwogCiBjbGFzcyBGYWtlTGF5ZXJSZW5kZXJlckNocm9taXVtIDogcHVibGljIExheWVy
UmVuZGVyZXJDaHJvbWl1bSB7CkBAIC0xMTUsOSArMTI2LDE1IEBAIHByb3RlY3RlZDoKIAogICAg
IHZpcnR1YWwgdm9pZCBTZXRVcCgpCiAgICAgeworICAgICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0
b3I6OmluaXRpYWxpemUoMCk7CiAgICAgICAgIG1fbGF5ZXJSZW5kZXJlckNocm9taXVtLmluaXRp
YWxpemUoKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKQorICAgIHsKKyAg
ICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOworICAgIH0KKwogICAgIHZv
aWQgc3dhcEJ1ZmZlcnMoKQogICAgIHsKICAgICAgICAgbV9sYXllclJlbmRlcmVyQ2hyb21pdW0u
c3dhcEJ1ZmZlcnMoSW50UmVjdCgpKTsKQEAgLTMxOCwzICszMzUsMjUgQEAgVEVTVChMYXllclJl
bmRlcmVyQ2hyb21pdW1UZXN0MiwgaW5pdGlhbGl6YXRpb25XaXRoUXVpY2tseUxvc3RDb250ZXh0
RG9lc05vdEFzc2UKIAogICAgIGxheWVyUmVuZGVyZXJDaHJvbWl1bS5pbml0aWFsaXplKCk7CiB9
CisKK2NsYXNzIENvbnRleHRUaGF0RG9lc05vdFN1cHBvcnRNZW1vcnlNYW5hZ21lbnRFeHRlbnNp
b25zIDogcHVibGljIEZha2VXZWJHcmFwaGljc0NvbnRleHQzRCB7CitwdWJsaWM6CisgICAgQ29u
dGV4dFRoYXREb2VzTm90U3VwcG9ydE1lbW9yeU1hbmFnbWVudEV4dGVuc2lvbnMoKSB7IH0KKwor
ICAgIC8vIFdlYkdyYXBoaWNzQ29udGV4dDNEIG1ldGhvZHMuCisKKyAgICAvLyBUaGlzIG1ldGhv
ZCB3b3VsZCBub3JtYWxseSBkbyBhIGdsU3dhcEJ1ZmZlcnMgdW5kZXIgdGhlIGhvb2QuCisgICAg
dmlydHVhbCB2b2lkIHByZXBhcmVUZXh0dXJlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldE1l
bW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTShXZWJHcmFwaGljc01lbW9yeUFs
bG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTSogY2FsbGJhY2spIHsgfQorICAgIHZpcnR1
YWwgV2ViU3RyaW5nIGdldFN0cmluZyhXZWJLaXQ6OldHQzNEZW51bSBuYW1lKSB7IHJldHVybiBX
ZWJTdHJpbmcoKTsgfQorfTsKKworVEVTVChMYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0MiwgaW5p
dGlhbGl6YXRpb25XaXRob3V0R3B1TWVtb3J5TWFuYWdlckV4dGVuc2lvblN1cHBvcnRTaG91bGRE
ZWZhdWx0VG9Ob25aZXJvQWxsb2NhdGlvbikKK3sKKyAgICBGYWtlQ0NSZW5kZXJlckNsaWVudCBt
b2NrQ2xpZW50OworICAgIEZha2VMYXllclJlbmRlcmVyQ2hyb21pdW0gbGF5ZXJSZW5kZXJlckNo
cm9taXVtKCZtb2NrQ2xpZW50LCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBDb250ZXh0VGhhdERvZXNOb3RT
dXBwb3J0TWVtb3J5TWFuYWdtZW50RXh0ZW5zaW9ucyksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5k
ZXJEaXJlY3RseVRvSG9zdFdpbmRvdykpOworCisgICAgbGF5ZXJSZW5kZXJlckNocm9taXVtLmlu
aXRpYWxpemUoKTsKKworICAgIEVYUEVDVF9HVChtb2NrQ2xpZW50Lm1lbW9yeUFsbG9jYXRpb25M
aW1pdEJ5dGVzKCksIDB1bCk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>