<?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>110355</bug_id>
          
          <creation_ts>2013-02-20 10:22:24 -0800</creation_ts>
          <short_desc>Get rid of &quot;non-composited contents&quot; in CoordinatedLayerTreeHost</short_desc>
          <delta_ts>2013-07-18 06:51:26 -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>
          <dependson>115372</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dev</cc>
    
    <cc>dongseong.hwang</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jaepark</cc>
    
    <cc>jesus</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>luiz</cc>
    
    <cc>ostap73</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>yoon</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>837544</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-20 10:22:24 -0800</bug_when>
    <thetext>The &quot;non composited contents&quot; layer is unncessary - it creates a special-case code path that can be better dealt with by making that a proper GraphicsLayer from the get-go, by returning false from RenderLayerBacking::paintingIntoWindow()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837803</commentid>
    <comment_count>1</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-20 15:00:42 -0800</bug_when>
    <thetext>Noam raised this needs in https://bugs.webkit.org/show_bug.cgi?id=110299#c5 :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837904</commentid>
    <comment_count>2</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2013-02-20 16:31:03 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; The &quot;non composited contents&quot; layer is unncessary - it creates a special-case code path that can be better dealt with by making that a proper GraphicsLayer from the get-go, by returning false from RenderLayerBacking::paintingIntoWindow()

Great idea! These extra code paths were very confusing when I was digging into CGfx and I still don&apos;t get where we use the &quot;overlay layer&quot; code path or what it is exactly, besides the name sounds pretty straightforward on what it should be. Could you explain it also?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838230</commentid>
    <comment_count>3</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-21 01:58:42 -0800</bug_when>
    <thetext>&gt; Great idea! These extra code paths were very confusing when I was digging into CGfx and I still don&apos;t get where we use the &quot;overlay layer&quot; code path or what it is exactly, besides the name sounds pretty straightforward on what it should be. Could you explain it also?

The overlay code path is used for example for the tap highlighter.
I believe that in coordinated graphics we should do tap highlighting completely in the UI process and not in this way, but that&apos;s a different story from the non-composited contents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842567</commentid>
    <comment_count>4</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-26 17:48:47 -0800</bug_when>
    <thetext>Currently, two CoordinatedTiles use the same UpdateAtlas in the same time. It is a bug that can crash in some platforms.

For example,
1. m_nonCompositedContentLayer-&gt;flushCompositingStateForThisLayerOnly();
2. CoordinatedTile::updateBackBuffer()
3. FrameView::paintContents()
4. FrameView::flushCompositingStateForThisFrame()
5. CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly()
6. CoordinatedTile::updateBackBuffer()

#2 calls UpdateAtlas::beginPaint and #6 also calls UpdateAtlas::beginPaint before #2 is completed.

I think if this bug is resolved, above bug is also resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846457</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-03-04 07:15:17 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Currently, two CoordinatedTiles use the same UpdateAtlas in the same time. It is a bug that can crash in some platforms.
&gt; 
&gt; For example,
&gt; 1. m_nonCompositedContentLayer-&gt;flushCompositingStateForThisLayerOnly();
&gt; 2. CoordinatedTile::updateBackBuffer()
&gt; 3. FrameView::paintContents()
&gt; 4. FrameView::flushCompositingStateForThisFrame()
&gt; 5. CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly()
&gt; 6. CoordinatedTile::updateBackBuffer()
&gt; 
&gt; #2 calls UpdateAtlas::beginPaint and #6 also calls UpdateAtlas::beginPaint before #2 is completed.
&gt; 
&gt; I think if this bug is resolved, above bug is also resolved.
You can probably fix this one by changing CoordinatedLayerTreeHost to call 
    bool didSync = m_webPage-&gt;corePage()-&gt;mainFrame()-&gt;view()-&gt;flushCompositingStateIncludingSubframes();
before the other flushes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846948</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-04 15:47:55 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; You can probably fix this one by changing CoordinatedLayerTreeHost to call 
&gt;     bool didSync = m_webPage-&gt;corePage()-&gt;mainFrame()-&gt;view()-&gt;flushCompositingStateIncludingSubframes();
&gt; before the other flushes.

Yes, your suggestion can be work well! We can go with your suggestion for a while.

But there are two weak points.
1. tree order is broken.
2. there is a subtle reason that it works well although tree order is broken.
Setting children needs tree order traversal, because setting parent also is performed during setting children and relies heavily on tree order traversal.
But your suggestion works well because &quot;m_nonCompositedContentLayer-&gt;flushCompositingStateForThisLayerOnly();&quot; does not flush only for this layer, but also flush all layers in this frame by tree order.
It eventually calls FrameView::paintContents and paintContents eventually calls flushCompositingStateForThisFrame. So m_nonCompositedContentLayer and rootLayer of RenderLayerCompositor are involved well with parent-child relation.

It works well because of the subtle reason, so we can go with your suggestion until this bug is resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847229</commentid>
    <comment_count>7</comment_count>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2013-03-04 20:47:07 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Currently, two CoordinatedTiles use the same UpdateAtlas in the same time. It is a bug that can crash in some platforms.
&gt; &gt; 
&gt; &gt; For example,
&gt; &gt; 1. m_nonCompositedContentLayer-&gt;flushCompositingStateForThisLayerOnly();
&gt; &gt; 2. CoordinatedTile::updateBackBuffer()
&gt; &gt; 3. FrameView::paintContents()
&gt; &gt; 4. FrameView::flushCompositingStateForThisFrame()
&gt; &gt; 5. CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly()
&gt; &gt; 6. CoordinatedTile::updateBackBuffer()
&gt; &gt; 
&gt; &gt; #2 calls UpdateAtlas::beginPaint and #6 also calls UpdateAtlas::beginPaint before #2 is completed.
&gt; &gt; 
&gt; &gt; I think if this bug is resolved, above bug is also resolved.
&gt; You can probably fix this one by changing CoordinatedLayerTreeHost to call 
&gt;     bool didSync = m_webPage-&gt;corePage()-&gt;mainFrame()-&gt;view()-&gt;flushCompositingStateIncludingSubframes();
&gt; before the other flushes.

The same problem still exists in iframe cases even if we call 
bool didSync = m_webPage-&gt;corePage()-&gt;mainFrame()-&gt;view()-&gt;flushCompositingStateIncludingSubframes(); 
before the other flushes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847231</commentid>
    <comment_count>8</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-04 20:53:51 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; The same problem still exists in iframe cases even if we call 
&gt; bool didSync = m_webPage-&gt;corePage()-&gt;mainFrame()-&gt;view()-&gt;flushCompositingStateIncludingSubframes(); 
&gt; before the other flushes.

Alright, I missed iframe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878734</commentid>
    <comment_count>9</comment_count>
      <attachid>198933</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-20 00:53:10 -0700</bug_when>
    <thetext>Created attachment 198933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878763</commentid>
    <comment_count>10</comment_count>
      <attachid>198933</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-04-20 06:47:48 -0700</bug_when>
    <thetext>Comment on attachment 198933
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        When in force compositing mode, always assume that the main layer nees

needs :)

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:275
&gt; +        if (m_rootCompositingLayer) {
&gt; +            m_state.contentsSize = roundedIntSize(m_rootCompositingLayer-&gt;size());
&gt; +            m_state.coveredRect = toCoordinatedGraphicsLayer(m_rootCompositingLayer)-&gt;accumulatedCoverRect();
&gt; +        }

Is it ok that we don&apos;t have a root layer here (and send the message without these attributes)? Shouldn&apos;t it be an assert or an early return earlier?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878765</commentid>
    <comment_count>11</comment_count>
      <attachid>198933</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-20 06:54:20 -0700</bug_when>
    <thetext>Comment on attachment 198933
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:275
&gt;&gt; +        }
&gt; 
&gt; Is it ok that we don&apos;t have a root layer here (and send the message without these attributes)? Shouldn&apos;t it be an assert or an early return earlier?

Not necessarily. In the case of about:blank we&apos;d have a m_rootLayer and no m_rootCompositingLayer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881891</commentid>
    <comment_count>12</comment_count>
      <attachid>198933</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-04-26 07:47:21 -0700</bug_when>
    <thetext>Comment on attachment 198933
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:849
&gt; +    TransformationMatrix combinedTransform = m_layerTransform.combined().inverse();
&gt; +    if (!combinedTransform.isIdentityOrTranslation())
&gt; +        return;

If scaling doesn&apos;t have any effect now (if we apply the scale above the root layer) it might in the future. So at least an assert to cover this case would be valuable.

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:932
&gt; +    IntRect rect = m_layerTransform.combined().mapRect(coverRect());

Hopefully this won&apos;t be too heavy, we really don&apos;t need that information for the whole layer tree.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:158
&gt; +    if (m_rootCompositingLayer == graphicsLayer)
&gt; +        return;

We didn&apos;t check it before, is it necessary?

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:179
&gt;      scheduleLayerFlush();

I think this isn&apos;t necessary and should be handled by WebCore through RenderLayerCompositor, isn&apos;t it?

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:184
&gt;      scheduleLayerFlush();

ditto?

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:189
&gt;      scheduleLayerFlush();

ditto?

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:274
&gt; +            m_state.coveredRect = toCoordinatedGraphicsLayer(m_rootCompositingLayer)-&gt;accumulatedCoverRect();

Maybe it should be the intersection of the covered rects and not the union. This rects carries the information &quot;we know this rect won&apos;t display any checkerboard.&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881895</commentid>
    <comment_count>13</comment_count>
      <attachid>198933</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-26 07:54:22 -0700</bug_when>
    <thetext>Comment on attachment 198933
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:849
&gt;&gt; +        return;
&gt; 
&gt; If scaling doesn&apos;t have any effect now (if we apply the scale above the root layer) it might in the future. So at least an assert to cover this case would be valuable.

Not sure what you mean.
What this code does is to apply the trajectory only for layers with no scaling/rotation/3d.
I think if we apply the scale above the root layer I think it&apos;s OK if the trajectory vector stops working. 
I&apos;m not sure what I would assert for here...

&gt;&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:158
&gt;&gt; +        return;
&gt; 
&gt; We didn&apos;t check it before, is it necessary?

Probably not.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:179
&gt;&gt;      scheduleLayerFlush();
&gt; 
&gt; I think this isn&apos;t necessary and should be handled by WebCore through RenderLayerCompositor, isn&apos;t it?

OK.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:274
&gt;&gt; +            m_state.coveredRect = toCoordinatedGraphicsLayer(m_rootCompositingLayer)-&gt;accumulatedCoverRect();
&gt; 
&gt; Maybe it should be the intersection of the covered rects and not the union. This rects carries the information &quot;we know this rect won&apos;t display any checkerboard.&quot;.

I don&apos;t think so... It&apos;s enough if one layer has contents at a given rect for it to not have to display checkerboards.
So if the main contents layer has a big cover rect, and has a child with a smaller cover rect, an intersection would give the small cover rect which is wrong in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881913</commentid>
    <comment_count>14</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-04-26 08:57:36 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Not sure what you mean.
&gt; What this code does is to apply the trajectory only for layers with no scaling/rotation/3d.
&gt; I think if we apply the scale above the root layer I think it&apos;s OK if the trajectory vector stops working. 
&gt; I&apos;m not sure what I would assert for here...

What I mean is that I could see the main content layer, the one that we care having a proper trajectory set, could have a scaled transform if the scale is done withing WebCore at some point. This would break the trajectory logic because of this early return and would be hardly noticeable.

I think what you want here is to apply the trajectory to a layer that is neither rotated or skewed. A scaled layer can still have the trajectory easily applied since it&apos;s normalized. But there is currently no easy TransformationMatrix::isIdentityOrTranslationOrScale method to use.

The ASSERT would be ugly and would look like ASSERT(combinedTransform.m11() == 1 || !combinedTransform.isIdentityOrTranslation()), so I guess we can just fix it if it ever breaks.

&gt; I don&apos;t think so... It&apos;s enough if one layer has contents at a given rect for it to not have to display checkerboards.
&gt; So if the main contents layer has a big cover rect, and has a child with a smaller cover rect, an intersection would give the small cover rect which is wrong in this case.

This would also break the moment that a small layer is in the area since the cover rect can&apos;t be bigger than the contents rect, so you&apos;re right, it should be a union.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881914</commentid>
    <comment_count>15</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-04-26 09:00:32 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; ...if the scale is done withing WebCore at some point...

To be precise, I mean the viewport or pixel ratio scaling applied on the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882160</commentid>
    <comment_count>16</comment_count>
      <attachid>199898</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-27 01:06:16 -0700</bug_when>
    <thetext>Created attachment 199898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882241</commentid>
    <comment_count>17</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-04-27 15:02:40 -0700</bug_when>
    <thetext>WebKit2 changes look fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882498</commentid>
    <comment_count>18</comment_count>
      <attachid>199898</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-04-29 01:44:37 -0700</bug_when>
    <thetext>Comment on attachment 199898
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:839
&gt; +CoordinatedGraphicsLayer* CoordinatedGraphicsLayer::firstDescendantsWithContents()

firstDescendant (without &apos;s&apos;)
It&apos;s also not quite the first descendant since this is searching depth-first, but I guess we always expect the root layer itself to be returned anyway.

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:842
&gt; +    if (m_mainBackingStore)
&gt; +        return this;

I think &quot;if (shouldHaveBackingStore())&quot; would be more reliable, it won&apos;t depend that updateContentBuffers() has been called first.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:258
&gt; +            if (CoordinatedGraphicsLayer* contentsLayer = mainContentsLayer())
&gt; +            m_state.coveredRect = contentsLayer-&gt;coverRect();

Indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882515</commentid>
    <comment_count>19</comment_count>
      <attachid>199993</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-29 05:58:01 -0700</bug_when>
    <thetext>Created attachment 199993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882521</commentid>
    <comment_count>20</comment_count>
      <attachid>199993</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-04-29 06:15:21 -0700</bug_when>
    <thetext>Comment on attachment 199993
Patch

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

r=me

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:152
&gt;      static void setShouldSupportContentsTiling(bool);
&gt; -
&gt; +    CoordinatedGraphicsLayer* findFirstDescendantWithContentsRecursively();
&gt;  private:

Nit: Missing empty line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882532</commentid>
    <comment_count>21</comment_count>
      <attachid>200001</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-29 06:40:55 -0700</bug_when>
    <thetext>Created attachment 200001
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882533</commentid>
    <comment_count>22</comment_count>
      <attachid>200002</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-29 06:42:36 -0700</bug_when>
    <thetext>Created attachment 200002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882636</commentid>
    <comment_count>23</comment_count>
      <attachid>200002</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-29 09:23:18 -0700</bug_when>
    <thetext>Comment on attachment 200002
Patch

Clearing flags on attachment: 200002

Committed r149292: &lt;http://trac.webkit.org/changeset/149292&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882637</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-29 09:23:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882793</commentid>
    <comment_count>25</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-04-29 15:43:41 -0700</bug_when>
    <thetext>This appears to have caused more than 100 failures in the compositing tests on WebKit2 EFL:
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r149293%20(11800)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882795</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-04-29 15:46:38 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; This appears to have caused more than 100 failures in the compositing tests on WebKit2 EFL:
&gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r149293%20(11800)/results.html

All of them seem to have an addition line like this:
+ (drawsContent 1)

I guess simple rebaseline is needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882850</commentid>
    <comment_count>27</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-29 17:21:33 -0700</bug_when>
    <thetext>Yes, I think this needs a rebaseline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882929</commentid>
    <comment_count>28</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-29 22:04:31 -0700</bug_when>
    <thetext>I think rebaselines are needed both for Qt and EFL.
I need some help with this since my MBP-Retina is not capable of producing the correct results.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198933</attachid>
            <date>2013-04-20 00:53:10 -0700</date>
            <delta_ts>2013-04-27 01:05:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110355-20130420095234.patch</filename>
            <type>text/plain</type>
            <size>16193</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQwOWI2ZjRiNTI4ZmM3
ODA1YzZmMzU1MjIxZmQ4NTEzMDNhYjczNC4uNzFhYzM0Mjc4OTgwZmUxODJmNzcwZDdjM2Y4NGM4
MTRlY2EyMDZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA0LTIwICBOb2Ft
IFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBHZXQgcmlkIG9mICJub24t
Y29tcG9zaXRlZCBjb250ZW50cyIgaW4gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzNTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGluIGZvcmNlIGNv
bXBvc2l0aW5nIG1vZGUsIGFsd2F5cyBhc3N1bWUgdGhhdCB0aGUgbWFpbiBsYXllciBuZWVzCisg
ICAgICAgIGEgYmFja2luZyBzdG9yZS4gTWFrZSBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0
b3J5VmVjdG9yIGFuZCBhY2N1bXVsYXRlZENvdmVyUmVjdAorICAgICAgICByZWN1cnNpdmUgc28g
dGhhdCB0aGV5IGRvbid0IHJlbHkgb24gYSBzcGVjaWFsaXplZCBsYXllci4KKworICAgICAgICBO
byBuZXcgdGVzdGFibGUgYmVoYXZpb3IsIGNoYW5nZXMgdG8gY292ZXJSZWN0IGFuZCB0cmFqZWN0
b3J5IHZlY3RvciBvbmx5CisgICAgICAgIGFmZmVjdCB0aWxpbmcgbGF0ZW5jeSBpbiByYXJlIGNh
c2VzIHRoYXQgYXJlIG5vdCB0cml2aWFsIHRvIHRlc3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjpzZXRWaXNpYmxlQ29u
dGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKToKKyAgICAgICAgICAgIE1ha2UgdGhlIHRyYWplY3Rv
cnkgdmVjdG9yIHJlY3Vyc2l2ZSwgdGhvdWdoIGxpbWl0ZWQgb25seSB0byBsYXllcnMgd2l0aAor
ICAgICAgICAgICAgdHJhbnNsYXRlL2lkZW50aXR5LiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRo
ZSB0cmFqZWN0b3J5IHZlY3RvciB3aGlsZSByZW1vdmluZworICAgICAgICAgICAgdGhlIG5vbi1j
b21wb3NpdGVkIGNvbnRlbnRzIHNwZWNpYWxpemF0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFjY3VtdWxhdGVkQ292ZXJSZWN0KToKKyAgICAgICAg
ICAgIEFkZGVkIGFjY3VtdWxhdGVkQ292ZXJSZWN0LCBzbyB0aGF0IHRoZSBjb3ZlclJlY3QgY2Fs
Y3VsYXRpb25zIGZvciB0aGUgVUkgcHJvY2VzcworICAgICAgICAgICAgYXJlIG5vdCBib3VuZCB0
byB0aGUgbm9uLWNvbXBvc2l0ZWQgY29udGVudHMgbGF5ZXIuCisKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50c0ludG9XaW5kb3cpOgorICAgICAgICAg
ICAgQWx3YXlzIGNyZWF0ZSBhIGxheWVyIGZvciB0aGUgbm9uLWNvbXBvc2l0ZWQgY29udGVudHMg
d2hlbiBpbiBmb3JjZUNvbXBvc2l0aW5nIG1vZGUuCisKIDIwMTMtMDQtMTUgIE5vYW0gUm9zZW50
aGFsICA8bm9hbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtUZXhtYXBdIEltcGxlbWVudGF0aW9u
IGZvciBwYXR0ZXJuIGNvbXBvc2l0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWQ4ZjFhZjljZjZmODg3OTMz
MDQ4ZDFhZTMwODVhMDI4OTFjMWE4ZC4uMjdjMWJmNGIwNjhmNjVlOWFiODA0MmVjMWJlMjRjODVl
YmMzMzM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTA0LTIwICBOb2FtIFJv
c2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBHZXQgcmlkIG9mICJub24tY29t
cG9zaXRlZCBjb250ZW50cyIgaW4gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzNTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIHVzaW5nIGEg
c3BlY2lhbCBub24tY29tcG9zaXRlZCBjb250ZW50cyBsYXllciwgd2UgbGV0IFJlbmRlckxheWVy
Q29tcG9zaXRvciBjcmVhdGUKKyAgICAgICAgYSBwcm9wZXIgR3JhcGhpY3NMYXllciBmb3IgdGhh
dCBjb250ZW50LgorICAgICAgICBGb3IgcmVtb3ZpbmcgYW55IG5vdGlvbiBvZiBub24tY29tcG9z
aXRlZCBjb250ZW50cyBpbiBDb29yZGluYXRlZExheWVyVHJlZUhvc3QsIHdlIGhhZCB0byAKKyAg
ICAgICAgZ2VuZXJhbGl6ZSB0d28gYXJlYXMgdGhhdCB3ZXJlIGJvdW5kIHRvIHRoYXQgc3BlY2lh
bGl6ZWQgbGF5ZXI6CisgICAgICAgIC0gVGhlIGNvdmVyUmVjdCB0aGF0IGlzIHBhc3NlZCBiYWNr
IHRvIHRoZSBVSSBwcm9jZXNzIGlzIGEgdW5pb24gb2YgYWxsIGxheWVycycgY292ZXIgcmVjdCAK
KyAgICAgICAgICBpbnN0ZWFkIG9mIGEgY292ZXIgcmVjdCBvZiB0aGUgbWFpbiBsYXllciBvbmx5
LgorICAgICAgICAtIFRoZSB0cmFqZWN0b3J5IHZlY3RvciBpcyBwYXNzZWQgdG8gYW55IGxheWVy
IHRoYXQgaGFzIGFuIGlkZW50aXR5L3RyYW5zbGF0ZSB0cmFuc2Zvcm0sCisgICAgICAgICAgbm90
IGp1c3QgdG8gdGhlIG1haW4gbGF5ZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OkNvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0Um9v
dENvbXBvc2l0aW5nTGF5ZXIpOgorICAgICAgICAgICAgRG9uJ3QgY3JlYXRlIHRoZSBub24tY29t
cG9zaXRlZCBsYXllciwgaW5zdGVhZCBrZWVwIGEgcmF3IHBvaW50ZXIgdG8gdGhlIHJvb3QKKyAg
ICAgICAgICAgIGNvbXBvc2l0aW5nIGxheWVyIGNyZWF0ZWQgYnkgdGhlIFdlYkNvcmUgY29tcG9z
aXRvci4KKworICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldE5v
bkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0OjpzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUlu
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2Nyb2xs
Tm9uQ29tcG9zaXRlZENvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0OjpzaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFZpc2libGVDb250ZW50c1Jl
Y3QpOgorICAgICAgICAgICAgUmVtb3ZlIG5vbi1jb21wb3NpdGVkIGxheWVyIHNwZWNpYWxpemF0
aW9uLgorCisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Zmx1c2hQ
ZW5kaW5nTGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgICAgIFVzZSB0aGUgbmV3IGFjY3VtdWxhdGVk
Q292ZXJSZWN0IGluc3RlYWQgb2YgdGhlIG5vbi1jb21wb3NpdGVkIGNvbnRlbnRzIGNvdmVyIHJl
Y3QuCisKIDIwMTMtMDQtMTUgIE5vYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtUZXhtYXBdIEltcGxlbWVudGF0aW9uIGZvciBwYXR0ZXJuIGNvbXBvc2l0aW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IDU4NmU0N2JlY2IxNjMwNGY4ZWE1YWVlZDYwZjRhMzVjYjljMGE3MzcuLjY1ZTQ0
NGJmMzJkNjkwN2JlMTFjNmMzNDk0OWNmNTFmNjI5MTJmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC04MzgsOSAr
ODM4LDE2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9y
ZVBhaW50QmVnaW4oKQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0VmlzaWJs
ZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5
VmVjdG9yKQogeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7
ICsraSkKKyAgICAgICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGRyZW4oKVtpXSkt
PnNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IodHJhamVjdG9yeVZlY3Rvcik7
CisKICAgICBpZiAoIW1fbWFpbkJhY2tpbmdTdG9yZSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggY29tYmluZWRUcmFuc2Zvcm0gPSBtX2xheWVyVHJhbnNmb3Jt
LmNvbWJpbmVkKCkuaW52ZXJzZSgpOworICAgIGlmICghY29tYmluZWRUcmFuc2Zvcm0uaXNJZGVu
dGl0eU9yVHJhbnNsYXRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9tYWluQmFja2lu
Z1N0b3JlLT5zZXRUcmFqZWN0b3J5VmVjdG9yKHRyYWplY3RvcnlWZWN0b3IpOwogICAgIHNldE5l
ZWRzVmlzaWJsZVJlY3RBZGp1c3RtZW50KCk7CiB9CkBAIC05MjAsNiArOTI3LDE0IEBAIHN0YXRp
YyB2b2lkIGNsYW1wVG9Db250ZW50c1JlY3RJZlJlY3RJc0luZmluaXRlKEZsb2F0UmVjdCYgcmVj
dCwgY29uc3QgSW50UmVjdCYKICAgICB9CiB9CiAKK0ludFJlY3QgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjphY2N1bXVsYXRlZENvdmVyUmVjdCgpCit7CisgICAgSW50UmVjdCByZWN0ID0gbV9s
YXllclRyYW5zZm9ybS5jb21iaW5lZCgpLm1hcFJlY3QoY292ZXJSZWN0KCkpOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkKKyAgICAgICAgcmVjdC51
bml0ZSh0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjaGlsZHJlbigpW2ldKS0+YWNjdW11bGF0
ZWRDb3ZlclJlY3QoKSk7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKIEludFJlY3QgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KCkKIHsKICAgICAv
LyBOb24taW52ZXJ0aWJsZSBsYXllcnMgYXJlIG5vdCB2aXNpYmxlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDljNjNjMDg4
MDczMmU0OWExYjY3YmM4YWRhNDc3OGY2ZTU2MTdmZjEuLmUzYzRjYWExMjNjZTRiYjFmMDg2ZGEy
N2Q0YmQ0NWQ3OWMwMzdlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRGaXhlZFRvVmlld3BvcnQoYm9vbCBpc0ZpeGVkKTsKIAogICAgIEludFJlY3QgY292
ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9tYWluQmFja2luZ1N0b3JlID8gbV9tYWluQmFja2lu
Z1N0b3JlLT5tYXBUb0NvbnRlbnRzKG1fbWFpbkJhY2tpbmdTdG9yZS0+Y292ZXJSZWN0KCkpIDog
SW50UmVjdCgpOyB9CisgICAgSW50UmVjdCBhY2N1bXVsYXRlZENvdmVyUmVjdCgpOwogCiAgICAg
Ly8gVGlsZWRCYWNraW5nU3RvcmVDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5n
U3RvcmVQYWludEJlZ2luKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGE5YmI4N2IzN2ZhZmIwYWFmOTdiMGIxNWNj
OTg5ZmE0MjBiMjhlZWUuLmI4NjgxZGVkMjE1MTQxMjgzOTI2YWU4ODFlNDlkOGFlYTA4OWFkMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CkBAIC0xODQyLDcgKzE4NDIsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRzSW50
b1dpbmRvdygpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX293bmlu
Z0xheWVyLT5pc1Jvb3RMYXllcigpKSB7Ci0jaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiBQ
TEFURk9STShCTEFDS0JFUlJZKSB8fCBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgICAg
IGlmIChjb21wb3NpdG9yKCktPmluRm9yY2VkQ29tcG9zaXRpbmdNb2RlKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4IDcwOWRjOTlmOTFkZmY0MTBk
YzU3MmY2ZGYyNjM5N2NlMTY0MDI1MzUuLjRkZTIxYTdjNTg2ODY4NGJiNjc0ODJlNzhhNjkyNTBm
OTg3MGQ1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAtNzksNiArNzksNyBAQCBDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6On5Db29yZGluYXRlZExheWVyVHJlZUhvc3QoKQogCiBDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlKiB3ZWJQYWdlKQogICAg
IDogTGF5ZXJUcmVlSG9zdCh3ZWJQYWdlKQorICAgICwgbV9yb290Q29tcG9zaXRpbmdMYXllcigw
KQogICAgICwgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2goZmFsc2UpCiAgICAgLCBt
X2lzVmFsaWQodHJ1ZSkKICAgICAsIG1faXNQdXJnaW5nKGZhbHNlKQpAQCAtOTgsMjUgKzk5LDEy
IEBAIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdl
YlBhZ2UqIHdlYlBhZ2UpCiAKICAgICAvLyBDcmVhdGUgYSByb290IGxheWVyLgogICAgIG1fcm9v
dExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMsIHRoaXMpOwotICAgIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciogY29vcmRpbmF0ZWRSb290TGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcihtX3Jvb3RMYXllci5nZXQoKSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fcm9v
dExheWVyLT5zZXROYW1lKCJDb29yZGluYXRlZExheWVyVHJlZUhvc3Qgcm9vdCBsYXllciIpOwog
I2VuZGlmCiAgICAgbV9yb290TGF5ZXItPnNldERyYXdzQ29udGVudChmYWxzZSk7CiAgICAgbV9y
b290TGF5ZXItPnNldFNpemUobV93ZWJQYWdlLT5zaXplKCkpOwotICAgIG1fbGF5ZXJUcmVlQ29u
dGV4dC5jb29yZGluYXRlZExheWVySUQgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjb29y
ZGluYXRlZFJvb3RMYXllciktPmlkKCk7Ci0KLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5
ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcywgdGhpcyk7Ci0jaWZuZGVmIE5ERUJVRwot
ICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmFtZSgiQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0IG5vbi1jb21wb3NpdGVkIGNvbnRlbnQiKTsKLSNlbmRpZgotICAgIG1fbm9uQ29t
cG9zaXRlZENvbnRlbnRMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUpOwotICAgIG1fbm9uQ29t
cG9zaXRlZENvbnRlbnRMYXllci0+c2V0U2l6ZShtX3dlYlBhZ2UtPnNpemUoKSk7Ci0KLSAgICBt
X25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihtX3dlYlBhZ2Ut
PmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKSk7Ci0gICAgbV9ub25D
b21wb3NpdGVkQ29udGVudExheWVyLT5zZXRTaG93UmVwYWludENvdW50ZXIobV93ZWJQYWdlLT5j
b3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKSk7Ci0KLSAgICBtX3Jv
b3RMYXllci0+YWRkQ2hpbGQobV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLmdldCgpKTsKKyAg
ICBtX2xheWVyVHJlZUNvbnRleHQuY29vcmRpbmF0ZWRMYXllcklEID0gdG9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5pZCgpOwogCiAgICAgQ29vcmRpbmF0ZWRT
dXJmYWNlOjpzZXRGYWN0b3J5KGNyZWF0ZUNvb3JkaW5hdGVkU3VyZmFjZSk7CiAKQEAgLTE2Niwx
MiArMTU0LDE1IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRTaG91bGROb3Rp
ZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZsdXNoKGJvb2wKIAogdm9pZCBDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5y
ZW1vdmVBbGxDaGlsZHJlbigpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0
Q29udGVudHNPcGFxdWUobV93ZWJQYWdlLT5kcmF3c0JhY2tncm91bmQoKSAmJiAhbV93ZWJQYWdl
LT5kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCgpKTsKKyAgICBpZiAobV9yb290Q29tcG9zaXRp
bmdMYXllciA9PSBncmFwaGljc0xheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9y
b290Q29tcG9zaXRpbmdMYXllcikKKyAgICAgICAgbV9yb290Q29tcG9zaXRpbmdMYXllci0+cmVt
b3ZlRnJvbVBhcmVudCgpOwogCi0gICAgLy8gQWRkIHRoZSBhY2NlbGVyYXRlZCBsYXllciB0cmVl
IGhpZXJhcmNoeS4KLSAgICBpZiAoZ3JhcGhpY3NMYXllcikKLSAgICAgICAgbV9ub25Db21wb3Np
dGVkQ29udGVudExheWVyLT5hZGRDaGlsZChncmFwaGljc0xheWVyKTsKKyAgICBtX3Jvb3RDb21w
b3NpdGluZ0xheWVyID0gZ3JhcGhpY3NMYXllcjsKKyAgICBpZiAobV9yb290Q29tcG9zaXRpbmdM
YXllcikKKyAgICAgICAgbV9yb290TGF5ZXItPmFkZENoaWxkQXRJbmRleChtX3Jvb3RDb21wb3Np
dGluZ0xheWVyLCAwKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmludmFs
aWRhdGUoKQpAQCAtMTg1LDI3ICsxNzYsMTYgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OmludmFsaWRhdGUoKQogCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0Tm9u
Q29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKQogewotICAgIG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0gICAgaWYgKG1fcGFnZU92ZXJsYXlMYXll
cikKLSAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLQogICAg
IHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQogCi12b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCkKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXROb25D
b21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JikKIHsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldE5lZWRzRGlzcGxheUlu
UmVjdChyZWN0KTsKLSAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQotICAgICAgICBtX3BhZ2VP
dmVybGF5TGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKLQogICAgIHNjaGVkdWxl
TGF5ZXJGbHVzaCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2Nyb2xs
Tm9uQ29tcG9zaXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKQogewotICAgIGlm
ICghbV93ZWJQYWdlLT51c2VGaXhlZExheW91dCgpKQotICAgICAgICBzZXROb25Db21wb3NpdGVk
Q29udGVudHNOZWVkRGlzcGxheSgpOwotCiAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CiB9CiAK
QEAgLTIzMiwyNyArMjEyLDcgQEAgYm9vbCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmZvcmNl
UmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKIHZvaWQgQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0OjpzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUp
CiB7Ci0gICAgaWYgKG1fcm9vdExheWVyLT5zaXplKCkgPT0gbmV3U2l6ZSkKLSAgICAgICAgcmV0
dXJuOwotCiAgICAgbV9yb290TGF5ZXItPnNldFNpemUobmV3U2l6ZSk7Ci0KLSAgICAvLyBJZiB0
aGUgbmV3U2l6ZSBleHBvc2VzIG5ldyBhcmVhcyBvZiB0aGUgbm9uLWNvbXBvc2l0ZWQgY29udGVu
dCBhIHNldE5lZWRzRGlzcGxheSBpcyBuZWVkZWQKLSAgICAvLyBmb3IgdGhvc2UgbmV3bHkgZXhw
b3NlZCBhcmVhcy4KLSAgICBGbG9hdFNpemUgb2xkU2l6ZSA9IG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllci0+c2l6ZSgpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0U2l6
ZShuZXdTaXplKTsKLQotICAgIGlmIChuZXdTaXplLndpZHRoKCkgPiBvbGRTaXplLndpZHRoKCkp
IHsKLSAgICAgICAgZmxvYXQgaGVpZ2h0ID0gc3RkOjptaW4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5l
d1NpemUuaGVpZ2h0KCkpLCBvbGRTaXplLmhlaWdodCgpKTsKLSAgICAgICAgbV9ub25Db21wb3Np
dGVkQ29udGVudExheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QoRmxvYXRSZWN0KG9sZFNpemUu
d2lkdGgoKSwgMCwgbmV3U2l6ZS53aWR0aCgpIC0gb2xkU2l6ZS53aWR0aCgpLCBoZWlnaHQpKTsK
LSAgICB9Ci0KLSAgICBpZiAobmV3U2l6ZS5oZWlnaHQoKSA+IG9sZFNpemUuaGVpZ2h0KCkpCi0g
ICAgICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0
KEZsb2F0UmVjdCgwLCBvbGRTaXplLmhlaWdodCgpLCBuZXdTaXplLndpZHRoKCksIG5ld1NpemUu
aGVpZ2h0KCkgLSBvbGRTaXplLmhlaWdodCgpKSk7Ci0KLSAgICBpZiAobV9wYWdlT3ZlcmxheUxh
eWVyKQotICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldFNpemUobmV3U2l6ZSk7Ci0KICAg
ICBzY2hlZHVsZUxheWVyRmx1c2goKTsKIH0KIApAQCAtMjk1LDI1ICsyNTUsMjUgQEAgYm9vbCBD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiAgICAg
VGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHByb3RlY3RvcihtX2lzRmx1c2hpbmdMYXllckNoYW5nZXMs
IHRydWUpOwogCiAgICAgY3JlYXRlQ29tcG9zaXRpbmdMYXllcnMoKTsKLQogICAgIGluaXRpYWxp
emVSb290Q29tcG9zaXRpbmdMYXllcklmTmVlZGVkKCk7CiAKICAgICBtX3Jvb3RMYXllci0+Zmx1
c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwotICAgIG1fbm9uQ29tcG9zaXRl
ZENvbnRlbnRMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwog
ICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5ZXIpCiAgICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+
Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCiAgICAgYm9vbCBkaWRT
eW5jID0gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENv
bXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIAogICAgIGZsdXNoUGVuZGluZ0lt
YWdlQmFja2luZ0NoYW5nZXMoKTsKLQogICAgIGRlbGV0ZUNvbXBvc2l0aW5nTGF5ZXJzKCk7CiAK
ICAgICBpZiAobV9zaG91bGRTeW5jRnJhbWUpIHsKICAgICAgICAgZGlkU3luYyA9IHRydWU7CiAK
LSAgICAgICAgbV9zdGF0ZS5jb250ZW50c1NpemUgPSByb3VuZGVkSW50U2l6ZShtX25vbkNvbXBv
c2l0ZWRDb250ZW50TGF5ZXItPnNpemUoKSk7Ci0gICAgICAgIG1fc3RhdGUuY292ZXJlZFJlY3Qg
PSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIu
Z2V0KCkpLT5jb3ZlclJlY3QoKTsKKyAgICAgICAgaWYgKG1fcm9vdENvbXBvc2l0aW5nTGF5ZXIp
IHsKKyAgICAgICAgICAgIG1fc3RhdGUuY29udGVudHNTaXplID0gcm91bmRlZEludFNpemUobV9y
b290Q29tcG9zaXRpbmdMYXllci0+c2l6ZSgpKTsKKyAgICAgICAgICAgIG1fc3RhdGUuY292ZXJl
ZFJlY3QgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jvb3RDb21wb3NpdGluZ0xheWVy
KS0+YWNjdW11bGF0ZWRDb3ZlclJlY3QoKTsKKyAgICAgICAgfQorCiAgICAgICAgIG1fc3RhdGUu
c2Nyb2xsUG9zaXRpb24gPSBtX3Zpc2libGVDb250ZW50c1JlY3QubG9jYXRpb24oKTsKIAogICAg
ICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5OjpDb21taXRDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUobV9zdGF0ZSkpOwpAQCAtNjE4LDEx
ICs1NzgsNiBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKgogCiB2b2lkIENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdDo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwg
V2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGNsaXBSZWN0KQogewotICAgIGlmIChncmFwaGljc0xheWVyID09IG1fbm9uQ29tcG9zaXRl
ZENvbnRlbnRMYXllcikgewotICAgICAgICBtX3dlYlBhZ2UtPmRyYXdSZWN0KGdyYXBoaWNzQ29u
dGV4dCwgY2xpcFJlY3QpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYgKGdyYXBo
aWNzTGF5ZXIgPT0gbV9wYWdlT3ZlcmxheUxheWVyKSB7CiAgICAgICAgIC8vIE92ZXJsYXlzIGNv
bnRhaW4gdHJhbnNwYXJlbnQgY29udGVudHMgYW5kIHdvbid0IGNsZWFyIHRoZSBjb250ZXh0IGFz
IHBhcnQgb2YgdGhlaXIgcmVuZGVyaW5nLCBzbyB3ZSBkbyBpdCBoZXJlLgogICAgICAgICBncmFw
aGljc0NvbnRleHQuY2xlYXJSZWN0KGNsaXBSZWN0KTsKQEAgLTY4Nyw3ICs2NDIsOCBAQCBXZWJD
b3JlOjpGbG9hdFJlY3QgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp2aXNpYmxlQ29udGVudHNS
ZWN0KCkgY29uc3QKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRWaXNpYmxlQ29u
dGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRQb2ludCYgdHJhamVj
dG9yeVZlY3RvcikKIHsKICAgICAvLyBBIHplcm8gdHJhamVjdG9yeVZlY3RvciBpbmRpY2F0ZXMg
dGhhdCB0aWxlcyBhbGwgYXJvdW5kIHRoZSB2aWV3cG9ydCBhcmUgcmVxdWVzdGVkLgotICAgIHRv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci5nZXQo
KSktPnNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IodHJhamVjdG9yeVZlY3Rv
cik7CisgICAgaWYgKG1fcm9vdENvbXBvc2l0aW5nTGF5ZXIpCisgICAgICAgIHRvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKG1fcm9vdENvbXBvc2l0aW5nTGF5ZXIpLT5zZXRWaXNpYmxlQ29udGVu
dFJlY3RUcmFqZWN0b3J5VmVjdG9yKHRyYWplY3RvcnlWZWN0b3IpOwogCiAgICAgYm9vbCBjb250
ZW50c1JlY3REaWRDaGFuZ2UgPSByZWN0ICE9IG1fdmlzaWJsZUNvbnRlbnRzUmVjdDsKICAgICBp
ZiAoY29udGVudHNSZWN0RGlkQ2hhbmdlKSB7CkBAIC03MTAsNyArNjY2LDYgQEAgdm9pZCBDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0LCBjb24KIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkZXZpY2VPclBh
Z2VTY2FsZUZhY3RvckNoYW5nZWQoKQogewogICAgIG1fcm9vdExheWVyLT5kZXZpY2VPclBhZ2VT
Y2FsZUZhY3RvckNoYW5nZWQoKTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPmRl
dmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5
ZXIpCiAgICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JD
aGFuZ2VkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdC5oCmluZGV4IGIwN2VkYzE0MGFkYzkyOGEzNDlkZTVhNWM5Y2VmYjE2
ZTA4ZGViMTEuLmVkNmNhMWJiMTVhMjllZWJjYjE2MDIxMTg4OGMyYmUxZDhkNDUxZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dC5oCkBAIC0xNjUsOSArMTY1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgT3duUHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOwotCi0gICAgLy8gVGhlIGxheWVyIHdo
aWNoIGNvbnRhaW5zIGFsbCBub24tY29tcG9zaXRlZCBjb250ZW50LgotICAgIE93blB0cjxXZWJD
b3JlOjpHcmFwaGljc0xheWVyPiBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXI7CisgICAgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciogbV9yb290Q29tcG9zaXRpbmdMYXllcjsKIAogICAgIC8vIFRo
ZSBwYWdlIG92ZXJsYXkgbGF5ZXIuIFdpbGwgYmUgbnVsbCBpZiB0aGVyZSdzIG5vIHBhZ2Ugb3Zl
cmxheS4KICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9wYWdlT3ZlcmxheUxh
eWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199898</attachid>
            <date>2013-04-27 01:06:16 -0700</date>
            <delta_ts>2013-04-29 05:57:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110355-20130427100529.patch</filename>
            <type>text/plain</type>
            <size>16990</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFhZDljNGE5Mzk0Njdi
ZDU3NjQ3ZjZiMGM3YTY0NDA4NTJlZDU0Yi4uMWI5ZjA2M2RjOGQ0YzRlOGI0ZWE5MzY2YmRmZjI2
NDkxMTQxOTNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEzLTA0LTI2ICBOb2Ft
IFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAorICAgICAgICBHZXQgcmlkIG9mICJub24t
Y29tcG9zaXRlZCBjb250ZW50cyIgaW4gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzNTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGluIGZvcmNlIGNv
bXBvc2l0aW5nIG1vZGUsIGFsd2F5cyBhc3N1bWUgdGhhdCB0aGUgbWFpbiBsYXllciBuZWVkcwor
ICAgICAgICBhIGJhY2tpbmcgc3RvcmUuIE1ha2Ugc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVj
dG9yeVZlY3RvciBhbmQgYWNjdW11bGF0ZWRDb3ZlclJlY3QKKyAgICAgICAgcmVjdXJzaXZlIHNv
IHRoYXQgdGhleSBkb24ndCByZWx5IG9uIGEgc3BlY2lhbGl6ZWQgbGF5ZXIuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RhYmxlIGJlaGF2aW9yLCBjaGFuZ2VzIHRvIGNvdmVyUmVjdCBhbmQgdHJhamVj
dG9yeSB2ZWN0b3Igb25seQorICAgICAgICBhZmZlY3QgdGlsaW5nIGxhdGVuY3kgaW4gcmFyZSBj
YXNlcyB0aGF0IGFyZSBub3QgdHJpdmlhbCB0byB0ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6c2V0VmlzaWJsZUNv
bnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcik6CisgICAgICAgICAgICBNYWtlIHRoZSB0cmFqZWN0
b3J5IHZlY3RvciByZWN1cnNpdmUsIHRob3VnaCBsaW1pdGVkIG9ubHkgdG8gbGF5ZXJzIHdpdGgK
KyAgICAgICAgICAgIHRyYW5zbGF0ZS9pZGVudGl0eS4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0
aGUgdHJhamVjdG9yeSB2ZWN0b3Igd2hpbGUgcmVtb3ZpbmcKKyAgICAgICAgICAgIHRoZSBub24t
Y29tcG9zaXRlZCBjb250ZW50cyBzcGVjaWFsaXphdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphY2N1bXVsYXRlZENvdmVyUmVjdCk6CisgICAgICAg
ICAgICBBZGRlZCBhY2N1bXVsYXRlZENvdmVyUmVjdCwgc28gdGhhdCB0aGUgY292ZXJSZWN0IGNh
bGN1bGF0aW9ucyBmb3IgdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgICAgIGFyZSBub3QgYm91bmQg
dG8gdGhlIG5vbi1jb21wb3NpdGVkIGNvbnRlbnRzIGxheWVyLgorCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludHNJbnRvV2luZG93KToKKyAgICAgICAg
ICAgIEFsd2F5cyBjcmVhdGUgYSBsYXllciBmb3IgdGhlIG5vbi1jb21wb3NpdGVkIGNvbnRlbnRz
IHdoZW4gaW4gZm9yY2VDb21wb3NpdGluZyBtb2RlLgorCisyMDEzLTA0LTI2ICBOb2FtIFJvc2Vu
dGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKwogICAgICAgICBbUXRdIGZhc3QvY2FudmFzL3dlYmds
L3dlYmdsLWNvbXBvc2l0ZS1tb2Rlcy5odG1sIGJyb2tlbiBhZnRlciByMTQ4NDMzLgogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MjQzCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBmYWUxOTliOTIyMDc0Y2ViOGNkMGI3MjYxOTczY2JhNGE2YzNhNDY0Li45Njk4ZDRk
MGI2YmY2MDAyMjRmOTBjODRjMzFjZDBkMzFlMmE3NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzAgQEAKKzIwMTMtMDQtMjYgIE5vYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgorCisg
ICAgICAgIEdldCByaWQgb2YgIm5vbi1jb21wb3NpdGVkIGNvbnRlbnRzIiBpbiBDb29yZGluYXRl
ZExheWVyVHJlZUhvc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExMDM1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEluc3RlYWQgb2YgdXNpbmcgYSBzcGVjaWFsIG5vbi1jb21wb3NpdGVkIGNvbnRlbnRz
IGxheWVyLCB3ZSBsZXQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yIGNyZWF0ZQorICAgICAgICBhIHBy
b3BlciBHcmFwaGljc0xheWVyIGZvciB0aGF0IGNvbnRlbnQuCisgICAgICAgIENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdCBub3cgbmVlZHMgdG8gZmluZCB0aGUgbWFpbiBjb250ZW50cyBsYXllciBm
b3IgdGhlIHB1cnBvc2Ugb2Ygc2V0dGluZworICAgICAgICB0aGUgdHJhamVjdG9yeSB2ZWN0b3Ig
YW5kIGFwcGx5aW5nIHRoZSBjb3ZlciByZWN0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpDb29yZGluYXRlZExheWVy
VHJlZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNl
dFJvb3RDb21wb3NpdGluZ0xheWVyKToKKyAgICAgICAgICAgIERvbid0IGNyZWF0ZSB0aGUgbm9u
LWNvbXBvc2l0ZWQgbGF5ZXIsIGluc3RlYWQga2VlcCBhIHJhdyBwb2ludGVyIHRvIHRoZSByb290
CisgICAgICAgICAgICBjb21wb3NpdGluZyBsYXllciBjcmVhdGVkIGJ5IHRoZSBXZWJDb3JlIGNv
bXBvc2l0b3IuCisKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpz
ZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OkNv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3Bs
YXlJblJlY3QpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNj
cm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdDo6c2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OkNvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRWaXNpYmxlQ29udGVu
dHNSZWN0KToKKyAgICAgICAgICAgIFJlbW92ZSBub24tY29tcG9zaXRlZCBsYXllciBzcGVjaWFs
aXphdGlvbi4KKwogMjAxMy0wNC0yMyAgTm9hbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW0Nvb3JkaW5hdGVkIEdyYXBoaWNzXSBSZW1vdmUgdGhlIGxvY2tBbmltYXRp
b25zIGNvZGUgcGF0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA1ODZlNDdiZWNiMTYzMDRmOGVhNWFlZWQ2MGY0YTM1
Y2I5YzBhNzM3Li45NjBiMzkyMzlhNzg4YzMxYmY2MGQwNDhjZWM2ZmUzMmZiMTU4ZjZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmNwcApAQCAtODM2LDYgKzgzNiwyMCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
dGlsZWRCYWNraW5nU3RvcmVQYWludEJlZ2luKCkKIHsKIH0KIAorQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZpcnN0RGVzY2VuZGFudHNXaXRoQ29u
dGVudHMoKQoreworICAgIGlmIChtX21haW5CYWNraW5nU3RvcmUpCisgICAgICAgIHJldHVybiB0
aGlzOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytp
KSB7CisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSB0b0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcihjaGlsZHJlbigpW2ldKS0+Zmlyc3REZXNjZW5kYW50c1dpdGhDb250
ZW50cygpOworICAgICAgICBpZiAobGF5ZXIpCisgICAgICAgICAgICByZXR1cm4gbGF5ZXI7Cisg
ICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IEZsb2F0UG9pbnQm
IHRyYWplY3RvcnlWZWN0b3IpCiB7CiAgICAgaWYgKCFtX21haW5CYWNraW5nU3RvcmUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5k
ZXggOWM2M2MwODgwNzMyZTQ5YTFiNjdiYzhhZGE0Nzc4ZjZlNTYxN2ZmMS4uMzNiY2ExM2M1YTk3
YTkwYzlmYzQxZjllNzc0NjkzOTMxNTI0NTQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtMTQ4LDcgKzE0OCw3IEBAIHB1
YmxpYzoKICAgICBib29sIGhhc1BlbmRpbmdWaXNpYmxlQ2hhbmdlcygpOwogCiAgICAgc3RhdGlj
IHZvaWQgc2V0U2hvdWxkU3VwcG9ydENvbnRlbnRzVGlsaW5nKGJvb2wpOwotCisgICAgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyKiBmaXJzdERlc2NlbmRhbnRzV2l0aENvbnRlbnRzKCk7CiBwcml2
YXRlOgogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIGVudW0gUGVuZGluZ0NhbnZhc09w
ZXJhdGlvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IDk0NzQ0MWU1YmFlMWFlNWE2OTA5Mzg3OTZjMzY5OWNlNTQxNTQ3NDMuLjBm
NDM0MTQyOTdkYzNhZWFhOTQ5MjJlYTU5NmNmMzE3MTRkZTg5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xODQ1LDcgKzE4NDUs
NyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRzSW50b1dpbmRvdygpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX293bmluZ0xheWVyLT5pc1Jvb3RMYXll
cigpKSB7Ci0jaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiBQTEFURk9STShCTEFDS0JFUlJZ
KSB8fCBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgICAgIGlmIChjb21wb3NpdG9yKCkt
PmluRm9yY2VkQ29tcG9zaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExh
eWVyVHJlZUhvc3QuY3BwCmluZGV4IGY0MWIyYzllNzBlZmVhZGU3ZDZlMGM3YTE0NDNkODRjMjll
NmZjMTEuLmQ2ZDYzMzY1NzQyNmRhOTRjMzRiNDcxZmE4ZjgyY2VhYzQ5MjU5ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcApAQCAtODAsNiArODAsNyBAQCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6On5Db29yZGlu
YXRlZExheWVyVHJlZUhvc3QoKQogCiBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OkNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlKiB3ZWJQYWdlKQogICAgIDogTGF5ZXJUcmVlSG9zdCh3
ZWJQYWdlKQorICAgICwgbV9yb290Q29tcG9zaXRpbmdMYXllcigwKQogICAgICwgbV9ub3RpZnlB
ZnRlclNjaGVkdWxlZExheWVyRmx1c2goZmFsc2UpCiAgICAgLCBtX2lzVmFsaWQodHJ1ZSkKICAg
ICAsIG1faXNQdXJnaW5nKGZhbHNlKQpAQCAtOTksMjUgKzEwMCwxMiBAQCBDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlKiB3ZWJQYWdlKQog
CiAgICAgLy8gQ3JlYXRlIGEgcm9vdCBsYXllci4KICAgICBtX3Jvb3RMYXllciA9IEdyYXBoaWNz
TGF5ZXI6OmNyZWF0ZSh0aGlzLCB0aGlzKTsKLSAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIq
IGNvb3JkaW5hdGVkUm9vdExheWVyID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9yb290
TGF5ZXIuZ2V0KCkpOwogI2lmbmRlZiBOREVCVUcKICAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgi
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0IHJvb3QgbGF5ZXIiKTsKICNlbmRpZgogICAgIG1fcm9v
dExheWVyLT5zZXREcmF3c0NvbnRlbnQoZmFsc2UpOwogICAgIG1fcm9vdExheWVyLT5zZXRTaXpl
KG1fd2ViUGFnZS0+c2l6ZSgpKTsKLSAgICBtX2xheWVyVHJlZUNvbnRleHQuY29vcmRpbmF0ZWRM
YXllcklEID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY29vcmRpbmF0ZWRSb290TGF5ZXIp
LT5pZCgpOwotCi0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyID0gR3JhcGhpY3NMYXll
cjo6Y3JlYXRlKHRoaXMsIHRoaXMpOwotI2lmbmRlZiBOREVCVUcKLSAgICBtX25vbkNvbXBvc2l0
ZWRDb250ZW50TGF5ZXItPnNldE5hbWUoIkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCBub24tY29t
cG9zaXRlZCBjb250ZW50Iik7Ci0jZW5kaWYKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5
ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5
ZXItPnNldFNpemUobV93ZWJQYWdlLT5zaXplKCkpOwotCi0gICAgbV9ub25Db21wb3NpdGVkQ29u
dGVudExheWVyLT5zZXRTaG93RGVidWdCb3JkZXIobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLT5zaG93RGVidWdCb3JkZXJzKCkpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRM
YXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGlu
Z3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCkpOwotCi0gICAgbV9yb290TGF5ZXItPmFkZENoaWxk
KG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci5nZXQoKSk7CisgICAgbV9sYXllclRyZWVDb250
ZXh0LmNvb3JkaW5hdGVkTGF5ZXJJRCA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1fcm9v
dExheWVyLmdldCgpKS0+aWQoKTsKIAogICAgIENvb3JkaW5hdGVkU3VyZmFjZTo6c2V0RmFjdG9y
eShjcmVhdGVDb29yZGluYXRlZFN1cmZhY2UpOwogCkBAIC0xNjcsMTIgKzE1NSwxMiBAQCB2b2lk
IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0U2hvdWxkTm90aWZ5QWZ0ZXJOZXh0U2NoZWR1
bGVkTGF5ZXJGbHVzaChib29sCiAKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRS
b290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
KQogewotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+cmVtb3ZlQWxsQ2hpbGRyZW4o
KTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldENvbnRlbnRzT3BhcXVlKG1f
d2ViUGFnZS0+ZHJhd3NCYWNrZ3JvdW5kKCkgJiYgIW1fd2ViUGFnZS0+ZHJhd3NUcmFuc3BhcmVu
dEJhY2tncm91bmQoKSk7CisgICAgaWYgKG1fcm9vdENvbXBvc2l0aW5nTGF5ZXIpCisgICAgICAg
IG1fcm9vdENvbXBvc2l0aW5nTGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKIAotICAgIC8vIEFk
ZCB0aGUgYWNjZWxlcmF0ZWQgbGF5ZXIgdHJlZSBoaWVyYXJjaHkuCi0gICAgaWYgKGdyYXBoaWNz
TGF5ZXIpCi0gICAgICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+YWRkQ2hpbGQoZ3Jh
cGhpY3NMYXllcik7CisgICAgbV9yb290Q29tcG9zaXRpbmdMYXllciA9IGdyYXBoaWNzTGF5ZXI7
CisgICAgaWYgKG1fcm9vdENvbXBvc2l0aW5nTGF5ZXIpCisgICAgICAgIG1fcm9vdExheWVyLT5h
ZGRDaGlsZEF0SW5kZXgobV9yb290Q29tcG9zaXRpbmdMYXllciwgMCk7CiB9CiAKIHZvaWQgQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0OjppbnZhbGlkYXRlKCkKQEAgLTE4NCwzMiArMTcyLDYgQEAg
dm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmludmFsaWRhdGUoKQogICAgIG1faXNWYWxp
ZCA9IGZhbHNlOwogfQogCi12b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0Tm9uQ29t
cG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKQotewotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0gICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikK
LSAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLQotICAgIHNj
aGVkdWxlTGF5ZXJGbHVzaCgpOwotfQotCi12b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6
c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgcmVjdCkKLXsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldE5l
ZWRzRGlzcGxheUluUmVjdChyZWN0KTsKLSAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQotICAg
ICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKLQot
ICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwotfQotCi12b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6c2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KQotewotICAgIGlmICghbV93ZWJQYWdlLT51c2VGaXhlZExheW91dCgpKQotICAgICAgICBzZXRO
b25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSgpOwotCi0gICAgc2NoZWR1bGVMYXllckZs
dXNoKCk7Ci19Ci0KIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnQo
KQogewogICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBydW5uaW5nIGxheW91dCB0ZXN0cy4g
U2luY2UgaW4gdGhpcyBjYXNlIHdlIGFyZSBub3Qgd2FpdGluZyBmb3IgYSBVSVByb2Nlc3MgdG8g
cmVwbHkgbmljZWx5LgpAQCAtMjMzLDI3ICsxOTUsNyBAQCBib29sIENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6Zm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkKIAogdm9pZCBD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgbmV3U2l6ZSkKIHsKLSAgICBpZiAobV9yb290TGF5ZXItPnNpemUoKSA9PSBuZXdTaXpl
KQotICAgICAgICByZXR1cm47Ci0KICAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZShuZXdTaXplKTsK
LQotICAgIC8vIElmIHRoZSBuZXdTaXplIGV4cG9zZXMgbmV3IGFyZWFzIG9mIHRoZSBub24tY29t
cG9zaXRlZCBjb250ZW50IGEgc2V0TmVlZHNEaXNwbGF5IGlzIG5lZWRlZAotICAgIC8vIGZvciB0
aG9zZSBuZXdseSBleHBvc2VkIGFyZWFzLgotICAgIEZsb2F0U2l6ZSBvbGRTaXplID0gbV9ub25D
b21wb3NpdGVkQ29udGVudExheWVyLT5zaXplKCk7Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVu
dExheWVyLT5zZXRTaXplKG5ld1NpemUpOwotCi0gICAgaWYgKG5ld1NpemUud2lkdGgoKSA+IG9s
ZFNpemUud2lkdGgoKSkgewotICAgICAgICBmbG9hdCBoZWlnaHQgPSBzdGQ6Om1pbihzdGF0aWNf
Y2FzdDxmbG9hdD4obmV3U2l6ZS5oZWlnaHQoKSksIG9sZFNpemUuaGVpZ2h0KCkpOwotICAgICAg
ICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChGbG9h
dFJlY3Qob2xkU2l6ZS53aWR0aCgpLCAwLCBuZXdTaXplLndpZHRoKCkgLSBvbGRTaXplLndpZHRo
KCksIGhlaWdodCkpOwotICAgIH0KLQotICAgIGlmIChuZXdTaXplLmhlaWdodCgpID4gb2xkU2l6
ZS5oZWlnaHQoKSkKLSAgICAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXROZWVk
c0Rpc3BsYXlJblJlY3QoRmxvYXRSZWN0KDAsIG9sZFNpemUuaGVpZ2h0KCksIG5ld1NpemUud2lk
dGgoKSwgbmV3U2l6ZS5oZWlnaHQoKSAtIG9sZFNpemUuaGVpZ2h0KCkpKTsKLQotICAgIGlmICht
X3BhZ2VPdmVybGF5TGF5ZXIpCi0gICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0U2l6ZShu
ZXdTaXplKTsKLQogICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQogCkBAIC0yOTYsMjUgKzIz
OCwyNiBAQCBib29sIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Zmx1c2hQZW5kaW5nTGF5ZXJD
aGFuZ2VzKCkKICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gcHJvdGVjdG9yKG1faXNGbHVzaGlu
Z0xheWVyQ2hhbmdlcywgdHJ1ZSk7CiAKICAgICBjcmVhdGVDb21wb3NpdGluZ0xheWVycygpOwot
CiAgICAgaW5pdGlhbGl6ZVJvb3RDb21wb3NpdGluZ0xheWVySWZOZWVkZWQoKTsKIAogICAgIG1f
cm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7Ci0gICAg
bV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlz
TGF5ZXJPbmx5KCk7CiAgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKICAgICAgICAgbV9wYWdl
T3ZlcmxheUxheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAK
ICAgICBib29sIGRpZFN5bmMgPSBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLT52
aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwogCiAgICAg
Zmx1c2hQZW5kaW5nSW1hZ2VCYWNraW5nQ2hhbmdlcygpOwotCiAgICAgZGVsZXRlQ29tcG9zaXRp
bmdMYXllcnMoKTsKIAogICAgIGlmIChtX3Nob3VsZFN5bmNGcmFtZSkgewogICAgICAgICBkaWRT
eW5jID0gdHJ1ZTsKIAotICAgICAgICBtX3N0YXRlLmNvbnRlbnRzU2l6ZSA9IHJvdW5kZWRJbnRT
aXplKG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2l6ZSgpKTsKLSAgICAgICAgbV9zdGF0
ZS5jb3ZlcmVkUmVjdCA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1fbm9uQ29tcG9zaXRl
ZENvbnRlbnRMYXllci5nZXQoKSktPmNvdmVyUmVjdCgpOworICAgICAgICBpZiAobV9yb290Q29t
cG9zaXRpbmdMYXllcikgeworICAgICAgICAgICAgbV9zdGF0ZS5jb250ZW50c1NpemUgPSByb3Vu
ZGVkSW50U2l6ZShtX3Jvb3RDb21wb3NpdGluZ0xheWVyLT5zaXplKCkpOworICAgICAgICAgICAg
aWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogY29udGVudHNMYXllciA9IG1haW5Db250ZW50
c0xheWVyKCkpCisgICAgICAgICAgICBtX3N0YXRlLmNvdmVyZWRSZWN0ID0gY29udGVudHNMYXll
ci0+Y292ZXJSZWN0KCk7CisgICAgICAgIH0KKwogICAgICAgICBtX3N0YXRlLnNjcm9sbFBvc2l0
aW9uID0gbV92aXNpYmxlQ29udGVudHNSZWN0LmxvY2F0aW9uKCk7CiAKICAgICAgICAgbV93ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6Q29tbWl0
Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlKG1fc3RhdGUpKTsKQEAgLTU5NCwxMSArNTM3LDYgQEAg
dm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllcioKIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OnBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXll
ciwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVj
dCkKIHsKLSAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5
ZXIpIHsKLSAgICAgICAgbV93ZWJQYWdlLT5kcmF3UmVjdChncmFwaGljc0NvbnRleHQsIGNsaXBS
ZWN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmIChncmFwaGljc0xheWVyID09
IG1fcGFnZU92ZXJsYXlMYXllcikgewogICAgICAgICAvLyBPdmVybGF5cyBjb250YWluIHRyYW5z
cGFyZW50IGNvbnRlbnRzIGFuZCB3b24ndCBjbGVhciB0aGUgY29udGV4dCBhcyBwYXJ0IG9mIHRo
ZWlyIHJlbmRlcmluZywgc28gd2UgZG8gaXQgaGVyZS4KICAgICAgICAgZ3JhcGhpY3NDb250ZXh0
LmNsZWFyUmVjdChjbGlwUmVjdCk7CkBAIC02NjAsMTAgKzU5OCwxOSBAQCBXZWJDb3JlOjpGbG9h
dFJlY3QgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp2aXNpYmxlQ29udGVudHNSZWN0KCkgY29u
c3QKICAgICByZXR1cm4gbV92aXNpYmxlQ29udGVudHNSZWN0OwogfQogCitDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIqIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bWFpbkNvbnRlbnRzTGF5ZXIo
KQoreworICAgIGlmICghbV9yb290Q29tcG9zaXRpbmdMYXllcikKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICByZXR1cm4gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9yb290Q29tcG9zaXRp
bmdMYXllciktPmZpcnN0RGVzY2VuZGFudHNXaXRoQ29udGVudHMoKTsKK30KKwogdm9pZCBDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0LCBjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQogewogICAgIC8v
IEEgemVybyB0cmFqZWN0b3J5VmVjdG9yIGluZGljYXRlcyB0aGF0IHRpbGVzIGFsbCBhcm91bmQg
dGhlIHZpZXdwb3J0IGFyZSByZXF1ZXN0ZWQuCi0gICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIobV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLmdldCgpKS0+c2V0VmlzaWJsZUNvbnRlbnRS
ZWN0VHJhamVjdG9yeVZlY3Rvcih0cmFqZWN0b3J5VmVjdG9yKTsKKyAgICBpZiAoQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKiBjb250ZW50c0xheWVyID0gbWFpbkNvbnRlbnRzTGF5ZXIoKSkKKyAg
ICAgICAgY29udGVudHNMYXllci0+c2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rv
cih0cmFqZWN0b3J5VmVjdG9yKTsKIAogICAgIGJvb2wgY29udGVudHNSZWN0RGlkQ2hhbmdlID0g
cmVjdCAhPSBtX3Zpc2libGVDb250ZW50c1JlY3Q7CiAgICAgaWYgKGNvbnRlbnRzUmVjdERpZENo
YW5nZSkgewpAQCAtNjg2LDcgKzYzMyw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uCiB2b2lk
IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2Vk
KCkKIHsKICAgICBtX3Jvb3RMYXllci0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7
Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3Rv
ckNoYW5nZWQoKTsKICAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQogICAgICAgICBtX3BhZ2VP
dmVybGF5TGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaApp
bmRleCA3NmFjNjUzYWE2ZjllMjRjNTYxZDVhYWI1MDEwZjBiYWRhY2I3MGIyLi42YzA1YmI5OGU3
MWIyOGUwYzkyMTA2ZTJlMmJjYjVlODMzYTE3NTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVy
VHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaApAQCAtNjUsOSArNjUsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZSgpOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNw
bGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVl
ZERpc3BsYXkoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRl
ZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJS
SURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmb3Jj
ZVJlcGFpbnQoKTsKICAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3Qg
Y2FsbGJhY2tJRCk7CiAgICAgdmlydHVhbCB2b2lkIHNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgbmV3U2l6ZSk7CkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgT1ZFUlJJREU7CisgICAgV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBtYWluQ29udGVudHNMYXllcigpOwogCiAjaWYg
RU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZUFuaW1hdGlvbigpIE9WRVJSSURFOwpAQCAtMTQzLDcgKzE0NCw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBwZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpOwogICAgIHZvaWQgZGlkUGVyZm9ybVNj
aGVkdWxlZExheWVyRmx1c2goKTsKICAgICB2b2lkIHN5bmNEaXNwbGF5U3RhdGUoKTsKLQogICAg
IHZvaWQgbGF5ZXJGbHVzaFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8Q29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0PiopOwogCiAgICAgdm9pZCBzY2hlZHVsZVJlbGVhc2VJbmFjdGl2ZUF0bGFzZXMo
KTsKQEAgLTE2NCw5ICsxNjQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBPd25QdHI8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7Ci0KLSAgICAvLyBUaGUgbGF5ZXIgd2hp
Y2ggY29udGFpbnMgYWxsIG5vbi1jb21wb3NpdGVkIGNvbnRlbnQuCi0gICAgT3duUHRyPFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI+IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllcjsKKyAgICBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiBtX3Jvb3RDb21wb3NpdGluZ0xheWVyOwogCiAgICAgLy8gVGhl
IHBhZ2Ugb3ZlcmxheSBsYXllci4gV2lsbCBiZSBudWxsIGlmIHRoZXJlJ3Mgbm8gcGFnZSBvdmVy
bGF5LgogICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3BhZ2VPdmVybGF5TGF5
ZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199993</attachid>
            <date>2013-04-29 05:58:01 -0700</date>
            <delta_ts>2013-04-29 06:40:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110355-20130429055718.patch</filename>
            <type>text/plain</type>
            <size>17382</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFhZDljNGE5Mzk0Njdi
ZDU3NjQ3ZjZiMGM3YTY0NDA4NTJlZDU0Yi4uYWQ5NTQ2MGJlZjc1NDc5ZWM4NmQwMmM4OWM5NzJm
NjJjNDJjNDBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQxIEBACiAyMDEzLTA0LTI2ICBOb2Ft
IFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAorICAgICAgICBHZXQgcmlkIG9mICJub24t
Y29tcG9zaXRlZCBjb250ZW50cyIgaW4gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzNTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGluIGZvcmNlIGNv
bXBvc2l0aW5nIG1vZGUsIGFsd2F5cyBhc3N1bWUgdGhhdCB0aGUgbWFpbiBsYXllciBuZWVkcwor
ICAgICAgICBhIGJhY2tpbmcgc3RvcmUuIE1ha2Ugc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVj
dG9yeVZlY3RvciBhbmQgYWNjdW11bGF0ZWRDb3ZlclJlY3QKKyAgICAgICAgcmVjdXJzaXZlIHNv
IHRoYXQgdGhleSBkb24ndCByZWx5IG9uIGEgc3BlY2lhbGl6ZWQgbGF5ZXIuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RhYmxlIGJlaGF2aW9yLCBjaGFuZ2VzIHRvIGNvdmVyUmVjdCBhbmQgdHJhamVj
dG9yeSB2ZWN0b3Igb25seQorICAgICAgICBhZmZlY3QgdGlsaW5nIGxhdGVuY3kgaW4gcmFyZSBj
YXNlcyB0aGF0IGFyZSBub3QgdHJpdmlhbCB0byB0ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6c2V0VmlzaWJsZUNv
bnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcik6CisgICAgICAgICAgICBNYWtlIHRoZSB0cmFqZWN0
b3J5IHZlY3RvciByZWN1cnNpdmUsIHRob3VnaCBsaW1pdGVkIG9ubHkgdG8gbGF5ZXJzIHdpdGgK
KyAgICAgICAgICAgIHRyYW5zbGF0ZS9pZGVudGl0eS4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCB0
aGUgdHJhamVjdG9yeSB2ZWN0b3Igd2hpbGUgcmVtb3ZpbmcKKyAgICAgICAgICAgIHRoZSBub24t
Y29tcG9zaXRlZCBjb250ZW50cyBzcGVjaWFsaXphdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphY2N1bXVsYXRlZENvdmVyUmVjdCk6CisgICAgICAg
ICAgICBBZGRlZCBhY2N1bXVsYXRlZENvdmVyUmVjdCwgc28gdGhhdCB0aGUgY292ZXJSZWN0IGNh
bGN1bGF0aW9ucyBmb3IgdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgICAgIGFyZSBub3QgYm91bmQg
dG8gdGhlIG5vbi1jb21wb3NpdGVkIGNvbnRlbnRzIGxheWVyLgorCisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZpbmREZXNjZW5kYW50V2l0aENvbnRlbnRzUmVj
dXJzaXZlbHkpOgorICAgICAgICAgICAgSW5zdGVhZCBvZiBzYXZpbmcgYSByZWZlcmVuY2UgdG8g
dGhlIG5vbi1jb21wb3NpdGVkIGNvbnRlbnRzIGxheWVyLCB3ZSBhc3N1bWUgdGhhdAorICAgICAg
ICAgICAgdGhlIGZpcnN0IGxheWVyIHdlIGZvdW5kIHJlY3Vyc2l2ZWx5IHdoaWNoIGhhcyBjb250
ZW50cyBpcyB0aGUgb25lIHRvIGJlIHVzZWQgZm9yCisgICAgICAgICAgICBjb3ZlclJlY3QvdHJh
amVjdG9yeSBjYWxjdWxhdGlvbnMuCisKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6OnBhaW50c0ludG9XaW5kb3cpOgorICAgICAgICAgICAgQWx3YXlzIGNyZWF0
ZSBhIGxheWVyIGZvciB0aGUgbm9uLWNvbXBvc2l0ZWQgY29udGVudHMgd2hlbiBpbiBmb3JjZUNv
bXBvc2l0aW5nIG1vZGUuCisKKzIwMTMtMDQtMjYgIE5vYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJr
aXQub3JnPgorCiAgICAgICAgIFtRdF0gZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtY29tcG9zaXRl
LW1vZGVzLmh0bWwgYnJva2VuIGFmdGVyIHIxNDg0MzMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUyNDMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZhZTE5OWI5
MjIwNzRjZWI4Y2QwYjcyNjE5NzNjYmE0YTZjM2E0NjQuLjk2OThkNGQwYjZiZjYwMDIyNGY5MGM4
NGMzMWNkMGQzMWUyYTc3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMy0wNC0y
NiAgTm9hbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiAibm9uLWNvbXBvc2l0ZWQgY29udGVudHMiIGluIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBv
ZiB1c2luZyBhIHNwZWNpYWwgbm9uLWNvbXBvc2l0ZWQgY29udGVudHMgbGF5ZXIsIHdlIGxldCBS
ZW5kZXJMYXllckNvbXBvc2l0b3IgY3JlYXRlCisgICAgICAgIGEgcHJvcGVyIEdyYXBoaWNzTGF5
ZXIgZm9yIHRoYXQgY29udGVudC4KKyAgICAgICAgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0IG5v
dyBuZWVkcyB0byBmaW5kIHRoZSBtYWluIGNvbnRlbnRzIGxheWVyIGZvciB0aGUgcHVycG9zZSBv
ZiBzZXR0aW5nCisgICAgICAgIHRoZSB0cmFqZWN0b3J5IHZlY3RvciBhbmQgYXBwbHlpbmcgdGhl
IGNvdmVyIHJlY3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCk6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0Um9vdENvbXBvc2l0aW5n
TGF5ZXIpOgorICAgICAgICAgICAgRG9uJ3QgY3JlYXRlIHRoZSBub24tY29tcG9zaXRlZCBsYXll
ciwgaW5zdGVhZCBrZWVwIGEgcmF3IHBvaW50ZXIgdG8gdGhlIHJvb3QKKyAgICAgICAgICAgIGNv
bXBvc2l0aW5nIGxheWVyIGNyZWF0ZWQgYnkgdGhlIFdlYkNvcmUgY29tcG9zaXRvci4KKworICAg
ICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldE5vbkNvbXBvc2l0ZWRD
b250ZW50c05lZWREaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0OjpzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2Nyb2xsTm9uQ29tcG9zaXRl
ZENvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpz
aXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFZpc2libGVDb250ZW50c1JlY3QpOgorICAgICAg
ICAgICAgUmVtb3ZlIG5vbi1jb21wb3NpdGVkIGxheWVyIHNwZWNpYWxpemF0aW9uLgorCiAyMDEz
LTA0LTIzICBOb2FtIFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ29v
cmRpbmF0ZWQgR3JhcGhpY3NdIFJlbW92ZSB0aGUgbG9ja0FuaW1hdGlvbnMgY29kZSBwYXRoCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IDU4NmU0N2JlY2IxNjMwNGY4ZWE1YWVlZDYwZjRhMzVjYjljMGE3MzcuLmEwZTkx
NmYyOWZkYmRjMTc0M2Q1MTA0Y2UzMTEwNWEyOThhMGNmNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC04MzYsNiAr
ODM2LDIwIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9y
ZVBhaW50QmVnaW4oKQogewogfQogCitDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6ZmluZEZpcnN0RGVzY2VuZGFudFdpdGhDb250ZW50c1JlY3Vyc2l2
ZWx5KCkKK3sKKyAgICBpZiAoc2hvdWxkSGF2ZUJhY2tpbmdTdG9yZSgpKQorICAgICAgICByZXR1
cm4gdGhpczsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7
ICsraSkgeworICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gdG9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGRyZW4oKVtpXSktPmZpbmRGaXJzdERlc2NlbmRhbnRX
aXRoQ29udGVudHNSZWN1cnNpdmVseSgpOworICAgICAgICBpZiAobGF5ZXIpCisgICAgICAgICAg
ICByZXR1cm4gbGF5ZXI7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9y
KGNvbnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7CiAgICAgaWYgKCFtX21haW5C
YWNraW5nU3RvcmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmgKaW5kZXggOWM2M2MwODgwNzMyZTQ5YTFiNjdiYzhhZGE0Nzc4ZjZlNTYx
N2ZmMS4uMmI1MWY2OGIyNzU0ZjRmMTZkOTQ5ZjNiYmU0ZTc0OTdkZTBjYzVlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAt
MTQ4LDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BlbmRpbmdWaXNpYmxlQ2hhbmdl
cygpOwogCiAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkU3VwcG9ydENvbnRlbnRzVGlsaW5nKGJv
b2wpOwotCisgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBmaW5kRmlyc3REZXNjZW5kYW50
V2l0aENvbnRlbnRzUmVjdXJzaXZlbHkoKTsKIHByaXZhdGU6CiAjaWYgVVNFKEdSQVBISUNTX1NV
UkZBQ0UpCiAgICAgZW51bSBQZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggOTQ3NDQxZTViYWUx
YWU1YTY5MDkzODc5NmMzNjk5Y2U1NDE1NDc0My4uMGY0MzQxNDI5N2RjM2FlYWE5NDkyMmVhNTk2
Y2YzMTcxNGRlODk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKQEAgLTE4NDUsNyArMTg0NSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjpwYWludHNJbnRvV2luZG93KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgaWYgKG1fb3duaW5nTGF5ZXItPmlzUm9vdExheWVyKCkpIHsKLSNpZiBQTEFURk9STShCTEFD
S0JFUlJZKQorI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFVTRShDT09SRElOQVRFRF9HUkFQ
SElDUykKICAgICAgICAgaWYgKGNvbXBvc2l0b3IoKS0+aW5Gb3JjZWRDb21wb3NpdGluZ01vZGUo
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggZjQx
YjJjOWU3MGVmZWFkZTdkNmUwYzdhMTQ0M2Q4NGMyOWU2ZmMxMS4uMWMwYmEyNDQ0NmI2MmNmMGU0
NjVjMGIxNTA1MzE1MDRiMDliOTkwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC04MCw2ICs4MCw3IEBAIENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6fkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCgpCiAKIENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdlYlBhZ2Uq
IHdlYlBhZ2UpCiAgICAgOiBMYXllclRyZWVIb3N0KHdlYlBhZ2UpCisgICAgLCBtX3Jvb3RDb21w
b3NpdGluZ0xheWVyKDApCiAgICAgLCBtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaChm
YWxzZSkKICAgICAsIG1faXNWYWxpZCh0cnVlKQogICAgICwgbV9pc1B1cmdpbmcoZmFsc2UpCkBA
IC05OSwyNSArMTAwLDEyIEBAIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Q29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0KFdlYlBhZ2UqIHdlYlBhZ2UpCiAKICAgICAvLyBDcmVhdGUgYSByb290IGxh
eWVyLgogICAgIG1fcm9vdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMsIHRoaXMp
OwotICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogY29vcmRpbmF0ZWRSb290TGF5ZXIgPSB0
b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jvb3RMYXllci5nZXQoKSk7CiAjaWZuZGVmIE5E
RUJVRwogICAgIG1fcm9vdExheWVyLT5zZXROYW1lKCJDb29yZGluYXRlZExheWVyVHJlZUhvc3Qg
cm9vdCBsYXllciIpOwogI2VuZGlmCiAgICAgbV9yb290TGF5ZXItPnNldERyYXdzQ29udGVudChm
YWxzZSk7CiAgICAgbV9yb290TGF5ZXItPnNldFNpemUobV93ZWJQYWdlLT5zaXplKCkpOwotICAg
IG1fbGF5ZXJUcmVlQ29udGV4dC5jb29yZGluYXRlZExheWVySUQgPSB0b0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcihjb29yZGluYXRlZFJvb3RMYXllciktPmlkKCk7Ci0KLSAgICBtX25vbkNvbXBv
c2l0ZWRDb250ZW50TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcywgdGhpcyk7Ci0j
aWZuZGVmIE5ERUJVRwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmFtZSgi
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0IG5vbi1jb21wb3NpdGVkIGNvbnRlbnQiKTsKLSNlbmRp
ZgotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUp
OwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0U2l6ZShtX3dlYlBhZ2UtPnNp
emUoKSk7Ci0KLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldFNob3dEZWJ1Z0Jv
cmRlcihtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMo
KSk7Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXRTaG93UmVwYWludENvdW50
ZXIobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIo
KSk7Ci0KLSAgICBtX3Jvb3RMYXllci0+YWRkQ2hpbGQobV9ub25Db21wb3NpdGVkQ29udGVudExh
eWVyLmdldCgpKTsKKyAgICBtX2xheWVyVHJlZUNvbnRleHQuY29vcmRpbmF0ZWRMYXllcklEID0g
dG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5pZCgpOwogCiAg
ICAgQ29vcmRpbmF0ZWRTdXJmYWNlOjpzZXRGYWN0b3J5KGNyZWF0ZUNvb3JkaW5hdGVkU3VyZmFj
ZSk7CiAKQEAgLTE2NywxMiArMTU1LDEyIEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
OjpzZXRTaG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZsdXNoKGJvb2wKIAogdm9p
ZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7Ci0gICAgbV9ub25Db21wb3NpdGVk
Q29udGVudExheWVyLT5yZW1vdmVBbGxDaGlsZHJlbigpOwotICAgIG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRMYXllci0+c2V0Q29udGVudHNPcGFxdWUobV93ZWJQYWdlLT5kcmF3c0JhY2tncm91bmQo
KSAmJiAhbV93ZWJQYWdlLT5kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCgpKTsKKyAgICBpZiAo
bV9yb290Q29tcG9zaXRpbmdMYXllcikKKyAgICAgICAgbV9yb290Q29tcG9zaXRpbmdMYXllci0+
cmVtb3ZlRnJvbVBhcmVudCgpOwogCi0gICAgLy8gQWRkIHRoZSBhY2NlbGVyYXRlZCBsYXllciB0
cmVlIGhpZXJhcmNoeS4KLSAgICBpZiAoZ3JhcGhpY3NMYXllcikKLSAgICAgICAgbV9ub25Db21w
b3NpdGVkQ29udGVudExheWVyLT5hZGRDaGlsZChncmFwaGljc0xheWVyKTsKKyAgICBtX3Jvb3RD
b21wb3NpdGluZ0xheWVyID0gZ3JhcGhpY3NMYXllcjsKKyAgICBpZiAobV9yb290Q29tcG9zaXRp
bmdMYXllcikKKyAgICAgICAgbV9yb290TGF5ZXItPmFkZENoaWxkQXRJbmRleChtX3Jvb3RDb21w
b3NpdGluZ0xheWVyLCAwKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6Omlu
dmFsaWRhdGUoKQpAQCAtMTg0LDMyICsxNzIsNiBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6aW52YWxpZGF0ZSgpCiAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CiB9CiAKLXZvaWQgQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxh
eSgpCi17Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXROZWVkc0Rpc3BsYXko
KTsKLSAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQotICAgICAgICBtX3BhZ2VPdmVybGF5TGF5
ZXItPnNldE5lZWRzRGlzcGxheSgpOwotCi0gICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Ci19Ci0K
LXZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXROb25Db21wb3NpdGVkQ29udGVudHNO
ZWVkRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQotewotICAgIG1f
bm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOwot
ICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5ZXIpCi0gICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+
c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOwotCi0gICAgc2NoZWR1bGVMYXllckZsdXNoKCk7
Ci19Ci0KLXZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzY3JvbGxOb25Db21wb3NpdGVk
Q29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpCi17Ci0gICAgaWYgKCFtX3dlYlBhZ2Ut
PnVzZUZpeGVkTGF5b3V0KCkpCi0gICAgICAgIHNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWRE
aXNwbGF5KCk7Ci0KLSAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKLX0KLQogdm9pZCBDb29yZGlu
YXRlZExheWVyVHJlZUhvc3Q6OmZvcmNlUmVwYWludCgpCiB7CiAgICAgLy8gVGhpcyBpcyBuZWNl
c3NhcnkgZm9yIHJ1bm5pbmcgbGF5b3V0IHRlc3RzLiBTaW5jZSBpbiB0aGlzIGNhc2Ugd2UgYXJl
IG5vdCB3YWl0aW5nIGZvciBhIFVJUHJvY2VzcyB0byByZXBseSBuaWNlbHkuCkBAIC0yMzMsMjcg
KzE5NSw3IEBAIGJvb2wgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnRBc3lu
Yyh1aW50NjRfdCBjYWxsYmFja0lEKQogCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6
c2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKQogewotICAgIGlm
IChtX3Jvb3RMYXllci0+c2l6ZSgpID09IG5ld1NpemUpCi0gICAgICAgIHJldHVybjsKLQogICAg
IG1fcm9vdExheWVyLT5zZXRTaXplKG5ld1NpemUpOwotCi0gICAgLy8gSWYgdGhlIG5ld1NpemUg
ZXhwb3NlcyBuZXcgYXJlYXMgb2YgdGhlIG5vbi1jb21wb3NpdGVkIGNvbnRlbnQgYSBzZXROZWVk
c0Rpc3BsYXkgaXMgbmVlZGVkCi0gICAgLy8gZm9yIHRob3NlIG5ld2x5IGV4cG9zZWQgYXJlYXMu
Ci0gICAgRmxvYXRTaXplIG9sZFNpemUgPSBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNp
emUoKTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldFNpemUobmV3U2l6ZSk7
Ci0KLSAgICBpZiAobmV3U2l6ZS53aWR0aCgpID4gb2xkU2l6ZS53aWR0aCgpKSB7Ci0gICAgICAg
IGZsb2F0IGhlaWdodCA9IHN0ZDo6bWluKHN0YXRpY19jYXN0PGZsb2F0PihuZXdTaXplLmhlaWdo
dCgpKSwgb2xkU2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRM
YXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KEZsb2F0UmVjdChvbGRTaXplLndpZHRoKCksIDAs
IG5ld1NpemUud2lkdGgoKSAtIG9sZFNpemUud2lkdGgoKSwgaGVpZ2h0KSk7Ci0gICAgfQotCi0g
ICAgaWYgKG5ld1NpemUuaGVpZ2h0KCkgPiBvbGRTaXplLmhlaWdodCgpKQotICAgICAgICBtX25v
bkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChGbG9hdFJlY3Qo
MCwgb2xkU2l6ZS5oZWlnaHQoKSwgbmV3U2l6ZS53aWR0aCgpLCBuZXdTaXplLmhlaWdodCgpIC0g
b2xkU2l6ZS5oZWlnaHQoKSkpOwotCi0gICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKLSAgICAg
ICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXRTaXplKG5ld1NpemUpOwotCiAgICAgc2NoZWR1bGVM
YXllckZsdXNoKCk7CiB9CiAKQEAgLTI5NiwyNSArMjM4LDI2IEBAIGJvb2wgQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogICAgIFRlbXBvcmFyeUNo
YW5nZTxib29sPiBwcm90ZWN0b3IobV9pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzLCB0cnVlKTsKIAog
ICAgIGNyZWF0ZUNvbXBvc2l0aW5nTGF5ZXJzKCk7Ci0KICAgICBpbml0aWFsaXplUm9vdENvbXBv
c2l0aW5nTGF5ZXJJZk5lZWRlZCgpOwogCiAgICAgbV9yb290TGF5ZXItPmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5
ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICBpZiAobV9w
YWdlT3ZlcmxheUxheWVyKQogICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAogICAgIGJvb2wgZGlkU3luYyA9IG1fd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0
YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CiAKICAgICBmbHVzaFBlbmRpbmdJbWFnZUJhY2tpbmdD
aGFuZ2VzKCk7Ci0KICAgICBkZWxldGVDb21wb3NpdGluZ0xheWVycygpOwogCiAgICAgaWYgKG1f
c2hvdWxkU3luY0ZyYW1lKSB7CiAgICAgICAgIGRpZFN5bmMgPSB0cnVlOwogCi0gICAgICAgIG1f
c3RhdGUuY29udGVudHNTaXplID0gcm91bmRlZEludFNpemUobV9ub25Db21wb3NpdGVkQ29udGVu
dExheWVyLT5zaXplKCkpOwotICAgICAgICBtX3N0YXRlLmNvdmVyZWRSZWN0ID0gdG9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIobV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLmdldCgpKS0+Y292
ZXJSZWN0KCk7CisgICAgICAgIGlmIChtX3Jvb3RDb21wb3NpdGluZ0xheWVyKSB7CisgICAgICAg
ICAgICBtX3N0YXRlLmNvbnRlbnRzU2l6ZSA9IHJvdW5kZWRJbnRTaXplKG1fcm9vdENvbXBvc2l0
aW5nTGF5ZXItPnNpemUoKSk7CisgICAgICAgICAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKiBjb250ZW50c0xheWVyID0gbWFpbkNvbnRlbnRzTGF5ZXIoKSkKKyAgICAgICAgICAgICAg
ICBtX3N0YXRlLmNvdmVyZWRSZWN0ID0gY29udGVudHNMYXllci0+Y292ZXJSZWN0KCk7CisgICAg
ICAgIH0KKwogICAgICAgICBtX3N0YXRlLnNjcm9sbFBvc2l0aW9uID0gbV92aXNpYmxlQ29udGVu
dHNSZWN0LmxvY2F0aW9uKCk7CiAKICAgICAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpD
b29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6Q29tbWl0Q29vcmRpbmF0ZWRHcmFwaGljc1N0
YXRlKG1fc3RhdGUpKTsKQEAgLTU5NCwxMSArNTM3LDYgQEAgdm9pZCBDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
cioKIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnBhaW50Q29udGVudHMoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0JiBncmFwaGljc0NvbnRleHQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkKIHsKLSAgICBpZiAoZ3JhcGhp
Y3NMYXllciA9PSBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIpIHsKLSAgICAgICAgbV93ZWJQ
YWdlLT5kcmF3UmVjdChncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQogICAgIGlmIChncmFwaGljc0xheWVyID09IG1fcGFnZU92ZXJsYXlMYXllcikg
ewogICAgICAgICAvLyBPdmVybGF5cyBjb250YWluIHRyYW5zcGFyZW50IGNvbnRlbnRzIGFuZCB3
b24ndCBjbGVhciB0aGUgY29udGV4dCBhcyBwYXJ0IG9mIHRoZWlyIHJlbmRlcmluZywgc28gd2Ug
ZG8gaXQgaGVyZS4KICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmNsZWFyUmVjdChjbGlwUmVjdCk7
CkBAIC02NjAsMTAgKzU5OCwxOSBAQCBXZWJDb3JlOjpGbG9hdFJlY3QgQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0Ojp2aXNpYmxlQ29udGVudHNSZWN0KCkgY29uc3QKICAgICByZXR1cm4gbV92aXNp
YmxlQ29udGVudHNSZWN0OwogfQogCitDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6bWFpbkNvbnRlbnRzTGF5ZXIoKQoreworICAgIGlmICghbV9yb290
Q29tcG9zaXRpbmdMYXllcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gdG9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9yb290Q29tcG9zaXRpbmdMYXllciktPmZpbmRGaXJzdERl
c2NlbmRhbnRXaXRoQ29udGVudHNSZWN1cnNpdmVseSgpOworfQorCiB2b2lkIENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIGNvbnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7CiAgICAgLy8gQSB6ZXJv
IHRyYWplY3RvcnlWZWN0b3IgaW5kaWNhdGVzIHRoYXQgdGlsZXMgYWxsIGFyb3VuZCB0aGUgdmll
d3BvcnQgYXJlIHJlcXVlc3RlZC4KLSAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX25v
bkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIuZ2V0KCkpLT5zZXRWaXNpYmxlQ29udGVudFJlY3RUcmFq
ZWN0b3J5VmVjdG9yKHRyYWplY3RvcnlWZWN0b3IpOworICAgIGlmIChDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIqIGNvbnRlbnRzTGF5ZXIgPSBtYWluQ29udGVudHNMYXllcigpKQorICAgICAgICBj
b250ZW50c0xheWVyLT5zZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKHRyYWpl
Y3RvcnlWZWN0b3IpOwogCiAgICAgYm9vbCBjb250ZW50c1JlY3REaWRDaGFuZ2UgPSByZWN0ICE9
IG1fdmlzaWJsZUNvbnRlbnRzUmVjdDsKICAgICBpZiAoY29udGVudHNSZWN0RGlkQ2hhbmdlKSB7
CkBAIC02ODYsNyArNjMzLDYgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFZp
c2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb24KIHZvaWQgQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0OjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogewog
ICAgIG1fcm9vdExheWVyLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSAgICBt
X25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdl
ZCgpOwogICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5ZXIpCiAgICAgICAgIG1fcGFnZU92ZXJsYXlM
YXllci0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDc2
YWM2NTNhYTZmOWUyNGM1NjFkNWFhYjUwMTBmMGJhZGFjYjcwYjIuLjZjMDViYjk4ZTcxYjI4ZTBj
OTIxMDZlMmUyYmNiNWU4MzNhMTc1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCkBAIC02NSw5ICs2NSw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJl
Y3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxh
eSgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29udGVu
dHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREUgeyB9
CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWlu
dCgpOwogICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFj
a0lEKTsKICAgICB2aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBuZXdTaXplKTsKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFj
dG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBPVkVSUklERTsKKyAgICBXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG1haW5Db250ZW50c0xheWVyKCk7CiAKICNpZiBFTkFCTEUo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0
aW9uKCkgT1ZFUlJJREU7CkBAIC0xNDMsNyArMTQ0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBl
cmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2NoZWR1bGVk
TGF5ZXJGbHVzaCgpOwogICAgIHZvaWQgc3luY0Rpc3BsYXlTdGF0ZSgpOwotCiAgICAgdm9pZCBs
YXllckZsdXNoVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q+Kik7CiAKICAgICB2b2lkIHNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcygpOwpAQCAt
MTY0LDkgKzE2NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIE93blB0cjxXZWJDb3JlOjpH
cmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKLQotICAgIC8vIFRoZSBsYXllciB3aGljaCBjb250
YWlucyBhbGwgbm9uLWNvbXBvc2l0ZWQgY29udGVudC4KLSAgICBPd25QdHI8V2ViQ29yZTo6R3Jh
cGhpY3NMYXllcj4gbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyOworICAgIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqIG1fcm9vdENvbXBvc2l0aW5nTGF5ZXI7CiAKICAgICAvLyBUaGUgcGFnZSBv
dmVybGF5IGxheWVyLiBXaWxsIGJlIG51bGwgaWYgdGhlcmUncyBubyBwYWdlIG92ZXJsYXkuCiAg
ICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcGFnZU92ZXJsYXlMYXllcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200001</attachid>
            <date>2013-04-29 06:40:55 -0700</date>
            <delta_ts>2013-04-29 06:42:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-110355-20130429064012.patch</filename>
            <type>text/plain</type>
            <size>20208</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFhZDljNGE5Mzk0Njdi
ZDU3NjQ3ZjZiMGM3YTY0NDA4NTJlZDU0Yi4uOGU5Yzc4NjNiZTJmM2UwMGUwNTRiNGE3ODNlYWJm
ZWI1ZDc3NTM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw5ICsxLDQ1IEBACiAyMDEzLTA0LTI2ICBOb2Ft
IFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAorICAgICAgICBHZXQgcmlkIG9mICJub24t
Y29tcG9zaXRlZCBjb250ZW50cyIgaW4gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzNTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBKb2NlbHluIFR1cmNvdHRlLgorCisgICAgICAgIFdoZW4gaW4gZm9yY2Ug
Y29tcG9zaXRpbmcgbW9kZSwgYWx3YXlzIGFzc3VtZSB0aGF0IHRoZSBtYWluIGxheWVyIG5lZWRz
CisgICAgICAgIGEgYmFja2luZyBzdG9yZS4gTWFrZSBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFq
ZWN0b3J5VmVjdG9yIGFuZCBhY2N1bXVsYXRlZENvdmVyUmVjdAorICAgICAgICByZWN1cnNpdmUg
c28gdGhhdCB0aGV5IGRvbid0IHJlbHkgb24gYSBzcGVjaWFsaXplZCBsYXllci4KKworICAgICAg
ICBObyBuZXcgdGVzdGFibGUgYmVoYXZpb3IsIGNoYW5nZXMgdG8gY292ZXJSZWN0IGFuZCB0cmFq
ZWN0b3J5IHZlY3RvciBvbmx5CisgICAgICAgIGFmZmVjdCB0aWxpbmcgbGF0ZW5jeSBpbiByYXJl
IGNhc2VzIHRoYXQgYXJlIG5vdCB0cml2aWFsIHRvIHRlc3QuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjpzZXRWaXNpYmxl
Q29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKToKKyAgICAgICAgICAgIE1ha2UgdGhlIHRyYWpl
Y3RvcnkgdmVjdG9yIHJlY3Vyc2l2ZSwgdGhvdWdoIGxpbWl0ZWQgb25seSB0byBsYXllcnMgd2l0
aAorICAgICAgICAgICAgdHJhbnNsYXRlL2lkZW50aXR5LiBUaGlzIGFsbG93cyB1cyB0byBrZWVw
IHRoZSB0cmFqZWN0b3J5IHZlY3RvciB3aGlsZSByZW1vdmluZworICAgICAgICAgICAgdGhlIG5v
bi1jb21wb3NpdGVkIGNvbnRlbnRzIHNwZWNpYWxpemF0aW9uLgorCisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFjY3VtdWxhdGVkQ292ZXJSZWN0KToKKyAgICAg
ICAgICAgIEFkZGVkIGFjY3VtdWxhdGVkQ292ZXJSZWN0LCBzbyB0aGF0IHRoZSBjb3ZlclJlY3Qg
Y2FsY3VsYXRpb25zIGZvciB0aGUgVUkgcHJvY2VzcworICAgICAgICAgICAgYXJlIG5vdCBib3Vu
ZCB0byB0aGUgbm9uLWNvbXBvc2l0ZWQgY29udGVudHMgbGF5ZXIuCisKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZmluZERlc2NlbmRhbnRXaXRoQ29udGVudHNS
ZWN1cnNpdmVseSk6CisgICAgICAgICAgICBJbnN0ZWFkIG9mIHNhdmluZyBhIHJlZmVyZW5jZSB0
byB0aGUgbm9uLWNvbXBvc2l0ZWQgY29udGVudHMgbGF5ZXIsIHdlIGFzc3VtZSB0aGF0CisgICAg
ICAgICAgICB0aGUgZmlyc3QgbGF5ZXIgd2UgZm91bmQgcmVjdXJzaXZlbHkgd2hpY2ggaGFzIGNv
bnRlbnRzIGlzIHRoZSBvbmUgdG8gYmUgdXNlZCBmb3IKKyAgICAgICAgICAgIGNvdmVyUmVjdC90
cmFqZWN0b3J5IGNhbGN1bGF0aW9ucy4KKworICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRzSW50b1dpbmRvdyk6CisgICAgICAgICAgICBBbHdheXMgY3Jl
YXRlIGEgbGF5ZXIgZm9yIHRoZSBub24tY29tcG9zaXRlZCBjb250ZW50cyB3aGVuIGluIGZvcmNl
Q29tcG9zaXRpbmcgbW9kZS4KKworMjAxMy0wNC0yNiAgTm9hbSBSb3NlbnRoYWwgIDxub2FtQHdl
YmtpdC5vcmc+CisKICAgICAgICAgW1F0XSBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1jb21wb3Np
dGUtbW9kZXMuaHRtbCBicm9rZW4gYWZ0ZXIgcjE0ODQzMy4KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTI0MwogCi0gICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBSZXZpZXdlZCBieSBKb2NlbHluIFR1cmNvdHRlLgog
CiAgICAgICAgIFdoZW4gY29tcG9zaXRpbmcgYSBsYXllciB3aXRoIGEgY2FudmFzIG9yIGRpcmVj
dGx5IGNvbXBvc2l0ZWQgaW1hZ2UsIGl0IGlzCiAgICAgICAgIHdyb25nIHRvIHVzZSBUZXh0dXJl
TWFwcGVyTGF5ZXI6OnNldEJhY2tpbmdTdG9yZS4gSW5zdGVhZCwgc2V0Q29udGVudHNMYXllcgpA
QCAtMjUsNyArNjEsNyBAQAogICAgICAgICBbVGV4bWFwXSBVc2UgZmV3ZXIgaW50ZXJtZWRpYXRl
IHN1cmZhY2VzIHdoZW4gY29tcG9zaXRpbmcgZmlsdGVycwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1MjI0CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGJ5IEpvY2VseW4gVHVyY290dGUuCiAK
ICAgICAgICAgVW50aWwgbm93LCB3aGVuIHJlbmRlcmluZyBDU1MgZmlsdGVycywgdGhlIGZpbHRl
cnMgd2VyZSBhcHBsaWVkIHRvIHRoZSB0ZXh0dXJlCiAgICAgICAgIGFuZCB0aGVuIHRoZSByZXN1
bHRpbmcgdGV4dHVyZSB3b3VsZCBiZSBjb21wb3NpdGVkIHRvIHRoZSB0YXJnZXQgc3VyZmFjZSB3
aXRoCkBAIC03Niw3ICsxMTIsNyBAQAogICAgICAgICBbVGV4bWFwXSBEb24ndCBwYWludCB0byBh
biBpbnRlcm1lZGlhdGUgc3VyZmFjZSB3aGVuIHRoZSByZXN1bHQgaXMgZ29pbmcgdG8gYmUgY2xp
cHBlZCBvdXQgY29tcGxldGVseS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExNTAxNQogCi0gICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICBSZXZpZXdlZCBieSBKb2NlbHluIFR1cmNvdHRlLgogCiAgICAgICAgIE1haW50
YWluIGEgY2xpcEJvdW5kcyByZWN0YW5nbGUgaW4gVGV4dHVyZU1hcHBlciwgYW5kIHRlc3QgaXQg
YWdhaW5zdCB0aGUgYm91bmRzIG9mIGFuIGludGVybWVkaWF0ZQogICAgICAgICBzdXJmYWNlIGJl
Zm9yZSBpdCBpcyBwYWludGVkLgpAQCAtMTAwLDcgKzEzNiw3IEBACiAgICAgICAgIFtDb29yZGlu
YXRlZCBHcmFwaGljc10gUmVtb3ZlIHRoZSBsb2NrQW5pbWF0aW9ucyBjb2RlIHBhdGgKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg5OQogCi0gICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBSZXZpZXdlZCBieSBKb2Nl
bHluIFR1cmNvdHRlLgogCiAgICAgICAgIFJlbW92ZSBsb2NraW5nL3VubG9ja2luZyBhbmltYXRp
b25zIGFuZCBjaGVja3MgZm9yIHRoZSBsb2NrIHN0YXRlLgogICAgICAgICBUaGUgYW5pbWF0aW9u
IGxvY2tpbmcgaGFzIGJlZW4gdGVzdGVkIHRvIGNyZWF0ZSBub3Qtc28tc21vb3RoIGFuaW1hdGlv
bnMsCkBAIC0xMjEsNyArMTU3LDcgQEAKICAgICAgICAgW0VGTF0gQXNzZXJ0aW9uIEZhaWx1cmVz
IGluIENvb3JkaW5hdGVkIEdyYXBoaWNzIGFmdGVyIHIxNDg0MzMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDczMQogCi0gICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBSZXZpZXdlZCBieSBKb2NlbHluIFR1cmNvdHRl
LgogCiAgICAgICAgIFRoZSBhc3NlcnQgaXMgaW5jb3JyZWN0LiBJbiBzb21lIGNhc2VzIGluIGNv
b3JkaW5hdGVkIGdyYXBoaWNzIHdlIG1heSBoYXZlIGEgYmFja2luZyBzdG9yZQogICAgICAgICBh
bmQgZHJhd3NDb250ZW50IHdvdWxkIGJlIHNldCB0byBmYWxzZS4KQEAgLTE4Nyw3ICsyMjMsNyBA
QAogICAgICAgICBbQ29vcmRHZnhdIEVuYWJsZSBmaWx0ZXIgYW5pbWF0aW9ucwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MDI3CiAKLSAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGJ5IEpvY2VseW4g
VHVyY290dGUuCiAKICAgICAgICAgQWxsb3cgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIHRvIHNl
cmlhbGl6ZSBmaWx0ZXIgYW5pbWF0aW9ucyB0byB0aGUgVUkgcHJvY2Vzcy4KIApAQCAtMjAxLDcg
KzIzNyw3IEBACiAgICAgICAgIFtUZXhtYXBdIGNzczMvZmlsdGVycy9maWx0ZXItYW5pbWF0aW9u
LWZyb20tbm9uZS1ody5odG1sIGRvZXMgbm90IGFuaW1hdGUKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDAyNgogCi0gICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBSZXZpZXdlZCBieSBKb2NlbHluIFR1cmNvdHRlLgog
CiAgICAgICAgIEFsbG93IHRoZSBmaWx0ZXIncyBibGVuZGluZyBmdW5jdGlvbiB0byB0YWtlIHBs
YWNlIHdoZW4gYW5pbWF0aW5nIGZyb20vdG8gbm9uZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZhZTE5OWI5
MjIwNzRjZWI4Y2QwYjcyNjE5NzNjYmE0YTZjM2E0NjQuLjA2ZmU5M2QwZmFlZGMzNmIyMzkyNjI4
M2RjZGZhYzA5MWE2ZjVhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMy0wNC0y
NiAgTm9hbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiAibm9uLWNvbXBvc2l0ZWQgY29udGVudHMiIGluIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSm9jZWx5biBUdXJjb3R0ZS4KKworICAgICAgICBJbnN0ZWFk
IG9mIHVzaW5nIGEgc3BlY2lhbCBub24tY29tcG9zaXRlZCBjb250ZW50cyBsYXllciwgd2UgbGV0
IFJlbmRlckxheWVyQ29tcG9zaXRvciBjcmVhdGUKKyAgICAgICAgYSBwcm9wZXIgR3JhcGhpY3NM
YXllciBmb3IgdGhhdCBjb250ZW50LgorICAgICAgICBDb29yZGluYXRlZExheWVyVHJlZUhvc3Qg
bm93IG5lZWRzIHRvIGZpbmQgdGhlIG1haW4gY29udGVudHMgbGF5ZXIgZm9yIHRoZSBwdXJwb3Nl
IG9mIHNldHRpbmcKKyAgICAgICAgdGhlIHRyYWplY3RvcnkgdmVjdG9yIGFuZCBhcHBseWluZyB0
aGUgY292ZXIgcmVjdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KToKKyAg
ICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRSb290Q29tcG9zaXRp
bmdMYXllcik6CisgICAgICAgICAgICBEb24ndCBjcmVhdGUgdGhlIG5vbi1jb21wb3NpdGVkIGxh
eWVyLCBpbnN0ZWFkIGtlZXAgYSByYXcgcG9pbnRlciB0byB0aGUgcm9vdAorICAgICAgICAgICAg
Y29tcG9zaXRpbmcgbGF5ZXIgY3JlYXRlZCBieSB0aGUgV2ViQ29yZSBjb21wb3NpdG9yLgorCisg
ICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0Tm9uQ29tcG9zaXRl
ZENvbnRlbnRzTmVlZERpc3BsYXkpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzY3JvbGxOb25Db21wb3Np
dGVkQ29udGVudHMpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OnNpemVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OnBhaW50Q29udGVudHMpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6
OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdCk6CisgICAg
ICAgICAgICBSZW1vdmUgbm9uLWNvbXBvc2l0ZWQgbGF5ZXIgc3BlY2lhbGl6YXRpb24uCisKIDIw
MTMtMDQtMjMgIE5vYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtD
b29yZGluYXRlZCBHcmFwaGljc10gUmVtb3ZlIHRoZSBsb2NrQW5pbWF0aW9ucyBjb2RlIHBhdGgK
QEAgLTgsNyArMzUsNyBAQAogICAgICAgICB3aGlsZSB0aGUgdXNlIGNhc2Ugd2hlcmUgdGhlIGNv
bXBvc2l0ZWQgYW5pbWF0aW9ucyBydW4gb3V0IG9mIHN5bmMgZnJvbQogICAgICAgICB0aGUgbm9u
LWNvbXBvc2l0ZWQgYW5pbWF0aW9ucyBpcyB2ZXJ5IHJhcmUgYW5kIHVubm90aWNlYWJsZS4KIAot
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUmV2aWV3ZWQgYnkg
Sm9jZWx5biBUdXJjb3R0ZS4KIAogICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoKICAgICAgICAgKiBVSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNz
YWdlcy5pbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHAKaW5kZXggNTg2ZTQ3YmVjYjE2MzA0ZjhlYTVhZWVkNjBmNGEzNWNiOWMw
YTczNy4uYTBlOTE2ZjI5ZmRiZGMxNzQzZDUxMDRjZTMxMTA1YTI5OGEwY2Y0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAK
QEAgLTgzNiw2ICs4MzYsMjAgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVk
QmFja2luZ1N0b3JlUGFpbnRCZWdpbigpCiB7CiB9CiAKK0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ciogQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmaW5kRmlyc3REZXNjZW5kYW50V2l0aENvbnRl
bnRzUmVjdXJzaXZlbHkoKQoreworICAgIGlmIChzaG91bGRIYXZlQmFja2luZ1N0b3JlKCkpCisg
ICAgICAgIHJldHVybiB0aGlzOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJl
bigpLnNpemUoKTsgKytpKSB7CisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5
ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjaGlsZHJlbigpW2ldKS0+ZmluZEZpcnN0
RGVzY2VuZGFudFdpdGhDb250ZW50c1JlY3Vyc2l2ZWx5KCk7CisgICAgICAgIGlmIChsYXllcikK
KyAgICAgICAgICAgIHJldHVybiBsYXllcjsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwog
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFZpc2libGVDb250ZW50UmVjdFRyYWpl
Y3RvcnlWZWN0b3IoY29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9yeVZlY3RvcikKIHsKICAgICBp
ZiAoIW1fbWFpbkJhY2tpbmdTdG9yZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCA5YzYzYzA4ODA3MzJlNDlhMWI2N2JjOGFk
YTQ3NzhmNmU1NjE3ZmYxLi40ZDcwY2QyNmE0N2QzMWMxOGM3MmIzM2E2MDg5MDQwZTgyYjk3ZDVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCkBAIC0xNDgsNiArMTQ4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUGVuZGluZ1Zp
c2libGVDaGFuZ2VzKCk7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRTdXBwb3J0Q29udGVu
dHNUaWxpbmcoYm9vbCk7CisgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBmaW5kRmlyc3RE
ZXNjZW5kYW50V2l0aENvbnRlbnRzUmVjdXJzaXZlbHkoKTsKIAogcHJpdmF0ZToKICNpZiBVU0Uo
R1JBUEhJQ1NfU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKaW5kZXggOTQ3NDQxZTViYWUxYWU1YTY5MDkzODc5NmMzNjk5Y2U1NDE1
NDc0My4uMGY0MzQxNDI5N2RjM2FlYWE5NDkyMmVhNTk2Y2YzMTcxNGRlODk3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE4NDUs
NyArMTg0NSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludHNJbnRvV2luZG93KCkg
Y29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fb3duaW5nTGF5ZXItPmlz
Um9vdExheWVyKCkpIHsKLSNpZiBQTEFURk9STShCTEFDS0JFUlJZKQorI2lmIFBMQVRGT1JNKEJM
QUNLQkVSUlkpIHx8IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICAgICAgaWYgKGNvbXBv
c2l0b3IoKS0+aW5Gb3JjZWRDb21wb3NpdGluZ01vZGUoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggZjQxYjJjOWU3MGVmZWFkZTdkNmUwYzdhMTQ0
M2Q4NGMyOWU2ZmMxMS4uMWMwYmEyNDQ0NmI2MmNmMGU0NjVjMGIxNTA1MzE1MDRiMDliOTkwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwCkBAIC04MCw2ICs4MCw3IEBAIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6
fkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCgpCiAKIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgOiBMYXllclRy
ZWVIb3N0KHdlYlBhZ2UpCisgICAgLCBtX3Jvb3RDb21wb3NpdGluZ0xheWVyKDApCiAgICAgLCBt
X25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaChmYWxzZSkKICAgICAsIG1faXNWYWxpZCh0
cnVlKQogICAgICwgbV9pc1B1cmdpbmcoZmFsc2UpCkBAIC05OSwyNSArMTAwLDEyIEBAIENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdlYlBhZ2UqIHdl
YlBhZ2UpCiAKICAgICAvLyBDcmVhdGUgYSByb290IGxheWVyLgogICAgIG1fcm9vdExheWVyID0g
R3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMsIHRoaXMpOwotICAgIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllciogY29vcmRpbmF0ZWRSb290TGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cihtX3Jvb3RMYXllci5nZXQoKSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fcm9vdExheWVyLT5z
ZXROYW1lKCJDb29yZGluYXRlZExheWVyVHJlZUhvc3Qgcm9vdCBsYXllciIpOwogI2VuZGlmCiAg
ICAgbV9yb290TGF5ZXItPnNldERyYXdzQ29udGVudChmYWxzZSk7CiAgICAgbV9yb290TGF5ZXIt
PnNldFNpemUobV93ZWJQYWdlLT5zaXplKCkpOwotICAgIG1fbGF5ZXJUcmVlQ29udGV4dC5jb29y
ZGluYXRlZExheWVySUQgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjb29yZGluYXRlZFJv
b3RMYXllciktPmlkKCk7Ci0KLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIgPSBHcmFw
aGljc0xheWVyOjpjcmVhdGUodGhpcywgdGhpcyk7Ci0jaWZuZGVmIE5ERUJVRwotICAgIG1fbm9u
Q29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmFtZSgiQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
IG5vbi1jb21wb3NpdGVkIGNvbnRlbnQiKTsKLSNlbmRpZgotICAgIG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUpOwotICAgIG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRMYXllci0+c2V0U2l6ZShtX3dlYlBhZ2UtPnNpemUoKSk7Ci0KLSAgICBtX25vbkNvbXBv
c2l0ZWRDb250ZW50TGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihtX3dlYlBhZ2UtPmNvcmVQYWdl
KCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKSk7Ci0gICAgbV9ub25Db21wb3NpdGVk
Q29udGVudExheWVyLT5zZXRTaG93UmVwYWludENvdW50ZXIobV93ZWJQYWdlLT5jb3JlUGFnZSgp
LT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKSk7Ci0KLSAgICBtX3Jvb3RMYXllci0+
YWRkQ2hpbGQobV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLmdldCgpKTsKKyAgICBtX2xheWVy
VHJlZUNvbnRleHQuY29vcmRpbmF0ZWRMYXllcklEID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5pZCgpOwogCiAgICAgQ29vcmRpbmF0ZWRTdXJmYWNlOjpz
ZXRGYWN0b3J5KGNyZWF0ZUNvb3JkaW5hdGVkU3VyZmFjZSk7CiAKQEAgLTE2NywxMiArMTU1LDEy
IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRTaG91bGROb3RpZnlBZnRlck5l
eHRTY2hlZHVsZWRMYXllckZsdXNoKGJvb2wKIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIpCiB7Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5yZW1vdmVBbGxD
aGlsZHJlbigpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0Q29udGVudHNP
cGFxdWUobV93ZWJQYWdlLT5kcmF3c0JhY2tncm91bmQoKSAmJiAhbV93ZWJQYWdlLT5kcmF3c1Ry
YW5zcGFyZW50QmFja2dyb3VuZCgpKTsKKyAgICBpZiAobV9yb290Q29tcG9zaXRpbmdMYXllcikK
KyAgICAgICAgbV9yb290Q29tcG9zaXRpbmdMYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOwogCi0g
ICAgLy8gQWRkIHRoZSBhY2NlbGVyYXRlZCBsYXllciB0cmVlIGhpZXJhcmNoeS4KLSAgICBpZiAo
Z3JhcGhpY3NMYXllcikKLSAgICAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5hZGRD
aGlsZChncmFwaGljc0xheWVyKTsKKyAgICBtX3Jvb3RDb21wb3NpdGluZ0xheWVyID0gZ3JhcGhp
Y3NMYXllcjsKKyAgICBpZiAobV9yb290Q29tcG9zaXRpbmdMYXllcikKKyAgICAgICAgbV9yb290
TGF5ZXItPmFkZENoaWxkQXRJbmRleChtX3Jvb3RDb21wb3NpdGluZ0xheWVyLCAwKTsKIH0KIAog
dm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmludmFsaWRhdGUoKQpAQCAtMTg0LDMyICsx
NzIsNiBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6aW52YWxpZGF0ZSgpCiAgICAg
bV9pc1ZhbGlkID0gZmFsc2U7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpz
ZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSgpCi17Ci0gICAgbV9ub25Db21wb3Np
dGVkQ29udGVudExheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLSAgICBpZiAobV9wYWdlT3Zlcmxh
eUxheWVyKQotICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwot
Ci0gICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Ci19Ci0KLXZvaWQgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0OjpzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiByZWN0KQotewotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXll
ci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOwotICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5
ZXIpCi0gICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJl
Y3QpOwotCi0gICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Ci19Ci0KLXZvaWQgQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0OjpzY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpCi17Ci0gICAgaWYgKCFtX3dlYlBhZ2UtPnVzZUZpeGVkTGF5b3V0KCkpCi0gICAg
ICAgIHNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCk7Ci0KLSAgICBzY2hlZHVs
ZUxheWVyRmx1c2goKTsKLX0KLQogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmZvcmNl
UmVwYWludCgpCiB7CiAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHJ1bm5pbmcgbGF5b3V0
IHRlc3RzLiBTaW5jZSBpbiB0aGlzIGNhc2Ugd2UgYXJlIG5vdCB3YWl0aW5nIGZvciBhIFVJUHJv
Y2VzcyB0byByZXBseSBuaWNlbHkuCkBAIC0yMzMsMjcgKzE5NSw3IEBAIGJvb2wgQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKQog
CiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2l6ZURpZENoYW5nZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBuZXdTaXplKQogewotICAgIGlmIChtX3Jvb3RMYXllci0+c2l6ZSgpID09
IG5ld1NpemUpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1fcm9vdExheWVyLT5zZXRTaXplKG5l
d1NpemUpOwotCi0gICAgLy8gSWYgdGhlIG5ld1NpemUgZXhwb3NlcyBuZXcgYXJlYXMgb2YgdGhl
IG5vbi1jb21wb3NpdGVkIGNvbnRlbnQgYSBzZXROZWVkc0Rpc3BsYXkgaXMgbmVlZGVkCi0gICAg
Ly8gZm9yIHRob3NlIG5ld2x5IGV4cG9zZWQgYXJlYXMuCi0gICAgRmxvYXRTaXplIG9sZFNpemUg
PSBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNpemUoKTsKLSAgICBtX25vbkNvbXBvc2l0
ZWRDb250ZW50TGF5ZXItPnNldFNpemUobmV3U2l6ZSk7Ci0KLSAgICBpZiAobmV3U2l6ZS53aWR0
aCgpID4gb2xkU2l6ZS53aWR0aCgpKSB7Ci0gICAgICAgIGZsb2F0IGhlaWdodCA9IHN0ZDo6bWlu
KHN0YXRpY19jYXN0PGZsb2F0PihuZXdTaXplLmhlaWdodCgpKSwgb2xkU2l6ZS5oZWlnaHQoKSk7
Ci0gICAgICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KEZsb2F0UmVjdChvbGRTaXplLndpZHRoKCksIDAsIG5ld1NpemUud2lkdGgoKSAtIG9sZFNp
emUud2lkdGgoKSwgaGVpZ2h0KSk7Ci0gICAgfQotCi0gICAgaWYgKG5ld1NpemUuaGVpZ2h0KCkg
PiBvbGRTaXplLmhlaWdodCgpKQotICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIt
PnNldE5lZWRzRGlzcGxheUluUmVjdChGbG9hdFJlY3QoMCwgb2xkU2l6ZS5oZWlnaHQoKSwgbmV3
U2l6ZS53aWR0aCgpLCBuZXdTaXplLmhlaWdodCgpIC0gb2xkU2l6ZS5oZWlnaHQoKSkpOwotCi0g
ICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKLSAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5z
ZXRTaXplKG5ld1NpemUpOwotCiAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CiB9CiAKQEAgLTI5
NiwyNSArMjM4LDI2IEBAIGJvb2wgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpmbHVzaFBlbmRp
bmdMYXllckNoYW5nZXMoKQogICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBwcm90ZWN0b3IobV9p
c0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzLCB0cnVlKTsKIAogICAgIGNyZWF0ZUNvbXBvc2l0aW5nTGF5
ZXJzKCk7Ci0KICAgICBpbml0aWFsaXplUm9vdENvbXBvc2l0aW5nTGF5ZXJJZk5lZWRlZCgpOwog
CiAgICAgbV9yb290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHko
KTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQogICAgICAg
ICBtX3BhZ2VPdmVybGF5TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9u
bHkoKTsKIAogICAgIGJvb2wgZGlkU3luYyA9IG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZy
YW1lKCktPnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7
CiAKICAgICBmbHVzaFBlbmRpbmdJbWFnZUJhY2tpbmdDaGFuZ2VzKCk7Ci0KICAgICBkZWxldGVD
b21wb3NpdGluZ0xheWVycygpOwogCiAgICAgaWYgKG1fc2hvdWxkU3luY0ZyYW1lKSB7CiAgICAg
ICAgIGRpZFN5bmMgPSB0cnVlOwogCi0gICAgICAgIG1fc3RhdGUuY29udGVudHNTaXplID0gcm91
bmRlZEludFNpemUobV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zaXplKCkpOwotICAgICAg
ICBtX3N0YXRlLmNvdmVyZWRSZWN0ID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9ub25D
b21wb3NpdGVkQ29udGVudExheWVyLmdldCgpKS0+Y292ZXJSZWN0KCk7CisgICAgICAgIGlmICht
X3Jvb3RDb21wb3NpdGluZ0xheWVyKSB7CisgICAgICAgICAgICBtX3N0YXRlLmNvbnRlbnRzU2l6
ZSA9IHJvdW5kZWRJbnRTaXplKG1fcm9vdENvbXBvc2l0aW5nTGF5ZXItPnNpemUoKSk7CisgICAg
ICAgICAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBjb250ZW50c0xheWVyID0gbWFp
bkNvbnRlbnRzTGF5ZXIoKSkKKyAgICAgICAgICAgICAgICBtX3N0YXRlLmNvdmVyZWRSZWN0ID0g
Y29udGVudHNMYXllci0+Y292ZXJSZWN0KCk7CisgICAgICAgIH0KKwogICAgICAgICBtX3N0YXRl
LnNjcm9sbFBvc2l0aW9uID0gbV92aXNpYmxlQ29udGVudHNSZWN0LmxvY2F0aW9uKCk7CiAKICAg
ICAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpDb29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eTo6Q29tbWl0Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlKG1fc3RhdGUpKTsKQEAgLTU5NCwx
MSArNTM3LDYgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6Om5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcioKIAogdm9pZCBDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OnBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllciwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQs
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjbGlwUmVjdCkKIHsKLSAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBtX25vbkNvbXBvc2l0
ZWRDb250ZW50TGF5ZXIpIHsKLSAgICAgICAgbV93ZWJQYWdlLT5kcmF3UmVjdChncmFwaGljc0Nv
bnRleHQsIGNsaXBSZWN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmIChncmFw
aGljc0xheWVyID09IG1fcGFnZU92ZXJsYXlMYXllcikgewogICAgICAgICAvLyBPdmVybGF5cyBj
b250YWluIHRyYW5zcGFyZW50IGNvbnRlbnRzIGFuZCB3b24ndCBjbGVhciB0aGUgY29udGV4dCBh
cyBwYXJ0IG9mIHRoZWlyIHJlbmRlcmluZywgc28gd2UgZG8gaXQgaGVyZS4KICAgICAgICAgZ3Jh
cGhpY3NDb250ZXh0LmNsZWFyUmVjdChjbGlwUmVjdCk7CkBAIC02NjAsMTAgKzU5OCwxOSBAQCBX
ZWJDb3JlOjpGbG9hdFJlY3QgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp2aXNpYmxlQ29udGVu
dHNSZWN0KCkgY29uc3QKICAgICByZXR1cm4gbV92aXNpYmxlQ29udGVudHNSZWN0OwogfQogCitD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bWFpbkNv
bnRlbnRzTGF5ZXIoKQoreworICAgIGlmICghbV9yb290Q29tcG9zaXRpbmdMYXllcikKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9y
b290Q29tcG9zaXRpbmdMYXllciktPmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1
cnNpdmVseSgpOworfQorCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJs
ZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHRy
YWplY3RvcnlWZWN0b3IpCiB7CiAgICAgLy8gQSB6ZXJvIHRyYWplY3RvcnlWZWN0b3IgaW5kaWNh
dGVzIHRoYXQgdGlsZXMgYWxsIGFyb3VuZCB0aGUgdmlld3BvcnQgYXJlIHJlcXVlc3RlZC4KLSAg
ICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIu
Z2V0KCkpLT5zZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKHRyYWplY3RvcnlW
ZWN0b3IpOworICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGNvbnRlbnRzTGF5ZXIg
PSBtYWluQ29udGVudHNMYXllcigpKQorICAgICAgICBjb250ZW50c0xheWVyLT5zZXRWaXNpYmxl
Q29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKHRyYWplY3RvcnlWZWN0b3IpOwogCiAgICAgYm9v
bCBjb250ZW50c1JlY3REaWRDaGFuZ2UgPSByZWN0ICE9IG1fdmlzaWJsZUNvbnRlbnRzUmVjdDsK
ICAgICBpZiAoY29udGVudHNSZWN0RGlkQ2hhbmdlKSB7CkBAIC02ODYsNyArNjMzLDYgQEAgdm9p
ZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LCBjb24KIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkZXZp
Y2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogewogICAgIG1fcm9vdExheWVyLT5kZXZpY2VP
clBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5
ZXItPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogICAgIGlmIChtX3BhZ2VPdmVy
bGF5TGF5ZXIpCiAgICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+ZGV2aWNlT3JQYWdlU2NhbGVG
YWN0b3JDaGFuZ2VkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDc2YWM2NTNhYTZmOWUyNGM1NjFkNWFhYjUw
MTBmMGJhZGFjYjcwYjIuLjZjMDViYjk4ZTcxYjI4ZTBjOTIxMDZlMmUyYmNiNWU4MzNhMTc1MTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5oCkBAIC02NSw5ICs2NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRl
ZENvbnRlbnRzTmVlZERpc3BsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9u
Q29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxOb25Db21wb3NpdGVkQ29udGVu
dHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
ZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSgpIE9WRVJSSURFIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdChjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9s
bE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREUg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgpOwogICAgIHZpcnR1YWwgYm9vbCBm
b3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKTsKQEAgLTg4LDYg
Kzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3Rv
cnkoKSBPVkVSUklERTsKKyAgICBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG1h
aW5Db250ZW50c0xheWVyKCk7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgT1ZFUlJJREU7CkBAIC0xNDMs
NyArMTQ0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNo
KCk7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpOwogICAgIHZvaWQg
c3luY0Rpc3BsYXlTdGF0ZSgpOwotCiAgICAgdm9pZCBsYXllckZsdXNoVGltZXJGaXJlZChXZWJD
b3JlOjpUaW1lcjxDb29yZGluYXRlZExheWVyVHJlZUhvc3Q+Kik7CiAKICAgICB2b2lkIHNjaGVk
dWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcygpOwpAQCAtMTY0LDkgKzE2NCw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXll
cjsKLQotICAgIC8vIFRoZSBsYXllciB3aGljaCBjb250YWlucyBhbGwgbm9uLWNvbXBvc2l0ZWQg
Y29udGVudC4KLSAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9ub25Db21wb3Np
dGVkQ29udGVudExheWVyOworICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIG1fcm9vdENvbXBv
c2l0aW5nTGF5ZXI7CiAKICAgICAvLyBUaGUgcGFnZSBvdmVybGF5IGxheWVyLiBXaWxsIGJlIG51
bGwgaWYgdGhlcmUncyBubyBwYWdlIG92ZXJsYXkuCiAgICAgT3duUHRyPFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI+IG1fcGFnZU92ZXJsYXlMYXllcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200002</attachid>
            <date>2013-04-29 06:42:36 -0700</date>
            <delta_ts>2013-04-29 09:23:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110355-20130429064153.patch</filename>
            <type>text/plain</type>
            <size>17351</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFhZDljNGE5Mzk0Njdi
ZDU3NjQ3ZjZiMGM3YTY0NDA4NTJlZDU0Yi4uYjExYjY2NTZkNWM1NDJmMDQxYjA4ZmJiNjA5MDY0
NmFmZmEyYmZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQxIEBACiAyMDEzLTA0LTI2ICBOb2Ft
IFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAorICAgICAgICBHZXQgcmlkIG9mICJub24t
Y29tcG9zaXRlZCBjb250ZW50cyIgaW4gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzNTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBKb2NlbHluIFR1cmNvdHRlLgorCisgICAgICAgIFdoZW4gaW4gZm9yY2Ug
Y29tcG9zaXRpbmcgbW9kZSwgYWx3YXlzIGFzc3VtZSB0aGF0IHRoZSBtYWluIGxheWVyIG5lZWRz
CisgICAgICAgIGEgYmFja2luZyBzdG9yZS4gTWFrZSBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFq
ZWN0b3J5VmVjdG9yIGFuZCBhY2N1bXVsYXRlZENvdmVyUmVjdAorICAgICAgICByZWN1cnNpdmUg
c28gdGhhdCB0aGV5IGRvbid0IHJlbHkgb24gYSBzcGVjaWFsaXplZCBsYXllci4KKworICAgICAg
ICBObyBuZXcgdGVzdGFibGUgYmVoYXZpb3IsIGNoYW5nZXMgdG8gY292ZXJSZWN0IGFuZCB0cmFq
ZWN0b3J5IHZlY3RvciBvbmx5CisgICAgICAgIGFmZmVjdCB0aWxpbmcgbGF0ZW5jeSBpbiByYXJl
IGNhc2VzIHRoYXQgYXJlIG5vdCB0cml2aWFsIHRvIHRlc3QuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjpzZXRWaXNpYmxl
Q29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKToKKyAgICAgICAgICAgIE1ha2UgdGhlIHRyYWpl
Y3RvcnkgdmVjdG9yIHJlY3Vyc2l2ZSwgdGhvdWdoIGxpbWl0ZWQgb25seSB0byBsYXllcnMgd2l0
aAorICAgICAgICAgICAgdHJhbnNsYXRlL2lkZW50aXR5LiBUaGlzIGFsbG93cyB1cyB0byBrZWVw
IHRoZSB0cmFqZWN0b3J5IHZlY3RvciB3aGlsZSByZW1vdmluZworICAgICAgICAgICAgdGhlIG5v
bi1jb21wb3NpdGVkIGNvbnRlbnRzIHNwZWNpYWxpemF0aW9uLgorCisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFjY3VtdWxhdGVkQ292ZXJSZWN0KToKKyAgICAg
ICAgICAgIEFkZGVkIGFjY3VtdWxhdGVkQ292ZXJSZWN0LCBzbyB0aGF0IHRoZSBjb3ZlclJlY3Qg
Y2FsY3VsYXRpb25zIGZvciB0aGUgVUkgcHJvY2VzcworICAgICAgICAgICAgYXJlIG5vdCBib3Vu
ZCB0byB0aGUgbm9uLWNvbXBvc2l0ZWQgY29udGVudHMgbGF5ZXIuCisKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZmluZERlc2NlbmRhbnRXaXRoQ29udGVudHNS
ZWN1cnNpdmVseSk6CisgICAgICAgICAgICBJbnN0ZWFkIG9mIHNhdmluZyBhIHJlZmVyZW5jZSB0
byB0aGUgbm9uLWNvbXBvc2l0ZWQgY29udGVudHMgbGF5ZXIsIHdlIGFzc3VtZSB0aGF0CisgICAg
ICAgICAgICB0aGUgZmlyc3QgbGF5ZXIgd2UgZm91bmQgcmVjdXJzaXZlbHkgd2hpY2ggaGFzIGNv
bnRlbnRzIGlzIHRoZSBvbmUgdG8gYmUgdXNlZCBmb3IKKyAgICAgICAgICAgIGNvdmVyUmVjdC90
cmFqZWN0b3J5IGNhbGN1bGF0aW9ucy4KKworICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRzSW50b1dpbmRvdyk6CisgICAgICAgICAgICBBbHdheXMgY3Jl
YXRlIGEgbGF5ZXIgZm9yIHRoZSBub24tY29tcG9zaXRlZCBjb250ZW50cyB3aGVuIGluIGZvcmNl
Q29tcG9zaXRpbmcgbW9kZS4KKworMjAxMy0wNC0yNiAgTm9hbSBSb3NlbnRoYWwgIDxub2FtQHdl
YmtpdC5vcmc+CisKICAgICAgICAgW1F0XSBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1jb21wb3Np
dGUtbW9kZXMuaHRtbCBicm9rZW4gYWZ0ZXIgcjE0ODQzMy4KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTI0MwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmFlMTk5
YjkyMjA3NGNlYjhjZDBiNzI2MTk3M2NiYTRhNmMzYTQ2NC4uYjRlMDg4MTJhMGEyMWEyNDFlY2Nh
Yzc5YzEwMzAwYTFmZTU0ZTRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTA0
LTI2ICBOb2FtIFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBHZXQgcmlk
IG9mICJub24tY29tcG9zaXRlZCBjb250ZW50cyIgaW4gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzNTUK
KworICAgICAgICBSZXZpZXdlZCBieSBKb2NlbHluIFR1cmNvdHRlLgorCisgICAgICAgIEluc3Rl
YWQgb2YgdXNpbmcgYSBzcGVjaWFsIG5vbi1jb21wb3NpdGVkIGNvbnRlbnRzIGxheWVyLCB3ZSBs
ZXQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yIGNyZWF0ZQorICAgICAgICBhIHByb3BlciBHcmFwaGlj
c0xheWVyIGZvciB0aGF0IGNvbnRlbnQuCisgICAgICAgIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dCBub3cgbmVlZHMgdG8gZmluZCB0aGUgbWFpbiBjb250ZW50cyBsYXllciBmb3IgdGhlIHB1cnBv
c2Ugb2Ygc2V0dGluZworICAgICAgICB0aGUgdHJhamVjdG9yeSB2ZWN0b3IgYW5kIGFwcGx5aW5n
IHRoZSBjb3ZlciByZWN0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3QpOgor
ICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFJvb3RDb21wb3Np
dGluZ0xheWVyKToKKyAgICAgICAgICAgIERvbid0IGNyZWF0ZSB0aGUgbm9uLWNvbXBvc2l0ZWQg
bGF5ZXIsIGluc3RlYWQga2VlcCBhIHJhdyBwb2ludGVyIHRvIHRoZSByb290CisgICAgICAgICAg
ICBjb21wb3NpdGluZyBsYXllciBjcmVhdGVkIGJ5IHRoZSBXZWJDb3JlIGNvbXBvc2l0b3IuCisK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXROb25Db21wb3Np
dGVkQ29udGVudHNOZWVkRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdDo6c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QpOgor
ICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNjcm9sbE5vbkNvbXBv
c2l0ZWRDb250ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6c2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKToKKyAgICAgICAgKFdlYktp
dDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KToKKyAg
ICAgICAgICAgIFJlbW92ZSBub24tY29tcG9zaXRlZCBsYXllciBzcGVjaWFsaXphdGlvbi4KKwog
MjAxMy0wNC0yMyAgTm9hbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W0Nvb3JkaW5hdGVkIEdyYXBoaWNzXSBSZW1vdmUgdGhlIGxvY2tBbmltYXRpb25zIGNvZGUgcGF0
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAppbmRleCA1ODZlNDdiZWNiMTYzMDRmOGVhNWFlZWQ2MGY0YTM1Y2I5YzBhNzM3Li5h
MGU5MTZmMjlmZGJkYzE3NDNkNTEwNGNlMzExMDVhMjk4YTBjZjQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtODM2
LDYgKzgzNiwyMCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5n
U3RvcmVQYWludEJlZ2luKCkKIHsKIH0KIAorQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1
cnNpdmVseSgpCit7CisgICAgaWYgKHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSkKKyAgICAgICAg
cmV0dXJuIHRoaXM7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllciA9IHRv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNoaWxkcmVuKClbaV0pLT5maW5kRmlyc3REZXNjZW5k
YW50V2l0aENvbnRlbnRzUmVjdXJzaXZlbHkoKTsKKyAgICAgICAgaWYgKGxheWVyKQorICAgICAg
ICAgICAgcmV0dXJuIGxheWVyOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZl
Y3Rvcihjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQogewogICAgIGlmICghbV9t
YWluQmFja2luZ1N0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDljNjNjMDg4MDczMmU0OWExYjY3YmM4YWRhNDc3OGY2
ZTU2MTdmZjEuLjRkNzBjZDI2YTQ3ZDMxYzE4YzcyYjMzYTYwODkwNDBlODJiOTdkNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgK
QEAgLTE0OCw2ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNQZW5kaW5nVmlzaWJsZUNo
YW5nZXMoKTsKIAogICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFN1cHBvcnRDb250ZW50c1RpbGlu
Zyhib29sKTsKKyAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGZpbmRGaXJzdERlc2NlbmRh
bnRXaXRoQ29udGVudHNSZWN1cnNpdmVseSgpOwogCiBwcml2YXRlOgogI2lmIFVTRShHUkFQSElD
U19TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAppbmRleCA5NDc0NDFlNWJhZTFhZTVhNjkwOTM4Nzk2YzM2OTljZTU0MTU0NzQzLi4w
ZjQzNDE0Mjk3ZGMzYWVhYTk0OTIyZWE1OTZjZjMxNzE0ZGU4OTdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTg0NSw3ICsxODQ1
LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50c0ludG9XaW5kb3coKSBjb25zdAog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9vd25pbmdMYXllci0+aXNSb290TGF5
ZXIoKSkgewotI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgUExBVEZPUk0oQkxBQ0tCRVJS
WSkgfHwgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgICAgICBpZiAoY29tcG9zaXRvcigp
LT5pbkZvcmNlZENvbXBvc2l0aW5nTW9kZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0LmNwcAppbmRleCBmNDFiMmM5ZTcwZWZlYWRlN2Q2ZTBjN2ExNDQzZDg0YzI5
ZTZmYzExLi4xYzBiYTI0NDQ2YjYyY2YwZTQ2NWMwYjE1MDUzMTUwNGIwOWI5OTBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dC5jcHAKQEAgLTgwLDYgKzgwLDcgQEAgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp+Q29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0KCkKIAogQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpDb29yZGlu
YXRlZExheWVyVHJlZUhvc3QoV2ViUGFnZSogd2ViUGFnZSkKICAgICA6IExheWVyVHJlZUhvc3Qo
d2ViUGFnZSkKKyAgICAsIG1fcm9vdENvbXBvc2l0aW5nTGF5ZXIoMCkKICAgICAsIG1fbm90aWZ5
QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoKGZhbHNlKQogICAgICwgbV9pc1ZhbGlkKHRydWUpCiAg
ICAgLCBtX2lzUHVyZ2luZyhmYWxzZSkKQEAgLTk5LDI1ICsxMDAsMTIgQEAgQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3QoV2ViUGFnZSogd2ViUGFnZSkK
IAogICAgIC8vIENyZWF0ZSBhIHJvb3QgbGF5ZXIuCiAgICAgbV9yb290TGF5ZXIgPSBHcmFwaGlj
c0xheWVyOjpjcmVhdGUodGhpcywgdGhpcyk7Ci0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KiBjb29yZGluYXRlZFJvb3RMYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1fcm9v
dExheWVyLmdldCgpKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9yb290TGF5ZXItPnNldE5hbWUo
IkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCByb290IGxheWVyIik7CiAjZW5kaWYKICAgICBtX3Jv
b3RMYXllci0+c2V0RHJhd3NDb250ZW50KGZhbHNlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0U2l6
ZShtX3dlYlBhZ2UtPnNpemUoKSk7Ci0gICAgbV9sYXllclRyZWVDb250ZXh0LmNvb3JkaW5hdGVk
TGF5ZXJJRCA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNvb3JkaW5hdGVkUm9vdExheWVy
KS0+aWQoKTsKLQotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllciA9IEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZSh0aGlzLCB0aGlzKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgbV9ub25Db21wb3Np
dGVkQ29udGVudExheWVyLT5zZXROYW1lKCJDb29yZGluYXRlZExheWVyVHJlZUhvc3Qgbm9uLWNv
bXBvc2l0ZWQgY29udGVudCIpOwotI2VuZGlmCi0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExh
eWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExh
eWVyLT5zZXRTaXplKG1fd2ViUGFnZS0+c2l6ZSgpKTsKLQotICAgIG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0
dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpKTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50
TGF5ZXItPnNldFNob3dSZXBhaW50Q291bnRlcihtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRp
bmdzKCktPnNob3dSZXBhaW50Q291bnRlcigpKTsKLQotICAgIG1fcm9vdExheWVyLT5hZGRDaGls
ZChtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIuZ2V0KCkpOworICAgIG1fbGF5ZXJUcmVlQ29u
dGV4dC5jb29yZGluYXRlZExheWVySUQgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jv
b3RMYXllci5nZXQoKSktPmlkKCk7CiAKICAgICBDb29yZGluYXRlZFN1cmZhY2U6OnNldEZhY3Rv
cnkoY3JlYXRlQ29vcmRpbmF0ZWRTdXJmYWNlKTsKIApAQCAtMTY3LDEyICsxNTUsMTIgQEAgdm9p
ZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVk
dWxlZExheWVyRmx1c2goYm9vbAogCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0
Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXll
cikKIHsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnJlbW92ZUFsbENoaWxkcmVu
KCk7Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXRDb250ZW50c09wYXF1ZSht
X3dlYlBhZ2UtPmRyYXdzQmFja2dyb3VuZCgpICYmICFtX3dlYlBhZ2UtPmRyYXdzVHJhbnNwYXJl
bnRCYWNrZ3JvdW5kKCkpOworICAgIGlmIChtX3Jvb3RDb21wb3NpdGluZ0xheWVyKQorICAgICAg
ICBtX3Jvb3RDb21wb3NpdGluZ0xheWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7CiAKLSAgICAvLyBB
ZGQgdGhlIGFjY2VsZXJhdGVkIGxheWVyIHRyZWUgaGllcmFyY2h5LgotICAgIGlmIChncmFwaGlj
c0xheWVyKQotICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPmFkZENoaWxkKGdy
YXBoaWNzTGF5ZXIpOworICAgIG1fcm9vdENvbXBvc2l0aW5nTGF5ZXIgPSBncmFwaGljc0xheWVy
OworICAgIGlmIChtX3Jvb3RDb21wb3NpdGluZ0xheWVyKQorICAgICAgICBtX3Jvb3RMYXllci0+
YWRkQ2hpbGRBdEluZGV4KG1fcm9vdENvbXBvc2l0aW5nTGF5ZXIsIDApOwogfQogCiB2b2lkIENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6aW52YWxpZGF0ZSgpCkBAIC0xODQsMzIgKzE3Miw2IEBA
IHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjppbnZhbGlkYXRlKCkKICAgICBtX2lzVmFs
aWQgPSBmYWxzZTsKIH0KIAotdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldE5vbkNv
bXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCkKLXsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250
ZW50TGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwotICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5ZXIp
Ci0gICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0KLSAgICBz
Y2hlZHVsZUxheWVyRmx1c2goKTsKLX0KLQotdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHJlY3QpCi17Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXRO
ZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7Ci0gICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKLSAg
ICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7Ci0K
LSAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKLX0KLQotdm9pZCBDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OnNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JikKLXsKLSAgICBpZiAoIW1fd2ViUGFnZS0+dXNlRml4ZWRMYXlvdXQoKSkKLSAgICAgICAgc2V0
Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKTsKLQotICAgIHNjaGVkdWxlTGF5ZXJG
bHVzaCgpOwotfQotCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Zm9yY2VSZXBhaW50
KCkKIHsKICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgcnVubmluZyBsYXlvdXQgdGVzdHMu
IFNpbmNlIGluIHRoaXMgY2FzZSB3ZSBhcmUgbm90IHdhaXRpbmcgZm9yIGEgVUlQcm9jZXNzIHRv
IHJlcGx5IG5pY2VseS4KQEAgLTIzMywyNyArMTk1LDcgQEAgYm9vbCBDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OmZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKIHZvaWQg
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIG5ld1NpemUpCiB7Ci0gICAgaWYgKG1fcm9vdExheWVyLT5zaXplKCkgPT0gbmV3U2l6
ZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgbV9yb290TGF5ZXItPnNldFNpemUobmV3U2l6ZSk7
Ci0KLSAgICAvLyBJZiB0aGUgbmV3U2l6ZSBleHBvc2VzIG5ldyBhcmVhcyBvZiB0aGUgbm9uLWNv
bXBvc2l0ZWQgY29udGVudCBhIHNldE5lZWRzRGlzcGxheSBpcyBuZWVkZWQKLSAgICAvLyBmb3Ig
dGhvc2UgbmV3bHkgZXhwb3NlZCBhcmVhcy4KLSAgICBGbG9hdFNpemUgb2xkU2l6ZSA9IG1fbm9u
Q29tcG9zaXRlZENvbnRlbnRMYXllci0+c2l6ZSgpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllci0+c2V0U2l6ZShuZXdTaXplKTsKLQotICAgIGlmIChuZXdTaXplLndpZHRoKCkgPiBv
bGRTaXplLndpZHRoKCkpIHsKLSAgICAgICAgZmxvYXQgaGVpZ2h0ID0gc3RkOjptaW4oc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KG5ld1NpemUuaGVpZ2h0KCkpLCBvbGRTaXplLmhlaWdodCgpKTsKLSAgICAg
ICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QoRmxv
YXRSZWN0KG9sZFNpemUud2lkdGgoKSwgMCwgbmV3U2l6ZS53aWR0aCgpIC0gb2xkU2l6ZS53aWR0
aCgpLCBoZWlnaHQpKTsKLSAgICB9Ci0KLSAgICBpZiAobmV3U2l6ZS5oZWlnaHQoKSA+IG9sZFNp
emUuaGVpZ2h0KCkpCi0gICAgICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KEZsb2F0UmVjdCgwLCBvbGRTaXplLmhlaWdodCgpLCBuZXdTaXplLndp
ZHRoKCksIG5ld1NpemUuaGVpZ2h0KCkgLSBvbGRTaXplLmhlaWdodCgpKSk7Ci0KLSAgICBpZiAo
bV9wYWdlT3ZlcmxheUxheWVyKQotICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldFNpemUo
bmV3U2l6ZSk7Ci0KICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKIH0KIApAQCAtMjk2LDI1ICsy
MzgsMjYgQEAgYm9vbCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmZsdXNoUGVuZGluZ0xheWVy
Q2hhbmdlcygpCiAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHByb3RlY3RvcihtX2lzRmx1c2hp
bmdMYXllckNoYW5nZXMsIHRydWUpOwogCiAgICAgY3JlYXRlQ29tcG9zaXRpbmdMYXllcnMoKTsK
LQogICAgIGluaXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXllcklmTmVlZGVkKCk7CiAKICAgICBt
X3Jvb3RMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwotICAg
IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOwogICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5ZXIpCiAgICAgICAgIG1fcGFn
ZU92ZXJsYXlMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwog
CiAgICAgYm9vbCBkaWRTeW5jID0gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS0+
dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIAogICAg
IGZsdXNoUGVuZGluZ0ltYWdlQmFja2luZ0NoYW5nZXMoKTsKLQogICAgIGRlbGV0ZUNvbXBvc2l0
aW5nTGF5ZXJzKCk7CiAKICAgICBpZiAobV9zaG91bGRTeW5jRnJhbWUpIHsKICAgICAgICAgZGlk
U3luYyA9IHRydWU7CiAKLSAgICAgICAgbV9zdGF0ZS5jb250ZW50c1NpemUgPSByb3VuZGVkSW50
U2l6ZShtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNpemUoKSk7Ci0gICAgICAgIG1fc3Rh
dGUuY292ZXJlZFJlY3QgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX25vbkNvbXBvc2l0
ZWRDb250ZW50TGF5ZXIuZ2V0KCkpLT5jb3ZlclJlY3QoKTsKKyAgICAgICAgaWYgKG1fcm9vdENv
bXBvc2l0aW5nTGF5ZXIpIHsKKyAgICAgICAgICAgIG1fc3RhdGUuY29udGVudHNTaXplID0gcm91
bmRlZEludFNpemUobV9yb290Q29tcG9zaXRpbmdMYXllci0+c2l6ZSgpKTsKKyAgICAgICAgICAg
IGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGNvbnRlbnRzTGF5ZXIgPSBtYWluQ29udGVu
dHNMYXllcigpKQorICAgICAgICAgICAgICAgIG1fc3RhdGUuY292ZXJlZFJlY3QgPSBjb250ZW50
c0xheWVyLT5jb3ZlclJlY3QoKTsKKyAgICAgICAgfQorCiAgICAgICAgIG1fc3RhdGUuc2Nyb2xs
UG9zaXRpb24gPSBtX3Zpc2libGVDb250ZW50c1JlY3QubG9jYXRpb24oKTsKIAogICAgICAgICBt
X3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpD
b21taXRDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUobV9zdGF0ZSkpOwpAQCAtNTk0LDExICs1Mzcs
NiBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKgogCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNs
aXBSZWN0KQogewotICAgIGlmIChncmFwaGljc0xheWVyID09IG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllcikgewotICAgICAgICBtX3dlYlBhZ2UtPmRyYXdSZWN0KGdyYXBoaWNzQ29udGV4dCwg
Y2xpcFJlY3QpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYgKGdyYXBoaWNzTGF5
ZXIgPT0gbV9wYWdlT3ZlcmxheUxheWVyKSB7CiAgICAgICAgIC8vIE92ZXJsYXlzIGNvbnRhaW4g
dHJhbnNwYXJlbnQgY29udGVudHMgYW5kIHdvbid0IGNsZWFyIHRoZSBjb250ZXh0IGFzIHBhcnQg
b2YgdGhlaXIgcmVuZGVyaW5nLCBzbyB3ZSBkbyBpdCBoZXJlLgogICAgICAgICBncmFwaGljc0Nv
bnRleHQuY2xlYXJSZWN0KGNsaXBSZWN0KTsKQEAgLTY2MCwxMCArNTk4LDE5IEBAIFdlYkNvcmU6
OkZsb2F0UmVjdCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnZpc2libGVDb250ZW50c1JlY3Qo
KSBjb25zdAogICAgIHJldHVybiBtX3Zpc2libGVDb250ZW50c1JlY3Q7CiB9CiAKK0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciogQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjptYWluQ29udGVudHNM
YXllcigpCit7CisgICAgaWYgKCFtX3Jvb3RDb21wb3NpdGluZ0xheWVyKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIHJldHVybiB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtX3Jvb3RDb21w
b3NpdGluZ0xheWVyKS0+ZmluZEZpcnN0RGVzY2VuZGFudFdpdGhDb250ZW50c1JlY3Vyc2l2ZWx5
KCk7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRWaXNpYmxlQ29udGVu
dHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9y
eVZlY3RvcikKIHsKICAgICAvLyBBIHplcm8gdHJhamVjdG9yeVZlY3RvciBpbmRpY2F0ZXMgdGhh
dCB0aWxlcyBhbGwgYXJvdW5kIHRoZSB2aWV3cG9ydCBhcmUgcmVxdWVzdGVkLgotICAgIHRvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci5nZXQoKSkt
PnNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IodHJhamVjdG9yeVZlY3Rvcik7
CisgICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogY29udGVudHNMYXllciA9IG1haW5D
b250ZW50c0xheWVyKCkpCisgICAgICAgIGNvbnRlbnRzTGF5ZXItPnNldFZpc2libGVDb250ZW50
UmVjdFRyYWplY3RvcnlWZWN0b3IodHJhamVjdG9yeVZlY3Rvcik7CiAKICAgICBib29sIGNvbnRl
bnRzUmVjdERpZENoYW5nZSA9IHJlY3QgIT0gbV92aXNpYmxlQ29udGVudHNSZWN0OwogICAgIGlm
IChjb250ZW50c1JlY3REaWRDaGFuZ2UpIHsKQEAgLTY4Niw3ICs2MzMsNiBAQCB2b2lkIENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJl
Y3QmIHJlY3QsIGNvbgogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRldmljZU9yUGFn
ZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCiB7CiAgICAgbV9yb290TGF5ZXItPmRldmljZU9yUGFnZVNj
YWxlRmFjdG9yQ2hhbmdlZCgpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+ZGV2
aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXll
cikKICAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNo
YW5nZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmgKaW5kZXggNzZhYzY1M2FhNmY5ZTI0YzU2MWQ1YWFiNTAxMGYwYmFk
YWNiNzBiMi4uNmMwNWJiOThlNzFiMjhlMGM5MjEwNmUyZTJiY2I1ZTgzM2ExNzUxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmgKQEAgLTY1LDkgKzY1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSb290Q29t
cG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGUoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29udGVu
dHNOZWVkRGlzcGxheSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3Np
dGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldE5vbkNv
bXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2
b2lkIHNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsTm9uQ29t
cG9zaXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50KCk7CiAgICAgdmlydHVhbCBib29sIGZvcmNlUmVw
YWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZpcnR1YWwgdm9pZCBzaXplRGlk
Q2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUpOwpAQCAtODgsNiArODgsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFs
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIE9W
RVJSSURFOworICAgIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbWFpbkNvbnRl
bnRzTGF5ZXIoKTsKIAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSBPVkVSUklERTsKQEAgLTE0Myw3ICsxNDQs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKTsKICAg
ICB2b2lkIGRpZFBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7CiAgICAgdm9pZCBzeW5jRGlz
cGxheVN0YXRlKCk7Ci0KICAgICB2b2lkIGxheWVyRmx1c2hUaW1lckZpcmVkKFdlYkNvcmU6OlRp
bWVyPENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdD4qKTsKIAogICAgIHZvaWQgc2NoZWR1bGVSZWxl
YXNlSW5hY3RpdmVBdGxhc2VzKCk7CkBAIC0xNjQsOSArMTY0LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOwotCi0g
ICAgLy8gVGhlIGxheWVyIHdoaWNoIGNvbnRhaW5zIGFsbCBub24tY29tcG9zaXRlZCBjb250ZW50
LgotICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX25vbkNvbXBvc2l0ZWRDb250
ZW50TGF5ZXI7CisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbV9yb290Q29tcG9zaXRpbmdM
YXllcjsKIAogICAgIC8vIFRoZSBwYWdlIG92ZXJsYXkgbGF5ZXIuIFdpbGwgYmUgbnVsbCBpZiB0
aGVyZSdzIG5vIHBhZ2Ugb3ZlcmxheS4KICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXll
cj4gbV9wYWdlT3ZlcmxheUxheWVyOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>