<?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>94743</bug_id>
          
          <creation_ts>2012-08-22 13:16:07 -0700</creation_ts>
          <short_desc>Automatically use composited scrolling</short_desc>
          <delta_ts>2018-09-20 13:19:10 -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>WebKit Misc.</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>91117</dependson>
    
    <dependson>95885</dependson>
    
    <dependson>104911</dependson>
    
    <dependson>105173</dependson>
          <blocked>103156</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>vollick</reporter>
          <assigned_to>vollick</assigned_to>
          <cc>adamk</cc>
    
    <cc>anilsson</cc>
    
    <cc>cdumez</cc>
    
    <cc>dglazkov</cc>
    
    <cc>efidler</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>skyostil</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>702249</commentid>
    <comment_count>0</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-08-22 13:16:07 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=91117 provides support for composited scrolling. We should automatically opt into this path where possible. That said, automatically opting in must be turned on via a setting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702272</commentid>
    <comment_count>1</comment_count>
      <attachid>160000</attachid>
    <who name="">vollick</who>
    <bug_when>2012-08-22 13:28:46 -0700</bug_when>
    <thetext>Created attachment 160000
Patch

This patch is missing the settings work required to enable this feature as well
as the layout tests. Any feedback, though, would be greatly appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714560</commentid>
    <comment_count>2</comment_count>
      <attachid>162782</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-07 08:51:27 -0700</bug_when>
    <thetext>Created attachment 162782
Work in progress (still working on layout tests). Not ready for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717840</commentid>
    <comment_count>3</comment_count>
      <attachid>163503</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-11 19:57:10 -0700</bug_when>
    <thetext>Created attachment 163503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717857</commentid>
    <comment_count>4</comment_count>
      <attachid>163503</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-11 20:21:01 -0700</bug_when>
    <thetext>Comment on attachment 163503
Patch

Attachment 163503 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13822579</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717858</commentid>
    <comment_count>5</comment_count>
      <attachid>163503</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-11 20:21:23 -0700</bug_when>
    <thetext>Comment on attachment 163503
Patch

Attachment 163503 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13835013</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717868</commentid>
    <comment_count>6</comment_count>
      <attachid>163503</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-09-11 20:29:56 -0700</bug_when>
    <thetext>Comment on attachment 163503
Patch

Attachment 163503 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13820643</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717875</commentid>
    <comment_count>7</comment_count>
      <attachid>163503</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-11 20:39:05 -0700</bug_when>
    <thetext>Comment on attachment 163503
Patch

Attachment 163503 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13826515</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717882</commentid>
    <comment_count>8</comment_count>
      <attachid>163503</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-11 21:01:50 -0700</bug_when>
    <thetext>Comment on attachment 163503
Patch

Attachment 163503 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13824517</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717930</commentid>
    <comment_count>9</comment_count>
      <attachid>163503</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-11 22:30:50 -0700</bug_when>
    <thetext>Comment on attachment 163503
Patch

Attachment 163503 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13810919</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717970</commentid>
    <comment_count>10</comment_count>
      <attachid>163503</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 23:55:14 -0700</bug_when>
    <thetext>Comment on attachment 163503
Patch

Attachment 163503 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13824570

New failing tests:
compositing/overflow/automatically-opt-into-composited-scrolling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718497</commentid>
    <comment_count>11</comment_count>
      <attachid>163652</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-12 10:32:32 -0700</bug_when>
    <thetext>Created attachment 163652
Attempt to make the bots happier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718510</commentid>
    <comment_count>12</comment_count>
      <attachid>163652</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-12 10:44:53 -0700</bug_when>
    <thetext>Comment on attachment 163652
Attempt to make the bots happier

Attachment 163652 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13820901</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718517</commentid>
    <comment_count>13</comment_count>
      <attachid>163652</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-12 10:56:22 -0700</bug_when>
    <thetext>Comment on attachment 163652
Attempt to make the bots happier

Attachment 163652 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13819851</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718521</commentid>
    <comment_count>14</comment_count>
      <attachid>163657</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-12 11:05:37 -0700</bug_when>
    <thetext>Created attachment 163657
Attempt to make the bots happier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718833</commentid>
    <comment_count>15</comment_count>
      <attachid>163657</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-09-12 15:52:36 -0700</bug_when>
    <thetext>Comment on attachment 163657
Attempt to make the bots happier

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:673
&gt; +static bool isZIndexRespected(const RenderLayer* layer)
&gt; +{
&gt; +    return layer-&gt;isStackingContext();
&gt; +}

This function is confusingly named. I would expect it to see whether the element is positioned. It seems that what you&apos;re really asking is whether the layer has non-auto z-index, so why not ask style directly?

&gt; Source/WebCore/rendering/RenderLayer.cpp:679
&gt; +    if (!layer)
&gt; +        return 0;

Is this necessary?

&gt; Source/WebCore/rendering/RenderLayer.cpp:696
&gt; +    if (!layer-&gt;renderer()-&gt;isInline()
&gt; +        &amp;&amp; layer-&gt;isNormalFlowOnly()
&gt; +        &amp;&amp; !layer-&gt;renderer()-&gt;isPositioned())
&gt; +        return -0.75;
&gt; +
&gt; +    if (!layer-&gt;renderer()-&gt;isPositioned()
&gt; +        &amp;&amp; layer-&gt;renderer()-&gt;isFloating())
&gt; +        return -0.5;
&gt; +
&gt; +    if (layer-&gt;renderer()-&gt;isInline()
&gt; +        &amp;&amp; layer-&gt;isNormalFlowOnly()
&gt; +        &amp;&amp; !layer-&gt;renderer()-&gt;isPositioned())
&gt; +        return -0.25;

A comment explaining these weird magic numbers seems justified.

&gt; Source/WebCore/rendering/RenderLayer.cpp:701
&gt; +static const RenderLayer* firstAppearingDescendant(const RenderLayer* currentLayer, const RenderLayer* firstLayer, const RenderLayer* secondLayer)

I don&apos;t know what &quot;appearing&quot; means in this context.

&gt; Source/WebCore/rendering/RenderLayer.cpp:769
&gt; +    double zMin = std::numeric_limits&lt;double&gt;::max();
&gt; +    double zMax = -std::numeric_limits&lt;double&gt;::max();
&gt; +    findMinAndMaxZIndices(this, zMin, zMax);
&gt; +
&gt; +    if (zMin &gt;= zMax)
&gt; +        return true;
&gt; +
&gt; +    return !nonDescendantInThisStackingContextCouldFallBetweenDescendants(stackingContext(), this, zMin, zMax);

This code seems very hard to understand, and I can&apos;t easily tell if it&apos;s correct.

What you&apos;re really asking is whether, by making a layer a stacking context, you affect the traversal order of the z-order tree. It seems like it would be easier to determine that from the z-order tree, rather than crawling around looking at zMin and zMax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719684</commentid>
    <comment_count>16</comment_count>
      <attachid>163913</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-13 11:07:05 -0700</bug_when>
    <thetext>Created attachment 163913
Patch

&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:769
&gt; &gt; +    double zMin = std::numeric_limits&lt;double&gt;::max();
&gt; &gt; +    double zMax = -std::numeric_limits&lt;double&gt;::max();
&gt; &gt; +    findMinAndMaxZIndices(this, zMin, zMax);
&gt; &gt; +
&gt; &gt; +    if (zMin &gt;= zMax)
&gt; &gt; +        return true;
&gt; &gt; +
&gt; &gt; +    return !nonDescendantInThisStackingContextCouldFallBetweenDescendants(stackingContext(), this, zMin, zMax);
&gt;
&gt; This code seems very hard to understand, and I can&apos;t easily tell if it&apos;s correct.
&gt;
&gt; What you&apos;re really asking is whether, by making a layer a stacking context, you affect the traversal order of the z-order tree. It seems like it would be easier to determine that from the z-order tree, rather than crawling around looking at zMin and zMax.

This is true. The current patch walks the z-order tree (and I agree that this is much easier to understand), but there&apos;s a down side: the z-order lists are usually dirty.
I was expecting this to happen occasionally, and that they&apos;d sort themselves out eventually, but they seem to stay dirty.
Ideally, we could cache the lists when we rebuild them and clear the dirty bits, but ::usesCompositedScrolling
gets called in a deep stack of const functions, so the options I see are

  1) Recompute the lists each time they are needed.
  2) Remove a bunch of const&apos;s.
  3) Make the lists mutable.

None of these options seem very nice to me. Do you have a suggestion for how to proceed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719690</commentid>
    <comment_count>17</comment_count>
      <attachid>163915</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-13 11:09:45 -0700</bug_when>
    <thetext>Created attachment 163915
Patch

Accidentally submitted some debugging code in the last patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719716</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-09-13 11:31:19 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=163913) [details]
&gt; Patch
&gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:769
&gt; &gt; &gt; +    double zMin = std::numeric_limits&lt;double&gt;::max();
&gt; &gt; &gt; +    double zMax = -std::numeric_limits&lt;double&gt;::max();
&gt; &gt; &gt; +    findMinAndMaxZIndices(this, zMin, zMax);
&gt; &gt; &gt; +
&gt; &gt; &gt; +    if (zMin &gt;= zMax)
&gt; &gt; &gt; +        return true;
&gt; &gt; &gt; +
&gt; &gt; &gt; +    return !nonDescendantInThisStackingContextCouldFallBetweenDescendants(stackingContext(), this, zMin, zMax);
&gt; &gt;
&gt; &gt; This code seems very hard to understand, and I can&apos;t easily tell if it&apos;s correct.
&gt; &gt;
&gt; &gt; What you&apos;re really asking is whether, by making a layer a stacking context, you affect the traversal order of the z-order tree. It seems like it would be easier to determine that from the z-order tree, rather than crawling around looking at zMin and zMax.
&gt; 
&gt; This is true. The current patch walks the z-order tree (and I agree that this is much easier to understand), but there&apos;s a down side: the z-order lists are usually dirty.
&gt; I was expecting this to happen occasionally, and that they&apos;d sort themselves out eventually, but they seem to stay dirty.

They are not dirty during compositing evaluation and painting. I&apos;m not sure what makes you think they stay dirty.

&gt; Ideally, we could cache the lists when we rebuild them and clear the dirty bits, but ::usesCompositedScrolling
&gt; gets called in a deep stack of const functions, so the options I see are
&gt; 
&gt;   1) Recompute the lists each time they are needed.
&gt;   2) Remove a bunch of const&apos;s.
&gt;   3) Make the lists mutable.
&gt; 
&gt; None of these options seem very nice to me. Do you have a suggestion for how to proceed?

Can you build enough of a z-order subtree to make your determination? You&apos;d have to back up to the stacking context ancestor, build temporary z-order lists with and without your layer being a stacking context, and compare them.

Maybe there is a way to do this without actually building lists, but perhaps it can share logic with the list building.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719745</commentid>
    <comment_count>19</comment_count>
      <attachid>163925</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-13 11:56:14 -0700</bug_when>
    <thetext>Created attachment 163925
Patch

(In reply to comment #18)
&gt; (In reply to comment #16)
&gt; &gt; Created an attachment (id=163913) [details] [details]
&gt; &gt; Patch
&gt; &gt;
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:769
&gt; &gt; &gt; &gt; +    double zMin = std::numeric_limits&lt;double&gt;::max();
&gt; &gt; &gt; &gt; +    double zMax = -std::numeric_limits&lt;double&gt;::max();
&gt; &gt; &gt; &gt; +    findMinAndMaxZIndices(this, zMin, zMax);
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +    if (zMin &gt;= zMax)
&gt; &gt; &gt; &gt; +        return true;
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +    return !nonDescendantInThisStackingContextCouldFallBetweenDescendants(stackingContext(), this, zMin, zMax);
&gt; &gt; &gt;
&gt; &gt; &gt; This code seems very hard to understand, and I can&apos;t easily tell if it&apos;s correct.
&gt; &gt; &gt;
&gt; &gt; &gt; What you&apos;re really asking is whether, by making a layer a stacking context, you affect the traversal order of the z-order tree. It seems like it would be easier to determine that from the z-order tree, rather than crawling around looking at zMin and zMax.
&gt; &gt;
&gt; &gt; This is true. The current patch walks the z-order tree (and I agree that this is much easier to understand), but there&apos;s a down side: the z-order lists are usually dirty.
&gt; &gt; I was expecting this to happen occasionally, and that they&apos;d sort themselves out eventually, but they seem to stay dirty.
&gt;
&gt; They are not dirty during compositing evaluation and painting. I&apos;m not sure what makes you think they stay dirty.

It seems that this new code gets called at a point where these lists are dirty.
I keep checking m_zOrderListsDirty, and it seems to continue to be true.

&gt;
&gt; &gt; Ideally, we could cache the lists when we rebuild them and clear the dirty bits, but ::usesCompositedScrolling
&gt; &gt; gets called in a deep stack of const functions, so the options I see are
&gt; &gt;
&gt; &gt;   1) Recompute the lists each time they are needed.
&gt; &gt;   2) Remove a bunch of const&apos;s.
&gt; &gt;   3) Make the lists mutable.
&gt; &gt;
&gt; &gt; None of these options seem very nice to me. Do you have a suggestion for how to proceed?
&gt;
&gt; Can you build enough of a z-order subtree to make your determination? You&apos;d have to back up to the stacking context ancestor, build temporary z-order lists with and without your layer being a stacking context, and compare them.
&gt;
&gt; Maybe there is a way to do this without actually building lists, but perhaps it can share logic with the list building.

Yep, my patch should not build the whole z-order tree, but only those lists for the nodes in the tree that matter.
And I have refactored the list building code so that it is reused by the new code. Perhaps this approach is ok, then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719778</commentid>
    <comment_count>20</comment_count>
      <attachid>163925</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-13 12:20:11 -0700</bug_when>
    <thetext>Comment on attachment 163925
Patch

Attachment 163925 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13855102</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719829</commentid>
    <comment_count>21</comment_count>
      <attachid>163925</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-09-13 13:00:23 -0700</bug_when>
    <thetext>Comment on attachment 163925
Patch

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

&gt; Source/WebCore/page/Settings.h:388
&gt;  
&gt; +        void setAcceleratedCompositingForOverflowScrollEnabled(bool enabled) { m_acceleratedCompositingForOverflowScrollEnabled = enabled; }
&gt; +        bool acceleratedCompositingForOverflowScrollEnabled() const { return m_acceleratedCompositingForOverflowScrollEnabled; }
&gt; +

this code has landed upstream already</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719839</commentid>
    <comment_count>22</comment_count>
      <attachid>163925</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-13 13:08:28 -0700</bug_when>
    <thetext>Comment on attachment 163925
Patch

Attachment 163925 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13852141</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719840</commentid>
    <comment_count>23</comment_count>
      <attachid>163925</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-13 13:09:02 -0700</bug_when>
    <thetext>Comment on attachment 163925
Patch

Attachment 163925 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13839629</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719874</commentid>
    <comment_count>24</comment_count>
      <attachid>163954</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-13 13:42:22 -0700</bug_when>
    <thetext>Created attachment 163954
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719906</commentid>
    <comment_count>25</comment_count>
      <attachid>163954</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-09-13 14:05:10 -0700</bug_when>
    <thetext>Comment on attachment 163954
Rebasing

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        wkb.ug/91117 if the overflow scroll div is styled with

nit: mention &apos;div&apos; seems too specific. It can get applied to any block element.

&gt; Source/WebCore/ChangeLog:14
&gt; +

I think the most important thing to describe in the changelog here is the heuristic you used.

&gt; Source/WebCore/rendering/RenderLayer.h:881
&gt; +    // Returns true iff z ordering would not change if this layer were to establish a stacking context.

iff*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719925</commentid>
    <comment_count>26</comment_count>
      <attachid>163954</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-13 14:18:01 -0700</bug_when>
    <thetext>Comment on attachment 163954
Rebasing

Attachment 163954 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13835735</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720617</commentid>
    <comment_count>27</comment_count>
      <attachid>164112</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-14 05:20:01 -0700</bug_when>
    <thetext>Created attachment 164112
Attempt to make win and gtk bots happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720650</commentid>
    <comment_count>28</comment_count>
      <attachid>164112</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-14 05:55:04 -0700</bug_when>
    <thetext>Comment on attachment 164112
Attempt to make win and gtk bots happy

Attachment 164112 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13861007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720651</commentid>
    <comment_count>29</comment_count>
      <attachid>164112</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-14 05:55:25 -0700</bug_when>
    <thetext>Comment on attachment 164112
Attempt to make win and gtk bots happy

Attachment 164112 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13855415</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720692</commentid>
    <comment_count>30</comment_count>
      <attachid>164112</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-09-14 06:42:33 -0700</bug_when>
    <thetext>Comment on attachment 164112
Attempt to make win and gtk bots happy

Attachment 164112 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13861024</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721360</commentid>
    <comment_count>31</comment_count>
      <attachid>164112</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 20:50:20 -0700</bug_when>
    <thetext>Comment on attachment 164112
Attempt to make win and gtk bots happy

Attachment 164112 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13863163

New failing tests:
compositing/overflow/automatically-opt-into-composited-scrolling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721877</commentid>
    <comment_count>32</comment_count>
      <attachid>164385</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-17 06:43:32 -0700</bug_when>
    <thetext>Created attachment 164385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721898</commentid>
    <comment_count>33</comment_count>
      <attachid>164385</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-17 07:14:16 -0700</bug_when>
    <thetext>Comment on attachment 164385
Patch

Attachment 164385 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13861953</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721919</commentid>
    <comment_count>34</comment_count>
      <attachid>164385</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 07:47:30 -0700</bug_when>
    <thetext>Comment on attachment 164385
Patch

Attachment 164385 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13883062

New failing tests:
compositing/overflow/automatically-opt-into-composited-scrolling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722234</commentid>
    <comment_count>35</comment_count>
      <attachid>164450</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-17 13:46:35 -0700</bug_when>
    <thetext>Created attachment 164450
Patch

(In reply to comment #25)
&gt; (From update of attachment 163954 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163954&amp;action=review
&gt;
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        wkb.ug/91117 if the overflow scroll div is styled with
&gt;
&gt; nit: mention &apos;div&apos; seems too specific. It can get applied to any block element.
Fixed.
&gt;
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +
&gt;
&gt; I think the most important thing to describe in the changelog here is the heuristic you used.
Done.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.h:881
&gt; &gt; +    // Returns true iff z ordering would not change if this layer were to establish a stacking context.
&gt;
&gt; iff*
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722274</commentid>
    <comment_count>36</comment_count>
      <attachid>164450</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-17 14:34:47 -0700</bug_when>
    <thetext>Comment on attachment 164450
Patch

Attachment 164450 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13868566</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722391</commentid>
    <comment_count>37</comment_count>
      <attachid>164476</attachid>
    <who name="">vollick</who>
    <bug_when>2012-09-17 17:46:55 -0700</bug_when>
    <thetext>Created attachment 164476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723524</commentid>
    <comment_count>38</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-09-19 06:45:27 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; Created an attachment (id=164476) [details]
&gt; Patch

I&apos;m sorry for all the noise trying to get this patch building on all the ews bots, but I think it&apos;s sorted now.

Simon, could you please give this another look when you have a chance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728593</commentid>
    <comment_count>39</comment_count>
      <attachid>164476</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-26 08:29:19 -0700</bug_when>
    <thetext>Comment on attachment 164476
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:678
&gt; +void RenderLayer::countDescendantNonDescandantBoundariesForList(Vector&lt;RenderLayer*&gt;* layerList, const RenderLayer* toBePromoted, int&amp; numBoundaries, bool&amp; lastElementWasDescendant)

s/Descandant/Descendant/ (also elsewhere)

&gt; Source/WebCore/rendering/RenderLayer.cpp:683
&gt; +    for (size_t i = 0; i &lt; layerList-&gt;size(); ++i)

Would it make sense to early-out here if numBoundaries &gt; 2 (and call this function something else)?

&gt; Source/WebCore/rendering/RenderLayer.cpp:1658
&gt; +        &amp;&amp; canSafelyEstablishAStackingContext();

I&apos;m a bit worried that this function is either called too often, making it pretty expensive to walk the layers all the time (e.g., https://bugs.webkit.org/show_bug.cgi?id=96087 needs to call this during painting), or not often enough so that we miss some crucial style change in the subtree or do the calculation while the tree is in a bad state. I don&apos;t have anything concrete to back this up, but still I would sleep better with a push model where descendant layers notify their ancestors about things that affect the opt-in, or perhaps something that&apos;s part of the main layer tree construction algorithm.

&gt; Source/WebCore/rendering/RenderLayer.cpp:1821
&gt; +    if (compositor()-&gt;inCompositingMode() &amp;&amp; usesCompositedScrolling())

Just wondering why we need to check for inCompositingMode(). Is this a bugfix for something else?

&gt; Source/WebCore/rendering/RenderLayer.h:887
&gt; +    // These two methods are used by canSafelyEstablishAStackingContext.

Could these two be static free functions instead of methods, or did I miss something?

&gt; Source/WebCore/testing/Internals.cpp:1103
&gt; +bool Internals::usesCompositedScrolling(Node* node, ExceptionCode&amp; ec)

Instead of adding this helper you could also look at the output of layerTreeAsText() in the test and check that the necessary layers are there. That would have the added benefit of making sure the layer tree is correctly rebuilt after the style changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774579</commentid>
    <comment_count>40</comment_count>
      <attachid>175811</attachid>
    <who name="">vollick</who>
    <bug_when>2012-11-23 08:37:39 -0800</bug_when>
    <thetext>Created attachment 175811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774589</commentid>
    <comment_count>41</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-11-23 08:44:41 -0800</bug_when>
    <thetext>Sami, thanks for this great review!

In addition to addressing your comments below, this patch contains one other noteworthy (but minor) change. In RenderLayerBacking, I&apos;ve adjusted the size of the scrolling clip so that it doesn&apos;t contain the scrollbars unless they&apos;re overlay scrollbars.

(In reply to comment #39)
&gt; (From update of attachment 164476 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164476&amp;action=review
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:678
&gt; &gt; +void RenderLayer::countDescendantNonDescandantBoundariesForList(Vector&lt;RenderLayer*&gt;* layerList, const RenderLayer* toBePromoted, int&amp; numBoundaries, bool&amp; lastElementWasDescendant)
&gt;
&gt; s/Descandant/Descendant/ (also elsewhere)
Done.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:683
&gt; &gt; +    for (size_t i = 0; i &lt; layerList-&gt;size(); ++i)
&gt;
&gt; Would it make sense to early-out here if numBoundaries &gt; 2 (and call this function something else)?
I&apos;ve early-out&apos;d as you suggested, but I couldn&apos;t think of a better name, so I kept it and added a comment explaining that we can stop counting early. Could that work?
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1658
&gt; &gt; +        &amp;&amp; canSafelyEstablishAStackingContext();
&gt;
&gt; I&apos;m a bit worried that this function is either called too often, making it pretty expensive to walk the layers all the time (e.g., https://bugs.webkit.org/show_bug.cgi?id=96087 needs to call this during painting), or not often enough so that we miss some crucial style change in the subtree or do the calculation while the tree is in a bad state. I don&apos;t have anything concrete to back this up, but still I would sleep better with a push model where descendant layers notify their ancestors about things that affect the opt-in, or perhaps something that&apos;s part of the main layer tree construction algorithm.
Good points. I added some tracing to the CL to measure the cost of this check. It turned out we were recomputing the value a *lot*. Tracing showed that the performance was clearly unacceptable -- I was recomputing this value thousands of times a second. I&apos;ve added some simple caching, and on the pages I was testing, we no longer recompute the value while scrolling.

To address your point about correctness, I now dirty the value (on the appropriate layers) whenever we dirty the zorder or normal flow lists, so it should be fresh when we need it.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1821
&gt; &gt; +    if (compositor()-&gt;inCompositingMode() &amp;&amp; usesCompositedScrolling())
&gt;
&gt; Just wondering why we need to check for inCompositingMode(). Is this a bugfix for something else?
Yep, it&apos;s a bug fix. The current code assumes that if a layer uses composited scrolling, it will actually get a composited scrolling layer. It turns out that this isn&apos;t necessarily true if we force compositing mode to be off, so I&apos;ve added this extra check to be completely sure that we&apos;re compositing when we skip this repaint.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.h:887
&gt; &gt; +    // These two methods are used by canSafelyEstablishAStackingContext.
&gt;
&gt; Could these two be static free functions instead of methods, or did I miss something?
I added an explanatory comment -- the only reason that these are defined in the class is that they access private members on the render layers on which they operate. This seemed preferable to changing the visibility of things in RenderLayer.
&gt;
&gt; &gt; Source/WebCore/testing/Internals.cpp:1103
&gt; &gt; +bool Internals::usesCompositedScrolling(Node* node, ExceptionCode&amp; ec)
&gt;
&gt; Instead of adding this helper you could also look at the output of layerTreeAsText() in the test and check that the necessary layers are there. That would have the added benefit of making sure the layer tree is correctly rebuilt after the style changes.
This is another very good point. After making this change, it revealed that we weren&apos;t, in fact, rebuilding correctly after the style changes. The problem was that we needed to reevaluate compositing after layout when the tree is fully built. I&apos;ve made it so that when we dirty this value, we request a reevaluation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774614</commentid>
    <comment_count>42</comment_count>
      <attachid>175811</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-11-23 09:25:56 -0800</bug_when>
    <thetext>Comment on attachment 175811
Patch

Thanks Ian. The test is looking pretty thorough now.

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        antialiasing, so it is important that automatically opting in is only

Did you mean paint order instead of antialiasing?

&gt; Source/WebCore/rendering/RenderLayer.cpp:127
&gt; +#include &quot;TraceEvent.h&quot;

Not sure if we want to introduce trace events here since there aren&apos;t any so far, but I&apos;ll defer the decision on that to others. It definitely helps in measuring the overhead of doing this though.

&gt; Source/WebCore/rendering/RenderLayer.cpp:486
&gt; +void RenderLayer::dirtyDescendantsCanSafelyEstablishStackingContext(RenderLayer* layer)

Nit: dirtyDescendantsCanSafelyEstablishStackingContextStatus to match the existing naming.

&gt; Source/WebCore/rendering/RenderLayer.cpp:1727
&gt; +    bool automaticallyOptIn = renderer()-&gt;frame()-&gt;page()-&gt;settings()-&gt;acceleratedCompositingForOverflowScrollEnabled()

At least frame() and page() can be null here, so better check for that.

&gt; Source/WebCore/rendering/RenderLayer.cpp:1731
&gt; +    return renderer()-&gt;style()-&gt;useTouchOverflowScrolling() || automaticallyOptIn;

Nit: this could be the other way around so there&apos;s no need to consult the style when we&apos;ve already opted in.

&gt; Source/WebCore/rendering/RenderLayer.cpp:1901
&gt; +    if (compositor()-&gt;inCompositingMode() &amp;&amp; usesCompositedScrolling())

usesCompositedScrolling() is also called in a few other places to avoid repaints. Do we need this same inCompositingMode() check there too?

&gt; Source/WebCore/rendering/RenderLayer.h:934
&gt; +    // render layers they operate on.

Ah, I completely missed these were accessing private members before. Thanks for the explanation.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:740
&gt; +        FloatSize clipSize = paddingBox.size();

Perhaps this should be a separate patch to keep things simpler? Could use a test too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774654</commentid>
    <comment_count>43</comment_count>
      <attachid>175811</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-23 11:11:06 -0800</bug_when>
    <thetext>Comment on attachment 175811
Patch

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

As far as I can see, you&apos;re only calling canSafelyEstablishAStackingContext() in usesCompositedScrolling() to determine whether it&apos;s ok to do so. What I don&apos;t see is the actually affecting the computed z-order lists. Am I missing that?

There are other cases where we&apos;d like to be able to treat something like a stacking context when possible (e.g. something with overflow and composited descendants), so it would be good if there same code could be reused there. I think it would also be better if you could run this &apos;can be a stacking context&apos; logic at z-order-list building time, which would I think allow the isDescendant() logic to avoid running up to the root on failure. Then the z-order lists for the layers would just reflect that this was made a stacking context.

Without pixel or ref tests I don&apos;t see how your tests show that the &apos;can be a stacking context&apos; logic is correct.

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        antialiasing, so it is important that automatically opting in is only
&gt; 
&gt; Did you mean paint order instead of antialiasing?

I presume by antialiasing he really means font smoothing.

&gt; Source/WebCore/rendering/RenderLayer.cpp:492
&gt; +    layer-&gt;compositor()-&gt;requestReevaluateCompositingAfterLayout();

I don&apos;t like it that things outside of RLC can tell it to do compositing-related stuff; this is the first instance of it.

Can you move this logic to inside of RLC somehow?

&gt; Source/WebCore/rendering/RenderLayer.cpp:723
&gt; +static bool isDescendant(const RenderLayer* parent, const RenderLayer* child)
&gt; +{
&gt; +    for (const RenderLayer* current = child; current; current = current-&gt;parent())
&gt; +        if (current == parent)
&gt; +            return true;
&gt; +    return false;
&gt; +}

In the worst case, this runs up to the root of the tree (which can be quite deep). Calling this during a tree walk can be O(n^2) on tree depth, which is bad and we try to avoid.

&gt; Source/WebCore/rendering/RenderLayer.cpp:725
&gt; +void RenderLayer::countDescendantNonDescendantBoundariesForList(Vector&lt;RenderLayer*&gt;* layerList, const RenderLayer* toBePromoted, int&amp; numBoundaries, bool&amp; lastElementWasDescendant)

This name is very confusing.

&gt; Source/WebCore/rendering/RenderLayer.cpp:736
&gt; +void RenderLayer::countDescendantNonDescendantBoundariesInZOrderTree(const RenderLayer* currentLayer, const RenderLayer* toBePromoted, int&amp; numBoundaries, bool&amp; lastElementWasDescendant)

Ditto.

&gt; Source/WebCore/rendering/RenderLayer.cpp:785
&gt; +#if PLATFORM(CHROMIUM)
&gt; +    TRACE_EVENT0(&quot;webkit&quot;, &quot;RenderLayer::canSafelyEstablishAStackingContext&quot;);
&gt; +#endif

Why is Chromium the only platform that benefits from this?

&gt;&gt; Source/WebCore/rendering/RenderLayer.cpp:1727
&gt;&gt; +    bool automaticallyOptIn = renderer()-&gt;frame()-&gt;page()-&gt;settings()-&gt;acceleratedCompositingForOverflowScrollEnabled()
&gt; 
&gt; At least frame() and page() can be null here, so better check for that.

Rename automaticallyOptIn to alwaysUseCompositedScrolling or something.

&gt; Source/WebCore/rendering/RenderLayer.cpp:4889
&gt; +        for (RenderLayer* child = firstChild(); child; child = child-&gt;nextSibling())
&gt; +            dirtyDescendantsCanSafelyEstablishStackingContext(child);

What impact does this have on performance?

&gt; Source/WebCore/rendering/RenderLayer.cpp:4913
&gt; +        for (RenderLayer* child = firstChild(); child; child = child-&gt;nextSibling())
&gt; +            dirtyDescendantsCanSafelyEstablishStackingContext(child);

Ditto.

&gt; Source/WebCore/rendering/RenderLayer.h:713
&gt; +    void rebuildZOrderLists(Vector&lt;RenderLayer*&gt;*&amp; posZOrderList, Vector&lt;RenderLayer*&gt;*&amp; negZOrderList) const;

This name is wrong; it&apos;s not rebuilding the layer&apos;s lists, it&apos;s computing new ones.

&gt; Source/WebCore/rendering/RenderLayer.h:717
&gt; +    void rebuildNormalFlowList(Vector&lt;RenderLayer*&gt;*&amp; normalFlowList) const;

Ditto.

&gt;&gt; Source/WebCore/rendering/RenderLayer.h:934
&gt;&gt; +    // render layers they operate on.
&gt; 
&gt; Ah, I completely missed these were accessing private members before. Thanks for the explanation.

Why not make them member functions (on the toBePromoted layer?)

&gt;&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:740
&gt;&gt; +        FloatSize clipSize = paddingBox.size();
&gt; 
&gt; Perhaps this should be a separate patch to keep things simpler? Could use a test too.

Agreed, please separate this out.

&gt; Source/WebCore/rendering/RenderLayerCompositor.h:234
&gt; +    void requestReevaluateCompositingAfterLayout() { m_reevaluateCompositingAfterLayout = true; }

I don&apos;t like this name. I think it should be setShouldReevaluateCompositingAfterLayout().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775819</commentid>
    <comment_count>44</comment_count>
      <attachid>176053</attachid>
    <who name="">vollick</who>
    <bug_when>2012-11-26 13:25:51 -0800</bug_when>
    <thetext>Created attachment 176053
Patch

(In reply to comment #42)
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1727
&gt; &gt; +    bool automaticallyOptIn = renderer()-&gt;frame()-&gt;page()-&gt;settings()-&gt;acceleratedCompositingForOverflowScrollEnabled()
&gt;
&gt; At least frame() and page() can be null here, so better check for that.
I&apos;ve addded RenderLayer::acceleratedCompositingForOverflowScrollEnabled() since we need to do this check in several places. I do the required nullity checks there.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1731
&gt; &gt; +    return renderer()-&gt;style()-&gt;useTouchOverflowScrolling() || automaticallyOptIn;
&gt;
&gt; Nit: this could be the other way around so there&apos;s no need to consult the style when we&apos;ve already opted in.
Done.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1901
&gt; &gt; +    if (compositor()-&gt;inCompositingMode() &amp;&amp; usesCompositedScrolling())
&gt;
&gt; usesCompositedScrolling() is also called in a few other places to avoid repaints. Do we need this same inCompositingMode() check there too?
We do, yes. Rather than checking inCompositingMode() everywhere, I&apos;ve changed usesCompositedScrolling() to return true if and only iff the layer is actually using composited scrolling, and I&apos;ve added needsCompositedScrolling() to indicate that the layer would prefer to use composited scrolling.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayerBacking.cpp:740
&gt; &gt; +        FloatSize clipSize = paddingBox.size();
&gt;
&gt; Perhaps this should be a separate patch to keep things simpler? Could use a test too.
Done. wkb.ug/103156

(In reply to comment #43)
&gt; (From update of attachment 175811 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175811&amp;action=review
&gt;
&gt; As far as I can see, you&apos;re only calling canSafelyEstablishAStackingContext() in usesCompositedScrolling() to determine whether it&apos;s ok to do so. What I don&apos;t see is the actually affecting the computed z-order lists. Am I missing that?
I think this comment may no longer be applicable -- I now compute m_canSafelyEstablishAStackingContext right after we update our layer lists.
&gt;
&gt; There are other cases where we&apos;d like to be able to treat something like a stacking context when possible (e.g. something with overflow and composited descendants), so it would be good if there same code could be reused there. I think it would also be better if you could run this &apos;can be a stacking context&apos; logic at z-order-list building time, which would I think allow the isDescendant() logic to avoid running up to the root on failure. Then the z-order lists for the layers would just reflect that this was made a stacking context.
Done. I think that this approach is also cleaner and more understandable. Although the code is short, I&apos;ve included a lengthy comment explaining how/why it works. It&apos;s also efficient. It&apos;s linear the number of nodes in the stacking context -- that is the nodes we visit in collectLayers. We also do this work no more frequently than we call collectLayers.
&gt;
&gt; Without pixel or ref tests I don&apos;t see how your tests show that the &apos;can be a stacking context&apos; logic is correct.
I used to have an internals call that I used to ask the layer if it was really using composited scrolling. I compared this with an array of expected values I made by stepping through the loop and manually checking if it was safe to become a stacking context at that iteration. Sami suggested that rather than using the booleans, I dump the layer trees. So we now either produce no layer tree (if we didn&apos;t become a stacking context and promote the layer), or we get the resulting layer tree. This lines up with the boolean test I was doing earlier, but also had the benefit of ensuring that our trees both get generated and look the way we wanted. There are lots of permutations in this test (30) and it seemed overkill to put each one in its own test with a visual expectation.
&gt;
&gt; &gt;&gt; Source/WebCore/ChangeLog:12
&gt; &gt;&gt; +        antialiasing, so it is important that automatically opting in is only
&gt; &gt;
&gt; &gt; Did you mean paint order instead of antialiasing?
&gt;
&gt; I presume by antialiasing he really means font smoothing.
Yes, that&apos;s right. I was referring to sub-pixel aa.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:492
&gt; &gt; +    layer-&gt;compositor()-&gt;requestReevaluateCompositingAfterLayout();
&gt;
&gt; I don&apos;t like it that things outside of RLC can tell it to do compositing-related stuff; this is the first instance of it.
&gt;
&gt; Can you move this logic to inside of RLC somehow?
I couldn&apos;t see a way, but perhaps I&apos;m missing something. It&apos;s now the case that changing the z-order or normal flow lists can affect our decision to switch in or out of compositing mode, so I&apos;ve made a request to reevaluate when these lists get dirtied.
&gt;
&gt; Rename automaticallyOptIn to alwaysUseCompositedScrolling or something.
I&apos;ve gone with forceUseCompositedScrolling. Is that ok?
&gt;
&gt; &gt;&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:740
&gt; &gt;&gt; +        FloatSize clipSize = paddingBox.size();
&gt; &gt;
&gt; &gt; Perhaps this should be a separate patch to keep things simpler? Could use a test too.
&gt;
&gt; Agreed, please separate this out.
Done.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.h:234
&gt; &gt; +    void requestReevaluateCompositingAfterLayout() { m_reevaluateCompositingAfterLayout = true; }
&gt;
&gt; I don&apos;t like this name. I think it should be setShouldReevaluateCompositingAfterLayout().
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775829</commentid>
    <comment_count>45</comment_count>
      <attachid>176053</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-26 13:34:37 -0800</bug_when>
    <thetext>Comment on attachment 176053
Patch

Attachment 176053 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14980907</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775831</commentid>
    <comment_count>46</comment_count>
      <attachid>176053</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-26 13:35:36 -0800</bug_when>
    <thetext>Comment on attachment 176053
Patch

Attachment 176053 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14992776</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775832</commentid>
    <comment_count>47</comment_count>
      <attachid>176053</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-26 13:36:34 -0800</bug_when>
    <thetext>Comment on attachment 176053
Patch

Attachment 176053 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15000426</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775849</commentid>
    <comment_count>48</comment_count>
      <attachid>176053</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-26 13:49:17 -0800</bug_when>
    <thetext>Comment on attachment 176053
Patch

Attachment 176053 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14987817</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775863</commentid>
    <comment_count>49</comment_count>
      <attachid>176059</attachid>
    <who name="">vollick</who>
    <bug_when>2012-11-26 14:01:40 -0800</bug_when>
    <thetext>Created attachment 176059
Patch

Fixed the trailing &apos;\&apos;s that are causing the ews bots grief.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776060</commentid>
    <comment_count>50</comment_count>
      <attachid>176059</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-26 16:41:04 -0800</bug_when>
    <thetext>Comment on attachment 176059
Patch

Attachment 176059 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14991740

New failing tests:
compositing/overflow/overflow-scrollbar-layers.html
compositing/overflow/content-gains-scrollbars.html
compositing/overflow/automatically-opt-into-composited-scrolling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777065</commentid>
    <comment_count>51</comment_count>
      <attachid>176316</attachid>
    <who name="">vollick</who>
    <bug_when>2012-11-27 11:59:23 -0800</bug_when>
    <thetext>Created attachment 176316
Patch

Added missing mac expectation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778994</commentid>
    <comment_count>52</comment_count>
      <attachid>176731</attachid>
    <who name="">vollick</who>
    <bug_when>2012-11-29 07:20:24 -0800</bug_when>
    <thetext>Created attachment 176731
Trivial change: adding a missing line in a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779254</commentid>
    <comment_count>53</comment_count>
      <attachid>176731</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-11-29 11:44:33 -0800</bug_when>
    <thetext>Comment on attachment 176731
Trivial change: adding a missing line in a comment.

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

Thanks Ian, I think this looks great. It would be interesting to see what percentage of overflow scrolling elements this applies to. We could add some metrics for that later.

&gt; Source/WebCore/rendering/RenderLayer.cpp:1793
&gt; +    bool forceUseCompositedScrolling = acceleratedCompositingForOverflowScrollEnabled()  &amp;&amp; canSafelyEstablishAStackingContext();

Nit: extra space before &quot;&amp;&amp;&quot;.

&gt; Source/WebCore/testing/InternalSettings.idl:-72
&gt; -

Was this an intentional change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782943</commentid>
    <comment_count>54</comment_count>
      <attachid>177564</attachid>
    <who name="">vollick</who>
    <bug_when>2012-12-04 14:30:12 -0800</bug_when>
    <thetext>Created attachment 177564
Patch

Some notes about performance. I profiled the behavior of two heavy pages, with and without the flag to enable opting in. I should also mention my profiling methodology. We have scrolling benchmark that loads various pages and simulates scrolls, during which it gathers performance data. Here&apos;s what I saw:

With opting in turned on:
  www.gmail.com:
    Avg # layers = 47.4
    Amount of time spent in RenderLayerCompositor::updateCompositingLayers = 1576.1 ms (13.8%)
  www.theverge.com: (It&apos;s worth noting that this page did *not* opt into composited scrolling)
    Avg # layers = 3.0
    Amount of time spent in RenderLayerCompositor::updateCompositingLayers = 272.6 ms

With opting in turned off:
  www.gmail.com:
    Avg # layers = 2.0
    Amount of time spent in RenderLayerCompositor::updateCompositingLayers = 196.8 ms
  www.theverge.com:
    Avg # layers = 3.0
    Amount of time spent in RenderLayerCompositor::updateCompositingLayers = 243.7 ms

Interestingly, if I comment out the setShouldReevaluateCompositingAfterLayout calls in dirtyZOrderLists and dirtyNormalFlowList, I measured that we spent 1598.436ms. Also, the time spent in RenderLayer::updateCanSafelyEstablishStackingContext is only 0.83ms! Moreover, if I measure the cost of updateCompositingLayers _before_ the scroll, it&apos;s about 144ms. This implies that the cost is almost entirely due to overlap testing during scroll. I certainly want to look at that problem, but it seems clear that it was not caused by this patch, and I don&apos;t think it makes sense to squeeze in an overlap testing optimization here, either.


(In reply to comment #53)
&gt; (From update of attachment 176731 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176731&amp;action=review
&gt;
&gt; Thanks Ian, I think this looks great. It would be interesting to see what percentage of overflow scrolling elements this applies to. We could add some metrics for that later.
For sure, we&apos;re working on that already ;)
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1793
&gt; &gt; +    bool forceUseCompositedScrolling = acceleratedCompositingForOverflowScrollEnabled()  &amp;&amp; canSafelyEstablishAStackingContext();
&gt;
&gt; Nit: extra space before &quot;&amp;&amp;&quot;.
Done.
&gt;
&gt; &gt; Source/WebCore/testing/InternalSettings.idl:-72
&gt; &gt; -
&gt;
&gt; Was this an intentional change?
Nope, removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783000</commentid>
    <comment_count>55</comment_count>
      <attachid>177564</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-04 15:06:29 -0800</bug_when>
    <thetext>Comment on attachment 177564
Patch

Attachment 177564 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15154104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783017</commentid>
    <comment_count>56</comment_count>
      <attachid>177564</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 15:17:46 -0800</bug_when>
    <thetext>Comment on attachment 177564
Patch

Attachment 177564 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15119965</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783021</commentid>
    <comment_count>57</comment_count>
      <attachid>177564</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-04 15:19:57 -0800</bug_when>
    <thetext>Comment on attachment 177564
Patch

Attachment 177564 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15133575</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783028</commentid>
    <comment_count>58</comment_count>
      <attachid>177564</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-04 15:23:14 -0800</bug_when>
    <thetext>Comment on attachment 177564
Patch

Attachment 177564 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15132622</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783053</commentid>
    <comment_count>59</comment_count>
      <attachid>177564</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-04 15:52:48 -0800</bug_when>
    <thetext>Comment on attachment 177564
Patch

Attachment 177564 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15121933</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783126</commentid>
    <comment_count>60</comment_count>
      <attachid>177564</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-12-04 17:04:53 -0800</bug_when>
    <thetext>Comment on attachment 177564
Patch

Attachment 177564 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15154135</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783134</commentid>
    <comment_count>61</comment_count>
      <attachid>177564</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-04 17:10:50 -0800</bug_when>
    <thetext>Comment on attachment 177564
Patch

Attachment 177564 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15144258</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783781</commentid>
    <comment_count>62</comment_count>
      <attachid>177758</attachid>
    <who name="">vollick</who>
    <bug_when>2012-12-05 08:31:27 -0800</bug_when>
    <thetext>Created attachment 177758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790023</commentid>
    <comment_count>63</comment_count>
      <attachid>177758</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-12-12 16:14:09 -0800</bug_when>
    <thetext>Comment on attachment 177758
Patch

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

I like this change a lot and this feels really close to me.  Thanks for the performance numbers too.  There&apos;s definitely more work to be done, but it doesn&apos;t seem like it&apos;s the fault of this patch.

The only thing that makes me a little wary is that the test is pretty opaque.  It&apos;s not clear to me reviewing this patch what the expected output should be, or why it&apos;s different on different platforms.

If the text diff changed, it wouldn&apos;t be clear to me at all from the output what was broken.  Maybe there&apos;s some better way to do it.  More comments about what the tree state is? Parse the output and check if the right layers got promoted and just print PASS/FAIL?

&gt; Source/WebCore/rendering/RenderLayer.cpp:481
&gt; +// If we are a stacking context, then this function will generate a value for

This is an amazing comment.  Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790131</commentid>
    <comment_count>64</comment_count>
      <attachid>179166</attachid>
    <who name="">vollick</who>
    <bug_when>2012-12-12 17:50:13 -0800</bug_when>
    <thetext>Created attachment 179166
Patch

Here is some performance data I gathered on the latest patch. My methodology was
to do a trace while loading each of the pages (I stopped the verge once the page
appeared; I didn&apos;t wait for it to pull the ads). I measured what I thought could
be pain points affected by my patch.

With opting in enabled:
    gmail load:
      RenderLayerCompositor::updateCompositingLayers 180.446 ms
      RenderLayer::updateOutOfFlowPositioned 2.279 ms
      RenderLayer::updateDescendantDependentFlags 36.762 ms
      RenderLayer::updateNeedsCompositedScrolling 1.954 ms
      RenderLayerBacking::positionOverflowControlsLayers 0.079 ms
      RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus 8.064 ms
      RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant 0.109 ms

   the verge:
      RenderLayerCompositor::updateCompositingLayers 142.694 ms
      RenderLayer::updateOutOfFlowPositioned 3.314 ms
      RenderLayer::updateDescendantDependentFlags 42.278 ms
      RenderLayer::updateNeedsCompositedScrolling 1.979 ms
      RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus 0.397 ms
      RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant 0.424 ms

With opting in disabled:
    gmail load:
      RenderLayerCompositor::updateCompositingLayers 57.273 ms
      RenderLayer::updateOutOfFlowPositioned 2.408 ms
      RenderLayer::updateDescendantDependentFlags 64.563 ms
      RenderLayer::updateNeedsCompositedScrolling 1.402 ms
      RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus 8.091 ms
      RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant 0.097 ms

   the verge:
      RenderLayerCompositor::updateCompositingLayers 99.741 ms
      RenderLayer::updateOutOfFlowPositioned 2.87 ms
      RenderLayer::updateDescendantDependentFlags 23.787 ms
      RenderLayer::updateNeedsCompositedScrolling 1.473 ms
      RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus 0.856 ms
      RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant 0.47 ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790134</commentid>
    <comment_count>65</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-12-12 17:52:08 -0800</bug_when>
    <thetext>My apologies for the spam, but I should also mention that with this latest patch I&apos;ve added a second requirement for opting into composited scrolling: we cannot have an out-of-flow positioned descendant whose containing block is not a descendant of ours (because we will clip it after we switch to composited scrolling).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790151</commentid>
    <comment_count>66</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-12-12 18:05:56 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=179166&amp;action=review

&gt; LayoutTests/compositing/overflow/automatically-opt-into-composited-scrolling.html:103
&gt; +      var expected_results = [

Oh! This makes way more sense now.  The auto-promoted layer is the only composited layer in the tree.  So if you get a tree, then promotion succeeded.

Sorry to be picky, but can you leave more comments in the test about how you came to these expected results? The quadruple nested for loops using single letter variables is probably efficient to write, but is still hard to decipher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790217</commentid>
    <comment_count>67</comment_count>
      <attachid>179183</attachid>
    <who name="">vollick</who>
    <bug_when>2012-12-12 19:57:25 -0800</bug_when>
    <thetext>Created attachment 179183
Patch

(In reply to comment #66)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179166&amp;action=review
&gt;
&gt; Sorry to be picky, but can you leave more comments in the test about how you came to these expected results? The quadruple nested for loops using single letter variables is probably efficient to write, but is still hard to decipher.

That&apos;s a very good point. Rather than using a hard coded table of expected results, the test now dynamically computes the expected value. I&apos;ve added lots of comments in this passage of code to explain how we arrive at the final value.

Also in this patch is a small bug fix: I&apos;ve added a missing a call to updateNeedsCompositedScrolling in setAncestorChainHasOutOfFlowPositionedDescendant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790278</commentid>
    <comment_count>68</comment_count>
      <attachid>179183</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-12-12 21:33:53 -0800</bug_when>
    <thetext>Comment on attachment 179183
Patch

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

The test looks a million times better than two patches ago, thanks!

&gt; Source/WebCore/rendering/RenderLayer.cpp:674
&gt; +void RenderLayer::updateLayerPositionsAfterOverflowScroll(bool newlyPromoted)

This is a bit of a nit, but this function feels a little bit overloaded.  Unless I&apos;m misunderstanding, it&apos;s kind of doing both updateLayerPositionsAfterScroll and positionOverflowControlsAfterPromotionToCompositedScrolling.  It might be more clear to separate the two.

&gt; Source/WebCore/rendering/RenderLayer.h:758
&gt; +    void updateIsNormalFlowOnly();

Unused?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790802</commentid>
    <comment_count>69</comment_count>
      <attachid>179310</attachid>
    <who name="">vollick</who>
    <bug_when>2012-12-13 11:58:21 -0800</bug_when>
    <thetext>Created attachment 179310
Patch

(In reply to comment #68)
&gt; (From update of attachment 179183 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179183&amp;action=review
&gt;
&gt; The test looks a million times better than two patches ago, thanks!
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:674
&gt; &gt; +void RenderLayer::updateLayerPositionsAfterOverflowScroll(bool newlyPromoted)
&gt;
&gt; This is a bit of a nit, but this function feels a little bit overloaded.  Unless I&apos;m misunderstanding, it&apos;s kind of doing both updateLayerPositionsAfterScroll and positionOverflowControlsAfterPromotionToCompositedScrolling.  It might be more clear to separate the two.
Good call -- this looks much better.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderLayer.h:758
&gt; &gt; +    void updateIsNormalFlowOnly();
&gt;
&gt; Unused?

Yep, deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790828</commentid>
    <comment_count>70</comment_count>
      <attachid>179310</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-12-13 12:46:42 -0800</bug_when>
    <thetext>Comment on attachment 179310
Patch

R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790867</commentid>
    <comment_count>71</comment_count>
      <attachid>179310</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 13:38:27 -0800</bug_when>
    <thetext>Comment on attachment 179310
Patch

Clearing flags on attachment: 179310

Committed r137646: &lt;http://trac.webkit.org/changeset/137646&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790868</commentid>
    <comment_count>72</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 13:38:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790929</commentid>
    <comment_count>73</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-12-13 14:25:00 -0800</bug_when>
    <thetext>I&apos;m seeing some rendering crashes in layout tests with this change:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fullscreen%2Ffull-screen-fixed-pos-parent.html%2Cfullscreen%2Ffull-screen-iframe-without-allow-attribute-allowed-from-parent.html

Can you please take a look? There are also some plain-old failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791095</commentid>
    <comment_count>74</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-12-13 16:32:45 -0800</bug_when>
    <thetext>Reverted r137646 for reason:

Breaks some overflow layout tests

Committed r137682: &lt;http://trac.webkit.org/changeset/137682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791098</commentid>
    <comment_count>75</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-12-13 16:33:55 -0800</bug_when>
    <thetext>See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;tests=compositing%2Foverflow%2Fscrollbars-with-clipped-owner.html, it looks like scrollbars are being clipped when they shouldn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791733</commentid>
    <comment_count>76</comment_count>
      <attachid>179507</attachid>
    <who name="">vollick</who>
    <bug_when>2012-12-14 11:38:18 -0800</bug_when>
    <thetext>Created attachment 179507
Run against new virtual test suite</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791786</commentid>
    <comment_count>77</comment_count>
      <attachid>179507</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-14 12:56:22 -0800</bug_when>
    <thetext>Comment on attachment 179507
Run against new virtual test suite

Attachment 179507 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15318763

New failing tests:
platform/chromium/virtual/gpu/compositedscrolling/overflow/scrollbars-with-clipped-owner.html
platform/chromium/virtual/gpu/compositedscrolling/overflow/nested-scrolling.html
platform/chromium/virtual/gpu/compositedscrolling/scrollbars/scrollbars-on-positioned-content.html
platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-auto-with-touch-toggle.html
platform/chromium/virtual/gpu/compositedscrolling/scrollbars/overflow-scrollbar-combinations.html
platform/chromium/virtual/gpu/compositedscrolling/scrollbars/custom-scrollbar-with-incomplete-style.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792218</commentid>
    <comment_count>78</comment_count>
      <attachid>179623</attachid>
    <who name="">vollick</who>
    <bug_when>2012-12-15 15:09:53 -0800</bug_when>
    <thetext>Created attachment 179623
Patch

Things that have changed in this patch:
 - Added a test expectation (failure is due to wkb.ug/103156).
 - Moved the spot in RLC where we position the newly created overflow scroll controls (its in rebuildCompositingLayerTree now)
 - Renamed this function to positionNewlyCreatedOverflowControls() and removed an early out for when we&apos;re not doing composited scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792222</commentid>
    <comment_count>79</comment_count>
      <attachid>179623</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-12-15 15:14:43 -0800</bug_when>
    <thetext>Comment on attachment 179623
Patch

R=me.  Thanks for following up on the test failures.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792260</commentid>
    <comment_count>80</comment_count>
      <attachid>179623</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-15 17:20:57 -0800</bug_when>
    <thetext>Comment on attachment 179623
Patch

Attachment 179623 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15363241

New failing tests:
platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-auto-with-touch-toggle.html
platform/chromium/virtual/gpu/compositedscrolling/scrollbars/overflow-scrollbar-combinations.html
platform/chromium/virtual/gpu/compositedscrolling/overflow/nested-scrolling.html
platform/chromium/virtual/gpu/compositedscrolling/scrollbars/scrollbars-on-positioned-content.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792265</commentid>
    <comment_count>81</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-12-15 17:51:03 -0800</bug_when>
    <thetext>(In reply to comment #80)
&gt; (From update of attachment 179623 [details])
&gt; Attachment 179623 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/15363241
&gt; 
&gt; New failing tests:
&gt; platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-auto-with-touch-toggle.html
&gt; platform/chromium/virtual/gpu/compositedscrolling/scrollbars/overflow-scrollbar-combinations.html
&gt; platform/chromium/virtual/gpu/compositedscrolling/overflow/nested-scrolling.html
&gt; platform/chromium/virtual/gpu/compositedscrolling/scrollbars/scrollbars-on-positioned-content.html

I&apos;ve rerun these tests locally and confirmed that they do pass, they just need to be rebaselined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792267</commentid>
    <comment_count>82</comment_count>
      <attachid>179623</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-15 18:08:26 -0800</bug_when>
    <thetext>Comment on attachment 179623
Patch

Attachment 179623 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15378129

New failing tests:
platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-auto-with-touch-toggle.html
platform/chromium/virtual/gpu/compositedscrolling/scrollbars/overflow-scrollbar-combinations.html
platform/chromium/virtual/gpu/compositedscrolling/overflow/nested-scrolling.html
platform/chromium/virtual/gpu/compositedscrolling/scrollbars/scrollbars-on-positioned-content.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792268</commentid>
    <comment_count>83</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-12-15 18:09:26 -0800</bug_when>
    <thetext>(In reply to comment #81)
&gt; (In reply to comment #80)
&gt; &gt; (From update of attachment 179623 [details] [details])
&gt; &gt; Attachment 179623 [details] [details] did not pass chromium-ews (chromium-xvfb):
&gt; &gt; Output: http://queues.webkit.org/results/15363241
&gt; &gt; 
&gt; &gt; New failing tests:
&gt; &gt; platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-auto-with-touch-toggle.html
&gt; &gt; platform/chromium/virtual/gpu/compositedscrolling/scrollbars/overflow-scrollbar-combinations.html
&gt; &gt; platform/chromium/virtual/gpu/compositedscrolling/overflow/nested-scrolling.html
&gt; &gt; platform/chromium/virtual/gpu/compositedscrolling/scrollbars/scrollbars-on-positioned-content.html
&gt; 
&gt; I&apos;ve rerun these tests locally and confirmed that they do pass, they just need to be rebaselined.

Please either rebaseline then in this patch or mark them appropriate in TestExpectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792279</commentid>
    <comment_count>84</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-12-15 18:59:40 -0800</bug_when>
    <thetext>Commited with - http://trac.webkit.org/changeset/137828</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792492</commentid>
    <comment_count>85</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-16 23:17:52 -0800</bug_when>
    <thetext>The new test appears to be failing on WK2 EFL, I&apos;ll skip it for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792493</commentid>
    <comment_count>86</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-16 23:18:17 -0800</bug_when>
    <thetext>Forgot to provide the link, sorry:
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r137871%20(7193)/compositing/overflow/automatically-opt-into-composited-scrolling-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792789</commentid>
    <comment_count>87</comment_count>
      <attachid>179310</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-12-17 09:34:15 -0800</bug_when>
    <thetext>Comment on attachment 179310
Patch

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

I am late here.

A couple of nits below.

&gt; Source/WebCore/rendering/RenderLayer.cpp:485
&gt; +// If we are a stacking context, then this function will determine if our
&gt; +// descendants for a contiguous block in stacking order. This is required in

I feel like there is missing verb here: block *are* in stacking order?

&gt; Source/WebCore/rendering/RenderLayer.cpp:488
&gt; +// order of layers on the page. That can only happen if a non-descendant appear

appears?

&gt; Source/WebCore/rendering/RenderLayer.cpp:499
&gt; +// I&apos;ve labeled our normal flow descendants A, B, C, and D, our stacking

We usually do not refer to &quot;I&quot; in comments. Whoever look at it, would not know who &quot;I&quot; is:)

same with &quot;our&quot;, us, we...

&gt; Source/WebCore/rendering/RenderLayer.cpp:570
&gt; +    // Create a reverse lookup.
&gt; +    HashMap&lt;const RenderLayer*, int&gt; lookup;

name it reverseLookup and remove the comment.

&gt; Source/WebCore/rendering/RenderLayer.cpp:891
&gt; +    if (isStackingContext() || !stackingContext())

I understood this if, but the two cases within it look odd to follow at first. Maybe the methods are mis named?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461500</commentid>
    <comment_count>88</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-20 13:19:10 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/137828/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160000</attachid>
            <date>2012-08-22 13:28:46 -0700</date>
            <delta_ts>2012-09-07 08:51:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20120822162843.patch</filename>
            <type>text/plain</type>
            <size>6292</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2Mjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAppbmRleCA2MzUyNTVlNzc1ZTRiYzQwZGFkNzlkOGQzMWUzMzAxZDI3NzU2M2M4
Li45MGYyMTIxYzVlODdkYmYzZDE5YzE4YTJiYzU2NDNlOTVjNTEwMDA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTY1MSw2ICs2NTEsOTkgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlUGFnaW5hdGlvbigpCiAgICAgfQogfQogCitib29sIGlzWkluZGV4
UmVzcGVjdGVkKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKK3sKKyAgICBpZiAoIWxheWVyLT5y
ZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChsYXllci0+aXNOb3Jt
YWxGbG93T25seSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWxheWVyLT5o
YXNWaXNpYmxlQ29udGVudCgpICYmICFsYXllci0+aGFzVmlzaWJsZURlc2NlbmRhbnQoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGxheWVyLT5yZW5kZXJlcigpLT5pc1Jl
bFBvc2l0aW9uZWQoKSB8fAorICAgICAgICAgICBsYXllci0+cmVuZGVyZXIoKS0+aXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkgfHwKKyAgICAgICAgICAgbGF5ZXItPnJlbmRlcmVyKCktPmlzRmxleGli
bGVCb3goKTsKK30KKworY29uc3QgUmVuZGVyTGF5ZXIqIGZpcnN0QXBwZWFyaW5nRGVzY2VuZGFu
dChjb25zdCBSZW5kZXJMYXllciogY3VycmVudExheWVyLCBjb25zdCBSZW5kZXJMYXllciogZmly
c3RMYXllciwgY29uc3QgUmVuZGVyTGF5ZXIqIHNlY29uZExheWVyKQoreworICAgIGlmIChjdXJy
ZW50TGF5ZXIgPT0gZmlyc3RMYXllciB8fCBjdXJyZW50TGF5ZXIgPT0gc2Vjb25kTGF5ZXIpCisg
ICAgICAgIHJldHVybiBjdXJyZW50TGF5ZXI7CisKKyAgICBmb3IgKGNvbnN0IFJlbmRlckxheWVy
KiBjaGlsZCA9IGN1cnJlbnRMYXllci0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBjb25zdCBSZW5kZXJMYXllciogZm91bmQgPSBm
aXJzdEFwcGVhcmluZ0Rlc2NlbmRhbnQoY2hpbGQsIGZpcnN0TGF5ZXIsIHNlY29uZExheWVyKTsK
KyAgICAgICAgaWYgKGZvdW5kKQorICAgICAgICAgICAgcmV0dXJuIGZvdW5kOworICAgIH0KKwor
ICAgIHJldHVybiAwOworfQorCitib29sIGNvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyhjb25z
dCBSZW5kZXJMYXllciogY3VycmVudExheWVyLCBjb25zdCBSZW5kZXJMYXllciogbGF5ZXJUb0Jl
UHJvbW90ZWQsIGludCB6TWluLCBpbnQgek1heCkKK3sKKyAgICBpZiAoaXNaSW5kZXhSZXNwZWN0
ZWQoY3VycmVudExheWVyKSA9PSBmYWxzZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKChjdXJyZW50TGF5ZXItPnpJbmRleCgpID4gek1pbiB8fCBmaXJzdEFwcGVhcmluZ0Rlc2Nl
bmRhbnQobGF5ZXJUb0JlUHJvbW90ZWQtPnN0YWNraW5nQ29udGV4dCgpLCBsYXllclRvQmVQcm9t
b3RlZCwgY3VycmVudExheWVyKSA9PSBsYXllclRvQmVQcm9tb3RlZCkgJiYKKyAgICAgICAgKGN1
cnJlbnRMYXllci0+ekluZGV4KCkgPCB6TWF4IHx8IGZpcnN0QXBwZWFyaW5nRGVzY2VuZGFudChs
YXllclRvQmVQcm9tb3RlZC0+c3RhY2tpbmdDb250ZXh0KCksIGxheWVyVG9CZVByb21vdGVkLCBj
dXJyZW50TGF5ZXIpID09IGN1cnJlbnRMYXllcikpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIG5vbkRlc2NlbmRhbnRJblRoaXNTdGFja2luZ0Nv
bnRleHRDb3VsZEZhbGxCZXR3ZWVuRGVzY2VuZGFudHMoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJl
bnRMYXllciwgY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyVG9CZVByb21vdGVkLCBpbnQgek1pbiwg
aW50IHpNYXgpCit7CisgICAgaWYgKCFjdXJyZW50TGF5ZXIpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGNoaWxkID0gY3VycmVudExheWVyLT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAg
ICAgIGlmIChjaGlsZCA9PSBsYXllclRvQmVQcm9tb3RlZCkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIGlmIChjb3VsZEZhbGxCZXR3ZWVuRGVzY2VuZGFudHMoY2hpbGQsIGxheWVy
VG9CZVByb21vdGVkLCB6TWluLCB6TWF4KSB8fAorICAgICAgICAgICAgbm9uRGVzY2VuZGFudElu
VGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyhjaGlsZCwgbGF5
ZXJUb0JlUHJvbW90ZWQsIHpNaW4sIHpNYXgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIGZpbmRNaW5BbmRNYXhaSW5kaWNl
cyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGludCYgek1pbiwgaW50JiB6TWF4KQoreworICAg
IGlmIChpc1pJbmRleFJlc3BlY3RlZChsYXllcikpIHsKKyAgICAgICAgek1pbiA9IG1pbih6TWlu
LCBsYXllci0+ekluZGV4KCkpOworICAgICAgICB6TWF4ID0gbWF4KHpNYXgsIGxheWVyLT56SW5k
ZXgoKSk7CisgICAgfQorCisgICAgaWYgKCFsYXllci0+aGFzVmlzaWJsZURlc2NlbmRhbnQoKSB8
fCBsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9y
IChSZW5kZXJMYXllciogY2hpbGQgPSBsYXllci0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgZmluZE1pbkFuZE1heFpJbmRpY2VzKGNo
aWxkLCB6TWluLCB6TWF4KTsKK30KKworYm9vbCBSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Cit7CisgICAgaWYgKG1fY2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dERpcnR5KSB7CisgICAgICAgIGlmIChpc1N0YWNraW5nQ29udGV4
dCgpKQorICAgICAgICAgICAgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0ID0g
dHJ1ZTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgek1pbiA9IHN0ZDo6bnVtZXJp
Y19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgICAgICAgICBpbnQgek1heCA9IHN0ZDo6bnVtZXJp
Y19saW1pdHM8aW50Pjo6bWluKCk7CisgICAgICAgICAgICBmaW5kTWluQW5kTWF4WkluZGljZXMo
dGhpcywgek1pbiwgek1heCk7CisgICAgICAgICAgICBpZiAoek1pbiA+PSB6TWF4KQorICAgICAg
ICAgICAgICAgIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCA9IHRydWU7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3Rh
Y2tpbmdDb250ZXh0ID0gbm9uRGVzY2VuZGFudEluVGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFs
bEJldHdlZW5EZXNjZW5kYW50cyhzdGFja2luZ0NvbnRleHQoKSwgdGhpcywgek1pbiwgek1heCk7
CisgICAgICAgIH0KKyAgICAgICAgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0
RGlydHkgPSBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9jYW5TYWZlbHlFc3RhYmxpc2hB
U3RhY2tpbmdDb250ZXh0OworfQorCiB2b2lkIFJlbmRlckxheWVyOjpzZXRIYXNWaXNpYmxlQ29u
dGVudCgpCiB7IAogICAgIGlmIChtX2hhc1Zpc2libGVDb250ZW50ICYmICFtX3Zpc2libGVDb250
ZW50U3RhdHVzRGlydHkpIHsKQEAgLTE1NTgsMTEgKzE2NTEsMTUgQEAgYm9vbCBSZW5kZXJMYXll
cjo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdAogICAgIGlmICghc2Nyb2xsc092ZXJm
bG93KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIHJldHVybgogI2lmIEVOQUJMRShP
VkVSRkxPV19TQ1JPTExJTkcpCi0gICAgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRv
dWNoT3ZlcmZsb3dTY3JvbGxpbmcoKTsKKyAgICAgICAgcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNl
VG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIHx8CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgLy8gRklYTUUgbmVlZCB0byB0dXJuIHRoaXMgb24gdmlhIGEgcHJlZmVyZW5jZS4uLgor
ICAgICAgICBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkKICNlbmRpZgorICAg
IDsKKwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTQ2MTYsNiArNDcxMyw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMoKQogICAgIGlmIChtX25lZ1pP
cmRlckxpc3QpCiAgICAgICAgIG1fbmVnWk9yZGVyTGlzdC0+Y2xlYXIoKTsKICAgICBtX3pPcmRl
ckxpc3RzRGlydHkgPSB0cnVlOworICAgIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29u
dGV4dERpcnR5ID0gdHJ1ZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKQEAgLTQ4NDUsNiAr
NDk0Myw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVN0YWNraW5nQ29udGV4dHNBZnRlclN0
eWxlQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTCiAgICAgaWYgKCFvbGRTdHlsZSkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0
RGlydHkgPSB0cnVlOworCiAgICAgYm9vbCB3YXNTdGFja2luZ0NvbnRleHQgPSBpc1N0YWNraW5n
Q29udGV4dChvbGRTdHlsZSk7CiAgICAgYm9vbCBpc1N0YWNraW5nQ29udGV4dCA9IHRoaXMtPmlz
U3RhY2tpbmdDb250ZXh0KCk7CiAgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0ICE9IHdhc1N0YWNr
aW5nQ29udGV4dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBh
ZjhkZmJjYjljMzhjNTkwZjg1MjFlZDJiYTE2N2Q0Yjk2NzY3OGY0Li40YWE3MjIxNThjOGUwY2Jh
NTdhNDQ1YzJhNGQxYjFkNWI2OTZlY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaApAQCAtODcwLDYgKzg3MCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRJbmRpcmVj
dENvbXBvc2l0aW5nUmVhc29uKEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gcmVhc29uKSB7IG1f
aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA9IHJlYXNvbjsgfQogICAgIEluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb24gaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+KG1faW5kaXJlY3RDb21wb3NpdGlu
Z1JlYXNvbik7IH0KICAgICBib29sIG11c3RDb21wb3NpdGVGb3JJbmRpcmVjdFJlYXNvbnMoKSBj
b25zdCB7IHJldHVybiBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247IH0KKworICAgIGJvb2wg
Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0OwogI2VuZGlmCiAKICAg
ICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpAQCAtOTA1LDYgKzkwNywxMCBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCA6IDE7
CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5IDogMTsKIAor
ICAgIC8vIFRydWUgaWZmIHogb3JkZXJpbmcgd291bGQgbm90IGNoYW5nZSBpZiB0aGlzIGxheWVy
IHdlcmUgdG8gZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dC4KKyAgICBtdXRhYmxlIGJvb2wg
bV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0IDogMTsKKyAgICBtdXRhYmxlIGJv
b2wgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0RGlydHkgOiAxOworCiAgICAg
Y29uc3QgYm9vbCBtX2lzUm9vdExheWVyIDogMTsKIAogICAgIGJvb2wgbV91c2VkVHJhbnNwYXJl
bmN5IDogMTsgLy8gVHJhY2tzIHdoZXRoZXIgd2UgbmVlZCB0byBjbG9zZSBhIHRyYW5zcGFyZW50
IGxheWVyLCBpLmUuLCB3aGV0aGVyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162782</attachid>
            <date>2012-09-07 08:51:27 -0700</date>
            <delta_ts>2012-09-11 19:57:06 -0700</delta_ts>
            <desc>Work in progress (still working on layout tests). Not ready for review</desc>
            <filename>bug-94743-20120907115106.patch</filename>
            <type>text/plain</type>
            <size>9290</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhiMzQ2NmQwMjYwMzlm
NmE3NmExNDcxMWEyZDc3YjdlZjFkZWNhZi4uNWI4YmY3NWQ4MTUwYmJkYzk4NmM4NTA4ZWY0MWVj
MDBkNGI2YTA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTA3ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUg
Y2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rp
b24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU0tleXdvcmRDb21wbGV0
aW9ucy5qczoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aXNaSW5kZXhSZXNwZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjplZmZlY3RpdmVaSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RBcHBl
YXJpbmdEZXNjZW5kYW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvdWxkRmFsbEJldHdlZW5EZXNj
ZW5kYW50cyk6CisgICAgICAgIChXZWJDb3JlOjpub25EZXNjZW5kYW50SW5UaGlzU3RhY2tpbmdD
b250ZXh0Q291bGRGYWxsQmV0d2VlbkRlc2NlbmRhbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZp
bmRNaW5BbmRNYXhaSW5kaWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2Fu
U2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6dXNlc0NvbXBvc2l0
ZWRTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaWRsOgorCiAyMDEyLTA5LTA3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI3NzgwIGFuZCBy
MTI3ODU5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNjAw
YmU3YjA3YTcyYTBhODhlZDkzMjk4OGEzZDYxNWM5ZGI4Y2QzNS4uN2ZhN2NjZDRiMDk0NWRkMTRj
MGY4NDk5MzFhMzIxOWEzN2I4ZjA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCkBAIC02NjYsNiArNjY2LDEwOCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQ
YWdpbmF0aW9uKCkKICAgICB9CiB9CiAKK2Jvb2wgaXNaSW5kZXhSZXNwZWN0ZWQoY29uc3QgUmVu
ZGVyTGF5ZXIqIGxheWVyKQoreworICAgIHJldHVybiBsYXllci0+aXNTdGFja2luZ0NvbnRleHQo
KTsKK30KKworLy8gU2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIvdmlzdXJlbi5odG1sI3Bv
c2l0aW9uaW5nLXNjaGVtZS4KK2RvdWJsZSBlZmZlY3RpdmVaSW5kZXgoY29uc3QgUmVuZGVyTGF5
ZXIqIGxheWVyKQoreworICAgIGlmICghbGF5ZXIpCisgICAgICAgIHJldHVybiAwOworCisgICAg
aWYgKGlzWkluZGV4UmVzcGVjdGVkKGxheWVyKSkKKyAgICAgICAgcmV0dXJuIGxheWVyLT56SW5k
ZXgoKTsKKworICAgIGlmICghbGF5ZXItPnJlbmRlcmVyKCktPmlzSW5saW5lKCkKKyAgICAgICAg
JiYgbGF5ZXItPmlzTm9ybWFsRmxvd09ubHkoKQorICAgICAgICAmJiAhbGF5ZXItPnJlbmRlcmVy
KCktPmlzUG9zaXRpb25lZCgpKQorICAgICAgICByZXR1cm4gLTAuNzU7CisKKyAgICBpZiAoIWxh
eWVyLT5yZW5kZXJlcigpLT5pc1Bvc2l0aW9uZWQoKQorICAgICAgICAmJiBsYXllci0+cmVuZGVy
ZXIoKS0+aXNGbG9hdGluZygpKQorICAgICAgICByZXR1cm4gLTAuNTsKKworICAgIGlmIChsYXll
ci0+cmVuZGVyZXIoKS0+aXNJbmxpbmUoKQorICAgICAgICAmJiBsYXllci0+aXNOb3JtYWxGbG93
T25seSgpCisgICAgICAgICYmICFsYXllci0+cmVuZGVyZXIoKS0+aXNQb3NpdGlvbmVkKCkpCisg
ICAgICAgIHJldHVybiAtMC4yNTsKKworICAgIHJldHVybiAwOworfQorCitjb25zdCBSZW5kZXJM
YXllciogZmlyc3RBcHBlYXJpbmdEZXNjZW5kYW50KGNvbnN0IFJlbmRlckxheWVyKiBjdXJyZW50
TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiBmaXJzdExheWVyLCBjb25zdCBSZW5kZXJMYXllciog
c2Vjb25kTGF5ZXIpCit7CisgICAgaWYgKGN1cnJlbnRMYXllciA9PSBmaXJzdExheWVyIHx8IGN1
cnJlbnRMYXllciA9PSBzZWNvbmRMYXllcikKKyAgICAgICAgcmV0dXJuIGN1cnJlbnRMYXllcjsK
KworICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGNoaWxkID0gY3VycmVudExheWVyLT5maXJz
dENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAg
IGNvbnN0IFJlbmRlckxheWVyKiBmb3VuZCA9IGZpcnN0QXBwZWFyaW5nRGVzY2VuZGFudChjaGls
ZCwgZmlyc3RMYXllciwgc2Vjb25kTGF5ZXIpOworICAgICAgICBpZiAoZm91bmQpCisgICAgICAg
ICAgICByZXR1cm4gZm91bmQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgY291
bGRGYWxsQmV0d2VlbkRlc2NlbmRhbnRzKGNvbnN0IFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIs
IGNvbnN0IFJlbmRlckxheWVyKiBsYXllclRvQmVQcm9tb3RlZCwgZG91YmxlIHpNaW4sIGRvdWJs
ZSB6TWF4KQoreworICAgIGlmICghaXNaSW5kZXhSZXNwZWN0ZWQoY3VycmVudExheWVyKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZG91YmxlIGN1cnJlbnRaSW5kZXggPSBlZmZlY3Rp
dmVaSW5kZXgoY3VycmVudExheWVyKTsKKworICAgIGlmICgoY3VycmVudFpJbmRleCA+IHpNaW4g
fHwgKGN1cnJlbnRaSW5kZXggPT0gek1pbiAmJiBmaXJzdEFwcGVhcmluZ0Rlc2NlbmRhbnQobGF5
ZXJUb0JlUHJvbW90ZWQtPnN0YWNraW5nQ29udGV4dCgpLCBsYXllclRvQmVQcm9tb3RlZCwgY3Vy
cmVudExheWVyKSA9PSBsYXllclRvQmVQcm9tb3RlZCkpCisgICAgICAgICYmIChjdXJyZW50Wklu
ZGV4IDwgek1heCB8fCAoY3VycmVudFpJbmRleCA9PSB6TWF4ICYmIGZpcnN0QXBwZWFyaW5nRGVz
Y2VuZGFudChsYXllclRvQmVQcm9tb3RlZC0+c3RhY2tpbmdDb250ZXh0KCksIGxheWVyVG9CZVBy
b21vdGVkLCBjdXJyZW50TGF5ZXIpID09IGN1cnJlbnRMYXllcikpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBub25EZXNjZW5kYW50SW5UaGlz
U3RhY2tpbmdDb250ZXh0Q291bGRGYWxsQmV0d2VlbkRlc2NlbmRhbnRzKGNvbnN0IFJlbmRlckxh
eWVyKiBjdXJyZW50TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiBsYXllclRvQmVQcm9tb3RlZCwg
ZG91YmxlIHpNaW4sIGRvdWJsZSB6TWF4KQoreworICAgIGlmICghY3VycmVudExheWVyKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3IgKGNvbnN0IFJlbmRlckxheWVyKiBjaGlsZCA9
IGN1cnJlbnRMYXllci0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkgeworICAgICAgICBpZiAoY2hpbGQgPT0gbGF5ZXJUb0JlUHJvbW90ZWQpCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoY291bGRGYWxsQmV0d2VlbkRlc2NlbmRh
bnRzKGNoaWxkLCBsYXllclRvQmVQcm9tb3RlZCwgek1pbiwgek1heCkgfHwgKCFjaGlsZC0+aXNT
dGFja2luZ0NvbnRleHQoKSAmJiBub25EZXNjZW5kYW50SW5UaGlzU3RhY2tpbmdDb250ZXh0Q291
bGRGYWxsQmV0d2VlbkRlc2NlbmRhbnRzKGNoaWxkLCBsYXllclRvQmVQcm9tb3RlZCwgek1pbiwg
ek1heCkpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIGZpbmRNaW5BbmRNYXhaSW5kaWNlcyhjb25zdCBSZW5kZXJMYXllciog
bGF5ZXIsIGRvdWJsZSYgek1pbiwgZG91YmxlJiB6TWF4KQoreworICAgIHpNaW4gPSBtaW4oek1p
biwgZWZmZWN0aXZlWkluZGV4KGxheWVyKSk7CisgICAgek1heCA9IG1heCh6TWF4LCBlZmZlY3Rp
dmVaSW5kZXgobGF5ZXIpKTsKKworICAgIGlmICghbGF5ZXItPmhhc1Zpc2libGVEZXNjZW5kYW50
KCkgfHwgbGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gbGF5ZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgIGZpbmRNaW5BbmRNYXhaSW5kaWNl
cyhjaGlsZCwgek1pbiwgek1heCk7Cit9CisKK2Jvb2wgUmVuZGVyTGF5ZXI6OmNhblNhZmVseUVz
dGFibGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdAoreworICAgIGlmIChpc1N0YWNraW5nQ29u
dGV4dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGRvdWJsZSB6TWluID0gc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgoKTsKKyAgICBkb3VibGUgek1heCA9IC1zdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgpOworICAgIGZpbmRNaW5BbmRNYXhaSW5kaWNlcyh0
aGlzLCB6TWluLCB6TWF4KTsKKworICAgIGlmICh6TWluID49IHpNYXgpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgcmV0dXJuICFub25EZXNjZW5kYW50SW5UaGlzU3RhY2tpbmdDb250ZXh0
Q291bGRGYWxsQmV0d2VlbkRlc2NlbmRhbnRzKHN0YWNraW5nQ29udGV4dCgpLCB0aGlzLCB6TWlu
LCB6TWF4KTsKK30KKwogdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFzVmlzaWJsZUNvbnRlbnQoKQog
eyAKICAgICBpZiAobV9oYXNWaXNpYmxlQ29udGVudCAmJiAhbV92aXNpYmxlQ29udGVudFN0YXR1
c0RpcnR5KSB7CkBAIC0xNTczLDEwICsxNjc1LDEzIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnVzZXND
b21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QKICAgICBpZiAoIXNjcm9sbHNPdmVyZmxvdygpIHx8
ICFhbGxvd3NTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisvLyBUT0RPKHZv
bGxpY2spOiBjaGVjayBzaG91bGQgYmUgKGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRl
eHQoKSAmJgorLy8gJ3RoZSBzZXR0aW5ncyBzYXkgd2Ugc2hvdWxkIGF1dG9tYXRpY2FsbHkgcHJv
bW90ZSB0byBjb21wb3NpdGVkIHNjcm9sbGluZycpLgorLy8gVGhlIHNldHRpbmdzIHBpZWNlIGlz
IGNvbWluZy4KICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HKQotICAgIHJldHVybiByZW5k
ZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCk7CisgICAgcmV0dXJu
IHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSB8fCBjYW5T
YWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCk7CiAjZWxzZQotICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpOwogI2Vu
ZGlmCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXgg
MzJkNDFlM2JhOWFmOWIzMzU1YzVkYzk3MTRmZjNjNTA1YWNhZWNiZC4uYWRlOTkzNWRlMTFhNWVl
YWUyNjQwYzcxMzIxYTBjMjMxNWQwNjczOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKQEAgLTg3Nyw2ICs4NzcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbihJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIHJlYXNvbikgeyBt
X2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gPSByZWFzb247IH0KICAgICBJbmRpcmVjdENvbXBv
c2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uPihtX2luZGlyZWN0Q29tcG9zaXRp
bmdSZWFzb24pOyB9CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRlRm9ySW5kaXJlY3RSZWFzb25zKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOyB9CisKKyAgICAvLyBS
ZXR1cm5zIHRydWUgaWZmIHogb3JkZXJpbmcgd291bGQgbm90IGNoYW5nZSBpZiB0aGlzIGxheWVy
IHdlcmUgdG8gZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dC4KKyAgICBib29sIGNhblNhZmVs
eUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdDsKICNlbmRpZgogCiAgICAgZnJpZW5k
IGNsYXNzIFJlbmRlckxheWVyQmFja2luZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCAzNjk0ODE0MjJmNmNhMmZjZTAyZjU0ODhmNWE1YjA4MjczODg0Mjc5Li5lZTExODA0
NjllNjYwYTIxNzc2YTI4MGE5MjIyZTMzZDU2OTNlZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC0xMDk2LDYgKzEwOTYsMzMgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUGFn
ZUJveFZpc2libGUoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgcGFnZU51bWJlciwgRXhjZXB0aW9u
Q28KICAgICByZXR1cm4gZG9jdW1lbnQtPmlzUGFnZUJveFZpc2libGUocGFnZU51bWJlcik7CiB9
CiAKK2Jvb2wgSW50ZXJuYWxzOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhOb2RlKiBub2RlLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWMgPSBJTlZB
TElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBSZW5k
ZXJPYmplY3QqIHJlbmRlck9iamVjdCA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5k
ZXJPYmplY3QpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX05PREVfVFlQRV9FUlI7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIXJlbmRlck9iamVjdC0+aGFzTGF5ZXIo
KSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgUmVuZGVyTGF5ZXIqIHJlbmRlckxheWVyID0gcmVuZGVyT2JqZWN0
LT5lbmNsb3NpbmdMYXllcigpOworICAgIGlmICghcmVuZGVyTGF5ZXIpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IHJldHVybiByZW5kZXJMYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKK30KKwogdm9p
ZCBJbnRlcm5hbHM6OnN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0
aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZy
YW1lKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGIwZjE2MDRiOTc1NWNh
ODZhZGY2ZWU2MDRjYTE2NmMzMWJkMzdhZjIuLjg1M2JlNGI5MGJlZGVkNDI3YjgxMTk2ZTQ3ZjIy
NDVmNTY4NTRlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTczLDYgKzE3
Myw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQYWdlQm94VmlzaWJsZShEb2N1bWVudCosIGlu
dCBwYWdlTnVtYmVyLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICBib29sIHVzZXNDb21wb3NpdGVk
U2Nyb2xsaW5nKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CisKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogaW50ZXJuYWxzSWQ7CiAKICAgICBJbnRlcm5hbFNldHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGY2MmNlYWM4NTdmMThjY2Jh
ZmNmYzAyZTYzN2NjZTlhN2UzMGNmNzAuLmQyNDkwNWUxNmZlMjAwZWZmMmM1MTczYmI1ZjhiMDg0
ODk5MzJkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTE1MSw2ICsx
NTEsOCBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBib29sZWFuIGlzUGFnZUJveFZpc2li
bGUoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgcGFnZU51bWJlcikgcmFpc2VzIChET01F
eGNlcHRpb24pOwogCisgICAgICAgIGJvb2xlYW4gdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoaW4g
Tm9kZSBub2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEludGVybmFsU2V0dGluZ3Mgc2V0dGluZ3M7CiAKICAgICAgICAgdm9pZCBzdXNwZW5k
QW5pbWF0aW9ucyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163503</attachid>
            <date>2012-09-11 19:57:10 -0700</date>
            <delta_ts>2012-09-12 10:32:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20120911225644.patch</filename>
            <type>text/plain</type>
            <size>28542</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ4NDNiZDVjMDMyZWJl
NjU0MTdkODNkMGQyOThkMjZlMzcwMjAyZS4uYWZmMWIxZGZkYzJkMDhjM2JjOTJhOTlkYWE3NDE0
ZmFmZjU3YjAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA5LTExICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBkaXYgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtp
dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNh
bGx5CisgICAgICAgIG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUg
dG8gZG8gc28uIFRoaXMgY2FuIGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlz
IGltcG9ydGFudCB0aGF0IGF1dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAg
ZW5hYmxlZCB2aWEgYSBzZXR0aW5nLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCk6CisgICAgICAgICAgQWRkcyB0aGUgbmV3IHNldHRp
bmcgZm9yIGVuYWJsaW5nIGF1dG9tYXRpY2FsbHkgb3B0aW5nIGludG8gY29tcG9zaXRlZCBzY3Jv
bGxpbmcuCisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzWkluZGV4UmVzcGVjdGVkKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZWZmZWN0aXZlWkluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OmZpcnN0QXBwZWFyaW5nRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpj
b3VsZEZhbGxCZXR3ZWVuRGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6bm9uRGVzY2Vu
ZGFudEluVGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpmaW5kTWluQW5kTWF4WkluZGljZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQpOgorICAg
ICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgUmVuZGVyTGF5ZXIgY291bGQgYmVjb21lIGEgc3Rh
Y2tpbmcgY29udGV4dCB3aXRob3V0CisgICAgICAgICAgYWZmZWN0aW5nIHRoZSBzdGFja2luZyBv
cmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZyk6CisgICAgICAgICAgSGFzIGJlZW4gdXBkYXRlZCB0byByZXR1cm4gdHJ1ZSBpZiBpdCBj
YW4gc2FmZWx5IGVzdGFibGlzaCBhIHN0YWNraW5nCisgICAgICAgICAgY29udGV4dCwgYW5kIHRo
ZSBzZXR0aW5nIGlzIHR1cm5lZCBvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
Y3JvbGxUbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChS
ZW5kZXJMYXllcik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGwpOgorICAgICAgICAgIEFsbG93cyBlbmFibGluZyB0aGUgc2V0dGluZyBp
biBsYXlvdXQgdGVzdHMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZyk6CisgICAgICAgICAgQWxsb3dzIGxheW91dCB0ZXN0cyB0byBjaGVjayBpZiBhIGRpdiBp
cyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wOS0xMSAgQ2hyaXN0b3BoZXIgQ2FtZXJv
biAgPGNjYW1lcm9uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE1ha2UgcHJp
b3JpdGl6ZWQgdGV4dHVyZSBtYW5hZ2VyIG5vdCB0b3VjaCBiYWNraW5ncyBhcnJheSBvbiB0aGUg
bWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggZjI1MTUwYjUxNmMzOTY1
MzVjMzhiZWZjYTNjYjJhMmE2OGZlZWEwZi4uMTcwYzQ1MmY5ZWI0OGZlN2Y2OWZjMDdjY2Y2M2Jk
MmI3ZDVhMGI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTIyMCw2ICsyMjAsNyBA
QCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQodHJ1ZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoZmFsc2UpCisgICAgLCBtX2Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoZmFsc2UpCiAgICAg
LCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiAgICAgLCBtX3Nob3dSZXBhaW50Q291bnRlcihm
YWxzZSkKICAgICAsIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoZmFsc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNmZhM2JjMDI0YjhiOGMyZjlhY2MwZWQwM2QyNjE5ZDQ2
NjUzMjk2My4uMDkxNzMzOTU3MzhhNjNlZGRjMjk4ZGY1MmE0OTYzOTUzMGNlMzVkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaApAQCAtMzgzLDYgKzM4Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1l
c0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9s
bGFibGVGcmFtZXNFbmFibGVkID0gZW5hYmxlZDsgfQogICAgICAgICBib29sIGFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkOyB9CiAKKyAg
ICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFi
bGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbEVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsgfQorCiAgICAgICAgIHZvaWQg
c2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKICAgICAgICAgYm9vbCBzaG93RGVidWdCb3JkZXJz
KCkgY29uc3QgeyByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9CiAKQEAgLTcyOSw2ICs3MzIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1f
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkIDogMTsgLy8g
V29ya3Mgb25seSBpbiBjb25qdW5jdGlvbiB3aXRoIGZvcmNlQ29tcG9zaXRpbmdNb2RlCisgICAg
ICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
IDogMTsKICAgICAgICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnMgOiAxOwogICAgICAgICBib29s
IG1fc2hvd1JlcGFpbnRDb3VudGVyIDogMTsKICAgICAgICAgYm9vbCBtX2V4cGVyaW1lbnRhbE5v
dGlmaWNhdGlvbnNFbmFibGVkIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IDMwZjc1OWM1ZDVjOTgzMGFkNjQ5OTI5OGM4NmUyOWYzNGUxNmNjYWQuLjQy
MzQxMjhkNDI1MjllZDViZjM2OTRkZTM1ZTc4ZjdhMGQ5Njc2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNjY2LDYgKzY2NiwxMDggQEAgdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlUGFnaW5hdGlvbigpCiAgICAgfQogfQogCitib29sIGlzWkluZGV4UmVz
cGVjdGVkKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKK3sKKyAgICByZXR1cm4gbGF5ZXItPmlz
U3RhY2tpbmdDb250ZXh0KCk7Cit9CisKKy8vIFNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1My
L3Zpc3VyZW4uaHRtbCNwb3NpdGlvbmluZy1zY2hlbWUuCitkb3VibGUgZWZmZWN0aXZlWkluZGV4
KGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKK3sKKyAgICBpZiAoIWxheWVyKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIGlmIChpc1pJbmRleFJlc3BlY3RlZChsYXllcikpCisgICAgICAgIHJl
dHVybiBsYXllci0+ekluZGV4KCk7CisKKyAgICBpZiAoIWxheWVyLT5yZW5kZXJlcigpLT5pc0lu
bGluZSgpCisgICAgICAgICYmIGxheWVyLT5pc05vcm1hbEZsb3dPbmx5KCkKKyAgICAgICAgJiYg
IWxheWVyLT5yZW5kZXJlcigpLT5pc1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgcmV0dXJuIC0wLjc1
OworCisgICAgaWYgKCFsYXllci0+cmVuZGVyZXIoKS0+aXNQb3NpdGlvbmVkKCkKKyAgICAgICAg
JiYgbGF5ZXItPnJlbmRlcmVyKCktPmlzRmxvYXRpbmcoKSkKKyAgICAgICAgcmV0dXJuIC0wLjU7
CisKKyAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCktPmlzSW5saW5lKCkKKyAgICAgICAgJiYgbGF5
ZXItPmlzTm9ybWFsRmxvd09ubHkoKQorICAgICAgICAmJiAhbGF5ZXItPnJlbmRlcmVyKCktPmlz
UG9zaXRpb25lZCgpKQorICAgICAgICByZXR1cm4gLTAuMjU7CisKKyAgICByZXR1cm4gMDsKK30K
KworY29uc3QgUmVuZGVyTGF5ZXIqIGZpcnN0QXBwZWFyaW5nRGVzY2VuZGFudChjb25zdCBSZW5k
ZXJMYXllciogY3VycmVudExheWVyLCBjb25zdCBSZW5kZXJMYXllciogZmlyc3RMYXllciwgY29u
c3QgUmVuZGVyTGF5ZXIqIHNlY29uZExheWVyKQoreworICAgIGlmIChjdXJyZW50TGF5ZXIgPT0g
Zmlyc3RMYXllciB8fCBjdXJyZW50TGF5ZXIgPT0gc2Vjb25kTGF5ZXIpCisgICAgICAgIHJldHVy
biBjdXJyZW50TGF5ZXI7CisKKyAgICBmb3IgKGNvbnN0IFJlbmRlckxheWVyKiBjaGlsZCA9IGN1
cnJlbnRMYXllci0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkgeworICAgICAgICBjb25zdCBSZW5kZXJMYXllciogZm91bmQgPSBmaXJzdEFwcGVhcmlu
Z0Rlc2NlbmRhbnQoY2hpbGQsIGZpcnN0TGF5ZXIsIHNlY29uZExheWVyKTsKKyAgICAgICAgaWYg
KGZvdW5kKQorICAgICAgICAgICAgcmV0dXJuIGZvdW5kOworICAgIH0KKworICAgIHJldHVybiAw
OworfQorCitib29sIGNvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyhjb25zdCBSZW5kZXJMYXll
ciogY3VycmVudExheWVyLCBjb25zdCBSZW5kZXJMYXllciogbGF5ZXJUb0JlUHJvbW90ZWQsIGRv
dWJsZSB6TWluLCBkb3VibGUgek1heCkKK3sKKyAgICBpZiAoIWlzWkluZGV4UmVzcGVjdGVkKGN1
cnJlbnRMYXllcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRvdWJsZSBjdXJyZW50
WkluZGV4ID0gZWZmZWN0aXZlWkluZGV4KGN1cnJlbnRMYXllcik7CisKKyAgICBpZiAoKGN1cnJl
bnRaSW5kZXggPiB6TWluIHx8IChjdXJyZW50WkluZGV4ID09IHpNaW4gJiYgZmlyc3RBcHBlYXJp
bmdEZXNjZW5kYW50KGxheWVyVG9CZVByb21vdGVkLT5zdGFja2luZ0NvbnRleHQoKSwgbGF5ZXJU
b0JlUHJvbW90ZWQsIGN1cnJlbnRMYXllcikgPT0gbGF5ZXJUb0JlUHJvbW90ZWQpKQorICAgICAg
ICAmJiAoY3VycmVudFpJbmRleCA8IHpNYXggfHwgKGN1cnJlbnRaSW5kZXggPT0gek1heCAmJiBm
aXJzdEFwcGVhcmluZ0Rlc2NlbmRhbnQobGF5ZXJUb0JlUHJvbW90ZWQtPnN0YWNraW5nQ29udGV4
dCgpLCBsYXllclRvQmVQcm9tb3RlZCwgY3VycmVudExheWVyKSA9PSBjdXJyZW50TGF5ZXIpKSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgbm9u
RGVzY2VuZGFudEluVGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50
cyhjb25zdCBSZW5kZXJMYXllciogY3VycmVudExheWVyLCBjb25zdCBSZW5kZXJMYXllciogbGF5
ZXJUb0JlUHJvbW90ZWQsIGRvdWJsZSB6TWluLCBkb3VibGUgek1heCkKK3sKKyAgICBpZiAoIWN1
cnJlbnRMYXllcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChjb25zdCBSZW5k
ZXJMYXllciogY2hpbGQgPSBjdXJyZW50TGF5ZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxkID09IGxheWVyVG9C
ZVByb21vdGVkKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGNvdWxkRmFs
bEJldHdlZW5EZXNjZW5kYW50cyhjaGlsZCwgbGF5ZXJUb0JlUHJvbW90ZWQsIHpNaW4sIHpNYXgp
IHx8ICghY2hpbGQtPmlzU3RhY2tpbmdDb250ZXh0KCkgJiYgbm9uRGVzY2VuZGFudEluVGhpc1N0
YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyhjaGlsZCwgbGF5ZXJUb0Jl
UHJvbW90ZWQsIHpNaW4sIHpNYXgpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBmaW5kTWluQW5kTWF4WkluZGljZXMoY29u
c3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBkb3VibGUmIHpNaW4sIGRvdWJsZSYgek1heCkKK3sKKyAg
ICB6TWluID0gbWluKHpNaW4sIGVmZmVjdGl2ZVpJbmRleChsYXllcikpOworICAgIHpNYXggPSBt
YXgoek1heCwgZWZmZWN0aXZlWkluZGV4KGxheWVyKSk7CisKKyAgICBpZiAoIWxheWVyLT5oYXNW
aXNpYmxlRGVzY2VuZGFudCgpIHx8IGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGxheWVyLT5maXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICBmaW5k
TWluQW5kTWF4WkluZGljZXMoY2hpbGQsIHpNaW4sIHpNYXgpOworfQorCitib29sIFJlbmRlckxh
eWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3QKK3sKKyAgICBp
ZiAoaXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBkb3Vi
bGUgek1pbiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCk7CisgICAgZG91Ymxl
IHpNYXggPSAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgoKTsKKyAgICBmaW5kTWlu
QW5kTWF4WkluZGljZXModGhpcywgek1pbiwgek1heCk7CisKKyAgICBpZiAoek1pbiA+PSB6TWF4
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiAhbm9uRGVzY2VuZGFudEluVGhp
c1N0YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyhzdGFja2luZ0NvbnRl
eHQoKSwgdGhpcywgek1pbiwgek1heCk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc1Zp
c2libGVDb250ZW50KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQgJiYgIW1fdmlz
aWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAtMTU3MywxMSArMTY3NSwxNSBAQCBib29sIFJl
bmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0CiAgICAgaWYgKCFzY3Jv
bGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorICAgIGJvb2wgYXV0b21hdGljYWxseU9wdEluID0gcmVuZGVyZXIoKS0+ZnJhbWUoKS0+
cGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3Jv
bGxFbmFibGVkKCkKKyAgICAgICAgJiYgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4
dCgpOworCiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKLSAgICByZXR1cm4gcmVuZGVy
ZXIoKS0+c3R5bGUoKS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpOworICAgIHJldHVybiBy
ZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkgfHwgYXV0b21h
dGljYWxseU9wdEluOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGF1dG9t
YXRpY2FsbHlPcHRJbjsKICNlbmRpZgorCiB9CiAjZW5kaWYKIApAQCAtMTczMSw4ICsxODM3LDE1
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKICAgICAgICAgZnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQo
cXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCisgICAgYm9vbCByZXF1aXJlc1Jl
cGFpbnQgPSB0cnVlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlm
IChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCkgJiYgdXNlc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcoKSkKKyAgICAgICAgcmVxdWlyZXNSZXBhaW50ID0gZmFsc2U7CisjZW5kaWYKKwogICAg
IC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJlcGFpbnQgb2Ygb3VyIG9iamVjdC4KLSAgICBpZiAo
dmlldyAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICBpZiAodmlldyAmJiByZXF1
aXJlc1JlcGFpbnQpCiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnRVc2luZ0NvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLCBtX3JlcGFpbnRSZWN0KTsKIAogICAgIC8vIFNjaGVkdWxlIHRoZSBz
Y3JvbGwgRE9NIGV2ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRl
eCA3YzA5NTNhZjQ5NTNhNTE5YThhMThhNjJjNjE1NWQzYjBkN2E0ODA3Li5mNmRkYmM4MDFiY2Mw
NjQ1NDAzMmYyMjc3OGQ1YjAxMTQ2YjMxMzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaApAQCAtODc3LDYgKzg3Nyw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRJbmRp
cmVjdENvbXBvc2l0aW5nUmVhc29uKEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gcmVhc29uKSB7
IG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA9IHJlYXNvbjsgfQogICAgIEluZGlyZWN0Q29t
cG9zaXRpbmdSZWFzb24gaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+KG1faW5kaXJlY3RDb21wb3Np
dGluZ1JlYXNvbik7IH0KICAgICBib29sIG11c3RDb21wb3NpdGVGb3JJbmRpcmVjdFJlYXNvbnMo
KSBjb25zdCB7IHJldHVybiBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247IH0KKworICAgIC8v
IFJldHVybnMgdHJ1ZSBpZmYgeiBvcmRlcmluZyB3b3VsZCBub3QgY2hhbmdlIGlmIHRoaXMgbGF5
ZXIgd2VyZSB0byBlc3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0LgorICAgIGJvb2wgY2FuU2Fm
ZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBmcmll
bmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNjY5ZDA1ZWI2MWNkYmM2Y2Q5ODc5NjBjYjQwNTA5Mzk3
NDkyNzgyOS4uN2IxNThjMWY0NjcyZGJiOGI2ZGFkNWJiMDYwNmIyNTU5ZTVjN2ZlZCAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMjAsNiArMjIw
LDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3Jv
bGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQog
Cit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNl
dHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNl
dHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4
IGEzNzYyYmJlODA5MDE5ODUyN2U5NzQ3YjdjMWU3ZDZiZmJkNWQ0OWYuLjc4YzkyODcwMjAzMTUy
MWVhZTY2ZTJmYzZhYTJhMjBkYmQzNzZmZWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCkBAIC05NSw2ICs5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZv
cmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZv
aWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxl
RnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNF
bmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggNTE3YmFhNjMzZTM3OTc2MzJmZjUxMjY2
ZjI4ZTU5NzNmNGRlYTM5MC4uMzI4Yzc2MTFjMmU5YjdmMmY5MDM5N2U3ZjM1MTFhMjI4OTZhNGU1
YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0z
MSw2ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEZvcmNlQ29tcG9z
aXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAg
ICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGluIGJvb2xlYW4g
ZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAg
ICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNF
bmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMDRj
ZmVjZDBkMWQxMmQ2YWE2NmUwZDBlNDEzYTk4NWM4N2IwNDg3ZS4uMWVmNDFkYTQxZjEyNTM2Yzlm
ODIyNDBkYjg3ZTc2NTIxZDljYjc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtMTEwMyw2ICsxMTAzLDMzIEBAIGJvb2wgSW50ZXJuYWxzOjppc1BhZ2VCb3hWaXNpYmxl
KERvY3VtZW50KiBkb2N1bWVudCwgaW50IHBhZ2VOdW1iZXIsIEV4Y2VwdGlvbkNvCiAgICAgcmV0
dXJuIGRvY3VtZW50LT5pc1BhZ2VCb3hWaXNpYmxlKHBhZ2VOdW1iZXIpOwogfQogCitib29sIElu
dGVybmFsczo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1Nf
RVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJPYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyT2JqZWN0KSB7
CisgICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJSOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgaWYgKCFyZW5kZXJPYmplY3QtPmhhc0xheWVyKCkpIHsKKyAgICAg
ICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIFJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IHJlbmRlck9iamVjdC0+ZW5jbG9zaW5n
TGF5ZXIoKTsKKyAgICBpZiAoIXJlbmRlckxheWVyKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVu
ZGVyTGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7Cit9CisKIHZvaWQgSW50ZXJuYWxz
OjpzdXNwZW5kQW5pbWF0aW9ucyhEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBiMGYxNjA0Yjk3NTVjYTg2YWRmNmVlNjA0
Y2ExNjZjMzFiZDM3YWYyLi44NTNiZTRiOTBiZWRlZDQyN2I4MTE5NmU0N2YyMjQ1ZjU2ODU0ZWEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE3Myw2ICsxNzMsOCBAQCBwdWJs
aWM6CiAKICAgICBib29sIGlzUGFnZUJveFZpc2libGUoRG9jdW1lbnQqLCBpbnQgcGFnZU51bWJl
ciwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgYm9vbCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhO
b2RlKiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFs
c0lkOwogCiAgICAgSW50ZXJuYWxTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBmNjJjZWFjODU3ZjE4Y2NiYWZjZmMwMmU2Mzdj
Y2U5YTdlMzBjZjcwLi5kMjQ5MDVlMTZmZTIwMGVmZjJjNTE3M2JiNWY4YjA4NDg5OTMyZGNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xNTEsNiArMTUxLDggQEAgbW9k
dWxlIHdpbmRvdyB7CiAKICAgICAgICAgYm9vbGVhbiBpc1BhZ2VCb3hWaXNpYmxlKGluIERvY3Vt
ZW50IGRvY3VtZW50LCBpbiBsb25nIHBhZ2VOdW1iZXIpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
IAorICAgICAgICBib29sZWFuIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGluIE5vZGUgbm9kZSkg
cmFpc2VzIChET01FeGNlcHRpb24pOworCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJbnRl
cm5hbFNldHRpbmdzIHNldHRpbmdzOwogCiAgICAgICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMo
aW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNDlm
MjhiMDM1ODdjOWM5ZmE0ZDMzYTA1NWY5ZmQwYThjMmI1YmZjLi5kMGM3YzQwOTAxOTAwMjFjNzBm
ODJmMzkxZjY5Mzk4OGNjNWMyNzhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMTEg
IElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQXV0b21hdGlj
YWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgdmFyaW91cyBjb25maWd1cmF0aW9ucyBvZiBlbGVt
ZW50cyB0byBlbnN1cmUgdGhhdCB3ZSBvbmx5IGF1dG9tYXRpY2FsbHkgb3B0IGludG8KKyAgICAg
ICAgY29tcG9zaXRlZCBzY3JvbGxpbmcgd2hlbiBpdCBpcyBzYWZlIHRvIGRvIHNvLgorCisgICAg
ICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3Np
dGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRt
bDogQWRkZWQuCisKIDIwMTItMDktMTEgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5j
b20+CiAKICAgICAgICAgU2tpcCBzcGF0aWFsLW5hdmlnYXRpb24gdGVzdHMgb24gbWFjLXdrMiBi
ZWNhdXNlIHRoZXkgYXJlIGFsbCBmYWlsaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9s
bGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRv
bWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNDg4ZDFhMTNiNTMwZjZlYjY2ZGQxNGI4YWMyMjZmYmZkNjc1NzM4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxs
eS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDg1MAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgNzg1eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4ODUwIGxheWVyVHlwZTogYmFj
a2dyb3VuZCBvbmx5CitsYXllciBhdCAoMzksMzEpIHNpemUgMTgweDkwIGJhY2tncm91bmRDbGlw
IGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgb3V0
bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZl
IHBvc2l0aW9uZWQpIHpJOiAtMSB7RElWfSBhdCAoMTEsMTEpIHNpemUgMTgweDkwIFtiZ2NvbG9y
PSM4MDgwODBdCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg4NTAgbGF5ZXJUeXBlOiBmb3JlZ3Jv
dW5kIG9ubHkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDg1MAorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDIwKSBzaXplIDc2OXg4MjIKKyAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDIyMikgc2l6ZSA3Njl4NjAwCisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDI1M3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDI1MzogIjAgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAg
ICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMjApIHdpZHRoIDI1MzogIjEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwg
UGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDM1KSBzaXplIDB4MAorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsNDApIHdpZHRoIDI1MzogIjIgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDU1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNjApIHNpemUgMjUzeDE5CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsNjApIHdpZHRoIDI1MzogIjMgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDc1
KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsODApIHNpemUgMjU3
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsODApIHdpZHRoIDI1NzogIjQgdXNlcyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0g
YXQgKDI1Nyw5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEw
MCkgc2l6ZSAyNTN4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxMDApIHdpZHRoIDI1Mzog
IjUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjUzLDExNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDEyMCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxMjAp
IHdpZHRoIDI1NzogIjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxMzUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxNDApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMTQwKSB3aWR0aCAyNTc6ICI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6
IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNTcsMTU1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTYwKSBzaXplIDI1N3gxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDE2MCkgd2lkdGggMjU3OiAiOCB1c2VzIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjU3
LDE3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4MCkgc2l6
ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxODApIHdpZHRoIDI1NzogIjkgdXNl
cyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDI1NywxOTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwyMDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjAwKSB3aWR0
aCAyNjE6ICIxMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAg
ICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMjIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDIyMCkgd2lkdGggMjYxOiAiMTEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1
ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDIzNSkgc2l6ZSAweDAKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDI0MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwyNDApIHdpZHRoIDI2MTogIjEyIHVzZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwyNTUp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyNjApIHNpemUgMjYx
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjYwKSB3aWR0aCAyNjE6ICIxMyB1c2VzIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9
IGF0ICgyNjEsMjc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MjgwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDI4MCkgd2lkdGggMjYx
OiAiMTQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAg
UmVuZGVyQlIge0JSfSBhdCAoMjYxLDI5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDMwMCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwz
MDApIHdpZHRoIDI2MTogIjE1IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBh
c3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwzMTUpIHNpemUgMHgwCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzMjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMzIwKSB3aWR0aCAyNjE6ICIxNiB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzM1KSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzQwKSBzaXplIDI2NXgxOQor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM0MCkgd2lkdGggMjY1OiAiMTcgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDI2NSwzNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzNjAp
IHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYwKSB3aWR0aCAyNjE6ICIx
OCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5k
ZXJCUiB7QlJ9IGF0ICgyNjEsMzc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMzgwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM4MCkg
d2lkdGggMjY1OiAiMTkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzOTUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0MDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsNDAwKSB3aWR0aCAyNjE6ICIyMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDE1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDIwKSBzaXplIDI2MXgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDQyMCkgd2lkdGggMjYxOiAiMjEgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYx
LDQzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDQ0MCkgc2l6
ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0NDApIHdpZHRoIDI2MTogIjIyIHVz
ZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDI2MSw0NTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCw0NjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDYwKSB3aWR0
aCAyNjE6ICIyMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAg
ICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsNDgwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDQ4MCkgd2lkdGggMjY1OiAiMjQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFs
c2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSw0OTUpIHNpemUgMHgwCisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1MDApIHNpemUgMjYxeDE5CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsNTAwKSB3aWR0aCAyNjE6ICIyNSB1c2VzIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNTE1
KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTIwKSBzaXplIDI2
MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDUyMCkgd2lkdGggMjYxOiAiMjYgdXNlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JS
fSBhdCAoMjYxLDUzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDU0MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1NDApIHdpZHRoIDI2
NTogIjI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAg
ICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNTU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsNTYwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDU2MCkgd2lkdGggMjY1OiAiMjggdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2Us
IFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSw1NzUpIHNpemUgMHgwCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1ODApIHNpemUgMjY1eDE5CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsNTgwKSB3aWR0aCAyNjU6ICIyOSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjY1LDU5NSkg
c2l6ZSAweDAKK2xheWVyIGF0ICgyOCwyMCkgc2l6ZSAyMDJ4MjAyIGNsaXAgYXQgKDI5LDIxKSBz
aXplIDE4NXgxODUgc2Nyb2xsV2lkdGggMTkwIHNjcm9sbEhlaWdodCAyMTAKKyAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDIwLDApIHNpemUgMjAyeDIwMiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAw
MDApXQorbGF5ZXIgYXQgKDE2MCwyMCkgc2l6ZSAxMjB4MjQwCisgIFJlbmRlckJsb2NrIChwb3Np
dGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTYwLDIwKSBzaXplIDEyMHgyNDAgW2JnY29sb3I9IzAw
ODAwMF0KK2xheWVyIGF0ICgzOSwxMzEpIHNpemUgMTgweDkwIGJhY2tncm91bmRDbGlwIGF0ICgy
OSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgb3V0bGluZUNs
aXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0
aW9uZWQpIHpJOiAzIHtESVZ9IGF0ICgxMSwxMTEpIHNpemUgMTgweDkwIFtiZ2NvbG9yPSM4MDgw
ODBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Ny
b2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2YTExNTc2ZWJhODEyYWMzMzRhYTA4MzE4NTkzMmI0
ZDQwN2I5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbApAQCAt
MCwwICsxLDE0NiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQu
MDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29z
ZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgPHRp
dGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nPC90aXRsZT4KKyAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICBvdmVyZmxvdzogc2Nyb2xs
OworICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdpZHRoOiAxODBweDsKKyAgICAgIGhlaWdo
dDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdy
YXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorCisgICAgLnBvc2l0aW9uZWQg
eworICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVpZ2h0OiAyNDBweDsKKyAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIH0KKwor
ICAgIC5oaWRkZW4geworICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIH0KKworICAgICNw
cmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0K
KworICAgICNzdWNjZXNzb3IgeworICAgICAgbGVmdDogMTYwcHg7CisgICAgICB0b3A6IDIwcHg7
CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hh
cnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGwodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIHZhciBw
cmVkZWNlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcmVkZWNlc3NvcicpOworICAg
ICAgdmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsK
KyAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVy
Jyk7CisgICAgICB2YXIgZmlyc3RDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJz
dENoaWxkJyk7CisgICAgICB2YXIgc2Vjb25kQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnc2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZhciByZXN1bHQgPSAiIjsKKyAgICAgIHZhciBkdW1t
eSA9IDA7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICB2YXIgZXhwZWN0ZWRfcmVzdWx0
cyA9IFsKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRy
dWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgICAgICB0cnVlLCB0cnVlLCB0cnVl
LCB0cnVlLCB0cnVlLAorICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsCisg
ICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLAorICAgICAgICB0cnVlLCB0cnVl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICBdOworCisgICAgICBmb3IgKGkgPSAwOyBpIDwg
MzsgKytpKSB7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCA1OyArK2opIHsKKyAgICAgICAgICBm
b3IgKGsgPSAwOyBrIDwgMjsgKytrKSB7CisgICAgICAgICAgICB2YXIgbWluWkluZGV4ID0gMDsK
KyAgICAgICAgICAgIHZhciBtYXhaSW5kZXggPSAwOworICAgICAgICAgICAgaWYgKGkgPT0gMCkg
eworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICcxJzsKKyAgICAgICAg
ICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtYXha
SW5kZXggPSAzOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09IDEpIHsKKyAgICAgICAgICAg
ICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAgICAgICAgICAgICBzZWNvbmRD
aGlsZC5zdHlsZS56SW5kZXggPSAnLTMnOworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMzsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUueklu
ZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMn
OworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsKKyAgICAgICAgICAgICAgbWF4WkluZGV4
ID0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHNpYmxpbmcgPSBwcmVkZWNl
c3NvcjsKKyAgICAgICAgICAgIHZhciB0b0hpZGUgPSBzdWNjZXNzb3I7CisgICAgICAgICAgICBp
ZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcgPSBzdWNjZXNzb3I7CisgICAgICAg
ICAgICAgIHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICB0b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgICAgIHNpYmxpbmcuc3R5
bGUuZGlzcGxheSA9ICcnOworICAgICAgICAgICAgaWYgKGogPT0gMCkgeworICAgICAgICAgICAg
ICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAxKS50b1N0cmluZygpOworICAg
ICAgICAgICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHls
ZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAoaiA9PSAyKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWF4
WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGogPT0gMykgeworICAg
ICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJbmRleC50b1N0cmluZygpOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXgg
PSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmluZygpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYy4KKyAgICAgICAgICAgIGR1
bW15ID0gY29udGFpbmVyLm9mZnNldFRvcDsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgICAgdmFyIGlzQWNjZWxlcmF0ZWQgPSB3aW5kb3cuaW50ZXJu
YWxzLnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGNvbnRhaW5lcik7CisgICAgICAgICAgICAgIHJl
c3VsdCArPSBjb3VudC50b1N0cmluZygpICsgJyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiAnICsgaXNBY2NlbGVyYXRlZCArICcsICcgKyAoZXhwZWN0ZWRfcmVzdWx0c1tjb3VudF0gPT0g
aXNBY2NlbGVyYXRlZCA/ICdQYXNzJyA6ICdGQUlMJykgKyAnPGJyPic7CisgICAgICAgICAgICAg
IGNvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9
CisKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSBy
ZXN1bHQ7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICAgIH0KKworICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keT4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InByZWRlY2Vzc29yIj48
L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2
IGNsYXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0Q2hpbGQiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9
InNjcm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQiPjwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBjbGFz
cz0icG9zaXRpb25lZCIgaWQ9InN1Y2Nlc3NvciI+PC9kaXY+CisgIDxkaXYgaWQ9InJlc3VsdCIg
Y2xhc3M9ImhpZGRlbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163652</attachid>
            <date>2012-09-12 10:32:32 -0700</date>
            <delta_ts>2012-09-12 11:05:32 -0700</delta_ts>
            <desc>Attempt to make the bots happier</desc>
            <filename>bug-94743-20120912133205.patch</filename>
            <type>text/plain</type>
            <size>28743</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzkzYWI0ZjJiZjJlZDJi
NGMxZjlhZWZlNThiYjEwNDY5ZDc5ZTcwNy4uNmJjZTE1NGI0ODg4ZDc0MmI2YmI1ZDI2YTFmOTVm
NWQyZjk1NTlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA5LTExICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBkaXYgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtp
dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNh
bGx5CisgICAgICAgIG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUg
dG8gZG8gc28uIFRoaXMgY2FuIGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlz
IGltcG9ydGFudCB0aGF0IGF1dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAg
ZW5hYmxlZCB2aWEgYSBzZXR0aW5nLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCk6CisgICAgICAgICAgQWRkcyB0aGUgbmV3IHNldHRp
bmcgZm9yIGVuYWJsaW5nIGF1dG9tYXRpY2FsbHkgb3B0aW5nIGludG8gY29tcG9zaXRlZCBzY3Jv
bGxpbmcuCisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzWkluZGV4UmVzcGVjdGVkKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZWZmZWN0aXZlWkluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OmZpcnN0QXBwZWFyaW5nRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpj
b3VsZEZhbGxCZXR3ZWVuRGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6bm9uRGVzY2Vu
ZGFudEluVGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpmaW5kTWluQW5kTWF4WkluZGljZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQpOgorICAg
ICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgUmVuZGVyTGF5ZXIgY291bGQgYmVjb21lIGEgc3Rh
Y2tpbmcgY29udGV4dCB3aXRob3V0CisgICAgICAgICAgYWZmZWN0aW5nIHRoZSBzdGFja2luZyBv
cmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZyk6CisgICAgICAgICAgSGFzIGJlZW4gdXBkYXRlZCB0byByZXR1cm4gdHJ1ZSBpZiBpdCBj
YW4gc2FmZWx5IGVzdGFibGlzaCBhIHN0YWNraW5nCisgICAgICAgICAgY29udGV4dCwgYW5kIHRo
ZSBzZXR0aW5nIGlzIHR1cm5lZCBvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
Y3JvbGxUbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChS
ZW5kZXJMYXllcik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGwpOgorICAgICAgICAgIEFsbG93cyBlbmFibGluZyB0aGUgc2V0dGluZyBp
biBsYXlvdXQgdGVzdHMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZyk6CisgICAgICAgICAgQWxsb3dzIGxheW91dCB0ZXN0cyB0byBjaGVjayBpZiBhIGRpdiBp
cyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wOS0xMiAgRmxvcmluIE1hbGl0YSAgPGZt
YWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGdldFNjcmVlbkNUTSByZXR1cm5zIGRpZmZl
cmVudCB2YWx1ZXMgZGVwZW5kaW5nIG9uIHpvb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5k
ZXggZjI1MTUwYjUxNmMzOTY1MzVjMzhiZWZjYTNjYjJhMmE2OGZlZWEwZi4uMTcwYzQ1MmY5ZWI0
OGZlN2Y2OWZjMDdjY2Y2M2JkMmI3ZDVhMGI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
QEAgLTIyMCw2ICsyMjAsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAs
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQodHJ1ZSkKICAgICAs
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKGZhbHNlKQog
ICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQo
ZmFsc2UpCisgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiAgICAgLCBtX3No
b3dSZXBhaW50Q291bnRlcihmYWxzZSkKICAgICAsIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9u
c0VuYWJsZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNmZhM2JjMDI0YjhiOGMy
ZjlhY2MwZWQwM2QyNjE5ZDQ2NjUzMjk2My4uMDkxNzMzOTU3MzhhNjNlZGRjMjk4ZGY1MmE0OTYz
OTUzMGNlMzVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzgzLDYgKzM4Myw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkID0gZW5hYmxlZDsgfQogICAgICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXNFbmFibGVkOyB9CiAKKyAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgICAgIGJvb2wg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsg
fQorCiAgICAgICAgIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKICAgICAgICAgYm9v
bCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9
CiAKQEAgLTcyOSw2ICs3MzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAg
IGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXNFbmFibGVkIDogMTsgLy8gV29ya3Mgb25seSBpbiBjb25qdW5jdGlvbiB3aXRoIGZvcmNlQ29t
cG9zaXRpbmdNb2RlCisgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnMg
OiAxOwogICAgICAgICBib29sIG1fc2hvd1JlcGFpbnRDb3VudGVyIDogMTsKICAgICAgICAgYm9v
bCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIDogMTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDMwZjc1OWM1ZDVjOTgzMGFkNjQ5OTI5OGM4
NmUyOWYzNGUxNmNjYWQuLjQyMzQxMjhkNDI1MjllZDViZjM2OTRkZTM1ZTc4ZjdhMGQ5Njc2MDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNjY2LDYgKzY2
NiwxMDggQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlUGFnaW5hdGlvbigpCiAgICAgfQogfQog
Citib29sIGlzWkluZGV4UmVzcGVjdGVkKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKK3sKKyAg
ICByZXR1cm4gbGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCk7Cit9CisKKy8vIFNlZSBodHRwOi8v
d3d3LnczLm9yZy9UUi9DU1MyL3Zpc3VyZW4uaHRtbCNwb3NpdGlvbmluZy1zY2hlbWUuCitkb3Vi
bGUgZWZmZWN0aXZlWkluZGV4KGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKK3sKKyAgICBpZiAo
IWxheWVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChpc1pJbmRleFJlc3BlY3RlZChs
YXllcikpCisgICAgICAgIHJldHVybiBsYXllci0+ekluZGV4KCk7CisKKyAgICBpZiAoIWxheWVy
LT5yZW5kZXJlcigpLT5pc0lubGluZSgpCisgICAgICAgICYmIGxheWVyLT5pc05vcm1hbEZsb3dP
bmx5KCkKKyAgICAgICAgJiYgIWxheWVyLT5yZW5kZXJlcigpLT5pc1Bvc2l0aW9uZWQoKSkKKyAg
ICAgICAgcmV0dXJuIC0wLjc1OworCisgICAgaWYgKCFsYXllci0+cmVuZGVyZXIoKS0+aXNQb3Np
dGlvbmVkKCkKKyAgICAgICAgJiYgbGF5ZXItPnJlbmRlcmVyKCktPmlzRmxvYXRpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIC0wLjU7CisKKyAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCktPmlzSW5saW5l
KCkKKyAgICAgICAgJiYgbGF5ZXItPmlzTm9ybWFsRmxvd09ubHkoKQorICAgICAgICAmJiAhbGF5
ZXItPnJlbmRlcmVyKCktPmlzUG9zaXRpb25lZCgpKQorICAgICAgICByZXR1cm4gLTAuMjU7CisK
KyAgICByZXR1cm4gMDsKK30KKworY29uc3QgUmVuZGVyTGF5ZXIqIGZpcnN0QXBwZWFyaW5nRGVz
Y2VuZGFudChjb25zdCBSZW5kZXJMYXllciogY3VycmVudExheWVyLCBjb25zdCBSZW5kZXJMYXll
ciogZmlyc3RMYXllciwgY29uc3QgUmVuZGVyTGF5ZXIqIHNlY29uZExheWVyKQoreworICAgIGlm
IChjdXJyZW50TGF5ZXIgPT0gZmlyc3RMYXllciB8fCBjdXJyZW50TGF5ZXIgPT0gc2Vjb25kTGF5
ZXIpCisgICAgICAgIHJldHVybiBjdXJyZW50TGF5ZXI7CisKKyAgICBmb3IgKGNvbnN0IFJlbmRl
ckxheWVyKiBjaGlsZCA9IGN1cnJlbnRMYXllci0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBjb25zdCBSZW5kZXJMYXllciogZm91
bmQgPSBmaXJzdEFwcGVhcmluZ0Rlc2NlbmRhbnQoY2hpbGQsIGZpcnN0TGF5ZXIsIHNlY29uZExh
eWVyKTsKKyAgICAgICAgaWYgKGZvdW5kKQorICAgICAgICAgICAgcmV0dXJuIGZvdW5kOworICAg
IH0KKworICAgIHJldHVybiAwOworfQorCitib29sIGNvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50
cyhjb25zdCBSZW5kZXJMYXllciogY3VycmVudExheWVyLCBjb25zdCBSZW5kZXJMYXllciogbGF5
ZXJUb0JlUHJvbW90ZWQsIGRvdWJsZSB6TWluLCBkb3VibGUgek1heCkKK3sKKyAgICBpZiAoIWlz
WkluZGV4UmVzcGVjdGVkKGN1cnJlbnRMYXllcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGRvdWJsZSBjdXJyZW50WkluZGV4ID0gZWZmZWN0aXZlWkluZGV4KGN1cnJlbnRMYXllcik7
CisKKyAgICBpZiAoKGN1cnJlbnRaSW5kZXggPiB6TWluIHx8IChjdXJyZW50WkluZGV4ID09IHpN
aW4gJiYgZmlyc3RBcHBlYXJpbmdEZXNjZW5kYW50KGxheWVyVG9CZVByb21vdGVkLT5zdGFja2lu
Z0NvbnRleHQoKSwgbGF5ZXJUb0JlUHJvbW90ZWQsIGN1cnJlbnRMYXllcikgPT0gbGF5ZXJUb0Jl
UHJvbW90ZWQpKQorICAgICAgICAmJiAoY3VycmVudFpJbmRleCA8IHpNYXggfHwgKGN1cnJlbnRa
SW5kZXggPT0gek1heCAmJiBmaXJzdEFwcGVhcmluZ0Rlc2NlbmRhbnQobGF5ZXJUb0JlUHJvbW90
ZWQtPnN0YWNraW5nQ29udGV4dCgpLCBsYXllclRvQmVQcm9tb3RlZCwgY3VycmVudExheWVyKSA9
PSBjdXJyZW50TGF5ZXIpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgbm9uRGVzY2VuZGFudEluVGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFs
bEJldHdlZW5EZXNjZW5kYW50cyhjb25zdCBSZW5kZXJMYXllciogY3VycmVudExheWVyLCBjb25z
dCBSZW5kZXJMYXllciogbGF5ZXJUb0JlUHJvbW90ZWQsIGRvdWJsZSB6TWluLCBkb3VibGUgek1h
eCkKK3sKKyAgICBpZiAoIWN1cnJlbnRMYXllcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgZm9yIChjb25zdCBSZW5kZXJMYXllciogY2hpbGQgPSBjdXJyZW50TGF5ZXItPmZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYg
KGNoaWxkID09IGxheWVyVG9CZVByb21vdGVkKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgaWYgKGNvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyhjaGlsZCwgbGF5ZXJUb0JlUHJv
bW90ZWQsIHpNaW4sIHpNYXgpIHx8ICghY2hpbGQtPmlzU3RhY2tpbmdDb250ZXh0KCkgJiYgbm9u
RGVzY2VuZGFudEluVGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50
cyhjaGlsZCwgbGF5ZXJUb0JlUHJvbW90ZWQsIHpNaW4sIHpNYXgpKSkKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBmaW5kTWlu
QW5kTWF4WkluZGljZXMoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBkb3VibGUmIHpNaW4sIGRv
dWJsZSYgek1heCkKK3sKKyAgICB6TWluID0gbWluKHpNaW4sIGVmZmVjdGl2ZVpJbmRleChsYXll
cikpOworICAgIHpNYXggPSBtYXgoek1heCwgZWZmZWN0aXZlWkluZGV4KGxheWVyKSk7CisKKyAg
ICBpZiAoIWxheWVyLT5oYXNWaXNpYmxlRGVzY2VuZGFudCgpIHx8IGxheWVyLT5pc1N0YWNraW5n
Q29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKFJlbmRlckxheWVyKiBjaGls
ZCA9IGxheWVyLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKQorICAgICAgICBmaW5kTWluQW5kTWF4WkluZGljZXMoY2hpbGQsIHpNaW4sIHpNYXgpOwor
fQorCitib29sIFJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0
KCkgY29uc3QKK3sKKyAgICBpZiAoaXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICBkb3VibGUgek1pbiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
bWF4KCk7CisgICAgZG91YmxlIHpNYXggPSAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpt
YXgoKTsKKyAgICBmaW5kTWluQW5kTWF4WkluZGljZXModGhpcywgek1pbiwgek1heCk7CisKKyAg
ICBpZiAoek1pbiA+PSB6TWF4KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiAh
bm9uRGVzY2VuZGFudEluVGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5k
YW50cyhzdGFja2luZ0NvbnRleHQoKSwgdGhpcywgek1pbiwgek1heCk7Cit9CisKIHZvaWQgUmVu
ZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJs
ZUNvbnRlbnQgJiYgIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAtMTU3MywxMSAr
MTY3NSwxNSBAQCBib29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNv
bnN0CiAgICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xsaW5nKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wgYXV0b21hdGljYWxseU9wdEluID0gcmVu
ZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkKKyAgICAgICAgJiYgY2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCgpOworCiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykK
LSAgICByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGlu
ZygpOworICAgIHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Ny
b2xsaW5nKCkgfHwgYXV0b21hdGljYWxseU9wdEluOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIGF1dG9tYXRpY2FsbHlPcHRJbjsKICNlbmRpZgorCiB9CiAjZW5kaWYKIApA
QCAtMTczMSw4ICsxODM3LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBp
bnQgeSkKICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1v
dmVFdmVudFNvb25JblF1YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCisg
ICAgYm9vbCByZXF1aXJlc1JlcGFpbnQgPSB0cnVlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQorICAgIGlmIChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCkgJiYg
dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICAgICAgcmVxdWlyZXNSZXBhaW50ID0gZmFs
c2U7CisjZW5kaWYKKwogICAgIC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJlcGFpbnQgb2Ygb3Vy
IG9iamVjdC4KLSAgICBpZiAodmlldyAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAg
ICBpZiAodmlldyAmJiByZXF1aXJlc1JlcGFpbnQpCiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFp
bnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBtX3JlcGFpbnRSZWN0KTsKIAogICAg
IC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwgRE9NIGV2ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaAppbmRleCA3YzA5NTNhZjQ5NTNhNTE5YThhMThhNjJjNjE1NWQzYjBkN2E0
ODA3Li5mNmRkYmM4MDFiY2MwNjQ1NDAzMmYyMjc3OGQ1YjAxMTQ2YjMxMzNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtODc3LDYgKzg3Nyw5IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKEluZGlyZWN0Q29tcG9zaXRp
bmdSZWFzb24gcmVhc29uKSB7IG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA9IHJlYXNvbjsg
fQogICAgIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNv
bigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+
KG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbik7IH0KICAgICBib29sIG11c3RDb21wb3NpdGVG
b3JJbmRpcmVjdFJlYXNvbnMoKSBjb25zdCB7IHJldHVybiBtX2luZGlyZWN0Q29tcG9zaXRpbmdS
ZWFzb247IH0KKworICAgIC8vIFJldHVybnMgdHJ1ZSBpZmYgeiBvcmRlcmluZyB3b3VsZCBub3Qg
Y2hhbmdlIGlmIHRoaXMgbGF5ZXIgd2VyZSB0byBlc3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0
LgorICAgIGJvb2wgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Owog
I2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNjY5ZDA1ZWI2MWNkYmM2
Y2Q5ODc5NjBjYjQwNTA5Mzk3NDkyNzgyOS4uN2IxNThjMWY0NjcyZGJiOGI2ZGFkNWJiMDYwNmIy
NTU5ZTVjN2ZlZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwCkBAIC0yMjAsNiArMjIwLDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjCiAgICAgc2V0
dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFi
bGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdz
KCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoZW5h
YmxlZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5n
RW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFs
U2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oCmluZGV4IGEzNzYyYmJlODA5MDE5ODUyN2U5NzQ3YjdjMWU3ZDZiZmJkNWQ0
OWYuLjc4YzkyODcwMjAzMTUyMWVhZTY2ZTJmYzZhYTJhMjBkYmQzNzZmZWQgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC05NSw2ICs5NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9u
KGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRl
ZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggNTE3YmFh
NjMzZTM3OTc2MzJmZjUxMjY2ZjI4ZTU5NzNmNGRlYTM5MC4uMzI4Yzc2MTFjMmU5YjdmMmY5MDM5
N2U3ZjM1MTFhMjI4OTZhNGU1YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsCkBAIC0zMSw2ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2
b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBv
c2l0aW9uKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4g
ZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4g
Ym9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xl
YW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggMDRjZmVjZDBkMWQxMmQ2YWE2NmUwZDBlNDEzYTk4NWM4N2IwNDg3ZS4u
YTI1M2I4MWViNzhhN2I2NGI4ZmM2NDQwYTlmZWUxOWFmMmU1ZDQwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTAxLDYgKzEwMSwxMCBAQAogI2luY2x1ZGUgIlJlbmRl
ckxheWVyQmFja2luZy5oIgogI2VuZGlmCiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC0xMTAzLDYgKzExMDcsMzcgQEAg
Ym9vbCBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2libGUoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQg
cGFnZU51bWJlciwgRXhjZXB0aW9uQ28KICAgICByZXR1cm4gZG9jdW1lbnQtPmlzUGFnZUJveFZp
c2libGUocGFnZU51bWJlcik7CiB9CiAKK2Jvb2wgSW50ZXJuYWxzOjp1c2VzQ29tcG9zaXRlZFNj
cm9sbGluZyhOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJ
RF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmVuZGVy
T2JqZWN0KiByZW5kZXJPYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVy
T2JqZWN0KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJSOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFyZW5kZXJPYmplY3QtPmhhc0xheWVyKCkp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIFJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IHJlbmRlck9iamVjdC0+
ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICBpZiAoIXJlbmRlckxheWVyKSB7CisgICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gcmVuZGVyTGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisjZWxzZQorICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lkIEludGVybmFsczo6c3VzcGVuZEFuaW1h
dGlvbnMoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKaW5kZXggYjBmMTYwNGI5NzU1Y2E4NmFkZjZlZTYwNGNhMTY2YzMxYmQzN2Fm
Mi4uODUzYmU0YjkwYmVkZWQ0MjdiODExOTZlNDdmMjI0NWY1Njg1NGVhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xNzMsNiArMTczLDggQEAgcHVibGljOgogCiAgICAgYm9v
bCBpc1BhZ2VCb3hWaXNpYmxlKERvY3VtZW50KiwgaW50IHBhZ2VOdW1iZXIsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAorICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoTm9kZSosIEV4Y2VwdGlv
bkNvZGUmKTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAogICAgIElu
dGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKaW5kZXggZjYyY2VhYzg1N2YxOGNjYmFmY2ZjMDJlNjM3Y2NlOWE3ZTMwY2Y3MC4u
ZDI0OTA1ZTE2ZmUyMDBlZmYyYzUxNzNiYjVmOGIwODQ4OTkzMmRjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTUxLDYgKzE1MSw4IEBAIG1vZHVsZSB3aW5kb3cgewog
CiAgICAgICAgIGJvb2xlYW4gaXNQYWdlQm94VmlzaWJsZShpbiBEb2N1bWVudCBkb2N1bWVudCwg
aW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgYm9v
bGVhbiB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhpbiBOb2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBz
ZXR0aW5nczsKIAogICAgICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGluIERvY3VtZW50IGRv
Y3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTE0MDhhOGM4NjhiY2I2ZjIx
ODE3N2E0OTcyM2QzMGQ0ZmU5YzJhMy4uNmVmYjc3ODg3ZjUyNDcyNDU3MjI3NzMwNzQ1ZWE5NWEx
YjBiNjcxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTExICBJYW4gVm9sbGljayAg
PHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEF1dG9tYXRpY2FsbHkgdXNlIGNvbXBv
c2l0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NDc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzIHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb2YgZWxlbWVudHMgdG8gZW5zdXJl
IHRoYXQgd2Ugb25seSBhdXRvbWF0aWNhbGx5IG9wdCBpbnRvCisgICAgICAgIGNvbXBvc2l0ZWQg
c2Nyb2xsaW5nIHdoZW4gaXQgaXMgc2FmZSB0byBkbyBzby4KKworICAgICAgICAqIGNvbXBvc2l0
aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRv
bWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorCiAy
MDEyLTA5LTEyICBGbG9yaW4gTWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgZ2V0U2NyZWVuQ1RNIHJldHVybnMgZGlmZmVyZW50IHZhbHVlcyBkZXBlbmRpbmcgb24gem9v
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGlj
YWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0
ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDg4ZDFhMTNiNTMwZjZlYjY2
ZGQxNGI4YWMyMjZmYmZkNjc1NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9s
bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUg
Nzg1eDg1MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA3ODV4ODUwIGxheWVyVHlwZTogYmFja2dyb3VuZCBvbmx5CitsYXllciBhdCAoMzks
MzEpIHNpemUgMTgweDkwIGJhY2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNs
aXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4
NXgxODUKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAtMSB7RElWfSBh
dCAoMTEsMTEpIHNpemUgMTgweDkwIFtiZ2NvbG9yPSM4MDgwODBdCitsYXllciBhdCAoMCwwKSBz
aXplIDc4NXg4NTAgbGF5ZXJUeXBlOiBmb3JlZ3JvdW5kIG9ubHkKKyAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNzg1eDg1MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDIw
KSBzaXplIDc2OXg4MjIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIyMikgc2l6ZSA3
Njl4NjAwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI1M3gxOQor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1MzogIjAgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUz
LDE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUg
MjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDI1MzogIjEgdXNlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JS
fSBhdCAoMjUzLDM1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
NDApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDApIHdpZHRoIDI1Mzog
IjIgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjUzLDU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsNjApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNjApIHdp
ZHRoIDI1MzogIjMgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAg
ICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsODApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsODApIHdpZHRoIDI1NzogIjQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2Us
IFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1Nyw5NSkgc2l6ZSAweDAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEwMCkgc2l6ZSAyNTN4MTkKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwxMDApIHdpZHRoIDI1MzogIjUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDExNSkgc2l6
ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEyMCkgc2l6ZSAyNTd4MTkK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxMjApIHdpZHRoIDI1NzogIjYgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDI1NywxMzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxNDAp
IHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTQwKSB3aWR0aCAyNTc6ICI3
IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5k
ZXJCUiB7QlJ9IGF0ICgyNTcsMTU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMTYwKSBzaXplIDI1N3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE2MCkg
d2lkdGggMjU3OiAiOCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIK
KyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjU3LDE3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4MCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwxODApIHdpZHRoIDI1NzogIjkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzog
ZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxOTUpIHNpemUgMHgw
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyMDApIHNpemUgMjYxeDE5CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMjAwKSB3aWR0aCAyNjE6ICIxMCB1c2VzIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEs
MjE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjIwKSBzaXpl
IDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDIyMCkgd2lkdGggMjYxOiAiMTEgdXNl
cyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIg
e0JSfSBhdCAoMjYxLDIzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDI0MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNDApIHdpZHRo
IDI2MTogIjEyIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAg
ICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwyNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwyNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMjYwKSB3aWR0aCAyNjE6ICIxMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVl
LCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjc1KSBzaXplIDB4MAorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjgwKSBzaXplIDI2MXgxOQorICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDI4MCkgd2lkdGggMjYxOiAiMTQgdXNlcyBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDI5NSkg
c2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDMwMCkgc2l6ZSAyNjF4
MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzMDApIHdpZHRoIDI2MTogIjE1IHVzZXMgYWNj
ZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0g
YXQgKDI2MSwzMTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwz
MjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzIwKSB3aWR0aCAyNjE6
ICIxNiB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBS
ZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzM1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMzQwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM0
MCkgd2lkdGggMjY1OiAiMTcgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBh
c3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzNTUpIHNpemUgMHgwCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMzYwKSB3aWR0aCAyNjE6ICIxOCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzc1KSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzgwKSBzaXplIDI2NXgxOQor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM4MCkgd2lkdGggMjY1OiAiMTkgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDI2NSwzOTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0MDAp
IHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDAwKSB3aWR0aCAyNjE6ICIy
MCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5k
ZXJCUiB7QlJ9IGF0ICgyNjEsNDE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsNDIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQyMCkg
d2lkdGggMjYxOiAiMjEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIK
KyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDQzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDQ0MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCw0NDApIHdpZHRoIDI2MTogIjIyIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6
IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSw0NTUpIHNpemUgMHgw
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0NjApIHNpemUgMjYxeDE5CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsNDYwKSB3aWR0aCAyNjE6ICIyMyB1c2VzIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEs
NDc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDgwKSBzaXpl
IDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQ4MCkgd2lkdGggMjY1OiAiMjQgdXNl
cyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDI2NSw0OTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCw1MDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTAwKSB3aWR0
aCAyNjE6ICIyNSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAg
ICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNTE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsNTIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDUyMCkgd2lkdGggMjYxOiAiMjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1
ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDUzNSkgc2l6ZSAweDAKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDU0MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCw1NDApIHdpZHRoIDI2NTogIjI3IHVzZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNTU1
KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTYwKSBzaXplIDI2
NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDU2MCkgd2lkdGggMjY1OiAiMjggdXNlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDI2NSw1NzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCw1ODApIHNpemUgMjY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTgwKSB3aWR0aCAy
NjU6ICIyOSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAg
ICAgUmVuZGVyQlIge0JSfSBhdCAoMjY1LDU5NSkgc2l6ZSAweDAKK2xheWVyIGF0ICgyOCwyMCkg
c2l6ZSAyMDJ4MjAyIGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgc2Nyb2xsV2lkdGggMTkw
IHNjcm9sbEhlaWdodCAyMTAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDApIHNpemUgMjAy
eDIwMiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDE2MCwyMCkgc2l6
ZSAxMjB4MjQwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTYw
LDIwKSBzaXplIDEyMHgyNDAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0ICgzOSwxMzEpIHNp
emUgMTgweDkwIGJhY2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQg
KDI5LDIxKSBzaXplIDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUK
KyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAzIHtESVZ9IGF0ICgxMSwx
MTEpIHNpemUgMTgweDkwIFtiZ2NvbG9yPSM4MDgwODBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQt
c2Nyb2xsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2
YTExNTc2ZWJhODEyYWMzMzRhYTA4MzE4NTkzMmI0ZDQwN2I5YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8t
Y29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDE0NiBAQAorPCFET0NUWVBFIGh0
bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJo
dHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgPHRpdGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQg
c2Nyb2xsaW5nPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVu
Ij4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDog
MjAwcHg7CisgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgbWFyZ2luOiAyMHB4OworICAg
ICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAg
ICAgIHdpZHRoOiAxODBweDsKKyAgICAgIGhlaWdodDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBw
eDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgfQorCisgICAgLnBvc2l0aW9uZWQgeworICAgICAgd2lkdGg6IDEyMHB4OworICAg
ICAgaGVpZ2h0OiAyNDBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIH0KKworICAgIC5oaWRkZW4geworICAgICAgdmlzaWJp
bGl0eTogaGlkZGVuOworICAgIH0KKworICAgICNwcmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAy
MHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNzdWNjZXNzb3IgeworICAgICAg
bGVmdDogMTYwcHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwodHJ1ZSk7CisKKyAgICBmdW5jdGlv
biBkb1Rlc3QoKQorICAgIHsKKyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdwcmVkZWNlc3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWluZXIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmlyc3RDaGlsZCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2YXIgc2Vjb25k
Q2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZh
ciByZXN1bHQgPSAiIjsKKyAgICAgIHZhciBkdW1teSA9IDA7CisgICAgICB2YXIgY291bnQgPSAw
OworCisgICAgICB2YXIgZXhwZWN0ZWRfcmVzdWx0cyA9IFsKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwg
dHJ1ZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLAorICAgICAgICB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLAorICAgICAgICB0cnVl
LCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRy
dWUsIGZhbHNlLAorICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAg
ICBdOworCisgICAgICBmb3IgKGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgIGZvciAoaiA9
IDA7IGogPCA1OyArK2opIHsKKyAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgMjsgKytrKSB7Cisg
ICAgICAgICAgICB2YXIgbWluWkluZGV4ID0gMDsKKyAgICAgICAgICAgIHZhciBtYXhaSW5kZXgg
PSAwOworICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICBmaXJzdENoaWxk
LnN0eWxlLnpJbmRleCA9ICcxJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUueklu
ZGV4ID0gJzMnOworICAgICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAgICAgICAgICAgfSBl
bHNlIGlmIChpID09IDEpIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXgg
PSAnLTEnOworICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnLTMnOwor
ICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAg
c2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtaW5aSW5kZXgg
PSAtMTsKKyAgICAgICAgICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgdmFyIHNpYmxpbmcgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgIHZhciB0b0hp
ZGUgPSBzdWNjZXNzb3I7CisgICAgICAgICAgICBpZiAoayA9PSAxKSB7CisgICAgICAgICAgICAg
IHNpYmxpbmcgPSBzdWNjZXNzb3I7CisgICAgICAgICAgICAgIHRvSGlkZSA9IHByZWRlY2Vzc29y
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdu
b25lJzsKKyAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICAg
ICAgaWYgKGogPT0gMCkgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9ICht
YXhaSW5kZXggKyAxKS50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDEp
IHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWluWkluZGV4IC0gMSku
dG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAyKSB7CisgICAgICAgICAg
ICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWF4WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKGogPT0gMykgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJ
bmRleCA9IG1pblpJbmRleC50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAoKG1pblpJbmRleCArIG1heFpJbmRleCkg
LyAyKS50b1N0cmluZygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGb3JjZSBh
IHN0eWxlIHJlY2FsYy4KKyAgICAgICAgICAgIGR1bW15ID0gY29udGFpbmVyLm9mZnNldFRvcDsK
KworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgdmFy
IGlzQWNjZWxlcmF0ZWQgPSB3aW5kb3cuaW50ZXJuYWxzLnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5n
KGNvbnRhaW5lcik7CisgICAgICAgICAgICAgIHJlc3VsdCArPSBjb3VudC50b1N0cmluZygpICsg
JyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiAnICsgaXNBY2NlbGVyYXRlZCArICcsICcg
KyAoZXhwZWN0ZWRfcmVzdWx0c1tjb3VudF0gPT0gaXNBY2NlbGVyYXRlZCA/ICdQYXNzJyA6ICdG
QUlMJykgKyAnPGJyPic7CisgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgfQorICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0
LCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgPGRpdiBjbGFzcz0i
cG9zaXRpb25lZCIgaWQ9InByZWRlY2Vzc29yIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0
Q2hpbGQiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQi
PjwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InN1Y2Nlc3Nv
ciI+PC9kaXY+CisgIDxkaXYgaWQ9InJlc3VsdCIgY2xhc3M9ImhpZGRlbiI+PC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163657</attachid>
            <date>2012-09-12 11:05:37 -0700</date>
            <delta_ts>2012-09-13 11:06:59 -0700</delta_ts>
            <desc>Attempt to make the bots happier</desc>
            <filename>bug-94743-20120912140510.patch</filename>
            <type>text/plain</type>
            <size>28827</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzkzYWI0ZjJiZjJlZDJi
NGMxZjlhZWZlNThiYjEwNDY5ZDc5ZTcwNy4uNmJjZTE1NGI0ODg4ZDc0MmI2YmI1ZDI2YTFmOTVm
NWQyZjk1NTlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA5LTExICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBkaXYgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtp
dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNh
bGx5CisgICAgICAgIG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUg
dG8gZG8gc28uIFRoaXMgY2FuIGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlz
IGltcG9ydGFudCB0aGF0IGF1dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAg
ZW5hYmxlZCB2aWEgYSBzZXR0aW5nLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCk6CisgICAgICAgICAgQWRkcyB0aGUgbmV3IHNldHRp
bmcgZm9yIGVuYWJsaW5nIGF1dG9tYXRpY2FsbHkgb3B0aW5nIGludG8gY29tcG9zaXRlZCBzY3Jv
bGxpbmcuCisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzWkluZGV4UmVzcGVjdGVkKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZWZmZWN0aXZlWkluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OmZpcnN0QXBwZWFyaW5nRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpj
b3VsZEZhbGxCZXR3ZWVuRGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6bm9uRGVzY2Vu
ZGFudEluVGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpmaW5kTWluQW5kTWF4WkluZGljZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQpOgorICAg
ICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgUmVuZGVyTGF5ZXIgY291bGQgYmVjb21lIGEgc3Rh
Y2tpbmcgY29udGV4dCB3aXRob3V0CisgICAgICAgICAgYWZmZWN0aW5nIHRoZSBzdGFja2luZyBv
cmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZyk6CisgICAgICAgICAgSGFzIGJlZW4gdXBkYXRlZCB0byByZXR1cm4gdHJ1ZSBpZiBpdCBj
YW4gc2FmZWx5IGVzdGFibGlzaCBhIHN0YWNraW5nCisgICAgICAgICAgY29udGV4dCwgYW5kIHRo
ZSBzZXR0aW5nIGlzIHR1cm5lZCBvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
Y3JvbGxUbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChS
ZW5kZXJMYXllcik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGwpOgorICAgICAgICAgIEFsbG93cyBlbmFibGluZyB0aGUgc2V0dGluZyBp
biBsYXlvdXQgdGVzdHMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZyk6CisgICAgICAgICAgQWxsb3dzIGxheW91dCB0ZXN0cyB0byBjaGVjayBpZiBhIGRpdiBp
cyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wOS0xMiAgRmxvcmluIE1hbGl0YSAgPGZt
YWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGdldFNjcmVlbkNUTSByZXR1cm5zIGRpZmZl
cmVudCB2YWx1ZXMgZGVwZW5kaW5nIG9uIHpvb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5k
ZXggZjI1MTUwYjUxNmMzOTY1MzVjMzhiZWZjYTNjYjJhMmE2OGZlZWEwZi4uMTcwYzQ1MmY5ZWI0
OGZlN2Y2OWZjMDdjY2Y2M2JkMmI3ZDVhMGI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
QEAgLTIyMCw2ICsyMjAsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAs
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQodHJ1ZSkKICAgICAs
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKGZhbHNlKQog
ICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQo
ZmFsc2UpCisgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiAgICAgLCBtX3No
b3dSZXBhaW50Q291bnRlcihmYWxzZSkKICAgICAsIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9u
c0VuYWJsZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNmZhM2JjMDI0YjhiOGMy
ZjlhY2MwZWQwM2QyNjE5ZDQ2NjUzMjk2My4uMDkxNzMzOTU3MzhhNjNlZGRjMjk4ZGY1MmE0OTYz
OTUzMGNlMzVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzgzLDYgKzM4Myw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkID0gZW5hYmxlZDsgfQogICAgICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXNFbmFibGVkOyB9CiAKKyAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgICAgIGJvb2wg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsg
fQorCiAgICAgICAgIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKICAgICAgICAgYm9v
bCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9
CiAKQEAgLTcyOSw2ICs3MzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAg
IGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXNFbmFibGVkIDogMTsgLy8gV29ya3Mgb25seSBpbiBjb25qdW5jdGlvbiB3aXRoIGZvcmNlQ29t
cG9zaXRpbmdNb2RlCisgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnMg
OiAxOwogICAgICAgICBib29sIG1fc2hvd1JlcGFpbnRDb3VudGVyIDogMTsKICAgICAgICAgYm9v
bCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIDogMTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDMwZjc1OWM1ZDVjOTgzMGFkNjQ5OTI5OGM4
NmUyOWYzNGUxNmNjYWQuLjlkOGVjODk5MmIxOTg1ODljOGI5MDJhYjdhN2MzYTRiM2Y1M2Y4NzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNjY2LDYgKzY2
NiwxMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlUGFnaW5hdGlvbigpCiAgICAgfQogfQog
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorc3RhdGljIGJvb2wgaXNaSW5kZXhS
ZXNwZWN0ZWQoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKQoreworICAgIHJldHVybiBsYXllci0+
aXNTdGFja2luZ0NvbnRleHQoKTsKK30KKworLy8gU2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0NT
UzIvdmlzdXJlbi5odG1sI3Bvc2l0aW9uaW5nLXNjaGVtZS4KK3N0YXRpYyBkb3VibGUgZWZmZWN0
aXZlWkluZGV4KGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKK3sKKyAgICBpZiAoIWxheWVyKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChpc1pJbmRleFJlc3BlY3RlZChsYXllcikpCisg
ICAgICAgIHJldHVybiBsYXllci0+ekluZGV4KCk7CisKKyAgICBpZiAoIWxheWVyLT5yZW5kZXJl
cigpLT5pc0lubGluZSgpCisgICAgICAgICYmIGxheWVyLT5pc05vcm1hbEZsb3dPbmx5KCkKKyAg
ICAgICAgJiYgIWxheWVyLT5yZW5kZXJlcigpLT5pc1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgcmV0
dXJuIC0wLjc1OworCisgICAgaWYgKCFsYXllci0+cmVuZGVyZXIoKS0+aXNQb3NpdGlvbmVkKCkK
KyAgICAgICAgJiYgbGF5ZXItPnJlbmRlcmVyKCktPmlzRmxvYXRpbmcoKSkKKyAgICAgICAgcmV0
dXJuIC0wLjU7CisKKyAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCktPmlzSW5saW5lKCkKKyAgICAg
ICAgJiYgbGF5ZXItPmlzTm9ybWFsRmxvd09ubHkoKQorICAgICAgICAmJiAhbGF5ZXItPnJlbmRl
cmVyKCktPmlzUG9zaXRpb25lZCgpKQorICAgICAgICByZXR1cm4gLTAuMjU7CisKKyAgICByZXR1
cm4gMDsKK30KKworc3RhdGljIGNvbnN0IFJlbmRlckxheWVyKiBmaXJzdEFwcGVhcmluZ0Rlc2Nl
bmRhbnQoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciwgY29uc3QgUmVuZGVyTGF5ZXIq
IGZpcnN0TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiBzZWNvbmRMYXllcikKK3sKKyAgICBpZiAo
Y3VycmVudExheWVyID09IGZpcnN0TGF5ZXIgfHwgY3VycmVudExheWVyID09IHNlY29uZExheWVy
KQorICAgICAgICByZXR1cm4gY3VycmVudExheWVyOworCisgICAgZm9yIChjb25zdCBSZW5kZXJM
YXllciogY2hpbGQgPSBjdXJyZW50TGF5ZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyTGF5ZXIqIGZvdW5k
ID0gZmlyc3RBcHBlYXJpbmdEZXNjZW5kYW50KGNoaWxkLCBmaXJzdExheWVyLCBzZWNvbmRMYXll
cik7CisgICAgICAgIGlmIChmb3VuZCkKKyAgICAgICAgICAgIHJldHVybiBmb3VuZDsKKyAgICB9
CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGJvb2wgY291bGRGYWxsQmV0d2VlbkRlc2Nl
bmRhbnRzKGNvbnN0IFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVy
KiBsYXllclRvQmVQcm9tb3RlZCwgZG91YmxlIHpNaW4sIGRvdWJsZSB6TWF4KQoreworICAgIGlm
ICghaXNaSW5kZXhSZXNwZWN0ZWQoY3VycmVudExheWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgZG91YmxlIGN1cnJlbnRaSW5kZXggPSBlZmZlY3RpdmVaSW5kZXgoY3VycmVudExh
eWVyKTsKKworICAgIGlmICgoY3VycmVudFpJbmRleCA+IHpNaW4gfHwgKGN1cnJlbnRaSW5kZXgg
PT0gek1pbiAmJiBmaXJzdEFwcGVhcmluZ0Rlc2NlbmRhbnQobGF5ZXJUb0JlUHJvbW90ZWQtPnN0
YWNraW5nQ29udGV4dCgpLCBsYXllclRvQmVQcm9tb3RlZCwgY3VycmVudExheWVyKSA9PSBsYXll
clRvQmVQcm9tb3RlZCkpCisgICAgICAgICYmIChjdXJyZW50WkluZGV4IDwgek1heCB8fCAoY3Vy
cmVudFpJbmRleCA9PSB6TWF4ICYmIGZpcnN0QXBwZWFyaW5nRGVzY2VuZGFudChsYXllclRvQmVQ
cm9tb3RlZC0+c3RhY2tpbmdDb250ZXh0KCksIGxheWVyVG9CZVByb21vdGVkLCBjdXJyZW50TGF5
ZXIpID09IGN1cnJlbnRMYXllcikpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVy
biBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgbm9uRGVzY2VuZGFudEluVGhpc1N0YWNraW5nQ29u
dGV4dENvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyhjb25zdCBSZW5kZXJMYXllciogY3VycmVu
dExheWVyLCBjb25zdCBSZW5kZXJMYXllciogbGF5ZXJUb0JlUHJvbW90ZWQsIGRvdWJsZSB6TWlu
LCBkb3VibGUgek1heCkKK3sKKyAgICBpZiAoIWN1cnJlbnRMYXllcikKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgZm9yIChjb25zdCBSZW5kZXJMYXllciogY2hpbGQgPSBjdXJyZW50TGF5
ZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
KyAgICAgICAgaWYgKGNoaWxkID09IGxheWVyVG9CZVByb21vdGVkKQorICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgaWYgKGNvdWxkRmFsbEJldHdlZW5EZXNjZW5kYW50cyhjaGlsZCwg
bGF5ZXJUb0JlUHJvbW90ZWQsIHpNaW4sIHpNYXgpIHx8ICghY2hpbGQtPmlzU3RhY2tpbmdDb250
ZXh0KCkgJiYgbm9uRGVzY2VuZGFudEluVGhpc1N0YWNraW5nQ29udGV4dENvdWxkRmFsbEJldHdl
ZW5EZXNjZW5kYW50cyhjaGlsZCwgbGF5ZXJUb0JlUHJvbW90ZWQsIHpNaW4sIHpNYXgpKSkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwor
c3RhdGljIHZvaWQgZmluZE1pbkFuZE1heFpJbmRpY2VzKGNvbnN0IFJlbmRlckxheWVyKiBsYXll
ciwgZG91YmxlJiB6TWluLCBkb3VibGUmIHpNYXgpCit7CisgICAgek1pbiA9IG1pbih6TWluLCBl
ZmZlY3RpdmVaSW5kZXgobGF5ZXIpKTsKKyAgICB6TWF4ID0gbWF4KHpNYXgsIGVmZmVjdGl2ZVpJ
bmRleChsYXllcikpOworCisgICAgaWYgKCFsYXllci0+aGFzVmlzaWJsZURlc2NlbmRhbnQoKSB8
fCBsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9y
IChSZW5kZXJMYXllciogY2hpbGQgPSBsYXllci0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgZmluZE1pbkFuZE1heFpJbmRpY2VzKGNo
aWxkLCB6TWluLCB6TWF4KTsKK30KKworYm9vbCBSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0
KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgZG91YmxlIHpNaW4gPSBzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46Om1heCgpOworICAgIGRvdWJsZSB6TWF4ID0gLXN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6bWF4KCk7CisgICAgZmluZE1pbkFuZE1heFpJbmRpY2VzKHRoaXMs
IHpNaW4sIHpNYXgpOworCisgICAgaWYgKHpNaW4gPj0gek1heCkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICByZXR1cm4gIW5vbkRlc2NlbmRhbnRJblRoaXNTdGFja2luZ0NvbnRleHRDb3Vs
ZEZhbGxCZXR3ZWVuRGVzY2VuZGFudHMoc3RhY2tpbmdDb250ZXh0KCksIHRoaXMsIHpNaW4sIHpN
YXgpOworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50
KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQgJiYgIW1fdmlzaWJsZUNvbnRlbnRT
dGF0dXNEaXJ0eSkgewpAQCAtMTU3MywxMSArMTY3NywxNSBAQCBib29sIFJlbmRlckxheWVyOjp1
c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0CiAgICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3co
KSB8fCAhYWxsb3dzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJv
b2wgYXV0b21hdGljYWxseU9wdEluID0gcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0
aW5ncygpLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkK
KyAgICAgICAgJiYgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpOworCiAjaWYg
RU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKLSAgICByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUo
KS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpOworICAgIHJldHVybiByZW5kZXJlcigpLT5z
dHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkgfHwgYXV0b21hdGljYWxseU9wdElu
OwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGF1dG9tYXRpY2FsbHlPcHRJ
bjsKICNlbmRpZgorCiB9CiAjZW5kaWYKIApAQCAtMTczMSw4ICsxODM5LDE1IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKICAgICAgICAgZnJhbWUtPmV2ZW50SGFu
ZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQocXVhZEZvckZha2VN
b3VzZU1vdmVFdmVudCk7CiAgICAgfQogCisgICAgYm9vbCByZXF1aXJlc1JlcGFpbnQgPSB0cnVl
OworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChjb21wb3NpdG9y
KCktPmluQ29tcG9zaXRpbmdNb2RlKCkgJiYgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAg
ICAgICAgcmVxdWlyZXNSZXBhaW50ID0gZmFsc2U7CisjZW5kaWYKKwogICAgIC8vIEp1c3Qgc2No
ZWR1bGUgYSBmdWxsIHJlcGFpbnQgb2Ygb3VyIG9iamVjdC4KLSAgICBpZiAodmlldyAmJiAhdXNl
c0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICBpZiAodmlldyAmJiByZXF1aXJlc1JlcGFpbnQp
CiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFp
bmVyLCBtX3JlcGFpbnRSZWN0KTsKIAogICAgIC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwgRE9NIGV2
ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA3YzA5NTNhZjQ5
NTNhNTE5YThhMThhNjJjNjE1NWQzYjBkN2E0ODA3Li5mNmRkYmM4MDFiY2MwNjQ1NDAzMmYyMjc3
OGQ1YjAxMTQ2YjMxMzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApA
QCAtODc3LDYgKzg3Nyw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRJbmRpcmVjdENvbXBvc2l0
aW5nUmVhc29uKEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gcmVhc29uKSB7IG1faW5kaXJlY3RD
b21wb3NpdGluZ1JlYXNvbiA9IHJlYXNvbjsgfQogICAgIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b24gaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+KG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbik7
IH0KICAgICBib29sIG11c3RDb21wb3NpdGVGb3JJbmRpcmVjdFJlYXNvbnMoKSBjb25zdCB7IHJl
dHVybiBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247IH0KKworICAgIC8vIFJldHVybnMgdHJ1
ZSBpZmYgeiBvcmRlcmluZyB3b3VsZCBub3QgY2hhbmdlIGlmIHRoaXMgbGF5ZXIgd2VyZSB0byBl
c3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0LgorICAgIGJvb2wgY2FuU2FmZWx5RXN0YWJsaXNo
QVN0YWNraW5nQ29udGV4dCgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgUmVu
ZGVyTGF5ZXJCYWNraW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAKaW5kZXggNjY5ZDA1ZWI2MWNkYmM2Y2Q5ODc5NjBjYjQwNTA5Mzk3NDkyNzgyOS4uN2Ix
NThjMWY0NjcyZGJiOGI2ZGFkNWJiMDYwNmIyNTU5ZTVjN2ZlZCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMjAsNiArMjIwLDEyIEBAIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVz
KGJvb2wgZW5hYmxlZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVy
bmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBl
bmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRG
b3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGEzNzYyYmJlODA5
MDE5ODUyN2U5NzQ3YjdjMWU3ZDZiZmJkNWQ0OWYuLjc4YzkyODcwMjAzMTUyMWVhZTY2ZTJmYzZh
YTJhMjBkYmQzNzZmZWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oCkBAIC05NSw2ICs5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRp
bmdNb2RlKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdG
b3JPdmVyZmxvd1Njcm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwKaW5kZXggNTE3YmFhNjMzZTM3OTc2MzJmZjUxMjY2ZjI4ZTU5NzNmNGRl
YTM5MC4uMzI4Yzc2MTFjMmU5YjdmMmY5MDM5N2U3ZjM1MTFhMjI4OTZhNGU1YSAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0zMSw2ICszMSw3IEBA
IG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGlu
IGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0
RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JT
Y3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChpbiBi
b29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0TW9j
a1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMDRjZmVjZDBkMWQxMmQ2
YWE2NmUwZDBlNDEzYTk4NWM4N2IwNDg3ZS4uYTI1M2I4MWViNzhhN2I2NGI4ZmM2NDQwYTlmZWUx
OWFmMmU1ZDQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTAxLDYg
KzEwMSwxMCBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2VuZGlmCiAKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CkBAIC0xMTAzLDYgKzExMDcsMzcgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2li
bGUoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgcGFnZU51bWJlciwgRXhjZXB0aW9uQ28KICAgICBy
ZXR1cm4gZG9jdW1lbnQtPmlzUGFnZUJveFZpc2libGUocGFnZU51bWJlcik7CiB9CiAKK2Jvb2wg
SW50ZXJuYWxzOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhOb2RlKiBub2RlLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKCFu
b2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QgPSBub2RlLT5y
ZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyT2JqZWN0KSB7CisgICAgICAgIGVjID0gSU5WQUxJ
RF9OT0RFX1RZUEVfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYg
KCFyZW5kZXJPYmplY3QtPmhhc0xheWVyKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRF
X0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFJlbmRlckxheWVyKiBy
ZW5kZXJMYXllciA9IHJlbmRlck9iamVjdC0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICBpZiAoIXJl
bmRlckxheWVyKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVuZGVyTGF5ZXItPnVzZXNDb21wb3Np
dGVkU2Nyb2xsaW5nKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2
b2lkIEludGVybmFsczo6c3VzcGVuZEFuaW1hdGlvbnMoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNl
cHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+
ZnJhbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggYjBmMTYwNGI5NzU1
Y2E4NmFkZjZlZTYwNGNhMTY2YzMxYmQzN2FmMi4uODUzYmU0YjkwYmVkZWQ0MjdiODExOTZlNDdm
MjI0NWY1Njg1NGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xNzMsNiAr
MTczLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BhZ2VCb3hWaXNpYmxlKERvY3VtZW50Kiwg
aW50IHBhZ2VOdW1iZXIsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIGJvb2wgdXNlc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBpbnRlcm5hbHNJZDsKIAogICAgIEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZjYyY2VhYzg1N2YxOGNj
YmFmY2ZjMDJlNjM3Y2NlOWE3ZTMwY2Y3MC4uZDI0OTA1ZTE2ZmUyMDBlZmYyYzUxNzNiYjVmOGIw
ODQ4OTkzMmRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTUxLDYg
KzE1MSw4IEBAIG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIGJvb2xlYW4gaXNQYWdlQm94Vmlz
aWJsZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAKKyAgICAgICAgYm9vbGVhbiB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhp
biBOb2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBzZXR0aW5nczsKIAogICAgICAgICB2b2lkIHN1c3Bl
bmRBbmltYXRpb25zKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMTE0MDhhOGM4NjhiY2I2ZjIxODE3N2E0OTcyM2QzMGQ0ZmU5YzJhMy4uNmVmYjc3
ODg3ZjUyNDcyNDU3MjI3NzMwNzQ1ZWE5NWExYjBiNjcxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDEyLTA5LTExICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEF1dG9tYXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc0MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIHZhcmlvdXMgY29uZmlndXJh
dGlvbnMgb2YgZWxlbWVudHMgdG8gZW5zdXJlIHRoYXQgd2Ugb25seSBhdXRvbWF0aWNhbGx5IG9w
dCBpbnRvCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIHdoZW4gaXQgaXMgc2FmZSB0byBk
byBzby4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0
LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQt
c2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTEyICBGbG9yaW4gTWFsaXRhICA8Zm1h
bGl0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgZ2V0U2NyZWVuQ1RNIHJldHVybnMgZGlmZmVy
ZW50IHZhbHVlcyBkZXBlbmRpbmcgb24gem9vbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9s
bGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRv
bWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNDg4ZDFhMTNiNTMwZjZlYjY2ZGQxNGI4YWMyMjZmYmZkNjc1NzM4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxs
eS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDg1MAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgNzg1eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4ODUwIGxheWVyVHlwZTogYmFj
a2dyb3VuZCBvbmx5CitsYXllciBhdCAoMzksMzEpIHNpemUgMTgweDkwIGJhY2tncm91bmRDbGlw
IGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgb3V0
bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZl
IHBvc2l0aW9uZWQpIHpJOiAtMSB7RElWfSBhdCAoMTEsMTEpIHNpemUgMTgweDkwIFtiZ2NvbG9y
PSM4MDgwODBdCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg4NTAgbGF5ZXJUeXBlOiBmb3JlZ3Jv
dW5kIG9ubHkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDg1MAorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDIwKSBzaXplIDc2OXg4MjIKKyAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDIyMikgc2l6ZSA3Njl4NjAwCisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDI1M3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDI1MzogIjAgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAg
ICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMjApIHdpZHRoIDI1MzogIjEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwg
UGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDM1KSBzaXplIDB4MAorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsNDApIHdpZHRoIDI1MzogIjIgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDU1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNjApIHNpemUgMjUzeDE5CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsNjApIHdpZHRoIDI1MzogIjMgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDc1
KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsODApIHNpemUgMjU3
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsODApIHdpZHRoIDI1NzogIjQgdXNlcyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0g
YXQgKDI1Nyw5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEw
MCkgc2l6ZSAyNTN4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxMDApIHdpZHRoIDI1Mzog
IjUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjUzLDExNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDEyMCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxMjAp
IHdpZHRoIDI1NzogIjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxMzUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxNDApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMTQwKSB3aWR0aCAyNTc6ICI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6
IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNTcsMTU1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTYwKSBzaXplIDI1N3gxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDE2MCkgd2lkdGggMjU3OiAiOCB1c2VzIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjU3
LDE3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4MCkgc2l6
ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxODApIHdpZHRoIDI1NzogIjkgdXNl
cyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDI1NywxOTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwyMDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjAwKSB3aWR0
aCAyNjE6ICIxMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAg
ICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMjIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDIyMCkgd2lkdGggMjYxOiAiMTEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1
ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDIzNSkgc2l6ZSAweDAKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDI0MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwyNDApIHdpZHRoIDI2MTogIjEyIHVzZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwyNTUp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyNjApIHNpemUgMjYx
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjYwKSB3aWR0aCAyNjE6ICIxMyB1c2VzIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9
IGF0ICgyNjEsMjc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MjgwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDI4MCkgd2lkdGggMjYx
OiAiMTQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAg
UmVuZGVyQlIge0JSfSBhdCAoMjYxLDI5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDMwMCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwz
MDApIHdpZHRoIDI2MTogIjE1IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBh
c3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwzMTUpIHNpemUgMHgwCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzMjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMzIwKSB3aWR0aCAyNjE6ICIxNiB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzM1KSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzQwKSBzaXplIDI2NXgxOQor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM0MCkgd2lkdGggMjY1OiAiMTcgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDI2NSwzNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzNjAp
IHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYwKSB3aWR0aCAyNjE6ICIx
OCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5k
ZXJCUiB7QlJ9IGF0ICgyNjEsMzc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMzgwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM4MCkg
d2lkdGggMjY1OiAiMTkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzOTUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0MDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsNDAwKSB3aWR0aCAyNjE6ICIyMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDE1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDIwKSBzaXplIDI2MXgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDQyMCkgd2lkdGggMjYxOiAiMjEgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYx
LDQzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDQ0MCkgc2l6
ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0NDApIHdpZHRoIDI2MTogIjIyIHVz
ZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDI2MSw0NTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCw0NjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDYwKSB3aWR0
aCAyNjE6ICIyMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAg
ICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsNDgwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDQ4MCkgd2lkdGggMjY1OiAiMjQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFs
c2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSw0OTUpIHNpemUgMHgwCisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1MDApIHNpemUgMjYxeDE5CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsNTAwKSB3aWR0aCAyNjE6ICIyNSB1c2VzIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNTE1
KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTIwKSBzaXplIDI2
MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDUyMCkgd2lkdGggMjYxOiAiMjYgdXNlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JS
fSBhdCAoMjYxLDUzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDU0MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1NDApIHdpZHRoIDI2
NTogIjI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAg
ICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNTU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsNTYwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDU2MCkgd2lkdGggMjY1OiAiMjggdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2Us
IFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSw1NzUpIHNpemUgMHgwCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1ODApIHNpemUgMjY1eDE5CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsNTgwKSB3aWR0aCAyNjU6ICIyOSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjY1LDU5NSkg
c2l6ZSAweDAKK2xheWVyIGF0ICgyOCwyMCkgc2l6ZSAyMDJ4MjAyIGNsaXAgYXQgKDI5LDIxKSBz
aXplIDE4NXgxODUgc2Nyb2xsV2lkdGggMTkwIHNjcm9sbEhlaWdodCAyMTAKKyAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDIwLDApIHNpemUgMjAyeDIwMiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAw
MDApXQorbGF5ZXIgYXQgKDE2MCwyMCkgc2l6ZSAxMjB4MjQwCisgIFJlbmRlckJsb2NrIChwb3Np
dGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTYwLDIwKSBzaXplIDEyMHgyNDAgW2JnY29sb3I9IzAw
ODAwMF0KK2xheWVyIGF0ICgzOSwxMzEpIHNpemUgMTgweDkwIGJhY2tncm91bmRDbGlwIGF0ICgy
OSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgb3V0bGluZUNs
aXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0
aW9uZWQpIHpJOiAzIHtESVZ9IGF0ICgxMSwxMTEpIHNpemUgMTgweDkwIFtiZ2NvbG9yPSM4MDgw
ODBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Ny
b2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2YTExNTc2ZWJhODEyYWMzMzRhYTA4MzE4NTkzMmI0
ZDQwN2I5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbApAQCAt
MCwwICsxLDE0NiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQu
MDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29z
ZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgPHRp
dGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nPC90aXRsZT4KKyAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICBvdmVyZmxvdzogc2Nyb2xs
OworICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdpZHRoOiAxODBweDsKKyAgICAgIGhlaWdo
dDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdy
YXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorCisgICAgLnBvc2l0aW9uZWQg
eworICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVpZ2h0OiAyNDBweDsKKyAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIH0KKwor
ICAgIC5oaWRkZW4geworICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIH0KKworICAgICNw
cmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0K
KworICAgICNzdWNjZXNzb3IgeworICAgICAgbGVmdDogMTYwcHg7CisgICAgICB0b3A6IDIwcHg7
CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hh
cnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGwodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIHZhciBw
cmVkZWNlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcmVkZWNlc3NvcicpOworICAg
ICAgdmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsK
KyAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVy
Jyk7CisgICAgICB2YXIgZmlyc3RDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJz
dENoaWxkJyk7CisgICAgICB2YXIgc2Vjb25kQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnc2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZhciByZXN1bHQgPSAiIjsKKyAgICAgIHZhciBkdW1t
eSA9IDA7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICB2YXIgZXhwZWN0ZWRfcmVzdWx0
cyA9IFsKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRy
dWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgICAgICB0cnVlLCB0cnVlLCB0cnVl
LCB0cnVlLCB0cnVlLAorICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsCisg
ICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLAorICAgICAgICB0cnVlLCB0cnVl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICBdOworCisgICAgICBmb3IgKGkgPSAwOyBpIDwg
MzsgKytpKSB7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCA1OyArK2opIHsKKyAgICAgICAgICBm
b3IgKGsgPSAwOyBrIDwgMjsgKytrKSB7CisgICAgICAgICAgICB2YXIgbWluWkluZGV4ID0gMDsK
KyAgICAgICAgICAgIHZhciBtYXhaSW5kZXggPSAwOworICAgICAgICAgICAgaWYgKGkgPT0gMCkg
eworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICcxJzsKKyAgICAgICAg
ICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtYXha
SW5kZXggPSAzOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09IDEpIHsKKyAgICAgICAgICAg
ICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAgICAgICAgICAgICBzZWNvbmRD
aGlsZC5zdHlsZS56SW5kZXggPSAnLTMnOworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMzsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUueklu
ZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMn
OworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsKKyAgICAgICAgICAgICAgbWF4WkluZGV4
ID0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHNpYmxpbmcgPSBwcmVkZWNl
c3NvcjsKKyAgICAgICAgICAgIHZhciB0b0hpZGUgPSBzdWNjZXNzb3I7CisgICAgICAgICAgICBp
ZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcgPSBzdWNjZXNzb3I7CisgICAgICAg
ICAgICAgIHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICB0b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgICAgIHNpYmxpbmcuc3R5
bGUuZGlzcGxheSA9ICcnOworICAgICAgICAgICAgaWYgKGogPT0gMCkgeworICAgICAgICAgICAg
ICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAxKS50b1N0cmluZygpOworICAg
ICAgICAgICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHls
ZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAoaiA9PSAyKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWF4
WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGogPT0gMykgeworICAg
ICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJbmRleC50b1N0cmluZygpOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXgg
PSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmluZygpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYy4KKyAgICAgICAgICAgIGR1
bW15ID0gY29udGFpbmVyLm9mZnNldFRvcDsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgICAgdmFyIGlzQWNjZWxlcmF0ZWQgPSB3aW5kb3cuaW50ZXJu
YWxzLnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGNvbnRhaW5lcik7CisgICAgICAgICAgICAgIHJl
c3VsdCArPSBjb3VudC50b1N0cmluZygpICsgJyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiAnICsgaXNBY2NlbGVyYXRlZCArICcsICcgKyAoZXhwZWN0ZWRfcmVzdWx0c1tjb3VudF0gPT0g
aXNBY2NlbGVyYXRlZCA/ICdQYXNzJyA6ICdGQUlMJykgKyAnPGJyPic7CisgICAgICAgICAgICAg
IGNvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9
CisKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSBy
ZXN1bHQ7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICAgIH0KKworICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keT4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InByZWRlY2Vzc29yIj48
L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2
IGNsYXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0Q2hpbGQiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9
InNjcm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQiPjwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBjbGFz
cz0icG9zaXRpb25lZCIgaWQ9InN1Y2Nlc3NvciI+PC9kaXY+CisgIDxkaXYgaWQ9InJlc3VsdCIg
Y2xhc3M9ImhpZGRlbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163913</attachid>
            <date>2012-09-13 11:07:05 -0700</date>
            <delta_ts>2012-09-13 11:10:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20120913140637.patch</filename>
            <type>text/plain</type>
            <size>32322</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzkzYWI0ZjJiZjJlZDJi
NGMxZjlhZWZlNThiYjEwNDY5ZDc5ZTcwNy4uMDk3NTQ5YTUxNzk4ZWUyZDc3YjkwMDU4NTI5OGE4
YmNhNjZlNWQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA5LTEzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBkaXYgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtp
dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNh
bGx5CisgICAgICAgIG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUg
dG8gZG8gc28uIFRoaXMgY2FuIGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlz
IGltcG9ydGFudCB0aGF0IGF1dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAg
ZW5hYmxlZCB2aWEgYSBzZXR0aW5nLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCk6CisgICAgICAgICAgQWRkcyB0aGUgbmV3IHNldHRp
bmcgZm9yIGVuYWJsaW5nIGF1dG9tYXRpY2FsbHkgb3B0aW5nIGludG8gY29tcG9zaXRlZCBzY3Jv
bGxpbmcuCisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aXNEZXNjZW5k
YW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjb3VudERlc2NlbmRhbnROb25E
ZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tp
bmdDb250ZXh0KToKKyAgICAgICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIFJlbmRlckxheWVyIGNv
dWxkIGJlY29tZSBhIHN0YWNraW5nIGNvbnRleHQgd2l0aG91dAorICAgICAgICAgIGFmZmVjdGlu
ZyB0aGUgc3RhY2tpbmcgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXNl
c0NvbXBvc2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAgIEhhcyBiZWVuIHVwZGF0ZWQgdG8gcmV0
dXJuIHRydWUgaWYgaXQgY2FuIHNhZmVseSBlc3RhYmxpc2ggYSBzdGFja2luZworICAgICAgICAg
IGNvbnRleHQsIGFuZCB0aGUgc2V0dGluZyBpcyB0dXJuZWQgb24uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnJlYnVpbGRaT3JkZXJMaXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBk
YXRlTm9ybWFsRmxvd0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlYnVp
bGROb3JtYWxGbG93TGlzdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwpOgorICAgICAgICAgIEFsbG93cyBlbmFibGluZyB0aGUg
c2V0dGluZyBpbiBsYXlvdXQgdGVzdHMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZyk6CisgICAgICAgICAgQWxsb3dzIGxheW91dCB0ZXN0cyB0byBjaGVjayBp
ZiBhIGRpdiBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wOS0xMiAgRmxvcmluIE1h
bGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGdldFNjcmVlbkNUTSByZXR1
cm5zIGRpZmZlcmVudCB2YWx1ZXMgZGVwZW5kaW5nIG9uIHpvb20KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKaW5kZXggZjI1MTUwYjUxNmMzOTY1MzVjMzhiZWZjYTNjYjJhMmE2OGZlZWEwZi4uMTcw
YzQ1MmY5ZWI0OGZlN2Y2OWZjMDdjY2Y2M2JkMmI3ZDVhMGI1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAKQEAgLTIyMCw2ICsyMjAsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFn
ZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQodHJ1
ZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVk
KGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1l
c0VuYWJsZWQoZmFsc2UpCisgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiAg
ICAgLCBtX3Nob3dSZXBhaW50Q291bnRlcihmYWxzZSkKICAgICAsIG1fZXhwZXJpbWVudGFsTm90
aWZpY2F0aW9uc0VuYWJsZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNmZhM2Jj
MDI0YjhiOGMyZjlhY2MwZWQwM2QyNjE5ZDQ2NjUzMjk2My4uMDkxNzMzOTU3MzhhNjNlZGRjMjk4
ZGY1MmE0OTYzOTUzMGNlMzVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzgzLDYgKzM4
Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkID0gZW5hYmxlZDsg
fQogICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVz
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9s
bGFibGVGcmFtZXNFbmFibGVkOyB9CiAKKyAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAg
ICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xs
RW5hYmxlZDsgfQorCiAgICAgICAgIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKICAg
ICAgICAgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93RGVidWdC
b3JkZXJzOyB9CiAKQEAgLTcyOSw2ICs3MzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6IDE7
CiAgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVu
YWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9s
bGFibGVGcmFtZXNFbmFibGVkIDogMTsgLy8gV29ya3Mgb25seSBpbiBjb25qdW5jdGlvbiB3aXRo
IGZvcmNlQ29tcG9zaXRpbmdNb2RlCisgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3dEZWJ1
Z0JvcmRlcnMgOiAxOwogICAgICAgICBib29sIG1fc2hvd1JlcGFpbnRDb3VudGVyIDogMTsKICAg
ICAgICAgYm9vbCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIDogMTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDMwZjc1OWM1ZDVjOTgzMGFk
NjQ5OTI5OGM4NmUyOWYzNGUxNmNjYWQuLmM2N2JjNjBhMDc0YTQxOGU1NTczZjk3NTVlMDc4MmQ4
ZjkzYmZkNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAt
NjY2LDYgKzY2Niw4NyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkKICAg
ICB9CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitzdGF0aWMgYm9vbCBp
c0Rlc2NlbmRhbnQoY29uc3QgUmVuZGVyTGF5ZXIqIHBhcmVudCwgY29uc3QgUmVuZGVyTGF5ZXIq
IGNoaWxkKQoreworICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnQgPSBjaGlsZDsg
Y3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPnBhcmVudCgpKQorICAgICAgICBpZiAoY3VycmVu
dCA9PSBwYXJlbnQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3Vu
ZGFyaWVzRm9yTGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbGF5ZXJMaXN0LCBjb25zdCBSZW5k
ZXJMYXllciogdG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5kYXJpZXMsIGJvb2wmIGxhc3RFbGVt
ZW50V2FzRGVzY2VuZGFudCkKK3sKKyAgICBpZiAoIWxheWVyTGlzdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllckxpc3QtPnNpemUoKTsgKytpKQor
ICAgICAgICBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0luWk9yZGVyVHJl
ZShsYXllckxpc3QtPmF0KGkpLCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVt
ZW50V2FzRGVzY2VuZGFudCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFu
dE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0IFJlbmRlckxheWVyKiBj
dXJyZW50TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQsIGludCYgbnVtQm91
bmRhcmllcywgYm9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQoreworICAgIGlmICgoY3Vy
cmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpICYmIGN1cnJlbnRMYXllciAhPSB0b0JlUHJv
bW90ZWQtPnN0YWNraW5nQ29udGV4dCgpKSB8fCBjdXJyZW50TGF5ZXIgPT0gdG9CZVByb21vdGVk
KSB7CisgICAgICAgIGlmIChpc0Rlc2NlbmRhbnQodG9CZVByb21vdGVkLCBjdXJyZW50TGF5ZXIp
KSB7CisgICAgICAgICAgICBpZiAoIWxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAg
ICAgICAgICBudW1Cb3VuZGFyaWVzKys7CisgICAgICAgICAgICBsYXN0RWxlbWVudFdhc0Rlc2Nl
bmRhbnQgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGxhc3RFbGVt
ZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgICAgICAgICBudW1Cb3VuZGFyaWVzKys7CisgICAg
ICAgICAgICBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQgPSBmYWxzZTsKKyAgICAgICAgfQorICAg
IH0gZWxzZSB7CisgICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0g
MDsKKyAgICAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSAwOworICAg
ICAgICBpZiAoY3VycmVudExheWVyLT5tX3pPcmRlckxpc3RzRGlydHkpCisgICAgICAgICAgICBj
dXJyZW50TGF5ZXItPnJlYnVpbGRaT3JkZXJMaXN0cyhwb3NaT3JkZXJMaXN0LCBuZWdaT3JkZXJM
aXN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBuZWdaT3JkZXJMaXN0ID0gY3VycmVu
dExheWVyLT5uZWdaT3JkZXJMaXN0KCk7CisgICAgICAgICAgICBwb3NaT3JkZXJMaXN0ID0gY3Vy
cmVudExheWVyLT5wb3NaT3JkZXJMaXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8
UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSAwOworICAgICAgICBpZiAoY3VycmVudExh
eWVyLT5tX25vcm1hbEZsb3dMaXN0RGlydHkpCisgICAgICAgICAgICBjdXJyZW50TGF5ZXItPnJl
YnVpbGROb3JtYWxGbG93TGlzdChub3JtYWxGbG93TGlzdCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG5vcm1hbEZsb3dMaXN0ID0gY3VycmVudExheWVyLT5ub3JtYWxGbG93TGlzdCgpOwor
CisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdChu
ZWdaT3JkZXJMaXN0LCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVtZW50V2Fz
RGVzY2VuZGFudCk7CisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFy
aWVzRm9yTGlzdChub3JtYWxGbG93TGlzdCwgdG9CZVByb21vdGVkLCBudW1Cb3VuZGFyaWVzLCBs
YXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgICAgICBjb3VudERlc2NlbmRhbnROb25EZXNj
YW5kYW50Qm91bmRhcmllc0Zvckxpc3QocG9zWk9yZGVyTGlzdCwgdG9CZVByb21vdGVkLCBudW1C
b3VuZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgIH0KK30KKworYm9vbCBS
ZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Cit7
CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIXN0YWNraW5nQ29udGV4dCgpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIElmIG91ciBwcm9tb3Rpb24gdG8gYSBzdGFja2lu
ZyBjb250ZXh0IHdvdWxkIG5vdCBhZmZlY3Qgc3RhY2tpbmcgb3JkZXIsCisgICAgLy8gdGhlbiB0
aGlzIGxheWVyIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRlbnRzIHNob3VsZCBhcHBlYXIgYXMgYSBj
b250aW51b3VzCisgICAgLy8gYmxvY2sgaWYgd2UgYXJlIHRvIHRyYXZlcnNlIHRoZSBlbGVtZW50
cyBpbiB0aGUgc3RhY2tpbmcgY29udGV4dCBpbgorICAgIC8vIHBhaW50IG9yZGVyLiBUaGF0IGlz
LCB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgYmV0d2VlbiBkZXNjZW5kYW50cywgYW5kCisgICAg
Ly8gbm9uIGRlc2NlbmRhbnRzIHNob3VsZCBiZSBleGFjdGx5IHR3byAoaWYgd2UgYXNzdW1lIHRo
YXQgaWYgdGhlIGZpcnN0IG9yCisgICAgLy8gbGFzdCBlbGVtZW50IGluIHRoZSBsaXN0IGlzIGEg
ZGVzY2VuZGFudCwgdGhhdCB0aGlzIGlzIGFsc28gYSBib3VuZGFyeSkuCisKKyAgICAvLyBCeSBp
bml0aWFsaXppbmcgdG8gZmFsc2UsIGlmIHRoZSBmaXJzdCBlbGVtZW50IHdlIHNlZSBpcyBhIGRl
c2NlbmRhbnQsCisgICAgLy8gdGhlbiB3ZSBjb3JyZWN0bHkgbWFyayBpdCBhcyBhIGJvdW5kYXJ5
LgorICAgIGJvb2wgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50ID0gZmFsc2U7CisKKyAgICBpbnQg
bnVtQm91bmRhcmllcyA9IDA7CisKKyAgICBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91
bmRhcmllc0luWk9yZGVyVHJlZShzdGFja2luZ0NvbnRleHQoKSwgdGhpcywgbnVtQm91bmRhcmll
cywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKworICAgIC8vIElmIHRoZSBsYXN0IGVsZW1l
bnQgd2Ugc2VlIGlzIGEgZGVzY2VuZGFudCwgdGhpcyBpcyBhbHNvIGEgYm91bmRhcnkuCisgICAg
aWYgKGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgbnVtQm91bmRhcmllcysrOwor
CisgICAgcmV0dXJuIG51bUJvdW5kYXJpZXMgPT0gMjsKK30KKworI2VuZGlmCisKIHZvaWQgUmVu
ZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJs
ZUNvbnRlbnQgJiYgIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAtMTU3MywxMSAr
MTY1NCwxNSBAQCBib29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNv
bnN0CiAgICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xsaW5nKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wgYXV0b21hdGljYWxseU9wdEluID0gdHJ1
ZSAvLyByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKQorICAgICAgICAmJiBjYW5TYWZl
bHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCk7CisKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NS
T0xMSU5HKQotICAgIHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93
U2Nyb2xsaW5nKCk7CisgICAgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3Zl
cmZsb3dTY3JvbGxpbmcoKSB8fCBhdXRvbWF0aWNhbGx5T3B0SW47CiAjZWxzZQotICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gYXV0b21hdGljYWxseU9wdEluOwogI2VuZGlmCisKIH0KICNl
bmRpZgogCkBAIC0xNzMxLDggKzE4MTYsMTUgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8o
aW50IHgsIGludCB5KQogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRpc3BhdGNoRmFr
ZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50KTsKICAg
ICB9CiAKKyAgICBib29sIHJlcXVpcmVzUmVwYWludCA9IHRydWU7CisKKyNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKGNvbXBvc2l0b3IoKS0+aW5Db21wb3NpdGluZ01v
ZGUoKSAmJiB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgICAgICByZXF1aXJlc1JlcGFp
bnQgPSBmYWxzZTsKKyNlbmRpZgorCiAgICAgLy8gSnVzdCBzY2hlZHVsZSBhIGZ1bGwgcmVwYWlu
dCBvZiBvdXIgb2JqZWN0LgotICAgIGlmICh2aWV3ICYmICF1c2VzQ29tcG9zaXRlZFNjcm9sbGlu
ZygpKQorICAgIGlmICh2aWV3ICYmIHJlcXVpcmVzUmVwYWludCkKICAgICAgICAgcmVuZGVyZXIo
KS0+cmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIG1fcmVwYWludFJlY3Qp
OwogCiAgICAgLy8gU2NoZWR1bGUgdGhlIHNjcm9sbCBET00gZXZlbnQuCkBAIC00NjY3LDIzICs0
NzU5LDI4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cygpCiAgICAgQVNT
RVJUKG1fbGF5ZXJMaXN0TXV0YXRpb25BbGxvd2VkKTsKICAgICBBU1NFUlQoaXNEaXJ0eVN0YWNr
aW5nQ29udGV4dCgpKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBy
ZWJ1aWxkWk9yZGVyTGlzdHMobV9wb3NaT3JkZXJMaXN0LCBtX25lZ1pPcmRlckxpc3QpOworCisg
ICAgbV96T3JkZXJMaXN0c0RpcnR5ID0gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJl
YnVpbGRaT3JkZXJMaXN0cyhWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIHBvc1pPcmRlckxpc3QsIFZl
Y3RvcjxSZW5kZXJMYXllcio+KiYgbmVnWk9yZGVyTGlzdCkgY29uc3QKK3sKKyAgICAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycyA9
IGNvbXBvc2l0b3IoKS0+aW5Db21wb3NpdGluZ01vZGUoKTsKICNlbHNlCiAgICAgYm9vbCBpbmNs
dWRlSGlkZGVuTGF5ZXJzID0gZmFsc2U7CiAjZW5kaWYKICAgICBmb3IgKFJlbmRlckxheWVyKiBj
aGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
CiAgICAgICAgIGlmICghbV9yZWZsZWN0aW9uIHx8IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxk
KQotICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywg
bV9wb3NaT3JkZXJMaXN0LCBtX25lZ1pPcmRlckxpc3QpOworICAgICAgICAgICAgY2hpbGQtPmNv
bGxlY3RMYXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywgcG9zWk9yZGVyTGlzdCwgbmVnWk9yZGVy
TGlzdCk7CiAKICAgICAvLyBTb3J0IHRoZSB0d28gbGlzdHMuCi0gICAgaWYgKG1fcG9zWk9yZGVy
TGlzdCkKLSAgICAgICAgc3RkOjpzdGFibGVfc29ydChtX3Bvc1pPcmRlckxpc3QtPmJlZ2luKCks
IG1fcG9zWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5kZXgpOworICAgIGlmIChwb3NaT3Jk
ZXJMaXN0KQorICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KHBvc1pPcmRlckxpc3QtPmJlZ2luKCks
IHBvc1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKIAotICAgIGlmIChtX25lZ1pP
cmRlckxpc3QpCi0gICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9uZWdaT3JkZXJMaXN0LT5iZWdp
bigpLCBtX25lZ1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKLQotICAgIG1fek9y
ZGVyTGlzdHNEaXJ0eSA9IGZhbHNlOworICAgIGlmIChuZWdaT3JkZXJMaXN0KQorICAgICAgICBz
dGQ6OnN0YWJsZV9zb3J0KG5lZ1pPcmRlckxpc3QtPmJlZ2luKCksIG5lZ1pPcmRlckxpc3QtPmVu
ZCgpLCBjb21wYXJlWkluZGV4KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTm9ybWFs
Rmxvd0xpc3QoKQpAQCAtNDY5MywxNiArNDc5MCwyMSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVOb3JtYWxGbG93TGlzdCgpCiAKICAgICBBU1NFUlQobV9sYXllckxpc3RNdXRhdGlvbkFsbG93
ZWQpOwogCisgICAgcmVidWlsZE5vcm1hbEZsb3dMaXN0KG1fbm9ybWFsRmxvd0xpc3QpOworCisg
ICAgbV9ub3JtYWxGbG93TGlzdERpcnR5ID0gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6
OnJlYnVpbGROb3JtYWxGbG93TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5vcm1hbEZsb3dM
aXN0KSBjb25zdAorewogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAvLyBJZ25v
cmUgbm9uLW92ZXJmbG93IGxheWVycyBhbmQgcmVmbGVjdGlvbnMuCiAgICAgICAgIGlmIChjaGls
ZC0+aXNOb3JtYWxGbG93T25seSgpICYmICghbV9yZWZsZWN0aW9uIHx8IHJlZmxlY3Rpb25MYXll
cigpICE9IGNoaWxkKSkgewotICAgICAgICAgICAgaWYgKCFtX25vcm1hbEZsb3dMaXN0KQotICAg
ICAgICAgICAgICAgIG1fbm9ybWFsRmxvd0xpc3QgPSBuZXcgVmVjdG9yPFJlbmRlckxheWVyKj47
Ci0gICAgICAgICAgICBtX25vcm1hbEZsb3dMaXN0LT5hcHBlbmQoY2hpbGQpOworICAgICAgICAg
ICAgaWYgKCFub3JtYWxGbG93TGlzdCkKKyAgICAgICAgICAgICAgICBub3JtYWxGbG93TGlzdCA9
IG5ldyBWZWN0b3I8UmVuZGVyTGF5ZXIqPjsKKyAgICAgICAgICAgIG5vcm1hbEZsb3dMaXN0LT5h
cHBlbmQoY2hpbGQpOwogICAgICAgICB9CiAgICAgfQotICAgIAotICAgIG1fbm9ybWFsRmxvd0xp
c3REaXJ0eSA9IGZhbHNlOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKGJv
b2wgaW5jbHVkZUhpZGRlbkxheWVycywgVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3NCdWZmZXIs
IFZlY3RvcjxSZW5kZXJMYXllcio+KiYgbmVnQnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaAppbmRleCA3YzA5NTNhZjQ5NTNhNTE5YThhMThhNjJjNjE1NWQzYjBkN2E0
ODA3Li40NmVmYzc5NjE2MDZiOGNmZDU0ZjJhNzk0YzBmZWEzMmJmY2Q0NWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNjgyLDkgKzY4MiwxMSBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICB2b2lkIHJlYnVp
bGRaT3JkZXJMaXN0cygpOworICAgIHZvaWQgcmVidWlsZFpPcmRlckxpc3RzKFZlY3RvcjxSZW5k
ZXJMYXllcio+KiYgcG9zWk9yZGVyTGlzdCwgVmVjdG9yPFJlbmRlckxheWVyKj4qJiBuZWdaT3Jk
ZXJMaXN0KSBjb25zdDsKICAgICB2b2lkIGNsZWFyWk9yZGVyTGlzdHMoKTsKIAogICAgIHZvaWQg
dXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKKyAgICB2b2lkIHJlYnVpbGROb3JtYWxGbG93TGlzdChW
ZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5vcm1hbEZsb3dMaXN0KSBjb25zdDsKIAogICAgIGJvb2wg
aXNTdGFja2luZ0NvbnRleHQoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdCB7IHJldHVy
biAhc3R5bGUtPmhhc0F1dG9aSW5kZXgoKSB8fCBpc1Jvb3RMYXllcigpOyB9CiAgICAgYm9vbCBp
c0RpcnR5U3RhY2tpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV96T3JkZXJMaXN0c0RpcnR5
ICYmIGlzU3RhY2tpbmdDb250ZXh0KCk7IH0KQEAgLTg3Nyw2ICs4NzksMTMgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oSW5kaXJlY3RDb21wb3NpdGlu
Z1JlYXNvbiByZWFzb24pIHsgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uID0gcmVhc29uOyB9
CiAgICAgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBpbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbj4o
bV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKTsgfQogICAgIGJvb2wgbXVzdENvbXBvc2l0ZUZv
ckluZGlyZWN0UmVhc29ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5kaXJlY3RDb21wb3NpdGluZ1Jl
YXNvbjsgfQorCisgICAgLy8gUmV0dXJucyB0cnVlIGlmZiB6IG9yZGVyaW5nIHdvdWxkIG5vdCBj
aGFuZ2UgaWYgdGhpcyBsYXllciB3ZXJlIHRvIGVzdGFibGlzaCBhIHN0YWNraW5nIGNvbnRleHQu
CisgICAgYm9vbCBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3Q7CisK
KyAgICAvLyBUaGVzZSB0d28gbWV0aG9kcyBhcmUgdXNlZCBieSBjYW5TYWZlbHlFc3RhYmxpc2hB
U3RhY2tpbmdDb250ZXh0LgorICAgIHN0YXRpYyB2b2lkIGNvdW50RGVzY2VuZGFudE5vbkRlc2Nh
bmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0IFJlbmRlckxheWVyKiBjdXJyZW50TGF5
ZXIsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQsIGludCYgbnVtQm91bmRhcmllcywg
Ym9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKyAgICBzdGF0aWMgdm9pZCBjb3VudERl
c2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3QoVmVjdG9yPFJlbmRlckxheWVy
Kj4qIGxheWVyTGlzdCwgY29uc3QgUmVuZGVyTGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50JiBudW1C
b3VuZGFyaWVzLCBib29sJiBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOwogI2VuZGlmCiAKICAg
ICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNjY5ZDA1ZWI2MWNkYmM2Y2Q5ODc5NjBjYjQw
NTA5Mzk3NDkyNzgyOS4uN2IxNThjMWY0NjcyZGJiOGI2ZGFkNWJiMDYwNmIyNTU5ZTVjN2ZlZCAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMjAs
NiArMjIwLDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdG
b3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQp
OwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRl
cm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisK
IHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFy
ZEZvclNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CmluZGV4IGEzNzYyYmJlODA5MDE5ODUyN2U5NzQ3YjdjMWU3ZDZiZmJkNWQ0OWYuLjc4YzkyODcw
MjAzMTUyMWVhZTY2ZTJmYzZhYTJhMjBkYmQzNzZmZWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC05NSw2ICs5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3Jv
bGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0
RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFi
bGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0TW9ja1Njcm9s
bGJhcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggNTE3YmFhNjMzZTM3OTc2MzJm
ZjUxMjY2ZjI4ZTU5NzNmNGRlYTM5MC4uMzI4Yzc2MTFjMmU5YjdmMmY5MDM5N2U3ZjM1MTFhMjI4
OTZhNGU1YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
CkBAIC0zMSw2ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEZvcmNl
Q29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JP
dmVyZmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFi
bGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZp
bHRlcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5k
ZXggMDRjZmVjZDBkMWQxMmQ2YWE2NmUwZDBlNDEzYTk4NWM4N2IwNDg3ZS4uYTI1M2I4MWViNzhh
N2I2NGI4ZmM2NDQwYTlmZWUxOWFmMmU1ZDQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcApAQCAtMTAxLDYgKzEwMSwxMCBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2lu
Zy5oIgogI2VuZGlmCiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC0xMTAzLDYgKzExMDcsMzcgQEAgYm9vbCBJbnRlcm5h
bHM6OmlzUGFnZUJveFZpc2libGUoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgcGFnZU51bWJlciwg
RXhjZXB0aW9uQ28KICAgICByZXR1cm4gZG9jdW1lbnQtPmlzUGFnZUJveFZpc2libGUocGFnZU51
bWJlcik7CiB9CiAKK2Jvb2wgSW50ZXJuYWxzOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhOb2Rl
KiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJS
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJPYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyT2JqZWN0KSB7Cisg
ICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKCFyZW5kZXJPYmplY3QtPmhhc0xheWVyKCkpIHsKKyAgICAgICAg
ZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIFJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IHJlbmRlck9iamVjdC0+ZW5jbG9zaW5nTGF5
ZXIoKTsKKyAgICBpZiAoIXJlbmRlckxheWVyKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFU
RV9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVuZGVy
TGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorfQorCiB2b2lkIEludGVybmFsczo6c3VzcGVuZEFuaW1hdGlvbnMoRG9jdW1l
bnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIWRvY3Vt
ZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
aW5kZXggYjBmMTYwNGI5NzU1Y2E4NmFkZjZlZTYwNGNhMTY2YzMxYmQzN2FmMi4uODUzYmU0Yjkw
YmVkZWQ0MjdiODExOTZlNDdmMjI0NWY1Njg1NGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCkBAIC0xNzMsNiArMTczLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BhZ2VCb3hW
aXNpYmxlKERvY3VtZW50KiwgaW50IHBhZ2VOdW1iZXIsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAg
IGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKwog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAogICAgIEludGVybmFsU2V0dGlu
Z3MqIHNldHRpbmdzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5k
ZXggZjYyY2VhYzg1N2YxOGNjYmFmY2ZjMDJlNjM3Y2NlOWE3ZTMwY2Y3MC4uZDI0OTA1ZTE2ZmUy
MDBlZmYyYzUxNzNiYjVmOGIwODQ4OTkzMmRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbApAQCAtMTUxLDYgKzE1MSw4IEBAIG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIGJv
b2xlYW4gaXNQYWdlQm94VmlzaWJsZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBwYWdl
TnVtYmVyKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgYm9vbGVhbiB1c2VzQ29t
cG9zaXRlZFNjcm9sbGluZyhpbiBOb2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBzZXR0aW5nczsKIAog
ICAgICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTE0MDhhOGM4NjhiY2I2ZjIxODE3N2E0OTcyM2Qz
MGQ0ZmU5YzJhMy4uY2E0MjBiZTllMmE2MTkyYzYzMWVkYTRkODMwM2Q1ZmE4ZjA3YWYzNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTEzICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEF1dG9tYXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Nyb2xs
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
IHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb2YgZWxlbWVudHMgdG8gZW5zdXJlIHRoYXQgd2Ugb25s
eSBhdXRvbWF0aWNhbGx5IG9wdCBpbnRvCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIHdo
ZW4gaXQgaXMgc2FmZSB0byBkbyBzby4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93
L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9w
dC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTEyICBG
bG9yaW4gTWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgZ2V0U2NyZWVu
Q1RNIHJldHVybnMgZGlmZmVyZW50IHZhbHVlcyBkZXBlbmRpbmcgb24gem9vbQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50
by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5n
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDg4ZDFhMTNiNTMwZjZlYjY2ZGQxNGI4YWMyMjZm
YmZkNjc1NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDg1MAorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4
ODUwIGxheWVyVHlwZTogYmFja2dyb3VuZCBvbmx5CitsYXllciBhdCAoMzksMzEpIHNpemUgMTgw
eDkwIGJhY2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIx
KSBzaXplIDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVu
ZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAtMSB7RElWfSBhdCAoMTEsMTEpIHNp
emUgMTgweDkwIFtiZ2NvbG9yPSM4MDgwODBdCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg4NTAg
bGF5ZXJUeXBlOiBmb3JlZ3JvdW5kIG9ubHkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgNzg1eDg1MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDIwKSBzaXplIDc2OXg4
MjIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIyMikgc2l6ZSA3Njl4NjAwCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI1M3gxOQorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1MzogIjAgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDE1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjUzeDE5CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDI1MzogIjEgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDM1
KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDApIHNpemUgMjUz
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDApIHdpZHRoIDI1MzogIjIgdXNlcyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBh
dCAoMjUzLDU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNjAp
IHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNjApIHdpZHRoIDI1MzogIjMg
dXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVy
QlIge0JSfSBhdCAoMjUzLDc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsODApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsODApIHdpZHRo
IDI1NzogIjQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAg
ICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1Nyw5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDEwMCkgc2l6ZSAyNTN4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwxMDApIHdpZHRoIDI1MzogIjUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwg
UGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDExNSkgc2l6ZSAweDAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEyMCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwxMjApIHdpZHRoIDI1NzogIjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxMzUpIHNp
emUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxNDApIHNpemUgMjU3eDE5
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTQwKSB3aWR0aCAyNTc6ICI3IHVzZXMgYWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0
ICgyNTcsMTU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTYw
KSBzaXplIDI1N3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE2MCkgd2lkdGggMjU3OiAi
OCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjU3LDE3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDE4MCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxODAp
IHdpZHRoIDI1NzogIjkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxOTUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyMDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMjAwKSB3aWR0aCAyNjE6ICIxMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjE1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjIwKSBzaXplIDI2MXgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDIyMCkgd2lkdGggMjYxOiAiMTEgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYx
LDIzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDI0MCkgc2l6
ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNDApIHdpZHRoIDI2MTogIjEyIHVz
ZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDI2MSwyNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwyNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjYwKSB3aWR0
aCAyNjE6ICIxMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAg
ICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMjgwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDI4MCkgd2lkdGggMjYxOiAiMTQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1
ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDI5NSkgc2l6ZSAweDAKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDMwMCkgc2l6ZSAyNjF4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwzMDApIHdpZHRoIDI2MTogIjE1IHVzZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwzMTUp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzMjApIHNpemUgMjYx
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzIwKSB3aWR0aCAyNjE6ICIxNiB1c2VzIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9
IGF0ICgyNjEsMzM1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MzQwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM0MCkgd2lkdGggMjY1
OiAiMTcgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAg
IFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwzNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MzYwKSB3aWR0aCAyNjE6ICIxOCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQ
YXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzc1KSBzaXplIDB4MAorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzgwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDM4MCkgd2lkdGggMjY1OiAiMTkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzOTUpIHNp
emUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0MDApIHNpemUgMjYxeDE5
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDAwKSB3aWR0aCAyNjE6ICIyMCB1c2VzIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0
ICgyNjEsNDE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDIw
KSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQyMCkgd2lkdGggMjYxOiAi
MjEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjYxLDQzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDQ0MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0NDAp
IHdpZHRoIDI2MTogIjIyIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSw0NTUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0NjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsNDYwKSB3aWR0aCAyNjE6ICIyMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDc1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDgwKSBzaXplIDI2NXgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDQ4MCkgd2lkdGggMjY1OiAiMjQgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2
NSw0OTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1MDApIHNp
emUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTAwKSB3aWR0aCAyNjE6ICIyNSB1
c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJC
UiB7QlJ9IGF0ICgyNjEsNTE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsNTIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDUyMCkgd2lk
dGggMjYxOiAiMjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAg
ICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDUzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDU0MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCw1NDApIHdpZHRoIDI2NTogIjI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZh
bHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNTU1KSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTYwKSBzaXplIDI2NXgxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDU2MCkgd2lkdGggMjY1OiAiMjggdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSw1
NzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1ODApIHNpemUg
MjY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTgwKSB3aWR0aCAyNjU6ICIyOSB1c2Vz
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIg
e0JSfSBhdCAoMjY1LDU5NSkgc2l6ZSAweDAKK2xheWVyIGF0ICgyOCwyMCkgc2l6ZSAyMDJ4MjAy
IGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgc2Nyb2xsV2lkdGggMTkwIHNjcm9sbEhlaWdo
dCAyMTAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDApIHNpemUgMjAyeDIwMiBbYm9yZGVy
OiAoMXB4IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDE2MCwyMCkgc2l6ZSAxMjB4MjQwCisg
IFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTYwLDIwKSBzaXplIDEy
MHgyNDAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0ICgzOSwxMzEpIHNpemUgMTgweDkwIGJh
Y2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIxKSBzaXpl
IDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVuZGVyQmxv
Y2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAzIHtESVZ9IGF0ICgxMSwxMTEpIHNpemUgMTgw
eDkwIFtiZ2NvbG9yPSM4MDgwODBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1p
bnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2YTExNTc2ZWJhODEy
YWMzMzRhYTA4MzE4NTkzMmI0ZDQwN2I5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1z
Y3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDE0NiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICIt
Ly9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9dXRmLTgiLz4KKyAgPHRpdGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nPC90
aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuY29u
dGFpbmVyIHsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAg
ICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdpZHRoOiAx
ODBweDsKKyAgICAgIGhlaWdodDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQor
CisgICAgLnBvc2l0aW9uZWQgeworICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVpZ2h0OiAy
NDBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIH0KKworICAgIC5oaWRkZW4geworICAgICAgdmlzaWJpbGl0eTogaGlkZGVu
OworICAgIH0KKworICAgICNwcmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAg
dG9wOiAyMHB4OworICAgIH0KKworICAgICNzdWNjZXNzb3IgeworICAgICAgbGVmdDogMTYwcHg7
CisgICAgICB0b3A6IDIwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQor
ICAgIHsKKyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdw
cmVkZWNlc3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzdWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmlyc3RDaGlsZCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2YXIgc2Vjb25kQ2hpbGQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZhciByZXN1bHQgPSAi
IjsKKyAgICAgIHZhciBkdW1teSA9IDA7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICB2
YXIgZXhwZWN0ZWRfcmVzdWx0cyA9IFsKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwg
ZmFsc2UsCisgICAgICAgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgICAg
ICB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLAorICAgICAgICB0cnVlLCB0cnVlLCBmYWxz
ZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLAor
ICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICBdOworCisgICAg
ICBmb3IgKGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCA1OyAr
K2opIHsKKyAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgMjsgKytrKSB7CisgICAgICAgICAgICB2
YXIgbWluWkluZGV4ID0gMDsKKyAgICAgICAgICAgIHZhciBtYXhaSW5kZXggPSAwOworICAgICAg
ICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRl
eCA9ICcxJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOwor
ICAgICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09
IDEpIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAg
ICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnLTMnOworICAgICAgICAgICAg
ICBtaW5aSW5kZXggPSAtMzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGZp
cnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQu
c3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsKKyAgICAg
ICAgICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFy
IHNpYmxpbmcgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgIHZhciB0b0hpZGUgPSBzdWNjZXNz
b3I7CisgICAgICAgICAgICBpZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcgPSBz
dWNjZXNzb3I7CisgICAgICAgICAgICAgIHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICB0b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAg
ICAgICAgIHNpYmxpbmcuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICAgICAgaWYgKGogPT0g
MCkgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAx
KS50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAgICAgICAg
ICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAyKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcu
c3R5bGUuekluZGV4ID0gbWF4WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKGogPT0gMykgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJ
bmRleC50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgc2li
bGluZy5zdHlsZS56SW5kZXggPSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmlu
ZygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2Fs
Yy4KKyAgICAgICAgICAgIGR1bW15ID0gY29udGFpbmVyLm9mZnNldFRvcDsKKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgdmFyIGlzQWNjZWxlcmF0
ZWQgPSB3aW5kb3cuaW50ZXJuYWxzLnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGNvbnRhaW5lcik7
CisgICAgICAgICAgICAgIHJlc3VsdCArPSBjb3VudC50b1N0cmluZygpICsgJyB1c2VzIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nOiAnICsgaXNBY2NlbGVyYXRlZCArICcsICcgKyAoZXhwZWN0ZWRf
cmVzdWx0c1tjb3VudF0gPT0gaXNBY2NlbGVyYXRlZCA/ICdQYXNzJyA6ICdGQUlMJykgKyAnPGJy
Pic7CisgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICAgIH0K
KworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7Cisg
IDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIg
aWQ9InByZWRlY2Vzc29yIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0iY29u
dGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0Q2hpbGQiPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQiPjwvZGl2PgorICA8
L2Rpdj4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InN1Y2Nlc3NvciI+PC9kaXY+Cisg
IDxkaXYgaWQ9InJlc3VsdCIgY2xhc3M9ImhpZGRlbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CisK
</data>
<flag name="commit-queue"
          id="175537"
          type_id="3"
          status="-"
          setter="vollick"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163915</attachid>
            <date>2012-09-13 11:09:45 -0700</date>
            <delta_ts>2012-09-13 11:56:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20120913140917.patch</filename>
            <type>text/plain</type>
            <size>32314</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzkzYWI0ZjJiZjJlZDJi
NGMxZjlhZWZlNThiYjEwNDY5ZDc5ZTcwNy4uMDk3NTQ5YTUxNzk4ZWUyZDc3YjkwMDU4NTI5OGE4
YmNhNjZlNWQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA5LTEzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBkaXYgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtp
dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNh
bGx5CisgICAgICAgIG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUg
dG8gZG8gc28uIFRoaXMgY2FuIGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlz
IGltcG9ydGFudCB0aGF0IGF1dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAg
ZW5hYmxlZCB2aWEgYSBzZXR0aW5nLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCk6CisgICAgICAgICAgQWRkcyB0aGUgbmV3IHNldHRp
bmcgZm9yIGVuYWJsaW5nIGF1dG9tYXRpY2FsbHkgb3B0aW5nIGludG8gY29tcG9zaXRlZCBzY3Jv
bGxpbmcuCisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aXNEZXNjZW5k
YW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjb3VudERlc2NlbmRhbnROb25E
ZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tp
bmdDb250ZXh0KToKKyAgICAgICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIFJlbmRlckxheWVyIGNv
dWxkIGJlY29tZSBhIHN0YWNraW5nIGNvbnRleHQgd2l0aG91dAorICAgICAgICAgIGFmZmVjdGlu
ZyB0aGUgc3RhY2tpbmcgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXNl
c0NvbXBvc2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAgIEhhcyBiZWVuIHVwZGF0ZWQgdG8gcmV0
dXJuIHRydWUgaWYgaXQgY2FuIHNhZmVseSBlc3RhYmxpc2ggYSBzdGFja2luZworICAgICAgICAg
IGNvbnRleHQsIGFuZCB0aGUgc2V0dGluZyBpcyB0dXJuZWQgb24uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnJlYnVpbGRaT3JkZXJMaXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBk
YXRlTm9ybWFsRmxvd0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlYnVp
bGROb3JtYWxGbG93TGlzdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwpOgorICAgICAgICAgIEFsbG93cyBlbmFibGluZyB0aGUg
c2V0dGluZyBpbiBsYXlvdXQgdGVzdHMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZyk6CisgICAgICAgICAgQWxsb3dzIGxheW91dCB0ZXN0cyB0byBjaGVjayBp
ZiBhIGRpdiBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wOS0xMiAgRmxvcmluIE1h
bGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGdldFNjcmVlbkNUTSByZXR1
cm5zIGRpZmZlcmVudCB2YWx1ZXMgZGVwZW5kaW5nIG9uIHpvb20KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKaW5kZXggZjI1MTUwYjUxNmMzOTY1MzVjMzhiZWZjYTNjYjJhMmE2OGZlZWEwZi4uMTcw
YzQ1MmY5ZWI0OGZlN2Y2OWZjMDdjY2Y2M2JkMmI3ZDVhMGI1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAKQEAgLTIyMCw2ICsyMjAsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFn
ZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQodHJ1
ZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVk
KGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1l
c0VuYWJsZWQoZmFsc2UpCisgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiAg
ICAgLCBtX3Nob3dSZXBhaW50Q291bnRlcihmYWxzZSkKICAgICAsIG1fZXhwZXJpbWVudGFsTm90
aWZpY2F0aW9uc0VuYWJsZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNmZhM2Jj
MDI0YjhiOGMyZjlhY2MwZWQwM2QyNjE5ZDQ2NjUzMjk2My4uMDkxNzMzOTU3MzhhNjNlZGRjMjk4
ZGY1MmE0OTYzOTUzMGNlMzVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzgzLDYgKzM4
Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkID0gZW5hYmxlZDsg
fQogICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVz
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9s
bGFibGVGcmFtZXNFbmFibGVkOyB9CiAKKyAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAg
ICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xs
RW5hYmxlZDsgfQorCiAgICAgICAgIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKICAg
ICAgICAgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93RGVidWdC
b3JkZXJzOyB9CiAKQEAgLTcyOSw2ICs3MzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6IDE7
CiAgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVu
YWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9s
bGFibGVGcmFtZXNFbmFibGVkIDogMTsgLy8gV29ya3Mgb25seSBpbiBjb25qdW5jdGlvbiB3aXRo
IGZvcmNlQ29tcG9zaXRpbmdNb2RlCisgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3dEZWJ1
Z0JvcmRlcnMgOiAxOwogICAgICAgICBib29sIG1fc2hvd1JlcGFpbnRDb3VudGVyIDogMTsKICAg
ICAgICAgYm9vbCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIDogMTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDMwZjc1OWM1ZDVjOTgzMGFk
NjQ5OTI5OGM4NmUyOWYzNGUxNmNjYWQuLjhjMzExNTgyNjY0OTI1N2IxNTU5OGM5OWIzYWVlOTY3
Njc5YTJhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAt
NjY2LDYgKzY2Niw4NyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkKICAg
ICB9CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitzdGF0aWMgYm9vbCBp
c0Rlc2NlbmRhbnQoY29uc3QgUmVuZGVyTGF5ZXIqIHBhcmVudCwgY29uc3QgUmVuZGVyTGF5ZXIq
IGNoaWxkKQoreworICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnQgPSBjaGlsZDsg
Y3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPnBhcmVudCgpKQorICAgICAgICBpZiAoY3VycmVu
dCA9PSBwYXJlbnQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3Vu
ZGFyaWVzRm9yTGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbGF5ZXJMaXN0LCBjb25zdCBSZW5k
ZXJMYXllciogdG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5kYXJpZXMsIGJvb2wmIGxhc3RFbGVt
ZW50V2FzRGVzY2VuZGFudCkKK3sKKyAgICBpZiAoIWxheWVyTGlzdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllckxpc3QtPnNpemUoKTsgKytpKQor
ICAgICAgICBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0luWk9yZGVyVHJl
ZShsYXllckxpc3QtPmF0KGkpLCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVt
ZW50V2FzRGVzY2VuZGFudCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFu
dE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0IFJlbmRlckxheWVyKiBj
dXJyZW50TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQsIGludCYgbnVtQm91
bmRhcmllcywgYm9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQoreworICAgIGlmICgoY3Vy
cmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpICYmIGN1cnJlbnRMYXllciAhPSB0b0JlUHJv
bW90ZWQtPnN0YWNraW5nQ29udGV4dCgpKSB8fCBjdXJyZW50TGF5ZXIgPT0gdG9CZVByb21vdGVk
KSB7CisgICAgICAgIGlmIChpc0Rlc2NlbmRhbnQodG9CZVByb21vdGVkLCBjdXJyZW50TGF5ZXIp
KSB7CisgICAgICAgICAgICBpZiAoIWxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAg
ICAgICAgICBudW1Cb3VuZGFyaWVzKys7CisgICAgICAgICAgICBsYXN0RWxlbWVudFdhc0Rlc2Nl
bmRhbnQgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGxhc3RFbGVt
ZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgICAgICAgICBudW1Cb3VuZGFyaWVzKys7CisgICAg
ICAgICAgICBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQgPSBmYWxzZTsKKyAgICAgICAgfQorICAg
IH0gZWxzZSB7CisgICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0g
MDsKKyAgICAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSAwOworICAg
ICAgICBpZiAoY3VycmVudExheWVyLT5tX3pPcmRlckxpc3RzRGlydHkpCisgICAgICAgICAgICBj
dXJyZW50TGF5ZXItPnJlYnVpbGRaT3JkZXJMaXN0cyhwb3NaT3JkZXJMaXN0LCBuZWdaT3JkZXJM
aXN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBuZWdaT3JkZXJMaXN0ID0gY3VycmVu
dExheWVyLT5uZWdaT3JkZXJMaXN0KCk7CisgICAgICAgICAgICBwb3NaT3JkZXJMaXN0ID0gY3Vy
cmVudExheWVyLT5wb3NaT3JkZXJMaXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8
UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSAwOworICAgICAgICBpZiAoY3VycmVudExh
eWVyLT5tX25vcm1hbEZsb3dMaXN0RGlydHkpCisgICAgICAgICAgICBjdXJyZW50TGF5ZXItPnJl
YnVpbGROb3JtYWxGbG93TGlzdChub3JtYWxGbG93TGlzdCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG5vcm1hbEZsb3dMaXN0ID0gY3VycmVudExheWVyLT5ub3JtYWxGbG93TGlzdCgpOwor
CisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdChu
ZWdaT3JkZXJMaXN0LCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVtZW50V2Fz
RGVzY2VuZGFudCk7CisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFy
aWVzRm9yTGlzdChub3JtYWxGbG93TGlzdCwgdG9CZVByb21vdGVkLCBudW1Cb3VuZGFyaWVzLCBs
YXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgICAgICBjb3VudERlc2NlbmRhbnROb25EZXNj
YW5kYW50Qm91bmRhcmllc0Zvckxpc3QocG9zWk9yZGVyTGlzdCwgdG9CZVByb21vdGVkLCBudW1C
b3VuZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgIH0KK30KKworYm9vbCBS
ZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Cit7
CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIXN0YWNraW5nQ29udGV4dCgpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIElmIG91ciBwcm9tb3Rpb24gdG8gYSBzdGFja2lu
ZyBjb250ZXh0IHdvdWxkIG5vdCBhZmZlY3Qgc3RhY2tpbmcgb3JkZXIsCisgICAgLy8gdGhlbiB0
aGlzIGxheWVyIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRlbnRzIHNob3VsZCBhcHBlYXIgYXMgYSBj
b250aW51b3VzCisgICAgLy8gYmxvY2sgaWYgd2UgYXJlIHRvIHRyYXZlcnNlIHRoZSBlbGVtZW50
cyBpbiB0aGUgc3RhY2tpbmcgY29udGV4dCBpbgorICAgIC8vIHBhaW50IG9yZGVyLiBUaGF0IGlz
LCB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgYmV0d2VlbiBkZXNjZW5kYW50cywgYW5kCisgICAg
Ly8gbm9uIGRlc2NlbmRhbnRzIHNob3VsZCBiZSBleGFjdGx5IHR3byAoaWYgd2UgYXNzdW1lIHRo
YXQgaWYgdGhlIGZpcnN0IG9yCisgICAgLy8gbGFzdCBlbGVtZW50IGluIHRoZSBsaXN0IGlzIGEg
ZGVzY2VuZGFudCwgdGhhdCB0aGlzIGlzIGFsc28gYSBib3VuZGFyeSkuCisKKyAgICAvLyBCeSBp
bml0aWFsaXppbmcgdG8gZmFsc2UsIGlmIHRoZSBmaXJzdCBlbGVtZW50IHdlIHNlZSBpcyBhIGRl
c2NlbmRhbnQsCisgICAgLy8gdGhlbiB3ZSBjb3JyZWN0bHkgbWFyayBpdCBhcyBhIGJvdW5kYXJ5
LgorICAgIGJvb2wgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50ID0gZmFsc2U7CisKKyAgICBpbnQg
bnVtQm91bmRhcmllcyA9IDA7CisKKyAgICBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91
bmRhcmllc0luWk9yZGVyVHJlZShzdGFja2luZ0NvbnRleHQoKSwgdGhpcywgbnVtQm91bmRhcmll
cywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKworICAgIC8vIElmIHRoZSBsYXN0IGVsZW1l
bnQgd2Ugc2VlIGlzIGEgZGVzY2VuZGFudCwgdGhpcyBpcyBhbHNvIGEgYm91bmRhcnkuCisgICAg
aWYgKGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgbnVtQm91bmRhcmllcysrOwor
CisgICAgcmV0dXJuIG51bUJvdW5kYXJpZXMgPT0gMjsKK30KKworI2VuZGlmCisKIHZvaWQgUmVu
ZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJs
ZUNvbnRlbnQgJiYgIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAtMTU3MywxMSAr
MTY1NCwxNSBAQCBib29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNv
bnN0CiAgICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xsaW5nKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wgYXV0b21hdGljYWxseU9wdEluID0gcmVu
ZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkKKyAgICAgICAgJiYgY2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCgpOworCiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykK
LSAgICByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGlu
ZygpOworICAgIHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Ny
b2xsaW5nKCkgfHwgYXV0b21hdGljYWxseU9wdEluOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIGF1dG9tYXRpY2FsbHlPcHRJbjsKICNlbmRpZgorCiB9CiAjZW5kaWYKIApA
QCAtMTczMSw4ICsxODE2LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBp
bnQgeSkKICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1v
dmVFdmVudFNvb25JblF1YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCisg
ICAgYm9vbCByZXF1aXJlc1JlcGFpbnQgPSB0cnVlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQorICAgIGlmIChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCkgJiYg
dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICAgICAgcmVxdWlyZXNSZXBhaW50ID0gZmFs
c2U7CisjZW5kaWYKKwogICAgIC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJlcGFpbnQgb2Ygb3Vy
IG9iamVjdC4KLSAgICBpZiAodmlldyAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAg
ICBpZiAodmlldyAmJiByZXF1aXJlc1JlcGFpbnQpCiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFp
bnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBtX3JlcGFpbnRSZWN0KTsKIAogICAg
IC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwgRE9NIGV2ZW50LgpAQCAtNDY2NywyMyArNDc1OSwyOCBA
QCB2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMoKQogICAgIEFTU0VSVChtX2xh
eWVyTGlzdE11dGF0aW9uQWxsb3dlZCk7CiAgICAgQVNTRVJUKGlzRGlydHlTdGFja2luZ0NvbnRl
eHQoKSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgcmVidWlsZFpP
cmRlckxpc3RzKG1fcG9zWk9yZGVyTGlzdCwgbV9uZWdaT3JkZXJMaXN0KTsKKworICAgIG1fek9y
ZGVyTGlzdHNEaXJ0eSA9IGZhbHNlOworfQorCit2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9y
ZGVyTGlzdHMoVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3NaT3JkZXJMaXN0LCBWZWN0b3I8UmVu
ZGVyTGF5ZXIqPiomIG5lZ1pPcmRlckxpc3QpIGNvbnN0Cit7CisgICAgI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBib29sIGluY2x1ZGVIaWRkZW5MYXllcnMgPSBjb21wb3Np
dG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCk7CiAjZWxzZQogICAgIGJvb2wgaW5jbHVkZUhpZGRl
bkxheWVycyA9IGZhbHNlOwogI2VuZGlmCiAgICAgZm9yIChSZW5kZXJMYXllciogY2hpbGQgPSBm
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAg
ICBpZiAoIW1fcmVmbGVjdGlvbiB8fCByZWZsZWN0aW9uTGF5ZXIoKSAhPSBjaGlsZCkKLSAgICAg
ICAgICAgIGNoaWxkLT5jb2xsZWN0TGF5ZXJzKGluY2x1ZGVIaWRkZW5MYXllcnMsIG1fcG9zWk9y
ZGVyTGlzdCwgbV9uZWdaT3JkZXJMaXN0KTsKKyAgICAgICAgICAgIGNoaWxkLT5jb2xsZWN0TGF5
ZXJzKGluY2x1ZGVIaWRkZW5MYXllcnMsIHBvc1pPcmRlckxpc3QsIG5lZ1pPcmRlckxpc3QpOwog
CiAgICAgLy8gU29ydCB0aGUgdHdvIGxpc3RzLgotICAgIGlmIChtX3Bvc1pPcmRlckxpc3QpCi0g
ICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9wb3NaT3JkZXJMaXN0LT5iZWdpbigpLCBtX3Bvc1pP
cmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKKyAgICBpZiAocG9zWk9yZGVyTGlzdCkK
KyAgICAgICAgc3RkOjpzdGFibGVfc29ydChwb3NaT3JkZXJMaXN0LT5iZWdpbigpLCBwb3NaT3Jk
ZXJMaXN0LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7CiAKLSAgICBpZiAobV9uZWdaT3JkZXJMaXN0
KQotICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KG1fbmVnWk9yZGVyTGlzdC0+YmVnaW4oKSwgbV9u
ZWdaT3JkZXJMaXN0LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7Ci0KLSAgICBtX3pPcmRlckxpc3Rz
RGlydHkgPSBmYWxzZTsKKyAgICBpZiAobmVnWk9yZGVyTGlzdCkKKyAgICAgICAgc3RkOjpzdGFi
bGVfc29ydChuZWdaT3JkZXJMaXN0LT5iZWdpbigpLCBuZWdaT3JkZXJMaXN0LT5lbmQoKSwgY29t
cGFyZVpJbmRleCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU5vcm1hbEZsb3dMaXN0
KCkKQEAgLTQ2OTMsMTYgKzQ3OTAsMjEgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTm9ybWFs
Rmxvd0xpc3QoKQogCiAgICAgQVNTRVJUKG1fbGF5ZXJMaXN0TXV0YXRpb25BbGxvd2VkKTsKIAor
ICAgIHJlYnVpbGROb3JtYWxGbG93TGlzdChtX25vcm1hbEZsb3dMaXN0KTsKKworICAgIG1fbm9y
bWFsRmxvd0xpc3REaXJ0eSA9IGZhbHNlOworfQorCit2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxk
Tm9ybWFsRmxvd0xpc3QoVmVjdG9yPFJlbmRlckxheWVyKj4qJiBub3JtYWxGbG93TGlzdCkgY29u
c3QKK3sKICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgLy8gSWdub3JlIG5vbi1v
dmVyZmxvdyBsYXllcnMgYW5kIHJlZmxlY3Rpb25zLgogICAgICAgICBpZiAoY2hpbGQtPmlzTm9y
bWFsRmxvd09ubHkoKSAmJiAoIW1fcmVmbGVjdGlvbiB8fCByZWZsZWN0aW9uTGF5ZXIoKSAhPSBj
aGlsZCkpIHsKLSAgICAgICAgICAgIGlmICghbV9ub3JtYWxGbG93TGlzdCkKLSAgICAgICAgICAg
ICAgICBtX25vcm1hbEZsb3dMaXN0ID0gbmV3IFZlY3RvcjxSZW5kZXJMYXllcio+OwotICAgICAg
ICAgICAgbV9ub3JtYWxGbG93TGlzdC0+YXBwZW5kKGNoaWxkKTsKKyAgICAgICAgICAgIGlmICgh
bm9ybWFsRmxvd0xpc3QpCisgICAgICAgICAgICAgICAgbm9ybWFsRmxvd0xpc3QgPSBuZXcgVmVj
dG9yPFJlbmRlckxheWVyKj47CisgICAgICAgICAgICBub3JtYWxGbG93TGlzdC0+YXBwZW5kKGNo
aWxkKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKLSAgICBtX25vcm1hbEZsb3dMaXN0RGlydHkg
PSBmYWxzZTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyhib29sIGluY2x1
ZGVIaWRkZW5MYXllcnMsIFZlY3RvcjxSZW5kZXJMYXllcio+KiYgcG9zQnVmZmVyLCBWZWN0b3I8
UmVuZGVyTGF5ZXIqPiomIG5lZ0J1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKaW5kZXggN2MwOTUzYWY0OTUzYTUxOWE4YTE4YTYyYzYxNTVkM2IwZDdhNDgwNy4uNDZl
ZmM3OTYxNjA2YjhjZmQ1NGYyYTc5NGMwZmVhMzJiZmNkNDVmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTY4Miw5ICs2ODIsMTEgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICB2b2lkIHVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgdm9pZCByZWJ1aWxkWk9yZGVy
TGlzdHMoKTsKKyAgICB2b2lkIHJlYnVpbGRaT3JkZXJMaXN0cyhWZWN0b3I8UmVuZGVyTGF5ZXIq
PiomIHBvc1pPcmRlckxpc3QsIFZlY3RvcjxSZW5kZXJMYXllcio+KiYgbmVnWk9yZGVyTGlzdCkg
Y29uc3Q7CiAgICAgdm9pZCBjbGVhclpPcmRlckxpc3RzKCk7CiAKICAgICB2b2lkIHVwZGF0ZU5v
cm1hbEZsb3dMaXN0KCk7CisgICAgdm9pZCByZWJ1aWxkTm9ybWFsRmxvd0xpc3QoVmVjdG9yPFJl
bmRlckxheWVyKj4qJiBub3JtYWxGbG93TGlzdCkgY29uc3Q7CiAKICAgICBib29sIGlzU3RhY2tp
bmdDb250ZXh0KGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QgeyByZXR1cm4gIXN0eWxl
LT5oYXNBdXRvWkluZGV4KCkgfHwgaXNSb290TGF5ZXIoKTsgfQogICAgIGJvb2wgaXNEaXJ0eVN0
YWNraW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fek9yZGVyTGlzdHNEaXJ0eSAmJiBpc1N0
YWNraW5nQ29udGV4dCgpOyB9CkBAIC04NzcsNiArODc5LDEzIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24g
cmVhc29uKSB7IG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA9IHJlYXNvbjsgfQogICAgIElu
ZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+KG1faW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbik7IH0KICAgICBib29sIG11c3RDb21wb3NpdGVGb3JJbmRpcmVj
dFJlYXNvbnMoKSBjb25zdCB7IHJldHVybiBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247IH0K
KworICAgIC8vIFJldHVybnMgdHJ1ZSBpZmYgeiBvcmRlcmluZyB3b3VsZCBub3QgY2hhbmdlIGlm
IHRoaXMgbGF5ZXIgd2VyZSB0byBlc3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0LgorICAgIGJv
b2wgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0OworCisgICAgLy8g
VGhlc2UgdHdvIG1ldGhvZHMgYXJlIHVzZWQgYnkgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5n
Q29udGV4dC4KKyAgICBzdGF0aWMgdm9pZCBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91
bmRhcmllc0luWk9yZGVyVHJlZShjb25zdCBSZW5kZXJMYXllciogY3VycmVudExheWVyLCBjb25z
dCBSZW5kZXJMYXllciogdG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5kYXJpZXMsIGJvb2wmIGxh
c3RFbGVtZW50V2FzRGVzY2VuZGFudCk7CisgICAgc3RhdGljIHZvaWQgY291bnREZXNjZW5kYW50
Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JMaXN0KFZlY3RvcjxSZW5kZXJMYXllcio+KiBsYXll
ckxpc3QsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQsIGludCYgbnVtQm91bmRhcmll
cywgYm9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKICNlbmRpZgogCiAgICAgZnJpZW5k
IGNsYXNzIFJlbmRlckxheWVyQmFja2luZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCmluZGV4IDY2OWQwNWViNjFjZGJjNmNkOTg3OTYwY2I0MDUwOTM5NzQ5
Mjc4MjkuLjdiMTU4YzFmNDY3MmRiYjhiNmRhZDViYjA2MDZiMjU1OWU1YzdmZWQgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMjIwLDYgKzIyMCwx
MiBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xs
YWJsZUZyYW1lcyhib29sIGVuYWJsZWQsIEV4YwogICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZChlbmFibGVkKTsKIH0KIAor
dm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0
aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKGVuYWJsZWQpOworfQorCiB2b2lkIElu
dGVybmFsU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0
aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBh
Mzc2MmJiZTgwOTAxOTg1MjdlOTc0N2I3YzFlN2Q2YmZiZDVkNDlmLi43OGM5Mjg3MDIwMzE1MjFl
YWU2NmUyZmM2YWEyYTIwZGJkMzc2ZmVkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaApAQCAtOTUsNiArOTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZy
YW1lcyhib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5h
YmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IDUxN2JhYTYzM2UzNzk3NjMyZmY1MTI2NmYy
OGU1OTczZjRkZWEzOTAuLjMyOGM3NjExYzJlOWI3ZjJmOTAzOTdlN2YzNTExYTIyODk2YTRlNWEg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMzEs
NiArMzEsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0
aW5nTW9kZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAg
ICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihpbiBib29sZWFuIGVu
YWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGwoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
dm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2
b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDA0Y2Zl
Y2QwZDFkMTJkNmFhNjZlMGQwZTQxM2E5ODVjODdiMDQ4N2UuLmEyNTNiODFlYjc4YTdiNjRiOGZj
NjQ0MGE5ZmVlMTlhZjJlNWQ0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
QEAgLTEwMSw2ICsxMDEsMTAgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNl
bmRpZgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwpAQCAtMTEwMyw2ICsxMTA3LDM3IEBAIGJvb2wgSW50ZXJuYWxzOjppc1Bh
Z2VCb3hWaXNpYmxlKERvY3VtZW50KiBkb2N1bWVudCwgaW50IHBhZ2VOdW1iZXIsIEV4Y2VwdGlv
bkNvCiAgICAgcmV0dXJuIGRvY3VtZW50LT5pc1BhZ2VCb3hWaXNpYmxlKHBhZ2VOdW1iZXIpOwog
fQogCitib29sIEludGVybmFsczo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoTm9kZSogbm9kZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
ICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0
ID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlck9iamVjdCkgeworICAgICAgICBl
YyA9IElOVkFMSURfTk9ERV9UWVBFX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIGlmICghcmVuZGVyT2JqZWN0LT5oYXNMYXllcigpKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBSZW5k
ZXJMYXllciogcmVuZGVyTGF5ZXIgPSByZW5kZXJPYmplY3QtPmVuY2xvc2luZ0xheWVyKCk7Cisg
ICAgaWYgKCFyZW5kZXJMYXllcikgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHJlbmRlckxheWVyLT51
c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKK30KKwogdm9pZCBJbnRlcm5hbHM6OnN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiBkb2N1
bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAh
ZG9jdW1lbnQtPmZyYW1lKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGIw
ZjE2MDRiOTc1NWNhODZhZGY2ZWU2MDRjYTE2NmMzMWJkMzdhZjIuLjg1M2JlNGI5MGJlZGVkNDI3
YjgxMTk2ZTQ3ZjIyNDVmNTY4NTRlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApA
QCAtMTczLDYgKzE3Myw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQYWdlQm94VmlzaWJsZShE
b2N1bWVudCosIGludCBwYWdlTnVtYmVyLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICBib29sIHVz
ZXNDb21wb3NpdGVkU2Nyb2xsaW5nKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CisKICAgICBzdGF0
aWMgY29uc3QgY2hhciogaW50ZXJuYWxzSWQ7CiAKICAgICBJbnRlcm5hbFNldHRpbmdzKiBzZXR0
aW5ncygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGY2MmNl
YWM4NTdmMThjY2JhZmNmYzAyZTYzN2NjZTlhN2UzMGNmNzAuLmQyNDkwNWUxNmZlMjAwZWZmMmM1
MTczYmI1ZjhiMDg0ODk5MzJkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
QEAgLTE1MSw2ICsxNTEsOCBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBib29sZWFuIGlz
UGFnZUJveFZpc2libGUoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgcGFnZU51bWJlcikg
cmFpc2VzIChET01FeGNlcHRpb24pOwogCisgICAgICAgIGJvb2xlYW4gdXNlc0NvbXBvc2l0ZWRT
Y3JvbGxpbmcoaW4gTm9kZSBub2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEludGVybmFsU2V0dGluZ3Mgc2V0dGluZ3M7CiAKICAgICAgICAg
dm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01F
eGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDExNDA4YThjODY4YmNiNmYyMTgxNzdhNDk3MjNkMzBkNGZlOWMy
YTMuLmNhNDIwYmU5ZTJhNjE5MmM2MzFlZGE0ZDgzMDNkNWZhOGYwN2FmMzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wOS0xMyAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNjcm9sbGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ3NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyB2YXJpb3Vz
IGNvbmZpZ3VyYXRpb25zIG9mIGVsZW1lbnRzIHRvIGVuc3VyZSB0aGF0IHdlIG9ubHkgYXV0b21h
dGljYWxseSBvcHQgaW50bworICAgICAgICBjb21wb3NpdGVkIHNjcm9sbGluZyB3aGVuIGl0IGlz
IHNhZmUgdG8gZG8gc28uCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1j
b21wb3NpdGVkLXNjcm9sbGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0wOS0xMiAgRmxvcmluIE1h
bGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGdldFNjcmVlbkNUTSByZXR1
cm5zIGRpZmZlcmVudCB2YWx1ZXMgZGVwZW5kaW5nIG9uIHpvb20KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9z
aXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTQ4OGQxYTEzYjUzMGY2ZWI2NmRkMTRiOGFjMjI2ZmJmZDY3NTcz
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1
dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTA1IEBACitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg4NTAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDc4NXg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDg1MCBsYXll
clR5cGU6IGJhY2tncm91bmQgb25seQorbGF5ZXIgYXQgKDM5LDMxKSBzaXplIDE4MHg5MCBiYWNr
Z3JvdW5kQ2xpcCBhdCAoMjksMjEpIHNpemUgMTg1eDE4NSBjbGlwIGF0ICgyOSwyMSkgc2l6ZSAx
ODV4MTg1IG91dGxpbmVDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1CisgIFJlbmRlckJsb2Nr
IChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogLTEge0RJVn0gYXQgKDExLDExKSBzaXplIDE4MHg5
MCBbYmdjb2xvcj0jODA4MDgwXQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4ODUwIGxheWVyVHlw
ZTogZm9yZWdyb3VuZCBvbmx5CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4
NXg4NTAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwyMCkgc2l6ZSA3Njl4ODIyCisgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyMjIpIHNpemUgNzY5eDYwMAorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNTN4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCAyNTM6ICIwIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUs
IFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1MywxNSkgc2l6ZSAweDAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDIwKSBzaXplIDI1M3gxOQorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDIwKSB3aWR0aCAyNTM6ICIxIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1MywzNSkgc2l6ZSAw
eDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDQwKSBzaXplIDI1M3gxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDQwKSB3aWR0aCAyNTM6ICIyIHVzZXMgYWNjZWxlcmF0ZWQg
Y29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1Myw1
NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDYwKSBzaXplIDI1
M3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDYwKSB3aWR0aCAyNTM6ICIzIHVzZXMgYWNj
ZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0g
YXQgKDI1Myw3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDgw
KSBzaXplIDI1N3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDgwKSB3aWR0aCAyNTc6ICI0
IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5k
ZXJCUiB7QlJ9IGF0ICgyNTcsOTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwxMDApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTAwKSB3
aWR0aCAyNTM6ICI1IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisg
ICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1MywxMTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwxMjApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMTIwKSB3aWR0aCAyNTc6ICI2IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZh
bHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNTcsMTM1KSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTQwKSBzaXplIDI1N3gxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDE0MCkgd2lkdGggMjU3OiAiNyB1c2VzIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjU3LDE1
NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE2MCkgc2l6ZSAy
NTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxNjApIHdpZHRoIDI1NzogIjggdXNlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDI1NywxNzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwxODApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgwKSB3aWR0aCAy
NTc6ICI5IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAg
ICBSZW5kZXJCUiB7QlJ9IGF0ICgyNTcsMTk1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMjAwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDIwMCkgd2lkdGggMjYxOiAiMTAgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwg
UGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDIxNSkgc2l6ZSAweDAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDIyMCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwyMjApIHdpZHRoIDI2MTogIjExIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwyMzUpIHNp
emUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyNDApIHNpemUgMjYxeDE5
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjQwKSB3aWR0aCAyNjE6ICIxMiB1c2VzIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0
ICgyNjEsMjU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjYw
KSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDI2MCkgd2lkdGggMjYxOiAi
MTMgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjYxLDI3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDI4MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyODAp
IHdpZHRoIDI2MTogIjE0IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwyOTUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzMDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMzAwKSB3aWR0aCAyNjE6ICIxNSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzE1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzIwKSBzaXplIDI2MXgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDMyMCkgd2lkdGggMjYxOiAiMTYgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYx
LDMzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDM0MCkgc2l6
ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNDApIHdpZHRoIDI2NTogIjE3IHVz
ZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJC
UiB7QlJ9IGF0ICgyNjUsMzU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMzYwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2MCkgd2lk
dGggMjYxOiAiMTggdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAg
ICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDM3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDM4MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwzODApIHdpZHRoIDI2NTogIjE5IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZh
bHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsMzk1KSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDAwKSBzaXplIDI2MXgxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDQwMCkgd2lkdGggMjYxOiAiMjAgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDQx
NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDQyMCkgc2l6ZSAy
NjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0MjApIHdpZHRoIDI2MTogIjIxIHVzZXMg
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDI2MSw0MzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCw0NDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDQwKSB3aWR0aCAy
NjE6ICIyMiB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAg
ICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsNDYwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDQ2MCkgd2lkdGggMjYxOiAiMjMgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwg
UGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDQ3NSkgc2l6ZSAweDAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDQ4MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCw0ODApIHdpZHRoIDI2NTogIjI0IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNDk1KSBz
aXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTAwKSBzaXplIDI2MXgx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDUwMCkgd2lkdGggMjYxOiAiMjUgdXNlcyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBh
dCAoMjYxLDUxNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDUy
MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1MjApIHdpZHRoIDI2MTog
IjI2IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJl
bmRlckJSIHtCUn0gYXQgKDI2MSw1MzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCw1NDApIHNpemUgMjY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTQw
KSB3aWR0aCAyNjU6ICIyNyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFz
cyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjY1LDU1NSkgc2l6ZSAweDAKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDU2MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCw1NjApIHdpZHRoIDI2NTogIjI4IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNTc1KSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTgwKSBzaXplIDI2NXgxOQor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDU4MCkgd2lkdGggMjY1OiAiMjkgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDI2NSw1OTUpIHNpemUgMHgwCitsYXllciBhdCAoMjgsMjApIHNpemUgMjAyeDIwMiBjbGlwIGF0
ICgyOSwyMSkgc2l6ZSAxODV4MTg1IHNjcm9sbFdpZHRoIDE5MCBzY3JvbGxIZWlnaHQgMjEwCisg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyMCwwKSBzaXplIDIwMngyMDIgW2JvcmRlcjogKDFweCBz
b2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgxNjAsMjApIHNpemUgMTIweDI0MAorICBSZW5kZXJC
bG9jayAocG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDE2MCwyMCkgc2l6ZSAxMjB4MjQwIFti
Z2NvbG9yPSMwMDgwMDBdCitsYXllciBhdCAoMzksMTMxKSBzaXplIDE4MHg5MCBiYWNrZ3JvdW5k
Q2xpcCBhdCAoMjksMjEpIHNpemUgMTg1eDE4NSBjbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1
IG91dGxpbmVDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1CisgIFJlbmRlckJsb2NrIChyZWxh
dGl2ZSBwb3NpdGlvbmVkKSB6STogMyB7RElWfSBhdCAoMTEsMTExKSBzaXplIDE4MHg5MCBbYmdj
b2xvcj0jODA4MDgwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZs
b3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21w
b3NpdGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNmExMTU3NmViYTgxMmFjMzM0YWEw
ODMxODU5MzJiNGQ0MDdiOWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5n
Lmh0bWwKQEAgLTAsMCArMSwxNDYgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9E
VEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIv
aHRtbDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
Ii8+CisgIDx0aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZzwvdGl0bGU+Cisg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmNvbnRhaW5lciB7
CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgb3ZlcmZs
b3c6IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlk
IGJsYWNrOworICAgIH0KKworICAgIC5zY3JvbGxlZCB7CisgICAgICB3aWR0aDogMTgwcHg7Cisg
ICAgICBoZWlnaHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmF5OworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgIC5w
b3NpdGlvbmVkIHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAgICAgIGhlaWdodDogMjQwcHg7Cisg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICB9CisKKyAgICAuaGlkZGVuIHsKKyAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKKyAgICB9
CisKKyAgICAjcHJlZGVjZXNzb3IgeworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDogMjBw
eDsKKyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsKKyAgICAgIGxlZnQ6IDE2MHB4OworICAgICAg
dG9wOiAyMHB4OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0Zv
ck92ZXJmbG93U2Nyb2xsKHRydWUpOworCisgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICB7Cisg
ICAgICB2YXIgcHJlZGVjZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlZGVjZXNz
b3InKTsKKyAgICAgIHZhciBzdWNjZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3Vj
Y2Vzc29yJyk7CisgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnRhaW5lcicpOworICAgICAgdmFyIGZpcnN0Q2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZmlyc3RDaGlsZCcpOworICAgICAgdmFyIHNlY29uZENoaWxkID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3NlY29uZENoaWxkJyk7CisgICAgICB2YXIgcmVzdWx0ID0gIiI7CisgICAg
ICB2YXIgZHVtbXkgPSAwOworICAgICAgdmFyIGNvdW50ID0gMDsKKworICAgICAgdmFyIGV4cGVj
dGVkX3Jlc3VsdHMgPSBbCisgICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLAor
ICAgICAgICB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAgdHJ1ZSwg
dHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUs
IGZhbHNlLAorICAgICAgICB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwKKyAgICAgICAg
dHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZQorICAgICAgXTsKKworICAgICAgZm9yIChp
ID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICBmb3IgKGogPSAwOyBqIDwgNTsgKytqKSB7Cisg
ICAgICAgICAgZm9yIChrID0gMDsgayA8IDI7ICsraykgeworICAgICAgICAgICAgdmFyIG1pblpJ
bmRleCA9IDA7CisgICAgICAgICAgICB2YXIgbWF4WkluZGV4ID0gMDsKKyAgICAgICAgICAgIGlm
IChpID09IDApIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnMSc7
CisgICAgICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxlLnpJbmRleCA9ICczJzsKKyAgICAgICAg
ICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PSAxKSB7Cisg
ICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAg
ICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJy0zJzsKKyAgICAgICAgICAgICAgbWluWklu
ZGV4ID0gLTM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBmaXJzdENoaWxk
LnN0eWxlLnpJbmRleCA9ICctMSc7CisgICAgICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxlLnpJ
bmRleCA9ICczJzsKKyAgICAgICAgICAgICAgbWluWkluZGV4ID0gLTE7CisgICAgICAgICAgICAg
IG1heFpJbmRleCA9IDM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBzaWJsaW5n
ID0gcHJlZGVjZXNzb3I7CisgICAgICAgICAgICB2YXIgdG9IaWRlID0gc3VjY2Vzc29yOworICAg
ICAgICAgICAgaWYgKGsgPT0gMSkgeworICAgICAgICAgICAgICBzaWJsaW5nID0gc3VjY2Vzc29y
OworICAgICAgICAgICAgICB0b0hpZGUgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgdG9IaWRlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgICAgICBz
aWJsaW5nLnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgICAgICAgIGlmIChqID09IDApIHsKKyAg
ICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWF4WkluZGV4ICsgMSkudG9TdHJp
bmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAxKSB7CisgICAgICAgICAgICAgIHNp
Ymxpbmcuc3R5bGUuekluZGV4ID0gKG1pblpJbmRleCAtIDEpLnRvU3RyaW5nKCk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKGogPT0gMikgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJ
bmRleCA9IG1heFpJbmRleC50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09
IDMpIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSBtaW5aSW5kZXgudG9T
dHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5
bGUuekluZGV4ID0gKChtaW5aSW5kZXggKyBtYXhaSW5kZXgpIC8gMikudG9TdHJpbmcoKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRm9yY2UgYSBzdHlsZSByZWNhbGMuCisgICAg
ICAgICAgICBkdW1teSA9IGNvbnRhaW5lci5vZmZzZXRUb3A7CisKKyAgICAgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgIHZhciBpc0FjY2VsZXJhdGVkID0gd2lu
ZG93LmludGVybmFscy51c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhjb250YWluZXIpOworICAgICAg
ICAgICAgICByZXN1bHQgKz0gY291bnQudG9TdHJpbmcoKSArICcgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogJyArIGlzQWNjZWxlcmF0ZWQgKyAnLCAnICsgKGV4cGVjdGVkX3Jlc3VsdHNb
Y291bnRdID09IGlzQWNjZWxlcmF0ZWQgPyAnUGFzcycgOiAnRkFJTCcpICsgJzxicj4nOworICAg
ICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgfQorCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5u
ZXJIVE1MID0gcmVzdWx0OworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgIH0KKyAgICB9CisKKyAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICA8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJwcmVk
ZWNlc3NvciI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciIgaWQ9ImNvbnRhaW5lciI+
CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQiIGlkPSJmaXJzdENoaWxkIj48L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9InNlY29uZENoaWxkIj48L2Rpdj4KKyAgPC9kaXY+Cisg
IDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJzdWNjZXNzb3IiPjwvZGl2PgorICA8ZGl2IGlk
PSJyZXN1bHQiIGNsYXNzPSJoaWRkZW4iPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163925</attachid>
            <date>2012-09-13 11:56:14 -0700</date>
            <delta_ts>2012-09-13 13:42:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20120913145546.patch</filename>
            <type>text/plain</type>
            <size>32325</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGYxNzc1MTJhZmMyM2I3
M2NiN2Y3NWNjY2E1NTdhM2ZiYjdhZGMyZS4uOTFlMTdlZDQxOGRhMDc4MmI4MzExMjU1OTBiYjE5
OWVhNjY0Nzk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA5LTEzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBkaXYgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtp
dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNh
bGx5CisgICAgICAgIG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUg
dG8gZG8gc28uIFRoaXMgY2FuIGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlz
IGltcG9ydGFudCB0aGF0IGF1dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAg
ZW5hYmxlZCB2aWEgYSBzZXR0aW5nLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCk6CisgICAgICAgICAgQWRkcyB0aGUgbmV3IHNldHRp
bmcgZm9yIGVuYWJsaW5nIGF1dG9tYXRpY2FsbHkgb3B0aW5nIGludG8gY29tcG9zaXRlZCBzY3Jv
bGxpbmcuCisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aXNEZXNjZW5k
YW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjb3VudERlc2NlbmRhbnROb25E
ZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tp
bmdDb250ZXh0KToKKyAgICAgICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIFJlbmRlckxheWVyIGNv
dWxkIGJlY29tZSBhIHN0YWNraW5nIGNvbnRleHQgd2l0aG91dAorICAgICAgICAgIGFmZmVjdGlu
ZyB0aGUgc3RhY2tpbmcgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXNl
c0NvbXBvc2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAgIEhhcyBiZWVuIHVwZGF0ZWQgdG8gcmV0
dXJuIHRydWUgaWYgaXQgY2FuIHNhZmVseSBlc3RhYmxpc2ggYSBzdGFja2luZworICAgICAgICAg
IGNvbnRleHQsIGFuZCB0aGUgc2V0dGluZyBpcyB0dXJuZWQgb24uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnJlYnVpbGRaT3JkZXJMaXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBk
YXRlTm9ybWFsRmxvd0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlYnVp
bGROb3JtYWxGbG93TGlzdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwpOgorICAgICAgICAgIEFsbG93cyBlbmFibGluZyB0aGUg
c2V0dGluZyBpbiBsYXlvdXQgdGVzdHMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZyk6CisgICAgICAgICAgQWxsb3dzIGxheW91dCB0ZXN0cyB0byBjaGVjayBp
ZiBhIGRpdiBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wOS0xMyAgUm9iZXJ0IEty
b2VnZXIgIDxyamtyb2VnZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBhbHRl
ciBmbGluZyBhbmltYXRpb24gcGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5k
ZXggZjI1MTUwYjUxNmMzOTY1MzVjMzhiZWZjYTNjYjJhMmE2OGZlZWEwZi4uMTcwYzQ1MmY5ZWI0
OGZlN2Y2OWZjMDdjY2Y2M2JkMmI3ZDVhMGI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
QEAgLTIyMCw2ICsyMjAsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAs
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckFuaW1hdGlvbkVuYWJsZWQodHJ1ZSkKICAgICAs
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKGZhbHNlKQog
ICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQo
ZmFsc2UpCisgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCiAgICAgLCBtX3No
b3dSZXBhaW50Q291bnRlcihmYWxzZSkKICAgICAsIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9u
c0VuYWJsZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZWQ4ZGYxZTI2N2EwMDdm
MjlkNTk0NWEwZWI3ZDRlNTdmMGEyYTg5OS4uZjRlMjZlZWViM2YzNjVjODA5MjliOWMwNmUxMmQz
MTZhODVmYjA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzgzLDYgKzM4Myw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkID0gZW5hYmxlZDsgfQogICAgICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXNFbmFibGVkOyB9CiAKKyAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgICAgIGJvb2wg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsg
fQorCiAgICAgICAgIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKICAgICAgICAgYm9v
bCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9
CiAKQEAgLTcyNiw2ICs3MjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yQW5pbWF0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAg
IGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXNFbmFibGVkIDogMTsgLy8gV29ya3Mgb25seSBpbiBjb25qdW5jdGlvbiB3aXRoIGZvcmNlQ29t
cG9zaXRpbmdNb2RlCisgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnMg
OiAxOwogICAgICAgICBib29sIG1fc2hvd1JlcGFpbnRDb3VudGVyIDogMTsKICAgICAgICAgYm9v
bCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIDogMTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDRkYWVlY2Y5MzZjMjllZmNhOGNjZmQ4MTY2
NzA3MjFjNDY5MDU1ZGIuLmNkZGU0MWFiYmRiNmZmOWJmNTk3MDQ5M2UxZDE4OTQ4ZmQ0ODA1M2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNjY2LDYgKzY2
Niw4NyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkKICAgICB9CiB9CiAK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitzdGF0aWMgYm9vbCBpc0Rlc2NlbmRh
bnQoY29uc3QgUmVuZGVyTGF5ZXIqIHBhcmVudCwgY29uc3QgUmVuZGVyTGF5ZXIqIGNoaWxkKQor
eworICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnQgPSBjaGlsZDsgY3VycmVudDsg
Y3VycmVudCA9IGN1cnJlbnQtPnBhcmVudCgpKQorICAgICAgICBpZiAoY3VycmVudCA9PSBwYXJl
bnQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Zv
aWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9y
TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbGF5ZXJMaXN0LCBjb25zdCBSZW5kZXJMYXllciog
dG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5kYXJpZXMsIGJvb2wmIGxhc3RFbGVtZW50V2FzRGVz
Y2VuZGFudCkKK3sKKyAgICBpZiAoIWxheWVyTGlzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllckxpc3QtPnNpemUoKTsgKytpKQorICAgICAgICBj
b3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0luWk9yZGVyVHJlZShsYXllckxp
c3QtPmF0KGkpLCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVtZW50V2FzRGVz
Y2VuZGFudCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRlc2Nh
bmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0IFJlbmRlckxheWVyKiBjdXJyZW50TGF5
ZXIsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQsIGludCYgbnVtQm91bmRhcmllcywg
Ym9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQoreworICAgIGlmICgoY3VycmVudExheWVy
LT5pc1N0YWNraW5nQ29udGV4dCgpICYmIGN1cnJlbnRMYXllciAhPSB0b0JlUHJvbW90ZWQtPnN0
YWNraW5nQ29udGV4dCgpKSB8fCBjdXJyZW50TGF5ZXIgPT0gdG9CZVByb21vdGVkKSB7CisgICAg
ICAgIGlmIChpc0Rlc2NlbmRhbnQodG9CZVByb21vdGVkLCBjdXJyZW50TGF5ZXIpKSB7CisgICAg
ICAgICAgICBpZiAoIWxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgICAgICAgICBu
dW1Cb3VuZGFyaWVzKys7CisgICAgICAgICAgICBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQgPSB0
cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGxhc3RFbGVtZW50V2FzRGVz
Y2VuZGFudCkKKyAgICAgICAgICAgICAgICBudW1Cb3VuZGFyaWVzKys7CisgICAgICAgICAgICBs
YXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7
CisgICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gMDsKKyAgICAg
ICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSAwOworICAgICAgICBpZiAo
Y3VycmVudExheWVyLT5tX3pPcmRlckxpc3RzRGlydHkpCisgICAgICAgICAgICBjdXJyZW50TGF5
ZXItPnJlYnVpbGRaT3JkZXJMaXN0cyhwb3NaT3JkZXJMaXN0LCBuZWdaT3JkZXJMaXN0KTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICBuZWdaT3JkZXJMaXN0ID0gY3VycmVudExheWVyLT5u
ZWdaT3JkZXJMaXN0KCk7CisgICAgICAgICAgICBwb3NaT3JkZXJMaXN0ID0gY3VycmVudExheWVy
LT5wb3NaT3JkZXJMaXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8UmVuZGVyTGF5
ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSAwOworICAgICAgICBpZiAoY3VycmVudExheWVyLT5tX25v
cm1hbEZsb3dMaXN0RGlydHkpCisgICAgICAgICAgICBjdXJyZW50TGF5ZXItPnJlYnVpbGROb3Jt
YWxGbG93TGlzdChub3JtYWxGbG93TGlzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5v
cm1hbEZsb3dMaXN0ID0gY3VycmVudExheWVyLT5ub3JtYWxGbG93TGlzdCgpOworCisgICAgICAg
IGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdChuZWdaT3JkZXJM
aXN0LCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVtZW50V2FzRGVzY2VuZGFu
dCk7CisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlz
dChub3JtYWxGbG93TGlzdCwgdG9CZVByb21vdGVkLCBudW1Cb3VuZGFyaWVzLCBsYXN0RWxlbWVu
dFdhc0Rlc2NlbmRhbnQpOworICAgICAgICBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91
bmRhcmllc0Zvckxpc3QocG9zWk9yZGVyTGlzdCwgdG9CZVByb21vdGVkLCBudW1Cb3VuZGFyaWVz
LCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgIH0KK30KKworYm9vbCBSZW5kZXJMYXll
cjo6Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Cit7CisgICAgaWYg
KGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIXN0YWNraW5nQ29udGV4dCgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIC8vIElmIG91ciBwcm9tb3Rpb24gdG8gYSBzdGFja2luZyBjb250ZXh0
IHdvdWxkIG5vdCBhZmZlY3Qgc3RhY2tpbmcgb3JkZXIsCisgICAgLy8gdGhlbiB0aGlzIGxheWVy
IGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRlbnRzIHNob3VsZCBhcHBlYXIgYXMgYSBjb250aW51b3Vz
CisgICAgLy8gYmxvY2sgaWYgd2UgYXJlIHRvIHRyYXZlcnNlIHRoZSBlbGVtZW50cyBpbiB0aGUg
c3RhY2tpbmcgY29udGV4dCBpbgorICAgIC8vIHBhaW50IG9yZGVyLiBUaGF0IGlzLCB0aGUgbnVt
YmVyIG9mIGJvdW5kYXJpZXMgYmV0d2VlbiBkZXNjZW5kYW50cywgYW5kCisgICAgLy8gbm9uIGRl
c2NlbmRhbnRzIHNob3VsZCBiZSBleGFjdGx5IHR3byAoaWYgd2UgYXNzdW1lIHRoYXQgaWYgdGhl
IGZpcnN0IG9yCisgICAgLy8gbGFzdCBlbGVtZW50IGluIHRoZSBsaXN0IGlzIGEgZGVzY2VuZGFu
dCwgdGhhdCB0aGlzIGlzIGFsc28gYSBib3VuZGFyeSkuCisKKyAgICAvLyBCeSBpbml0aWFsaXpp
bmcgdG8gZmFsc2UsIGlmIHRoZSBmaXJzdCBlbGVtZW50IHdlIHNlZSBpcyBhIGRlc2NlbmRhbnQs
CisgICAgLy8gdGhlbiB3ZSBjb3JyZWN0bHkgbWFyayBpdCBhcyBhIGJvdW5kYXJ5LgorICAgIGJv
b2wgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50ID0gZmFsc2U7CisKKyAgICBpbnQgbnVtQm91bmRh
cmllcyA9IDA7CisKKyAgICBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0lu
Wk9yZGVyVHJlZShzdGFja2luZ0NvbnRleHQoKSwgdGhpcywgbnVtQm91bmRhcmllcywgbGFzdEVs
ZW1lbnRXYXNEZXNjZW5kYW50KTsKKworICAgIC8vIElmIHRoZSBsYXN0IGVsZW1lbnQgd2Ugc2Vl
IGlzIGEgZGVzY2VuZGFudCwgdGhpcyBpcyBhbHNvIGEgYm91bmRhcnkuCisgICAgaWYgKGxhc3RF
bGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgbnVtQm91bmRhcmllcysrOworCisgICAgcmV0
dXJuIG51bUJvdW5kYXJpZXMgPT0gMjsKK30KKworI2VuZGlmCisKIHZvaWQgUmVuZGVyTGF5ZXI6
OnNldEhhc1Zpc2libGVDb250ZW50KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQg
JiYgIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAtMTU3MywxMCArMTY1NCwxMyBA
QCBib29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0CiAgICAg
aWYgKCFzY3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGJvb2wgYXV0b21hdGljYWxseU9wdEluID0gcmVuZGVyZXIoKS0+
ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxFbmFibGVkKCkKKyAgICAgICAgJiYgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNr
aW5nQ29udGV4dCgpOworCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElO
RykKLSAgICByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9s
bGluZygpOworICAgIHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93
U2Nyb2xsaW5nKCkgfHwgYXV0b21hdGljYWxseU9wdEluOwogI2Vsc2UKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIGF1dG9tYXRpY2FsbHlPcHRJbjsKICNlbmRpZgogfQogI2VuZGlmCkBA
IC0xNzMxLDggKzE4MTUsMTUgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oaW50IHgsIGlu
dCB5KQogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRpc3BhdGNoRmFrZU1vdXNlTW92
ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50KTsKICAgICB9CiAKKyAg
ICBib29sIHJlcXVpcmVzUmVwYWludCA9IHRydWU7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisgICAgaWYgKGNvbXBvc2l0b3IoKS0+aW5Db21wb3NpdGluZ01vZGUoKSAmJiB1
c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgICAgICByZXF1aXJlc1JlcGFpbnQgPSBmYWxz
ZTsKKyNlbmRpZgorCiAgICAgLy8gSnVzdCBzY2hlZHVsZSBhIGZ1bGwgcmVwYWludCBvZiBvdXIg
b2JqZWN0LgotICAgIGlmICh2aWV3ICYmICF1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAg
IGlmICh2aWV3ICYmIHJlcXVpcmVzUmVwYWludCkKICAgICAgICAgcmVuZGVyZXIoKS0+cmVwYWlu
dFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHBpeGVsU25hcHBlZEludFJlY3QobV9y
ZXBhaW50UmVjdCkpOwogCiAgICAgLy8gU2NoZWR1bGUgdGhlIHNjcm9sbCBET00gZXZlbnQuCkBA
IC00NTUyLDYgKzQ2NDMsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVidWlsZFpPcmRlckxpc3Rz
KCkKICAgICBBU1NFUlQobV9sYXllckxpc3RNdXRhdGlvbkFsbG93ZWQpOwogICAgIEFTU0VSVChp
c0RpcnR5U3RhY2tpbmdDb250ZXh0KCkpOwogCisgICAgcmVidWlsZFpPcmRlckxpc3RzKG1fcG9z
Wk9yZGVyTGlzdCwgbV9uZWdaT3JkZXJMaXN0KTsKKworICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9
IGZhbHNlOworfQorCit2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMoVmVjdG9y
PFJlbmRlckxheWVyKj4qJiBwb3NaT3JkZXJMaXN0LCBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5l
Z1pPcmRlckxpc3QpIGNvbnN0Cit7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycyA9IGNvbXBvc2l0b3IoKS0+aW5Db21wb3NpdGlu
Z01vZGUoKTsKICNlbHNlCkBAIC00NTU5LDE2ICs0NjU3LDE0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OnJlYnVpbGRaT3JkZXJMaXN0cygpCiAjZW5kaWYKICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGls
ZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAg
ICAgICAgIGlmICghbV9yZWZsZWN0aW9uIHx8IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxkKQot
ICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywgbV9w
b3NaT3JkZXJMaXN0LCBtX25lZ1pPcmRlckxpc3QpOworICAgICAgICAgICAgY2hpbGQtPmNvbGxl
Y3RMYXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywgcG9zWk9yZGVyTGlzdCwgbmVnWk9yZGVyTGlz
dCk7CiAKICAgICAvLyBTb3J0IHRoZSB0d28gbGlzdHMuCi0gICAgaWYgKG1fcG9zWk9yZGVyTGlz
dCkKLSAgICAgICAgc3RkOjpzdGFibGVfc29ydChtX3Bvc1pPcmRlckxpc3QtPmJlZ2luKCksIG1f
cG9zWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5kZXgpOworICAgIGlmIChwb3NaT3JkZXJM
aXN0KQorICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KHBvc1pPcmRlckxpc3QtPmJlZ2luKCksIHBv
c1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKIAotICAgIGlmIChtX25lZ1pPcmRl
ckxpc3QpCi0gICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9uZWdaT3JkZXJMaXN0LT5iZWdpbigp
LCBtX25lZ1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKLQotICAgIG1fek9yZGVy
TGlzdHNEaXJ0eSA9IGZhbHNlOworICAgIGlmIChuZWdaT3JkZXJMaXN0KQorICAgICAgICBzdGQ6
OnN0YWJsZV9zb3J0KG5lZ1pPcmRlckxpc3QtPmJlZ2luKCksIG5lZ1pPcmRlckxpc3QtPmVuZCgp
LCBjb21wYXJlWkluZGV4KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTm9ybWFsRmxv
d0xpc3QoKQpAQCAtNDU3OCwxNiArNDY3NCwyMSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVO
b3JtYWxGbG93TGlzdCgpCiAKICAgICBBU1NFUlQobV9sYXllckxpc3RNdXRhdGlvbkFsbG93ZWQp
OwogCisgICAgcmVidWlsZE5vcm1hbEZsb3dMaXN0KG1fbm9ybWFsRmxvd0xpc3QpOworCisgICAg
bV9ub3JtYWxGbG93TGlzdERpcnR5ID0gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJl
YnVpbGROb3JtYWxGbG93TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5vcm1hbEZsb3dMaXN0
KSBjb25zdAorewogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAvLyBJZ25vcmUg
bm9uLW92ZXJmbG93IGxheWVycyBhbmQgcmVmbGVjdGlvbnMuCiAgICAgICAgIGlmIChjaGlsZC0+
aXNOb3JtYWxGbG93T25seSgpICYmICghbV9yZWZsZWN0aW9uIHx8IHJlZmxlY3Rpb25MYXllcigp
ICE9IGNoaWxkKSkgewotICAgICAgICAgICAgaWYgKCFtX25vcm1hbEZsb3dMaXN0KQotICAgICAg
ICAgICAgICAgIG1fbm9ybWFsRmxvd0xpc3QgPSBuZXcgVmVjdG9yPFJlbmRlckxheWVyKj47Ci0g
ICAgICAgICAgICBtX25vcm1hbEZsb3dMaXN0LT5hcHBlbmQoY2hpbGQpOworICAgICAgICAgICAg
aWYgKCFub3JtYWxGbG93TGlzdCkKKyAgICAgICAgICAgICAgICBub3JtYWxGbG93TGlzdCA9IG5l
dyBWZWN0b3I8UmVuZGVyTGF5ZXIqPjsKKyAgICAgICAgICAgIG5vcm1hbEZsb3dMaXN0LT5hcHBl
bmQoY2hpbGQpOwogICAgICAgICB9CiAgICAgfQotICAgIAotICAgIG1fbm9ybWFsRmxvd0xpc3RE
aXJ0eSA9IGZhbHNlOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKGJvb2wg
aW5jbHVkZUhpZGRlbkxheWVycywgVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3NCdWZmZXIsIFZl
Y3RvcjxSZW5kZXJMYXllcio+KiYgbmVnQnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaAppbmRleCAzODA1NTgxY2RlMDE5ZTUwNDRiZDkzZWE5YjNhYjRmMzYxZGE5NjUz
Li44ZWE5OTYyYmJiY2ZjMzA4NzZjNjU4ZTI3YTBjYTdlM2YzNjMyNDlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNjgwLDkgKzY4MCwxMSBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICB2b2lkIHJlYnVpbGRa
T3JkZXJMaXN0cygpOworICAgIHZvaWQgcmVidWlsZFpPcmRlckxpc3RzKFZlY3RvcjxSZW5kZXJM
YXllcio+KiYgcG9zWk9yZGVyTGlzdCwgVmVjdG9yPFJlbmRlckxheWVyKj4qJiBuZWdaT3JkZXJM
aXN0KSBjb25zdDsKICAgICB2b2lkIGNsZWFyWk9yZGVyTGlzdHMoKTsKIAogICAgIHZvaWQgdXBk
YXRlTm9ybWFsRmxvd0xpc3QoKTsKKyAgICB2b2lkIHJlYnVpbGROb3JtYWxGbG93TGlzdChWZWN0
b3I8UmVuZGVyTGF5ZXIqPiomIG5vcm1hbEZsb3dMaXN0KSBjb25zdDsKIAogICAgIGJvb2wgaXNT
dGFja2luZ0NvbnRleHQoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdCB7IHJldHVybiAh
c3R5bGUtPmhhc0F1dG9aSW5kZXgoKSB8fCBpc1Jvb3RMYXllcigpOyB9CiAgICAgYm9vbCBpc0Rp
cnR5U3RhY2tpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV96T3JkZXJMaXN0c0RpcnR5ICYm
IGlzU3RhY2tpbmdDb250ZXh0KCk7IH0KQEAgLTg3NSw2ICs4NzcsMTMgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oSW5kaXJlY3RDb21wb3NpdGluZ1Jl
YXNvbiByZWFzb24pIHsgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uID0gcmVhc29uOyB9CiAg
ICAgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBpbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbj4obV9p
bmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKTsgfQogICAgIGJvb2wgbXVzdENvbXBvc2l0ZUZvcklu
ZGlyZWN0UmVhc29ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNv
bjsgfQorCisgICAgLy8gUmV0dXJucyB0cnVlIGlmZiB6IG9yZGVyaW5nIHdvdWxkIG5vdCBjaGFu
Z2UgaWYgdGhpcyBsYXllciB3ZXJlIHRvIGVzdGFibGlzaCBhIHN0YWNraW5nIGNvbnRleHQuCisg
ICAgYm9vbCBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3Q7CisKKyAg
ICAvLyBUaGVzZSB0d28gbWV0aG9kcyBhcmUgdXNlZCBieSBjYW5TYWZlbHlFc3RhYmxpc2hBU3Rh
Y2tpbmdDb250ZXh0LgorICAgIHN0YXRpYyB2b2lkIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRh
bnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0IFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIs
IGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQsIGludCYgbnVtQm91bmRhcmllcywgYm9v
bCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKyAgICBzdGF0aWMgdm9pZCBjb3VudERlc2Nl
bmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3QoVmVjdG9yPFJlbmRlckxheWVyKj4q
IGxheWVyTGlzdCwgY29uc3QgUmVuZGVyTGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50JiBudW1Cb3Vu
ZGFyaWVzLCBib29sJiBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOwogI2VuZGlmCiAKICAgICBm
cmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNjY5ZDA1ZWI2MWNkYmM2Y2Q5ODc5NjBjYjQwNTA5
Mzk3NDkyNzgyOS4uN2IxNThjMWY0NjcyZGJiOGI2ZGFkNWJiMDYwNmIyNTU5ZTVjN2ZlZCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMjAsNiAr
MjIwLDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JT
Y3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwog
fQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5h
bFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIHZv
aWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZv
clNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmlu
ZGV4IGEzNzYyYmJlODA5MDE5ODUyN2U5NzQ3YjdjMWU3ZDZiZmJkNWQ0OWYuLjc4YzkyODcwMjAz
MTUyMWVhZTY2ZTJmYzZhYTJhMjBkYmQzNzZmZWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5oCkBAIC05NSw2ICs5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGJvb2wgZW5hYmxlZCwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxh
YmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVk
KGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJh
cnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggNTE3YmFhNjMzZTM3OTc2MzJmZjUx
MjY2ZjI4ZTU5NzNmNGRlYTM5MC4uMzI4Yzc2MTFjMmU5YjdmMmY5MDM5N2U3ZjM1MTFhMjI4OTZh
NGU1YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBA
IC0zMSw2ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEZvcmNlQ29t
cG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGluIGJvb2xl
YW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVy
Zmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
ICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVk
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRl
cnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAg
ICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
MzY5NDgxNDIyZjZjYTJmY2UwMmY1NDg4ZjVhNWIwODI3Mzg4NDI3OS4uOTc0YmRlZDg5ODMxM2Y1
N2RjZWU0ZmUzOWQzZGZjZDJhZTk3MDRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcApAQCAtMTAxLDYgKzEwMSwxMCBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5o
IgogI2VuZGlmCiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaW5jbHVkZSAi
UmVuZGVyTGF5ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CkBAIC0xMDk2LDYgKzExMDAsMzcgQEAgYm9vbCBJbnRlcm5hbHM6
OmlzUGFnZUJveFZpc2libGUoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgcGFnZU51bWJlciwgRXhj
ZXB0aW9uQ28KICAgICByZXR1cm4gZG9jdW1lbnQtPmlzUGFnZUJveFZpc2libGUocGFnZU51bWJl
cik7CiB9CiAKK2Jvb2wgSW50ZXJuYWxzOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhOb2RlKiBu
b2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJP
YmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyT2JqZWN0KSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgaWYgKCFyZW5kZXJPYmplY3QtPmhhc0xheWVyKCkpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IFJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IHJlbmRlck9iamVjdC0+ZW5jbG9zaW5nTGF5ZXIo
KTsKKyAgICBpZiAoIXJlbmRlckxheWVyKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9F
UlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVuZGVyTGF5
ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsK
KyNlbmRpZgorfQorCiB2b2lkIEludGVybmFsczo6c3VzcGVuZEFuaW1hdGlvbnMoRG9jdW1lbnQq
IGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIWRvY3VtZW50
IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5k
ZXggYjBmMTYwNGI5NzU1Y2E4NmFkZjZlZTYwNGNhMTY2YzMxYmQzN2FmMi4uODUzYmU0YjkwYmVk
ZWQ0MjdiODExOTZlNDdmMjI0NWY1Njg1NGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCkBAIC0xNzMsNiArMTczLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BhZ2VCb3hWaXNp
YmxlKERvY3VtZW50KiwgaW50IHBhZ2VOdW1iZXIsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIGJv
b2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAogICAgIEludGVybmFsU2V0dGluZ3Mq
IHNldHRpbmdzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXgg
ZjYyY2VhYzg1N2YxOGNjYmFmY2ZjMDJlNjM3Y2NlOWE3ZTMwY2Y3MC4uZDI0OTA1ZTE2ZmUyMDBl
ZmYyYzUxNzNiYjVmOGIwODQ4OTkzMmRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbApAQCAtMTUxLDYgKzE1MSw4IEBAIG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIGJvb2xl
YW4gaXNQYWdlQm94VmlzaWJsZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBwYWdlTnVt
YmVyKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgYm9vbGVhbiB1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZyhpbiBOb2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBzZXR0aW5nczsKIAogICAg
ICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGQ4NzUyNzg4MTczYzAxOWExN2JkOWJjNmExZjcwNTk1
YzdkYTE3MS4uZDU4NGJjYWZlZGUyZWFjNmVjMmUzMjBmMjlhNzU5MmI2OWY1OWZlMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTEzICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEF1dG9tYXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc0Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIHZh
cmlvdXMgY29uZmlndXJhdGlvbnMgb2YgZWxlbWVudHMgdG8gZW5zdXJlIHRoYXQgd2Ugb25seSBh
dXRvbWF0aWNhbGx5IG9wdCBpbnRvCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIHdoZW4g
aXQgaXMgc2FmZSB0byBkbyBzby4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1
dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1p
bnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTEzICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBQcm9w
ZXJ0aWVzIG9mIElEQktleVJhbmdlIHNob3VsZCBkZWZhdWx0IHRvIHVuZGVmaW5lZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQt
aW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xs
aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDg4ZDFhMTNiNTMwZjZlYjY2ZGQxNGI4YWMy
MjZmYmZkNjc1NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
b3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDg1MAor
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3
ODV4ODUwIGxheWVyVHlwZTogYmFja2dyb3VuZCBvbmx5CitsYXllciBhdCAoMzksMzEpIHNpemUg
MTgweDkwIGJhY2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5
LDIxKSBzaXplIDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAg
UmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAtMSB7RElWfSBhdCAoMTEsMTEp
IHNpemUgMTgweDkwIFtiZ2NvbG9yPSM4MDgwODBdCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg4
NTAgbGF5ZXJUeXBlOiBmb3JlZ3JvdW5kIG9ubHkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgNzg1eDg1MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDIwKSBzaXplIDc2
OXg4MjIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIyMikgc2l6ZSA3Njl4NjAwCisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI1M3gxOQorICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1MzogIjAgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDE1KSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjUzeDE5Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDI1MzogIjEgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUz
LDM1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDApIHNpemUg
MjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDApIHdpZHRoIDI1MzogIjIgdXNlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JS
fSBhdCAoMjUzLDU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
NjApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNjApIHdpZHRoIDI1Mzog
IjMgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjUzLDc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsODApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsODApIHdp
ZHRoIDI1NzogIjQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisg
ICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1Nyw5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDEwMCkgc2l6ZSAyNTN4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwxMDApIHdpZHRoIDI1MzogIjUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1
ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDExNSkgc2l6ZSAweDAKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEyMCkgc2l6ZSAyNTd4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwxMjApIHdpZHRoIDI1NzogIjYgdXNlcyBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxMzUp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxNDApIHNpemUgMjU3
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTQwKSB3aWR0aCAyNTc6ICI3IHVzZXMgYWNj
ZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9
IGF0ICgyNTcsMTU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MTYwKSBzaXplIDI1N3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE2MCkgd2lkdGggMjU3
OiAiOCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAg
UmVuZGVyQlIge0JSfSBhdCAoMjU3LDE3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDE4MCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwx
ODApIHdpZHRoIDI1NzogIjkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBh
c3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxOTUpIHNpemUgMHgwCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyMDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMjAwKSB3aWR0aCAyNjE6ICIxMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjE1KSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjIwKSBzaXplIDI2MXgxOQor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDIyMCkgd2lkdGggMjYxOiAiMTEgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAo
MjYxLDIzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDI0MCkg
c2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNDApIHdpZHRoIDI2MTogIjEy
IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRl
ckJSIHtCUn0gYXQgKDI2MSwyNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwyNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjYwKSB3
aWR0aCAyNjE6ICIxMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgor
ICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjc1KSBzaXplIDB4MAorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjgwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDI4MCkgd2lkdGggMjYxOiAiMTQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzog
dHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDI5NSkgc2l6ZSAweDAK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDMwMCkgc2l6ZSAyNjF4MTkKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwzMDApIHdpZHRoIDI2MTogIjE1IHVzZXMgYWNjZWxlcmF0ZWQg
Y29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwz
MTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzMjApIHNpemUg
MjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzIwKSB3aWR0aCAyNjE6ICIxNiB1c2Vz
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7
QlJ9IGF0ICgyNjEsMzM1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMzQwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM0MCkgd2lkdGgg
MjY1OiAiMTcgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAg
ICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwzNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMzYwKSB3aWR0aCAyNjE6ICIxOCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVl
LCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzc1KSBzaXplIDB4MAorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzgwKSBzaXplIDI2NXgxOQorICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDM4MCkgd2lkdGggMjY1OiAiMTkgdXNlcyBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzOTUp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0MDApIHNpemUgMjYx
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDAwKSB3aWR0aCAyNjE6ICIyMCB1c2VzIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9
IGF0ICgyNjEsNDE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
NDIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQyMCkgd2lkdGggMjYx
OiAiMjEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAg
UmVuZGVyQlIge0JSfSBhdCAoMjYxLDQzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDQ0MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0
NDApIHdpZHRoIDI2MTogIjIyIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBh
c3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSw0NTUpIHNpemUgMHgwCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0NjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsNDYwKSB3aWR0aCAyNjE6ICIyMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDc1KSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDgwKSBzaXplIDI2NXgxOQor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQ4MCkgd2lkdGggMjY1OiAiMjQgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDI2NSw0OTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1MDAp
IHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTAwKSB3aWR0aCAyNjE6ICIy
NSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5k
ZXJCUiB7QlJ9IGF0ICgyNjEsNTE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsNTIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDUyMCkg
d2lkdGggMjYxOiAiMjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIK
KyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDUzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDU0MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCw1NDApIHdpZHRoIDI2NTogIjI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6
IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNTU1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTYwKSBzaXplIDI2NXgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDU2MCkgd2lkdGggMjY1OiAiMjggdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2
NSw1NzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1ODApIHNp
emUgMjY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTgwKSB3aWR0aCAyNjU6ICIyOSB1
c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVy
QlIge0JSfSBhdCAoMjY1LDU5NSkgc2l6ZSAweDAKK2xheWVyIGF0ICgyOCwyMCkgc2l6ZSAyMDJ4
MjAyIGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgc2Nyb2xsV2lkdGggMTkwIHNjcm9sbEhl
aWdodCAyMTAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDApIHNpemUgMjAyeDIwMiBbYm9y
ZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDE2MCwyMCkgc2l6ZSAxMjB4MjQw
CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTYwLDIwKSBzaXpl
IDEyMHgyNDAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0ICgzOSwxMzEpIHNpemUgMTgweDkw
IGJhY2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIxKSBz
aXplIDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVuZGVy
QmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAzIHtESVZ9IGF0ICgxMSwxMTEpIHNpemUg
MTgweDkwIFtiZ2NvbG9yPSM4MDgwODBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9w
dC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2YTExNTc2ZWJh
ODEyYWMzMzRhYTA4MzE4NTkzMmI0ZDQwN2I5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRl
ZC1zY3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDE0NiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElD
ICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3
LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9dXRmLTgiLz4KKyAgPHRpdGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
PC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAu
Y29udGFpbmVyIHsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7Cisg
ICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9yZGVy
OiAxcHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdpZHRo
OiAxODBweDsKKyAgICAgIGhlaWdodDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAg
IGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAg
fQorCisgICAgLnBvc2l0aW9uZWQgeworICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVpZ2h0
OiAyNDBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgIH0KKworICAgIC5oaWRkZW4geworICAgICAgdmlzaWJpbGl0eTogaGlk
ZGVuOworICAgIH0KKworICAgICNwcmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4OworICAg
ICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNzdWNjZXNzb3IgeworICAgICAgbGVmdDogMTYw
cHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBkb1Rlc3Qo
KQorICAgIHsKKyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdwcmVkZWNlc3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzdWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmlyc3RDaGlsZCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2YXIgc2Vjb25kQ2hpbGQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZhciByZXN1bHQg
PSAiIjsKKyAgICAgIHZhciBkdW1teSA9IDA7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAg
ICB2YXIgZXhwZWN0ZWRfcmVzdWx0cyA9IFsKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1
ZSwgZmFsc2UsCisgICAgICAgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAg
ICAgICB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLAorICAgICAgICB0cnVlLCB0cnVlLCBm
YWxzZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNl
LAorICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICBdOworCisg
ICAgICBmb3IgKGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCA1
OyArK2opIHsKKyAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgMjsgKytrKSB7CisgICAgICAgICAg
ICB2YXIgbWluWkluZGV4ID0gMDsKKyAgICAgICAgICAgIHZhciBtYXhaSW5kZXggPSAwOworICAg
ICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJ
bmRleCA9ICcxJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMn
OworICAgICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAgICAgICAgICAgfSBlbHNlIGlmIChp
ID09IDEpIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOwor
ICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnLTMnOworICAgICAgICAg
ICAgICBtaW5aSW5kZXggPSAtMzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
IGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hp
bGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsKKyAg
ICAgICAgICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
dmFyIHNpYmxpbmcgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgIHZhciB0b0hpZGUgPSBzdWNj
ZXNzb3I7CisgICAgICAgICAgICBpZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcg
PSBzdWNjZXNzb3I7CisgICAgICAgICAgICAgIHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICB0b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAg
ICAgICAgICAgIHNpYmxpbmcuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICAgICAgaWYgKGog
PT0gMCkgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXgg
KyAxKS50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAgICAg
ICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmco
KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAyKSB7CisgICAgICAgICAgICAgIHNpYmxp
bmcuc3R5bGUuekluZGV4ID0gbWF4WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVs
c2UgaWYgKGogPT0gMykgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1p
blpJbmRleC50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
c2libGluZy5zdHlsZS56SW5kZXggPSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0
cmluZygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJl
Y2FsYy4KKyAgICAgICAgICAgIGR1bW15ID0gY29udGFpbmVyLm9mZnNldFRvcDsKKworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgdmFyIGlzQWNjZWxl
cmF0ZWQgPSB3aW5kb3cuaW50ZXJuYWxzLnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGNvbnRhaW5l
cik7CisgICAgICAgICAgICAgIHJlc3VsdCArPSBjb3VudC50b1N0cmluZygpICsgJyB1c2VzIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nOiAnICsgaXNBY2NlbGVyYXRlZCArICcsICcgKyAoZXhwZWN0
ZWRfcmVzdWx0c1tjb3VudF0gPT0gaXNBY2NlbGVyYXRlZCA/ICdQYXNzJyA6ICdGQUlMJykgKyAn
PGJyPic7CisgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICAg
IH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7
CisgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25l
ZCIgaWQ9InByZWRlY2Vzc29yIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0i
Y29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0Q2hpbGQiPjwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQiPjwvZGl2Pgor
ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InN1Y2Nlc3NvciI+PC9kaXY+
CisgIDxkaXYgaWQ9InJlc3VsdCIgY2xhc3M9ImhpZGRlbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163954</attachid>
            <date>2012-09-13 13:42:22 -0700</date>
            <delta_ts>2012-09-14 05:19:55 -0700</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-94743-20120913164154.patch</filename>
            <type>text/plain</type>
            <size>30846</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ3NDAyNmQyODgwZDFm
MjRlMGVkOTM2ZDIzMWY0NjJjYjk3ZmFjNy4uOGJiYjRmN2M5MTc0YTVjMWEzZTZmYThhMzQxMjVi
YTQwZDhlYjEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA5LTEzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBkaXYgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtp
dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNh
bGx5CisgICAgICAgIG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUg
dG8gZG8gc28uIFRoaXMgY2FuIGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlz
IGltcG9ydGFudCB0aGF0IGF1dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAg
ZW5hYmxlZCB2aWEgYSBzZXR0aW5nLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjph
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjppc0Rlc2NlbmRhbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OmNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5k
YXJpZXNJblpPcmRlclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhblNh
ZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQpOgorICAgICAgICAgIFJldHVybnMgdHJ1ZSBp
ZiB0aGUgUmVuZGVyTGF5ZXIgY291bGQgYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dCB3aXRob3V0
CisgICAgICAgICAgYWZmZWN0aW5nIHRoZSBzdGFja2luZyBvcmRlci4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAgICAgICAgSGFz
IGJlZW4gdXBkYXRlZCB0byByZXR1cm4gdHJ1ZSBpZiBpdCBjYW4gc2FmZWx5IGVzdGFibGlzaCBh
IHN0YWNraW5nCisgICAgICAgICAgY29udGV4dCwgYW5kIHRoZSBzZXR0aW5nIGlzIHR1cm5lZCBv
bi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVidWlsZFpPcmRlckxpc3RzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp1cGRhdGVOb3JtYWxGbG93TGlzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6cmVidWlsZE5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFJlbmRlckxheWVyKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0
aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbCk6CisgICAgICAgICAg
QWxsb3dzIGVuYWJsaW5nIHRoZSBzZXR0aW5nIGluIGxheW91dCB0ZXN0cy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAo
SW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlk
bDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBBbGxvd3MgbGF5
b3V0IHRlc3RzIHRvIGNoZWNrIGlmIGEgZGl2IGlzIHVzaW5nIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAg
ICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDEyLTA5LTEzICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5
XSBSZXNvdXJjZVJlcXVlc3Qgc3RyaW5nIG9wdGltaXphdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAppbmRleCA5NjgxZTI3ZTBhZTI2NTU3MmMyMTRiNDk2MmQ4NjIwODQ0Mzg3ZTc3Li45ZDA1MmM1
OWU0OGM2YWZjOTAxZTQ5ODE5MDE5MmJjMmNhMDA1ZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CkBAIC0zODQsNyArMzg0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVk
OyB9CiAKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JP
dmVyZmxvd1Njcm9sbEVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsgfTsKKyAgICAg
ICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxF
bmFibGVkOyB9CiAKICAgICAgICAgdm9pZCBzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wpOwogICAg
ICAgICBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBtX3Nob3dEZWJ1Z0Jv
cmRlcnM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDRk
YWVlY2Y5MzZjMjllZmNhOGNjZmQ4MTY2NzA3MjFjNDY5MDU1ZGIuLmNkZGU0MWFiYmRiNmZmOWJm
NTk3MDQ5M2UxZDE4OTQ4ZmQ0ODA1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcApAQCAtNjY2LDYgKzY2Niw4NyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQ
YWdpbmF0aW9uKCkKICAgICB9CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CitzdGF0aWMgYm9vbCBpc0Rlc2NlbmRhbnQoY29uc3QgUmVuZGVyTGF5ZXIqIHBhcmVudCwgY29u
c3QgUmVuZGVyTGF5ZXIqIGNoaWxkKQoreworICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGN1
cnJlbnQgPSBjaGlsZDsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPnBhcmVudCgpKQorICAg
ICAgICBpZiAoY3VycmVudCA9PSBwYXJlbnQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFudE5v
bkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbGF5ZXJM
aXN0LCBjb25zdCBSZW5kZXJMYXllciogdG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5kYXJpZXMs
IGJvb2wmIGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKK3sKKyAgICBpZiAoIWxheWVyTGlzdCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllckxpc3Qt
PnNpemUoKTsgKytpKQorICAgICAgICBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRh
cmllc0luWk9yZGVyVHJlZShsYXllckxpc3QtPmF0KGkpLCB0b0JlUHJvbW90ZWQsIG51bUJvdW5k
YXJpZXMsIGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6
OmNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0
IFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90
ZWQsIGludCYgbnVtQm91bmRhcmllcywgYm9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQor
eworICAgIGlmICgoY3VycmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpICYmIGN1cnJlbnRM
YXllciAhPSB0b0JlUHJvbW90ZWQtPnN0YWNraW5nQ29udGV4dCgpKSB8fCBjdXJyZW50TGF5ZXIg
PT0gdG9CZVByb21vdGVkKSB7CisgICAgICAgIGlmIChpc0Rlc2NlbmRhbnQodG9CZVByb21vdGVk
LCBjdXJyZW50TGF5ZXIpKSB7CisgICAgICAgICAgICBpZiAoIWxhc3RFbGVtZW50V2FzRGVzY2Vu
ZGFudCkKKyAgICAgICAgICAgICAgICBudW1Cb3VuZGFyaWVzKys7CisgICAgICAgICAgICBsYXN0
RWxlbWVudFdhc0Rlc2NlbmRhbnQgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgaWYgKGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgICAgICAgICBudW1Cb3Vu
ZGFyaWVzKys7CisgICAgICAgICAgICBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQgPSBmYWxzZTsK
KyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBu
ZWdaT3JkZXJMaXN0ID0gMDsKKyAgICAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRl
ckxpc3QgPSAwOworICAgICAgICBpZiAoY3VycmVudExheWVyLT5tX3pPcmRlckxpc3RzRGlydHkp
CisgICAgICAgICAgICBjdXJyZW50TGF5ZXItPnJlYnVpbGRaT3JkZXJMaXN0cyhwb3NaT3JkZXJM
aXN0LCBuZWdaT3JkZXJMaXN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBuZWdaT3Jk
ZXJMaXN0ID0gY3VycmVudExheWVyLT5uZWdaT3JkZXJMaXN0KCk7CisgICAgICAgICAgICBwb3Na
T3JkZXJMaXN0ID0gY3VycmVudExheWVyLT5wb3NaT3JkZXJMaXN0KCk7CisgICAgICAgIH0KKwor
ICAgICAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSAwOworICAgICAg
ICBpZiAoY3VycmVudExheWVyLT5tX25vcm1hbEZsb3dMaXN0RGlydHkpCisgICAgICAgICAgICBj
dXJyZW50TGF5ZXItPnJlYnVpbGROb3JtYWxGbG93TGlzdChub3JtYWxGbG93TGlzdCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG5vcm1hbEZsb3dMaXN0ID0gY3VycmVudExheWVyLT5ub3Jt
YWxGbG93TGlzdCgpOworCisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3Vu
ZGFyaWVzRm9yTGlzdChuZWdaT3JkZXJMaXN0LCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMs
IGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCk7CisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRl
c2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdChub3JtYWxGbG93TGlzdCwgdG9CZVByb21vdGVkLCBu
dW1Cb3VuZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgICAgICBjb3VudERl
c2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3QocG9zWk9yZGVyTGlzdCwgdG9C
ZVByb21vdGVkLCBudW1Cb3VuZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAg
IH0KK30KKworYm9vbCBSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29u
dGV4dCgpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIXN0YWNraW5n
Q29udGV4dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIElmIG91ciBwcm9tb3Rp
b24gdG8gYSBzdGFja2luZyBjb250ZXh0IHdvdWxkIG5vdCBhZmZlY3Qgc3RhY2tpbmcgb3JkZXIs
CisgICAgLy8gdGhlbiB0aGlzIGxheWVyIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRlbnRzIHNob3Vs
ZCBhcHBlYXIgYXMgYSBjb250aW51b3VzCisgICAgLy8gYmxvY2sgaWYgd2UgYXJlIHRvIHRyYXZl
cnNlIHRoZSBlbGVtZW50cyBpbiB0aGUgc3RhY2tpbmcgY29udGV4dCBpbgorICAgIC8vIHBhaW50
IG9yZGVyLiBUaGF0IGlzLCB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgYmV0d2VlbiBkZXNjZW5k
YW50cywgYW5kCisgICAgLy8gbm9uIGRlc2NlbmRhbnRzIHNob3VsZCBiZSBleGFjdGx5IHR3byAo
aWYgd2UgYXNzdW1lIHRoYXQgaWYgdGhlIGZpcnN0IG9yCisgICAgLy8gbGFzdCBlbGVtZW50IGlu
IHRoZSBsaXN0IGlzIGEgZGVzY2VuZGFudCwgdGhhdCB0aGlzIGlzIGFsc28gYSBib3VuZGFyeSku
CisKKyAgICAvLyBCeSBpbml0aWFsaXppbmcgdG8gZmFsc2UsIGlmIHRoZSBmaXJzdCBlbGVtZW50
IHdlIHNlZSBpcyBhIGRlc2NlbmRhbnQsCisgICAgLy8gdGhlbiB3ZSBjb3JyZWN0bHkgbWFyayBp
dCBhcyBhIGJvdW5kYXJ5LgorICAgIGJvb2wgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50ID0gZmFs
c2U7CisKKyAgICBpbnQgbnVtQm91bmRhcmllcyA9IDA7CisKKyAgICBjb3VudERlc2NlbmRhbnRO
b25EZXNjYW5kYW50Qm91bmRhcmllc0luWk9yZGVyVHJlZShzdGFja2luZ0NvbnRleHQoKSwgdGhp
cywgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKworICAgIC8vIElm
IHRoZSBsYXN0IGVsZW1lbnQgd2Ugc2VlIGlzIGEgZGVzY2VuZGFudCwgdGhpcyBpcyBhbHNvIGEg
Ym91bmRhcnkuCisgICAgaWYgKGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgbnVt
Qm91bmRhcmllcysrOworCisgICAgcmV0dXJuIG51bUJvdW5kYXJpZXMgPT0gMjsKK30KKworI2Vu
ZGlmCisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KCkKIHsgCiAgICAg
aWYgKG1faGFzVmlzaWJsZUNvbnRlbnQgJiYgIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkg
ewpAQCAtMTU3MywxMCArMTY1NCwxMyBAQCBib29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRl
ZFNjcm9sbGluZygpIGNvbnN0CiAgICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dz
U2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wgYXV0b21hdGlj
YWxseU9wdEluID0gcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkKKyAgICAgICAgJiYg
Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpOworCiAjaWYgRU5BQkxFKEFDQ0VM
RVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKLSAgICByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUo
KS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpOworICAgIHJldHVybiByZW5kZXJlcigpLT5z
dHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkgfHwgYXV0b21hdGljYWxseU9wdElu
OwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGF1dG9tYXRpY2FsbHlPcHRJ
bjsKICNlbmRpZgogfQogI2VuZGlmCkBAIC0xNzMxLDggKzE4MTUsMTUgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c2Nyb2xsVG8oaW50IHgsIGludCB5KQogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVy
KCktPmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1vdXNl
TW92ZUV2ZW50KTsKICAgICB9CiAKKyAgICBib29sIHJlcXVpcmVzUmVwYWludCA9IHRydWU7CisK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKGNvbXBvc2l0b3IoKS0+
aW5Db21wb3NpdGluZ01vZGUoKSAmJiB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgICAg
ICByZXF1aXJlc1JlcGFpbnQgPSBmYWxzZTsKKyNlbmRpZgorCiAgICAgLy8gSnVzdCBzY2hlZHVs
ZSBhIGZ1bGwgcmVwYWludCBvZiBvdXIgb2JqZWN0LgotICAgIGlmICh2aWV3ICYmICF1c2VzQ29t
cG9zaXRlZFNjcm9sbGluZygpKQorICAgIGlmICh2aWV3ICYmIHJlcXVpcmVzUmVwYWludCkKICAg
ICAgICAgcmVuZGVyZXIoKS0+cmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIs
IHBpeGVsU25hcHBlZEludFJlY3QobV9yZXBhaW50UmVjdCkpOwogCiAgICAgLy8gU2NoZWR1bGUg
dGhlIHNjcm9sbCBET00gZXZlbnQuCkBAIC00NTUyLDYgKzQ2NDMsMTMgQEAgdm9pZCBSZW5kZXJM
YXllcjo6cmVidWlsZFpPcmRlckxpc3RzKCkKICAgICBBU1NFUlQobV9sYXllckxpc3RNdXRhdGlv
bkFsbG93ZWQpOwogICAgIEFTU0VSVChpc0RpcnR5U3RhY2tpbmdDb250ZXh0KCkpOwogCisgICAg
cmVidWlsZFpPcmRlckxpc3RzKG1fcG9zWk9yZGVyTGlzdCwgbV9uZWdaT3JkZXJMaXN0KTsKKwor
ICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IGZhbHNlOworfQorCit2b2lkIFJlbmRlckxheWVyOjpy
ZWJ1aWxkWk9yZGVyTGlzdHMoVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3NaT3JkZXJMaXN0LCBW
ZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5lZ1pPcmRlckxpc3QpIGNvbnN0Cit7CiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycyA9IGNv
bXBvc2l0b3IoKS0+aW5Db21wb3NpdGluZ01vZGUoKTsKICNlbHNlCkBAIC00NTU5LDE2ICs0NjU3
LDE0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cygpCiAjZW5kaWYKICAg
ICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGlmICghbV9yZWZsZWN0aW9uIHx8IHJlZmxl
Y3Rpb25MYXllcigpICE9IGNoaWxkKQotICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMo
aW5jbHVkZUhpZGRlbkxheWVycywgbV9wb3NaT3JkZXJMaXN0LCBtX25lZ1pPcmRlckxpc3QpOwor
ICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywgcG9z
Wk9yZGVyTGlzdCwgbmVnWk9yZGVyTGlzdCk7CiAKICAgICAvLyBTb3J0IHRoZSB0d28gbGlzdHMu
Ci0gICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkKLSAgICAgICAgc3RkOjpzdGFibGVfc29ydChtX3Bv
c1pPcmRlckxpc3QtPmJlZ2luKCksIG1fcG9zWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5k
ZXgpOworICAgIGlmIChwb3NaT3JkZXJMaXN0KQorICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KHBv
c1pPcmRlckxpc3QtPmJlZ2luKCksIHBvc1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4
KTsKIAotICAgIGlmIChtX25lZ1pPcmRlckxpc3QpCi0gICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQo
bV9uZWdaT3JkZXJMaXN0LT5iZWdpbigpLCBtX25lZ1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJl
WkluZGV4KTsKLQotICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IGZhbHNlOworICAgIGlmIChuZWda
T3JkZXJMaXN0KQorICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KG5lZ1pPcmRlckxpc3QtPmJlZ2lu
KCksIG5lZ1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKIH0KIAogdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlTm9ybWFsRmxvd0xpc3QoKQpAQCAtNDU3OCwxNiArNDY3NCwyMSBAQCB2
b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOb3JtYWxGbG93TGlzdCgpCiAKICAgICBBU1NFUlQobV9s
YXllckxpc3RNdXRhdGlvbkFsbG93ZWQpOwogCisgICAgcmVidWlsZE5vcm1hbEZsb3dMaXN0KG1f
bm9ybWFsRmxvd0xpc3QpOworCisgICAgbV9ub3JtYWxGbG93TGlzdERpcnR5ID0gZmFsc2U7Cit9
CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGROb3JtYWxGbG93TGlzdChWZWN0b3I8UmVuZGVy
TGF5ZXIqPiomIG5vcm1hbEZsb3dMaXN0KSBjb25zdAorewogICAgIGZvciAoUmVuZGVyTGF5ZXIq
IGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmco
KSkgewogICAgICAgICAvLyBJZ25vcmUgbm9uLW92ZXJmbG93IGxheWVycyBhbmQgcmVmbGVjdGlv
bnMuCiAgICAgICAgIGlmIChjaGlsZC0+aXNOb3JtYWxGbG93T25seSgpICYmICghbV9yZWZsZWN0
aW9uIHx8IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxkKSkgewotICAgICAgICAgICAgaWYgKCFt
X25vcm1hbEZsb3dMaXN0KQotICAgICAgICAgICAgICAgIG1fbm9ybWFsRmxvd0xpc3QgPSBuZXcg
VmVjdG9yPFJlbmRlckxheWVyKj47Ci0gICAgICAgICAgICBtX25vcm1hbEZsb3dMaXN0LT5hcHBl
bmQoY2hpbGQpOworICAgICAgICAgICAgaWYgKCFub3JtYWxGbG93TGlzdCkKKyAgICAgICAgICAg
ICAgICBub3JtYWxGbG93TGlzdCA9IG5ldyBWZWN0b3I8UmVuZGVyTGF5ZXIqPjsKKyAgICAgICAg
ICAgIG5vcm1hbEZsb3dMaXN0LT5hcHBlbmQoY2hpbGQpOwogICAgICAgICB9CiAgICAgfQotICAg
IAotICAgIG1fbm9ybWFsRmxvd0xpc3REaXJ0eSA9IGZhbHNlOwogfQogCiB2b2lkIFJlbmRlckxh
eWVyOjpjb2xsZWN0TGF5ZXJzKGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycywgVmVjdG9yPFJlbmRl
ckxheWVyKj4qJiBwb3NCdWZmZXIsIFZlY3RvcjxSZW5kZXJMYXllcio+KiYgbmVnQnVmZmVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAzODA1NTgxY2RlMDE5ZTUw
NDRiZDkzZWE5YjNhYjRmMzYxZGE5NjUzLi44ZWE5OTYyYmJiY2ZjMzA4NzZjNjU4ZTI3YTBjYTdl
M2YzNjMyNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNjgw
LDkgKzY4MCwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlWk9yZGVyTGlz
dHMoKTsKICAgICB2b2lkIHJlYnVpbGRaT3JkZXJMaXN0cygpOworICAgIHZvaWQgcmVidWlsZFpP
cmRlckxpc3RzKFZlY3RvcjxSZW5kZXJMYXllcio+KiYgcG9zWk9yZGVyTGlzdCwgVmVjdG9yPFJl
bmRlckxheWVyKj4qJiBuZWdaT3JkZXJMaXN0KSBjb25zdDsKICAgICB2b2lkIGNsZWFyWk9yZGVy
TGlzdHMoKTsKIAogICAgIHZvaWQgdXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKKyAgICB2b2lkIHJl
YnVpbGROb3JtYWxGbG93TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5vcm1hbEZsb3dMaXN0
KSBjb25zdDsKIAogICAgIGJvb2wgaXNTdGFja2luZ0NvbnRleHQoY29uc3QgUmVuZGVyU3R5bGUq
IHN0eWxlKSBjb25zdCB7IHJldHVybiAhc3R5bGUtPmhhc0F1dG9aSW5kZXgoKSB8fCBpc1Jvb3RM
YXllcigpOyB9CiAgICAgYm9vbCBpc0RpcnR5U3RhY2tpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1
cm4gbV96T3JkZXJMaXN0c0RpcnR5ICYmIGlzU3RhY2tpbmdDb250ZXh0KCk7IH0KQEAgLTg3NSw2
ICs4NzcsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b24oSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiByZWFzb24pIHsgbV9pbmRpcmVjdENvbXBvc2l0
aW5nUmVhc29uID0gcmVhc29uOyB9CiAgICAgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBpbmRp
cmVjdENvbXBvc2l0aW5nUmVhc29uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbj4obV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKTsgfQogICAg
IGJvb2wgbXVzdENvbXBvc2l0ZUZvckluZGlyZWN0UmVhc29ucygpIGNvbnN0IHsgcmV0dXJuIG1f
aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjsgfQorCisgICAgLy8gUmV0dXJucyB0cnVlIGlmZiB6
IG9yZGVyaW5nIHdvdWxkIG5vdCBjaGFuZ2UgaWYgdGhpcyBsYXllciB3ZXJlIHRvIGVzdGFibGlz
aCBhIHN0YWNraW5nIGNvbnRleHQuCisgICAgYm9vbCBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tp
bmdDb250ZXh0KCkgY29uc3Q7CisKKyAgICAvLyBUaGVzZSB0d28gbWV0aG9kcyBhcmUgdXNlZCBi
eSBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0LgorICAgIHN0YXRpYyB2b2lkIGNv
dW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0IFJl
bmRlckxheWVyKiBjdXJyZW50TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQs
IGludCYgbnVtQm91bmRhcmllcywgYm9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKyAg
ICBzdGF0aWMgdm9pZCBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0Zvckxp
c3QoVmVjdG9yPFJlbmRlckxheWVyKj4qIGxheWVyTGlzdCwgY29uc3QgUmVuZGVyTGF5ZXIqIHRv
QmVQcm9tb3RlZCwgaW50JiBudW1Cb3VuZGFyaWVzLCBib29sJiBsYXN0RWxlbWVudFdhc0Rlc2Nl
bmRhbnQpOwogI2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNjY5ZDA1
ZWI2MWNkYmM2Y2Q5ODc5NjBjYjQwNTA5Mzk3NDkyNzgyOS4uN2IxNThjMWY0NjcyZGJiOGI2ZGFk
NWJiMDYwNmIyNTU5ZTVjN2ZlZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwCkBAIC0yMjAsNiArMjIwLDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhj
CiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVG
cmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVu
YWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAg
IHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQoZW5hYmxlZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0
ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGEzNzYyYmJlODA5MDE5ODUyN2U5NzQ3YjdjMWU3
ZDZiZmJkNWQ0OWYuLjc4YzkyODcwMjAzMTUyMWVhZTY2ZTJmYzZhYTJhMjBkYmQzNzZmZWQgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC05NSw2ICs5NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhl
ZFBvc2l0aW9uKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJh
d2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9u
Q29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5k
ZXggNTE3YmFhNjMzZTM3OTc2MzJmZjUxMjY2ZjI4ZTU5NzNmNGRlYTM5MC4uMzI4Yzc2MTFjMmU5
YjdmMmY5MDM5N2U3ZjM1MTFhMjI4OTZhNGU1YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0zMSw2ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewog
ICAgICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGlu
IGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0
RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0Vu
YWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
dm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVk
KGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggMzY5NDgxNDIyZjZjYTJmY2UwMmY1NDg4ZjVhNWIwODI3
Mzg4NDI3OS4uOTc0YmRlZDg5ODMxM2Y1N2RjZWU0ZmUzOWQzZGZjZDJhZTk3MDRmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTAxLDYgKzEwMSwxMCBAQAogI2luY2x1
ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2VuZGlmCiAKKyNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC0xMDk2LDYgKzEx
MDAsMzcgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2libGUoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBpbnQgcGFnZU51bWJlciwgRXhjZXB0aW9uQ28KICAgICByZXR1cm4gZG9jdW1lbnQtPmlz
UGFnZUJveFZpc2libGUocGFnZU51bWJlcik7CiB9CiAKK2Jvb2wgSW50ZXJuYWxzOjp1c2VzQ29t
cG9zaXRlZFNjcm9sbGluZyhOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlm
ICghcmVuZGVyT2JqZWN0KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJSOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFyZW5kZXJPYmplY3QtPmhh
c0xheWVyKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIFJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IHJlbmRl
ck9iamVjdC0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICBpZiAoIXJlbmRlckxheWVyKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICByZXR1cm4gcmVuZGVyTGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7Cisj
ZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lkIEludGVybmFsczo6c3Vz
cGVuZEFuaW1hdGlvbnMoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29u
c3QKIHsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggYjBmMTYwNGI5NzU1Y2E4NmFkZjZlZTYwNGNhMTY2
YzMxYmQzN2FmMi4uODUzYmU0YjkwYmVkZWQ0MjdiODExOTZlNDdmMjI0NWY1Njg1NGVhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xNzMsNiArMTczLDggQEAgcHVibGljOgog
CiAgICAgYm9vbCBpc1BhZ2VCb3hWaXNpYmxlKERvY3VtZW50KiwgaW50IHBhZ2VOdW1iZXIsIEV4
Y2VwdGlvbkNvZGUmKTsKIAorICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoTm9kZSos
IEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsK
IAogICAgIEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggZjYyY2VhYzg1N2YxOGNjYmFmY2ZjMDJlNjM3Y2NlOWE3
ZTMwY2Y3MC4uZDI0OTA1ZTE2ZmUyMDBlZmYyYzUxNzNiYjVmOGIwODQ4OTkzMmRjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTUxLDYgKzE1MSw4IEBAIG1vZHVsZSB3
aW5kb3cgewogCiAgICAgICAgIGJvb2xlYW4gaXNQYWdlQm94VmlzaWJsZShpbiBEb2N1bWVudCBk
b2N1bWVudCwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKKyAg
ICAgICAgYm9vbGVhbiB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhpbiBOb2RlIG5vZGUpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxT
ZXR0aW5ncyBzZXR0aW5nczsKIAogICAgICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGluIERv
Y3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTEzZGFiZjU3
MmUzMDQ1YWZiNjQzZDM1MWUwNjE2NmRhNGU2YmU2Yi4uYmI4ZTQ1ODEzYzkxOWYxNGMzM2IyM2U5
Mjk1N2Y0MWNjNGY2N2ZhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTEzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEF1dG9tYXRpY2FsbHkg
dXNlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NDc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3RzIHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb2YgZWxlbWVudHMg
dG8gZW5zdXJlIHRoYXQgd2Ugb25seSBhdXRvbWF0aWNhbGx5IG9wdCBpbnRvCisgICAgICAgIGNv
bXBvc2l0ZWQgc2Nyb2xsaW5nIHdoZW4gaXQgaXMgc2FmZSB0byBkbyBzby4KKworICAgICAgICAq
IGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1z
Y3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVy
Zmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTA5LTEzICBKb2huIE1lbGxvciAgPGpvaG5tZUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgVGV4dCBBdXRvc2l6aW5nOiBBZGQgZXhwbGFuYXRpb25zIHRvIHRlc3RzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1v
cHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Ny
b2xsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDg4ZDFhMTNiNTMwZjZlYjY2ZGQxNGI4
YWMyMjZmYmZkNjc1NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDg1
MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA3ODV4ODUwIGxheWVyVHlwZTogYmFja2dyb3VuZCBvbmx5CitsYXllciBhdCAoMzksMzEpIHNp
emUgMTgweDkwIGJhY2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQg
KDI5LDIxKSBzaXplIDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUK
KyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAtMSB7RElWfSBhdCAoMTEs
MTEpIHNpemUgMTgweDkwIFtiZ2NvbG9yPSM4MDgwODBdCitsYXllciBhdCAoMCwwKSBzaXplIDc4
NXg4NTAgbGF5ZXJUeXBlOiBmb3JlZ3JvdW5kIG9ubHkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgNzg1eDg1MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDIwKSBzaXpl
IDc2OXg4MjIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIyMikgc2l6ZSA3Njl4NjAw
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI1M3gxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1MzogIjAgdXNlcyBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDE1KSBz
aXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjUzeDE5
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDI1MzogIjEgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAo
MjUzLDM1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDApIHNp
emUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDApIHdpZHRoIDI1MzogIjIgdXNl
cyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIg
e0JSfSBhdCAoMjUzLDU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsNjApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNjApIHdpZHRoIDI1
MzogIjMgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAg
UmVuZGVyQlIge0JSfSBhdCAoMjUzLDc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsODApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsODAp
IHdpZHRoIDI1NzogIjQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1Nyw5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEwMCkgc2l6ZSAyNTN4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwxMDApIHdpZHRoIDI1MzogIjUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzog
dHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDExNSkgc2l6ZSAweDAK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEyMCkgc2l6ZSAyNTd4MTkKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwxMjApIHdpZHRoIDI1NzogIjYgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1Nywx
MzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxNDApIHNpemUg
MjU3eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTQwKSB3aWR0aCAyNTc6ICI3IHVzZXMg
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7
QlJ9IGF0ICgyNTcsMTU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMTYwKSBzaXplIDI1N3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE2MCkgd2lkdGgg
MjU3OiAiOCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAg
ICAgUmVuZGVyQlIge0JSfSBhdCAoMjU3LDE3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDE4MCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwxODApIHdpZHRoIDI1NzogIjkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2Us
IFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxOTUpIHNpemUgMHgwCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyMDApIHNpemUgMjYxeDE5CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMjAwKSB3aWR0aCAyNjE6ICIxMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjE1KSBz
aXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjIwKSBzaXplIDI2MXgx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDIyMCkgd2lkdGggMjYxOiAiMTEgdXNlcyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBh
dCAoMjYxLDIzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDI0
MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNDApIHdpZHRoIDI2MTog
IjEyIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJl
bmRlckJSIHtCUn0gYXQgKDI2MSwyNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwyNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjYw
KSB3aWR0aCAyNjE6ICIxMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNz
IgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjc1KSBzaXplIDB4MAorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjgwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDI4MCkgd2lkdGggMjYxOiAiMTQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDI5NSkgc2l6ZSAw
eDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDMwMCkgc2l6ZSAyNjF4MTkKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzMDApIHdpZHRoIDI2MTogIjE1IHVzZXMgYWNjZWxlcmF0
ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2
MSwzMTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzMjApIHNp
emUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzIwKSB3aWR0aCAyNjE6ICIxNiB1
c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJC
UiB7QlJ9IGF0ICgyNjEsMzM1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMzQwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM0MCkgd2lk
dGggMjY1OiAiMTcgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisg
ICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwzNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMzYwKSB3aWR0aCAyNjE6ICIxOCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0
cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzc1KSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzgwKSBzaXplIDI2NXgxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDM4MCkgd2lkdGggMjY1OiAiMTkgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwz
OTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0MDApIHNpemUg
MjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDAwKSB3aWR0aCAyNjE6ICIyMCB1c2Vz
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7
QlJ9IGF0ICgyNjEsNDE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsNDIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQyMCkgd2lkdGgg
MjYxOiAiMjEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAg
ICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDQzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDQ0MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCw0NDApIHdpZHRoIDI2MTogIjIyIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUs
IFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSw0NTUpIHNpemUgMHgwCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0NjApIHNpemUgMjYxeDE5CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsNDYwKSB3aWR0aCAyNjE6ICIyMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDc1KSBz
aXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDgwKSBzaXplIDI2NXgx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQ4MCkgd2lkdGggMjY1OiAiMjQgdXNlcyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0g
YXQgKDI2NSw0OTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1
MDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTAwKSB3aWR0aCAyNjE6
ICIyNSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBS
ZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNTE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsNTIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDUy
MCkgd2lkdGggMjYxOiAiMjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFz
cyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDUzNSkgc2l6ZSAweDAKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDU0MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCw1NDApIHdpZHRoIDI2NTogIjI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNTU1KSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTYwKSBzaXplIDI2NXgxOQor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDU2MCkgd2lkdGggMjY1OiAiMjggdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDI2NSw1NzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1ODAp
IHNpemUgMjY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTgwKSB3aWR0aCAyNjU6ICIy
OSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjY1LDU5NSkgc2l6ZSAweDAKK2xheWVyIGF0ICgyOCwyMCkgc2l6ZSAy
MDJ4MjAyIGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgc2Nyb2xsV2lkdGggMTkwIHNjcm9s
bEhlaWdodCAyMTAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDApIHNpemUgMjAyeDIwMiBb
Ym9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDE2MCwyMCkgc2l6ZSAxMjB4
MjQwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTYwLDIwKSBz
aXplIDEyMHgyNDAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0ICgzOSwxMzEpIHNpemUgMTgw
eDkwIGJhY2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIx
KSBzaXplIDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVu
ZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAzIHtESVZ9IGF0ICgxMSwxMTEpIHNp
emUgMTgweDkwIFtiZ2NvbG9yPSM4MDgwODBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xs
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5
LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2YTExNTc2
ZWJhODEyYWMzMzRhYTA4MzE4NTkzMmI0ZDQwN2I5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9z
aXRlZC1zY3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDE0NiBAQAorPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8v
d3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiLz4KKyAgPHRpdGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xs
aW5nPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAg
ICAuY29udGFpbmVyIHsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7
CisgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdp
ZHRoOiAxODBweDsKKyAgICAgIGhlaWdodDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgfQorCisgICAgLnBvc2l0aW9uZWQgeworICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVp
Z2h0OiAyNDBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgIH0KKworICAgIC5oaWRkZW4geworICAgICAgdmlzaWJpbGl0eTog
aGlkZGVuOworICAgIH0KKworICAgICNwcmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4Owor
ICAgICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNzdWNjZXNzb3IgeworICAgICAgbGVmdDog
MTYwcHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBkb1Rl
c3QoKQorICAgIHsKKyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdwcmVkZWNlc3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmlyc3RDaGlsZCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2YXIgc2Vjb25kQ2hpbGQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZhciByZXN1
bHQgPSAiIjsKKyAgICAgIHZhciBkdW1teSA9IDA7CisgICAgICB2YXIgY291bnQgPSAwOworCisg
ICAgICB2YXIgZXhwZWN0ZWRfcmVzdWx0cyA9IFsKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwg
dHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAor
ICAgICAgICB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLAorICAgICAgICB0cnVlLCB0cnVl
LCBmYWxzZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZh
bHNlLAorICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICBdOwor
CisgICAgICBmb3IgKGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgIGZvciAoaiA9IDA7IGog
PCA1OyArK2opIHsKKyAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgMjsgKytrKSB7CisgICAgICAg
ICAgICB2YXIgbWluWkluZGV4ID0gMDsKKyAgICAgICAgICAgIHZhciBtYXhaSW5kZXggPSAwOwor
ICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxl
LnpJbmRleCA9ICcxJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0g
JzMnOworICAgICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAgICAgICAgICAgfSBlbHNlIGlm
IChpID09IDEpIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEn
OworICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnLTMnOworICAgICAg
ICAgICAgICBtaW5aSW5kZXggPSAtMzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgIGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25k
Q2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsK
KyAgICAgICAgICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgdmFyIHNpYmxpbmcgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgIHZhciB0b0hpZGUgPSBz
dWNjZXNzb3I7CisgICAgICAgICAgICBpZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxp
bmcgPSBzdWNjZXNzb3I7CisgICAgICAgICAgICAgIHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICB0b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsK
KyAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICAgICAgaWYg
KGogPT0gMCkgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5k
ZXggKyAxKS50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAg
ICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJp
bmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAyKSB7CisgICAgICAgICAgICAgIHNp
Ymxpbmcuc3R5bGUuekluZGV4ID0gbWF4WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKGogPT0gMykgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9
IG1pblpJbmRleC50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgc2libGluZy5zdHlsZS56SW5kZXggPSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50
b1N0cmluZygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGb3JjZSBhIHN0eWxl
IHJlY2FsYy4KKyAgICAgICAgICAgIGR1bW15ID0gY29udGFpbmVyLm9mZnNldFRvcDsKKworICAg
ICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgdmFyIGlzQWNj
ZWxlcmF0ZWQgPSB3aW5kb3cuaW50ZXJuYWxzLnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGNvbnRh
aW5lcik7CisgICAgICAgICAgICAgIHJlc3VsdCArPSBjb3VudC50b1N0cmluZygpICsgJyB1c2Vz
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiAnICsgaXNBY2NlbGVyYXRlZCArICcsICcgKyAoZXhw
ZWN0ZWRfcmVzdWx0c1tjb3VudF0gPT0gaXNBY2NlbGVyYXRlZCA/ICdQYXNzJyA6ICdGQUlMJykg
KyAnPGJyPic7CisgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgfQor
ICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxz
ZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgPGRpdiBjbGFzcz0icG9zaXRp
b25lZCIgaWQ9InByZWRlY2Vzc29yIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBp
ZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0Q2hpbGQi
PjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQiPjwvZGl2
PgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InN1Y2Nlc3NvciI+PC9k
aXY+CisgIDxkaXYgaWQ9InJlc3VsdCIgY2xhc3M9ImhpZGRlbiI+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164112</attachid>
            <date>2012-09-14 05:20:01 -0700</date>
            <delta_ts>2012-09-17 06:43:27 -0700</delta_ts>
            <desc>Attempt to make win and gtk bots happy</desc>
            <filename>bug-94743-20120914081932.patch</filename>
            <type>text/plain</type>
            <size>33006</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ3NDAyNmQyODgwZDFm
MjRlMGVkOTM2ZDIzMWY0NjJjYjk3ZmFjNy4uOWIwYjE2YzhkNTZlMTZmYTNhNDViNTFmYjk5ODUw
N2UxNTliZGI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA5LTE0ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBkaXYgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtp
dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNh
bGx5CisgICAgICAgIG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUg
dG8gZG8gc28uIFRoaXMgY2FuIGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlz
IGltcG9ydGFudCB0aGF0IGF1dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAg
ZW5hYmxlZCB2aWEgYSBzZXR0aW5nLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjph
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjppc0Rlc2NlbmRhbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OmNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5k
YXJpZXNJblpPcmRlclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhblNh
ZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQpOgorICAgICAgICAgIFJldHVybnMgdHJ1ZSBp
ZiB0aGUgUmVuZGVyTGF5ZXIgY291bGQgYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dCB3aXRob3V0
CisgICAgICAgICAgYWZmZWN0aW5nIHRoZSBzdGFja2luZyBvcmRlci4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAgICAgICAgSGFz
IGJlZW4gdXBkYXRlZCB0byByZXR1cm4gdHJ1ZSBpZiBpdCBjYW4gc2FmZWx5IGVzdGFibGlzaCBh
IHN0YWNraW5nCisgICAgICAgICAgY29udGV4dCwgYW5kIHRoZSBzZXR0aW5nIGlzIHR1cm5lZCBv
bi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVidWlsZFpPcmRlckxpc3RzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp1cGRhdGVOb3JtYWxGbG93TGlzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6cmVidWlsZE5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFJlbmRlckxheWVyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
ZW5jbG9zaW5nTGF5ZXJJbnRlcm5hbCk6CisgICAgICAgICAgTW92ZWQgdGhlIGJvZHkgb2YgZW5j
bG9zaW5nTGF5ZXIgdG8gZW5jbG9zaW5nTGF5ZXJJbnRlcm5hbCB0byBhZGRyZXNzCisgICAgICAg
ICAgbGlua2luZyBpc3N1ZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjplbmNsb3NpbmdMYXllcik6CisgICAgICAg
IChSZW5kZXJPYmplY3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsKToKKyAgICAgICAgICBBbGxvd3MgZW5hYmxpbmcgdGhlIHNldHRp
bmcgaW4gbGF5b3V0IHRlc3RzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6dXNlc0NvbXBvc2l0ZWRT
Y3JvbGxpbmcpOgorICAgICAgICAgIEFsbG93cyBsYXlvdXQgdGVzdHMgdG8gY2hlY2sgaWYgYSBk
aXYgaXMgdXNpbmcgY29tcG9zaXRlZCBzY3JvbGxpbmcuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDktMTMgIFlvbmcgTGkgIDx5b2xp
QHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFJlc291cmNlUmVxdWVzdCBzdHJpbmcg
b3B0aW1pemF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDk2ODFlMjdlMGFlMjY1NTcy
YzIxNGI0OTYyZDg2MjA4NDQzODdlNzcuLjlkMDUyYzU5ZTQ4YzZhZmM5MDFlNDk4MTkwMTkyYmMy
Y2EwMDVkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTM4NCw3ICszODQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNj
cm9sbGFibGVGcmFtZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQ7IH0KIAogICAgICAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoYm9vbCBlbmFibGVk
KSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCA9IGVu
YWJsZWQ7IH0KLSAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkOyB9OworICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQ7IH0KIAogICAgICAgICB2b2lk
IHNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNGRhZWVjZjkzNmMyOWVmY2E4Y2NmZDgxNjY3
MDcyMWM0NjkwNTVkYi4uY2RkZTQxYWJiZGI2ZmY5YmY1OTcwNDkzZTFkMTg5NDhmZDQ4MDUzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC02NjYsNiArNjY2
LDg3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVBhZ2luYXRpb24oKQogICAgIH0KIH0KIAor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK3N0YXRpYyBib29sIGlzRGVzY2VuZGFu
dChjb25zdCBSZW5kZXJMYXllciogcGFyZW50LCBjb25zdCBSZW5kZXJMYXllciogY2hpbGQpCit7
CisgICAgZm9yIChjb25zdCBSZW5kZXJMYXllciogY3VycmVudCA9IGNoaWxkOyBjdXJyZW50OyBj
dXJyZW50ID0gY3VycmVudC0+cGFyZW50KCkpCisgICAgICAgIGlmIChjdXJyZW50ID09IHBhcmVu
dCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBSZW5kZXJMYXllcjo6Y291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JM
aXN0KFZlY3RvcjxSZW5kZXJMYXllcio+KiBsYXllckxpc3QsIGNvbnN0IFJlbmRlckxheWVyKiB0
b0JlUHJvbW90ZWQsIGludCYgbnVtQm91bmRhcmllcywgYm9vbCYgbGFzdEVsZW1lbnRXYXNEZXNj
ZW5kYW50KQoreworICAgIGlmICghbGF5ZXJMaXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxheWVyTGlzdC0+c2l6ZSgpOyArK2kpCisgICAgICAgIGNv
dW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGxheWVyTGlz
dC0+YXQoaSksIHRvQmVQcm9tb3RlZCwgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNj
ZW5kYW50KTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6Y291bnREZXNjZW5kYW50Tm9uRGVzY2Fu
ZGFudEJvdW5kYXJpZXNJblpPcmRlclRyZWUoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXll
ciwgY29uc3QgUmVuZGVyTGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50JiBudW1Cb3VuZGFyaWVzLCBi
b29sJiBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpCit7CisgICAgaWYgKChjdXJyZW50TGF5ZXIt
PmlzU3RhY2tpbmdDb250ZXh0KCkgJiYgY3VycmVudExheWVyICE9IHRvQmVQcm9tb3RlZC0+c3Rh
Y2tpbmdDb250ZXh0KCkpIHx8IGN1cnJlbnRMYXllciA9PSB0b0JlUHJvbW90ZWQpIHsKKyAgICAg
ICAgaWYgKGlzRGVzY2VuZGFudCh0b0JlUHJvbW90ZWQsIGN1cnJlbnRMYXllcikpIHsKKyAgICAg
ICAgICAgIGlmICghbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQorICAgICAgICAgICAgICAgIG51
bUJvdW5kYXJpZXMrKzsKKyAgICAgICAgICAgIGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCA9IHRy
dWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobGFzdEVsZW1lbnRXYXNEZXNj
ZW5kYW50KQorICAgICAgICAgICAgICAgIG51bUJvdW5kYXJpZXMrKzsKKyAgICAgICAgICAgIGxh
c3RFbGVtZW50V2FzRGVzY2VuZGFudCA9IGZhbHNlOworICAgICAgICB9CisgICAgfSBlbHNlIHsK
KyAgICAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIG5lZ1pPcmRlckxpc3QgPSAwOworICAgICAg
ICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9IDA7CisgICAgICAgIGlmIChj
dXJyZW50TGF5ZXItPm1fek9yZGVyTGlzdHNEaXJ0eSkKKyAgICAgICAgICAgIGN1cnJlbnRMYXll
ci0+cmVidWlsZFpPcmRlckxpc3RzKHBvc1pPcmRlckxpc3QsIG5lZ1pPcmRlckxpc3QpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIG5lZ1pPcmRlckxpc3QgPSBjdXJyZW50TGF5ZXItPm5l
Z1pPcmRlckxpc3QoKTsKKyAgICAgICAgICAgIHBvc1pPcmRlckxpc3QgPSBjdXJyZW50TGF5ZXIt
PnBvc1pPcmRlckxpc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3RvcjxSZW5kZXJMYXll
cio+KiBub3JtYWxGbG93TGlzdCA9IDA7CisgICAgICAgIGlmIChjdXJyZW50TGF5ZXItPm1fbm9y
bWFsRmxvd0xpc3REaXJ0eSkKKyAgICAgICAgICAgIGN1cnJlbnRMYXllci0+cmVidWlsZE5vcm1h
bEZsb3dMaXN0KG5vcm1hbEZsb3dMaXN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbm9y
bWFsRmxvd0xpc3QgPSBjdXJyZW50TGF5ZXItPm5vcm1hbEZsb3dMaXN0KCk7CisKKyAgICAgICAg
Y291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JMaXN0KG5lZ1pPcmRlckxp
c3QsIHRvQmVQcm9tb3RlZCwgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50
KTsKKyAgICAgICAgY291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JMaXN0
KG5vcm1hbEZsb3dMaXN0LCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVtZW50
V2FzRGVzY2VuZGFudCk7CisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3Vu
ZGFyaWVzRm9yTGlzdChwb3NaT3JkZXJMaXN0LCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMs
IGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCk7CisgICAgfQorfQorCitib29sIFJlbmRlckxheWVy
OjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3QKK3sKKyAgICBpZiAo
aXNTdGFja2luZ0NvbnRleHQoKSB8fCAhc3RhY2tpbmdDb250ZXh0KCkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgLy8gSWYgb3VyIHByb21vdGlvbiB0byBhIHN0YWNraW5nIGNvbnRleHQg
d291bGQgbm90IGFmZmVjdCBzdGFja2luZyBvcmRlciwKKyAgICAvLyB0aGVuIHRoaXMgbGF5ZXIg
YW5kIGFsbCBvZiBpdHMgZGVzY2VuZGVudHMgc2hvdWxkIGFwcGVhciBhcyBhIGNvbnRpbnVvdXMK
KyAgICAvLyBibG9jayBpZiB3ZSBhcmUgdG8gdHJhdmVyc2UgdGhlIGVsZW1lbnRzIGluIHRoZSBz
dGFja2luZyBjb250ZXh0IGluCisgICAgLy8gcGFpbnQgb3JkZXIuIFRoYXQgaXMsIHRoZSBudW1i
ZXIgb2YgYm91bmRhcmllcyBiZXR3ZWVuIGRlc2NlbmRhbnRzLCBhbmQKKyAgICAvLyBub24gZGVz
Y2VuZGFudHMgc2hvdWxkIGJlIGV4YWN0bHkgdHdvIChpZiB3ZSBhc3N1bWUgdGhhdCBpZiB0aGUg
Zmlyc3Qgb3IKKyAgICAvLyBsYXN0IGVsZW1lbnQgaW4gdGhlIGxpc3QgaXMgYSBkZXNjZW5kYW50
LCB0aGF0IHRoaXMgaXMgYWxzbyBhIGJvdW5kYXJ5KS4KKworICAgIC8vIEJ5IGluaXRpYWxpemlu
ZyB0byBmYWxzZSwgaWYgdGhlIGZpcnN0IGVsZW1lbnQgd2Ugc2VlIGlzIGEgZGVzY2VuZGFudCwK
KyAgICAvLyB0aGVuIHdlIGNvcnJlY3RseSBtYXJrIGl0IGFzIGEgYm91bmRhcnkuCisgICAgYm9v
bCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQgPSBmYWxzZTsKKworICAgIGludCBudW1Cb3VuZGFy
aWVzID0gMDsKKworICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5a
T3JkZXJUcmVlKHN0YWNraW5nQ29udGV4dCgpLCB0aGlzLCBudW1Cb3VuZGFyaWVzLCBsYXN0RWxl
bWVudFdhc0Rlc2NlbmRhbnQpOworCisgICAgLy8gSWYgdGhlIGxhc3QgZWxlbWVudCB3ZSBzZWUg
aXMgYSBkZXNjZW5kYW50LCB0aGlzIGlzIGFsc28gYSBib3VuZGFyeS4KKyAgICBpZiAobGFzdEVs
ZW1lbnRXYXNEZXNjZW5kYW50KQorICAgICAgICBudW1Cb3VuZGFyaWVzKys7CisKKyAgICByZXR1
cm4gbnVtQm91bmRhcmllcyA9PSAyOworfQorCisjZW5kaWYKKwogdm9pZCBSZW5kZXJMYXllcjo6
c2V0SGFzVmlzaWJsZUNvbnRlbnQoKQogeyAKICAgICBpZiAobV9oYXNWaXNpYmxlQ29udGVudCAm
JiAhbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5KSB7CkBAIC0xNTczLDEwICsxNjU0LDEzIEBA
IGJvb2wgUmVuZGVyTGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QKICAgICBp
ZiAoIXNjcm9sbHNPdmVyZmxvdygpIHx8ICFhbGxvd3NTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgYm9vbCBhdXRvbWF0aWNhbGx5T3B0SW4gPSByZW5kZXJlcigpLT5m
cmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVy
Zmxvd1Njcm9sbEVuYWJsZWQoKQorICAgICAgICAmJiBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tp
bmdDb250ZXh0KCk7CisKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5H
KQotICAgIHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xs
aW5nKCk7CisgICAgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dT
Y3JvbGxpbmcoKSB8fCBhdXRvbWF0aWNhbGx5T3B0SW47CiAjZWxzZQotICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gYXV0b21hdGljYWxseU9wdEluOwogI2VuZGlmCiB9CiAjZW5kaWYKQEAg
LTE3MzEsOCArMTgxNSwxNSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQgeCwgaW50
IHkpCiAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+ZGlzcGF0Y2hGYWtlTW91c2VNb3Zl
RXZlbnRTb29uSW5RdWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogICAgIH0KIAorICAg
IGJvb2wgcmVxdWlyZXNSZXBhaW50ID0gdHJ1ZTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKyAgICBpZiAoY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5nTW9kZSgpICYmIHVz
ZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgICAgIHJlcXVpcmVzUmVwYWludCA9IGZhbHNl
OworI2VuZGlmCisKICAgICAvLyBKdXN0IHNjaGVkdWxlIGEgZnVsbCByZXBhaW50IG9mIG91ciBv
YmplY3QuCi0gICAgaWYgKHZpZXcgJiYgIXVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAg
aWYgKHZpZXcgJiYgcmVxdWlyZXNSZXBhaW50KQogICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50
VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwgcGl4ZWxTbmFwcGVkSW50UmVjdChtX3Jl
cGFpbnRSZWN0KSk7CiAKICAgICAvLyBTY2hlZHVsZSB0aGUgc2Nyb2xsIERPTSBldmVudC4KQEAg
LTQ1NTIsNiArNDY0MywxMyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMo
KQogICAgIEFTU0VSVChtX2xheWVyTGlzdE11dGF0aW9uQWxsb3dlZCk7CiAgICAgQVNTRVJUKGlz
RGlydHlTdGFja2luZ0NvbnRleHQoKSk7CiAKKyAgICByZWJ1aWxkWk9yZGVyTGlzdHMobV9wb3Na
T3JkZXJMaXN0LCBtX25lZ1pPcmRlckxpc3QpOworCisgICAgbV96T3JkZXJMaXN0c0RpcnR5ID0g
ZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cyhWZWN0b3I8
UmVuZGVyTGF5ZXIqPiomIHBvc1pPcmRlckxpc3QsIFZlY3RvcjxSZW5kZXJMYXllcio+KiYgbmVn
Wk9yZGVyTGlzdCkgY29uc3QKK3sKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXJzID0gY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5n
TW9kZSgpOwogI2Vsc2UKQEAgLTQ1NTksMTYgKzQ2NTcsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cmVidWlsZFpPcmRlckxpc3RzKCkKICNlbmRpZgogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxk
ID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKICAg
ICAgICAgaWYgKCFtX3JlZmxlY3Rpb24gfHwgcmVmbGVjdGlvbkxheWVyKCkgIT0gY2hpbGQpCi0g
ICAgICAgICAgICBjaGlsZC0+Y29sbGVjdExheWVycyhpbmNsdWRlSGlkZGVuTGF5ZXJzLCBtX3Bv
c1pPcmRlckxpc3QsIG1fbmVnWk9yZGVyTGlzdCk7CisgICAgICAgICAgICBjaGlsZC0+Y29sbGVj
dExheWVycyhpbmNsdWRlSGlkZGVuTGF5ZXJzLCBwb3NaT3JkZXJMaXN0LCBuZWdaT3JkZXJMaXN0
KTsKIAogICAgIC8vIFNvcnQgdGhlIHR3byBsaXN0cy4KLSAgICBpZiAobV9wb3NaT3JkZXJMaXN0
KQotICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KG1fcG9zWk9yZGVyTGlzdC0+YmVnaW4oKSwgbV9w
b3NaT3JkZXJMaXN0LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7CisgICAgaWYgKHBvc1pPcmRlckxp
c3QpCisgICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQocG9zWk9yZGVyTGlzdC0+YmVnaW4oKSwgcG9z
Wk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5kZXgpOwogCi0gICAgaWYgKG1fbmVnWk9yZGVy
TGlzdCkKLSAgICAgICAgc3RkOjpzdGFibGVfc29ydChtX25lZ1pPcmRlckxpc3QtPmJlZ2luKCks
IG1fbmVnWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5kZXgpOwotCi0gICAgbV96T3JkZXJM
aXN0c0RpcnR5ID0gZmFsc2U7CisgICAgaWYgKG5lZ1pPcmRlckxpc3QpCisgICAgICAgIHN0ZDo6
c3RhYmxlX3NvcnQobmVnWk9yZGVyTGlzdC0+YmVnaW4oKSwgbmVnWk9yZGVyTGlzdC0+ZW5kKCks
IGNvbXBhcmVaSW5kZXgpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOb3JtYWxGbG93
TGlzdCgpCkBAIC00NTc4LDE2ICs0Njc0LDIxIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU5v
cm1hbEZsb3dMaXN0KCkKIAogICAgIEFTU0VSVChtX2xheWVyTGlzdE11dGF0aW9uQWxsb3dlZCk7
CiAKKyAgICByZWJ1aWxkTm9ybWFsRmxvd0xpc3QobV9ub3JtYWxGbG93TGlzdCk7CisKKyAgICBt
X25vcm1hbEZsb3dMaXN0RGlydHkgPSBmYWxzZTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6cmVi
dWlsZE5vcm1hbEZsb3dMaXN0KFZlY3RvcjxSZW5kZXJMYXllcio+KiYgbm9ybWFsRmxvd0xpc3Qp
IGNvbnN0Cit7CiAgICAgZm9yIChSZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIC8vIElnbm9yZSBu
b24tb3ZlcmZsb3cgbGF5ZXJzIGFuZCByZWZsZWN0aW9ucy4KICAgICAgICAgaWYgKGNoaWxkLT5p
c05vcm1hbEZsb3dPbmx5KCkgJiYgKCFtX3JlZmxlY3Rpb24gfHwgcmVmbGVjdGlvbkxheWVyKCkg
IT0gY2hpbGQpKSB7Ci0gICAgICAgICAgICBpZiAoIW1fbm9ybWFsRmxvd0xpc3QpCi0gICAgICAg
ICAgICAgICAgbV9ub3JtYWxGbG93TGlzdCA9IG5ldyBWZWN0b3I8UmVuZGVyTGF5ZXIqPjsKLSAg
ICAgICAgICAgIG1fbm9ybWFsRmxvd0xpc3QtPmFwcGVuZChjaGlsZCk7CisgICAgICAgICAgICBp
ZiAoIW5vcm1hbEZsb3dMaXN0KQorICAgICAgICAgICAgICAgIG5vcm1hbEZsb3dMaXN0ID0gbmV3
IFZlY3RvcjxSZW5kZXJMYXllcio+OworICAgICAgICAgICAgbm9ybWFsRmxvd0xpc3QtPmFwcGVu
ZChjaGlsZCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgbV9ub3JtYWxGbG93TGlzdERp
cnR5ID0gZmFsc2U7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMoYm9vbCBp
bmNsdWRlSGlkZGVuTGF5ZXJzLCBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIHBvc0J1ZmZlciwgVmVj
dG9yPFJlbmRlckxheWVyKj4qJiBuZWdCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCmluZGV4IDM4MDU1ODFjZGUwMTllNTA0NGJkOTNlYTliM2FiNGYzNjFkYTk2NTMu
LjhlYTk5NjJiYmJjZmMzMDg3NmM2NThlMjdhMGNhN2UzZjM2MzI0OWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02ODAsOSArNjgwLDExIEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgdm9pZCB1cGRhdGVaT3JkZXJMaXN0cygpOwogICAgIHZvaWQgcmVidWlsZFpP
cmRlckxpc3RzKCk7CisgICAgdm9pZCByZWJ1aWxkWk9yZGVyTGlzdHMoVmVjdG9yPFJlbmRlckxh
eWVyKj4qJiBwb3NaT3JkZXJMaXN0LCBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5lZ1pPcmRlckxp
c3QpIGNvbnN0OwogICAgIHZvaWQgY2xlYXJaT3JkZXJMaXN0cygpOwogCiAgICAgdm9pZCB1cGRh
dGVOb3JtYWxGbG93TGlzdCgpOworICAgIHZvaWQgcmVidWlsZE5vcm1hbEZsb3dMaXN0KFZlY3Rv
cjxSZW5kZXJMYXllcio+KiYgbm9ybWFsRmxvd0xpc3QpIGNvbnN0OwogCiAgICAgYm9vbCBpc1N0
YWNraW5nQ29udGV4dChjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0IHsgcmV0dXJuICFz
dHlsZS0+aGFzQXV0b1pJbmRleCgpIHx8IGlzUm9vdExheWVyKCk7IH0KICAgICBib29sIGlzRGly
dHlTdGFja2luZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX3pPcmRlckxpc3RzRGlydHkgJiYg
aXNTdGFja2luZ0NvbnRleHQoKTsgfQpAQCAtODc1LDYgKzg3NywxMyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2V0SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbihJbmRpcmVjdENvbXBvc2l0aW5nUmVh
c29uIHJlYXNvbikgeyBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gPSByZWFzb247IH0KICAg
ICBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uPihtX2lu
ZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24pOyB9CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRlRm9ySW5k
aXJlY3RSZWFzb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
OyB9CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWZmIHogb3JkZXJpbmcgd291bGQgbm90IGNoYW5n
ZSBpZiB0aGlzIGxheWVyIHdlcmUgdG8gZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dC4KKyAg
ICBib29sIGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdDsKKworICAg
IC8vIFRoZXNlIHR3byBtZXRob2RzIGFyZSB1c2VkIGJ5IGNhblNhZmVseUVzdGFibGlzaEFTdGFj
a2luZ0NvbnRleHQuCisgICAgc3RhdGljIHZvaWQgY291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFu
dEJvdW5kYXJpZXNJblpPcmRlclRyZWUoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciwg
Y29uc3QgUmVuZGVyTGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50JiBudW1Cb3VuZGFyaWVzLCBib29s
JiBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgIHN0YXRpYyB2b2lkIGNvdW50RGVzY2Vu
ZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiog
bGF5ZXJMaXN0LCBjb25zdCBSZW5kZXJMYXllciogdG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5k
YXJpZXMsIGJvb2wmIGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCk7CiAjZW5kaWYKIAogICAgIGZy
aWVuZCBjbGFzcyBSZW5kZXJMYXllckJhY2tpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCmluZGV4IDIxNDk3MGEzNThjNjZlYzgyZDgwMWUwYjExOTI4MzkyYzMy
YWY3ZTQuLmRiMWI1OGNhMDBjZTY1ZjNhNTI0MDIyMGMxZDE5ZjhiOWRjZWQ3YTEgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC01MTYsNyArNTE2LDcgQEAg
UmVuZGVyTGF5ZXIqIFJlbmRlck9iamVjdDo6ZmluZE5leHRMYXllcihSZW5kZXJMYXllciogcGFy
ZW50TGF5ZXIsIFJlbmRlck9iamVjdCoKICAgICByZXR1cm4gMDsKIH0KIAotUmVuZGVyTGF5ZXIq
IFJlbmRlck9iamVjdDo6ZW5jbG9zaW5nTGF5ZXIoKSBjb25zdAorUmVuZGVyTGF5ZXIqIFJlbmRl
ck9iamVjdDo6ZW5jbG9zaW5nTGF5ZXJJbnRlcm5hbCgpIGNvbnN0CiB7CiAgICAgY29uc3QgUmVu
ZGVyT2JqZWN0KiBjdXJyID0gdGhpczsKICAgICB3aGlsZSAoY3VycikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDNmMzg0OWY2MjllMGJhOWU0MzZkNTk4YjNk
MjdlYzUyMWE0OWNkODAuLmI1ZGRlYTRkNDk1YjZlZTkzMTQyMzVlMWQwOWI4MmUyOGM0MGJkNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTIxMiw3ICsyMTIs
NyBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIGZvbGxvd2luZyBzaXggZnVuY3Rpb25zIGFyZSB1c2Vk
IHdoZW4gdGhlIHJlbmRlciB0cmVlIGhpZXJhcmNoeSBjaGFuZ2VzIHRvIG1ha2Ugc3VyZSBsYXll
cnMgZ2V0CiAgICAgLy8gcHJvcGVybHkgYWRkZWQgYW5kIHJlbW92ZWQuICBTaW5jZSBjb250YWlu
ZXJzaGlwIGNhbiBiZSBpbXBsZW1lbnRlZCBieSBhbnkgc3ViY2xhc3MsIGFuZCBzaW5jZSBhIGhp
ZXJhcmNoeQogICAgIC8vIGNhbiBjb250YWluIGEgbWl4dHVyZSBvZiBib3hlcyBhbmQgb3RoZXIg
b2JqZWN0IHR5cGVzLCB0aGVzZSBmdW5jdGlvbnMgbmVlZCB0byBiZSBpbiB0aGUgYmFzZSBjbGFz
cy4KLSAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nTGF5ZXIoKSBjb25zdDsKKyAgICBSZW5kZXJM
YXllciogZW5jbG9zaW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiBlbmNsb3NpbmdMYXllckludGVy
bmFsKCk7IH0KICAgICB2b2lkIGFkZExheWVycyhSZW5kZXJMYXllciogcGFyZW50TGF5ZXIpOwog
ICAgIHZvaWQgcmVtb3ZlTGF5ZXJzKFJlbmRlckxheWVyKiBwYXJlbnRMYXllcik7CiAgICAgdm9p
ZCBtb3ZlTGF5ZXJzKFJlbmRlckxheWVyKiBvbGRQYXJlbnQsIFJlbmRlckxheWVyKiBuZXdQYXJl
bnQpOwpAQCAtOTYxLDYgKzk2MSw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5z
ZXJ0ZWRJbnRvVHJlZSgpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbVRyZWUo
KTsKIAorICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdMYXllckludGVybmFsKCkgY29uc3Q7CisK
IHByaXZhdGU6CiAgICAgUmVuZGVyU3R5bGUqIGZpcnN0TGluZVN0eWxlU2xvd0Nhc2UoKSBjb25z
dDsKICAgICBTdHlsZURpZmZlcmVuY2UgYWRqdXN0U3R5bGVEaWZmZXJlbmNlKFN0eWxlRGlmZmVy
ZW5jZSwgdW5zaWduZWQgY29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNjY5ZDA1ZWI2MWNk
YmM2Y2Q5ODc5NjBjYjQwNTA5Mzk3NDkyNzgyOS4uN2IxNThjMWY0NjcyZGJiOGI2ZGFkNWJiMDYw
NmIyNTU5ZTVjN2ZlZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwCkBAIC0yMjAsNiArMjIwLDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjCiAgICAg
c2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNF
bmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRp
bmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQo
ZW5hYmxlZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3
aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVy
bmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGEzNzYyYmJlODA5MDE5ODUyN2U5NzQ3YjdjMWU3ZDZiZmJk
NWQ0OWYuLjc4YzkyODcwMjAzMTUyMWVhZTY2ZTJmYzZhYTJhMjBkYmQzNzZmZWQgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC05NSw2ICs5NSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0
aW9uKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2NlbGVy
YXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZv
aWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggNTE3
YmFhNjMzZTM3OTc2MzJmZjUxMjY2ZjI4ZTU5NzNmNGRlYTM5MC4uMzI4Yzc2MTFjMmU5YjdmMmY5
MDM5N2U3ZjM1MTFhMjI4OTZhNGU1YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaWRsCkBAIC0zMSw2ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAg
ICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhl
ZFBvc2l0aW9uKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAg
ICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xl
YW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBz
ZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggMzY5NDgxNDIyZjZjYTJmY2UwMmY1NDg4ZjVhNWIwODI3Mzg4NDI3
OS4uOTc0YmRlZDg5ODMxM2Y1N2RjZWU0ZmUzOWQzZGZjZDJhZTk3MDRmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTAxLDYgKzEwMSwxMCBAQAogI2luY2x1ZGUgIlJl
bmRlckxheWVyQmFja2luZy5oIgogI2VuZGlmCiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC0xMDk2LDYgKzExMDAsMzcg
QEAgYm9vbCBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2libGUoRG9jdW1lbnQqIGRvY3VtZW50LCBp
bnQgcGFnZU51bWJlciwgRXhjZXB0aW9uQ28KICAgICByZXR1cm4gZG9jdW1lbnQtPmlzUGFnZUJv
eFZpc2libGUocGFnZU51bWJlcik7CiB9CiAKK2Jvb2wgSW50ZXJuYWxzOjp1c2VzQ29tcG9zaXRl
ZFNjcm9sbGluZyhOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJPYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICghcmVu
ZGVyT2JqZWN0KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJSOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFyZW5kZXJPYmplY3QtPmhhc0xheWVy
KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIFJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IHJlbmRlck9iamVj
dC0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICBpZiAoIXJlbmRlckxheWVyKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gcmVuZGVyTGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisjZWxzZQor
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lkIEludGVybmFsczo6c3VzcGVuZEFu
aW1hdGlvbnMoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsK
ICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKaW5kZXggYjBmMTYwNGI5NzU1Y2E4NmFkZjZlZTYwNGNhMTY2YzMxYmQz
N2FmMi4uODUzYmU0YjkwYmVkZWQ0MjdiODExOTZlNDdmMjI0NWY1Njg1NGVhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xNzMsNiArMTczLDggQEAgcHVibGljOgogCiAgICAg
Ym9vbCBpc1BhZ2VCb3hWaXNpYmxlKERvY3VtZW50KiwgaW50IHBhZ2VOdW1iZXIsIEV4Y2VwdGlv
bkNvZGUmKTsKIAorICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoTm9kZSosIEV4Y2Vw
dGlvbkNvZGUmKTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAogICAg
IEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKaW5kZXggZjYyY2VhYzg1N2YxOGNjYmFmY2ZjMDJlNjM3Y2NlOWE3ZTMwY2Y3
MC4uZDI0OTA1ZTE2ZmUyMDBlZmYyYzUxNzNiYjVmOGIwODQ4OTkzMmRjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTUxLDYgKzE1MSw4IEBAIG1vZHVsZSB3aW5kb3cg
ewogCiAgICAgICAgIGJvb2xlYW4gaXNQYWdlQm94VmlzaWJsZShpbiBEb2N1bWVudCBkb2N1bWVu
dCwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAg
Ym9vbGVhbiB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhpbiBOb2RlIG5vZGUpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5n
cyBzZXR0aW5nczsKIAogICAgICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGluIERvY3VtZW50
IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTEzZGFiZjU3MmUzMDQ1
YWZiNjQzZDM1MWUwNjE2NmRhNGU2YmU2Yi4uMmZkNDVkYzM3MTViZTdmMWNmODdiNTQwNzNhMjdk
MDNhYTE4MTlkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTE0ICBJYW4gVm9sbGlj
ayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEF1dG9tYXRpY2FsbHkgdXNlIGNv
bXBvc2l0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NDc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzIHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb2YgZWxlbWVudHMgdG8gZW5z
dXJlIHRoYXQgd2Ugb25seSBhdXRvbWF0aWNhbGx5IG9wdCBpbnRvCisgICAgICAgIGNvbXBvc2l0
ZWQgc2Nyb2xsaW5nIHdoZW4gaXQgaXMgc2FmZSB0byBkbyBzby4KKworICAgICAgICAqIGNvbXBv
c2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxp
bmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9h
dXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgor
CiAyMDEyLTA5LTEzICBKb2huIE1lbGxvciAgPGpvaG5tZUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVGV4dCBBdXRvc2l6aW5nOiBBZGQgZXhwbGFuYXRpb25zIHRvIHRlc3RzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50
by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5n
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDg4ZDFhMTNiNTMwZjZlYjY2ZGQxNGI4YWMyMjZm
YmZkNjc1NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDg1MAorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4
ODUwIGxheWVyVHlwZTogYmFja2dyb3VuZCBvbmx5CitsYXllciBhdCAoMzksMzEpIHNpemUgMTgw
eDkwIGJhY2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIx
KSBzaXplIDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVu
ZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAtMSB7RElWfSBhdCAoMTEsMTEpIHNp
emUgMTgweDkwIFtiZ2NvbG9yPSM4MDgwODBdCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg4NTAg
bGF5ZXJUeXBlOiBmb3JlZ3JvdW5kIG9ubHkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgNzg1eDg1MAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDIwKSBzaXplIDc2OXg4
MjIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIyMikgc2l6ZSA3Njl4NjAwCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI1M3gxOQorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1MzogIjAgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDE1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjUzeDE5CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDI1MzogIjEgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDM1
KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDApIHNpemUgMjUz
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDApIHdpZHRoIDI1MzogIjIgdXNlcyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBh
dCAoMjUzLDU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNjAp
IHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNjApIHdpZHRoIDI1MzogIjMg
dXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVy
QlIge0JSfSBhdCAoMjUzLDc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsODApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsODApIHdpZHRo
IDI1NzogIjQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAg
ICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1Nyw5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDEwMCkgc2l6ZSAyNTN4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwxMDApIHdpZHRoIDI1MzogIjUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwg
UGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDExNSkgc2l6ZSAweDAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEyMCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwxMjApIHdpZHRoIDI1NzogIjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxMzUpIHNp
emUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxNDApIHNpemUgMjU3eDE5
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTQwKSB3aWR0aCAyNTc6ICI3IHVzZXMgYWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0
ICgyNTcsMTU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTYw
KSBzaXplIDI1N3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE2MCkgd2lkdGggMjU3OiAi
OCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjU3LDE3NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDE4MCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxODAp
IHdpZHRoIDI1NzogIjkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxOTUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyMDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMjAwKSB3aWR0aCAyNjE6ICIxMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjE1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjIwKSBzaXplIDI2MXgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDIyMCkgd2lkdGggMjYxOiAiMTEgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYx
LDIzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDI0MCkgc2l6
ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyNDApIHdpZHRoIDI2MTogIjEyIHVz
ZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDI2MSwyNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwyNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjYwKSB3aWR0
aCAyNjE6ICIxMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAg
ICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMjgwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDI4MCkgd2lkdGggMjYxOiAiMTQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1
ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDI5NSkgc2l6ZSAweDAKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDMwMCkgc2l6ZSAyNjF4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwzMDApIHdpZHRoIDI2MTogIjE1IHVzZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwzMTUp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzMjApIHNpemUgMjYx
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzIwKSB3aWR0aCAyNjE6ICIxNiB1c2VzIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9
IGF0ICgyNjEsMzM1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MzQwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM0MCkgd2lkdGggMjY1
OiAiMTcgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAg
IFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwzNjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MzYwKSB3aWR0aCAyNjE6ICIxOCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQ
YXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzc1KSBzaXplIDB4MAorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzgwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDM4MCkgd2lkdGggMjY1OiAiMTkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzOTUpIHNp
emUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0MDApIHNpemUgMjYxeDE5
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDAwKSB3aWR0aCAyNjE6ICIyMCB1c2VzIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0
ICgyNjEsNDE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDIw
KSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDQyMCkgd2lkdGggMjYxOiAi
MjEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjYxLDQzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDQ0MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0NDAp
IHdpZHRoIDI2MTogIjIyIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSw0NTUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0NjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsNDYwKSB3aWR0aCAyNjE6ICIyMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDc1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDgwKSBzaXplIDI2NXgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDQ4MCkgd2lkdGggMjY1OiAiMjQgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2
NSw0OTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1MDApIHNp
emUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTAwKSB3aWR0aCAyNjE6ICIyNSB1
c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJC
UiB7QlJ9IGF0ICgyNjEsNTE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsNTIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDUyMCkgd2lk
dGggMjYxOiAiMjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAg
ICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDUzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDU0MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCw1NDApIHdpZHRoIDI2NTogIjI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZh
bHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNTU1KSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTYwKSBzaXplIDI2NXgxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDU2MCkgd2lkdGggMjY1OiAiMjggdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSw1
NzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1ODApIHNpemUg
MjY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTgwKSB3aWR0aCAyNjU6ICIyOSB1c2Vz
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIg
e0JSfSBhdCAoMjY1LDU5NSkgc2l6ZSAweDAKK2xheWVyIGF0ICgyOCwyMCkgc2l6ZSAyMDJ4MjAy
IGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgc2Nyb2xsV2lkdGggMTkwIHNjcm9sbEhlaWdo
dCAyMTAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDApIHNpemUgMjAyeDIwMiBbYm9yZGVy
OiAoMXB4IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDE2MCwyMCkgc2l6ZSAxMjB4MjQwCisg
IFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTYwLDIwKSBzaXplIDEy
MHgyNDAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0ICgzOSwxMzEpIHNpemUgMTgweDkwIGJh
Y2tncm91bmRDbGlwIGF0ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIxKSBzaXpl
IDE4NXgxODUgb3V0bGluZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVuZGVyQmxv
Y2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAzIHtESVZ9IGF0ICgxMSwxMTEpIHNpemUgMTgw
eDkwIFtiZ2NvbG9yPSM4MDgwODBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1p
bnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2YTExNTc2ZWJhODEy
YWMzMzRhYTA4MzE4NTkzMmI0ZDQwN2I5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1z
Y3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDE0NiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICIt
Ly9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9dXRmLTgiLz4KKyAgPHRpdGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nPC90
aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuY29u
dGFpbmVyIHsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAg
ICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdpZHRoOiAx
ODBweDsKKyAgICAgIGhlaWdodDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQor
CisgICAgLnBvc2l0aW9uZWQgeworICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVpZ2h0OiAy
NDBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIH0KKworICAgIC5oaWRkZW4geworICAgICAgdmlzaWJpbGl0eTogaGlkZGVu
OworICAgIH0KKworICAgICNwcmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAg
dG9wOiAyMHB4OworICAgIH0KKworICAgICNzdWNjZXNzb3IgeworICAgICAgbGVmdDogMTYwcHg7
CisgICAgICB0b3A6IDIwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQor
ICAgIHsKKyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdw
cmVkZWNlc3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzdWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmlyc3RDaGlsZCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2YXIgc2Vjb25kQ2hpbGQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZhciByZXN1bHQgPSAi
IjsKKyAgICAgIHZhciBkdW1teSA9IDA7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICB2
YXIgZXhwZWN0ZWRfcmVzdWx0cyA9IFsKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwg
ZmFsc2UsCisgICAgICAgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgICAg
ICB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLAorICAgICAgICB0cnVlLCB0cnVlLCBmYWxz
ZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLAor
ICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICBdOworCisgICAg
ICBmb3IgKGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCA1OyAr
K2opIHsKKyAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgMjsgKytrKSB7CisgICAgICAgICAgICB2
YXIgbWluWkluZGV4ID0gMDsKKyAgICAgICAgICAgIHZhciBtYXhaSW5kZXggPSAwOworICAgICAg
ICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRl
eCA9ICcxJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOwor
ICAgICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09
IDEpIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAg
ICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnLTMnOworICAgICAgICAgICAg
ICBtaW5aSW5kZXggPSAtMzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGZp
cnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQu
c3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsKKyAgICAg
ICAgICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFy
IHNpYmxpbmcgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgIHZhciB0b0hpZGUgPSBzdWNjZXNz
b3I7CisgICAgICAgICAgICBpZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcgPSBz
dWNjZXNzb3I7CisgICAgICAgICAgICAgIHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICB0b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAg
ICAgICAgIHNpYmxpbmcuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICAgICAgaWYgKGogPT0g
MCkgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAx
KS50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAgICAgICAg
ICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAyKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcu
c3R5bGUuekluZGV4ID0gbWF4WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKGogPT0gMykgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJ
bmRleC50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgc2li
bGluZy5zdHlsZS56SW5kZXggPSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmlu
ZygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2Fs
Yy4KKyAgICAgICAgICAgIGR1bW15ID0gY29udGFpbmVyLm9mZnNldFRvcDsKKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgdmFyIGlzQWNjZWxlcmF0
ZWQgPSB3aW5kb3cuaW50ZXJuYWxzLnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGNvbnRhaW5lcik7
CisgICAgICAgICAgICAgIHJlc3VsdCArPSBjb3VudC50b1N0cmluZygpICsgJyB1c2VzIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nOiAnICsgaXNBY2NlbGVyYXRlZCArICcsICcgKyAoZXhwZWN0ZWRf
cmVzdWx0c1tjb3VudF0gPT0gaXNBY2NlbGVyYXRlZCA/ICdQYXNzJyA6ICdGQUlMJykgKyAnPGJy
Pic7CisgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICAgIH0K
KworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7Cisg
IDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIg
aWQ9InByZWRlY2Vzc29yIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0iY29u
dGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0Q2hpbGQiPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQiPjwvZGl2PgorICA8
L2Rpdj4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InN1Y2Nlc3NvciI+PC9kaXY+Cisg
IDxkaXYgaWQ9InJlc3VsdCIgY2xhc3M9ImhpZGRlbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164385</attachid>
            <date>2012-09-17 06:43:32 -0700</date>
            <delta_ts>2012-09-17 13:46:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20120917094300.patch</filename>
            <type>text/plain</type>
            <size>34509</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJiNjI3ZmM4NDEwNWUw
ZDk1ZTk1M2JiY2RmY2YwODExNmU2ODFhYS4uODUzMTViNGVjNzhjNmQ2YTYxODI5NTg3MzYyMGJj
ZTA2YzkzMWE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA5LTE3ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBkaXYgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtp
dC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNh
bGx5CisgICAgICAgIG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUg
dG8gZG8gc28uIFRoaXMgY2FuIGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlz
IGltcG9ydGFudCB0aGF0IGF1dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAg
ZW5hYmxlZCB2aWEgYSBzZXR0aW5nLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjph
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKToKKyAgICAgICAg
ICBBZGRzIHRoZSBuZXcgc2V0dGluZyBmb3IgZW5hYmxpbmcgYXV0b21hdGljYWxseSBvcHRpbmcg
aW50byBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjppc0Rlc2NlbmRh
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRl
c2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6Y291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNJblpPcmRlclRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFja2lu
Z0NvbnRleHQpOgorICAgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgUmVuZGVyTGF5ZXIgY291
bGQgYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dCB3aXRob3V0CisgICAgICAgICAgYWZmZWN0aW5n
IHRoZSBzdGFja2luZyBvcmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1c2Vz
Q29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAgICAgICAgSGFzIGJlZW4gdXBkYXRlZCB0byByZXR1
cm4gdHJ1ZSBpZiBpdCBjYW4gc2FmZWx5IGVzdGFibGlzaCBhIHN0YWNraW5nCisgICAgICAgICAg
Y29udGV4dCwgYW5kIHRoZSBzZXR0aW5nIGlzIHR1cm5lZCBvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
cmVidWlsZFpPcmRlckxpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRh
dGVOb3JtYWxGbG93TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVidWls
ZE5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAg
ICAgICAgKFJlbmRlckxheWVyKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbCk6CisgICAgICAgICAgQWxsb3dzIGVuYWJsaW5nIHRoZSBz
ZXR0aW5nIGluIGxheW91dCB0ZXN0cy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAoSW50ZXJuYWxTZXR0aW5ncyk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVzZXNDb21wb3Np
dGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBBbGxvd3MgbGF5b3V0IHRlc3RzIHRvIGNoZWNrIGlm
IGEgZGl2IGlzIHVzaW5nIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA5LTE3ICBZdXJ5IFNlbWlr
aGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5N
SSBkb24ndCBkb3VibGUgY291bnQgZmllbGRzIG9mIFN0YXRpY0RPTURhdGFTdG9yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IGNmMWNkZTUyODFmNGZjNzJiZGMyZmQ1NTJkNjRjNjEwMDk5ZDliY2YuLmI4ZjhlMDQz
Nzg1NzJkODUxNTc2NmQzNTkxOTM2OWYxMWQ2ZjUzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0wOS0xNyAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNjcm9sbGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ3NDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYSBmaWx0ZXIgZm9y
IFdlYkNvcmU6OlJlbmRlck9iamVjdDo6ZW5jbG9zaW5nTGF5ZXIKKworICAgICAgICAqIHdpbi9X
ZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDkt
MTcgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAg
ICAgIFtRdF0gUmVtb3ZlICd1c2luZyBuYW1lc3BhY2UgV2ViQ29yZScgZnJvbSBoZWFkZXIgZmls
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDYyNDdmODU2NGNkMzVkZmE3ODQ3M2ZjZTlhYzI3
NDY3M2VkYTRhYTIuLjQ4Yzc3NGJlYzA1YzA1NzQyNGQ0ZDk0ODdhMjQ0YWZjZTg5NzUwM2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTM5Miw3ICszOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Ny
b2xsYWJsZUZyYW1lc0VuYWJsZWQ7IH0KIAogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAg
ICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3Jv
bGxFbmFibGVkOyB9OworICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVy
Zmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQ7IH0KIAogICAgICAgICB2b2lkIHNldFNob3dEZWJ1
Z0JvcmRlcnMoYm9vbCk7CiAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0IHsg
cmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKaW5kZXggYTQ5NTQ0ZGYxY2ZiNjdhYjVhMDU4MzhlOTRiMGE4ZjM0NGZiYjdi
ZS4uMTViYmYwYTllNWIzMzM2NGVkNGEzNTkwMjA4NTg5NmYxMGFmN2IzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC02NjYsNiArNjY2LDg3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZVBhZ2luYXRpb24oKQogICAgIH0KIH0KIAorI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKK3N0YXRpYyBib29sIGlzRGVzY2VuZGFudChjb25zdCBSZW5k
ZXJMYXllciogcGFyZW50LCBjb25zdCBSZW5kZXJMYXllciogY2hpbGQpCit7CisgICAgZm9yIChj
b25zdCBSZW5kZXJMYXllciogY3VycmVudCA9IGNoaWxkOyBjdXJyZW50OyBjdXJyZW50ID0gY3Vy
cmVudC0+cGFyZW50KCkpCisgICAgICAgIGlmIChjdXJyZW50ID09IHBhcmVudCkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBSZW5kZXJMYXll
cjo6Y291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JMaXN0KFZlY3RvcjxS
ZW5kZXJMYXllcio+KiBsYXllckxpc3QsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQs
IGludCYgbnVtQm91bmRhcmllcywgYm9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQorewor
ICAgIGlmICghbGF5ZXJMaXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGxheWVyTGlzdC0+c2l6ZSgpOyArK2kpCisgICAgICAgIGNvdW50RGVzY2VuZGFu
dE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGxheWVyTGlzdC0+YXQoaSksIHRv
QmVQcm9tb3RlZCwgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKK30K
Kwordm9pZCBSZW5kZXJMYXllcjo6Y291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJp
ZXNJblpPcmRlclRyZWUoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciwgY29uc3QgUmVu
ZGVyTGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50JiBudW1Cb3VuZGFyaWVzLCBib29sJiBsYXN0RWxl
bWVudFdhc0Rlc2NlbmRhbnQpCit7CisgICAgaWYgKChjdXJyZW50TGF5ZXItPmlzU3RhY2tpbmdD
b250ZXh0KCkgJiYgY3VycmVudExheWVyICE9IHRvQmVQcm9tb3RlZC0+c3RhY2tpbmdDb250ZXh0
KCkpIHx8IGN1cnJlbnRMYXllciA9PSB0b0JlUHJvbW90ZWQpIHsKKyAgICAgICAgaWYgKGlzRGVz
Y2VuZGFudCh0b0JlUHJvbW90ZWQsIGN1cnJlbnRMYXllcikpIHsKKyAgICAgICAgICAgIGlmICgh
bGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQorICAgICAgICAgICAgICAgIG51bUJvdW5kYXJpZXMr
KzsKKyAgICAgICAgICAgIGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCA9IHRydWU7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQorICAg
ICAgICAgICAgICAgIG51bUJvdW5kYXJpZXMrKzsKKyAgICAgICAgICAgIGxhc3RFbGVtZW50V2Fz
RGVzY2VuZGFudCA9IGZhbHNlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgVmVj
dG9yPFJlbmRlckxheWVyKj4qIG5lZ1pPcmRlckxpc3QgPSAwOworICAgICAgICBWZWN0b3I8UmVu
ZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9IDA7CisgICAgICAgIGlmIChjdXJyZW50TGF5ZXIt
Pm1fek9yZGVyTGlzdHNEaXJ0eSkKKyAgICAgICAgICAgIGN1cnJlbnRMYXllci0+cmVidWlsZFpP
cmRlckxpc3RzKHBvc1pPcmRlckxpc3QsIG5lZ1pPcmRlckxpc3QpOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIG5lZ1pPcmRlckxpc3QgPSBjdXJyZW50TGF5ZXItPm5lZ1pPcmRlckxpc3Qo
KTsKKyAgICAgICAgICAgIHBvc1pPcmRlckxpc3QgPSBjdXJyZW50TGF5ZXItPnBvc1pPcmRlckxp
c3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBub3JtYWxG
bG93TGlzdCA9IDA7CisgICAgICAgIGlmIChjdXJyZW50TGF5ZXItPm1fbm9ybWFsRmxvd0xpc3RE
aXJ0eSkKKyAgICAgICAgICAgIGN1cnJlbnRMYXllci0+cmVidWlsZE5vcm1hbEZsb3dMaXN0KG5v
cm1hbEZsb3dMaXN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbm9ybWFsRmxvd0xpc3Qg
PSBjdXJyZW50TGF5ZXItPm5vcm1hbEZsb3dMaXN0KCk7CisKKyAgICAgICAgY291bnREZXNjZW5k
YW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JMaXN0KG5lZ1pPcmRlckxpc3QsIHRvQmVQcm9t
b3RlZCwgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKyAgICAgICAg
Y291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JMaXN0KG5vcm1hbEZsb3dM
aXN0LCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVtZW50V2FzRGVzY2VuZGFu
dCk7CisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlz
dChwb3NaT3JkZXJMaXN0LCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVtZW50
V2FzRGVzY2VuZGFudCk7CisgICAgfQorfQorCitib29sIFJlbmRlckxheWVyOjpjYW5TYWZlbHlF
c3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3QKK3sKKyAgICBpZiAoaXNTdGFja2luZ0Nv
bnRleHQoKSB8fCAhc3RhY2tpbmdDb250ZXh0KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgLy8gSWYgb3VyIHByb21vdGlvbiB0byBhIHN0YWNraW5nIGNvbnRleHQgd291bGQgbm90IGFm
ZmVjdCBzdGFja2luZyBvcmRlciwKKyAgICAvLyB0aGVuIHRoaXMgbGF5ZXIgYW5kIGFsbCBvZiBp
dHMgZGVzY2VuZGVudHMgc2hvdWxkIGFwcGVhciBhcyBhIGNvbnRpbnVvdXMKKyAgICAvLyBibG9j
ayBpZiB3ZSBhcmUgdG8gdHJhdmVyc2UgdGhlIGVsZW1lbnRzIGluIHRoZSBzdGFja2luZyBjb250
ZXh0IGluCisgICAgLy8gcGFpbnQgb3JkZXIuIFRoYXQgaXMsIHRoZSBudW1iZXIgb2YgYm91bmRh
cmllcyBiZXR3ZWVuIGRlc2NlbmRhbnRzLCBhbmQKKyAgICAvLyBub24gZGVzY2VuZGFudHMgc2hv
dWxkIGJlIGV4YWN0bHkgdHdvIChpZiB3ZSBhc3N1bWUgdGhhdCBpZiB0aGUgZmlyc3Qgb3IKKyAg
ICAvLyBsYXN0IGVsZW1lbnQgaW4gdGhlIGxpc3QgaXMgYSBkZXNjZW5kYW50LCB0aGF0IHRoaXMg
aXMgYWxzbyBhIGJvdW5kYXJ5KS4KKworICAgIC8vIEJ5IGluaXRpYWxpemluZyB0byBmYWxzZSwg
aWYgdGhlIGZpcnN0IGVsZW1lbnQgd2Ugc2VlIGlzIGEgZGVzY2VuZGFudCwKKyAgICAvLyB0aGVu
IHdlIGNvcnJlY3RseSBtYXJrIGl0IGFzIGEgYm91bmRhcnkuCisgICAgYm9vbCBsYXN0RWxlbWVu
dFdhc0Rlc2NlbmRhbnQgPSBmYWxzZTsKKworICAgIGludCBudW1Cb3VuZGFyaWVzID0gMDsKKwor
ICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKHN0
YWNraW5nQ29udGV4dCgpLCB0aGlzLCBudW1Cb3VuZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2Nl
bmRhbnQpOworCisgICAgLy8gSWYgdGhlIGxhc3QgZWxlbWVudCB3ZSBzZWUgaXMgYSBkZXNjZW5k
YW50LCB0aGlzIGlzIGFsc28gYSBib3VuZGFyeS4KKyAgICBpZiAobGFzdEVsZW1lbnRXYXNEZXNj
ZW5kYW50KQorICAgICAgICBudW1Cb3VuZGFyaWVzKys7CisKKyAgICByZXR1cm4gbnVtQm91bmRh
cmllcyA9PSAyOworfQorCisjZW5kaWYKKwogdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFzVmlzaWJs
ZUNvbnRlbnQoKQogeyAKICAgICBpZiAobV9oYXNWaXNpYmxlQ29udGVudCAmJiAhbV92aXNpYmxl
Q29udGVudFN0YXR1c0RpcnR5KSB7CkBAIC0xNTczLDEwICsxNjU0LDEzIEBAIGJvb2wgUmVuZGVy
TGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QKICAgICBpZiAoIXNjcm9sbHNP
dmVyZmxvdygpIHx8ICFhbGxvd3NTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgYm9vbCBhdXRvbWF0aWNhbGx5T3B0SW4gPSByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdl
KCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQoKQorICAgICAgICAmJiBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCk7
CisKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQotICAgIHJldHVy
biByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCk7CisgICAg
cmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSB8
fCBhdXRvbWF0aWNhbGx5T3B0SW47CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gYXV0b21hdGljYWxseU9wdEluOwogI2VuZGlmCiB9CiAjZW5kaWYKQEAgLTE3MzEsOCArMTgx
NSwxNSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQgeCwgaW50IHkpCiAgICAgICAg
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+ZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uSW5R
dWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogICAgIH0KIAorICAgIGJvb2wgcmVxdWly
ZXNSZXBhaW50ID0gdHJ1ZTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAg
ICBpZiAoY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5nTW9kZSgpICYmIHVzZXNDb21wb3NpdGVk
U2Nyb2xsaW5nKCkpCisgICAgICAgIHJlcXVpcmVzUmVwYWludCA9IGZhbHNlOworI2VuZGlmCisK
ICAgICAvLyBKdXN0IHNjaGVkdWxlIGEgZnVsbCByZXBhaW50IG9mIG91ciBvYmplY3QuCi0gICAg
aWYgKHZpZXcgJiYgIXVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgaWYgKHZpZXcgJiYg
cmVxdWlyZXNSZXBhaW50KQogICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50VXNpbmdDb250YWlu
ZXIocmVwYWludENvbnRhaW5lciwgcGl4ZWxTbmFwcGVkSW50UmVjdChtX3JlcGFpbnRSZWN0KSk7
CiAKICAgICAvLyBTY2hlZHVsZSB0aGUgc2Nyb2xsIERPTSBldmVudC4KQEAgLTQ1NTAsNiArNDY0
MSwxMyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMoKQogICAgIEFTU0VS
VChtX2xheWVyTGlzdE11dGF0aW9uQWxsb3dlZCk7CiAgICAgQVNTRVJUKGlzRGlydHlTdGFja2lu
Z0NvbnRleHQoKSk7CiAKKyAgICByZWJ1aWxkWk9yZGVyTGlzdHMobV9wb3NaT3JkZXJMaXN0LCBt
X25lZ1pPcmRlckxpc3QpOworCisgICAgbV96T3JkZXJMaXN0c0RpcnR5ID0gZmFsc2U7Cit9CisK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cyhWZWN0b3I8UmVuZGVyTGF5ZXIq
PiomIHBvc1pPcmRlckxpc3QsIFZlY3RvcjxSZW5kZXJMYXllcio+KiYgbmVnWk9yZGVyTGlzdCkg
Y29uc3QKK3sKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBpbmNs
dWRlSGlkZGVuTGF5ZXJzID0gY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5nTW9kZSgpOwogI2Vs
c2UKQEAgLTQ1NTcsMTYgKzQ2NTUsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVidWlsZFpPcmRl
ckxpc3RzKCkKICNlbmRpZgogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgaWYgKCFt
X3JlZmxlY3Rpb24gfHwgcmVmbGVjdGlvbkxheWVyKCkgIT0gY2hpbGQpCi0gICAgICAgICAgICBj
aGlsZC0+Y29sbGVjdExheWVycyhpbmNsdWRlSGlkZGVuTGF5ZXJzLCBtX3Bvc1pPcmRlckxpc3Qs
IG1fbmVnWk9yZGVyTGlzdCk7CisgICAgICAgICAgICBjaGlsZC0+Y29sbGVjdExheWVycyhpbmNs
dWRlSGlkZGVuTGF5ZXJzLCBwb3NaT3JkZXJMaXN0LCBuZWdaT3JkZXJMaXN0KTsKIAogICAgIC8v
IFNvcnQgdGhlIHR3byBsaXN0cy4KLSAgICBpZiAobV9wb3NaT3JkZXJMaXN0KQotICAgICAgICBz
dGQ6OnN0YWJsZV9zb3J0KG1fcG9zWk9yZGVyTGlzdC0+YmVnaW4oKSwgbV9wb3NaT3JkZXJMaXN0
LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7CisgICAgaWYgKHBvc1pPcmRlckxpc3QpCisgICAgICAg
IHN0ZDo6c3RhYmxlX3NvcnQocG9zWk9yZGVyTGlzdC0+YmVnaW4oKSwgcG9zWk9yZGVyTGlzdC0+
ZW5kKCksIGNvbXBhcmVaSW5kZXgpOwogCi0gICAgaWYgKG1fbmVnWk9yZGVyTGlzdCkKLSAgICAg
ICAgc3RkOjpzdGFibGVfc29ydChtX25lZ1pPcmRlckxpc3QtPmJlZ2luKCksIG1fbmVnWk9yZGVy
TGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5kZXgpOwotCi0gICAgbV96T3JkZXJMaXN0c0RpcnR5ID0g
ZmFsc2U7CisgICAgaWYgKG5lZ1pPcmRlckxpc3QpCisgICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQo
bmVnWk9yZGVyTGlzdC0+YmVnaW4oKSwgbmVnWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5k
ZXgpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOb3JtYWxGbG93TGlzdCgpCkBAIC00
NTc2LDE2ICs0NjcyLDIxIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU5vcm1hbEZsb3dMaXN0
KCkKIAogICAgIEFTU0VSVChtX2xheWVyTGlzdE11dGF0aW9uQWxsb3dlZCk7CiAKKyAgICByZWJ1
aWxkTm9ybWFsRmxvd0xpc3QobV9ub3JtYWxGbG93TGlzdCk7CisKKyAgICBtX25vcm1hbEZsb3dM
aXN0RGlydHkgPSBmYWxzZTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6cmVidWlsZE5vcm1hbEZs
b3dMaXN0KFZlY3RvcjxSZW5kZXJMYXllcio+KiYgbm9ybWFsRmxvd0xpc3QpIGNvbnN0Cit7CiAg
ICAgZm9yIChSZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIC8vIElnbm9yZSBub24tb3ZlcmZsb3cg
bGF5ZXJzIGFuZCByZWZsZWN0aW9ucy4KICAgICAgICAgaWYgKGNoaWxkLT5pc05vcm1hbEZsb3dP
bmx5KCkgJiYgKCFtX3JlZmxlY3Rpb24gfHwgcmVmbGVjdGlvbkxheWVyKCkgIT0gY2hpbGQpKSB7
Ci0gICAgICAgICAgICBpZiAoIW1fbm9ybWFsRmxvd0xpc3QpCi0gICAgICAgICAgICAgICAgbV9u
b3JtYWxGbG93TGlzdCA9IG5ldyBWZWN0b3I8UmVuZGVyTGF5ZXIqPjsKLSAgICAgICAgICAgIG1f
bm9ybWFsRmxvd0xpc3QtPmFwcGVuZChjaGlsZCk7CisgICAgICAgICAgICBpZiAoIW5vcm1hbEZs
b3dMaXN0KQorICAgICAgICAgICAgICAgIG5vcm1hbEZsb3dMaXN0ID0gbmV3IFZlY3RvcjxSZW5k
ZXJMYXllcio+OworICAgICAgICAgICAgbm9ybWFsRmxvd0xpc3QtPmFwcGVuZChjaGlsZCk7CiAg
ICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgbV9ub3JtYWxGbG93TGlzdERpcnR5ID0gZmFsc2U7
CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMoYm9vbCBpbmNsdWRlSGlkZGVu
TGF5ZXJzLCBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIHBvc0J1ZmZlciwgVmVjdG9yPFJlbmRlckxh
eWVyKj4qJiBuZWdCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmlu
ZGV4IDhlMDI2ODMzZDBmM2QwYTM2ZDgyNTE0ZWYzYmRkNzE4NTNlMjEzMTYuLmMxNTlmYmIwOTZm
NmVhYmUwNzA1ZjBlZWMxZWE1MzY1YzA4YTEwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCkBAIC02ODMsOSArNjgzLDExIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
dm9pZCB1cGRhdGVaT3JkZXJMaXN0cygpOwogICAgIHZvaWQgcmVidWlsZFpPcmRlckxpc3RzKCk7
CisgICAgdm9pZCByZWJ1aWxkWk9yZGVyTGlzdHMoVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3Na
T3JkZXJMaXN0LCBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5lZ1pPcmRlckxpc3QpIGNvbnN0Owog
ICAgIHZvaWQgY2xlYXJaT3JkZXJMaXN0cygpOwogCiAgICAgdm9pZCB1cGRhdGVOb3JtYWxGbG93
TGlzdCgpOworICAgIHZvaWQgcmVidWlsZE5vcm1hbEZsb3dMaXN0KFZlY3RvcjxSZW5kZXJMYXll
cio+KiYgbm9ybWFsRmxvd0xpc3QpIGNvbnN0OwogCiAgICAgYm9vbCBpc1N0YWNraW5nQ29udGV4
dChjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0IHsgcmV0dXJuICFzdHlsZS0+aGFzQXV0
b1pJbmRleCgpIHx8IGlzUm9vdExheWVyKCk7IH0KICAgICBib29sIGlzRGlydHlTdGFja2luZ0Nv
bnRleHQoKSBjb25zdCB7IHJldHVybiBtX3pPcmRlckxpc3RzRGlydHkgJiYgaXNTdGFja2luZ0Nv
bnRleHQoKTsgfQpAQCAtODc4LDYgKzg4MCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SW5k
aXJlY3RDb21wb3NpdGluZ1JlYXNvbihJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIHJlYXNvbikg
eyBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gPSByZWFzb247IH0KICAgICBJbmRpcmVjdENv
bXBvc2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uPihtX2luZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb24pOyB9CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRlRm9ySW5kaXJlY3RSZWFzb25z
KCkgY29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOyB9CisKKyAgICAv
LyBSZXR1cm5zIHRydWUgaWZmIHogb3JkZXJpbmcgd291bGQgbm90IGNoYW5nZSBpZiB0aGlzIGxh
eWVyIHdlcmUgdG8gZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dC4KKyAgICBib29sIGNhblNh
ZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdDsKKworICAgIC8vIFRoZXNlIHR3
byBtZXRob2RzIGFyZSB1c2VkIGJ5IGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQu
CisgICAgc3RhdGljIHZvaWQgY291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNJ
blpPcmRlclRyZWUoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciwgY29uc3QgUmVuZGVy
TGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50JiBudW1Cb3VuZGFyaWVzLCBib29sJiBsYXN0RWxlbWVu
dFdhc0Rlc2NlbmRhbnQpOworICAgIHN0YXRpYyB2b2lkIGNvdW50RGVzY2VuZGFudE5vbkRlc2Nh
bmRhbnRCb3VuZGFyaWVzRm9yTGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbGF5ZXJMaXN0LCBj
b25zdCBSZW5kZXJMYXllciogdG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5kYXJpZXMsIGJvb2wm
IGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCk7CiAjZW5kaWYKIAogICAgIGZyaWVuZCBjbGFzcyBS
ZW5kZXJMYXllckJhY2tpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcAppbmRleCA2NGJhMmVhMDRjYTIwOGQwN2IyOGVkMDQyODRlY2I5MGE1NDFiOGY4Li5h
NzA5YzQ3ZGRlMTNiOTRjNGMyM2Q5YmExNWU2ZDE3ZDU3MDVmODk3IDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTIyOSw2ICsyMjksMTIgQEAgdm9p
ZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXMoYm9vbCBlbmFibGVkLCBFeGMKICAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW50
ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFy
ZEZvclNldHRpbmdzKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBJbnRlcm5hbFNl
dHRpbmdzOjpzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggYzg3MjJhNDFh
NzNlMDMzM2M1ZDI2YWRkODI1YTEzMmM2NGU3ZWNiNC4uMGZhMWMxMzY4MTAyZDg1MjhiOGViZGYw
NmJlYmZiODdhMzUzMmFlMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmgKQEAgLTk5LDYgKzk5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFi
bGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbAppbmRleCBjNzQ1NWZlMTY0MTQwZTQ4NDY0NzE2OGNkMGE0N2I4ODAx
YmIzZWFhLi5kMTZmMDY2MTkwMDY1MzI4ZGIyNTEyZDkxZGMxNWU2NTc2ZWNkZDc4IDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTMxLDYgKzMxLDcg
QEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBz
ZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zv
clNjcm9sbGFibGVGcmFtZXMoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKGlu
IGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0
QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoaW4g
Ym9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRN
b2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAzYWZiMzM0N2FlZDFi
NTU0NmJhMWUwNGVkYmMyMWFjNWUyNDFhMDRlLi45Nzc5ZTVmZTEyYzMwMDgxNjA4NGQyZDFiOWJk
ZDQ5ZjEyNDViNDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMDEs
NiArMTAxLDEwIEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjZW5kaWYKIAor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKQEAgLTEwOTYsNiArMTEwMCwzNyBAQCBib29sIEludGVybmFsczo6aXNQYWdlQm94Vmlz
aWJsZShEb2N1bWVudCogZG9jdW1lbnQsIGludCBwYWdlTnVtYmVyLCBFeGNlcHRpb25DbwogICAg
IHJldHVybiBkb2N1bWVudC0+aXNQYWdlQm94VmlzaWJsZShwYWdlTnVtYmVyKTsKIH0KIAorYm9v
bCBJbnRlcm5hbHM6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKE5vZGUqIG5vZGUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAo
IW5vZGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCA9IG5vZGUt
PnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJPYmplY3QpIHsKKyAgICAgICAgZWMgPSBJTlZB
TElEX05PREVfVFlQRV9FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBp
ZiAoIXJlbmRlck9iamVjdC0+aGFzTGF5ZXIoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmVuZGVyTGF5ZXIq
IHJlbmRlckxheWVyID0gcmVuZGVyT2JqZWN0LT5lbmNsb3NpbmdMYXllcigpOworICAgIGlmICgh
cmVuZGVyTGF5ZXIpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiByZW5kZXJMYXllci0+dXNlc0NvbXBv
c2l0ZWRTY3JvbGxpbmcoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisK
IHZvaWQgSW50ZXJuYWxzOjpzdXNwZW5kQW5pbWF0aW9ucyhEb2N1bWVudCogZG9jdW1lbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50
LT5mcmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBkMmQ0NTJlYTk1
YTBlZTdkNjM5ODk1MDAyZjc2YzQwMDAwMzE0ODI5Li4xYjEwZjUwNGE5MDg1NWI4MDAyNTgxMzc5
MjQyN2Q3Y2Y1NjM3MTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE3Myw2
ICsxNzMsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGFnZUJveFZpc2libGUoRG9jdW1lbnQq
LCBpbnQgcGFnZU51bWJlciwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgYm9vbCB1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZyhOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGludGVybmFsc0lkOwogCiAgICAgSW50ZXJuYWxTZXR0aW5ncyogc2V0dGluZ3MoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAzYmQ5MTI5OWYwYTU1
NzQ2NjI1Y2ZjOTFkNTI5YTFmOGZhM2IxZWNiLi41YTk1MWE2YTg1MTY5NjA0Zjk3YTY3M2VhNTM1
NGQ5MzhhYWQyNGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xNTEs
NiArMTUxLDggQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgYm9vbGVhbiBpc1BhZ2VCb3hW
aXNpYmxlKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBsb25nIHBhZ2VOdW1iZXIpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKIAorICAgICAgICBib29sZWFuIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5n
KGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBJbnRlcm5hbFNldHRpbmdzIHNldHRpbmdzOwogCiAgICAgICAgIHZvaWQgc3Vz
cGVuZEFuaW1hdGlvbnMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCBmYmZiOWQ1NDVkNWJlYTNjOWJkMjYyMGY0NjNj
NjlkZWU5MmYzYTA3Li40MGRmMWZlMWJlYTU1M2M2N2ZmZDc5MWU2OTE3MjhlMzZiMGEwODQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0xNTYsNiArMTU2LDcgQEAgRVhQT1JUUwogICAgICAg
ICA/PzBTdHJpbmdAV1RGQEBRQUVAUEJfV0BaCiAgICAgICAgID9hYnNvbHV0ZUJvdW5kaW5nQm94
UmVjdEBSZW5kZXJPYmplY3RAV2ViQ29yZUBAUUJFP0FWSW50UmVjdEAyQF9OQFoKICAgICAgICAg
P2Fic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zQFJlbmRlck9iamVjdEBX
ZWJDb3JlQEBRQkU/QVZJbnRSZWN0QDJAWFoKKyAgICAgICAgP2VuY2xvc2luZ0xheWVyQFJlbmRl
ck9iamVjdEBXZWJDb3JlQEBRQkVQQVZFbGVtZW50QDJAWFoKIAk/ZGVzY3JpcHRpb25ARG9jdW1l
bnRNYXJrZXJAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP2FkZEBBdG9t
aWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAyQFBCREBa
CiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmlu
Z0ltcGxAV1RGQEBAMkBQQkVAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4
IGUzMGJkM2M1ZmY1ZWUyMTZhOWNlMTk3MGVkYmU2YjVlZjYzN2E4ZjcuLmVhYTcyODg4NDg1NDQ4
MGYwNGQ2NTFhZDBhYWQyYThjMGIwNzQwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0
ZS5kZWYKQEAgLTE0OSw2ICsxNDksNyBAQCBFWFBPUlRTCiAgICAgICAgID8/MFN0cmluZ0BXVEZA
QFFBRUBQQl9XQFoKICAgICAgICAgP2Fic29sdXRlQm91bmRpbmdCb3hSZWN0QFJlbmRlck9iamVj
dEBXZWJDb3JlQEBRQkU/QVZJbnRSZWN0QDJAX05AWgogICAgICAgICA/YWJzb2x1dGVCb3VuZGlu
Z0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXNAUmVuZGVyT2JqZWN0QFdlYkNvcmVAQFFCRT9BVklu
dFJlY3RAMkBYWgorICAgICAgICA/ZW5jbG9zaW5nTGF5ZXJAUmVuZGVyT2JqZWN0QFdlYkNvcmVA
QFFCRVBBVkVsZW1lbnRAMkBYWgogCT9kZXNjcmlwdGlvbkBEb2N1bWVudE1hcmtlckBXZWJDb3Jl
QEBRQkVBQlZTdHJpbmdAV1RGQEBYWgogICAgICAgICA/YWRkQEF0b21pY1N0cmluZ0BXVEZAQENB
P0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDJAUEJEQFoKICAgICAgICAgP2FkZEBB
dG9taWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAyQFBC
RUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNl
L2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAyYWY3ZTc2MDdmZGY0ODBiMzczMTNjM2Uy
ZTQ4ZDEzZWU1M2ExNWQyLi5mYjA1NmViMTRhYzQzODdhYjcyYWY0YTM4ZGMyZDYyMmYyZWI3NDEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTExNiw2ICsxMTYsNyBAQCBfWk5LN1dlYkNv
cmU0Tm9kZTMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkV2OwogX1pOSzdXZWJDb3Jl
NE5vZGU5dHJlZVNjb3BlRXY7CiBfWk5LN1dlYkNvcmU0UGFnZTE3dmlld3BvcnRBcmd1bWVudHNF
djsKIF9aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEVi
OworX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNGVuY2xvc2luZ0xheWVyRXY7CiBfWk5LN1dl
YkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxNHN1Z2dlc3RlZFZhbHVlRXY7CiBfWk5LN1dlYkNvcmUx
N0pTRE9NR2xvYmFsT2JqZWN0MjJzY3JpcHRFeGVjdXRpb25Db250ZXh0RXY7CiBfWk5LN1dlYkNv
cmUyMENhY2hlZFJlc291cmNlTG9hZGVyMTFpc1ByZWxvYWRlZEVSS04zV1RGNlN0cmluZ0U7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNmU2OGRjNTRiYjIxNTY0ZWVlN2E4YTIxYTY5YjRjMWNmNTFhMjhiZC4uZDAzNGY1OWEz
ODA1Y2EyOGQyNTBkYTUxZGE5Y2RiYjM5Zjc4OTk0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEyLTA5LTE3ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEF1dG9tYXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc0MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIHZhcmlvdXMgY29uZmlndXJhdGlv
bnMgb2YgZWxlbWVudHMgdG8gZW5zdXJlIHRoYXQgd2Ugb25seSBhdXRvbWF0aWNhbGx5IG9wdCBp
bnRvCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIHdoZW4gaXQgaXMgc2FmZSB0byBkbyBz
by4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWlu
dG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBj
b21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Ny
b2xsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTE3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hy
aXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gYXV0b3Njcm9sbC1pbi10
ZXh0YXJlYS5odG1sIGZhaWxzIG9uIEVGTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNDg4ZDFhMTNiNTMwZjZlYjY2ZGQxNGI4YWMyMjZmYmZkNjc1NzM4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1v
cHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDUg
QEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDg1MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgNzg1eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4ODUwIGxheWVyVHlwZTogYmFja2dy
b3VuZCBvbmx5CitsYXllciBhdCAoMzksMzEpIHNpemUgMTgweDkwIGJhY2tncm91bmRDbGlwIGF0
ICgyOSwyMSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgb3V0bGlu
ZUNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBv
c2l0aW9uZWQpIHpJOiAtMSB7RElWfSBhdCAoMTEsMTEpIHNpemUgMTgweDkwIFtiZ2NvbG9yPSM4
MDgwODBdCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg4NTAgbGF5ZXJUeXBlOiBmb3JlZ3JvdW5k
IG9ubHkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDg1MAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDIwKSBzaXplIDc2OXg4MjIKKyAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDIyMikgc2l6ZSA3Njl4NjAwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDI1M3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDI1MzogIjAgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAg
ICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MjApIHdpZHRoIDI1MzogIjEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFz
cyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDM1KSBzaXplIDB4MAorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDApIHNpemUgMjUzeDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsNDApIHdpZHRoIDI1MzogIjIgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzog
dHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDU1KSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNjApIHNpemUgMjUzeDE5CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsNjApIHdpZHRoIDI1MzogIjMgdXNlcyBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjUzLDc1KSBz
aXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsODApIHNpemUgMjU3eDE5
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsODApIHdpZHRoIDI1NzogIjQgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDI1Nyw5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEwMCkg
c2l6ZSAyNTN4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxMDApIHdpZHRoIDI1MzogIjUg
dXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVy
QlIge0JSfSBhdCAoMjUzLDExNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDEyMCkgc2l6ZSAyNTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxMjApIHdp
ZHRoIDI1NzogIjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisg
ICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI1NywxMzUpIHNpemUgMHgwCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwxNDApIHNpemUgMjU3eDE5CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMTQwKSB3aWR0aCAyNTc6ICI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZh
bHNlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNTcsMTU1KSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTYwKSBzaXplIDI1N3gxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDE2MCkgd2lkdGggMjU3OiAiOCB1c2VzIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjU3LDE3
NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4MCkgc2l6ZSAy
NTd4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxODApIHdpZHRoIDI1NzogIjkgdXNlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDI1NywxOTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwyMDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjAwKSB3aWR0aCAy
NjE6ICIxMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAg
ICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMjE1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMjIwKSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDIyMCkgd2lkdGggMjYxOiAiMTEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwg
UGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDIzNSkgc2l6ZSAweDAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDI0MCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwyNDApIHdpZHRoIDI2MTogIjEyIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwyNTUpIHNp
emUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyNjApIHNpemUgMjYxeDE5
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjYwKSB3aWR0aCAyNjE6ICIxMyB1c2VzIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0
ICgyNjEsMjc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjgw
KSBzaXplIDI2MXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDI4MCkgd2lkdGggMjYxOiAi
MTQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjYxLDI5NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDMwMCkgc2l6ZSAyNjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzMDAp
IHdpZHRoIDI2MTogIjE1IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3Mi
CisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2MSwzMTUpIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzMjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMzIwKSB3aWR0aCAyNjE6ICIxNiB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
OiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsMzM1KSBzaXplIDB4
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMzQwKSBzaXplIDI2NXgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDM0MCkgd2lkdGggMjY1OiAiMTcgdXNlcyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2
NSwzNTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzNjApIHNp
emUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYwKSB3aWR0aCAyNjE6ICIxOCB1
c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJC
UiB7QlJ9IGF0ICgyNjEsMzc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMzgwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM4MCkgd2lk
dGggMjY1OiAiMTkgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MiCisg
ICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSwzOTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCw0MDApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsNDAwKSB3aWR0aCAyNjE6ICIyMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0
cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDE1KSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNDIwKSBzaXplIDI2MXgxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDQyMCkgd2lkdGggMjYxOiAiMjEgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjYxLDQz
NSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDQ0MCkgc2l6ZSAy
NjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0NDApIHdpZHRoIDI2MTogIjIyIHVzZXMg
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDI2MSw0NTUpIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCw0NjApIHNpemUgMjYxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDYwKSB3aWR0aCAy
NjE6ICIyMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAg
ICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNDc1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsNDgwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDQ4MCkgd2lkdGggMjY1OiAiMjQgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2Us
IFBhc3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSw0OTUpIHNpemUgMHgwCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1MDApIHNpemUgMjYxeDE5CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsNTAwKSB3aWR0aCAyNjE6ICIyNSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nOiB0cnVlLCBQYXNzIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNjEsNTE1KSBz
aXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTIwKSBzaXplIDI2MXgx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDUyMCkgd2lkdGggMjYxOiAiMjYgdXNlcyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBh
dCAoMjYxLDUzNSkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDU0
MCkgc2l6ZSAyNjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1NDApIHdpZHRoIDI2NTog
IjI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzIgorICAgICAgICBS
ZW5kZXJCUiB7QlJ9IGF0ICgyNjUsNTU1KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsNTYwKSBzaXplIDI2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDU2
MCkgd2lkdGggMjY1OiAiMjggdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBh
c3MiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI2NSw1NzUpIHNpemUgMHgwCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw1ODApIHNpemUgMjY1eDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsNTgwKSB3aWR0aCAyNjU6ICIyOSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nOiBmYWxzZSwgUGFzcyIKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjY1LDU5NSkgc2l6
ZSAweDAKK2xheWVyIGF0ICgyOCwyMCkgc2l6ZSAyMDJ4MjAyIGNsaXAgYXQgKDI5LDIxKSBzaXpl
IDE4NXgxODUgc2Nyb2xsV2lkdGggMTkwIHNjcm9sbEhlaWdodCAyMTAKKyAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDIwLDApIHNpemUgMjAyeDIwMiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDAp
XQorbGF5ZXIgYXQgKDE2MCwyMCkgc2l6ZSAxMjB4MjQwCisgIFJlbmRlckJsb2NrIChwb3NpdGlv
bmVkKSB6STogMSB7RElWfSBhdCAoMTYwLDIwKSBzaXplIDEyMHgyNDAgW2JnY29sb3I9IzAwODAw
MF0KK2xheWVyIGF0ICgzOSwxMzEpIHNpemUgMTgweDkwIGJhY2tncm91bmRDbGlwIGF0ICgyOSwy
MSkgc2l6ZSAxODV4MTg1IGNsaXAgYXQgKDI5LDIxKSBzaXplIDE4NXgxODUgb3V0bGluZUNsaXAg
YXQgKDI5LDIxKSBzaXplIDE4NXgxODUKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9u
ZWQpIHpJOiAzIHtESVZ9IGF0ICgxMSwxMTEpIHNpemUgMTgweDkwIFtiZ2NvbG9yPSM4MDgwODBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNh
bGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xs
aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2YTExNTc2ZWJhODEyYWMzMzRhYTA4MzE4NTkzMmI0ZDQw
N2I5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93
L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbApAQCAtMCww
ICsxLDE0NiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEg
VHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5k
dGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgPHRpdGxl
Pk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgIHdpZHRo
OiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICBvdmVyZmxvdzogc2Nyb2xsOwor
ICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAg
fQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdpZHRoOiAxODBweDsKKyAgICAgIGhlaWdodDog
OTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7
CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorCisgICAgLnBvc2l0aW9uZWQgewor
ICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVpZ2h0OiAyNDBweDsKKyAgICAgIGJhY2tncm91
bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIH0KKworICAg
IC5oaWRkZW4geworICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIH0KKworICAgICNwcmVk
ZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0KKwor
ICAgICNzdWNjZXNzb3IgeworICAgICAgbGVmdDogMTYwcHg7CisgICAgICB0b3A6IDIwcHg7Cisg
ICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNl
dD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3Jv
bGwodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIHZhciBwcmVk
ZWNlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcmVkZWNlc3NvcicpOworICAgICAg
dmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsKKyAg
ICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7
CisgICAgICB2YXIgZmlyc3RDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdENo
aWxkJyk7CisgICAgICB2YXIgc2Vjb25kQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZhciByZXN1bHQgPSAiIjsKKyAgICAgIHZhciBkdW1teSA9
IDA7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICB2YXIgZXhwZWN0ZWRfcmVzdWx0cyA9
IFsKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgICAgICB0cnVlLCB0cnVlLCB0cnVlLCB0
cnVlLCB0cnVlLAorICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsCisgICAg
ICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLAorICAgICAgICB0cnVlLCB0cnVlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICBdOworCisgICAgICBmb3IgKGkgPSAwOyBpIDwgMzsg
KytpKSB7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCA1OyArK2opIHsKKyAgICAgICAgICBmb3Ig
KGsgPSAwOyBrIDwgMjsgKytrKSB7CisgICAgICAgICAgICB2YXIgbWluWkluZGV4ID0gMDsKKyAg
ICAgICAgICAgIHZhciBtYXhaSW5kZXggPSAwOworICAgICAgICAgICAgaWYgKGkgPT0gMCkgewor
ICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICcxJzsKKyAgICAgICAgICAg
ICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtYXhaSW5k
ZXggPSAzOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09IDEpIHsKKyAgICAgICAgICAgICAg
Zmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAgICAgICAgICAgICBzZWNvbmRDaGls
ZC5zdHlsZS56SW5kZXggPSAnLTMnOworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMzsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4
ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOwor
ICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsKKyAgICAgICAgICAgICAgbWF4WkluZGV4ID0g
MzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHNpYmxpbmcgPSBwcmVkZWNlc3Nv
cjsKKyAgICAgICAgICAgIHZhciB0b0hpZGUgPSBzdWNjZXNzb3I7CisgICAgICAgICAgICBpZiAo
ayA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcgPSBzdWNjZXNzb3I7CisgICAgICAgICAg
ICAgIHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0
b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUu
ZGlzcGxheSA9ICcnOworICAgICAgICAgICAgaWYgKGogPT0gMCkgeworICAgICAgICAgICAgICBz
aWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAxKS50b1N0cmluZygpOworICAgICAg
ICAgICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56
SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaiA9PSAyKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWF4Wklu
ZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGogPT0gMykgeworICAgICAg
ICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJbmRleC50b1N0cmluZygpOworICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAo
KG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmluZygpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYy4KKyAgICAgICAgICAgIGR1bW15
ID0gY29udGFpbmVyLm9mZnNldFRvcDsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgICAgdmFyIGlzQWNjZWxlcmF0ZWQgPSB3aW5kb3cuaW50ZXJuYWxz
LnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGNvbnRhaW5lcik7CisgICAgICAgICAgICAgIHJlc3Vs
dCArPSBjb3VudC50b1N0cmluZygpICsgJyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiAn
ICsgaXNBY2NlbGVyYXRlZCArICcsICcgKyAoZXhwZWN0ZWRfcmVzdWx0c1tjb3VudF0gPT0gaXNB
Y2NlbGVyYXRlZCA/ICdQYXNzJyA6ICdGQUlMJykgKyAnPGJyPic7CisgICAgICAgICAgICAgIGNv
dW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisK
KyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1
bHQ7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgor
Cis8Ym9keT4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InByZWRlY2Vzc29yIj48L2Rp
dj4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGNs
YXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0Q2hpbGQiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNj
cm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQiPjwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0i
cG9zaXRpb25lZCIgaWQ9InN1Y2Nlc3NvciI+PC9kaXY+CisgIDxkaXYgaWQ9InJlc3VsdCIgY2xh
c3M9ImhpZGRlbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0Mjc5OTY3MjNlMTY2ZmQzN2ZkYTI4ZTk2MTQzNmFmMDBl
NTAwMzVmLi5iNjRlZmYxYmI5MmZjMjgyNWQ0OWMzMTkyODNhMTNhOTBlZDJkMDg5IDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDkt
MTcgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQXV0b21h
dGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEgZmlsdGVyIGZvciBXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OmVuY2xvc2luZ0xheWVyCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyOgorCiAyMDEyLTA5LTE3ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUu
dmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEF1dG8tZ2VuZXJhdGUgdGhlIG1vZHVs
ZSBwcmkgZmlsZSBmb3IgUXRXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164450</attachid>
            <date>2012-09-17 13:46:35 -0700</date>
            <delta_ts>2012-09-17 17:46:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20120917164602.patch</filename>
            <type>text/plain</type>
            <size>32009</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY1ZTI3NDA0YWU1ODg0
ODg3ZjhhMjUzZDBlNzM5NDUxZjUzYjZiZi4uNzk1NmJmMDZkZDU5NTViYmI0OGRmNDYyZTYyMTEw
YTg2MmQwY2YzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA5LTE3ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRvIGNoZWNr
IHRoaXMsIEkgZW5zdXJlIHRoYXQgdGhlIGNhbmRpZGF0ZSBlbGVtZW50CisgICAgICAgIGFuZCBh
bGwgaXRzIGRlc2NlbmRhbnRzIGFwcGVhciBhcyBhIGNvbnRpbnVvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIG90aGVy
IGVsZW1lbnRzIGFyZSAnYmV0d2VlbicgYW55IG9mCisgICAgICAgIHRoZSBjYW5kaWRhdGVzIGRl
c2NlbmRhbnRzIHdoZW4gd2Ugc29ydCBpbiBwYWludCBvcmRlciwgdGhlbiB3ZSdyZSBzYWZlLgor
ICAgICAgICBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRpdmUsIGhvd2V2ZXIuIFdlIGNvdWxkLCBp
biBmdXR1cmUsIG9ubHkgY29uc2lkZXIKKyAgICAgICAgc3RhY2tpbmcgcHJvYmxlbXMgYmV0d2Vl
biBlbGVtZW50cyB0aGF0IGFjdHVhbGx5IG92ZXJsYXAuCisKKyAgICAgICAgVGVzdDogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGluZy1zY3JvbGxp
bmcuaHRtbAorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6
U2V0dGluZ3M6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQp
OgorICAgICAgICAgIEFkZHMgdGhlIG5ldyBzZXR0aW5nIGZvciBlbmFibGluZyBhdXRvbWF0aWNh
bGx5IG9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OmlzRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y291bnREZXNj
ZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0luWk9y
ZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCk6CisgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBSZW5k
ZXJMYXllciBjb3VsZCBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0IHdpdGhvdXQKKyAgICAgICAg
ICBhZmZlY3RpbmcgdGhlIHN0YWNraW5nIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRh
dGVkIHRvIHJldHVybiB0cnVlIGlmIGl0IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcK
KyAgICAgICAgICBjb250ZXh0LCBhbmQgdGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVwZGF0ZU5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpyZWJ1aWxkTm9ybWFsRmxvd0xpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRF
bmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKToKKyAgICAgICAgICBBbGxvd3MgZW5h
YmxpbmcgdGhlIHNldHRpbmcgaW4gbGF5b3V0IHRlc3RzLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNl
dHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAgIEFsbG93cyBsYXlvdXQgdGVzdHMg
dG8gY2hlY2sgaWYgYSBkaXYgaXMgdXNpbmcgY29tcG9zaXRlZCBzY3JvbGxpbmcuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50
ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDktMTcg
IExhdXJvIE5ldG8gIDxsYXVyby5uZXRvQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgVXBkYXRl
cyB0byB0aGUgdXNlcmFnZW50IHBhdGNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTRhOTM5NmQ0ZDBj
ZmM4NTAyNDE4ZGI5YjE2ZDA5NDlmZjNlMzM3ZC4uNzdhY2Y1OGYyYmZmM2VkY2QwN2EwYmM1NGUy
YWFjZTQwZjg2Y2Q3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5
LTE3ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEF1dG9t
YXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHNvbWUgZXhwb3J0cyBmb3IgV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0xheWVyCisKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dl
YktpdF9DYWlyby5kZWY6CisgICAgICAgICogV2ViS2l0LnZjcHJvai9XZWJLaXRfQ2Fpcm9fZGVi
dWcuZGVmOgorCiAyMDEyLTA5LTEzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBbV2luQ2Fpcm9dIFVucmV2aWV3ZWQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGNmMWNkZTUyODFmNGZjNzJiZGMyZmQ1NTJkNjRjNjEwMDk5ZDliY2YuLmJjZWJjMDU1NWQ1
YWMwYWRhZDVlZWU0MDA0YjYzZTNiYzkwMGZmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxMi0wOS0xNyAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNjcm9sbGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ3NDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgZXhwb3J0cyBmb3IgV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjplbmNsb3NpbmdMYXllcgorCisgICAgICAgICogd2luL1dlYktp
dDIuZGVmOgorICAgICAgICAqIHdpbi9XZWJLaXQyQ0ZMaXRlLmRlZjoKKwogMjAxMi0wOS0xNyAg
VG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAg
W1F0XSBSZW1vdmUgJ3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlJyBmcm9tIGhlYWRlciBmaWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNjI0N2Y4NTY0Y2QzNWRmYTc4NDczZmNlOWFjMjc0Njcz
ZWRhNGFhMi4uNDhjNzc0YmVjMDVjMDU3NDI0ZDRkOTQ4N2EyNDRhZmNlODk3NTAzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaApAQCAtMzkyLDcgKzM5Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxh
YmxlRnJhbWVzRW5hYmxlZDsgfQogCiAgICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQ7IH07CisgICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
ck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsgfQogCiAgICAgICAgIHZvaWQgc2V0U2hvd0RlYnVnQm9y
ZGVycyhib29sKTsKICAgICAgICAgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1
cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAppbmRleCBhNDk1NDRkZjFjZmI2N2FiNWEwNTgzOGU5NGIwYThmMzQ0ZmJiN2JlLi4x
NWJiZjBhOWU1YjMzMzY0ZWQ0YTM1OTAyMDg1ODk2ZjEwYWY3YjNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTY2Niw2ICs2NjYsODcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlUGFnaW5hdGlvbigpCiAgICAgfQogfQogCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorc3RhdGljIGJvb2wgaXNEZXNjZW5kYW50KGNvbnN0IFJlbmRlckxh
eWVyKiBwYXJlbnQsIGNvbnN0IFJlbmRlckxheWVyKiBjaGlsZCkKK3sKKyAgICBmb3IgKGNvbnN0
IFJlbmRlckxheWVyKiBjdXJyZW50ID0gY2hpbGQ7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50
LT5wYXJlbnQoKSkKKyAgICAgICAgaWYgKGN1cnJlbnQgPT0gcGFyZW50KQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFJlbmRlckxheWVyOjpj
b3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3QoVmVjdG9yPFJlbmRl
ckxheWVyKj4qIGxheWVyTGlzdCwgY29uc3QgUmVuZGVyTGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50
JiBudW1Cb3VuZGFyaWVzLCBib29sJiBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpCit7CisgICAg
aWYgKCFsYXllckxpc3QpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGF5ZXJMaXN0LT5zaXplKCk7ICsraSkKKyAgICAgICAgY291bnREZXNjZW5kYW50Tm9u
RGVzY2FuZGFudEJvdW5kYXJpZXNJblpPcmRlclRyZWUobGF5ZXJMaXN0LT5hdChpKSwgdG9CZVBy
b21vdGVkLCBudW1Cb3VuZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworfQorCit2
b2lkIFJlbmRlckxheWVyOjpjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0lu
Wk9yZGVyVHJlZShjb25zdCBSZW5kZXJMYXllciogY3VycmVudExheWVyLCBjb25zdCBSZW5kZXJM
YXllciogdG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5kYXJpZXMsIGJvb2wmIGxhc3RFbGVtZW50
V2FzRGVzY2VuZGFudCkKK3sKKyAgICBpZiAoKGN1cnJlbnRMYXllci0+aXNTdGFja2luZ0NvbnRl
eHQoKSAmJiBjdXJyZW50TGF5ZXIgIT0gdG9CZVByb21vdGVkLT5zdGFja2luZ0NvbnRleHQoKSkg
fHwgY3VycmVudExheWVyID09IHRvQmVQcm9tb3RlZCkgeworICAgICAgICBpZiAoaXNEZXNjZW5k
YW50KHRvQmVQcm9tb3RlZCwgY3VycmVudExheWVyKSkgeworICAgICAgICAgICAgaWYgKCFsYXN0
RWxlbWVudFdhc0Rlc2NlbmRhbnQpCisgICAgICAgICAgICAgICAgbnVtQm91bmRhcmllcysrOwor
ICAgICAgICAgICAgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50ID0gdHJ1ZTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGlmIChsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpCisgICAgICAg
ICAgICAgICAgbnVtQm91bmRhcmllcysrOworICAgICAgICAgICAgbGFzdEVsZW1lbnRXYXNEZXNj
ZW5kYW50ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBWZWN0b3I8
UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCA9IDA7CisgICAgICAgIFZlY3RvcjxSZW5kZXJM
YXllcio+KiBwb3NaT3JkZXJMaXN0ID0gMDsKKyAgICAgICAgaWYgKGN1cnJlbnRMYXllci0+bV96
T3JkZXJMaXN0c0RpcnR5KQorICAgICAgICAgICAgY3VycmVudExheWVyLT5yZWJ1aWxkWk9yZGVy
TGlzdHMocG9zWk9yZGVyTGlzdCwgbmVnWk9yZGVyTGlzdCk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgbmVnWk9yZGVyTGlzdCA9IGN1cnJlbnRMYXllci0+bmVnWk9yZGVyTGlzdCgpOwor
ICAgICAgICAgICAgcG9zWk9yZGVyTGlzdCA9IGN1cnJlbnRMYXllci0+cG9zWk9yZGVyTGlzdCgp
OworICAgICAgICB9CisKKyAgICAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIG5vcm1hbEZsb3dM
aXN0ID0gMDsKKyAgICAgICAgaWYgKGN1cnJlbnRMYXllci0+bV9ub3JtYWxGbG93TGlzdERpcnR5
KQorICAgICAgICAgICAgY3VycmVudExheWVyLT5yZWJ1aWxkTm9ybWFsRmxvd0xpc3Qobm9ybWFs
Rmxvd0xpc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBub3JtYWxGbG93TGlzdCA9IGN1
cnJlbnRMYXllci0+bm9ybWFsRmxvd0xpc3QoKTsKKworICAgICAgICBjb3VudERlc2NlbmRhbnRO
b25EZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3QobmVnWk9yZGVyTGlzdCwgdG9CZVByb21vdGVk
LCBudW1Cb3VuZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgICAgICBjb3Vu
dERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3Qobm9ybWFsRmxvd0xpc3Qs
IHRvQmVQcm9tb3RlZCwgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsK
KyAgICAgICAgY291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JMaXN0KHBv
c1pPcmRlckxpc3QsIHRvQmVQcm9tb3RlZCwgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNE
ZXNjZW5kYW50KTsKKyAgICB9Cit9CisKK2Jvb2wgUmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFi
bGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdAoreworICAgIGlmIChpc1N0YWNraW5nQ29udGV4
dCgpIHx8ICFzdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAv
LyBJZiBvdXIgcHJvbW90aW9uIHRvIGEgc3RhY2tpbmcgY29udGV4dCB3b3VsZCBub3QgYWZmZWN0
IHN0YWNraW5nIG9yZGVyLAorICAgIC8vIHRoZW4gdGhpcyBsYXllciBhbmQgYWxsIG9mIGl0cyBk
ZXNjZW5kZW50cyBzaG91bGQgYXBwZWFyIGFzIGEgY29udGludW91cworICAgIC8vIGJsb2NrIGlm
IHdlIGFyZSB0byB0cmF2ZXJzZSB0aGUgZWxlbWVudHMgaW4gdGhlIHN0YWNraW5nIGNvbnRleHQg
aW4KKyAgICAvLyBwYWludCBvcmRlci4gVGhhdCBpcywgdGhlIG51bWJlciBvZiBib3VuZGFyaWVz
IGJldHdlZW4gZGVzY2VuZGFudHMsIGFuZAorICAgIC8vIG5vbiBkZXNjZW5kYW50cyBzaG91bGQg
YmUgZXhhY3RseSB0d28gKGlmIHdlIGFzc3VtZSB0aGF0IGlmIHRoZSBmaXJzdCBvcgorICAgIC8v
IGxhc3QgZWxlbWVudCBpbiB0aGUgbGlzdCBpcyBhIGRlc2NlbmRhbnQsIHRoYXQgdGhpcyBpcyBh
bHNvIGEgYm91bmRhcnkpLgorCisgICAgLy8gQnkgaW5pdGlhbGl6aW5nIHRvIGZhbHNlLCBpZiB0
aGUgZmlyc3QgZWxlbWVudCB3ZSBzZWUgaXMgYSBkZXNjZW5kYW50LAorICAgIC8vIHRoZW4gd2Ug
Y29ycmVjdGx5IG1hcmsgaXQgYXMgYSBib3VuZGFyeS4KKyAgICBib29sIGxhc3RFbGVtZW50V2Fz
RGVzY2VuZGFudCA9IGZhbHNlOworCisgICAgaW50IG51bUJvdW5kYXJpZXMgPSAwOworCisgICAg
Y291bnREZXNjZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNJblpPcmRlclRyZWUoc3RhY2tp
bmdDb250ZXh0KCksIHRoaXMsIG51bUJvdW5kYXJpZXMsIGxhc3RFbGVtZW50V2FzRGVzY2VuZGFu
dCk7CisKKyAgICAvLyBJZiB0aGUgbGFzdCBlbGVtZW50IHdlIHNlZSBpcyBhIGRlc2NlbmRhbnQs
IHRoaXMgaXMgYWxzbyBhIGJvdW5kYXJ5LgorICAgIGlmIChsYXN0RWxlbWVudFdhc0Rlc2NlbmRh
bnQpCisgICAgICAgIG51bUJvdW5kYXJpZXMrKzsKKworICAgIHJldHVybiBudW1Cb3VuZGFyaWVz
ID09IDI7Cit9CisKKyNlbmRpZgorCiB2b2lkIFJlbmRlckxheWVyOjpzZXRIYXNWaXNpYmxlQ29u
dGVudCgpCiB7IAogICAgIGlmIChtX2hhc1Zpc2libGVDb250ZW50ICYmICFtX3Zpc2libGVDb250
ZW50U3RhdHVzRGlydHkpIHsKQEAgLTE1NzMsMTAgKzE2NTQsMTMgQEAgYm9vbCBSZW5kZXJMYXll
cjo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdAogICAgIGlmICghc2Nyb2xsc092ZXJm
bG93KCkgfHwgIWFsbG93c1Njcm9sbGluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAg
ICBib29sIGF1dG9tYXRpY2FsbHlPcHRJbiA9IHJlbmRlcmVyKCktPmZyYW1lKCktPnBhZ2UoKS0+
c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxl
ZCgpCisgICAgICAgICYmIGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKTsKKwog
I2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCi0gICAgcmV0dXJuIHJl
bmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKTsKKyAgICByZXR1
cm4gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIHx8IGF1
dG9tYXRpY2FsbHlPcHRJbjsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBh
dXRvbWF0aWNhbGx5T3B0SW47CiAjZW5kaWYKIH0KICNlbmRpZgpAQCAtMTczMSw4ICsxODE1LDE1
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKICAgICAgICAgZnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQo
cXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCisgICAgYm9vbCByZXF1aXJlc1Jl
cGFpbnQgPSB0cnVlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlm
IChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCkgJiYgdXNlc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcoKSkKKyAgICAgICAgcmVxdWlyZXNSZXBhaW50ID0gZmFsc2U7CisjZW5kaWYKKwogICAg
IC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJlcGFpbnQgb2Ygb3VyIG9iamVjdC4KLSAgICBpZiAo
dmlldyAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICBpZiAodmlldyAmJiByZXF1
aXJlc1JlcGFpbnQpCiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnRVc2luZ0NvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLCBwaXhlbFNuYXBwZWRJbnRSZWN0KG1fcmVwYWludFJlY3QpKTsKIAog
ICAgIC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwgRE9NIGV2ZW50LgpAQCAtNDU1MCw2ICs0NjQxLDEz
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cygpCiAgICAgQVNTRVJUKG1f
bGF5ZXJMaXN0TXV0YXRpb25BbGxvd2VkKTsKICAgICBBU1NFUlQoaXNEaXJ0eVN0YWNraW5nQ29u
dGV4dCgpKTsKIAorICAgIHJlYnVpbGRaT3JkZXJMaXN0cyhtX3Bvc1pPcmRlckxpc3QsIG1fbmVn
Wk9yZGVyTGlzdCk7CisKKyAgICBtX3pPcmRlckxpc3RzRGlydHkgPSBmYWxzZTsKK30KKwordm9p
ZCBSZW5kZXJMYXllcjo6cmVidWlsZFpPcmRlckxpc3RzKFZlY3RvcjxSZW5kZXJMYXllcio+KiYg
cG9zWk9yZGVyTGlzdCwgVmVjdG9yPFJlbmRlckxheWVyKj4qJiBuZWdaT3JkZXJMaXN0KSBjb25z
dAorewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGluY2x1ZGVI
aWRkZW5MYXllcnMgPSBjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCk7CiAjZWxzZQpA
QCAtNDU1NywxNiArNDY1NSwxNCBAQCB2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlz
dHMoKQogI2VuZGlmCiAgICAgZm9yIChSZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAgICBpZiAoIW1fcmVm
bGVjdGlvbiB8fCByZWZsZWN0aW9uTGF5ZXIoKSAhPSBjaGlsZCkKLSAgICAgICAgICAgIGNoaWxk
LT5jb2xsZWN0TGF5ZXJzKGluY2x1ZGVIaWRkZW5MYXllcnMsIG1fcG9zWk9yZGVyTGlzdCwgbV9u
ZWdaT3JkZXJMaXN0KTsKKyAgICAgICAgICAgIGNoaWxkLT5jb2xsZWN0TGF5ZXJzKGluY2x1ZGVI
aWRkZW5MYXllcnMsIHBvc1pPcmRlckxpc3QsIG5lZ1pPcmRlckxpc3QpOwogCiAgICAgLy8gU29y
dCB0aGUgdHdvIGxpc3RzLgotICAgIGlmIChtX3Bvc1pPcmRlckxpc3QpCi0gICAgICAgIHN0ZDo6
c3RhYmxlX3NvcnQobV9wb3NaT3JkZXJMaXN0LT5iZWdpbigpLCBtX3Bvc1pPcmRlckxpc3QtPmVu
ZCgpLCBjb21wYXJlWkluZGV4KTsKKyAgICBpZiAocG9zWk9yZGVyTGlzdCkKKyAgICAgICAgc3Rk
OjpzdGFibGVfc29ydChwb3NaT3JkZXJMaXN0LT5iZWdpbigpLCBwb3NaT3JkZXJMaXN0LT5lbmQo
KSwgY29tcGFyZVpJbmRleCk7CiAKLSAgICBpZiAobV9uZWdaT3JkZXJMaXN0KQotICAgICAgICBz
dGQ6OnN0YWJsZV9zb3J0KG1fbmVnWk9yZGVyTGlzdC0+YmVnaW4oKSwgbV9uZWdaT3JkZXJMaXN0
LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7Ci0KLSAgICBtX3pPcmRlckxpc3RzRGlydHkgPSBmYWxz
ZTsKKyAgICBpZiAobmVnWk9yZGVyTGlzdCkKKyAgICAgICAgc3RkOjpzdGFibGVfc29ydChuZWda
T3JkZXJMaXN0LT5iZWdpbigpLCBuZWdaT3JkZXJMaXN0LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7
CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU5vcm1hbEZsb3dMaXN0KCkKQEAgLTQ1NzYs
MTYgKzQ2NzIsMjEgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTm9ybWFsRmxvd0xpc3QoKQog
CiAgICAgQVNTRVJUKG1fbGF5ZXJMaXN0TXV0YXRpb25BbGxvd2VkKTsKIAorICAgIHJlYnVpbGRO
b3JtYWxGbG93TGlzdChtX25vcm1hbEZsb3dMaXN0KTsKKworICAgIG1fbm9ybWFsRmxvd0xpc3RE
aXJ0eSA9IGZhbHNlOworfQorCit2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkTm9ybWFsRmxvd0xp
c3QoVmVjdG9yPFJlbmRlckxheWVyKj4qJiBub3JtYWxGbG93TGlzdCkgY29uc3QKK3sKICAgICBm
b3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgLy8gSWdub3JlIG5vbi1vdmVyZmxvdyBsYXll
cnMgYW5kIHJlZmxlY3Rpb25zLgogICAgICAgICBpZiAoY2hpbGQtPmlzTm9ybWFsRmxvd09ubHko
KSAmJiAoIW1fcmVmbGVjdGlvbiB8fCByZWZsZWN0aW9uTGF5ZXIoKSAhPSBjaGlsZCkpIHsKLSAg
ICAgICAgICAgIGlmICghbV9ub3JtYWxGbG93TGlzdCkKLSAgICAgICAgICAgICAgICBtX25vcm1h
bEZsb3dMaXN0ID0gbmV3IFZlY3RvcjxSZW5kZXJMYXllcio+OwotICAgICAgICAgICAgbV9ub3Jt
YWxGbG93TGlzdC0+YXBwZW5kKGNoaWxkKTsKKyAgICAgICAgICAgIGlmICghbm9ybWFsRmxvd0xp
c3QpCisgICAgICAgICAgICAgICAgbm9ybWFsRmxvd0xpc3QgPSBuZXcgVmVjdG9yPFJlbmRlckxh
eWVyKj47CisgICAgICAgICAgICBub3JtYWxGbG93TGlzdC0+YXBwZW5kKGNoaWxkKTsKICAgICAg
ICAgfQogICAgIH0KLSAgICAKLSAgICBtX25vcm1hbEZsb3dMaXN0RGlydHkgPSBmYWxzZTsKIH0K
IAogdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyhib29sIGluY2x1ZGVIaWRkZW5MYXll
cnMsIFZlY3RvcjxSZW5kZXJMYXllcio+KiYgcG9zQnVmZmVyLCBWZWN0b3I8UmVuZGVyTGF5ZXIq
PiomIG5lZ0J1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXgg
OGUwMjY4MzNkMGYzZDBhMzZkODI1MTRlZjNiZGQ3MTg1M2UyMTMxNi4uMDllODMzOWZjZjE0ZTFj
MWY3ZjU1OWMyM2E2NjEwMDBmZjA1YjE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKQEAgLTY4Myw5ICs2ODMsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lk
IHVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgdm9pZCByZWJ1aWxkWk9yZGVyTGlzdHMoKTsKKyAg
ICB2b2lkIHJlYnVpbGRaT3JkZXJMaXN0cyhWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIHBvc1pPcmRl
ckxpc3QsIFZlY3RvcjxSZW5kZXJMYXllcio+KiYgbmVnWk9yZGVyTGlzdCkgY29uc3Q7CiAgICAg
dm9pZCBjbGVhclpPcmRlckxpc3RzKCk7CiAKICAgICB2b2lkIHVwZGF0ZU5vcm1hbEZsb3dMaXN0
KCk7CisgICAgdm9pZCByZWJ1aWxkTm9ybWFsRmxvd0xpc3QoVmVjdG9yPFJlbmRlckxheWVyKj4q
JiBub3JtYWxGbG93TGlzdCkgY29uc3Q7CiAKICAgICBib29sIGlzU3RhY2tpbmdDb250ZXh0KGNv
bnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QgeyByZXR1cm4gIXN0eWxlLT5oYXNBdXRvWklu
ZGV4KCkgfHwgaXNSb290TGF5ZXIoKTsgfQogICAgIGJvb2wgaXNEaXJ0eVN0YWNraW5nQ29udGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fek9yZGVyTGlzdHNEaXJ0eSAmJiBpc1N0YWNraW5nQ29udGV4
dCgpOyB9CkBAIC04NzgsNiArODgwLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRJbmRpcmVj
dENvbXBvc2l0aW5nUmVhc29uKEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gcmVhc29uKSB7IG1f
aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA9IHJlYXNvbjsgfQogICAgIEluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb24gaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+KG1faW5kaXJlY3RDb21wb3NpdGlu
Z1JlYXNvbik7IH0KICAgICBib29sIG11c3RDb21wb3NpdGVGb3JJbmRpcmVjdFJlYXNvbnMoKSBj
b25zdCB7IHJldHVybiBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247IH0KKworICAgIC8vIFJl
dHVybnMgdHJ1ZSBpZiB6IG9yZGVyaW5nIHdvdWxkIG5vdCBjaGFuZ2UgaWYgdGhpcyBsYXllciB3
ZXJlIHRvIGVzdGFibGlzaCBhIHN0YWNraW5nIGNvbnRleHQuCisgICAgYm9vbCBjYW5TYWZlbHlF
c3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3Q7CisKKyAgICAvLyBUaGVzZSB0d28gbWV0
aG9kcyBhcmUgdXNlZCBieSBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0LgorICAg
IHN0YXRpYyB2b2lkIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3Jk
ZXJUcmVlKGNvbnN0IFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVy
KiB0b0JlUHJvbW90ZWQsIGludCYgbnVtQm91bmRhcmllcywgYm9vbCYgbGFzdEVsZW1lbnRXYXNE
ZXNjZW5kYW50KTsKKyAgICBzdGF0aWMgdm9pZCBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50
Qm91bmRhcmllc0Zvckxpc3QoVmVjdG9yPFJlbmRlckxheWVyKj4qIGxheWVyTGlzdCwgY29uc3Qg
UmVuZGVyTGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50JiBudW1Cb3VuZGFyaWVzLCBib29sJiBsYXN0
RWxlbWVudFdhc0Rlc2NlbmRhbnQpOwogI2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgUmVuZGVy
TGF5ZXJCYWNraW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAKaW5kZXggNjRiYTJlYTA0Y2EyMDhkMDdiMjhlZDA0Mjg0ZWNiOTBhNTQxYjhmOC4uYTcwOWM0
N2RkZTEzYjk0YzRjMjNkOWJhMTVlNmQxN2Q1NzA1Zjg5NyAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMjksNiArMjI5LDEyIEBAIHZvaWQgSW50
ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJv
b2wgZW5hYmxlZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVybmFs
U2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JT
ZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JP
dmVyZmxvd1Njcm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5n
czo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGM4NzIyYTQxYTczZTAz
MzNjNWQyNmFkZDgyNWExMzJjNjRlN2VjYjQuLjBmYTFjMTM2ODEwMmQ4NTI4YjhlYmRmMDZiZWJm
Yjg3YTM1MzJhZTEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CkBAIC05OSw2ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdN
b2RlKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JP
dmVyZmxvd1Njcm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNl
dEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5pZGwKaW5kZXggYzc0NTVmZTE2NDE0MGU0ODQ2NDcxNjhjZDBhNDdiODgwMWJiM2Vh
YS4uZDE2ZjA2NjE5MDA2NTMyOGRiMjUxMmQ5MWRjMTVlNjU3NmVjZGQ3OCAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0zMSw2ICszMSw3IEBAIG1v
ZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3Jv
bGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChpbiBib29s
ZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGluIGJvb2xl
YW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0TW9ja1Nj
cm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggM2FmYjMzNDdhZWQxYjU1NDZi
YTFlMDRlZGJjMjFhYzVlMjQxYTA0ZS4uOTc3OWU1ZmUxMmMzMDA4MTYwODRkMmQxYjliZGQ0OWYx
MjQ1YjQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTAxLDYgKzEw
MSwxMCBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2VuZGlmCiAKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNl
bmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CkBAIC0xMDk2LDYgKzExMDAsMzcgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUGFnZUJveFZpc2libGUo
RG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgcGFnZU51bWJlciwgRXhjZXB0aW9uQ28KICAgICByZXR1
cm4gZG9jdW1lbnQtPmlzUGFnZUJveFZpc2libGUocGFnZU51bWJlcik7CiB9CiAKK2Jvb2wgSW50
ZXJuYWxzOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhOb2RlKiBub2RlLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKCFub2Rl
KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QgPSBub2RlLT5yZW5k
ZXJlcigpOworICAgIGlmICghcmVuZGVyT2JqZWN0KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9O
T0RFX1RZUEVfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFy
ZW5kZXJPYmplY3QtPmhhc0xheWVyKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VS
UjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFJlbmRlckxheWVyKiByZW5k
ZXJMYXllciA9IHJlbmRlck9iamVjdC0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICBpZiAoIXJlbmRl
ckxheWVyKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVuZGVyTGF5ZXItPnVzZXNDb21wb3NpdGVk
U2Nyb2xsaW5nKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lk
IEludGVybmFsczo6c3VzcGVuZEFuaW1hdGlvbnMoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRp
b25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJh
bWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZDJkNDUyZWE5NWEwZWU3
ZDYzOTg5NTAwMmY3NmM0MDAwMDMxNDgyOS4uMWIxMGY1MDRhOTA4NTViODAwMjU4MTM3OTI0Mjdk
N2NmNTYzNzExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xNzMsNiArMTcz
LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BhZ2VCb3hWaXNpYmxlKERvY3VtZW50KiwgaW50
IHBhZ2VOdW1iZXIsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRT
Y3JvbGxpbmcoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBpbnRlcm5hbHNJZDsKIAogICAgIEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggM2JkOTEyOTlmMGE1NTc0NjYy
NWNmYzkxZDUyOWExZjhmYTNiMWVjYi4uNWE5NTFhNmE4NTE2OTYwNGY5N2E2NzNlYTUzNTRkOTM4
YWFkMjRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTUxLDYgKzE1
MSw4IEBAIG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIGJvb2xlYW4gaXNQYWdlQm94VmlzaWJs
ZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAKKyAgICAgICAgYm9vbGVhbiB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhpbiBO
b2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBzZXR0aW5nczsKIAogICAgICAgICB2b2lkIHN1c3BlbmRB
bmltYXRpb25zKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdF9DYWlyby5k
ZWYgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdF9DYWlyby5kZWYKaW5k
ZXggZTRjZDI2NmVkMDIyNTBmZTQ5NzA2MWM0OTExMWVlMjI3YzFlMDk4Ni4uZGM2YzZkNTZmOGZj
NDlmZmVlZGVkOWYyZjYwM2FkYmQ3YzU3Yzc2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vV2ViS2l0LnZjcHJvai9XZWJLaXRfQ2Fpcm8uZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYktpdC52Y3Byb2ovV2ViS2l0X0NhaXJvLmRlZgpAQCAtMTEwLDYgKzExMCw3IEBAIEVYUE9S
VFMKICAgICAgICAgPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBQUVAQUJWSW50UmVjdEAxQEBaCiAg
ICAgICAgID8/MENsaWVudFJlY3RAV2ViQ29yZUBAQUFFQFhaCiAgICAgICAgID9hYnNvbHV0ZUJv
dW5kaW5nQm94UmVjdEBSZW5kZXJPYmplY3RAV2ViQ29yZUBAUUFFP0FWSW50UmVjdEAyQF9OQFoK
KyAgICAgICAgP2VuY2xvc2luZ0xheWVyQFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkVQQVZFbGVt
ZW50QDJAWFoKIAk/ZGVzY3JpcHRpb25ARG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAUUJFQUJWU3Ry
aW5nQFdURkBAWFoKICAgICAgICAgP2Zhc3RNYWxsb2NAV1RGQEBZQVBBWElAWgogICAgICAgICA/
ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFYSUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdF9DYWlyb19kZWJ1Zy5kZWYgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdF9DYWlyb19kZWJ1Zy5kZWYKaW5kZXggZTRhYzExOWMy
MmJjMDdjNGJlNmY4MjY2NzRhMjE2MDcxMWQ2NTZhMS4uNzRjNjA0NGY3NmYxNDAxNTRkYzMzNzFk
ZTdjNTY2NzRhNGI4NDFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZj
cHJvai9XZWJLaXRfQ2Fpcm9fZGVidWcuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktp
dC52Y3Byb2ovV2ViS2l0X0NhaXJvX2RlYnVnLmRlZgpAQCAtMTEwLDYgKzExMCw3IEBAIEVYUE9S
VFMKICAgICAgICAgPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBQUVAQUJWSW50UmVjdEAxQEBaCiAg
ICAgICAgID8/MENsaWVudFJlY3RAV2ViQ29yZUBAQUFFQFhaCiAgICAgICAgID9hYnNvbHV0ZUJv
dW5kaW5nQm94UmVjdEBSZW5kZXJPYmplY3RAV2ViQ29yZUBAUUFFP0FWSW50UmVjdEAyQF9OQFoK
KyAgICAgICAgP2VuY2xvc2luZ0xheWVyQFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkVQQVZFbGVt
ZW50QDJAWFoKIAk/ZGVzY3JpcHRpb25ARG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAUUJFQUJWU3Ry
aW5nQFdURkBAWFoKICAgICAgICAgP2Zhc3RNYWxsb2NAV1RGQEBZQVBBWElAWgogICAgICAgICA/
ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFYSUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXgg
ZmJmYjlkNTQ1ZDViZWEzYzliZDI2MjBmNDYzYzY5ZGVlOTJmM2EwNy4uNDBkZjFmZTFiZWE1NTNj
NjdmZmQ3OTFlNjkxNzI4ZTM2YjBhMDg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTU2
LDYgKzE1Niw3IEBAIEVYUE9SVFMKICAgICAgICAgPz8wU3RyaW5nQFdURkBAUUFFQFBCX1dAWgog
ICAgICAgICA/YWJzb2x1dGVCb3VuZGluZ0JveFJlY3RAUmVuZGVyT2JqZWN0QFdlYkNvcmVAQFFC
RT9BVkludFJlY3RAMkBfTkBaCiAgICAgICAgID9hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9y
aW5nVHJhbnNmb3Jtc0BSZW5kZXJPYmplY3RAV2ViQ29yZUBAUUJFP0FWSW50UmVjdEAyQFhaCisg
ICAgICAgID9lbmNsb3NpbmdMYXllckBSZW5kZXJPYmplY3RAV2ViQ29yZUBAUUJFUEFWRWxlbWVu
dEAyQFhaCiAJP2Rlc2NyaXB0aW9uQERvY3VtZW50TWFya2VyQFdlYkNvcmVAQFFCRUFCVlN0cmlu
Z0BXVEZAQFhaCiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQ
dHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQkRAWgogICAgICAgICA/YWRkQEF0b21pY1N0cmluZ0BX
VEZAQENBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDJAUEJFQFoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCBlMzBiZDNjNWZmNWVlMjE2YTljZTE5NzBlZGJl
NmI1ZWY2MzdhOGY3Li5lYWE3Mjg4ODQ4NTQ0ODBmMDRkNjUxYWQwYWFkMmE4YzBiMDc0MDZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNDksNiArMTQ5LDcgQEAgRVhQ
T1JUUwogICAgICAgICA/PzBTdHJpbmdAV1RGQEBRQUVAUEJfV0BaCiAgICAgICAgID9hYnNvbHV0
ZUJvdW5kaW5nQm94UmVjdEBSZW5kZXJPYmplY3RAV2ViQ29yZUBAUUJFP0FWSW50UmVjdEAyQF9O
QFoKICAgICAgICAgP2Fic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zQFJl
bmRlck9iamVjdEBXZWJDb3JlQEBRQkU/QVZJbnRSZWN0QDJAWFoKKyAgICAgICAgP2VuY2xvc2lu
Z0xheWVyQFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkVQQVZFbGVtZW50QDJAWFoKIAk/ZGVzY3Jp
cHRpb25ARG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAg
ICAgP2FkZEBBdG9taWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBX
VEZAQEAyQFBCREBaCiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NS
ZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQkVAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5k
ZXggMmFmN2U3NjA3ZmRmNDgwYjM3MzEzYzNlMmU0OGQxM2VlNTNhMTVkMi4uZmIwNTZlYjE0YWM0
Mzg3YWI3MmFmNGEzOGRjMmQ2MjJmMmViNzQxMyAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBA
IC0xMTYsNiArMTE2LDcgQEAgX1pOSzdXZWJDb3JlNE5vZGUzMW51bWJlck9mU2NvcGVkSFRNTFN0
eWxlQ2hpbGRyZW5FdjsKIF9aTks3V2ViQ29yZTROb2RlOXRyZWVTY29wZUV2OwogX1pOSzdXZWJD
b3JlNFBhZ2UxN3ZpZXdwb3J0QXJndW1lbnRzRXY7CiBfWk5LN1dlYkNvcmUxMlJlbmRlck9iamVj
dDIzYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RFYjsKK19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0
MTRlbmNsb3NpbmdMYXllckV2OwogX1pOSzdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTRzdWdn
ZXN0ZWRWYWx1ZUV2OwogX1pOSzdXZWJDb3JlMTdKU0RPTUdsb2JhbE9iamVjdDIyc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEV2OwogX1pOSzdXZWJDb3JlMjBDYWNoZWRSZXNvdXJjZUxvYWRlcjExaXNQ
cmVsb2FkZWRFUktOM1dURjZTdHJpbmdFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVjMDNmZjJmYWYzNzY0YzUwMzdmMzlh
Nzg4MGFlOTE2YTEzY2UyMzQuLjUxMmExMWZmZGE2NzBjNjM4YzExMTE5YTVhNjY5YWYxMmEzZjA4
YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0xNyAgSWFuIFZvbGxpY2sgIDx2b2xs
aWNrQGNocm9taXVtLm9yZz4KKworICAgICAgICBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVk
IHNjcm9sbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTQ3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0cyB2YXJpb3VzIGNvbmZpZ3VyYXRpb25zIG9mIGVsZW1lbnRzIHRvIGVuc3VyZSB0aGF0
IHdlIG9ubHkgYXV0b21hdGljYWxseSBvcHQgaW50bworICAgICAgICBjb21wb3NpdGVkIHNjcm9s
bGluZyB3aGVuIGl0IGlzIHNhZmUgdG8gZG8gc28uCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9v
dmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGlj
YWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0w
OS0xNyAgSsOhbm9zIEJhZGljcyAgPGpiYWRpY3NAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAg
IFtRdF1SRUdSRVNTSU9OKHIxMjg2OTkpOiBJdCBtYWRlIDIgZmFzdC9qcy9kZmcgdGVzdHMgYXNz
ZXJ0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9z
aXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4OTExYTE0MmFlOTkzNDVm
YmM4ZmRiZGM0OWE0MjI0ODc0MmE3MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Ny
b2xsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBACiswIHVzZXMgYWNjZWxlcmF0ZWQg
Y29tcG9zaXRpbmc6IHRydWUsIFBhc3MKKzEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzog
dHJ1ZSwgUGFzcworMiB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzCisz
IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MKKzQgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MKKzUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZzogdHJ1ZSwgUGFzcworNiB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwg
UGFzcworNyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcworOCB1c2Vz
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcworOSB1c2VzIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcworMTAgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZzogdHJ1ZSwgUGFzcworMTEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFz
cworMTIgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcworMTMgdXNlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcworMTQgdXNlcyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZzogdHJ1ZSwgUGFzcworMTUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzog
dHJ1ZSwgUGFzcworMTYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcwor
MTcgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MKKzE4IHVzZXMgYWNj
ZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MKKzE5IHVzZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmc6IGZhbHNlLCBQYXNzCisyMCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0
cnVlLCBQYXNzCisyMSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzCisy
MiB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzCisyMyB1c2VzIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzCisyNCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nOiBmYWxzZSwgUGFzcworMjUgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1
ZSwgUGFzcworMjYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcworMjcg
dXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MKKzI4IHVzZXMgYWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzCisyOSB1c2VzIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nOiBmYWxzZSwgUGFzcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1p
bnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4MGE3NjIzMjlhMWFl
MDk2N2RkNTZkMWZkMjRkMzljYWUxYjRjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1z
Y3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDE0MyBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICIt
Ly9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9dXRmLTgiLz4KKyAgPHRpdGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nPC90
aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuY29u
dGFpbmVyIHsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAg
ICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdpZHRoOiAx
ODBweDsKKyAgICAgIGhlaWdodDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQor
CisgICAgLnBvc2l0aW9uZWQgeworICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVpZ2h0OiAy
NDBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIH0KKworICAgICNwcmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4Owor
ICAgICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNzdWNjZXNzb3IgeworICAgICAgbGVmdDog
MTYwcHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiB3cml0ZShz
dHIpCisgICAgeworICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJyk7CisgICAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0ciArICdc
bicpOworICAgICAgcHJlLmFwcGVuZENoaWxkKHRleHQpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGRvVGVzdCgpCisgICAgeworICAgICAgdmFyIHByZWRlY2Vzc29yID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3ByZWRlY2Vzc29yJyk7CisgICAgICB2YXIgc3VjY2Vzc29yID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3N1Y2Nlc3NvcicpOworICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKKyAgICAgIHZhciBmaXJzdENoaWxkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0Q2hpbGQnKTsKKyAgICAgIHZhciBzZWNvbmRD
aGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWNvbmRDaGlsZCcpOworICAgICAgdmFy
IGR1bW15ID0gMDsKKyAgICAgIHZhciBjb3VudCA9IDA7CisKKyAgICAgIHZhciBleHBlY3RlZF9y
ZXN1bHRzID0gWworICAgICAgICB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwKKyAgICAg
ICAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgICAgIHRydWUsIHRydWUs
IHRydWUsIHRydWUsIHRydWUsCisgICAgICAgIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxz
ZSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUs
IHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UKKyAgICAgIF07CisKKyAgICAgIGZvciAoaSA9IDA7
IGkgPCAzOyArK2kpIHsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IDU7ICsraikgeworICAgICAg
ICAgIGZvciAoayA9IDA7IGsgPCAyOyArK2spIHsKKyAgICAgICAgICAgIHZhciBtaW5aSW5kZXgg
PSAwOworICAgICAgICAgICAgdmFyIG1heFpJbmRleCA9IDA7CisgICAgICAgICAgICBpZiAoaSA9
PSAwKSB7CisgICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJzEnOworICAg
ICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnMyc7CisgICAgICAgICAgICAg
IG1heFpJbmRleCA9IDM7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPT0gMSkgeworICAgICAg
ICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICctMSc7CisgICAgICAgICAgICAgIHNl
Y29uZENoaWxkLnN0eWxlLnpJbmRleCA9ICctMyc7CisgICAgICAgICAgICAgIG1pblpJbmRleCA9
IC0zOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHls
ZS56SW5kZXggPSAnLTEnOworICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXgg
PSAnMyc7CisgICAgICAgICAgICAgIG1pblpJbmRleCA9IC0xOworICAgICAgICAgICAgICBtYXha
SW5kZXggPSAzOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgc2libGluZyA9IHBy
ZWRlY2Vzc29yOworICAgICAgICAgICAgdmFyIHRvSGlkZSA9IHN1Y2Nlc3NvcjsKKyAgICAgICAg
ICAgIGlmIChrID09IDEpIHsKKyAgICAgICAgICAgICAgc2libGluZyA9IHN1Y2Nlc3NvcjsKKyAg
ICAgICAgICAgICAgdG9IaWRlID0gcHJlZGVjZXNzb3I7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHRvSGlkZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICAgICAgc2libGlu
Zy5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAgICAgICAgICBpZiAoaiA9PSAwKSB7CisgICAgICAg
ICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gKG1heFpJbmRleCArIDEpLnRvU3RyaW5nKCk7
CisgICAgICAgICAgICB9IGVsc2UgaWYgKGogPT0gMSkgeworICAgICAgICAgICAgICBzaWJsaW5n
LnN0eWxlLnpJbmRleCA9IChtaW5aSW5kZXggLSAxKS50b1N0cmluZygpOworICAgICAgICAgICAg
fSBlbHNlIGlmIChqID09IDIpIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXgg
PSBtYXhaSW5kZXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAzKSB7
CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWluWkluZGV4LnRvU3RyaW5n
KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJ
bmRleCA9ICgobWluWkluZGV4ICsgbWF4WkluZGV4KSAvIDIpLnRvU3RyaW5nKCk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIC8vIEZvcmNlIGEgc3R5bGUgcmVjYWxjLgorICAgICAgICAg
ICAgZHVtbXkgPSBjb250YWluZXIub2Zmc2V0VG9wOworCisgICAgICAgICAgICBpZiAod2luZG93
LmludGVybmFscykgeworICAgICAgICAgICAgICB2YXIgaXNBY2NlbGVyYXRlZCA9IHdpbmRvdy5p
bnRlcm5hbHMudXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoY29udGFpbmVyKTsKKyAgICAgICAgICAg
ICAgd3JpdGUoY291bnQudG9TdHJpbmcoKSArICcgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZzogJyArIGlzQWNjZWxlcmF0ZWQgKyAnLCAnICsgKGV4cGVjdGVkX3Jlc3VsdHNbY291bnRdID09
IGlzQWNjZWxlcmF0ZWQgPyAnUGFzcycgOiAnRkFJTCcpKTsKKyAgICAgICAgICAgICAgY291bnQr
KzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9
CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOwor
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDxkaXYgY2xhc3M9InBvc2l0aW9uZWQi
IGlkPSJwcmVkZWNlc3NvciI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciIgaWQ9ImNv
bnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQiIGlkPSJmaXJzdENoaWxkIj48L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9InNlY29uZENoaWxkIj48L2Rpdj4KKyAg
PC9kaXY+CisgIDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJzdWNjZXNzb3IiPjwvZGl2Pgor
ICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0
IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDQyNzk5NjcyM2UxNjZmZDM3ZmRhMjhlOTYx
NDM2YWYwMGU1MDAzNWYuLmI2NGVmZjFiYjkyZmMyODI1ZDQ5YzMxOTI4M2ExM2E5MGVkMmQwODkg
MTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMi0wOS0xNyAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNjcm9sbGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ3NDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYSBmaWx0ZXIgZm9yIFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6ZW5jbG9zaW5nTGF5ZXIKKworICAgICAgICAqIFNvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTItMDktMTcgIFRvciBBcm5lIFZlc3Riw7ggIDx0
b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gQXV0by1nZW5lcmF0ZSB0
aGUgbW9kdWxlIHByaSBmaWxlIGZvciBRdFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164476</attachid>
            <date>2012-09-17 17:46:55 -0700</date>
            <delta_ts>2012-11-23 08:37:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20120917204623.patch</filename>
            <type>text/plain</type>
            <size>29853</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY1ZTI3NDA0YWU1ODg0
ODg3ZjhhMjUzZDBlNzM5NDUxZjUzYjZiZi4uNzk1NmJmMDZkZDU5NTViYmI0OGRmNDYyZTYyMTEw
YTg2MmQwY2YzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA5LTE3ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRvIGNoZWNr
IHRoaXMsIEkgZW5zdXJlIHRoYXQgdGhlIGNhbmRpZGF0ZSBlbGVtZW50CisgICAgICAgIGFuZCBh
bGwgaXRzIGRlc2NlbmRhbnRzIGFwcGVhciBhcyBhIGNvbnRpbnVvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIG90aGVy
IGVsZW1lbnRzIGFyZSAnYmV0d2VlbicgYW55IG9mCisgICAgICAgIHRoZSBjYW5kaWRhdGVzIGRl
c2NlbmRhbnRzIHdoZW4gd2Ugc29ydCBpbiBwYWludCBvcmRlciwgdGhlbiB3ZSdyZSBzYWZlLgor
ICAgICAgICBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRpdmUsIGhvd2V2ZXIuIFdlIGNvdWxkLCBp
biBmdXR1cmUsIG9ubHkgY29uc2lkZXIKKyAgICAgICAgc3RhY2tpbmcgcHJvYmxlbXMgYmV0d2Vl
biBlbGVtZW50cyB0aGF0IGFjdHVhbGx5IG92ZXJsYXAuCisKKyAgICAgICAgVGVzdDogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGluZy1zY3JvbGxp
bmcuaHRtbAorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6
U2V0dGluZ3M6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQp
OgorICAgICAgICAgIEFkZHMgdGhlIG5ldyBzZXR0aW5nIGZvciBlbmFibGluZyBhdXRvbWF0aWNh
bGx5IG9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OmlzRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y291bnREZXNj
ZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNGb3JMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0luWk9y
ZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCk6CisgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBSZW5k
ZXJMYXllciBjb3VsZCBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0IHdpdGhvdXQKKyAgICAgICAg
ICBhZmZlY3RpbmcgdGhlIHN0YWNraW5nIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRh
dGVkIHRvIHJldHVybiB0cnVlIGlmIGl0IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcK
KyAgICAgICAgICBjb250ZXh0LCBhbmQgdGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVwZGF0ZU5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpyZWJ1aWxkTm9ybWFsRmxvd0xpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRF
bmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKToKKyAgICAgICAgICBBbGxvd3MgZW5h
YmxpbmcgdGhlIHNldHRpbmcgaW4gbGF5b3V0IHRlc3RzLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNl
dHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAgIEFsbG93cyBsYXlvdXQgdGVzdHMg
dG8gY2hlY2sgaWYgYSBkaXYgaXMgdXNpbmcgY29tcG9zaXRlZCBzY3JvbGxpbmcuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50
ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDktMTcg
IExhdXJvIE5ldG8gIDxsYXVyby5uZXRvQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgVXBkYXRl
cyB0byB0aGUgdXNlcmFnZW50IHBhdGNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2YxY2RlNTI4MWY0ZmM3MmJk
YzJmZDU1MmQ2NGM2MTAwOTlkOWJjZi4uYmNlYmMwNTU1ZDVhYzBhZGFkNWVlZTQwMDRiNjNlM2Jj
OTAwZmZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5LTE3ICBJYW4gVm9s
bGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEF1dG9tYXRpY2FsbHkgdXNl
IGNvbXBvc2l0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NDc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGluZyBleHBvcnRzIGZvciBXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmVu
Y2xvc2luZ0xheWVyCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2lu
L1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTA5LTE3ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9y
LmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJlbW92ZSAndXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmUnIGZyb20gaGVhZGVyIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRl
eCA2MjQ3Zjg1NjRjZDM1ZGZhNzg0NzNmY2U5YWMyNzQ2NzNlZGE0YWEyLi40OGM3NzRiZWMwNWMw
NTc0MjRkNGQ5NDg3YTI0NGFmY2U4OTc1MDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0z
OTIsNyArMzkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkOyB9CiAK
ICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxF
bmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZDsgfTsKKyAgICAgICAgYm9v
bCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
OyB9CiAKICAgICAgICAgdm9pZCBzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wpOwogICAgICAgICBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBtX3Nob3dEZWJ1Z0JvcmRlcnM7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGE0OTU0NGRm
MWNmYjY3YWI1YTA1ODM4ZTk0YjBhOGYzNDRmYmI3YmUuLjE1YmJmMGE5ZTViMzMzNjRlZDRhMzU5
MDIwODU4OTZmMTBhZjdiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcApAQCAtNjY2LDYgKzY2Niw4NyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0
aW9uKCkKICAgICB9CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitzdGF0
aWMgYm9vbCBpc0Rlc2NlbmRhbnQoY29uc3QgUmVuZGVyTGF5ZXIqIHBhcmVudCwgY29uc3QgUmVu
ZGVyTGF5ZXIqIGNoaWxkKQoreworICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnQg
PSBjaGlsZDsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPnBhcmVudCgpKQorICAgICAgICBp
ZiAoY3VycmVudCA9PSBwYXJlbnQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRlc2Nh
bmRhbnRCb3VuZGFyaWVzRm9yTGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbGF5ZXJMaXN0LCBj
b25zdCBSZW5kZXJMYXllciogdG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5kYXJpZXMsIGJvb2wm
IGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKK3sKKyAgICBpZiAoIWxheWVyTGlzdCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllckxpc3QtPnNpemUo
KTsgKytpKQorICAgICAgICBjb3VudERlc2NlbmRhbnROb25EZXNjYW5kYW50Qm91bmRhcmllc0lu
Wk9yZGVyVHJlZShsYXllckxpc3QtPmF0KGkpLCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMs
IGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50
RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0IFJlbmRl
ckxheWVyKiBjdXJyZW50TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQsIGlu
dCYgbnVtQm91bmRhcmllcywgYm9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQoreworICAg
IGlmICgoY3VycmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpICYmIGN1cnJlbnRMYXllciAh
PSB0b0JlUHJvbW90ZWQtPnN0YWNraW5nQ29udGV4dCgpKSB8fCBjdXJyZW50TGF5ZXIgPT0gdG9C
ZVByb21vdGVkKSB7CisgICAgICAgIGlmIChpc0Rlc2NlbmRhbnQodG9CZVByb21vdGVkLCBjdXJy
ZW50TGF5ZXIpKSB7CisgICAgICAgICAgICBpZiAoIWxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkK
KyAgICAgICAgICAgICAgICBudW1Cb3VuZGFyaWVzKys7CisgICAgICAgICAgICBsYXN0RWxlbWVu
dFdhc0Rlc2NlbmRhbnQgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYg
KGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgICAgICAgICBudW1Cb3VuZGFyaWVz
Kys7CisgICAgICAgICAgICBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQgPSBmYWxzZTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3Jk
ZXJMaXN0ID0gMDsKKyAgICAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3Qg
PSAwOworICAgICAgICBpZiAoY3VycmVudExheWVyLT5tX3pPcmRlckxpc3RzRGlydHkpCisgICAg
ICAgICAgICBjdXJyZW50TGF5ZXItPnJlYnVpbGRaT3JkZXJMaXN0cyhwb3NaT3JkZXJMaXN0LCBu
ZWdaT3JkZXJMaXN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBuZWdaT3JkZXJMaXN0
ID0gY3VycmVudExheWVyLT5uZWdaT3JkZXJMaXN0KCk7CisgICAgICAgICAgICBwb3NaT3JkZXJM
aXN0ID0gY3VycmVudExheWVyLT5wb3NaT3JkZXJMaXN0KCk7CisgICAgICAgIH0KKworICAgICAg
ICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSAwOworICAgICAgICBpZiAo
Y3VycmVudExheWVyLT5tX25vcm1hbEZsb3dMaXN0RGlydHkpCisgICAgICAgICAgICBjdXJyZW50
TGF5ZXItPnJlYnVpbGROb3JtYWxGbG93TGlzdChub3JtYWxGbG93TGlzdCk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG5vcm1hbEZsb3dMaXN0ID0gY3VycmVudExheWVyLT5ub3JtYWxGbG93
TGlzdCgpOworCisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVz
Rm9yTGlzdChuZWdaT3JkZXJMaXN0LCB0b0JlUHJvbW90ZWQsIG51bUJvdW5kYXJpZXMsIGxhc3RF
bGVtZW50V2FzRGVzY2VuZGFudCk7CisgICAgICAgIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRh
bnRCb3VuZGFyaWVzRm9yTGlzdChub3JtYWxGbG93TGlzdCwgdG9CZVByb21vdGVkLCBudW1Cb3Vu
ZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgICAgICBjb3VudERlc2NlbmRh
bnROb25EZXNjYW5kYW50Qm91bmRhcmllc0Zvckxpc3QocG9zWk9yZGVyTGlzdCwgdG9CZVByb21v
dGVkLCBudW1Cb3VuZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgIH0KK30K
KworYm9vbCBSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgp
IGNvbnN0Cit7CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIXN0YWNraW5nQ29udGV4
dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIElmIG91ciBwcm9tb3Rpb24gdG8g
YSBzdGFja2luZyBjb250ZXh0IHdvdWxkIG5vdCBhZmZlY3Qgc3RhY2tpbmcgb3JkZXIsCisgICAg
Ly8gdGhlbiB0aGlzIGxheWVyIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRlbnRzIHNob3VsZCBhcHBl
YXIgYXMgYSBjb250aW51b3VzCisgICAgLy8gYmxvY2sgaWYgd2UgYXJlIHRvIHRyYXZlcnNlIHRo
ZSBlbGVtZW50cyBpbiB0aGUgc3RhY2tpbmcgY29udGV4dCBpbgorICAgIC8vIHBhaW50IG9yZGVy
LiBUaGF0IGlzLCB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgYmV0d2VlbiBkZXNjZW5kYW50cywg
YW5kCisgICAgLy8gbm9uIGRlc2NlbmRhbnRzIHNob3VsZCBiZSBleGFjdGx5IHR3byAoaWYgd2Ug
YXNzdW1lIHRoYXQgaWYgdGhlIGZpcnN0IG9yCisgICAgLy8gbGFzdCBlbGVtZW50IGluIHRoZSBs
aXN0IGlzIGEgZGVzY2VuZGFudCwgdGhhdCB0aGlzIGlzIGFsc28gYSBib3VuZGFyeSkuCisKKyAg
ICAvLyBCeSBpbml0aWFsaXppbmcgdG8gZmFsc2UsIGlmIHRoZSBmaXJzdCBlbGVtZW50IHdlIHNl
ZSBpcyBhIGRlc2NlbmRhbnQsCisgICAgLy8gdGhlbiB3ZSBjb3JyZWN0bHkgbWFyayBpdCBhcyBh
IGJvdW5kYXJ5LgorICAgIGJvb2wgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50ID0gZmFsc2U7CisK
KyAgICBpbnQgbnVtQm91bmRhcmllcyA9IDA7CisKKyAgICBjb3VudERlc2NlbmRhbnROb25EZXNj
YW5kYW50Qm91bmRhcmllc0luWk9yZGVyVHJlZShzdGFja2luZ0NvbnRleHQoKSwgdGhpcywgbnVt
Qm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKworICAgIC8vIElmIHRoZSBs
YXN0IGVsZW1lbnQgd2Ugc2VlIGlzIGEgZGVzY2VuZGFudCwgdGhpcyBpcyBhbHNvIGEgYm91bmRh
cnkuCisgICAgaWYgKGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAgbnVtQm91bmRh
cmllcysrOworCisgICAgcmV0dXJuIG51bUJvdW5kYXJpZXMgPT0gMjsKK30KKworI2VuZGlmCisK
IHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KCkKIHsgCiAgICAgaWYgKG1f
aGFzVmlzaWJsZUNvbnRlbnQgJiYgIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAt
MTU3MywxMCArMTY1NCwxMyBAQCBib29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZygpIGNvbnN0CiAgICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xs
aW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wgYXV0b21hdGljYWxseU9w
dEluID0gcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkKKyAgICAgICAgJiYgY2FuU2Fm
ZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpOworCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVE
X09WRVJGTE9XX1NDUk9MTElORykKLSAgICByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNl
VG91Y2hPdmVyZmxvd1Njcm9sbGluZygpOworICAgIHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgp
LT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkgfHwgYXV0b21hdGljYWxseU9wdEluOwogI2Vs
c2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGF1dG9tYXRpY2FsbHlPcHRJbjsKICNl
bmRpZgogfQogI2VuZGlmCkBAIC0xNzMxLDggKzE4MTUsMTUgQEAgdm9pZCBSZW5kZXJMYXllcjo6
c2Nyb2xsVG8oaW50IHgsIGludCB5KQogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRp
c3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2
ZW50KTsKICAgICB9CiAKKyAgICBib29sIHJlcXVpcmVzUmVwYWludCA9IHRydWU7CisKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKGNvbXBvc2l0b3IoKS0+aW5Db21w
b3NpdGluZ01vZGUoKSAmJiB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgICAgICByZXF1
aXJlc1JlcGFpbnQgPSBmYWxzZTsKKyNlbmRpZgorCiAgICAgLy8gSnVzdCBzY2hlZHVsZSBhIGZ1
bGwgcmVwYWludCBvZiBvdXIgb2JqZWN0LgotICAgIGlmICh2aWV3ICYmICF1c2VzQ29tcG9zaXRl
ZFNjcm9sbGluZygpKQorICAgIGlmICh2aWV3ICYmIHJlcXVpcmVzUmVwYWludCkKICAgICAgICAg
cmVuZGVyZXIoKS0+cmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHBpeGVs
U25hcHBlZEludFJlY3QobV9yZXBhaW50UmVjdCkpOwogCiAgICAgLy8gU2NoZWR1bGUgdGhlIHNj
cm9sbCBET00gZXZlbnQuCkBAIC00NTUwLDYgKzQ2NDEsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cmVidWlsZFpPcmRlckxpc3RzKCkKICAgICBBU1NFUlQobV9sYXllckxpc3RNdXRhdGlvbkFsbG93
ZWQpOwogICAgIEFTU0VSVChpc0RpcnR5U3RhY2tpbmdDb250ZXh0KCkpOwogCisgICAgcmVidWls
ZFpPcmRlckxpc3RzKG1fcG9zWk9yZGVyTGlzdCwgbV9uZWdaT3JkZXJMaXN0KTsKKworICAgIG1f
ek9yZGVyTGlzdHNEaXJ0eSA9IGZhbHNlOworfQorCit2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxk
Wk9yZGVyTGlzdHMoVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3NaT3JkZXJMaXN0LCBWZWN0b3I8
UmVuZGVyTGF5ZXIqPiomIG5lZ1pPcmRlckxpc3QpIGNvbnN0Cit7CiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycyA9IGNvbXBvc2l0
b3IoKS0+aW5Db21wb3NpdGluZ01vZGUoKTsKICNlbHNlCkBAIC00NTU3LDE2ICs0NjU1LDE0IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cygpCiAjZW5kaWYKICAgICBmb3Ig
KFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGlmICghbV9yZWZsZWN0aW9uIHx8IHJlZmxlY3Rpb25M
YXllcigpICE9IGNoaWxkKQotICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMoaW5jbHVk
ZUhpZGRlbkxheWVycywgbV9wb3NaT3JkZXJMaXN0LCBtX25lZ1pPcmRlckxpc3QpOworICAgICAg
ICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywgcG9zWk9yZGVy
TGlzdCwgbmVnWk9yZGVyTGlzdCk7CiAKICAgICAvLyBTb3J0IHRoZSB0d28gbGlzdHMuCi0gICAg
aWYgKG1fcG9zWk9yZGVyTGlzdCkKLSAgICAgICAgc3RkOjpzdGFibGVfc29ydChtX3Bvc1pPcmRl
ckxpc3QtPmJlZ2luKCksIG1fcG9zWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5kZXgpOwor
ICAgIGlmIChwb3NaT3JkZXJMaXN0KQorICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KHBvc1pPcmRl
ckxpc3QtPmJlZ2luKCksIHBvc1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKIAot
ICAgIGlmIChtX25lZ1pPcmRlckxpc3QpCi0gICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9uZWda
T3JkZXJMaXN0LT5iZWdpbigpLCBtX25lZ1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4
KTsKLQotICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IGZhbHNlOworICAgIGlmIChuZWdaT3JkZXJM
aXN0KQorICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KG5lZ1pPcmRlckxpc3QtPmJlZ2luKCksIG5l
Z1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKIH0KIAogdm9pZCBSZW5kZXJMYXll
cjo6dXBkYXRlTm9ybWFsRmxvd0xpc3QoKQpAQCAtNDU3NiwxNiArNDY3MiwyMSBAQCB2b2lkIFJl
bmRlckxheWVyOjp1cGRhdGVOb3JtYWxGbG93TGlzdCgpCiAKICAgICBBU1NFUlQobV9sYXllckxp
c3RNdXRhdGlvbkFsbG93ZWQpOwogCisgICAgcmVidWlsZE5vcm1hbEZsb3dMaXN0KG1fbm9ybWFs
Rmxvd0xpc3QpOworCisgICAgbV9ub3JtYWxGbG93TGlzdERpcnR5ID0gZmFsc2U7Cit9CisKK3Zv
aWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGROb3JtYWxGbG93TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIq
PiomIG5vcm1hbEZsb3dMaXN0KSBjb25zdAorewogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxk
ID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewog
ICAgICAgICAvLyBJZ25vcmUgbm9uLW92ZXJmbG93IGxheWVycyBhbmQgcmVmbGVjdGlvbnMuCiAg
ICAgICAgIGlmIChjaGlsZC0+aXNOb3JtYWxGbG93T25seSgpICYmICghbV9yZWZsZWN0aW9uIHx8
IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxkKSkgewotICAgICAgICAgICAgaWYgKCFtX25vcm1h
bEZsb3dMaXN0KQotICAgICAgICAgICAgICAgIG1fbm9ybWFsRmxvd0xpc3QgPSBuZXcgVmVjdG9y
PFJlbmRlckxheWVyKj47Ci0gICAgICAgICAgICBtX25vcm1hbEZsb3dMaXN0LT5hcHBlbmQoY2hp
bGQpOworICAgICAgICAgICAgaWYgKCFub3JtYWxGbG93TGlzdCkKKyAgICAgICAgICAgICAgICBu
b3JtYWxGbG93TGlzdCA9IG5ldyBWZWN0b3I8UmVuZGVyTGF5ZXIqPjsKKyAgICAgICAgICAgIG5v
cm1hbEZsb3dMaXN0LT5hcHBlbmQoY2hpbGQpOwogICAgICAgICB9CiAgICAgfQotICAgIAotICAg
IG1fbm9ybWFsRmxvd0xpc3REaXJ0eSA9IGZhbHNlOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpj
b2xsZWN0TGF5ZXJzKGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycywgVmVjdG9yPFJlbmRlckxheWVy
Kj4qJiBwb3NCdWZmZXIsIFZlY3RvcjxSZW5kZXJMYXllcio+KiYgbmVnQnVmZmVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA4ZTAyNjgzM2QwZjNkMGEzNmQ4MjUx
NGVmM2JkZDcxODUzZTIxMzE2Li4wOWU4MzM5ZmNmMTRlMWMxZjdmNTU5YzIzYTY2MTAwMGZmMDVi
MTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNjgzLDkgKzY4
MywxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlWk9yZGVyTGlzdHMoKTsK
ICAgICB2b2lkIHJlYnVpbGRaT3JkZXJMaXN0cygpOworICAgIHZvaWQgcmVidWlsZFpPcmRlckxp
c3RzKFZlY3RvcjxSZW5kZXJMYXllcio+KiYgcG9zWk9yZGVyTGlzdCwgVmVjdG9yPFJlbmRlckxh
eWVyKj4qJiBuZWdaT3JkZXJMaXN0KSBjb25zdDsKICAgICB2b2lkIGNsZWFyWk9yZGVyTGlzdHMo
KTsKIAogICAgIHZvaWQgdXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKKyAgICB2b2lkIHJlYnVpbGRO
b3JtYWxGbG93TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5vcm1hbEZsb3dMaXN0KSBjb25z
dDsKIAogICAgIGJvb2wgaXNTdGFja2luZ0NvbnRleHQoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxl
KSBjb25zdCB7IHJldHVybiAhc3R5bGUtPmhhc0F1dG9aSW5kZXgoKSB8fCBpc1Jvb3RMYXllcigp
OyB9CiAgICAgYm9vbCBpc0RpcnR5U3RhY2tpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV96
T3JkZXJMaXN0c0RpcnR5ICYmIGlzU3RhY2tpbmdDb250ZXh0KCk7IH0KQEAgLTg3OCw2ICs4ODAs
MTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oSW5k
aXJlY3RDb21wb3NpdGluZ1JlYXNvbiByZWFzb24pIHsgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVh
c29uID0gcmVhc29uOyB9CiAgICAgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBpbmRpcmVjdENv
bXBvc2l0aW5nUmVhc29uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbj4obV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKTsgfQogICAgIGJvb2wg
bXVzdENvbXBvc2l0ZUZvckluZGlyZWN0UmVhc29ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbjsgfQorCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHogb3JkZXJp
bmcgd291bGQgbm90IGNoYW5nZSBpZiB0aGlzIGxheWVyIHdlcmUgdG8gZXN0YWJsaXNoIGEgc3Rh
Y2tpbmcgY29udGV4dC4KKyAgICBib29sIGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRl
eHQoKSBjb25zdDsKKworICAgIC8vIFRoZXNlIHR3byBtZXRob2RzIGFyZSB1c2VkIGJ5IGNhblNh
ZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQuCisgICAgc3RhdGljIHZvaWQgY291bnREZXNj
ZW5kYW50Tm9uRGVzY2FuZGFudEJvdW5kYXJpZXNJblpPcmRlclRyZWUoY29uc3QgUmVuZGVyTGF5
ZXIqIGN1cnJlbnRMYXllciwgY29uc3QgUmVuZGVyTGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50JiBu
dW1Cb3VuZGFyaWVzLCBib29sJiBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgIHN0YXRp
YyB2b2lkIGNvdW50RGVzY2VuZGFudE5vbkRlc2NhbmRhbnRCb3VuZGFyaWVzRm9yTGlzdChWZWN0
b3I8UmVuZGVyTGF5ZXIqPiogbGF5ZXJMaXN0LCBjb25zdCBSZW5kZXJMYXllciogdG9CZVByb21v
dGVkLCBpbnQmIG51bUJvdW5kYXJpZXMsIGJvb2wmIGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCk7
CiAjZW5kaWYKIAogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJMYXllckJhY2tpbmc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA2NGJhMmVhMDRjYTIw
OGQwN2IyOGVkMDQyODRlY2I5MGE1NDFiOGY4Li5hNzA5YzQ3ZGRlMTNiOTRjNGMyM2Q5YmExNWU2
ZDE3ZDU3MDVmODk3IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAKQEAgLTIyOSw2ICsyMjksMTIgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFi
bGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGMKICAgICBz
ZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0Vu
YWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAgc2V0dGlu
Z3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZChl
bmFibGVkKTsKK30KKwogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZERyYXdp
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJu
YWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmgKaW5kZXggYzg3MjJhNDFhNzNlMDMzM2M1ZDI2YWRkODI1YTEzMmM2NGU3
ZWNiNC4uMGZhMWMxMzY4MTAyZDg1MjhiOGViZGYwNmJlYmZiODdhMzUzMmFlMSAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTk5LDYgKzk5LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRp
b24oYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21w
b3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7
CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5h
YmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJh
dGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCBjNzQ1
NWZlMTY0MTQwZTQ4NDY0NzE2OGNkMGE0N2I4ODAxYmIzZWFhLi5kMTZmMDY2MTkwMDY1MzI4ZGIy
NTEyZDkxZGMxNWU2NTc2ZWNkZDc4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwKQEAgLTMxLDYgKzMxLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAg
IHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVk
UG9zaXRpb24oaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoaW4gYm9vbGVh
biBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRFbmFibGVD
b21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChp
biBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNl
dEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9v
bGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCAzYWZiMzM0N2FlZDFiNTU0NmJhMWUwNGVkYmMyMWFjNWUyNDFhMDRl
Li45Nzc5ZTVmZTEyYzMwMDgxNjA4NGQyZDFiOWJkZDQ5ZjEyNDViNDQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMDEsNiArMTAxLDEwIEBACiAjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXJCYWNraW5nLmgiCiAjZW5kaWYKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTEwOTYsNiArMTEwMCwzNyBA
QCBib29sIEludGVybmFsczo6aXNQYWdlQm94VmlzaWJsZShEb2N1bWVudCogZG9jdW1lbnQsIGlu
dCBwYWdlTnVtYmVyLCBFeGNlcHRpb25DbwogICAgIHJldHVybiBkb2N1bWVudC0+aXNQYWdlQm94
VmlzaWJsZShwYWdlTnVtYmVyKTsKIH0KIAorYm9vbCBJbnRlcm5hbHM6OnVzZXNDb21wb3NpdGVk
U2Nyb2xsaW5nKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWMgPSBJTlZB
TElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBSZW5k
ZXJPYmplY3QqIHJlbmRlck9iamVjdCA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5k
ZXJPYmplY3QpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX05PREVfVFlQRV9FUlI7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIXJlbmRlck9iamVjdC0+aGFzTGF5ZXIo
KSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgUmVuZGVyTGF5ZXIqIHJlbmRlckxheWVyID0gcmVuZGVyT2JqZWN0
LT5lbmNsb3NpbmdMYXllcigpOworICAgIGlmICghcmVuZGVyTGF5ZXIpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IHJldHVybiByZW5kZXJMYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyNlbHNlCisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIHZvaWQgSW50ZXJuYWxzOjpzdXNwZW5kQW5p
bWF0aW9ucyhEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewog
ICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAppbmRleCBkMmQ0NTJlYTk1YTBlZTdkNjM5ODk1MDAyZjc2YzQwMDAwMzE0
ODI5Li4xYjEwZjUwNGE5MDg1NWI4MDAyNTgxMzc5MjQyN2Q3Y2Y1NjM3MTE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE3Myw2ICsxNzMsOCBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGlzUGFnZUJveFZpc2libGUoRG9jdW1lbnQqLCBpbnQgcGFnZU51bWJlciwgRXhjZXB0aW9u
Q29kZSYpOwogCisgICAgYm9vbCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyhOb2RlKiwgRXhjZXB0
aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwogCiAgICAg
SW50ZXJuYWxTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAppbmRleCAzYmQ5MTI5OWYwYTU1NzQ2NjI1Y2ZjOTFkNTI5YTFmOGZhM2IxZWNi
Li41YTk1MWE2YTg1MTY5NjA0Zjk3YTY3M2VhNTM1NGQ5MzhhYWQyNGUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xNTEsNiArMTUxLDggQEAgbW9kdWxlIHdpbmRvdyB7
CiAKICAgICAgICAgYm9vbGVhbiBpc1BhZ2VCb3hWaXNpYmxlKGluIERvY3VtZW50IGRvY3VtZW50
LCBpbiBsb25nIHBhZ2VOdW1iZXIpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAorICAgICAgICBi
b29sZWFuIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01F
eGNlcHRpb24pOworCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJbnRlcm5hbFNldHRpbmdz
IHNldHRpbmdzOwogCiAgICAgICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoaW4gRG9jdW1lbnQg
ZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRl
eCBmYmZiOWQ1NDVkNWJlYTNjOWJkMjYyMGY0NjNjNjlkZWU5MmYzYTA3Li43Mjc3ODVkNWI5MGQ0
NDI2MDlhNjYxNDBiMDYwYjE5NzQ3ZDE2OTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0x
NTYsNiArMTU2LDcgQEAgRVhQT1JUUwogICAgICAgICA/PzBTdHJpbmdAV1RGQEBRQUVAUEJfV0Ba
CiAgICAgICAgID9hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEBSZW5kZXJPYmplY3RAV2ViQ29yZUBA
UUJFP0FWSW50UmVjdEAyQF9OQFoKICAgICAgICAgP2Fic29sdXRlQm91bmRpbmdCb3hSZWN0SWdu
b3JpbmdUcmFuc2Zvcm1zQFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkU/QVZJbnRSZWN0QDJAWFoK
KyAgICAgICAgP2VuY2xvc2luZ0xheWVyQFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkVQQVZSZW5k
ZXJMYXllckAyQFhaCiAJP2Rlc2NyaXB0aW9uQERvY3VtZW50TWFya2VyQFdlYkNvcmVAQFFCRUFC
VlN0cmluZ0BXVEZAQFhaCiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBh
c3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQkRAWgogICAgICAgICA/YWRkQEF0b21pY1N0
cmluZ0BXVEZAQENBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDJAUEJFQFoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCBlMzBiZDNjNWZmNWVlMjE2YTljZTE5
NzBlZGJlNmI1ZWY2MzdhOGY3Li44N2JmMGNiODIzNTQ1MzQwZWZiZjk0N2ZlMzQ0YmJlNWQ4NjIx
ZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysr
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNDksNiArMTQ5LDcg
QEAgRVhQT1JUUwogICAgICAgICA/PzBTdHJpbmdAV1RGQEBRQUVAUEJfV0BaCiAgICAgICAgID9h
YnNvbHV0ZUJvdW5kaW5nQm94UmVjdEBSZW5kZXJPYmplY3RAV2ViQ29yZUBAUUJFP0FWSW50UmVj
dEAyQF9OQFoKICAgICAgICAgP2Fic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zv
cm1zQFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkU/QVZJbnRSZWN0QDJAWFoKKyAgICAgICAgP2Vu
Y2xvc2luZ0xheWVyQFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkVQQVZSZW5kZXJMYXllckAyQFha
CiAJP2Rlc2NyaXB0aW9uQERvY3VtZW50TWFya2VyQFdlYkNvcmVAQFFCRUFCVlN0cmluZ0BXVEZA
QFhaCiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0
cmluZ0ltcGxAV1RGQEBAMkBQQkRAWgogICAgICAgICA/YWRkQEF0b21pY1N0cmluZ0BXVEZAQENB
P0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDJAUEJFQFoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyCmluZGV4IDJhZjdlNzYwN2ZkZjQ4MGIzNzMxM2MzZTJlNDhkMTNlZTUzYTE1ZDIuLmZi
MDU2ZWIxNGFjNDM4N2FiNzJhZjRhMzhkYzJkNjIyZjJlYjc0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlcgpAQCAtMTE2LDYgKzExNiw3IEBAIF9aTks3V2ViQ29yZTROb2RlMzFudW1iZXJPZlNj
b3BlZEhUTUxTdHlsZUNoaWxkcmVuRXY7CiBfWk5LN1dlYkNvcmU0Tm9kZTl0cmVlU2NvcGVFdjsK
IF9aTks3V2ViQ29yZTRQYWdlMTd2aWV3cG9ydEFyZ3VtZW50c0V2OwogX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWI7CitfWk5LN1dlYkNvcmUxMlJl
bmRlck9iamVjdDE0ZW5jbG9zaW5nTGF5ZXJFdjsKIF9aTks3V2ViQ29yZTE2SFRNTElucHV0RWxl
bWVudDE0c3VnZ2VzdGVkVmFsdWVFdjsKIF9aTks3V2ViQ29yZTE3SlNET01HbG9iYWxPYmplY3Qy
MnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRFdjsKIF9aTks3V2ViQ29yZTIwQ2FjaGVkUmVzb3VyY2VM
b2FkZXIxMWlzUHJlbG9hZGVkRVJLTjNXVEY2U3RyaW5nRTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YzAzZmYyZmFmMzc2
NGM1MDM3ZjM5YTc4ODBhZTkxNmExM2NlMjM0Li41MTJhMTFmZmRhNjcwYzYzOGMxMTExOWE1YTY2
OWFmMTJhM2YwOGI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMTcgIElhbiBWb2xs
aWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQXV0b21hdGljYWxseSB1c2Ug
Y29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHMgdmFyaW91cyBjb25maWd1cmF0aW9ucyBvZiBlbGVtZW50cyB0byBl
bnN1cmUgdGhhdCB3ZSBvbmx5IGF1dG9tYXRpY2FsbHkgb3B0IGludG8KKyAgICAgICAgY29tcG9z
aXRlZCBzY3JvbGxpbmcgd2hlbiBpdCBpcyBzYWZlIHRvIGRvIHNvLgorCisgICAgICAgICogY29t
cG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9s
bGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93
L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbDogQWRkZWQu
CisKIDIwMTItMDktMTcgIErDoW5vcyBCYWRpY3MgIDxqYmFkaWNzQGluZi51LXN6ZWdlZC5odT4K
IAogICAgICAgICBbUXRdUkVHUkVTU0lPTihyMTI4Njk5KTogSXQgbWFkZSAyIGZhc3QvanMvZGZn
IHRlc3RzIGFzc2VydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZs
b3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1p
bnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODkxMWEx
NDJhZTk5MzQ1ZmJjOGZkYmRjNDlhNDIyNDg3NDJhNzJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21w
b3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorMCB1c2VzIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzCisxIHVzZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmc6IHRydWUsIFBhc3MKKzIgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1
ZSwgUGFzcworMyB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzCis0IHVz
ZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzCis1IHVzZXMgYWNjZWxlcmF0
ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MKKzYgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGlu
ZzogZmFsc2UsIFBhc3MKKzcgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBh
c3MKKzggdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MKKzkgdXNlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MKKzEwIHVzZXMgYWNjZWxlcmF0ZWQg
Y29tcG9zaXRpbmc6IHRydWUsIFBhc3MKKzExIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6
IHRydWUsIFBhc3MKKzEyIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MK
KzEzIHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MKKzE0IHVzZXMgYWNj
ZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUsIFBhc3MKKzE1IHVzZXMgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmc6IHRydWUsIFBhc3MKKzE2IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRy
dWUsIFBhc3MKKzE3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzCisx
OCB1c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiB0cnVlLCBQYXNzCisxOSB1c2VzIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcworMjAgdXNlcyBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZzogdHJ1ZSwgUGFzcworMjEgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1
ZSwgUGFzcworMjIgdXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcworMjMg
dXNlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZzogdHJ1ZSwgUGFzcworMjQgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MKKzI1IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmc6IHRydWUsIFBhc3MKKzI2IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IHRydWUs
IFBhc3MKKzI3IHVzZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmc6IGZhbHNlLCBQYXNzCisyOCB1
c2VzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOiBmYWxzZSwgUGFzcworMjkgdXNlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZzogZmFsc2UsIFBhc3MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNj
cm9sbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGlj
YWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ODBh
NzYyMzI5YTFhZTA5NjdkZDU2ZDFmZDI0ZDM5Y2FlMWI0Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNv
bXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKQEAgLTAsMCArMSwxNDMgQEAKKzwhRE9DVFlQRSBodG1s
IFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0
cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgIDx0aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVkIHNj
cm9sbGluZzwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+
CisgICAgLmNvbnRhaW5lciB7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIw
MHB4OworICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKworICAgIC5zY3JvbGxlZCB7CisgICAg
ICB3aWR0aDogMTgwcHg7CisgICAgICBoZWlnaHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEwcHg7
CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICAgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgIH0KKworICAgIC5wb3NpdGlvbmVkIHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAgICAg
IGhlaWdodDogMjQwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB9CisKKyAgICAjcHJlZGVjZXNzb3IgeworICAgICAgbGVm
dDogMjBweDsKKyAgICAgIHRvcDogMjBweDsKKyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsKKyAg
ICAgIGxlZnQ6IDE2MHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0KKyAgPC9zdHlsZT4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKHRydWUpOworCisgICAgZnVuY3Rp
b24gd3JpdGUoc3RyKQorICAgIHsKKyAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpOworICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShzdHIgKyAnXG4nKTsKKyAgICAgIHByZS5hcHBlbmRDaGlsZCh0ZXh0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwcmVkZWNlc3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWlu
ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmly
c3RDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2
YXIgc2Vjb25kQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsK
KyAgICAgIHZhciBkdW1teSA9IDA7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICB2YXIg
ZXhwZWN0ZWRfcmVzdWx0cyA9IFsKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFs
c2UsCisgICAgICAgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgICAgICB0
cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLAorICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwg
dHJ1ZSwgZmFsc2UsCisgICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLAorICAg
ICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICBdOworCisgICAgICBm
b3IgKGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCA1OyArK2op
IHsKKyAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgMjsgKytrKSB7CisgICAgICAgICAgICB2YXIg
bWluWkluZGV4ID0gMDsKKyAgICAgICAgICAgIHZhciBtYXhaSW5kZXggPSAwOworICAgICAgICAg
ICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9
ICcxJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAg
ICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09IDEp
IHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAgICAg
ICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnLTMnOworICAgICAgICAgICAgICBt
aW5aSW5kZXggPSAtMzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGZpcnN0
Q2hpbGQuc3R5bGUuekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5
bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsKKyAgICAgICAg
ICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHNp
YmxpbmcgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgIHZhciB0b0hpZGUgPSBzdWNjZXNzb3I7
CisgICAgICAgICAgICBpZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcgPSBzdWNj
ZXNzb3I7CisgICAgICAgICAgICAgIHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICB0b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAg
ICAgIHNpYmxpbmcuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICAgICAgaWYgKGogPT0gMCkg
eworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAxKS50
b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAgICAgICAgICAg
ICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsKKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAyKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5
bGUuekluZGV4ID0gbWF4WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYg
KGogPT0gMykgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJbmRl
eC50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgc2libGlu
Zy5zdHlsZS56SW5kZXggPSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmluZygp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYy4K
KyAgICAgICAgICAgIGR1bW15ID0gY29udGFpbmVyLm9mZnNldFRvcDsKKworICAgICAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgdmFyIGlzQWNjZWxlcmF0ZWQg
PSB3aW5kb3cuaW50ZXJuYWxzLnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKGNvbnRhaW5lcik7Cisg
ICAgICAgICAgICAgIHdyaXRlKGNvdW50LnRvU3RyaW5nKCkgKyAnIHVzZXMgYWNjZWxlcmF0ZWQg
Y29tcG9zaXRpbmc6ICcgKyBpc0FjY2VsZXJhdGVkICsgJywgJyArIChleHBlY3RlZF9yZXN1bHRz
W2NvdW50XSA9PSBpc0FjY2VsZXJhdGVkID8gJ1Bhc3MnIDogJ0ZBSUwnKSk7CisgICAgICAgICAg
ICAgIGNvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICB9CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3Qs
IGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorICA8ZGl2IGNsYXNzPSJw
b3NpdGlvbmVkIiBpZD0icHJlZGVjZXNzb3IiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiIGlkPSJjb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0iZmlyc3RD
aGlsZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQiIGlkPSJzZWNvbmRDaGlsZCI+
PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0ic3VjY2Vzc29y
Ij48L2Rpdj4KKyAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CisK
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0Mjc5OTY3MjNlMTY2ZmQz
N2ZkYTI4ZTk2MTQzNmFmMDBlNTAwMzVmLi5iNjRlZmYxYmI5MmZjMjgyNWQ0OWMzMTkyODNhMTNh
OTBlZDJkMDg5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDktMTcgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgQXV0b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEgZmlsdGVy
IGZvciBXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmVuY2xvc2luZ0xheWVyCisKKyAgICAgICAgKiBT
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTA5LTE3ICBUb3IgQXJuZSBW
ZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEF1dG8t
Z2VuZXJhdGUgdGhlIG1vZHVsZSBwcmkgZmlsZSBmb3IgUXRXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175811</attachid>
            <date>2012-11-23 08:37:39 -0800</date>
            <delta_ts>2012-11-26 13:25:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121123113522.patch</filename>
            <type>text/plain</type>
            <size>53787</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBjN2I2MmI5MDE4YTNh
ZTNkMjEzYjJkNDZlMWZjNTM3Mjc5MTg0MS4uOGFkOTVjZmU5YjY4ZGMwZjQ0NDc0ZGVjMThiNDY2
MTc1YmQxZWRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEyLTExLTIzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRvIGNoZWNr
IHRoaXMsIEkgZW5zdXJlIHRoYXQgdGhlIGNhbmRpZGF0ZSBlbGVtZW50CisgICAgICAgIGFuZCBh
bGwgaXRzIGRlc2NlbmRhbnRzIGFwcGVhciBhcyBhIGNvbnRpbnVvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIG90aGVy
IGVsZW1lbnRzIGFyZSAnYmV0d2VlbicgYW55IG9mCisgICAgICAgIHRoZSBjYW5kaWRhdGVzIGRl
c2NlbmRhbnRzIHdoZW4gd2Ugc29ydCBpbiBwYWludCBvcmRlciwgdGhlbiB3ZSdyZSBzYWZlLgor
ICAgICAgICBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRpdmUsIGhvd2V2ZXIuIFdlIGNvdWxkLCBp
biBmdXR1cmUsIG9ubHkgY29uc2lkZXIKKyAgICAgICAgc3RhY2tpbmcgcHJvYmxlbXMgYmV0d2Vl
biBlbGVtZW50cyB0aGF0IGFjdHVhbGx5IG92ZXJsYXAuCisKKyAgICAgICAgVGVzdDogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGluZy1zY3JvbGxp
bmcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eURlc2NlbmRhbnRzQ2FuU2FmZWx5
RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0KToKKyAgICAgICAgICBXYWxrcyB0aGUgbGF5ZXIgdHJl
ZSAoc3RvcHBpbmcgYXQgbGVhdmVzIGFuZCBzdGFja2luZyBjb250ZXh0cykKKyAgICAgICAgICBt
YXJraW5nIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dERpcnR5ID0gdHJ1ZS4K
KyAgICAgICAgKFdlYkNvcmU6OmlzRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6Y291bnREZXNjZW5kYW50Tm9uRGVzY2VuZGFudEJvdW5kYXJpZXNGb3JMaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjb3VudERlc2NlbmRhbnROb25EZXNjZW5k
YW50Qm91bmRhcmllc0luWk9yZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCk6CisgICAgICAgICAgUmV0dXJu
cyB0cnVlIGlmIHRoZSBSZW5kZXJMYXllciBjb3VsZCBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0
IHdpdGhvdXQKKyAgICAgICAgICBhZmZlY3RpbmcgdGhlIHN0YWNraW5nIG9yZGVyLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAg
ICAgICBIYXMgYmVlbiB1cGRhdGVkIHRvIHJldHVybiB0cnVlIGlmIGl0IGNhbiBzYWZlbHkgZXN0
YWJsaXNoIGEgc3RhY2tpbmcKKyAgICAgICAgICBjb250ZXh0LCBhbmQgdGhlIHNldHRpbmcgaXMg
dHVybmVkIG9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKToKKyAgICAgICAg
ICBXZSBub3cgZGlydHkgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0RGlydHkg
Zm9yIG91cgorICAgICAgICAgIGRlc2NlbmRhbnRzIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxs
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlOb3JtYWxGbG93TGlzdCk6
CisgICAgICAgICAgV2Ugbm93IGRpcnR5IG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29u
dGV4dERpcnR5IGZvciBvdXIKKyAgICAgICAgICBkZXNjZW5kYW50cyB3aGVuIHRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3Jk
ZXJMaXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTm9ybWFsRmxv
d0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlYnVpbGROb3JtYWxGbG93
TGlzdCk6CisgICAgICAgICAgVGhlc2UgZnVuY3Rpb25zIGhhdmUgYmVlbiByZWZhY3RvcmVkIHRv
IGFsbG93IGNhblNhZmVseUVzdGFibGlzaC4uCisgICAgICAgICAgdG8gYnVpbGQgZnJlc2ggei1v
cmRlciBhbmQgbm9ybWFsIGZsb3cgbGlzdHMgd2l0aG91dCBtdXRhdGluZyB0aGUKKyAgICAgICAg
ICBjbGFzcy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFJl
bmRlckxheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXll
ckdlb21ldHJ5KToKKyAgICAgICAgICBNaW5vciBjaGFuZ2UgdG8gdGhlIGNsaXBwaW5nIGJvdW5k
cyBvZiB0aGUgc2Nyb2xsaW5nIGxheWVyLiBJZiB3ZSdyZQorICAgICAgICAgIG5vdCB1c2luZyBv
dmVybGF5IHNjcm9sbGJhcnMsIHdlIGRvbid0IHdhbnQgdGhlIGNsaXAgdG8gaW5jbHVkZSB0aGVt
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWVzdFJlZXZhbHVhdGVDb21wb3Np
dGluZ0FmdGVyTGF5b3V0KToKKyAgICAgICAgICBUaGlzIGFsbG93cyByZW5kZXIgbGF5ZXJzIHRv
IHJlcXVlc3QgdGhhdCBjb21wb3NpdGluZyBiZSByZWV2YWx1YXRlZAorICAgICAgICAgIGFmdGVy
IGxheW91dCBpZiB0aGUgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCBzZXR0aW5n
IGhhcworICAgICAgICAgIGJlZW4gYWZmZWN0ZWQuCisgICAgICAgIChSZW5kZXJMYXllckNvbXBv
c2l0b3IpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJm
bG93U2Nyb2xsKToKKyAgICAgICAgICBBbGxvd3MgZW5hYmxpbmcgdGhlIHNldHRpbmcgaW4gbGF5
b3V0IHRlc3RzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTExLTIwICBKYW1lcyBTaW1vbnNlbiAg
PHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbUmVzb3VyY2UgVGltaW5nXSBQb3B1
bGF0ZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIHN0cnVjdHMgd2l0aCB0aW1pbmcgZGF0YQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNGU2N2NkNTcxM2Q2
NGI4Mjc2MzJkNzBhOGU4MGIxNDQ5MDBlYjc1ZC4uOWRlMDZhZGQ3ZjljMTdlMmQ4ZWQ0ZmIxYTc0
OGMwMTQ1YjU3MTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CkBAIC0xMjMsNiArMTIzLDEwIEBACiAjZGVmaW5lIERJU0FCTEVfUk9VTkRFRF9DT1JORVJfQ0xJ
UFBJTkcKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaW5jbHVkZSAiVHJhY2VF
dmVudC5oIgorI2VuZGlmCisKICNkZWZpbmUgTUlOX0lOVEVSU0VDVF9GT1JfUkVWRUFMIDMyCiAK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC0xNDUsNiArMTQ5LDEwIEBAIFJlbmRlckxheWVyOjpS
ZW5kZXJMYXllcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZW5kZXJlcikKICAgICAsIG1fbm9y
bWFsRmxvd0xpc3REaXJ0eSh0cnVlKQogICAgICwgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2Nl
bmRhbnQoZmFsc2UpCiAgICAgLCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5
KGZhbHNlKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAsIG1fY2FuU2Fm
ZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dChmYWxzZSkKKyAgICAsIG1fY2FuU2FmZWx5RXN0
YWJsaXNoQVN0YWNraW5nQ29udGV4dERpcnR5KHRydWUpCisjZW5kaWYKICAgICAsIG1faXNSb290
TGF5ZXIocmVuZGVyZXItPmlzUmVuZGVyVmlldygpKQogICAgICwgbV91c2VkVHJhbnNwYXJlbmN5
KGZhbHNlKQogICAgICwgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24oZmFsc2UpCkBAIC00NzQs
NiArNDgyLDE5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5QW5jZXN0b3JDaGFpbkhhc1NlbGZQ
YWludGluZ0xheWVyRGVzY2VuZGFudFN0YXR1cygpCiAgICAgfQogfQogCisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQordm9pZCBSZW5kZXJMYXllcjo6ZGlydHlEZXNjZW5kYW50c0Nh
blNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dChSZW5kZXJMYXllciogbGF5ZXIpCit7Cisg
ICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpIHx8ICFyZW5kZXJlcigpLT5mcmFtZSgp
LT5wYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbGF5ZXItPm1fY2FuU2FmZWx5
RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dERpcnR5ID0gdHJ1ZTsKKyAgICBsYXllci0+Y29tcG9z
aXRvcigpLT5yZXF1ZXN0UmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKTsKKyAgICBm
b3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGxheWVyLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICBkaXJ0eURlc2NlbmRhbnRzQ2FuU2Fm
ZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0KGNoaWxkKTsKK30KKyNlbmRpZgorCiB2b2lkIFJl
bmRlckxheWVyOjpjb21wdXRlUmVwYWludFJlY3RzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1h
cCkKIHsKICAgICBBU1NFUlQoIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSk7CkBAIC02OTIs
NiArNzEzLDEwMyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkKICAgICB9
CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitzdGF0aWMgYm9vbCBpc0Rl
c2NlbmRhbnQoY29uc3QgUmVuZGVyTGF5ZXIqIHBhcmVudCwgY29uc3QgUmVuZGVyTGF5ZXIqIGNo
aWxkKQoreworICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnQgPSBjaGlsZDsgY3Vy
cmVudDsgY3VycmVudCA9IGN1cnJlbnQtPnBhcmVudCgpKQorICAgICAgICBpZiAoY3VycmVudCA9
PSBwYXJlbnQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFudE5vbkRlc2NlbmRhbnRCb3VuZGFy
aWVzRm9yTGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbGF5ZXJMaXN0LCBjb25zdCBSZW5kZXJM
YXllciogdG9CZVByb21vdGVkLCBpbnQmIG51bUJvdW5kYXJpZXMsIGJvb2wmIGxhc3RFbGVtZW50
V2FzRGVzY2VuZGFudCkKK3sKKyAgICBpZiAoIWxheWVyTGlzdCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllckxpc3QtPnNpemUoKTsgKytpKSB7Cisg
ICAgICAgIFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIgPSBsYXllckxpc3QtPmF0KGkpOworICAg
ICAgICBjb3VudERlc2NlbmRhbnROb25EZXNjZW5kYW50Qm91bmRhcmllc0luWk9yZGVyVHJlZShj
dXJyZW50TGF5ZXIsIHRvQmVQcm9tb3RlZCwgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNE
ZXNjZW5kYW50KTsKKyAgICB9Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvdW50RGVzY2VuZGFu
dE5vbkRlc2NlbmRhbnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0IFJlbmRlckxheWVyKiBj
dXJyZW50TGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQsIGludCYgbnVtQm91
bmRhcmllcywgYm9vbCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KQoreworICAgIC8vIFdlIGNh
biBiYWlsIGVhcmx5IGlmIHdlJ3ZlIGZvdW5kIG1vcmUgdGhhbiAyIGJvdW5kYXJpZXMgc2luY2Ug
d2Uga25vdworICAgIC8vIGZvciBjZXJ0YWluIHRoYXQgaXQgaXMgdW5zYWZlIHRvIGJlY29tZSBh
IHN0YWNraW5nIGNvbnRleHQuCisgICAgaWYgKG51bUJvdW5kYXJpZXMgPiAyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoKGN1cnJlbnRMYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSAmJiBj
dXJyZW50TGF5ZXIgIT0gdG9CZVByb21vdGVkLT5zdGFja2luZ0NvbnRleHQoKSkgfHwgY3VycmVu
dExheWVyID09IHRvQmVQcm9tb3RlZCkgeworICAgICAgICBpZiAoaXNEZXNjZW5kYW50KHRvQmVQ
cm9tb3RlZCwgY3VycmVudExheWVyKSkgeworICAgICAgICAgICAgaWYgKCFsYXN0RWxlbWVudFdh
c0Rlc2NlbmRhbnQpCisgICAgICAgICAgICAgICAgbnVtQm91bmRhcmllcysrOworICAgICAgICAg
ICAgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50ID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGlmIChsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpCisgICAgICAgICAgICAgICAg
bnVtQm91bmRhcmllcysrOworICAgICAgICAgICAgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50ID0g
ZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBWZWN0b3I8UmVuZGVyTGF5
ZXIqPiogbmVnWk9yZGVyTGlzdCA9IDA7CisgICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBw
b3NaT3JkZXJMaXN0ID0gMDsKKyAgICAgICAgaWYgKGN1cnJlbnRMYXllci0+bV96T3JkZXJMaXN0
c0RpcnR5KQorICAgICAgICAgICAgY3VycmVudExheWVyLT5yZWJ1aWxkWk9yZGVyTGlzdHMocG9z
Wk9yZGVyTGlzdCwgbmVnWk9yZGVyTGlzdCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
bmVnWk9yZGVyTGlzdCA9IGN1cnJlbnRMYXllci0+bmVnWk9yZGVyTGlzdCgpOworICAgICAgICAg
ICAgcG9zWk9yZGVyTGlzdCA9IGN1cnJlbnRMYXllci0+cG9zWk9yZGVyTGlzdCgpOworICAgICAg
ICB9CisKKyAgICAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIG5vcm1hbEZsb3dMaXN0ID0gMDsK
KyAgICAgICAgaWYgKGN1cnJlbnRMYXllci0+bV9ub3JtYWxGbG93TGlzdERpcnR5KQorICAgICAg
ICAgICAgY3VycmVudExheWVyLT5yZWJ1aWxkTm9ybWFsRmxvd0xpc3Qobm9ybWFsRmxvd0xpc3Qp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBub3JtYWxGbG93TGlzdCA9IGN1cnJlbnRMYXll
ci0+bm9ybWFsRmxvd0xpc3QoKTsKKworICAgICAgICBjb3VudERlc2NlbmRhbnROb25EZXNjZW5k
YW50Qm91bmRhcmllc0Zvckxpc3QobmVnWk9yZGVyTGlzdCwgdG9CZVByb21vdGVkLCBudW1Cb3Vu
ZGFyaWVzLCBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOworICAgICAgICBjb3VudERlc2NlbmRh
bnROb25EZXNjZW5kYW50Qm91bmRhcmllc0Zvckxpc3Qobm9ybWFsRmxvd0xpc3QsIHRvQmVQcm9t
b3RlZCwgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKyAgICAgICAg
Y291bnREZXNjZW5kYW50Tm9uRGVzY2VuZGFudEJvdW5kYXJpZXNGb3JMaXN0KHBvc1pPcmRlckxp
c3QsIHRvQmVQcm9tb3RlZCwgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50
KTsKKyAgICB9Cit9CisKK2Jvb2wgUmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFj
a2luZ0NvbnRleHQoKSBjb25zdAoreworICAgIGlmIChpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFz
dGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIW1fY2Fu
U2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dERpcnR5KSAKKyAgICAgICAgcmV0dXJuIG1f
Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dDsKKworI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQorICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIlJlbmRlckxheWVyOjpjYW5TYWZlbHlF
c3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0Iik7CisjZW5kaWYKKworICAgIC8vIElmIG91ciBwcm9t
b3Rpb24gdG8gYSBzdGFja2luZyBjb250ZXh0IHdvdWxkIG5vdCBhZmZlY3Qgc3RhY2tpbmcgb3Jk
ZXIsCisgICAgLy8gdGhlbiB0aGlzIGxheWVyIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRlbnRzIHNo
b3VsZCBhcHBlYXIgYXMgYSBjb250aW51b3VzCisgICAgLy8gYmxvY2sgaWYgd2UgYXJlIHRvIHRy
YXZlcnNlIHRoZSBlbGVtZW50cyBpbiB0aGUgc3RhY2tpbmcgY29udGV4dCBpbgorICAgIC8vIHBh
aW50IG9yZGVyLiBUaGF0IGlzLCB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgYmV0d2VlbiBkZXNj
ZW5kYW50cywgYW5kCisgICAgLy8gbm9uIGRlc2NlbmRhbnRzIHNob3VsZCBiZSBleGFjdGx5IHR3
byAoaWYgd2UgYXNzdW1lIHRoYXQgaWYgdGhlIGZpcnN0IG9yCisgICAgLy8gbGFzdCBlbGVtZW50
IGluIHRoZSBsaXN0IGlzIGEgZGVzY2VuZGFudCwgdGhhdCB0aGlzIGlzIGFsc28gYSBib3VuZGFy
eSkuCisKKyAgICAvLyBCeSBpbml0aWFsaXppbmcgdG8gZmFsc2UsIGlmIHRoZSBmaXJzdCBlbGVt
ZW50IHdlIHNlZSBpcyBhIGRlc2NlbmRhbnQsCisgICAgLy8gdGhlbiB3ZSBjb3JyZWN0bHkgbWFy
ayBpdCBhcyBhIGJvdW5kYXJ5LgorICAgIGJvb2wgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50ID0g
ZmFsc2U7CisKKyAgICBpbnQgbnVtQm91bmRhcmllcyA9IDA7CisKKyAgICBjb3VudERlc2NlbmRh
bnROb25EZXNjZW5kYW50Qm91bmRhcmllc0luWk9yZGVyVHJlZShzdGFja2luZ0NvbnRleHQoKSwg
dGhpcywgbnVtQm91bmRhcmllcywgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKworICAgIC8v
IElmIHRoZSBsYXN0IGVsZW1lbnQgd2Ugc2VlIGlzIGEgZGVzY2VuZGFudCwgdGhpcyBpcyBhbHNv
IGEgYm91bmRhcnkuCisgICAgaWYgKGxhc3RFbGVtZW50V2FzRGVzY2VuZGFudCkKKyAgICAgICAg
bnVtQm91bmRhcmllcysrOworCisgICAgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250
ZXh0ID0gbnVtQm91bmRhcmllcyA9PSAyOworICAgIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNr
aW5nQ29udGV4dERpcnR5ID0gZmFsc2U7CisgICAgcmV0dXJuIG1fY2FuU2FmZWx5RXN0YWJsaXNo
QVN0YWNraW5nQ29udGV4dDsKK30KKworI2VuZGlmCisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhh
c1Zpc2libGVDb250ZW50KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQgJiYgIW1f
dmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAtMTYwNiwxMCArMTcyNCwxMyBAQCBib29s
IFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0CiAgICAgaWYgKCFz
Y3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorICAgIGJvb2wgYXV0b21hdGljYWxseU9wdEluID0gcmVuZGVyZXIoKS0+ZnJhbWUo
KS0+cGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkKCkKKyAgICAgICAgJiYgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29u
dGV4dCgpOworCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKLSAg
ICByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygp
OworICAgIHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xs
aW5nKCkgfHwgYXV0b21hdGljYWxseU9wdEluOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIGF1dG9tYXRpY2FsbHlPcHRJbjsKICNlbmRpZgogfQogI2VuZGlmCkBAIC0xNzc0
LDggKzE4OTUsMTUgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oaW50IHgsIGludCB5KQog
ICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50
U29vbkluUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50KTsKICAgICB9CiAKKyAgICBib29s
IHJlcXVpcmVzUmVwYWludCA9IHRydWU7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisgICAgaWYgKGNvbXBvc2l0b3IoKS0+aW5Db21wb3NpdGluZ01vZGUoKSAmJiB1c2VzQ29t
cG9zaXRlZFNjcm9sbGluZygpKQorICAgICAgICByZXF1aXJlc1JlcGFpbnQgPSBmYWxzZTsKKyNl
bmRpZgorCiAgICAgLy8gSnVzdCBzY2hlZHVsZSBhIGZ1bGwgcmVwYWludCBvZiBvdXIgb2JqZWN0
LgotICAgIGlmICh2aWV3ICYmICF1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgIGlmICh2
aWV3ICYmIHJlcXVpcmVzUmVwYWludCkKICAgICAgICAgcmVuZGVyZXIoKS0+cmVwYWludFVzaW5n
Q29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHBpeGVsU25hcHBlZEludFJlY3QobV9yZXBhaW50
UmVjdCkpOwogCiAgICAgLy8gU2NoZWR1bGUgdGhlIHNjcm9sbCBET00gZXZlbnQuCkBAIC00NzU2
LDggKzQ4ODQsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0cygpCiAgICAg
bV96T3JkZXJMaXN0c0RpcnR5ID0gdHJ1ZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSAgICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAg
ICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkgeworICAgICAgICBm
b3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICBkaXJ0eURlc2NlbmRhbnRzQ2FuU2FmZWx5
RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0KGNoaWxkKTsKICAgICAgICAgY29tcG9zaXRvcigpLT5z
ZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAg
LTQ3NzcsOCArNDkwOCwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0
KCkKICAgICBtX25vcm1hbEZsb3dMaXN0RGlydHkgPSB0cnVlOwogCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ry
b3llZCgpKQorICAgIGlmICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7
CisgICAgICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsg
Y2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgICAgIGRpcnR5RGVzY2VuZGFu
dHNDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQoY2hpbGQpOwogICAgICAgICBjb21w
b3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKKyAgICB9CiAjZW5k
aWYKIH0KIApAQCAtNDc4Nyw2ICs0OTIxLDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRa
T3JkZXJMaXN0cygpCiAgICAgQVNTRVJUKG1fbGF5ZXJMaXN0TXV0YXRpb25BbGxvd2VkKTsKICAg
ICBBU1NFUlQoaXNEaXJ0eVN0YWNraW5nQ29udGV4dCgpKTsKIAorICAgIHJlYnVpbGRaT3JkZXJM
aXN0cyhtX3Bvc1pPcmRlckxpc3QsIG1fbmVnWk9yZGVyTGlzdCk7CisKKyAgICBtX3pPcmRlckxp
c3RzRGlydHkgPSBmYWxzZTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6cmVidWlsZFpPcmRlckxp
c3RzKFZlY3RvcjxSZW5kZXJMYXllcio+KiYgcG9zWk9yZGVyTGlzdCwgVmVjdG9yPFJlbmRlckxh
eWVyKj4qJiBuZWdaT3JkZXJMaXN0KSBjb25zdAorewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBib29sIGluY2x1ZGVIaWRkZW5MYXllcnMgPSBjb21wb3NpdG9yKCktPmlu
Q29tcG9zaXRpbmdNb2RlKCk7CiAjZWxzZQpAQCAtNDc5NCwxNCArNDkzNSwxNCBAQCB2b2lkIFJl
bmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMoKQogI2VuZGlmCiAgICAgZm9yIChSZW5kZXJM
YXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2li
bGluZygpKQogICAgICAgICBpZiAoIW1fcmVmbGVjdGlvbiB8fCByZWZsZWN0aW9uTGF5ZXIoKSAh
PSBjaGlsZCkKLSAgICAgICAgICAgIGNoaWxkLT5jb2xsZWN0TGF5ZXJzKGluY2x1ZGVIaWRkZW5M
YXllcnMsIG1fcG9zWk9yZGVyTGlzdCwgbV9uZWdaT3JkZXJMaXN0KTsKKyAgICAgICAgICAgIGNo
aWxkLT5jb2xsZWN0TGF5ZXJzKGluY2x1ZGVIaWRkZW5MYXllcnMsIHBvc1pPcmRlckxpc3QsIG5l
Z1pPcmRlckxpc3QpOwogCiAgICAgLy8gU29ydCB0aGUgdHdvIGxpc3RzLgotICAgIGlmIChtX3Bv
c1pPcmRlckxpc3QpCi0gICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9wb3NaT3JkZXJMaXN0LT5i
ZWdpbigpLCBtX3Bvc1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKKyAgICBpZiAo
cG9zWk9yZGVyTGlzdCkKKyAgICAgICAgc3RkOjpzdGFibGVfc29ydChwb3NaT3JkZXJMaXN0LT5i
ZWdpbigpLCBwb3NaT3JkZXJMaXN0LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7CiAKLSAgICBpZiAo
bV9uZWdaT3JkZXJMaXN0KQotICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KG1fbmVnWk9yZGVyTGlz
dC0+YmVnaW4oKSwgbV9uZWdaT3JkZXJMaXN0LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7CisgICAg
aWYgKG5lZ1pPcmRlckxpc3QpCisgICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQobmVnWk9yZGVyTGlz
dC0+YmVnaW4oKSwgbmVnWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5kZXgpOwogCiAjaWYg
RU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAgIC8vIEFwcGVuZCBsYXllcnMgZm9yIHRvcCBsYXll
ciBlbGVtZW50cyBhZnRlciBub3JtYWwgbGF5ZXIgY29sbGVjdGlvbiwgdG8gZW5zdXJlIHRoZXkg
YXJlIG9uIHRvcCByZWdhcmRsZXNzIG9mIHotaW5kZXhlcy4KQEAgLTQ4MTIsMTMgKzQ5NTMsMTEg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cmVidWlsZFpPcmRlckxpc3RzKCkKICAgICAgICAgICAgIEVs
ZW1lbnQqIGNoaWxkRWxlbWVudCA9IGNoaWxkLT5ub2RlKCktPmlzRWxlbWVudE5vZGUoKSA/IHRv
RWxlbWVudChjaGlsZC0+bm9kZSgpKSA6IDA7CiAgICAgICAgICAgICBpZiAoY2hpbGRFbGVtZW50
ICYmIGNoaWxkRWxlbWVudC0+aXNJblRvcExheWVyKCkpIHsKICAgICAgICAgICAgICAgICBSZW5k
ZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckxheWVyTW9kZWxPYmplY3QoY2hpbGQpLT5sYXllcigp
OwotICAgICAgICAgICAgICAgIG1fcG9zWk9yZGVyTGlzdC0+YXBwZW5kKGxheWVyKTsKKyAgICAg
ICAgICAgICAgICBwb3NaT3JkZXJMaXN0LT5hcHBlbmQobGF5ZXIpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogI2VuZGlmCi0KLSAgICBtX3pPcmRlckxpc3RzRGlydHkgPSBmYWxz
ZTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTm9ybWFsRmxvd0xpc3QoKQpAQCAtNDgy
OCwxNiArNDk2NywyMSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOb3JtYWxGbG93TGlzdCgp
CiAKICAgICBBU1NFUlQobV9sYXllckxpc3RNdXRhdGlvbkFsbG93ZWQpOwogCisgICAgcmVidWls
ZE5vcm1hbEZsb3dMaXN0KG1fbm9ybWFsRmxvd0xpc3QpOworCisgICAgbV9ub3JtYWxGbG93TGlz
dERpcnR5ID0gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGROb3JtYWxGbG93
TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5vcm1hbEZsb3dMaXN0KSBjb25zdAorewogICAg
IGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAvLyBJZ25vcmUgbm9uLW92ZXJmbG93IGxh
eWVycyBhbmQgcmVmbGVjdGlvbnMuCiAgICAgICAgIGlmIChjaGlsZC0+aXNOb3JtYWxGbG93T25s
eSgpICYmICghbV9yZWZsZWN0aW9uIHx8IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxkKSkgewot
ICAgICAgICAgICAgaWYgKCFtX25vcm1hbEZsb3dMaXN0KQotICAgICAgICAgICAgICAgIG1fbm9y
bWFsRmxvd0xpc3QgPSBuZXcgVmVjdG9yPFJlbmRlckxheWVyKj47Ci0gICAgICAgICAgICBtX25v
cm1hbEZsb3dMaXN0LT5hcHBlbmQoY2hpbGQpOworICAgICAgICAgICAgaWYgKCFub3JtYWxGbG93
TGlzdCkKKyAgICAgICAgICAgICAgICBub3JtYWxGbG93TGlzdCA9IG5ldyBWZWN0b3I8UmVuZGVy
TGF5ZXIqPjsKKyAgICAgICAgICAgIG5vcm1hbEZsb3dMaXN0LT5hcHBlbmQoY2hpbGQpOwogICAg
ICAgICB9CiAgICAgfQotICAgIAotICAgIG1fbm9ybWFsRmxvd0xpc3REaXJ0eSA9IGZhbHNlOwog
fQogCiB2b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKGJvb2wgaW5jbHVkZUhpZGRlbkxh
eWVycywgVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3NCdWZmZXIsIFZlY3RvcjxSZW5kZXJMYXll
cio+KiYgbmVnQnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRl
eCAxOWQ1Mjk2OGM4ZmZlMGY1ZGE2NjM0YTMzY2VkNzllZTc3NTM1OWZlLi45Mjg4ZTgwMjk5MjZk
MzU4MTk0OGMxZGE2ZmY0ZDQ0YjlkMTMxZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaApAQCAtNzEwLDkgKzcxMCwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZv
aWQgdXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICB2b2lkIHJlYnVpbGRaT3JkZXJMaXN0cygpOwor
ICAgIHZvaWQgcmVidWlsZFpPcmRlckxpc3RzKFZlY3RvcjxSZW5kZXJMYXllcio+KiYgcG9zWk9y
ZGVyTGlzdCwgVmVjdG9yPFJlbmRlckxheWVyKj4qJiBuZWdaT3JkZXJMaXN0KSBjb25zdDsKICAg
ICB2b2lkIGNsZWFyWk9yZGVyTGlzdHMoKTsKIAogICAgIHZvaWQgdXBkYXRlTm9ybWFsRmxvd0xp
c3QoKTsKKyAgICB2b2lkIHJlYnVpbGROb3JtYWxGbG93TGlzdChWZWN0b3I8UmVuZGVyTGF5ZXIq
PiomIG5vcm1hbEZsb3dMaXN0KSBjb25zdDsKIAogICAgIGJvb2wgaXNTdGFja2luZ0NvbnRleHQo
Y29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdCB7IHJldHVybiAhc3R5bGUtPmhhc0F1dG9a
SW5kZXgoKSB8fCBpc1Jvb3RMYXllcigpOyB9CiAgICAgYm9vbCBpc0RpcnR5U3RhY2tpbmdDb250
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV96T3JkZXJMaXN0c0RpcnR5ICYmIGlzU3RhY2tpbmdDb250
ZXh0KCk7IH0KQEAgLTcyMCw2ICs3MjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0QW5jZXN0
b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCgpOwogICAgIHZvaWQgZGlydHlB
bmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50U3RhdHVzKCk7CiAKKyAg
ICB2b2lkIGRpcnR5RGVzY2VuZGFudHNDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQo
UmVuZGVyTGF5ZXIqKTsKKwogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRSZWN0cyhjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBSZW5kZXJHZW9tZXRy
eU1hcCogPSAwKTsKICAgICB2b2lkIGNvbXB1dGVSZXBhaW50UmVjdHNJbmNsdWRpbmdEZXNjZW5k
YW50cygpOwogICAgIHZvaWQgY2xlYXJSZXBhaW50UmVjdHMoKTsKQEAgLTkyMSw2ICs5MjUsMTUg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oSW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbiByZWFzb24pIHsgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
ID0gcmVhc29uOyB9CiAgICAgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBpbmRpcmVjdENvbXBv
c2l0aW5nUmVhc29uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SW5kaXJlY3RDb21wb3Np
dGluZ1JlYXNvbj4obV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKTsgfQogICAgIGJvb2wgbXVz
dENvbXBvc2l0ZUZvckluZGlyZWN0UmVhc29ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5kaXJlY3RD
b21wb3NpdGluZ1JlYXNvbjsgfQorCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHogb3JkZXJpbmcg
d291bGQgbm90IGNoYW5nZSBpZiB0aGlzIGxheWVyIHdlcmUgdG8gZXN0YWJsaXNoIGEgc3RhY2tp
bmcgY29udGV4dC4KKyAgICBib29sIGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQo
KSBjb25zdDsKKworICAgIC8vIFRoZXNlIHR3byBtZXRob2RzIGFyZSB1c2VkIGJ5IGNhblNhZmVs
eUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQuIFRoZXkgYXJlIGNsYXNzIHN0YXRpYworICAgIC8v
IG1ldGhvZHMgcmF0aGVyIHRoYW4gZnJlZSBzdGF0aWMgbWV0aG9kcyBvbmx5IGJlY2F1c2UgdGhl
eSBhY2Nlc3MgcHJpdmF0ZSBtZW1iZXJzIG9mIHRoZQorICAgIC8vIHJlbmRlciBsYXllcnMgdGhl
eSBvcGVyYXRlIG9uLgorICAgIHN0YXRpYyB2b2lkIGNvdW50RGVzY2VuZGFudE5vbkRlc2NlbmRh
bnRCb3VuZGFyaWVzSW5aT3JkZXJUcmVlKGNvbnN0IFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIs
IGNvbnN0IFJlbmRlckxheWVyKiB0b0JlUHJvbW90ZWQsIGludCYgbnVtQm91bmRhcmllcywgYm9v
bCYgbGFzdEVsZW1lbnRXYXNEZXNjZW5kYW50KTsKKyAgICBzdGF0aWMgdm9pZCBjb3VudERlc2Nl
bmRhbnROb25EZXNjZW5kYW50Qm91bmRhcmllc0Zvckxpc3QoVmVjdG9yPFJlbmRlckxheWVyKj4q
IGxheWVyTGlzdCwgY29uc3QgUmVuZGVyTGF5ZXIqIHRvQmVQcm9tb3RlZCwgaW50JiBudW1Cb3Vu
ZGFyaWVzLCBib29sJiBsYXN0RWxlbWVudFdhc0Rlc2NlbmRhbnQpOwogI2VuZGlmCiAKICAgICBm
cmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpAQCAtOTYxLDYgKzk3NCwxNCBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCA6IDE7CiAg
ICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5IDogMTsKIAorI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAvLyBjYW5TYWZlbHlFc3RhYmxpc2hB
U3RhY2tpbmdDb250ZXh0IGlzIGFuIGV4cGVuc2l2ZSBmdW5jdGlvbiwgYW5kIGl0IG1ha2VzIGFu
IGVub3Jtb3VzCisgICAgLy8gZGlmZmVyZW5jZSBpZiB3ZSBjYW4gY2FjaGUgdGhlIHJlc3VsdC4g
VGhlIGZ1bmN0aW9uIGlzIChhbmQgc2hvdWxkIGJlKSBjb25zdCwgdGhvdWdoLAorICAgIC8vIHNv
IHRoZXNlIG1lbWJlcnMgbXVzdCBiZSBtdXRhYmxlLgorICAgIG11dGFibGUgYm9vbCBtX2NhblNh
ZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQgOiAxOworICAgIG11dGFibGUgYm9vbCBtX2Nh
blNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHREaXJ0eSA6IDE7CisjZW5kaWYKKwogICAg
IGNvbnN0IGJvb2wgbV9pc1Jvb3RMYXllciA6IDE7CiAKICAgICBib29sIG1fdXNlZFRyYW5zcGFy
ZW5jeSA6IDE7IC8vIFRyYWNrcyB3aGV0aGVyIHdlIG5lZWQgdG8gY2xvc2UgYSB0cmFuc3BhcmVu
dCBsYXllciwgaS5lLiwgd2hldGhlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA4OGJlMDhkZmViZTVmOWE3Y2I3ODkyNTgwNjQ4YjQ0
YmJkYjkzYzc0Li5mZWZhMGVlYzZmMDhhZDgxZDdmYWFlNWY5NTgyNDRiMWQyY2U0OGYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAt
NzM3LDcgKzczNywxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NM
YXllckdlb21ldHJ5KCkKIAogICAgICAgICBtX3Njcm9sbGluZ0xheWVyLT5zZXRQb3NpdGlvbihG
bG9hdFBvaW50KCkgKyAocGFkZGluZ0JveC5sb2NhdGlvbigpIC0gbG9jYWxDb21wb3NpdGluZ0Jv
dW5kcy5sb2NhdGlvbigpKSk7CiAKLSAgICAgICAgbV9zY3JvbGxpbmdMYXllci0+c2V0U2l6ZShw
YWRkaW5nQm94LnNpemUoKSk7CisgICAgICAgIEZsb2F0U2l6ZSBjbGlwU2l6ZSA9IHBhZGRpbmdC
b3guc2l6ZSgpOworICAgICAgICBpZiAobV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIgJiYg
IW1fb3duaW5nTGF5ZXItPmhvcml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xsYmFy
KCkpCisgICAgICAgICAgICBjbGlwU2l6ZS5zZXRIZWlnaHQoY2xpcFNpemUuaGVpZ2h0KCkgLSBt
X2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhci0+c2l6ZSgpLmhlaWdodCgpKTsKKyAgICAgICAg
aWYgKG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhciAmJiAhbV9vd25pbmdMYXllci0+dmVydGlj
YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xsYmFyKCkpCisgICAgICAgICAgICBjbGlwU2l6
ZS5zZXRXaWR0aChjbGlwU2l6ZS53aWR0aCgpIC0gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFy
LT5zaXplKCkud2lkdGgoKSk7CisgICAgICAgIG1fc2Nyb2xsaW5nTGF5ZXItPnNldFNpemUoY2xp
cFNpemUpOwogICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldFBvc2l0aW9uKEZs
b2F0UG9pbnQoLXNjcm9sbE9mZnNldC53aWR0aCgpLCAtc2Nyb2xsT2Zmc2V0LmhlaWdodCgpKSk7
CiAKICAgICAgICAgSW50U2l6ZSBvbGRTY3JvbGxpbmdMYXllck9mZnNldCA9IG1fc2Nyb2xsaW5n
TGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDRkODI4ZjFhNWYxZjEwMGJmMjQwYmMz
MTRiMDM3M2FkYWJiYjU2ZjcuLjNkZDFmYmNmMWE5Y2I0ZWE1ZWZlNTA1MzRlMDUyYWIzYWIzNjFl
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKQEAgLTIzMSw2ICsyMzEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFRyYWNrZWRS
ZXBhaW50UmVjdHMoKTsKICAgICB2b2lkIHNldFRyYWNrc1JlcGFpbnRzKGJvb2wpOwogCisgICAg
dm9pZCByZXF1ZXN0UmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKSB7IG1fcmVldmFs
dWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQgPSB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgY2xh
c3MgT3ZlcmxhcE1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAKaW5kZXggOTdjMDg2ZmNhNTI4MWU0MTUzYThmOGNlZWQ4YWI4YTQ5ODk2NTc5Ni4uZTY5
YTQ1ODk1M2ExMzZlMzFkMjdhZDExNDI3Zjg0YWZhZmU1MDVjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMjcsNiArMjI3LDEyIEBAIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVz
KGJvb2wgZW5hYmxlZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVy
bmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBl
bmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRG
b3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGEzMGZhZmZmYzc0
M2NjZDU0ZGNjOTljN2ZiN2E2NzE3NGQzZWRmYjAuLjFjZGE0OThlOTc5NzliYzZmYmI3Zjk1ZGZk
M2NiOTllN2M3YzAwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oCkBAIC0xMDgsNiArMTA4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFi
bGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbAppbmRleCBjOTJkOThiMjBhMTE4OGE1MWIwOWVkZDRiODJjNDdlZjU4
NmRhNjU2Li5lODhiMjVkZDJjZjZmNGQ3NTQyMmY3N2MyMTI3MzUyMzJiZDM4NDgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTI5LDYgKzI5LDcg
QEAKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZp
eGVkUG9zaXRpb24oaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAg
ICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhpbiBib29sZWFu
IGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChpbiBib29sZWFu
IGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRG
aWx0ZXJzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWNiOTUwODljZWU3YTQ1ZTI4MmQ4ODBiNWM4NGQ1
MDJkNmFlNDBhNi4uODMxNTRmYWE1YzU4MDI4ZGEzYmIwMzQ4ZGFmMWViZDJjOWQ2NGFlMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTIzICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEF1dG9tYXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Nyb2xs
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
IHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb2YgZWxlbWVudHMgdG8gZW5zdXJlIHRoYXQgd2Ugb25s
eSBhdXRvbWF0aWNhbGx5IG9wdCBpbnRvCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIHdo
ZW4gaXQgaXMgc2FmZSB0byBkbyBzby4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93
L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9w
dC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTIxICBE
YW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBjcmFz
aGluZyBleHBlY3RhdGlvbiBmb3IgY3NzMy9maWx0ZXJzL2VmZmVjdC1yZWZlcmVuY2Utb3JkZXJp
bmctaHcuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
YXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRv
LWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzI3OGRjZWUy
ZjYxNGQ5OTQ5Y2RjYTM3ODc4ZjA3ZWYzMjJjYzE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3Np
dGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDEwIEBACitJdGVyYXRpb24g
MCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkK
KyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAg
NjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAy
LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAg
MS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAg
ICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAg
ICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxLCBsYXll
ciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTM3NS4wMCkKKyAgKGNo
aWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTM3NS4w
MCkKKyAgICAgIChjaGlsZHJlbiA0CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkK
KyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAg
ICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4w
MCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4w
MCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAg
ICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIsIGxheWVyIHRy
ZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAyNDk1LjAwKQorICAoY2hpbGRy
ZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAyNDk1LjAwKQor
ICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9z
aXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAo
Ym91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAp
CisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4
NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAg
ICkKKyAgKQorKQorCitJdGVyYXRpb24gMywgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisg
IChib3VuZHMgNzg1LjAwIDM1MzUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDM1MzUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4
NS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkK
KyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQor
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4w
MCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAw
IDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlv
biA0LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDUsIGxheWVyIHRyZWU6Ciso
R3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA0NTkxLjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA0NTkxLjAwKQorICAgICAg
KGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRz
IDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAg
ICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAx
MTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4w
MCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiA2
LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDcsIG5vIGxheWVyIHRyZWUgcHJv
ZHVjZWQuCitJdGVyYXRpb24gOCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiA5
LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDEwLCBsYXllciB0cmVlOgorKEdy
YXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNTYzMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNTYzMS4wMCkKKyAgICAgIChj
aGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4
LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAg
ICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAx
OTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMSwgbGF5ZXIgdHJl
ZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDYyNTUuMDApCisgIChjaGlsZHJl
biAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDYyNTUuMDApCisg
ICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChi
b3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEy
MC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMiwgbGF5ZXIgdHJlZToKKyhHcmFwaGlj
c0xheWVyCisgIChib3VuZHMgNzg1LjAwIDcwMjMuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDcwMjMuMDApCisgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAy
MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAw
IDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAw
IDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlv
biAxMywgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDc3MTEu
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1
LjAwIDc3MTEuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4w
MCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJl
biA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAp
CisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxNCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xh
eWVyCisgIChib3VuZHMgNzg1LjAwIDgzOTkuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDgzOTkuMDApCisgICAgICAoY2hpbGRyZW4g
MgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4w
MCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIx
MC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAw
IDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBv
c2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkK
KykKKworSXRlcmF0aW9uIDE1LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5k
cyA3ODUuMDAgOTE2Ny4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgKGJvdW5kcyA3ODUuMDAgOTE2Ny4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAg
IChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4
NS4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAg
ICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1
LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4
Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAg
ICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0
aW9uIDE2LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgOTkz
NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3
ODUuMDAgOTkzNS4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAy
LjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxk
cmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlv
biAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkK
KyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE3LCBubyBsYXllciB0cmVlIHByb2R1Y2Vk
LgorSXRlcmF0aW9uIDE4LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3
ODUuMDAgMTA2MzkuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
IChib3VuZHMgNzg1LjAwIDEwNjM5LjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAg
KGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAw
LjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAp
CisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJh
dGlvbiAxOSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyMCwgbGF5ZXIgdHJl
ZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDExMTk5LjAwKQorICAoY2hpbGRy
ZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMTE5OS4wMCkK
KyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBv
c2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxk
cmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAg
KGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQor
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkK
KyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4w
MCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAg
ICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAg
ICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIw
LjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9u
IDIxLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTE5OTku
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1
LjAwIDExOTk5LjAwKQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIu
MDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRy
ZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQor
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkK
KyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyMiwg
bGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDEyOTQzLjAwKQor
ICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAx
Mjk0My4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIw
Mi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAw
IDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAg
KGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
KQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMjMsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NM
YXllcgorICAoYm91bmRzIDc4NS4wMCAxMzgwNy4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTM4MDcuMDApCisgICAgICAoY2hpbGRy
ZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAy
MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAw
IDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAw
IDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkK
KyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
ODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRl
cmF0aW9uIDI0LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDI1LCBsYXllciB0
cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTQ2ODcuMDApCisgIChjaGls
ZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDE0Njg3LjAw
KQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAw
KQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4g
MQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEw
LjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAg
ICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0
aW9uIDI2LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTU0
ODcuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMg
Nzg1LjAwIDE1NDg3LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAy
MDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hp
bGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAg
ICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAx
MTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyNywgbm8gbGF5ZXIgdHJlZSBw
cm9kdWNlZC4KK0l0ZXJhdGlvbiAyOCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlv
biAyOSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNj
cm9sbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGlj
YWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwNzYy
OTI5NDE2MTkzY2Q3NGZhZDM0ZGQzM2UwNWEwODVlYzJjZGMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNv
bXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKQEAgLTAsMCArMSwxNDAgQEAKKzwhRE9DVFlQRSBodG1s
IFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0
cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgIDx0aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVkIHNj
cm9sbGluZzwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+
CisgICAgLmNvbnRhaW5lciB7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIw
MHB4OworICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKworICAgIC5zY3JvbGxlZCB7CisgICAg
ICB3aWR0aDogMTgwcHg7CisgICAgICBoZWlnaHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEwcHg7
CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICAgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgIH0KKworICAgIC5wb3NpdGlvbmVkIHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAgICAg
IGhlaWdodDogMjQwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB9CisKKyAgICAjcHJlZGVjZXNzb3IgeworICAgICAgbGVm
dDogMjBweDsKKyAgICAgIHRvcDogMjBweDsKKyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsKKyAg
ICAgIGxlZnQ6IDE2MHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0KKyAgPC9zdHlsZT4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKHRydWUpOworCisgICAgZnVuY3Rp
b24gd3JpdGUoc3RyKQorICAgIHsKKyAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpOworICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShzdHIgKyAnXG4nKTsKKyAgICAgIHByZS5hcHBlbmRDaGlsZCh0ZXh0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwcmVkZWNlc3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWlu
ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmly
c3RDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2
YXIgc2Vjb25kQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsK
KyAgICAgIHZhciBjb3VudCA9IDA7CisKKyAgICAgIGZvciAoaSA9IDA7IGkgPCAzOyArK2kpIHsK
KyAgICAgICAgZm9yIChqID0gMDsgaiA8IDU7ICsraikgeworICAgICAgICAgIGZvciAoayA9IDA7
IGsgPCAyOyArK2spIHsKKyAgICAgICAgICAgIHZhciBtaW5aSW5kZXggPSAwOworICAgICAgICAg
ICAgdmFyIG1heFpJbmRleCA9IDA7CisgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAg
ICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJzEnOworICAgICAgICAgICAgICBzZWNv
bmRDaGlsZC5zdHlsZS56SW5kZXggPSAnMyc7CisgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7
CisgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPT0gMSkgeworICAgICAgICAgICAgICBmaXJzdENo
aWxkLnN0eWxlLnpJbmRleCA9ICctMSc7CisgICAgICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxl
LnpJbmRleCA9ICctMyc7CisgICAgICAgICAgICAgIG1pblpJbmRleCA9IC0zOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEn
OworICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnMyc7CisgICAgICAg
ICAgICAgIG1pblpJbmRleCA9IC0xOworICAgICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgc2libGluZyA9IHByZWRlY2Vzc29yOworICAg
ICAgICAgICAgdmFyIHRvSGlkZSA9IHN1Y2Nlc3NvcjsKKyAgICAgICAgICAgIGlmIChrID09IDEp
IHsKKyAgICAgICAgICAgICAgc2libGluZyA9IHN1Y2Nlc3NvcjsKKyAgICAgICAgICAgICAgdG9I
aWRlID0gcHJlZGVjZXNzb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRvSGlkZS5z
dHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICAgICAgc2libGluZy5zdHlsZS5kaXNwbGF5
ID0gJyc7CisgICAgICAgICAgICBpZiAoaiA9PSAwKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcu
c3R5bGUuekluZGV4ID0gKG1heFpJbmRleCArIDEpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKGogPT0gMSkgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9
IChtaW5aSW5kZXggLSAxKS50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09
IDIpIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSBtYXhaSW5kZXgudG9T
dHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAzKSB7CisgICAgICAgICAgICAg
IHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWluWkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9ICgobWluWklu
ZGV4ICsgbWF4WkluZGV4KSAvIDIpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIC8vIEZvcmNlIGEgc3R5bGUgcmVjYWxjLgorICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICAgIHZhciBsYXllclRyZWUgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4
dChkb2N1bWVudCk7CisgICAgICAgICAgICAgIGlmIChsYXllclRyZWUpIHsKKyAgICAgICAgICAg
ICAgICB3cml0ZSgnSXRlcmF0aW9uICcgKyBjb3VudC50b1N0cmluZygpICsKKyAgICAgICAgICAg
ICAgICAgICAgICAnLCBsYXllciB0cmVlOicpOworICAgICAgICAgICAgICAgIHdyaXRlKGxheWVy
VHJlZSk7CisgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHdyaXRlKCdJdGVy
YXRpb24gJyArIGNvdW50LnRvU3RyaW5nKCkgKworICAgICAgICAgICAgICAgICAgICAgICcsIG5v
IGxheWVyIHRyZWUgcHJvZHVjZWQuJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNv
dW50Kys7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfQorCisgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+
Cis8L2hlYWQ+CisKKzxib2R5PgorICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0icHJlZGVj
ZXNzb3IiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIGlkPSJjb250YWluZXIiPgor
ICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0iZmlyc3RDaGlsZCI+PC9kaXY+CisgICAgPGRp
diBjbGFzcz0ic2Nyb2xsZWQiIGlkPSJzZWNvbmRDaGlsZCI+PC9kaXY+CisgIDwvZGl2PgorICA8
ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0ic3VjY2Vzc29yIj48L2Rpdj4KKyAgPHByZSBpZD0i
Y29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176053</attachid>
            <date>2012-11-26 13:25:51 -0800</date>
            <delta_ts>2012-11-26 14:01:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121126162329.patch</filename>
            <type>text/plain</type>
            <size>54188</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI3YmYzMGVkODA2MDcz
ZTM2ZDY1ZWZlNjk2YzM3MmQyYmU3Yzc5MS4uM2JkNWQ3YWJiY2U5MjZjYTJkMTllMDg0OTEyMDA1
NzI0OGY0ZjM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTExLTI2ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRvIGNoZWNr
IHRoaXMsIEkgZW5zdXJlIHRoYXQgdGhlIGNhbmRpZGF0ZSBlbGVtZW50CisgICAgICAgIGFuZCBh
bGwgaXRzIGRlc2NlbmRhbnRzIGFwcGVhciBhcyBhIGNvbnRpbnVvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIG90aGVy
IGVsZW1lbnRzIGFyZSAnYmV0d2VlbicgYW55IG9mCisgICAgICAgIHRoZSBjYW5kaWRhdGVzIGRl
c2NlbmRhbnRzIHdoZW4gd2Ugc29ydCBpbiBwYWludCBvcmRlciwgdGhlbiB3ZSdyZSBzYWZlLgor
ICAgICAgICBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRpdmUsIGhvd2V2ZXIuIFdlIGNvdWxkLCBp
biBmdXR1cmUsIG9ubHkgY29uc2lkZXIKKyAgICAgICAgc3RhY2tpbmcgcHJvYmxlbXMgYmV0d2Vl
biBlbGVtZW50cyB0aGF0IGFjdHVhbGx5IG92ZXJsYXAuCisKKyAgICAgICAgVGVzdDogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGluZy1zY3JvbGxp
bmcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxl
ZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1
cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJl
Y3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCk6CisgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBSZW5k
ZXJMYXllciBjb3VsZCBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0IHdpdGhvdXQKKyAgICAgICAg
ICBhZmZlY3RpbmcgdGhlIHN0YWNraW5nIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRh
dGVkIHRvIHJldHVybiB0cnVlIGlmIGl0IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcK
KyAgICAgICAgICBjb250ZXh0LCBhbmQgdGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMpOgorICAgICAgICAgIFdlIG5vdyBkaXJ0eSBt
X2NhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHREaXJ0eSBmb3Igb3VyCisgICAgICAg
ICAgZGVzY2VuZGFudHMgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgICBXZSBu
b3cgZGlydHkgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0RGlydHkgZm9yIG91
cgorICAgICAgICAgIGRlc2NlbmRhbnRzIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRCZU5vcm1hbEZsb3dPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRCZVNlbGZQYWludGluZ0xheWVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFJlbmRlckxh
eWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRl
ZFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KToKKyAgICAgICAgICBNaW5v
ciBjaGFuZ2UgdG8gdGhlIGNsaXBwaW5nIGJvdW5kcyBvZiB0aGUgc2Nyb2xsaW5nIGxheWVyLiBJ
ZiB3ZSdyZQorICAgICAgICAgIG5vdCB1c2luZyBvdmVybGF5IHNjcm9sbGJhcnMsIHdlIGRvbid0
IHdhbnQgdGhlIGNsaXAgdG8gaW5jbHVkZSB0aGVtLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0
ZXJMYXlvdXQpOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxT
ZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbCk6CisgICAgICAg
ICAgQWxsb3dzIGVuYWJsaW5nIHRoZSBzZXR0aW5nIGluIGxheW91dCB0ZXN0cy4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAg
ICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbDoKKwogMjAxMi0xMS0yNiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIFJlc291cmNlQnVmZmVyOjphcHBlbmQoQ0ZEYXRhUmVmKSB0byBnZXQg
Y29kZSB0byBjb21waWxlIHdpdGggVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggM2M3Y2Y2ZTU2ZGM3
N2IyMWI0Mjk4MTk4NWMwM2QwYTBlMDk4N2EyZC4uMTBjYzU1MTM0Yjc1NGFhNmNjY2Q5YTYyZWIw
NWExZDgzODBmMTAzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CkBAIC0xNDUsNiArMTQ1LDkgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlbmRlcmVyKQogICAgICwgbV9ub3JtYWxGbG93TGlzdERpcnR5KHRydWUp
CiAgICAgLCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1f
aGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkoZmFsc2UpCisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICwgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdD
b250ZXh0KGZhbHNlKQorI2VuZGlmCiAgICAgLCBtX2lzUm9vdExheWVyKHJlbmRlcmVyLT5pc1Jl
bmRlclZpZXcoKSkKICAgICAsIG1fdXNlZFRyYW5zcGFyZW5jeShmYWxzZSkKICAgICAsIG1fcGFp
bnRpbmdJbnNpZGVSZWZsZWN0aW9uKGZhbHNlKQpAQCAtNDY4LDYgKzQ3MSwxNTYgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5k
YW50U3RhdHVzKCkKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXI6OmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBy
ZW5kZXJlcigpLT5mcmFtZSgpCisgICAgICAgICYmIHJlbmRlcmVyKCktPmZyYW1lKCktPnBhZ2Uo
KQorICAgICAgICAmJiByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKTsKK30KKworLy8g
SWYgd2UgYXJlIGEgc3RhY2tpbmcgY29udGV4dCwgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu
ZXJhdGUgYSB2YWx1ZSBmb3IKKy8vIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4
dCBmb3IgZXZlcnkgbGF5ZXIgaW4gdGhlIHN0YWNraW5nIAorLy8gY29udGV4dCB3ZSBlc3RhYmxp
c2guIEl0IGlzIHNhZmUgdG8gYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0aGlzIAorLy8g
Y2hhbmdlIHdvdWxkIG5vdCBhbHRlciB0aGUgc3RhY2tpbmcgb3JkZXIgb2YgbGF5ZXJzIG9uIHRo
ZSBwYWdlLiBUaGF0IGNhbiAKKy8vIG9ubHkgaGFwcGVuIGlmIGEgbm9uLWRlc2NlbmRhbnQgYXBw
ZWFycyBiZXR3ZWVuIHVzIGFuZCBvdXIgZGVzY2VuZGFudHMgaW4gCisvLyBzdGFja2luZyBvcmRl
ci4gSGVyZSdzIGFuIGV4YW1wbGU6CisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgfCAgXAorLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAgIEIgICBDCisvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC9cICAgfCAgIC9cCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMCAtOCAgRCAgMiAgNworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK
Ky8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1CisvLworLy8gSSd2ZSBsYWJl
bGVkIG91ciBub3JtYWwgZmxvdyBkZXNjZW5kYW50cyBBLCBCLCBDLCBhbmQgRCwgb3VyIHN0YWNr
aW5nCisvLyBjb250ZXh0IGRlc2NlbmRhbnRzIHdpdGggdGhlaXIgeiBpbmRpY2VzLCBhbmQgdXMg
d2l0aCAndGhpcycgKHdlJ3JlIGEKKy8vIHN0YWNraW5nIGNvbnRleHQgYW5kIG91ciB6SW5kZXgg
ZG9lc24ndCBtYXR0ZXIgaGVyZSkuIFRoZXNlIG5vZGVzIGFwcGVhciBpbgorLy8gdGhyZWUgbGlz
dHM6IHBvc1pPcmRlciwgbmVnWk9yZGVyLCBhbmQgbm9ybWFsIGZsb3cgKGtlZXAgaW4gbWluZCB0
aGF0IG5vcm1hbAorLy8gZmxvdyBsYXllcnMgZG9uJ3Qgb3ZlcmxhcCkuIFNvIGlmIHdlIGFycmFu
Z2UgdGhlc2UgbGlzdHMgaW4gb3JkZXIgd2UgZ2V0IG91cgorLy8gc3RhY2tpbmcgb3JkZXI6Cisv
LworLy8gICAgICAgICAgICAgICAgICAgICBbLThdLCBbQS1EXSwgWzAsIDIsIDUsIDddLS0+IHBv
cyB6LW9yZGVyLgorLy8gICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwKKy8vICAgICAgICBO
ZWcgei1vcmRlci4gPC0rICAgICArLS0+IE5vcm1hbCBmbG93IGRlc2NlbmRhbnRzLgorLy8KKy8v
IFdlIGNhbiB0aGVuIGFzc2lnbiBuZXcsICdzdGFja2luZycgb3JkZXIgaW5kaWNlcyB0byB0aGVz
ZSBlbGVtZW50cyBhcyBmb2xsb3dzOgorLy8KKy8vICAgICAgICAgICAgICAgICAgICAgWy04XSwg
W0EtRF0sIFswLCAyLCA1LCA3XQorLy8gJ1N0YWNraW5nJyBpbmRpY2VzOiAgLTEgICAgIDAgICAg
IDEgIDIgIDMgIDQKKy8vCisvLyBOb3RlIHRoYXQgdGhlIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRz
IGNhbiBzaGFyZSBhbiBpbmRleCBiZWNhdXNlIHRoZXkgZG9uJ3QKKy8vIHN0YWNrL292ZXJsYXAu
IE5vdyBvdXIgcHJvYmxlbSBiZWNvbWVzIHZlcnkgc2ltcGxlOiBhIGxheWVyIGNhbiBzYWZlbHkg
YmVjb21lCisvLyBhIHN0YWNraW5nIGNvbnRleHQgaWYgdGhlIHN0YWNraW5nLW9yZGVyIGluZGlj
ZXMgb2YgaXQgYW5kIGl0cyBkZXNjZW5kYW50cworLy8gYXBwZWFyIGluIGEgY29udGlndW91cyBi
bG9jayBpbiB0aGUgbGlzdCBvZiBzdGFja2luZyBpbmRpY2VzLiBUaGlzIHByb2JsZW0KKy8vIGNh
biBiZSBzb2x2ZWQgdmVyeSBlZmZpY2llbnRseSBieSBjYWxjdWxhdGluZyB0aGUgbWluL21heCBz
dGFja2luZyBpbmRpY2VzIGluCisvLyB0aGUgc3VidHJlZSwgYW5kIHRoZSBudW1iZXIgc3RhY2tp
bmcgY29udGV4dCBkZXNjZW5kYW50cy4gT25jZSB3ZSBoYXZlIHRoaXMKKy8vIGluZm9ybWF0aW9u
LCB3ZSBrbm93IHRoYXQgdGhlIHN1YnRyZWUncyBpbmRpY2VzIGZvcm0gYSBjb250aWd1b3VzIGJs
b2NrIGlmOgorLy8KKy8vICAgICAgICAgICBtYXhTdGFja0luZGV4IC0gbWluU3RhY2tJbmRleCA9
PSBudW1TQ0Rlc2NlbmRhbnRzCisvLworLy8gU28gZm9yIG5vZGUgQSBpbiB0aGUgZXhhbXBsZSBh
Ym92ZSB3ZSB3b3VsZCBoYXZlOgorLy8gICBtYXhTdGFja0luZGV4ID0gMQorLy8gICBtaW5TdGFj
a0luZGV4ID0gLTEKKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFuZCBzbywKKy8v
ICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMK
Ky8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgIDEgLSAoLTEpID09IDIKKy8vICA9PT0+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyID09IDIKKy8vCisvLyAgU2luY2UgdGhpcyBpcyB0
cnVlLCBBIGNhbiBzYWZlbHkgYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dC4KKy8vCisvLyAgIG1h
eFN0YWNrSW5kZXggPSA0CisvLyAgIG1pblN0YWNrSW5kZXggPSAwIDwtLSBiZWNhdXNlIEMgaGFz
IHN0YWNraW5nIGluZGV4IDAuCisvLyAgIG51bVNDRGVjZW5kYW50cyA9IDIKKy8vCisvLyBhbmQg
c28sCisvLyAgICAgICBtYXhTdGFja0luZGV4IC0gbWluU3RhY2tJbmRleCA9PSBudW1TQ0Rlc2Nl
bmRhbnRzCisvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAgICA0IC0gMCA9PSAyCisvLyAg
PT09PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCA9PSAyCisvLworLy8gU2luY2UgdGhp
cyBpcyBmYWxzZSwgQyBjYW5ub3QgYmUgc2FmZWx5IHByb21vdGVkIHRvIGEgc3RhY2tpbmcgY29u
dGV4dC4gVGhpcworLy8gaGFwcGVuZWQgYmVjYXVzZSBvZiB0aGUgZWxlbWVudHMgd2l0aCB6LWlu
ZGV4IDUgYW5kIDAuIE5vdyBpZiA1IGhhZCBiZWVuIGEgCisvLyBjaGlsZCBvZiBDIHJhdGhlciB0
aGFuIEQsIGFuZCBBIGhhZCBubyBjaGlsZCB3aXRoIFogaW5kZXggMCwgd2Ugd291bGQgaGF2ZSBo
YWQ6CisvLworLy8gICBtYXhTdGFja0luZGV4ID0gMworLy8gICBtaW5TdGFja0luZGV4ID0gMCA8
LS0gYmVjYXVzZSBDIGhhcyBzdGFja2luZyBpbmRleCAwLgorLy8gICBudW1TQ0RlY2VuZGFudHMg
PSAzCisvLworLy8gYW5kIHNvLAorLy8gICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5k
ZXggPT0gbnVtU0NEZXNjZW5kYW50cworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgICAg
MyAtIDAgPT0gMworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgPT0gMwor
Ly8KKy8vICBBbmQgd2Ugd291bGQgY29uY2x1ZGUgdGhhdCBDIGNvdWxkIGJlIHByb21vdGVkLgor
dm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0
KCkKK3sKKyAgICBpZiAoIWlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIWFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
QVNTRVJUKCFtX25vcm1hbEZsb3dMaXN0RGlydHkpOworICAgIEFTU0VSVCghbV96T3JkZXJMaXN0
c0RpcnR5KTsKKworICAgIC8vIENyZWF0ZSBhIHJldmVyc2UgbG9va3VwLgorICAgIEhhc2hNYXA8
Y29uc3QgUmVuZGVyTGF5ZXIqLCBpbnQ+IGxvb2t1cDsKKworICAgIGlmIChtX25lZ1pPcmRlckxp
c3QpIHsKKyAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbV9uZWdaT3JkZXJMaXN0LT5zaXplKCk7
CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAg
ICAgICAgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciA9IG1fbmVnWk9yZGVyTGlzdC0+YXQoaSk7
CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRMYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGxvb2t1cC5zZXQoY3VycmVudExh
eWVyLCAtc3RhdGljX2Nhc3Q8aW50PihsaXN0U2l6ZSAtIGkpKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmIChtX3Bvc1pPcmRlckxpc3QpIHsKKyAgICAgICAgc2l6ZV90IGxpc3RTaXplID0g
bV9wb3NaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGlzdFNpemU7ICsraSkgeworICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciA9
IG1fcG9zWk9yZGVyTGlzdC0+YXQoaSk7CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRMYXllci0+
aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIGxvb2t1cC5zZXQoY3VycmVudExheWVyLCBzdGF0aWNfY2FzdDxpbnQ+KGkgKyAxKSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpbnQgbWluSW5kZXggPSAwOworICAgIGludCBtYXhJbmRl
eCA9IDA7CisgICAgaW50IGNvdW50ID0gMDsKKyAgICBib29sIGZpcnN0SXRlcmF0aW9uID0gdHJ1
ZTsKKyAgICB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHRSZWN1cnNpdmUo
bG9va3VwLCBtaW5JbmRleCwgbWF4SW5kZXgsIGNvdW50LCBmaXJzdEl0ZXJhdGlvbik7Cit9CisK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4
dFJlY3Vyc2l2ZShjb25zdCBIYXNoTWFwPGNvbnN0IFJlbmRlckxheWVyKiwgaW50PiYgbG9va3Vw
LCBpbnQmIG1pbkluZGV4LCBpbnQmIG1heEluZGV4LCBpbnQmIGNvdW50LCBib29sIGZpcnN0SXRl
cmF0aW9uKQoreworICAgIGlmIChpc1N0YWNraW5nQ29udGV4dCgpICYmICFmaXJzdEl0ZXJhdGlv
bikgeworICAgICAgICBBU1NFUlQobG9va3VwLmNvbnRhaW5zKHRoaXMpKTsKKyAgICAgICAgbWlu
SW5kZXggPSBzdGQ6Om1pbihtaW5JbmRleCwgbG9va3VwLmdldCh0aGlzKSk7CisgICAgICAgIG1h
eEluZGV4ID0gc3RkOjptYXgobWF4SW5kZXgsIGxvb2t1cC5nZXQodGhpcykpOworICAgICAgICBj
b3VudCsrOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChSZW5kZXJMYXllciog
Y2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
KSB7CisgICAgICAgIGludCBjaGlsZE1pbkluZGV4ID0gMDsKKyAgICAgICAgaW50IGNoaWxkTWF4
SW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRDb3VudCA9IDA7CisgICAgICAgIGNoaWxkLT51
cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHRSZWN1cnNpdmUobG9va3VwLCBj
aGlsZE1pbkluZGV4LCBjaGlsZE1heEluZGV4LCBjaGlsZENvdW50LCBmYWxzZSk7CisgICAgICAg
IGlmIChjaGlsZENvdW50KSB7CisgICAgICAgICAgICBjb3VudCArPSBjaGlsZENvdW50OworICAg
ICAgICAgICAgbWluSW5kZXggPSBzdGQ6Om1pbihtaW5JbmRleCwgY2hpbGRNaW5JbmRleCk7Cisg
ICAgICAgICAgICBtYXhJbmRleCA9IHN0ZDo6bWF4KG1heEluZGV4LCBjaGlsZE1heEluZGV4KTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghaXNTdGFja2luZ0NvbnRleHQoKSkgeworICAg
ICAgICBib29sIG5ld1ZhbHVlID0gbWF4SW5kZXggLSBtaW5JbmRleCA9PSBjb3VudDsKKyAgICAg
ICAgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0ID0gbmV3VmFsdWU7CisgICAg
fQorfQorCisKIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbXB1dGVSZXBhaW50UmVjdHMoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgUmVuZGVyR2VvbWV0
cnlNYXAqIGdlb21ldHJ5TWFwKQogewogICAgIEFTU0VSVCghbV92aXNpYmxlQ29udGVudFN0YXR1
c0RpcnR5KTsKQEAgLTcwNCw2ICs4NTcsMTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlUGFn
aW5hdGlvbigpCiAgICAgfQogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
Ym9vbCBSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNv
bnN0Cit7CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIXN0YWNraW5nQ29udGV4dCgp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBtX2NhblNhZmVseUVzdGFibGlz
aEFTdGFja2luZ0NvbnRleHQ7Cit9CisjZW5kaWYKKwogdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFz
VmlzaWJsZUNvbnRlbnQoKQogeyAKICAgICBpZiAobV9oYXNWaXNpYmxlQ29udGVudCAmJiAhbV92
aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5KSB7CkBAIC0xNjE4LDEzICsxNzgxLDIwIEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNl
c3RvckxheWVyLCBMYXlvdXRSCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9v
bCBSZW5kZXJMYXllcjo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdAogeworICAgIHJl
dHVybiBpc0NvbXBvc2l0ZWQoKSAmJiBiYWNraW5nKCktPnNjcm9sbGluZ0xheWVyKCk7Cit9CisK
K2Jvb2wgUmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0Cit7CiAg
ICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xsaW5nKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wgZm9yY2VVc2VDb21wb3NpdGVkU2Nyb2xsaW5nID0g
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpICAmJiBjYW5T
YWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCk7CisKICNpZiBFTkFCTEUoQUNDRUxFUkFU
RURfT1ZFUkZMT1dfU0NST0xMSU5HKQotICAgIHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT51
c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCk7CisgICAgcmV0dXJuIGZvcmNlVXNlQ29tcG9zaXRl
ZFNjcm9sbGluZyB8fCByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xs
aW5nKCk7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZm9yY2VVc2VDb21w
b3NpdGVkU2Nyb2xsaW5nOwogI2VuZGlmCiB9CiAjZW5kaWYKQEAgLTE3ODksOCArMTk1OSwxNSBA
QCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQgeCwgaW50IHkpCiAgICAgICAgIGZyYW1l
LT5ldmVudEhhbmRsZXIoKS0+ZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uSW5RdWFkKHF1
YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogICAgIH0KIAorICAgIGJvb2wgcmVxdWlyZXNSZXBh
aW50ID0gdHJ1ZTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAo
Y29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5nTW9kZSgpICYmIHVzZXNDb21wb3NpdGVkU2Nyb2xs
aW5nKCkpCisgICAgICAgIHJlcXVpcmVzUmVwYWludCA9IGZhbHNlOworI2VuZGlmCisKICAgICAv
LyBKdXN0IHNjaGVkdWxlIGEgZnVsbCByZXBhaW50IG9mIG91ciBvYmplY3QuCi0gICAgaWYgKHZp
ZXcgJiYgIXVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgaWYgKHZpZXcgJiYgcmVxdWly
ZXNSZXBhaW50KQogICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50VXNpbmdDb250YWluZXIocmVw
YWludENvbnRhaW5lciwgcGl4ZWxTbmFwcGVkSW50UmVjdChtX3JlcGFpbnRSZWN0KSk7CiAKICAg
ICAvLyBTY2hlZHVsZSB0aGUgc2Nyb2xsIERPTSBldmVudC4KQEAgLTQ3ODAsOCArNDk1NywxMSBA
QCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKCkKICAgICBtX3pPcmRlckxpc3Rz
RGlydHkgPSB0cnVlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlm
ICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgIGlmICghcmVuZGVy
ZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7CiAgICAgICAgIGNvbXBvc2l0b3IoKS0+
c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOworICAgICAgICBpZiAoYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICAgICAgY29t
cG9zaXRvcigpLT5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpOwor
ICAgIH0KICNlbmRpZgogfQogCkBAIC00ODAxLDggKzQ5ODEsMTEgQEAgdm9pZCBSZW5kZXJMYXll
cjo6ZGlydHlOb3JtYWxGbG93TGlzdCgpCiAgICAgbV9ub3JtYWxGbG93TGlzdERpcnR5ID0gdHJ1
ZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoIXJlbmRlcmVy
KCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAgICBpZiAoIXJlbmRlcmVyKCktPmRvY3Vt
ZW50QmVpbmdEZXN0cm95ZWQoKSkgewogICAgICAgICBjb21wb3NpdG9yKCktPnNldENvbXBvc2l0
aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKKyAgICAgICAgaWYgKGFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKKyAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+
c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKTsKKyAgICB9CiAjZW5k
aWYKIH0KIApAQCAtNDkwNyw2ICs1MDkwLDggQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5
ZXJMaXN0c0lmTmVlZGVkKCkKICAgICAgICAgcmVmbGVjdGlvbkxheWVyLT51cGRhdGVaT3JkZXJM
aXN0cygpOwogICAgICAgICByZWZsZWN0aW9uTGF5ZXItPnVwZGF0ZU5vcm1hbEZsb3dMaXN0KCk7
CiAgICAgfQorCisgICAgdXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0KCk7
CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nQW5kTGF5ZXJMaXN0c0lm
TmVlZGVkKCkKQEAgLTQ5OTQsMTQgKzUxNzksMTQgQEAgYm9vbCBSZW5kZXJMYXllcjo6c2hvdWxk
QmVOb3JtYWxGbG93T25seSgpIGNvbnN0CiAgICAgICAgICAgICAmJiAhcmVuZGVyZXIoKS0+aGFz
QmxlbmRNb2RlKCkKICNlbmRpZgogICAgICAgICAgICAgJiYgIWlzVHJhbnNwYXJlbnQoKQotICAg
ICAgICAgICAgJiYgIXVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisgICAgICAgICAgICAmJiAh
bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CiB9CiAKIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3Vs
ZEJlU2VsZlBhaW50aW5nTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiAhaXNOb3JtYWxGbG93
T25seSgpCiAgICAgICAgIHx8IGhhc092ZXJsYXlTY3JvbGxiYXJzKCkKLSAgICAgICAgfHwgdXNl
c0NvbXBvc2l0ZWRTY3JvbGxpbmcoKQorICAgICAgICB8fCBuZWVkc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKQogICAgICAgICB8fCByZW5kZXJlcigpLT5oYXNSZWZsZWN0aW9uKCkKICAgICAgICAgfHwg
cmVuZGVyZXIoKS0+aGFzTWFzaygpCiAgICAgICAgIHx8IHJlbmRlcmVyKCktPmlzVGFibGVSb3co
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA2NWYxMDcwYWIyZDY2
ZGYyZDk0NzE2NTRlY2M5Y2MwZTAxN2M2MWM1Li5iMWNiYTkzMTkzNzQ3NDllOTc5MjAwNjI5YjBi
MmNhNjRjOGEzZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAt
NjU2LDYgKzY1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVy
Rm9yVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIq
IGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHVzZXNDb21w
b3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QgT1ZFUlJJREU7CisgICAgYm9vbCBuZWVkc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoKSBjb25zdDsKICNlbHNlCiAgICAgYm9vbCBpc0NvbXBvc2l0ZWQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFzQ29tcG9zaXRlZE1hc2soKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQpAQCAtNzIzLDYgKzcyNCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCgpOwogICAgIHZv
aWQgZGlydHlBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50U3RhdHVz
KCk7CiAKKyAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5n
Q29udGV4dCgpOworICAgIHZvaWQgdXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250
ZXh0UmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8Y29uc3QgUmVuZGVyTGF5ZXIqLCBpbnQ+JiwgaW50
JiBtaW5JbmRleCwgaW50JiBtYXhJbmRleCwgaW50JiBjb3VudCwgYm9vbCBmaXJzdEl0ZXJhdGlv
bik7CisKICAgICB2b2lkIGNvbXB1dGVSZXBhaW50UmVjdHMoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgUmVuZGVyR2VvbWV0cnlNYXAqID0gMCk7
CiAgICAgdm9pZCBjb21wdXRlUmVwYWludFJlY3RzSW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKICAg
ICB2b2lkIGNsZWFyUmVwYWludFJlY3RzKCk7CkBAIC05MjYsNiArOTMxLDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oSW5kaXJlY3RDb21wb3NpdGlu
Z1JlYXNvbiByZWFzb24pIHsgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uID0gcmVhc29uOyB9
CiAgICAgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBpbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbj4o
bV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKTsgfQogICAgIGJvb2wgbXVzdENvbXBvc2l0ZUZv
ckluZGlyZWN0UmVhc29ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5kaXJlY3RDb21wb3NpdGluZ1Jl
YXNvbjsgfQorCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHogb3JkZXJpbmcgd291bGQgbm90IGNo
YW5nZSBpZiB0aGlzIGxheWVyIHdlcmUgdG8gZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dC4K
KyAgICBib29sIGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdDsKICNl
bmRpZgogCiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlckxheWVyQmFja2luZzsKQEAgLTk2Niw2ICs5
NzQsMTAgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2Nl
bmRhbnQgOiAxOwogICAgIGJvb2wgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnREaXJ0
eSA6IDE7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgYm9vbCBtX2Nh
blNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQgOiAxOworI2VuZGlmCisKICAgICBjb25z
dCBib29sIG1faXNSb290TGF5ZXIgOiAxOwogCiAgICAgYm9vbCBtX3VzZWRUcmFuc3BhcmVuY3kg
OiAxOyAvLyBUcmFja3Mgd2hldGhlciB3ZSBuZWVkIHRvIGNsb3NlIGEgdHJhbnNwYXJlbnQgbGF5
ZXIsIGkuZS4sIHdoZXRoZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKaW5kZXggODhiZTA4ZGZlYmU1ZjlhN2NiNzg5MjU4MDY0OGI0NGJiZGI5
M2M3NC4uMzBmMTUyMGZkZDYzMTM0NTVjZmZhMDcwMzc2MzVlNjA0MzljZTE1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTM0MCw3
ICszNDAsNyBAQCBzdGF0aWMgYm9vbCBoYXNOb25aZXJvVHJhbnNmb3JtT3JpZ2luKGNvbnN0IFJl
bmRlck9iamVjdCogcmVuZGVyZXIpCiBzdGF0aWMgYm9vbCBsYXllck9yQW5jZXN0b3JJc1RyYW5z
Zm9ybWVkT3JVc2luZ0NvbXBvc2l0ZWRTY3JvbGxpbmcoUmVuZGVyTGF5ZXIqIGxheWVyKQogewog
ICAgIGZvciAoUmVuZGVyTGF5ZXIqIGN1cnIgPSBsYXllcjsgY3VycjsgY3VyciA9IGN1cnItPnBh
cmVudCgpKSB7Ci0gICAgICAgIGlmIChjdXJyLT5oYXNUcmFuc2Zvcm0oKSB8fCBjdXJyLT51c2Vz
Q29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgICAgICBpZiAoY3Vyci0+aGFzVHJhbnNmb3JtKCkg
fHwgY3Vyci0+bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgCkBAIC00NDgsNyArNDQ4LDcgQEAgYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKICAgICBib29sIG5lZWRz
RGVzY2VuZGVudHNDbGlwcGluZ0xheWVyID0gY29tcG9zaXRvci0+Y2xpcHNDb21wb3NpdGluZ0Rl
c2NlbmRhbnRzKG1fb3duaW5nTGF5ZXIpOwogCiAgICAgLy8gT3VyIHNjcm9sbGluZyBsYXllciB3
aWxsIGNsaXAuCi0gICAgaWYgKG1fb3duaW5nTGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5n
KCkpCisgICAgaWYgKG1fb3duaW5nTGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpKQog
ICAgICAgICBuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBpbmdMYXllciA9IGZhbHNlOwogCiAgICAgaWYg
KHVwZGF0ZUNsaXBwaW5nTGF5ZXJzKGNvbXBvc2l0b3ItPmNsaXBwZWRCeUFuY2VzdG9yKG1fb3du
aW5nTGF5ZXIpLCBuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBpbmdMYXllcikpCkBAIC00NTcsNyArNDU3
LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1
cmF0aW9uKCkKICAgICBpZiAodXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyhyZXF1aXJlc0hv
cml6b250YWxTY3JvbGxiYXJMYXllcigpLCByZXF1aXJlc1ZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIo
KSwgcmVxdWlyZXNTY3JvbGxDb3JuZXJMYXllcigpKSkKICAgICAgICAgbGF5ZXJDb25maWdDaGFu
Z2VkID0gdHJ1ZTsKIAotICAgIGlmICh1cGRhdGVTY3JvbGxpbmdMYXllcnMobV9vd25pbmdMYXll
ci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkpCisgICAgaWYgKHVwZGF0ZVNjcm9sbGluZ0xh
eWVycyhtX293bmluZ0xheWVyLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkpCiAgICAgICAg
IGxheWVyQ29uZmlnQ2hhbmdlZCA9IHRydWU7CiAKICAgICBpZiAobGF5ZXJDb25maWdDaGFuZ2Vk
KQpAQCAtNjA5LDcgKzYwOSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFw
aGljc0xheWVyR2VvbWV0cnkoKQogICAgIGVsc2UKICAgICAgICAgZ3JhcGhpY3NMYXllclBhcmVu
dExvY2F0aW9uID0gcmVuZGVyZXIoKS0+dmlldygpLT5kb2N1bWVudFJlY3QoKS5sb2NhdGlvbigp
OwogCi0gICAgaWYgKGNvbXBBbmNlc3RvciAmJiBjb21wQW5jZXN0b3ItPnVzZXNDb21wb3NpdGVk
U2Nyb2xsaW5nKCkpIHsKKyAgICBpZiAoY29tcEFuY2VzdG9yICYmIGNvbXBBbmNlc3Rvci0+bmVl
ZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpIHsKICAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3gg
PSB0b1JlbmRlckJveChjb21wQW5jZXN0b3ItPnJlbmRlcmVyKCkpOwogICAgICAgICBJbnRTaXpl
IHNjcm9sbE9mZnNldCA9IGNvbXBBbmNlc3Rvci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAg
ICAgICAgIEludFBvaW50IHNjcm9sbE9yaWdpbihyZW5kZXJCb3gtPmJvcmRlckxlZnQoKSwgcmVu
ZGVyQm94LT5ib3JkZXJUb3AoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDg3MGJmMWRkZmE3Mzk1OWMwZWUwYTJjYzE4
ZTllZmE4ODU5Y2YyMWMuLjM0MjBlMDBkNWMyOWFhNjQ2YTY1MjE2ZGUwZjEwZWFiNzE4YjNjNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCkBAIC0xOTcyLDcgKzE5NzIsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVxdWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZQogCiBi
b29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsaW5nKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikgY29uc3QKIHsKLSAgICByZXR1cm4g
bGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisgICAgcmV0dXJuIGxheWVyLT5uZWVk
c0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKIH0KIAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmlzUnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9uKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgKaW5kZXggNGQ4MjhmMWE1ZjFmMTAwYmYyNDBiYzMxNGIwMzczYWRhYmJiNTZm
Ny4uZTljMTEwM2E1YTgyOGQxYjRjNzE2ZWI0Njg3ZDUwMjQzZTIxMGJlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjMxLDYg
KzIzMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0VHJhY2tlZFJlcGFpbnRSZWN0cygpOwog
ICAgIHZvaWQgc2V0VHJhY2tzUmVwYWludHMoYm9vbCk7CiAKKyAgICB2b2lkIHNldFNob3VsZFJl
ZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KCkgeyBtX3JlZXZhbHVhdGVDb21wb3NpdGlu
Z0FmdGVyTGF5b3V0ID0gdHJ1ZTsgfQorCiBwcml2YXRlOgogICAgIGNsYXNzIE92ZXJsYXBNYXA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGRk
YTQ0MzU3MDU4NDRjMTM2Y2VmNmZmM2NhMjU3ZGI1NTkzZjdiNmUuLmU5MjlmZDBlNzAwNmNiYThl
YjgwMTcxYmYxN2I5YjFhYmViYzczNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcApAQCAtMjExLDYgKzIxMSwxMiBAQCB2b2lkIEludGVybmFsU2V0dGlu
Z3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhib29sIGVuYWJsZWQs
IEV4YwogICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxh
YmxlRnJhbWVzRW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsK
KyAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3Jv
bGxFbmFibGVkKGVuYWJsZWQpOworfQorCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBiNzZmZDllYWIyNjhkMGQyMGM5MjQxYTll
ZDM1ODg5ZDJiNzAwNDUyLi4xM2EzMTZjNDRmYmFlZWRmMTY5MjRmZmFmNDgwMTkxMjI0N2Q0NDFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtMTAzLDYg
KzEwMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJh
dGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGwKaW5kZXggMDlkYWUxZTU3ZDNlYzI0ZWVmM2I0YmI0MWZlMzllYjg3MTczZjYwMy4uODZiZjU5
NTJkM2Y5ZjgxYjAyYjMyMTg5Zjk4OGE0YWM5N2IyNTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0yOSw2ICsyOSw3IEBACiAgICAgdm9pZCBz
ZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGlu
IGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRFbmFi
bGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGwoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2
b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQo
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldE1v
Y2tTY3JvbGxiYXJzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRp
b24pOwpAQCAtNjksNyArNzAsNiBAQAogICAgIHZvaWQgc2V0V2luZG93Rm9jdXNSZXN0cmljdGVk
KGluIGJvb2xlYW4gcmVzdHJpY3RlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBz
ZXREaWFsb2dFbGVtZW50RW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgIHZvaWQgc2V0TGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJs
ZWQoaW4gYm9vbGVhbiBlbmFibGVkKTsKLQogICAgIFtDb25kaXRpb25hbD1WSURFT19UUkFDS10g
dm9pZCBzZXRTaG91bGREaXNwbGF5VHJhY2tLaW5kKGluIERPTVN0cmluZyBraW5kLCBpbiBib29s
ZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBbQ29uZGl0aW9uYWw9VklE
RU9fVFJBQ0tdIGJvb2xlYW4gc2hvdWxkRGlzcGxheVRyYWNrS2luZChpbiBET01TdHJpbmcgdHJh
Y2tLaW5kKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRNZW1vcnlJbmZvRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBj
ZThmODIwNzZlMWRkYTNmNzY4MGMzZDhlNjE3NWMwNzRiYmQ1ODYuLjc1NTEyYWY4MGUxM2U5ODBh
OGYzOWZmZWMyZGZiNjI4M2FjMGUzZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0y
NiAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KKworICAgICAgICBBdXRvbWF0
aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNjcm9sbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyB2YXJpb3VzIGNvbmZpZ3VyYXRpb25zIG9mIGVs
ZW1lbnRzIHRvIGVuc3VyZSB0aGF0IHdlIG9ubHkgYXV0b21hdGljYWxseSBvcHQgaW50bworICAg
ICAgICBjb21wb3NpdGVkIHNjcm9sbGluZyB3aGVuIGl0IGlzIHNhZmUgdG8gZG8gc28uCisKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBv
c2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRp
bmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5o
dG1sOiBBZGRlZC4KKwogMjAxMi0xMS0yNiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIE1vdmUgbW9yZSBmdW5jdGlvbnMgZnJvbSBpbnRlcm5hbHMuc2V0dGluZ3Mg
dG8gaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxv
dy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWlu
dG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNDk5NTc1
NjkyOWNjNmJlNGQ5ZmMxMGJmZmYxMjRmMGQzOGM4NjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBv
c2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwMTAgQEAKK0l0ZXJhdGlv
biAwLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAw
KQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4w
MCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAy
MDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0
CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4w
MCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAg
ICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAg
ICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlv
biAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAg
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAg
IChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQor
ICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDEsIGxh
eWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxMzc1LjAwKQorICAo
Y2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMzc1
LjAwKQorICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAw
KQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
ICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1
LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAp
CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2
LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAg
ICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91
bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAg
ICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAg
KGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAuMDApCisgICAg
ICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMiwgbGF5ZXIg
dHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDI0OTUuMDApCisgIChjaGls
ZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDI0OTUuMDAp
CisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChw
b3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAg
IChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAg
MTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAg
MS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAg
ICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMg
MTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91
bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisg
ICAgKQorICApCispCisKK0l0ZXJhdGlvbiAzLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIK
KyAgKGJvdW5kcyA3ODUuMDAgMzUzNS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMzUzNS4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQor
ICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAw
KQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDAp
CisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRp
b24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAg
ICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkw
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBv
c2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAu
MDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkK
KyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0
aW9uIDQsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gNSwgbGF5ZXIgdHJlZToK
KyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDQ1OTEuMDApCisgIChjaGlsZHJlbiAx
CisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDQ1OTEuMDApCisgICAg
ICAoY2hpbGRyZW4gNAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlv
biAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAx
CisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3Vu
ZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAg
ICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQor
ICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAw
IDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIw
LjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9u
IDYsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gNywgbm8gbGF5ZXIgdHJlZSBw
cm9kdWNlZC4KK0l0ZXJhdGlvbiA4LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9u
IDksIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gMTAsIGxheWVyIHRyZWU6Ciso
R3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA1NjMxLjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA1NjMxLjAwKQorICAgICAg
KGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRz
IDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAg
ICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDExLCBsYXllciB0
cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNjI1NS4wMCkKKyAgKGNoaWxk
cmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNjI1NS4wMCkK
KyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBv
c2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxk
cmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAg
KGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAx
NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAx
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMg
MTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAg
ICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDEyLCBsYXllciB0cmVlOgorKEdyYXBo
aWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNzAyMy4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNzAyMy4wMCkKKyAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAu
MDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUu
MDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkK
KyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0
aW9uIDEzLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNzcx
MS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3
ODUuMDAgNzcxMS4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAy
LjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxk
cmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlv
biAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkK
KyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE0LCBsYXllciB0cmVlOgorKEdyYXBoaWNz
TGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgODM5OS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgODM5OS4wMCkKKyAgICAgIChjaGlsZHJl
biAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIw
LjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAg
MjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
KQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEu
MDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAg
MTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjAuMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAg
KQorKQorCitJdGVyYXRpb24gMTUsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91
bmRzIDc4NS4wMCA5MTY3LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAoYm91bmRzIDc4NS4wMCA5MTY3LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAg
ICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAg
MjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAu
MDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVy
YXRpb24gMTYsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA5
OTM1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRz
IDc4NS4wMCA5OTM1LjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAy
MDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hp
bGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAg
ICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMTcsIG5vIGxheWVyIHRyZWUgcHJvZHVj
ZWQuCitJdGVyYXRpb24gMTgsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRz
IDc4NS4wMCAxMDYzOS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgKGJvdW5kcyA3ODUuMDAgMTA2MzkuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAy
MDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRl
cmF0aW9uIDE5LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDIwLCBsYXllciB0
cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTExOTkuMDApCisgIChjaGls
ZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDExMTk5LjAw
KQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAw
KQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4g
MQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEw
LjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAg
ICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjAuMDAg
MjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRp
b24gMjEsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxMTk5
OS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3
ODUuMDAgMTE5OTkuMDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIw
Mi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGls
ZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAg
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICAp
CisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDAp
CisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAg
ICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEx
MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAw
KQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIy
LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTI5NDMuMDAp
CisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAw
IDEyOTQzLjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAg
MjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4g
NAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEu
MDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAg
ICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAg
ICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3Vu
ZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyMywgbGF5ZXIgdHJlZToKKyhHcmFwaGlj
c0xheWVyCisgIChib3VuZHMgNzg1LjAwIDEzODA3LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChH
cmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMzgwNy4wMCkKKyAgICAgIChjaGls
ZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAu
MDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUu
MDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkK
KyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAw
KQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJ
dGVyYXRpb24gMjQsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gMjUsIGxheWVy
IHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxNDY4Ny4wMCkKKyAgKGNo
aWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTQ2ODcu
MDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDAp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChj
aGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
ICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEu
MDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAu
MDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVy
YXRpb24gMjYsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAx
NTQ4Ny4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5k
cyA3ODUuMDAgMTU0ODcuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRz
IDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChj
aGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisg
ICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQor
ICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAw
IDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDI3LCBubyBsYXllciB0cmVl
IHByb2R1Y2VkLgorSXRlcmF0aW9uIDI4LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0
aW9uIDI5LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQt
c2Nyb2xsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjA3
NjI5Mjk0MTYxOTNjZDc0ZmFkMzRkZDMzZTA1YTA4NWVjMmNkYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8t
Y29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDE0MCBAQAorPCFET0NUWVBFIGh0
bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJo
dHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgPHRpdGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQg
c2Nyb2xsaW5nPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVu
Ij4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDog
MjAwcHg7CisgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgbWFyZ2luOiAyMHB4OworICAg
ICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAg
ICAgIHdpZHRoOiAxODBweDsKKyAgICAgIGhlaWdodDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBw
eDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgfQorCisgICAgLnBvc2l0aW9uZWQgeworICAgICAgd2lkdGg6IDEyMHB4OworICAg
ICAgaGVpZ2h0OiAyNDBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIH0KKworICAgICNwcmVkZWNlc3NvciB7CisgICAgICBs
ZWZ0OiAyMHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNzdWNjZXNzb3Igewor
ICAgICAgbGVmdDogMTYwcHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgfQorICA8L3N0eWxlPgor
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwodHJ1ZSk7CisKKyAgICBmdW5j
dGlvbiB3cml0ZShzdHIpCisgICAgeworICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJyk7CisgICAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHN0ciArICdcbicpOworICAgICAgcHJlLmFwcGVuZENoaWxkKHRleHQpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgeworICAgICAgdmFyIHByZWRlY2Vzc29yID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByZWRlY2Vzc29yJyk7CisgICAgICB2YXIgc3VjY2Vzc29y
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1Y2Nlc3NvcicpOworICAgICAgdmFyIGNvbnRh
aW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKKyAgICAgIHZhciBm
aXJzdENoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0Q2hpbGQnKTsKKyAgICAg
IHZhciBzZWNvbmRDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWNvbmRDaGlsZCcp
OworICAgICAgdmFyIGNvdW50ID0gMDsKKworICAgICAgZm9yIChpID0gMDsgaSA8IDM7ICsraSkg
eworICAgICAgICBmb3IgKGogPSAwOyBqIDwgNTsgKytqKSB7CisgICAgICAgICAgZm9yIChrID0g
MDsgayA8IDI7ICsraykgeworICAgICAgICAgICAgdmFyIG1pblpJbmRleCA9IDA7CisgICAgICAg
ICAgICB2YXIgbWF4WkluZGV4ID0gMDsKKyAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAg
ICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnMSc7CisgICAgICAgICAgICAgIHNl
Y29uZENoaWxkLnN0eWxlLnpJbmRleCA9ICczJzsKKyAgICAgICAgICAgICAgbWF4WkluZGV4ID0g
MzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PSAxKSB7CisgICAgICAgICAgICAgIGZpcnN0
Q2hpbGQuc3R5bGUuekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5
bGUuekluZGV4ID0gJy0zJzsKKyAgICAgICAgICAgICAgbWluWkluZGV4ID0gLTM7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICct
MSc7CisgICAgICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxlLnpJbmRleCA9ICczJzsKKyAgICAg
ICAgICAgICAgbWluWkluZGV4ID0gLTE7CisgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBzaWJsaW5nID0gcHJlZGVjZXNzb3I7Cisg
ICAgICAgICAgICB2YXIgdG9IaWRlID0gc3VjY2Vzc29yOworICAgICAgICAgICAgaWYgKGsgPT0g
MSkgeworICAgICAgICAgICAgICBzaWJsaW5nID0gc3VjY2Vzc29yOworICAgICAgICAgICAgICB0
b0hpZGUgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdG9IaWRl
LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLmRpc3Bs
YXkgPSAnJzsKKyAgICAgICAgICAgIGlmIChqID09IDApIHsKKyAgICAgICAgICAgICAgc2libGlu
Zy5zdHlsZS56SW5kZXggPSAobWF4WkluZGV4ICsgMSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAoaiA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4
ID0gKG1pblpJbmRleCAtIDEpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGog
PT0gMikgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1heFpJbmRleC50
b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDMpIHsKKyAgICAgICAgICAg
ICAgc2libGluZy5zdHlsZS56SW5kZXggPSBtaW5aSW5kZXgudG9TdHJpbmcoKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gKChtaW5a
SW5kZXggKyBtYXhaSW5kZXgpIC8gMikudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLy8gRm9yY2UgYSBzdHlsZSByZWNhbGMuCisgICAgICAgICAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldFRvcDsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgICAgdmFyIGxheWVyVHJlZSA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNU
ZXh0KGRvY3VtZW50KTsKKyAgICAgICAgICAgICAgaWYgKGxheWVyVHJlZSkgeworICAgICAgICAg
ICAgICAgIHdyaXRlKCdJdGVyYXRpb24gJyArIGNvdW50LnRvU3RyaW5nKCkgKworICAgICAgICAg
ICAgICAgICAgICAgICcsIGxheWVyIHRyZWU6Jyk7CisgICAgICAgICAgICAgICAgd3JpdGUobGF5
ZXJUcmVlKTsKKyAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgd3JpdGUoJ0l0
ZXJhdGlvbiAnICsgY291bnQudG9TdHJpbmcoKSArCisgICAgICAgICAgICAgICAgICAgICAgJywg
bm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4nKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
Y291bnQrKzsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKKyAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICA8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJwcmVk
ZWNlc3NvciI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciIgaWQ9ImNvbnRhaW5lciI+
CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQiIGlkPSJmaXJzdENoaWxkIj48L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9InNlY29uZENoaWxkIj48L2Rpdj4KKyAgPC9kaXY+Cisg
IDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJzdWNjZXNzb3IiPjwvZGl2PgorICA8cHJlIGlk
PSJjb25zb2xlIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176059</attachid>
            <date>2012-11-26 14:01:40 -0800</date>
            <delta_ts>2012-11-27 11:59:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121126165918.patch</filename>
            <type>text/plain</type>
            <size>54190</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI3YmYzMGVkODA2MDcz
ZTM2ZDY1ZWZlNjk2YzM3MmQyYmU3Yzc5MS4uM2JkNWQ3YWJiY2U5MjZjYTJkMTllMDg0OTEyMDA1
NzI0OGY0ZjM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTExLTI2ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRvIGNoZWNr
IHRoaXMsIEkgZW5zdXJlIHRoYXQgdGhlIGNhbmRpZGF0ZSBlbGVtZW50CisgICAgICAgIGFuZCBh
bGwgaXRzIGRlc2NlbmRhbnRzIGFwcGVhciBhcyBhIGNvbnRpbnVvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIG90aGVy
IGVsZW1lbnRzIGFyZSAnYmV0d2VlbicgYW55IG9mCisgICAgICAgIHRoZSBjYW5kaWRhdGVzIGRl
c2NlbmRhbnRzIHdoZW4gd2Ugc29ydCBpbiBwYWludCBvcmRlciwgdGhlbiB3ZSdyZSBzYWZlLgor
ICAgICAgICBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRpdmUsIGhvd2V2ZXIuIFdlIGNvdWxkLCBp
biBmdXR1cmUsIG9ubHkgY29uc2lkZXIKKyAgICAgICAgc3RhY2tpbmcgcHJvYmxlbXMgYmV0d2Vl
biBlbGVtZW50cyB0aGF0IGFjdHVhbGx5IG92ZXJsYXAuCisKKyAgICAgICAgVGVzdDogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGluZy1zY3JvbGxp
bmcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxl
ZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1
cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJl
Y3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCk6CisgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBSZW5k
ZXJMYXllciBjb3VsZCBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0IHdpdGhvdXQKKyAgICAgICAg
ICBhZmZlY3RpbmcgdGhlIHN0YWNraW5nIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRh
dGVkIHRvIHJldHVybiB0cnVlIGlmIGl0IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcK
KyAgICAgICAgICBjb250ZXh0LCBhbmQgdGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMpOgorICAgICAgICAgIFdlIG5vdyBkaXJ0eSBt
X2NhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHREaXJ0eSBmb3Igb3VyCisgICAgICAg
ICAgZGVzY2VuZGFudHMgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgICBXZSBu
b3cgZGlydHkgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0RGlydHkgZm9yIG91
cgorICAgICAgICAgIGRlc2NlbmRhbnRzIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRCZU5vcm1hbEZsb3dPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRCZVNlbGZQYWludGluZ0xheWVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFJlbmRlckxh
eWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRl
ZFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KToKKyAgICAgICAgICBNaW5v
ciBjaGFuZ2UgdG8gdGhlIGNsaXBwaW5nIGJvdW5kcyBvZiB0aGUgc2Nyb2xsaW5nIGxheWVyLiBJ
ZiB3ZSdyZQorICAgICAgICAgIG5vdCB1c2luZyBvdmVybGF5IHNjcm9sbGJhcnMsIHdlIGRvbid0
IHdhbnQgdGhlIGNsaXAgdG8gaW5jbHVkZSB0aGVtLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0
ZXJMYXlvdXQpOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxT
ZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbCk6CisgICAgICAg
ICAgQWxsb3dzIGVuYWJsaW5nIHRoZSBzZXR0aW5nIGluIGxheW91dCB0ZXN0cy4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAg
ICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbDoKKwogMjAxMi0xMS0yNiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIFJlc291cmNlQnVmZmVyOjphcHBlbmQoQ0ZEYXRhUmVmKSB0byBnZXQg
Y29kZSB0byBjb21waWxlIHdpdGggVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggM2M3Y2Y2ZTU2ZGM3
N2IyMWI0Mjk4MTk4NWMwM2QwYTBlMDk4N2EyZC4uYmJmMzhkYTY2MjkzYzk0NjEyNTk0YmE3NzMw
NmMyMTQyYTI0YzYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CkBAIC0xNDUsNiArMTQ1LDkgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlbmRlcmVyKQogICAgICwgbV9ub3JtYWxGbG93TGlzdERpcnR5KHRydWUp
CiAgICAgLCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1f
aGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkoZmFsc2UpCisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICwgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdD
b250ZXh0KGZhbHNlKQorI2VuZGlmCiAgICAgLCBtX2lzUm9vdExheWVyKHJlbmRlcmVyLT5pc1Jl
bmRlclZpZXcoKSkKICAgICAsIG1fdXNlZFRyYW5zcGFyZW5jeShmYWxzZSkKICAgICAsIG1fcGFp
bnRpbmdJbnNpZGVSZWZsZWN0aW9uKGZhbHNlKQpAQCAtNDY4LDYgKzQ3MSwxNTYgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5k
YW50U3RhdHVzKCkKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXI6OmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBy
ZW5kZXJlcigpLT5mcmFtZSgpCisgICAgICAgICYmIHJlbmRlcmVyKCktPmZyYW1lKCktPnBhZ2Uo
KQorICAgICAgICAmJiByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKTsKK30KKworLy8g
SWYgd2UgYXJlIGEgc3RhY2tpbmcgY29udGV4dCwgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu
ZXJhdGUgYSB2YWx1ZSBmb3IKKy8vIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4
dCBmb3IgZXZlcnkgbGF5ZXIgaW4gdGhlIHN0YWNraW5nIAorLy8gY29udGV4dCB3ZSBlc3RhYmxp
c2guIEl0IGlzIHNhZmUgdG8gYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0aGlzIAorLy8g
Y2hhbmdlIHdvdWxkIG5vdCBhbHRlciB0aGUgc3RhY2tpbmcgb3JkZXIgb2YgbGF5ZXJzIG9uIHRo
ZSBwYWdlLiBUaGF0IGNhbiAKKy8vIG9ubHkgaGFwcGVuIGlmIGEgbm9uLWRlc2NlbmRhbnQgYXBw
ZWFycyBiZXR3ZWVuIHVzIGFuZCBvdXIgZGVzY2VuZGFudHMgaW4gCisvLyBzdGFja2luZyBvcmRl
ci4gSGVyZSdzIGFuIGV4YW1wbGU6CisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgfCAgXC4KKy8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgICBCICAgQworLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvXCAgIHwgICAvXC4KKy8vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwIC04ICBEICAyICA3CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKKy8vCisvLyBJJ3ZlIGxh
YmVsZWQgb3VyIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIEEsIEIsIEMsIGFuZCBELCBvdXIgc3Rh
Y2tpbmcKKy8vIGNvbnRleHQgZGVzY2VuZGFudHMgd2l0aCB0aGVpciB6IGluZGljZXMsIGFuZCB1
cyB3aXRoICd0aGlzJyAod2UncmUgYQorLy8gc3RhY2tpbmcgY29udGV4dCBhbmQgb3VyIHpJbmRl
eCBkb2Vzbid0IG1hdHRlciBoZXJlKS4gVGhlc2Ugbm9kZXMgYXBwZWFyIGluCisvLyB0aHJlZSBs
aXN0czogcG9zWk9yZGVyLCBuZWdaT3JkZXIsIGFuZCBub3JtYWwgZmxvdyAoa2VlcCBpbiBtaW5k
IHRoYXQgbm9ybWFsCisvLyBmbG93IGxheWVycyBkb24ndCBvdmVybGFwKS4gU28gaWYgd2UgYXJy
YW5nZSB0aGVzZSBsaXN0cyBpbiBvcmRlciB3ZSBnZXQgb3VyCisvLyBzdGFja2luZyBvcmRlcjoK
Ky8vCisvLyAgICAgICAgICAgICAgICAgICAgIFstOF0sIFtBLURdLCBbMCwgMiwgNSwgN10tLT4g
cG9zIHotb3JkZXIuCisvLyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfAorLy8gICAgICAg
IE5lZyB6LW9yZGVyLiA8LSsgICAgICstLT4gTm9ybWFsIGZsb3cgZGVzY2VuZGFudHMuCisvLwor
Ly8gV2UgY2FuIHRoZW4gYXNzaWduIG5ldywgJ3N0YWNraW5nJyBvcmRlciBpbmRpY2VzIHRvIHRo
ZXNlIGVsZW1lbnRzIGFzIGZvbGxvd3M6CisvLworLy8gICAgICAgICAgICAgICAgICAgICBbLThd
LCBbQS1EXSwgWzAsIDIsIDUsIDddCisvLyAnU3RhY2tpbmcnIGluZGljZXM6ICAtMSAgICAgMCAg
ICAgMSAgMiAgMyAgNAorLy8KKy8vIE5vdGUgdGhhdCB0aGUgbm9ybWFsIGZsb3cgZGVzY2VuZGFu
dHMgY2FuIHNoYXJlIGFuIGluZGV4IGJlY2F1c2UgdGhleSBkb24ndAorLy8gc3RhY2svb3Zlcmxh
cC4gTm93IG91ciBwcm9ibGVtIGJlY29tZXMgdmVyeSBzaW1wbGU6IGEgbGF5ZXIgY2FuIHNhZmVs
eSBiZWNvbWUKKy8vIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0aGUgc3RhY2tpbmctb3JkZXIgaW5k
aWNlcyBvZiBpdCBhbmQgaXRzIGRlc2NlbmRhbnRzCisvLyBhcHBlYXIgaW4gYSBjb250aWd1b3Vz
IGJsb2NrIGluIHRoZSBsaXN0IG9mIHN0YWNraW5nIGluZGljZXMuIFRoaXMgcHJvYmxlbQorLy8g
Y2FuIGJlIHNvbHZlZCB2ZXJ5IGVmZmljaWVudGx5IGJ5IGNhbGN1bGF0aW5nIHRoZSBtaW4vbWF4
IHN0YWNraW5nIGluZGljZXMgaW4KKy8vIHRoZSBzdWJ0cmVlLCBhbmQgdGhlIG51bWJlciBzdGFj
a2luZyBjb250ZXh0IGRlc2NlbmRhbnRzLiBPbmNlIHdlIGhhdmUgdGhpcworLy8gaW5mb3JtYXRp
b24sIHdlIGtub3cgdGhhdCB0aGUgc3VidHJlZSdzIGluZGljZXMgZm9ybSBhIGNvbnRpZ3VvdXMg
YmxvY2sgaWY6CisvLworLy8gICAgICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4
ID09IG51bVNDRGVzY2VuZGFudHMKKy8vCisvLyBTbyBmb3Igbm9kZSBBIGluIHRoZSBleGFtcGxl
IGFib3ZlIHdlIHdvdWxkIGhhdmU6CisvLyAgIG1heFN0YWNrSW5kZXggPSAxCisvLyAgIG1pblN0
YWNrSW5kZXggPSAtMQorLy8gICBudW1TQ0RlY2VuZGFudHMgPSAyCisvLworLy8gYW5kIHNvLAor
Ly8gICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5kZXggPT0gbnVtU0NEZXNjZW5kYW50
cworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgMSAtICgtMSkgPT0gMgorLy8gID09PT4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgPT0gMgorLy8KKy8vICBTaW5jZSB0aGlzIGlz
IHRydWUsIEEgY2FuIHNhZmVseSBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0LgorLy8KKy8vICAg
bWF4U3RhY2tJbmRleCA9IDQKKy8vICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJlY2F1c2UgQyBo
YXMgc3RhY2tpbmcgaW5kZXggMC4KKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFu
ZCBzbywKKy8vICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVz
Y2VuZGFudHMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgIDQgLSAwID09IDIKKy8v
ICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ID09IDIKKy8vCisvLyBTaW5jZSB0
aGlzIGlzIGZhbHNlLCBDIGNhbm5vdCBiZSBzYWZlbHkgcHJvbW90ZWQgdG8gYSBzdGFja2luZyBj
b250ZXh0LiBUaGlzCisvLyBoYXBwZW5lZCBiZWNhdXNlIG9mIHRoZSBlbGVtZW50cyB3aXRoIHot
aW5kZXggNSBhbmQgMC4gTm93IGlmIDUgaGFkIGJlZW4gYSAKKy8vIGNoaWxkIG9mIEMgcmF0aGVy
IHRoYW4gRCwgYW5kIEEgaGFkIG5vIGNoaWxkIHdpdGggWiBpbmRleCAwLCB3ZSB3b3VsZCBoYXZl
IGhhZDoKKy8vCisvLyAgIG1heFN0YWNrSW5kZXggPSAzCisvLyAgIG1pblN0YWNrSW5kZXggPSAw
IDwtLSBiZWNhdXNlIEMgaGFzIHN0YWNraW5nIGluZGV4IDAuCisvLyAgIG51bVNDRGVjZW5kYW50
cyA9IDMKKy8vCisvLyBhbmQgc28sCisvLyAgICAgICBtYXhTdGFja0luZGV4IC0gbWluU3RhY2tJ
bmRleCA9PSBudW1TQ0Rlc2NlbmRhbnRzCisvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAg
ICAzIC0gMCA9PSAzCisvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMyA9PSAz
CisvLworLy8gIEFuZCB3ZSB3b3VsZCBjb25jbHVkZSB0aGF0IEMgY291bGQgYmUgcHJvbW90ZWQu
Cit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRl
eHQoKQoreworICAgIGlmICghaXNTdGFja2luZ0NvbnRleHQoKSB8fCAhYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBBU1NFUlQoIW1fbm9ybWFsRmxvd0xpc3REaXJ0eSk7CisgICAgQVNTRVJUKCFtX3pPcmRlckxp
c3RzRGlydHkpOworCisgICAgLy8gQ3JlYXRlIGEgcmV2ZXJzZSBsb29rdXAuCisgICAgSGFzaE1h
cDxjb25zdCBSZW5kZXJMYXllciosIGludD4gbG9va3VwOworCisgICAgaWYgKG1fbmVnWk9yZGVy
TGlzdCkgeworICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBtX25lZ1pPcmRlckxpc3QtPnNpemUo
KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAg
ICAgICAgICBSZW5kZXJMYXllciogY3VycmVudExheWVyID0gbV9uZWdaT3JkZXJMaXN0LT5hdChp
KTsKKyAgICAgICAgICAgIGlmICghY3VycmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbG9va3VwLnNldChjdXJyZW50
TGF5ZXIsIC1zdGF0aWNfY2FzdDxpbnQ+KGxpc3RTaXplIC0gaSkpOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkgeworICAgICAgICBzaXplX3QgbGlzdFNpemUg
PSBtX3Bvc1pPcmRlckxpc3QtPnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJMYXllciogY3VycmVudExheWVy
ID0gbV9wb3NaT3JkZXJMaXN0LT5hdChpKTsKKyAgICAgICAgICAgIGlmICghY3VycmVudExheWVy
LT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5ZXIsIHN0YXRpY19jYXN0PGludD4oaSArIDEpKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGludCBtaW5JbmRleCA9IDA7CisgICAgaW50IG1heElu
ZGV4ID0gMDsKKyAgICBpbnQgY291bnQgPSAwOworICAgIGJvb2wgZmlyc3RJdGVyYXRpb24gPSB0
cnVlOworICAgIHVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJlY3Vyc2l2
ZShsb29rdXAsIG1pbkluZGV4LCBtYXhJbmRleCwgY291bnQsIGZpcnN0SXRlcmF0aW9uKTsKK30K
Kwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250
ZXh0UmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8Y29uc3QgUmVuZGVyTGF5ZXIqLCBpbnQ+JiBsb29r
dXAsIGludCYgbWluSW5kZXgsIGludCYgbWF4SW5kZXgsIGludCYgY291bnQsIGJvb2wgZmlyc3RJ
dGVyYXRpb24pCit7CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkgJiYgIWZpcnN0SXRlcmF0
aW9uKSB7CisgICAgICAgIEFTU0VSVChsb29rdXAuY29udGFpbnModGhpcykpOworICAgICAgICBt
aW5JbmRleCA9IHN0ZDo6bWluKG1pbkluZGV4LCBsb29rdXAuZ2V0KHRoaXMpKTsKKyAgICAgICAg
bWF4SW5kZXggPSBzdGQ6Om1heChtYXhJbmRleCwgbG9va3VwLmdldCh0aGlzKSk7CisgICAgICAg
IGNvdW50Kys7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKFJlbmRlckxheWVy
KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpIHsKKyAgICAgICAgaW50IGNoaWxkTWluSW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRN
YXhJbmRleCA9IDA7CisgICAgICAgIGludCBjaGlsZENvdW50ID0gMDsKKyAgICAgICAgY2hpbGQt
PnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJlY3Vyc2l2ZShsb29rdXAs
IGNoaWxkTWluSW5kZXgsIGNoaWxkTWF4SW5kZXgsIGNoaWxkQ291bnQsIGZhbHNlKTsKKyAgICAg
ICAgaWYgKGNoaWxkQ291bnQpIHsKKyAgICAgICAgICAgIGNvdW50ICs9IGNoaWxkQ291bnQ7Cisg
ICAgICAgICAgICBtaW5JbmRleCA9IHN0ZDo6bWluKG1pbkluZGV4LCBjaGlsZE1pbkluZGV4KTsK
KyAgICAgICAgICAgIG1heEluZGV4ID0gc3RkOjptYXgobWF4SW5kZXgsIGNoaWxkTWF4SW5kZXgp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpKSB7Cisg
ICAgICAgIGJvb2wgbmV3VmFsdWUgPSBtYXhJbmRleCAtIG1pbkluZGV4ID09IGNvdW50OworICAg
ICAgICBtX2NhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQgPSBuZXdWYWx1ZTsKKyAg
ICB9Cit9CisKKwogdm9pZCBSZW5kZXJMYXllcjo6Y29tcHV0ZVJlcGFpbnRSZWN0cyhjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBSZW5kZXJHZW9t
ZXRyeU1hcCogZ2VvbWV0cnlNYXApCiB7CiAgICAgQVNTRVJUKCFtX3Zpc2libGVDb250ZW50U3Rh
dHVzRGlydHkpOwpAQCAtNzA0LDYgKzg1NywxNiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQ
YWdpbmF0aW9uKCkKICAgICB9CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Citib29sIFJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkg
Y29uc3QKK3sKKyAgICBpZiAoaXNTdGFja2luZ0NvbnRleHQoKSB8fCAhc3RhY2tpbmdDb250ZXh0
KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIG1fY2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dDsKK30KKyNlbmRpZgorCiB2b2lkIFJlbmRlckxheWVyOjpzZXRI
YXNWaXNpYmxlQ29udGVudCgpCiB7IAogICAgIGlmIChtX2hhc1Zpc2libGVDb250ZW50ICYmICFt
X3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkpIHsKQEAgLTE2MTgsMTMgKzE3ODEsMjAgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6Y29udmVydFRvTGF5ZXJDb29yZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFu
Y2VzdG9yTGF5ZXIsIExheW91dFIKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBi
b29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0CiB7CisgICAg
cmV0dXJuIGlzQ29tcG9zaXRlZCgpICYmIGJhY2tpbmcoKS0+c2Nyb2xsaW5nTGF5ZXIoKTsKK30K
KworYm9vbCBSZW5kZXJMYXllcjo6bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QKK3sK
ICAgICBpZiAoIXNjcm9sbHNPdmVyZmxvdygpIHx8ICFhbGxvd3NTY3JvbGxpbmcoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgYm9vbCBmb3JjZVVzZUNvbXBvc2l0ZWRTY3JvbGxpbmcg
PSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgICYmIGNh
blNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKTsKKwogI2lmIEVOQUJMRShBQ0NFTEVS
QVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCi0gICAgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCkt
PnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKTsKKyAgICByZXR1cm4gZm9yY2VVc2VDb21wb3Np
dGVkU2Nyb2xsaW5nIHx8IHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3Jv
bGxpbmcoKTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBmb3JjZVVzZUNv
bXBvc2l0ZWRTY3JvbGxpbmc7CiAjZW5kaWYKIH0KICNlbmRpZgpAQCAtMTc4OSw4ICsxOTU5LDE1
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKICAgICAgICAgZnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQo
cXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCisgICAgYm9vbCByZXF1aXJlc1Jl
cGFpbnQgPSB0cnVlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlm
IChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCkgJiYgdXNlc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcoKSkKKyAgICAgICAgcmVxdWlyZXNSZXBhaW50ID0gZmFsc2U7CisjZW5kaWYKKwogICAg
IC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJlcGFpbnQgb2Ygb3VyIG9iamVjdC4KLSAgICBpZiAo
dmlldyAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICBpZiAodmlldyAmJiByZXF1
aXJlc1JlcGFpbnQpCiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnRVc2luZ0NvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLCBwaXhlbFNuYXBwZWRJbnRSZWN0KG1fcmVwYWludFJlY3QpKTsKIAog
ICAgIC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwgRE9NIGV2ZW50LgpAQCAtNDc4MCw4ICs0OTU3LDEx
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMoKQogICAgIG1fek9yZGVyTGlz
dHNEaXJ0eSA9IHRydWU7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAg
aWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgaWYgKCFyZW5k
ZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAgY29tcG9zaXRvcigp
LT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CisgICAgICAgIGlmIChhY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAgICAgICBj
b21wb3NpdG9yKCktPnNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KCk7
CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTQ4MDEsOCArNDk4MSwxMSBAQCB2b2lkIFJlbmRlckxh
eWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkKICAgICBtX25vcm1hbEZsb3dMaXN0RGlydHkgPSB0
cnVlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghcmVuZGVy
ZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgIGlmICghcmVuZGVyZXIoKS0+ZG9j
dW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7CiAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0Q29tcG9z
aXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOworICAgICAgICBpZiAoYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICAgICAgY29tcG9zaXRvcigp
LT5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpOworICAgIH0KICNl
bmRpZgogfQogCkBAIC00OTA3LDYgKzUwOTAsOCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVM
YXllckxpc3RzSWZOZWVkZWQoKQogICAgICAgICByZWZsZWN0aW9uTGF5ZXItPnVwZGF0ZVpPcmRl
ckxpc3RzKCk7CiAgICAgICAgIHJlZmxlY3Rpb25MYXllci0+dXBkYXRlTm9ybWFsRmxvd0xpc3Qo
KTsKICAgICB9CisKKyAgICB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQo
KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdBbmRMYXllckxpc3Rz
SWZOZWVkZWQoKQpAQCAtNDk5NCwxNCArNTE3OSwxNCBAQCBib29sIFJlbmRlckxheWVyOjpzaG91
bGRCZU5vcm1hbEZsb3dPbmx5KCkgY29uc3QKICAgICAgICAgICAgICYmICFyZW5kZXJlcigpLT5o
YXNCbGVuZE1vZGUoKQogI2VuZGlmCiAgICAgICAgICAgICAmJiAhaXNUcmFuc3BhcmVudCgpCi0g
ICAgICAgICAgICAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICAgICAgICAgICYm
ICFuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKIH0KIAogYm9vbCBSZW5kZXJMYXllcjo6c2hv
dWxkQmVTZWxmUGFpbnRpbmdMYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFpc05vcm1hbEZs
b3dPbmx5KCkKICAgICAgICAgfHwgaGFzT3ZlcmxheVNjcm9sbGJhcnMoKQotICAgICAgICB8fCB1
c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpCisgICAgICAgIHx8IG5lZWRzQ29tcG9zaXRlZFNjcm9s
bGluZygpCiAgICAgICAgIHx8IHJlbmRlcmVyKCktPmhhc1JlZmxlY3Rpb24oKQogICAgICAgICB8
fCByZW5kZXJlcigpLT5oYXNNYXNrKCkKICAgICAgICAgfHwgcmVuZGVyZXIoKS0+aXNUYWJsZVJv
dygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDY1ZjEwNzBhYjJk
NjZkZjJkOTQ3MTY1NGVjYzljYzBlMDE3YzYxYzUuLmIxY2JhOTMxOTM3NDc0OWU5NzkyMDA2Mjli
MGIyY2E2NGM4YTNkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBA
IC02NTYsNiArNjU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5
ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXll
ciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgdXNlc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBPVkVSUklERTsKKyAgICBib29sIG5lZWRzQ29tcG9z
aXRlZFNjcm9sbGluZygpIGNvbnN0OwogI2Vsc2UKICAgICBib29sIGlzQ29tcG9zaXRlZCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNDb21wb3NpdGVkTWFzaygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC03MjMsNiArNzI0LDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCk7CiAgICAg
dm9pZCBkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnRTdGF0
dXMoKTsKIAorICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xs
RW5hYmxlZCgpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tp
bmdDb250ZXh0KCk7CisgICAgdm9pZCB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0Nv
bnRleHRSZWN1cnNpdmUoY29uc3QgSGFzaE1hcDxjb25zdCBSZW5kZXJMYXllciosIGludD4mLCBp
bnQmIG1pbkluZGV4LCBpbnQmIG1heEluZGV4LCBpbnQmIGNvdW50LCBib29sIGZpcnN0SXRlcmF0
aW9uKTsKKwogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRSZWN0cyhjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBSZW5kZXJHZW9tZXRyeU1hcCogPSAw
KTsKICAgICB2b2lkIGNvbXB1dGVSZXBhaW50UmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwog
ICAgIHZvaWQgY2xlYXJSZXBhaW50UmVjdHMoKTsKQEAgLTkyNiw2ICs5MzEsOSBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbihJbmRpcmVjdENvbXBvc2l0
aW5nUmVhc29uIHJlYXNvbikgeyBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gPSByZWFzb247
IH0KICAgICBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
PihtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24pOyB9CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRl
Rm9ySW5kaXJlY3RSZWFzb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5n
UmVhc29uOyB9CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgeiBvcmRlcmluZyB3b3VsZCBub3Qg
Y2hhbmdlIGlmIHRoaXMgbGF5ZXIgd2VyZSB0byBlc3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0
LgorICAgIGJvb2wgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Owog
I2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpAQCAtOTY2LDYg
Kzk3NCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVz
Y2VuZGFudCA6IDE7CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERp
cnR5IDogMTsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBib29sIG1f
Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCA6IDE7CisjZW5kaWYKKwogICAgIGNv
bnN0IGJvb2wgbV9pc1Jvb3RMYXllciA6IDE7CiAKICAgICBib29sIG1fdXNlZFRyYW5zcGFyZW5j
eSA6IDE7IC8vIFRyYWNrcyB3aGV0aGVyIHdlIG5lZWQgdG8gY2xvc2UgYSB0cmFuc3BhcmVudCBs
YXllciwgaS5lLiwgd2hldGhlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCA4OGJlMDhkZmViZTVmOWE3Y2I3ODkyNTgwNjQ4YjQ0YmJk
YjkzYzc0Li4zMGYxNTIwZmRkNjMxMzQ1NWNmZmEwNzAzNzYzNWU2MDQzOWNlMTUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMzQw
LDcgKzM0MCw3IEBAIHN0YXRpYyBib29sIGhhc05vblplcm9UcmFuc2Zvcm1PcmlnaW4oY29uc3Qg
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHN0YXRpYyBib29sIGxheWVyT3JBbmNlc3RvcklzVHJh
bnNmb3JtZWRPclVzaW5nQ29tcG9zaXRlZFNjcm9sbGluZyhSZW5kZXJMYXllciogbGF5ZXIpCiB7
CiAgICAgZm9yIChSZW5kZXJMYXllciogY3VyciA9IGxheWVyOyBjdXJyOyBjdXJyID0gY3Vyci0+
cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGN1cnItPmhhc1RyYW5zZm9ybSgpIHx8IGN1cnItPnVz
ZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgICAgIGlmIChjdXJyLT5oYXNUcmFuc2Zvcm0o
KSB8fCBjdXJyLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICAKQEAgLTQ0OCw3ICs0NDgsNyBAQCBib29sIFJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgIGJvb2wgbmVl
ZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIgPSBjb21wb3NpdG9yLT5jbGlwc0NvbXBvc2l0aW5n
RGVzY2VuZGFudHMobV9vd25pbmdMYXllcik7CiAKICAgICAvLyBPdXIgc2Nyb2xsaW5nIGxheWVy
IHdpbGwgY2xpcC4KLSAgICBpZiAobV9vd25pbmdMYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKSkKKyAgICBpZiAobV9vd25pbmdMYXllci0+bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkp
CiAgICAgICAgIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyID0gZmFsc2U7CiAKICAgICBp
ZiAodXBkYXRlQ2xpcHBpbmdMYXllcnMoY29tcG9zaXRvci0+Y2xpcHBlZEJ5QW5jZXN0b3IobV9v
d25pbmdMYXllciksIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyKSkKQEAgLTQ1Nyw3ICs0
NTcsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZp
Z3VyYXRpb24oKQogICAgIGlmICh1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKHJlcXVpcmVz
SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCksIHJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXll
cigpLCByZXF1aXJlc1Njcm9sbENvcm5lckxheWVyKCkpKQogICAgICAgICBsYXllckNvbmZpZ0No
YW5nZWQgPSB0cnVlOwogCi0gICAgaWYgKHVwZGF0ZVNjcm9sbGluZ0xheWVycyhtX293bmluZ0xh
eWVyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKSkKKyAgICBpZiAodXBkYXRlU2Nyb2xsaW5n
TGF5ZXJzKG1fb3duaW5nTGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpKSkKICAgICAg
ICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGlmIChsYXllckNvbmZpZ0NoYW5n
ZWQpCkBAIC02MDksNyArNjA5LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdy
YXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgZWxzZQogICAgICAgICBncmFwaGljc0xheWVyUGFy
ZW50TG9jYXRpb24gPSByZW5kZXJlcigpLT52aWV3KCktPmRvY3VtZW50UmVjdCgpLmxvY2F0aW9u
KCk7CiAKLSAgICBpZiAoY29tcEFuY2VzdG9yICYmIGNvbXBBbmNlc3Rvci0+dXNlc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoKSkgeworICAgIGlmIChjb21wQW5jZXN0b3IgJiYgY29tcEFuY2VzdG9yLT5u
ZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkgewogICAgICAgICBSZW5kZXJCb3gqIHJlbmRlckJv
eCA9IHRvUmVuZGVyQm94KGNvbXBBbmNlc3Rvci0+cmVuZGVyZXIoKSk7CiAgICAgICAgIEludFNp
emUgc2Nyb2xsT2Zmc2V0ID0gY29tcEFuY2VzdG9yLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsK
ICAgICAgICAgSW50UG9pbnQgc2Nyb2xsT3JpZ2luKHJlbmRlckJveC0+Ym9yZGVyTGVmdCgpLCBy
ZW5kZXJCb3gtPmJvcmRlclRvcCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggODcwYmYxZGRmYTczOTU5YzBlZTBhMmNj
MThlOWVmYTg4NTljZjIxYy4uMzQyMGUwMGQ1YzI5YWE2NDZhNjUyMTZkZTBmMTBlYWI3MThiM2M2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKQEAgLTE5NzIsNyArMTk3Miw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlCiAK
IGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKSBjb25zdAogewotICAgIHJldHVy
biBsYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICByZXR1cm4gbGF5ZXItPm5l
ZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwogfQogCiBib29sIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6aXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24oUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaAppbmRleCA0ZDgyOGYxYTVmMWYxMDBiZjI0MGJjMzE0YjAzNzNhZGFiYmI1
NmY3Li5lOWMxMTAzYTVhODI4ZDFiNGM3MTZlYjQ2ODdkNTAyNDNlMjEwYmUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yMzEs
NiArMjMxLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRUcmFja2VkUmVwYWludFJlY3RzKCk7
CiAgICAgdm9pZCBzZXRUcmFja3NSZXBhaW50cyhib29sKTsKIAorICAgIHZvaWQgc2V0U2hvdWxk
UmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKSB7IG1fcmVldmFsdWF0ZUNvbXBvc2l0
aW5nQWZ0ZXJMYXlvdXQgPSB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgY2xhc3MgT3ZlcmxhcE1h
cDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXgg
ZGRhNDQzNTcwNTg0NGMxMzZjZWY2ZmYzY2EyNTdkYjU1OTNmN2I2ZS4uZTkyOWZkMGU3MDA2Y2Jh
OGViODAxNzFiZjE3YjliMWFiZWJjNzM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMTEsNiArMjExLDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxl
ZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9s
bGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6
OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygp
OworICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNj
ZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGI3NmZkOWVhYjI2OGQwZDIwYzkyNDFh
OWVkMzU4ODlkMmI3MDA0NTIuLjEzYTMxNmM0NGZiYWVlZGYxNjkyNGZmYWY0ODAxOTEyMjQ3ZDQ0
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xMDMs
NiArMTAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbAppbmRleCAwOWRhZTFlNTdkM2VjMjRlZWYzYjRiYjQxZmUzOWViODcxNzNmNjAzLi44NmJm
NTk1MmQzZjlmODFiMDJiMzIxODlmOTg4YTRhYzk3YjI1MzUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTI5LDYgKzI5LDcgQEAKICAgICB2b2lk
IHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24o
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEVu
YWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhpbiBib29sZWFuIGVuYWJsZWQpIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVy
Zmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
IHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxl
ZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0
TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CkBAIC02OSw3ICs3MCw2IEBACiAgICAgdm9pZCBzZXRXaW5kb3dGb2N1c1Jlc3RyaWN0
ZWQoaW4gYm9vbGVhbiByZXN0cmljdGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lk
IHNldERpYWxvZ0VsZW1lbnRFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpOwotCiAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNL
XSB2b2lkIHNldFNob3VsZERpc3BsYXlUcmFja0tpbmQoaW4gRE9NU3RyaW5nIGtpbmQsIGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIFtDb25kaXRpb25hbD1W
SURFT19UUkFDS10gYm9vbGVhbiBzaG91bGREaXNwbGF5VHJhY2tLaW5kKGluIERPTVN0cmluZyB0
cmFja0tpbmQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldE1lbW9yeUluZm9F
bmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MGNlOGY4MjA3NmUxZGRhM2Y3NjgwYzNkOGU2MTc1YzA3NGJiZDU4Ni4uNzU1MTJhZjgwZTEzZTk4
MGE4ZjM5ZmZlYzJkZmI2MjgzYWMwZTNkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEx
LTI2ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEF1dG9t
YXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb2Yg
ZWxlbWVudHMgdG8gZW5zdXJlIHRoYXQgd2Ugb25seSBhdXRvbWF0aWNhbGx5IG9wdCBpbnRvCisg
ICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIHdoZW4gaXQgaXMgc2FmZSB0byBkbyBzby4KKwor
ICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29t
cG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3Np
dGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5n
Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTI2ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgTW92ZSBtb3JlIGZ1bmN0aW9ucyBmcm9tIGludGVybmFscy5zZXR0aW5n
cyB0byBpbnRlcm5hbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQt
aW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQ0OTk1
NzU2OTI5Y2M2YmU0ZDlmYzEwYmZmZjEyNGYwZDM4Yzg2NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29t
cG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAxMCBAQAorSXRlcmF0
aW9uIDAsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDgwMC4wMCA2MDAu
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAw
LjAwIDYwMC4wMCkKKyAgICAgIChjaGlsZHJlbiA0CisgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAw
IDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVu
IDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAg
ICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAg
ICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAg
ICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEx
MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjAuMDAgMjAuMDAp
CisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMSwg
bGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDEzNzUuMDApCisg
IChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDEz
NzUuMDApCisgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIu
MDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0Cisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAx
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
ODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
ODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyLCBsYXll
ciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMjQ5NS4wMCkKKyAgKGNo
aWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMjQ5NS4w
MCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkK
KyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAg
ICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4w
MCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4w
MCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAg
ICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkK
KyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDMsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXll
cgorICAoYm91bmRzIDc4NS4wMCAzNTM1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAzNTM1LjAwKQorICAgICAgKGNoaWxkcmVuIDMK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDAp
CisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAu
MDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAx
ODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4w
MCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAg
OTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQor
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4
MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVy
YXRpb24gNCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiA1LCBsYXllciB0cmVl
OgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNDU5MS4wMCkKKyAgKGNoaWxkcmVu
IDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNDU5MS4wMCkKKyAg
ICAgIChjaGlsZHJlbiA0CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0
aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAg
ICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJv
dW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAx
MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDAp
CisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAx
CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAu
MDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAg
ICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAg
MjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRp
b24gNiwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiA3LCBubyBsYXllciB0cmVl
IHByb2R1Y2VkLgorSXRlcmF0aW9uIDgsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRp
b24gOSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAxMCwgbGF5ZXIgdHJlZToK
KyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDU2MzEuMDApCisgIChjaGlsZHJlbiAx
CisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDU2MzEuMDApCisgICAg
ICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlv
biAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAx
CisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3Vu
ZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjAuMDAgMjAuMDApCisgICAg
ICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMTEsIGxheWVy
IHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA2MjU1LjAwKQorICAoY2hp
bGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA2MjU1LjAw
KQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAw
IDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAw
IDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5k
cyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQor
ICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMTIsIGxheWVyIHRyZWU6CisoR3Jh
cGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA3MDIzLjAwKQorICAoY2hpbGRyZW4gMQorICAg
IChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA3MDIzLjAwKQorICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjgu
MDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5
MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAg
ICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVy
YXRpb24gMTMsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA3
NzExLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRz
IDc4NS4wMCA3NzExLjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAy
MDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hp
bGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAg
ICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMTQsIGxheWVyIHRyZWU6CisoR3JhcGhp
Y3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA4Mzk5LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChH
cmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA4Mzk5LjAwKQorICAgICAgKGNoaWxk
cmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAg
MjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4w
MCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAg
ICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4w
MCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDAp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQor
ICApCispCisKK0l0ZXJhdGlvbiAxNSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChi
b3VuZHMgNzg1LjAwIDkxNjcuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgIChib3VuZHMgNzg1LjAwIDkxNjcuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4w
MCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlv
biAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQor
ICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2
MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0
ZXJhdGlvbiAxNiwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAw
IDk5MzUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3Vu
ZHMgNzg1LjAwIDk5MzUuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRz
IDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChj
aGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisg
ICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxNywgbm8gbGF5ZXIgdHJlZSBwcm9k
dWNlZC4KK0l0ZXJhdGlvbiAxOCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3Vu
ZHMgNzg1LjAwIDEwNjM5LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAoYm91bmRzIDc4NS4wMCAxMDYzOS4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAw
IDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJ
dGVyYXRpb24gMTksIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gMjAsIGxheWVy
IHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxMTE5OS4wMCkKKyAgKGNo
aWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTExOTku
MDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDAp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChj
aGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
ICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEu
MDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4w
MCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJh
dGlvbiAyMSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDEx
OTk5LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRz
IDc4NS4wMCAxMTk5OS4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMg
MjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNo
aWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAg
ICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAg
ICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4w
MCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisg
ICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAg
MTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAg
KQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAu
MDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24g
MjIsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxMjk0My4w
MCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUu
MDAgMTI5NDMuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4w
MCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJl
biA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAg
ICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIzLCBsYXllciB0cmVlOgorKEdyYXBo
aWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTM4MDcuMDApCisgIChjaGlsZHJlbiAxCisgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDEzODA3LjAwKQorICAgICAgKGNo
aWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjgu
MDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5
MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAg
ICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUu
MDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3Vu
ZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisK
K0l0ZXJhdGlvbiAyNCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyNSwgbGF5
ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDE0Njg3LjAwKQorICAo
Y2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxNDY4
Ny4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4w
MCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAg
ICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAy
MS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxk
cmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlv
biAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQor
ICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2
MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0
ZXJhdGlvbiAyNiwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAw
IDE1NDg3LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91
bmRzIDc4NS4wMCAxNTQ4Ny4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3Vu
ZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
KGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkK
KyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4
NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAx
ODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDAp
CisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAx
CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAu
MDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAg
ICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMjcsIG5vIGxheWVyIHRy
ZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gMjgsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVy
YXRpb24gMjksIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRl
ZC1zY3JvbGxpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9t
YXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MDc2MjkyOTQxNjE5M2NkNzRmYWQzNGRkMzNlMDVhMDg1ZWMyY2RjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50
by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sCkBAIC0wLDAgKzEsMTQwIEBACis8IURPQ1RZUEUg
aHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAg
Imh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD11dGYtOCIvPgorICA8dGl0bGU+T3B0aW5nIGludG8gY29tcG9zaXRl
ZCBzY3JvbGxpbmc8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3Jl
ZW4iPgorICAgIC5jb250YWluZXIgeworICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgaGVpZ2h0
OiAyMDBweDsKKyAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICBtYXJnaW46IDIwcHg7Cisg
ICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisKKyAgICAuc2Nyb2xsZWQgewor
ICAgICAgd2lkdGg6IDE4MHB4OworICAgICAgaGVpZ2h0OiA5MHB4OworICAgICAgbWFyZ2luOiAx
MHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKKyAgICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKKyAgICB9CisKKyAgICAucG9zaXRpb25lZCB7CisgICAgICB3aWR0aDogMTIwcHg7Cisg
ICAgICBoZWlnaHQ6IDI0MHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgfQorCisgICAgI3ByZWRlY2Vzc29yIHsKKyAgICAg
IGxlZnQ6IDIwcHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgfQorCisgICAgI3N1Y2Nlc3NvciB7
CisgICAgICBsZWZ0OiAxNjBweDsKKyAgICAgIHRvcDogMjBweDsKKyAgICB9CisgIDwvc3R5bGU+
CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbCh0cnVlKTsKKworICAgIGZ1
bmN0aW9uIHdyaXRlKHN0cikKKyAgICB7CisgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKTsKKyAgICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoc3RyICsgJ1xuJyk7CisgICAgICBwcmUuYXBwZW5kQ2hpbGQodGV4dCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICB7CisgICAgICB2YXIgcHJlZGVjZXNzb3IgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlZGVjZXNzb3InKTsKKyAgICAgIHZhciBzdWNjZXNz
b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VjY2Vzc29yJyk7CisgICAgICB2YXIgY29u
dGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOworICAgICAgdmFy
IGZpcnN0Q2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3RDaGlsZCcpOworICAg
ICAgdmFyIHNlY29uZENoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZENoaWxk
Jyk7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICBmb3IgKGkgPSAwOyBpIDwgMzsgKytp
KSB7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCA1OyArK2opIHsKKyAgICAgICAgICBmb3IgKGsg
PSAwOyBrIDwgMjsgKytrKSB7CisgICAgICAgICAgICB2YXIgbWluWkluZGV4ID0gMDsKKyAgICAg
ICAgICAgIHZhciBtYXhaSW5kZXggPSAwOworICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAg
ICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICcxJzsKKyAgICAgICAgICAgICAg
c2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICBtYXhaSW5kZXgg
PSAzOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09IDEpIHsKKyAgICAgICAgICAgICAgZmly
c3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5z
dHlsZS56SW5kZXggPSAnLTMnOworICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMzsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0g
Jy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAg
ICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsKKyAgICAgICAgICAgICAgbWF4WkluZGV4ID0gMzsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHNpYmxpbmcgPSBwcmVkZWNlc3NvcjsK
KyAgICAgICAgICAgIHZhciB0b0hpZGUgPSBzdWNjZXNzb3I7CisgICAgICAgICAgICBpZiAoayA9
PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcgPSBzdWNjZXNzb3I7CisgICAgICAgICAgICAg
IHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0b0hp
ZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuZGlz
cGxheSA9ICcnOworICAgICAgICAgICAgaWYgKGogPT0gMCkgeworICAgICAgICAgICAgICBzaWJs
aW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAxKS50b1N0cmluZygpOworICAgICAgICAg
ICAgfSBlbHNlIGlmIChqID09IDEpIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5k
ZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
aiA9PSAyKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWF4WkluZGV4
LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGogPT0gMykgeworICAgICAgICAg
ICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJbmRleC50b1N0cmluZygpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAoKG1p
blpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmluZygpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYy4KKyAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOworCisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgewor
ICAgICAgICAgICAgICB2YXIgbGF5ZXJUcmVlID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVB
c1RleHQoZG9jdW1lbnQpOworICAgICAgICAgICAgICBpZiAobGF5ZXJUcmVlKSB7CisgICAgICAg
ICAgICAgICAgd3JpdGUoJ0l0ZXJhdGlvbiAnICsgY291bnQudG9TdHJpbmcoKSArCisgICAgICAg
ICAgICAgICAgICAgICAgJywgbGF5ZXIgdHJlZTonKTsKKyAgICAgICAgICAgICAgICB3cml0ZShs
YXllclRyZWUpOworICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB3cml0ZSgn
SXRlcmF0aW9uICcgKyBjb3VudC50b1N0cmluZygpICsKKyAgICAgICAgICAgICAgICAgICAgICAn
LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLicpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBjb3VudCsrOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKworICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgIDwvc2Ny
aXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InBy
ZWRlY2Vzc29yIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0iY29udGFpbmVy
Ij4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0Q2hpbGQiPjwvZGl2PgorICAg
IDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQiPjwvZGl2PgorICA8L2Rpdj4K
KyAgPGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InN1Y2Nlc3NvciI+PC9kaXY+CisgIDxwcmUg
aWQ9ImNvbnNvbGUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176316</attachid>
            <date>2012-11-27 11:59:23 -0800</date>
            <delta_ts>2012-11-29 07:20:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121127145700.patch</filename>
            <type>text/plain</type>
            <size>72584</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI3YmYzMGVkODA2MDcz
ZTM2ZDY1ZWZlNjk2YzM3MmQyYmU3Yzc5MS4uODlkMzEzZTRmOWNhOTEyYmYyOGY1MDlkMjYzNmRl
NWYyNGM5MzYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTExLTI3ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRvIGNoZWNr
IHRoaXMsIEkgZW5zdXJlIHRoYXQgdGhlIGNhbmRpZGF0ZSBlbGVtZW50CisgICAgICAgIGFuZCBh
bGwgaXRzIGRlc2NlbmRhbnRzIGFwcGVhciBhcyBhIGNvbnRpbnVvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIG90aGVy
IGVsZW1lbnRzIGFyZSAnYmV0d2VlbicgYW55IG9mCisgICAgICAgIHRoZSBjYW5kaWRhdGVzIGRl
c2NlbmRhbnRzIHdoZW4gd2Ugc29ydCBpbiBwYWludCBvcmRlciwgdGhlbiB3ZSdyZSBzYWZlLgor
ICAgICAgICBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRpdmUsIGhvd2V2ZXIuIFdlIGNvdWxkLCBp
biBmdXR1cmUsIG9ubHkgY29uc2lkZXIKKyAgICAgICAgc3RhY2tpbmcgcHJvYmxlbXMgYmV0d2Vl
biBlbGVtZW50cyB0aGF0IGFjdHVhbGx5IG92ZXJsYXAuCisKKyAgICAgICAgVGVzdDogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGluZy1zY3JvbGxp
bmcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxl
ZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1
cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJl
Y3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCk6CisgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBSZW5k
ZXJMYXllciBjb3VsZCBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0IHdpdGhvdXQKKyAgICAgICAg
ICBhZmZlY3RpbmcgdGhlIHN0YWNraW5nIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRh
dGVkIHRvIHJldHVybiB0cnVlIGlmIGl0IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcK
KyAgICAgICAgICBjb250ZXh0LCBhbmQgdGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMpOgorICAgICAgICAgIFdlIG5vdyBkaXJ0eSBt
X2NhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHREaXJ0eSBmb3Igb3VyCisgICAgICAg
ICAgZGVzY2VuZGFudHMgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgICBXZSBu
b3cgZGlydHkgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0RGlydHkgZm9yIG91
cgorICAgICAgICAgIGRlc2NlbmRhbnRzIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRCZU5vcm1hbEZsb3dPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRCZVNlbGZQYWludGluZ0xheWVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFJlbmRlckxh
eWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRl
ZFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KToKKyAgICAgICAgICBNaW5v
ciBjaGFuZ2UgdG8gdGhlIGNsaXBwaW5nIGJvdW5kcyBvZiB0aGUgc2Nyb2xsaW5nIGxheWVyLiBJ
ZiB3ZSdyZQorICAgICAgICAgIG5vdCB1c2luZyBvdmVybGF5IHNjcm9sbGJhcnMsIHdlIGRvbid0
IHdhbnQgdGhlIGNsaXAgdG8gaW5jbHVkZSB0aGVtLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0
ZXJMYXlvdXQpOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxT
ZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbCk6CisgICAgICAg
ICAgQWxsb3dzIGVuYWJsaW5nIHRoZSBzZXR0aW5nIGluIGxheW91dCB0ZXN0cy4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAg
ICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbDoKKwogMjAxMi0xMS0yNiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIFJlc291cmNlQnVmZmVyOjphcHBlbmQoQ0ZEYXRhUmVmKSB0byBnZXQg
Y29kZSB0byBjb21waWxlIHdpdGggVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggM2M3Y2Y2ZTU2ZGM3
N2IyMWI0Mjk4MTk4NWMwM2QwYTBlMDk4N2EyZC4uYmJmMzhkYTY2MjkzYzk0NjEyNTk0YmE3NzMw
NmMyMTQyYTI0YzYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CkBAIC0xNDUsNiArMTQ1LDkgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlbmRlcmVyKQogICAgICwgbV9ub3JtYWxGbG93TGlzdERpcnR5KHRydWUp
CiAgICAgLCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1f
aGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkoZmFsc2UpCisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICwgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdD
b250ZXh0KGZhbHNlKQorI2VuZGlmCiAgICAgLCBtX2lzUm9vdExheWVyKHJlbmRlcmVyLT5pc1Jl
bmRlclZpZXcoKSkKICAgICAsIG1fdXNlZFRyYW5zcGFyZW5jeShmYWxzZSkKICAgICAsIG1fcGFp
bnRpbmdJbnNpZGVSZWZsZWN0aW9uKGZhbHNlKQpAQCAtNDY4LDYgKzQ3MSwxNTYgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5k
YW50U3RhdHVzKCkKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXI6OmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBy
ZW5kZXJlcigpLT5mcmFtZSgpCisgICAgICAgICYmIHJlbmRlcmVyKCktPmZyYW1lKCktPnBhZ2Uo
KQorICAgICAgICAmJiByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKTsKK30KKworLy8g
SWYgd2UgYXJlIGEgc3RhY2tpbmcgY29udGV4dCwgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu
ZXJhdGUgYSB2YWx1ZSBmb3IKKy8vIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4
dCBmb3IgZXZlcnkgbGF5ZXIgaW4gdGhlIHN0YWNraW5nIAorLy8gY29udGV4dCB3ZSBlc3RhYmxp
c2guIEl0IGlzIHNhZmUgdG8gYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0aGlzIAorLy8g
Y2hhbmdlIHdvdWxkIG5vdCBhbHRlciB0aGUgc3RhY2tpbmcgb3JkZXIgb2YgbGF5ZXJzIG9uIHRo
ZSBwYWdlLiBUaGF0IGNhbiAKKy8vIG9ubHkgaGFwcGVuIGlmIGEgbm9uLWRlc2NlbmRhbnQgYXBw
ZWFycyBiZXR3ZWVuIHVzIGFuZCBvdXIgZGVzY2VuZGFudHMgaW4gCisvLyBzdGFja2luZyBvcmRl
ci4gSGVyZSdzIGFuIGV4YW1wbGU6CisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgfCAgXC4KKy8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgICBCICAgQworLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvXCAgIHwgICAvXC4KKy8vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwIC04ICBEICAyICA3CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKKy8vCisvLyBJJ3ZlIGxh
YmVsZWQgb3VyIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIEEsIEIsIEMsIGFuZCBELCBvdXIgc3Rh
Y2tpbmcKKy8vIGNvbnRleHQgZGVzY2VuZGFudHMgd2l0aCB0aGVpciB6IGluZGljZXMsIGFuZCB1
cyB3aXRoICd0aGlzJyAod2UncmUgYQorLy8gc3RhY2tpbmcgY29udGV4dCBhbmQgb3VyIHpJbmRl
eCBkb2Vzbid0IG1hdHRlciBoZXJlKS4gVGhlc2Ugbm9kZXMgYXBwZWFyIGluCisvLyB0aHJlZSBs
aXN0czogcG9zWk9yZGVyLCBuZWdaT3JkZXIsIGFuZCBub3JtYWwgZmxvdyAoa2VlcCBpbiBtaW5k
IHRoYXQgbm9ybWFsCisvLyBmbG93IGxheWVycyBkb24ndCBvdmVybGFwKS4gU28gaWYgd2UgYXJy
YW5nZSB0aGVzZSBsaXN0cyBpbiBvcmRlciB3ZSBnZXQgb3VyCisvLyBzdGFja2luZyBvcmRlcjoK
Ky8vCisvLyAgICAgICAgICAgICAgICAgICAgIFstOF0sIFtBLURdLCBbMCwgMiwgNSwgN10tLT4g
cG9zIHotb3JkZXIuCisvLyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfAorLy8gICAgICAg
IE5lZyB6LW9yZGVyLiA8LSsgICAgICstLT4gTm9ybWFsIGZsb3cgZGVzY2VuZGFudHMuCisvLwor
Ly8gV2UgY2FuIHRoZW4gYXNzaWduIG5ldywgJ3N0YWNraW5nJyBvcmRlciBpbmRpY2VzIHRvIHRo
ZXNlIGVsZW1lbnRzIGFzIGZvbGxvd3M6CisvLworLy8gICAgICAgICAgICAgICAgICAgICBbLThd
LCBbQS1EXSwgWzAsIDIsIDUsIDddCisvLyAnU3RhY2tpbmcnIGluZGljZXM6ICAtMSAgICAgMCAg
ICAgMSAgMiAgMyAgNAorLy8KKy8vIE5vdGUgdGhhdCB0aGUgbm9ybWFsIGZsb3cgZGVzY2VuZGFu
dHMgY2FuIHNoYXJlIGFuIGluZGV4IGJlY2F1c2UgdGhleSBkb24ndAorLy8gc3RhY2svb3Zlcmxh
cC4gTm93IG91ciBwcm9ibGVtIGJlY29tZXMgdmVyeSBzaW1wbGU6IGEgbGF5ZXIgY2FuIHNhZmVs
eSBiZWNvbWUKKy8vIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0aGUgc3RhY2tpbmctb3JkZXIgaW5k
aWNlcyBvZiBpdCBhbmQgaXRzIGRlc2NlbmRhbnRzCisvLyBhcHBlYXIgaW4gYSBjb250aWd1b3Vz
IGJsb2NrIGluIHRoZSBsaXN0IG9mIHN0YWNraW5nIGluZGljZXMuIFRoaXMgcHJvYmxlbQorLy8g
Y2FuIGJlIHNvbHZlZCB2ZXJ5IGVmZmljaWVudGx5IGJ5IGNhbGN1bGF0aW5nIHRoZSBtaW4vbWF4
IHN0YWNraW5nIGluZGljZXMgaW4KKy8vIHRoZSBzdWJ0cmVlLCBhbmQgdGhlIG51bWJlciBzdGFj
a2luZyBjb250ZXh0IGRlc2NlbmRhbnRzLiBPbmNlIHdlIGhhdmUgdGhpcworLy8gaW5mb3JtYXRp
b24sIHdlIGtub3cgdGhhdCB0aGUgc3VidHJlZSdzIGluZGljZXMgZm9ybSBhIGNvbnRpZ3VvdXMg
YmxvY2sgaWY6CisvLworLy8gICAgICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4
ID09IG51bVNDRGVzY2VuZGFudHMKKy8vCisvLyBTbyBmb3Igbm9kZSBBIGluIHRoZSBleGFtcGxl
IGFib3ZlIHdlIHdvdWxkIGhhdmU6CisvLyAgIG1heFN0YWNrSW5kZXggPSAxCisvLyAgIG1pblN0
YWNrSW5kZXggPSAtMQorLy8gICBudW1TQ0RlY2VuZGFudHMgPSAyCisvLworLy8gYW5kIHNvLAor
Ly8gICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5kZXggPT0gbnVtU0NEZXNjZW5kYW50
cworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgMSAtICgtMSkgPT0gMgorLy8gID09PT4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgPT0gMgorLy8KKy8vICBTaW5jZSB0aGlzIGlz
IHRydWUsIEEgY2FuIHNhZmVseSBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0LgorLy8KKy8vICAg
bWF4U3RhY2tJbmRleCA9IDQKKy8vICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJlY2F1c2UgQyBo
YXMgc3RhY2tpbmcgaW5kZXggMC4KKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFu
ZCBzbywKKy8vICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVz
Y2VuZGFudHMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgIDQgLSAwID09IDIKKy8v
ICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ID09IDIKKy8vCisvLyBTaW5jZSB0
aGlzIGlzIGZhbHNlLCBDIGNhbm5vdCBiZSBzYWZlbHkgcHJvbW90ZWQgdG8gYSBzdGFja2luZyBj
b250ZXh0LiBUaGlzCisvLyBoYXBwZW5lZCBiZWNhdXNlIG9mIHRoZSBlbGVtZW50cyB3aXRoIHot
aW5kZXggNSBhbmQgMC4gTm93IGlmIDUgaGFkIGJlZW4gYSAKKy8vIGNoaWxkIG9mIEMgcmF0aGVy
IHRoYW4gRCwgYW5kIEEgaGFkIG5vIGNoaWxkIHdpdGggWiBpbmRleCAwLCB3ZSB3b3VsZCBoYXZl
IGhhZDoKKy8vCisvLyAgIG1heFN0YWNrSW5kZXggPSAzCisvLyAgIG1pblN0YWNrSW5kZXggPSAw
IDwtLSBiZWNhdXNlIEMgaGFzIHN0YWNraW5nIGluZGV4IDAuCisvLyAgIG51bVNDRGVjZW5kYW50
cyA9IDMKKy8vCisvLyBhbmQgc28sCisvLyAgICAgICBtYXhTdGFja0luZGV4IC0gbWluU3RhY2tJ
bmRleCA9PSBudW1TQ0Rlc2NlbmRhbnRzCisvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAg
ICAzIC0gMCA9PSAzCisvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMyA9PSAz
CisvLworLy8gIEFuZCB3ZSB3b3VsZCBjb25jbHVkZSB0aGF0IEMgY291bGQgYmUgcHJvbW90ZWQu
Cit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRl
eHQoKQoreworICAgIGlmICghaXNTdGFja2luZ0NvbnRleHQoKSB8fCAhYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBBU1NFUlQoIW1fbm9ybWFsRmxvd0xpc3REaXJ0eSk7CisgICAgQVNTRVJUKCFtX3pPcmRlckxp
c3RzRGlydHkpOworCisgICAgLy8gQ3JlYXRlIGEgcmV2ZXJzZSBsb29rdXAuCisgICAgSGFzaE1h
cDxjb25zdCBSZW5kZXJMYXllciosIGludD4gbG9va3VwOworCisgICAgaWYgKG1fbmVnWk9yZGVy
TGlzdCkgeworICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBtX25lZ1pPcmRlckxpc3QtPnNpemUo
KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAg
ICAgICAgICBSZW5kZXJMYXllciogY3VycmVudExheWVyID0gbV9uZWdaT3JkZXJMaXN0LT5hdChp
KTsKKyAgICAgICAgICAgIGlmICghY3VycmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbG9va3VwLnNldChjdXJyZW50
TGF5ZXIsIC1zdGF0aWNfY2FzdDxpbnQ+KGxpc3RTaXplIC0gaSkpOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkgeworICAgICAgICBzaXplX3QgbGlzdFNpemUg
PSBtX3Bvc1pPcmRlckxpc3QtPnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJMYXllciogY3VycmVudExheWVy
ID0gbV9wb3NaT3JkZXJMaXN0LT5hdChpKTsKKyAgICAgICAgICAgIGlmICghY3VycmVudExheWVy
LT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5ZXIsIHN0YXRpY19jYXN0PGludD4oaSArIDEpKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGludCBtaW5JbmRleCA9IDA7CisgICAgaW50IG1heElu
ZGV4ID0gMDsKKyAgICBpbnQgY291bnQgPSAwOworICAgIGJvb2wgZmlyc3RJdGVyYXRpb24gPSB0
cnVlOworICAgIHVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJlY3Vyc2l2
ZShsb29rdXAsIG1pbkluZGV4LCBtYXhJbmRleCwgY291bnQsIGZpcnN0SXRlcmF0aW9uKTsKK30K
Kwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250
ZXh0UmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8Y29uc3QgUmVuZGVyTGF5ZXIqLCBpbnQ+JiBsb29r
dXAsIGludCYgbWluSW5kZXgsIGludCYgbWF4SW5kZXgsIGludCYgY291bnQsIGJvb2wgZmlyc3RJ
dGVyYXRpb24pCit7CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkgJiYgIWZpcnN0SXRlcmF0
aW9uKSB7CisgICAgICAgIEFTU0VSVChsb29rdXAuY29udGFpbnModGhpcykpOworICAgICAgICBt
aW5JbmRleCA9IHN0ZDo6bWluKG1pbkluZGV4LCBsb29rdXAuZ2V0KHRoaXMpKTsKKyAgICAgICAg
bWF4SW5kZXggPSBzdGQ6Om1heChtYXhJbmRleCwgbG9va3VwLmdldCh0aGlzKSk7CisgICAgICAg
IGNvdW50Kys7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKFJlbmRlckxheWVy
KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpIHsKKyAgICAgICAgaW50IGNoaWxkTWluSW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRN
YXhJbmRleCA9IDA7CisgICAgICAgIGludCBjaGlsZENvdW50ID0gMDsKKyAgICAgICAgY2hpbGQt
PnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJlY3Vyc2l2ZShsb29rdXAs
IGNoaWxkTWluSW5kZXgsIGNoaWxkTWF4SW5kZXgsIGNoaWxkQ291bnQsIGZhbHNlKTsKKyAgICAg
ICAgaWYgKGNoaWxkQ291bnQpIHsKKyAgICAgICAgICAgIGNvdW50ICs9IGNoaWxkQ291bnQ7Cisg
ICAgICAgICAgICBtaW5JbmRleCA9IHN0ZDo6bWluKG1pbkluZGV4LCBjaGlsZE1pbkluZGV4KTsK
KyAgICAgICAgICAgIG1heEluZGV4ID0gc3RkOjptYXgobWF4SW5kZXgsIGNoaWxkTWF4SW5kZXgp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpKSB7Cisg
ICAgICAgIGJvb2wgbmV3VmFsdWUgPSBtYXhJbmRleCAtIG1pbkluZGV4ID09IGNvdW50OworICAg
ICAgICBtX2NhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQgPSBuZXdWYWx1ZTsKKyAg
ICB9Cit9CisKKwogdm9pZCBSZW5kZXJMYXllcjo6Y29tcHV0ZVJlcGFpbnRSZWN0cyhjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBSZW5kZXJHZW9t
ZXRyeU1hcCogZ2VvbWV0cnlNYXApCiB7CiAgICAgQVNTRVJUKCFtX3Zpc2libGVDb250ZW50U3Rh
dHVzRGlydHkpOwpAQCAtNzA0LDYgKzg1NywxNiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQ
YWdpbmF0aW9uKCkKICAgICB9CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Citib29sIFJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkg
Y29uc3QKK3sKKyAgICBpZiAoaXNTdGFja2luZ0NvbnRleHQoKSB8fCAhc3RhY2tpbmdDb250ZXh0
KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIG1fY2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dDsKK30KKyNlbmRpZgorCiB2b2lkIFJlbmRlckxheWVyOjpzZXRI
YXNWaXNpYmxlQ29udGVudCgpCiB7IAogICAgIGlmIChtX2hhc1Zpc2libGVDb250ZW50ICYmICFt
X3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkpIHsKQEAgLTE2MTgsMTMgKzE3ODEsMjAgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6Y29udmVydFRvTGF5ZXJDb29yZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFu
Y2VzdG9yTGF5ZXIsIExheW91dFIKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBi
b29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0CiB7CisgICAg
cmV0dXJuIGlzQ29tcG9zaXRlZCgpICYmIGJhY2tpbmcoKS0+c2Nyb2xsaW5nTGF5ZXIoKTsKK30K
KworYm9vbCBSZW5kZXJMYXllcjo6bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QKK3sK
ICAgICBpZiAoIXNjcm9sbHNPdmVyZmxvdygpIHx8ICFhbGxvd3NTY3JvbGxpbmcoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgYm9vbCBmb3JjZVVzZUNvbXBvc2l0ZWRTY3JvbGxpbmcg
PSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgICYmIGNh
blNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKTsKKwogI2lmIEVOQUJMRShBQ0NFTEVS
QVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCi0gICAgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCkt
PnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKTsKKyAgICByZXR1cm4gZm9yY2VVc2VDb21wb3Np
dGVkU2Nyb2xsaW5nIHx8IHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3Jv
bGxpbmcoKTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBmb3JjZVVzZUNv
bXBvc2l0ZWRTY3JvbGxpbmc7CiAjZW5kaWYKIH0KICNlbmRpZgpAQCAtMTc4OSw4ICsxOTU5LDE1
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKICAgICAgICAgZnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQo
cXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCisgICAgYm9vbCByZXF1aXJlc1Jl
cGFpbnQgPSB0cnVlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlm
IChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCkgJiYgdXNlc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcoKSkKKyAgICAgICAgcmVxdWlyZXNSZXBhaW50ID0gZmFsc2U7CisjZW5kaWYKKwogICAg
IC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJlcGFpbnQgb2Ygb3VyIG9iamVjdC4KLSAgICBpZiAo
dmlldyAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICBpZiAodmlldyAmJiByZXF1
aXJlc1JlcGFpbnQpCiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnRVc2luZ0NvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLCBwaXhlbFNuYXBwZWRJbnRSZWN0KG1fcmVwYWludFJlY3QpKTsKIAog
ICAgIC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwgRE9NIGV2ZW50LgpAQCAtNDc4MCw4ICs0OTU3LDEx
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMoKQogICAgIG1fek9yZGVyTGlz
dHNEaXJ0eSA9IHRydWU7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAg
aWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgaWYgKCFyZW5k
ZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAgY29tcG9zaXRvcigp
LT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CisgICAgICAgIGlmIChhY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAgICAgICBj
b21wb3NpdG9yKCktPnNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KCk7
CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTQ4MDEsOCArNDk4MSwxMSBAQCB2b2lkIFJlbmRlckxh
eWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkKICAgICBtX25vcm1hbEZsb3dMaXN0RGlydHkgPSB0
cnVlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghcmVuZGVy
ZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgIGlmICghcmVuZGVyZXIoKS0+ZG9j
dW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7CiAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0Q29tcG9z
aXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOworICAgICAgICBpZiAoYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICAgICAgY29tcG9zaXRvcigp
LT5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpOworICAgIH0KICNl
bmRpZgogfQogCkBAIC00OTA3LDYgKzUwOTAsOCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVM
YXllckxpc3RzSWZOZWVkZWQoKQogICAgICAgICByZWZsZWN0aW9uTGF5ZXItPnVwZGF0ZVpPcmRl
ckxpc3RzKCk7CiAgICAgICAgIHJlZmxlY3Rpb25MYXllci0+dXBkYXRlTm9ybWFsRmxvd0xpc3Qo
KTsKICAgICB9CisKKyAgICB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQo
KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdBbmRMYXllckxpc3Rz
SWZOZWVkZWQoKQpAQCAtNDk5NCwxNCArNTE3OSwxNCBAQCBib29sIFJlbmRlckxheWVyOjpzaG91
bGRCZU5vcm1hbEZsb3dPbmx5KCkgY29uc3QKICAgICAgICAgICAgICYmICFyZW5kZXJlcigpLT5o
YXNCbGVuZE1vZGUoKQogI2VuZGlmCiAgICAgICAgICAgICAmJiAhaXNUcmFuc3BhcmVudCgpCi0g
ICAgICAgICAgICAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICAgICAgICAgICYm
ICFuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKIH0KIAogYm9vbCBSZW5kZXJMYXllcjo6c2hv
dWxkQmVTZWxmUGFpbnRpbmdMYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFpc05vcm1hbEZs
b3dPbmx5KCkKICAgICAgICAgfHwgaGFzT3ZlcmxheVNjcm9sbGJhcnMoKQotICAgICAgICB8fCB1
c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpCisgICAgICAgIHx8IG5lZWRzQ29tcG9zaXRlZFNjcm9s
bGluZygpCiAgICAgICAgIHx8IHJlbmRlcmVyKCktPmhhc1JlZmxlY3Rpb24oKQogICAgICAgICB8
fCByZW5kZXJlcigpLT5oYXNNYXNrKCkKICAgICAgICAgfHwgcmVuZGVyZXIoKS0+aXNUYWJsZVJv
dygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDY1ZjEwNzBhYjJk
NjZkZjJkOTQ3MTY1NGVjYzljYzBlMDE3YzYxYzUuLmIxY2JhOTMxOTM3NDc0OWU5NzkyMDA2Mjli
MGIyY2E2NGM4YTNkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBA
IC02NTYsNiArNjU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5
ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXll
ciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgdXNlc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBPVkVSUklERTsKKyAgICBib29sIG5lZWRzQ29tcG9z
aXRlZFNjcm9sbGluZygpIGNvbnN0OwogI2Vsc2UKICAgICBib29sIGlzQ29tcG9zaXRlZCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNDb21wb3NpdGVkTWFzaygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC03MjMsNiArNzI0LDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCk7CiAgICAg
dm9pZCBkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnRTdGF0
dXMoKTsKIAorICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xs
RW5hYmxlZCgpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tp
bmdDb250ZXh0KCk7CisgICAgdm9pZCB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0Nv
bnRleHRSZWN1cnNpdmUoY29uc3QgSGFzaE1hcDxjb25zdCBSZW5kZXJMYXllciosIGludD4mLCBp
bnQmIG1pbkluZGV4LCBpbnQmIG1heEluZGV4LCBpbnQmIGNvdW50LCBib29sIGZpcnN0SXRlcmF0
aW9uKTsKKwogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRSZWN0cyhjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBSZW5kZXJHZW9tZXRyeU1hcCogPSAw
KTsKICAgICB2b2lkIGNvbXB1dGVSZXBhaW50UmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwog
ICAgIHZvaWQgY2xlYXJSZXBhaW50UmVjdHMoKTsKQEAgLTkyNiw2ICs5MzEsOSBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbihJbmRpcmVjdENvbXBvc2l0
aW5nUmVhc29uIHJlYXNvbikgeyBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gPSByZWFzb247
IH0KICAgICBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
PihtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24pOyB9CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRl
Rm9ySW5kaXJlY3RSZWFzb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5n
UmVhc29uOyB9CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgeiBvcmRlcmluZyB3b3VsZCBub3Qg
Y2hhbmdlIGlmIHRoaXMgbGF5ZXIgd2VyZSB0byBlc3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0
LgorICAgIGJvb2wgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Owog
I2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpAQCAtOTY2LDYg
Kzk3NCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVz
Y2VuZGFudCA6IDE7CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERp
cnR5IDogMTsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBib29sIG1f
Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCA6IDE7CisjZW5kaWYKKwogICAgIGNv
bnN0IGJvb2wgbV9pc1Jvb3RMYXllciA6IDE7CiAKICAgICBib29sIG1fdXNlZFRyYW5zcGFyZW5j
eSA6IDE7IC8vIFRyYWNrcyB3aGV0aGVyIHdlIG5lZWQgdG8gY2xvc2UgYSB0cmFuc3BhcmVudCBs
YXllciwgaS5lLiwgd2hldGhlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCA4OGJlMDhkZmViZTVmOWE3Y2I3ODkyNTgwNjQ4YjQ0YmJk
YjkzYzc0Li4zMGYxNTIwZmRkNjMxMzQ1NWNmZmEwNzAzNzYzNWU2MDQzOWNlMTUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMzQw
LDcgKzM0MCw3IEBAIHN0YXRpYyBib29sIGhhc05vblplcm9UcmFuc2Zvcm1PcmlnaW4oY29uc3Qg
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHN0YXRpYyBib29sIGxheWVyT3JBbmNlc3RvcklzVHJh
bnNmb3JtZWRPclVzaW5nQ29tcG9zaXRlZFNjcm9sbGluZyhSZW5kZXJMYXllciogbGF5ZXIpCiB7
CiAgICAgZm9yIChSZW5kZXJMYXllciogY3VyciA9IGxheWVyOyBjdXJyOyBjdXJyID0gY3Vyci0+
cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGN1cnItPmhhc1RyYW5zZm9ybSgpIHx8IGN1cnItPnVz
ZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgICAgIGlmIChjdXJyLT5oYXNUcmFuc2Zvcm0o
KSB8fCBjdXJyLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICAKQEAgLTQ0OCw3ICs0NDgsNyBAQCBib29sIFJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgIGJvb2wgbmVl
ZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIgPSBjb21wb3NpdG9yLT5jbGlwc0NvbXBvc2l0aW5n
RGVzY2VuZGFudHMobV9vd25pbmdMYXllcik7CiAKICAgICAvLyBPdXIgc2Nyb2xsaW5nIGxheWVy
IHdpbGwgY2xpcC4KLSAgICBpZiAobV9vd25pbmdMYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKSkKKyAgICBpZiAobV9vd25pbmdMYXllci0+bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkp
CiAgICAgICAgIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyID0gZmFsc2U7CiAKICAgICBp
ZiAodXBkYXRlQ2xpcHBpbmdMYXllcnMoY29tcG9zaXRvci0+Y2xpcHBlZEJ5QW5jZXN0b3IobV9v
d25pbmdMYXllciksIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyKSkKQEAgLTQ1Nyw3ICs0
NTcsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZp
Z3VyYXRpb24oKQogICAgIGlmICh1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKHJlcXVpcmVz
SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCksIHJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXll
cigpLCByZXF1aXJlc1Njcm9sbENvcm5lckxheWVyKCkpKQogICAgICAgICBsYXllckNvbmZpZ0No
YW5nZWQgPSB0cnVlOwogCi0gICAgaWYgKHVwZGF0ZVNjcm9sbGluZ0xheWVycyhtX293bmluZ0xh
eWVyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKSkKKyAgICBpZiAodXBkYXRlU2Nyb2xsaW5n
TGF5ZXJzKG1fb3duaW5nTGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpKSkKICAgICAg
ICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGlmIChsYXllckNvbmZpZ0NoYW5n
ZWQpCkBAIC02MDksNyArNjA5LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdy
YXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgZWxzZQogICAgICAgICBncmFwaGljc0xheWVyUGFy
ZW50TG9jYXRpb24gPSByZW5kZXJlcigpLT52aWV3KCktPmRvY3VtZW50UmVjdCgpLmxvY2F0aW9u
KCk7CiAKLSAgICBpZiAoY29tcEFuY2VzdG9yICYmIGNvbXBBbmNlc3Rvci0+dXNlc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoKSkgeworICAgIGlmIChjb21wQW5jZXN0b3IgJiYgY29tcEFuY2VzdG9yLT5u
ZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkgewogICAgICAgICBSZW5kZXJCb3gqIHJlbmRlckJv
eCA9IHRvUmVuZGVyQm94KGNvbXBBbmNlc3Rvci0+cmVuZGVyZXIoKSk7CiAgICAgICAgIEludFNp
emUgc2Nyb2xsT2Zmc2V0ID0gY29tcEFuY2VzdG9yLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsK
ICAgICAgICAgSW50UG9pbnQgc2Nyb2xsT3JpZ2luKHJlbmRlckJveC0+Ym9yZGVyTGVmdCgpLCBy
ZW5kZXJCb3gtPmJvcmRlclRvcCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggODcwYmYxZGRmYTczOTU5YzBlZTBhMmNj
MThlOWVmYTg4NTljZjIxYy4uMzQyMGUwMGQ1YzI5YWE2NDZhNjUyMTZkZTBmMTBlYWI3MThiM2M2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKQEAgLTE5NzIsNyArMTk3Miw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlCiAK
IGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKSBjb25zdAogewotICAgIHJldHVy
biBsYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICByZXR1cm4gbGF5ZXItPm5l
ZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwogfQogCiBib29sIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6aXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24oUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaAppbmRleCA0ZDgyOGYxYTVmMWYxMDBiZjI0MGJjMzE0YjAzNzNhZGFiYmI1
NmY3Li5lOWMxMTAzYTVhODI4ZDFiNGM3MTZlYjQ2ODdkNTAyNDNlMjEwYmUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yMzEs
NiArMjMxLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRUcmFja2VkUmVwYWludFJlY3RzKCk7
CiAgICAgdm9pZCBzZXRUcmFja3NSZXBhaW50cyhib29sKTsKIAorICAgIHZvaWQgc2V0U2hvdWxk
UmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKSB7IG1fcmVldmFsdWF0ZUNvbXBvc2l0
aW5nQWZ0ZXJMYXlvdXQgPSB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgY2xhc3MgT3ZlcmxhcE1h
cDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXgg
ZGRhNDQzNTcwNTg0NGMxMzZjZWY2ZmYzY2EyNTdkYjU1OTNmN2I2ZS4uZTkyOWZkMGU3MDA2Y2Jh
OGViODAxNzFiZjE3YjliMWFiZWJjNzM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMTEsNiArMjExLDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxl
ZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9s
bGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6
OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygp
OworICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNj
ZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGI3NmZkOWVhYjI2OGQwZDIwYzkyNDFh
OWVkMzU4ODlkMmI3MDA0NTIuLjEzYTMxNmM0NGZiYWVlZGYxNjkyNGZmYWY0ODAxOTEyMjQ3ZDQ0
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xMDMs
NiArMTAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbAppbmRleCAwOWRhZTFlNTdkM2VjMjRlZWYzYjRiYjQxZmUzOWViODcxNzNmNjAzLi44NmJm
NTk1MmQzZjlmODFiMDJiMzIxODlmOTg4YTRhYzk3YjI1MzUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTI5LDYgKzI5LDcgQEAKICAgICB2b2lk
IHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24o
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEVu
YWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhpbiBib29sZWFuIGVuYWJsZWQpIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVy
Zmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
IHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxl
ZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0
TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CkBAIC02OSw3ICs3MCw2IEBACiAgICAgdm9pZCBzZXRXaW5kb3dGb2N1c1Jlc3RyaWN0
ZWQoaW4gYm9vbGVhbiByZXN0cmljdGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lk
IHNldERpYWxvZ0VsZW1lbnRFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpOwotCiAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNL
XSB2b2lkIHNldFNob3VsZERpc3BsYXlUcmFja0tpbmQoaW4gRE9NU3RyaW5nIGtpbmQsIGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIFtDb25kaXRpb25hbD1W
SURFT19UUkFDS10gYm9vbGVhbiBzaG91bGREaXNwbGF5VHJhY2tLaW5kKGluIERPTVN0cmluZyB0
cmFja0tpbmQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldE1lbW9yeUluZm9F
bmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MGNlOGY4MjA3NmUxZGRhM2Y3NjgwYzNkOGU2MTc1YzA3NGJiZDU4Ni4uNzUyNjY4ZDhhMGZiNmZh
YWU2YmUxMzI2YTVjZmQ5YmJjYjNjNDQ0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEx
LTI3ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEF1dG9t
YXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb2Yg
ZWxlbWVudHMgdG8gZW5zdXJlIHRoYXQgd2Ugb25seSBhdXRvbWF0aWNhbGx5IG9wdCBpbnRvCisg
ICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIHdoZW4gaXQgaXMgc2FmZSB0byBkbyBzby4KKwor
ICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29t
cG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3Np
dGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5n
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxv
dy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisKIDIwMTItMTEtMjYgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBNb3ZlIG1vcmUgZnVuY3Rpb25zIGZyb20gaW50ZXJuYWxzLnNldHRpbmdzIHRv
IGludGVybmFscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
YXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRv
LWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDQ5OTU3NTY5
MjljYzZiZTRkOWZjMTBiZmZmMTI0ZjBkMzhjODY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3Np
dGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDEwIEBACitJdGVyYXRpb24g
MCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkK
KyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAg
NjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAy
LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAg
MS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAg
ICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAg
ICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxLCBsYXll
ciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTM3NS4wMCkKKyAgKGNo
aWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTM3NS4w
MCkKKyAgICAgIChjaGlsZHJlbiA0CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkK
KyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAg
ICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4w
MCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4w
MCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAg
ICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIsIGxheWVyIHRy
ZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAyNDk1LjAwKQorICAoY2hpbGRy
ZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAyNDk1LjAwKQor
ICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9z
aXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAo
Ym91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAp
CisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4
NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAg
ICkKKyAgKQorKQorCitJdGVyYXRpb24gMywgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisg
IChib3VuZHMgNzg1LjAwIDM1MzUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDM1MzUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIw
MC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkK
KyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQor
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4w
MCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAw
IDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlv
biA0LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDUsIGxheWVyIHRyZWU6Ciso
R3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA0NTkxLjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA0NTkxLjAwKQorICAgICAg
KGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRz
IDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAg
ICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAx
MTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4w
MCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiA2
LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDcsIG5vIGxheWVyIHRyZWUgcHJv
ZHVjZWQuCitJdGVyYXRpb24gOCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiA5
LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDEwLCBsYXllciB0cmVlOgorKEdy
YXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNTYzMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNTYzMS4wMCkKKyAgICAgIChj
aGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4
LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAg
ICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAx
OTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMSwgbGF5ZXIgdHJl
ZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDYyNTUuMDApCisgIChjaGlsZHJl
biAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDYyNTUuMDApCisg
ICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChi
b3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEy
MC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMiwgbGF5ZXIgdHJlZToKKyhHcmFwaGlj
c0xheWVyCisgIChib3VuZHMgNzg1LjAwIDcwMjMuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDcwMjMuMDApCisgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAy
MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAw
IDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAw
IDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlv
biAxMywgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDc3MTEu
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1
LjAwIDc3MTEuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4w
MCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJl
biA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAp
CisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxNCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xh
eWVyCisgIChib3VuZHMgNzg1LjAwIDgzOTkuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDgzOTkuMDApCisgICAgICAoY2hpbGRyZW4g
MgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4w
MCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIx
MC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAw
IDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBv
c2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkK
KykKKworSXRlcmF0aW9uIDE1LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5k
cyA3ODUuMDAgOTE2Ny4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgKGJvdW5kcyA3ODUuMDAgOTE2Ny4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAg
IChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIw
MC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAg
ICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1
LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4
Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAg
ICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0
aW9uIDE2LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgOTkz
NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3
ODUuMDAgOTkzNS4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAy
LjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxk
cmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlv
biAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkK
KyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE3LCBubyBsYXllciB0cmVlIHByb2R1Y2Vk
LgorSXRlcmF0aW9uIDE4LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3
ODUuMDAgMTA2MzkuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
IChib3VuZHMgNzg1LjAwIDEwNjM5LjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAg
KGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAw
LjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAp
CisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJh
dGlvbiAxOSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyMCwgbGF5ZXIgdHJl
ZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDExMTk5LjAwKQorICAoY2hpbGRy
ZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMTE5OS4wMCkK
KyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBv
c2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxk
cmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAg
KGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQor
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkK
KyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4w
MCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAg
ICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAg
ICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIw
LjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9u
IDIxLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTE5OTku
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1
LjAwIDExOTk5LjAwKQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIu
MDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRy
ZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQor
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkK
KyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyMiwg
bGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDEyOTQzLjAwKQor
ICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAx
Mjk0My4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIw
Mi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAw
IDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAg
KGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
KQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMjMsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NM
YXllcgorICAoYm91bmRzIDc4NS4wMCAxMzgwNy4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTM4MDcuMDApCisgICAgICAoY2hpbGRy
ZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAy
MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAw
IDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAw
IDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkK
KyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
ODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRl
cmF0aW9uIDI0LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDI1LCBsYXllciB0
cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTQ2ODcuMDApCisgIChjaGls
ZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDE0Njg3LjAw
KQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAw
KQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4g
MQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEw
LjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAg
ICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0
aW9uIDI2LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTU0
ODcuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMg
Nzg1LjAwIDE1NDg3LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAy
MDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hp
bGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAg
ICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAx
MTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyNywgbm8gbGF5ZXIgdHJlZSBw
cm9kdWNlZC4KK0l0ZXJhdGlvbiAyOCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlv
biAyOSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNj
cm9sbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGlj
YWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwNzYy
OTI5NDE2MTkzY2Q3NGZhZDM0ZGQzM2UwNWEwODVlYzJjZGMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNv
bXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKQEAgLTAsMCArMSwxNDAgQEAKKzwhRE9DVFlQRSBodG1s
IFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0
cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgIDx0aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVkIHNj
cm9sbGluZzwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+
CisgICAgLmNvbnRhaW5lciB7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIw
MHB4OworICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKworICAgIC5zY3JvbGxlZCB7CisgICAg
ICB3aWR0aDogMTgwcHg7CisgICAgICBoZWlnaHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEwcHg7
CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICAgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgIH0KKworICAgIC5wb3NpdGlvbmVkIHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAgICAg
IGhlaWdodDogMjQwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB9CisKKyAgICAjcHJlZGVjZXNzb3IgeworICAgICAgbGVm
dDogMjBweDsKKyAgICAgIHRvcDogMjBweDsKKyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsKKyAg
ICAgIGxlZnQ6IDE2MHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0KKyAgPC9zdHlsZT4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKHRydWUpOworCisgICAgZnVuY3Rp
b24gd3JpdGUoc3RyKQorICAgIHsKKyAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpOworICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShzdHIgKyAnXG4nKTsKKyAgICAgIHByZS5hcHBlbmRDaGlsZCh0ZXh0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwcmVkZWNlc3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWlu
ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmly
c3RDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2
YXIgc2Vjb25kQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsK
KyAgICAgIHZhciBjb3VudCA9IDA7CisKKyAgICAgIGZvciAoaSA9IDA7IGkgPCAzOyArK2kpIHsK
KyAgICAgICAgZm9yIChqID0gMDsgaiA8IDU7ICsraikgeworICAgICAgICAgIGZvciAoayA9IDA7
IGsgPCAyOyArK2spIHsKKyAgICAgICAgICAgIHZhciBtaW5aSW5kZXggPSAwOworICAgICAgICAg
ICAgdmFyIG1heFpJbmRleCA9IDA7CisgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAg
ICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJzEnOworICAgICAgICAgICAgICBzZWNv
bmRDaGlsZC5zdHlsZS56SW5kZXggPSAnMyc7CisgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7
CisgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPT0gMSkgeworICAgICAgICAgICAgICBmaXJzdENo
aWxkLnN0eWxlLnpJbmRleCA9ICctMSc7CisgICAgICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxl
LnpJbmRleCA9ICctMyc7CisgICAgICAgICAgICAgIG1pblpJbmRleCA9IC0zOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEn
OworICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnMyc7CisgICAgICAg
ICAgICAgIG1pblpJbmRleCA9IC0xOworICAgICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgc2libGluZyA9IHByZWRlY2Vzc29yOworICAg
ICAgICAgICAgdmFyIHRvSGlkZSA9IHN1Y2Nlc3NvcjsKKyAgICAgICAgICAgIGlmIChrID09IDEp
IHsKKyAgICAgICAgICAgICAgc2libGluZyA9IHN1Y2Nlc3NvcjsKKyAgICAgICAgICAgICAgdG9I
aWRlID0gcHJlZGVjZXNzb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRvSGlkZS5z
dHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICAgICAgc2libGluZy5zdHlsZS5kaXNwbGF5
ID0gJyc7CisgICAgICAgICAgICBpZiAoaiA9PSAwKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcu
c3R5bGUuekluZGV4ID0gKG1heFpJbmRleCArIDEpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKGogPT0gMSkgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9
IChtaW5aSW5kZXggLSAxKS50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09
IDIpIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSBtYXhaSW5kZXgudG9T
dHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAzKSB7CisgICAgICAgICAgICAg
IHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWluWkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9ICgobWluWklu
ZGV4ICsgbWF4WkluZGV4KSAvIDIpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIC8vIEZvcmNlIGEgc3R5bGUgcmVjYWxjLgorICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICAgIHZhciBsYXllclRyZWUgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4
dChkb2N1bWVudCk7CisgICAgICAgICAgICAgIGlmIChsYXllclRyZWUpIHsKKyAgICAgICAgICAg
ICAgICB3cml0ZSgnSXRlcmF0aW9uICcgKyBjb3VudC50b1N0cmluZygpICsKKyAgICAgICAgICAg
ICAgICAgICAgICAnLCBsYXllciB0cmVlOicpOworICAgICAgICAgICAgICAgIHdyaXRlKGxheWVy
VHJlZSk7CisgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHdyaXRlKCdJdGVy
YXRpb24gJyArIGNvdW50LnRvU3RyaW5nKCkgKworICAgICAgICAgICAgICAgICAgICAgICcsIG5v
IGxheWVyIHRyZWUgcHJvZHVjZWQuJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNv
dW50Kys7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfQorCisgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+
Cis8L2hlYWQ+CisKKzxib2R5PgorICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0icHJlZGVj
ZXNzb3IiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIGlkPSJjb250YWluZXIiPgor
ICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0iZmlyc3RDaGlsZCI+PC9kaXY+CisgICAgPGRp
diBjbGFzcz0ic2Nyb2xsZWQiIGlkPSJzZWNvbmRDaGlsZCI+PC9kaXY+CisgIDwvZGl2PgorICA8
ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0ic3VjY2Vzc29yIj48L2Rpdj4KKyAgPHByZSBpZD0i
Y29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1p
bnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBv
c2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDZjYTIwODMyN2U3ZDQ4
NzM4MmFiMDg0NGMyMDA0MmY5ZjYwMjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8t
Y29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzcwIEBACitJdGVy
YXRpb24gMCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYw
MC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4
MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIu
MDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQor
ICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAw
IDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAg
KQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4w
MCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
MC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAg
ICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0
aW9uIDEsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxMDgw
LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4
NS4wMCAxMDgwLjAwKQorICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIu
MDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQor
ICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAw
IDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAg
KQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4w
MCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
MC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAg
ICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4w
MCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJh
dGlvbiAyLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTkw
NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3
ODUuMDAgMTkwNS4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAy
LjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxk
cmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlv
biAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQor
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkK
KyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4w
MCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEu
MDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMywgbGF5ZXIgdHJl
ZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDI2NTUuMDApCisgIChjaGlsZHJl
biAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDI2NTUuMDApCisg
ICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChi
b3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkK
KyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDQsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJ
dGVyYXRpb24gNSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAw
IDM0MjAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3Vu
ZHMgNzg1LjAwIDM0MjAuMDApCisgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRz
IDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChj
aGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisg
ICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEu
MDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAg
ICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAw
IDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwor
SXRlcmF0aW9uIDYsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gNywgbm8gbGF5
ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiA4LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgor
SXRlcmF0aW9uIDksIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gMTAsIGxheWVy
IHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA0MzA1LjAwKQorICAoY2hp
bGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA0MzA1LjAw
KQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDExLCBsYXllciB0cmVlOgor
KEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNDgwMC4wMCkKKyAgKGNoaWxkcmVuIDEK
KyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNDgwMC4wMCkKKyAgICAg
IChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5k
cyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAx
MjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAg
ICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMTIsIGxheWVyIHRyZWU6CisoR3JhcGhp
Y3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA1Mjk1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChH
cmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA1Mjk1LjAwKQorICAgICAgKGNoaWxk
cmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAg
MjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4w
MCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0
ZXJhdGlvbiAxMywgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAw
IDU3MTUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3Vu
ZHMgNzg1LjAwIDU3MTUuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRz
IDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChj
aGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisg
ICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE0LCBsYXllciB0cmVlOgor
KEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNjEzNS4wMCkKKyAgKGNoaWxkcmVuIDEK
KyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNjEzNS4wMCkKKyAgICAg
IChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5k
cyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEy
MC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxNSwgbGF5ZXIgdHJlZToKKyhHcmFwaGlj
c0xheWVyCisgIChib3VuZHMgNzg1LjAwIDY2MzAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDY2MzAuMDApCisgICAgICAoY2hpbGRy
ZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAy
MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAw
IDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0
MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAg
ICApCisgICkKKykKKworSXRlcmF0aW9uIDE2LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIK
KyAgKGJvdW5kcyA3ODUuMDAgNzEyNS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNzEyNS4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQor
ICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAw
KQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24g
MTcsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gMTgsIGxheWVyIHRyZWU6Ciso
R3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA3NTYwLjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA3NTYwLjAwKQorICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRz
IDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCisp
CisKK0l0ZXJhdGlvbiAxOSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyMCwg
bGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDc5OTUuMDApCisg
IChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDc5
OTUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIu
MDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAx
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAg
ICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyMSwgbGF5
ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDg2NTUuMDApCisgIChj
aGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDg2NTUu
MDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDAp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChj
aGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
ICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAg
KGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAuMDApCisgICAg
ICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMjIsIGxheWVy
IHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA5MzE1LjAwKQorICAoY2hp
bGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA5MzE1LjAw
KQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkK
KyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIzLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5
ZXIKKyAgKGJvdW5kcyA3ODUuMDAgOTkwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgOTkwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAy
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAw
KQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3Vu
ZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEw
LjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDAp
CisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0
ZXJhdGlvbiAyNCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyNSwgbGF5ZXIg
dHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDEwNTAwLjAwKQorICAoY2hp
bGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMDUwMC4w
MCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkK
KyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAg
ICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyNiwgbGF5ZXIg
dHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDExMTYwLjAwKQorICAoY2hp
bGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMTE2MC4w
MCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkK
KyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAg
ICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAp
CisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyNywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4K
K0l0ZXJhdGlvbiAyOCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyOSwgbm8g
bGF5ZXIgdHJlZSBwcm9kdWNlZC4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176731</attachid>
            <date>2012-11-29 07:20:24 -0800</date>
            <delta_ts>2012-12-04 14:30:05 -0800</delta_ts>
            <desc>Trivial change: adding a missing line in a comment.</desc>
            <filename>bug-94743-20121129101758.patch</filename>
            <type>text/plain</type>
            <size>72614</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI3YmYzMGVkODA2MDcz
ZTM2ZDY1ZWZlNjk2YzM3MmQyYmU3Yzc5MS4uODlkMzEzZTRmOWNhOTEyYmYyOGY1MDlkMjYzNmRl
NWYyNGM5MzYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTExLTI3ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRvIGNoZWNr
IHRoaXMsIEkgZW5zdXJlIHRoYXQgdGhlIGNhbmRpZGF0ZSBlbGVtZW50CisgICAgICAgIGFuZCBh
bGwgaXRzIGRlc2NlbmRhbnRzIGFwcGVhciBhcyBhIGNvbnRpbnVvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIG90aGVy
IGVsZW1lbnRzIGFyZSAnYmV0d2VlbicgYW55IG9mCisgICAgICAgIHRoZSBjYW5kaWRhdGVzIGRl
c2NlbmRhbnRzIHdoZW4gd2Ugc29ydCBpbiBwYWludCBvcmRlciwgdGhlbiB3ZSdyZSBzYWZlLgor
ICAgICAgICBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRpdmUsIGhvd2V2ZXIuIFdlIGNvdWxkLCBp
biBmdXR1cmUsIG9ubHkgY29uc2lkZXIKKyAgICAgICAgc3RhY2tpbmcgcHJvYmxlbXMgYmV0d2Vl
biBlbGVtZW50cyB0aGF0IGFjdHVhbGx5IG92ZXJsYXAuCisKKyAgICAgICAgVGVzdDogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGluZy1zY3JvbGxp
bmcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxl
ZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1
cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJl
Y3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCk6CisgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBSZW5k
ZXJMYXllciBjb3VsZCBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0IHdpdGhvdXQKKyAgICAgICAg
ICBhZmZlY3RpbmcgdGhlIHN0YWNraW5nIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRh
dGVkIHRvIHJldHVybiB0cnVlIGlmIGl0IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcK
KyAgICAgICAgICBjb250ZXh0LCBhbmQgdGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMpOgorICAgICAgICAgIFdlIG5vdyBkaXJ0eSBt
X2NhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHREaXJ0eSBmb3Igb3VyCisgICAgICAg
ICAgZGVzY2VuZGFudHMgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KToKKyAgICAgICAgICBXZSBu
b3cgZGlydHkgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0RGlydHkgZm9yIG91
cgorICAgICAgICAgIGRlc2NlbmRhbnRzIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRCZU5vcm1hbEZsb3dPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRCZVNlbGZQYWludGluZ0xheWVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFJlbmRlckxh
eWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRl
ZFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KToKKyAgICAgICAgICBNaW5v
ciBjaGFuZ2UgdG8gdGhlIGNsaXBwaW5nIGJvdW5kcyBvZiB0aGUgc2Nyb2xsaW5nIGxheWVyLiBJ
ZiB3ZSdyZQorICAgICAgICAgIG5vdCB1c2luZyBvdmVybGF5IHNjcm9sbGJhcnMsIHdlIGRvbid0
IHdhbnQgdGhlIGNsaXAgdG8gaW5jbHVkZSB0aGVtLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0
ZXJMYXlvdXQpOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxT
ZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbCk6CisgICAgICAg
ICAgQWxsb3dzIGVuYWJsaW5nIHRoZSBzZXR0aW5nIGluIGxheW91dCB0ZXN0cy4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAg
ICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbDoKKwogMjAxMi0xMS0yNiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIFJlc291cmNlQnVmZmVyOjphcHBlbmQoQ0ZEYXRhUmVmKSB0byBnZXQg
Y29kZSB0byBjb21waWxlIHdpdGggVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggM2M3Y2Y2ZTU2ZGM3
N2IyMWI0Mjk4MTk4NWMwM2QwYTBlMDk4N2EyZC4uNWZlZWVhMGIyMmJlYjc4MjliYjY0NmUxYmVh
MWI0NDlkOGJlNDFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CkBAIC0xNDUsNiArMTQ1LDkgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlbmRlcmVyKQogICAgICwgbV9ub3JtYWxGbG93TGlzdERpcnR5KHRydWUp
CiAgICAgLCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1f
aGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkoZmFsc2UpCisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICwgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdD
b250ZXh0KGZhbHNlKQorI2VuZGlmCiAgICAgLCBtX2lzUm9vdExheWVyKHJlbmRlcmVyLT5pc1Jl
bmRlclZpZXcoKSkKICAgICAsIG1fdXNlZFRyYW5zcGFyZW5jeShmYWxzZSkKICAgICAsIG1fcGFp
bnRpbmdJbnNpZGVSZWZsZWN0aW9uKGZhbHNlKQpAQCAtNDY4LDYgKzQ3MSwxNTcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5k
YW50U3RhdHVzKCkKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXI6OmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBy
ZW5kZXJlcigpLT5mcmFtZSgpCisgICAgICAgICYmIHJlbmRlcmVyKCktPmZyYW1lKCktPnBhZ2Uo
KQorICAgICAgICAmJiByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKTsKK30KKworLy8g
SWYgd2UgYXJlIGEgc3RhY2tpbmcgY29udGV4dCwgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu
ZXJhdGUgYSB2YWx1ZSBmb3IKKy8vIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4
dCBmb3IgZXZlcnkgbGF5ZXIgaW4gdGhlIHN0YWNraW5nIAorLy8gY29udGV4dCB3ZSBlc3RhYmxp
c2guIEl0IGlzIHNhZmUgdG8gYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0aGlzIAorLy8g
Y2hhbmdlIHdvdWxkIG5vdCBhbHRlciB0aGUgc3RhY2tpbmcgb3JkZXIgb2YgbGF5ZXJzIG9uIHRo
ZSBwYWdlLiBUaGF0IGNhbiAKKy8vIG9ubHkgaGFwcGVuIGlmIGEgbm9uLWRlc2NlbmRhbnQgYXBw
ZWFycyBiZXR3ZWVuIHVzIGFuZCBvdXIgZGVzY2VuZGFudHMgaW4gCisvLyBzdGFja2luZyBvcmRl
ci4gSGVyZSdzIGFuIGV4YW1wbGU6CisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgfCAgXC4KKy8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgICBCICAgQworLy8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvXCAgIHwgICAvXC4KKy8vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwIC04ICBEICAyICA3CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKKy8vCisvLyBJJ3ZlIGxh
YmVsZWQgb3VyIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIEEsIEIsIEMsIGFuZCBELCBvdXIgc3Rh
Y2tpbmcKKy8vIGNvbnRleHQgZGVzY2VuZGFudHMgd2l0aCB0aGVpciB6IGluZGljZXMsIGFuZCB1
cyB3aXRoICd0aGlzJyAod2UncmUgYQorLy8gc3RhY2tpbmcgY29udGV4dCBhbmQgb3VyIHpJbmRl
eCBkb2Vzbid0IG1hdHRlciBoZXJlKS4gVGhlc2Ugbm9kZXMgYXBwZWFyIGluCisvLyB0aHJlZSBs
aXN0czogcG9zWk9yZGVyLCBuZWdaT3JkZXIsIGFuZCBub3JtYWwgZmxvdyAoa2VlcCBpbiBtaW5k
IHRoYXQgbm9ybWFsCisvLyBmbG93IGxheWVycyBkb24ndCBvdmVybGFwKS4gU28gaWYgd2UgYXJy
YW5nZSB0aGVzZSBsaXN0cyBpbiBvcmRlciB3ZSBnZXQgb3VyCisvLyBzdGFja2luZyBvcmRlcjoK
Ky8vCisvLyAgICAgICAgICAgICAgICAgICAgIFstOF0sIFtBLURdLCBbMCwgMiwgNSwgN10tLT4g
cG9zIHotb3JkZXIuCisvLyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfAorLy8gICAgICAg
IE5lZyB6LW9yZGVyLiA8LSsgICAgICstLT4gTm9ybWFsIGZsb3cgZGVzY2VuZGFudHMuCisvLwor
Ly8gV2UgY2FuIHRoZW4gYXNzaWduIG5ldywgJ3N0YWNraW5nJyBvcmRlciBpbmRpY2VzIHRvIHRo
ZXNlIGVsZW1lbnRzIGFzIGZvbGxvd3M6CisvLworLy8gICAgICAgICAgICAgICAgICAgICBbLThd
LCBbQS1EXSwgWzAsIDIsIDUsIDddCisvLyAnU3RhY2tpbmcnIGluZGljZXM6ICAtMSAgICAgMCAg
ICAgMSAgMiAgMyAgNAorLy8KKy8vIE5vdGUgdGhhdCB0aGUgbm9ybWFsIGZsb3cgZGVzY2VuZGFu
dHMgY2FuIHNoYXJlIGFuIGluZGV4IGJlY2F1c2UgdGhleSBkb24ndAorLy8gc3RhY2svb3Zlcmxh
cC4gTm93IG91ciBwcm9ibGVtIGJlY29tZXMgdmVyeSBzaW1wbGU6IGEgbGF5ZXIgY2FuIHNhZmVs
eSBiZWNvbWUKKy8vIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0aGUgc3RhY2tpbmctb3JkZXIgaW5k
aWNlcyBvZiBpdCBhbmQgaXRzIGRlc2NlbmRhbnRzCisvLyBhcHBlYXIgaW4gYSBjb250aWd1b3Vz
IGJsb2NrIGluIHRoZSBsaXN0IG9mIHN0YWNraW5nIGluZGljZXMuIFRoaXMgcHJvYmxlbQorLy8g
Y2FuIGJlIHNvbHZlZCB2ZXJ5IGVmZmljaWVudGx5IGJ5IGNhbGN1bGF0aW5nIHRoZSBtaW4vbWF4
IHN0YWNraW5nIGluZGljZXMgaW4KKy8vIHRoZSBzdWJ0cmVlLCBhbmQgdGhlIG51bWJlciBzdGFj
a2luZyBjb250ZXh0IGRlc2NlbmRhbnRzLiBPbmNlIHdlIGhhdmUgdGhpcworLy8gaW5mb3JtYXRp
b24sIHdlIGtub3cgdGhhdCB0aGUgc3VidHJlZSdzIGluZGljZXMgZm9ybSBhIGNvbnRpZ3VvdXMg
YmxvY2sgaWY6CisvLworLy8gICAgICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4
ID09IG51bVNDRGVzY2VuZGFudHMKKy8vCisvLyBTbyBmb3Igbm9kZSBBIGluIHRoZSBleGFtcGxl
IGFib3ZlIHdlIHdvdWxkIGhhdmU6CisvLyAgIG1heFN0YWNrSW5kZXggPSAxCisvLyAgIG1pblN0
YWNrSW5kZXggPSAtMQorLy8gICBudW1TQ0RlY2VuZGFudHMgPSAyCisvLworLy8gYW5kIHNvLAor
Ly8gICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5kZXggPT0gbnVtU0NEZXNjZW5kYW50
cworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgMSAtICgtMSkgPT0gMgorLy8gID09PT4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgPT0gMgorLy8KKy8vICBTaW5jZSB0aGlzIGlz
IHRydWUsIEEgY2FuIHNhZmVseSBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0LgorLy8gIE5vdywg
Zm9yIG5vZGUgQyB3ZSBoYXZlOgorLy8KKy8vICAgbWF4U3RhY2tJbmRleCA9IDQKKy8vICAgbWlu
U3RhY2tJbmRleCA9IDAgPC0tIGJlY2F1c2UgQyBoYXMgc3RhY2tpbmcgaW5kZXggMC4KKy8vICAg
bnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFuZCBzbywKKy8vICAgICAgIG1heFN0YWNrSW5k
ZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMKKy8vICA9PT0+ICAgICAgICAg
ICAgICAgICAgICAgICAgIDQgLSAwID09IDIKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0ID09IDIKKy8vCisvLyBTaW5jZSB0aGlzIGlzIGZhbHNlLCBDIGNhbm5vdCBiZSBz
YWZlbHkgcHJvbW90ZWQgdG8gYSBzdGFja2luZyBjb250ZXh0LiBUaGlzCisvLyBoYXBwZW5lZCBi
ZWNhdXNlIG9mIHRoZSBlbGVtZW50cyB3aXRoIHotaW5kZXggNSBhbmQgMC4gTm93IGlmIDUgaGFk
IGJlZW4gYSAKKy8vIGNoaWxkIG9mIEMgcmF0aGVyIHRoYW4gRCwgYW5kIEEgaGFkIG5vIGNoaWxk
IHdpdGggWiBpbmRleCAwLCB3ZSB3b3VsZCBoYXZlIGhhZDoKKy8vCisvLyAgIG1heFN0YWNrSW5k
ZXggPSAzCisvLyAgIG1pblN0YWNrSW5kZXggPSAwIDwtLSBiZWNhdXNlIEMgaGFzIHN0YWNraW5n
IGluZGV4IDAuCisvLyAgIG51bVNDRGVjZW5kYW50cyA9IDMKKy8vCisvLyBhbmQgc28sCisvLyAg
ICAgICBtYXhTdGFja0luZGV4IC0gbWluU3RhY2tJbmRleCA9PSBudW1TQ0Rlc2NlbmRhbnRzCisv
LyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAgICAzIC0gMCA9PSAzCisvLyAgPT09PiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMyA9PSAzCisvLworLy8gIEFuZCB3ZSB3b3VsZCBjb25j
bHVkZSB0aGF0IEMgY291bGQgYmUgcHJvbW90ZWQuCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVD
YW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQoKQoreworICAgIGlmICghaXNTdGFja2lu
Z0NvbnRleHQoKSB8fCAhYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIW1fbm9ybWFsRmxvd0xpc3RE
aXJ0eSk7CisgICAgQVNTRVJUKCFtX3pPcmRlckxpc3RzRGlydHkpOworCisgICAgLy8gQ3JlYXRl
IGEgcmV2ZXJzZSBsb29rdXAuCisgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJMYXllciosIGludD4g
bG9va3VwOworCisgICAgaWYgKG1fbmVnWk9yZGVyTGlzdCkgeworICAgICAgICBzaXplX3QgbGlz
dFNpemUgPSBtX25lZ1pPcmRlckxpc3QtPnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJMYXllciogY3VycmVu
dExheWVyID0gbV9uZWdaT3JkZXJMaXN0LT5hdChpKTsKKyAgICAgICAgICAgIGlmICghY3VycmVu
dExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5ZXIsIC1zdGF0aWNfY2FzdDxpbnQ+KGxp
c3RTaXplIC0gaSkpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG1fcG9zWk9yZGVyTGlz
dCkgeworICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBtX3Bvc1pPcmRlckxpc3QtPnNpemUoKTsK
KyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAg
ICAgICBSZW5kZXJMYXllciogY3VycmVudExheWVyID0gbV9wb3NaT3JkZXJMaXN0LT5hdChpKTsK
KyAgICAgICAgICAgIGlmICghY3VycmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5
ZXIsIHN0YXRpY19jYXN0PGludD4oaSArIDEpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlu
dCBtaW5JbmRleCA9IDA7CisgICAgaW50IG1heEluZGV4ID0gMDsKKyAgICBpbnQgY291bnQgPSAw
OworICAgIGJvb2wgZmlyc3RJdGVyYXRpb24gPSB0cnVlOworICAgIHVwZGF0ZUNhblNhZmVseUVz
dGFibGlzaFN0YWNraW5nQ29udGV4dFJlY3Vyc2l2ZShsb29rdXAsIG1pbkluZGV4LCBtYXhJbmRl
eCwgY291bnQsIGZpcnN0SXRlcmF0aW9uKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRl
Q2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0UmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8
Y29uc3QgUmVuZGVyTGF5ZXIqLCBpbnQ+JiBsb29rdXAsIGludCYgbWluSW5kZXgsIGludCYgbWF4
SW5kZXgsIGludCYgY291bnQsIGJvb2wgZmlyc3RJdGVyYXRpb24pCit7CisgICAgaWYgKGlzU3Rh
Y2tpbmdDb250ZXh0KCkgJiYgIWZpcnN0SXRlcmF0aW9uKSB7CisgICAgICAgIEFTU0VSVChsb29r
dXAuY29udGFpbnModGhpcykpOworICAgICAgICBtaW5JbmRleCA9IHN0ZDo6bWluKG1pbkluZGV4
LCBsb29rdXAuZ2V0KHRoaXMpKTsKKyAgICAgICAgbWF4SW5kZXggPSBzdGQ6Om1heChtYXhJbmRl
eCwgbG9va3VwLmdldCh0aGlzKSk7CisgICAgICAgIGNvdW50Kys7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hp
bGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaW50IGNoaWxkTWlu
SW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRNYXhJbmRleCA9IDA7CisgICAgICAgIGludCBj
aGlsZENvdW50ID0gMDsKKyAgICAgICAgY2hpbGQtPnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0
YWNraW5nQ29udGV4dFJlY3Vyc2l2ZShsb29rdXAsIGNoaWxkTWluSW5kZXgsIGNoaWxkTWF4SW5k
ZXgsIGNoaWxkQ291bnQsIGZhbHNlKTsKKyAgICAgICAgaWYgKGNoaWxkQ291bnQpIHsKKyAgICAg
ICAgICAgIGNvdW50ICs9IGNoaWxkQ291bnQ7CisgICAgICAgICAgICBtaW5JbmRleCA9IHN0ZDo6
bWluKG1pbkluZGV4LCBjaGlsZE1pbkluZGV4KTsKKyAgICAgICAgICAgIG1heEluZGV4ID0gc3Rk
OjptYXgobWF4SW5kZXgsIGNoaWxkTWF4SW5kZXgpOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKCFpc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgICAgIGJvb2wgbmV3VmFsdWUgPSBtYXhJ
bmRleCAtIG1pbkluZGV4ID09IGNvdW50OworICAgICAgICBtX2NhblNhZmVseUVzdGFibGlzaEFT
dGFja2luZ0NvbnRleHQgPSBuZXdWYWx1ZTsKKyAgICB9Cit9CisKKwogdm9pZCBSZW5kZXJMYXll
cjo6Y29tcHV0ZVJlcGFpbnRSZWN0cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBjb25zdCBSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXApCiB7CiAg
ICAgQVNTRVJUKCFtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkpOwpAQCAtNzA0LDYgKzg1OCwx
NiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkKICAgICB9CiB9CiAKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitib29sIFJlbmRlckxheWVyOjpjYW5TYWZl
bHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3QKK3sKKyAgICBpZiAoaXNTdGFja2lu
Z0NvbnRleHQoKSB8fCAhc3RhY2tpbmdDb250ZXh0KCkpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgcmV0dXJuIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dDsKK30KKyNl
bmRpZgorCiB2b2lkIFJlbmRlckxheWVyOjpzZXRIYXNWaXNpYmxlQ29udGVudCgpCiB7IAogICAg
IGlmIChtX2hhc1Zpc2libGVDb250ZW50ICYmICFtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkp
IHsKQEAgLTE2MTgsMTMgKzE3ODIsMjAgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y29udmVydFRvTGF5
ZXJDb29yZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIExheW91dFIKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZygpIGNvbnN0CiB7CisgICAgcmV0dXJuIGlzQ29tcG9zaXRlZCgpICYmIGJh
Y2tpbmcoKS0+c2Nyb2xsaW5nTGF5ZXIoKTsKK30KKworYm9vbCBSZW5kZXJMYXllcjo6bmVlZHND
b21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QKK3sKICAgICBpZiAoIXNjcm9sbHNPdmVyZmxvdygp
IHx8ICFhbGxvd3NTY3JvbGxpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgYm9v
bCBmb3JjZVVzZUNvbXBvc2l0ZWRTY3JvbGxpbmcgPSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgICYmIGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0Nv
bnRleHQoKTsKKwogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCi0g
ICAgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmco
KTsKKyAgICByZXR1cm4gZm9yY2VVc2VDb21wb3NpdGVkU2Nyb2xsaW5nIHx8IHJlbmRlcmVyKCkt
PnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKTsKICNlbHNlCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBmb3JjZVVzZUNvbXBvc2l0ZWRTY3JvbGxpbmc7CiAjZW5kaWYK
IH0KICNlbmRpZgpAQCAtMTc4OSw4ICsxOTYwLDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9s
bFRvKGludCB4LCBpbnQgeSkKICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRj
aEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7
CiAgICAgfQogCisgICAgYm9vbCByZXF1aXJlc1JlcGFpbnQgPSB0cnVlOworCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRp
bmdNb2RlKCkgJiYgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICAgICAgcmVxdWlyZXNS
ZXBhaW50ID0gZmFsc2U7CisjZW5kaWYKKwogICAgIC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJl
cGFpbnQgb2Ygb3VyIG9iamVjdC4KLSAgICBpZiAodmlldyAmJiAhdXNlc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcoKSkKKyAgICBpZiAodmlldyAmJiByZXF1aXJlc1JlcGFpbnQpCiAgICAgICAgIHJlbmRl
cmVyKCktPnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBwaXhlbFNuYXBw
ZWRJbnRSZWN0KG1fcmVwYWludFJlY3QpKTsKIAogICAgIC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwg
RE9NIGV2ZW50LgpAQCAtNDc4MCw4ICs0OTU4LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5
Wk9yZGVyTGlzdHMoKQogICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IHRydWU7CiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJl
aW5nRGVzdHJveWVkKCkpCisgICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJv
eWVkKCkpIHsKICAgICAgICAgY29tcG9zaXRvcigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRS
ZWJ1aWxkKCk7CisgICAgICAgIGlmIChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkKCkpCisgICAgICAgICAgICBjb21wb3NpdG9yKCktPnNldFNob3VsZFJlZXZh
bHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KCk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTQ4
MDEsOCArNDk4MiwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkK
ICAgICBtX25vcm1hbEZsb3dMaXN0RGlydHkgPSB0cnVlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotICAgIGlmICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3ll
ZCgpKQorICAgIGlmICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7CiAg
ICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOwor
ICAgICAgICBpZiAoYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxl
ZCgpKQorICAgICAgICAgICAgY29tcG9zaXRvcigpLT5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9z
aXRpbmdBZnRlckxheW91dCgpOworICAgIH0KICNlbmRpZgogfQogCkBAIC00OTA3LDYgKzUwOTEs
OCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKQogICAgICAg
ICByZWZsZWN0aW9uTGF5ZXItPnVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgICAgIHJlZmxlY3Rp
b25MYXllci0+dXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKICAgICB9CisKKyAgICB1cGRhdGVDYW5T
YWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlQ29tcG9zaXRpbmdBbmRMYXllckxpc3RzSWZOZWVkZWQoKQpAQCAtNDk5NCwxNCArNTE4
MCwxNCBAQCBib29sIFJlbmRlckxheWVyOjpzaG91bGRCZU5vcm1hbEZsb3dPbmx5KCkgY29uc3QK
ICAgICAgICAgICAgICYmICFyZW5kZXJlcigpLT5oYXNCbGVuZE1vZGUoKQogI2VuZGlmCiAgICAg
ICAgICAgICAmJiAhaXNUcmFuc3BhcmVudCgpCi0gICAgICAgICAgICAmJiAhdXNlc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoKTsKKyAgICAgICAgICAgICYmICFuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmco
KTsKIH0KIAogYm9vbCBSZW5kZXJMYXllcjo6c2hvdWxkQmVTZWxmUGFpbnRpbmdMYXllcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuICFpc05vcm1hbEZsb3dPbmx5KCkKICAgICAgICAgfHwgaGFzT3Zl
cmxheVNjcm9sbGJhcnMoKQotICAgICAgICB8fCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpCisg
ICAgICAgIHx8IG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpCiAgICAgICAgIHx8IHJlbmRlcmVy
KCktPmhhc1JlZmxlY3Rpb24oKQogICAgICAgICB8fCByZW5kZXJlcigpLT5oYXNNYXNrKCkKICAg
ICAgICAgfHwgcmVuZGVyZXIoKS0+aXNUYWJsZVJvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCmluZGV4IDY1ZjEwNzBhYjJkNjZkZjJkOTQ3MTY1NGVjYzljYzBlMDE3YzYx
YzUuLmIxY2JhOTMxOTM3NDc0OWU5NzkyMDA2MjliMGIyY2E2NGM4YTNkNmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02NTYsNiArNjU2LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNv
bnN0OwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBj
b25zdDsKICAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBP
VkVSUklERTsKKyAgICBib29sIG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0OwogI2Vs
c2UKICAgICBib29sIGlzQ29tcG9zaXRlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
Ym9vbCBoYXNDb21wb3NpdGVkTWFzaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC03MjMs
NiArNzI0LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBbmNlc3RvckNoYWluSGFzU2VsZlBh
aW50aW5nTGF5ZXJEZXNjZW5kYW50KCk7CiAgICAgdm9pZCBkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNT
ZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnRTdGF0dXMoKTsKIAorICAgIGJvb2wgYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0OworICAgIHZvaWQg
dXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0KCk7CisgICAgdm9pZCB1cGRh
dGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHRSZWN1cnNpdmUoY29uc3QgSGFzaE1h
cDxjb25zdCBSZW5kZXJMYXllciosIGludD4mLCBpbnQmIG1pbkluZGV4LCBpbnQmIG1heEluZGV4
LCBpbnQmIGNvdW50LCBib29sIGZpcnN0SXRlcmF0aW9uKTsKKwogICAgIHZvaWQgY29tcHV0ZVJl
cGFpbnRSZWN0cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBjb25zdCBSZW5kZXJHZW9tZXRyeU1hcCogPSAwKTsKICAgICB2b2lkIGNvbXB1dGVSZXBhaW50
UmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwogICAgIHZvaWQgY2xlYXJSZXBhaW50UmVjdHMo
KTsKQEAgLTkyNiw2ICs5MzEsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbihJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIHJlYXNvbikgeyBtX2luZGly
ZWN0Q29tcG9zaXRpbmdSZWFzb24gPSByZWFzb247IH0KICAgICBJbmRpcmVjdENvbXBvc2l0aW5n
UmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uPihtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b24pOyB9CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRlRm9ySW5kaXJlY3RSZWFzb25zKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOyB9CisKKyAgICAvLyBSZXR1cm5z
IHRydWUgaWYgeiBvcmRlcmluZyB3b3VsZCBub3QgY2hhbmdlIGlmIHRoaXMgbGF5ZXIgd2VyZSB0
byBlc3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0LgorICAgIGJvb2wgY2FuU2FmZWx5RXN0YWJs
aXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3Mg
UmVuZGVyTGF5ZXJCYWNraW5nOwpAQCAtOTY2LDYgKzk3NCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCA6IDE7CiAgICAgYm9vbCBtX2hh
c1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5IDogMTsKIAorI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKKyAgICBib29sIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5n
Q29udGV4dCA6IDE7CisjZW5kaWYKKwogICAgIGNvbnN0IGJvb2wgbV9pc1Jvb3RMYXllciA6IDE7
CiAKICAgICBib29sIG1fdXNlZFRyYW5zcGFyZW5jeSA6IDE7IC8vIFRyYWNrcyB3aGV0aGVyIHdl
IG5lZWQgdG8gY2xvc2UgYSB0cmFuc3BhcmVudCBsYXllciwgaS5lLiwgd2hldGhlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA4OGJl
MDhkZmViZTVmOWE3Y2I3ODkyNTgwNjQ4YjQ0YmJkYjkzYzc0Li4zMGYxNTIwZmRkNjMxMzQ1NWNm
ZmEwNzAzNzYzNWU2MDQzOWNlMTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBib29sIGhh
c05vblplcm9UcmFuc2Zvcm1PcmlnaW4oY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHN0
YXRpYyBib29sIGxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRlZFNj
cm9sbGluZyhSZW5kZXJMYXllciogbGF5ZXIpCiB7CiAgICAgZm9yIChSZW5kZXJMYXllciogY3Vy
ciA9IGxheWVyOyBjdXJyOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGN1
cnItPmhhc1RyYW5zZm9ybSgpIHx8IGN1cnItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisg
ICAgICAgIGlmIChjdXJyLT5oYXNUcmFuc2Zvcm0oKSB8fCBjdXJyLT5uZWVkc0NvbXBvc2l0ZWRT
Y3JvbGxpbmcoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKQEAgLTQ0
OCw3ICs0NDgsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXll
ckNvbmZpZ3VyYXRpb24oKQogICAgIGJvb2wgbmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIg
PSBjb21wb3NpdG9yLT5jbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHMobV9vd25pbmdMYXllcik7
CiAKICAgICAvLyBPdXIgc2Nyb2xsaW5nIGxheWVyIHdpbGwgY2xpcC4KLSAgICBpZiAobV9vd25p
bmdMYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICBpZiAobV9vd25pbmdMYXll
ci0+bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCiAgICAgICAgIG5lZWRzRGVzY2VuZGVudHND
bGlwcGluZ0xheWVyID0gZmFsc2U7CiAKICAgICBpZiAodXBkYXRlQ2xpcHBpbmdMYXllcnMoY29t
cG9zaXRvci0+Y2xpcHBlZEJ5QW5jZXN0b3IobV9vd25pbmdMYXllciksIG5lZWRzRGVzY2VuZGVu
dHNDbGlwcGluZ0xheWVyKSkKQEAgLTQ1Nyw3ICs0NTcsNyBAQCBib29sIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgIGlmICh1cGRhdGVP
dmVyZmxvd0NvbnRyb2xzTGF5ZXJzKHJlcXVpcmVzSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCks
IHJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXllcigpLCByZXF1aXJlc1Njcm9sbENvcm5lckxh
eWVyKCkpKQogICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogCi0gICAgaWYgKHVw
ZGF0ZVNjcm9sbGluZ0xheWVycyhtX293bmluZ0xheWVyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGlu
ZygpKSkKKyAgICBpZiAodXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKG1fb3duaW5nTGF5ZXItPm5lZWRz
Q29tcG9zaXRlZFNjcm9sbGluZygpKSkKICAgICAgICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1
ZTsKIAogICAgIGlmIChsYXllckNvbmZpZ0NoYW5nZWQpCkBAIC02MDksNyArNjA5LDcgQEAgdm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAg
ZWxzZQogICAgICAgICBncmFwaGljc0xheWVyUGFyZW50TG9jYXRpb24gPSByZW5kZXJlcigpLT52
aWV3KCktPmRvY3VtZW50UmVjdCgpLmxvY2F0aW9uKCk7CiAKLSAgICBpZiAoY29tcEFuY2VzdG9y
ICYmIGNvbXBBbmNlc3Rvci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkgeworICAgIGlmIChj
b21wQW5jZXN0b3IgJiYgY29tcEFuY2VzdG9yLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkg
ewogICAgICAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IHRvUmVuZGVyQm94KGNvbXBBbmNlc3Rv
ci0+cmVuZGVyZXIoKSk7CiAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0ID0gY29tcEFuY2Vz
dG9yLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAgICAgICAgSW50UG9pbnQgc2Nyb2xsT3Jp
Z2luKHJlbmRlckJveC0+Ym9yZGVyTGVmdCgpLCByZW5kZXJCb3gtPmJvcmRlclRvcCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAK
aW5kZXggODcwYmYxZGRmYTczOTU5YzBlZTBhMmNjMThlOWVmYTg4NTljZjIxYy4uMzQyMGUwMGQ1
YzI5YWE2NDZhNjUyMTZkZTBmMTBlYWI3MThiM2M2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTE5NzIsNyArMTk3Miw3
IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9z
aXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyTGF5
ZXIqIGxheWVyKSBjb25zdAogewotICAgIHJldHVybiBsYXllci0+dXNlc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcoKTsKKyAgICByZXR1cm4gbGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwog
fQogCiBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFu
c2Zvcm1BbmltYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0ZDgyOGYx
YTVmMWYxMDBiZjI0MGJjMzE0YjAzNzNhZGFiYmI1NmY3Li5lOWMxMTAzYTVhODI4ZDFiNGM3MTZl
YjQ2ODdkNTAyNDNlMjEwYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yMzEsNiArMjMxLDggQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXRUcmFja2VkUmVwYWludFJlY3RzKCk7CiAgICAgdm9pZCBzZXRUcmFja3NSZXBhaW50
cyhib29sKTsKIAorICAgIHZvaWQgc2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJM
YXlvdXQoKSB7IG1fcmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQgPSB0cnVlOyB9CisK
IHByaXZhdGU6CiAgICAgY2xhc3MgT3ZlcmxhcE1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggZGRhNDQzNTcwNTg0NGMxMzZjZWY2ZmYzY2Ey
NTdkYjU1OTNmN2I2ZS4uZTkyOWZkMGU3MDA2Y2JhOGViODAxNzFiZjE3YjliMWFiZWJjNzM3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMTEs
NiArMjExLDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdG
b3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQp
OwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRl
cm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisK
IHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFy
ZEZvclNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CmluZGV4IGI3NmZkOWVhYjI2OGQwZDIwYzkyNDFhOWVkMzU4ODlkMmI3MDA0NTIuLjEzYTMxNmM0
NGZiYWVlZGYxNjkyNGZmYWY0ODAxOTEyMjQ3ZDQ0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNj
cm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBz
ZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0Vu
YWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNb2NrU2Ny
b2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCAwOWRhZTFlNTdkM2VjMjRl
ZWYzYjRiYjQxZmUzOWViODcxNzNmNjAzLi44NmJmNTk1MmQzZjlmODFiMDJiMzIxODlmOTg4YTRh
Yzk3YjI1MzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGwKQEAgLTI5LDYgKzI5LDcgQEAKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGlu
IGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRFbmFi
bGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJs
ZUZyYW1lcyhpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIHZv
aWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJs
ZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5n
RW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNl
cyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC02OSw3ICs3MCw2IEBACiAg
ICAgdm9pZCBzZXRXaW5kb3dGb2N1c1Jlc3RyaWN0ZWQoaW4gYm9vbGVhbiByZXN0cmljdGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldERpYWxvZ0VsZW1lbnRFbmFibGVkKGlu
IGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRMYW5n
QXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpOwot
CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSB2b2lkIHNldFNob3VsZERpc3BsYXlUcmFj
a0tpbmQoaW4gRE9NU3RyaW5nIGtpbmQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzIChET01F
eGNlcHRpb24pOwogICAgIFtDb25kaXRpb25hbD1WSURFT19UUkFDS10gYm9vbGVhbiBzaG91bGRE
aXNwbGF5VHJhY2tLaW5kKGluIERPTVN0cmluZyB0cmFja0tpbmQpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKICAgICB2b2lkIHNldE1lbW9yeUluZm9FbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGNlOGY4MjA3NmUxZGRhM2Y3NjgwYzNkOGU2
MTc1YzA3NGJiZDU4Ni4uNzUyNjY4ZDhhMGZiNmZhYWU2YmUxMzI2YTVjZmQ5YmJjYjNjNDQ0MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTExLTI3ICBJYW4gVm9sbGljayAgPHZvbGxpY2tA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEF1dG9tYXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Ny
b2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NDc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzIHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb2YgZWxlbWVudHMgdG8gZW5zdXJlIHRoYXQgd2Ug
b25seSBhdXRvbWF0aWNhbGx5IG9wdCBpbnRvCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
IHdoZW4gaXQgaXMgc2FmZSB0byBkbyBzby4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5
LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNv
bXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTItMTEtMjYgIFRv
bnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBNb3ZlIG1vcmUgZnVuY3Rp
b25zIGZyb20gaW50ZXJuYWxzLnNldHRpbmdzIHRvIGludGVybmFscwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21w
b3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9v
dmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZDQ5OTU3NTY5MjljYzZiZTRkOWZjMTBiZmZmMTI0ZjBkMzhj
ODY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
YXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMDEwIEBACitJdGVyYXRpb24gMCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xh
eWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDQK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDAp
CisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAu
MDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAx
ODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4w
MCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAg
OTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQor
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4
MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAu
MDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAg
KQorICApCispCisKK0l0ZXJhdGlvbiAxLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAg
KGJvdW5kcyA3ODUuMDAgMTM3NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTM3NS4wMCkKKyAgICAgIChjaGlsZHJlbiA0CisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAg
ICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAw
LjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQor
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0
aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAg
ICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAg
OTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkK
KyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisg
ICkKKykKKworSXRlcmF0aW9uIDIsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91
bmRzIDc4NS4wMCAyNDk1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAoYm91bmRzIDc4NS4wMCAyNDk1LjAwKQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAg
ICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAg
MjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4w
MCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4w
MCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMywg
bGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDM1MzUuMDApCisg
IChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDM1
MzUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIu
MDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0Cisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAx
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
ODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
ODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiA0LCBubyBsYXllciB0cmVlIHByb2R1Y2Vk
LgorSXRlcmF0aW9uIDUsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4
NS4wMCA0NTkxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAo
Ym91bmRzIDc4NS4wMCA0NTkxLjAwKQorICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJv
dW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
ICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAw
KQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkK
KyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4
MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUu
MDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3Vu
ZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4w
MCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICAp
CisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiA2LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgor
SXRlcmF0aW9uIDcsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gOCwgbm8gbGF5
ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiA5LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgor
SXRlcmF0aW9uIDEwLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUu
MDAgNTYzMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJv
dW5kcyA3ODUuMDAgNTYzMS4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3Vu
ZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
KGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkK
KyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAg
ICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChw
b3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICAp
CispCisKK0l0ZXJhdGlvbiAxMSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3Vu
ZHMgNzg1LjAwIDYyNTUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgNzg1LjAwIDYyNTUuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAy
MDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
NS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
ODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAg
ICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4w
MCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJh
dGlvbiAxMiwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDcw
MjMuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMg
Nzg1LjAwIDcwMjMuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIw
Mi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGls
ZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAg
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICAp
CisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDAp
CisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMywgbGF5ZXIgdHJlZToKKyhHcmFwaGlj
c0xheWVyCisgIChib3VuZHMgNzg1LjAwIDc3MTEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDc3MTEuMDApCisgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAy
MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAw
IDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAw
IDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlv
biAxNCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDgzOTku
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1
LjAwIDgzOTkuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4w
MCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJl
biA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE1LCBsYXllciB0
cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgOTE2Ny4wMCkKKyAgKGNoaWxk
cmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgOTE2Ny4wMCkK
KyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBv
c2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxk
cmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAg
KGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAx
NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAx
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMg
MTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAg
ICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE2LCBsYXllciB0cmVlOgorKEdyYXBo
aWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgOTkzNS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgOTkzNS4wMCkKKyAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAu
MDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUu
MDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkK
KyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0
aW9uIDE3LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDE4LCBsYXllciB0cmVl
OgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTA2MzkuMDApCisgIChjaGlsZHJl
biAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDEwNjM5LjAwKQor
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9z
aXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAo
Ym91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAp
CisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
KQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxOSwgbm8gbGF5ZXIgdHJlZSBwcm9k
dWNlZC4KK0l0ZXJhdGlvbiAyMCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3Vu
ZHMgNzg1LjAwIDExMTk5LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAoYm91bmRzIDc4NS4wMCAxMTE5OS4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAw
IDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAx
ODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIw
LjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAg
ICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIxLCBsYXllciB0cmVlOgorKEdyYXBoaWNz
TGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTE5OTkuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDExOTk5LjAwKQorICAgICAgKGNoaWxk
cmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAg
MjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4w
MCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAg
ICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4w
MCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDAp
CisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAy
NDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisg
ICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyMiwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVy
CisgIChib3VuZHMgNzg1LjAwIDEyOTQzLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMjk0My4wMCkKKyAgICAgIChjaGlsZHJlbiAy
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAw
KQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3Vu
ZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEw
LjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAg
MTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAg
ICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9z
aXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4w
MCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRp
b24gMjMsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxMzgw
Ny4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3
ODUuMDAgMTM4MDcuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIw
Mi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGls
ZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAg
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICAp
CisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDAp
CisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAg
ICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEx
MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDI0LCBubyBsYXllciB0cmVlIHBy
b2R1Y2VkLgorSXRlcmF0aW9uIDI1LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJv
dW5kcyA3ODUuMDAgMTQ2ODcuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgIChib3VuZHMgNzg1LjAwIDE0Njg3LjAwKQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAg
ICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAu
MDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisg
ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAw
IDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMg
MTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAg
ICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDI2LCBsYXllciB0cmVlOgorKEdyYXBo
aWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTU0ODcuMDApCisgIChjaGlsZHJlbiAxCisgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDE1NDg3LjAwKQorICAgICAgKGNo
aWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjgu
MDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5
MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAg
ICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUu
MDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3Vu
ZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisK
K0l0ZXJhdGlvbiAyNywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyOCwgbm8g
bGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyOSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNl
ZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21h
dGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNj
cm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwNzYyOTI5NDE2MTkzY2Q3NGZhZDM0ZGQzM2UwNWEw
ODVlYzJjZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVy
Zmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKQEAg
LTAsMCArMSwxNDAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0
LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9v
c2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgIDx0
aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZzwvdGl0bGU+CisgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmNvbnRhaW5lciB7CisgICAgICB3
aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgb3ZlcmZsb3c6IHNjcm9s
bDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwor
ICAgIH0KKworICAgIC5zY3JvbGxlZCB7CisgICAgICB3aWR0aDogMTgwcHg7CisgICAgICBoZWln
aHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmF5OworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgIC5wb3NpdGlvbmVk
IHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAgICAgIGhlaWdodDogMjQwcHg7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB9CisK
KyAgICAjcHJlZGVjZXNzb3IgeworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDogMjBweDsK
KyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsKKyAgICAgIGxlZnQ6IDE2MHB4OworICAgICAgdG9w
OiAyMHB4OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJm
bG93U2Nyb2xsKHRydWUpOworCisgICAgZnVuY3Rpb24gd3JpdGUoc3RyKQorICAgIHsKKyAgICAg
IHZhciBwcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOworICAgICAgdmFy
IHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIgKyAnXG4nKTsKKyAgICAgIHByZS5h
cHBlbmRDaGlsZCh0ZXh0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsK
KyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcmVkZWNl
c3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz
dWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmlyc3RDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2YXIgc2Vjb25kQ2hpbGQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZhciBjb3VudCA9IDA7CisKKyAg
ICAgIGZvciAoaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IDU7
ICsraikgeworICAgICAgICAgIGZvciAoayA9IDA7IGsgPCAyOyArK2spIHsKKyAgICAgICAgICAg
IHZhciBtaW5aSW5kZXggPSAwOworICAgICAgICAgICAgdmFyIG1heFpJbmRleCA9IDA7CisgICAg
ICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUueklu
ZGV4ID0gJzEnOworICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnMyc7
CisgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGkg
PT0gMSkgeworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICctMSc7Cisg
ICAgICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxlLnpJbmRleCA9ICctMyc7CisgICAgICAgICAg
ICAgIG1pblpJbmRleCA9IC0zOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
Zmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAgICAgICAgICAgICBzZWNvbmRDaGls
ZC5zdHlsZS56SW5kZXggPSAnMyc7CisgICAgICAgICAgICAgIG1pblpJbmRleCA9IC0xOworICAg
ICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2
YXIgc2libGluZyA9IHByZWRlY2Vzc29yOworICAgICAgICAgICAgdmFyIHRvSGlkZSA9IHN1Y2Nl
c3NvcjsKKyAgICAgICAgICAgIGlmIChrID09IDEpIHsKKyAgICAgICAgICAgICAgc2libGluZyA9
IHN1Y2Nlc3NvcjsKKyAgICAgICAgICAgICAgdG9IaWRlID0gcHJlZGVjZXNzb3I7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIHRvSGlkZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAg
ICAgICAgICAgc2libGluZy5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAgICAgICAgICBpZiAoaiA9
PSAwKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gKG1heFpJbmRleCAr
IDEpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGogPT0gMSkgeworICAgICAg
ICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtaW5aSW5kZXggLSAxKS50b1N0cmluZygp
OworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDIpIHsKKyAgICAgICAgICAgICAgc2libGlu
Zy5zdHlsZS56SW5kZXggPSBtYXhaSW5kZXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAoaiA9PSAzKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWlu
WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBz
aWJsaW5nLnN0eWxlLnpJbmRleCA9ICgobWluWkluZGV4ICsgbWF4WkluZGV4KSAvIDIpLnRvU3Ry
aW5nKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEZvcmNlIGEgc3R5bGUgcmVj
YWxjLgorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgIHZhciBsYXllclRyZWUgPSB3
aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CisgICAgICAgICAgICAg
IGlmIChsYXllclRyZWUpIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgnSXRlcmF0aW9uICcgKyBj
b3VudC50b1N0cmluZygpICsKKyAgICAgICAgICAgICAgICAgICAgICAnLCBsYXllciB0cmVlOicp
OworICAgICAgICAgICAgICAgIHdyaXRlKGxheWVyVHJlZSk7CisgICAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHdyaXRlKCdJdGVyYXRpb24gJyArIGNvdW50LnRvU3RyaW5nKCkg
KworICAgICAgICAgICAgICAgICAgICAgICcsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuJyk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICB9CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBkb1Rlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorICA8ZGl2
IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0icHJlZGVjZXNzb3IiPjwvZGl2PgorICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiIGlkPSJjb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBp
ZD0iZmlyc3RDaGlsZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQiIGlkPSJzZWNv
bmRDaGlsZCI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0i
c3VjY2Vzc29yIj48L2Rpdj4KKyAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8
L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxv
dy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44MDZjYTIwODMyN2U3ZDQ4NzM4MmFiMDg0NGMyMDA0MmY5ZjYwMjliCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL292
ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNzcwIEBACitJdGVyYXRpb24gMCwgbGF5ZXIgdHJlZToKKyhHcmFw
aGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxk
cmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAg
MjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4w
MCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4
NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4w
MCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMg
MTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAg
ICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDEsIGxheWVyIHRyZWU6CisoR3JhcGhp
Y3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxMDgwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChH
cmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMDgwLjAwKQorICAgICAgKGNoaWxk
cmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAg
MjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4w
MCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4
NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4w
MCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRz
IDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisg
ICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyLCBsYXllciB0cmVlOgorKEdyYXBo
aWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTkwNS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTkwNS4wMCkKKyAgICAgIChjaGls
ZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAu
MDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAx
ODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUu
MDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAg
ICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAg
KQorKQorCitJdGVyYXRpb24gMywgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3Vu
ZHMgNzg1LjAwIDI2NTUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgNzg1LjAwIDI2NTUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAy
MDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0
aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAg
ICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAg
OTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9u
IDQsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gNSwgbGF5ZXIgdHJlZToKKyhH
cmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDM0MjAuMDApCisgIChjaGlsZHJlbiAxCisg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDM0MjAuMDApCisgICAgICAo
Y2hpbGRyZW4gNAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAy
OC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMg
MTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUu
MDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMg
MTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDYsIG5vIGxheWVyIHRyZWUg
cHJvZHVjZWQuCitJdGVyYXRpb24gNywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlv
biA4LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDksIG5vIGxheWVyIHRyZWUg
cHJvZHVjZWQuCitJdGVyYXRpb24gMTAsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAo
Ym91bmRzIDc4NS4wMCA0MzA1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVy
CisgICAgICAoYm91bmRzIDc4NS4wMCA0MzA1LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAg
ICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAu
MDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisg
ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAg
ICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0
aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAg
ICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykK
KworSXRlcmF0aW9uIDExLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3
ODUuMDAgNDgwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
KGJvdW5kcyA3ODUuMDAgNDgwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChi
b3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4w
MCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAu
MDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVy
YXRpb24gMTIsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA1
Mjk1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRz
IDc4NS4wMCA1Mjk1LjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAy
MDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAg
ICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMywgbGF5ZXIgdHJlZToKKyhH
cmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDU3MTUuMDApCisgIChjaGlsZHJlbiAxCisg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDU3MTUuMDApCisgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAy
OC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMg
MTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykK
KworSXRlcmF0aW9uIDE0LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3
ODUuMDAgNjEzNS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
KGJvdW5kcyA3ODUuMDAgNjEzNS4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChi
b3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4w
MCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4w
MCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJh
dGlvbiAxNSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDY2
MzAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMg
Nzg1LjAwIDY2MzAuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIw
Mi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAg
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICAp
CisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAw
KQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE2
LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNzEyNS4wMCkK
KyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAg
NzEyNS4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIw
Mi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAw
IDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
KQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMTcsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQu
CitJdGVyYXRpb24gMTgsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4
NS4wMCA3NTYwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAo
Ym91bmRzIDc4NS4wMCA3NTYwLjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJv
dW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAw
KQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAg
ICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxOSwgbm8gbGF5ZXIg
dHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyMCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVy
CisgIChib3VuZHMgNzg1LjAwIDc5OTUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDc5OTUuMDApCisgICAgICAoY2hpbGRyZW4gMwor
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkK
KyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4w
MCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQor
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4
MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAu
MDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAg
KQorICApCispCisKK0l0ZXJhdGlvbiAyMSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisg
IChib3VuZHMgNzg1LjAwIDg2NTUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDg2NTUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIw
MC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkK
KyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9z
aXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4w
MCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiAxNjAuMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAw
KQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkK
KyAgKQorKQorCitJdGVyYXRpb24gMjIsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAo
Ym91bmRzIDc4NS4wMCA5MzE1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVy
CisgICAgICAoYm91bmRzIDc4NS4wMCA5MzE1LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAg
ICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAu
MDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisg
ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAg
ICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0
aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAg
ICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAg
OTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9u
IDIzLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgOTkwMC4w
MCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUu
MDAgOTkwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAw
IDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAx
MTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyNCwgbm8gbGF5ZXIgdHJlZSBw
cm9kdWNlZC4KK0l0ZXJhdGlvbiAyNSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChi
b3VuZHMgNzg1LjAwIDEwNTAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVy
CisgICAgICAoYm91bmRzIDc4NS4wMCAxMDUwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAg
ICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAw
LjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQor
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAw
IDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDAp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQor
ICApCispCisKK0l0ZXJhdGlvbiAyNiwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChi
b3VuZHMgNzg1LjAwIDExMTYwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVy
CisgICAgICAoYm91bmRzIDc4NS4wMCAxMTE2MC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAg
ICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAw
LjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQor
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAw
IDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlv
biAyNywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyOCwgbm8gbGF5ZXIgdHJl
ZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyOSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177564</attachid>
            <date>2012-12-04 14:30:12 -0800</date>
            <delta_ts>2012-12-05 08:31:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121204172738.patch</filename>
            <type>text/plain</type>
            <size>73636</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhODRiNWRiZWJhNTlkMDM5ZjAzYjdmMGE4Mzc2Y2Q1Y2YzNzc2N2UyLi5m
MTY2Y2E0M2U0Y2VhNWRiMjg2MDQ3YjEwODJhNjU4M2NhOWFiYmY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNzIgQEAKKzIwMTItMTEtMjcgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNj
cm9sbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTQ3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBjdXJyZW50bHkgdXNlIHRoZSBjb21wb3NpdGVkIHNjcm9sbGluZyBmYWNpbGl0aWVzIHByb3Zp
ZGVkIGJ5CisgICAgICAgIHdrYi51Zy85MTExNyBpZiB0aGUgb3ZlcmZsb3cgc2Nyb2xsIGJsb2Nr
IGVsZW1lbnQgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxp
bmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNhbGx5CisgICAgICAgIG9wdCBp
bnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUgdG8gZG8gc28uIFRoaXMgY2Fu
IGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGF1
dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAgZW5hYmxlZCB2aWEgYSBzZXR0
aW5nLgorCisgICAgICAgIFRoZSB3YXkgSSBkZXRlcm1pbmUgaWYgaXQgaXMgc2FmZSBpcyBieSBj
aGVja2luZyB0aGF0IHotb3JkZXJpbmcgd2lsbAorICAgICAgICBub3QgYmUgYWZmZWN0ZWQgaWYg
dGhlIG92ZXJmbG93IHNjcm9sbGFibGUgZWxlbWVudCB3ZXJlIHByb21vdGVkIHRvIGEKKyAgICAg
ICAgc3RhY2tpbmcgY29udGV4dC4gVG8gY2hlY2sgdGhpcywgSSBlbnN1cmUgdGhhdCB0aGUgY2Fu
ZGlkYXRlIGVsZW1lbnQKKyAgICAgICAgYW5kIGFsbCBpdHMgZGVzY2VuZGFudHMgYXBwZWFyIGFz
IGEgY29udGludW91cyBibG9jayBpbiB0aGUgY2FuZGlkYXRlJ3MKKyAgICAgICAgc3RhY2tpbmcg
Y29udGV4dC4gVGhhdCBpcywgaWYgbm8gb3RoZXIgZWxlbWVudHMgYXJlICdiZXR3ZWVuJyBhbnkg
b2YKKyAgICAgICAgdGhlIGNhbmRpZGF0ZXMgZGVzY2VuZGFudHMgd2hlbiB3ZSBzb3J0IGluIHBh
aW50IG9yZGVyLCB0aGVuIHdlJ3JlIHNhZmUuCisgICAgICAgIFRoaXMgaXMgb3Zlcmx5IGNvbnNl
cnZhdGl2ZSwgaG93ZXZlci4gV2UgY291bGQsIGluIGZ1dHVyZSwgb25seSBjb25zaWRlcgorICAg
ICAgICBzdGFja2luZyBwcm9ibGVtcyBiZXR3ZWVuIGVsZW1lbnRzIHRoYXQgYWN0dWFsbHkgb3Zl
cmxhcC4KKworICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5
LW9wdC1pbnRvLWNvbXBvc2l0aW5nLXNjcm9sbGluZy5odG1sCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OlJlbmRl
ckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjphY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNr
aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlQ2FuU2Fm
ZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0UmVjdXJzaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KToKKyAgICAg
ICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIFJlbmRlckxheWVyIGNvdWxkIGJlY29tZSBhIHN0YWNr
aW5nIGNvbnRleHQgd2l0aG91dAorICAgICAgICAgIGFmZmVjdGluZyB0aGUgc3RhY2tpbmcgb3Jk
ZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcpOgorICAgICAgICAgIEhhcyBiZWVuIHVwZGF0ZWQgdG8gcmV0dXJuIHRydWUgaWYgaXQgY2Fu
IHNhZmVseSBlc3RhYmxpc2ggYSBzdGFja2luZworICAgICAgICAgIGNvbnRleHQsIGFuZCB0aGUg
c2V0dGluZyBpcyB0dXJuZWQgb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6bmVl
ZHNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
Y3JvbGxUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0
cyk6CisgICAgICAgICAgV2Ugbm93IGRpcnR5IG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5n
Q29udGV4dERpcnR5IGZvciBvdXIKKyAgICAgICAgICBkZXNjZW5kYW50cyB3aGVuIHRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpcnR5Tm9y
bWFsRmxvd0xpc3QpOgorICAgICAgICAgIFdlIG5vdyBkaXJ0eSBtX2NhblNhZmVseUVzdGFibGlz
aEFTdGFja2luZ0NvbnRleHREaXJ0eSBmb3Igb3VyCisgICAgICAgICAgZGVzY2VuZGFudHMgd2hl
biB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVMYXllckxpc3RzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnNob3VsZEJlU2VsZlBhaW50aW5nTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGF5ZXJPckFuY2VzdG9y
SXNUcmFuc2Zvcm1lZE9yVXNpbmdDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xh
eWVyR2VvbWV0cnkpOgorICAgICAgICAgIE1pbm9yIGNoYW5nZSB0byB0aGUgY2xpcHBpbmcgYm91
bmRzIG9mIHRoZSBzY3JvbGxpbmcgbGF5ZXIuIElmIHdlJ3JlCisgICAgICAgICAgbm90IHVzaW5n
IG92ZXJsYXkgc2Nyb2xsYmFycywgd2UgZG9uJ3Qgd2FudCB0aGUgY2xpcCB0byBpbmNsdWRlIHRo
ZW0uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdG
b3JPdmVyZmxvd1Njcm9sbGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRT
aG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCk6CisgICAgICAgIChSZW5kZXJM
YXllckNvbXBvc2l0b3IpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsKToKKyAgICAgICAgICBBbGxvd3MgZW5hYmxpbmcgdGhlIHNldHRp
bmcgaW4gbGF5b3V0IHRlc3RzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTEyLTA0ICBGbG9yaW4g
TWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3RhbGUgU1ZHVXNlRWxl
bWVudCByZWZlcmVuY2UgaW4gQ2FjaGVkUmVzb3VyY2U6OmNoZWNrTm90aWZ5KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDVmNWJhMzI2YTgzZDQyYjM3MDY1
NTAzNjBjZTE3ZDQ1Y2E4ZDM1N2EuLmViYzM3ODYwYzI0MDJlNzBiNGRhNzUxOTljMGY3ZTBjNDdm
ZTlhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTQ1
LDYgKzE0NSw5IEBAIFJlbmRlckxheWVyOjpSZW5kZXJMYXllcihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZW5kZXJlcikKICAgICAsIG1fbm9ybWFsRmxvd0xpc3REaXJ0eSh0cnVlKQogICAgICwg
bV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoZmFsc2UpCiAgICAgLCBtX2hhc1NlbGZQ
YWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5KGZhbHNlKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKKyAgICAsIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dChm
YWxzZSkKKyNlbmRpZgogICAgICwgbV9pc1Jvb3RMYXllcihyZW5kZXJlci0+aXNSZW5kZXJWaWV3
KCkpCiAgICAgLCBtX3VzZWRUcmFuc3BhcmVuY3koZmFsc2UpCiAgICAgLCBtX3BhaW50aW5nSW5z
aWRlUmVmbGVjdGlvbihmYWxzZSkKQEAgLTQ2OCw2ICs0NzEsMTYwIEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OmRpcnR5QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudFN0YXR1
cygpCiAgICAgfQogfQogCitib29sIFJlbmRlckxheWVyOjphY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIo
KS0+ZnJhbWUoKQorICAgICAgICAmJiByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdlKCkKKyAgICAg
ICAgJiYgcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCk7Cit9CisKKy8vIElmIHdlIGFy
ZSBhIHN0YWNraW5nIGNvbnRleHQsIHRoZW4gdGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIGEg
dmFsdWUgZm9yCisvLyBtX2NhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQgZm9yIGV2
ZXJ5IGxheWVyIGluIHRoZSBzdGFja2luZyAKKy8vIGNvbnRleHQgd2UgZXN0YWJsaXNoLiBJdCBp
cyBzYWZlIHRvIGJlY29tZSBhIHN0YWNraW5nIGNvbnRleHQgaWYgdGhpcyAKKy8vIGNoYW5nZSB3
b3VsZCBub3QgYWx0ZXIgdGhlIHN0YWNraW5nIG9yZGVyIG9mIGxheWVycyBvbiB0aGUgcGFnZS4g
VGhhdCBjYW4gCisvLyBvbmx5IGhhcHBlbiBpZiBhIG5vbi1kZXNjZW5kYW50IGFwcGVhcnMgYmV0
d2VlbiB1cyBhbmQgb3VyIGRlc2NlbmRhbnRzIGluIAorLy8gc3RhY2tpbmcgb3JkZXIuIEhlcmUn
cyBhbiBleGFtcGxlOgorLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gIHwgIFwuCisvLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBICAgQiAgIEMKKy8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgL1wgICB8ICAgL1wuCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAt
OCAgRCAgMiAgNworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1CisvLworLy8gSSd2ZSBsYWJlbGVkIG91
ciBub3JtYWwgZmxvdyBkZXNjZW5kYW50cyBBLCBCLCBDLCBhbmQgRCwgb3VyIHN0YWNraW5nCisv
LyBjb250ZXh0IGRlc2NlbmRhbnRzIHdpdGggdGhlaXIgeiBpbmRpY2VzLCBhbmQgdXMgd2l0aCAn
dGhpcycgKHdlJ3JlIGEKKy8vIHN0YWNraW5nIGNvbnRleHQgYW5kIG91ciB6SW5kZXggZG9lc24n
dCBtYXR0ZXIgaGVyZSkuIFRoZXNlIG5vZGVzIGFwcGVhciBpbgorLy8gdGhyZWUgbGlzdHM6IHBv
c1pPcmRlciwgbmVnWk9yZGVyLCBhbmQgbm9ybWFsIGZsb3cgKGtlZXAgaW4gbWluZCB0aGF0IG5v
cm1hbAorLy8gZmxvdyBsYXllcnMgZG9uJ3Qgb3ZlcmxhcCkuIFNvIGlmIHdlIGFycmFuZ2UgdGhl
c2UgbGlzdHMgaW4gb3JkZXIgd2UgZ2V0IG91cgorLy8gc3RhY2tpbmcgb3JkZXI6CisvLworLy8g
ICAgICAgICAgICAgICAgICAgICBbLThdLCBbQS1EXSwgWzAsIDIsIDUsIDddLS0+IHBvcyB6LW9y
ZGVyLgorLy8gICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwKKy8vICAgICAgICBOZWcgei1v
cmRlci4gPC0rICAgICArLS0+IE5vcm1hbCBmbG93IGRlc2NlbmRhbnRzLgorLy8KKy8vIFdlIGNh
biB0aGVuIGFzc2lnbiBuZXcsICdzdGFja2luZycgb3JkZXIgaW5kaWNlcyB0byB0aGVzZSBlbGVt
ZW50cyBhcyBmb2xsb3dzOgorLy8KKy8vICAgICAgICAgICAgICAgICAgICAgWy04XSwgW0EtRF0s
IFswLCAyLCA1LCA3XQorLy8gJ1N0YWNraW5nJyBpbmRpY2VzOiAgLTEgICAgIDAgICAgIDEgIDIg
IDMgIDQKKy8vCisvLyBOb3RlIHRoYXQgdGhlIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIGNhbiBz
aGFyZSBhbiBpbmRleCBiZWNhdXNlIHRoZXkgZG9uJ3QKKy8vIHN0YWNrL292ZXJsYXAuIE5vdyBv
dXIgcHJvYmxlbSBiZWNvbWVzIHZlcnkgc2ltcGxlOiBhIGxheWVyIGNhbiBzYWZlbHkgYmVjb21l
CisvLyBhIHN0YWNraW5nIGNvbnRleHQgaWYgdGhlIHN0YWNraW5nLW9yZGVyIGluZGljZXMgb2Yg
aXQgYW5kIGl0cyBkZXNjZW5kYW50cworLy8gYXBwZWFyIGluIGEgY29udGlndW91cyBibG9jayBp
biB0aGUgbGlzdCBvZiBzdGFja2luZyBpbmRpY2VzLiBUaGlzIHByb2JsZW0KKy8vIGNhbiBiZSBz
b2x2ZWQgdmVyeSBlZmZpY2llbnRseSBieSBjYWxjdWxhdGluZyB0aGUgbWluL21heCBzdGFja2lu
ZyBpbmRpY2VzIGluCisvLyB0aGUgc3VidHJlZSwgYW5kIHRoZSBudW1iZXIgc3RhY2tpbmcgY29u
dGV4dCBkZXNjZW5kYW50cy4gT25jZSB3ZSBoYXZlIHRoaXMKKy8vIGluZm9ybWF0aW9uLCB3ZSBr
bm93IHRoYXQgdGhlIHN1YnRyZWUncyBpbmRpY2VzIGZvcm0gYSBjb250aWd1b3VzIGJsb2NrIGlm
OgorLy8KKy8vICAgICAgICAgICBtYXhTdGFja0luZGV4IC0gbWluU3RhY2tJbmRleCA9PSBudW1T
Q0Rlc2NlbmRhbnRzCisvLworLy8gU28gZm9yIG5vZGUgQSBpbiB0aGUgZXhhbXBsZSBhYm92ZSB3
ZSB3b3VsZCBoYXZlOgorLy8gICBtYXhTdGFja0luZGV4ID0gMQorLy8gICBtaW5TdGFja0luZGV4
ID0gLTEKKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFuZCBzbywKKy8vICAgICAg
IG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMKKy8vICA9
PT0+ICAgICAgICAgICAgICAgICAgICAgIDEgLSAoLTEpID09IDIKKy8vICA9PT0+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyID09IDIKKy8vCisvLyAgU2luY2UgdGhpcyBpcyB0cnVlLCBB
IGNhbiBzYWZlbHkgYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dC4KKy8vICBOb3csIGZvciBub2Rl
IEMgd2UgaGF2ZToKKy8vCisvLyAgIG1heFN0YWNrSW5kZXggPSA0CisvLyAgIG1pblN0YWNrSW5k
ZXggPSAwIDwtLSBiZWNhdXNlIEMgaGFzIHN0YWNraW5nIGluZGV4IDAuCisvLyAgIG51bVNDRGVj
ZW5kYW50cyA9IDIKKy8vCisvLyBhbmQgc28sCisvLyAgICAgICBtYXhTdGFja0luZGV4IC0gbWlu
U3RhY2tJbmRleCA9PSBudW1TQ0Rlc2NlbmRhbnRzCisvLyAgPT09PiAgICAgICAgICAgICAgICAg
ICAgICAgICA0IC0gMCA9PSAyCisvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NCA9PSAyCisvLworLy8gU2luY2UgdGhpcyBpcyBmYWxzZSwgQyBjYW5ub3QgYmUgc2FmZWx5IHBy
b21vdGVkIHRvIGEgc3RhY2tpbmcgY29udGV4dC4gVGhpcworLy8gaGFwcGVuZWQgYmVjYXVzZSBv
ZiB0aGUgZWxlbWVudHMgd2l0aCB6LWluZGV4IDUgYW5kIDAuIE5vdyBpZiA1IGhhZCBiZWVuIGEK
Ky8vIGNoaWxkIG9mIEMgcmF0aGVyIHRoYW4gRCwgYW5kIEEgaGFkIG5vIGNoaWxkIHdpdGggWiBp
bmRleCAwLCB3ZSB3b3VsZCBoYXZlIGhhZDoKKy8vCisvLyAgIG1heFN0YWNrSW5kZXggPSAzCisv
LyAgIG1pblN0YWNrSW5kZXggPSAwIDwtLSBiZWNhdXNlIEMgaGFzIHN0YWNraW5nIGluZGV4IDAu
CisvLyAgIG51bVNDRGVjZW5kYW50cyA9IDMKKy8vCisvLyBhbmQgc28sCisvLyAgICAgICBtYXhT
dGFja0luZGV4IC0gbWluU3RhY2tJbmRleCA9PSBudW1TQ0Rlc2NlbmRhbnRzCisvLyAgPT09PiAg
ICAgICAgICAgICAgICAgICAgICAgICAzIC0gMCA9PSAzCisvLyAgPT09PiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMyA9PSAzCisvLworLy8gIEFuZCB3ZSB3b3VsZCBjb25jbHVkZSB0aGF0
IEMgY291bGQgYmUgcHJvbW90ZWQuCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVDYW5TYWZlbHlF
c3RhYmxpc2hTdGFja2luZ0NvbnRleHQoKQoreworICAgIGlmICghaXNTdGFja2luZ0NvbnRleHQo
KSB8fCAhYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIW1fbm9ybWFsRmxvd0xpc3REaXJ0eSk7Cisg
ICAgQVNTRVJUKCFtX3pPcmRlckxpc3RzRGlydHkpOworCisgICAgLy8gQ3JlYXRlIGEgcmV2ZXJz
ZSBsb29rdXAuCisgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJMYXllciosIGludD4gbG9va3VwOwor
CisgICAgaWYgKG1fbmVnWk9yZGVyTGlzdCkgeworICAgICAgICBpbnQgc3RhY2tpbmdPcmRlcklu
ZGV4ID0gLTE7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG1fbmVnWk9yZGVyTGlzdC0+c2l6
ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAg
ICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIgPSBtX25lZ1pPcmRlckxpc3QtPmF0
KGxpc3RTaXplIC0gaSAtIDEpOworICAgICAgICAgICAgaWYgKCFjdXJyZW50TGF5ZXItPmlzU3Rh
Y2tpbmdDb250ZXh0KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBs
b29rdXAuc2V0KGN1cnJlbnRMYXllciwgc3RhY2tpbmdPcmRlckluZGV4LS0pOworICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkgeworICAgICAgICBzaXplX3QgbGlz
dFNpemUgPSBtX3Bvc1pPcmRlckxpc3QtPnNpemUoKTsKKyAgICAgICAgaW50IHN0YWNraW5nT3Jk
ZXJJbmRleCA9IDE7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsr
aSkgeworICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciA9IG1fcG9zWk9yZGVy
TGlzdC0+YXQoaSk7CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRMYXllci0+aXNTdGFja2luZ0Nv
bnRleHQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGxvb2t1cC5z
ZXQoY3VycmVudExheWVyLCBzdGFja2luZ09yZGVySW5kZXgrKyk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpbnQgbWluSW5kZXggPSAwOworICAgIGludCBtYXhJbmRleCA9IDA7CisgICAgaW50
IGNvdW50ID0gMDsKKyAgICBib29sIGZpcnN0SXRlcmF0aW9uID0gdHJ1ZTsKKyAgICB1cGRhdGVD
YW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHRSZWN1cnNpdmUobG9va3VwLCBtaW5JbmRl
eCwgbWF4SW5kZXgsIGNvdW50LCBmaXJzdEl0ZXJhdGlvbik7Cit9CisKK3ZvaWQgUmVuZGVyTGF5
ZXI6OnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJlY3Vyc2l2ZShjb25z
dCBIYXNoTWFwPGNvbnN0IFJlbmRlckxheWVyKiwgaW50PiYgbG9va3VwLCBpbnQmIG1pbkluZGV4
LCBpbnQmIG1heEluZGV4LCBpbnQmIGNvdW50LCBib29sIGZpcnN0SXRlcmF0aW9uKQoreworICAg
IGlmIChpc1N0YWNraW5nQ29udGV4dCgpICYmICFmaXJzdEl0ZXJhdGlvbikgeworICAgICAgICBp
ZiAobG9va3VwLmNvbnRhaW5zKHRoaXMpKSB7CisgICAgICAgICAgICBtaW5JbmRleCA9IHN0ZDo6
bWluKG1pbkluZGV4LCBsb29rdXAuZ2V0KHRoaXMpKTsKKyAgICAgICAgICAgIG1heEluZGV4ID0g
c3RkOjptYXgobWF4SW5kZXgsIGxvb2t1cC5nZXQodGhpcykpOworICAgICAgICAgICAgY291bnQr
KzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChSZW5kZXJM
YXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2li
bGluZygpKSB7CisgICAgICAgIGludCBjaGlsZE1pbkluZGV4ID0gMDsKKyAgICAgICAgaW50IGNo
aWxkTWF4SW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRDb3VudCA9IDA7CisgICAgICAgIGNo
aWxkLT51cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHRSZWN1cnNpdmUobG9v
a3VwLCBjaGlsZE1pbkluZGV4LCBjaGlsZE1heEluZGV4LCBjaGlsZENvdW50LCBmYWxzZSk7Cisg
ICAgICAgIGlmIChjaGlsZENvdW50KSB7CisgICAgICAgICAgICBjb3VudCArPSBjaGlsZENvdW50
OworICAgICAgICAgICAgbWluSW5kZXggPSBzdGQ6Om1pbihtaW5JbmRleCwgY2hpbGRNaW5JbmRl
eCk7CisgICAgICAgICAgICBtYXhJbmRleCA9IHN0ZDo6bWF4KG1heEluZGV4LCBjaGlsZE1heElu
ZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghaXNTdGFja2luZ0NvbnRleHQoKSkg
eworICAgICAgICBib29sIG5ld1ZhbHVlID0gbWF4SW5kZXggLSBtaW5JbmRleCA9PSBjb3VudDsK
KyAgICAgICAgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0ID0gbmV3VmFsdWU7
CisgICAgfQorfQorCisKIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbXB1dGVSZXBhaW50UmVjdHMoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgUmVuZGVy
R2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwKQogewogICAgIEFTU0VSVCghbV92aXNpYmxlQ29udGVu
dFN0YXR1c0RpcnR5KTsKQEAgLTcwNCw2ICs4NjEsMTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlUGFnaW5hdGlvbigpCiAgICAgfQogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQorYm9vbCBSZW5kZXJMYXllcjo6Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4
dCgpIGNvbnN0Cit7CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIXN0YWNraW5nQ29u
dGV4dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBtX2NhblNhZmVseUVz
dGFibGlzaEFTdGFja2luZ0NvbnRleHQ7Cit9CisjZW5kaWYKKwogdm9pZCBSZW5kZXJMYXllcjo6
c2V0SGFzVmlzaWJsZUNvbnRlbnQoKQogeyAKICAgICBpZiAobV9oYXNWaXNpYmxlQ29udGVudCAm
JiAhbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5KSB7CkBAIC0xNjE4LDEzICsxNzg1LDIwIEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJlbmRlckxheWVy
KiBhbmNlc3RvckxheWVyLCBMYXlvdXRSCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogYm9vbCBSZW5kZXJMYXllcjo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdAogewor
ICAgIHJldHVybiBpc0NvbXBvc2l0ZWQoKSAmJiBiYWNraW5nKCktPnNjcm9sbGluZ0xheWVyKCk7
Cit9CisKK2Jvb2wgUmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0
Cit7CiAgICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xsaW5nKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wgZm9yY2VVc2VDb21wb3NpdGVkU2Nyb2xs
aW5nID0gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpICYm
IGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKTsKKwogI2lmIEVOQUJMRShBQ0NF
TEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCi0gICAgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxl
KCktPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKTsKKyAgICByZXR1cm4gZm9yY2VVc2VDb21w
b3NpdGVkU2Nyb2xsaW5nIHx8IHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dT
Y3JvbGxpbmcoKTsKICNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBmb3JjZVVz
ZUNvbXBvc2l0ZWRTY3JvbGxpbmc7CiAjZW5kaWYKIH0KICNlbmRpZgpAQCAtMTc4OSw4ICsxOTYz
LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKICAgICAgICAg
ZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1
YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCisgICAgYm9vbCByZXF1aXJl
c1JlcGFpbnQgPSB0cnVlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAg
IGlmIChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCkgJiYgdXNlc0NvbXBvc2l0ZWRT
Y3JvbGxpbmcoKSkKKyAgICAgICAgcmVxdWlyZXNSZXBhaW50ID0gZmFsc2U7CisjZW5kaWYKKwog
ICAgIC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJlcGFpbnQgb2Ygb3VyIG9iamVjdC4KLSAgICBp
ZiAodmlldyAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICBpZiAodmlldyAmJiBy
ZXF1aXJlc1JlcGFpbnQpCiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnRVc2luZ0NvbnRhaW5l
cihyZXBhaW50Q29udGFpbmVyLCBwaXhlbFNuYXBwZWRJbnRSZWN0KG1fcmVwYWludFJlY3QpKTsK
IAogICAgIC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwgRE9NIGV2ZW50LgpAQCAtNDc4MCw4ICs0OTYx
LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMoKQogICAgIG1fek9yZGVy
TGlzdHNEaXJ0eSA9IHRydWU7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0g
ICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgaWYgKCFy
ZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAgY29tcG9zaXRv
cigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CisgICAgICAgIGlmIChhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAgICAg
ICBjb21wb3NpdG9yKCktPnNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0
KCk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTQ4MDEsOCArNDk4NSwxMSBAQCB2b2lkIFJlbmRl
ckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkKICAgICBtX25vcm1hbEZsb3dMaXN0RGlydHkg
PSB0cnVlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghcmVu
ZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgIGlmICghcmVuZGVyZXIoKS0+
ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7CiAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0Q29t
cG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOworICAgICAgICBpZiAoYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICAgICAgY29tcG9zaXRv
cigpLT5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpOworICAgIH0K
ICNlbmRpZgogfQogCkBAIC00OTAwLDYgKzUwODcsOCBAQCB2b2lkIFJlbmRlckxheWVyOjpjb2xs
ZWN0TGF5ZXJzKGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycywgT3duUHRyPFZlY3RvcjxSZW5kZXJM
YQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKQogeworICAg
IGJvb2wgc2hvdWxkVXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0ID0gaXNT
dGFja2luZ0NvbnRleHQoKSAmJiAobV96T3JkZXJMaXN0c0RpcnR5IHx8IG1fbm9ybWFsRmxvd0xp
c3REaXJ0eSk7CisKICAgICB1cGRhdGVaT3JkZXJMaXN0cygpOwogICAgIHVwZGF0ZU5vcm1hbEZs
b3dMaXN0KCk7CiAKQEAgLTQ5MDcsNiArNTA5Niw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZUxheWVyTGlzdHNJZk5lZWRlZCgpCiAgICAgICAgIHJlZmxlY3Rpb25MYXllci0+dXBkYXRlWk9y
ZGVyTGlzdHMoKTsKICAgICAgICAgcmVmbGVjdGlvbkxheWVyLT51cGRhdGVOb3JtYWxGbG93TGlz
dCgpOwogICAgIH0KKworICAgIGlmIChzaG91bGRVcGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFj
a2luZ0NvbnRleHQpCisgICAgICAgIHVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29u
dGV4dCgpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVDb21wb3NpdGluZ0FuZExheWVy
TGlzdHNJZk5lZWRlZCgpCkBAIC00OTk0LDE0ICs1MTg2LDE0IEBAIGJvb2wgUmVuZGVyTGF5ZXI6
OnNob3VsZEJlTm9ybWFsRmxvd09ubHkoKSBjb25zdAogICAgICAgICAgICAgJiYgIXJlbmRlcmVy
KCktPmhhc0JsZW5kTW9kZSgpCiAjZW5kaWYKICAgICAgICAgICAgICYmICFpc1RyYW5zcGFyZW50
KCkKLSAgICAgICAgICAgICYmICF1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpOworICAgICAgICAg
ICAgJiYgIW5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwogfQogCiBib29sIFJlbmRlckxheWVy
OjpzaG91bGRCZVNlbGZQYWludGluZ0xheWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gIWlzTm9y
bWFsRmxvd09ubHkoKQogICAgICAgICB8fCBoYXNPdmVybGF5U2Nyb2xsYmFycygpCi0gICAgICAg
IHx8IHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkKKyAgICAgICAgfHwgbmVlZHNDb21wb3NpdGVk
U2Nyb2xsaW5nKCkKICAgICAgICAgfHwgcmVuZGVyZXIoKS0+aGFzUmVmbGVjdGlvbigpCiAgICAg
ICAgIHx8IHJlbmRlcmVyKCktPmhhc01hc2soKQogICAgICAgICB8fCByZW5kZXJlcigpLT5pc1Rh
YmxlUm93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggMGMwY2Q3
OTgyMWJhZTkyYzg5NTk5NGIwYzc3ZDMzMDExYmVhYWY2OS4uMWNkNGU2YzQyNTI1MmRiODM0NzBk
MGNjMzc1ZTNlZmU2YWE1OGNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKQEAgLTY1NSw2ICs2NTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVy
KiBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBHcmFwaGlj
c0xheWVyKiBsYXllckZvclNjcm9sbENvcm5lcigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCB1
c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0IE9WRVJSSURFOworICAgIGJvb2wgbmVlZHND
b21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3Q7CiAjZWxzZQogICAgIGJvb2wgaXNDb21wb3NpdGVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGhhc0NvbXBvc2l0ZWRNYXNrKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTcyMiw2ICs3MjMsMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNldEFuY2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKTsK
ICAgICB2b2lkIGRpcnR5QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFu
dFN0YXR1cygpOwogCisgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hT
dGFja2luZ0NvbnRleHQoKTsKKyAgICB2b2lkIHVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNr
aW5nQ29udGV4dFJlY3Vyc2l2ZShjb25zdCBIYXNoTWFwPGNvbnN0IFJlbmRlckxheWVyKiwgaW50
PiYsIGludCYgbWluSW5kZXgsIGludCYgbWF4SW5kZXgsIGludCYgY291bnQsIGJvb2wgZmlyc3RJ
dGVyYXRpb24pOworCiAgICAgdm9pZCBjb21wdXRlUmVwYWludFJlY3RzKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJlbmRlckdlb21ldHJ5TWFw
KiA9IDApOwogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRSZWN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRz
KCk7CiAgICAgdm9pZCBjbGVhclJlcGFpbnRSZWN0cygpOwpAQCAtOTI4LDYgKzkzMyw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKEluZGlyZWN0Q29t
cG9zaXRpbmdSZWFzb24gcmVhc29uKSB7IG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA9IHJl
YXNvbjsgfQogICAgIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gaW5kaXJlY3RDb21wb3NpdGlu
Z1JlYXNvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEluZGlyZWN0Q29tcG9zaXRpbmdS
ZWFzb24+KG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbik7IH0KICAgICBib29sIG11c3RDb21w
b3NpdGVGb3JJbmRpcmVjdFJlYXNvbnMoKSBjb25zdCB7IHJldHVybiBtX2luZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb247IH0KKworICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB6IG9yZGVyaW5nIHdvdWxk
IG5vdCBjaGFuZ2UgaWYgdGhpcyBsYXllciB3ZXJlIHRvIGVzdGFibGlzaCBhIHN0YWNraW5nIGNv
bnRleHQuCisgICAgYm9vbCBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29u
c3Q7CiAjZW5kaWYKIAogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJMYXllckJhY2tpbmc7CkBAIC05
NjgsNiArOTc2LDEwIEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faGFzU2VsZlBhaW50aW5nTGF5
ZXJEZXNjZW5kYW50IDogMTsKICAgICBib29sIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5k
YW50RGlydHkgOiAxOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGJv
b2wgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0IDogMTsKKyNlbmRpZgorCiAg
ICAgY29uc3QgYm9vbCBtX2lzUm9vdExheWVyIDogMTsKIAogICAgIGJvb2wgbV91c2VkVHJhbnNw
YXJlbmN5IDogMTsgLy8gVHJhY2tzIHdoZXRoZXIgd2UgbmVlZCB0byBjbG9zZSBhIHRyYW5zcGFy
ZW50IGxheWVyLCBpLmUuLCB3aGV0aGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDg4YmUwOGRmZWJlNWY5YTdjYjc4OTI1ODA2NDhi
NDRiYmRiOTNjNzQuLjMwZjE1MjBmZGQ2MzEzNDU1Y2ZmYTA3MDM3NjM1ZTYwNDM5Y2UxNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBA
IC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGJvb2wgaGFzTm9uWmVyb1RyYW5zZm9ybU9yaWdpbihj
b25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogc3RhdGljIGJvb2wgbGF5ZXJPckFuY2VzdG9y
SXNUcmFuc2Zvcm1lZE9yVXNpbmdDb21wb3NpdGVkU2Nyb2xsaW5nKFJlbmRlckxheWVyKiBsYXll
cikKIHsKICAgICBmb3IgKFJlbmRlckxheWVyKiBjdXJyID0gbGF5ZXI7IGN1cnI7IGN1cnIgPSBj
dXJyLT5wYXJlbnQoKSkgewotICAgICAgICBpZiAoY3Vyci0+aGFzVHJhbnNmb3JtKCkgfHwgY3Vy
ci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICAgICAgaWYgKGN1cnItPmhhc1RyYW5z
Zm9ybSgpIHx8IGN1cnItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogICAgIApAQCAtNDQ4LDcgKzQ0OCw3IEBAIGJvb2wgUmVuZGVy
TGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigpCiAgICAgYm9v
bCBuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBpbmdMYXllciA9IGNvbXBvc2l0b3ItPmNsaXBzQ29tcG9z
aXRpbmdEZXNjZW5kYW50cyhtX293bmluZ0xheWVyKTsKIAogICAgIC8vIE91ciBzY3JvbGxpbmcg
bGF5ZXIgd2lsbCBjbGlwLgotICAgIGlmIChtX293bmluZ0xheWVyLT51c2VzQ29tcG9zaXRlZFNj
cm9sbGluZygpKQorICAgIGlmIChtX293bmluZ0xheWVyLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKSkKICAgICAgICAgbmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIgPSBmYWxzZTsKIAog
ICAgIGlmICh1cGRhdGVDbGlwcGluZ0xheWVycyhjb21wb3NpdG9yLT5jbGlwcGVkQnlBbmNlc3Rv
cihtX293bmluZ0xheWVyKSwgbmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIpKQpAQCAtNDU3
LDcgKzQ1Nyw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVy
Q29uZmlndXJhdGlvbigpCiAgICAgaWYgKHVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMocmVx
dWlyZXNIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKSwgcmVxdWlyZXNWZXJ0aWNhbFNjcm9sbGJh
ckxheWVyKCksIHJlcXVpcmVzU2Nyb2xsQ29ybmVyTGF5ZXIoKSkpCiAgICAgICAgIGxheWVyQ29u
ZmlnQ2hhbmdlZCA9IHRydWU7CiAKLSAgICBpZiAodXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKG1fb3du
aW5nTGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpKQorICAgIGlmICh1cGRhdGVTY3Jv
bGxpbmdMYXllcnMobV9vd25pbmdMYXllci0+bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpKQog
ICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogCiAgICAgaWYgKGxheWVyQ29uZmln
Q2hhbmdlZCkKQEAgLTYwOSw3ICs2MDksNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBk
YXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCkKICAgICBlbHNlCiAgICAgICAgIGdyYXBoaWNzTGF5
ZXJQYXJlbnRMb2NhdGlvbiA9IHJlbmRlcmVyKCktPnZpZXcoKS0+ZG9jdW1lbnRSZWN0KCkubG9j
YXRpb24oKTsKIAotICAgIGlmIChjb21wQW5jZXN0b3IgJiYgY29tcEFuY2VzdG9yLT51c2VzQ29t
cG9zaXRlZFNjcm9sbGluZygpKSB7CisgICAgaWYgKGNvbXBBbmNlc3RvciAmJiBjb21wQW5jZXN0
b3ItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpKSB7CiAgICAgICAgIFJlbmRlckJveCogcmVu
ZGVyQm94ID0gdG9SZW5kZXJCb3goY29tcEFuY2VzdG9yLT5yZW5kZXJlcigpKTsKICAgICAgICAg
SW50U2l6ZSBzY3JvbGxPZmZzZXQgPSBjb21wQW5jZXN0b3ItPnNjcm9sbGVkQ29udGVudE9mZnNl
dCgpOwogICAgICAgICBJbnRQb2ludCBzY3JvbGxPcmlnaW4ocmVuZGVyQm94LT5ib3JkZXJMZWZ0
KCksIHJlbmRlckJveC0+Ym9yZGVyVG9wKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA1NjFlYjI4YTZkOWM4YjE4ZmJl
OTE0MDZjY2QzZDM4ZjI0Y2FhNzcwLi42ZjJmMDhmMzExOGIwNTNmNDhiNzhhOGFjZjA5OTM3ZDIz
MDI3NTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcApAQCAtNTM5LDYgKzUzOSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjp1cGRhdGVCYWNraW5nKFJlbmRlckxheWVyKiBsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VS
CiAgICAgICAgIGVuYWJsZUNvbXBvc2l0aW5nTW9kZSgpOwogICAgICAgICAKICAgICAgICAgaWYg
KCFsYXllci0+YmFja2luZygpKSB7CisgICAgICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIlJl
bmRlckxheWVyQ29tcG9zaXRvcjo6dWRwYXRlQmFja2luZyAoY3JlYXRpbmcgYmFja2luZykiKTsK
ICAgICAgICAgICAgIC8vIElmIHdlIG5lZWQgdG8gcmVwYWludCwgZG8gc28gYmVmb3JlIG1ha2lu
ZyBiYWNraW5nCiAgICAgICAgICAgICBpZiAoc2hvdWxkUmVwYWludCA9PSBDb21wb3NpdGluZ0No
YW5nZVJlcGFpbnROb3cpCiAgICAgICAgICAgICAgICAgcmVwYWludE9uQ29tcG9zaXRpbmdDaGFu
Z2UobGF5ZXIpOwpAQCAtNTY0LDYgKzU2NSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp1cGRhdGVCYWNraW5nKFJlbmRlckxheWVyKiBsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSCiAg
ICAgICAgIHVwZGF0ZVZpZXdwb3J0Q29uc3RyYWludFN0YXR1cyhsYXllcik7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgaWYgKGxheWVyLT5iYWNraW5nKCkpIHsKKyAgICAgICAgVFJBQ0VfRVZFTlQw
KCJ3ZWJraXQiLCAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1ZHBhdGVCYWNraW5nIChkZXN0cm95
aW5nIGJhY2tpbmcpIik7CiAgICAgICAgICAgICAvLyBJZiB3ZSdyZSByZW1vdmluZyBiYWNraW5n
IG9uIGEgcmVmbGVjdGlvbiwgY2xlYXIgdGhlIHNvdXJjZSBHcmFwaGljc0xheWVyJ3MgcG9pbnRl
ciB0bwogICAgICAgICAgICAgLy8gaXRzIHJlcGxpY2EgR3JhcGhpY3NMYXllci4gSW4gcHJhY3Rp
Y2UgdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIGJlY2F1c2UgcmVmbGVjdGVlIGFuZCByZWZsZWN0
aW9uIAogICAgICAgICAgICAgLy8gYXJlIGJvdGggZWl0aGVyIGNvbXBvc2l0ZWQsIG9yIG5vdCBj
b21wb3NpdGVkLgpAQCAtMTk4NSw3ICsxOTg3LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmUK
IAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JPdmVy
Zmxvd1Njcm9sbGluZyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGxheWVyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpOworICAgIHJldHVybiBsYXllci0+
bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CiB9CiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjppc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9ybUFuaW1hdGlvbihSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCmluZGV4IDUxOTM0MTFhMmQ3MTBlNzllMjM4ZjUxMGJmNzRhZTBlNmEx
ZmRjYTEuLjdiNzQwMjI2NWE4NTM1NTQxZWQ1MTJhNGFmMTlhNTQ3MWNlM2Y3NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTIz
MSw2ICsyMzEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldFRyYWNrZWRSZXBhaW50UmVjdHMo
KTsKICAgICB2b2lkIHNldFRyYWNrc1JlcGFpbnRzKGJvb2wpOwogCisgICAgdm9pZCBzZXRTaG91
bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpIHsgbV9yZWV2YWx1YXRlQ29tcG9z
aXRpbmdBZnRlckxheW91dCA9IHRydWU7IH0KKwogcHJpdmF0ZToKICAgICBjbGFzcyBPdmVybGFw
TWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRl
eCBjNzQ4ZWFiYzRhZjJmMWMxMWE1M2YzNjZmOTYxM2IxZTlmNzhlMTU2Li5lMGI4OWRmNmVkMTc3
MTJjYTcyNzA3Y2Y5M2NjZjdlMTgzZDg1M2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTIxMSw2ICsyMTEsMTIgQEAgdm9pZCBJbnRlcm5hbFNl
dHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFi
bGVkLCBFeGMKICAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Ny
b2xsYWJsZUZyYW1lc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5n
czo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29sIGVuYWJsZWQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdz
KCk7CisgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRB
Y2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggZjM3OWYyODU4ZDk4M2VmOThlN2Uy
ZTBiZWVlY2RkYTk4MWRhMmZmNi4uMWZjN2YyZDRjNmIxMjM0MDRiYjAyZWI5MzE0MDc1ZTNhNDcz
NGE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEw
Myw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0
aW5nRm9yRml4ZWRQb3NpdGlvbihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2Nl
bGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsCmluZGV4IGQzN2IzZjhjMjNhMDJkYzdhNTMyNjBhNTdiNDIxYjVmOTdiODI2ZDYuLjdl
NTcxY2FhN2ZhMTUyZjNiNjE3MDhiNDUyYmNiODBlYjhjZmQwZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMjksNiArMjksNyBAQAogICAgIHZv
aWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlv
bihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0
RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92
ZXJmbG93U2Nyb2xsKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFi
bGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBz
ZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBjOGQ5MThjZjhlOTRhYjEzMjUxMTYzYjA2NWNjZGM4ZGY4YjAwMTFm
Li4xNzM2YzM1YmQyZmUzM2M3ODNkMzM3ZDMwOTEyMGVmZGNkMzE3NTA2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTItMTEtMjcgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgQXV0b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgdmFyaW91cyBj
b25maWd1cmF0aW9ucyBvZiBlbGVtZW50cyB0byBlbnN1cmUgdGhhdCB3ZSBvbmx5IGF1dG9tYXRp
Y2FsbHkgb3B0IGludG8KKyAgICAgICAgY29tcG9zaXRlZCBzY3JvbGxpbmcgd2hlbiBpdCBpcyBz
YWZlIHRvIGRvIHNvLgorCisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGlj
YWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29t
cG9zaXRlZC1zY3JvbGxpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Nv
bXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3Jv
bGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMi0xMi0wNCAgRW1pbCBBIEVrbHVuZCAg
PGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbWFyayBmYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L2luZXJ0Q29udGVudHMuaHRtbCBhcyBmbGFreSBvbiBtYWMgZGVi
dWcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9z
aXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNDk5NTc1NjkyOWNjNmJl
NGQ5ZmMxMGJmZmYxMjRmMGQzOGM4NjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Ny
b2xsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwMTAgQEAKK0l0ZXJhdGlvbiAwLCBsYXll
ciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hp
bGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDAp
CisgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChw
b3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAg
IChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAg
MTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAg
MS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAg
ICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMg
MTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91
bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAg
IChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDEsIGxheWVyIHRyZWU6
CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxMzc1LjAwKQorICAoY2hpbGRyZW4g
MQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMzc1LjAwKQorICAg
ICAgKGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRp
b24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAg
ICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4g
MQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91
bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisg
ICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4w
MCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAx
ODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAuMDApCisgICAgICAgICAgKGJv
dW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
KQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMiwgbGF5ZXIgdHJlZToKKyhH
cmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDI0OTUuMDApCisgIChjaGlsZHJlbiAxCisg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDI0OTUuMDApCisgICAgICAo
Y2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAy
OC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMg
MTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4
NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4w
MCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICAp
CispCisKK0l0ZXJhdGlvbiAzLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5k
cyA3ODUuMDAgMzUzNS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgKGJvdW5kcyA3ODUuMDAgMzUzNS4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAg
IChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIw
MC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAg
ICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1
LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4
Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAg
ICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAg
MjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQor
ICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5
LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDAp
CisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDQsIG5v
IGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gNSwgbGF5ZXIgdHJlZToKKyhHcmFwaGlj
c0xheWVyCisgIChib3VuZHMgNzg1LjAwIDQ1OTEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDQ1OTEuMDApCisgICAgICAoY2hpbGRy
ZW4gNAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAy
MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAw
IDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJv
dW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAg
IChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAg
ICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDYsIG5vIGxh
eWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gNywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4K
K0l0ZXJhdGlvbiA4LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDksIG5vIGxh
eWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gMTAsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NM
YXllcgorICAoYm91bmRzIDc4NS4wMCA1NjMxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFw
aGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA1NjMxLjAwKQorICAgICAgKGNoaWxkcmVu
IDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAu
MDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAy
MTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICAp
CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3Vu
ZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkK
KyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDExLCBsYXllciB0cmVlOgorKEdy
YXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNjI1NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNjI1NS4wMCkKKyAgICAgIChj
aGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4
LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAg
ICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAx
OTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAg
ICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0
MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAg
ICApCisgICkKKykKKworSXRlcmF0aW9uIDEyLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIK
KyAgKGJvdW5kcyA3ODUuMDAgNzAyMy4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNzAyMy4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQor
ICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAw
KQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDAp
CisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDEzLCBs
YXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNzcxMS4wMCkKKyAg
KGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNzcx
MS4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4w
MCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4
NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAg
KQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4
Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICAp
CisgICkKKykKKworSXRlcmF0aW9uIDE0LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAg
KGJvdW5kcyA3ODUuMDAgODM5OS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgKGJvdW5kcyA3ODUuMDAgODM5OS4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAg
ICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAw
LjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQor
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjAuMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJ
dGVyYXRpb24gMTUsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4w
MCA5MTY3LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91
bmRzIDc4NS4wMCA5MTY3LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5k
cyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAo
Y2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQor
ICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAg
ICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4
Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQor
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAuMDAp
CisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMTYs
IGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA5OTM1LjAwKQor
ICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA5
OTM1LjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAy
LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAg
MS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAg
ICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAg
ICkKKyAgKQorKQorCitJdGVyYXRpb24gMTcsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVy
YXRpb24gMTgsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAx
MDYzOS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5k
cyA3ODUuMDAgMTA2MzkuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRz
IDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChj
aGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisg
ICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE5
LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDIwLCBsYXllciB0cmVlOgorKEdy
YXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTExOTkuMDApCisgIChjaGlsZHJlbiAxCisg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDExMTk5LjAwKQorICAgICAg
KGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRz
IDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAg
ICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjAuMDAgMjAuMDApCisg
ICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMjEsIGxh
eWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxMTk5OS4wMCkKKyAg
KGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTE5
OTkuMDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIu
MDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0Cisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAx
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
ODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
ODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIyLCBsYXllciB0
cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTI5NDMuMDApCisgIChjaGls
ZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDEyOTQzLjAw
KQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAw
IDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAw
IDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRz
IDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAg
KQorICApCispCisKK0l0ZXJhdGlvbiAyMywgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisg
IChib3VuZHMgNzg1LjAwIDEzODA3LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMzgwNy4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQor
ICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAw
KQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDAp
CisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRp
b24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAg
ICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5
MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24g
MjQsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gMjUsIGxheWVyIHRyZWU6Ciso
R3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxNDY4Ny4wMCkKKyAgKGNoaWxkcmVuIDEK
KyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTQ2ODcuMDApCisgICAg
ICAoY2hpbGRyZW4gMworICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlv
biAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAx
CisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3Vu
ZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAg
ICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEw
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQor
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAuMDAp
CisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMjYs
IGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAxNTQ4Ny4wMCkK
KyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAg
MTU0ODcuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAy
MDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0
CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4w
MCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAg
ICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAg
ICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlv
biAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAg
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAg
IChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDI3LCBubyBsYXllciB0cmVlIHByb2R1Y2Vk
LgorSXRlcmF0aW9uIDI4LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDI5LCBu
byBsYXllciB0cmVlIHByb2R1Y2VkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9w
dC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc5Yzg5YTA4Y2E1
YTQzMGM4Y2FjZGVlODNiOWU0YjhjMDk3ZDA1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRl
ZC1zY3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDE0MiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElD
ICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3
LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9dXRmLTgiLz4KKyAgPHRpdGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
PC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAu
Y29udGFpbmVyIHsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7Cisg
ICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9yZGVy
OiAxcHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdpZHRo
OiAxODBweDsKKyAgICAgIGhlaWdodDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAg
IGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAg
fQorCisgICAgLnBvc2l0aW9uZWQgeworICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVpZ2h0
OiAyNDBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgIH0KKworICAgICNwcmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4
OworICAgICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNzdWNjZXNzb3IgeworICAgICAgbGVm
dDogMTYwcHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiB3cml0
ZShzdHIpCisgICAgeworICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlJyk7CisgICAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0ciAr
ICdcbicpOworICAgICAgcHJlLmFwcGVuZENoaWxkKHRleHQpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGRvVGVzdCgpCisgICAgeworICAgICAgdmFyIHByZWRlY2Vzc29yID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3ByZWRlY2Vzc29yJyk7CisgICAgICB2YXIgc3VjY2Vzc29yID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3N1Y2Nlc3NvcicpOworICAgICAgdmFyIGNvbnRhaW5lciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKKyAgICAgIHZhciBmaXJzdENoaWxk
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0Q2hpbGQnKTsKKyAgICAgIHZhciBzZWNv
bmRDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWNvbmRDaGlsZCcpOworICAgICAg
dmFyIGNvdW50ID0gMDsKKworICAgICAgZm9yIChpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAg
ICBmb3IgKGogPSAwOyBqIDwgNTsgKytqKSB7CisgICAgICAgICAgZm9yIChrID0gMDsgayA8IDI7
ICsraykgeworICAgICAgICAgICAgdmFyIG1pblpJbmRleCA9IDA7CisgICAgICAgICAgICB2YXIg
bWF4WkluZGV4ID0gMDsKKyAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAg
Zmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnMSc7CisgICAgICAgICAgICAgIHNlY29uZENoaWxk
LnN0eWxlLnpJbmRleCA9ICczJzsKKyAgICAgICAgICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoaSA9PSAxKSB7CisgICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5
bGUuekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4
ID0gJy0zJzsKKyAgICAgICAgICAgICAgbWluWkluZGV4ID0gLTM7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICctMSc7CisgICAg
ICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxlLnpJbmRleCA9ICczJzsKKyAgICAgICAgICAgICAg
bWluWkluZGV4ID0gLTE7CisgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHZhciBzaWJsaW5nID0gcHJlZGVjZXNzb3I7CisgICAgICAgICAg
ICB2YXIgdG9IaWRlID0gc3VjY2Vzc29yOworICAgICAgICAgICAgaWYgKGsgPT0gMSkgeworICAg
ICAgICAgICAgICBzaWJsaW5nID0gc3VjY2Vzc29yOworICAgICAgICAgICAgICB0b0hpZGUgPSBw
cmVkZWNlc3NvcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdG9IaWRlLnN0eWxlLmRp
c3BsYXkgPSAnbm9uZSc7CisgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLmRpc3BsYXkgPSAnJzsK
KyAgICAgICAgICAgIGlmIChqID09IDApIHsKKyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56
SW5kZXggPSAobWF4WkluZGV4ICsgMSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaiA9PSAxKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gKG1pblpJ
bmRleCAtIDEpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGogPT0gMikgewor
ICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1heFpJbmRleC50b1N0cmluZygp
OworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDMpIHsKKyAgICAgICAgICAgICAgc2libGlu
Zy5zdHlsZS56SW5kZXggPSBtaW5aSW5kZXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gKChtaW5aSW5kZXggKyBt
YXhaSW5kZXgpIC8gMikudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
Ly8gRm9yY2UgYSBzdHlsZSByZWNhbGMuCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dFRvcDsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAg
ICAgLy8gRm9yY2UgYSBsYXlvdXQuCisgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuYm91
bmRpbmdCb3goY29udGFpbmVyKTsKKyAgICAgICAgICAgICAgdmFyIGxheWVyVHJlZSA9IHdpbmRv
dy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKKyAgICAgICAgICAgICAgaWYg
KGxheWVyVHJlZSkgeworICAgICAgICAgICAgICAgIHdyaXRlKCdJdGVyYXRpb24gJyArIGNvdW50
LnRvU3RyaW5nKCkgKworICAgICAgICAgICAgICAgICAgICAgICcsIGxheWVyIHRyZWU6Jyk7Cisg
ICAgICAgICAgICAgICAgd3JpdGUobGF5ZXJUcmVlKTsKKyAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgd3JpdGUoJ0l0ZXJhdGlvbiAnICsgY291bnQudG9TdHJpbmcoKSArCisg
ICAgICAgICAgICAgICAgICAgICAgJywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4nKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRv
VGVzdCwgZmFsc2UpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDxkaXYgY2xh
c3M9InBvc2l0aW9uZWQiIGlkPSJwcmVkZWNlc3NvciI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciIgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQiIGlkPSJm
aXJzdENoaWxkIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9InNlY29uZENo
aWxkIj48L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJzdWNj
ZXNzb3IiPjwvZGl2PgorICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzwvYm9keT4KKzwvaHRt
bD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL292
ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1
dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjgwNmNhMjA4MzI3ZTdkNDg3MzgyYWIwODQ0YzIwMDQyZjlmNjAyOWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvb3ZlcmZs
b3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3NzAgQEAKK0l0ZXJhdGlvbiAwLCBsYXllciB0cmVlOgorKEdyYXBoaWNz
TGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFw
aGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4g
NAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4w
MCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIx
MC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkK
KyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAw
KQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4
NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjAuMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAu
MDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAg
KQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xh
eWVyCisgIChib3VuZHMgNzg1LjAwIDEwODAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDEwODAuMDApCisgICAgICAoY2hpbGRyZW4g
NAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4w
MCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91
bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIx
MC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkK
KyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAw
KQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4
NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIw
LjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAg
ICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NM
YXllcgorICAoYm91bmRzIDc4NS4wMCAxOTA1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFw
aGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxOTA1LjAwKQorICAgICAgKGNoaWxkcmVu
IDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAu
MDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAy
MTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICAp
CisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4w
MCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAx
ODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCisp
CisKK0l0ZXJhdGlvbiAzLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3
ODUuMDAgMjY1NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
KGJvdW5kcyA3ODUuMDAgMjY1NS4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChi
b3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4w
MCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4w
MCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4w
MCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gNCwg
bm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiA1LCBsYXllciB0cmVlOgorKEdyYXBo
aWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMzQyMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMzQyMC4wMCkKKyAgICAgIChjaGls
ZHJlbiA0CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAu
MDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAx
ODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUu
MDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAg
ICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5k
cyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQor
ICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gNiwgbm8gbGF5ZXIgdHJlZSBwcm9k
dWNlZC4KK0l0ZXJhdGlvbiA3LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDgs
IG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gOSwgbm8gbGF5ZXIgdHJlZSBwcm9k
dWNlZC4KK0l0ZXJhdGlvbiAxMCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3Vu
ZHMgNzg1LjAwIDQzMDUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgNzg1LjAwIDQzMDUuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAy
MDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjAuMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJ
dGVyYXRpb24gMTEsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4w
MCA0ODAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91
bmRzIDc4NS4wMCA0ODAwLjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5k
cyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQor
ICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAg
ICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAy
MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlv
biAxMiwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDUyOTUu
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1
LjAwIDUyOTUuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4w
MCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAg
ICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDEzLCBsYXllciB0cmVlOgorKEdyYXBo
aWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNTcxNS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNTcxNS4wMCkKKyAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAw
IDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAu
MDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJ
dGVyYXRpb24gMTQsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4w
MCA2MTM1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91
bmRzIDc4NS4wMCA2MTM1LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5k
cyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQor
ICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAg
ICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIw
LjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9u
IDE1LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNjYzMC4w
MCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUu
MDAgNjYzMC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAw
IDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAgMjAuMDApCisg
ICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMTYsIGxh
eWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA3MTI1LjAwKQorICAo
Y2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA3MTI1
LjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAw
KQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
ICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisg
ICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxNywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0
ZXJhdGlvbiAxOCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAw
IDc1NjAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3Vu
ZHMgNzg1LjAwIDc1NjAuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRz
IDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChj
aGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisg
ICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE5LCBubyBsYXllciB0cmVl
IHByb2R1Y2VkLgorSXRlcmF0aW9uIDIwLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAg
KGJvdW5kcyA3ODUuMDAgNzk5NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgKGJvdW5kcyA3ODUuMDAgNzk5NS4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAg
ICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAw
LjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQor
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAw
IDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkK
KyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisg
ICkKKykKKworSXRlcmF0aW9uIDIxLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJv
dW5kcyA3ODUuMDAgODY1NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgKGJvdW5kcyA3ODUuMDAgODY1NS4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAw
IDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlv
biAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkw
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBv
c2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICAp
CispCisKK0l0ZXJhdGlvbiAyMiwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3Vu
ZHMgNzg1LjAwIDkzMTUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgNzg1LjAwIDkzMTUuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAy
MDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAo
cG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4w
MCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMjMs
IGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA5OTAwLjAwKQor
ICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA5
OTAwLjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAy
LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAg
MS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAg
ICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAg
ICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDI0LCBubyBsYXllciB0cmVlIHByb2R1
Y2VkLgorSXRlcmF0aW9uIDI1LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5k
cyA3ODUuMDAgMTA1MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgNzg1LjAwIDEwNTAwLjAwKQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAg
ICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAg
MjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9z
aXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkK
KykKKworSXRlcmF0aW9uIDI2LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5k
cyA3ODUuMDAgMTExNjAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgNzg1LjAwIDExMTYwLjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAg
ICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAg
MjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDI3
LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDI4LCBubyBsYXllciB0cmVlIHBy
b2R1Y2VkLgorSXRlcmF0aW9uIDI5LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177758</attachid>
            <date>2012-12-05 08:31:27 -0800</date>
            <delta_ts>2012-12-12 17:50:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121205112851.patch</filename>
            <type>text/plain</type>
            <size>72611</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhODRiNWRiZWJhNTlkMDM5ZjAzYjdmMGE4Mzc2Y2Q1Y2YzNzc2N2UyLi5m
MTY2Y2E0M2U0Y2VhNWRiMjg2MDQ3YjEwODJhNjU4M2NhOWFiYmY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNzIgQEAKKzIwMTItMTEtMjcgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNj
cm9sbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTQ3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBjdXJyZW50bHkgdXNlIHRoZSBjb21wb3NpdGVkIHNjcm9sbGluZyBmYWNpbGl0aWVzIHByb3Zp
ZGVkIGJ5CisgICAgICAgIHdrYi51Zy85MTExNyBpZiB0aGUgb3ZlcmZsb3cgc2Nyb2xsIGJsb2Nr
IGVsZW1lbnQgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxp
bmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNhbGx5CisgICAgICAgIG9wdCBp
bnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUgdG8gZG8gc28uIFRoaXMgY2Fu
IGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGF1
dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAgZW5hYmxlZCB2aWEgYSBzZXR0
aW5nLgorCisgICAgICAgIFRoZSB3YXkgSSBkZXRlcm1pbmUgaWYgaXQgaXMgc2FmZSBpcyBieSBj
aGVja2luZyB0aGF0IHotb3JkZXJpbmcgd2lsbAorICAgICAgICBub3QgYmUgYWZmZWN0ZWQgaWYg
dGhlIG92ZXJmbG93IHNjcm9sbGFibGUgZWxlbWVudCB3ZXJlIHByb21vdGVkIHRvIGEKKyAgICAg
ICAgc3RhY2tpbmcgY29udGV4dC4gVG8gY2hlY2sgdGhpcywgSSBlbnN1cmUgdGhhdCB0aGUgY2Fu
ZGlkYXRlIGVsZW1lbnQKKyAgICAgICAgYW5kIGFsbCBpdHMgZGVzY2VuZGFudHMgYXBwZWFyIGFz
IGEgY29udGludW91cyBibG9jayBpbiB0aGUgY2FuZGlkYXRlJ3MKKyAgICAgICAgc3RhY2tpbmcg
Y29udGV4dC4gVGhhdCBpcywgaWYgbm8gb3RoZXIgZWxlbWVudHMgYXJlICdiZXR3ZWVuJyBhbnkg
b2YKKyAgICAgICAgdGhlIGNhbmRpZGF0ZXMgZGVzY2VuZGFudHMgd2hlbiB3ZSBzb3J0IGluIHBh
aW50IG9yZGVyLCB0aGVuIHdlJ3JlIHNhZmUuCisgICAgICAgIFRoaXMgaXMgb3Zlcmx5IGNvbnNl
cnZhdGl2ZSwgaG93ZXZlci4gV2UgY291bGQsIGluIGZ1dHVyZSwgb25seSBjb25zaWRlcgorICAg
ICAgICBzdGFja2luZyBwcm9ibGVtcyBiZXR3ZWVuIGVsZW1lbnRzIHRoYXQgYWN0dWFsbHkgb3Zl
cmxhcC4KKworICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5
LW9wdC1pbnRvLWNvbXBvc2l0aW5nLXNjcm9sbGluZy5odG1sCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OlJlbmRl
ckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjphY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNr
aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlQ2FuU2Fm
ZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0UmVjdXJzaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KToKKyAgICAg
ICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIFJlbmRlckxheWVyIGNvdWxkIGJlY29tZSBhIHN0YWNr
aW5nIGNvbnRleHQgd2l0aG91dAorICAgICAgICAgIGFmZmVjdGluZyB0aGUgc3RhY2tpbmcgb3Jk
ZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcpOgorICAgICAgICAgIEhhcyBiZWVuIHVwZGF0ZWQgdG8gcmV0dXJuIHRydWUgaWYgaXQgY2Fu
IHNhZmVseSBlc3RhYmxpc2ggYSBzdGFja2luZworICAgICAgICAgIGNvbnRleHQsIGFuZCB0aGUg
c2V0dGluZyBpcyB0dXJuZWQgb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6bmVl
ZHNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
Y3JvbGxUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0
cyk6CisgICAgICAgICAgV2Ugbm93IGRpcnR5IG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5n
Q29udGV4dERpcnR5IGZvciBvdXIKKyAgICAgICAgICBkZXNjZW5kYW50cyB3aGVuIHRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpcnR5Tm9y
bWFsRmxvd0xpc3QpOgorICAgICAgICAgIFdlIG5vdyBkaXJ0eSBtX2NhblNhZmVseUVzdGFibGlz
aEFTdGFja2luZ0NvbnRleHREaXJ0eSBmb3Igb3VyCisgICAgICAgICAgZGVzY2VuZGFudHMgd2hl
biB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVMYXllckxpc3RzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnNob3VsZEJlU2VsZlBhaW50aW5nTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGF5ZXJPckFuY2VzdG9y
SXNUcmFuc2Zvcm1lZE9yVXNpbmdDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xh
eWVyR2VvbWV0cnkpOgorICAgICAgICAgIE1pbm9yIGNoYW5nZSB0byB0aGUgY2xpcHBpbmcgYm91
bmRzIG9mIHRoZSBzY3JvbGxpbmcgbGF5ZXIuIElmIHdlJ3JlCisgICAgICAgICAgbm90IHVzaW5n
IG92ZXJsYXkgc2Nyb2xsYmFycywgd2UgZG9uJ3Qgd2FudCB0aGUgY2xpcCB0byBpbmNsdWRlIHRo
ZW0uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdG
b3JPdmVyZmxvd1Njcm9sbGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRT
aG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCk6CisgICAgICAgIChSZW5kZXJM
YXllckNvbXBvc2l0b3IpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsKToKKyAgICAgICAgICBBbGxvd3MgZW5hYmxpbmcgdGhlIHNldHRp
bmcgaW4gbGF5b3V0IHRlc3RzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTEyLTA0ICBGbG9yaW4g
TWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3RhbGUgU1ZHVXNlRWxl
bWVudCByZWZlcmVuY2UgaW4gQ2FjaGVkUmVzb3VyY2U6OmNoZWNrTm90aWZ5KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDVmNWJhMzI2YTgzZDQyYjM3MDY1
NTAzNjBjZTE3ZDQ1Y2E4ZDM1N2EuLmU5OTE1MzViNmY1ZjYxOWMwZjI3M2M4YmZjZjI5ODVmYmVh
NjY2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTQ1
LDYgKzE0NSw5IEBAIFJlbmRlckxheWVyOjpSZW5kZXJMYXllcihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZW5kZXJlcikKICAgICAsIG1fbm9ybWFsRmxvd0xpc3REaXJ0eSh0cnVlKQogICAgICwg
bV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoZmFsc2UpCiAgICAgLCBtX2hhc1NlbGZQ
YWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5KGZhbHNlKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKKyAgICAsIG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dChm
YWxzZSkKKyNlbmRpZgogICAgICwgbV9pc1Jvb3RMYXllcihyZW5kZXJlci0+aXNSZW5kZXJWaWV3
KCkpCiAgICAgLCBtX3VzZWRUcmFuc3BhcmVuY3koZmFsc2UpCiAgICAgLCBtX3BhaW50aW5nSW5z
aWRlUmVmbGVjdGlvbihmYWxzZSkKQEAgLTQ2OCw2ICs0NzEsMTU5IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OmRpcnR5QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudFN0YXR1
cygpCiAgICAgfQogfQogCitib29sIFJlbmRlckxheWVyOjphY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIo
KS0+ZnJhbWUoKQorICAgICAgICAmJiByZW5kZXJlcigpLT5mcmFtZSgpLT5wYWdlKCkKKyAgICAg
ICAgJiYgcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCk7Cit9CisKKy8vIElmIHdlIGFy
ZSBhIHN0YWNraW5nIGNvbnRleHQsIHRoZW4gdGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIGEg
dmFsdWUgZm9yCisvLyBtX2NhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQgZm9yIGV2
ZXJ5IGxheWVyIGluIHRoZSBzdGFja2luZyAKKy8vIGNvbnRleHQgd2UgZXN0YWJsaXNoLiBJdCBp
cyBzYWZlIHRvIGJlY29tZSBhIHN0YWNraW5nIGNvbnRleHQgaWYgdGhpcyAKKy8vIGNoYW5nZSB3
b3VsZCBub3QgYWx0ZXIgdGhlIHN0YWNraW5nIG9yZGVyIG9mIGxheWVycyBvbiB0aGUgcGFnZS4g
VGhhdCBjYW4gCisvLyBvbmx5IGhhcHBlbiBpZiBhIG5vbi1kZXNjZW5kYW50IGFwcGVhcnMgYmV0
d2VlbiB1cyBhbmQgb3VyIGRlc2NlbmRhbnRzIGluIAorLy8gc3RhY2tpbmcgb3JkZXIuIEhlcmUn
cyBhbiBleGFtcGxlOgorLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gIHwgIFwuCisvLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBICAgQiAgIEMKKy8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgL1wgICB8ICAgL1wuCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAt
OCAgRCAgMiAgNworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1CisvLworLy8gSSd2ZSBsYWJlbGVkIG91
ciBub3JtYWwgZmxvdyBkZXNjZW5kYW50cyBBLCBCLCBDLCBhbmQgRCwgb3VyIHN0YWNraW5nCisv
LyBjb250ZXh0IGRlc2NlbmRhbnRzIHdpdGggdGhlaXIgeiBpbmRpY2VzLCBhbmQgdXMgd2l0aCAn
dGhpcycgKHdlJ3JlIGEKKy8vIHN0YWNraW5nIGNvbnRleHQgYW5kIG91ciB6SW5kZXggZG9lc24n
dCBtYXR0ZXIgaGVyZSkuIFRoZXNlIG5vZGVzIGFwcGVhciBpbgorLy8gdGhyZWUgbGlzdHM6IHBv
c1pPcmRlciwgbmVnWk9yZGVyLCBhbmQgbm9ybWFsIGZsb3cgKGtlZXAgaW4gbWluZCB0aGF0IG5v
cm1hbAorLy8gZmxvdyBsYXllcnMgZG9uJ3Qgb3ZlcmxhcCkuIFNvIGlmIHdlIGFycmFuZ2UgdGhl
c2UgbGlzdHMgaW4gb3JkZXIgd2UgZ2V0IG91cgorLy8gc3RhY2tpbmcgb3JkZXI6CisvLworLy8g
ICAgICAgICAgICAgICAgICAgICBbLThdLCBbQS1EXSwgWzAsIDIsIDUsIDddLS0+IHBvcyB6LW9y
ZGVyLgorLy8gICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwKKy8vICAgICAgICBOZWcgei1v
cmRlci4gPC0rICAgICArLS0+IE5vcm1hbCBmbG93IGRlc2NlbmRhbnRzLgorLy8KKy8vIFdlIGNh
biB0aGVuIGFzc2lnbiBuZXcsICdzdGFja2luZycgb3JkZXIgaW5kaWNlcyB0byB0aGVzZSBlbGVt
ZW50cyBhcyBmb2xsb3dzOgorLy8KKy8vICAgICAgICAgICAgICAgICAgICAgWy04XSwgW0EtRF0s
IFswLCAyLCA1LCA3XQorLy8gJ1N0YWNraW5nJyBpbmRpY2VzOiAgLTEgICAgIDAgICAgIDEgIDIg
IDMgIDQKKy8vCisvLyBOb3RlIHRoYXQgdGhlIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIGNhbiBz
aGFyZSBhbiBpbmRleCBiZWNhdXNlIHRoZXkgZG9uJ3QKKy8vIHN0YWNrL292ZXJsYXAuIE5vdyBv
dXIgcHJvYmxlbSBiZWNvbWVzIHZlcnkgc2ltcGxlOiBhIGxheWVyIGNhbiBzYWZlbHkgYmVjb21l
CisvLyBhIHN0YWNraW5nIGNvbnRleHQgaWYgdGhlIHN0YWNraW5nLW9yZGVyIGluZGljZXMgb2Yg
aXQgYW5kIGl0cyBkZXNjZW5kYW50cworLy8gYXBwZWFyIGluIGEgY29udGlndW91cyBibG9jayBp
biB0aGUgbGlzdCBvZiBzdGFja2luZyBpbmRpY2VzLiBUaGlzIHByb2JsZW0KKy8vIGNhbiBiZSBz
b2x2ZWQgdmVyeSBlZmZpY2llbnRseSBieSBjYWxjdWxhdGluZyB0aGUgbWluL21heCBzdGFja2lu
ZyBpbmRpY2VzIGluCisvLyB0aGUgc3VidHJlZSwgYW5kIHRoZSBudW1iZXIgc3RhY2tpbmcgY29u
dGV4dCBkZXNjZW5kYW50cy4gT25jZSB3ZSBoYXZlIHRoaXMKKy8vIGluZm9ybWF0aW9uLCB3ZSBr
bm93IHRoYXQgdGhlIHN1YnRyZWUncyBpbmRpY2VzIGZvcm0gYSBjb250aWd1b3VzIGJsb2NrIGlm
OgorLy8KKy8vICAgICAgICAgICBtYXhTdGFja0luZGV4IC0gbWluU3RhY2tJbmRleCA9PSBudW1T
Q0Rlc2NlbmRhbnRzCisvLworLy8gU28gZm9yIG5vZGUgQSBpbiB0aGUgZXhhbXBsZSBhYm92ZSB3
ZSB3b3VsZCBoYXZlOgorLy8gICBtYXhTdGFja0luZGV4ID0gMQorLy8gICBtaW5TdGFja0luZGV4
ID0gLTEKKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFuZCBzbywKKy8vICAgICAg
IG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMKKy8vICA9
PT0+ICAgICAgICAgICAgICAgICAgICAgIDEgLSAoLTEpID09IDIKKy8vICA9PT0+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyID09IDIKKy8vCisvLyAgU2luY2UgdGhpcyBpcyB0cnVlLCBB
IGNhbiBzYWZlbHkgYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dC4KKy8vICBOb3csIGZvciBub2Rl
IEMgd2UgaGF2ZToKKy8vCisvLyAgIG1heFN0YWNrSW5kZXggPSA0CisvLyAgIG1pblN0YWNrSW5k
ZXggPSAwIDwtLSBiZWNhdXNlIEMgaGFzIHN0YWNraW5nIGluZGV4IDAuCisvLyAgIG51bVNDRGVj
ZW5kYW50cyA9IDIKKy8vCisvLyBhbmQgc28sCisvLyAgICAgICBtYXhTdGFja0luZGV4IC0gbWlu
U3RhY2tJbmRleCA9PSBudW1TQ0Rlc2NlbmRhbnRzCisvLyAgPT09PiAgICAgICAgICAgICAgICAg
ICAgICAgICA0IC0gMCA9PSAyCisvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NCA9PSAyCisvLworLy8gU2luY2UgdGhpcyBpcyBmYWxzZSwgQyBjYW5ub3QgYmUgc2FmZWx5IHBy
b21vdGVkIHRvIGEgc3RhY2tpbmcgY29udGV4dC4gVGhpcworLy8gaGFwcGVuZWQgYmVjYXVzZSBv
ZiB0aGUgZWxlbWVudHMgd2l0aCB6LWluZGV4IDUgYW5kIDAuIE5vdyBpZiA1IGhhZCBiZWVuIGEK
Ky8vIGNoaWxkIG9mIEMgcmF0aGVyIHRoYW4gRCwgYW5kIEEgaGFkIG5vIGNoaWxkIHdpdGggWiBp
bmRleCAwLCB3ZSB3b3VsZCBoYXZlIGhhZDoKKy8vCisvLyAgIG1heFN0YWNrSW5kZXggPSAzCisv
LyAgIG1pblN0YWNrSW5kZXggPSAwIDwtLSBiZWNhdXNlIEMgaGFzIHN0YWNraW5nIGluZGV4IDAu
CisvLyAgIG51bVNDRGVjZW5kYW50cyA9IDMKKy8vCisvLyBhbmQgc28sCisvLyAgICAgICBtYXhT
dGFja0luZGV4IC0gbWluU3RhY2tJbmRleCA9PSBudW1TQ0Rlc2NlbmRhbnRzCisvLyAgPT09PiAg
ICAgICAgICAgICAgICAgICAgICAgICAzIC0gMCA9PSAzCisvLyAgPT09PiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMyA9PSAzCisvLworLy8gIEFuZCB3ZSB3b3VsZCBjb25jbHVkZSB0aGF0
IEMgY291bGQgYmUgcHJvbW90ZWQuCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVDYW5TYWZlbHlF
c3RhYmxpc2hTdGFja2luZ0NvbnRleHQoKQoreworICAgIGlmICghaXNTdGFja2luZ0NvbnRleHQo
KSB8fCAhYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIW1fbm9ybWFsRmxvd0xpc3REaXJ0eSk7Cisg
ICAgQVNTRVJUKCFtX3pPcmRlckxpc3RzRGlydHkpOworCisgICAgLy8gQ3JlYXRlIGEgcmV2ZXJz
ZSBsb29rdXAuCisgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJMYXllciosIGludD4gbG9va3VwOwor
CisgICAgaWYgKG1fbmVnWk9yZGVyTGlzdCkgeworICAgICAgICBpbnQgc3RhY2tpbmdPcmRlcklu
ZGV4ID0gLTE7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG1fbmVnWk9yZGVyTGlzdC0+c2l6
ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAg
ICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIgPSBtX25lZ1pPcmRlckxpc3QtPmF0
KGxpc3RTaXplIC0gaSAtIDEpOworICAgICAgICAgICAgaWYgKCFjdXJyZW50TGF5ZXItPmlzU3Rh
Y2tpbmdDb250ZXh0KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBs
b29rdXAuc2V0KGN1cnJlbnRMYXllciwgc3RhY2tpbmdPcmRlckluZGV4LS0pOworICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkgeworICAgICAgICBzaXplX3QgbGlz
dFNpemUgPSBtX3Bvc1pPcmRlckxpc3QtPnNpemUoKTsKKyAgICAgICAgaW50IHN0YWNraW5nT3Jk
ZXJJbmRleCA9IDE7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsr
aSkgeworICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciA9IG1fcG9zWk9yZGVy
TGlzdC0+YXQoaSk7CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRMYXllci0+aXNTdGFja2luZ0Nv
bnRleHQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGxvb2t1cC5z
ZXQoY3VycmVudExheWVyLCBzdGFja2luZ09yZGVySW5kZXgrKyk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpbnQgbWluSW5kZXggPSAwOworICAgIGludCBtYXhJbmRleCA9IDA7CisgICAgaW50
IGNvdW50ID0gMDsKKyAgICBib29sIGZpcnN0SXRlcmF0aW9uID0gdHJ1ZTsKKyAgICB1cGRhdGVD
YW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHRSZWN1cnNpdmUobG9va3VwLCBtaW5JbmRl
eCwgbWF4SW5kZXgsIGNvdW50LCBmaXJzdEl0ZXJhdGlvbik7Cit9CisKK3ZvaWQgUmVuZGVyTGF5
ZXI6OnVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dFJlY3Vyc2l2ZShjb25z
dCBIYXNoTWFwPGNvbnN0IFJlbmRlckxheWVyKiwgaW50PiYgbG9va3VwLCBpbnQmIG1pbkluZGV4
LCBpbnQmIG1heEluZGV4LCBpbnQmIGNvdW50LCBib29sIGZpcnN0SXRlcmF0aW9uKQoreworICAg
IGlmIChpc1N0YWNraW5nQ29udGV4dCgpICYmICFmaXJzdEl0ZXJhdGlvbikgeworICAgICAgICBp
ZiAobG9va3VwLmNvbnRhaW5zKHRoaXMpKSB7CisgICAgICAgICAgICBtaW5JbmRleCA9IHN0ZDo6
bWluKG1pbkluZGV4LCBsb29rdXAuZ2V0KHRoaXMpKTsKKyAgICAgICAgICAgIG1heEluZGV4ID0g
c3RkOjptYXgobWF4SW5kZXgsIGxvb2t1cC5nZXQodGhpcykpOworICAgICAgICAgICAgY291bnQr
KzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChSZW5kZXJM
YXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2li
bGluZygpKSB7CisgICAgICAgIGludCBjaGlsZE1pbkluZGV4ID0gMDsKKyAgICAgICAgaW50IGNo
aWxkTWF4SW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRDb3VudCA9IDA7CisgICAgICAgIGNo
aWxkLT51cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHRSZWN1cnNpdmUobG9v
a3VwLCBjaGlsZE1pbkluZGV4LCBjaGlsZE1heEluZGV4LCBjaGlsZENvdW50LCBmYWxzZSk7Cisg
ICAgICAgIGlmIChjaGlsZENvdW50KSB7CisgICAgICAgICAgICBjb3VudCArPSBjaGlsZENvdW50
OworICAgICAgICAgICAgbWluSW5kZXggPSBzdGQ6Om1pbihtaW5JbmRleCwgY2hpbGRNaW5JbmRl
eCk7CisgICAgICAgICAgICBtYXhJbmRleCA9IHN0ZDo6bWF4KG1heEluZGV4LCBjaGlsZE1heElu
ZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghaXNTdGFja2luZ0NvbnRleHQoKSkg
eworICAgICAgICBib29sIG5ld1ZhbHVlID0gbWF4SW5kZXggLSBtaW5JbmRleCA9PSBjb3VudDsK
KyAgICAgICAgbV9jYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0ID0gbmV3VmFsdWU7
CisgICAgfQorfQorCiB2b2lkIFJlbmRlckxheWVyOjpjb21wdXRlUmVwYWludFJlY3RzKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJlbmRlckdl
b21ldHJ5TWFwKiBnZW9tZXRyeU1hcCkKIHsKICAgICBBU1NFUlQoIW1fdmlzaWJsZUNvbnRlbnRT
dGF0dXNEaXJ0eSk7CkBAIC03MDQsNiArODYwLDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZVBhZ2luYXRpb24oKQogICAgIH0KIH0KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKK2Jvb2wgUmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQo
KSBjb25zdAoreworICAgIGlmIChpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFzdGFja2luZ0NvbnRl
eHQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gbV9jYW5TYWZlbHlFc3Rh
Ymxpc2hBU3RhY2tpbmdDb250ZXh0OworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNl
dEhhc1Zpc2libGVDb250ZW50KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQgJiYg
IW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAtMTYxOCwxMyArMTc4NCwyMCBAQCB2
b2lkIFJlbmRlckxheWVyOjpjb252ZXJ0VG9MYXllckNvb3Jkcyhjb25zdCBSZW5kZXJMYXllciog
YW5jZXN0b3JMYXllciwgTGF5b3V0UgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
IGJvb2wgUmVuZGVyTGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QKIHsKKyAg
ICByZXR1cm4gaXNDb21wb3NpdGVkKCkgJiYgYmFja2luZygpLT5zY3JvbGxpbmdMYXllcigpOwor
fQorCitib29sIFJlbmRlckxheWVyOjpuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdAor
ewogICAgIGlmICghc2Nyb2xsc092ZXJmbG93KCkgfHwgIWFsbG93c1Njcm9sbGluZygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBib29sIGZvcmNlVXNlQ29tcG9zaXRlZFNjcm9sbGlu
ZyA9IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSAmJiBj
YW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCk7CisKICNpZiBFTkFCTEUoQUNDRUxF
UkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQotICAgIHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgp
LT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCk7CisgICAgcmV0dXJuIGZvcmNlVXNlQ29tcG9z
aXRlZFNjcm9sbGluZyB8fCByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Ny
b2xsaW5nKCk7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZm9yY2VVc2VD
b21wb3NpdGVkU2Nyb2xsaW5nOwogI2VuZGlmCiB9CiAjZW5kaWYKQEAgLTE3ODksOCArMTk2Miwx
NSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQgeCwgaW50IHkpCiAgICAgICAgIGZy
YW1lLT5ldmVudEhhbmRsZXIoKS0+ZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uSW5RdWFk
KHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogICAgIH0KIAorICAgIGJvb2wgcmVxdWlyZXNS
ZXBhaW50ID0gdHJ1ZTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBp
ZiAoY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5nTW9kZSgpICYmIHVzZXNDb21wb3NpdGVkU2Ny
b2xsaW5nKCkpCisgICAgICAgIHJlcXVpcmVzUmVwYWludCA9IGZhbHNlOworI2VuZGlmCisKICAg
ICAvLyBKdXN0IHNjaGVkdWxlIGEgZnVsbCByZXBhaW50IG9mIG91ciBvYmplY3QuCi0gICAgaWYg
KHZpZXcgJiYgIXVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgaWYgKHZpZXcgJiYgcmVx
dWlyZXNSZXBhaW50KQogICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50VXNpbmdDb250YWluZXIo
cmVwYWludENvbnRhaW5lciwgcGl4ZWxTbmFwcGVkSW50UmVjdChtX3JlcGFpbnRSZWN0KSk7CiAK
ICAgICAvLyBTY2hlZHVsZSB0aGUgc2Nyb2xsIERPTSBldmVudC4KQEAgLTQ3ODAsOCArNDk2MCwx
MSBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKCkKICAgICBtX3pPcmRlckxp
c3RzRGlydHkgPSB0cnVlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
IGlmICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgIGlmICghcmVu
ZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7CiAgICAgICAgIGNvbXBvc2l0b3Io
KS0+c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOworICAgICAgICBpZiAoYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICAgICAg
Y29tcG9zaXRvcigpLT5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgp
OworICAgIH0KICNlbmRpZgogfQogCkBAIC00ODAxLDggKzQ5ODQsMTEgQEAgdm9pZCBSZW5kZXJM
YXllcjo6ZGlydHlOb3JtYWxGbG93TGlzdCgpCiAgICAgbV9ub3JtYWxGbG93TGlzdERpcnR5ID0g
dHJ1ZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoIXJlbmRl
cmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAgICBpZiAoIXJlbmRlcmVyKCktPmRv
Y3VtZW50QmVpbmdEZXN0cm95ZWQoKSkgewogICAgICAgICBjb21wb3NpdG9yKCktPnNldENvbXBv
c2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKKyAgICAgICAgaWYgKGFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKKyAgICAgICAgICAgIGNvbXBvc2l0b3Io
KS0+c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKTsKKyAgICB9CiAj
ZW5kaWYKIH0KIApAQCAtNDkwMCw2ICs1MDg2LDggQEAgdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVj
dExheWVycyhib29sIGluY2x1ZGVIaWRkZW5MYXllcnMsIE93blB0cjxWZWN0b3I8UmVuZGVyTGEK
IAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCkKIHsKKyAgICBi
b29sIHNob3VsZFVwZGF0ZUNhblNhZmVseUVzdGFibGlzaFN0YWNraW5nQ29udGV4dCA9IGlzU3Rh
Y2tpbmdDb250ZXh0KCkgJiYgKG1fek9yZGVyTGlzdHNEaXJ0eSB8fCBtX25vcm1hbEZsb3dMaXN0
RGlydHkpOworCiAgICAgdXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICB1cGRhdGVOb3JtYWxGbG93
TGlzdCgpOwogCkBAIC00OTA3LDYgKzUwOTUsOSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVM
YXllckxpc3RzSWZOZWVkZWQoKQogICAgICAgICByZWZsZWN0aW9uTGF5ZXItPnVwZGF0ZVpPcmRl
ckxpc3RzKCk7CiAgICAgICAgIHJlZmxlY3Rpb25MYXllci0+dXBkYXRlTm9ybWFsRmxvd0xpc3Qo
KTsKICAgICB9CisKKyAgICBpZiAoc2hvdWxkVXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tp
bmdDb250ZXh0KQorICAgICAgICB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRl
eHQoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdBbmRMYXllckxp
c3RzSWZOZWVkZWQoKQpAQCAtNDk5NCwxNCArNTE4NSwxNCBAQCBib29sIFJlbmRlckxheWVyOjpz
aG91bGRCZU5vcm1hbEZsb3dPbmx5KCkgY29uc3QKICAgICAgICAgICAgICYmICFyZW5kZXJlcigp
LT5oYXNCbGVuZE1vZGUoKQogI2VuZGlmCiAgICAgICAgICAgICAmJiAhaXNUcmFuc3BhcmVudCgp
Ci0gICAgICAgICAgICAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICAgICAgICAg
ICYmICFuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKIH0KIAogYm9vbCBSZW5kZXJMYXllcjo6
c2hvdWxkQmVTZWxmUGFpbnRpbmdMYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFpc05vcm1h
bEZsb3dPbmx5KCkKICAgICAgICAgfHwgaGFzT3ZlcmxheVNjcm9sbGJhcnMoKQotICAgICAgICB8
fCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpCisgICAgICAgIHx8IG5lZWRzQ29tcG9zaXRlZFNj
cm9sbGluZygpCiAgICAgICAgIHx8IHJlbmRlcmVyKCktPmhhc1JlZmxlY3Rpb24oKQogICAgICAg
ICB8fCByZW5kZXJlcigpLT5oYXNNYXNrKCkKICAgICAgICAgfHwgcmVuZGVyZXIoKS0+aXNUYWJs
ZVJvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDBjMGNkNzk4
MjFiYWU5MmM4OTU5OTRiMGM3N2QzMzAxMWJlYWFmNjkuLjFjZDRlNmM0MjUyNTJkYjgzNDcwZDBj
YzM3NWUzZWZlNmFhNThjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CkBAIC02NTUsNiArNjU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciog
bGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwogICAgIHZpcnR1YWwgR3JhcGhpY3NM
YXllciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgdXNl
c0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBPVkVSUklERTsKKyAgICBib29sIG5lZWRzQ29t
cG9zaXRlZFNjcm9sbGluZygpIGNvbnN0OwogI2Vsc2UKICAgICBib29sIGlzQ29tcG9zaXRlZCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNDb21wb3NpdGVkTWFzaygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC03MjIsNiArNzIzLDEwIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCk7CiAg
ICAgdm9pZCBkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnRT
dGF0dXMoKTsKIAorICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsRW5hYmxlZCgpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3Rh
Y2tpbmdDb250ZXh0KCk7CisgICAgdm9pZCB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2lu
Z0NvbnRleHRSZWN1cnNpdmUoY29uc3QgSGFzaE1hcDxjb25zdCBSZW5kZXJMYXllciosIGludD4m
LCBpbnQmIG1pbkluZGV4LCBpbnQmIG1heEluZGV4LCBpbnQmIGNvdW50LCBib29sIGZpcnN0SXRl
cmF0aW9uKTsKKwogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRSZWN0cyhjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBSZW5kZXJHZW9tZXRyeU1hcCog
PSAwKTsKICAgICB2b2lkIGNvbXB1dGVSZXBhaW50UmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygp
OwogICAgIHZvaWQgY2xlYXJSZXBhaW50UmVjdHMoKTsKQEAgLTkyOCw2ICs5MzMsOSBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbihJbmRpcmVjdENvbXBv
c2l0aW5nUmVhc29uIHJlYXNvbikgeyBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gPSByZWFz
b247IH0KICAgICBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdS
ZWFzb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxJbmRpcmVjdENvbXBvc2l0aW5nUmVh
c29uPihtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24pOyB9CiAgICAgYm9vbCBtdXN0Q29tcG9z
aXRlRm9ySW5kaXJlY3RSZWFzb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0
aW5nUmVhc29uOyB9CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgeiBvcmRlcmluZyB3b3VsZCBu
b3QgY2hhbmdlIGlmIHRoaXMgbGF5ZXIgd2VyZSB0byBlc3RhYmxpc2ggYSBzdGFja2luZyBjb250
ZXh0LgorICAgIGJvb2wgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0
OwogI2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpAQCAtOTY4
LDYgKzk3NiwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVy
RGVzY2VuZGFudCA6IDE7CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFu
dERpcnR5IDogMTsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBib29s
IG1fY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCA6IDE7CisjZW5kaWYKKwogICAg
IGNvbnN0IGJvb2wgbV9pc1Jvb3RMYXllciA6IDE7CiAKICAgICBib29sIG1fdXNlZFRyYW5zcGFy
ZW5jeSA6IDE7IC8vIFRyYWNrcyB3aGV0aGVyIHdlIG5lZWQgdG8gY2xvc2UgYSB0cmFuc3BhcmVu
dCBsYXllciwgaS5lLiwgd2hldGhlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA4OGJlMDhkZmViZTVmOWE3Y2I3ODkyNTgwNjQ4YjQ0
YmJkYjkzYzc0Li4zMGYxNTIwZmRkNjMxMzQ1NWNmZmEwNzAzNzYzNWU2MDQzOWNlMTUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAt
MzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBib29sIGhhc05vblplcm9UcmFuc2Zvcm1PcmlnaW4oY29u
c3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHN0YXRpYyBib29sIGxheWVyT3JBbmNlc3Rvcklz
VHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRlZFNjcm9sbGluZyhSZW5kZXJMYXllciogbGF5ZXIp
CiB7CiAgICAgZm9yIChSZW5kZXJMYXllciogY3VyciA9IGxheWVyOyBjdXJyOyBjdXJyID0gY3Vy
ci0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGN1cnItPmhhc1RyYW5zZm9ybSgpIHx8IGN1cnIt
PnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgICAgIGlmIChjdXJyLT5oYXNUcmFuc2Zv
cm0oKSB8fCBjdXJyLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICAKQEAgLTQ0OCw3ICs0NDgsNyBAQCBib29sIFJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgIGJvb2wg
bmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIgPSBjb21wb3NpdG9yLT5jbGlwc0NvbXBvc2l0
aW5nRGVzY2VuZGFudHMobV9vd25pbmdMYXllcik7CiAKICAgICAvLyBPdXIgc2Nyb2xsaW5nIGxh
eWVyIHdpbGwgY2xpcC4KLSAgICBpZiAobV9vd25pbmdMYXllci0+dXNlc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcoKSkKKyAgICBpZiAobV9vd25pbmdMYXllci0+bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5n
KCkpCiAgICAgICAgIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyID0gZmFsc2U7CiAKICAg
ICBpZiAodXBkYXRlQ2xpcHBpbmdMYXllcnMoY29tcG9zaXRvci0+Y2xpcHBlZEJ5QW5jZXN0b3Io
bV9vd25pbmdMYXllciksIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyKSkKQEAgLTQ1Nyw3
ICs0NTcsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNv
bmZpZ3VyYXRpb24oKQogICAgIGlmICh1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKHJlcXVp
cmVzSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCksIHJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJM
YXllcigpLCByZXF1aXJlc1Njcm9sbENvcm5lckxheWVyKCkpKQogICAgICAgICBsYXllckNvbmZp
Z0NoYW5nZWQgPSB0cnVlOwogCi0gICAgaWYgKHVwZGF0ZVNjcm9sbGluZ0xheWVycyhtX293bmlu
Z0xheWVyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKSkKKyAgICBpZiAodXBkYXRlU2Nyb2xs
aW5nTGF5ZXJzKG1fb3duaW5nTGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpKSkKICAg
ICAgICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGlmIChsYXllckNvbmZpZ0No
YW5nZWQpCkBAIC02MDksNyArNjA5LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgZWxzZQogICAgICAgICBncmFwaGljc0xheWVy
UGFyZW50TG9jYXRpb24gPSByZW5kZXJlcigpLT52aWV3KCktPmRvY3VtZW50UmVjdCgpLmxvY2F0
aW9uKCk7CiAKLSAgICBpZiAoY29tcEFuY2VzdG9yICYmIGNvbXBBbmNlc3Rvci0+dXNlc0NvbXBv
c2l0ZWRTY3JvbGxpbmcoKSkgeworICAgIGlmIChjb21wQW5jZXN0b3IgJiYgY29tcEFuY2VzdG9y
LT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkgewogICAgICAgICBSZW5kZXJCb3gqIHJlbmRl
ckJveCA9IHRvUmVuZGVyQm94KGNvbXBBbmNlc3Rvci0+cmVuZGVyZXIoKSk7CiAgICAgICAgIElu
dFNpemUgc2Nyb2xsT2Zmc2V0ID0gY29tcEFuY2VzdG9yLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQo
KTsKICAgICAgICAgSW50UG9pbnQgc2Nyb2xsT3JpZ2luKHJlbmRlckJveC0+Ym9yZGVyTGVmdCgp
LCByZW5kZXJCb3gtPmJvcmRlclRvcCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNTYxZWIyOGE2ZDljOGIxOGZiZTkx
NDA2Y2NkM2QzOGYyNGNhYTc3MC4uMTk0ODEyNGY4NTE3MTllZDBjNzFlZTljMDY2MGY0NmI2NzMz
ZTQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKQEAgLTE5ODUsNyArMTk4NSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJl
CiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKSBjb25zdAogewotICAgIHJl
dHVybiBsYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICByZXR1cm4gbGF5ZXIt
Pm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwogfQogCiBib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6aXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24oUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaAppbmRleCA1MTkzNDExYTJkNzEwZTc5ZTIzOGY1MTBiZjc0YWUwZTZh
MWZkY2ExLi43Yjc0MDIyNjVhODUzNTU0MWVkNTEyYTRhZjE5YTU0NzFjZTNmNzYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0y
MzEsNiArMjMxLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRUcmFja2VkUmVwYWludFJlY3Rz
KCk7CiAgICAgdm9pZCBzZXRUcmFja3NSZXBhaW50cyhib29sKTsKIAorICAgIHZvaWQgc2V0U2hv
dWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKSB7IG1fcmVldmFsdWF0ZUNvbXBv
c2l0aW5nQWZ0ZXJMYXlvdXQgPSB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgY2xhc3MgT3Zlcmxh
cE1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5k
ZXggYzc0OGVhYmM0YWYyZjFjMTFhNTNmMzY2Zjk2MTNiMWU5Zjc4ZTE1Ni4uZTBiODlkZjZlZDE3
NzEyY2E3MjcwN2NmOTNjY2Y3ZTE4M2Q4NTNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yMTEsNiArMjExLDEyIEBAIHZvaWQgSW50ZXJuYWxT
ZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5h
YmxlZCwgRXhjCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNj
cm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVybmFsU2V0dGlu
Z3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5n
cygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0
QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGYzNzlmMjg1OGQ5ODNlZjk4ZTdl
MmUwYmVlZWNkZGE5ODFkYTJmZjYuLjFmYzdmMmQ0YzZiMTIzNDA0YmIwMmViOTMxNDA3NWUzYTQ3
MzRhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0x
MDMsNiArMTAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
Ym9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3Np
dGluZ0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJm
bG93U2Nyb2xsKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNj
ZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbAppbmRleCBkMzdiM2Y4YzIzYTAyZGM3YTUzMjYwYTU3YjQyMWI1Zjk3YjgyNmQ2Li43
ZTU3MWNhYTdmYTE1MmYzYjYxNzA4YjQ1MmJjYjgwZWI4Y2ZkMGU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTI5LDYgKzI5LDcgQEAKICAgICB2
b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRp
b24oaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNl
dEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhpbiBib29sZWFuIGVuYWJsZWQp
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JP
dmVyZmxvd1Njcm9sbChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQg
c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYzhkOTE4Y2Y4ZTk0YWIxMzI1MTE2M2IwNjVjY2RjOGRmOGIwMDEx
Zi4uMTczNmMzNWJkMmZlMzNjNzgzZDMzN2QzMDkxMjBlZmRjZDMxNzUwNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDEyLTExLTI3ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEF1dG9tYXRpY2FsbHkgdXNlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc0MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIHZhcmlvdXMg
Y29uZmlndXJhdGlvbnMgb2YgZWxlbWVudHMgdG8gZW5zdXJlIHRoYXQgd2Ugb25seSBhdXRvbWF0
aWNhbGx5IG9wdCBpbnRvCisgICAgICAgIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIHdoZW4gaXQgaXMg
c2FmZSB0byBkbyBzby4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRp
Y2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNv
bXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9j
b21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Ny
b2xsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTItMTItMDQgIEVtaWwgQSBFa2x1bmQg
IDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIG1hcmsgZmFzdC9kb20v
SFRNTFRlbXBsYXRlRWxlbWVudC9pbmVydENvbnRlbnRzLmh0bWwgYXMgZmxha3kgb24gbWFjIGRl
YnVnLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21h
dGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBv
c2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDQ5OTU3NTY5MjljYzZi
ZTRkOWZjMTBiZmZmMTI0ZjBkMzhjODY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNj
cm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDEwIEBACitJdGVyYXRpb24gMCwgbGF5
ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNo
aWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAw
KQorICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkK
KyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAw
IDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAw
IDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRz
IDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJv
dW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxLCBsYXllciB0cmVl
OgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTM3NS4wMCkKKyAgKGNoaWxkcmVu
IDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTM3NS4wMCkKKyAg
ICAgIChjaGlsZHJlbiA0CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0
aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAg
ICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJv
dW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxNS4w
MCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAw
KQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUu
MDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAg
IChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMg
MTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIsIGxheWVyIHRyZWU6Ciso
R3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCAyNDk1LjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAyNDk1LjAwKQorICAgICAg
KGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRz
IDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAg
ICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQor
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAx
ODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUu
MDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAg
ICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAg
KQorKQorCitJdGVyYXRpb24gMywgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3Vu
ZHMgNzg1LjAwIDM1MzUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgNzg1LjAwIDM1MzUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAy
MDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
NS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
ODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAg
ICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAw
IDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0
aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAg
ICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkK
KyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAy
OS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiA0LCBu
byBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDUsIGxheWVyIHRyZWU6CisoR3JhcGhp
Y3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA0NTkxLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChH
cmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA0NTkxLjAwKQorICAgICAgKGNoaWxk
cmVuIDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAg
MjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4w
MCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAg
ICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChi
b3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiA2LCBubyBs
YXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDcsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQu
CitJdGVyYXRpb24gOCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiA5LCBubyBs
YXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDEwLCBsYXllciB0cmVlOgorKEdyYXBoaWNz
TGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNTYzMS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNTYzMS4wMCkKKyAgICAgIChjaGlsZHJl
biAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIw
LjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAg
MjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
KQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91
bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAp
CisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMSwgbGF5ZXIgdHJlZToKKyhH
cmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDYyNTUuMDApCisgIChjaGlsZHJlbiAxCisg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDYyNTUuMDApCisgICAgICAo
Y2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAy
OC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMg
MTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisg
ICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAy
NDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisg
ICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMiwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVy
CisgIChib3VuZHMgNzg1LjAwIDcwMjMuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDcwMjMuMDApCisgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkK
KyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4w
MCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4
Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMywg
bGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDc3MTEuMDApCisg
IChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDc3
MTEuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIu
MDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0Cisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAx
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAx
ODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAx
ODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAg
KQorICApCispCisKK0l0ZXJhdGlvbiAxNCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisg
IChib3VuZHMgNzg1LjAwIDgzOTkuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDgzOTkuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIw
MC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkK
KyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQor
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwor
SXRlcmF0aW9uIDE1LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUu
MDAgOTE2Ny4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJv
dW5kcyA3ODUuMDAgOTE2Ny4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3Vu
ZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
KGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkK
KyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAg
ICAgICAoYm91bmRzIDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4
NS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAx
ODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAw
KQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE2
LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgOTkzNS4wMCkK
KyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAg
OTkzNS4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIw
Mi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAw
IDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDE4NS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDE4Ni4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAg
ICAgICAgICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRl
bnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAg
ICApCisgICkKKykKKworSXRlcmF0aW9uIDE3LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRl
cmF0aW9uIDE4LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAg
MTA2MzkuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3Vu
ZHMgNzg1LjAwIDEwNjM5LjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5k
cyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAo
Y2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQor
ICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAg
ICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAx
OSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyMCwgbGF5ZXIgdHJlZToKKyhH
cmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDExMTk5LjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMTE5OS4wMCkKKyAgICAg
IChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAg
ICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5k
cyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQor
ICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIxLCBs
YXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTE5OTkuMDApCisg
IChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDEx
OTk5LjAwKQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAy
LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAg
MS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3VuZHMg
MTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAgICAg
ICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAo
Ym91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisg
ICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyMiwgbGF5ZXIg
dHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDEyOTQzLjAwKQorICAoY2hp
bGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMjk0My4w
MCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkK
KyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDQKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAg
ICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4NS4w
MCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4w
MCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE4NS4wMCkKKyAgICAgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDE4Ni4wMCAxODYuMDApCisgICAgICAgICAg
ICAgIChib3VuZHMgMTUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5k
cyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAg
ICAgICAgICAoYm91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAg
ICkKKyAgKQorKQorCitJdGVyYXRpb24gMjMsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgor
ICAoYm91bmRzIDc4NS4wMCAxMzgwNy4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTM4MDcuMDApCisgICAgICAoY2hpbGRyZW4gMgor
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkK
KyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4w
MCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4
Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAw
KQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAg
ICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0
aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAg
ICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAg
OTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9u
IDI0LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDI1LCBsYXllciB0cmVlOgor
KEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTQ2ODcuMDApCisgIChjaGlsZHJlbiAx
CisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDE0Njg3LjAwKQorICAg
ICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRp
b24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAg
ICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4g
MQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91
bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisg
ICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAg
ICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEx
MC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAw
KQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDI2
LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTU0ODcuMDAp
CisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAw
IDE1NDg3LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAg
MjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4g
NAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEu
MDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAg
ICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQorICAg
ICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3Vu
ZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDAp
CisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyNywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNl
ZC4KK0l0ZXJhdGlvbiAyOCwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyOSwg
bm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1v
cHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3OWM4OWEwOGNh
NWE0MzBjOGNhY2RlZTgzYjllNGI4YzA5N2QwNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0
ZWQtc2Nyb2xsaW5nLmh0bWwKQEAgLTAsMCArMSwxNDIgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDovL3d3
dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PXV0Zi04Ii8+CisgIDx0aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVkIHNjcm9sbGlu
ZzwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAg
LmNvbnRhaW5lciB7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIwMHB4Owor
ICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKworICAgIC5zY3JvbGxlZCB7CisgICAgICB3aWR0
aDogMTgwcHg7CisgICAgICBoZWlnaHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
IH0KKworICAgIC5wb3NpdGlvbmVkIHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAgICAgIGhlaWdo
dDogMjQwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICB9CisKKyAgICAjcHJlZGVjZXNzb3IgeworICAgICAgbGVmdDogMjBw
eDsKKyAgICAgIHRvcDogMjBweDsKKyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsKKyAgICAgIGxl
ZnQ6IDE2MHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFi
bGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKHRydWUpOworCisgICAgZnVuY3Rpb24gd3Jp
dGUoc3RyKQorICAgIHsKKyAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29uc29sZScpOworICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIg
KyAnXG4nKTsKKyAgICAgIHByZS5hcHBlbmRDaGlsZCh0ZXh0KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIHZhciBwcmVkZWNlc3NvciA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdwcmVkZWNlc3NvcicpOworICAgICAgdmFyIHN1Y2Nlc3NvciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsKKyAgICAgIHZhciBjb250YWluZXIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgICB2YXIgZmlyc3RDaGls
ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdENoaWxkJyk7CisgICAgICB2YXIgc2Vj
b25kQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kQ2hpbGQnKTsKKyAgICAg
IHZhciBjb3VudCA9IDA7CisKKyAgICAgIGZvciAoaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAg
ICAgZm9yIChqID0gMDsgaiA8IDU7ICsraikgeworICAgICAgICAgIGZvciAoayA9IDA7IGsgPCAy
OyArK2spIHsKKyAgICAgICAgICAgIHZhciBtaW5aSW5kZXggPSAwOworICAgICAgICAgICAgdmFy
IG1heFpJbmRleCA9IDA7CisgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAg
IGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJzEnOworICAgICAgICAgICAgICBzZWNvbmRDaGls
ZC5zdHlsZS56SW5kZXggPSAnMyc7CisgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7CisgICAg
ICAgICAgICB9IGVsc2UgaWYgKGkgPT0gMSkgeworICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0
eWxlLnpJbmRleCA9ICctMSc7CisgICAgICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxlLnpJbmRl
eCA9ICctMyc7CisgICAgICAgICAgICAgIG1pblpJbmRleCA9IC0zOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAg
ICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnMyc7CisgICAgICAgICAgICAg
IG1pblpJbmRleCA9IC0xOworICAgICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICB2YXIgc2libGluZyA9IHByZWRlY2Vzc29yOworICAgICAgICAg
ICAgdmFyIHRvSGlkZSA9IHN1Y2Nlc3NvcjsKKyAgICAgICAgICAgIGlmIChrID09IDEpIHsKKyAg
ICAgICAgICAgICAgc2libGluZyA9IHN1Y2Nlc3NvcjsKKyAgICAgICAgICAgICAgdG9IaWRlID0g
cHJlZGVjZXNzb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRvSGlkZS5zdHlsZS5k
aXNwbGF5ID0gJ25vbmUnOworICAgICAgICAgICAgc2libGluZy5zdHlsZS5kaXNwbGF5ID0gJyc7
CisgICAgICAgICAgICBpZiAoaiA9PSAwKSB7CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUu
ekluZGV4ID0gKG1heFpJbmRleCArIDEpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2Ug
aWYgKGogPT0gMSkgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtaW5a
SW5kZXggLSAxKS50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIGlmIChqID09IDIpIHsK
KyAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSBtYXhaSW5kZXgudG9TdHJpbmco
KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAzKSB7CisgICAgICAgICAgICAgIHNpYmxp
bmcuc3R5bGUuekluZGV4ID0gbWluWkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9ICgobWluWkluZGV4ICsg
bWF4WkluZGV4KSAvIDIpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IC8vIEZvcmNlIGEgc3R5bGUgcmVjYWxjLgorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAg
ICAgIC8vIEZvcmNlIGEgbGF5b3V0LgorICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmJv
dW5kaW5nQm94KGNvbnRhaW5lcik7CisgICAgICAgICAgICAgIHZhciBsYXllclRyZWUgPSB3aW5k
b3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CisgICAgICAgICAgICAgIGlm
IChsYXllclRyZWUpIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgnSXRlcmF0aW9uICcgKyBjb3Vu
dC50b1N0cmluZygpICsKKyAgICAgICAgICAgICAgICAgICAgICAnLCBsYXllciB0cmVlOicpOwor
ICAgICAgICAgICAgICAgIHdyaXRlKGxheWVyVHJlZSk7CisgICAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHdyaXRlKCdJdGVyYXRpb24gJyArIGNvdW50LnRvU3RyaW5nKCkgKwor
ICAgICAgICAgICAgICAgICAgICAgICcsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuJyk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICB9CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBk
b1Rlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorICA8ZGl2IGNs
YXNzPSJwb3NpdGlvbmVkIiBpZD0icHJlZGVjZXNzb3IiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiIGlkPSJjb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0i
Zmlyc3RDaGlsZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQiIGlkPSJzZWNvbmRD
aGlsZCI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0ic3Vj
Y2Vzc29yIj48L2Rpdj4KKyAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0
bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9v
dmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxvdy9h
dXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44MDZjYTIwODMyN2U3ZDQ4NzM4MmFiMDg0NGMyMDA0MmY5ZjYwMjliCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNzcwIEBACitJdGVyYXRpb24gMCwgbGF5ZXIgdHJlZToKKyhHcmFwaGlj
c0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVu
IDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAu
MDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAy
MTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICAp
CisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4w
MCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAx
ODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIw
LjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAg
ICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDEsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NM
YXllcgorICAoYm91bmRzIDc4NS4wMCAxMDgwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFw
aGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCAxMDgwLjAwKQorICAgICAgKGNoaWxkcmVu
IDQKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAu
MDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAy
MTAuMDApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICAp
CisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4w
MCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRz
IDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAx
ODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEy
MC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAg
ICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyLCBsYXllciB0cmVlOgorKEdyYXBoaWNz
TGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgMTkwNS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgMTkwNS4wMCkKKyAgICAgIChjaGlsZHJl
biAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIw
LjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3ND
b250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAg
MjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
KQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUu
MDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5k
cyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAg
MTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAo
Ym91bmRzIDE4MC4wMCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQor
KQorCitJdGVyYXRpb24gMywgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMg
Nzg1LjAwIDI2NTUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
IChib3VuZHMgNzg1LjAwIDI2NTUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAo
Ym91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAg
ICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAu
MDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAg
ICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisg
ICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjku
MDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAgICAgIChj
aGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9z
aXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQor
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDQs
IG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJdGVyYXRpb24gNSwgbGF5ZXIgdHJlZToKKyhHcmFw
aGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDM0MjAuMDApCisgIChjaGlsZHJlbiAxCisgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDM0MjAuMDApCisgICAgICAoY2hp
bGRyZW4gNAorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4w
MCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAg
ICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkw
LjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAocG9zaXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAg
MTg1LjAwKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAocG9zaXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgICAgIChi
b3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgKHBvc2l0aW9uIDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1
LjAwIDE4NS4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAg
ICAgKGJvdW5kcyAxODAuMDAgOTAuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQorICAgICAgICAgIChib3Vu
ZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkK
KyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDYsIG5vIGxheWVyIHRyZWUgcHJv
ZHVjZWQuCitJdGVyYXRpb24gNywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiA4
LCBubyBsYXllciB0cmVlIHByb2R1Y2VkLgorSXRlcmF0aW9uIDksIG5vIGxheWVyIHRyZWUgcHJv
ZHVjZWQuCitJdGVyYXRpb24gMTAsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91
bmRzIDc4NS4wMCA0MzA1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAoYm91bmRzIDc4NS4wMCA0MzA1LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAg
ICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAg
MjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDIwLjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAg
ICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwor
SXRlcmF0aW9uIDExLCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUu
MDAgNDgwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJv
dW5kcyA3ODUuMDAgNDgwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3Vu
ZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkK
KyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAg
ICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxNjAuMDAg
MjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCitJdGVyYXRp
b24gMTIsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA1Mjk1
LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4
NS4wMCA1Mjk1LjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIu
MDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9u
IDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxMywgbGF5ZXIgdHJlZToKKyhHcmFw
aGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDU3MTUuMDApCisgIChjaGlsZHJlbiAxCisgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDU3MTUuMDApCisgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4w
MCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRy
YXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAg
ICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkw
LjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwor
SXRlcmF0aW9uIDE0LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUu
MDAgNjEzNS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJv
dW5kcyA3ODUuMDAgNjEzNS4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3Vu
ZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkK
KyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAg
ICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyMC4wMCAy
MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlv
biAxNSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgNzg1LjAwIDY2MzAu
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1
LjAwIDY2MzAuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4w
MCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24g
MS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTYwLjAwIDIwLjAwKQor
ICAgICAgICAgIChib3VuZHMgMTIwLjAwIDI0MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDE2LCBs
YXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgNzEyNS4wMCkKKyAg
KGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNzEy
NS4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4w
MCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDEu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQor
ICAgICkKKyAgKQorKQorCitJdGVyYXRpb24gMTcsIG5vIGxheWVyIHRyZWUgcHJvZHVjZWQuCitJ
dGVyYXRpb24gMTgsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4w
MCA3NTYwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91
bmRzIDc4NS4wMCA3NTYwLjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5k
cyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBv
c2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQor
ICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAg
ICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAxOSwgbm8gbGF5ZXIgdHJl
ZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyMCwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisg
IChib3VuZHMgNzg1LjAwIDc5OTUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDc5OTUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIw
MC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkK
KyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9z
aXRpb24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4w
MCA5MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQor
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiAyMC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDAp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQor
ICApCispCisKK0l0ZXJhdGlvbiAyMSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChi
b3VuZHMgNzg1LjAwIDg2NTUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgIChib3VuZHMgNzg1LjAwIDg2NTUuMDApCisgICAgICAoY2hpbGRyZW4gMworICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4w
MCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTkwLjAwIDIxMC4wMCkKKyAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRp
b24gMjkuMDAgMjEuMDApCisgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTg1LjAwKQorICAgICAg
ICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAocG9zaXRpb24gMTAuMDAgMTEwLjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE4MC4wMCA5
MC4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAg
ICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChw
b3NpdGlvbiAxNjAuMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMjQwLjAwKQor
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAg
KQorKQorCitJdGVyYXRpb24gMjIsIGxheWVyIHRyZWU6CisoR3JhcGhpY3NMYXllcgorICAoYm91
bmRzIDc4NS4wMCA5MzE1LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAoYm91bmRzIDc4NS4wMCA5MzE1LjAwKQorICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAgICAg
ICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAg
ICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAg
MjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDE5MC4wMCAyMTAuMDApCisgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9u
IDI5LjAwIDIxLjAwKQorICAgICAgICAgIChib3VuZHMgMTg1LjAwIDE4NS4wMCkKKyAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KHBvc2l0aW9uIDEwLjAwIDExMC4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODAuMDAgOTAu
MDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworSXRlcmF0aW9uIDIz
LCBsYXllciB0cmVlOgorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA3ODUuMDAgOTkwMC4wMCkK
KyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAg
OTkwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIw
Mi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAw
IDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyOS4wMCAyMS4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMTAu
MDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkwLjAwKQorICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAyNCwgbm8gbGF5ZXIgdHJlZSBwcm9k
dWNlZC4KK0l0ZXJhdGlvbiAyNSwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3Vu
ZHMgNzg1LjAwIDEwNTAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAoYm91bmRzIDc4NS4wMCAxMDUwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAw
IDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlv
biAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkw
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBv
c2l0aW9uIDE2MC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyMC4wMCAyNDAuMDApCisg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICAp
CispCisKK0l0ZXJhdGlvbiAyNiwgbGF5ZXIgdHJlZToKKyhHcmFwaGljc0xheWVyCisgIChib3Vu
ZHMgNzg1LjAwIDExMTYwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAoYm91bmRzIDc4NS4wMCAxMTE2MC4wMCkKKyAgICAgIChjaGlsZHJlbiAyCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIwLjAwKQorICAgICAg
ICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgIChwb3NpdGlvbiAxLjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAw
IDIwMC4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAxOTAuMDAgMjEwLjAwKQorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlv
biAyOS4wMCAyMS4wMCkKKyAgICAgICAgICAoYm91bmRzIDE4NS4wMCAxODUuMDApCisgICAgICAg
ICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
IChwb3NpdGlvbiAxMC4wMCAxMTAuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTgwLjAwIDkw
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKK0l0ZXJhdGlvbiAy
Nywgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KK0l0ZXJhdGlvbiAyOCwgbm8gbGF5ZXIgdHJlZSBw
cm9kdWNlZC4KK0l0ZXJhdGlvbiAyOSwgbm8gbGF5ZXIgdHJlZSBwcm9kdWNlZC4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179166</attachid>
            <date>2012-12-12 17:50:13 -0800</date>
            <delta_ts>2012-12-12 19:57:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121212204733.patch</filename>
            <type>text/plain</type>
            <size>49466</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMmIwNzQ2ZDMxZTE1NWQwNjIzN2I5Yjc0MWMyNGEwNzYzOTdlNDM0Li4w
MDYwNDM2OGMxZWE0ZTU0OTA1ZGQ2NDg4MjIwMjVkM2E3NjkzYmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsODkgQEAKKzIwMTItMTItMTIgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNj
cm9sbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTQ3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBjdXJyZW50bHkgdXNlIHRoZSBjb21wb3NpdGVkIHNjcm9sbGluZyBmYWNpbGl0aWVzIHByb3Zp
ZGVkIGJ5CisgICAgICAgIHdrYi51Zy85MTExNyBpZiB0aGUgb3ZlcmZsb3cgc2Nyb2xsIGJsb2Nr
IGVsZW1lbnQgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxp
bmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNhbGx5CisgICAgICAgIG9wdCBp
bnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUgdG8gZG8gc28uIFRoaXMgY2Fu
IGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGF1
dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAgZW5hYmxlZCB2aWEgYSBzZXR0
aW5nLgorCisgICAgICAgIFRoZSB3YXkgSSBkZXRlcm1pbmUgaWYgaXQgaXMgc2FmZSBpcyBieSBj
aGVja2luZyB0aGF0IHotb3JkZXJpbmcgd2lsbAorICAgICAgICBub3QgYmUgYWZmZWN0ZWQgaWYg
dGhlIG92ZXJmbG93IHNjcm9sbGFibGUgZWxlbWVudCB3ZXJlIHByb21vdGVkIHRvIGEKKyAgICAg
ICAgc3RhY2tpbmcgY29udGV4dCAoZGV0YWlscyBiZWxvdyksIGFuZCB0aGF0IGNsaXBwaW5nIG91
ciBzY3JvbGxpbmcKKyAgICAgICAgZGVzY2VuZGFudHMgd2lsbCBub3QgYWZmZWN0IHJlbmRlcmlu
Zy4KKworICAgICAgICBUbyBjaGVjayB0aGUgZmlyc3QgY29uZGl0aW9uICh0aGF0IHotb3JkZXJp
bmcgd2lsbCBub3QgYmUgYWZmZWN0ZWQpLgorICAgICAgICBJIGVuc3VyZSB0aGF0IHRoZSBjYW5k
aWRhdGUgZWxlbWVudCBhbmQgYWxsIGl0cyBkZXNjZW5kYW50cyBhcHBlYXIgYXMgYSAKKyAgICAg
ICAgY29udGludW91cyBibG9jayBpbiB0aGUgY2FuZGlkYXRlJ3Mgc3RhY2tpbmcgY29udGV4dC4g
VGhhdCBpcywgaWYgbm8gCisgICAgICAgIG90aGVyIGVsZW1lbnRzIGFyZSAnYmV0d2VlbicgYW55
IG9mIHRoZSBjYW5kaWRhdGVzIGRlc2NlbmRhbnRzIHdoZW4gd2UKKyAgICAgICAgc29ydCBpbiBw
YWludCBvcmRlciwgdGhlbiB3ZSdyZSBzYWZlLiBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRpdmUs
CisgICAgICAgIGhvd2V2ZXIuIFdlIGNvdWxkLCBpbiBmdXR1cmUsIG9ubHkgY29uc2lkZXIgc3Rh
Y2tpbmcgcHJvYmxlbXMgYmV0d2VlbgorICAgICAgICBlbGVtZW50cyB0aGF0IGFjdHVhbGx5IG92
ZXJsYXAuCisKKyAgICAgICAgVG8gZW5zdXJlIHRoYXQgY2xpcHBpbmcgd2lsbCBub3QgY2F1c2Ug
YSByZW5kZXJpbmcgY2hhbmdlLCBJIGVuc3VyZQorICAgICAgICB0aGF0IHRoZSBsYXllciBoYXMg
bm8gb3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50IHdob3NlCisgICAgICAgIGNvbnRh
aW5pbmcgYmxvY2sgaXMgbm90IGFsc28gYSBkZXNjZW5kYW50IG9mIG91cnMuCisKKyAgICAgICAg
VGVzdDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3Np
dGluZy1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFu
dHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjp1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXJSZWN1
cnNpdmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRp
b25zQWZ0ZXJPdmVyZmxvd1Njcm9sbCk6CisgICAgICAgICAgQWxsb3dzIHVzIHRvIHBvc2l0aW9u
IG5ld2x5IGNyZWF0ZWQgb3ZlcmZsb3cgc2Nyb2xsIGNvbnRyb2xzLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQpOgorICAg
ICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgUmVuZGVyTGF5ZXIgY291bGQgYmVjb21lIGEgc3Rh
Y2tpbmcgY29udGV4dCB3aXRob3V0CisgICAgICAgICAgYWZmZWN0aW5nIHRoZSBzdGFja2luZyBv
cmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50RGVw
ZW5kZW50RmxhZ3MpOgorICAgICAgICAgIFdlIG5vdyBuZWVkIHRvIGtlZXAgdHJhY2sgb2Ygb3V0
IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjphZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVtb3Zl
Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Ny
b2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRhdGVkIHRvIHJldHVybiB0cnVlIGlmIGl0
IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcKKyAgICAgICAgICBjb250ZXh0LCBhbmQg
dGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1
cm5zIHRydWUgaWYgd2Ugd291bGQgbGlrZSB0byB1c2UgY29tcG9zaXRlZAorICAgICAgICAgIHNj
cm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVOZWVkc0NvbXBv
c2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KToKKyAgICAg
ICAgICBTaW5jZSB0aGVzZSBjb3VsZCBhZmZlY3Qgb3B0aW5nIGludG8gY29tcG9zaXRlZCBzY3Jv
bGxpbmcsIHdlIG11c3QKKyAgICAgICAgICByZXF1ZXN0IHRoYXQgdGhlIFJlbmRlckxheWVyQ29t
cG9zaXRvciByZWV2YWx1YXRlIGNvbXBvc2l0aW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCk6CisgICAgICAgICAgV2UgY2FsbCB1cGRh
dGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQgaGVyZSwgaWYgbmVjZXNzYXJ5Lgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNob3VsZEJlU2VsZlBhaW50aW5nTGF5ZXIp
OgorICAgICAgICAgIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nIC0+IG5lZWRzQ29tcG9zaXRlZFNj
cm9sbGluZworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNldEFuY2VzdG9yQ2hhaW5I
YXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRh
bnRTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZU91dE9mRmxv
d1Bvc2l0aW9uZWQpOgorICAgICAgICAgIERpcnRpZXMgYW5kIHNldHMgdGhlIG91dCBvZiBmbG93
IHBvc2l0aW9uZWQgZGVzY2VuZGFudCBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3Jl
OjpsYXllck9yQW5jZXN0b3JJc1RyYW5zZm9ybWVkT3JVc2luZ0NvbXBvc2l0ZWRTY3JvbGxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xh
eWVyQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
Omhhc1VucG9zaXRpb25lZE92ZXJmbG93Q29udHJvbHNMYXllcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMp
OgorICAgICAgICAgIFdlIG5vdyBlbnN1cmUgdGhhdCBuZXdseSBjcmVhdGVkIG92ZXJmbG93IHNj
cm9sbCBjb250cm9scyBnZXQKKyAgICAgICAgICBwb3NpdGlvbmVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRT
aG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGlu
Z3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwpOgorICAgICAgICAgIEFs
bG93cyBlbmFibGluZyB0aGUgc2V0dGluZyBpbiBsYXlvdXQgdGVzdHMuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKElu
dGVybmFsU2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6
CisKIDIwMTItMTItMDkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBj
b2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtTb3VwXSB1dGlsaXplIG11bHRpcGFydC94LW1peGVk
LXJlcGxhY2Ugc3VwcG9ydCByZWNlbnRseSBhZGRlZCB0byBsaWJzb3VwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAyYzllNTBkYzE0Y2VmMWU1MjRlNGVmZmU1
N2E0ODEwNmEwMWQxZTQ3Li4xZjA2MTk0MTQyMTg3NzJmODAwYjNkMWJjNjczOWViYmJkN2Y2NTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE0Nyw2ICsx
NDcsMTAgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlbmRlcmVyKQogICAgICwgbV9ub3JtYWxGbG93TGlzdERpcnR5KHRydWUpCiAgICAgLCBtX2hh
c1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1faGFzU2VsZlBhaW50
aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkoZmFsc2UpCisgICAgLCBtX2hhc091dE9mRmxvd1Bvc2l0
aW9uZWREZXNjZW5kYW50KGZhbHNlKQorICAgICwgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVz
Y2VuZGFudERpcnR5KGZhbHNlKQorICAgICwgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoZmFs
c2UpCisgICAgLCBtX2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcihmYWxz
ZSkKICAgICAsIG1faXNSb290TGF5ZXIocmVuZGVyZXItPmlzUmVuZGVyVmlldygpKQogICAgICwg
bV91c2VkVHJhbnNwYXJlbmN5KGZhbHNlKQogICAgICwgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rp
b24oZmFsc2UpCkBAIC00NzAsNiArNDc0LDE2MiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eUFu
Y2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnRTdGF0dXMoKQogICAgIH0K
IH0KIAorYm9vbCBSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCktPmZyYW1lKCkK
KyAgICAgICAgJiYgcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpCisgICAgICAgICYmIHJlbmRl
cmVyKCktPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpOworfQorCisvLyBJZiB3ZSBhcmUgYSBzdGFja2lu
ZyBjb250ZXh0LCB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBkZXRlcm1pbmUgaWYgb3VyCisvLyBk
ZXNjZW5kYW50cyBmb3IgYSBjb250aWd1b3VzIGJsb2NrIGluIHN0YWNraW5nIG9yZGVyLiBUaGlz
IGlzIHJlcXVpcmVkIGluCisvLyBvcmRlciBmb3IgYW4gZWxlbWVudCB0byBiZSBzYWZlbHkgcHJv
bW90ZWQgdG8gYSBzdGFja2luZyBjb250ZXh0LiBJdCBpcyBzYWZlCisvLyB0byBiZWNvbWUgYSBz
dGFja2luZyBjb250ZXh0IGlmIHRoaXMgY2hhbmdlIHdvdWxkIG5vdCBhbHRlciB0aGUgc3RhY2tp
bmcKKy8vIG9yZGVyIG9mIGxheWVycyBvbiB0aGUgcGFnZS4gVGhhdCBjYW4gb25seSBoYXBwZW4g
aWYgYSBub24tZGVzY2VuZGFudCBhcHBlYXIKKy8vIGJldHdlZW4gdXMgYW5kIG91ciBkZXNjZW5k
YW50cyBpbiBzdGFja2luZyBvcmRlci4gSGVyZSdzIGFuIGV4YW1wbGU6CisvLworLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzCisvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyAgfCAgXC4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgICBC
ICAgQworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvXCAgIHwgICAvXC4KKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwIC04ICBEICAyICA3CisvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDUKKy8vCisvLyBJJ3ZlIGxhYmVsZWQgb3VyIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIEEs
IEIsIEMsIGFuZCBELCBvdXIgc3RhY2tpbmcKKy8vIGNvbnRleHQgZGVzY2VuZGFudHMgd2l0aCB0
aGVpciB6IGluZGljZXMsIGFuZCB1cyB3aXRoICd0aGlzJyAod2UncmUgYQorLy8gc3RhY2tpbmcg
Y29udGV4dCBhbmQgb3VyIHpJbmRleCBkb2Vzbid0IG1hdHRlciBoZXJlKS4gVGhlc2Ugbm9kZXMg
YXBwZWFyIGluCisvLyB0aHJlZSBsaXN0czogcG9zWk9yZGVyLCBuZWdaT3JkZXIsIGFuZCBub3Jt
YWwgZmxvdyAoa2VlcCBpbiBtaW5kIHRoYXQgbm9ybWFsCisvLyBmbG93IGxheWVycyBkb24ndCBv
dmVybGFwKS4gU28gaWYgd2UgYXJyYW5nZSB0aGVzZSBsaXN0cyBpbiBvcmRlciB3ZSBnZXQgb3Vy
CisvLyBzdGFja2luZyBvcmRlcjoKKy8vCisvLyAgICAgICAgICAgICAgICAgICAgIFstOF0sIFtB
LURdLCBbMCwgMiwgNSwgN10tLT4gcG9zIHotb3JkZXIuCisvLyAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAgfAorLy8gICAgICAgIE5lZyB6LW9yZGVyLiA8LSsgICAgICstLT4gTm9ybWFsIGZs
b3cgZGVzY2VuZGFudHMuCisvLworLy8gV2UgY2FuIHRoZW4gYXNzaWduIG5ldywgJ3N0YWNraW5n
JyBvcmRlciBpbmRpY2VzIHRvIHRoZXNlIGVsZW1lbnRzIGFzIGZvbGxvd3M6CisvLworLy8gICAg
ICAgICAgICAgICAgICAgICBbLThdLCBbQS1EXSwgWzAsIDIsIDUsIDddCisvLyAnU3RhY2tpbmcn
IGluZGljZXM6ICAtMSAgICAgMCAgICAgMSAgMiAgMyAgNAorLy8KKy8vIE5vdGUgdGhhdCB0aGUg
bm9ybWFsIGZsb3cgZGVzY2VuZGFudHMgY2FuIHNoYXJlIGFuIGluZGV4IGJlY2F1c2UgdGhleSBk
b24ndAorLy8gc3RhY2svb3ZlcmxhcC4gTm93IG91ciBwcm9ibGVtIGJlY29tZXMgdmVyeSBzaW1w
bGU6IGEgbGF5ZXIgY2FuIHNhZmVseSBiZWNvbWUKKy8vIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0
aGUgc3RhY2tpbmctb3JkZXIgaW5kaWNlcyBvZiBpdCBhbmQgaXRzIGRlc2NlbmRhbnRzCisvLyBh
cHBlYXIgaW4gYSBjb250aWd1b3VzIGJsb2NrIGluIHRoZSBsaXN0IG9mIHN0YWNraW5nIGluZGlj
ZXMuIFRoaXMgcHJvYmxlbQorLy8gY2FuIGJlIHNvbHZlZCB2ZXJ5IGVmZmljaWVudGx5IGJ5IGNh
bGN1bGF0aW5nIHRoZSBtaW4vbWF4IHN0YWNraW5nIGluZGljZXMgaW4KKy8vIHRoZSBzdWJ0cmVl
LCBhbmQgdGhlIG51bWJlciBzdGFja2luZyBjb250ZXh0IGRlc2NlbmRhbnRzLiBPbmNlIHdlIGhh
dmUgdGhpcworLy8gaW5mb3JtYXRpb24sIHdlIGtub3cgdGhhdCB0aGUgc3VidHJlZSdzIGluZGlj
ZXMgZm9ybSBhIGNvbnRpZ3VvdXMgYmxvY2sgaWY6CisvLworLy8gICAgICAgICAgIG1heFN0YWNr
SW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMKKy8vCisvLyBTbyBmb3Ig
bm9kZSBBIGluIHRoZSBleGFtcGxlIGFib3ZlIHdlIHdvdWxkIGhhdmU6CisvLyAgIG1heFN0YWNr
SW5kZXggPSAxCisvLyAgIG1pblN0YWNrSW5kZXggPSAtMQorLy8gICBudW1TQ0RlY2VuZGFudHMg
PSAyCisvLworLy8gYW5kIHNvLAorLy8gICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5k
ZXggPT0gbnVtU0NEZXNjZW5kYW50cworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgMSAt
ICgtMSkgPT0gMgorLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgPT0gMgor
Ly8KKy8vICBTaW5jZSB0aGlzIGlzIHRydWUsIEEgY2FuIHNhZmVseSBiZWNvbWUgYSBzdGFja2lu
ZyBjb250ZXh0LgorLy8gIE5vdywgZm9yIG5vZGUgQyB3ZSBoYXZlOgorLy8KKy8vICAgbWF4U3Rh
Y2tJbmRleCA9IDQKKy8vICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJlY2F1c2UgQyBoYXMgc3Rh
Y2tpbmcgaW5kZXggMC4KKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFuZCBzbywK
Ky8vICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFu
dHMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgIDQgLSAwID09IDIKKy8vICA9PT0+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ID09IDIKKy8vCisvLyBTaW5jZSB0aGlzIGlz
IGZhbHNlLCBDIGNhbm5vdCBiZSBzYWZlbHkgcHJvbW90ZWQgdG8gYSBzdGFja2luZyBjb250ZXh0
LiBUaGlzCisvLyBoYXBwZW5lZCBiZWNhdXNlIG9mIHRoZSBlbGVtZW50cyB3aXRoIHotaW5kZXgg
NSBhbmQgMC4gTm93IGlmIDUgaGFkIGJlZW4gYQorLy8gY2hpbGQgb2YgQyByYXRoZXIgdGhhbiBE
LCBhbmQgQSBoYWQgbm8gY2hpbGQgd2l0aCBaIGluZGV4IDAsIHdlIHdvdWxkIGhhdmUgaGFkOgor
Ly8KKy8vICAgbWF4U3RhY2tJbmRleCA9IDMKKy8vICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJl
Y2F1c2UgQyBoYXMgc3RhY2tpbmcgaW5kZXggMC4KKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMwor
Ly8KKy8vIGFuZCBzbywKKy8vICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09
IG51bVNDRGVzY2VuZGFudHMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgIDMgLSAw
ID09IDMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzID09IDMKKy8vCisv
LyAgQW5kIHdlIHdvdWxkIGNvbmNsdWRlIHRoYXQgQyBjb3VsZCBiZSBwcm9tb3RlZC4KK3ZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRl
cigpCit7CisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IEFTU0VSVCghbV9ub3JtYWxGbG93TGlzdERpcnR5KTsKKyAgICBBU1NFUlQoIW1fek9yZGVyTGlz
dHNEaXJ0eSk7CisKKyAgICAvLyBDcmVhdGUgYSByZXZlcnNlIGxvb2t1cC4KKyAgICBIYXNoTWFw
PGNvbnN0IFJlbmRlckxheWVyKiwgaW50PiBsb29rdXA7CisKKyAgICBpZiAobV9uZWdaT3JkZXJM
aXN0KSB7CisgICAgICAgIGludCBzdGFja2luZ09yZGVySW5kZXggPSAtMTsKKyAgICAgICAgc2l6
ZV90IGxpc3RTaXplID0gbV9uZWdaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICAgICAgUmVuZGVyTGF5ZXIq
IGN1cnJlbnRMYXllciA9IG1fbmVnWk9yZGVyTGlzdC0+YXQobGlzdFNpemUgLSBpIC0gMSk7Cisg
ICAgICAgICAgICBpZiAoIWN1cnJlbnRMYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGxvb2t1cC5zZXQoY3VycmVudExheWVy
LCBzdGFja2luZ09yZGVySW5kZXgtLSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobV9w
b3NaT3JkZXJMaXN0KSB7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG1fcG9zWk9yZGVyTGlz
dC0+c2l6ZSgpOworICAgICAgICBpbnQgc3RhY2tpbmdPcmRlckluZGV4ID0gMTsKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5k
ZXJMYXllciogY3VycmVudExheWVyID0gbV9wb3NaT3JkZXJMaXN0LT5hdChpKTsKKyAgICAgICAg
ICAgIGlmICghY3VycmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5ZXIsIHN0YWNr
aW5nT3JkZXJJbmRleCsrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCBtaW5JbmRleCA9
IDA7CisgICAgaW50IG1heEluZGV4ID0gMDsKKyAgICBpbnQgY291bnQgPSAwOworICAgIGJvb2wg
Zmlyc3RJdGVyYXRpb24gPSB0cnVlOworICAgIHVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91
c0luU3RhY2tpbmdPcmRlclJlY3Vyc2l2ZShsb29rdXAsIG1pbkluZGV4LCBtYXhJbmRleCwgY291
bnQsIGZpcnN0SXRlcmF0aW9uKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2Vu
ZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyUmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8
Y29uc3QgUmVuZGVyTGF5ZXIqLCBpbnQ+JiBsb29rdXAsIGludCYgbWluSW5kZXgsIGludCYgbWF4
SW5kZXgsIGludCYgY291bnQsIGJvb2wgZmlyc3RJdGVyYXRpb24pCit7CisgICAgaWYgKGlzU3Rh
Y2tpbmdDb250ZXh0KCkgJiYgIWZpcnN0SXRlcmF0aW9uKSB7CisgICAgICAgIGlmIChsb29rdXAu
Y29udGFpbnModGhpcykpIHsKKyAgICAgICAgICAgIG1pbkluZGV4ID0gc3RkOjptaW4obWluSW5k
ZXgsIGxvb2t1cC5nZXQodGhpcykpOworICAgICAgICAgICAgbWF4SW5kZXggPSBzdGQ6Om1heCht
YXhJbmRleCwgbG9va3VwLmdldCh0aGlzKSk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAg
ICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKFJlbmRlckxheWVyKiBjaGls
ZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
KyAgICAgICAgaW50IGNoaWxkTWluSW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRNYXhJbmRl
eCA9IDA7CisgICAgICAgIGludCBjaGlsZENvdW50ID0gMDsKKyAgICAgICAgY2hpbGQtPnVwZGF0
ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlclJlY3Vyc2l2ZShsb29rdXAs
IGNoaWxkTWluSW5kZXgsIGNoaWxkTWF4SW5kZXgsIGNoaWxkQ291bnQsIGZhbHNlKTsKKyAgICAg
ICAgaWYgKGNoaWxkQ291bnQpIHsKKyAgICAgICAgICAgIGNvdW50ICs9IGNoaWxkQ291bnQ7Cisg
ICAgICAgICAgICBtaW5JbmRleCA9IHN0ZDo6bWluKG1pbkluZGV4LCBjaGlsZE1pbkluZGV4KTsK
KyAgICAgICAgICAgIG1heEluZGV4ID0gc3RkOjptYXgobWF4SW5kZXgsIGNoaWxkTWF4SW5kZXgp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpKSB7Cisg
ICAgICAgIGJvb2wgbmV3VmFsdWUgPSBtYXhJbmRleCAtIG1pbkluZGV4ID09IGNvdW50OworICAg
ICAgICBib29sIGRpZFVwZGF0ZSA9IG5ld1ZhbHVlICE9IG1fZGVzY2VuZGFudHNBcmVDb250aWd1
b3VzSW5TdGFja2luZ09yZGVyOworICAgICAgICBtX2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0lu
U3RhY2tpbmdPcmRlciA9IG5ld1ZhbHVlOworICAgICAgICBpZiAoZGlkVXBkYXRlKQorICAgICAg
ICAgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisgICAgfQorfQorCiB2b2lk
IFJlbmRlckxheWVyOjpjb21wdXRlUmVwYWludFJlY3RzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRy
eU1hcCkKIHsKICAgICBBU1NFUlQoIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSk7CkBAIC01
MDcsMTYgKzY2NywzMCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0Fm
dGVyRG9jdW1lbnRTY3JvbGwoKQogICAgIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwo
Jmdlb21ldHJ5TWFwKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlv
bnNBZnRlck92ZXJmbG93U2Nyb2xsKCkKK3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9z
aXRpb25zQWZ0ZXJPdmVyZmxvd1Njcm9sbChib29sIG5ld2x5UHJvbW90ZWQpCiB7CisjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmICghdXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKSAmJiBuZXdseVByb21vdGVkKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKwogICAgIFJl
bmRlckdlb21ldHJ5TWFwIGdlb21ldHJ5TWFwKFVzZVRyYW5zZm9ybXMpOwogICAgIFJlbmRlclZp
ZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCk7CiAgICAgaWYgKHRoaXMgIT0gdmlldy0+bGF5
ZXIoKSkKICAgICAgICAgZ2VvbWV0cnlNYXAucHVzaE1hcHBpbmdzVG9BbmNlc3RvcihwYXJlbnQo
KSwgMCk7CiAKLSAgICAvLyBGSVhNRTogd2h5IGlzIGl0IE9LIHRvIG5vdCBjaGVjayB0aGUgYW5j
ZXN0b3JzIG9mIHRoaXMgbGF5ZXIgaW4gb3JkZXIgdG8KLSAgICAvLyBpbml0aWFsaXplIHRoZSBI
YXNTZWVuVmlld3BvcnRDb25zdHJhaW5lZEFuY2VzdG9yIGFuZCBIYXNTZWVuQW5jZXN0b3JXaXRo
T3ZlcmZsb3dDbGlwIGZsYWdzPwotICAgIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwo
Jmdlb21ldHJ5TWFwLCBJc092ZXJmbG93U2Nyb2xsKTsKKyAgICBpZiAobmV3bHlQcm9tb3RlZCkg
eworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgTGF5b3V0UG9pbnQg
b2Zmc2V0RnJvbVJvb3QgPSBMYXlvdXRQb2ludChnZW9tZXRyeU1hcC5hYnNvbHV0ZVBvaW50KEZs
b2F0UG9pbnQoKSkpOworICAgICAgICBpZiAoIWJhY2tpbmcoKS0+aGFzVW5wb3NpdGlvbmVkT3Zl
cmZsb3dDb250cm9sc0xheWVycygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBwb3Np
dGlvbk92ZXJmbG93Q29udHJvbHModG9TaXplKHJvdW5kZWRJbnRQb2ludChvZmZzZXRGcm9tUm9v
dCkpKTsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEZJWE1FOiB3aHkgaXMgaXQg
T0sgdG8gbm90IGNoZWNrIHRoZSBhbmNlc3RvcnMgb2YgdGhpcyBsYXllciBpbiBvcmRlciB0bwor
ICAgICAgICAvLyBpbml0aWFsaXplIHRoZSBIYXNTZWVuVmlld3BvcnRDb25zdHJhaW5lZEFuY2Vz
dG9yIGFuZCBIYXNTZWVuQW5jZXN0b3JXaXRoT3ZlcmZsb3dDbGlwIGZsYWdzPworICAgICAgICB1
cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKCZnZW9tZXRyeU1hcCwgSXNPdmVyZmxvd1Nj
cm9sbCk7CisgICAgfQogfQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9u
c0FmdGVyU2Nyb2xsKFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1hcCwgVXBkYXRlTGF5ZXJQ
b3NpdGlvbnNBZnRlclNjcm9sbEZsYWdzIGZsYWdzKQpAQCAtNzA2LDYgKzg4MCwxNCBAQCB2b2lk
IFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVy
TGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdAoreworICAg
IGlmIChpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFzdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gbV9kZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0
YWNraW5nT3JkZXI7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50
KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQgJiYgIW1fdmlzaWJsZUNvbnRlbnRT
dGF0dXNEaXJ0eSkgewpAQCAtNzU5LDI1ICs5NDEsNTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0
QW5jZXN0b3JDaGFpbkhhc1Zpc2libGVEZXNjZW5kYW50KCkKICAgICB9CiB9CiAKLXZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygpCit2b2lkIFJlbmRlckxh
eWVyOjp1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoSGFzaFNldDxjb25zdCBSZW5kZXJP
YmplY3QqPiogb3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MpCiB7Ci0gICAgaWYg
KG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSB8fCBtX2hhc1NlbGZQYWludGluZ0xheWVy
RGVzY2VuZGFudERpcnR5KSB7CisgICAgaWYgKG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0
eSB8fCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5IHx8IG1faGFzT3V0T2ZG
bG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSkgeworICAgICAgICBib29sIG9sZEhhc091dE9m
Rmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50ID0gbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2Vu
ZGFudDsKKwogICAgICAgICBtX2hhc1Zpc2libGVEZXNjZW5kYW50ID0gZmFsc2U7CiAgICAgICAg
IG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50ID0gZmFsc2U7CisgICAgICAgIG1faGFz
T3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQgPSBmYWxzZTsKKworICAgICAgICBIYXNoU2V0
PGNvbnN0IFJlbmRlck9iamVjdCo+IGNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdC
bG9ja3M7CiAgICAgICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAgY2hpbGQt
PnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygpOworICAgICAgICAgICAgY2hpbGRPdXRP
ZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2Nrcy5jbGVhcigpOworICAgICAgICAgICAgY2hp
bGQtPnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygmY2hpbGRPdXRPZkZsb3dEZXNjZW5k
YW50Q29udGFpbmluZ0Jsb2Nrcyk7CisKKyAgICAgICAgICAgIGJvb2wgY2hpbGRJc091dE9mRmxv
d1Bvc2l0aW9uZWQgPSBjaGlsZC0+cmVuZGVyZXIoKSAmJiBjaGlsZC0+cmVuZGVyZXIoKS0+aXNP
dXRPZkZsb3dQb3NpdGlvbmVkKCk7CisgICAgICAgICAgICBpZiAoY2hpbGRJc091dE9mRmxvd1Bv
c2l0aW9uZWQpCisgICAgICAgICAgICAgICAgY2hpbGRPdXRPZkZsb3dEZXNjZW5kYW50Q29udGFp
bmluZ0Jsb2Nrcy5hZGQoY2hpbGQtPnJlbmRlcmVyKCktPmNvbnRhaW5pbmdCbG9jaygpKTsKKwor
ICAgICAgICAgICAgaWYgKG91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzKSB7Cisg
ICAgICAgICAgICAgICAgSGFzaFNldDxjb25zdCBSZW5kZXJPYmplY3QqPjo6Y29uc3RfaXRlcmF0
b3IgaXQgPSBjaGlsZE91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzLmJlZ2luKCk7
CisgICAgICAgICAgICAgICAgZm9yICg7IGl0ICE9IGNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENv
bnRhaW5pbmdCbG9ja3MuZW5kKCk7ICsraXQpCisgICAgICAgICAgICAgICAgICAgIG91dE9mRmxv
d0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzLT5hZGQoKml0KTsKKyAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgYm9vbCBoYXNWaXNpYmxlRGVzY2VuZGFudCA9IGNoaWxkLT5tX2hhc1Zpc2li
bGVDb250ZW50IHx8IGNoaWxkLT5tX2hhc1Zpc2libGVEZXNjZW5kYW50OwogICAgICAgICAgICAg
Ym9vbCBoYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQgPSBjaGlsZC0+aXNTZWxmUGFpbnRp
bmdMYXllcigpIHx8IGNoaWxkLT5oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKTsKKyAg
ICAgICAgICAgIGJvb2wgaGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQgPSAhY2hpbGRP
dXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2Nrcy5pc0VtcHR5KCk7CiAKICAgICAgICAg
ICAgIG1faGFzVmlzaWJsZURlc2NlbmRhbnQgfD0gaGFzVmlzaWJsZURlc2NlbmRhbnQ7CiAgICAg
ICAgICAgICBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCB8PSBoYXNTZWxmUGFpbnRp
bmdMYXllckRlc2NlbmRhbnQ7CisgICAgICAgICAgICBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWRE
ZXNjZW5kYW50IHw9IGhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50OwogCi0gICAgICAg
ICAgICBpZiAobV9oYXNWaXNpYmxlRGVzY2VuZGFudCAmJiBtX2hhc1NlbGZQYWludGluZ0xheWVy
RGVzY2VuZGFudCkKKyAgICAgICAgICAgIGlmIChtX2hhc1Zpc2libGVEZXNjZW5kYW50ICYmIG1f
aGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50ICYmIG1faGFzT3V0T2ZGbG93UG9zaXRpb25l
ZERlc2NlbmRhbnQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKworICAgICAg
ICBpZiAob3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MgJiYgcmVuZGVyZXIoKSkK
KyAgICAgICAgICAgIG91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzLT5yZW1vdmUo
cmVuZGVyZXIoKSk7CisKICAgICAgICAgbV92aXNpYmxlRGVzY2VuZGFudFN0YXR1c0RpcnR5ID0g
ZmFsc2U7CiAgICAgICAgIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkgPSBm
YWxzZTsKKyAgICAgICAgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERpcnR5ID0g
ZmFsc2U7CisKKyAgICAgICAgaWYgKG9sZEhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50
ICE9IG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQpCisgICAgICAgICAgICB1cGRh
dGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKICAgICB9CiAKICAgICBpZiAobV92aXNpYmxl
Q29udGVudFN0YXR1c0RpcnR5KSB7CkBAIC0xMzc4LDYgKzE1ODYsOSBAQCB2b2lkIFJlbmRlckxh
eWVyOjphZGRDaGlsZChSZW5kZXJMYXllciogY2hpbGQsIFJlbmRlckxheWVyKiBiZWZvcmVDaGls
ZCkKICAgICBpZiAoY2hpbGQtPmlzU2VsZlBhaW50aW5nTGF5ZXIoKSB8fCBjaGlsZC0+aGFzU2Vs
ZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCkpCiAgICAgICAgIHNldEFuY2VzdG9yQ2hhaW5IYXNT
ZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKTsKIAorICAgIGlmICgoY2hpbGQtPnJlbmRlcmVy
KCkgJiYgY2hpbGQtPnJlbmRlcmVyKCktPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB8fCBjaGls
ZC0+aGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQoKSkKKyAgICAgICAgc2V0QW5jZXN0
b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KGNoaWxkLT5yZW5kZXJlcigp
LT5jb250YWluaW5nQmxvY2soKSk7CisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgY29tcG9zaXRvcigpLT5sYXllcldhc0FkZGVkKHRoaXMsIGNoaWxkKTsKICNlbmRpZgpA
QCAtMTQxMCw2ICsxNjIxLDkgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpyZW1vdmVDaGls
ZChSZW5kZXJMYXllciogb2xkQ2hpbGQpCiAgICAgICAgIG9sZENoaWxkLT5kaXJ0eVN0YWNraW5n
Q29udGV4dFpPcmRlckxpc3RzKCk7CiAgICAgfQogCisgICAgaWYgKChvbGRDaGlsZC0+cmVuZGVy
ZXIoKSAmJiBvbGRDaGlsZC0+cmVuZGVyZXIoKS0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHx8
IG9sZENoaWxkLT5oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCgpKQorICAgICAgICBk
aXJ0eUFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudFN0YXR1cygp
OworCiAgICAgb2xkQ2hpbGQtPnNldFByZXZpb3VzU2libGluZygwKTsKICAgICBvbGRDaGlsZC0+
c2V0TmV4dFNpYmxpbmcoMCk7CiAgICAgb2xkQ2hpbGQtPnNldFBhcmVudCgwKTsKQEAgLTE2MjIs
MTQgKzE4MzYsMzQgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y29udmVydFRvTGF5ZXJDb29yZHMoY29u
c3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIExheW91dFIKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiBib29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGlu
ZygpIGNvbnN0CiB7CisgICAgcmV0dXJuIGlzQ29tcG9zaXRlZCgpICYmIGJhY2tpbmcoKS0+c2Ny
b2xsaW5nTGF5ZXIoKTsKK30KKworYm9vbCBSZW5kZXJMYXllcjo6bmVlZHNDb21wb3NpdGVkU2Ny
b2xsaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmc7
Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygp
Cit7CisgICAgYm9vbCBvbGROZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcgPSBtX25lZWRzQ29tcG9z
aXRlZFNjcm9sbGluZzsKKwogICAgIGlmICghc2Nyb2xsc092ZXJmbG93KCkgfHwgIWFsbG93c1Nj
cm9sbGluZygpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbmVlZHNDb21wb3Np
dGVkU2Nyb2xsaW5nID0gZmFsc2U7CisgICAgZWxzZSB7CisgICAgICAgIGJvb2wgZm9yY2VVc2VD
b21wb3NpdGVkU2Nyb2xsaW5nID0gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsRW5hYmxlZCgpCisgICAgICAgICAgICAmJiBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdD
b250ZXh0KCkKKyAgICAgICAgICAgICYmICFoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFu
dCgpOwogCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKLSAgICBy
ZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpOwor
ICAgICAgICBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyA9IGZvcmNlVXNlQ29tcG9zaXRlZFNj
cm9sbGluZyB8fCByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5n
KCk7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV9uZWVkc0NvbXBvc2l0ZWRT
Y3JvbGxpbmcgPSBmb3JjZVVzZUNvbXBvc2l0ZWRTY3JvbGxpbmc7CiAjZW5kaWYKKyAgICB9CisK
KyAgICBpZiAob2xkTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nICE9IG1fbmVlZHNDb21wb3NpdGVk
U2Nyb2xsaW5nKQorICAgICAgICB1cGRhdGVTZWxmUGFpbnRpbmdMYXllcigpOwogfQogI2VuZGlm
CiAKQEAgLTE3OTMsOCArMjAyNywxNSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQg
eCwgaW50IHkpCiAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+ZGlzcGF0Y2hGYWtlTW91
c2VNb3ZlRXZlbnRTb29uSW5RdWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogICAgIH0K
IAorICAgIGJvb2wgcmVxdWlyZXNSZXBhaW50ID0gdHJ1ZTsKKworI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKKyAgICBpZiAoY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5nTW9kZSgp
ICYmIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgICAgIHJlcXVpcmVzUmVwYWludCA9
IGZhbHNlOworI2VuZGlmCisKICAgICAvLyBKdXN0IHNjaGVkdWxlIGEgZnVsbCByZXBhaW50IG9m
IG91ciBvYmplY3QuCi0gICAgaWYgKHZpZXcgJiYgIXVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkp
CisgICAgaWYgKHZpZXcgJiYgcmVxdWlyZXNSZXBhaW50KQogICAgICAgICByZW5kZXJlcigpLT5y
ZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwgcGl4ZWxTbmFwcGVkSW50UmVj
dChtX3JlcGFpbnRSZWN0KSk7CiAKICAgICAvLyBTY2hlZHVsZSB0aGUgc2Nyb2xsIERPTSBldmVu
dC4KQEAgLTQ3OTYsOCArNTAzNywxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxp
c3RzKCkKICAgICBtX3pPcmRlckxpc3RzRGlydHkgPSB0cnVlOwogCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ry
b3llZCgpKQorICAgIGlmICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7
CiAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgp
OworICAgICAgICBpZiAoYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCgpKQorICAgICAgICAgICAgY29tcG9zaXRvcigpLT5zZXRTaG91bGRSZWV2YWx1YXRlQ29t
cG9zaXRpbmdBZnRlckxheW91dCgpOworICAgIH0KICNlbmRpZgogfQogCkBAIC00ODE3LDggKzUw
NjEsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZGlydHlOb3JtYWxGbG93TGlzdCgpCiAgICAgbV9u
b3JtYWxGbG93TGlzdERpcnR5ID0gdHJ1ZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSAgICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAg
ICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkgewogICAgICAgICBj
b21wb3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKKyAgICAgICAg
aWYgKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKKyAg
ICAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0
ZXJMYXlvdXQoKTsKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAtNDkxNiw2ICs1MTYzLDggQEAgdm9p
ZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyhib29sIGluY2x1ZGVIaWRkZW5MYXllcnMsIE93
blB0cjxWZWN0b3I8UmVuZGVyTGEKIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0
c0lmTmVlZGVkKCkKIHsKKyAgICBib29sIHNob3VsZFVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGln
dW91c0luU3RhY2tpbmdPcmRlciA9IGlzU3RhY2tpbmdDb250ZXh0KCkgJiYgKG1fek9yZGVyTGlz
dHNEaXJ0eSB8fCBtX25vcm1hbEZsb3dMaXN0RGlydHkpOworCiAgICAgdXBkYXRlWk9yZGVyTGlz
dHMoKTsKICAgICB1cGRhdGVOb3JtYWxGbG93TGlzdCgpOwogCkBAIC00OTIzLDYgKzUxNzIsOSBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKQogICAgICAgICBy
ZWZsZWN0aW9uTGF5ZXItPnVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgICAgIHJlZmxlY3Rpb25M
YXllci0+dXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKICAgICB9CisKKyAgICBpZiAoc2hvdWxkVXBk
YXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyKQorICAgICAgICB1cGRh
dGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIoKTsKIH0KIAogdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdBbmRMYXllckxpc3RzSWZOZWVkZWQoKQpAQCAt
NTAxMCwxNCArNTI2MiwxNCBAQCBib29sIFJlbmRlckxheWVyOjpzaG91bGRCZU5vcm1hbEZsb3dP
bmx5KCkgY29uc3QKICAgICAgICAgICAgICYmICFyZW5kZXJlcigpLT5oYXNCbGVuZE1vZGUoKQog
I2VuZGlmCiAgICAgICAgICAgICAmJiAhaXNUcmFuc3BhcmVudCgpCi0gICAgICAgICAgICAmJiAh
dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICAgICAgICAgICYmICFuZWVkc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoKTsKIH0KIAogYm9vbCBSZW5kZXJMYXllcjo6c2hvdWxkQmVTZWxmUGFpbnRp
bmdMYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFpc05vcm1hbEZsb3dPbmx5KCkKICAgICAg
ICAgfHwgaGFzT3ZlcmxheVNjcm9sbGJhcnMoKQotICAgICAgICB8fCB1c2VzQ29tcG9zaXRlZFNj
cm9sbGluZygpCisgICAgICAgIHx8IG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpCiAgICAgICAg
IHx8IHJlbmRlcmVyKCktPmhhc1JlZmxlY3Rpb24oKQogICAgICAgICB8fCByZW5kZXJlcigpLT5o
YXNNYXNrKCkKICAgICAgICAgfHwgcmVuZGVyZXIoKS0+aXNUYWJsZVJvdygpCkBAIC01MTEzLDYg
KzUzNjUsMzkgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVyU3R5bGVD
aGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogICAgICAgICB1cGRhdGVTY3JvbGxh
YmxlQXJlYVNldChoYXNTY3JvbGxhYmxlSG9yaXpvbnRhbE92ZXJmbG93KCkgfHwgaGFzU2Nyb2xs
YWJsZVZlcnRpY2FsT3ZlcmZsb3coKSk7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNldEFuY2Vz
dG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudChSZW5kZXJPYmplY3QqIGNv
bnRhaW5pbmdCbG9jaykKK3sKKyAgICBmb3IgKFJlbmRlckxheWVyKiBsYXllciA9IHRoaXM7IGxh
eWVyOyBsYXllciA9IGxheWVyLT5wYXJlbnQoKSkgeworICAgICAgICBpZiAoIWxheWVyLT5tX2hh
c091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50RGlydHkgJiYgbGF5ZXItPmhhc091dE9mRmxv
d1Bvc2l0aW9uZWREZXNjZW5kYW50KCkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBs
YXllci0+bV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERpcnR5ID0gZmFsc2U7Cisg
ICAgICAgIGxheWVyLT5tX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50ID0gdHJ1ZTsK
KworICAgICAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCkgJiYgbGF5ZXItPnJlbmRlcmVyKCkgPT0g
Y29udGFpbmluZ0Jsb2NrKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIFJl
bmRlckxheWVyOjpkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2Vu
ZGFudFN0YXR1cygpCit7CisgICAgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERp
cnR5ID0gdHJ1ZTsKKyAgICBpZiAocGFyZW50KCkpCisgICAgICAgIHBhcmVudCgpLT5kaXJ0eUFu
Y2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudFN0YXR1cygpOworfQor
Cit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVPdXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBib29sIHdhc091dE9mRmxvd1Bvc2l0aW9uZWQgPSBv
bGRTdHlsZSAmJiAob2xkU3R5bGUtPnBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbiB8fCBv
bGRTdHlsZS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKTsKKyAgICBpZiAocGFyZW50KCkg
JiYgKChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSAh
PSB3YXNPdXRPZkZsb3dQb3NpdGlvbmVkKSkgeworICAgICAgICBwYXJlbnQoKS0+ZGlydHlBbmNl
c3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnRTdGF0dXMoKTsKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgIGlmICghcmVuZGVyZXIoKS0+ZG9j
dW1lbnRCZWluZ0Rlc3Ryb3llZCgpICYmIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoKSkKKyAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0U2hvdWxkUmVl
dmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKTsKKyNlbmRpZgorICAgIH0KK30KKwogdm9p
ZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKQogewogICAgIGJvb2wgaXNOb3JtYWxGbG93T25seSA9IHNob3VsZEJl
Tm9ybWFsRmxvd09ubHkoKTsKQEAgLTUxMzMsMTEgKzU0MTgsMTIgQEAgdm9pZCBSZW5kZXJMYXll
cjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKQogICAgICAgICBtX21hcnF1ZWUuY2xlYXIoKTsKICAgICB9CiAKLSAgICB1cGRhdGVTdGFj
a2luZ0NvbnRleHRzQWZ0ZXJTdHlsZUNoYW5nZShvbGRTdHlsZSk7CiAgICAgdXBkYXRlU2Nyb2xs
YmFyc0FmdGVyU3R5bGVDaGFuZ2Uob2xkU3R5bGUpOworICAgIHVwZGF0ZVN0YWNraW5nQ29udGV4
dHNBZnRlclN0eWxlQ2hhbmdlKG9sZFN0eWxlKTsKICAgICAvLyBPdmVybGF5IHNjcm9sbGJhcnMg
Y2FuIG1ha2UgdGhpcyBsYXllciBzZWxmLXBhaW50aW5nIHNvIHdlIG5lZWQKICAgICAvLyB0byBy
ZWNvbXB1dGUgdGhlIGJpdCBvbmNlIHNjcm9sbGJhcnMgaGF2ZSBiZWVuIHVwZGF0ZWQuCiAgICAg
dXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIoKTsKKyAgICB1cGRhdGVPdXRPZkZsb3dQb3NpdGlvbmVk
KG9sZFN0eWxlKTsKIAogICAgIGlmICghaGFzUmVmbGVjdGlvbigpICYmIG1fcmVmbGVjdGlvbikK
ICAgICAgICAgcmVtb3ZlUmVmbGVjdGlvbigpOwpAQCAtNTE2Niw2ICs1NDUyLDcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5
bGUqIG9sZFN0eWxlKQogI2VuZGlmCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CiAgICAgaWYgKGNvbXBvc2l0
b3IoKS0+dXBkYXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKHRoaXMpKQogICAgICAgICBjb21wb3Np
dG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICAgICBlbHNlIGlmIChv
bGRTdHlsZSAmJiAob2xkU3R5bGUtPmNsaXAoKSAhPSByZW5kZXJlcigpLT5zdHlsZSgpLT5jbGlw
KCkgfHwgb2xkU3R5bGUtPmhhc0NsaXAoKSAhPSByZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNDbGlw
KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBkODZiZDMxODEw
ZjFmNTYwOWVlNzBkMGM0MjA0NmQ4ZWFjOWU2ZDg1Li42MDBiNjE2NGE5MmE1YWFkZWZjODE0ZjE1
Y2ZkMGExMzAwOTAwN2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApA
QCAtNDAxLDcgKzQwMSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlv
bnNBZnRlckxheW91dChjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBVcGRhdGVMYXllclBv
c2l0aW9uc0ZsYWdzKTsKIAotICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlck92ZXJm
bG93U2Nyb2xsKCk7CisgICAgdm9pZCB1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dT
Y3JvbGwoYm9vbCBuZXdseVByb21vdGVkID0gZmFsc2UpOwogICAgIHZvaWQgdXBkYXRlTGF5ZXJQ
b3NpdGlvbnNBZnRlckRvY3VtZW50U2Nyb2xsKCk7CiAgICAgCiAgICAgYm9vbCBpc1BhZ2luYXRl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYWdpbmF0ZWQ7IH0KQEAgLTQ2Myw2ICs0NjMsMTMgQEAg
cHVibGljOgogICAgIC8vIFBhcnQgb2YgdGhlIGlzc3VlIGlzIHdpdGggc3VidHJlZSByZWxheW91
dDogd2UgZG9uJ3QgY2hlY2sgaWYgb3VyIGFuY2VzdG9ycyBoYXZlIHNvbWUgZGVzY2VuZGFudCBm
bGFncyBkaXJ0eSwgbWlzc2luZyBzb21lIHVwZGF0ZXMuCiAgICAgYm9vbCBoYXNTZWxmUGFpbnRp
bmdMYXllckRlc2NlbmRhbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1NlbGZQYWludGluZ0xheWVy
RGVzY2VuZGFudDsgfQogCisgICAgLy8gVGhpcyByZXR1cm5zIHRydWUgaWYgd2UgaGF2ZSBhbiBv
dXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2NlbmRhbnQgd2hvc2UKKyAgICAvLyBjb250YWluaW5n
IGJsb2NrIGlzIG5vdCBhIGRlc2NlbmRhbnQgb2Ygb3Vycy4gSWYgdGhpcyBpcyB0cnVlLCB3ZSBj
YW5ub3QKKyAgICAvLyBhdXRvbWF0aWNhbGx5IG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
IHNpbmNlIHRoaXMgb3V0IG9mIGZsb3cKKyAgICAvLyBwb3NpdGlvbmVkIGRlc2NlbmRhbnQgd291
bGQgYmVjb21lIGNsaXBwZWQgYnkgdXMsIHBvc3NpYmx5IGFsdGVyaW5nIHRoZSAKKyAgICAvLyBy
ZW5kZXJpbmcgb2YgdGhlIHBhZ2UuCisgICAgYm9vbCBoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVz
Y2VuZGFudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRh
bnQ7IH0KKwogICAgIC8vIEdldHMgdGhlIG5lYXJlc3QgZW5jbG9zaW5nIHBvc2l0aW9uZWQgYW5j
ZXN0b3IgbGF5ZXIgKGFsc28gaW5jbHVkZXMKICAgICAvLyB0aGUgPGh0bWw+IGxheWVyIGFuZCB0
aGUgcm9vdCBsYXllcikuCiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ1Bvc2l0aW9uZWRBbmNl
c3RvcigpIGNvbnN0OwpAQCAtNjU1LDYgKzY2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdy
YXBoaWNzTGF5ZXIqIGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdDsKICAgICB2aXJ0
dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBib29sIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
Ym9vbCBuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdDsKICNlbHNlCiAgICAgYm9vbCBp
c0NvbXBvc2l0ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFzQ29tcG9z
aXRlZE1hc2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtNzI0LDYgKzczMiwxMCBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVz
Y2VuZGFudCgpOwogICAgIHZvaWQgZGlydHlBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5
ZXJEZXNjZW5kYW50U3RhdHVzKCk7CiAKKyAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZURlc2NlbmRh
bnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcigpOworICAgIHZvaWQgdXBkYXRlRGVzY2Vu
ZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyUmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8
Y29uc3QgUmVuZGVyTGF5ZXIqLCBpbnQ+JiwgaW50JiBtaW5JbmRleCwgaW50JiBtYXhJbmRleCwg
aW50JiBjb3VudCwgYm9vbCBmaXJzdEl0ZXJhdGlvbik7CisKICAgICB2b2lkIGNvbXB1dGVSZXBh
aW50UmVjdHMoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
Y29uc3QgUmVuZGVyR2VvbWV0cnlNYXAqID0gMCk7CiAgICAgdm9pZCBjb21wdXRlUmVwYWludFJl
Y3RzSW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKICAgICB2b2lkIGNsZWFyUmVwYWludFJlY3RzKCk7
CkBAIC03NDAsNiArNzUyLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVTY3JvbGxiYXJz
QWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogICAgIHZvaWQg
dXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5b3V0KCk7CiAKKyAgICB2b2lkIHNldEFuY2VzdG9yQ2hh
aW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudChSZW5kZXJPYmplY3QqIGNvbnRhaW5p
bmdCbG9jayk7CisgICAgdm9pZCBkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlv
bmVkRGVzY2VuZGFudFN0YXR1cygpOworICAgIHZvaWQgdXBkYXRlT3V0T2ZGbG93UG9zaXRpb25l
ZChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOworICAgIHZvaWQgdXBkYXRlSXNOb3JtYWxG
bG93T25seSgpOworCisgICAgdm9pZCB1cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsK
KwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcG9zaXRpb24gY2hhbmdlZC4KICAgICBib29s
IHVwZGF0ZUxheWVyUG9zaXRpb24oKTsKIApAQCAtODc1LDcgKzg5NCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaXJ0eUFuY2VzdG9yQ2hhaW5WaXNpYmxlRGVzY2VuZGFudFN0YXR1cygpOwogICAg
IHZvaWQgc2V0QW5jZXN0b3JDaGFpbkhhc1Zpc2libGVEZXNjZW5kYW50KCk7CiAKLSAgICB2b2lk
IHVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygpOworICAgIHZvaWQgdXBkYXRlRGVzY2Vu
ZGFudERlcGVuZGVudEZsYWdzKEhhc2hTZXQ8Y29uc3QgUmVuZGVyT2JqZWN0Kj4qIG91dE9mRmxv
d0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzID0gMCk7CiAKICAgICAvLyBUaGlzIGZsYWcgaXMg
Y29tcHV0ZWQgYnkgUmVuZGVyTGF5ZXJDb21wb3NpdG9yLCB3aGljaCBrbm93cyBtb3JlIGFib3V0
IDNkIGhpZXJhcmNoaWVzIHRoYW4gd2UgZG8uCiAgICAgdm9pZCBzZXRIYXMzRFRyYW5zZm9ybWVk
RGVzY2VuZGFudChib29sIGIpIHsgbV9oYXMzRFRyYW5zZm9ybWVkRGVzY2VuZGFudCA9IGI7IH0K
QEAgLTkzMiw2ICs5NTEsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SW5kaXJlY3RDb21wb3Np
dGluZ1JlYXNvbihJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIHJlYXNvbikgeyBtX2luZGlyZWN0
Q29tcG9zaXRpbmdSZWFzb24gPSByZWFzb247IH0KICAgICBJbmRpcmVjdENvbXBvc2l0aW5nUmVh
c29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uPihtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24p
OyB9CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRlRm9ySW5kaXJlY3RSZWFzb25zKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOyB9CisKKyAgICAvLyBSZXR1cm5zIHRy
dWUgaWYgeiBvcmRlcmluZyB3b3VsZCBub3QgY2hhbmdlIGlmIHRoaXMgbGF5ZXIgd2VyZSB0byBl
c3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0LgorICAgIGJvb2wgY2FuU2FmZWx5RXN0YWJsaXNo
QVN0YWNraW5nQ29udGV4dCgpIGNvbnN0OwogI2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgUmVu
ZGVyTGF5ZXJCYWNraW5nOwpAQCAtOTcyLDYgKzk5NCwxOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCA6IDE7CiAgICAgYm9vbCBtX2hhc1Nl
bGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5IDogMTsKIAorICAgIC8vIElmIHdlIGhhdmUg
bm8gb3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50cyBhbmQgbm8gbm9uLWRlc2NlbmRh
bnQKKyAgICAvLyBhcHBlYXJzIGJldHdlZW4gb3VyIGRlc2NlbmRhbnRzIGluIHN0YWNraW5nIG9y
ZGVyLCB0aGVuIHdlIG1heSBiZWNvbWUgYQorICAgIC8vIHN0YWNraW5nIGNvbnRleHQuCisgICAg
Ym9vbCBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50IDogMTsKKyAgICBib29sIG1f
aGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSA6IDE7CisKKyAgICBib29sIG1f
bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nIDogMTsKKworICAgIC8vIElmIHRoaXMgaXMgdHJ1ZSwg
dGhlbiBubyBub24tZGVzY2VuZGFudCBhcHBlYXJzIGJldHdlZW4gYW55IG9mIG91cgorICAgIC8v
IGRlc2NlbmRhbnRzIGluIHN0YWNraW5nIG9yZGVyLiBUaGlzIGlzIG9uZSBvZiB0aGUgcmVxdWly
ZW1lbnRzIG9mIGJlaW5nCisgICAgLy8gYWJsZSB0byBzYWZlbHkgYmVjb21lIGEgc3RhY2tpbmcg
Y29udGV4dC4KKyAgICBib29sIG1fZGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09y
ZGVyIDogMTsKKwogICAgIGNvbnN0IGJvb2wgbV9pc1Jvb3RMYXllciA6IDE7CiAKICAgICBib29s
IG1fdXNlZFRyYW5zcGFyZW5jeSA6IDE7IC8vIFRyYWNrcyB3aGV0aGVyIHdlIG5lZWQgdG8gY2xv
c2UgYSB0cmFuc3BhcmVudCBsYXllciwgaS5lLiwgd2hldGhlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA3NzlkN2Y3NDhiNjg4M2E3
MmFlYzRlZDIzMDQ0YmUxYWY5ZWMzOGQ1Li44NTFhMTA4NWE2OGFjNDQwOWI4MmI3ZTM1NzNlZDlm
MDA1NmY5MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcApAQCAtMzQxLDcgKzM0MSw3IEBAIHN0YXRpYyBib29sIGhhc05vblplcm9UcmFu
c2Zvcm1PcmlnaW4oY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHN0YXRpYyBib29sIGxh
eWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRlZFNjcm9sbGluZyhSZW5k
ZXJMYXllciogbGF5ZXIpCiB7CiAgICAgZm9yIChSZW5kZXJMYXllciogY3VyciA9IGxheWVyOyBj
dXJyOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGN1cnItPmhhc1RyYW5z
Zm9ybSgpIHx8IGN1cnItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgICAgIGlmIChj
dXJyLT5oYXNUcmFuc2Zvcm0oKSB8fCBjdXJyLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKQEAgLTQ0OSw3ICs0NDksNyBA
QCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRp
b24oKQogICAgIGJvb2wgbmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIgPSBjb21wb3NpdG9y
LT5jbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHMobV9vd25pbmdMYXllcik7CiAKICAgICAvLyBP
dXIgc2Nyb2xsaW5nIGxheWVyIHdpbGwgY2xpcC4KLSAgICBpZiAobV9vd25pbmdMYXllci0+dXNl
c0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICBpZiAobV9vd25pbmdMYXllci0+bmVlZHNDb21w
b3NpdGVkU2Nyb2xsaW5nKCkpCiAgICAgICAgIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVy
ID0gZmFsc2U7CiAKICAgICBpZiAodXBkYXRlQ2xpcHBpbmdMYXllcnMoY29tcG9zaXRvci0+Y2xp
cHBlZEJ5QW5jZXN0b3IobV9vd25pbmdMYXllciksIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xh
eWVyKSkKQEAgLTQ1OCw3ICs0NTgsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
R3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgIGlmICh1cGRhdGVPdmVyZmxvd0NvbnRy
b2xzTGF5ZXJzKHJlcXVpcmVzSG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCksIHJlcXVpcmVzVmVy
dGljYWxTY3JvbGxiYXJMYXllcigpLCByZXF1aXJlc1Njcm9sbENvcm5lckxheWVyKCkpKQogICAg
ICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogCi0gICAgaWYgKHVwZGF0ZVNjcm9sbGlu
Z0xheWVycyhtX293bmluZ0xheWVyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKSkKKyAgICBp
ZiAodXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKG1fb3duaW5nTGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNj
cm9sbGluZygpKSkKICAgICAgICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGlm
IChsYXllckNvbmZpZ0NoYW5nZWQpCkBAIC02MDIsNyArNjAyLDcgQEAgdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgZWxzZQogICAgICAg
ICBncmFwaGljc0xheWVyUGFyZW50TG9jYXRpb24gPSByZW5kZXJlcigpLT52aWV3KCktPmRvY3Vt
ZW50UmVjdCgpLmxvY2F0aW9uKCk7CiAKLSAgICBpZiAoY29tcEFuY2VzdG9yICYmIGNvbXBBbmNl
c3Rvci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkgeworICAgIGlmIChjb21wQW5jZXN0b3Ig
JiYgY29tcEFuY2VzdG9yLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkgewogICAgICAgICBS
ZW5kZXJCb3gqIHJlbmRlckJveCA9IHRvUmVuZGVyQm94KGNvbXBBbmNlc3Rvci0+cmVuZGVyZXIo
KSk7CiAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0ID0gY29tcEFuY2VzdG9yLT5zY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKTsKICAgICAgICAgSW50UG9pbnQgc2Nyb2xsT3JpZ2luKHJlbmRlckJv
eC0+Ym9yZGVyTGVmdCgpLCByZW5kZXJCb3gtPmJvcmRlclRvcCgpKTsKQEAgLTk2MCw2ICs5NjAs
MjMgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBvc2l0aW9uT3ZlcmZsb3dDb250cm9sc0xh
eWVycyhjb25zdCBJbnRTaXplJiBvZmZzZXRGcm8KICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyTGF5
ZXJCYWNraW5nOjpoYXNVbnBvc2l0aW9uZWRPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCkgY29uc3QK
K3sKKyAgICBpZiAoR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckZvckhvcml6b250YWxTY3Jv
bGxiYXIoKSkKKyAgICAgICAgaWYgKCFsYXllci0+ZHJhd3NDb250ZW50KCkpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyRm9y
VmVydGljYWxTY3JvbGxiYXIoKSkKKyAgICAgICAgaWYgKCFsYXllci0+ZHJhd3NDb250ZW50KCkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChHcmFwaGljc0xheWVyKiBsYXll
ciA9IGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkpCisgICAgICAgIGlmICghbGF5ZXItPmRyYXdzQ29u
dGVudCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVGb3JlZ3JvdW5kTGF5ZXIoYm9vbCBu
ZWVkc0ZvcmVncm91bmRMYXllcikKIHsKICAgICBib29sIGxheWVyQ2hhbmdlZCA9IGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IGIy
NTU2MTY2Mjk2Yzg3YTI0Yjc3ZGVhZjgyMWFjMDQ1Yjc0MTEzOWYuLmQ1MDNmMTY1ZGUwY2Q0YThm
YWM4NDRhNjM1N2U4YmRjZjg0ODk0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTEzNyw2ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdm9pZCB1cGRhdGVBZnRlcldpZGdldFJlc2l6ZSgpOwogICAgIHZvaWQgcG9zaXRpb25PdmVy
Zmxvd0NvbnRyb2xzTGF5ZXJzKGNvbnN0IEludFNpemUmIG9mZnNldEZyb21Sb290KTsKKyAgICBi
b29sIGhhc1VucG9zaXRpb25lZE92ZXJmbG93Q29udHJvbHNMYXllcnMoKSBjb25zdDsKIAogICAg
IGJvb2wgdXNpbmdUaWxlQ2FjaGUoKSBjb25zdCB7IHJldHVybiBtX3VzaW5nVGlsZWRDYWNoZUxh
eWVyOyB9CiAgICAgVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXgg
MzdiYjY1MTg2MWNiNGExMmFiOTYzMDRlZGZkMTk5ZGI1YjM5MjljMy4uNzQyMTMxZjY1NDA4ZWVk
YmEyODZmM2U5MzY5YTgyNzU1OTA3NGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTk4Niw2ICs5ODYsOSBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJl
bmRlckxheWVyKiBhbmNlc3RvcgogCiAgICAgaWYgKG92ZXJsYXBNYXApCiAgICAgICAgIG92ZXJs
YXBNYXAtPmdlb21ldHJ5TWFwKCkucG9wTWFwcGluZ3NUb0FuY2VzdG9yKGFuY2VzdG9yTGF5ZXIp
OworCisgICAgaWYgKGxheWVyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgICAgICBs
YXllci0+dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlck92ZXJmbG93U2Nyb2xsKHRydWUpOwogfQog
CiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0Q29tcG9zaXRpbmdQYXJlbnQoUmVuZGVy
TGF5ZXIqIGNoaWxkTGF5ZXIsIFJlbmRlckxheWVyKiBwYXJlbnRMYXllcikKQEAgLTE5OTksNyAr
MjAwMiw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5n
Rm9yUG9zaXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcoY29uc3QgUmVu
ZGVyTGF5ZXIqIGxheWVyKSBjb25zdAogewotICAgIHJldHVybiBsYXllci0+dXNlc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoKTsKKyAgICByZXR1cm4gbGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGlu
ZygpOwogfQogCiBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aXNSdW5uaW5nQWNjZWxlcmF0
ZWRUcmFuc2Zvcm1BbmltYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCAy
NDk2OWRmODUyYzk1MjcxNGNkZTkzZGE2ZmZhYTFmZGY5NDlmODkzLi4yMWNiYmM3NmRjODg5OTEx
M2ZhOTNiZmQ5ZWQyZTY2NGFkMmUxMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yMjgsNiArMjI4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0VHJhY2tzUmVwYWludHMoYm9vbCk7CiAKICAgICB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKyAgICB2b2lkIHNldFNob3VsZFJlZXZh
bHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KCkgeyBtX3JlZXZhbHVhdGVDb21wb3NpdGluZ0Fm
dGVyTGF5b3V0ID0gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIGNsYXNzIE92ZXJsYXBNYXA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBjNzQ4ZWFi
YzRhZjJmMWMxMWE1M2YzNjZmOTYxM2IxZTlmNzhlMTU2Li5lMGI4OWRmNmVkMTc3MTJjYTcyNzA3
Y2Y5M2NjZjdlMTgzZDg1M2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAKQEAgLTIxMSw2ICsyMTEsMTIgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGMK
ICAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZy
YW1lc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAg
c2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRBY2NlbGVyYXRl
ZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
SW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggZjM3OWYyODU4ZDk4M2VmOThlN2UyZTBiZWVlY2Rk
YTk4MWRhMmZmNi4uMWZjN2YyZDRjNmIxMjM0MDRiYjAyZWI5MzE0MDc1ZTNhNDczNGE4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEwMyw2ICsxMDMs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4
ZWRQb3NpdGlvbihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVu
YWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwo
Ym9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERy
YXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0
QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmlu
ZGV4IGQzN2IzZjhjMjNhMDJkYzdhNTMyNjBhNTdiNDIxYjVmOTdiODI2ZDYuLjdlNTcxY2FhN2Zh
MTUyZjNiNjE3MDhiNDUyYmNiODBlYjhjZmQwZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMjksNiArMjksNyBAQAogICAgIHZvaWQgc2V0Rm9y
Y2VDb21wb3NpdGluZ01vZGUoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihpbiBib29s
ZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBz
ZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRNb2NrU2Ny
b2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhZWE4NmNhYjRhN2U3YjEzMzBjZWNlMjZjZmVmNmMwMDg3NzI3ZDIwLi4zOGQyNTk5
YjI5ODA4YmVkZmE2YTYwMGIwMjgwNDI0NmE5YjE2YzNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTItMTItMTIgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQXV0b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgdmFyaW91cyBjb25maWd1cmF0
aW9ucyBvZiBlbGVtZW50cyB0byBlbnN1cmUgdGhhdCB3ZSBvbmx5IGF1dG9tYXRpY2FsbHkgb3B0
IGludG8KKyAgICAgICAgY29tcG9zaXRlZCBzY3JvbGxpbmcgd2hlbiBpdCBpcyBzYWZlIHRvIGRv
IHNvLgorCisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQt
aW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1z
Y3JvbGxpbmcuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMDkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtTb3VwXSB1dGls
aXplIG11bHRpcGFydC94LW1peGVkLXJlcGxhY2Ugc3VwcG9ydCByZWNlbnRseSBhZGRlZCB0byBs
aWJzb3VwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRv
bWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29t
cG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmZjAzYjRmZjIyOTYy
YTBkOGM1Y2MxZDg3YjU2Mzk2NDU0NGU5MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQt
c2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyNyBAQAorSXRlcmF0aW9uIDA6IFBh
c3NlZAorSXRlcmF0aW9uIDAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxOiBQYXNzZWQKK0l0ZXJh
dGlvbiAxLCBsYXllciB0cmVlCitJdGVyYXRpb24gMjogUGFzc2VkCitJdGVyYXRpb24gMiwgbGF5
ZXIgdHJlZQorSXRlcmF0aW9uIDM6IFBhc3NlZAorSXRlcmF0aW9uIDMsIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiA0OiBQYXNzZWQKK0l0ZXJhdGlvbiA0LCBsYXllciB0cmVlCitJdGVyYXRpb24gNTog
UGFzc2VkCitJdGVyYXRpb24gNSwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDY6IFBhc3NlZAorSXRl
cmF0aW9uIDYsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA3OiBQYXNzZWQKK0l0ZXJhdGlvbiA3LCBs
YXllciB0cmVlCitJdGVyYXRpb24gODogUGFzc2VkCitJdGVyYXRpb24gOCwgbm8gbGF5ZXIgdHJl
ZQorSXRlcmF0aW9uIDk6IFBhc3NlZAorSXRlcmF0aW9uIDksIG5vIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiAxMDogUGFzc2VkCitJdGVyYXRpb24gMTAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxMTog
UGFzc2VkCitJdGVyYXRpb24gMTEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxMjogUGFzc2VkCitJ
dGVyYXRpb24gMTIsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxMzogUGFzc2VkCitJdGVyYXRp
b24gMTMsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxNDogUGFzc2VkCitJdGVyYXRpb24gMTQs
IG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxNTogUGFzc2VkCitJdGVyYXRpb24gMTUsIG5vIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiAxNjogUGFzc2VkCitJdGVyYXRpb24gMTYsIG5vIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiAxNzogUGFzc2VkCitJdGVyYXRpb24gMTcsIG5vIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiAxODogUGFzc2VkCitJdGVyYXRpb24gMTgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biAxOTogUGFzc2VkCitJdGVyYXRpb24gMTksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyMDog
UGFzc2VkCitJdGVyYXRpb24gMjAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyMTogUGFzc2VkCitJ
dGVyYXRpb24gMjEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyMjogUGFzc2VkCitJdGVyYXRpb24g
MjIsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyMzogUGFzc2VkCitJdGVyYXRpb24gMjMsIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiAyNDogUGFzc2VkCitJdGVyYXRpb24gMjQsIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiAyNTogUGFzc2VkCitJdGVyYXRpb24gMjUsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAy
NjogUGFzc2VkCitJdGVyYXRpb24gMjYsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNzogUGFzc2Vk
CitJdGVyYXRpb24gMjcsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyODogUGFzc2VkCitJdGVyYXRp
b24gMjgsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyOTogUGFzc2VkCitJdGVyYXRpb24gMjksIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiAzMDogUGFzc2VkCitJdGVyYXRpb24gMzAsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiAzMTogUGFzc2VkCitJdGVyYXRpb24gMzEsIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biAzMjogUGFzc2VkCitJdGVyYXRpb24gMzIsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMzogUGFz
c2VkCitJdGVyYXRpb24gMzMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzNDogUGFzc2VkCitJdGVy
YXRpb24gMzQsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzNTogUGFzc2VkCitJdGVyYXRpb24g
MzUsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzNjogUGFzc2VkCitJdGVyYXRpb24gMzYsIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiAzNzogUGFzc2VkCitJdGVyYXRpb24gMzcsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiAzODogUGFzc2VkCitJdGVyYXRpb24gMzgsIG5vIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiAzOTogUGFzc2VkCitJdGVyYXRpb24gMzksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0
MDogUGFzc2VkCitJdGVyYXRpb24gNDAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0MTogUGFzc2Vk
CitJdGVyYXRpb24gNDEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0MjogUGFzc2VkCitJdGVyYXRp
b24gNDIsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0MzogUGFzc2VkCitJdGVyYXRpb24gNDMsIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiA0NDogUGFzc2VkCitJdGVyYXRpb24gNDQsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiA0NTogUGFzc2VkCitJdGVyYXRpb24gNDUsIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biA0NjogUGFzc2VkCitJdGVyYXRpb24gNDYsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NzogUGFz
c2VkCitJdGVyYXRpb24gNDcsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0ODogUGFzc2VkCitJdGVy
YXRpb24gNDgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0OTogUGFzc2VkCitJdGVyYXRpb24g
NDksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MDogUGFzc2VkCitJdGVyYXRpb24gNTAsIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiA1MTogUGFzc2VkCitJdGVyYXRpb24gNTEsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiA1MjogUGFzc2VkCitJdGVyYXRpb24gNTIsIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biA1MzogUGFzc2VkCitJdGVyYXRpb24gNTMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1NDogUGFz
c2VkCitJdGVyYXRpb24gNTQsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1NTogUGFzc2VkCitJ
dGVyYXRpb24gNTUsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1NjogUGFzc2VkCitJdGVyYXRp
b24gNTYsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1NzogUGFzc2VkCitJdGVyYXRpb24gNTcs
IG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1ODogUGFzc2VkCitJdGVyYXRpb24gNTgsIG5vIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiA1OTogUGFzc2VkCitJdGVyYXRpb24gNTksIG5vIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiA2MDogUGFzc2VkCitJdGVyYXRpb24gNjAsIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiA2MTogRkFJTEVECitJdGVyYXRpb24gNjEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2Mjog
UGFzc2VkCitJdGVyYXRpb24gNjIsIGxheWVyIHRyZWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVk
LXNjcm9sbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21h
dGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFm
NTViODIxZmZiNmYxZmRkM2YwYzA2NjViMTc4MWMwNDM5Yzc5ZDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRv
LWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKQEAgLTAsMCArMSwyMDggQEAKKzwhRE9DVFlQRSBo
dG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAi
aHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgIDx0aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVk
IHNjcm9sbGluZzwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVl
biI+CisgICAgLmNvbnRhaW5lciB7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6
IDIwMHB4OworICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAg
ICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKworICAgIC5zY3JvbGxlZCB7Cisg
ICAgICB3aWR0aDogMTgwcHg7CisgICAgICBoZWlnaHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEw
cHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgIH0KKworICAgIC5wb3NpdGlvbmVkIHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAg
ICAgIGhlaWdodDogMjQwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB9CisKKyAgICAjcHJlZGVjZXNzb3IgeworICAgICAg
bGVmdDogMjBweDsKKyAgICAgIHRvcDogMjBweDsKKyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsK
KyAgICAgIGxlZnQ6IDE2MHB4OworICAgICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNkZXNj
ZW5kYW50IHsKKyAgICAgIGxlZnQ6IDkwcHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgei1pbmRleDogLTIwOworICAgIH0KKyAgPC9zdHls
ZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAg
ICB2YXIgZGVidWdNb2RlID0gZmFsc2U7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0Zv
ck92ZXJmbG93U2Nyb2xsKHRydWUpOworCisgICAgZnVuY3Rpb24gd3JpdGUoc3RyKQorICAgIHsK
KyAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOworICAg
ICAgdmFyIHRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIgKyAnXG4nKTsKKyAgICAg
IHByZS5hcHBlbmRDaGlsZCh0ZXh0KTsKKyAgICB9CisKKyAgICB2YXIgaXRlcmF0aW9uID0gMDsK
KyAgICBmdW5jdGlvbiBwcmludFJlc3VsdChleHBlY3RlZFJlc3VsdCkKKyAgICB7CisgICAgICAv
LyBGb3JjZSBhIHN0eWxlIHJlY2FsYy4KKyAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwor
CisgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAvLyBGb3JjZSBhIGxheW91
dC4KKyAgICAgICAgd2luZG93LmludGVybmFscy5ib3VuZGluZ0JveChjb250YWluZXIpOworICAg
ICAgICB2YXIgbGF5ZXJUcmVlID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQpOworCisgICAgICAgIGlmICghbGF5ZXJUcmVlID09ICFleHBlY3RlZFJlc3VsdCkKKyAg
ICAgICAgICB3cml0ZSgnSXRlcmF0aW9uICcgKyBpdGVyYXRpb24udG9TdHJpbmcoKSArICc6IFBh
c3NlZCcpCisgICAgICAgIGVsc2UKKyAgICAgICAgICB3cml0ZSgnSXRlcmF0aW9uICcgKyBpdGVy
YXRpb24udG9TdHJpbmcoKSArICc6IEZBSUxFRCcpCisKKyAgICAgICAgaWYgKGxheWVyVHJlZSkg
eworICAgICAgICAgIHdyaXRlKCdJdGVyYXRpb24gJyArIGl0ZXJhdGlvbi50b1N0cmluZygpICsg
JywgbGF5ZXIgdHJlZScpOworICAgICAgICAgIGlmIChkZWJ1Z01vZGUpCisgICAgICAgICAgICAg
IHdyaXRlKGxheWVyVHJlZSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgIHdyaXRlKCdJdGVy
YXRpb24gJyArIGl0ZXJhdGlvbi50b1N0cmluZygpICsgJywgbm8gbGF5ZXIgdHJlZScpOworICAg
ICAgfQorICAgICAgaXRlcmF0aW9uKys7CisgICAgfQorCisgICAgZnVuY3Rpb24gZG9UZXN0KCkK
KyAgICB7CisgICAgICB2YXIgcHJlZGVjZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cHJlZGVjZXNzb3InKTsKKyAgICAgIHZhciBzdWNjZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc3VjY2Vzc29yJyk7CisgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnRhaW5lcicpOworICAgICAgdmFyIGZpcnN0Q2hpbGQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZmlyc3RDaGlsZCcpOworICAgICAgdmFyIHNlY29uZENoaWxkID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZENoaWxkJyk7CisgICAgICB2YXIgZGVzY2VuZGFu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXNjZW5kYW50Jyk7CisgICAgICB2YXIgY291
bnQgPSAwOworCisgICAgICBkZXNjZW5kYW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisKKyAg
ICAgIHZhciBleHBlY3RlZF9yZXN1bHRzID0gWworICAgICAgICB0cnVlLCB0cnVlLCB0cnVlLCB0
cnVlLCBmYWxzZSwKKyAgICAgICAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisg
ICAgICAgIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsCisgICAgICAgIHRydWUsIHRydWUs
IGZhbHNlLCB0cnVlLCBmYWxzZSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFs
c2UsCisgICAgICAgIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgICAgIHRy
dWUsIGZhbHNlLCB0cnVlCisgICAgICBdOworCisgICAgICAvLyBDaGVjayB0aGF0IHdlIGRvbid0
IHByb21vdGUgaWYgYSBub24tZGVzY2VuZGFudCBsaWVzIGJldHdlZW4gb3VyCisgICAgICAvLyBk
ZXNjZW5kYW50cyBpbiBzdGFja2luZyBvcmRlci4KKyAgICAgIGZvciAoaSA9IDA7IGkgPCAzOyAr
K2kpIHsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IDU7ICsraikgeworICAgICAgICAgIGZvciAo
ayA9IDA7IGsgPCAyOyArK2spIHsKKyAgICAgICAgICAgIGZvciAobCA9IDA7IGwgPCAyOyArK2wp
IHsKKyAgICAgICAgICAgICAgdmFyIG1pblpJbmRleCA9IDA7CisgICAgICAgICAgICAgIHZhciBt
YXhaSW5kZXggPSAwOworICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAg
ICAgZmlyc3RDaGlsZC5zdHlsZS56SW5kZXggPSAnMSc7CisgICAgICAgICAgICAgICAgc2Vjb25k
Q2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7
CisgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PSAxKSB7CisgICAgICAgICAgICAgICAgZmly
c3RDaGlsZC5zdHlsZS56SW5kZXggPSAnLTEnOworICAgICAgICAgICAgICAgIHNlY29uZENoaWxk
LnN0eWxlLnpJbmRleCA9ICctMyc7CisgICAgICAgICAgICAgICAgbWluWkluZGV4ID0gLTM7Cisg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmlyc3RDaGlsZC5zdHlsZS56
SW5kZXggPSAnLTEnOworICAgICAgICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxlLnpJbmRleCA9
ICczJzsKKyAgICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMTsKKyAgICAgICAgICAgICAgICBt
YXhaSW5kZXggPSAzOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgdmFyIHNpYmxp
bmcgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgICAgdmFyIHRvSGlkZSA9IHN1Y2Nlc3NvcjsK
KyAgICAgICAgICAgICAgaWYgKGsgPT0gMSkgeworICAgICAgICAgICAgICAgIHNpYmxpbmcgPSBz
dWNjZXNzb3I7CisgICAgICAgICAgICAgICAgdG9IaWRlID0gcHJlZGVjZXNzb3I7CisgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAvLyBUaGUgcmVzdWx0IHNob3VsZCBiZSB0aGUgc2Ft
ZSBpZiB0aGUgdGhlIGVsZW1lbnQgdG8gaGlkZSBpcworICAgICAgICAgICAgICAvLyBkaXNwbGF5
OmhpZGRlbiBvciBkaXNwbGF5Om5vbmUuCisgICAgICAgICAgICAgIGlmIChsID09IDApCisgICAg
ICAgICAgICAgICAgdG9IaWRlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICB0b0hpZGUuc3R5bGUuZGlzcGxheSA9ICdoaWRkZW4nOwor
CisgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuZGlzcGxheSA9ICcnOworCisgICAgICAgICAg
ICAgIGlmIChqID09IDApCisgICAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPSAo
bWF4WkluZGV4ICsgMSkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgZWxzZSBpZiAoaiA9PSAx
KQorICAgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gKG1pblpJbmRleCAtIDEp
LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gMikKKyAgICAgICAgICAg
ICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1heFpJbmRleC50b1N0cmluZygpOworICAgICAg
ICAgICAgICBlbHNlIGlmIChqID09IDMpCisgICAgICAgICAgICAgICAgc2libGluZy5zdHlsZS56
SW5kZXggPSBtaW5aSW5kZXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gKChtaW5aSW5kZXggKyBtYXhaSW5kZXgp
IC8gMikudG9TdHJpbmcoKTsKKworICAgICAgICAgICAgICAvLyBOb3RlLCB3ZSBkb24ndCBpbmNy
ZW1lbnQgY291bnQgZm9yIGVhY2ggbDsgY2hhbmdlcyBpbiBsIG9ubHkKKyAgICAgICAgICAgICAg
Ly8gY2hhbmdlIHdoZXRoZXIgb3Igbm90IHdlIHVzZSBkaXNwbGF5OmhpZGRlbiBhbmQgZGlzcGxh
eTpub25lLAorICAgICAgICAgICAgICAvLyBzbyB0aGUgcmVzdWx0IHNob3VsZCBiZSB0aGUgc2Ft
ZS4KKyAgICAgICAgICAgICAgcHJpbnRSZXN1bHQoZXhwZWN0ZWRfcmVzdWx0c1tjb3VudF0pOwor
ICAgICAgICAgICAgfSAvLyBmb3IgbAorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICB9
IC8vIGZvciBrCisgICAgICAgIH0gLy8gZm9yIGoKKyAgICAgIH0gLy8gZm9yIGkKKworICAgICAg
Ly8gTm93IGNoZWNrIHRoYXQgd2UgZG9uJ3QgcHJvbW90ZSBpZiB3ZSBoYXZlIGFuIG91dCBvZiBm
bG93IGRlc2NlbmRhbnQuCisgICAgICAvLyBXZSBuZWVkIHRvIGhpZGUgdGhlIHByZWRlY2Vzc29y
IGFuZCBzdWNjZXNzb3Igc28gdGhleSBkb24ndCBpbnRlcmZlcmUKKyAgICAgIC8vIHdpdGggdGhp
cyBleHBlcmltZW50LgorICAgICAgcHJlZGVjZXNzb3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJzsK
KyAgICAgIHN1Y2Nlc3Nvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgZm9yIChpID0g
MDsgaSA8IDM7ICsraSkgeworICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgZGVzY2Vu
ZGFudC5zdHlsZS5kaXNwbGF5ID0gJ2hpZGRlbic7CisgICAgICAgIH0gZWxzZSBpZiAoaSA9PSAx
KSB7CisgICAgICAgICAgZGVzY2VuZGFudC5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgZGVzY2VuZGFudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAg
ICAgICB9CisKKyAgICAgICAgcHJpbnRSZXN1bHQoZXhwZWN0ZWRfcmVzdWx0c1tjb3VudF0pOwor
ICAgICAgICBjb3VudCsrOworICAgICAgfSAvLyBmb3IgaQorCisgICAgfSAvLyBmdW5jdGlvbiBk
b1Rlc3QKKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxz
ZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgPGRpdiBjbGFzcz0icG9zaXRp
b25lZCIgaWQ9InByZWRlY2Vzc29yIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBp
ZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9ImZpcnN0Q2hpbGQi
PjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0ic2Vjb25kQ2hpbGQiPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJkZXNjZW5kYW50Ij48L2Rpdj4KKyAg
PC9kaXY+CisgIDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJzdWNjZXNzb3IiPjwvZGl2Pgor
ICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179183</attachid>
            <date>2012-12-12 19:57:25 -0800</date>
            <delta_ts>2012-12-13 11:58:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121212225445.patch</filename>
            <type>text/plain</type>
            <size>51021</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMmIwNzQ2ZDMxZTE1NWQwNjIzN2I5Yjc0MWMyNGEwNzYzOTdlNDM0Li4w
MDYwNDM2OGMxZWE0ZTU0OTA1ZGQ2NDg4MjIwMjVkM2E3NjkzYmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsODkgQEAKKzIwMTItMTItMTIgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNj
cm9sbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTQ3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBjdXJyZW50bHkgdXNlIHRoZSBjb21wb3NpdGVkIHNjcm9sbGluZyBmYWNpbGl0aWVzIHByb3Zp
ZGVkIGJ5CisgICAgICAgIHdrYi51Zy85MTExNyBpZiB0aGUgb3ZlcmZsb3cgc2Nyb2xsIGJsb2Nr
IGVsZW1lbnQgaXMgc3R5bGVkIHdpdGgKKyAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxp
bmc6IHRvdWNoLiBJZGVhbGx5LCB3ZSBjb3VsZCBhdXRvbWF0aWNhbGx5CisgICAgICAgIG9wdCBp
bnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGlmIGl0IGlzIHNhZmUgdG8gZG8gc28uIFRoaXMgY2Fu
IGFmZmVjdAorICAgICAgICBhbnRpYWxpYXNpbmcsIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGF1
dG9tYXRpY2FsbHkgb3B0aW5nIGluIGlzIG9ubHkKKyAgICAgICAgZW5hYmxlZCB2aWEgYSBzZXR0
aW5nLgorCisgICAgICAgIFRoZSB3YXkgSSBkZXRlcm1pbmUgaWYgaXQgaXMgc2FmZSBpcyBieSBj
aGVja2luZyB0aGF0IHotb3JkZXJpbmcgd2lsbAorICAgICAgICBub3QgYmUgYWZmZWN0ZWQgaWYg
dGhlIG92ZXJmbG93IHNjcm9sbGFibGUgZWxlbWVudCB3ZXJlIHByb21vdGVkIHRvIGEKKyAgICAg
ICAgc3RhY2tpbmcgY29udGV4dCAoZGV0YWlscyBiZWxvdyksIGFuZCB0aGF0IGNsaXBwaW5nIG91
ciBzY3JvbGxpbmcKKyAgICAgICAgZGVzY2VuZGFudHMgd2lsbCBub3QgYWZmZWN0IHJlbmRlcmlu
Zy4KKworICAgICAgICBUbyBjaGVjayB0aGUgZmlyc3QgY29uZGl0aW9uICh0aGF0IHotb3JkZXJp
bmcgd2lsbCBub3QgYmUgYWZmZWN0ZWQpLgorICAgICAgICBJIGVuc3VyZSB0aGF0IHRoZSBjYW5k
aWRhdGUgZWxlbWVudCBhbmQgYWxsIGl0cyBkZXNjZW5kYW50cyBhcHBlYXIgYXMgYSAKKyAgICAg
ICAgY29udGludW91cyBibG9jayBpbiB0aGUgY2FuZGlkYXRlJ3Mgc3RhY2tpbmcgY29udGV4dC4g
VGhhdCBpcywgaWYgbm8gCisgICAgICAgIG90aGVyIGVsZW1lbnRzIGFyZSAnYmV0d2VlbicgYW55
IG9mIHRoZSBjYW5kaWRhdGVzIGRlc2NlbmRhbnRzIHdoZW4gd2UKKyAgICAgICAgc29ydCBpbiBw
YWludCBvcmRlciwgdGhlbiB3ZSdyZSBzYWZlLiBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRpdmUs
CisgICAgICAgIGhvd2V2ZXIuIFdlIGNvdWxkLCBpbiBmdXR1cmUsIG9ubHkgY29uc2lkZXIgc3Rh
Y2tpbmcgcHJvYmxlbXMgYmV0d2VlbgorICAgICAgICBlbGVtZW50cyB0aGF0IGFjdHVhbGx5IG92
ZXJsYXAuCisKKyAgICAgICAgVG8gZW5zdXJlIHRoYXQgY2xpcHBpbmcgd2lsbCBub3QgY2F1c2Ug
YSByZW5kZXJpbmcgY2hhbmdlLCBJIGVuc3VyZQorICAgICAgICB0aGF0IHRoZSBsYXllciBoYXMg
bm8gb3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50IHdob3NlCisgICAgICAgIGNvbnRh
aW5pbmcgYmxvY2sgaXMgbm90IGFsc28gYSBkZXNjZW5kYW50IG9mIG91cnMuCisKKyAgICAgICAg
VGVzdDogY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3Np
dGluZy1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFu
dHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjp1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXJSZWN1
cnNpdmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRp
b25zQWZ0ZXJPdmVyZmxvd1Njcm9sbCk6CisgICAgICAgICAgQWxsb3dzIHVzIHRvIHBvc2l0aW9u
IG5ld2x5IGNyZWF0ZWQgb3ZlcmZsb3cgc2Nyb2xsIGNvbnRyb2xzLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQpOgorICAg
ICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgUmVuZGVyTGF5ZXIgY291bGQgYmVjb21lIGEgc3Rh
Y2tpbmcgY29udGV4dCB3aXRob3V0CisgICAgICAgICAgYWZmZWN0aW5nIHRoZSBzdGFja2luZyBv
cmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50RGVw
ZW5kZW50RmxhZ3MpOgorICAgICAgICAgIFdlIG5vdyBuZWVkIHRvIGtlZXAgdHJhY2sgb2Ygb3V0
IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjphZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVtb3Zl
Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Ny
b2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRhdGVkIHRvIHJldHVybiB0cnVlIGlmIGl0
IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcKKyAgICAgICAgICBjb250ZXh0LCBhbmQg
dGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1
cm5zIHRydWUgaWYgd2Ugd291bGQgbGlrZSB0byB1c2UgY29tcG9zaXRlZAorICAgICAgICAgIHNj
cm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVOZWVkc0NvbXBv
c2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KToKKyAgICAg
ICAgICBTaW5jZSB0aGVzZSBjb3VsZCBhZmZlY3Qgb3B0aW5nIGludG8gY29tcG9zaXRlZCBzY3Jv
bGxpbmcsIHdlIG11c3QKKyAgICAgICAgICByZXF1ZXN0IHRoYXQgdGhlIFJlbmRlckxheWVyQ29t
cG9zaXRvciByZWV2YWx1YXRlIGNvbXBvc2l0aW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCk6CisgICAgICAgICAgV2UgY2FsbCB1cGRh
dGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQgaGVyZSwgaWYgbmVjZXNzYXJ5Lgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNob3VsZEJlU2VsZlBhaW50aW5nTGF5ZXIp
OgorICAgICAgICAgIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nIC0+IG5lZWRzQ29tcG9zaXRlZFNj
cm9sbGluZworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNldEFuY2VzdG9yQ2hhaW5I
YXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRh
bnRTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZU91dE9mRmxv
d1Bvc2l0aW9uZWQpOgorICAgICAgICAgIERpcnRpZXMgYW5kIHNldHMgdGhlIG91dCBvZiBmbG93
IHBvc2l0aW9uZWQgZGVzY2VuZGFudCBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJDb3Jl
OjpsYXllck9yQW5jZXN0b3JJc1RyYW5zZm9ybWVkT3JVc2luZ0NvbXBvc2l0ZWRTY3JvbGxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xh
eWVyQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
Omhhc1VucG9zaXRpb25lZE92ZXJmbG93Q29udHJvbHNMYXllcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMp
OgorICAgICAgICAgIFdlIG5vdyBlbnN1cmUgdGhhdCBuZXdseSBjcmVhdGVkIG92ZXJmbG93IHNj
cm9sbCBjb250cm9scyBnZXQKKyAgICAgICAgICBwb3NpdGlvbmVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRT
aG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGlu
Z3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwpOgorICAgICAgICAgIEFs
bG93cyBlbmFibGluZyB0aGUgc2V0dGluZyBpbiBsYXlvdXQgdGVzdHMuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKElu
dGVybmFsU2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6
CisKIDIwMTItMTItMDkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBj
b2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtTb3VwXSB1dGlsaXplIG11bHRpcGFydC94LW1peGVk
LXJlcGxhY2Ugc3VwcG9ydCByZWNlbnRseSBhZGRlZCB0byBsaWJzb3VwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAyYzllNTBkYzE0Y2VmMWU1MjRlNGVmZmU1
N2E0ODEwNmEwMWQxZTQ3Li45M2M4MjU1OWUxZmM3NTgxOWY4MGY0NDM1ZmRmYzNkOTdmMzBkNWQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE0Nyw2ICsx
NDcsMTAgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlbmRlcmVyKQogICAgICwgbV9ub3JtYWxGbG93TGlzdERpcnR5KHRydWUpCiAgICAgLCBtX2hh
c1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1faGFzU2VsZlBhaW50
aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkoZmFsc2UpCisgICAgLCBtX2hhc091dE9mRmxvd1Bvc2l0
aW9uZWREZXNjZW5kYW50KGZhbHNlKQorICAgICwgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVz
Y2VuZGFudERpcnR5KGZhbHNlKQorICAgICwgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoZmFs
c2UpCisgICAgLCBtX2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcihmYWxz
ZSkKICAgICAsIG1faXNSb290TGF5ZXIocmVuZGVyZXItPmlzUmVuZGVyVmlldygpKQogICAgICwg
bV91c2VkVHJhbnNwYXJlbmN5KGZhbHNlKQogICAgICwgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rp
b24oZmFsc2UpCkBAIC00NzAsNiArNDc0LDE2NiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eUFu
Y2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnRTdGF0dXMoKQogICAgIH0K
IH0KIAorYm9vbCBSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCktPmZyYW1lKCkK
KyAgICAgICAgJiYgcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpCisgICAgICAgICYmIHJlbmRl
cmVyKCktPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpOworfQorCisvLyBJZiB3ZSBhcmUgYSBzdGFja2lu
ZyBjb250ZXh0LCB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBkZXRlcm1pbmUgaWYgb3VyCisvLyBk
ZXNjZW5kYW50cyBmb3IgYSBjb250aWd1b3VzIGJsb2NrIGluIHN0YWNraW5nIG9yZGVyLiBUaGlz
IGlzIHJlcXVpcmVkIGluCisvLyBvcmRlciBmb3IgYW4gZWxlbWVudCB0byBiZSBzYWZlbHkgcHJv
bW90ZWQgdG8gYSBzdGFja2luZyBjb250ZXh0LiBJdCBpcyBzYWZlCisvLyB0byBiZWNvbWUgYSBz
dGFja2luZyBjb250ZXh0IGlmIHRoaXMgY2hhbmdlIHdvdWxkIG5vdCBhbHRlciB0aGUgc3RhY2tp
bmcKKy8vIG9yZGVyIG9mIGxheWVycyBvbiB0aGUgcGFnZS4gVGhhdCBjYW4gb25seSBoYXBwZW4g
aWYgYSBub24tZGVzY2VuZGFudCBhcHBlYXIKKy8vIGJldHdlZW4gdXMgYW5kIG91ciBkZXNjZW5k
YW50cyBpbiBzdGFja2luZyBvcmRlci4gSGVyZSdzIGFuIGV4YW1wbGU6CisvLworLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzCisvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyAgfCAgXC4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgICBC
ICAgQworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvXCAgIHwgICAvXC4KKy8vICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwIC04ICBEICAyICA3CisvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDUKKy8vCisvLyBJJ3ZlIGxhYmVsZWQgb3VyIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIEEs
IEIsIEMsIGFuZCBELCBvdXIgc3RhY2tpbmcKKy8vIGNvbnRleHQgZGVzY2VuZGFudHMgd2l0aCB0
aGVpciB6IGluZGljZXMsIGFuZCB1cyB3aXRoICd0aGlzJyAod2UncmUgYQorLy8gc3RhY2tpbmcg
Y29udGV4dCBhbmQgb3VyIHpJbmRleCBkb2Vzbid0IG1hdHRlciBoZXJlKS4gVGhlc2Ugbm9kZXMg
YXBwZWFyIGluCisvLyB0aHJlZSBsaXN0czogcG9zWk9yZGVyLCBuZWdaT3JkZXIsIGFuZCBub3Jt
YWwgZmxvdyAoa2VlcCBpbiBtaW5kIHRoYXQgbm9ybWFsCisvLyBmbG93IGxheWVycyBkb24ndCBv
dmVybGFwKS4gU28gaWYgd2UgYXJyYW5nZSB0aGVzZSBsaXN0cyBpbiBvcmRlciB3ZSBnZXQgb3Vy
CisvLyBzdGFja2luZyBvcmRlcjoKKy8vCisvLyAgICAgICAgICAgICAgICAgICAgIFstOF0sIFtB
LURdLCBbMCwgMiwgNSwgN10tLT4gcG9zIHotb3JkZXIuCisvLyAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAgfAorLy8gICAgICAgIE5lZyB6LW9yZGVyLiA8LSsgICAgICstLT4gTm9ybWFsIGZs
b3cgZGVzY2VuZGFudHMuCisvLworLy8gV2UgY2FuIHRoZW4gYXNzaWduIG5ldywgJ3N0YWNraW5n
JyBvcmRlciBpbmRpY2VzIHRvIHRoZXNlIGVsZW1lbnRzIGFzIGZvbGxvd3M6CisvLworLy8gICAg
ICAgICAgICAgICAgICAgICBbLThdLCBbQS1EXSwgWzAsIDIsIDUsIDddCisvLyAnU3RhY2tpbmcn
IGluZGljZXM6ICAtMSAgICAgMCAgICAgMSAgMiAgMyAgNAorLy8KKy8vIE5vdGUgdGhhdCB0aGUg
bm9ybWFsIGZsb3cgZGVzY2VuZGFudHMgY2FuIHNoYXJlIGFuIGluZGV4IGJlY2F1c2UgdGhleSBk
b24ndAorLy8gc3RhY2svb3ZlcmxhcC4gTm93IG91ciBwcm9ibGVtIGJlY29tZXMgdmVyeSBzaW1w
bGU6IGEgbGF5ZXIgY2FuIHNhZmVseSBiZWNvbWUKKy8vIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0
aGUgc3RhY2tpbmctb3JkZXIgaW5kaWNlcyBvZiBpdCBhbmQgaXRzIGRlc2NlbmRhbnRzCisvLyBh
cHBlYXIgaW4gYSBjb250aWd1b3VzIGJsb2NrIGluIHRoZSBsaXN0IG9mIHN0YWNraW5nIGluZGlj
ZXMuIFRoaXMgcHJvYmxlbQorLy8gY2FuIGJlIHNvbHZlZCB2ZXJ5IGVmZmljaWVudGx5IGJ5IGNh
bGN1bGF0aW5nIHRoZSBtaW4vbWF4IHN0YWNraW5nIGluZGljZXMgaW4KKy8vIHRoZSBzdWJ0cmVl
LCBhbmQgdGhlIG51bWJlciBzdGFja2luZyBjb250ZXh0IGRlc2NlbmRhbnRzLiBPbmNlIHdlIGhh
dmUgdGhpcworLy8gaW5mb3JtYXRpb24sIHdlIGtub3cgdGhhdCB0aGUgc3VidHJlZSdzIGluZGlj
ZXMgZm9ybSBhIGNvbnRpZ3VvdXMgYmxvY2sgaWY6CisvLworLy8gICAgICAgICAgIG1heFN0YWNr
SW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMKKy8vCisvLyBTbyBmb3Ig
bm9kZSBBIGluIHRoZSBleGFtcGxlIGFib3ZlIHdlIHdvdWxkIGhhdmU6CisvLyAgIG1heFN0YWNr
SW5kZXggPSAxCisvLyAgIG1pblN0YWNrSW5kZXggPSAtMQorLy8gICBudW1TQ0RlY2VuZGFudHMg
PSAyCisvLworLy8gYW5kIHNvLAorLy8gICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5k
ZXggPT0gbnVtU0NEZXNjZW5kYW50cworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgMSAt
ICgtMSkgPT0gMgorLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgPT0gMgor
Ly8KKy8vICBTaW5jZSB0aGlzIGlzIHRydWUsIEEgY2FuIHNhZmVseSBiZWNvbWUgYSBzdGFja2lu
ZyBjb250ZXh0LgorLy8gIE5vdywgZm9yIG5vZGUgQyB3ZSBoYXZlOgorLy8KKy8vICAgbWF4U3Rh
Y2tJbmRleCA9IDQKKy8vICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJlY2F1c2UgQyBoYXMgc3Rh
Y2tpbmcgaW5kZXggMC4KKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFuZCBzbywK
Ky8vICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFu
dHMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgIDQgLSAwID09IDIKKy8vICA9PT0+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ID09IDIKKy8vCisvLyBTaW5jZSB0aGlzIGlz
IGZhbHNlLCBDIGNhbm5vdCBiZSBzYWZlbHkgcHJvbW90ZWQgdG8gYSBzdGFja2luZyBjb250ZXh0
LiBUaGlzCisvLyBoYXBwZW5lZCBiZWNhdXNlIG9mIHRoZSBlbGVtZW50cyB3aXRoIHotaW5kZXgg
NSBhbmQgMC4gTm93IGlmIDUgaGFkIGJlZW4gYQorLy8gY2hpbGQgb2YgQyByYXRoZXIgdGhhbiBE
LCBhbmQgQSBoYWQgbm8gY2hpbGQgd2l0aCBaIGluZGV4IDAsIHdlIHdvdWxkIGhhdmUgaGFkOgor
Ly8KKy8vICAgbWF4U3RhY2tJbmRleCA9IDMKKy8vICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJl
Y2F1c2UgQyBoYXMgc3RhY2tpbmcgaW5kZXggMC4KKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMwor
Ly8KKy8vIGFuZCBzbywKKy8vICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09
IG51bVNDRGVzY2VuZGFudHMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgIDMgLSAw
ID09IDMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzID09IDMKKy8vCisv
LyAgQW5kIHdlIHdvdWxkIGNvbmNsdWRlIHRoYXQgQyBjb3VsZCBiZSBwcm9tb3RlZC4KK3ZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRl
cigpCit7CisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IEFTU0VSVCghbV9ub3JtYWxGbG93TGlzdERpcnR5KTsKKyAgICBBU1NFUlQoIW1fek9yZGVyTGlz
dHNEaXJ0eSk7CisKKyAgICAvLyBDcmVhdGUgYSByZXZlcnNlIGxvb2t1cC4KKyAgICBIYXNoTWFw
PGNvbnN0IFJlbmRlckxheWVyKiwgaW50PiBsb29rdXA7CisKKyAgICBpZiAobV9uZWdaT3JkZXJM
aXN0KSB7CisgICAgICAgIGludCBzdGFja2luZ09yZGVySW5kZXggPSAtMTsKKyAgICAgICAgc2l6
ZV90IGxpc3RTaXplID0gbV9uZWdaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICAgICAgUmVuZGVyTGF5ZXIq
IGN1cnJlbnRMYXllciA9IG1fbmVnWk9yZGVyTGlzdC0+YXQobGlzdFNpemUgLSBpIC0gMSk7Cisg
ICAgICAgICAgICBpZiAoIWN1cnJlbnRMYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGxvb2t1cC5zZXQoY3VycmVudExheWVy
LCBzdGFja2luZ09yZGVySW5kZXgtLSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobV9w
b3NaT3JkZXJMaXN0KSB7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG1fcG9zWk9yZGVyTGlz
dC0+c2l6ZSgpOworICAgICAgICBpbnQgc3RhY2tpbmdPcmRlckluZGV4ID0gMTsKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5k
ZXJMYXllciogY3VycmVudExheWVyID0gbV9wb3NaT3JkZXJMaXN0LT5hdChpKTsKKyAgICAgICAg
ICAgIGlmICghY3VycmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5ZXIsIHN0YWNr
aW5nT3JkZXJJbmRleCsrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCBtaW5JbmRleCA9
IDA7CisgICAgaW50IG1heEluZGV4ID0gMDsKKyAgICBpbnQgY291bnQgPSAwOworICAgIGJvb2wg
Zmlyc3RJdGVyYXRpb24gPSB0cnVlOworICAgIHVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91
c0luU3RhY2tpbmdPcmRlclJlY3Vyc2l2ZShsb29rdXAsIG1pbkluZGV4LCBtYXhJbmRleCwgY291
bnQsIGZpcnN0SXRlcmF0aW9uKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2Vu
ZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyUmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8
Y29uc3QgUmVuZGVyTGF5ZXIqLCBpbnQ+JiBsb29rdXAsIGludCYgbWluSW5kZXgsIGludCYgbWF4
SW5kZXgsIGludCYgY291bnQsIGJvb2wgZmlyc3RJdGVyYXRpb24pCit7CisgICAgaWYgKGlzU3Rh
Y2tpbmdDb250ZXh0KCkgJiYgIWZpcnN0SXRlcmF0aW9uKSB7CisgICAgICAgIGlmIChsb29rdXAu
Y29udGFpbnModGhpcykpIHsKKyAgICAgICAgICAgIG1pbkluZGV4ID0gc3RkOjptaW4obWluSW5k
ZXgsIGxvb2t1cC5nZXQodGhpcykpOworICAgICAgICAgICAgbWF4SW5kZXggPSBzdGQ6Om1heCht
YXhJbmRleCwgbG9va3VwLmdldCh0aGlzKSk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAg
ICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKFJlbmRlckxheWVyKiBjaGls
ZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
KyAgICAgICAgaW50IGNoaWxkTWluSW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRNYXhJbmRl
eCA9IDA7CisgICAgICAgIGludCBjaGlsZENvdW50ID0gMDsKKyAgICAgICAgY2hpbGQtPnVwZGF0
ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlclJlY3Vyc2l2ZShsb29rdXAs
IGNoaWxkTWluSW5kZXgsIGNoaWxkTWF4SW5kZXgsIGNoaWxkQ291bnQsIGZhbHNlKTsKKyAgICAg
ICAgaWYgKGNoaWxkQ291bnQpIHsKKyAgICAgICAgICAgIGNvdW50ICs9IGNoaWxkQ291bnQ7Cisg
ICAgICAgICAgICBtaW5JbmRleCA9IHN0ZDo6bWluKG1pbkluZGV4LCBjaGlsZE1pbkluZGV4KTsK
KyAgICAgICAgICAgIG1heEluZGV4ID0gc3RkOjptYXgobWF4SW5kZXgsIGNoaWxkTWF4SW5kZXgp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpKSB7Cisg
ICAgICAgIGJvb2wgbmV3VmFsdWUgPSBtYXhJbmRleCAtIG1pbkluZGV4ID09IGNvdW50OworI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgYm9vbCBkaWRVcGRhdGUgPSBu
ZXdWYWx1ZSAhPSBtX2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcjsKKyNl
bmRpZgorICAgICAgICBtX2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlciA9
IG5ld1ZhbHVlOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgaWYg
KGRpZFVwZGF0ZSkKKyAgICAgICAgICAgIHVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygp
OworI2VuZGlmCisgICAgfQorfQorCiB2b2lkIFJlbmRlckxheWVyOjpjb21wdXRlUmVwYWludFJl
Y3RzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0
IFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1hcCkKIHsKICAgICBBU1NFUlQoIW1fdmlzaWJs
ZUNvbnRlbnRTdGF0dXNEaXJ0eSk7CkBAIC01MDcsMTYgKzY3MSwzMCBAQCB2b2lkIFJlbmRlckxh
eWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwoKQogICAgIHVwZGF0
ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwoJmdlb21ldHJ5TWFwKTsKIH0KIAotdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlck92ZXJmbG93U2Nyb2xsKCkKK3ZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJPdmVyZmxvd1Njcm9sbChib29s
IG5ld2x5UHJvbW90ZWQpCiB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAg
IGlmICghdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSAmJiBuZXdseVByb21vdGVkKQorICAgICAg
ICByZXR1cm47CisjZW5kaWYKKwogICAgIFJlbmRlckdlb21ldHJ5TWFwIGdlb21ldHJ5TWFwKFVz
ZVRyYW5zZm9ybXMpOwogICAgIFJlbmRlclZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCk7
CiAgICAgaWYgKHRoaXMgIT0gdmlldy0+bGF5ZXIoKSkKICAgICAgICAgZ2VvbWV0cnlNYXAucHVz
aE1hcHBpbmdzVG9BbmNlc3RvcihwYXJlbnQoKSwgMCk7CiAKLSAgICAvLyBGSVhNRTogd2h5IGlz
IGl0IE9LIHRvIG5vdCBjaGVjayB0aGUgYW5jZXN0b3JzIG9mIHRoaXMgbGF5ZXIgaW4gb3JkZXIg
dG8KLSAgICAvLyBpbml0aWFsaXplIHRoZSBIYXNTZWVuVmlld3BvcnRDb25zdHJhaW5lZEFuY2Vz
dG9yIGFuZCBIYXNTZWVuQW5jZXN0b3JXaXRoT3ZlcmZsb3dDbGlwIGZsYWdzPwotICAgIHVwZGF0
ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwoJmdlb21ldHJ5TWFwLCBJc092ZXJmbG93U2Nyb2xs
KTsKKyAgICBpZiAobmV3bHlQcm9tb3RlZCkgeworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyAgICAgICAgTGF5b3V0UG9pbnQgb2Zmc2V0RnJvbVJvb3QgPSBMYXlvdXRQb2ludChn
ZW9tZXRyeU1hcC5hYnNvbHV0ZVBvaW50KEZsb2F0UG9pbnQoKSkpOworICAgICAgICBpZiAoIWJh
Y2tpbmcoKS0+aGFzVW5wb3NpdGlvbmVkT3ZlcmZsb3dDb250cm9sc0xheWVycygpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBwb3NpdGlvbk92ZXJmbG93Q29udHJvbHModG9TaXplKHJv
dW5kZWRJbnRQb2ludChvZmZzZXRGcm9tUm9vdCkpKTsKKyNlbmRpZgorICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIEZJWE1FOiB3aHkgaXMgaXQgT0sgdG8gbm90IGNoZWNrIHRoZSBhbmNlc3RvcnMg
b2YgdGhpcyBsYXllciBpbiBvcmRlciB0bworICAgICAgICAvLyBpbml0aWFsaXplIHRoZSBIYXNT
ZWVuVmlld3BvcnRDb25zdHJhaW5lZEFuY2VzdG9yIGFuZCBIYXNTZWVuQW5jZXN0b3JXaXRoT3Zl
cmZsb3dDbGlwIGZsYWdzPworICAgICAgICB1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xs
KCZnZW9tZXRyeU1hcCwgSXNPdmVyZmxvd1Njcm9sbCk7CisgICAgfQogfQogCiB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKFJlbmRlckdlb21ldHJ5TWFw
KiBnZW9tZXRyeU1hcCwgVXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbEZsYWdzIGZsYWdz
KQpAQCAtNzA2LDYgKzg4NCwxNCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9u
KCkKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFj
a2luZ0NvbnRleHQoKSBjb25zdAoreworICAgIGlmIChpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFz
dGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gbV9k
ZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXI7Cit9CisKIHZvaWQgUmVuZGVy
TGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KCkKIHsgCiAgICAgaWYgKG1faGFzVmlzaWJsZUNv
bnRlbnQgJiYgIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAtNzU5LDI1ICs5NDUs
NTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0QW5jZXN0b3JDaGFpbkhhc1Zpc2libGVEZXNjZW5k
YW50KCkKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBl
bmRlbnRGbGFncygpCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50
RmxhZ3MoSGFzaFNldDxjb25zdCBSZW5kZXJPYmplY3QqPiogb3V0T2ZGbG93RGVzY2VuZGFudENv
bnRhaW5pbmdCbG9ja3MpCiB7Ci0gICAgaWYgKG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0
eSB8fCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5KSB7CisgICAgaWYgKG1f
dmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSB8fCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVz
Y2VuZGFudERpcnR5IHx8IG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSkg
eworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgYm9vbCBvbGRIYXNP
dXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCA9IG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERl
c2NlbmRhbnQ7CisjZW5kaWYKICAgICAgICAgbV9oYXNWaXNpYmxlRGVzY2VuZGFudCA9IGZhbHNl
OwogICAgICAgICBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCA9IGZhbHNlOworICAg
ICAgICBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50ID0gZmFsc2U7CisKKyAgICAg
ICAgSGFzaFNldDxjb25zdCBSZW5kZXJPYmplY3QqPiBjaGlsZE91dE9mRmxvd0Rlc2NlbmRhbnRD
b250YWluaW5nQmxvY2tzOwogICAgICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAg
ICAgIGNoaWxkLT51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsKKyAgICAgICAgICAg
IGNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MuY2xlYXIoKTsKKyAgICAg
ICAgICAgIGNoaWxkLT51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoJmNoaWxkT3V0T2ZG
bG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MpOworCisgICAgICAgICAgICBib29sIGNoaWxk
SXNPdXRPZkZsb3dQb3NpdGlvbmVkID0gY2hpbGQtPnJlbmRlcmVyKCkgJiYgY2hpbGQtPnJlbmRl
cmVyKCktPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpOworICAgICAgICAgICAgaWYgKGNoaWxkSXNP
dXRPZkZsb3dQb3NpdGlvbmVkKQorICAgICAgICAgICAgICAgIGNoaWxkT3V0T2ZGbG93RGVzY2Vu
ZGFudENvbnRhaW5pbmdCbG9ja3MuYWRkKGNoaWxkLT5yZW5kZXJlcigpLT5jb250YWluaW5nQmxv
Y2soKSk7CisKKyAgICAgICAgICAgIGlmIChvdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Js
b2NrcykgeworICAgICAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgUmVuZGVyT2JqZWN0Kj46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gY2hpbGRPdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2Nr
cy5iZWdpbigpOworICAgICAgICAgICAgICAgIGZvciAoOyBpdCAhPSBjaGlsZE91dE9mRmxvd0Rl
c2NlbmRhbnRDb250YWluaW5nQmxvY2tzLmVuZCgpOyArK2l0KQorICAgICAgICAgICAgICAgICAg
ICBvdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2Nrcy0+YWRkKCppdCk7CisgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGJvb2wgaGFzVmlzaWJsZURlc2NlbmRhbnQgPSBjaGlsZC0+
bV9oYXNWaXNpYmxlQ29udGVudCB8fCBjaGlsZC0+bV9oYXNWaXNpYmxlRGVzY2VuZGFudDsKICAg
ICAgICAgICAgIGJvb2wgaGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50ID0gY2hpbGQtPmlz
U2VsZlBhaW50aW5nTGF5ZXIoKSB8fCBjaGlsZC0+aGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5k
YW50KCk7CisgICAgICAgICAgICBib29sIGhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50
ID0gIWNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MuaXNFbXB0eSgpOwog
CiAgICAgICAgICAgICBtX2hhc1Zpc2libGVEZXNjZW5kYW50IHw9IGhhc1Zpc2libGVEZXNjZW5k
YW50OwogICAgICAgICAgICAgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQgfD0gaGFz
U2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50OworICAgICAgICAgICAgbV9oYXNPdXRPZkZsb3dQ
b3NpdGlvbmVkRGVzY2VuZGFudCB8PSBoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudDsK
IAotICAgICAgICAgICAgaWYgKG1faGFzVmlzaWJsZURlc2NlbmRhbnQgJiYgbV9oYXNTZWxmUGFp
bnRpbmdMYXllckRlc2NlbmRhbnQpCisgICAgICAgICAgICBpZiAobV9oYXNWaXNpYmxlRGVzY2Vu
ZGFudCAmJiBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCAmJiBtX2hhc091dE9mRmxv
d1Bvc2l0aW9uZWREZXNjZW5kYW50KQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CisKKyAgICAgICAgaWYgKG91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzICYmIHJl
bmRlcmVyKCkpCisgICAgICAgICAgICBvdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2Nr
cy0+cmVtb3ZlKHJlbmRlcmVyKCkpOworCiAgICAgICAgIG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0
dXNEaXJ0eSA9IGZhbHNlOwogICAgICAgICBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFu
dERpcnR5ID0gZmFsc2U7CisgICAgICAgIG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRh
bnREaXJ0eSA9IGZhbHNlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAg
ICAgICBpZiAob2xkSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQgIT0gbV9oYXNPdXRP
ZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCkKKyAgICAgICAgICAgIHVwZGF0ZU5lZWRzQ29tcG9z
aXRlZFNjcm9sbGluZygpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKG1fdmlzaWJsZUNvbnRl
bnRTdGF0dXNEaXJ0eSkgewpAQCAtMTM3OCw2ICsxNTkzLDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6
YWRkQ2hpbGQoUmVuZGVyTGF5ZXIqIGNoaWxkLCBSZW5kZXJMYXllciogYmVmb3JlQ2hpbGQpCiAg
ICAgaWYgKGNoaWxkLT5pc1NlbGZQYWludGluZ0xheWVyKCkgfHwgY2hpbGQtPmhhc1NlbGZQYWlu
dGluZ0xheWVyRGVzY2VuZGFudCgpKQogICAgICAgICBzZXRBbmNlc3RvckNoYWluSGFzU2VsZlBh
aW50aW5nTGF5ZXJEZXNjZW5kYW50KCk7CiAKKyAgICBpZiAoKGNoaWxkLT5yZW5kZXJlcigpICYm
IGNoaWxkLT5yZW5kZXJlcigpLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgfHwgY2hpbGQtPmhh
c091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KCkpCisgICAgICAgIHNldEFuY2VzdG9yQ2hh
aW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudChjaGlsZC0+cmVuZGVyZXIoKS0+Y29u
dGFpbmluZ0Jsb2NrKCkpOworCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IGNvbXBvc2l0b3IoKS0+bGF5ZXJXYXNBZGRlZCh0aGlzLCBjaGlsZCk7CiAjZW5kaWYKQEAgLTE0
MTAsNiArMTYyOCw5IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6cmVtb3ZlQ2hpbGQoUmVu
ZGVyTGF5ZXIqIG9sZENoaWxkKQogICAgICAgICBvbGRDaGlsZC0+ZGlydHlTdGFja2luZ0NvbnRl
eHRaT3JkZXJMaXN0cygpOwogICAgIH0KIAorICAgIGlmICgob2xkQ2hpbGQtPnJlbmRlcmVyKCkg
JiYgb2xkQ2hpbGQtPnJlbmRlcmVyKCktPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB8fCBvbGRD
aGlsZC0+aGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQoKSkKKyAgICAgICAgZGlydHlB
bmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnRTdGF0dXMoKTsKKwog
ICAgIG9sZENoaWxkLT5zZXRQcmV2aW91c1NpYmxpbmcoMCk7CiAgICAgb2xkQ2hpbGQtPnNldE5l
eHRTaWJsaW5nKDApOwogICAgIG9sZENoaWxkLT5zZXRQYXJlbnQoMCk7CkBAIC0xNjIyLDE0ICsx
ODQzLDM0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJl
bmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBMYXlvdXRSCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogYm9vbCBSZW5kZXJMYXllcjo6dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBj
b25zdAogeworICAgIHJldHVybiBpc0NvbXBvc2l0ZWQoKSAmJiBiYWNraW5nKCktPnNjcm9sbGlu
Z0xheWVyKCk7Cit9CisKK2Jvb2wgUmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGlu
ZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nOworfQor
Cit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKQorewor
ICAgIGJvb2wgb2xkTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nID0gbV9uZWVkc0NvbXBvc2l0ZWRT
Y3JvbGxpbmc7CisKICAgICBpZiAoIXNjcm9sbHNPdmVyZmxvdygpIHx8ICFhbGxvd3NTY3JvbGxp
bmcoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBtX25lZWRzQ29tcG9zaXRlZFNj
cm9sbGluZyA9IGZhbHNlOworICAgIGVsc2UgeworICAgICAgICBib29sIGZvcmNlVXNlQ29tcG9z
aXRlZFNjcm9sbGluZyA9IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQoKQorICAgICAgICAgICAgJiYgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4
dCgpCisgICAgICAgICAgICAmJiAhaGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQoKTsK
IAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCi0gICAgcmV0dXJu
IHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKTsKKyAgICAg
ICAgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcgPSBmb3JjZVVzZUNvbXBvc2l0ZWRTY3JvbGxp
bmcgfHwgcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpOwog
I2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbmVlZHNDb21wb3NpdGVkU2Nyb2xs
aW5nID0gZm9yY2VVc2VDb21wb3NpdGVkU2Nyb2xsaW5nOwogI2VuZGlmCisgICAgfQorCisgICAg
aWYgKG9sZE5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyAhPSBtX25lZWRzQ29tcG9zaXRlZFNjcm9s
bGluZykKKyAgICAgICAgdXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIoKTsKIH0KICNlbmRpZgogCkBA
IC0xNzkzLDggKzIwMzQsMTUgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oaW50IHgsIGlu
dCB5KQogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmRpc3BhdGNoRmFrZU1vdXNlTW92
ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50KTsKICAgICB9CiAKKyAg
ICBib29sIHJlcXVpcmVzUmVwYWludCA9IHRydWU7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisgICAgaWYgKGNvbXBvc2l0b3IoKS0+aW5Db21wb3NpdGluZ01vZGUoKSAmJiB1
c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgICAgICByZXF1aXJlc1JlcGFpbnQgPSBmYWxz
ZTsKKyNlbmRpZgorCiAgICAgLy8gSnVzdCBzY2hlZHVsZSBhIGZ1bGwgcmVwYWludCBvZiBvdXIg
b2JqZWN0LgotICAgIGlmICh2aWV3ICYmICF1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAg
IGlmICh2aWV3ICYmIHJlcXVpcmVzUmVwYWludCkKICAgICAgICAgcmVuZGVyZXIoKS0+cmVwYWlu
dFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHBpeGVsU25hcHBlZEludFJlY3QobV9y
ZXBhaW50UmVjdCkpOwogCiAgICAgLy8gU2NoZWR1bGUgdGhlIHNjcm9sbCBET00gZXZlbnQuCkBA
IC00Nzk2LDggKzUwNDQsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0cygp
CiAgICAgbV96T3JkZXJMaXN0c0RpcnR5ID0gdHJ1ZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLSAgICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQo
KSkKKyAgICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkgewogICAg
ICAgICBjb21wb3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKKyAg
ICAgICAgaWYgKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQo
KSkKKyAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0
aW5nQWZ0ZXJMYXlvdXQoKTsKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAtNDgxNyw4ICs1MDY4LDEx
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Tm9ybWFsRmxvd0xpc3QoKQogICAgIG1fbm9ybWFs
Rmxvd0xpc3REaXJ0eSA9IHRydWU7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0gICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgaWYg
KCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAgY29tcG9z
aXRvcigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CisgICAgICAgIGlmIChh
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAg
ICAgICBjb21wb3NpdG9yKCktPnNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5
b3V0KCk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTQ5MTYsNiArNTE3MCw4IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMoYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXJzLCBPd25QdHI8
VmVjdG9yPFJlbmRlckxhCiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5l
ZWRlZCgpCiB7CisgICAgYm9vbCBzaG91bGRVcGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJ
blN0YWNraW5nT3JkZXIgPSBpc1N0YWNraW5nQ29udGV4dCgpICYmIChtX3pPcmRlckxpc3RzRGly
dHkgfHwgbV9ub3JtYWxGbG93TGlzdERpcnR5KTsKKwogICAgIHVwZGF0ZVpPcmRlckxpc3RzKCk7
CiAgICAgdXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKIApAQCAtNDkyMyw2ICs1MTc5LDkgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCkKICAgICAgICAgcmVmbGVj
dGlvbkxheWVyLT51cGRhdGVaT3JkZXJMaXN0cygpOwogICAgICAgICByZWZsZWN0aW9uTGF5ZXIt
PnVwZGF0ZU5vcm1hbEZsb3dMaXN0KCk7CiAgICAgfQorCisgICAgaWYgKHNob3VsZFVwZGF0ZURl
c2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcikKKyAgICAgICAgdXBkYXRlRGVz
Y2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyKCk7CiB9CiAKIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nQW5kTGF5ZXJMaXN0c0lmTmVlZGVkKCkKQEAgLTUwMTAs
MTQgKzUyNjksMTQgQEAgYm9vbCBSZW5kZXJMYXllcjo6c2hvdWxkQmVOb3JtYWxGbG93T25seSgp
IGNvbnN0CiAgICAgICAgICAgICAmJiAhcmVuZGVyZXIoKS0+aGFzQmxlbmRNb2RlKCkKICNlbmRp
ZgogICAgICAgICAgICAgJiYgIWlzVHJhbnNwYXJlbnQoKQotICAgICAgICAgICAgJiYgIXVzZXND
b21wb3NpdGVkU2Nyb2xsaW5nKCk7CisgICAgICAgICAgICAmJiAhbmVlZHNDb21wb3NpdGVkU2Ny
b2xsaW5nKCk7CiB9CiAKIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3VsZEJlU2VsZlBhaW50aW5nTGF5
ZXIoKSBjb25zdAogewogICAgIHJldHVybiAhaXNOb3JtYWxGbG93T25seSgpCiAgICAgICAgIHx8
IGhhc092ZXJsYXlTY3JvbGxiYXJzKCkKLSAgICAgICAgfHwgdXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKQorICAgICAgICB8fCBuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKQogICAgICAgICB8fCBy
ZW5kZXJlcigpLT5oYXNSZWZsZWN0aW9uKCkKICAgICAgICAgfHwgcmVuZGVyZXIoKS0+aGFzTWFz
aygpCiAgICAgICAgIHx8IHJlbmRlcmVyKCktPmlzVGFibGVSb3coKQpAQCAtNTExMyw2ICs1Mzcy
LDQyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxlQ2hhbmdl
KGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKICAgICAgICAgdXBkYXRlU2Nyb2xsYWJsZUFy
ZWFTZXQoaGFzU2Nyb2xsYWJsZUhvcml6b250YWxPdmVyZmxvdygpIHx8IGhhc1Njcm9sbGFibGVW
ZXJ0aWNhbE92ZXJmbG93KCkpOwogfQogCit2b2lkIFJlbmRlckxheWVyOjpzZXRBbmNlc3RvckNo
YWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQoUmVuZGVyT2JqZWN0KiBjb250YWlu
aW5nQmxvY2spCit7CisgICAgZm9yIChSZW5kZXJMYXllciogbGF5ZXIgPSB0aGlzOyBsYXllcjsg
bGF5ZXIgPSBsYXllci0+cGFyZW50KCkpIHsKKyAgICAgICAgaWYgKCFsYXllci0+bV9oYXNPdXRP
ZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERpcnR5ICYmIGxheWVyLT5oYXNPdXRPZkZsb3dQb3Np
dGlvbmVkRGVzY2VuZGFudCgpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgbGF5ZXIt
Pm1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSA9IGZhbHNlOworICAgICAg
ICBsYXllci0+bV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCA9IHRydWU7CisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICBsYXllci0+dXBkYXRlTmVlZHND
b21wb3NpdGVkU2Nyb2xsaW5nKCk7CisjZW5kaWYKKworICAgICAgICBpZiAobGF5ZXItPnJlbmRl
cmVyKCkgJiYgbGF5ZXItPnJlbmRlcmVyKCkgPT0gY29udGFpbmluZ0Jsb2NrKQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIFJlbmRlckxheWVyOjpkaXJ0eUFuY2VzdG9yQ2hh
aW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudFN0YXR1cygpCit7CisgICAgbV9oYXNP
dXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERpcnR5ID0gdHJ1ZTsKKyAgICBpZiAocGFyZW50
KCkpCisgICAgICAgIHBhcmVudCgpLT5kaXJ0eUFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3Np
dGlvbmVkRGVzY2VuZGFudFN0YXR1cygpOworfQorCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVP
dXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBi
b29sIHdhc091dE9mRmxvd1Bvc2l0aW9uZWQgPSBvbGRTdHlsZSAmJiAob2xkU3R5bGUtPnBvc2l0
aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbiB8fCBvbGRTdHlsZS0+cG9zaXRpb24oKSA9PSBGaXhl
ZFBvc2l0aW9uKTsKKyAgICBpZiAocGFyZW50KCkgJiYgKChyZW5kZXJlcigpICYmIHJlbmRlcmVy
KCktPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSAhPSB3YXNPdXRPZkZsb3dQb3NpdGlvbmVkKSkg
eworICAgICAgICBwYXJlbnQoKS0+ZGlydHlBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRp
b25lZERlc2NlbmRhbnRTdGF0dXMoKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgICAgIGlmICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpICYmIGFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKKyAgICAgICAg
ICAgIGNvbXBvc2l0b3IoKS0+c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlv
dXQoKTsKKyNlbmRpZgorICAgIH0KK30KKwogdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2Vk
KFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogewogICAgIGJv
b2wgaXNOb3JtYWxGbG93T25seSA9IHNob3VsZEJlTm9ybWFsRmxvd09ubHkoKTsKQEAgLTUxMzMs
MTEgKzU0MjgsMTIgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogICAgICAgICBtX21hcnF1ZWUuY2xl
YXIoKTsKICAgICB9CiAKLSAgICB1cGRhdGVTdGFja2luZ0NvbnRleHRzQWZ0ZXJTdHlsZUNoYW5n
ZShvbGRTdHlsZSk7CiAgICAgdXBkYXRlU2Nyb2xsYmFyc0FmdGVyU3R5bGVDaGFuZ2Uob2xkU3R5
bGUpOworICAgIHVwZGF0ZVN0YWNraW5nQ29udGV4dHNBZnRlclN0eWxlQ2hhbmdlKG9sZFN0eWxl
KTsKICAgICAvLyBPdmVybGF5IHNjcm9sbGJhcnMgY2FuIG1ha2UgdGhpcyBsYXllciBzZWxmLXBh
aW50aW5nIHNvIHdlIG5lZWQKICAgICAvLyB0byByZWNvbXB1dGUgdGhlIGJpdCBvbmNlIHNjcm9s
bGJhcnMgaGF2ZSBiZWVuIHVwZGF0ZWQuCiAgICAgdXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIoKTsK
KyAgICB1cGRhdGVPdXRPZkZsb3dQb3NpdGlvbmVkKG9sZFN0eWxlKTsKIAogICAgIGlmICghaGFz
UmVmbGVjdGlvbigpICYmIG1fcmVmbGVjdGlvbikKICAgICAgICAgcmVtb3ZlUmVmbGVjdGlvbigp
OwpAQCAtNTE2Niw2ICs1NDYyLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0
eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogI2VuZGlmCiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVk
U2Nyb2xsaW5nKCk7CiAgICAgaWYgKGNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJDb21wb3NpdGlu
Z1N0YXRlKHRoaXMpKQogICAgICAgICBjb21wb3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJz
TmVlZFJlYnVpbGQoKTsKICAgICBlbHNlIGlmIChvbGRTdHlsZSAmJiAob2xkU3R5bGUtPmNsaXAo
KSAhPSByZW5kZXJlcigpLT5zdHlsZSgpLT5jbGlwKCkgfHwgb2xkU3R5bGUtPmhhc0NsaXAoKSAh
PSByZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNDbGlwKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaAppbmRleCBkODZiZDMxODEwZjFmNTYwOWVlNzBkMGM0MjA0NmQ4ZWFjOWU2
ZDg1Li42MDBiNjE2NGE5MmE1YWFkZWZjODE0ZjE1Y2ZkMGExMzAwOTAwN2QxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDAxLDcgKzQwMSw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dChjb25zdCBSZW5kZXJM
YXllciogcm9vdExheWVyLCBVcGRhdGVMYXllclBvc2l0aW9uc0ZsYWdzKTsKIAotICAgIHZvaWQg
dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlck92ZXJmbG93U2Nyb2xsKCk7CisgICAgdm9pZCB1cGRh
dGVMYXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3JvbGwoYm9vbCBuZXdseVByb21vdGVkID0g
ZmFsc2UpOwogICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckRvY3VtZW50U2Nyb2xs
KCk7CiAgICAgCiAgICAgYm9vbCBpc1BhZ2luYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYWdp
bmF0ZWQ7IH0KQEAgLTQ2Myw2ICs0NjMsMTMgQEAgcHVibGljOgogICAgIC8vIFBhcnQgb2YgdGhl
IGlzc3VlIGlzIHdpdGggc3VidHJlZSByZWxheW91dDogd2UgZG9uJ3QgY2hlY2sgaWYgb3VyIGFu
Y2VzdG9ycyBoYXZlIHNvbWUgZGVzY2VuZGFudCBmbGFncyBkaXJ0eSwgbWlzc2luZyBzb21lIHVw
ZGF0ZXMuCiAgICAgYm9vbCBoYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKSBjb25zdCB7
IHJldHVybiBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudDsgfQogCisgICAgLy8gVGhp
cyByZXR1cm5zIHRydWUgaWYgd2UgaGF2ZSBhbiBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2Nl
bmRhbnQgd2hvc2UKKyAgICAvLyBjb250YWluaW5nIGJsb2NrIGlzIG5vdCBhIGRlc2NlbmRhbnQg
b2Ygb3Vycy4gSWYgdGhpcyBpcyB0cnVlLCB3ZSBjYW5ub3QKKyAgICAvLyBhdXRvbWF0aWNhbGx5
IG9wdCBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIHNpbmNlIHRoaXMgb3V0IG9mIGZsb3cKKyAg
ICAvLyBwb3NpdGlvbmVkIGRlc2NlbmRhbnQgd291bGQgYmVjb21lIGNsaXBwZWQgYnkgdXMsIHBv
c3NpYmx5IGFsdGVyaW5nIHRoZSAKKyAgICAvLyByZW5kZXJpbmcgb2YgdGhlIHBhZ2UuCisgICAg
Ym9vbCBoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQ7IH0KKwogICAgIC8vIEdldHMgdGhlIG5l
YXJlc3QgZW5jbG9zaW5nIHBvc2l0aW9uZWQgYW5jZXN0b3IgbGF5ZXIgKGFsc28gaW5jbHVkZXMK
ICAgICAvLyB0aGUgPGh0bWw+IGxheWVyIGFuZCB0aGUgcm9vdCBsYXllcikuCiAgICAgUmVuZGVy
TGF5ZXIqIGVuY2xvc2luZ1Bvc2l0aW9uZWRBbmNlc3RvcigpIGNvbnN0OwpAQCAtNjU1LDYgKzY2
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yVmVydGlj
YWxTY3JvbGxiYXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9y
U2Nyb2xsQ29ybmVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHVzZXNDb21wb3NpdGVkU2Ny
b2xsaW5nKCkgY29uc3QgT1ZFUlJJREU7CisgICAgYm9vbCBuZWVkc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKSBjb25zdDsKICNlbHNlCiAgICAgYm9vbCBpc0NvbXBvc2l0ZWQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgaGFzQ29tcG9zaXRlZE1hc2soKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQpAQCAtNzI0LDYgKzczMiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0QW5jZXN0
b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCgpOwogICAgIHZvaWQgZGlydHlB
bmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50U3RhdHVzKCk7CiAKKyAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBj
b25zdDsKKyAgICB2b2lkIHVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdP
cmRlcigpOworICAgIHZvaWQgdXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2lu
Z09yZGVyUmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8Y29uc3QgUmVuZGVyTGF5ZXIqLCBpbnQ+Jiwg
aW50JiBtaW5JbmRleCwgaW50JiBtYXhJbmRleCwgaW50JiBjb3VudCwgYm9vbCBmaXJzdEl0ZXJh
dGlvbik7CisKICAgICB2b2lkIGNvbXB1dGVSZXBhaW50UmVjdHMoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgUmVuZGVyR2VvbWV0cnlNYXAqID0g
MCk7CiAgICAgdm9pZCBjb21wdXRlUmVwYWludFJlY3RzSW5jbHVkaW5nRGVzY2VuZGFudHMoKTsK
ICAgICB2b2lkIGNsZWFyUmVwYWludFJlY3RzKCk7CkBAIC03NDAsNiArNzUyLDEzIEBAIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpOwogICAgIHZvaWQgdXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5b3V0
KCk7CiAKKyAgICB2b2lkIHNldEFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVz
Y2VuZGFudChSZW5kZXJPYmplY3QqIGNvbnRhaW5pbmdCbG9jayk7CisgICAgdm9pZCBkaXJ0eUFu
Y2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudFN0YXR1cygpOworICAg
IHZvaWQgdXBkYXRlT3V0T2ZGbG93UG9zaXRpb25lZChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpOworICAgIHZvaWQgdXBkYXRlSXNOb3JtYWxGbG93T25seSgpOworCisgICAgdm9pZCB1cGRh
dGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0
aGUgcG9zaXRpb24gY2hhbmdlZC4KICAgICBib29sIHVwZGF0ZUxheWVyUG9zaXRpb24oKTsKIApA
QCAtODc1LDcgKzg5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXJ0eUFuY2VzdG9yQ2hhaW5W
aXNpYmxlRGVzY2VuZGFudFN0YXR1cygpOwogICAgIHZvaWQgc2V0QW5jZXN0b3JDaGFpbkhhc1Zp
c2libGVEZXNjZW5kYW50KCk7CiAKLSAgICB2b2lkIHVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRG
bGFncygpOworICAgIHZvaWQgdXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKEhhc2hTZXQ8
Y29uc3QgUmVuZGVyT2JqZWN0Kj4qIG91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tz
ID0gMCk7CiAKICAgICAvLyBUaGlzIGZsYWcgaXMgY29tcHV0ZWQgYnkgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLCB3aGljaCBrbm93cyBtb3JlIGFib3V0IDNkIGhpZXJhcmNoaWVzIHRoYW4gd2UgZG8u
CiAgICAgdm9pZCBzZXRIYXMzRFRyYW5zZm9ybWVkRGVzY2VuZGFudChib29sIGIpIHsgbV9oYXMz
RFRyYW5zZm9ybWVkRGVzY2VuZGFudCA9IGI7IH0KQEAgLTkzMiw2ICs5NTEsOSBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbihJbmRpcmVjdENvbXBvc2l0
aW5nUmVhc29uIHJlYXNvbikgeyBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gPSByZWFzb247
IH0KICAgICBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
PihtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24pOyB9CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRl
Rm9ySW5kaXJlY3RSZWFzb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5n
UmVhc29uOyB9CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgeiBvcmRlcmluZyB3b3VsZCBub3Qg
Y2hhbmdlIGlmIHRoaXMgbGF5ZXIgd2VyZSB0byBlc3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0
LgorICAgIGJvb2wgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Owog
I2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwpAQCAtOTcyLDYg
Kzk5NCwxOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVz
Y2VuZGFudCA6IDE7CiAgICAgYm9vbCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERp
cnR5IDogMTsKIAorICAgIC8vIElmIHdlIGhhdmUgbm8gb3V0IG9mIGZsb3cgcG9zaXRpb25lZCBk
ZXNjZW5kYW50cyBhbmQgbm8gbm9uLWRlc2NlbmRhbnQKKyAgICAvLyBhcHBlYXJzIGJldHdlZW4g
b3VyIGRlc2NlbmRhbnRzIGluIHN0YWNraW5nIG9yZGVyLCB0aGVuIHdlIG1heSBiZWNvbWUgYQor
ICAgIC8vIHN0YWNraW5nIGNvbnRleHQuCisgICAgYm9vbCBtX2hhc091dE9mRmxvd1Bvc2l0aW9u
ZWREZXNjZW5kYW50IDogMTsKKyAgICBib29sIG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2Nl
bmRhbnREaXJ0eSA6IDE7CisKKyAgICBib29sIG1fbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nIDog
MTsKKworICAgIC8vIElmIHRoaXMgaXMgdHJ1ZSwgdGhlbiBubyBub24tZGVzY2VuZGFudCBhcHBl
YXJzIGJldHdlZW4gYW55IG9mIG91cgorICAgIC8vIGRlc2NlbmRhbnRzIGluIHN0YWNraW5nIG9y
ZGVyLiBUaGlzIGlzIG9uZSBvZiB0aGUgcmVxdWlyZW1lbnRzIG9mIGJlaW5nCisgICAgLy8gYWJs
ZSB0byBzYWZlbHkgYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dC4KKyAgICBib29sIG1fZGVzY2Vu
ZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyIDogMTsKKwogICAgIGNvbnN0IGJvb2wg
bV9pc1Jvb3RMYXllciA6IDE7CiAKICAgICBib29sIG1fdXNlZFRyYW5zcGFyZW5jeSA6IDE7IC8v
IFRyYWNrcyB3aGV0aGVyIHdlIG5lZWQgdG8gY2xvc2UgYSB0cmFuc3BhcmVudCBsYXllciwgaS5l
Liwgd2hldGhlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAppbmRleCA3NzlkN2Y3NDhiNjg4M2E3MmFlYzRlZDIzMDQ0YmUxYWY5ZWMzOGQ1Li44
NTFhMTA4NWE2OGFjNDQwOWI4MmI3ZTM1NzNlZDlmMDA1NmY5MGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMzQxLDcgKzM0MSw3
IEBAIHN0YXRpYyBib29sIGhhc05vblplcm9UcmFuc2Zvcm1PcmlnaW4oY29uc3QgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKIHN0YXRpYyBib29sIGxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRP
clVzaW5nQ29tcG9zaXRlZFNjcm9sbGluZyhSZW5kZXJMYXllciogbGF5ZXIpCiB7CiAgICAgZm9y
IChSZW5kZXJMYXllciogY3VyciA9IGxheWVyOyBjdXJyOyBjdXJyID0gY3Vyci0+cGFyZW50KCkp
IHsKLSAgICAgICAgaWYgKGN1cnItPmhhc1RyYW5zZm9ybSgpIHx8IGN1cnItPnVzZXNDb21wb3Np
dGVkU2Nyb2xsaW5nKCkpCisgICAgICAgIGlmIChjdXJyLT5oYXNUcmFuc2Zvcm0oKSB8fCBjdXJy
LT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICAKQEAgLTQ0OSw3ICs0NDksNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgIGJvb2wgbmVlZHNEZXNjZW5k
ZW50c0NsaXBwaW5nTGF5ZXIgPSBjb21wb3NpdG9yLT5jbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFu
dHMobV9vd25pbmdMYXllcik7CiAKICAgICAvLyBPdXIgc2Nyb2xsaW5nIGxheWVyIHdpbGwgY2xp
cC4KLSAgICBpZiAobV9vd25pbmdMYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAg
ICBpZiAobV9vd25pbmdMYXllci0+bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCiAgICAgICAg
IG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyID0gZmFsc2U7CiAKICAgICBpZiAodXBkYXRl
Q2xpcHBpbmdMYXllcnMoY29tcG9zaXRvci0+Y2xpcHBlZEJ5QW5jZXN0b3IobV9vd25pbmdMYXll
ciksIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyKSkKQEAgLTQ1OCw3ICs0NTgsNyBAQCBi
b29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24o
KQogICAgIGlmICh1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKHJlcXVpcmVzSG9yaXpvbnRh
bFNjcm9sbGJhckxheWVyKCksIHJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXllcigpLCByZXF1
aXJlc1Njcm9sbENvcm5lckxheWVyKCkpKQogICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0
cnVlOwogCi0gICAgaWYgKHVwZGF0ZVNjcm9sbGluZ0xheWVycyhtX293bmluZ0xheWVyLT51c2Vz
Q29tcG9zaXRlZFNjcm9sbGluZygpKSkKKyAgICBpZiAodXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKG1f
b3duaW5nTGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpKSkKICAgICAgICAgbGF5ZXJD
b25maWdDaGFuZ2VkID0gdHJ1ZTsKIAogICAgIGlmIChsYXllckNvbmZpZ0NoYW5nZWQpCkBAIC02
MDIsNyArNjAyLDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5
ZXJHZW9tZXRyeSgpCiAgICAgZWxzZQogICAgICAgICBncmFwaGljc0xheWVyUGFyZW50TG9jYXRp
b24gPSByZW5kZXJlcigpLT52aWV3KCktPmRvY3VtZW50UmVjdCgpLmxvY2F0aW9uKCk7CiAKLSAg
ICBpZiAoY29tcEFuY2VzdG9yICYmIGNvbXBBbmNlc3Rvci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKSkgeworICAgIGlmIChjb21wQW5jZXN0b3IgJiYgY29tcEFuY2VzdG9yLT5uZWVkc0NvbXBv
c2l0ZWRTY3JvbGxpbmcoKSkgewogICAgICAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IHRvUmVu
ZGVyQm94KGNvbXBBbmNlc3Rvci0+cmVuZGVyZXIoKSk7CiAgICAgICAgIEludFNpemUgc2Nyb2xs
T2Zmc2V0ID0gY29tcEFuY2VzdG9yLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAgICAgICAg
SW50UG9pbnQgc2Nyb2xsT3JpZ2luKHJlbmRlckJveC0+Ym9yZGVyTGVmdCgpLCByZW5kZXJCb3gt
PmJvcmRlclRvcCgpKTsKQEAgLTk2MCw2ICs5NjAsMjMgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnBvc2l0aW9uT3ZlcmZsb3dDb250cm9sc0xheWVycyhjb25zdCBJbnRTaXplJiBvZmZzZXRG
cm8KICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpoYXNVbnBvc2l0aW9uZWRP
dmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCkgY29uc3QKK3sKKyAgICBpZiAoR3JhcGhpY3NMYXllciog
bGF5ZXIgPSBsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkKKyAgICAgICAgaWYgKCFsYXll
ci0+ZHJhd3NDb250ZW50KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChH
cmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkKKyAgICAg
ICAgaWYgKCFsYXllci0+ZHJhd3NDb250ZW50KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIGlmIChHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkp
CisgICAgICAgIGlmICghbGF5ZXItPmRyYXdzQ29udGVudCgpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVGb3JlZ3JvdW5kTGF5ZXIoYm9vbCBuZWVkc0ZvcmVncm91bmRMYXllcikKIHsKICAg
ICBib29sIGxheWVyQ2hhbmdlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IGIyNTU2MTY2Mjk2Yzg3YTI0Yjc3ZGVhZjgyMWFj
MDQ1Yjc0MTEzOWYuLmQ1MDNmMTY1ZGUwY2Q0YThmYWM4NDRhNjM1N2U4YmRjZjg0ODk0MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTEz
Nyw2ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCB1cGRhdGVBZnRlcldpZGdldFJl
c2l6ZSgpOwogICAgIHZvaWQgcG9zaXRpb25PdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKGNvbnN0IElu
dFNpemUmIG9mZnNldEZyb21Sb290KTsKKyAgICBib29sIGhhc1VucG9zaXRpb25lZE92ZXJmbG93
Q29udHJvbHNMYXllcnMoKSBjb25zdDsKIAogICAgIGJvb2wgdXNpbmdUaWxlQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3VzaW5nVGlsZWRDYWNoZUxheWVyOyB9CiAgICAgVGlsZWRCYWNraW5nKiB0
aWxlZEJhY2tpbmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMzdiYjY1MTg2MWNiNGExMmFiOTYzMDRlZGZk
MTk5ZGI1YjM5MjljMy4uNzQyMTMxZjY1NDA4ZWVkYmEyODZmM2U5MzY5YTgyNzU1OTA3NGVhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKQEAgLTk4Niw2ICs5ODYsOSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29t
cHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3RvcgogCiAgICAg
aWYgKG92ZXJsYXBNYXApCiAgICAgICAgIG92ZXJsYXBNYXAtPmdlb21ldHJ5TWFwKCkucG9wTWFw
cGluZ3NUb0FuY2VzdG9yKGFuY2VzdG9yTGF5ZXIpOworCisgICAgaWYgKGxheWVyLT51c2VzQ29t
cG9zaXRlZFNjcm9sbGluZygpKQorICAgICAgICBsYXllci0+dXBkYXRlTGF5ZXJQb3NpdGlvbnNB
ZnRlck92ZXJmbG93U2Nyb2xsKHRydWUpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6c2V0Q29tcG9zaXRpbmdQYXJlbnQoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIsIFJlbmRlckxh
eWVyKiBwYXJlbnRMYXllcikKQEAgLTE5OTksNyArMjAwMiw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24oUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5n
Rm9yT3ZlcmZsb3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKSBjb25zdAogewot
ICAgIHJldHVybiBsYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICByZXR1cm4g
bGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwogfQogCiBib29sIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6aXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24oUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCAyNDk2OWRmODUyYzk1MjcxNGNkZTkzZGE2ZmZh
YTFmZGY5NDlmODkzLi4yMWNiYmM3NmRjODg5OTExM2ZhOTNiZmQ5ZWQyZTY2NGFkMmUxMGI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
CkBAIC0yMjgsNiArMjI4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VHJhY2tzUmVwYWludHMo
Ym9vbCk7CiAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBj
b25zdDsKKyAgICB2b2lkIHNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0
KCkgeyBtX3JlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0ID0gdHJ1ZTsgfQogCiBwcml2
YXRlOgogICAgIGNsYXNzIE92ZXJsYXBNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcAppbmRleCBjNzQ4ZWFiYzRhZjJmMWMxMWE1M2YzNjZmOTYxM2IxZTlm
NzhlMTU2Li5lMGI4OWRmNmVkMTc3MTJjYTcyNzA3Y2Y5M2NjZjdlMTgzZDg1M2I5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTIxMSw2ICsyMTEs
MTIgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9s
bGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGMKICAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAK
K3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0
dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0
dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXgg
ZjM3OWYyODU4ZDk4M2VmOThlN2UyZTBiZWVlY2RkYTk4MWRhMmZmNi4uMWZjN2YyZDRjNmIxMjM0
MDRiYjAyZWI5MzE0MDc1ZTNhNDczNGE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihib29sIGVuYWJsZWQsIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJs
ZUZyYW1lcyhib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJz
RW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGQzN2IzZjhjMjNhMDJkYzdhNTMyNjBh
NTdiNDIxYjVmOTdiODI2ZDYuLjdlNTcxY2FhN2ZhMTUyZjNiNjE3MDhiNDUyYmNiODBlYjhjZmQw
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAt
MjksNiArMjksNyBAQAogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoaW4gYm9vbGVh
biBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yRml4ZWRQb3NpdGlvbihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVz
KGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgdm9pZCBzZXRF
bmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVk
KGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZWE4NmNhYjRhN2U3YjEzMzBj
ZWNlMjZjZmVmNmMwMDg3NzI3ZDIwLi4zOGQyNTk5YjI5ODA4YmVkZmE2YTYwMGIwMjgwNDI0NmE5
YjE2YzNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTItMTIgIElhbiBWb2xsaWNrICA8
dm9sbGlja0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQXV0b21hdGljYWxseSB1c2UgY29tcG9z
aXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHMgdmFyaW91cyBjb25maWd1cmF0aW9ucyBvZiBlbGVtZW50cyB0byBlbnN1cmUg
dGhhdCB3ZSBvbmx5IGF1dG9tYXRpY2FsbHkgb3B0IGludG8KKyAgICAgICAgY29tcG9zaXRlZCBz
Y3JvbGxpbmcgd2hlbiBpdCBpcyBzYWZlIHRvIGRvIHNvLgorCisgICAgICAgICogY29tcG9zaXRp
bmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9t
YXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbDogQWRkZWQuCisKIDIw
MTItMTItMDkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJv
cmEuY29tPgogCiAgICAgICAgIFtTb3VwXSB1dGlsaXplIG11bHRpcGFydC94LW1peGVkLXJlcGxh
Y2Ugc3VwcG9ydCByZWNlbnRseSBhZGRlZCB0byBsaWJzb3VwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0
ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRlZWY1MTUwMmI3OWRkMDRkYTQ3OGQ1MWVmMDI0OTcxOGE2NDkyNzgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRv
bWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyNyBAQAorSXRlcmF0aW9uIDA6IFBhc3NlZAorSXRlcmF0aW9uIDAsIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiAxOiBQYXNzZWQKK0l0ZXJhdGlvbiAxLCBsYXllciB0cmVlCitJdGVyYXRp
b24gMjogUGFzc2VkCitJdGVyYXRpb24gMiwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDM6IFBhc3Nl
ZAorSXRlcmF0aW9uIDMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0OiBQYXNzZWQKK0l0ZXJhdGlv
biA0LCBsYXllciB0cmVlCitJdGVyYXRpb24gNTogUGFzc2VkCitJdGVyYXRpb24gNSwgbGF5ZXIg
dHJlZQorSXRlcmF0aW9uIDY6IFBhc3NlZAorSXRlcmF0aW9uIDYsIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiA3OiBQYXNzZWQKK0l0ZXJhdGlvbiA3LCBsYXllciB0cmVlCitJdGVyYXRpb24gODogUGFz
c2VkCitJdGVyYXRpb24gOCwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDk6IFBhc3NlZAorSXRl
cmF0aW9uIDksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxMDogUGFzc2VkCitJdGVyYXRpb24g
MTAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxMTogUGFzc2VkCitJdGVyYXRpb24gMTEsIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiAxMjogUGFzc2VkCitJdGVyYXRpb24gMTIsIG5vIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiAxMzogUGFzc2VkCitJdGVyYXRpb24gMTMsIG5vIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiAxNDogUGFzc2VkCitJdGVyYXRpb24gMTQsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAx
NTogUGFzc2VkCitJdGVyYXRpb24gMTUsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxNjogUGFz
c2VkCitJdGVyYXRpb24gMTYsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxNzogUGFzc2VkCitJ
dGVyYXRpb24gMTcsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxODogUGFzc2VkCitJdGVyYXRp
b24gMTgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxOTogUGFzc2VkCitJdGVyYXRpb24gMTks
IG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyMDogUGFzc2VkCitJdGVyYXRpb24gMjAsIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiAyMTogUGFzc2VkCitJdGVyYXRpb24gMjEsIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiAyMjogUGFzc2VkCitJdGVyYXRpb24gMjIsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAy
MzogUGFzc2VkCitJdGVyYXRpb24gMjMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNDogUGFzc2Vk
CitJdGVyYXRpb24gMjQsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNTogUGFzc2VkCitJdGVyYXRp
b24gMjUsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNjogUGFzc2VkCitJdGVyYXRpb24gMjYsIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiAyNzogUGFzc2VkCitJdGVyYXRpb24gMjcsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiAyODogUGFzc2VkCitJdGVyYXRpb24gMjgsIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biAyOTogUGFzc2VkCitJdGVyYXRpb24gMjksIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMDogUGFz
c2VkCitJdGVyYXRpb24gMzAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMTogUGFzc2VkCitJdGVy
YXRpb24gMzEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMjogUGFzc2VkCitJdGVyYXRpb24gMzIs
IGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMzogUGFzc2VkCitJdGVyYXRpb24gMzMsIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiAzNDogUGFzc2VkCitJdGVyYXRpb24gMzQsIG5vIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiAzNTogUGFzc2VkCitJdGVyYXRpb24gMzUsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biAzNjogUGFzc2VkCitJdGVyYXRpb24gMzYsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzNzogUGFz
c2VkCitJdGVyYXRpb24gMzcsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzODogUGFzc2VkCitJdGVy
YXRpb24gMzgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzOTogUGFzc2VkCitJdGVyYXRpb24g
MzksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0MDogUGFzc2VkCitJdGVyYXRpb24gNDAsIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiA0MTogUGFzc2VkCitJdGVyYXRpb24gNDEsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiA0MjogUGFzc2VkCitJdGVyYXRpb24gNDIsIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biA0MzogUGFzc2VkCitJdGVyYXRpb24gNDMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NDogUGFz
c2VkCitJdGVyYXRpb24gNDQsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NTogUGFzc2VkCitJdGVy
YXRpb24gNDUsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NjogUGFzc2VkCitJdGVyYXRpb24gNDYs
IGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NzogUGFzc2VkCitJdGVyYXRpb24gNDcsIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiA0ODogUGFzc2VkCitJdGVyYXRpb24gNDgsIG5vIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiA0OTogUGFzc2VkCitJdGVyYXRpb24gNDksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biA1MDogUGFzc2VkCitJdGVyYXRpb24gNTAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MTogUGFz
c2VkCitJdGVyYXRpb24gNTEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MjogUGFzc2VkCitJdGVy
YXRpb24gNTIsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MzogUGFzc2VkCitJdGVyYXRpb24gNTMs
IGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1NDogUGFzc2VkCitJdGVyYXRpb24gNTQsIG5vIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiA1NTogUGFzc2VkCitJdGVyYXRpb24gNTUsIG5vIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiA1NjogUGFzc2VkCitJdGVyYXRpb24gNTYsIG5vIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiA1NzogUGFzc2VkCitJdGVyYXRpb24gNTcsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1
ODogUGFzc2VkCitJdGVyYXRpb24gNTgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1OTogUGFz
c2VkCitJdGVyYXRpb24gNTksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2MDogUGFzc2VkCitJ
dGVyYXRpb24gNjAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2MTogUGFzc2VkCitJdGVyYXRpb24g
NjEsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2MjogUGFzc2VkCitJdGVyYXRpb24gNjIsIGxh
eWVyIHRyZWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
YXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3Np
dGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNGQzZTgwMDQ2YjZhODI2ZGIxMGJlYzZk
MmJkOTc4MTUzNTZjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0
bWwKQEAgLTAsMCArMSwyMzAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
SFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+
CisgIDx0aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZzwvdGl0bGU+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmNvbnRhaW5lciB7Cisg
ICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgb3ZlcmZsb3c6
IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgIH0KKworICAgIC5zY3JvbGxlZCB7CisgICAgICB3aWR0aDogMTgwcHg7CisgICAg
ICBoZWlnaHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmF5OworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgIC5wb3Np
dGlvbmVkIHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAgICAgIGhlaWdodDogMjQwcHg7CisgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICB9CisKKyAgICAjcHJlZGVjZXNzb3IgeworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDog
MjBweDsKKyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsKKyAgICAgIGxlZnQ6IDE2MHB4OworICAg
ICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNkZXNjZW5kYW50IHsKKyAgICAgIGxlZnQ6IDkw
cHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAg
ICAgei1pbmRleDogLTIwOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICB2YXIgZGVidWdNb2RlID0gZmFsc2U7
CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKHRydWUpOwor
CisgICAgZnVuY3Rpb24gd3JpdGUoc3RyKQorICAgIHsKKyAgICAgIHZhciBwcmUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOworICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShzdHIgKyAnXG4nKTsKKyAgICAgIHByZS5hcHBlbmRDaGlsZCh0ZXh0KTsK
KyAgICB9CisKKyAgICB2YXIgaXRlcmF0aW9uID0gMDsKKyAgICBmdW5jdGlvbiBwcmludFJlc3Vs
dChleHBlY3RlZFJlc3VsdCkKKyAgICB7CisgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYy4K
KyAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCisgICAgICBpZiAod2luZG93LmludGVy
bmFscykgeworICAgICAgICAvLyBGb3JjZSBhIGxheW91dC4KKyAgICAgICAgd2luZG93LmludGVy
bmFscy5ib3VuZGluZ0JveChjb250YWluZXIpOworICAgICAgICB2YXIgbGF5ZXJUcmVlID0gd2lu
ZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOworCisgICAgICAgIGlmICgh
bGF5ZXJUcmVlID09ICFleHBlY3RlZFJlc3VsdCkKKyAgICAgICAgICB3cml0ZSgnSXRlcmF0aW9u
ICcgKyBpdGVyYXRpb24udG9TdHJpbmcoKSArICc6IFBhc3NlZCcpCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICB3cml0ZSgnSXRlcmF0aW9uICcgKyBpdGVyYXRpb24udG9TdHJpbmcoKSArICc6IEZB
SUxFRCcpCisKKyAgICAgICAgaWYgKGxheWVyVHJlZSkgeworICAgICAgICAgIHdyaXRlKCdJdGVy
YXRpb24gJyArIGl0ZXJhdGlvbi50b1N0cmluZygpICsgJywgbGF5ZXIgdHJlZScpOworICAgICAg
ICAgIGlmIChkZWJ1Z01vZGUpCisgICAgICAgICAgICAgIHdyaXRlKGxheWVyVHJlZSk7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgIHdyaXRlKCdJdGVyYXRpb24gJyArIGl0ZXJhdGlvbi50b1N0
cmluZygpICsgJywgbm8gbGF5ZXIgdHJlZScpOworICAgICAgfQorICAgICAgaXRlcmF0aW9uKys7
CisgICAgfQorCisgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICB7CisgICAgICB2YXIgcHJlZGVj
ZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlZGVjZXNzb3InKTsKKyAgICAgIHZh
ciBzdWNjZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VjY2Vzc29yJyk7CisgICAg
ICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwor
ICAgICAgdmFyIGZpcnN0Q2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3RDaGls
ZCcpOworICAgICAgdmFyIHNlY29uZENoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nl
Y29uZENoaWxkJyk7CisgICAgICB2YXIgZGVzY2VuZGFudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdkZXNjZW5kYW50Jyk7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICBkZXNjZW5k
YW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisKKyAgICAgIC8vIGRlc2NlbmRhbnRzIGluIHN0
YWNraW5nIG9yZGVyLgorICAgICAgZm9yIChpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICBm
b3IgKGogPSAwOyBqIDwgNTsgKytqKSB7CisgICAgICAgICAgZm9yIChrID0gMDsgayA8IDI7ICsr
aykgeworICAgICAgICAgICAgZm9yIChsID0gMDsgbCA8IDI7ICsrbCkgeworICAgICAgICAgICAg
ICB2YXIgbWluWkluZGV4ID0gMDsKKyAgICAgICAgICAgICAgdmFyIG1heFpJbmRleCA9IDA7Cisg
ICAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0
eWxlLnpJbmRleCA9ICcxJzsKKyAgICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5k
ZXggPSAnMyc7CisgICAgICAgICAgICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgICAg
fSBlbHNlIGlmIChpID09IDEpIHsKKyAgICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJ
bmRleCA9ICctMSc7CisgICAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0g
Jy0zJzsKKyAgICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMzsKKyAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICctMSc7Cisg
ICAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAg
ICAgICAgIG1pblpJbmRleCA9IC0xOworICAgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7Cisg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB2YXIgc2libGluZyA9IHByZWRlY2Vzc29y
OworICAgICAgICAgICAgICB2YXIgdG9IaWRlID0gc3VjY2Vzc29yOworICAgICAgICAgICAgICBp
ZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgICAgc2libGluZyA9IHN1Y2Nlc3NvcjsKKyAgICAg
ICAgICAgICAgICB0b0hpZGUgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgIC8vIFRoZSByZXN1bHQgc2hvdWxkIGJlIHRoZSBzYW1lIGlmIHRoZSB0aGUgZWxl
bWVudCB0byBoaWRlIGlzCisgICAgICAgICAgICAgIC8vIGRpc3BsYXk6aGlkZGVuIG9yIGRpc3Bs
YXk6bm9uZS4KKyAgICAgICAgICAgICAgaWYgKGwgPT0gMCkKKyAgICAgICAgICAgICAgICB0b0hp
ZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRvSGlkZS5zdHlsZS5kaXNwbGF5ID0gJ2hpZGRlbic7CisKKyAgICAgICAgICAgICAg
c2libGluZy5zdHlsZS5kaXNwbGF5ID0gJyc7CisKKyAgICAgICAgICAgICAgaWYgKGogPT0gMCkK
KyAgICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAxKS50
b1N0cmluZygpOworICAgICAgICAgICAgICBlbHNlIGlmIChqID09IDEpCisgICAgICAgICAgICAg
ICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsKKyAg
ICAgICAgICAgICAgZWxzZSBpZiAoaiA9PSAyKQorICAgICAgICAgICAgICAgIHNpYmxpbmcuc3R5
bGUuekluZGV4ID0gbWF4WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgIGVsc2UgaWYg
KGogPT0gMykKKyAgICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJbmRl
eC50b1N0cmluZygpOworICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2libGlu
Zy5zdHlsZS56SW5kZXggPSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmluZygp
OworCisgICAgICAgICAgICAgIHZhciBhcmVDb250aWd1b3VzID0gZmFsc2U7CisgICAgICAgICAg
ICAgIGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA+IG1heFpJbmRleCB8fAorICAgICAgICAgICAg
ICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPCBtaW5aSW5kZXgpIHsKKyAgICAgICAgICAgICAg
ICAgIC8vIHNpYmxpbmcgaXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2Ygb3VyIGRlc2NlbmRhbnRzLgor
ICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IHRydWU7CisgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoc2libGluZy5zdHlsZS56SW5kZXggPCBtYXhaSW5kZXggJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA+IG1pblpJbmRleCkgeworICAgICAg
ICAgICAgICAgICAgLy8gc2libGluZyBpcyBiZXR3ZWVuIG91ciBkZXNjZW5kYW50cy4KKyAgICAg
ICAgICAgICAgICAgIGFyZUNvbnRpZ3VvdXMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgfSBlbHNl
IGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA9PSBtaW5aSW5kZXgpIHsKKyAgICAgICAgICAgICAg
ICAgIGlmIChtaW5aSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgIC8vIHNpYmxp
bmcgbGllcyBiZXR3ZWVuIHVzIChub3JtYWwgZmxvdykgYW5kIG91ciBwb3MKKyAgICAgICAgICAg
ICAgICAgICAgICAvLyB6LW9yZGVyIGRlc2NlbmRhbnRzLCBzbyB3ZSBhcmUgbm90IGNvbnRpZ3Vv
dXMuCisgICAgICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAvLyBzaWJsaW5nJ3Mg
ekluZGV4IG1hdGNoZXMgdGhlIG1pbjsgd2UncmUgb25seSBvayBpZiBpdAorICAgICAgICAgICAg
ICAgICAgICAgIC8vIGFwcGVhcnMgZmlyc3QuCisgICAgICAgICAgICAgICAgICAgICAgYXJlQ29u
dGlndW91cyA9IGsgPT0gMDsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSBl
bHNlIGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA9PSBtYXhaSW5kZXgpIHsKKyAgICAgICAgICAg
ICAgICAgIGlmIChtYXhaSW5kZXggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgLy8gc2li
bGluZyBsaWVzIGJldHdlZW4gdXMgKG5vcm1hbCBmbG93KSBhbmQgbmVnIHotb3JkZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAvLyBkZXNjZW5kYW50cywgc28gd2UgYXJlIG5vdCBjb250aWd1b3Vz
LgorICAgICAgICAgICAgICAgICAgICAgIGFyZUNvbnRpZ3VvdXMgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobWF4WkluZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAvLyBzaWJsaW5nIGlzIGluIHRoZSBwb3Mgei1vcmRlciBsaXN0IGFuZCBkb2VzIG5vdCBh
ZmZlY3QKKyAgICAgICAgICAgICAgICAgICAgICAvLyB1cyBzaW5jZSB3ZSdyZSBpbiB0aGUgbm9y
bWFsIGZsb3cgbGlzdCBhbmQgb3VyCisgICAgICAgICAgICAgICAgICAgICAgLy8gZGVzY2FuZGFu
dHMgYXJlIGluIHRoZSBuZWcgei1vcmRlciBsaXN0LgorICAgICAgICAgICAgICAgICAgICAgIGFy
ZUNvbnRpZ3VvdXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAvLyBzaWJsaW5nJ3MgekluZGV4IG1hdGNoZXMgdGhlIG1heDsgd2UncmUg
b25seSBvayBpZiBpdAorICAgICAgICAgICAgICAgICAgICAgIC8vIGFwcGVhcnMgYWZ0ZXIuCisg
ICAgICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IGsgPT0gMTsKKyAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHByaW50UmVzdWx0KGFy
ZUNvbnRpZ3VvdXMpOworICAgICAgICAgICAgfSAvLyBmb3IgbAorICAgICAgICAgIH0gLy8gZm9y
IGsKKyAgICAgICAgfSAvLyBmb3IgagorICAgICAgfSAvLyBmb3IgaQorCisgICAgICAvLyBOb3cg
Y2hlY2sgdGhhdCB3ZSBkb24ndCBwcm9tb3RlIGlmIHdlIGhhdmUgYW4gb3V0IG9mIGZsb3cgZGVz
Y2VuZGFudC4KKyAgICAgIC8vIFdlIG5lZWQgdG8gaGlkZSB0aGUgcHJlZGVjZXNzb3IgYW5kIHN1
Y2Nlc3NvciBzbyB0aGV5IGRvbid0IGludGVyZmVyZQorICAgICAgLy8gd2l0aCB0aGlzIGV4cGVy
aW1lbnQuCisgICAgICBwcmVkZWNlc3Nvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAg
c3VjY2Vzc29yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICBmb3IgKGkgPSAwOyBpIDwg
MzsgKytpKSB7CisgICAgICAgIGlmIChpID09IDApCisgICAgICAgICAgZGVzY2VuZGFudC5zdHls
ZS5kaXNwbGF5ID0gJ2hpZGRlbic7CisgICAgICAgIGVsc2UgaWYgKGkgPT0gMSkKKyAgICAgICAg
ICBkZXNjZW5kYW50LnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgICAgZWxzZQorICAgICAgICAg
IGRlc2NlbmRhbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKworICAgICAgICAvLyBJZiB0aGUg
b3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50IGlzIHZpc2libGUsIHdlIGNhbm5vdCBv
cHQKKyAgICAgICAgLy8gaW50byBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgcHJpbnRS
ZXN1bHQoaSAhPSAxKTsKKyAgICAgICAgY291bnQrKzsKKyAgICAgIH0gLy8gZm9yIGkKKworICAg
IH0gLy8gZnVuY3Rpb24gZG9UZXN0CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIGRvVGVzdCwgZmFsc2UpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDxk
aXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJwcmVkZWNlc3NvciI+PC9kaXY+CisgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciIgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQi
IGlkPSJmaXJzdENoaWxkIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9InNl
Y29uZENoaWxkIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0iZGVzY2Vu
ZGFudCI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0ic3Vj
Y2Vzc29yIj48L2Rpdj4KKyAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0
bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179310</attachid>
            <date>2012-12-13 11:58:21 -0800</date>
            <delta_ts>2012-12-17 09:34:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121213145541.patch</filename>
            <type>text/plain</type>
            <size>50622</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM4ZjQ0MDcyZjBlOGRi
MzhkMGViMTY1MTRhM2U0YzFhMGJiMzhiNS4uMzUyMDU0ZWE0YTcyY2QyYWVjNDY2OTJkYTk2YWE4
ZmNhNTc0Y2Y0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTEyLTEzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQgKGRldGFpbHMg
YmVsb3cpLCBhbmQgdGhhdCBjbGlwcGluZyBvdXIgc2Nyb2xsaW5nCisgICAgICAgIGRlc2NlbmRh
bnRzIHdpbGwgbm90IGFmZmVjdCByZW5kZXJpbmcuCisKKyAgICAgICAgVG8gY2hlY2sgdGhlIGZp
cnN0IGNvbmRpdGlvbiAodGhhdCB6LW9yZGVyaW5nIHdpbGwgbm90IGJlIGFmZmVjdGVkKS4KKyAg
ICAgICAgSSBlbnN1cmUgdGhhdCB0aGUgY2FuZGlkYXRlIGVsZW1lbnQgYW5kIGFsbCBpdHMgZGVz
Y2VuZGFudHMgYXBwZWFyIGFzIGEgCisgICAgICAgIGNvbnRpbnVvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIAorICAgICAgICBvdGhl
ciBlbGVtZW50cyBhcmUgJ2JldHdlZW4nIGFueSBvZiB0aGUgY2FuZGlkYXRlcyBkZXNjZW5kYW50
cyB3aGVuIHdlCisgICAgICAgIHNvcnQgaW4gcGFpbnQgb3JkZXIsIHRoZW4gd2UncmUgc2FmZS4g
VGhpcyBpcyBvdmVybHkgY29uc2VydmF0aXZlLAorICAgICAgICBob3dldmVyLiBXZSBjb3VsZCwg
aW4gZnV0dXJlLCBvbmx5IGNvbnNpZGVyIHN0YWNraW5nIHByb2JsZW1zIGJldHdlZW4KKyAgICAg
ICAgZWxlbWVudHMgdGhhdCBhY3R1YWxseSBvdmVybGFwLgorCisgICAgICAgIFRvIGVuc3VyZSB0
aGF0IGNsaXBwaW5nIHdpbGwgbm90IGNhdXNlIGEgcmVuZGVyaW5nIGNoYW5nZSwgSSBlbnN1cmUK
KyAgICAgICAgdGhhdCB0aGUgbGF5ZXIgaGFzIG5vIG91dCBvZiBmbG93IHBvc2l0aW9uZWQgZGVz
Y2VuZGFudCB3aG9zZQorICAgICAgICBjb250YWluaW5nIGJsb2NrIGlzIG5vdCBhbHNvIGEgZGVz
Y2VuZGFudCBvZiBvdXJzLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJmbG93L2F1
dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKworICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0lu
U3RhY2tpbmdPcmRlclJlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
cG9zaXRpb25PdmVyZmxvd0NvbnRyb2xzQWZ0ZXJQcm9tb3Rpb25Ub0NvbXBvc2l0ZWRTY3JvbGxp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFT
dGFja2luZ0NvbnRleHQpOgorICAgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgUmVuZGVyTGF5
ZXIgY291bGQgYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dCB3aXRob3V0CisgICAgICAgICAgYWZm
ZWN0aW5nIHRoZSBzdGFja2luZyBvcmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MpOgorICAgICAgICAgIFdlIG5vdyBuZWVk
IHRvIGtlZXAgdHJhY2sgb2Ygb3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50cy4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjphZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRhdGVk
IHRvIHJldHVybiB0cnVlIGlmIGl0IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcKKyAg
ICAgICAgICBjb250ZXh0LCBhbmQgdGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAgICAg
ICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgaWYgd2Ugd291bGQgbGlrZSB0byB1c2UgY29t
cG9zaXRlZAorICAgICAgICAgIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjp1cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpk
aXJ0eVpPcmRlckxpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eU5v
cm1hbEZsb3dMaXN0KToKKyAgICAgICAgICBTaW5jZSB0aGVzZSBjb3VsZCBhZmZlY3Qgb3B0aW5n
IGludG8gY29tcG9zaXRlZCBzY3JvbGxpbmcsIHdlIG11c3QKKyAgICAgICAgICByZXF1ZXN0IHRo
YXQgdGhlIFJlbmRlckxheWVyQ29tcG9zaXRvciByZWV2YWx1YXRlIGNvbXBvc2l0aW5nLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCk6Cisg
ICAgICAgICAgV2UgY2FsbCB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQg
aGVyZSwgaWYgbmVjZXNzYXJ5LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNob3Vs
ZEJlTm9ybWFsRmxvd09ubHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNob3Vs
ZEJlU2VsZlBhaW50aW5nTGF5ZXIpOgorICAgICAgICAgIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5n
IC0+IG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnNldEFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWluSGFzT3V0T2ZG
bG93UG9zaXRpb25lZERlc2NlbmRhbnRTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVwZGF0ZU91dE9mRmxvd1Bvc2l0aW9uZWQpOgorICAgICAgICAgIERpcnRpZXMgYW5k
IHNldHMgdGhlIG91dCBvZiBmbG93IHBvc2l0aW9uZWQgZGVzY2VuZGFudCBzdGF0ZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6Omhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRlZFNjcm9sbGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNz
TGF5ZXJDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6aGFzVW5wb3NpdGlvbmVkT3ZlcmZsb3dDb250cm9sc0xheWVycyk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
Lmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAgIFdl
IG5vdyBlbnN1cmUgdGhhdCBuZXdseSBjcmVhdGVkIG92ZXJmbG93IHNjcm9sbCBjb250cm9scyBn
ZXQKKyAgICAgICAgICBwb3NpdGlvbmVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5n
QWZ0ZXJMYXlvdXQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0Zv
ck92ZXJmbG93U2Nyb2xsKToKKyAgICAgICAgICBBbGxvd3MgZW5hYmxpbmcgdGhlIHNldHRpbmcg
aW4gbGF5b3V0IHRlc3RzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTEyLTEzICBQcmF0aWsgU29s
YW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBEdXBsaWNhdGUgY29kZSBpbiBH
cmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzKCkgYW5kIEdyYXBoaWNzQ29udGV4
dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNpbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAppbmRleCA5Y2QxYzA0MzY0Njc0ZWY5ZTJjNzM3MTAyMDRjNTcyYTVlZGJhMzE1
Li45YTRkYzUwZGRhODNhMDg3YzAzMjZmODg0ZWI4N2Y0NjA3ZmRiZWQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE0Nyw2ICsxNDcsMTAgQEAgUmVuZGVy
TGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlbmRlcmVyKQogICAg
ICwgbV9ub3JtYWxGbG93TGlzdERpcnR5KHRydWUpCiAgICAgLCBtX2hhc1NlbGZQYWludGluZ0xh
eWVyRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5k
YW50RGlydHkoZmFsc2UpCisgICAgLCBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50
KGZhbHNlKQorICAgICwgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERpcnR5KGZh
bHNlKQorICAgICwgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoZmFsc2UpCisgICAgLCBtX2Rl
c2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcihmYWxzZSkKICAgICAsIG1faXNS
b290TGF5ZXIocmVuZGVyZXItPmlzUmVuZGVyVmlldygpKQogICAgICwgbV91c2VkVHJhbnNwYXJl
bmN5KGZhbHNlKQogICAgICwgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24oZmFsc2UpCkBAIC00
NzAsNiArNDc0LDE2NiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNT
ZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnRTdGF0dXMoKQogICAgIH0KIH0KIAorYm9vbCBSZW5k
ZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCktPmZyYW1lKCkKKyAgICAgICAgJiYgcmVu
ZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpCisgICAgICAgICYmIHJlbmRlcmVyKCktPmZyYW1lKCkt
PnBhZ2UoKS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsRW5hYmxlZCgpOworfQorCisvLyBJZiB3ZSBhcmUgYSBzdGFja2luZyBjb250ZXh0LCB0aGVu
IHRoaXMgZnVuY3Rpb24gd2lsbCBkZXRlcm1pbmUgaWYgb3VyCisvLyBkZXNjZW5kYW50cyBmb3Ig
YSBjb250aWd1b3VzIGJsb2NrIGluIHN0YWNraW5nIG9yZGVyLiBUaGlzIGlzIHJlcXVpcmVkIGlu
CisvLyBvcmRlciBmb3IgYW4gZWxlbWVudCB0byBiZSBzYWZlbHkgcHJvbW90ZWQgdG8gYSBzdGFj
a2luZyBjb250ZXh0LiBJdCBpcyBzYWZlCisvLyB0byBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0
IGlmIHRoaXMgY2hhbmdlIHdvdWxkIG5vdCBhbHRlciB0aGUgc3RhY2tpbmcKKy8vIG9yZGVyIG9m
IGxheWVycyBvbiB0aGUgcGFnZS4gVGhhdCBjYW4gb25seSBoYXBwZW4gaWYgYSBub24tZGVzY2Vu
ZGFudCBhcHBlYXIKKy8vIGJldHdlZW4gdXMgYW5kIG91ciBkZXNjZW5kYW50cyBpbiBzdGFja2lu
ZyBvcmRlci4gSGVyZSdzIGFuIGV4YW1wbGU6CisvLworLy8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgfCAg
XC4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgICBCICAgQworLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvXCAgIHwgICAvXC4KKy8vICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwIC04ICBEICAyICA3CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUKKy8vCisvLyBJ
J3ZlIGxhYmVsZWQgb3VyIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIEEsIEIsIEMsIGFuZCBELCBv
dXIgc3RhY2tpbmcKKy8vIGNvbnRleHQgZGVzY2VuZGFudHMgd2l0aCB0aGVpciB6IGluZGljZXMs
IGFuZCB1cyB3aXRoICd0aGlzJyAod2UncmUgYQorLy8gc3RhY2tpbmcgY29udGV4dCBhbmQgb3Vy
IHpJbmRleCBkb2Vzbid0IG1hdHRlciBoZXJlKS4gVGhlc2Ugbm9kZXMgYXBwZWFyIGluCisvLyB0
aHJlZSBsaXN0czogcG9zWk9yZGVyLCBuZWdaT3JkZXIsIGFuZCBub3JtYWwgZmxvdyAoa2VlcCBp
biBtaW5kIHRoYXQgbm9ybWFsCisvLyBmbG93IGxheWVycyBkb24ndCBvdmVybGFwKS4gU28gaWYg
d2UgYXJyYW5nZSB0aGVzZSBsaXN0cyBpbiBvcmRlciB3ZSBnZXQgb3VyCisvLyBzdGFja2luZyBv
cmRlcjoKKy8vCisvLyAgICAgICAgICAgICAgICAgICAgIFstOF0sIFtBLURdLCBbMCwgMiwgNSwg
N10tLT4gcG9zIHotb3JkZXIuCisvLyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfAorLy8g
ICAgICAgIE5lZyB6LW9yZGVyLiA8LSsgICAgICstLT4gTm9ybWFsIGZsb3cgZGVzY2VuZGFudHMu
CisvLworLy8gV2UgY2FuIHRoZW4gYXNzaWduIG5ldywgJ3N0YWNraW5nJyBvcmRlciBpbmRpY2Vz
IHRvIHRoZXNlIGVsZW1lbnRzIGFzIGZvbGxvd3M6CisvLworLy8gICAgICAgICAgICAgICAgICAg
ICBbLThdLCBbQS1EXSwgWzAsIDIsIDUsIDddCisvLyAnU3RhY2tpbmcnIGluZGljZXM6ICAtMSAg
ICAgMCAgICAgMSAgMiAgMyAgNAorLy8KKy8vIE5vdGUgdGhhdCB0aGUgbm9ybWFsIGZsb3cgZGVz
Y2VuZGFudHMgY2FuIHNoYXJlIGFuIGluZGV4IGJlY2F1c2UgdGhleSBkb24ndAorLy8gc3RhY2sv
b3ZlcmxhcC4gTm93IG91ciBwcm9ibGVtIGJlY29tZXMgdmVyeSBzaW1wbGU6IGEgbGF5ZXIgY2Fu
IHNhZmVseSBiZWNvbWUKKy8vIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0aGUgc3RhY2tpbmctb3Jk
ZXIgaW5kaWNlcyBvZiBpdCBhbmQgaXRzIGRlc2NlbmRhbnRzCisvLyBhcHBlYXIgaW4gYSBjb250
aWd1b3VzIGJsb2NrIGluIHRoZSBsaXN0IG9mIHN0YWNraW5nIGluZGljZXMuIFRoaXMgcHJvYmxl
bQorLy8gY2FuIGJlIHNvbHZlZCB2ZXJ5IGVmZmljaWVudGx5IGJ5IGNhbGN1bGF0aW5nIHRoZSBt
aW4vbWF4IHN0YWNraW5nIGluZGljZXMgaW4KKy8vIHRoZSBzdWJ0cmVlLCBhbmQgdGhlIG51bWJl
ciBzdGFja2luZyBjb250ZXh0IGRlc2NlbmRhbnRzLiBPbmNlIHdlIGhhdmUgdGhpcworLy8gaW5m
b3JtYXRpb24sIHdlIGtub3cgdGhhdCB0aGUgc3VidHJlZSdzIGluZGljZXMgZm9ybSBhIGNvbnRp
Z3VvdXMgYmxvY2sgaWY6CisvLworLy8gICAgICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFj
a0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMKKy8vCisvLyBTbyBmb3Igbm9kZSBBIGluIHRoZSBl
eGFtcGxlIGFib3ZlIHdlIHdvdWxkIGhhdmU6CisvLyAgIG1heFN0YWNrSW5kZXggPSAxCisvLyAg
IG1pblN0YWNrSW5kZXggPSAtMQorLy8gICBudW1TQ0RlY2VuZGFudHMgPSAyCisvLworLy8gYW5k
IHNvLAorLy8gICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5kZXggPT0gbnVtU0NEZXNj
ZW5kYW50cworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgMSAtICgtMSkgPT0gMgorLy8g
ID09PT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgPT0gMgorLy8KKy8vICBTaW5jZSB0
aGlzIGlzIHRydWUsIEEgY2FuIHNhZmVseSBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0LgorLy8g
IE5vdywgZm9yIG5vZGUgQyB3ZSBoYXZlOgorLy8KKy8vICAgbWF4U3RhY2tJbmRleCA9IDQKKy8v
ICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJlY2F1c2UgQyBoYXMgc3RhY2tpbmcgaW5kZXggMC4K
Ky8vICAgbnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFuZCBzbywKKy8vICAgICAgIG1heFN0
YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMKKy8vICA9PT0+ICAg
ICAgICAgICAgICAgICAgICAgICAgIDQgLSAwID09IDIKKy8vICA9PT0+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0ID09IDIKKy8vCisvLyBTaW5jZSB0aGlzIGlzIGZhbHNlLCBDIGNhbm5v
dCBiZSBzYWZlbHkgcHJvbW90ZWQgdG8gYSBzdGFja2luZyBjb250ZXh0LiBUaGlzCisvLyBoYXBw
ZW5lZCBiZWNhdXNlIG9mIHRoZSBlbGVtZW50cyB3aXRoIHotaW5kZXggNSBhbmQgMC4gTm93IGlm
IDUgaGFkIGJlZW4gYQorLy8gY2hpbGQgb2YgQyByYXRoZXIgdGhhbiBELCBhbmQgQSBoYWQgbm8g
Y2hpbGQgd2l0aCBaIGluZGV4IDAsIHdlIHdvdWxkIGhhdmUgaGFkOgorLy8KKy8vICAgbWF4U3Rh
Y2tJbmRleCA9IDMKKy8vICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJlY2F1c2UgQyBoYXMgc3Rh
Y2tpbmcgaW5kZXggMC4KKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMworLy8KKy8vIGFuZCBzbywK
Ky8vICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFu
dHMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgIDMgLSAwID09IDMKKy8vICA9PT0+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzID09IDMKKy8vCisvLyAgQW5kIHdlIHdvdWxk
IGNvbmNsdWRlIHRoYXQgQyBjb3VsZCBiZSBwcm9tb3RlZC4KK3ZvaWQgUmVuZGVyTGF5ZXI6OnVw
ZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcigpCit7CisgICAgaWYg
KCFpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCghbV9ub3Jt
YWxGbG93TGlzdERpcnR5KTsKKyAgICBBU1NFUlQoIW1fek9yZGVyTGlzdHNEaXJ0eSk7CisKKyAg
ICAvLyBDcmVhdGUgYSByZXZlcnNlIGxvb2t1cC4KKyAgICBIYXNoTWFwPGNvbnN0IFJlbmRlckxh
eWVyKiwgaW50PiBsb29rdXA7CisKKyAgICBpZiAobV9uZWdaT3JkZXJMaXN0KSB7CisgICAgICAg
IGludCBzdGFja2luZ09yZGVySW5kZXggPSAtMTsKKyAgICAgICAgc2l6ZV90IGxpc3RTaXplID0g
bV9uZWdaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGlzdFNpemU7ICsraSkgeworICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciA9
IG1fbmVnWk9yZGVyTGlzdC0+YXQobGlzdFNpemUgLSBpIC0gMSk7CisgICAgICAgICAgICBpZiAo
IWN1cnJlbnRMYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIGxvb2t1cC5zZXQoY3VycmVudExheWVyLCBzdGFja2luZ09yZGVy
SW5kZXgtLSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobV9wb3NaT3JkZXJMaXN0KSB7
CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG1fcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOworICAg
ICAgICBpbnQgc3RhY2tpbmdPcmRlckluZGV4ID0gMTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJMYXllciogY3VycmVu
dExheWVyID0gbV9wb3NaT3JkZXJMaXN0LT5hdChpKTsKKyAgICAgICAgICAgIGlmICghY3VycmVu
dExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5ZXIsIHN0YWNraW5nT3JkZXJJbmRleCsr
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCBtaW5JbmRleCA9IDA7CisgICAgaW50IG1h
eEluZGV4ID0gMDsKKyAgICBpbnQgY291bnQgPSAwOworICAgIGJvb2wgZmlyc3RJdGVyYXRpb24g
PSB0cnVlOworICAgIHVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRl
clJlY3Vyc2l2ZShsb29rdXAsIG1pbkluZGV4LCBtYXhJbmRleCwgY291bnQsIGZpcnN0SXRlcmF0
aW9uKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1
b3VzSW5TdGFja2luZ09yZGVyUmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8Y29uc3QgUmVuZGVyTGF5
ZXIqLCBpbnQ+JiBsb29rdXAsIGludCYgbWluSW5kZXgsIGludCYgbWF4SW5kZXgsIGludCYgY291
bnQsIGJvb2wgZmlyc3RJdGVyYXRpb24pCit7CisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkg
JiYgIWZpcnN0SXRlcmF0aW9uKSB7CisgICAgICAgIGlmIChsb29rdXAuY29udGFpbnModGhpcykp
IHsKKyAgICAgICAgICAgIG1pbkluZGV4ID0gc3RkOjptaW4obWluSW5kZXgsIGxvb2t1cC5nZXQo
dGhpcykpOworICAgICAgICAgICAgbWF4SW5kZXggPSBzdGQ6Om1heChtYXhJbmRleCwgbG9va3Vw
LmdldCh0aGlzKSk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaW50IGNo
aWxkTWluSW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRNYXhJbmRleCA9IDA7CisgICAgICAg
IGludCBjaGlsZENvdW50ID0gMDsKKyAgICAgICAgY2hpbGQtPnVwZGF0ZURlc2NlbmRhbnRzQXJl
Q29udGlndW91c0luU3RhY2tpbmdPcmRlclJlY3Vyc2l2ZShsb29rdXAsIGNoaWxkTWluSW5kZXgs
IGNoaWxkTWF4SW5kZXgsIGNoaWxkQ291bnQsIGZhbHNlKTsKKyAgICAgICAgaWYgKGNoaWxkQ291
bnQpIHsKKyAgICAgICAgICAgIGNvdW50ICs9IGNoaWxkQ291bnQ7CisgICAgICAgICAgICBtaW5J
bmRleCA9IHN0ZDo6bWluKG1pbkluZGV4LCBjaGlsZE1pbkluZGV4KTsKKyAgICAgICAgICAgIG1h
eEluZGV4ID0gc3RkOjptYXgobWF4SW5kZXgsIGNoaWxkTWF4SW5kZXgpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgICAgIGJvb2wgbmV3
VmFsdWUgPSBtYXhJbmRleCAtIG1pbkluZGV4ID09IGNvdW50OworI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKKyAgICAgICAgYm9vbCBkaWRVcGRhdGUgPSBuZXdWYWx1ZSAhPSBtX2Rl
c2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcjsKKyNlbmRpZgorICAgICAgICBt
X2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlciA9IG5ld1ZhbHVlOworI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgaWYgKGRpZFVwZGF0ZSkKKyAg
ICAgICAgICAgIHVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOworI2VuZGlmCisgICAg
fQorfQorCiB2b2lkIFJlbmRlckxheWVyOjpjb21wdXRlUmVwYWludFJlY3RzKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJlbmRlckdlb21ldHJ5
TWFwKiBnZW9tZXRyeU1hcCkKIHsKICAgICBBU1NFUlQoIW1fdmlzaWJsZUNvbnRlbnRTdGF0dXNE
aXJ0eSk7CkBAIC01NzUsNiArNzM5LDIyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVy
UG9zaXRpb25zQWZ0ZXJTY3JvbGwoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwCiAgICAg
ICAgIGdlb21ldHJ5TWFwLT5wb3BNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50KCkpOwogfQogCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQordm9pZCBSZW5kZXJMYXllcjo6cG9zaXRp
b25PdmVyZmxvd0NvbnRyb2xzQWZ0ZXJQcm9tb3Rpb25Ub0NvbXBvc2l0ZWRTY3JvbGxpbmcoKQor
eworICAgIGlmICghdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSB8fCAhYmFja2luZygpLT5oYXNV
bnBvc2l0aW9uZWRPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFJlbmRlckdlb21ldHJ5TWFwIGdlb21ldHJ5TWFwKFVzZVRyYW5zZm9ybXMpOworICAgIFJl
bmRlclZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCk7CisgICAgaWYgKHRoaXMgIT0gdmll
dy0+bGF5ZXIoKSkKKyAgICAgICAgZ2VvbWV0cnlNYXAucHVzaE1hcHBpbmdzVG9BbmNlc3Rvcihw
YXJlbnQoKSwgMCk7CisKKyAgICBMYXlvdXRQb2ludCBvZmZzZXRGcm9tUm9vdCA9IExheW91dFBv
aW50KGdlb21ldHJ5TWFwLmFic29sdXRlUG9pbnQoRmxvYXRQb2ludCgpKSk7CisgICAgcG9zaXRp
b25PdmVyZmxvd0NvbnRyb2xzKHRvU2l6ZShyb3VuZGVkSW50UG9pbnQob2Zmc2V0RnJvbVJvb3Qp
KSk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVCbGVuZE1vZGUoKQogewpAQCAtNzA2LDYgKzg4NiwxNCBAQCB2b2lkIFJl
bmRlckxheWVyOjp1cGRhdGVQYWdpbmF0aW9uKCkKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyTGF5
ZXI6OmNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdAoreworICAgIGlm
IChpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFzdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICByZXR1cm4gbV9kZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNr
aW5nT3JkZXI7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KCkK
IHsgCiAgICAgaWYgKG1faGFzVmlzaWJsZUNvbnRlbnQgJiYgIW1fdmlzaWJsZUNvbnRlbnRTdGF0
dXNEaXJ0eSkgewpAQCAtNzU5LDI1ICs5NDcsNTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0QW5j
ZXN0b3JDaGFpbkhhc1Zpc2libGVEZXNjZW5kYW50KCkKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygpCit2b2lkIFJlbmRlckxheWVy
Ojp1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoSGFzaFNldDxjb25zdCBSZW5kZXJPYmpl
Y3QqPiogb3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MpCiB7Ci0gICAgaWYgKG1f
dmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSB8fCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVz
Y2VuZGFudERpcnR5KSB7CisgICAgaWYgKG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSB8
fCBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5IHx8IG1faGFzT3V0T2ZGbG93
UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSkgeworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyAgICAgICAgYm9vbCBvbGRIYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCA9
IG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQ7CisjZW5kaWYKICAgICAgICAgbV9o
YXNWaXNpYmxlRGVzY2VuZGFudCA9IGZhbHNlOwogICAgICAgICBtX2hhc1NlbGZQYWludGluZ0xh
eWVyRGVzY2VuZGFudCA9IGZhbHNlOworICAgICAgICBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWRE
ZXNjZW5kYW50ID0gZmFsc2U7CisKKyAgICAgICAgSGFzaFNldDxjb25zdCBSZW5kZXJPYmplY3Qq
PiBjaGlsZE91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzOwogICAgICAgICBmb3Ig
KFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgIGNoaWxkLT51cGRhdGVEZXNjZW5kYW50RGVw
ZW5kZW50RmxhZ3MoKTsKKyAgICAgICAgICAgIGNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENvbnRh
aW5pbmdCbG9ja3MuY2xlYXIoKTsKKyAgICAgICAgICAgIGNoaWxkLT51cGRhdGVEZXNjZW5kYW50
RGVwZW5kZW50RmxhZ3MoJmNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3Mp
OworCisgICAgICAgICAgICBib29sIGNoaWxkSXNPdXRPZkZsb3dQb3NpdGlvbmVkID0gY2hpbGQt
PnJlbmRlcmVyKCkgJiYgY2hpbGQtPnJlbmRlcmVyKCktPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgp
OworICAgICAgICAgICAgaWYgKGNoaWxkSXNPdXRPZkZsb3dQb3NpdGlvbmVkKQorICAgICAgICAg
ICAgICAgIGNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MuYWRkKGNoaWxk
LT5yZW5kZXJlcigpLT5jb250YWluaW5nQmxvY2soKSk7CisKKyAgICAgICAgICAgIGlmIChvdXRP
ZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2NrcykgeworICAgICAgICAgICAgICAgIEhhc2hT
ZXQ8Y29uc3QgUmVuZGVyT2JqZWN0Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY2hpbGRPdXRPZkZs
b3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2Nrcy5iZWdpbigpOworICAgICAgICAgICAgICAgIGZv
ciAoOyBpdCAhPSBjaGlsZE91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzLmVuZCgp
OyArK2l0KQorICAgICAgICAgICAgICAgICAgICBvdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmlu
Z0Jsb2Nrcy0+YWRkKCppdCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGJvb2wgaGFz
VmlzaWJsZURlc2NlbmRhbnQgPSBjaGlsZC0+bV9oYXNWaXNpYmxlQ29udGVudCB8fCBjaGlsZC0+
bV9oYXNWaXNpYmxlRGVzY2VuZGFudDsKICAgICAgICAgICAgIGJvb2wgaGFzU2VsZlBhaW50aW5n
TGF5ZXJEZXNjZW5kYW50ID0gY2hpbGQtPmlzU2VsZlBhaW50aW5nTGF5ZXIoKSB8fCBjaGlsZC0+
aGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCk7CisgICAgICAgICAgICBib29sIGhhc091
dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50ID0gIWNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENv
bnRhaW5pbmdCbG9ja3MuaXNFbXB0eSgpOwogCiAgICAgICAgICAgICBtX2hhc1Zpc2libGVEZXNj
ZW5kYW50IHw9IGhhc1Zpc2libGVEZXNjZW5kYW50OwogICAgICAgICAgICAgbV9oYXNTZWxmUGFp
bnRpbmdMYXllckRlc2NlbmRhbnQgfD0gaGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50Owor
ICAgICAgICAgICAgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCB8PSBoYXNPdXRP
ZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudDsKIAotICAgICAgICAgICAgaWYgKG1faGFzVmlzaWJs
ZURlc2NlbmRhbnQgJiYgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQpCisgICAgICAg
ICAgICBpZiAobV9oYXNWaXNpYmxlRGVzY2VuZGFudCAmJiBtX2hhc1NlbGZQYWludGluZ0xheWVy
RGVzY2VuZGFudCAmJiBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KQogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKG91dE9mRmxvd0Rlc2Nl
bmRhbnRDb250YWluaW5nQmxvY2tzICYmIHJlbmRlcmVyKCkpCisgICAgICAgICAgICBvdXRPZkZs
b3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2Nrcy0+cmVtb3ZlKHJlbmRlcmVyKCkpOworCiAgICAg
ICAgIG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSA9IGZhbHNlOwogICAgICAgICBtX2hh
c1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5ID0gZmFsc2U7CisgICAgICAgIG1faGFz
T3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSA9IGZhbHNlOworCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICBpZiAob2xkSGFzT3V0T2ZGbG93UG9zaXRp
b25lZERlc2NlbmRhbnQgIT0gbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCkKKyAg
ICAgICAgICAgIHVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOworI2VuZGlmCiAgICAg
fQogCiAgICAgaWYgKG1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgewpAQCAtMTM3OCw2ICsx
NTk1LDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6YWRkQ2hpbGQoUmVuZGVyTGF5ZXIqIGNoaWxkLCBS
ZW5kZXJMYXllciogYmVmb3JlQ2hpbGQpCiAgICAgaWYgKGNoaWxkLT5pc1NlbGZQYWludGluZ0xh
eWVyKCkgfHwgY2hpbGQtPmhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCgpKQogICAgICAg
ICBzZXRBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCk7CiAKKyAg
ICBpZiAoKGNoaWxkLT5yZW5kZXJlcigpICYmIGNoaWxkLT5yZW5kZXJlcigpLT5pc091dE9mRmxv
d1Bvc2l0aW9uZWQoKSkgfHwgY2hpbGQtPmhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50
KCkpCisgICAgICAgIHNldEFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2Vu
ZGFudChjaGlsZC0+cmVuZGVyZXIoKS0+Y29udGFpbmluZ0Jsb2NrKCkpOworCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGNvbXBvc2l0b3IoKS0+bGF5ZXJXYXNBZGRlZCh0
aGlzLCBjaGlsZCk7CiAjZW5kaWYKQEAgLTE0MTAsNiArMTYzMCw5IEBAIFJlbmRlckxheWVyKiBS
ZW5kZXJMYXllcjo6cmVtb3ZlQ2hpbGQoUmVuZGVyTGF5ZXIqIG9sZENoaWxkKQogICAgICAgICBv
bGRDaGlsZC0+ZGlydHlTdGFja2luZ0NvbnRleHRaT3JkZXJMaXN0cygpOwogICAgIH0KIAorICAg
IGlmICgob2xkQ2hpbGQtPnJlbmRlcmVyKCkgJiYgb2xkQ2hpbGQtPnJlbmRlcmVyKCktPmlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpKSB8fCBvbGRDaGlsZC0+aGFzT3V0T2ZGbG93UG9zaXRpb25lZERl
c2NlbmRhbnQoKSkKKyAgICAgICAgZGlydHlBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRp
b25lZERlc2NlbmRhbnRTdGF0dXMoKTsKKwogICAgIG9sZENoaWxkLT5zZXRQcmV2aW91c1NpYmxp
bmcoMCk7CiAgICAgb2xkQ2hpbGQtPnNldE5leHRTaWJsaW5nKDApOwogICAgIG9sZENoaWxkLT5z
ZXRQYXJlbnQoMCk7CkBAIC0xNjIyLDE0ICsxODQ1LDM0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNv
bnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBMYXlv
dXRSCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJMYXllcjo6
dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdAogeworICAgIHJldHVybiBpc0NvbXBvc2l0
ZWQoKSAmJiBiYWNraW5nKCktPnNjcm9sbGluZ0xheWVyKCk7Cit9CisKK2Jvb2wgUmVuZGVyTGF5
ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmVl
ZHNDb21wb3NpdGVkU2Nyb2xsaW5nOworfQorCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOZWVk
c0NvbXBvc2l0ZWRTY3JvbGxpbmcoKQoreworICAgIGJvb2wgb2xkTmVlZHNDb21wb3NpdGVkU2Ny
b2xsaW5nID0gbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmc7CisKICAgICBpZiAoIXNjcm9sbHNP
dmVyZmxvdygpIHx8ICFhbGxvd3NTY3JvbGxpbmcoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyA9IGZhbHNlOworICAgIGVsc2Ugewor
ICAgICAgICBib29sIGZvcmNlVXNlQ29tcG9zaXRlZFNjcm9sbGluZyA9IGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKQorICAgICAgICAgICAgJiYgY2FuU2Fm
ZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpCisgICAgICAgICAgICAmJiAhaGFzT3V0T2ZG
bG93UG9zaXRpb25lZERlc2NlbmRhbnQoKTsKIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpCi0gICAgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNo
T3ZlcmZsb3dTY3JvbGxpbmcoKTsKKyAgICAgICAgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcg
PSBmb3JjZVVzZUNvbXBvc2l0ZWRTY3JvbGxpbmcgfHwgcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNl
VG91Y2hPdmVyZmxvd1Njcm9sbGluZygpOwogI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIG1fbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nID0gZm9yY2VVc2VDb21wb3NpdGVkU2Nyb2xs
aW5nOwogI2VuZGlmCisgICAgfQorCisgICAgaWYgKG9sZE5lZWRzQ29tcG9zaXRlZFNjcm9sbGlu
ZyAhPSBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZykKKyAgICAgICAgdXBkYXRlU2VsZlBhaW50
aW5nTGF5ZXIoKTsKIH0KICNlbmRpZgogCkBAIC0xNzkzLDggKzIwMzYsMTUgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6c2Nyb2xsVG8oaW50IHgsIGludCB5KQogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCktPmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1v
dXNlTW92ZUV2ZW50KTsKICAgICB9CiAKKyAgICBib29sIHJlcXVpcmVzUmVwYWludCA9IHRydWU7
CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKGNvbXBvc2l0b3Io
KS0+aW5Db21wb3NpdGluZ01vZGUoKSAmJiB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAg
ICAgICByZXF1aXJlc1JlcGFpbnQgPSBmYWxzZTsKKyNlbmRpZgorCiAgICAgLy8gSnVzdCBzY2hl
ZHVsZSBhIGZ1bGwgcmVwYWludCBvZiBvdXIgb2JqZWN0LgotICAgIGlmICh2aWV3ICYmICF1c2Vz
Q29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgIGlmICh2aWV3ICYmIHJlcXVpcmVzUmVwYWludCkK
ICAgICAgICAgcmVuZGVyZXIoKS0+cmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWlu
ZXIsIHBpeGVsU25hcHBlZEludFJlY3QobV9yZXBhaW50UmVjdCkpOwogCiAgICAgLy8gU2NoZWR1
bGUgdGhlIHNjcm9sbCBET00gZXZlbnQuCkBAIC00ODAwLDggKzUwNTAsMTEgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0cygpCiAgICAgbV96T3JkZXJMaXN0c0RpcnR5ID0gdHJ1
ZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoIXJlbmRlcmVy
KCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAgICBpZiAoIXJlbmRlcmVyKCktPmRvY3Vt
ZW50QmVpbmdEZXN0cm95ZWQoKSkgewogICAgICAgICBjb21wb3NpdG9yKCktPnNldENvbXBvc2l0
aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKKyAgICAgICAgaWYgKGFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKKyAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+
c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKTsKKyAgICB9CiAjZW5k
aWYKIH0KIApAQCAtNDgyMSw4ICs1MDc0LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Tm9y
bWFsRmxvd0xpc3QoKQogICAgIG1fbm9ybWFsRmxvd0xpc3REaXJ0eSA9IHRydWU7CiAKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVu
dEJlaW5nRGVzdHJveWVkKCkpCisgICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVz
dHJveWVkKCkpIHsKICAgICAgICAgY29tcG9zaXRvcigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05l
ZWRSZWJ1aWxkKCk7CisgICAgICAgIGlmIChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAgICAgICBjb21wb3NpdG9yKCktPnNldFNob3VsZFJl
ZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KCk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAg
LTQ5MjAsNiArNTE3Niw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMoYm9vbCBp
bmNsdWRlSGlkZGVuTGF5ZXJzLCBPd25QdHI8VmVjdG9yPFJlbmRlckxhCiAKIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCgpCiB7CisgICAgYm9vbCBzaG91bGRVcGRh
dGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIgPSBpc1N0YWNraW5nQ29u
dGV4dCgpICYmIChtX3pPcmRlckxpc3RzRGlydHkgfHwgbV9ub3JtYWxGbG93TGlzdERpcnR5KTsK
KwogICAgIHVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgdXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsK
IApAQCAtNDkyNyw2ICs1MTg1LDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0
c0lmTmVlZGVkKCkKICAgICAgICAgcmVmbGVjdGlvbkxheWVyLT51cGRhdGVaT3JkZXJMaXN0cygp
OwogICAgICAgICByZWZsZWN0aW9uTGF5ZXItPnVwZGF0ZU5vcm1hbEZsb3dMaXN0KCk7CiAgICAg
fQorCisgICAgaWYgKHNob3VsZFVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tp
bmdPcmRlcikKKyAgICAgICAgdXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2lu
Z09yZGVyKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nQW5kTGF5
ZXJMaXN0c0lmTmVlZGVkKCkKQEAgLTUwMTQsMTQgKzUyNzUsMTQgQEAgYm9vbCBSZW5kZXJMYXll
cjo6c2hvdWxkQmVOb3JtYWxGbG93T25seSgpIGNvbnN0CiAgICAgICAgICAgICAmJiAhcmVuZGVy
ZXIoKS0+aGFzQmxlbmRNb2RlKCkKICNlbmRpZgogICAgICAgICAgICAgJiYgIWlzVHJhbnNwYXJl
bnQoKQotICAgICAgICAgICAgJiYgIXVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisgICAgICAg
ICAgICAmJiAhbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CiB9CiAKIGJvb2wgUmVuZGVyTGF5
ZXI6OnNob3VsZEJlU2VsZlBhaW50aW5nTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiAhaXNO
b3JtYWxGbG93T25seSgpCiAgICAgICAgIHx8IGhhc092ZXJsYXlTY3JvbGxiYXJzKCkKLSAgICAg
ICAgfHwgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKQorICAgICAgICB8fCBuZWVkc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoKQogICAgICAgICB8fCByZW5kZXJlcigpLT5oYXNSZWZsZWN0aW9uKCkKICAg
ICAgICAgfHwgcmVuZGVyZXIoKS0+aGFzTWFzaygpCiAgICAgICAgIHx8IHJlbmRlcmVyKCktPmlz
VGFibGVSb3coKQpAQCAtNTExNyw2ICs1Mzc4LDQyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZVNjcm9sbGJhcnNBZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkK
ICAgICAgICAgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoaGFzU2Nyb2xsYWJsZUhvcml6b250YWxP
dmVyZmxvdygpIHx8IGhhc1Njcm9sbGFibGVWZXJ0aWNhbE92ZXJmbG93KCkpOwogfQogCit2b2lk
IFJlbmRlckxheWVyOjpzZXRBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2Nl
bmRhbnQoUmVuZGVyT2JqZWN0KiBjb250YWluaW5nQmxvY2spCit7CisgICAgZm9yIChSZW5kZXJM
YXllciogbGF5ZXIgPSB0aGlzOyBsYXllcjsgbGF5ZXIgPSBsYXllci0+cGFyZW50KCkpIHsKKyAg
ICAgICAgaWYgKCFsYXllci0+bV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERpcnR5
ICYmIGxheWVyLT5oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCgpKQorICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgbGF5ZXItPm1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2Nl
bmRhbnREaXJ0eSA9IGZhbHNlOworICAgICAgICBsYXllci0+bV9oYXNPdXRPZkZsb3dQb3NpdGlv
bmVkRGVzY2VuZGFudCA9IHRydWU7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
ICAgICAgICBsYXllci0+dXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisjZW5kaWYK
KworICAgICAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCkgJiYgbGF5ZXItPnJlbmRlcmVyKCkgPT0g
Y29udGFpbmluZ0Jsb2NrKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIFJl
bmRlckxheWVyOjpkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2Vu
ZGFudFN0YXR1cygpCit7CisgICAgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERp
cnR5ID0gdHJ1ZTsKKyAgICBpZiAocGFyZW50KCkpCisgICAgICAgIHBhcmVudCgpLT5kaXJ0eUFu
Y2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudFN0YXR1cygpOworfQor
Cit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVPdXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBib29sIHdhc091dE9mRmxvd1Bvc2l0aW9uZWQgPSBv
bGRTdHlsZSAmJiAob2xkU3R5bGUtPnBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbiB8fCBv
bGRTdHlsZS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKTsKKyAgICBpZiAocGFyZW50KCkg
JiYgKChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSAh
PSB3YXNPdXRPZkZsb3dQb3NpdGlvbmVkKSkgeworICAgICAgICBwYXJlbnQoKS0+ZGlydHlBbmNl
c3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnRTdGF0dXMoKTsKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgIGlmICghcmVuZGVyZXIoKS0+ZG9j
dW1lbnRCZWluZ0Rlc3Ryb3llZCgpICYmIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoKSkKKyAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0U2hvdWxkUmVl
dmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKTsKKyNlbmRpZgorICAgIH0KK30KKwogdm9p
ZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKQogewogICAgIGJvb2wgaXNOb3JtYWxGbG93T25seSA9IHNob3VsZEJl
Tm9ybWFsRmxvd09ubHkoKTsKQEAgLTUxMzcsMTEgKzU0MzQsMTIgQEAgdm9pZCBSZW5kZXJMYXll
cjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKQogICAgICAgICBtX21hcnF1ZWUuY2xlYXIoKTsKICAgICB9CiAKLSAgICB1cGRhdGVTdGFj
a2luZ0NvbnRleHRzQWZ0ZXJTdHlsZUNoYW5nZShvbGRTdHlsZSk7CiAgICAgdXBkYXRlU2Nyb2xs
YmFyc0FmdGVyU3R5bGVDaGFuZ2Uob2xkU3R5bGUpOworICAgIHVwZGF0ZVN0YWNraW5nQ29udGV4
dHNBZnRlclN0eWxlQ2hhbmdlKG9sZFN0eWxlKTsKICAgICAvLyBPdmVybGF5IHNjcm9sbGJhcnMg
Y2FuIG1ha2UgdGhpcyBsYXllciBzZWxmLXBhaW50aW5nIHNvIHdlIG5lZWQKICAgICAvLyB0byBy
ZWNvbXB1dGUgdGhlIGJpdCBvbmNlIHNjcm9sbGJhcnMgaGF2ZSBiZWVuIHVwZGF0ZWQuCiAgICAg
dXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIoKTsKKyAgICB1cGRhdGVPdXRPZkZsb3dQb3NpdGlvbmVk
KG9sZFN0eWxlKTsKIAogICAgIGlmICghaGFzUmVmbGVjdGlvbigpICYmIG1fcmVmbGVjdGlvbikK
ICAgICAgICAgcmVtb3ZlUmVmbGVjdGlvbigpOwpAQCAtNTE3MCw2ICs1NDY4LDcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5
bGUqIG9sZFN0eWxlKQogI2VuZGlmCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CiAgICAgaWYgKGNvbXBvc2l0
b3IoKS0+dXBkYXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKHRoaXMpKQogICAgICAgICBjb21wb3Np
dG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICAgICBlbHNlIGlmIChv
bGRTdHlsZSAmJiAob2xkU3R5bGUtPmNsaXAoKSAhPSByZW5kZXJlcigpLT5zdHlsZSgpLT5jbGlw
KCkgfHwgb2xkU3R5bGUtPmhhc0NsaXAoKSAhPSByZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNDbGlw
KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBjYzZiOThhMjI1
MDYxZmUyNTBjNzBjZmIzNDQxMzlhYjI3M2ZhNzlhLi5hNjkwMWRhMTE0MDQ1ZDI4MDE3ZjBkY2E5
NjNkYmQ3YjUwMjM3MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApA
QCAtNDAzLDYgKzQwMywxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRp
b25zQWZ0ZXJPdmVyZmxvd1Njcm9sbCgpOwogICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNB
ZnRlckRvY3VtZW50U2Nyb2xsKCk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgdm9pZCBwb3NpdGlvbk92ZXJmbG93Q29udHJvbHNBZnRlclByb21vdGlvblRvQ29tcG9z
aXRlZFNjcm9sbGluZygpOworI2VuZGlmCiAgICAgCiAgICAgYm9vbCBpc1BhZ2luYXRlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNQYWdpbmF0ZWQ7IH0KIApAQCAtNDYzLDYgKzQ2NywxMyBAQCBwdWJs
aWM6CiAgICAgLy8gUGFydCBvZiB0aGUgaXNzdWUgaXMgd2l0aCBzdWJ0cmVlIHJlbGF5b3V0OiB3
ZSBkb24ndCBjaGVjayBpZiBvdXIgYW5jZXN0b3JzIGhhdmUgc29tZSBkZXNjZW5kYW50IGZsYWdz
IGRpcnR5LCBtaXNzaW5nIHNvbWUgdXBkYXRlcy4KICAgICBib29sIGhhc1NlbGZQYWludGluZ0xh
eWVyRGVzY2VuZGFudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNj
ZW5kYW50OyB9CiAKKyAgICAvLyBUaGlzIHJldHVybnMgdHJ1ZSBpZiB3ZSBoYXZlIGFuIG91dCBv
ZiBmbG93IHBvc2l0aW9uZWQgZGVzY2VuZGFudCB3aG9zZQorICAgIC8vIGNvbnRhaW5pbmcgYmxv
Y2sgaXMgbm90IGEgZGVzY2VuZGFudCBvZiBvdXJzLiBJZiB0aGlzIGlzIHRydWUsIHdlIGNhbm5v
dAorICAgIC8vIGF1dG9tYXRpY2FsbHkgb3B0IGludG8gY29tcG9zaXRlZCBzY3JvbGxpbmcgc2lu
Y2UgdGhpcyBvdXQgb2YgZmxvdworICAgIC8vIHBvc2l0aW9uZWQgZGVzY2VuZGFudCB3b3VsZCBi
ZWNvbWUgY2xpcHBlZCBieSB1cywgcG9zc2libHkgYWx0ZXJpbmcgdGhlIAorICAgIC8vIHJlbmRl
cmluZyBvZiB0aGUgcGFnZS4KKyAgICBib29sIGhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5k
YW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudDsg
fQorCiAgICAgLy8gR2V0cyB0aGUgbmVhcmVzdCBlbmNsb3NpbmcgcG9zaXRpb25lZCBhbmNlc3Rv
ciBsYXllciAoYWxzbyBpbmNsdWRlcwogICAgIC8vIHRoZSA8aHRtbD4gbGF5ZXIgYW5kIHRoZSBy
b290IGxheWVyKS4KICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nUG9zaXRpb25lZEFuY2VzdG9y
KCkgY29uc3Q7CkBAIC02NTUsNiArNjY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR3JhcGhp
Y3NMYXllciogbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwogICAgIHZpcnR1YWwg
R3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBPVkVSUklERTsKKyAgICBib29s
IG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0OwogI2Vsc2UKICAgICBib29sIGlzQ29t
cG9zaXRlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNDb21wb3NpdGVk
TWFzaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC03MjQsNiArNzM2LDEwIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5k
YW50KCk7CiAgICAgdm9pZCBkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRl
c2NlbmRhbnRTdGF0dXMoKTsKIAorICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92
ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlRGVzY2VuZGFudHNB
cmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyKCk7CisgICAgdm9pZCB1cGRhdGVEZXNjZW5kYW50
c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXJSZWN1cnNpdmUoY29uc3QgSGFzaE1hcDxjb25z
dCBSZW5kZXJMYXllciosIGludD4mLCBpbnQmIG1pbkluZGV4LCBpbnQmIG1heEluZGV4LCBpbnQm
IGNvdW50LCBib29sIGZpcnN0SXRlcmF0aW9uKTsKKwogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRS
ZWN0cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25z
dCBSZW5kZXJHZW9tZXRyeU1hcCogPSAwKTsKICAgICB2b2lkIGNvbXB1dGVSZXBhaW50UmVjdHNJ
bmNsdWRpbmdEZXNjZW5kYW50cygpOwogICAgIHZvaWQgY2xlYXJSZXBhaW50UmVjdHMoKTsKQEAg
LTc0MCw2ICs3NTYsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVNjcm9sbGJhcnNBZnRl
clN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAgICAgdm9pZCB1cGRh
dGVTY3JvbGxiYXJzQWZ0ZXJMYXlvdXQoKTsKIAorICAgIHZvaWQgc2V0QW5jZXN0b3JDaGFpbkhh
c091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KFJlbmRlck9iamVjdCogY29udGFpbmluZ0Js
b2NrKTsKKyAgICB2b2lkIGRpcnR5QW5jZXN0b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9uZWRE
ZXNjZW5kYW50U3RhdHVzKCk7CisgICAgdm9pZCB1cGRhdGVPdXRPZkZsb3dQb3NpdGlvbmVkKGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CisKKyAgICB2b2lkIHVwZGF0ZU5lZWRzQ29tcG9z
aXRlZFNjcm9sbGluZygpOworCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBwb3NpdGlvbiBj
aGFuZ2VkLgogICAgIGJvb2wgdXBkYXRlTGF5ZXJQb3NpdGlvbigpOwogCkBAIC04NzUsNyArODk3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpcnR5QW5jZXN0b3JDaGFpblZpc2libGVEZXNjZW5k
YW50U3RhdHVzKCk7CiAgICAgdm9pZCBzZXRBbmNlc3RvckNoYWluSGFzVmlzaWJsZURlc2NlbmRh
bnQoKTsKIAotICAgIHZvaWQgdXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKCk7CisgICAg
dm9pZCB1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoSGFzaFNldDxjb25zdCBSZW5kZXJP
YmplY3QqPiogb3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MgPSAwKTsKIAogICAg
IC8vIFRoaXMgZmxhZyBpcyBjb21wdXRlZCBieSBSZW5kZXJMYXllckNvbXBvc2l0b3IsIHdoaWNo
IGtub3dzIG1vcmUgYWJvdXQgM2QgaGllcmFyY2hpZXMgdGhhbiB3ZSBkby4KICAgICB2b2lkIHNl
dEhhczNEVHJhbnNmb3JtZWREZXNjZW5kYW50KGJvb2wgYikgeyBtX2hhczNEVHJhbnNmb3JtZWRE
ZXNjZW5kYW50ID0gYjsgfQpAQCAtOTMyLDYgKzk1NCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gcmVh
c29uKSB7IG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA9IHJlYXNvbjsgfQogICAgIEluZGly
ZWN0Q29tcG9zaXRpbmdSZWFzb24gaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+KG1faW5kaXJlY3RD
b21wb3NpdGluZ1JlYXNvbik7IH0KICAgICBib29sIG11c3RDb21wb3NpdGVGb3JJbmRpcmVjdFJl
YXNvbnMoKSBjb25zdCB7IHJldHVybiBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247IH0KKwor
ICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB6IG9yZGVyaW5nIHdvdWxkIG5vdCBjaGFuZ2UgaWYgdGhp
cyBsYXllciB3ZXJlIHRvIGVzdGFibGlzaCBhIHN0YWNraW5nIGNvbnRleHQuCisgICAgYm9vbCBj
YW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAogICAg
IGZyaWVuZCBjbGFzcyBSZW5kZXJMYXllckJhY2tpbmc7CkBAIC05NzIsNiArOTk3LDE5IEBAIHBy
b3RlY3RlZDoKICAgICBib29sIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50IDogMTsK
ICAgICBib29sIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkgOiAxOwogCisg
ICAgLy8gSWYgd2UgaGF2ZSBubyBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzIGFu
ZCBubyBub24tZGVzY2VuZGFudAorICAgIC8vIGFwcGVhcnMgYmV0d2VlbiBvdXIgZGVzY2VuZGFu
dHMgaW4gc3RhY2tpbmcgb3JkZXIsIHRoZW4gd2UgbWF5IGJlY29tZSBhCisgICAgLy8gc3RhY2tp
bmcgY29udGV4dC4KKyAgICBib29sIG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQg
OiAxOworICAgIGJvb2wgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERpcnR5IDog
MTsKKworICAgIGJvb2wgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcgOiAxOworCisgICAgLy8g
SWYgdGhpcyBpcyB0cnVlLCB0aGVuIG5vIG5vbi1kZXNjZW5kYW50IGFwcGVhcnMgYmV0d2VlbiBh
bnkgb2Ygb3VyCisgICAgLy8gZGVzY2VuZGFudHMgaW4gc3RhY2tpbmcgb3JkZXIuIFRoaXMgaXMg
b25lIG9mIHRoZSByZXF1aXJlbWVudHMgb2YgYmVpbmcKKyAgICAvLyBhYmxlIHRvIHNhZmVseSBi
ZWNvbWUgYSBzdGFja2luZyBjb250ZXh0LgorICAgIGJvb2wgbV9kZXNjZW5kYW50c0FyZUNvbnRp
Z3VvdXNJblN0YWNraW5nT3JkZXIgOiAxOworCiAgICAgY29uc3QgYm9vbCBtX2lzUm9vdExheWVy
IDogMTsKIAogICAgIGJvb2wgbV91c2VkVHJhbnNwYXJlbmN5IDogMTsgLy8gVHJhY2tzIHdoZXRo
ZXIgd2UgbmVlZCB0byBjbG9zZSBhIHRyYW5zcGFyZW50IGxheWVyLCBpLmUuLCB3aGV0aGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4
IDZmMzA3YzA4MWFkOWIyZjY2ZjNhNDI2OTg3NTYzYTJjYTlhMDY2MGUuLjg3NzNjZjQ1Njg4NzVl
Mzc0OTQyM2VjNTRjMzllNzA4ZGE5ZTNjYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0zNDIsNyArMzQyLDcgQEAgc3RhdGljIGJv
b2wgaGFzTm9uWmVyb1RyYW5zZm9ybU9yaWdpbihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KQogc3RhdGljIGJvb2wgbGF5ZXJPckFuY2VzdG9ySXNUcmFuc2Zvcm1lZE9yVXNpbmdDb21wb3Np
dGVkU2Nyb2xsaW5nKFJlbmRlckxheWVyKiBsYXllcikKIHsKICAgICBmb3IgKFJlbmRlckxheWVy
KiBjdXJyID0gbGF5ZXI7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewotICAgICAgICBp
ZiAoY3Vyci0+aGFzVHJhbnNmb3JtKCkgfHwgY3Vyci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmco
KSkKKyAgICAgICAgaWYgKGN1cnItPmhhc1RyYW5zZm9ybSgpIHx8IGN1cnItPm5lZWRzQ29tcG9z
aXRlZFNjcm9sbGluZygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIApA
QCAtNDUxLDcgKzQ1MSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGlj
c0xheWVyQ29uZmlndXJhdGlvbigpCiAgICAgYm9vbCBuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBpbmdM
YXllciA9IGNvbXBvc2l0b3ItPmNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50cyhtX293bmluZ0xh
eWVyKTsKIAogICAgIC8vIE91ciBzY3JvbGxpbmcgbGF5ZXIgd2lsbCBjbGlwLgotICAgIGlmICht
X293bmluZ0xheWVyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQorICAgIGlmIChtX293bmlu
Z0xheWVyLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKICAgICAgICAgbmVlZHNEZXNjZW5k
ZW50c0NsaXBwaW5nTGF5ZXIgPSBmYWxzZTsKIAogICAgIGlmICh1cGRhdGVDbGlwcGluZ0xheWVy
cyhjb21wb3NpdG9yLT5jbGlwcGVkQnlBbmNlc3RvcihtX293bmluZ0xheWVyKSwgbmVlZHNEZXNj
ZW5kZW50c0NsaXBwaW5nTGF5ZXIpKQpAQCAtNDYwLDcgKzQ2MCw3IEBAIGJvb2wgUmVuZGVyTGF5
ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigpCiAgICAgaWYgKHVw
ZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMocmVxdWlyZXNIb3Jpem9udGFsU2Nyb2xsYmFyTGF5
ZXIoKSwgcmVxdWlyZXNWZXJ0aWNhbFNjcm9sbGJhckxheWVyKCksIHJlcXVpcmVzU2Nyb2xsQ29y
bmVyTGF5ZXIoKSkpCiAgICAgICAgIGxheWVyQ29uZmlnQ2hhbmdlZCA9IHRydWU7CiAKLSAgICBp
ZiAodXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKG1fb3duaW5nTGF5ZXItPnVzZXNDb21wb3NpdGVkU2Ny
b2xsaW5nKCkpKQorICAgIGlmICh1cGRhdGVTY3JvbGxpbmdMYXllcnMobV9vd25pbmdMYXllci0+
bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpKQogICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQg
PSB0cnVlOwogCiAgICAgaWYgKGxheWVyQ29uZmlnQ2hhbmdlZCkKQEAgLTYwNCw3ICs2MDQsNyBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCkK
ICAgICBlbHNlCiAgICAgICAgIGdyYXBoaWNzTGF5ZXJQYXJlbnRMb2NhdGlvbiA9IHJlbmRlcmVy
KCktPnZpZXcoKS0+ZG9jdW1lbnRSZWN0KCkubG9jYXRpb24oKTsKIAotICAgIGlmIChjb21wQW5j
ZXN0b3IgJiYgY29tcEFuY2VzdG9yLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKSB7CisgICAg
aWYgKGNvbXBBbmNlc3RvciAmJiBjb21wQW5jZXN0b3ItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGlu
ZygpKSB7CiAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9SZW5kZXJCb3goY29tcEFu
Y2VzdG9yLT5yZW5kZXJlcigpKTsKICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXQgPSBjb21w
QW5jZXN0b3ItPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOwogICAgICAgICBJbnRQb2ludCBzY3Jv
bGxPcmlnaW4ocmVuZGVyQm94LT5ib3JkZXJMZWZ0KCksIHJlbmRlckJveC0+Ym9yZGVyVG9wKCkp
OwpAQCAtOTYzLDYgKzk2MywyMyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cG9zaXRpb25P
dmVyZmxvd0NvbnRyb2xzTGF5ZXJzKGNvbnN0IEludFNpemUmIG9mZnNldEZybwogICAgIH0KIH0K
IAorYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6Omhhc1VucG9zaXRpb25lZE92ZXJmbG93Q29udHJv
bHNMYXllcnMoKSBjb25zdAoreworICAgIGlmIChHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVy
Rm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpKQorICAgICAgICBpZiAoIWxheWVyLT5kcmF3c0NvbnRl
bnQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKEdyYXBoaWNzTGF5ZXIq
IGxheWVyID0gbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpKQorICAgICAgICBpZiAoIWxheWVy
LT5kcmF3c0NvbnRlbnQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKEdy
YXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSkKKyAgICAgICAgaWYg
KCFsYXllci0+ZHJhd3NDb250ZW50KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUZvcmVn
cm91bmRMYXllcihib29sIG5lZWRzRm9yZWdyb3VuZExheWVyKQogewogICAgIGJvb2wgbGF5ZXJD
aGFuZ2VkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmgKaW5kZXggYmZkZTNiOTg5YjdkOWI1YjIyYWNlNDk0MjY2ZGJlZDI2MjkzYWUzMC4u
ZjBlY2Y1NzcyMGI0ZmQzMTFlNjcwZGZmYzM0MDY3NmNjMzlmMmJiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTM3LDYgKzEzNyw3IEBA
IHB1YmxpYzoKICAgICAKICAgICB2b2lkIHVwZGF0ZUFmdGVyV2lkZ2V0UmVzaXplKCk7CiAgICAg
dm9pZCBwb3NpdGlvbk92ZXJmbG93Q29udHJvbHNMYXllcnMoY29uc3QgSW50U2l6ZSYgb2Zmc2V0
RnJvbVJvb3QpOworICAgIGJvb2wgaGFzVW5wb3NpdGlvbmVkT3ZlcmZsb3dDb250cm9sc0xheWVy
cygpIGNvbnN0OwogCiAgICAgYm9vbCB1c2luZ1RpbGVDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dXNpbmdUaWxlZENhY2hlTGF5ZXI7IH0KICAgICBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAppbmRleCAxNzQxZmIwNWVjNTEyMWMwYWYyM2Q3M2ExYmY1YWU2ZDZhNTYyZGMw
Li5hYjg0YmE5Yzc5NzdjNWY5ZDA4NTI5NzQyMDE0NmU5ZTAzYTNjYTcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtOTkw
LDYgKzk5MCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRp
bmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAKICAgICBpZiAob3ZlcmxhcE1h
cCkKICAgICAgICAgb3ZlcmxhcE1hcC0+Z2VvbWV0cnlNYXAoKS5wb3BNYXBwaW5nc1RvQW5jZXN0
b3IoYW5jZXN0b3JMYXllcik7CisKKyAgICBpZiAobGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xs
aW5nKCkpCisgICAgICAgIGxheWVyLT5wb3NpdGlvbk92ZXJmbG93Q29udHJvbHNBZnRlclByb21v
dGlvblRvQ29tcG9zaXRlZFNjcm9sbGluZygpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6c2V0Q29tcG9zaXRpbmdQYXJlbnQoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIsIFJlbmRl
ckxheWVyKiBwYXJlbnRMYXllcikKQEAgLTIwMTAsNyArMjAxMyw3IEBAIGJvb2wgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24oUmVuZGVyT2JqZWN0
KiByZW5kZXJlCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKSBjb25zdAog
ewotICAgIHJldHVybiBsYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICByZXR1
cm4gbGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwogfQogCiBib29sIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24oUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA3N2QyZmVkN2Y0ZjYwYWIyZDI3NmFiMWYw
NDg3NDYzMjc0OTcwOTBjLi5hMTE4OTgzOTlkMjYyYmJiN2RhY2JkMGZhYjJhZmIwOGJlOTIxYmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oCkBAIC0yMjksNiArMjI5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VHJhY2tzUmVwYWlu
dHMoYm9vbCk7CiAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
KSBjb25zdDsKKyAgICB2b2lkIHNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5
b3V0KCkgeyBtX3JlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0ID0gdHJ1ZTsgfQogCiAg
ICAgZW51bSBGaXhlZFBvc2l0aW9uTGF5ZXJOb3RDb21wb3NpdGVkUmVhc29uIHsKICAgICAgICAg
Tm9SZWFzb24sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApp
bmRleCBjNzQ4ZWFiYzRhZjJmMWMxMWE1M2YzNjZmOTYxM2IxZTlmNzhlMTU2Li5lMGI4OWRmNmVk
MTc3MTJjYTcyNzA3Y2Y5M2NjZjdlMTgzZDg1M2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTIxMSw2ICsyMTEsMTIgQEAgdm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBl
bmFibGVkLCBFeGMKICAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
U2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRp
bmdzKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJm
bG93U2Nyb2xsRW5hYmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggZjM3OWYyODU4ZDk4M2VmOThl
N2UyZTBiZWVlY2RkYTk4MWRhMmZmNi4uMWZjN2YyZDRjNmIxMjM0MDRiYjAyZWI5MzE0MDc1ZTNh
NDczNGE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAg
LTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9k
ZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yRml4ZWRQb3NpdGlvbihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaWRsCmluZGV4IGQzN2IzZjhjMjNhMDJkYzdhNTMyNjBhNTdiNDIxYjVmOTdiODI2ZDYu
LjdlNTcxY2FhN2ZhMTUyZjNiNjE3MDhiNDUyYmNiODBlYjhjZmQwZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMjksNiArMjksNyBAQAogICAg
IHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3Np
dGlvbihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQg
c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxl
ZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zv
ck92ZXJmbG93U2Nyb2xsKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxl
ZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNF
bmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9p
ZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBhZmU1ZTY0MTk2NjIwZmUzMmUyOTVmYzFlZWZjZWRiNTVmOWVh
YzVhLi5jNDg5NzFlMjQxMDY4NDZjY2E3NjNjMGY5NGYxZWU1ZTc4MGQ2N2RjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTItMTItMTMgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgQXV0b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgdmFyaW91
cyBjb25maWd1cmF0aW9ucyBvZiBlbGVtZW50cyB0byBlbnN1cmUgdGhhdCB3ZSBvbmx5IGF1dG9t
YXRpY2FsbHkgb3B0IGludG8KKyAgICAgICAgY29tcG9zaXRlZCBzY3JvbGxpbmcgd2hlbiBpdCBp
cyBzYWZlIHRvIGRvIHNvLgorCisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21h
dGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8t
Y29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMTMgIEpvYW5tYXJp
ZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEV4cG9zZSBBUklB
IHJvbGVzIGZvciB0YWIsIHRhYnBhbmVsIGFuZCB0YWJsaXN0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0
ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRlZWY1MTUwMmI3OWRkMDRkYTQ3OGQ1MWVmMDI0OTcxOGE2NDkyNzgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRv
bWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyNyBAQAorSXRlcmF0aW9uIDA6IFBhc3NlZAorSXRlcmF0aW9uIDAsIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiAxOiBQYXNzZWQKK0l0ZXJhdGlvbiAxLCBsYXllciB0cmVlCitJdGVyYXRp
b24gMjogUGFzc2VkCitJdGVyYXRpb24gMiwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDM6IFBhc3Nl
ZAorSXRlcmF0aW9uIDMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0OiBQYXNzZWQKK0l0ZXJhdGlv
biA0LCBsYXllciB0cmVlCitJdGVyYXRpb24gNTogUGFzc2VkCitJdGVyYXRpb24gNSwgbGF5ZXIg
dHJlZQorSXRlcmF0aW9uIDY6IFBhc3NlZAorSXRlcmF0aW9uIDYsIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiA3OiBQYXNzZWQKK0l0ZXJhdGlvbiA3LCBsYXllciB0cmVlCitJdGVyYXRpb24gODogUGFz
c2VkCitJdGVyYXRpb24gOCwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDk6IFBhc3NlZAorSXRl
cmF0aW9uIDksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxMDogUGFzc2VkCitJdGVyYXRpb24g
MTAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxMTogUGFzc2VkCitJdGVyYXRpb24gMTEsIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiAxMjogUGFzc2VkCitJdGVyYXRpb24gMTIsIG5vIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiAxMzogUGFzc2VkCitJdGVyYXRpb24gMTMsIG5vIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiAxNDogUGFzc2VkCitJdGVyYXRpb24gMTQsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAx
NTogUGFzc2VkCitJdGVyYXRpb24gMTUsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxNjogUGFz
c2VkCitJdGVyYXRpb24gMTYsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxNzogUGFzc2VkCitJ
dGVyYXRpb24gMTcsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxODogUGFzc2VkCitJdGVyYXRp
b24gMTgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxOTogUGFzc2VkCitJdGVyYXRpb24gMTks
IG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyMDogUGFzc2VkCitJdGVyYXRpb24gMjAsIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiAyMTogUGFzc2VkCitJdGVyYXRpb24gMjEsIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiAyMjogUGFzc2VkCitJdGVyYXRpb24gMjIsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAy
MzogUGFzc2VkCitJdGVyYXRpb24gMjMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNDogUGFzc2Vk
CitJdGVyYXRpb24gMjQsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNTogUGFzc2VkCitJdGVyYXRp
b24gMjUsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNjogUGFzc2VkCitJdGVyYXRpb24gMjYsIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiAyNzogUGFzc2VkCitJdGVyYXRpb24gMjcsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiAyODogUGFzc2VkCitJdGVyYXRpb24gMjgsIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biAyOTogUGFzc2VkCitJdGVyYXRpb24gMjksIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMDogUGFz
c2VkCitJdGVyYXRpb24gMzAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMTogUGFzc2VkCitJdGVy
YXRpb24gMzEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMjogUGFzc2VkCitJdGVyYXRpb24gMzIs
IGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMzogUGFzc2VkCitJdGVyYXRpb24gMzMsIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiAzNDogUGFzc2VkCitJdGVyYXRpb24gMzQsIG5vIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiAzNTogUGFzc2VkCitJdGVyYXRpb24gMzUsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biAzNjogUGFzc2VkCitJdGVyYXRpb24gMzYsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzNzogUGFz
c2VkCitJdGVyYXRpb24gMzcsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzODogUGFzc2VkCitJdGVy
YXRpb24gMzgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzOTogUGFzc2VkCitJdGVyYXRpb24g
MzksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0MDogUGFzc2VkCitJdGVyYXRpb24gNDAsIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiA0MTogUGFzc2VkCitJdGVyYXRpb24gNDEsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiA0MjogUGFzc2VkCitJdGVyYXRpb24gNDIsIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biA0MzogUGFzc2VkCitJdGVyYXRpb24gNDMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NDogUGFz
c2VkCitJdGVyYXRpb24gNDQsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NTogUGFzc2VkCitJdGVy
YXRpb24gNDUsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NjogUGFzc2VkCitJdGVyYXRpb24gNDYs
IGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NzogUGFzc2VkCitJdGVyYXRpb24gNDcsIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiA0ODogUGFzc2VkCitJdGVyYXRpb24gNDgsIG5vIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiA0OTogUGFzc2VkCitJdGVyYXRpb24gNDksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biA1MDogUGFzc2VkCitJdGVyYXRpb24gNTAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MTogUGFz
c2VkCitJdGVyYXRpb24gNTEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MjogUGFzc2VkCitJdGVy
YXRpb24gNTIsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MzogUGFzc2VkCitJdGVyYXRpb24gNTMs
IGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1NDogUGFzc2VkCitJdGVyYXRpb24gNTQsIG5vIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiA1NTogUGFzc2VkCitJdGVyYXRpb24gNTUsIG5vIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiA1NjogUGFzc2VkCitJdGVyYXRpb24gNTYsIG5vIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiA1NzogUGFzc2VkCitJdGVyYXRpb24gNTcsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1
ODogUGFzc2VkCitJdGVyYXRpb24gNTgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1OTogUGFz
c2VkCitJdGVyYXRpb24gNTksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2MDogUGFzc2VkCitJ
dGVyYXRpb24gNjAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2MTogUGFzc2VkCitJdGVyYXRpb24g
NjEsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2MjogUGFzc2VkCitJdGVyYXRpb24gNjIsIGxh
eWVyIHRyZWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
YXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3Np
dGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNGQzZTgwMDQ2YjZhODI2ZGIxMGJlYzZk
MmJkOTc4MTUzNTZjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0
bWwKQEAgLTAsMCArMSwyMzAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
SFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+
CisgIDx0aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZzwvdGl0bGU+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmNvbnRhaW5lciB7Cisg
ICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgb3ZlcmZsb3c6
IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgIH0KKworICAgIC5zY3JvbGxlZCB7CisgICAgICB3aWR0aDogMTgwcHg7CisgICAg
ICBoZWlnaHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmF5OworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgIC5wb3Np
dGlvbmVkIHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAgICAgIGhlaWdodDogMjQwcHg7CisgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICB9CisKKyAgICAjcHJlZGVjZXNzb3IgeworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDog
MjBweDsKKyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsKKyAgICAgIGxlZnQ6IDE2MHB4OworICAg
ICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNkZXNjZW5kYW50IHsKKyAgICAgIGxlZnQ6IDkw
cHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAg
ICAgei1pbmRleDogLTIwOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICB2YXIgZGVidWdNb2RlID0gZmFsc2U7
CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKHRydWUpOwor
CisgICAgZnVuY3Rpb24gd3JpdGUoc3RyKQorICAgIHsKKyAgICAgIHZhciBwcmUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOworICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShzdHIgKyAnXG4nKTsKKyAgICAgIHByZS5hcHBlbmRDaGlsZCh0ZXh0KTsK
KyAgICB9CisKKyAgICB2YXIgaXRlcmF0aW9uID0gMDsKKyAgICBmdW5jdGlvbiBwcmludFJlc3Vs
dChleHBlY3RlZFJlc3VsdCkKKyAgICB7CisgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYy4K
KyAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCisgICAgICBpZiAod2luZG93LmludGVy
bmFscykgeworICAgICAgICAvLyBGb3JjZSBhIGxheW91dC4KKyAgICAgICAgd2luZG93LmludGVy
bmFscy5ib3VuZGluZ0JveChjb250YWluZXIpOworICAgICAgICB2YXIgbGF5ZXJUcmVlID0gd2lu
ZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOworCisgICAgICAgIGlmICgh
bGF5ZXJUcmVlID09ICFleHBlY3RlZFJlc3VsdCkKKyAgICAgICAgICB3cml0ZSgnSXRlcmF0aW9u
ICcgKyBpdGVyYXRpb24udG9TdHJpbmcoKSArICc6IFBhc3NlZCcpCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICB3cml0ZSgnSXRlcmF0aW9uICcgKyBpdGVyYXRpb24udG9TdHJpbmcoKSArICc6IEZB
SUxFRCcpCisKKyAgICAgICAgaWYgKGxheWVyVHJlZSkgeworICAgICAgICAgIHdyaXRlKCdJdGVy
YXRpb24gJyArIGl0ZXJhdGlvbi50b1N0cmluZygpICsgJywgbGF5ZXIgdHJlZScpOworICAgICAg
ICAgIGlmIChkZWJ1Z01vZGUpCisgICAgICAgICAgICAgIHdyaXRlKGxheWVyVHJlZSk7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgIHdyaXRlKCdJdGVyYXRpb24gJyArIGl0ZXJhdGlvbi50b1N0
cmluZygpICsgJywgbm8gbGF5ZXIgdHJlZScpOworICAgICAgfQorICAgICAgaXRlcmF0aW9uKys7
CisgICAgfQorCisgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICB7CisgICAgICB2YXIgcHJlZGVj
ZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlZGVjZXNzb3InKTsKKyAgICAgIHZh
ciBzdWNjZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VjY2Vzc29yJyk7CisgICAg
ICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwor
ICAgICAgdmFyIGZpcnN0Q2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3RDaGls
ZCcpOworICAgICAgdmFyIHNlY29uZENoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nl
Y29uZENoaWxkJyk7CisgICAgICB2YXIgZGVzY2VuZGFudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdkZXNjZW5kYW50Jyk7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICBkZXNjZW5k
YW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisKKyAgICAgIC8vIGRlc2NlbmRhbnRzIGluIHN0
YWNraW5nIG9yZGVyLgorICAgICAgZm9yIChpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICBm
b3IgKGogPSAwOyBqIDwgNTsgKytqKSB7CisgICAgICAgICAgZm9yIChrID0gMDsgayA8IDI7ICsr
aykgeworICAgICAgICAgICAgZm9yIChsID0gMDsgbCA8IDI7ICsrbCkgeworICAgICAgICAgICAg
ICB2YXIgbWluWkluZGV4ID0gMDsKKyAgICAgICAgICAgICAgdmFyIG1heFpJbmRleCA9IDA7Cisg
ICAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0
eWxlLnpJbmRleCA9ICcxJzsKKyAgICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5k
ZXggPSAnMyc7CisgICAgICAgICAgICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgICAg
fSBlbHNlIGlmIChpID09IDEpIHsKKyAgICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJ
bmRleCA9ICctMSc7CisgICAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0g
Jy0zJzsKKyAgICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMzsKKyAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICctMSc7Cisg
ICAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAg
ICAgICAgIG1pblpJbmRleCA9IC0xOworICAgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7Cisg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB2YXIgc2libGluZyA9IHByZWRlY2Vzc29y
OworICAgICAgICAgICAgICB2YXIgdG9IaWRlID0gc3VjY2Vzc29yOworICAgICAgICAgICAgICBp
ZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgICAgc2libGluZyA9IHN1Y2Nlc3NvcjsKKyAgICAg
ICAgICAgICAgICB0b0hpZGUgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgIC8vIFRoZSByZXN1bHQgc2hvdWxkIGJlIHRoZSBzYW1lIGlmIHRoZSB0aGUgZWxl
bWVudCB0byBoaWRlIGlzCisgICAgICAgICAgICAgIC8vIGRpc3BsYXk6aGlkZGVuIG9yIGRpc3Bs
YXk6bm9uZS4KKyAgICAgICAgICAgICAgaWYgKGwgPT0gMCkKKyAgICAgICAgICAgICAgICB0b0hp
ZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRvSGlkZS5zdHlsZS5kaXNwbGF5ID0gJ2hpZGRlbic7CisKKyAgICAgICAgICAgICAg
c2libGluZy5zdHlsZS5kaXNwbGF5ID0gJyc7CisKKyAgICAgICAgICAgICAgaWYgKGogPT0gMCkK
KyAgICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAxKS50
b1N0cmluZygpOworICAgICAgICAgICAgICBlbHNlIGlmIChqID09IDEpCisgICAgICAgICAgICAg
ICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsKKyAg
ICAgICAgICAgICAgZWxzZSBpZiAoaiA9PSAyKQorICAgICAgICAgICAgICAgIHNpYmxpbmcuc3R5
bGUuekluZGV4ID0gbWF4WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgIGVsc2UgaWYg
KGogPT0gMykKKyAgICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJbmRl
eC50b1N0cmluZygpOworICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2libGlu
Zy5zdHlsZS56SW5kZXggPSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmluZygp
OworCisgICAgICAgICAgICAgIHZhciBhcmVDb250aWd1b3VzID0gZmFsc2U7CisgICAgICAgICAg
ICAgIGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA+IG1heFpJbmRleCB8fAorICAgICAgICAgICAg
ICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPCBtaW5aSW5kZXgpIHsKKyAgICAgICAgICAgICAg
ICAgIC8vIHNpYmxpbmcgaXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2Ygb3VyIGRlc2NlbmRhbnRzLgor
ICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IHRydWU7CisgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoc2libGluZy5zdHlsZS56SW5kZXggPCBtYXhaSW5kZXggJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA+IG1pblpJbmRleCkgeworICAgICAg
ICAgICAgICAgICAgLy8gc2libGluZyBpcyBiZXR3ZWVuIG91ciBkZXNjZW5kYW50cy4KKyAgICAg
ICAgICAgICAgICAgIGFyZUNvbnRpZ3VvdXMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgfSBlbHNl
IGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA9PSBtaW5aSW5kZXgpIHsKKyAgICAgICAgICAgICAg
ICAgIGlmIChtaW5aSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgIC8vIHNpYmxp
bmcgbGllcyBiZXR3ZWVuIHVzIChub3JtYWwgZmxvdykgYW5kIG91ciBwb3MKKyAgICAgICAgICAg
ICAgICAgICAgICAvLyB6LW9yZGVyIGRlc2NlbmRhbnRzLCBzbyB3ZSBhcmUgbm90IGNvbnRpZ3Vv
dXMuCisgICAgICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAvLyBzaWJsaW5nJ3Mg
ekluZGV4IG1hdGNoZXMgdGhlIG1pbjsgd2UncmUgb25seSBvayBpZiBpdAorICAgICAgICAgICAg
ICAgICAgICAgIC8vIGFwcGVhcnMgZmlyc3QuCisgICAgICAgICAgICAgICAgICAgICAgYXJlQ29u
dGlndW91cyA9IGsgPT0gMDsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSBl
bHNlIGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA9PSBtYXhaSW5kZXgpIHsKKyAgICAgICAgICAg
ICAgICAgIGlmIChtYXhaSW5kZXggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgLy8gc2li
bGluZyBsaWVzIGJldHdlZW4gdXMgKG5vcm1hbCBmbG93KSBhbmQgbmVnIHotb3JkZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAvLyBkZXNjZW5kYW50cywgc28gd2UgYXJlIG5vdCBjb250aWd1b3Vz
LgorICAgICAgICAgICAgICAgICAgICAgIGFyZUNvbnRpZ3VvdXMgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobWF4WkluZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAvLyBzaWJsaW5nIGlzIGluIHRoZSBwb3Mgei1vcmRlciBsaXN0IGFuZCBkb2VzIG5vdCBh
ZmZlY3QKKyAgICAgICAgICAgICAgICAgICAgICAvLyB1cyBzaW5jZSB3ZSdyZSBpbiB0aGUgbm9y
bWFsIGZsb3cgbGlzdCBhbmQgb3VyCisgICAgICAgICAgICAgICAgICAgICAgLy8gZGVzY2FuZGFu
dHMgYXJlIGluIHRoZSBuZWcgei1vcmRlciBsaXN0LgorICAgICAgICAgICAgICAgICAgICAgIGFy
ZUNvbnRpZ3VvdXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAvLyBzaWJsaW5nJ3MgekluZGV4IG1hdGNoZXMgdGhlIG1heDsgd2UncmUg
b25seSBvayBpZiBpdAorICAgICAgICAgICAgICAgICAgICAgIC8vIGFwcGVhcnMgYWZ0ZXIuCisg
ICAgICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IGsgPT0gMTsKKyAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHByaW50UmVzdWx0KGFy
ZUNvbnRpZ3VvdXMpOworICAgICAgICAgICAgfSAvLyBmb3IgbAorICAgICAgICAgIH0gLy8gZm9y
IGsKKyAgICAgICAgfSAvLyBmb3IgagorICAgICAgfSAvLyBmb3IgaQorCisgICAgICAvLyBOb3cg
Y2hlY2sgdGhhdCB3ZSBkb24ndCBwcm9tb3RlIGlmIHdlIGhhdmUgYW4gb3V0IG9mIGZsb3cgZGVz
Y2VuZGFudC4KKyAgICAgIC8vIFdlIG5lZWQgdG8gaGlkZSB0aGUgcHJlZGVjZXNzb3IgYW5kIHN1
Y2Nlc3NvciBzbyB0aGV5IGRvbid0IGludGVyZmVyZQorICAgICAgLy8gd2l0aCB0aGlzIGV4cGVy
aW1lbnQuCisgICAgICBwcmVkZWNlc3Nvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAg
c3VjY2Vzc29yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICBmb3IgKGkgPSAwOyBpIDwg
MzsgKytpKSB7CisgICAgICAgIGlmIChpID09IDApCisgICAgICAgICAgZGVzY2VuZGFudC5zdHls
ZS5kaXNwbGF5ID0gJ2hpZGRlbic7CisgICAgICAgIGVsc2UgaWYgKGkgPT0gMSkKKyAgICAgICAg
ICBkZXNjZW5kYW50LnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgICAgZWxzZQorICAgICAgICAg
IGRlc2NlbmRhbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKworICAgICAgICAvLyBJZiB0aGUg
b3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50IGlzIHZpc2libGUsIHdlIGNhbm5vdCBv
cHQKKyAgICAgICAgLy8gaW50byBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgcHJpbnRS
ZXN1bHQoaSAhPSAxKTsKKyAgICAgICAgY291bnQrKzsKKyAgICAgIH0gLy8gZm9yIGkKKworICAg
IH0gLy8gZnVuY3Rpb24gZG9UZXN0CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIGRvVGVzdCwgZmFsc2UpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDxk
aXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJwcmVkZWNlc3NvciI+PC9kaXY+CisgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciIgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQi
IGlkPSJmaXJzdENoaWxkIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9InNl
Y29uZENoaWxkIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0iZGVzY2Vu
ZGFudCI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0ic3Vj
Y2Vzc29yIj48L2Rpdj4KKyAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0
bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179507</attachid>
            <date>2012-12-14 11:38:18 -0800</date>
            <delta_ts>2012-12-15 15:09:46 -0800</delta_ts>
            <desc>Run against new virtual test suite</desc>
            <filename>bug-94743-20121214143537.patch</filename>
            <type>text/plain</type>
            <size>50567</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU0ZjI1MjAxZGIxYjMy
YTVlNDIyY2JmMzdhMDc4NGRiYmQ4NDBlYS4uYjY1ZGY5NDJjZmU5N2FiMGYwMmVlY2FmNjgxM2Y2
M2YxY2Q5OThlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTEyLTEzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQgKGRldGFpbHMg
YmVsb3cpLCBhbmQgdGhhdCBjbGlwcGluZyBvdXIgc2Nyb2xsaW5nCisgICAgICAgIGRlc2NlbmRh
bnRzIHdpbGwgbm90IGFmZmVjdCByZW5kZXJpbmcuCisKKyAgICAgICAgVG8gY2hlY2sgdGhlIGZp
cnN0IGNvbmRpdGlvbiAodGhhdCB6LW9yZGVyaW5nIHdpbGwgbm90IGJlIGFmZmVjdGVkKS4KKyAg
ICAgICAgSSBlbnN1cmUgdGhhdCB0aGUgY2FuZGlkYXRlIGVsZW1lbnQgYW5kIGFsbCBpdHMgZGVz
Y2VuZGFudHMgYXBwZWFyIGFzIGEgCisgICAgICAgIGNvbnRpbnVvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIAorICAgICAgICBvdGhl
ciBlbGVtZW50cyBhcmUgJ2JldHdlZW4nIGFueSBvZiB0aGUgY2FuZGlkYXRlcyBkZXNjZW5kYW50
cyB3aGVuIHdlCisgICAgICAgIHNvcnQgaW4gcGFpbnQgb3JkZXIsIHRoZW4gd2UncmUgc2FmZS4g
VGhpcyBpcyBvdmVybHkgY29uc2VydmF0aXZlLAorICAgICAgICBob3dldmVyLiBXZSBjb3VsZCwg
aW4gZnV0dXJlLCBvbmx5IGNvbnNpZGVyIHN0YWNraW5nIHByb2JsZW1zIGJldHdlZW4KKyAgICAg
ICAgZWxlbWVudHMgdGhhdCBhY3R1YWxseSBvdmVybGFwLgorCisgICAgICAgIFRvIGVuc3VyZSB0
aGF0IGNsaXBwaW5nIHdpbGwgbm90IGNhdXNlIGEgcmVuZGVyaW5nIGNoYW5nZSwgSSBlbnN1cmUK
KyAgICAgICAgdGhhdCB0aGUgbGF5ZXIgaGFzIG5vIG91dCBvZiBmbG93IHBvc2l0aW9uZWQgZGVz
Y2VuZGFudCB3aG9zZQorICAgICAgICBjb250YWluaW5nIGJsb2NrIGlzIG5vdCBhbHNvIGEgZGVz
Y2VuZGFudCBvZiBvdXJzLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJmbG93L2F1
dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKworICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0lu
U3RhY2tpbmdPcmRlclJlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
cG9zaXRpb25PdmVyZmxvd0NvbnRyb2xzQWZ0ZXJQcm9tb3Rpb25Ub0NvbXBvc2l0ZWRTY3JvbGxp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhblNhZmVseUVzdGFibGlzaEFT
dGFja2luZ0NvbnRleHQpOgorICAgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgUmVuZGVyTGF5
ZXIgY291bGQgYmVjb21lIGEgc3RhY2tpbmcgY29udGV4dCB3aXRob3V0CisgICAgICAgICAgYWZm
ZWN0aW5nIHRoZSBzdGFja2luZyBvcmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MpOgorICAgICAgICAgIFdlIG5vdyBuZWVk
IHRvIGtlZXAgdHJhY2sgb2Ygb3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50cy4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjphZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBIYXMgYmVlbiB1cGRhdGVk
IHRvIHJldHVybiB0cnVlIGlmIGl0IGNhbiBzYWZlbHkgZXN0YWJsaXNoIGEgc3RhY2tpbmcKKyAg
ICAgICAgICBjb250ZXh0LCBhbmQgdGhlIHNldHRpbmcgaXMgdHVybmVkIG9uLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAgICAg
ICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgaWYgd2Ugd291bGQgbGlrZSB0byB1c2UgY29t
cG9zaXRlZAorICAgICAgICAgIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjp1cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpk
aXJ0eVpPcmRlckxpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eU5v
cm1hbEZsb3dMaXN0KToKKyAgICAgICAgICBTaW5jZSB0aGVzZSBjb3VsZCBhZmZlY3Qgb3B0aW5n
IGludG8gY29tcG9zaXRlZCBzY3JvbGxpbmcsIHdlIG11c3QKKyAgICAgICAgICByZXF1ZXN0IHRo
YXQgdGhlIFJlbmRlckxheWVyQ29tcG9zaXRvciByZWV2YWx1YXRlIGNvbXBvc2l0aW5nLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCk6Cisg
ICAgICAgICAgV2UgY2FsbCB1cGRhdGVDYW5TYWZlbHlFc3RhYmxpc2hTdGFja2luZ0NvbnRleHQg
aGVyZSwgaWYgbmVjZXNzYXJ5LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNob3Vs
ZEJlTm9ybWFsRmxvd09ubHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNob3Vs
ZEJlU2VsZlBhaW50aW5nTGF5ZXIpOgorICAgICAgICAgIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5n
IC0+IG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnNldEFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWluSGFzT3V0T2ZG
bG93UG9zaXRpb25lZERlc2NlbmRhbnRTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVwZGF0ZU91dE9mRmxvd1Bvc2l0aW9uZWQpOgorICAgICAgICAgIERpcnRpZXMgYW5k
IHNldHMgdGhlIG91dCBvZiBmbG93IHBvc2l0aW9uZWQgZGVzY2VuZGFudCBzdGF0ZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6Omhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmxheWVyT3JBbmNlc3RvcklzVHJhbnNmb3JtZWRPclVzaW5nQ29tcG9zaXRlZFNjcm9sbGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNz
TGF5ZXJDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6aGFzVW5wb3NpdGlvbmVkT3ZlcmZsb3dDb250cm9sc0xheWVycyk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
Lmg6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAgIFdl
IG5vdyBlbnN1cmUgdGhhdCBuZXdseSBjcmVhdGVkIG92ZXJmbG93IHNjcm9sbCBjb250cm9scyBn
ZXQKKyAgICAgICAgICBwb3NpdGlvbmVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5n
QWZ0ZXJMYXlvdXQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0Zv
ck92ZXJmbG93U2Nyb2xsKToKKyAgICAgICAgICBBbGxvd3MgZW5hYmxpbmcgdGhlIHNldHRpbmcg
aW4gbGF5b3V0IHRlc3RzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTEyLTE0ICBBbmRyZXkgS29z
eWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjEyOTYzMyBhbmQgcjEyOTc1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IDMyOGUwZTM0ZDBkN2M5NzFjYzQ3YjhhNGJiOTVmZDM2ZmNkMzZjZjgu
LjM3YzJjNGExYzNmOTkyZjBiYTI4YTMzM2E3Njg5NjYwOTk3NDdkNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTQ3LDYgKzE0NywxMCBAQCBSZW5kZXJM
YXllcjo6UmVuZGVyTGF5ZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVuZGVyZXIpCiAgICAg
LCBtX25vcm1hbEZsb3dMaXN0RGlydHkodHJ1ZSkKICAgICAsIG1faGFzU2VsZlBhaW50aW5nTGF5
ZXJEZXNjZW5kYW50KGZhbHNlKQogICAgICwgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRh
bnREaXJ0eShmYWxzZSkKKyAgICAsIG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQo
ZmFsc2UpCisgICAgLCBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50RGlydHkoZmFs
c2UpCisgICAgLCBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyhmYWxzZSkKKyAgICAsIG1fZGVz
Y2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyKGZhbHNlKQogICAgICwgbV9pc1Jv
b3RMYXllcihyZW5kZXJlci0+aXNSZW5kZXJWaWV3KCkpCiAgICAgLCBtX3VzZWRUcmFuc3BhcmVu
Y3koZmFsc2UpCiAgICAgLCBtX3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbihmYWxzZSkKQEAgLTQ3
MCw2ICs0NzQsMTY2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5QW5jZXN0b3JDaGFpbkhhc1Nl
bGZQYWludGluZ0xheWVyRGVzY2VuZGFudFN0YXR1cygpCiAgICAgfQogfQogCitib29sIFJlbmRl
ckxheWVyOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS0+ZnJhbWUoKQorICAgICAgICAmJiByZW5k
ZXJlcigpLT5mcmFtZSgpLT5wYWdlKCkKKyAgICAgICAgJiYgcmVuZGVyZXIoKS0+ZnJhbWUoKS0+
cGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3Jv
bGxFbmFibGVkKCk7Cit9CisKKy8vIElmIHdlIGFyZSBhIHN0YWNraW5nIGNvbnRleHQsIHRoZW4g
dGhpcyBmdW5jdGlvbiB3aWxsIGRldGVybWluZSBpZiBvdXIKKy8vIGRlc2NlbmRhbnRzIGZvciBh
IGNvbnRpZ3VvdXMgYmxvY2sgaW4gc3RhY2tpbmcgb3JkZXIuIFRoaXMgaXMgcmVxdWlyZWQgaW4K
Ky8vIG9yZGVyIGZvciBhbiBlbGVtZW50IHRvIGJlIHNhZmVseSBwcm9tb3RlZCB0byBhIHN0YWNr
aW5nIGNvbnRleHQuIEl0IGlzIHNhZmUKKy8vIHRvIGJlY29tZSBhIHN0YWNraW5nIGNvbnRleHQg
aWYgdGhpcyBjaGFuZ2Ugd291bGQgbm90IGFsdGVyIHRoZSBzdGFja2luZworLy8gb3JkZXIgb2Yg
bGF5ZXJzIG9uIHRoZSBwYWdlLiBUaGF0IGNhbiBvbmx5IGhhcHBlbiBpZiBhIG5vbi1kZXNjZW5k
YW50IGFwcGVhcgorLy8gYmV0d2VlbiB1cyBhbmQgb3VyIGRlc2NlbmRhbnRzIGluIHN0YWNraW5n
IG9yZGVyLiBIZXJlJ3MgYW4gZXhhbXBsZToKKy8vCisvLyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICB8ICBc
LgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSAgIEIgICBDCisvLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC9cICAgfCAgIC9cLgorLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAgLTggIEQgIDIgIDcKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNQorLy8KKy8vIEkn
dmUgbGFiZWxlZCBvdXIgbm9ybWFsIGZsb3cgZGVzY2VuZGFudHMgQSwgQiwgQywgYW5kIEQsIG91
ciBzdGFja2luZworLy8gY29udGV4dCBkZXNjZW5kYW50cyB3aXRoIHRoZWlyIHogaW5kaWNlcywg
YW5kIHVzIHdpdGggJ3RoaXMnICh3ZSdyZSBhCisvLyBzdGFja2luZyBjb250ZXh0IGFuZCBvdXIg
ekluZGV4IGRvZXNuJ3QgbWF0dGVyIGhlcmUpLiBUaGVzZSBub2RlcyBhcHBlYXIgaW4KKy8vIHRo
cmVlIGxpc3RzOiBwb3NaT3JkZXIsIG5lZ1pPcmRlciwgYW5kIG5vcm1hbCBmbG93IChrZWVwIGlu
IG1pbmQgdGhhdCBub3JtYWwKKy8vIGZsb3cgbGF5ZXJzIGRvbid0IG92ZXJsYXApLiBTbyBpZiB3
ZSBhcnJhbmdlIHRoZXNlIGxpc3RzIGluIG9yZGVyIHdlIGdldCBvdXIKKy8vIHN0YWNraW5nIG9y
ZGVyOgorLy8KKy8vICAgICAgICAgICAgICAgICAgICAgWy04XSwgW0EtRF0sIFswLCAyLCA1LCA3
XS0tPiBwb3Mgei1vcmRlci4KKy8vICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8CisvLyAg
ICAgICAgTmVnIHotb3JkZXIuIDwtKyAgICAgKy0tPiBOb3JtYWwgZmxvdyBkZXNjZW5kYW50cy4K
Ky8vCisvLyBXZSBjYW4gdGhlbiBhc3NpZ24gbmV3LCAnc3RhY2tpbmcnIG9yZGVyIGluZGljZXMg
dG8gdGhlc2UgZWxlbWVudHMgYXMgZm9sbG93czoKKy8vCisvLyAgICAgICAgICAgICAgICAgICAg
IFstOF0sIFtBLURdLCBbMCwgMiwgNSwgN10KKy8vICdTdGFja2luZycgaW5kaWNlczogIC0xICAg
ICAwICAgICAxICAyICAzICA0CisvLworLy8gTm90ZSB0aGF0IHRoZSBub3JtYWwgZmxvdyBkZXNj
ZW5kYW50cyBjYW4gc2hhcmUgYW4gaW5kZXggYmVjYXVzZSB0aGV5IGRvbid0CisvLyBzdGFjay9v
dmVybGFwLiBOb3cgb3VyIHByb2JsZW0gYmVjb21lcyB2ZXJ5IHNpbXBsZTogYSBsYXllciBjYW4g
c2FmZWx5IGJlY29tZQorLy8gYSBzdGFja2luZyBjb250ZXh0IGlmIHRoZSBzdGFja2luZy1vcmRl
ciBpbmRpY2VzIG9mIGl0IGFuZCBpdHMgZGVzY2VuZGFudHMKKy8vIGFwcGVhciBpbiBhIGNvbnRp
Z3VvdXMgYmxvY2sgaW4gdGhlIGxpc3Qgb2Ygc3RhY2tpbmcgaW5kaWNlcy4gVGhpcyBwcm9ibGVt
CisvLyBjYW4gYmUgc29sdmVkIHZlcnkgZWZmaWNpZW50bHkgYnkgY2FsY3VsYXRpbmcgdGhlIG1p
bi9tYXggc3RhY2tpbmcgaW5kaWNlcyBpbgorLy8gdGhlIHN1YnRyZWUsIGFuZCB0aGUgbnVtYmVy
IHN0YWNraW5nIGNvbnRleHQgZGVzY2VuZGFudHMuIE9uY2Ugd2UgaGF2ZSB0aGlzCisvLyBpbmZv
cm1hdGlvbiwgd2Uga25vdyB0aGF0IHRoZSBzdWJ0cmVlJ3MgaW5kaWNlcyBmb3JtIGEgY29udGln
dW91cyBibG9jayBpZjoKKy8vCisvLyAgICAgICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNr
SW5kZXggPT0gbnVtU0NEZXNjZW5kYW50cworLy8KKy8vIFNvIGZvciBub2RlIEEgaW4gdGhlIGV4
YW1wbGUgYWJvdmUgd2Ugd291bGQgaGF2ZToKKy8vICAgbWF4U3RhY2tJbmRleCA9IDEKKy8vICAg
bWluU3RhY2tJbmRleCA9IC0xCisvLyAgIG51bVNDRGVjZW5kYW50cyA9IDIKKy8vCisvLyBhbmQg
c28sCisvLyAgICAgICBtYXhTdGFja0luZGV4IC0gbWluU3RhY2tJbmRleCA9PSBudW1TQ0Rlc2Nl
bmRhbnRzCisvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAxIC0gKC0xKSA9PSAyCisvLyAg
PT09PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiA9PSAyCisvLworLy8gIFNpbmNlIHRo
aXMgaXMgdHJ1ZSwgQSBjYW4gc2FmZWx5IGJlY29tZSBhIHN0YWNraW5nIGNvbnRleHQuCisvLyAg
Tm93LCBmb3Igbm9kZSBDIHdlIGhhdmU6CisvLworLy8gICBtYXhTdGFja0luZGV4ID0gNAorLy8g
ICBtaW5TdGFja0luZGV4ID0gMCA8LS0gYmVjYXVzZSBDIGhhcyBzdGFja2luZyBpbmRleCAwLgor
Ly8gICBudW1TQ0RlY2VuZGFudHMgPSAyCisvLworLy8gYW5kIHNvLAorLy8gICAgICAgbWF4U3Rh
Y2tJbmRleCAtIG1pblN0YWNrSW5kZXggPT0gbnVtU0NEZXNjZW5kYW50cworLy8gID09PT4gICAg
ICAgICAgICAgICAgICAgICAgICAgNCAtIDAgPT0gMgorLy8gID09PT4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQgPT0gMgorLy8KKy8vIFNpbmNlIHRoaXMgaXMgZmFsc2UsIEMgY2Fubm90
IGJlIHNhZmVseSBwcm9tb3RlZCB0byBhIHN0YWNraW5nIGNvbnRleHQuIFRoaXMKKy8vIGhhcHBl
bmVkIGJlY2F1c2Ugb2YgdGhlIGVsZW1lbnRzIHdpdGggei1pbmRleCA1IGFuZCAwLiBOb3cgaWYg
NSBoYWQgYmVlbiBhCisvLyBjaGlsZCBvZiBDIHJhdGhlciB0aGFuIEQsIGFuZCBBIGhhZCBubyBj
aGlsZCB3aXRoIFogaW5kZXggMCwgd2Ugd291bGQgaGF2ZSBoYWQ6CisvLworLy8gICBtYXhTdGFj
a0luZGV4ID0gMworLy8gICBtaW5TdGFja0luZGV4ID0gMCA8LS0gYmVjYXVzZSBDIGhhcyBzdGFj
a2luZyBpbmRleCAwLgorLy8gICBudW1TQ0RlY2VuZGFudHMgPSAzCisvLworLy8gYW5kIHNvLAor
Ly8gICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5kZXggPT0gbnVtU0NEZXNjZW5kYW50
cworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgICAgMyAtIDAgPT0gMworLy8gID09PT4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgPT0gMworLy8KKy8vICBBbmQgd2Ugd291bGQg
Y29uY2x1ZGUgdGhhdCBDIGNvdWxkIGJlIHByb21vdGVkLgordm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyKCkKK3sKKyAgICBpZiAo
IWlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIWFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKCFtX25vcm1h
bEZsb3dMaXN0RGlydHkpOworICAgIEFTU0VSVCghbV96T3JkZXJMaXN0c0RpcnR5KTsKKworICAg
IC8vIENyZWF0ZSBhIHJldmVyc2UgbG9va3VwLgorICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyTGF5
ZXIqLCBpbnQ+IGxvb2t1cDsKKworICAgIGlmIChtX25lZ1pPcmRlckxpc3QpIHsKKyAgICAgICAg
aW50IHN0YWNraW5nT3JkZXJJbmRleCA9IC0xOworICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBt
X25lZ1pPcmRlckxpc3QtPnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJMYXllciogY3VycmVudExheWVyID0g
bV9uZWdaT3JkZXJMaXN0LT5hdChsaXN0U2l6ZSAtIGkgLSAxKTsKKyAgICAgICAgICAgIGlmICgh
Y3VycmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5ZXIsIHN0YWNraW5nT3JkZXJJ
bmRleC0tKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChtX3Bvc1pPcmRlckxpc3QpIHsK
KyAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbV9wb3NaT3JkZXJMaXN0LT5zaXplKCk7CisgICAg
ICAgIGludCBzdGFja2luZ09yZGVySW5kZXggPSAxOworICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJyZW50
TGF5ZXIgPSBtX3Bvc1pPcmRlckxpc3QtPmF0KGkpOworICAgICAgICAgICAgaWYgKCFjdXJyZW50
TGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICBsb29rdXAuc2V0KGN1cnJlbnRMYXllciwgc3RhY2tpbmdPcmRlckluZGV4Kysp
OworICAgICAgICB9CisgICAgfQorCisgICAgaW50IG1pbkluZGV4ID0gMDsKKyAgICBpbnQgbWF4
SW5kZXggPSAwOworICAgIGludCBjb3VudCA9IDA7CisgICAgYm9vbCBmaXJzdEl0ZXJhdGlvbiA9
IHRydWU7CisgICAgdXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVy
UmVjdXJzaXZlKGxvb2t1cCwgbWluSW5kZXgsIG1heEluZGV4LCBjb3VudCwgZmlyc3RJdGVyYXRp
b24pOworfQorCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3Vv
dXNJblN0YWNraW5nT3JkZXJSZWN1cnNpdmUoY29uc3QgSGFzaE1hcDxjb25zdCBSZW5kZXJMYXll
ciosIGludD4mIGxvb2t1cCwgaW50JiBtaW5JbmRleCwgaW50JiBtYXhJbmRleCwgaW50JiBjb3Vu
dCwgYm9vbCBmaXJzdEl0ZXJhdGlvbikKK3sKKyAgICBpZiAoaXNTdGFja2luZ0NvbnRleHQoKSAm
JiAhZmlyc3RJdGVyYXRpb24pIHsKKyAgICAgICAgaWYgKGxvb2t1cC5jb250YWlucyh0aGlzKSkg
eworICAgICAgICAgICAgbWluSW5kZXggPSBzdGQ6Om1pbihtaW5JbmRleCwgbG9va3VwLmdldCh0
aGlzKSk7CisgICAgICAgICAgICBtYXhJbmRleCA9IHN0ZDo6bWF4KG1heEluZGV4LCBsb29rdXAu
Z2V0KHRoaXMpKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpbnQgY2hp
bGRNaW5JbmRleCA9IDA7CisgICAgICAgIGludCBjaGlsZE1heEluZGV4ID0gMDsKKyAgICAgICAg
aW50IGNoaWxkQ291bnQgPSAwOworICAgICAgICBjaGlsZC0+dXBkYXRlRGVzY2VuZGFudHNBcmVD
b250aWd1b3VzSW5TdGFja2luZ09yZGVyUmVjdXJzaXZlKGxvb2t1cCwgY2hpbGRNaW5JbmRleCwg
Y2hpbGRNYXhJbmRleCwgY2hpbGRDb3VudCwgZmFsc2UpOworICAgICAgICBpZiAoY2hpbGRDb3Vu
dCkgeworICAgICAgICAgICAgY291bnQgKz0gY2hpbGRDb3VudDsKKyAgICAgICAgICAgIG1pbklu
ZGV4ID0gc3RkOjptaW4obWluSW5kZXgsIGNoaWxkTWluSW5kZXgpOworICAgICAgICAgICAgbWF4
SW5kZXggPSBzdGQ6Om1heChtYXhJbmRleCwgY2hpbGRNYXhJbmRleCk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoIWlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICAgICAgYm9vbCBuZXdW
YWx1ZSA9IG1heEluZGV4IC0gbWluSW5kZXggPT0gY291bnQ7CisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorICAgICAgICBib29sIGRpZFVwZGF0ZSA9IG5ld1ZhbHVlICE9IG1fZGVz
Y2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyOworI2VuZGlmCisgICAgICAgIG1f
ZGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyID0gbmV3VmFsdWU7CisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICBpZiAoZGlkVXBkYXRlKQorICAg
ICAgICAgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisjZW5kaWYKKyAgICB9
Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbXB1dGVSZXBhaW50UmVjdHMoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgUmVuZGVyR2VvbWV0cnlN
YXAqIGdlb21ldHJ5TWFwKQogewogICAgIEFTU0VSVCghbV92aXNpYmxlQ29udGVudFN0YXR1c0Rp
cnR5KTsKQEAgLTU3NSw2ICs3MzksMjIgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQ
b3NpdGlvbnNBZnRlclNjcm9sbChSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXAKICAgICAg
ICAgZ2VvbWV0cnlNYXAtPnBvcE1hcHBpbmdzVG9BbmNlc3RvcihwYXJlbnQoKSk7CiB9CiAKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCit2b2lkIFJlbmRlckxheWVyOjpwb3NpdGlv
bk92ZXJmbG93Q29udHJvbHNBZnRlclByb21vdGlvblRvQ29tcG9zaXRlZFNjcm9sbGluZygpCit7
CisgICAgaWYgKCF1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIHx8ICFiYWNraW5nKCktPmhhc1Vu
cG9zaXRpb25lZE92ZXJmbG93Q29udHJvbHNMYXllcnMoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUmVuZGVyR2VvbWV0cnlNYXAgZ2VvbWV0cnlNYXAoVXNlVHJhbnNmb3Jtcyk7CisgICAgUmVu
ZGVyVmlldyogdmlldyA9IHJlbmRlcmVyKCktPnZpZXcoKTsKKyAgICBpZiAodGhpcyAhPSB2aWV3
LT5sYXllcigpKQorICAgICAgICBnZW9tZXRyeU1hcC5wdXNoTWFwcGluZ3NUb0FuY2VzdG9yKHBh
cmVudCgpLCAwKTsKKworICAgIExheW91dFBvaW50IG9mZnNldEZyb21Sb290ID0gTGF5b3V0UG9p
bnQoZ2VvbWV0cnlNYXAuYWJzb2x1dGVQb2ludChGbG9hdFBvaW50KCkpKTsKKyAgICBwb3NpdGlv
bk92ZXJmbG93Q29udHJvbHModG9TaXplKHJvdW5kZWRJbnRQb2ludChvZmZzZXRGcm9tUm9vdCkp
KTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZUJsZW5kTW9kZSgpCiB7CkBAIC03MDYsNiArODg2LDE0IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZVBhZ2luYXRpb24oKQogICAgIH0KIH0KIAorYm9vbCBSZW5kZXJMYXll
cjo6Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Cit7CisgICAgaWYg
KGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIXN0YWNraW5nQ29udGV4dCgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIHJldHVybiBtX2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tp
bmdPcmRlcjsKK30KKwogdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFzVmlzaWJsZUNvbnRlbnQoKQog
eyAKICAgICBpZiAobV9oYXNWaXNpYmxlQ29udGVudCAmJiAhbV92aXNpYmxlQ29udGVudFN0YXR1
c0RpcnR5KSB7CkBAIC03NTksMjUgKzk0Nyw1NCBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRBbmNl
c3RvckNoYWluSGFzVmlzaWJsZURlc2NlbmRhbnQoKQogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKCkKK3ZvaWQgUmVuZGVyTGF5ZXI6
OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncyhIYXNoU2V0PGNvbnN0IFJlbmRlck9iamVj
dCo+KiBvdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2NrcykKIHsKLSAgICBpZiAobV92
aXNpYmxlRGVzY2VuZGFudFN0YXR1c0RpcnR5IHx8IG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNj
ZW5kYW50RGlydHkpIHsKKyAgICBpZiAobV92aXNpYmxlRGVzY2VuZGFudFN0YXR1c0RpcnR5IHx8
IG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkgfHwgbV9oYXNPdXRPZkZsb3dQ
b3NpdGlvbmVkRGVzY2VuZGFudERpcnR5KSB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQorICAgICAgICBib29sIG9sZEhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50ID0g
bV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudDsKKyNlbmRpZgogICAgICAgICBtX2hh
c1Zpc2libGVEZXNjZW5kYW50ID0gZmFsc2U7CiAgICAgICAgIG1faGFzU2VsZlBhaW50aW5nTGF5
ZXJEZXNjZW5kYW50ID0gZmFsc2U7CisgICAgICAgIG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERl
c2NlbmRhbnQgPSBmYWxzZTsKKworICAgICAgICBIYXNoU2V0PGNvbnN0IFJlbmRlck9iamVjdCo+
IGNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3M7CiAgICAgICAgIGZvciAo
UmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAgY2hpbGQtPnVwZGF0ZURlc2NlbmRhbnREZXBl
bmRlbnRGbGFncygpOworICAgICAgICAgICAgY2hpbGRPdXRPZkZsb3dEZXNjZW5kYW50Q29udGFp
bmluZ0Jsb2Nrcy5jbGVhcigpOworICAgICAgICAgICAgY2hpbGQtPnVwZGF0ZURlc2NlbmRhbnRE
ZXBlbmRlbnRGbGFncygmY2hpbGRPdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2Nrcyk7
CisKKyAgICAgICAgICAgIGJvb2wgY2hpbGRJc091dE9mRmxvd1Bvc2l0aW9uZWQgPSBjaGlsZC0+
cmVuZGVyZXIoKSAmJiBjaGlsZC0+cmVuZGVyZXIoKS0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7
CisgICAgICAgICAgICBpZiAoY2hpbGRJc091dE9mRmxvd1Bvc2l0aW9uZWQpCisgICAgICAgICAg
ICAgICAgY2hpbGRPdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2Nrcy5hZGQoY2hpbGQt
PnJlbmRlcmVyKCktPmNvbnRhaW5pbmdCbG9jaygpKTsKKworICAgICAgICAgICAgaWYgKG91dE9m
Rmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzKSB7CisgICAgICAgICAgICAgICAgSGFzaFNl
dDxjb25zdCBSZW5kZXJPYmplY3QqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjaGlsZE91dE9mRmxv
d0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzLmJlZ2luKCk7CisgICAgICAgICAgICAgICAgZm9y
ICg7IGl0ICE9IGNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MuZW5kKCk7
ICsraXQpCisgICAgICAgICAgICAgICAgICAgIG91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5n
QmxvY2tzLT5hZGQoKml0KTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYm9vbCBoYXNW
aXNpYmxlRGVzY2VuZGFudCA9IGNoaWxkLT5tX2hhc1Zpc2libGVDb250ZW50IHx8IGNoaWxkLT5t
X2hhc1Zpc2libGVEZXNjZW5kYW50OwogICAgICAgICAgICAgYm9vbCBoYXNTZWxmUGFpbnRpbmdM
YXllckRlc2NlbmRhbnQgPSBjaGlsZC0+aXNTZWxmUGFpbnRpbmdMYXllcigpIHx8IGNoaWxkLT5o
YXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKTsKKyAgICAgICAgICAgIGJvb2wgaGFzT3V0
T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQgPSAhY2hpbGRPdXRPZkZsb3dEZXNjZW5kYW50Q29u
dGFpbmluZ0Jsb2Nrcy5pc0VtcHR5KCk7CiAKICAgICAgICAgICAgIG1faGFzVmlzaWJsZURlc2Nl
bmRhbnQgfD0gaGFzVmlzaWJsZURlc2NlbmRhbnQ7CiAgICAgICAgICAgICBtX2hhc1NlbGZQYWlu
dGluZ0xheWVyRGVzY2VuZGFudCB8PSBoYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQ7Cisg
ICAgICAgICAgICBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50IHw9IGhhc091dE9m
Rmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50OwogCi0gICAgICAgICAgICBpZiAobV9oYXNWaXNpYmxl
RGVzY2VuZGFudCAmJiBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCkKKyAgICAgICAg
ICAgIGlmIChtX2hhc1Zpc2libGVEZXNjZW5kYW50ICYmIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJE
ZXNjZW5kYW50ICYmIG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQpCiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKworICAgICAgICBpZiAob3V0T2ZGbG93RGVzY2Vu
ZGFudENvbnRhaW5pbmdCbG9ja3MgJiYgcmVuZGVyZXIoKSkKKyAgICAgICAgICAgIG91dE9mRmxv
d0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzLT5yZW1vdmUocmVuZGVyZXIoKSk7CisKICAgICAg
ICAgbV92aXNpYmxlRGVzY2VuZGFudFN0YXR1c0RpcnR5ID0gZmFsc2U7CiAgICAgICAgIG1faGFz
U2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkgPSBmYWxzZTsKKyAgICAgICAgbV9oYXNP
dXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERpcnR5ID0gZmFsc2U7CisKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgIGlmIChvbGRIYXNPdXRPZkZsb3dQb3NpdGlv
bmVkRGVzY2VuZGFudCAhPSBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KQorICAg
ICAgICAgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CisjZW5kaWYKICAgICB9
CiAKICAgICBpZiAobV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5KSB7CkBAIC0xMzc4LDYgKzE1
OTUsOSBAQCB2b2lkIFJlbmRlckxheWVyOjphZGRDaGlsZChSZW5kZXJMYXllciogY2hpbGQsIFJl
bmRlckxheWVyKiBiZWZvcmVDaGlsZCkKICAgICBpZiAoY2hpbGQtPmlzU2VsZlBhaW50aW5nTGF5
ZXIoKSB8fCBjaGlsZC0+aGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCkpCiAgICAgICAg
IHNldEFuY2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKTsKIAorICAg
IGlmICgoY2hpbGQtPnJlbmRlcmVyKCkgJiYgY2hpbGQtPnJlbmRlcmVyKCktPmlzT3V0T2ZGbG93
UG9zaXRpb25lZCgpKSB8fCBjaGlsZC0+aGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQo
KSkKKyAgICAgICAgc2V0QW5jZXN0b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5k
YW50KGNoaWxkLT5yZW5kZXJlcigpLT5jb250YWluaW5nQmxvY2soKSk7CisKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgY29tcG9zaXRvcigpLT5sYXllcldhc0FkZGVkKHRo
aXMsIGNoaWxkKTsKICNlbmRpZgpAQCAtMTQxMCw2ICsxNjMwLDkgQEAgUmVuZGVyTGF5ZXIqIFJl
bmRlckxheWVyOjpyZW1vdmVDaGlsZChSZW5kZXJMYXllciogb2xkQ2hpbGQpCiAgICAgICAgIG9s
ZENoaWxkLT5kaXJ0eVN0YWNraW5nQ29udGV4dFpPcmRlckxpc3RzKCk7CiAgICAgfQogCisgICAg
aWYgKChvbGRDaGlsZC0+cmVuZGVyZXIoKSAmJiBvbGRDaGlsZC0+cmVuZGVyZXIoKS0+aXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkpIHx8IG9sZENoaWxkLT5oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVz
Y2VuZGFudCgpKQorICAgICAgICBkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlv
bmVkRGVzY2VuZGFudFN0YXR1cygpOworCiAgICAgb2xkQ2hpbGQtPnNldFByZXZpb3VzU2libGlu
ZygwKTsKICAgICBvbGRDaGlsZC0+c2V0TmV4dFNpYmxpbmcoMCk7CiAgICAgb2xkQ2hpbGQtPnNl
dFBhcmVudCgwKTsKQEAgLTE2MjIsMTQgKzE4NDUsMzQgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y29u
dmVydFRvTGF5ZXJDb29yZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIExheW91
dFIKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIFJlbmRlckxheWVyOjp1
c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0CiB7CisgICAgcmV0dXJuIGlzQ29tcG9zaXRl
ZCgpICYmIGJhY2tpbmcoKS0+c2Nyb2xsaW5nTGF5ZXIoKTsKK30KKworYm9vbCBSZW5kZXJMYXll
cjo6bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uZWVk
c0NvbXBvc2l0ZWRTY3JvbGxpbmc7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU5lZWRz
Q29tcG9zaXRlZFNjcm9sbGluZygpCit7CisgICAgYm9vbCBvbGROZWVkc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcgPSBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZzsKKwogICAgIGlmICghc2Nyb2xsc092
ZXJmbG93KCkgfHwgIWFsbG93c1Njcm9sbGluZygpKQotICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIG1fbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nID0gZmFsc2U7CisgICAgZWxzZSB7Cisg
ICAgICAgIGJvb2wgZm9yY2VVc2VDb21wb3NpdGVkU2Nyb2xsaW5nID0gYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpCisgICAgICAgICAgICAmJiBjYW5TYWZl
bHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkKKyAgICAgICAgICAgICYmICFoYXNPdXRPZkZs
b3dQb3NpdGlvbmVkRGVzY2VuZGFudCgpOwogCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJG
TE9XX1NDUk9MTElORykKLSAgICByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dXNlVG91Y2hP
dmVyZmxvd1Njcm9sbGluZygpOworICAgICAgICBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyA9
IGZvcmNlVXNlQ29tcG9zaXRlZFNjcm9sbGluZyB8fCByZW5kZXJlcigpLT5zdHlsZSgpLT51c2VU
b3VjaE92ZXJmbG93U2Nyb2xsaW5nKCk7CiAjZWxzZQotICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcgPSBmb3JjZVVzZUNvbXBvc2l0ZWRTY3JvbGxp
bmc7CiAjZW5kaWYKKyAgICB9CisKKyAgICBpZiAob2xkTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5n
ICE9IG1fbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKQorICAgICAgICB1cGRhdGVTZWxmUGFpbnRp
bmdMYXllcigpOwogfQogI2VuZGlmCiAKQEAgLTE3OTMsOCArMjAzNiwxNSBAQCB2b2lkIFJlbmRl
ckxheWVyOjpzY3JvbGxUbyhpbnQgeCwgaW50IHkpCiAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS0+ZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uSW5RdWFkKHF1YWRGb3JGYWtlTW91
c2VNb3ZlRXZlbnQpOwogICAgIH0KIAorICAgIGJvb2wgcmVxdWlyZXNSZXBhaW50ID0gdHJ1ZTsK
KworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAoY29tcG9zaXRvcigp
LT5pbkNvbXBvc2l0aW5nTW9kZSgpICYmIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAg
ICAgIHJlcXVpcmVzUmVwYWludCA9IGZhbHNlOworI2VuZGlmCisKICAgICAvLyBKdXN0IHNjaGVk
dWxlIGEgZnVsbCByZXBhaW50IG9mIG91ciBvYmplY3QuCi0gICAgaWYgKHZpZXcgJiYgIXVzZXND
b21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgaWYgKHZpZXcgJiYgcmVxdWlyZXNSZXBhaW50KQog
ICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5l
ciwgcGl4ZWxTbmFwcGVkSW50UmVjdChtX3JlcGFpbnRSZWN0KSk7CiAKICAgICAvLyBTY2hlZHVs
ZSB0aGUgc2Nyb2xsIERPTSBldmVudC4KQEAgLTQ4MDAsOCArNTA1MCwxMSBAQCB2b2lkIFJlbmRl
ckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKCkKICAgICBtX3pPcmRlckxpc3RzRGlydHkgPSB0cnVl
OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghcmVuZGVyZXIo
KS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgIGlmICghcmVuZGVyZXIoKS0+ZG9jdW1l
bnRCZWluZ0Rlc3Ryb3llZCgpKSB7CiAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0Q29tcG9zaXRp
bmdMYXllcnNOZWVkUmVidWlsZCgpOworICAgICAgICBpZiAoYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICAgICAgY29tcG9zaXRvcigpLT5z
ZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpOworICAgIH0KICNlbmRp
ZgogfQogCkBAIC00ODIxLDggKzUwNzQsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZGlydHlOb3Jt
YWxGbG93TGlzdCgpCiAgICAgbV9ub3JtYWxGbG93TGlzdERpcnR5ID0gdHJ1ZTsKIAogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50
QmVpbmdEZXN0cm95ZWQoKSkKKyAgICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0
cm95ZWQoKSkgewogICAgICAgICBjb21wb3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVl
ZFJlYnVpbGQoKTsKKyAgICAgICAgaWYgKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoKSkKKyAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0U2hvdWxkUmVl
dmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKTsKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAt
NDkyMCw2ICs1MTc2LDggQEAgdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyhib29sIGlu
Y2x1ZGVIaWRkZW5MYXllcnMsIE93blB0cjxWZWN0b3I8UmVuZGVyTGEKIAogdm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCkKIHsKKyAgICBib29sIHNob3VsZFVwZGF0
ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlciA9IGlzU3RhY2tpbmdDb250
ZXh0KCkgJiYgKG1fek9yZGVyTGlzdHNEaXJ0eSB8fCBtX25vcm1hbEZsb3dMaXN0RGlydHkpOwor
CiAgICAgdXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICB1cGRhdGVOb3JtYWxGbG93TGlzdCgpOwog
CkBAIC00OTI3LDYgKzUxODUsOSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllckxpc3Rz
SWZOZWVkZWQoKQogICAgICAgICByZWZsZWN0aW9uTGF5ZXItPnVwZGF0ZVpPcmRlckxpc3RzKCk7
CiAgICAgICAgIHJlZmxlY3Rpb25MYXllci0+dXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKICAgICB9
CisKKyAgICBpZiAoc2hvdWxkVXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2lu
Z09yZGVyKQorICAgICAgICB1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5n
T3JkZXIoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdBbmRMYXll
ckxpc3RzSWZOZWVkZWQoKQpAQCAtNTAxNCwxNCArNTI3NSwxNCBAQCBib29sIFJlbmRlckxheWVy
OjpzaG91bGRCZU5vcm1hbEZsb3dPbmx5KCkgY29uc3QKICAgICAgICAgICAgICYmICFyZW5kZXJl
cigpLT5oYXNCbGVuZE1vZGUoKQogI2VuZGlmCiAgICAgICAgICAgICAmJiAhaXNUcmFuc3BhcmVu
dCgpCi0gICAgICAgICAgICAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyAgICAgICAg
ICAgICYmICFuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKIH0KIAogYm9vbCBSZW5kZXJMYXll
cjo6c2hvdWxkQmVTZWxmUGFpbnRpbmdMYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFpc05v
cm1hbEZsb3dPbmx5KCkKICAgICAgICAgfHwgaGFzT3ZlcmxheVNjcm9sbGJhcnMoKQotICAgICAg
ICB8fCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpCisgICAgICAgIHx8IG5lZWRzQ29tcG9zaXRl
ZFNjcm9sbGluZygpCiAgICAgICAgIHx8IHJlbmRlcmVyKCktPmhhc1JlZmxlY3Rpb24oKQogICAg
ICAgICB8fCByZW5kZXJlcigpLT5oYXNNYXNrKCkKICAgICAgICAgfHwgcmVuZGVyZXIoKS0+aXNU
YWJsZVJvdygpCkBAIC01MTE3LDYgKzUzNzgsNDIgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRl
U2Nyb2xsYmFyc0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQog
ICAgICAgICB1cGRhdGVTY3JvbGxhYmxlQXJlYVNldChoYXNTY3JvbGxhYmxlSG9yaXpvbnRhbE92
ZXJmbG93KCkgfHwgaGFzU2Nyb2xsYWJsZVZlcnRpY2FsT3ZlcmZsb3coKSk7CiB9CiAKK3ZvaWQg
UmVuZGVyTGF5ZXI6OnNldEFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2Vu
ZGFudChSZW5kZXJPYmplY3QqIGNvbnRhaW5pbmdCbG9jaykKK3sKKyAgICBmb3IgKFJlbmRlckxh
eWVyKiBsYXllciA9IHRoaXM7IGxheWVyOyBsYXllciA9IGxheWVyLT5wYXJlbnQoKSkgeworICAg
ICAgICBpZiAoIWxheWVyLT5tX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50RGlydHkg
JiYgbGF5ZXItPmhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KCkpCisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBsYXllci0+bV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2Vu
ZGFudERpcnR5ID0gZmFsc2U7CisgICAgICAgIGxheWVyLT5tX2hhc091dE9mRmxvd1Bvc2l0aW9u
ZWREZXNjZW5kYW50ID0gdHJ1ZTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisg
ICAgICAgIGxheWVyLT51cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKKyNlbmRpZgor
CisgICAgICAgIGlmIChsYXllci0+cmVuZGVyZXIoKSAmJiBsYXllci0+cmVuZGVyZXIoKSA9PSBj
b250YWluaW5nQmxvY2spCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQgUmVu
ZGVyTGF5ZXI6OmRpcnR5QW5jZXN0b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5k
YW50U3RhdHVzKCkKK3sKKyAgICBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50RGly
dHkgPSB0cnVlOworICAgIGlmIChwYXJlbnQoKSkKKyAgICAgICAgcGFyZW50KCktPmRpcnR5QW5j
ZXN0b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50U3RhdHVzKCk7Cit9CisK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU91dE9mRmxvd1Bvc2l0aW9uZWQoY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKQoreworICAgIGJvb2wgd2FzT3V0T2ZGbG93UG9zaXRpb25lZCA9IG9s
ZFN0eWxlICYmIChvbGRTdHlsZS0+cG9zaXRpb24oKSA9PSBBYnNvbHV0ZVBvc2l0aW9uIHx8IG9s
ZFN0eWxlLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24pOworICAgIGlmIChwYXJlbnQoKSAm
JiAoKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpICE9
IHdhc091dE9mRmxvd1Bvc2l0aW9uZWQpKSB7CisgICAgICAgIHBhcmVudCgpLT5kaXJ0eUFuY2Vz
dG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudFN0YXR1cygpOworI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1
bWVudEJlaW5nRGVzdHJveWVkKCkgJiYgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICAgICAgY29tcG9zaXRvcigpLT5zZXRTaG91bGRSZWV2
YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpOworI2VuZGlmCisgICAgfQorfQorCiB2b2lk
IFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpCiB7CiAgICAgYm9vbCBpc05vcm1hbEZsb3dPbmx5ID0gc2hvdWxkQmVO
b3JtYWxGbG93T25seSgpOwpAQCAtNTEzNywxMSArNTQzNCwxMiBAQCB2b2lkIFJlbmRlckxheWVy
OjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpCiAgICAgICAgIG1fbWFycXVlZS5jbGVhcigpOwogICAgIH0KIAotICAgIHVwZGF0ZVN0YWNr
aW5nQ29udGV4dHNBZnRlclN0eWxlQ2hhbmdlKG9sZFN0eWxlKTsKICAgICB1cGRhdGVTY3JvbGxi
YXJzQWZ0ZXJTdHlsZUNoYW5nZShvbGRTdHlsZSk7CisgICAgdXBkYXRlU3RhY2tpbmdDb250ZXh0
c0FmdGVyU3R5bGVDaGFuZ2Uob2xkU3R5bGUpOwogICAgIC8vIE92ZXJsYXkgc2Nyb2xsYmFycyBj
YW4gbWFrZSB0aGlzIGxheWVyIHNlbGYtcGFpbnRpbmcgc28gd2UgbmVlZAogICAgIC8vIHRvIHJl
Y29tcHV0ZSB0aGUgYml0IG9uY2Ugc2Nyb2xsYmFycyBoYXZlIGJlZW4gdXBkYXRlZC4KICAgICB1
cGRhdGVTZWxmUGFpbnRpbmdMYXllcigpOworICAgIHVwZGF0ZU91dE9mRmxvd1Bvc2l0aW9uZWQo
b2xkU3R5bGUpOwogCiAgICAgaWYgKCFoYXNSZWZsZWN0aW9uKCkgJiYgbV9yZWZsZWN0aW9uKQog
ICAgICAgICByZW1vdmVSZWZsZWN0aW9uKCk7CkBAIC01MTcwLDYgKzU0NjgsNyBAQCB2b2lkIFJl
bmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpCiAjZW5kaWYKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICB1cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKICAgICBpZiAoY29tcG9zaXRv
cigpLT51cGRhdGVMYXllckNvbXBvc2l0aW5nU3RhdGUodGhpcykpCiAgICAgICAgIGNvbXBvc2l0
b3IoKS0+c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOwogICAgIGVsc2UgaWYgKG9s
ZFN0eWxlICYmIChvbGRTdHlsZS0+Y2xpcCgpICE9IHJlbmRlcmVyKCktPnN0eWxlKCktPmNsaXAo
KSB8fCBvbGRTdHlsZS0+aGFzQ2xpcCgpICE9IHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0NsaXAo
KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDFjZmM5YTAzZmYz
ZTU1NTU3ZTllY2QzOGRkZjIxN2UyMGMxNTFmYzMuLjAwZjllZjQ4YmEzMTVkOTQ2YzczNTI5MjVm
YmVmMTdkN2FlNTBlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBA
IC00MDMsNiArNDAzLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlv
bnNBZnRlck92ZXJmbG93U2Nyb2xsKCk7CiAgICAgdm9pZCB1cGRhdGVMYXllclBvc2l0aW9uc0Fm
dGVyRG9jdW1lbnRTY3JvbGwoKTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICB2b2lkIHBvc2l0aW9uT3ZlcmZsb3dDb250cm9sc0FmdGVyUHJvbW90aW9uVG9Db21wb3Np
dGVkU2Nyb2xsaW5nKCk7CisjZW5kaWYKICAgICAKICAgICBib29sIGlzUGFnaW5hdGVkKCkgY29u
c3QgeyByZXR1cm4gbV9pc1BhZ2luYXRlZDsgfQogCkBAIC00NjMsNiArNDY3LDEzIEBAIHB1Ymxp
YzoKICAgICAvLyBQYXJ0IG9mIHRoZSBpc3N1ZSBpcyB3aXRoIHN1YnRyZWUgcmVsYXlvdXQ6IHdl
IGRvbid0IGNoZWNrIGlmIG91ciBhbmNlc3RvcnMgaGF2ZSBzb21lIGRlc2NlbmRhbnQgZmxhZ3Mg
ZGlydHksIG1pc3Npbmcgc29tZSB1cGRhdGVzLgogICAgIGJvb2wgaGFzU2VsZlBhaW50aW5nTGF5
ZXJEZXNjZW5kYW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2Nl
bmRhbnQ7IH0KIAorICAgIC8vIFRoaXMgcmV0dXJucyB0cnVlIGlmIHdlIGhhdmUgYW4gb3V0IG9m
IGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50IHdob3NlCisgICAgLy8gY29udGFpbmluZyBibG9j
ayBpcyBub3QgYSBkZXNjZW5kYW50IG9mIG91cnMuIElmIHRoaXMgaXMgdHJ1ZSwgd2UgY2Fubm90
CisgICAgLy8gYXV0b21hdGljYWxseSBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBzaW5j
ZSB0aGlzIG91dCBvZiBmbG93CisgICAgLy8gcG9zaXRpb25lZCBkZXNjZW5kYW50IHdvdWxkIGJl
Y29tZSBjbGlwcGVkIGJ5IHVzLCBwb3NzaWJseSBhbHRlcmluZyB0aGUgCisgICAgLy8gcmVuZGVy
aW5nIG9mIHRoZSBwYWdlLgorICAgIGJvb2wgaGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRh
bnQoKSBjb25zdCB7IHJldHVybiBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50OyB9
CisKICAgICAvLyBHZXRzIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBwb3NpdGlvbmVkIGFuY2VzdG9y
IGxheWVyIChhbHNvIGluY2x1ZGVzCiAgICAgLy8gdGhlIDxodG1sPiBsYXllciBhbmQgdGhlIHJv
b3QgbGF5ZXIpLgogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdQb3NpdGlvbmVkQW5jZXN0b3Io
KSBjb25zdDsKQEAgLTY1Niw2ICs2NjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBHcmFwaGlj
c0xheWVyKiBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBH
cmFwaGljc0xheWVyKiBsYXllckZvclNjcm9sbENvcm5lcigpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0IE9WRVJSSURFOworICAgIGJvb2wg
bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3Q7CiAjZWxzZQogICAgIGJvb2wgaXNDb21w
b3NpdGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGhhc0NvbXBvc2l0ZWRN
YXNrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTcyNSw2ICs3MzcsMTAgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldEFuY2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRh
bnQoKTsKICAgICB2b2lkIGRpcnR5QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVz
Y2VuZGFudFN0YXR1cygpOwogCisgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVEZXNjZW5kYW50c0Fy
ZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIoKTsKKyAgICB2b2lkIHVwZGF0ZURlc2NlbmRhbnRz
QXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlclJlY3Vyc2l2ZShjb25zdCBIYXNoTWFwPGNvbnN0
IFJlbmRlckxheWVyKiwgaW50PiYsIGludCYgbWluSW5kZXgsIGludCYgbWF4SW5kZXgsIGludCYg
Y291bnQsIGJvb2wgZmlyc3RJdGVyYXRpb24pOworCiAgICAgdm9pZCBjb21wdXRlUmVwYWludFJl
Y3RzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0
IFJlbmRlckdlb21ldHJ5TWFwKiA9IDApOwogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRSZWN0c0lu
Y2x1ZGluZ0Rlc2NlbmRhbnRzKCk7CiAgICAgdm9pZCBjbGVhclJlcGFpbnRSZWN0cygpOwpAQCAt
NzQxLDYgKzc1NywxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlU2Nyb2xsYmFyc0FmdGVy
U3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKICAgICB2b2lkIHVwZGF0
ZVNjcm9sbGJhcnNBZnRlckxheW91dCgpOwogCisgICAgdm9pZCBzZXRBbmNlc3RvckNoYWluSGFz
T3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQoUmVuZGVyT2JqZWN0KiBjb250YWluaW5nQmxv
Y2spOworICAgIHZvaWQgZGlydHlBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERl
c2NlbmRhbnRTdGF0dXMoKTsKKyAgICB2b2lkIHVwZGF0ZU91dE9mRmxvd1Bvc2l0aW9uZWQoY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKKworICAgIHZvaWQgdXBkYXRlTmVlZHNDb21wb3Np
dGVkU2Nyb2xsaW5nKCk7CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBvc2l0aW9uIGNo
YW5nZWQuCiAgICAgYm9vbCB1cGRhdGVMYXllclBvc2l0aW9uKCk7CiAKQEAgLTg3Niw3ICs4OTgs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlydHlBbmNlc3RvckNoYWluVmlzaWJsZURlc2NlbmRh
bnRTdGF0dXMoKTsKICAgICB2b2lkIHNldEFuY2VzdG9yQ2hhaW5IYXNWaXNpYmxlRGVzY2VuZGFu
dCgpOwogCi0gICAgdm9pZCB1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsKKyAgICB2
b2lkIHVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncyhIYXNoU2V0PGNvbnN0IFJlbmRlck9i
amVjdCo+KiBvdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2NrcyA9IDApOwogCiAgICAg
Ly8gVGhpcyBmbGFnIGlzIGNvbXB1dGVkIGJ5IFJlbmRlckxheWVyQ29tcG9zaXRvciwgd2hpY2gg
a25vd3MgbW9yZSBhYm91dCAzZCBoaWVyYXJjaGllcyB0aGFuIHdlIGRvLgogICAgIHZvaWQgc2V0
SGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnQoYm9vbCBiKSB7IG1faGFzM0RUcmFuc2Zvcm1lZERl
c2NlbmRhbnQgPSBiOyB9CkBAIC05MzMsNiArOTU1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNl
dEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiByZWFz
b24pIHsgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uID0gcmVhc29uOyB9CiAgICAgSW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbiBpbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbj4obV9pbmRpcmVjdENv
bXBvc2l0aW5nUmVhc29uKTsgfQogICAgIGJvb2wgbXVzdENvbXBvc2l0ZUZvckluZGlyZWN0UmVh
c29ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjsgfQorCisg
ICAgLy8gUmV0dXJucyB0cnVlIGlmIHogb3JkZXJpbmcgd291bGQgbm90IGNoYW5nZSBpZiB0aGlz
IGxheWVyIHdlcmUgdG8gZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dC4KKyAgICBib29sIGNh
blNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdDsKICNlbmRpZgogCiAgICAg
ZnJpZW5kIGNsYXNzIFJlbmRlckxheWVyQmFja2luZzsKQEAgLTk3Myw2ICs5OTgsMTkgQEAgcHJv
dGVjdGVkOgogICAgIGJvb2wgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQgOiAxOwog
ICAgIGJvb2wgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnREaXJ0eSA6IDE7CiAKKyAg
ICAvLyBJZiB3ZSBoYXZlIG5vIG91dCBvZiBmbG93IHBvc2l0aW9uZWQgZGVzY2VuZGFudHMgYW5k
IG5vIG5vbi1kZXNjZW5kYW50CisgICAgLy8gYXBwZWFycyBiZXR3ZWVuIG91ciBkZXNjZW5kYW50
cyBpbiBzdGFja2luZyBvcmRlciwgdGhlbiB3ZSBtYXkgYmVjb21lIGEKKyAgICAvLyBzdGFja2lu
ZyBjb250ZXh0LgorICAgIGJvb2wgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCA6
IDE7CisgICAgYm9vbCBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50RGlydHkgOiAx
OworCisgICAgYm9vbCBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyA6IDE7CisKKyAgICAvLyBJ
ZiB0aGlzIGlzIHRydWUsIHRoZW4gbm8gbm9uLWRlc2NlbmRhbnQgYXBwZWFycyBiZXR3ZWVuIGFu
eSBvZiBvdXIKKyAgICAvLyBkZXNjZW5kYW50cyBpbiBzdGFja2luZyBvcmRlci4gVGhpcyBpcyBv
bmUgb2YgdGhlIHJlcXVpcmVtZW50cyBvZiBiZWluZworICAgIC8vIGFibGUgdG8gc2FmZWx5IGJl
Y29tZSBhIHN0YWNraW5nIGNvbnRleHQuCisgICAgYm9vbCBtX2Rlc2NlbmRhbnRzQXJlQ29udGln
dW91c0luU3RhY2tpbmdPcmRlciA6IDE7CisKICAgICBjb25zdCBib29sIG1faXNSb290TGF5ZXIg
OiAxOwogCiAgICAgYm9vbCBtX3VzZWRUcmFuc3BhcmVuY3kgOiAxOyAvLyBUcmFja3Mgd2hldGhl
ciB3ZSBuZWVkIHRvIGNsb3NlIGEgdHJhbnNwYXJlbnQgbGF5ZXIsIGkuZS4sIHdoZXRoZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXgg
NmYzMDdjMDgxYWQ5YjJmNjZmM2E0MjY5ODc1NjNhMmNhOWEwNjYwZS4uODc3M2NmNDU2ODg3NWUz
NzQ5NDIzZWM1NGMzOWU3MDhkYTllM2NhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMgYm9v
bCBoYXNOb25aZXJvVHJhbnNmb3JtT3JpZ2luKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIp
CiBzdGF0aWMgYm9vbCBsYXllck9yQW5jZXN0b3JJc1RyYW5zZm9ybWVkT3JVc2luZ0NvbXBvc2l0
ZWRTY3JvbGxpbmcoUmVuZGVyTGF5ZXIqIGxheWVyKQogewogICAgIGZvciAoUmVuZGVyTGF5ZXIq
IGN1cnIgPSBsYXllcjsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7Ci0gICAgICAgIGlm
IChjdXJyLT5oYXNUcmFuc2Zvcm0oKSB8fCBjdXJyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygp
KQorICAgICAgICBpZiAoY3Vyci0+aGFzVHJhbnNmb3JtKCkgfHwgY3Vyci0+bmVlZHNDb21wb3Np
dGVkU2Nyb2xsaW5nKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBA
IC00NTEsNyArNDUxLDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNz
TGF5ZXJDb25maWd1cmF0aW9uKCkKICAgICBib29sIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xh
eWVyID0gY29tcG9zaXRvci0+Y2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKG1fb3duaW5nTGF5
ZXIpOwogCiAgICAgLy8gT3VyIHNjcm9sbGluZyBsYXllciB3aWxsIGNsaXAuCi0gICAgaWYgKG1f
b3duaW5nTGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgaWYgKG1fb3duaW5n
TGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpKQogICAgICAgICBuZWVkc0Rlc2NlbmRl
bnRzQ2xpcHBpbmdMYXllciA9IGZhbHNlOwogCiAgICAgaWYgKHVwZGF0ZUNsaXBwaW5nTGF5ZXJz
KGNvbXBvc2l0b3ItPmNsaXBwZWRCeUFuY2VzdG9yKG1fb3duaW5nTGF5ZXIpLCBuZWVkc0Rlc2Nl
bmRlbnRzQ2xpcHBpbmdMYXllcikpCkBAIC00NjAsNyArNDYwLDcgQEAgYm9vbCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKICAgICBpZiAodXBk
YXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyhyZXF1aXJlc0hvcml6b250YWxTY3JvbGxiYXJMYXll
cigpLCByZXF1aXJlc1ZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIoKSwgcmVxdWlyZXNTY3JvbGxDb3Ju
ZXJMYXllcigpKSkKICAgICAgICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKIAotICAgIGlm
ICh1cGRhdGVTY3JvbGxpbmdMYXllcnMobV9vd25pbmdMYXllci0+dXNlc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcoKSkpCisgICAgaWYgKHVwZGF0ZVNjcm9sbGluZ0xheWVycyhtX293bmluZ0xheWVyLT5u
ZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkpCiAgICAgICAgIGxheWVyQ29uZmlnQ2hhbmdlZCA9
IHRydWU7CiAKICAgICBpZiAobGF5ZXJDb25maWdDaGFuZ2VkKQpAQCAtNjA0LDcgKzYwNCw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkoKQog
ICAgIGVsc2UKICAgICAgICAgZ3JhcGhpY3NMYXllclBhcmVudExvY2F0aW9uID0gcmVuZGVyZXIo
KS0+dmlldygpLT5kb2N1bWVudFJlY3QoKS5sb2NhdGlvbigpOwogCi0gICAgaWYgKGNvbXBBbmNl
c3RvciAmJiBjb21wQW5jZXN0b3ItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpIHsKKyAgICBp
ZiAoY29tcEFuY2VzdG9yICYmIGNvbXBBbmNlc3Rvci0+bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5n
KCkpIHsKICAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSB0b1JlbmRlckJveChjb21wQW5j
ZXN0b3ItPnJlbmRlcmVyKCkpOwogICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldCA9IGNvbXBB
bmNlc3Rvci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgICAgIEludFBvaW50IHNjcm9s
bE9yaWdpbihyZW5kZXJCb3gtPmJvcmRlckxlZnQoKSwgcmVuZGVyQm94LT5ib3JkZXJUb3AoKSk7
CkBAIC05NjMsNiArOTYzLDIzIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwb3NpdGlvbk92
ZXJmbG93Q29udHJvbHNMYXllcnMoY29uc3QgSW50U2l6ZSYgb2Zmc2V0RnJvCiAgICAgfQogfQog
Citib29sIFJlbmRlckxheWVyQmFja2luZzo6aGFzVW5wb3NpdGlvbmVkT3ZlcmZsb3dDb250cm9s
c0xheWVycygpIGNvbnN0Cit7CisgICAgaWYgKEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJG
b3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpCisgICAgICAgIGlmICghbGF5ZXItPmRyYXdzQ29udGVu
dCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoR3JhcGhpY3NMYXllciog
bGF5ZXIgPSBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpCisgICAgICAgIGlmICghbGF5ZXIt
PmRyYXdzQ29udGVudCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoR3Jh
cGhpY3NMYXllciogbGF5ZXIgPSBsYXllckZvclNjcm9sbENvcm5lcigpKQorICAgICAgICBpZiAo
IWxheWVyLT5kcmF3c0NvbnRlbnQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRm9yZWdy
b3VuZExheWVyKGJvb2wgbmVlZHNGb3JlZ3JvdW5kTGF5ZXIpCiB7CiAgICAgYm9vbCBsYXllckNo
YW5nZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaAppbmRleCBiZmRlM2I5ODliN2Q5YjViMjJhY2U0OTQyNjZkYmVkMjYyOTNhZTMwLi5m
MGVjZjU3NzIwYjRmZDMxMWU2NzBkZmZjMzQwNjc2Y2MzOWYyYmI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xMzcsNiArMTM3LDcgQEAg
cHVibGljOgogICAgIAogICAgIHZvaWQgdXBkYXRlQWZ0ZXJXaWRnZXRSZXNpemUoKTsKICAgICB2
b2lkIHBvc2l0aW9uT3ZlcmZsb3dDb250cm9sc0xheWVycyhjb25zdCBJbnRTaXplJiBvZmZzZXRG
cm9tUm9vdCk7CisgICAgYm9vbCBoYXNVbnBvc2l0aW9uZWRPdmVyZmxvd0NvbnRyb2xzTGF5ZXJz
KCkgY29uc3Q7CiAKICAgICBib29sIHVzaW5nVGlsZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV91
c2luZ1RpbGVkQ2FjaGVMYXllcjsgfQogICAgIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCmluZGV4IDI1YjhlYWIzNDhhMTc2MzE3NzEyOGUyZWQ0MDBjM2I4OGY5NzAxZTIu
LjMxYzMwZDYwODAyZmVjM2U3NDVmMTk3NTQzNmMxNTQ3MDM4M2Y4NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC05OTAs
NiArOTkwLDkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGlu
Z1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3IKIAogICAgIGlmIChvdmVybGFwTWFw
KQogICAgICAgICBvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLnBvcE1hcHBpbmdzVG9BbmNlc3Rv
cihhbmNlc3RvckxheWVyKTsKKworICAgIGlmIChsYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKSkKKyAgICAgICAgbGF5ZXItPnBvc2l0aW9uT3ZlcmZsb3dDb250cm9sc0FmdGVyUHJvbW90
aW9uVG9Db21wb3NpdGVkU2Nyb2xsaW5nKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpzZXRDb21wb3NpdGluZ1BhcmVudChSZW5kZXJMYXllciogY2hpbGRMYXllciwgUmVuZGVy
TGF5ZXIqIHBhcmVudExheWVyKQpAQCAtMjAxMSw3ICsyMDE0LDcgQEAgYm9vbCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihSZW5kZXJPYmplY3Qq
IHJlbmRlcmUKIAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRp
bmdGb3JPdmVyZmxvd1Njcm9sbGluZyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGxheWVyLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpOworICAgIHJldHVy
biBsYXllci0+bmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CiB9CiAKIGJvb2wgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjppc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9ybUFuaW1hdGlvbihSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDc3ZDJmZWQ3ZjRmNjBhYjJkMjc2YWIxZjA0
ODc0NjMyNzQ5NzA5MGMuLmExMTg5ODM5OWQyNjJiYmI3ZGFjYmQwZmFiMmFmYjA4YmU5MjFiZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUcmFja3NSZXBhaW50
cyhib29sKTsKIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyop
IGNvbnN0OworICAgIHZvaWQgc2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlv
dXQoKSB7IG1fcmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQgPSB0cnVlOyB9CiAKICAg
ICBlbnVtIEZpeGVkUG9zaXRpb25MYXllck5vdENvbXBvc2l0ZWRSZWFzb24gewogICAgICAgICBO
b1JlYXNvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmlu
ZGV4IGM3NDhlYWJjNGFmMmYxYzExYTUzZjM2NmY5NjEzYjFlOWY3OGUxNTYuLmUwYjg5ZGY2ZWQx
NzcxMmNhNzI3MDdjZjkzY2NmN2UxODNkODUzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMjExLDYgKzIxMSwxMiBAQCB2b2lkIEludGVybmFs
U2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhib29sIGVu
YWJsZWQsIEV4YwogICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JT
Y3JvbGxhYmxlRnJhbWVzRW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9pZCBJbnRlcm5hbFNldHRp
bmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKGJvb2wgZW5hYmxlZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGlu
Z3MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGxFbmFibGVkKGVuYWJsZWQpOworfQorCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNl
dEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBmMzc5ZjI4NThkOTgzZWY5OGU3
ZTJlMGJlZWVjZGRhOTgxZGEyZmY2Li4xZmM3ZjJkNGM2YjEyMzQwNGJiMDJlYjkzMTQwNzVlM2E0
NzM0YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAt
MTAzLDYgKzEwMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2Rl
KGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JGaXhlZFBvc2l0aW9uKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVy
Zmxvd1Njcm9sbChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwKaW5kZXggZDM3YjNmOGMyM2EwMmRjN2E1MzI2MGE1N2I0MjFiNWY5N2I4MjZkNi4u
N2U1NzFjYWE3ZmExNTJmM2I2MTcwOGI0NTJiY2I4MGViOGNmZDBlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0yOSw2ICsyOSw3IEBACiAgICAg
dm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0
aW9uKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBz
ZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoaW4gYm9vbGVhbiBlbmFibGVk
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGwoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVk
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0Vu
YWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lk
IHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDY1ODY4N2Q4MzYzMGE3YjQzMWNkOWExNDhlZTNjODkyMzI4NGVh
NGYuLjIyMzA3MTljYmZjODdkZTdjYmRmMmQwMzZjNDgxMmQ3NGExNzc0YmUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0xMi0xMyAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBBdXRvbWF0aWNhbGx5IHVzZSBjb21wb3NpdGVkIHNjcm9sbGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ3NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyB2YXJpb3Vz
IGNvbmZpZ3VyYXRpb25zIG9mIGVsZW1lbnRzIHRvIGVuc3VyZSB0aGF0IHdlIG9ubHkgYXV0b21h
dGljYWxseSBvcHQgaW50bworICAgICAgICBjb21wb3NpdGVkIHNjcm9sbGluZyB3aGVuIGl0IGlz
IHNhZmUgdG8gZG8gc28uCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0
aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1j
b21wb3NpdGVkLXNjcm9sbGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMi0xNCAgRmxvcmluIE1h
bGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZp
ZXdlZCByZWJhc2VsaW5lIGFmdGVyIFNraWEgcm9sbCBANjc3My4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9z
aXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGVlZjUxNTAyYjc5ZGQwNGRhNDc4ZDUxZWYwMjQ5NzE4YTY0OTI3
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2F1
dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTI3IEBACitJdGVyYXRpb24gMDogUGFzc2VkCitJdGVyYXRpb24gMCwgbGF5ZXIg
dHJlZQorSXRlcmF0aW9uIDE6IFBhc3NlZAorSXRlcmF0aW9uIDEsIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiAyOiBQYXNzZWQKK0l0ZXJhdGlvbiAyLCBsYXllciB0cmVlCitJdGVyYXRpb24gMzogUGFz
c2VkCitJdGVyYXRpb24gMywgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDQ6IFBhc3NlZAorSXRlcmF0
aW9uIDQsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1OiBQYXNzZWQKK0l0ZXJhdGlvbiA1LCBsYXll
ciB0cmVlCitJdGVyYXRpb24gNjogUGFzc2VkCitJdGVyYXRpb24gNiwgbGF5ZXIgdHJlZQorSXRl
cmF0aW9uIDc6IFBhc3NlZAorSXRlcmF0aW9uIDcsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA4OiBQ
YXNzZWQKK0l0ZXJhdGlvbiA4LCBubyBsYXllciB0cmVlCitJdGVyYXRpb24gOTogUGFzc2VkCitJ
dGVyYXRpb24gOSwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDEwOiBQYXNzZWQKK0l0ZXJhdGlv
biAxMCwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDExOiBQYXNzZWQKK0l0ZXJhdGlvbiAxMSwgbGF5
ZXIgdHJlZQorSXRlcmF0aW9uIDEyOiBQYXNzZWQKK0l0ZXJhdGlvbiAxMiwgbm8gbGF5ZXIgdHJl
ZQorSXRlcmF0aW9uIDEzOiBQYXNzZWQKK0l0ZXJhdGlvbiAxMywgbm8gbGF5ZXIgdHJlZQorSXRl
cmF0aW9uIDE0OiBQYXNzZWQKK0l0ZXJhdGlvbiAxNCwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9u
IDE1OiBQYXNzZWQKK0l0ZXJhdGlvbiAxNSwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDE2OiBQ
YXNzZWQKK0l0ZXJhdGlvbiAxNiwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDE3OiBQYXNzZWQK
K0l0ZXJhdGlvbiAxNywgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDE4OiBQYXNzZWQKK0l0ZXJh
dGlvbiAxOCwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDE5OiBQYXNzZWQKK0l0ZXJhdGlvbiAx
OSwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDIwOiBQYXNzZWQKK0l0ZXJhdGlvbiAyMCwgbGF5
ZXIgdHJlZQorSXRlcmF0aW9uIDIxOiBQYXNzZWQKK0l0ZXJhdGlvbiAyMSwgbGF5ZXIgdHJlZQor
SXRlcmF0aW9uIDIyOiBQYXNzZWQKK0l0ZXJhdGlvbiAyMiwgbGF5ZXIgdHJlZQorSXRlcmF0aW9u
IDIzOiBQYXNzZWQKK0l0ZXJhdGlvbiAyMywgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDI0OiBQYXNz
ZWQKK0l0ZXJhdGlvbiAyNCwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDI1OiBQYXNzZWQKK0l0ZXJh
dGlvbiAyNSwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDI2OiBQYXNzZWQKK0l0ZXJhdGlvbiAyNiwg
bGF5ZXIgdHJlZQorSXRlcmF0aW9uIDI3OiBQYXNzZWQKK0l0ZXJhdGlvbiAyNywgbGF5ZXIgdHJl
ZQorSXRlcmF0aW9uIDI4OiBQYXNzZWQKK0l0ZXJhdGlvbiAyOCwgbGF5ZXIgdHJlZQorSXRlcmF0
aW9uIDI5OiBQYXNzZWQKK0l0ZXJhdGlvbiAyOSwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDMwOiBQ
YXNzZWQKK0l0ZXJhdGlvbiAzMCwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDMxOiBQYXNzZWQKK0l0
ZXJhdGlvbiAzMSwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDMyOiBQYXNzZWQKK0l0ZXJhdGlvbiAz
MiwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDMzOiBQYXNzZWQKK0l0ZXJhdGlvbiAzMywgbGF5ZXIg
dHJlZQorSXRlcmF0aW9uIDM0OiBQYXNzZWQKK0l0ZXJhdGlvbiAzNCwgbm8gbGF5ZXIgdHJlZQor
SXRlcmF0aW9uIDM1OiBQYXNzZWQKK0l0ZXJhdGlvbiAzNSwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0
aW9uIDM2OiBQYXNzZWQKK0l0ZXJhdGlvbiAzNiwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDM3OiBQ
YXNzZWQKK0l0ZXJhdGlvbiAzNywgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDM4OiBQYXNzZWQKK0l0
ZXJhdGlvbiAzOCwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDM5OiBQYXNzZWQKK0l0ZXJhdGlv
biAzOSwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDQwOiBQYXNzZWQKK0l0ZXJhdGlvbiA0MCwg
bGF5ZXIgdHJlZQorSXRlcmF0aW9uIDQxOiBQYXNzZWQKK0l0ZXJhdGlvbiA0MSwgbGF5ZXIgdHJl
ZQorSXRlcmF0aW9uIDQyOiBQYXNzZWQKK0l0ZXJhdGlvbiA0MiwgbGF5ZXIgdHJlZQorSXRlcmF0
aW9uIDQzOiBQYXNzZWQKK0l0ZXJhdGlvbiA0MywgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDQ0OiBQ
YXNzZWQKK0l0ZXJhdGlvbiA0NCwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDQ1OiBQYXNzZWQKK0l0
ZXJhdGlvbiA0NSwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDQ2OiBQYXNzZWQKK0l0ZXJhdGlvbiA0
NiwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDQ3OiBQYXNzZWQKK0l0ZXJhdGlvbiA0NywgbGF5ZXIg
dHJlZQorSXRlcmF0aW9uIDQ4OiBQYXNzZWQKK0l0ZXJhdGlvbiA0OCwgbm8gbGF5ZXIgdHJlZQor
SXRlcmF0aW9uIDQ5OiBQYXNzZWQKK0l0ZXJhdGlvbiA0OSwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0
aW9uIDUwOiBQYXNzZWQKK0l0ZXJhdGlvbiA1MCwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDUxOiBQ
YXNzZWQKK0l0ZXJhdGlvbiA1MSwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDUyOiBQYXNzZWQKK0l0
ZXJhdGlvbiA1MiwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDUzOiBQYXNzZWQKK0l0ZXJhdGlvbiA1
MywgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDU0OiBQYXNzZWQKK0l0ZXJhdGlvbiA1NCwgbm8gbGF5
ZXIgdHJlZQorSXRlcmF0aW9uIDU1OiBQYXNzZWQKK0l0ZXJhdGlvbiA1NSwgbm8gbGF5ZXIgdHJl
ZQorSXRlcmF0aW9uIDU2OiBQYXNzZWQKK0l0ZXJhdGlvbiA1Niwgbm8gbGF5ZXIgdHJlZQorSXRl
cmF0aW9uIDU3OiBQYXNzZWQKK0l0ZXJhdGlvbiA1Nywgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9u
IDU4OiBQYXNzZWQKK0l0ZXJhdGlvbiA1OCwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDU5OiBQ
YXNzZWQKK0l0ZXJhdGlvbiA1OSwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDYwOiBQYXNzZWQK
K0l0ZXJhdGlvbiA2MCwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDYxOiBQYXNzZWQKK0l0ZXJhdGlv
biA2MSwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDYyOiBQYXNzZWQKK0l0ZXJhdGlvbiA2Miwg
bGF5ZXIgdHJlZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxv
dy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBv
c2l0ZWQtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM0ZDNlODAwNDZiNmE4MjZkYjEwYmVj
NmQyYmQ5NzgxNTM1NmM1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL292ZXJmbG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmcu
aHRtbApAQCAtMCwwICsxLDIzMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RU
RCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgi
Lz4KKyAgPHRpdGxlPk9wdGluZyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nPC90aXRsZT4KKyAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuY29udGFpbmVyIHsK
KyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICBvdmVyZmxv
dzogc2Nyb2xsOworICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7CisgICAgfQorCisgICAgLnNjcm9sbGVkIHsKKyAgICAgIHdpZHRoOiAxODBweDsKKyAg
ICAgIGhlaWdodDogOTBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGdyYXk7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorCisgICAgLnBv
c2l0aW9uZWQgeworICAgICAgd2lkdGg6IDEyMHB4OworICAgICAgaGVpZ2h0OiAyNDBweDsKKyAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIH0KKworICAgICNwcmVkZWNlc3NvciB7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAgdG9w
OiAyMHB4OworICAgIH0KKworICAgICNzdWNjZXNzb3IgeworICAgICAgbGVmdDogMTYwcHg7Cisg
ICAgICB0b3A6IDIwcHg7CisgICAgfQorCisgICAgI2Rlc2NlbmRhbnQgeworICAgICAgbGVmdDog
OTBweDsKKyAgICAgIHRvcDogMjBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cisg
ICAgICB6LWluZGV4OiAtMjA7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIHZhciBkZWJ1Z01vZGUgPSBmYWxz
ZTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwodHJ1ZSk7
CisKKyAgICBmdW5jdGlvbiB3cml0ZShzdHIpCisgICAgeworICAgICAgdmFyIHByZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyk7CisgICAgICB2YXIgdGV4dCA9IGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHN0ciArICdcbicpOworICAgICAgcHJlLmFwcGVuZENoaWxkKHRleHQp
OworICAgIH0KKworICAgIHZhciBpdGVyYXRpb24gPSAwOworICAgIGZ1bmN0aW9uIHByaW50UmVz
dWx0KGV4cGVjdGVkUmVzdWx0KQorICAgIHsKKyAgICAgIC8vIEZvcmNlIGEgc3R5bGUgcmVjYWxj
LgorICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisKKyAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIC8vIEZvcmNlIGEgbGF5b3V0LgorICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLmJvdW5kaW5nQm94KGNvbnRhaW5lcik7CisgICAgICAgIHZhciBsYXllclRyZWUgPSB3
aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCk7CisKKyAgICAgICAgaWYg
KCFsYXllclRyZWUgPT0gIWV4cGVjdGVkUmVzdWx0KQorICAgICAgICAgIHdyaXRlKCdJdGVyYXRp
b24gJyArIGl0ZXJhdGlvbi50b1N0cmluZygpICsgJzogUGFzc2VkJykKKyAgICAgICAgZWxzZQor
ICAgICAgICAgIHdyaXRlKCdJdGVyYXRpb24gJyArIGl0ZXJhdGlvbi50b1N0cmluZygpICsgJzog
RkFJTEVEJykKKworICAgICAgICBpZiAobGF5ZXJUcmVlKSB7CisgICAgICAgICAgd3JpdGUoJ0l0
ZXJhdGlvbiAnICsgaXRlcmF0aW9uLnRvU3RyaW5nKCkgKyAnLCBsYXllciB0cmVlJyk7CisgICAg
ICAgICAgaWYgKGRlYnVnTW9kZSkKKyAgICAgICAgICAgICAgd3JpdGUobGF5ZXJUcmVlKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgd3JpdGUoJ0l0ZXJhdGlvbiAnICsgaXRlcmF0aW9uLnRv
U3RyaW5nKCkgKyAnLCBubyBsYXllciB0cmVlJyk7CisgICAgICB9CisgICAgICBpdGVyYXRpb24r
KzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIHZhciBwcmVk
ZWNlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcmVkZWNlc3NvcicpOworICAgICAg
dmFyIHN1Y2Nlc3NvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzb3InKTsKKyAg
ICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7
CisgICAgICB2YXIgZmlyc3RDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdENo
aWxkJyk7CisgICAgICB2YXIgc2Vjb25kQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c2Vjb25kQ2hpbGQnKTsKKyAgICAgIHZhciBkZXNjZW5kYW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2Rlc2NlbmRhbnQnKTsKKyAgICAgIHZhciBjb3VudCA9IDA7CisKKyAgICAgIGRlc2Nl
bmRhbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKworICAgICAgLy8gZGVzY2VuZGFudHMgaW4g
c3RhY2tpbmcgb3JkZXIuCisgICAgICBmb3IgKGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAg
IGZvciAoaiA9IDA7IGogPCA1OyArK2opIHsKKyAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgMjsg
KytrKSB7CisgICAgICAgICAgICBmb3IgKGwgPSAwOyBsIDwgMjsgKytsKSB7CisgICAgICAgICAg
ICAgIHZhciBtaW5aSW5kZXggPSAwOworICAgICAgICAgICAgICB2YXIgbWF4WkluZGV4ID0gMDsK
KyAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgIGZpcnN0Q2hpbGQu
c3R5bGUuekluZGV4ID0gJzEnOworICAgICAgICAgICAgICAgIHNlY29uZENoaWxkLnN0eWxlLnpJ
bmRleCA9ICczJzsKKyAgICAgICAgICAgICAgICBtYXhaSW5kZXggPSAzOworICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGkgPT0gMSkgeworICAgICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUu
ekluZGV4ID0gJy0xJzsKKyAgICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXgg
PSAnLTMnOworICAgICAgICAgICAgICAgIG1pblpJbmRleCA9IC0zOworICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIGZpcnN0Q2hpbGQuc3R5bGUuekluZGV4ID0gJy0xJzsK
KyAgICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5kZXggPSAnMyc7CisgICAgICAg
ICAgICAgICAgbWluWkluZGV4ID0gLTE7CisgICAgICAgICAgICAgICAgbWF4WkluZGV4ID0gMzsK
KyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHZhciBzaWJsaW5nID0gcHJlZGVjZXNz
b3I7CisgICAgICAgICAgICAgIHZhciB0b0hpZGUgPSBzdWNjZXNzb3I7CisgICAgICAgICAgICAg
IGlmIChrID09IDEpIHsKKyAgICAgICAgICAgICAgICBzaWJsaW5nID0gc3VjY2Vzc29yOworICAg
ICAgICAgICAgICAgIHRvSGlkZSA9IHByZWRlY2Vzc29yOworICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBzaG91bGQgYmUgdGhlIHNhbWUgaWYgdGhlIHRoZSBl
bGVtZW50IHRvIGhpZGUgaXMKKyAgICAgICAgICAgICAgLy8gZGlzcGxheTpoaWRkZW4gb3IgZGlz
cGxheTpub25lLgorICAgICAgICAgICAgICBpZiAobCA9PSAwKQorICAgICAgICAgICAgICAgIHRv
SGlkZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdG9IaWRlLnN0eWxlLmRpc3BsYXkgPSAnaGlkZGVuJzsKKworICAgICAgICAgICAg
ICBzaWJsaW5nLnN0eWxlLmRpc3BsYXkgPSAnJzsKKworICAgICAgICAgICAgICBpZiAoaiA9PSAw
KQorICAgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gKG1heFpJbmRleCArIDEp
LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gMSkKKyAgICAgICAgICAg
ICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtaW5aSW5kZXggLSAxKS50b1N0cmluZygpOwor
ICAgICAgICAgICAgICBlbHNlIGlmIChqID09IDIpCisgICAgICAgICAgICAgICAgc2libGluZy5z
dHlsZS56SW5kZXggPSBtYXhaSW5kZXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgZWxzZSBp
ZiAoaiA9PSAzKQorICAgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID0gbWluWklu
ZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzaWJs
aW5nLnN0eWxlLnpJbmRleCA9ICgobWluWkluZGV4ICsgbWF4WkluZGV4KSAvIDIpLnRvU3RyaW5n
KCk7CisKKyAgICAgICAgICAgICAgdmFyIGFyZUNvbnRpZ3VvdXMgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgaWYgKHNpYmxpbmcuc3R5bGUuekluZGV4ID4gbWF4WkluZGV4IHx8CisgICAgICAgICAg
ICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA8IG1pblpJbmRleCkgeworICAgICAgICAgICAg
ICAgICAgLy8gc2libGluZyBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiBvdXIgZGVzY2VuZGFudHMu
CisgICAgICAgICAgICAgICAgICBhcmVDb250aWd1b3VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
fSBlbHNlIGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA8IG1heFpJbmRleCAmJgorICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpYmxpbmcuc3R5bGUuekluZGV4ID4gbWluWkluZGV4KSB7CisgICAg
ICAgICAgICAgICAgICAvLyBzaWJsaW5nIGlzIGJldHdlZW4gb3VyIGRlc2NlbmRhbnRzLgorICAg
ICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IGZhbHNlOworICAgICAgICAgICAgICB9IGVs
c2UgaWYgKHNpYmxpbmcuc3R5bGUuekluZGV4ID09IG1pblpJbmRleCkgeworICAgICAgICAgICAg
ICAgICAgaWYgKG1pblpJbmRleCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgLy8gc2li
bGluZyBsaWVzIGJldHdlZW4gdXMgKG5vcm1hbCBmbG93KSBhbmQgb3VyIHBvcworICAgICAgICAg
ICAgICAgICAgICAgIC8vIHotb3JkZXIgZGVzY2VuZGFudHMsIHNvIHdlIGFyZSBub3QgY29udGln
dW91cy4KKyAgICAgICAgICAgICAgICAgICAgICBhcmVDb250aWd1b3VzID0gZmFsc2U7CisgICAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgIC8vIHNpYmxpbmcn
cyB6SW5kZXggbWF0Y2hlcyB0aGUgbWluOyB3ZSdyZSBvbmx5IG9rIGlmIGl0CisgICAgICAgICAg
ICAgICAgICAgICAgLy8gYXBwZWFycyBmaXJzdC4KKyAgICAgICAgICAgICAgICAgICAgICBhcmVD
b250aWd1b3VzID0gayA9PSAwOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9
IGVsc2UgaWYgKHNpYmxpbmcuc3R5bGUuekluZGV4ID09IG1heFpJbmRleCkgeworICAgICAgICAg
ICAgICAgICAgaWYgKG1heFpJbmRleCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAvLyBz
aWJsaW5nIGxpZXMgYmV0d2VlbiB1cyAobm9ybWFsIGZsb3cpIGFuZCBuZWcgei1vcmRlcgorICAg
ICAgICAgICAgICAgICAgICAgIC8vIGRlc2NlbmRhbnRzLCBzbyB3ZSBhcmUgbm90IGNvbnRpZ3Vv
dXMuCisgICAgICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChtYXhaSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAg
ICAgICAgIC8vIHNpYmxpbmcgaXMgaW4gdGhlIHBvcyB6LW9yZGVyIGxpc3QgYW5kIGRvZXMgbm90
IGFmZmVjdAorICAgICAgICAgICAgICAgICAgICAgIC8vIHVzIHNpbmNlIHdlJ3JlIGluIHRoZSBu
b3JtYWwgZmxvdyBsaXN0IGFuZCBvdXIKKyAgICAgICAgICAgICAgICAgICAgICAvLyBkZXNjYW5k
YW50cyBhcmUgaW4gdGhlIG5lZyB6LW9yZGVyIGxpc3QuCisgICAgICAgICAgICAgICAgICAgICAg
YXJlQ29udGlndW91cyA9IHRydWU7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICAgIC8vIHNpYmxpbmcncyB6SW5kZXggbWF0Y2hlcyB0aGUgbWF4OyB3ZSdy
ZSBvbmx5IG9rIGlmIGl0CisgICAgICAgICAgICAgICAgICAgICAgLy8gYXBwZWFycyBhZnRlci4K
KyAgICAgICAgICAgICAgICAgICAgICBhcmVDb250aWd1b3VzID0gayA9PSAxOworICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgcHJpbnRSZXN1bHQo
YXJlQ29udGlndW91cyk7CisgICAgICAgICAgICB9IC8vIGZvciBsCisgICAgICAgICAgfSAvLyBm
b3IgaworICAgICAgICB9IC8vIGZvciBqCisgICAgICB9IC8vIGZvciBpCisKKyAgICAgIC8vIE5v
dyBjaGVjayB0aGF0IHdlIGRvbid0IHByb21vdGUgaWYgd2UgaGF2ZSBhbiBvdXQgb2YgZmxvdyBk
ZXNjZW5kYW50LgorICAgICAgLy8gV2UgbmVlZCB0byBoaWRlIHRoZSBwcmVkZWNlc3NvciBhbmQg
c3VjY2Vzc29yIHNvIHRoZXkgZG9uJ3QgaW50ZXJmZXJlCisgICAgICAvLyB3aXRoIHRoaXMgZXhw
ZXJpbWVudC4KKyAgICAgIHByZWRlY2Vzc29yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAg
ICBzdWNjZXNzb3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgIGZvciAoaSA9IDA7IGkg
PCAzOyArK2kpIHsKKyAgICAgICAgaWYgKGkgPT0gMCkKKyAgICAgICAgICBkZXNjZW5kYW50LnN0
eWxlLmRpc3BsYXkgPSAnaGlkZGVuJzsKKyAgICAgICAgZWxzZSBpZiAoaSA9PSAxKQorICAgICAg
ICAgIGRlc2NlbmRhbnQuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICBlbHNlCisgICAgICAg
ICAgZGVzY2VuZGFudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworCisgICAgICAgIC8vIElmIHRo
ZSBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2NlbmRhbnQgaXMgdmlzaWJsZSwgd2UgY2Fubm90
IG9wdAorICAgICAgICAvLyBpbnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nLgorICAgICAgICBwcmlu
dFJlc3VsdChpICE9IDEpOworICAgICAgICBjb3VudCsrOworICAgICAgfSAvLyBmb3IgaQorCisg
ICAgfSAvLyBmdW5jdGlvbiBkb1Rlc3QKKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgZG9UZXN0LCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAg
PGRpdiBjbGFzcz0icG9zaXRpb25lZCIgaWQ9InByZWRlY2Vzc29yIj48L2Rpdj4KKyAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxl
ZCIgaWQ9ImZpcnN0Q2hpbGQiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVkIiBpZD0i
c2Vjb25kQ2hpbGQiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJkZXNj
ZW5kYW50Ij48L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJz
dWNjZXNzb3IiPjwvZGl2PgorICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzwvYm9keT4KKzwv
aHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179623</attachid>
            <date>2012-12-15 15:09:53 -0800</date>
            <delta_ts>2012-12-15 18:08:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94743-20121215180712.patch</filename>
            <type>text/plain</type>
            <size>51580</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU0ZjI1MjAxZGIxYjMy
YTVlNDIyY2JmMzdhMDc4NGRiYmQ4NDBlYS4uNjFhYjAzMjQ3ZWQxYTY3MTdhNDBiNDRiZjFlMTVh
NTIxMzNiNzVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDEyLTEyLTE1ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQXV0
b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IHVzZSB0aGUgY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZmFjaWxpdGllcyBwcm92aWRlZCBieQorICAgICAgICB3a2IudWcvOTExMTcg
aWYgdGhlIG92ZXJmbG93IHNjcm9sbCBibG9jayBlbGVtZW50IGlzIHN0eWxlZCB3aXRoCisgICAg
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaC4gSWRlYWxseSwgd2UgY291bGQg
YXV0b21hdGljYWxseQorICAgICAgICBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZyBpZiBp
dCBpcyBzYWZlIHRvIGRvIHNvLiBUaGlzIGNhbiBhZmZlY3QKKyAgICAgICAgYW50aWFsaWFzaW5n
LCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBhdXRvbWF0aWNhbGx5IG9wdGluZyBpbiBpcyBvbmx5
CisgICAgICAgIGVuYWJsZWQgdmlhIGEgc2V0dGluZy4KKworICAgICAgICBUaGUgd2F5IEkgZGV0
ZXJtaW5lIGlmIGl0IGlzIHNhZmUgaXMgYnkgY2hlY2tpbmcgdGhhdCB6LW9yZGVyaW5nIHdpbGwK
KyAgICAgICAgbm90IGJlIGFmZmVjdGVkIGlmIHRoZSBvdmVyZmxvdyBzY3JvbGxhYmxlIGVsZW1l
bnQgd2VyZSBwcm9tb3RlZCB0byBhCisgICAgICAgIHN0YWNraW5nIGNvbnRleHQgKGRldGFpbHMg
YmVsb3cpLCBhbmQgdGhhdCBjbGlwcGluZyBvdXIgc2Nyb2xsaW5nCisgICAgICAgIGRlc2NlbmRh
bnRzIHdpbGwgbm90IGFmZmVjdCByZW5kZXJpbmcuCisKKyAgICAgICAgVG8gY2hlY2sgdGhlIGZp
cnN0IGNvbmRpdGlvbiAodGhhdCB6LW9yZGVyaW5nIHdpbGwgbm90IGJlIGFmZmVjdGVkKS4KKyAg
ICAgICAgSSBlbnN1cmUgdGhhdCB0aGUgY2FuZGlkYXRlIGVsZW1lbnQgYW5kIGFsbCBpdHMgZGVz
Y2VuZGFudHMgYXBwZWFyIGFzIGEgCisgICAgICAgIGNvbnRpZ3VvdXMgYmxvY2sgaW4gdGhlIGNh
bmRpZGF0ZSdzIHN0YWNraW5nIGNvbnRleHQuIFRoYXQgaXMsIGlmIG5vIAorICAgICAgICBvdGhl
ciBlbGVtZW50cyBhcmUgJ2JldHdlZW4nIGFueSBvZiB0aGUgY2FuZGlkYXRlcyBkZXNjZW5kYW50
cyB3aGVuIHdlCisgICAgICAgIHNvcnQgaW4gcGFpbnQgb3JkZXIsIHRoZW4gd2UncmUgc2FmZS4g
VGhpcyBpcyBvdmVybHkgY29uc2VydmF0aXZlLAorICAgICAgICBob3dldmVyLiBXZSBjb3VsZCwg
aW4gZnV0dXJlLCBvbmx5IGNvbnNpZGVyIHN0YWNraW5nIHByb2JsZW1zIGJldHdlZW4KKyAgICAg
ICAgZWxlbWVudHMgdGhhdCBhY3R1YWxseSBvdmVybGFwLgorCisgICAgICAgIFRvIGVuc3VyZSB0
aGF0IGNsaXBwaW5nIHdpbGwgbm90IGNhdXNlIGEgcmVuZGVyaW5nIGNoYW5nZSwgSSBlbnN1cmUK
KyAgICAgICAgdGhhdCB0aGUgbGF5ZXIgaGFzIG5vIG91dCBvZiBmbG93IHBvc2l0aW9uZWQgZGVz
Y2VuZGFudCB3aG9zZQorICAgICAgICBjb250YWluaW5nIGJsb2NrIGlzIG5vdCBhbHNvIGEgZGVz
Y2VuZGFudCBvZiBvdXJzLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJmbG93L2F1
dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRpbmctc2Nyb2xsaW5nLmh0bWwKKworICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0lu
U3RhY2tpbmdPcmRlclJlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
cG9zaXRpb25OZXdseUNyZWF0ZWRPdmVyZmxvd0NvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KToKKyAgICAg
ICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIFJlbmRlckxheWVyIGNvdWxkIGJlY29tZSBhIHN0YWNr
aW5nIGNvbnRleHQgd2l0aG91dAorICAgICAgICAgIGFmZmVjdGluZyB0aGUgc3RhY2tpbmcgb3Jk
ZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudERlcGVu
ZGVudEZsYWdzKToKKyAgICAgICAgICBXZSBub3cgbmVlZCB0byBrZWVwIHRyYWNrIG9mIG91dCBv
ZiBmbG93IHBvc2l0aW9uZWQgZGVzY2VuZGFudHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlbW92ZUNo
aWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZyk6CisgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBsYXllciBhY3R1YWxseSBpcyB1
c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgICBUaGlzIGZ1bmN0aW9uIG1heSBy
ZXR1cm4gZmFsc2UsIGV2ZW4gd2hlbiBuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcKKyAgICAgICAg
ICByZXR1cm5zIHRydWUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6bmVlZHNDb21w
b3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBp
ZiB3ZSB3b3VsZCBsaWtlIHRvIHVzZSBjb21wb3NpdGVkCisgICAgICAgICAgc2Nyb2xsaW5nIGFu
ZCBpdCBpcyBzYWZlIHRvIHR1cm4gaXQgb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6dXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGly
dHlaT3JkZXJMaXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlOb3Jt
YWxGbG93TGlzdCk6CisgICAgICAgICAgU2luY2UgdGhlc2UgY291bGQgYWZmZWN0IG9wdGluZyBp
bnRvIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nLCB3ZSBtdXN0CisgICAgICAgICAgcmVxdWVzdCB0aGF0
IHRoZSBSZW5kZXJMYXllckNvbXBvc2l0b3IgcmVldmFsdWF0ZSBjb21wb3NpdGluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVMYXllckxpc3RzSWZOZWVkZWQpOgorICAg
ICAgICAgIFdlIGNhbGwgdXBkYXRlQ2FuU2FmZWx5RXN0YWJsaXNoU3RhY2tpbmdDb250ZXh0IGhl
cmUsIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRC
ZU5vcm1hbEZsb3dPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzaG91bGRC
ZVNlbGZQYWludGluZ0xheWVyKToKKyAgICAgICAgICB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyAt
PiBuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpzZXRBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpcnR5QW5jZXN0b3JDaGFpbkhhc091dE9mRmxv
d1Bvc2l0aW9uZWREZXNjZW5kYW50U3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjp1cGRhdGVPdXRPZkZsb3dQb3NpdGlvbmVkKToKKyAgICAgICAgICBEaXJ0aWVzIGFuZCBz
ZXRzIHRoZSBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2NlbmRhbnQgc3RhdGUuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFJlbmRlckxheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpsYXllck9yQW5jZXN0b3JJc1RyYW5zZm9ybWVkT3JVc2luZ0NvbXBvc2l0ZWRTY3JvbGxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xh
eWVyQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6Omhhc1VucG9zaXRpb25lZE92ZXJmbG93Q29udHJvbHNMYXllcnMpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
OgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNldFNob3VsZFJlZXZhbHVh
dGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbCk6CisgICAgICAgICAgQWxsb3dzIGVuYWJsaW5n
IHRoZSBzZXR0aW5nIGluIGxheW91dCB0ZXN0cy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAoSW50ZXJuYWxTZXR0aW5n
cyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKwogMjAxMi0xMi0x
NCAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjk2MzMgYW5kIHIxMjk3NTcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAzMjhlMGUzNGQwZDdjOTcxY2M0N2I4YTRiYjk1
ZmQzNmZjZDM2Y2Y4Li44YjZlOWNlODZiNDk1NDM4MjhmYmMyODYzOWE2N2NhYWE3MjgyNTZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE0Nyw2ICsxNDcs
MTAgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
bmRlcmVyKQogICAgICwgbV9ub3JtYWxGbG93TGlzdERpcnR5KHRydWUpCiAgICAgLCBtX2hhc1Nl
bGZQYWludGluZ0xheWVyRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1faGFzU2VsZlBhaW50aW5n
TGF5ZXJEZXNjZW5kYW50RGlydHkoZmFsc2UpCisgICAgLCBtX2hhc091dE9mRmxvd1Bvc2l0aW9u
ZWREZXNjZW5kYW50KGZhbHNlKQorICAgICwgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2Vu
ZGFudERpcnR5KGZhbHNlKQorICAgICwgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoZmFsc2Up
CisgICAgLCBtX2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcihmYWxzZSkK
ICAgICAsIG1faXNSb290TGF5ZXIocmVuZGVyZXItPmlzUmVuZGVyVmlldygpKQogICAgICwgbV91
c2VkVHJhbnNwYXJlbmN5KGZhbHNlKQogICAgICwgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24o
ZmFsc2UpCkBAIC00NzAsNiArNDc0LDE2NiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eUFuY2Vz
dG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnRTdGF0dXMoKQogICAgIH0KIH0K
IAorYm9vbCBSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCktPmZyYW1lKCkKKyAg
ICAgICAgJiYgcmVuZGVyZXIoKS0+ZnJhbWUoKS0+cGFnZSgpCisgICAgICAgICYmIHJlbmRlcmVy
KCktPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
ck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpOworfQorCisvLyBJZiB3ZSBhcmUgYSBzdGFja2luZyBj
b250ZXh0LCB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBkZXRlcm1pbmUgaWYgb3VyCisvLyBkZXNj
ZW5kYW50cyBmb3IgYSBjb250aWd1b3VzIGJsb2NrIGluIHN0YWNraW5nIG9yZGVyLiBUaGlzIGlz
IHJlcXVpcmVkIGluCisvLyBvcmRlciBmb3IgYW4gZWxlbWVudCB0byBiZSBzYWZlbHkgcHJvbW90
ZWQgdG8gYSBzdGFja2luZyBjb250ZXh0LiBJdCBpcyBzYWZlCisvLyB0byBiZWNvbWUgYSBzdGFj
a2luZyBjb250ZXh0IGlmIHRoaXMgY2hhbmdlIHdvdWxkIG5vdCBhbHRlciB0aGUgc3RhY2tpbmcK
Ky8vIG9yZGVyIG9mIGxheWVycyBvbiB0aGUgcGFnZS4gVGhhdCBjYW4gb25seSBoYXBwZW4gaWYg
YSBub24tZGVzY2VuZGFudCBhcHBlYXIKKy8vIGJldHdlZW4gdXMgYW5kIG91ciBkZXNjZW5kYW50
cyBpbiBzdGFja2luZyBvcmRlci4gSGVyZSdzIGFuIGV4YW1wbGU6CisvLworLy8gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyAgfCAgXC4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgICBCICAg
QworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvXCAgIHwgICAvXC4KKy8vICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwIC04ICBEICAyICA3CisvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDUKKy8vCisvLyBJJ3ZlIGxhYmVsZWQgb3VyIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIEEsIEIs
IEMsIGFuZCBELCBvdXIgc3RhY2tpbmcKKy8vIGNvbnRleHQgZGVzY2VuZGFudHMgd2l0aCB0aGVp
ciB6IGluZGljZXMsIGFuZCB1cyB3aXRoICd0aGlzJyAod2UncmUgYQorLy8gc3RhY2tpbmcgY29u
dGV4dCBhbmQgb3VyIHpJbmRleCBkb2Vzbid0IG1hdHRlciBoZXJlKS4gVGhlc2Ugbm9kZXMgYXBw
ZWFyIGluCisvLyB0aHJlZSBsaXN0czogcG9zWk9yZGVyLCBuZWdaT3JkZXIsIGFuZCBub3JtYWwg
ZmxvdyAoa2VlcCBpbiBtaW5kIHRoYXQgbm9ybWFsCisvLyBmbG93IGxheWVycyBkb24ndCBvdmVy
bGFwKS4gU28gaWYgd2UgYXJyYW5nZSB0aGVzZSBsaXN0cyBpbiBvcmRlciB3ZSBnZXQgb3VyCisv
LyBzdGFja2luZyBvcmRlcjoKKy8vCisvLyAgICAgICAgICAgICAgICAgICAgIFstOF0sIFtBLURd
LCBbMCwgMiwgNSwgN10tLT4gcG9zIHotb3JkZXIuCisvLyAgICAgICAgICAgICAgICAgICAgICAg
fCAgICAgfAorLy8gICAgICAgIE5lZyB6LW9yZGVyLiA8LSsgICAgICstLT4gTm9ybWFsIGZsb3cg
ZGVzY2VuZGFudHMuCisvLworLy8gV2UgY2FuIHRoZW4gYXNzaWduIG5ldywgJ3N0YWNraW5nJyBv
cmRlciBpbmRpY2VzIHRvIHRoZXNlIGVsZW1lbnRzIGFzIGZvbGxvd3M6CisvLworLy8gICAgICAg
ICAgICAgICAgICAgICBbLThdLCBbQS1EXSwgWzAsIDIsIDUsIDddCisvLyAnU3RhY2tpbmcnIGlu
ZGljZXM6ICAtMSAgICAgMCAgICAgMSAgMiAgMyAgNAorLy8KKy8vIE5vdGUgdGhhdCB0aGUgbm9y
bWFsIGZsb3cgZGVzY2VuZGFudHMgY2FuIHNoYXJlIGFuIGluZGV4IGJlY2F1c2UgdGhleSBkb24n
dAorLy8gc3RhY2svb3ZlcmxhcC4gTm93IG91ciBwcm9ibGVtIGJlY29tZXMgdmVyeSBzaW1wbGU6
IGEgbGF5ZXIgY2FuIHNhZmVseSBiZWNvbWUKKy8vIGEgc3RhY2tpbmcgY29udGV4dCBpZiB0aGUg
c3RhY2tpbmctb3JkZXIgaW5kaWNlcyBvZiBpdCBhbmQgaXRzIGRlc2NlbmRhbnRzCisvLyBhcHBl
YXIgaW4gYSBjb250aWd1b3VzIGJsb2NrIGluIHRoZSBsaXN0IG9mIHN0YWNraW5nIGluZGljZXMu
IFRoaXMgcHJvYmxlbQorLy8gY2FuIGJlIHNvbHZlZCB2ZXJ5IGVmZmljaWVudGx5IGJ5IGNhbGN1
bGF0aW5nIHRoZSBtaW4vbWF4IHN0YWNraW5nIGluZGljZXMgaW4KKy8vIHRoZSBzdWJ0cmVlLCBh
bmQgdGhlIG51bWJlciBzdGFja2luZyBjb250ZXh0IGRlc2NlbmRhbnRzLiBPbmNlIHdlIGhhdmUg
dGhpcworLy8gaW5mb3JtYXRpb24sIHdlIGtub3cgdGhhdCB0aGUgc3VidHJlZSdzIGluZGljZXMg
Zm9ybSBhIGNvbnRpZ3VvdXMgYmxvY2sgaWY6CisvLworLy8gICAgICAgICAgIG1heFN0YWNrSW5k
ZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMKKy8vCisvLyBTbyBmb3Igbm9k
ZSBBIGluIHRoZSBleGFtcGxlIGFib3ZlIHdlIHdvdWxkIGhhdmU6CisvLyAgIG1heFN0YWNrSW5k
ZXggPSAxCisvLyAgIG1pblN0YWNrSW5kZXggPSAtMQorLy8gICBudW1TQ0RlY2VuZGFudHMgPSAy
CisvLworLy8gYW5kIHNvLAorLy8gICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5kZXgg
PT0gbnVtU0NEZXNjZW5kYW50cworLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgMSAtICgt
MSkgPT0gMgorLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgPT0gMgorLy8K
Ky8vICBTaW5jZSB0aGlzIGlzIHRydWUsIEEgY2FuIHNhZmVseSBiZWNvbWUgYSBzdGFja2luZyBj
b250ZXh0LgorLy8gIE5vdywgZm9yIG5vZGUgQyB3ZSBoYXZlOgorLy8KKy8vICAgbWF4U3RhY2tJ
bmRleCA9IDQKKy8vICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJlY2F1c2UgQyBoYXMgc3RhY2tp
bmcgaW5kZXggMC4KKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMgorLy8KKy8vIGFuZCBzbywKKy8v
ICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFudHMK
Ky8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgIDQgLSAwID09IDIKKy8vICA9PT0+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0ID09IDIKKy8vCisvLyBTaW5jZSB0aGlzIGlzIGZh
bHNlLCBDIGNhbm5vdCBiZSBzYWZlbHkgcHJvbW90ZWQgdG8gYSBzdGFja2luZyBjb250ZXh0LiBU
aGlzCisvLyBoYXBwZW5lZCBiZWNhdXNlIG9mIHRoZSBlbGVtZW50cyB3aXRoIHotaW5kZXggNSBh
bmQgMC4gTm93IGlmIDUgaGFkIGJlZW4gYQorLy8gY2hpbGQgb2YgQyByYXRoZXIgdGhhbiBELCBh
bmQgQSBoYWQgbm8gY2hpbGQgd2l0aCBaIGluZGV4IDAsIHdlIHdvdWxkIGhhdmUgaGFkOgorLy8K
Ky8vICAgbWF4U3RhY2tJbmRleCA9IDMKKy8vICAgbWluU3RhY2tJbmRleCA9IDAgPC0tIGJlY2F1
c2UgQyBoYXMgc3RhY2tpbmcgaW5kZXggMC4KKy8vICAgbnVtU0NEZWNlbmRhbnRzID0gMworLy8K
Ky8vIGFuZCBzbywKKy8vICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51
bVNDRGVzY2VuZGFudHMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgIDMgLSAwID09
IDMKKy8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzID09IDMKKy8vCisvLyAg
QW5kIHdlIHdvdWxkIGNvbmNsdWRlIHRoYXQgQyBjb3VsZCBiZSBwcm9tb3RlZC4KK3ZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcigp
Cit7CisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFT
U0VSVCghbV9ub3JtYWxGbG93TGlzdERpcnR5KTsKKyAgICBBU1NFUlQoIW1fek9yZGVyTGlzdHNE
aXJ0eSk7CisKKyAgICAvLyBDcmVhdGUgYSByZXZlcnNlIGxvb2t1cC4KKyAgICBIYXNoTWFwPGNv
bnN0IFJlbmRlckxheWVyKiwgaW50PiBsb29rdXA7CisKKyAgICBpZiAobV9uZWdaT3JkZXJMaXN0
KSB7CisgICAgICAgIGludCBzdGFja2luZ09yZGVySW5kZXggPSAtMTsKKyAgICAgICAgc2l6ZV90
IGxpc3RTaXplID0gbV9uZWdaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1
cnJlbnRMYXllciA9IG1fbmVnWk9yZGVyTGlzdC0+YXQobGlzdFNpemUgLSBpIC0gMSk7CisgICAg
ICAgICAgICBpZiAoIWN1cnJlbnRMYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGxvb2t1cC5zZXQoY3VycmVudExheWVyLCBz
dGFja2luZ09yZGVySW5kZXgtLSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobV9wb3Na
T3JkZXJMaXN0KSB7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG1fcG9zWk9yZGVyTGlzdC0+
c2l6ZSgpOworICAgICAgICBpbnQgc3RhY2tpbmdPcmRlckluZGV4ID0gMTsKKyAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJM
YXllciogY3VycmVudExheWVyID0gbV9wb3NaT3JkZXJMaXN0LT5hdChpKTsKKyAgICAgICAgICAg
IGlmICghY3VycmVudExheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5ZXIsIHN0YWNraW5n
T3JkZXJJbmRleCsrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCBtaW5JbmRleCA9IDA7
CisgICAgaW50IG1heEluZGV4ID0gMDsKKyAgICBpbnQgY291bnQgPSAwOworICAgIGJvb2wgZmly
c3RJdGVyYXRpb24gPSB0cnVlOworICAgIHVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0lu
U3RhY2tpbmdPcmRlclJlY3Vyc2l2ZShsb29rdXAsIG1pbkluZGV4LCBtYXhJbmRleCwgY291bnQs
IGZpcnN0SXRlcmF0aW9uKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFu
dHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyUmVjdXJzaXZlKGNvbnN0IEhhc2hNYXA8Y29u
c3QgUmVuZGVyTGF5ZXIqLCBpbnQ+JiBsb29rdXAsIGludCYgbWluSW5kZXgsIGludCYgbWF4SW5k
ZXgsIGludCYgY291bnQsIGJvb2wgZmlyc3RJdGVyYXRpb24pCit7CisgICAgaWYgKGlzU3RhY2tp
bmdDb250ZXh0KCkgJiYgIWZpcnN0SXRlcmF0aW9uKSB7CisgICAgICAgIGlmIChsb29rdXAuY29u
dGFpbnModGhpcykpIHsKKyAgICAgICAgICAgIG1pbkluZGV4ID0gc3RkOjptaW4obWluSW5kZXgs
IGxvb2t1cC5nZXQodGhpcykpOworICAgICAgICAgICAgbWF4SW5kZXggPSBzdGQ6Om1heChtYXhJ
bmRleCwgbG9va3VwLmdldCh0aGlzKSk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9
IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAg
ICAgICAgaW50IGNoaWxkTWluSW5kZXggPSAwOworICAgICAgICBpbnQgY2hpbGRNYXhJbmRleCA9
IDA7CisgICAgICAgIGludCBjaGlsZENvdW50ID0gMDsKKyAgICAgICAgY2hpbGQtPnVwZGF0ZURl
c2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlclJlY3Vyc2l2ZShsb29rdXAsIGNo
aWxkTWluSW5kZXgsIGNoaWxkTWF4SW5kZXgsIGNoaWxkQ291bnQsIGZhbHNlKTsKKyAgICAgICAg
aWYgKGNoaWxkQ291bnQpIHsKKyAgICAgICAgICAgIGNvdW50ICs9IGNoaWxkQ291bnQ7CisgICAg
ICAgICAgICBtaW5JbmRleCA9IHN0ZDo6bWluKG1pbkluZGV4LCBjaGlsZE1pbkluZGV4KTsKKyAg
ICAgICAgICAgIG1heEluZGV4ID0gc3RkOjptYXgobWF4SW5kZXgsIGNoaWxkTWF4SW5kZXgpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAg
ICAgIGJvb2wgbmV3VmFsdWUgPSBtYXhJbmRleCAtIG1pbkluZGV4ID09IGNvdW50OworI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgYm9vbCBkaWRVcGRhdGUgPSBuZXdW
YWx1ZSAhPSBtX2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcjsKKyNlbmRp
ZgorICAgICAgICBtX2Rlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlciA9IG5l
d1ZhbHVlOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgaWYgKGRp
ZFVwZGF0ZSkKKyAgICAgICAgICAgIHVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwor
I2VuZGlmCisgICAgfQorfQorCiB2b2lkIFJlbmRlckxheWVyOjpjb21wdXRlUmVwYWludFJlY3Rz
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJl
bmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1hcCkKIHsKICAgICBBU1NFUlQoIW1fdmlzaWJsZUNv
bnRlbnRTdGF0dXNEaXJ0eSk7CkBAIC01NzUsNiArNzM5LDIyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21l
dHJ5TWFwCiAgICAgICAgIGdlb21ldHJ5TWFwLT5wb3BNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50
KCkpOwogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQordm9pZCBSZW5kZXJM
YXllcjo6cG9zaXRpb25OZXdseUNyZWF0ZWRPdmVyZmxvd0NvbnRyb2xzKCkKK3sKKyAgICBpZiAo
IWJhY2tpbmcoKS0+aGFzVW5wb3NpdGlvbmVkT3ZlcmZsb3dDb250cm9sc0xheWVycygpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBSZW5kZXJHZW9tZXRyeU1hcCBnZW9tZXRyeU1hcChVc2VUcmFu
c2Zvcm1zKTsKKyAgICBSZW5kZXJWaWV3KiB2aWV3ID0gcmVuZGVyZXIoKS0+dmlldygpOworICAg
IGlmICh0aGlzICE9IHZpZXctPmxheWVyKCkgJiYgcGFyZW50KCkpCisgICAgICAgIGdlb21ldHJ5
TWFwLnB1c2hNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50KCksIDApOworCisgICAgTGF5b3V0UG9p
bnQgb2Zmc2V0RnJvbVJvb3QgPSBMYXlvdXRQb2ludChnZW9tZXRyeU1hcC5hYnNvbHV0ZVBvaW50
KEZsb2F0UG9pbnQoKSkpOworICAgIHBvc2l0aW9uT3ZlcmZsb3dDb250cm9scyh0b1NpemUocm91
bmRlZEludFBvaW50KG9mZnNldEZyb21Sb290KSkpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUo
Q1NTX0NPTVBPU0lUSU5HKQogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQmxlbmRNb2RlKCkKIHsK
QEAgLTcwNiw2ICs4ODYsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlUGFnaW5hdGlvbigp
CiAgICAgfQogfQogCitib29sIFJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tp
bmdDb250ZXh0KCkgY29uc3QKK3sKKyAgICBpZiAoaXNTdGFja2luZ0NvbnRleHQoKSB8fCAhc3Rh
Y2tpbmdDb250ZXh0KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIG1fZGVz
Y2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyOworfQorCiB2b2lkIFJlbmRlckxh
eWVyOjpzZXRIYXNWaXNpYmxlQ29udGVudCgpCiB7IAogICAgIGlmIChtX2hhc1Zpc2libGVDb250
ZW50ICYmICFtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkpIHsKQEAgLTc1OSwyNSArOTQ3LDU0
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEFuY2VzdG9yQ2hhaW5IYXNWaXNpYmxlRGVzY2VuZGFu
dCgpCiAgICAgfQogfQogCi12b2lkIFJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50RGVwZW5k
ZW50RmxhZ3MoKQordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZs
YWdzKEhhc2hTZXQ8Y29uc3QgUmVuZGVyT2JqZWN0Kj4qIG91dE9mRmxvd0Rlc2NlbmRhbnRDb250
YWluaW5nQmxvY2tzKQogewotICAgIGlmIChtX3Zpc2libGVEZXNjZW5kYW50U3RhdHVzRGlydHkg
fHwgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnREaXJ0eSkgeworICAgIGlmIChtX3Zp
c2libGVEZXNjZW5kYW50U3RhdHVzRGlydHkgfHwgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2Nl
bmRhbnREaXJ0eSB8fCBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50RGlydHkpIHsK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgIGJvb2wgb2xkSGFzT3V0
T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQgPSBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNj
ZW5kYW50OworI2VuZGlmCiAgICAgICAgIG1faGFzVmlzaWJsZURlc2NlbmRhbnQgPSBmYWxzZTsK
ICAgICAgICAgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQgPSBmYWxzZTsKKyAgICAg
ICAgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCA9IGZhbHNlOworCisgICAgICAg
IEhhc2hTZXQ8Y29uc3QgUmVuZGVyT2JqZWN0Kj4gY2hpbGRPdXRPZkZsb3dEZXNjZW5kYW50Q29u
dGFpbmluZ0Jsb2NrczsKICAgICAgICAgZm9yIChSZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAg
ICBjaGlsZC0+dXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKCk7CisgICAgICAgICAgICBj
aGlsZE91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzLmNsZWFyKCk7CisgICAgICAg
ICAgICBjaGlsZC0+dXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKCZjaGlsZE91dE9mRmxv
d0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzKTsKKworICAgICAgICAgICAgYm9vbCBjaGlsZElz
T3V0T2ZGbG93UG9zaXRpb25lZCA9IGNoaWxkLT5yZW5kZXJlcigpICYmIGNoaWxkLT5yZW5kZXJl
cigpLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKTsKKyAgICAgICAgICAgIGlmIChjaGlsZElzT3V0
T2ZGbG93UG9zaXRpb25lZCkKKyAgICAgICAgICAgICAgICBjaGlsZE91dE9mRmxvd0Rlc2NlbmRh
bnRDb250YWluaW5nQmxvY2tzLmFkZChjaGlsZC0+cmVuZGVyZXIoKS0+Y29udGFpbmluZ0Jsb2Nr
KCkpOworCisgICAgICAgICAgICBpZiAob3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9j
a3MpIHsKKyAgICAgICAgICAgICAgICBIYXNoU2V0PGNvbnN0IFJlbmRlck9iamVjdCo+Ojpjb25z
dF9pdGVyYXRvciBpdCA9IGNoaWxkT3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3Mu
YmVnaW4oKTsKKyAgICAgICAgICAgICAgICBmb3IgKDsgaXQgIT0gY2hpbGRPdXRPZkZsb3dEZXNj
ZW5kYW50Q29udGFpbmluZ0Jsb2Nrcy5lbmQoKTsgKytpdCkKKyAgICAgICAgICAgICAgICAgICAg
b3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3MtPmFkZCgqaXQpOworICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBib29sIGhhc1Zpc2libGVEZXNjZW5kYW50ID0gY2hpbGQtPm1f
aGFzVmlzaWJsZUNvbnRlbnQgfHwgY2hpbGQtPm1faGFzVmlzaWJsZURlc2NlbmRhbnQ7CiAgICAg
ICAgICAgICBib29sIGhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCA9IGNoaWxkLT5pc1Nl
bGZQYWludGluZ0xheWVyKCkgfHwgY2hpbGQtPmhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFu
dCgpOworICAgICAgICAgICAgYm9vbCBoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCA9
ICFjaGlsZE91dE9mRmxvd0Rlc2NlbmRhbnRDb250YWluaW5nQmxvY2tzLmlzRW1wdHkoKTsKIAog
ICAgICAgICAgICAgbV9oYXNWaXNpYmxlRGVzY2VuZGFudCB8PSBoYXNWaXNpYmxlRGVzY2VuZGFu
dDsKICAgICAgICAgICAgIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50IHw9IGhhc1Nl
bGZQYWludGluZ0xheWVyRGVzY2VuZGFudDsKKyAgICAgICAgICAgIG1faGFzT3V0T2ZGbG93UG9z
aXRpb25lZERlc2NlbmRhbnQgfD0gaGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQ7CiAK
LSAgICAgICAgICAgIGlmIChtX2hhc1Zpc2libGVEZXNjZW5kYW50ICYmIG1faGFzU2VsZlBhaW50
aW5nTGF5ZXJEZXNjZW5kYW50KQorICAgICAgICAgICAgaWYgKG1faGFzVmlzaWJsZURlc2NlbmRh
bnQgJiYgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQgJiYgbV9oYXNPdXRPZkZsb3dQ
b3NpdGlvbmVkRGVzY2VuZGFudCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQor
CisgICAgICAgIGlmIChvdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2NrcyAmJiByZW5k
ZXJlcigpKQorICAgICAgICAgICAgb3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdCbG9ja3Mt
PnJlbW92ZShyZW5kZXJlcigpKTsKKwogICAgICAgICBtX3Zpc2libGVEZXNjZW5kYW50U3RhdHVz
RGlydHkgPSBmYWxzZTsKICAgICAgICAgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnRE
aXJ0eSA9IGZhbHNlOworICAgICAgICBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50
RGlydHkgPSBmYWxzZTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAg
ICAgaWYgKG9sZEhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50ICE9IG1faGFzT3V0T2ZG
bG93UG9zaXRpb25lZERlc2NlbmRhbnQpCisgICAgICAgICAgICB1cGRhdGVOZWVkc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmIChtX3Zpc2libGVDb250ZW50
U3RhdHVzRGlydHkpIHsKQEAgLTEzNzgsNiArMTU5NSw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmFk
ZENoaWxkKFJlbmRlckxheWVyKiBjaGlsZCwgUmVuZGVyTGF5ZXIqIGJlZm9yZUNoaWxkKQogICAg
IGlmIChjaGlsZC0+aXNTZWxmUGFpbnRpbmdMYXllcigpIHx8IGNoaWxkLT5oYXNTZWxmUGFpbnRp
bmdMYXllckRlc2NlbmRhbnQoKSkKICAgICAgICAgc2V0QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWlu
dGluZ0xheWVyRGVzY2VuZGFudCgpOwogCisgICAgaWYgKGNoaWxkLT5yZW5kZXJlcigpICYmIChj
aGlsZC0+cmVuZGVyZXIoKS0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgY2hpbGQtPmhhc091
dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KCkpKQorICAgICAgICBzZXRBbmNlc3RvckNoYWlu
SGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQoY2hpbGQtPnJlbmRlcmVyKCktPmNvbnRh
aW5pbmdCbG9jaygpKTsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBj
b21wb3NpdG9yKCktPmxheWVyV2FzQWRkZWQodGhpcywgY2hpbGQpOwogI2VuZGlmCkBAIC0xNDEw
LDYgKzE2MzAsOSBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OnJlbW92ZUNoaWxkKFJlbmRl
ckxheWVyKiBvbGRDaGlsZCkKICAgICAgICAgb2xkQ2hpbGQtPmRpcnR5U3RhY2tpbmdDb250ZXh0
Wk9yZGVyTGlzdHMoKTsKICAgICB9CiAKKyAgICBpZiAoKG9sZENoaWxkLT5yZW5kZXJlcigpICYm
IG9sZENoaWxkLT5yZW5kZXJlcigpLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgfHwgb2xkQ2hp
bGQtPmhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KCkpCisgICAgICAgIGRpcnR5QW5j
ZXN0b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50U3RhdHVzKCk7CisKICAg
ICBvbGRDaGlsZC0+c2V0UHJldmlvdXNTaWJsaW5nKDApOwogICAgIG9sZENoaWxkLT5zZXROZXh0
U2libGluZygwKTsKICAgICBvbGRDaGlsZC0+c2V0UGFyZW50KDApOwpAQCAtMTYyMiwxNCArMTg0
NSwzNCBAQCB2b2lkIFJlbmRlckxheWVyOjpjb252ZXJ0VG9MYXllckNvb3Jkcyhjb25zdCBSZW5k
ZXJMYXllciogYW5jZXN0b3JMYXllciwgTGF5b3V0UgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIGJvb2wgUmVuZGVyTGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29u
c3QKIHsKKyAgICByZXR1cm4gaXNDb21wb3NpdGVkKCkgJiYgYmFja2luZygpLT5zY3JvbGxpbmdM
YXllcigpOworfQorCitib29sIFJlbmRlckxheWVyOjpuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmco
KSBjb25zdAoreworICAgIHJldHVybiBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZzsKK30KKwor
dm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkKK3sKKyAg
ICBib29sIG9sZE5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyA9IG1fbmVlZHNDb21wb3NpdGVkU2Ny
b2xsaW5nOworCiAgICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3coKSB8fCAhYWxsb3dzU2Nyb2xsaW5n
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV9uZWVkc0NvbXBvc2l0ZWRTY3Jv
bGxpbmcgPSBmYWxzZTsKKyAgICBlbHNlIHsKKyAgICAgICAgYm9vbCBmb3JjZVVzZUNvbXBvc2l0
ZWRTY3JvbGxpbmcgPSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFi
bGVkKCkKKyAgICAgICAgICAgICYmIGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQo
KQorICAgICAgICAgICAgJiYgIWhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KCk7CiAK
ICNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQotICAgIHJldHVybiBy
ZW5kZXJlcigpLT5zdHlsZSgpLT51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCk7CisgICAgICAg
IG1fbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nID0gZm9yY2VVc2VDb21wb3NpdGVkU2Nyb2xsaW5n
IHx8IHJlbmRlcmVyKCktPnN0eWxlKCktPnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKTsKICNl
bHNlCi0gICAgcmV0dXJuIGZhbHNlOworICAgICAgICBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGlu
ZyA9IGZvcmNlVXNlQ29tcG9zaXRlZFNjcm9sbGluZzsKICNlbmRpZgorICAgIH0KKworICAgIGlm
IChvbGROZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcgIT0gbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxp
bmcpCisgICAgICAgIHVwZGF0ZVNlbGZQYWludGluZ0xheWVyKCk7CiB9CiAjZW5kaWYKIApAQCAt
MTc5Myw4ICsyMDM2LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQg
eSkKICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVF
dmVudFNvb25JblF1YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCisgICAg
Ym9vbCByZXF1aXJlc1JlcGFpbnQgPSB0cnVlOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorICAgIGlmIChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2RlKCkgJiYgdXNl
c0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICAgICAgcmVxdWlyZXNSZXBhaW50ID0gZmFsc2U7
CisjZW5kaWYKKwogICAgIC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJlcGFpbnQgb2Ygb3VyIG9i
amVjdC4KLSAgICBpZiAodmlldyAmJiAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkKKyAgICBp
ZiAodmlldyAmJiByZXF1aXJlc1JlcGFpbnQpCiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnRV
c2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBwaXhlbFNuYXBwZWRJbnRSZWN0KG1fcmVw
YWludFJlY3QpKTsKIAogICAgIC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwgRE9NIGV2ZW50LgpAQCAt
NDgwMCw4ICs1MDUwLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMoKQog
ICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IHRydWU7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0gICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkp
CisgICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAg
ICAgY29tcG9zaXRvcigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CisgICAg
ICAgIGlmIChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkp
CisgICAgICAgICAgICBjb21wb3NpdG9yKCktPnNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGlu
Z0FmdGVyTGF5b3V0KCk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTQ4MjEsOCArNTA3NCwxMSBA
QCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkKICAgICBtX25vcm1hbEZs
b3dMaXN0RGlydHkgPSB0cnVlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
ICAgIGlmICghcmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgIGlmICgh
cmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7CiAgICAgICAgIGNvbXBvc2l0
b3IoKS0+c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOworICAgICAgICBpZiAoYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQorICAgICAgICAg
ICAgY29tcG9zaXRvcigpLT5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91
dCgpOworICAgIH0KICNlbmRpZgogfQogCkBAIC00OTIwLDYgKzUxNzYsOCBAQCB2b2lkIFJlbmRl
ckxheWVyOjpjb2xsZWN0TGF5ZXJzKGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycywgT3duUHRyPFZl
Y3RvcjxSZW5kZXJMYQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllckxpc3RzSWZOZWVk
ZWQoKQogeworICAgIGJvb2wgc2hvdWxkVXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5T
dGFja2luZ09yZGVyID0gaXNTdGFja2luZ0NvbnRleHQoKSAmJiAobV96T3JkZXJMaXN0c0RpcnR5
IHx8IG1fbm9ybWFsRmxvd0xpc3REaXJ0eSk7CisKICAgICB1cGRhdGVaT3JkZXJMaXN0cygpOwog
ICAgIHVwZGF0ZU5vcm1hbEZsb3dMaXN0KCk7CiAKQEAgLTQ5MjcsNiArNTE4NSw5IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCgpCiAgICAgICAgIHJlZmxlY3Rp
b25MYXllci0+dXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICAgICAgcmVmbGVjdGlvbkxheWVyLT51
cGRhdGVOb3JtYWxGbG93TGlzdCgpOwogICAgIH0KKworICAgIGlmIChzaG91bGRVcGRhdGVEZXNj
ZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIpCisgICAgICAgIHVwZGF0ZURlc2Nl
bmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcigpOwogfQogCiB2b2lkIFJlbmRlckxh
eWVyOjp1cGRhdGVDb21wb3NpdGluZ0FuZExheWVyTGlzdHNJZk5lZWRlZCgpCkBAIC01MDE0LDE0
ICs1Mjc1LDE0IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkoKSBj
b25zdAogICAgICAgICAgICAgJiYgIXJlbmRlcmVyKCktPmhhc0JsZW5kTW9kZSgpCiAjZW5kaWYK
ICAgICAgICAgICAgICYmICFpc1RyYW5zcGFyZW50KCkKLSAgICAgICAgICAgICYmICF1c2VzQ29t
cG9zaXRlZFNjcm9sbGluZygpOworICAgICAgICAgICAgJiYgIW5lZWRzQ29tcG9zaXRlZFNjcm9s
bGluZygpOwogfQogCiBib29sIFJlbmRlckxheWVyOjpzaG91bGRCZVNlbGZQYWludGluZ0xheWVy
KCkgY29uc3QKIHsKICAgICByZXR1cm4gIWlzTm9ybWFsRmxvd09ubHkoKQogICAgICAgICB8fCBo
YXNPdmVybGF5U2Nyb2xsYmFycygpCi0gICAgICAgIHx8IHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5n
KCkKKyAgICAgICAgfHwgbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkKICAgICAgICAgfHwgcmVu
ZGVyZXIoKS0+aGFzUmVmbGVjdGlvbigpCiAgICAgICAgIHx8IHJlbmRlcmVyKCktPmhhc01hc2so
KQogICAgICAgICB8fCByZW5kZXJlcigpLT5pc1RhYmxlUm93KCkKQEAgLTUxMTcsNiArNTM3OCw0
MiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNoYW5nZShj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCiAgICAgICAgIHVwZGF0ZVNjcm9sbGFibGVBcmVh
U2V0KGhhc1Njcm9sbGFibGVIb3Jpem9udGFsT3ZlcmZsb3coKSB8fCBoYXNTY3JvbGxhYmxlVmVy
dGljYWxPdmVyZmxvdygpKTsKIH0KIAordm9pZCBSZW5kZXJMYXllcjo6c2V0QW5jZXN0b3JDaGFp
bkhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KFJlbmRlck9iamVjdCogY29udGFpbmlu
Z0Jsb2NrKQoreworICAgIGZvciAoUmVuZGVyTGF5ZXIqIGxheWVyID0gdGhpczsgbGF5ZXI7IGxh
eWVyID0gbGF5ZXItPnBhcmVudCgpKSB7CisgICAgICAgIGlmICghbGF5ZXItPm1faGFzT3V0T2ZG
bG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSAmJiBsYXllci0+aGFzT3V0T2ZGbG93UG9zaXRp
b25lZERlc2NlbmRhbnQoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGxheWVyLT5t
X2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50RGlydHkgPSBmYWxzZTsKKyAgICAgICAg
bGF5ZXItPm1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQgPSB0cnVlOworI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgbGF5ZXItPnVwZGF0ZU5lZWRzQ29t
cG9zaXRlZFNjcm9sbGluZygpOworI2VuZGlmCisKKyAgICAgICAgaWYgKGxheWVyLT5yZW5kZXJl
cigpICYmIGxheWVyLT5yZW5kZXJlcigpID09IGNvbnRhaW5pbmdCbG9jaykKKyAgICAgICAgICAg
IGJyZWFrOworICAgIH0KK30KKwordm9pZCBSZW5kZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWlu
SGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnRTdGF0dXMoKQoreworICAgIG1faGFzT3V0
T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSA9IHRydWU7CisgICAgaWYgKHBhcmVudCgp
KQorICAgICAgICBwYXJlbnQoKS0+ZGlydHlBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRp
b25lZERlc2NlbmRhbnRTdGF0dXMoKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlT3V0
T2ZGbG93UG9zaXRpb25lZChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgYm9v
bCB3YXNPdXRPZkZsb3dQb3NpdGlvbmVkID0gb2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5wb3NpdGlv
bigpID09IEFic29sdXRlUG9zaXRpb24gfHwgb2xkU3R5bGUtPnBvc2l0aW9uKCkgPT0gRml4ZWRQ
b3NpdGlvbik7CisgICAgaWYgKHBhcmVudCgpICYmICgocmVuZGVyZXIoKSAmJiByZW5kZXJlcigp
LT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgIT0gd2FzT3V0T2ZGbG93UG9zaXRpb25lZCkpIHsK
KyAgICAgICAgcGFyZW50KCktPmRpcnR5QW5jZXN0b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9u
ZWREZXNjZW5kYW50U3RhdHVzKCk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
ICAgICAgICBpZiAoIXJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSAmJiBhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCisgICAgICAgICAg
ICBjb21wb3NpdG9yKCktPnNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0
KCk7CisjZW5kaWYKKyAgICB9Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChT
dHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKIHsKICAgICBib29s
IGlzTm9ybWFsRmxvd09ubHkgPSBzaG91bGRCZU5vcm1hbEZsb3dPbmx5KCk7CkBAIC01MTM3LDEx
ICs1NDM0LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKICAgICAgICAgbV9tYXJxdWVlLmNsZWFy
KCk7CiAgICAgfQogCi0gICAgdXBkYXRlU3RhY2tpbmdDb250ZXh0c0FmdGVyU3R5bGVDaGFuZ2Uo
b2xkU3R5bGUpOwogICAgIHVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxlQ2hhbmdlKG9sZFN0eWxl
KTsKKyAgICB1cGRhdGVTdGFja2luZ0NvbnRleHRzQWZ0ZXJTdHlsZUNoYW5nZShvbGRTdHlsZSk7
CiAgICAgLy8gT3ZlcmxheSBzY3JvbGxiYXJzIGNhbiBtYWtlIHRoaXMgbGF5ZXIgc2VsZi1wYWlu
dGluZyBzbyB3ZSBuZWVkCiAgICAgLy8gdG8gcmVjb21wdXRlIHRoZSBiaXQgb25jZSBzY3JvbGxi
YXJzIGhhdmUgYmVlbiB1cGRhdGVkLgogICAgIHVwZGF0ZVNlbGZQYWludGluZ0xheWVyKCk7Cisg
ICAgdXBkYXRlT3V0T2ZGbG93UG9zaXRpb25lZChvbGRTdHlsZSk7CiAKICAgICBpZiAoIWhhc1Jl
ZmxlY3Rpb24oKSAmJiBtX3JlZmxlY3Rpb24pCiAgICAgICAgIHJlbW92ZVJlZmxlY3Rpb24oKTsK
QEAgLTUxNzAsNiArNTQ2OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChTdHls
ZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKICNlbmRpZgogCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNj
cm9sbGluZygpOwogICAgIGlmIChjb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyQ29tcG9zaXRpbmdT
dGF0ZSh0aGlzKSkKICAgICAgICAgY29tcG9zaXRvcigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05l
ZWRSZWJ1aWxkKCk7CiAgICAgZWxzZSBpZiAob2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5jbGlwKCkg
IT0gcmVuZGVyZXIoKS0+c3R5bGUoKS0+Y2xpcCgpIHx8IG9sZFN0eWxlLT5oYXNDbGlwKCkgIT0g
cmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzQ2xpcCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKaW5kZXggMWNmYzlhMDNmZjNlNTU1NTdlOWVjZDM4ZGRmMjE3ZTIwYzE1MWZj
My4uOTNhYmIwZTM5NzcyNGQ3MDMyNDEyNGI1MzdkYzViMDUwODhjYWYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQwMyw2ICs0MDMsMTAgQEAgcHVibGljOgog
CiAgICAgdm9pZCB1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3JvbGwoKTsKICAg
ICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCgpOworCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIHZvaWQgcG9zaXRpb25OZXdseUNyZWF0
ZWRPdmVyZmxvd0NvbnRyb2xzKCk7CisjZW5kaWYKICAgICAKICAgICBib29sIGlzUGFnaW5hdGVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc1BhZ2luYXRlZDsgfQogCkBAIC00NjMsNiArNDY3LDEzIEBA
IHB1YmxpYzoKICAgICAvLyBQYXJ0IG9mIHRoZSBpc3N1ZSBpcyB3aXRoIHN1YnRyZWUgcmVsYXlv
dXQ6IHdlIGRvbid0IGNoZWNrIGlmIG91ciBhbmNlc3RvcnMgaGF2ZSBzb21lIGRlc2NlbmRhbnQg
ZmxhZ3MgZGlydHksIG1pc3Npbmcgc29tZSB1cGRhdGVzLgogICAgIGJvb2wgaGFzU2VsZlBhaW50
aW5nTGF5ZXJEZXNjZW5kYW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTZWxmUGFpbnRpbmdMYXll
ckRlc2NlbmRhbnQ7IH0KIAorICAgIC8vIFRoaXMgcmV0dXJucyB0cnVlIGlmIHdlIGhhdmUgYW4g
b3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50IHdob3NlCisgICAgLy8gY29udGFpbmlu
ZyBibG9jayBpcyBub3QgYSBkZXNjZW5kYW50IG9mIG91cnMuIElmIHRoaXMgaXMgdHJ1ZSwgd2Ug
Y2Fubm90CisgICAgLy8gYXV0b21hdGljYWxseSBvcHQgaW50byBjb21wb3NpdGVkIHNjcm9sbGlu
ZyBzaW5jZSB0aGlzIG91dCBvZiBmbG93CisgICAgLy8gcG9zaXRpb25lZCBkZXNjZW5kYW50IHdv
dWxkIGJlY29tZSBjbGlwcGVkIGJ5IHVzLCBwb3NzaWJseSBhbHRlcmluZyB0aGUgCisgICAgLy8g
cmVuZGVyaW5nIG9mIHRoZSBwYWdlLgorICAgIGJvb2wgaGFzT3V0T2ZGbG93UG9zaXRpb25lZERl
c2NlbmRhbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5k
YW50OyB9CisKICAgICAvLyBHZXRzIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBwb3NpdGlvbmVkIGFu
Y2VzdG9yIGxheWVyIChhbHNvIGluY2x1ZGVzCiAgICAgLy8gdGhlIDxodG1sPiBsYXllciBhbmQg
dGhlIHJvb3QgbGF5ZXIpLgogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdQb3NpdGlvbmVkQW5j
ZXN0b3IoKSBjb25zdDsKQEAgLTY1Niw2ICs2NjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBH
cmFwaGljc0xheWVyKiBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBHcmFwaGljc0xheWVyKiBsYXllckZvclNjcm9sbENvcm5lcigpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0IE9WRVJSSURFOworICAg
IGJvb2wgbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3Q7CiAjZWxzZQogICAgIGJvb2wg
aXNDb21wb3NpdGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGhhc0NvbXBv
c2l0ZWRNYXNrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTcyNSw2ICs3MzcsMTAgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldEFuY2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRl
c2NlbmRhbnQoKTsKICAgICB2b2lkIGRpcnR5QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xh
eWVyRGVzY2VuZGFudFN0YXR1cygpOwogCisgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVEZXNjZW5k
YW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIoKTsKKyAgICB2b2lkIHVwZGF0ZURlc2Nl
bmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlclJlY3Vyc2l2ZShjb25zdCBIYXNoTWFw
PGNvbnN0IFJlbmRlckxheWVyKiwgaW50PiYsIGludCYgbWluSW5kZXgsIGludCYgbWF4SW5kZXgs
IGludCYgY291bnQsIGJvb2wgZmlyc3RJdGVyYXRpb24pOworCiAgICAgdm9pZCBjb21wdXRlUmVw
YWludFJlY3RzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IGNvbnN0IFJlbmRlckdlb21ldHJ5TWFwKiA9IDApOwogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRS
ZWN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7CiAgICAgdm9pZCBjbGVhclJlcGFpbnRSZWN0cygp
OwpAQCAtNzQxLDYgKzc1NywxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlU2Nyb2xsYmFy
c0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKICAgICB2b2lk
IHVwZGF0ZVNjcm9sbGJhcnNBZnRlckxheW91dCgpOwogCisgICAgdm9pZCBzZXRBbmNlc3RvckNo
YWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQoUmVuZGVyT2JqZWN0KiBjb250YWlu
aW5nQmxvY2spOworICAgIHZvaWQgZGlydHlBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRp
b25lZERlc2NlbmRhbnRTdGF0dXMoKTsKKyAgICB2b2lkIHVwZGF0ZU91dE9mRmxvd1Bvc2l0aW9u
ZWQoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKKworICAgIHZvaWQgdXBkYXRlTmVlZHND
b21wb3NpdGVkU2Nyb2xsaW5nKCk7CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBvc2l0
aW9uIGNoYW5nZWQuCiAgICAgYm9vbCB1cGRhdGVMYXllclBvc2l0aW9uKCk7CiAKQEAgLTg3Niw3
ICs4OTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlydHlBbmNlc3RvckNoYWluVmlzaWJsZURl
c2NlbmRhbnRTdGF0dXMoKTsKICAgICB2b2lkIHNldEFuY2VzdG9yQ2hhaW5IYXNWaXNpYmxlRGVz
Y2VuZGFudCgpOwogCi0gICAgdm9pZCB1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsK
KyAgICB2b2lkIHVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncyhIYXNoU2V0PGNvbnN0IFJl
bmRlck9iamVjdCo+KiBvdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2NrcyA9IDApOwog
CiAgICAgLy8gVGhpcyBmbGFnIGlzIGNvbXB1dGVkIGJ5IFJlbmRlckxheWVyQ29tcG9zaXRvciwg
d2hpY2gga25vd3MgbW9yZSBhYm91dCAzZCBoaWVyYXJjaGllcyB0aGFuIHdlIGRvLgogICAgIHZv
aWQgc2V0SGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnQoYm9vbCBiKSB7IG1faGFzM0RUcmFuc2Zv
cm1lZERlc2NlbmRhbnQgPSBiOyB9CkBAIC05MzMsNiArOTU1LDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNv
biByZWFzb24pIHsgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uID0gcmVhc29uOyB9CiAgICAg
SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBpbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbj4obV9pbmRp
cmVjdENvbXBvc2l0aW5nUmVhc29uKTsgfQogICAgIGJvb2wgbXVzdENvbXBvc2l0ZUZvckluZGly
ZWN0UmVhc29ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjsg
fQorCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHogb3JkZXJpbmcgd291bGQgbm90IGNoYW5nZSBp
ZiB0aGlzIGxheWVyIHdlcmUgdG8gZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dC4KKyAgICBi
b29sIGNhblNhZmVseUVzdGFibGlzaEFTdGFja2luZ0NvbnRleHQoKSBjb25zdDsKICNlbmRpZgog
CiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlckxheWVyQmFja2luZzsKQEAgLTk3Myw2ICs5OTgsMTkg
QEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQg
OiAxOwogICAgIGJvb2wgbV9oYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnREaXJ0eSA6IDE7
CiAKKyAgICAvLyBJZiB3ZSBoYXZlIG5vIG91dCBvZiBmbG93IHBvc2l0aW9uZWQgZGVzY2VuZGFu
dHMgYW5kIG5vIG5vbi1kZXNjZW5kYW50CisgICAgLy8gYXBwZWFycyBiZXR3ZWVuIG91ciBkZXNj
ZW5kYW50cyBpbiBzdGFja2luZyBvcmRlciwgdGhlbiB3ZSBtYXkgYmVjb21lIGEKKyAgICAvLyBz
dGFja2luZyBjb250ZXh0LgorICAgIGJvb2wgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2Vu
ZGFudCA6IDE7CisgICAgYm9vbCBtX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50RGly
dHkgOiAxOworCisgICAgYm9vbCBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyA6IDE7CisKKyAg
ICAvLyBJZiB0aGlzIGlzIHRydWUsIHRoZW4gbm8gbm9uLWRlc2NlbmRhbnQgYXBwZWFycyBiZXR3
ZWVuIGFueSBvZiBvdXIKKyAgICAvLyBkZXNjZW5kYW50cyBpbiBzdGFja2luZyBvcmRlci4gVGhp
cyBpcyBvbmUgb2YgdGhlIHJlcXVpcmVtZW50cyBvZiBiZWluZworICAgIC8vIGFibGUgdG8gc2Fm
ZWx5IGJlY29tZSBhIHN0YWNraW5nIGNvbnRleHQuCisgICAgYm9vbCBtX2Rlc2NlbmRhbnRzQXJl
Q29udGlndW91c0luU3RhY2tpbmdPcmRlciA6IDE7CisKICAgICBjb25zdCBib29sIG1faXNSb290
TGF5ZXIgOiAxOwogCiAgICAgYm9vbCBtX3VzZWRUcmFuc3BhcmVuY3kgOiAxOyAvLyBUcmFja3Mg
d2hldGhlciB3ZSBuZWVkIHRvIGNsb3NlIGEgdHJhbnNwYXJlbnQgbGF5ZXIsIGkuZS4sIHdoZXRo
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
aW5kZXggNmYzMDdjMDgxYWQ5YjJmNjZmM2E0MjY5ODc1NjNhMmNhOWEwNjYwZS4uODc3M2NmNDU2
ODg3NWUzNzQ5NDIzZWM1NGMzOWU3MDhkYTllM2NhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0
aWMgYm9vbCBoYXNOb25aZXJvVHJhbnNmb3JtT3JpZ2luKGNvbnN0IFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiBzdGF0aWMgYm9vbCBsYXllck9yQW5jZXN0b3JJc1RyYW5zZm9ybWVkT3JVc2luZ0Nv
bXBvc2l0ZWRTY3JvbGxpbmcoUmVuZGVyTGF5ZXIqIGxheWVyKQogewogICAgIGZvciAoUmVuZGVy
TGF5ZXIqIGN1cnIgPSBsYXllcjsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7Ci0gICAg
ICAgIGlmIChjdXJyLT5oYXNUcmFuc2Zvcm0oKSB8fCBjdXJyLT51c2VzQ29tcG9zaXRlZFNjcm9s
bGluZygpKQorICAgICAgICBpZiAoY3Vyci0+aGFzVHJhbnNmb3JtKCkgfHwgY3Vyci0+bmVlZHND
b21wb3NpdGVkU2Nyb2xsaW5nKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAg
ICAgCkBAIC00NTEsNyArNDUxLDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdy
YXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKICAgICBib29sIG5lZWRzRGVzY2VuZGVudHNDbGlw
cGluZ0xheWVyID0gY29tcG9zaXRvci0+Y2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKG1fb3du
aW5nTGF5ZXIpOwogCiAgICAgLy8gT3VyIHNjcm9sbGluZyBsYXllciB3aWxsIGNsaXAuCi0gICAg
aWYgKG1fb3duaW5nTGF5ZXItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCisgICAgaWYgKG1f
b3duaW5nTGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpKQogICAgICAgICBuZWVkc0Rl
c2NlbmRlbnRzQ2xpcHBpbmdMYXllciA9IGZhbHNlOwogCiAgICAgaWYgKHVwZGF0ZUNsaXBwaW5n
TGF5ZXJzKGNvbXBvc2l0b3ItPmNsaXBwZWRCeUFuY2VzdG9yKG1fb3duaW5nTGF5ZXIpLCBuZWVk
c0Rlc2NlbmRlbnRzQ2xpcHBpbmdMYXllcikpCkBAIC00NjAsNyArNDYwLDcgQEAgYm9vbCBSZW5k
ZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKICAgICBp
ZiAodXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyhyZXF1aXJlc0hvcml6b250YWxTY3JvbGxi
YXJMYXllcigpLCByZXF1aXJlc1ZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIoKSwgcmVxdWlyZXNTY3Jv
bGxDb3JuZXJMYXllcigpKSkKICAgICAgICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKIAot
ICAgIGlmICh1cGRhdGVTY3JvbGxpbmdMYXllcnMobV9vd25pbmdMYXllci0+dXNlc0NvbXBvc2l0
ZWRTY3JvbGxpbmcoKSkpCisgICAgaWYgKHVwZGF0ZVNjcm9sbGluZ0xheWVycyhtX293bmluZ0xh
eWVyLT5uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSkpCiAgICAgICAgIGxheWVyQ29uZmlnQ2hh
bmdlZCA9IHRydWU7CiAKICAgICBpZiAobGF5ZXJDb25maWdDaGFuZ2VkKQpAQCAtNjA0LDcgKzYw
NCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0
cnkoKQogICAgIGVsc2UKICAgICAgICAgZ3JhcGhpY3NMYXllclBhcmVudExvY2F0aW9uID0gcmVu
ZGVyZXIoKS0+dmlldygpLT5kb2N1bWVudFJlY3QoKS5sb2NhdGlvbigpOwogCi0gICAgaWYgKGNv
bXBBbmNlc3RvciAmJiBjb21wQW5jZXN0b3ItPnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpIHsK
KyAgICBpZiAoY29tcEFuY2VzdG9yICYmIGNvbXBBbmNlc3Rvci0+bmVlZHNDb21wb3NpdGVkU2Ny
b2xsaW5nKCkpIHsKICAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSB0b1JlbmRlckJveChj
b21wQW5jZXN0b3ItPnJlbmRlcmVyKCkpOwogICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldCA9
IGNvbXBBbmNlc3Rvci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgICAgIEludFBvaW50
IHNjcm9sbE9yaWdpbihyZW5kZXJCb3gtPmJvcmRlckxlZnQoKSwgcmVuZGVyQm94LT5ib3JkZXJU
b3AoKSk7CkBAIC05NjMsNiArOTYzLDIzIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwb3Np
dGlvbk92ZXJmbG93Q29udHJvbHNMYXllcnMoY29uc3QgSW50U2l6ZSYgb2Zmc2V0RnJvCiAgICAg
fQogfQogCitib29sIFJlbmRlckxheWVyQmFja2luZzo6aGFzVW5wb3NpdGlvbmVkT3ZlcmZsb3dD
b250cm9sc0xheWVycygpIGNvbnN0Cit7CisgICAgaWYgKEdyYXBoaWNzTGF5ZXIqIGxheWVyID0g
bGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpCisgICAgICAgIGlmICghbGF5ZXItPmRyYXdz
Q29udGVudCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoR3JhcGhpY3NM
YXllciogbGF5ZXIgPSBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpCisgICAgICAgIGlmICgh
bGF5ZXItPmRyYXdzQ29udGVudCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBp
ZiAoR3JhcGhpY3NMYXllciogbGF5ZXIgPSBsYXllckZvclNjcm9sbENvcm5lcigpKQorICAgICAg
ICBpZiAoIWxheWVyLT5kcmF3c0NvbnRlbnQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
Rm9yZWdyb3VuZExheWVyKGJvb2wgbmVlZHNGb3JlZ3JvdW5kTGF5ZXIpCiB7CiAgICAgYm9vbCBs
YXllckNoYW5nZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaAppbmRleCBiZmRlM2I5ODliN2Q5YjViMjJhY2U0OTQyNjZkYmVkMjYyOTNh
ZTMwLi5mMGVjZjU3NzIwYjRmZDMxMWU2NzBkZmZjMzQwNjc2Y2MzOWYyYmI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xMzcsNiArMTM3
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgdXBkYXRlQWZ0ZXJXaWRnZXRSZXNpemUoKTsK
ICAgICB2b2lkIHBvc2l0aW9uT3ZlcmZsb3dDb250cm9sc0xheWVycyhjb25zdCBJbnRTaXplJiBv
ZmZzZXRGcm9tUm9vdCk7CisgICAgYm9vbCBoYXNVbnBvc2l0aW9uZWRPdmVyZmxvd0NvbnRyb2xz
TGF5ZXJzKCkgY29uc3Q7CiAKICAgICBib29sIHVzaW5nVGlsZUNhY2hlKCkgY29uc3QgeyByZXR1
cm4gbV91c2luZ1RpbGVkQ2FjaGVMYXllcjsgfQogICAgIFRpbGVkQmFja2luZyogdGlsZWRCYWNr
aW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCmluZGV4IDI1YjhlYWIzNDhhMTc2MzE3NzEyOGUyZWQ0MDBjM2I4OGY5
NzAxZTIuLmY1NmVlNzdhOWNhOGJlNGM1ZjlmNjZlMGFlODczNzI1MjI2NmYzYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBA
IC0xMDU4LDYgKzEwNTgsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENv
bXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgVmVjdAogI2Vsc2UKICAgICAg
ICAgVU5VU0VEX1BBUkFNKGRlcHRoKTsKICNlbmRpZgorICAgICAgICBpZiAobGF5ZXJCYWNraW5n
LT5oYXNVbnBvc2l0aW9uZWRPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCkpCisgICAgICAgICAgICBs
YXllci0+cG9zaXRpb25OZXdseUNyZWF0ZWRPdmVyZmxvd0NvbnRyb2xzKCk7CiAgICAgfQogCiAg
ICAgLy8gSWYgdGhpcyBsYXllciBoYXMgYmFja2luZywgdGhlbiB3ZSBhcmUgY29sbGVjdGluZyBp
dHMgY2hpbGRyZW4sIG90aGVyd2lzZSBhcHBlbmRpbmcKQEAgLTIwMTEsNyArMjAxMyw3IEBAIGJv
b2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24o
UmVuZGVyT2JqZWN0KiByZW5kZXJlCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1
aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyTGF5ZXIqIGxh
eWVyKSBjb25zdAogewotICAgIHJldHVybiBsYXllci0+dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmco
KTsKKyAgICByZXR1cm4gbGF5ZXItPm5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwogfQogCiBi
b29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1B
bmltYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA3N2QyZmVkN2Y0ZjYw
YWIyZDI3NmFiMWYwNDg3NDYzMjc0OTcwOTBjLi5hMTE4OTgzOTlkMjYyYmJiN2RhY2JkMGZhYjJh
ZmIwOGJlOTIxYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCkBAIC0yMjksNiArMjI5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
VHJhY2tzUmVwYWludHMoYm9vbCk7CiAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qKSBjb25zdDsKKyAgICB2b2lkIHNldFNob3VsZFJlZXZhbHVhdGVDb21wb3Np
dGluZ0FmdGVyTGF5b3V0KCkgeyBtX3JlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0ID0g
dHJ1ZTsgfQogCiAgICAgZW51bSBGaXhlZFBvc2l0aW9uTGF5ZXJOb3RDb21wb3NpdGVkUmVhc29u
IHsKICAgICAgICAgTm9SZWFzb24sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcAppbmRleCBjNzQ4ZWFiYzRhZjJmMWMxMWE1M2YzNjZmOTYxM2IxZTlmNzhlMTU2
Li5lMGI4OWRmNmVkMTc3MTJjYTcyNzA3Y2Y5M2NjZjdlMTgzZDg1M2I5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTIxMSw2ICsyMTEsMTIgQEAg
dm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVG
cmFtZXMoYm9vbCBlbmFibGVkLCBFeGMKICAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbChi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NH
dWFyZEZvclNldHRpbmdzKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3Mo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggZjM3OWYy
ODU4ZDk4M2VmOThlN2UyZTBiZWVlY2RkYTk4MWRhMmZmNi4uMWZjN2YyZDRjNmIxMjM0MDRiYjAy
ZWI5MzE0MDc1ZTNhNDczNGE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNl
dEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1l
cyhib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGwoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxl
ZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGQzN2IzZjhjMjNhMDJkYzdhNTMyNjBhNTdiNDIx
YjVmOTdiODI2ZDYuLjdlNTcxY2FhN2ZhMTUyZjNiNjE3MDhiNDUyYmNiODBlYjhjZmQwZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMjksNiAr
MjksNyBAQAogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoaW4gYm9vbGVhbiBlbmFi
bGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgdm9pZCBzZXRFbmFibGVD
b21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRBY2NlbGVy
YXRlZEZpbHRlcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVk
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NTg2ODdkODM2MzBhN2I0MzFjZDlhMTQ4
ZWUzYzg5MjMyODRlYTRmLi5mZjdlMzUwZDRmYjVkZDZhOGY1MzdlZTM0ZmJmMjA4ZjgyZjI2NTI1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTItMTUgIElhbiBWb2xsaWNrICA8dm9sbGlj
a0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQXV0b21hdGljYWxseSB1c2UgY29tcG9zaXRlZCBz
Y3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdHMgdmFyaW91cyBjb25maWd1cmF0aW9ucyBvZiBlbGVtZW50cyB0byBlbnN1cmUgdGhhdCB3
ZSBvbmx5IGF1dG9tYXRpY2FsbHkgb3B0IGludG8KKyAgICAgICAgY29tcG9zaXRlZCBzY3JvbGxp
bmcgd2hlbiBpdCBpcyBzYWZlIHRvIGRvIHNvLgorCisgICAgICAgICogY29tcG9zaXRpbmcvb3Zl
cmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2F1dG9tYXRpY2Fs
bHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgIFRoZSB0ZXN0IHBs
YXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NvbXBvc2l0ZWRzY3JvbGxpbmcvc2Nyb2xsYmFy
cy9jdXN0b20tc2Nyb2xsYmFyLXdpdGgtaW5jb21wbGV0ZS1zdHlsZS5odG1sCisgICAgICAgICBp
cyBmYWlsaW5nIGR1ZSB0byB3a2IudWcvMTAzMTU2CisKIDIwMTItMTItMTQgIEZsb3JpbiBNYWxp
dGEgIDxmbWFsaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3
ZWQgcmViYXNlbGluZSBhZnRlciBTa2lhIHJvbGwgQDY3NzMuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0
ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L2F1dG9tYXRpY2FsbHktb3B0LWludG8tY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRlZWY1MTUwMmI3OWRkMDRkYTQ3OGQ1MWVmMDI0OTcxOGE2NDkyNzgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9hdXRv
bWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyNyBAQAorSXRlcmF0aW9uIDA6IFBhc3NlZAorSXRlcmF0aW9uIDAsIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiAxOiBQYXNzZWQKK0l0ZXJhdGlvbiAxLCBsYXllciB0cmVlCitJdGVyYXRp
b24gMjogUGFzc2VkCitJdGVyYXRpb24gMiwgbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDM6IFBhc3Nl
ZAorSXRlcmF0aW9uIDMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0OiBQYXNzZWQKK0l0ZXJhdGlv
biA0LCBsYXllciB0cmVlCitJdGVyYXRpb24gNTogUGFzc2VkCitJdGVyYXRpb24gNSwgbGF5ZXIg
dHJlZQorSXRlcmF0aW9uIDY6IFBhc3NlZAorSXRlcmF0aW9uIDYsIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiA3OiBQYXNzZWQKK0l0ZXJhdGlvbiA3LCBsYXllciB0cmVlCitJdGVyYXRpb24gODogUGFz
c2VkCitJdGVyYXRpb24gOCwgbm8gbGF5ZXIgdHJlZQorSXRlcmF0aW9uIDk6IFBhc3NlZAorSXRl
cmF0aW9uIDksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxMDogUGFzc2VkCitJdGVyYXRpb24g
MTAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxMTogUGFzc2VkCitJdGVyYXRpb24gMTEsIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiAxMjogUGFzc2VkCitJdGVyYXRpb24gMTIsIG5vIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiAxMzogUGFzc2VkCitJdGVyYXRpb24gMTMsIG5vIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiAxNDogUGFzc2VkCitJdGVyYXRpb24gMTQsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAx
NTogUGFzc2VkCitJdGVyYXRpb24gMTUsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxNjogUGFz
c2VkCitJdGVyYXRpb24gMTYsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxNzogUGFzc2VkCitJ
dGVyYXRpb24gMTcsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxODogUGFzc2VkCitJdGVyYXRp
b24gMTgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAxOTogUGFzc2VkCitJdGVyYXRpb24gMTks
IG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyMDogUGFzc2VkCitJdGVyYXRpb24gMjAsIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiAyMTogUGFzc2VkCitJdGVyYXRpb24gMjEsIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiAyMjogUGFzc2VkCitJdGVyYXRpb24gMjIsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAy
MzogUGFzc2VkCitJdGVyYXRpb24gMjMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNDogUGFzc2Vk
CitJdGVyYXRpb24gMjQsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNTogUGFzc2VkCitJdGVyYXRp
b24gMjUsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAyNjogUGFzc2VkCitJdGVyYXRpb24gMjYsIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiAyNzogUGFzc2VkCitJdGVyYXRpb24gMjcsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiAyODogUGFzc2VkCitJdGVyYXRpb24gMjgsIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biAyOTogUGFzc2VkCitJdGVyYXRpb24gMjksIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMDogUGFz
c2VkCitJdGVyYXRpb24gMzAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMTogUGFzc2VkCitJdGVy
YXRpb24gMzEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMjogUGFzc2VkCitJdGVyYXRpb24gMzIs
IGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzMzogUGFzc2VkCitJdGVyYXRpb24gMzMsIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiAzNDogUGFzc2VkCitJdGVyYXRpb24gMzQsIG5vIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiAzNTogUGFzc2VkCitJdGVyYXRpb24gMzUsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biAzNjogUGFzc2VkCitJdGVyYXRpb24gMzYsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzNzogUGFz
c2VkCitJdGVyYXRpb24gMzcsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzODogUGFzc2VkCitJdGVy
YXRpb24gMzgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiAzOTogUGFzc2VkCitJdGVyYXRpb24g
MzksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0MDogUGFzc2VkCitJdGVyYXRpb24gNDAsIGxh
eWVyIHRyZWUKK0l0ZXJhdGlvbiA0MTogUGFzc2VkCitJdGVyYXRpb24gNDEsIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiA0MjogUGFzc2VkCitJdGVyYXRpb24gNDIsIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biA0MzogUGFzc2VkCitJdGVyYXRpb24gNDMsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NDogUGFz
c2VkCitJdGVyYXRpb24gNDQsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NTogUGFzc2VkCitJdGVy
YXRpb24gNDUsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NjogUGFzc2VkCitJdGVyYXRpb24gNDYs
IGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA0NzogUGFzc2VkCitJdGVyYXRpb24gNDcsIGxheWVyIHRy
ZWUKK0l0ZXJhdGlvbiA0ODogUGFzc2VkCitJdGVyYXRpb24gNDgsIG5vIGxheWVyIHRyZWUKK0l0
ZXJhdGlvbiA0OTogUGFzc2VkCitJdGVyYXRpb24gNDksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlv
biA1MDogUGFzc2VkCitJdGVyYXRpb24gNTAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MTogUGFz
c2VkCitJdGVyYXRpb24gNTEsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MjogUGFzc2VkCitJdGVy
YXRpb24gNTIsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1MzogUGFzc2VkCitJdGVyYXRpb24gNTMs
IGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1NDogUGFzc2VkCitJdGVyYXRpb24gNTQsIG5vIGxheWVy
IHRyZWUKK0l0ZXJhdGlvbiA1NTogUGFzc2VkCitJdGVyYXRpb24gNTUsIG5vIGxheWVyIHRyZWUK
K0l0ZXJhdGlvbiA1NjogUGFzc2VkCitJdGVyYXRpb24gNTYsIG5vIGxheWVyIHRyZWUKK0l0ZXJh
dGlvbiA1NzogUGFzc2VkCitJdGVyYXRpb24gNTcsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1
ODogUGFzc2VkCitJdGVyYXRpb24gNTgsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA1OTogUGFz
c2VkCitJdGVyYXRpb24gNTksIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2MDogUGFzc2VkCitJ
dGVyYXRpb24gNjAsIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2MTogUGFzc2VkCitJdGVyYXRpb24g
NjEsIG5vIGxheWVyIHRyZWUKK0l0ZXJhdGlvbiA2MjogUGFzc2VkCitJdGVyYXRpb24gNjIsIGxh
eWVyIHRyZWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cv
YXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvYXV0b21hdGljYWxseS1vcHQtaW50by1jb21wb3Np
dGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNGQzZTgwMDQ2YjZhODI2ZGIxMGJlYzZk
MmJkOTc4MTUzNTZjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9vdmVyZmxvdy9hdXRvbWF0aWNhbGx5LW9wdC1pbnRvLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0
bWwKQEAgLTAsMCArMSwyMzAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
SFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+
CisgIDx0aXRsZT5PcHRpbmcgaW50byBjb21wb3NpdGVkIHNjcm9sbGluZzwvdGl0bGU+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmNvbnRhaW5lciB7Cisg
ICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgb3ZlcmZsb3c6
IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgIH0KKworICAgIC5zY3JvbGxlZCB7CisgICAgICB3aWR0aDogMTgwcHg7CisgICAg
ICBoZWlnaHQ6IDkwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmF5OworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgIC5wb3Np
dGlvbmVkIHsKKyAgICAgIHdpZHRoOiAxMjBweDsKKyAgICAgIGhlaWdodDogMjQwcHg7CisgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICB9CisKKyAgICAjcHJlZGVjZXNzb3IgeworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDog
MjBweDsKKyAgICB9CisKKyAgICAjc3VjY2Vzc29yIHsKKyAgICAgIGxlZnQ6IDE2MHB4OworICAg
ICAgdG9wOiAyMHB4OworICAgIH0KKworICAgICNkZXNjZW5kYW50IHsKKyAgICAgIGxlZnQ6IDkw
cHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAg
ICAgei1pbmRleDogLTIwOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICB2YXIgZGVidWdNb2RlID0gZmFsc2U7
CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsKHRydWUpOwor
CisgICAgZnVuY3Rpb24gd3JpdGUoc3RyKQorICAgIHsKKyAgICAgIHZhciBwcmUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOworICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShzdHIgKyAnXG4nKTsKKyAgICAgIHByZS5hcHBlbmRDaGlsZCh0ZXh0KTsK
KyAgICB9CisKKyAgICB2YXIgaXRlcmF0aW9uID0gMDsKKyAgICBmdW5jdGlvbiBwcmludFJlc3Vs
dChleHBlY3RlZFJlc3VsdCkKKyAgICB7CisgICAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYy4K
KyAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworCisgICAgICBpZiAod2luZG93LmludGVy
bmFscykgeworICAgICAgICAvLyBGb3JjZSBhIGxheW91dC4KKyAgICAgICAgd2luZG93LmludGVy
bmFscy5ib3VuZGluZ0JveChjb250YWluZXIpOworICAgICAgICB2YXIgbGF5ZXJUcmVlID0gd2lu
ZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOworCisgICAgICAgIGlmICgh
bGF5ZXJUcmVlID09ICFleHBlY3RlZFJlc3VsdCkKKyAgICAgICAgICB3cml0ZSgnSXRlcmF0aW9u
ICcgKyBpdGVyYXRpb24udG9TdHJpbmcoKSArICc6IFBhc3NlZCcpCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICB3cml0ZSgnSXRlcmF0aW9uICcgKyBpdGVyYXRpb24udG9TdHJpbmcoKSArICc6IEZB
SUxFRCcpCisKKyAgICAgICAgaWYgKGxheWVyVHJlZSkgeworICAgICAgICAgIHdyaXRlKCdJdGVy
YXRpb24gJyArIGl0ZXJhdGlvbi50b1N0cmluZygpICsgJywgbGF5ZXIgdHJlZScpOworICAgICAg
ICAgIGlmIChkZWJ1Z01vZGUpCisgICAgICAgICAgICAgIHdyaXRlKGxheWVyVHJlZSk7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgIHdyaXRlKCdJdGVyYXRpb24gJyArIGl0ZXJhdGlvbi50b1N0
cmluZygpICsgJywgbm8gbGF5ZXIgdHJlZScpOworICAgICAgfQorICAgICAgaXRlcmF0aW9uKys7
CisgICAgfQorCisgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICB7CisgICAgICB2YXIgcHJlZGVj
ZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlZGVjZXNzb3InKTsKKyAgICAgIHZh
ciBzdWNjZXNzb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VjY2Vzc29yJyk7CisgICAg
ICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwor
ICAgICAgdmFyIGZpcnN0Q2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3RDaGls
ZCcpOworICAgICAgdmFyIHNlY29uZENoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nl
Y29uZENoaWxkJyk7CisgICAgICB2YXIgZGVzY2VuZGFudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdkZXNjZW5kYW50Jyk7CisgICAgICB2YXIgY291bnQgPSAwOworCisgICAgICBkZXNjZW5k
YW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisKKyAgICAgIC8vIGRlc2NlbmRhbnRzIGluIHN0
YWNraW5nIG9yZGVyLgorICAgICAgZm9yIChpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICBm
b3IgKGogPSAwOyBqIDwgNTsgKytqKSB7CisgICAgICAgICAgZm9yIChrID0gMDsgayA8IDI7ICsr
aykgeworICAgICAgICAgICAgZm9yIChsID0gMDsgbCA8IDI7ICsrbCkgeworICAgICAgICAgICAg
ICB2YXIgbWluWkluZGV4ID0gMDsKKyAgICAgICAgICAgICAgdmFyIG1heFpJbmRleCA9IDA7Cisg
ICAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0
eWxlLnpJbmRleCA9ICcxJzsKKyAgICAgICAgICAgICAgICBzZWNvbmRDaGlsZC5zdHlsZS56SW5k
ZXggPSAnMyc7CisgICAgICAgICAgICAgICAgbWF4WkluZGV4ID0gMzsKKyAgICAgICAgICAgICAg
fSBlbHNlIGlmIChpID09IDEpIHsKKyAgICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJ
bmRleCA9ICctMSc7CisgICAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0g
Jy0zJzsKKyAgICAgICAgICAgICAgICBtaW5aSW5kZXggPSAtMzsKKyAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBmaXJzdENoaWxkLnN0eWxlLnpJbmRleCA9ICctMSc7Cisg
ICAgICAgICAgICAgICAgc2Vjb25kQ2hpbGQuc3R5bGUuekluZGV4ID0gJzMnOworICAgICAgICAg
ICAgICAgIG1pblpJbmRleCA9IC0xOworICAgICAgICAgICAgICAgIG1heFpJbmRleCA9IDM7Cisg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB2YXIgc2libGluZyA9IHByZWRlY2Vzc29y
OworICAgICAgICAgICAgICB2YXIgdG9IaWRlID0gc3VjY2Vzc29yOworICAgICAgICAgICAgICBp
ZiAoayA9PSAxKSB7CisgICAgICAgICAgICAgICAgc2libGluZyA9IHN1Y2Nlc3NvcjsKKyAgICAg
ICAgICAgICAgICB0b0hpZGUgPSBwcmVkZWNlc3NvcjsKKyAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgIC8vIFRoZSByZXN1bHQgc2hvdWxkIGJlIHRoZSBzYW1lIGlmIHRoZSB0aGUgZWxl
bWVudCB0byBoaWRlIGlzCisgICAgICAgICAgICAgIC8vIGRpc3BsYXk6aGlkZGVuIG9yIGRpc3Bs
YXk6bm9uZS4KKyAgICAgICAgICAgICAgaWYgKGwgPT0gMCkKKyAgICAgICAgICAgICAgICB0b0hp
ZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRvSGlkZS5zdHlsZS5kaXNwbGF5ID0gJ2hpZGRlbic7CisKKyAgICAgICAgICAgICAg
c2libGluZy5zdHlsZS5kaXNwbGF5ID0gJyc7CisKKyAgICAgICAgICAgICAgaWYgKGogPT0gMCkK
KyAgICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IChtYXhaSW5kZXggKyAxKS50
b1N0cmluZygpOworICAgICAgICAgICAgICBlbHNlIGlmIChqID09IDEpCisgICAgICAgICAgICAg
ICAgc2libGluZy5zdHlsZS56SW5kZXggPSAobWluWkluZGV4IC0gMSkudG9TdHJpbmcoKTsKKyAg
ICAgICAgICAgICAgZWxzZSBpZiAoaiA9PSAyKQorICAgICAgICAgICAgICAgIHNpYmxpbmcuc3R5
bGUuekluZGV4ID0gbWF4WkluZGV4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgIGVsc2UgaWYg
KGogPT0gMykKKyAgICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA9IG1pblpJbmRl
eC50b1N0cmluZygpOworICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2libGlu
Zy5zdHlsZS56SW5kZXggPSAoKG1pblpJbmRleCArIG1heFpJbmRleCkgLyAyKS50b1N0cmluZygp
OworCisgICAgICAgICAgICAgIHZhciBhcmVDb250aWd1b3VzID0gZmFsc2U7CisgICAgICAgICAg
ICAgIGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA+IG1heFpJbmRleCB8fAorICAgICAgICAgICAg
ICAgICAgc2libGluZy5zdHlsZS56SW5kZXggPCBtaW5aSW5kZXgpIHsKKyAgICAgICAgICAgICAg
ICAgIC8vIHNpYmxpbmcgaXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2Ygb3VyIGRlc2NlbmRhbnRzLgor
ICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IHRydWU7CisgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoc2libGluZy5zdHlsZS56SW5kZXggPCBtYXhaSW5kZXggJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBzaWJsaW5nLnN0eWxlLnpJbmRleCA+IG1pblpJbmRleCkgeworICAgICAg
ICAgICAgICAgICAgLy8gc2libGluZyBpcyBiZXR3ZWVuIG91ciBkZXNjZW5kYW50cy4KKyAgICAg
ICAgICAgICAgICAgIGFyZUNvbnRpZ3VvdXMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgfSBlbHNl
IGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA9PSBtaW5aSW5kZXgpIHsKKyAgICAgICAgICAgICAg
ICAgIGlmIChtaW5aSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgIC8vIHNpYmxp
bmcgbGllcyBiZXR3ZWVuIHVzIChub3JtYWwgZmxvdykgYW5kIG91ciBwb3MKKyAgICAgICAgICAg
ICAgICAgICAgICAvLyB6LW9yZGVyIGRlc2NlbmRhbnRzLCBzbyB3ZSBhcmUgbm90IGNvbnRpZ3Vv
dXMuCisgICAgICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAvLyBzaWJsaW5nJ3Mg
ekluZGV4IG1hdGNoZXMgdGhlIG1pbjsgd2UncmUgb25seSBvayBpZiBpdAorICAgICAgICAgICAg
ICAgICAgICAgIC8vIGFwcGVhcnMgZmlyc3QuCisgICAgICAgICAgICAgICAgICAgICAgYXJlQ29u
dGlndW91cyA9IGsgPT0gMDsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSBl
bHNlIGlmIChzaWJsaW5nLnN0eWxlLnpJbmRleCA9PSBtYXhaSW5kZXgpIHsKKyAgICAgICAgICAg
ICAgICAgIGlmIChtYXhaSW5kZXggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgLy8gc2li
bGluZyBsaWVzIGJldHdlZW4gdXMgKG5vcm1hbCBmbG93KSBhbmQgbmVnIHotb3JkZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAvLyBkZXNjZW5kYW50cywgc28gd2UgYXJlIG5vdCBjb250aWd1b3Vz
LgorICAgICAgICAgICAgICAgICAgICAgIGFyZUNvbnRpZ3VvdXMgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobWF4WkluZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAvLyBzaWJsaW5nIGlzIGluIHRoZSBwb3Mgei1vcmRlciBsaXN0IGFuZCBkb2VzIG5vdCBh
ZmZlY3QKKyAgICAgICAgICAgICAgICAgICAgICAvLyB1cyBzaW5jZSB3ZSdyZSBpbiB0aGUgbm9y
bWFsIGZsb3cgbGlzdCBhbmQgb3VyCisgICAgICAgICAgICAgICAgICAgICAgLy8gZGVzY2FuZGFu
dHMgYXJlIGluIHRoZSBuZWcgei1vcmRlciBsaXN0LgorICAgICAgICAgICAgICAgICAgICAgIGFy
ZUNvbnRpZ3VvdXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAvLyBzaWJsaW5nJ3MgekluZGV4IG1hdGNoZXMgdGhlIG1heDsgd2UncmUg
b25seSBvayBpZiBpdAorICAgICAgICAgICAgICAgICAgICAgIC8vIGFwcGVhcnMgYWZ0ZXIuCisg
ICAgICAgICAgICAgICAgICAgICAgYXJlQ29udGlndW91cyA9IGsgPT0gMTsKKyAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHByaW50UmVzdWx0KGFy
ZUNvbnRpZ3VvdXMpOworICAgICAgICAgICAgfSAvLyBmb3IgbAorICAgICAgICAgIH0gLy8gZm9y
IGsKKyAgICAgICAgfSAvLyBmb3IgagorICAgICAgfSAvLyBmb3IgaQorCisgICAgICAvLyBOb3cg
Y2hlY2sgdGhhdCB3ZSBkb24ndCBwcm9tb3RlIGlmIHdlIGhhdmUgYW4gb3V0IG9mIGZsb3cgZGVz
Y2VuZGFudC4KKyAgICAgIC8vIFdlIG5lZWQgdG8gaGlkZSB0aGUgcHJlZGVjZXNzb3IgYW5kIHN1
Y2Nlc3NvciBzbyB0aGV5IGRvbid0IGludGVyZmVyZQorICAgICAgLy8gd2l0aCB0aGlzIGV4cGVy
aW1lbnQuCisgICAgICBwcmVkZWNlc3Nvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAg
c3VjY2Vzc29yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICBmb3IgKGkgPSAwOyBpIDwg
MzsgKytpKSB7CisgICAgICAgIGlmIChpID09IDApCisgICAgICAgICAgZGVzY2VuZGFudC5zdHls
ZS5kaXNwbGF5ID0gJ2hpZGRlbic7CisgICAgICAgIGVsc2UgaWYgKGkgPT0gMSkKKyAgICAgICAg
ICBkZXNjZW5kYW50LnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgICAgZWxzZQorICAgICAgICAg
IGRlc2NlbmRhbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKworICAgICAgICAvLyBJZiB0aGUg
b3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50IGlzIHZpc2libGUsIHdlIGNhbm5vdCBv
cHQKKyAgICAgICAgLy8gaW50byBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICAgICAgcHJpbnRS
ZXN1bHQoaSAhPSAxKTsKKyAgICAgICAgY291bnQrKzsKKyAgICAgIH0gLy8gZm9yIGkKKworICAg
IH0gLy8gZnVuY3Rpb24gZG9UZXN0CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIGRvVGVzdCwgZmFsc2UpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDxk
aXYgY2xhc3M9InBvc2l0aW9uZWQiIGlkPSJwcmVkZWNlc3NvciI+PC9kaXY+CisgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciIgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZWQi
IGlkPSJmaXJzdENoaWxkIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlZCIgaWQ9InNl
Y29uZENoaWxkIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0iZGVzY2Vu
ZGFudCI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBpZD0ic3Vj
Y2Vzc29yIj48L2Rpdj4KKyAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0
bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGYxYzQxNWZjOWQyZDRhYWIyMjlkNmU3OTIyZWJiZGUxNTRmY2RjNmIuLmZkMzI2NDRm
YWRmMDI0YjE2YzM0OWIyODI0YzY5YWNkNDM4YzljZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzYyNyw2ICszNjI3LDkgQEAgd2Vi
a2l0Lm9yZy9iLzkyOTY4IGh0dHAvdGVzdHMvYXBwY2FjaGUvYWJvcnQtY2FjaGUtb25jaGVja2lu
Zy5odG1sCiB3ZWJraXQub3JnL2IvOTI5NjggaHR0cC90ZXN0cy9hcHBjYWNoZS9hYm9ydC1jYWNo
ZS1vbmRvd25sb2FkaW5nLmh0bWwKIHdlYmtpdC5vcmcvYi85Mjk2OCBodHRwL3Rlc3RzL2FwcGNh
Y2hlL2Fib3J0LWNhY2hlLW9ucHJvZ3Jlc3MuaHRtbAogCisjIFNjcm9sbGluZyBjb250ZW50IGRy
YXdzIGJlbmVhdGggc2Nyb2xsYmFycyBpbiBjb21wb3NpdGVkIHNjcm9sbGluZyBtb2RlLgord2Vi
a2l0Lm9yZy9iLzEwMzE1NiBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jb21wb3NpdGVk
c2Nyb2xsaW5nL3Njcm9sbGJhcnMvY3VzdG9tLXNjcm9sbGJhci13aXRoLWluY29tcGxldGUtc3R5
bGUuaHRtbCBbIEZhaWx1cmUgXQorCiAjIEZhaWxzIGR1ZSB0byBCdWcgODU4NTYuCiB3ZWJraXQu
b3JnL2IvODU4NTYgWyBXaW4gTWFjIEFuZHJvaWQgXSBmYXN0L2Jsb2NrL2Zsb2F0LzAyOC5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODU4NTYgWyBXaW4gTWFjIEFuZHJv
aWQgXSBmYXN0L2Jsb2NrL2Zsb2F0LzAyNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="196570"
          type_id="1"
          status="+"
          setter="enne"
    />
    <flag name="commit-queue"
          id="196582"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>