<?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>65643</bug_id>
          
          <creation_ts>2011-08-03 14:40:58 -0700</creation_ts>
          <short_desc>Repaint issues with -webkit-svg-shadow used on a container</short_desc>
          <delta_ts>2012-11-09 23:05:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>99533</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>bdakin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>fmalita</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>krit</cc>
    
    <cc>pdr</cc>
    
    <cc>rakuco</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>446093</commentid>
    <comment_count>0</comment_count>
      <attachid>102829</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-03 14:40:58 -0700</bug_when>
    <thetext>Created attachment 102829
repro

Steps to Reproduce:

1. Open the attached repro.
2. Wait 600 ms.
3. Note how the shadow of the second element disappears.

Expected Results:

Two shapes, two shadows.

Actual results:

Two shapes, one shadow.

Notes:

Another side effect of this is that when an element is offscreen but its shadow is onscreen, the shadow is not drawn.

It seems that when you specify &quot;-webkit-svg-shadow&quot; on &lt;svg&gt;, or a &lt;g&gt;, etc., the shadow of elements within the container does not redraw when it should.

I&apos;m not 100% certain that we should see *any* shadows drawn when applying -webkit-svg-shadow to a container; -webkit-box-shadow doesn&apos;t seem to affect children.

&lt;rdar://problem/7600532&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446228</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-03 16:53:25 -0700</bug_when>
    <thetext>It seems like the child elements don&apos;t know about their shadow, because it&apos;s entirely contained within the parent. When they&apos;re asked to redraw, they don&apos;t know about the shadow rect, so they don&apos;t include it in the intersection test. The problem of course being that the child needs to repaint in order to repaint its shadow!

Ways that immediately come to mind to fix this:

a) have some way of informing children that they *have* a shadow (and should take that into consideration when determining whether or not to repaint), but don&apos;t need to *set* it/appear to have it.

b) stop allowing containers to have shadows. box-shadow on an HTML element isn&apos;t inherited by children, is there any reason -webkit-svg-shadow should be? This would change behavior, though, and I don&apos;t really want to do that.

Any ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450136</commentid>
    <comment_count>2</comment_count>
      <attachid>103699</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-11 16:22:08 -0700</bug_when>
    <thetext>Created attachment 103699
correct repro

Somehow the copy of the repro I uploaded had some extra characters in it. Here&apos;s a corrected copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450184</commentid>
    <comment_count>3</comment_count>
      <attachid>103710</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-11 17:24:52 -0700</bug_when>
    <thetext>Created attachment 103710
preliminary patch sans changelog/test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450189</commentid>
    <comment_count>4</comment_count>
      <attachid>103710</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 17:36:00 -0700</bug_when>
    <thetext>Comment on attachment 103710
preliminary patch sans changelog/test

Attachment 103710 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9371223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450191</commentid>
    <comment_count>5</comment_count>
      <attachid>103710</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-08-11 17:37:26 -0700</bug_when>
    <thetext>Comment on attachment 103710
preliminary patch sans changelog/test

Attachment 103710 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9357432</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450194</commentid>
    <comment_count>6</comment_count>
      <attachid>103714</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-11 17:40:55 -0700</bug_when>
    <thetext>Created attachment 103714
preliminary patch sans changelog/test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450308</commentid>
    <comment_count>7</comment_count>
      <attachid>103714</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-11 23:19:33 -0700</bug_when>
    <thetext>Comment on attachment 103714
preliminary patch sans changelog/test

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

New failing tests:
svg/css/shadow-changes.svg
fast/repaint/moving-shadow-on-container.html
svg/css/mask-with-shadow.svg
svg/css/composite-shadow-text.svg
svg/css/group-with-shadow.svg
svg/css/arrow-with-shadow.svg
svg/css/clippath-with-shadow.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450361</commentid>
    <comment_count>8</comment_count>
      <attachid>103714</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-08-12 01:44:43 -0700</bug_when>
    <thetext>Comment on attachment 103714
preliminary patch sans changelog/test

Tim, the idea behind this patch is correct. OTOH it slows down every common case by requiring these additional tree traversal.
This needs to be optimized. We need to know whether a child needs this logic, that means we have to cache somewhere if the parent of an arbitary child has shadow or not.

Storing this inside SVGRenderStylle of the child is not an option, as styles may be shared.
&lt;g style=&quot;-webkit-svg-shadow: ...&quot;&gt;
&lt;rect/&gt;
&lt;/g&gt;
&lt;rect/&gt;

Both rects may share the same style, so we can&apos;t store the information whether the parent is shadowed in the childs style.
The renderers are unique though, so it might be possible to stash this info into RenderSVGContainer.

I&apos;ll bet you&apos;ll find an elegant solution :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450636</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-12 13:48:13 -0700</bug_when>
    <thetext>There are other issues I want to work out first before the performance, but that is a valid issue.

Primarily:

We already recursively include parent&apos;s shadows in the *repaint* rect via computeRectForRepaint; it&apos;s unfortunate that we&apos;re adding a second run up the tree, in *any* case (we shouldn&apos;t have to).

Another issue is that since clippedOverflowRectForRepaint uses repaintRectInLocalCoordinates and then computeRectForRepaints that, with the patch as-is, the shadow gets included *twice*, and we overpaint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450654</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-12 14:03:49 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Another issue is that since clippedOverflowRectForRepaint uses repaintRectInLocalCoordinates and then computeRectForRepaints that, with the patch as-is, the shadow gets included *twice*, and we overpaint.

Actually, this isn&apos;t my fault, I just make it happen more often.

Currently, if you apply -webkit-svg-shadow to a &lt;rect/&gt;, the repaint rect is adjusted for the shadow twice (thus, being quite a bit bigger than needed in my pathological cases).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454211</commentid>
    <comment_count>11</comment_count>
      <attachid>104596</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-19 16:59:45 -0700</bug_when>
    <thetext>Created attachment 104596
expanded preliminary patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454214</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-19 17:01:44 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=104596) [details]
&gt; expanded preliminary patch

This still has the issue of the overrepaint (which isn&apos;t due to this patch at all), but other than that is in good working order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454216</commentid>
    <comment_count>13</comment_count>
      <attachid>104597</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-19 17:04:15 -0700</bug_when>
    <thetext>Created attachment 104597
last patch plus image results that I missed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454243</commentid>
    <comment_count>14</comment_count>
      <attachid>104597</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-19 17:47:42 -0700</bug_when>
    <thetext>Comment on attachment 104597
last patch plus image results that I missed

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

New failing tests:
svg/css/shadow-changes.svg
fast/repaint/moving-shadow-on-container.html
svg/css/mask-with-shadow.svg
svg/css/composite-shadow-text.svg
svg/custom/repaint-webkit-svg-shadow.html
svg/css/arrow-with-shadow.svg
svg/css/clippath-with-shadow.svg
svg/css/group-with-shadow.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454325</commentid>
    <comment_count>15</comment_count>
      <attachid>104597</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-08-20 00:05:07 -0700</bug_when>
    <thetext>Comment on attachment 104597
last patch plus image results that I missed

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

It&apos;s getting better! Still some questions/suggestions.

&gt; Source/WebCore/platform/graphics/mac/FontMac.mm:225
&gt; +    bool hasSimpleShadow = context-&gt;textDrawingMode() == TextModeFill &amp;&amp; shadowColor.isValid() &amp;&amp; !shadowBlur &amp;&amp; !platformData.isColorBitmapFont() &amp;&amp; (!context-&gt;shadowsIgnoreTransforms() || context-&gt;getCTM().isIdentityOrTranslationOrFlipped()) &amp;&amp; !context-&gt;inTransparencyLayer();

Aren&apos;t other platforms affected by this as well?
Why is this needed? Can you explain a bit more?

&gt; Source/WebCore/rendering/RenderObject.cpp:1789
&gt; +        setHasSVGShadow(TRUE);

s/TRUE/true/

&gt; Source/WebCore/rendering/RenderObject.h:919
&gt; +#if ENABLE(SVG)
&gt; +    bool m_hasSVGShadow;
&gt; +#endif

This bit of information is needed by all renderers which use intersectRepaintRectWithResources: RenderSVG(Container|Image|Path|Root|Text).

RenderSVG(Container|Image|Path) all inherit from RenderSVGModelObject.
RenderSVGRoot inherits from RenderBox, RenderSVGText from RenderSVGBlock, and thus from RenderBlock.

I&apos;d rather store m_hasSVGShadow in RenderSVGModelObject, RenderSVGRoot and RenderSVGText, to avoid consuming more memory for HTML use cases.
hasSVGShadow could still be a virtual method in RenderObject, just like it&apos;s done for eg. nodeAtFloatPoint, and we&apos;d override the getters/setters in RenderSVGModelObject/Root/Text.

What do you think?

&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:287
&gt; +
&gt; +        if (!style)
&gt; +            continue;

IIRC neither style nor svgStyle can be null, please double-check.

&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:301
&gt; +        if (!currentObject-&gt;hasSVGShadow())
&gt; +            return;
&gt; +    } while (currentObject);

while (currentObject &amp;&amp; currentObject-&gt;hasSVGShadow() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454357</commentid>
    <comment_count>16</comment_count>
      <attachid>104597</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-20 13:24:13 -0700</bug_when>
    <thetext>Comment on attachment 104597
last patch plus image results that I missed

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

&gt;&gt; Source/WebCore/platform/graphics/mac/FontMac.mm:225
&gt;&gt; +    bool hasSimpleShadow = context-&gt;textDrawingMode() == TextModeFill &amp;&amp; shadowColor.isValid() &amp;&amp; !shadowBlur &amp;&amp; !platformData.isColorBitmapFont() &amp;&amp; (!context-&gt;shadowsIgnoreTransforms() || context-&gt;getCTM().isIdentityOrTranslationOrFlipped()) &amp;&amp; !context-&gt;inTransparencyLayer();
&gt; 
&gt; Aren&apos;t other platforms affected by this as well?
&gt; Why is this needed? Can you explain a bit more?

Oh, yeah, that actually needs explanation.

I&apos;ll provide an example:

If we set the shadow on a group, a transparency layer is created, and the shadow is cleared (because it&apos;s applied to the group, not the children). Then, when we go to draw the text shadow, if it has no blur (and can be rendered by simply redrawing the text), we a) store the shadow b) draw the text by hand in the shadow color c) restore the shadow. But, if we&apos;re in a transparency layer, the shadow is not clearable!

So what happens in effect is that we draw the text shadow into the transparency layer, then when it&apos;s composited onto the screen, the group&apos;s shadow is applied, leading to the *shadow* having its own shadow!

So, we can&apos;t use simple shadows inside a transparency layer. I assume the behavior is the same on other platforms (with the shadow clearing and all) because that makes the most sense. I think perhaps we should make the increment/decrement/inTransparencyLayer() stuff enabled on all platforms.

I might be able to concoct a test for this that still exhibits after we fix the overdraw, but for right now it&apos;s made blindingly obvious in a variety of other tests because of that flaw in this patch.

&gt;&gt; Source/WebCore/rendering/RenderObject.h:919
&gt;&gt; +#endif
&gt; 
&gt; This bit of information is needed by all renderers which use intersectRepaintRectWithResources: RenderSVG(Container|Image|Path|Root|Text).
&gt; 
&gt; RenderSVG(Container|Image|Path) all inherit from RenderSVGModelObject.
&gt; RenderSVGRoot inherits from RenderBox, RenderSVGText from RenderSVGBlock, and thus from RenderBlock.
&gt; 
&gt; I&apos;d rather store m_hasSVGShadow in RenderSVGModelObject, RenderSVGRoot and RenderSVGText, to avoid consuming more memory for HTML use cases.
&gt; hasSVGShadow could still be a virtual method in RenderObject, just like it&apos;s done for eg. nodeAtFloatPoint, and we&apos;d override the getters/setters in RenderSVGModelObject/Root/Text.
&gt; 
&gt; What do you think?

Sounds better, I&apos;ll do that.

&gt;&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:287
&gt;&gt; +            continue;
&gt; 
&gt; IIRC neither style nor svgStyle can be null, please double-check.

I will double-check.

&gt;&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:301
&gt;&gt; +    } while (currentObject);
&gt; 
&gt; while (currentObject &amp;&amp; currentObject-&gt;hasSVGShadow() ?

Sure! I was using the space after the if(!currentObject-&gt;hasSVGShadow()) for debugging before, but that&apos;s certainly possible now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454792</commentid>
    <comment_count>17</comment_count>
      <attachid>104713</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-22 12:17:23 -0700</bug_when>
    <thetext>Created attachment 104713
previous patch plus make inTransparencyLayer/increment stuff generic, plus move hasSVGShadow into SVG renderers instead of RenderObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454807</commentid>
    <comment_count>18</comment_count>
      <attachid>104713</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-08-22 12:32:55 -0700</bug_when>
    <thetext>Comment on attachment 104713
previous patch plus make inTransparencyLayer/increment stuff generic, plus move hasSVGShadow into SVG renderers instead of RenderObject

Attachment 104713 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9468804</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454810</commentid>
    <comment_count>19</comment_count>
      <attachid>104713</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-08-22 12:35:10 -0700</bug_when>
    <thetext>Comment on attachment 104713
previous patch plus make inTransparencyLayer/increment stuff generic, plus move hasSVGShadow into SVG renderers instead of RenderObject

Attachment 104713 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/9467868</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454817</commentid>
    <comment_count>20</comment_count>
      <attachid>104713</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-22 12:51:14 -0700</bug_when>
    <thetext>Comment on attachment 104713
previous patch plus make inTransparencyLayer/increment stuff generic, plus move hasSVGShadow into SVG renderers instead of RenderObject

Attachment 104713 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9461979</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454827</commentid>
    <comment_count>21</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-22 13:02:37 -0700</bug_when>
    <thetext>It&apos;s unclear to me how to fix the build of all of these other platforms; where is their implementation of GraphicsContext?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454832</commentid>
    <comment_count>22</comment_count>
      <attachid>104713</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-22 13:08:27 -0700</bug_when>
    <thetext>Comment on attachment 104713
previous patch plus make inTransparencyLayer/increment stuff generic, plus move hasSVGShadow into SVG renderers instead of RenderObject

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:350
&gt; +#if (OS(WINCE) &amp;&amp; !PLATFORM(QT)) || PLATFORM(WX)

It seems highly likely  this list of platforms will get out of sync with the underlying machinery. Maybe instead there should be a private static inline member function that returns false or true that you could || with the transparency count.

&gt; Source/WebCore/platform/graphics/GraphicsContext.h:373
&gt; +        bool inTransparencyLayer() const;

This should probably be named isInTransparencyLayer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454843</commentid>
    <comment_count>23</comment_count>
      <attachid>104713</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-08-22 13:21:31 -0700</bug_when>
    <thetext>Comment on attachment 104713
previous patch plus make inTransparencyLayer/increment stuff generic, plus move hasSVGShadow into SVG renderers instead of RenderObject

Attachment 104713 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9463919</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455081</commentid>
    <comment_count>24</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-22 17:23:19 -0700</bug_when>
    <thetext>So, this is still quite wrong, because it applies all of the shadows above an element in the tree to that element. So, for example

&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; id=&quot;asdf&quot; style=&quot;-webkit-svg-shadow: 50px 50px 5px red;&quot;&gt;
&lt;g&gt;&lt;g&gt;&lt;g&gt;&lt;g&gt;&lt;g&gt;&lt;g&gt;&lt;g&gt;
&lt;rect x=&quot;10&quot; y=&quot;10&quot; width=&quot;20&quot; height=&quot;20&quot; fill=&quot;black&quot;  /&gt;
&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;
&lt;/svg&gt;

Each of the &lt;g&gt; elements will be expanded by the size of &lt;svg&gt;&apos;s shadow, and by the time we get to &lt;svg&gt;, we&apos;re *way* overrepainting.

I wonder, is it appropriate to apply the shadow expansion only to leaf nodes? I&apos;ll have to think about that some more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455234</commentid>
    <comment_count>25</comment_count>
      <attachid>104713</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-08-23 01:04:07 -0700</bug_when>
    <thetext>Comment on attachment 104713
previous patch plus make inTransparencyLayer/increment stuff generic, plus move hasSVGShadow into SVG renderers instead of RenderObject

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

Looks great, some further comments from my side and Darin lead to r- for now:

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:338
&gt; +    m_transparencyCount++;

Use ++m_transparencyCount as micro optimization.

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:345
&gt; +    m_transparencyCount--;

Use --m_transparencyCount as micro optimization.

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:350
&gt;&gt; +#if (OS(WINCE) &amp;&amp; !PLATFORM(QT)) || PLATFORM(WX)
&gt; 
&gt; It seems highly likely  this list of platforms will get out of sync with the underlying machinery. Maybe instead there should be a private static inline member function that returns false or true that you could || with the transparency count.

Agreed!

&gt; Source/WebCore/platform/graphics/GraphicsContext.h:546
&gt; +        int m_transparencyCount;

unsigned should be sufficient.

&gt; Source/WebCore/rendering/RenderObject.h:403
&gt; +    virtual void setHasSVGShadow(bool shadowedParent) { UNUSED_PARAM(shadowedParent); }

I&apos;d rather just use setHasSVGShadow(bool) { } here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455249</commentid>
    <comment_count>26</comment_count>
      <attachid>104713</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-08-23 01:36:45 -0700</bug_when>
    <thetext>Comment on attachment 104713
previous patch plus make inTransparencyLayer/increment stuff generic, plus move hasSVGShadow into SVG renderers instead of RenderObject

Btw. The ChangeLog is still missing ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458466</commentid>
    <comment_count>27</comment_count>
      <attachid>105525</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-29 14:51:51 -0700</bug_when>
    <thetext>Created attachment 105525
new patch, with per-platform fixes

This should probably be split into two bugs/patches, one about the simple text shadow bug, and this one, about shadow repaint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458486</commentid>
    <comment_count>28</comment_count>
      <attachid>105525</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 15:30:03 -0700</bug_when>
    <thetext>Comment on attachment 105525
new patch, with per-platform fixes

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

New failing tests:
svg/css/shadow-changes.svg
fast/repaint/moving-shadow-on-container.html
svg/css/mask-with-shadow.svg
svg/css/composite-shadow-text.svg
svg/css/group-with-shadow.svg
svg/css/arrow-with-shadow.svg
svg/css/clippath-with-shadow.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458569</commentid>
    <comment_count>29</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-08-29 16:53:13 -0700</bug_when>
    <thetext>Niko, do you have any suggestion about how to prevent over-expanding the repaint rect because extend our repaint rect by the shadow every time? (the example in Comment #24, for starters)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458769</commentid>
    <comment_count>30</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-08-30 01:41:20 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Niko, do you have any suggestion about how to prevent over-expanding the repaint rect because extend our repaint rect by the shadow every time? (the example in Comment #24, for starters)

I rechecked your patch and thought about this. To be able to determine the point when the shadow rect extension should happen it&apos;s necessary to know _who_ is asking for the repaint rect.

Suppose following tree:
RenderSVGRoot (1) [shadowed]
    RenderSVGContainer (2)
        RenderSVGContainer (3)
            RenderSVGPath (4)

When asking (4) for it&apos;s repaint rect, we want to include the shadow from (1) at the point where the recursion hits (1) (call to (4) -&gt; (3) -&gt; (2) -&gt; (1)). Same for (3), (2).

Your current solution extends each of the nodes (4) / (3) / (2) by the shadow of (1). Even when changing that, there&apos;s still the problem that we&apos;re caching the repaintRectInLocalCoordinates() that eg. (3) asked for in (3). We&apos;re doing the same for (2) and (1).

When asking for the total repaint rect starting from (4), computeRectForRepaint() comes into play which traverses the parent hierarchy from (4) to (1) mapping the cached repaintBoundingBox() through the localToParentTransform().

An obvious problem with your current code is that you&apos;re extending _each_ of the repaint rects of (4) / (3) / (2) with the shadow rect defined in local coordinates of (1), that ignores the fact that when traversing from (4) -&gt; (3) -&gt; (2) -&gt; (1) the repaint rect gets mapped through the local trafos.

That will break cases like &lt;svg style=&quot;-webkit-svg-shadow:..&quot; &lt;g transform=&quot;scale(2)&quot;&gt;&lt;g transform=&quot;scale(2)&quot;&gt; &lt;rect ..&gt;.

In another comments you&apos;ve mentioned &lt;g&gt;&lt;g&gt;&lt;g&gt;&lt;g&gt;... &lt;rect&gt; ... which is currently over-drawing a lot as well. The problem here is the usage of ShadowData::adjustRectforShadow(). Each time you&apos;re calculating the &lt;g&gt; repaint rect through computeRectForRepaint() you&apos;re just extending the repaint rect by the amount of shadow. The function is named &quot;intersectRepaintRectWithShadow&quot; but it&apos;s never intersecting, rather it just grows the boundaries on each invocation.

To summarize: The current approach is tricky. We should rethink about what we want to cache in repaintRectInLocalCoordinates(). The obvious solution for me is to stop including the shadow at all in repaintRectInLocalCoordinates() and only let computeRectForRepaint deal with it at all, to avoid mapping shadows of parents through localToParentTransform() of children, which is the root of all evil.

I don&apos;t see at all why the children of a shadowed container should know that it&apos;s container has shadow. When computing the rect for repaint for the rect in &lt;g&gt;&lt;g&gt;&lt;g&gt;&lt;rect/&gt; you&apos;ll always walk up the parents and can call adjustRectForShadow() on the renderer which contains the shadow and extend the repaint rect once by the amount of shadow distance.

What do you think? :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461663</commentid>
    <comment_count>31</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-02 17:37:30 -0700</bug_when>
    <thetext>Moving all of the transparency layer and text shadow changes to https://bugs.webkit.org/show_bug.cgi?id=67543</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463007</commentid>
    <comment_count>32</comment_count>
      <attachid>106521</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-06 17:08:34 -0700</bug_when>
    <thetext>Created attachment 106521
test case of applying a shadow, and transforming the shadowed paths below the shadowed element

(In reply to comment #30)
&gt; That will break cases like &lt;svg style=&quot;-webkit-svg-shadow:..&quot; &lt;g transform=&quot;scale(2)&quot;&gt;&lt;g transform=&quot;scale(2)&quot;&gt; &lt;rect ..&gt;.

I&apos;m a bit intrigued by what actually *does* happen here, right now. Since the shadow is on the parent and is applied before the transformations, we end up with a different result than I initially expected; thinking about it now, though, I think it makes sense. Still, it would be nice to hear if this is expected -- attaching a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559096</commentid>
    <comment_count>33</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-17 03:15:07 -0800</bug_when>
    <thetext>What&apos;s the status of this bug report? I&apos;m a bit lost here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559148</commentid>
    <comment_count>34</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-17 06:05:00 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; What&apos;s the status of this bug report? I&apos;m a bit lost here.

I think the most recent patch still over expands the reprint rect; I forgot about this bug and haven&apos;t really worked through your long comment above. Thanks for reminding me, though!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724232</commentid>
    <comment_count>35</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-09-20 00:27:09 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; (In reply to comment #33)
&gt; &gt; What&apos;s the status of this bug report? I&apos;m a bit lost here.
&gt; 
&gt; I think the most recent patch still over expands the reprint rect; I forgot about this bug and haven&apos;t really worked through your long comment above. Thanks for reminding me, though!

This is causing infinitely more problems now with tiled rendering. I&apos;m going to take another look at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724244</commentid>
    <comment_count>36</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-09-20 00:58:09 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; To summarize: The current approach is tricky. We should rethink about what we want to cache in repaintRectInLocalCoordinates(). The obvious solution for me is to stop including the shadow at all in repaintRectInLocalCoordinates() and only let computeRectForRepaint deal with it at all, to avoid mapping shadows of parents through localToParentTransform() of children, which is the root of all evil.
&gt; 
&gt; I don&apos;t see at all why the children of a shadowed container should know that it&apos;s container has shadow. When computing the rect for repaint for the rect in &lt;g&gt;&lt;g&gt;&lt;g&gt;&lt;rect/&gt; you&apos;ll always walk up the parents and can call adjustRectForShadow() on the renderer which contains the shadow and extend the repaint rect once by the amount of shadow distance.
&gt; 
&gt; What do you think? :-)

I don&apos;t see how children can get away without knowing that their container has shadow. There are places (RenderSVGShape::paint, for example) that use repaintRectInLocalCoordinates directly; the paint will bail there if the paintInfo doesn&apos;t intersect the repaintRectInLocalCoordinates (which you were proposing doesn&apos;t include the shadow), which is quite easy to cause in the tiled drawing case (or in the case where the shape is off-screen but the shadow is not).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728347</commentid>
    <comment_count>37</comment_count>
      <attachid>165758</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-09-26 02:25:49 -0700</bug_when>
    <thetext>Created attachment 165758
patch

Needs a changelog, and I&apos;d like to avoid adding anything to RenderObject if possible, and there&apos;s some minor cleanup required, and it might be crazysauce. However, it gets the repaint rects right for everything except text, with shadow on any parent, with arbitrary transforms in between, fixing a multitude of bugs (shadows not rendering when the object is off screen, shadows being clipped by tiles, shadows not invalidating correctly, etc.).

I don&apos;t have sufficient time at the moment, but next week, I plan on writing the changelog and putting the finishing touches on, and will file a followup bug to fix text (which is a bit crazier since it ends back up in non-SVG-land during painting).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728383</commentid>
    <comment_count>38</comment_count>
      <attachid>165758</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 03:31:56 -0700</bug_when>
    <thetext>Comment on attachment 165758
patch

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

New failing tests:
svg/custom/focus-ring.svg
svg/css/composite-shadow-with-opacity.html
svg/W3C-SVG-1.1/types-basicDOM-01-b.svg
svg/css/clippath-with-shadow.svg
svg/css/composite-shadow-example.html
svg/css/shadow-changes.svg
svg/batik/text/textFeatures.svg
fast/repaint/moving-shadow-on-container.html
svg/css/mask-with-shadow.svg
svg/batik/text/smallFonts.svg
svg/css/composite-shadow-text.svg
svg/css/arrow-with-shadow.svg
svg/W3C-SVG-1.1/animate-elem-82-t.svg
svg/custom/simple-text-double-shadow.svg
svg/W3C-SVG-1.1-SE/types-dom-01-b.svg
svg/W3C-SVG-1.1/animate-elem-24-t.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728866</commentid>
    <comment_count>39</comment_count>
      <attachid>165758</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-26 12:30:18 -0700</bug_when>
    <thetext>Comment on attachment 165758
patch

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

New failing tests:
svg/custom/focus-ring.svg
svg/W3C-SVG-1.1/animate-elem-82-t.svg
svg/css/shadow-changes.svg
svg/W3C-SVG-1.1/types-basicDOM-01-b.svg
svg/css/clippath-with-shadow.svg
svg/css/composite-shadow-example.html
svg/css/composite-shadow-with-opacity.html
svg/batik/text/textFeatures.svg
fast/repaint/moving-shadow-on-container.html
svg/batik/text/smallFonts.svg
svg/css/composite-shadow-text.svg
svg/css/group-with-shadow.svg
svg/css/arrow-with-shadow.svg
svg/css/mask-with-shadow.svg
svg/custom/simple-text-double-shadow.svg
svg/W3C-SVG-1.1-SE/types-dom-01-b.svg
svg/W3C-SVG-1.1/animate-elem-24-t.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731450</commentid>
    <comment_count>40</comment_count>
      <attachid>165758</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-10-01 01:00:14 -0700</bug_when>
    <thetext>Comment on attachment 165758
patch

Great that you&apos;re back on this Tim. Looking forward to the detailed ChangeLog - even if this adds new stuff to RenderObject the approach in general looks much safer, though I only had a quick look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743799</commentid>
    <comment_count>41</comment_count>
      <attachid>169072</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-10-16 19:26:31 -0700</bug_when>
    <thetext>Created attachment 169072
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743802</commentid>
    <comment_count>42</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-10-16 19:29:55 -0700</bug_when>
    <thetext>I&apos;m not going to handle the RenderSVGBlock-based cases (text and foreignobject) in this bug. Filed https://bugs.webkit.org/show_bug.cgi?id=99533 to cover those, I&apos;ll add it to my fixme.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743803</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 19:32:15 -0700</bug_when>
    <thetext>Attachment 169072 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1
Source/WebCore/rendering/svg/SVGRenderSupport.h:68:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/svg/SVGRenderSupport.h:81:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/svg/SVGRenderSupport.h:82:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743844</commentid>
    <comment_count>44</comment_count>
      <attachid>169072</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-16 21:58:33 -0700</bug_when>
    <thetext>Comment on attachment 169072
patch

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

New failing tests:
fast/repaint/moving-shadow-on-container.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743886</commentid>
    <comment_count>45</comment_count>
      <attachid>169072</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 23:22:07 -0700</bug_when>
    <thetext>Comment on attachment 169072
patch

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

New failing tests:
svg/css/shadow-changes.svg
svg/repaint/repaint-webkit-svg-shadow.svg
svg/css/composite-shadow-example.html
svg/css/composite-shadow-with-opacity.html
fast/repaint/moving-shadow-on-container.html
svg/css/composite-shadow-text.svg
svg/custom/simple-text-double-shadow.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747098</commentid>
    <comment_count>46</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-10-21 07:54:12 -0700</bug_when>
    <thetext>Did you already prototype a general solution based on your patch locally? Can you assure the interface will be the same for RenderSVGBlock &amp; co?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748325</commentid>
    <comment_count>47</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-10-23 00:31:05 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; Did you already prototype a general solution based on your patch locally? Can you assure the interface will be the same for RenderSVGBlock &amp; co?

I had it sort of working locally, but it required changes outside of SVG land.

The parts of the interface that I&apos;m changing here will be the same, surely. There might be additional stuff required though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748727</commentid>
    <comment_count>48</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-23 09:31:47 -0700</bug_when>
    <thetext>Now that we get filter: drop-shaow, can we remove -webkit-svg-shadow?

Even after promotion, it was never used by content.

Adding Beth who added this property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748827</commentid>
    <comment_count>49</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-10-23 11:33:46 -0700</bug_when>
    <thetext>(In reply to comment #48)
&gt; Now that we get filter: drop-shaow, can we remove -webkit-svg-shadow?
&gt; 
&gt; Even after promotion, it was never used by content.
&gt; 
&gt; Adding Beth who added this property.

This would definitely need to be discussed on webkit-dev. We generally do not like to remove properties that have shipped, no matter how custom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748829</commentid>
    <comment_count>50</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-10-23 11:35:28 -0700</bug_when>
    <thetext>(In reply to comment #48)
&gt; Now that we get filter: drop-shaow, can we remove -webkit-svg-shadow?

No, we cannot.

&gt; Even after promotion, it was never used by content.

This is not quite accurate.

Also, isn’t -webkit-svg-shadow faster? Does filter: drop-shadow always go through the filters code path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748900</commentid>
    <comment_count>51</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-23 13:24:20 -0700</bug_when>
    <thetext>(In reply to comment #50)
&gt; (In reply to comment #48)
&gt; &gt; Now that we get filter: drop-shaow, can we remove -webkit-svg-shadow?
&gt; 
&gt; No, we cannot.
&gt; 

We had multiple issues with -webkit-svg-shadow in the past and this is just the next one. I spend a lot ot time fixing animations and it seems still not working correctly. We should ask ourself is is worth it spending so much time on it?

&gt; &gt; Even after promotion, it was never used by content.
&gt; 
&gt; This is not quite accurate.
&gt; 
&gt; Also, isn’t -webkit-svg-shadow faster? Does filter: drop-shadow always go through the filters code path?
Not sure what you mean with filter path. So yes, we create a FilterEffect object for drop-shadow


Instead of removing it, how about a compromise. Make -webkit-filter a shorthand for -webkit-svg-shadow with:

filter: drop-shadow(&lt;shadow&gt;)+

So the the CSSParser would set the -webkit-filter create a FilterEffect object like for the filter property (well it really sets the filter property). This way we have one code path and not multiple of features with the same effect, each of them hard to maintain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748919</commentid>
    <comment_count>52</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-10-23 13:37:00 -0700</bug_when>
    <thetext>(In reply to comment #51)
&gt; (In reply to comment #50)
&gt; &gt; (In reply to comment #48)
&gt; &gt; &gt; Now that we get filter: drop-shaow, can we remove -webkit-svg-shadow?
&gt; &gt; 
&gt; &gt; No, we cannot.
&gt; &gt; 
&gt; 
&gt; We had multiple issues with -webkit-svg-shadow in the past and this is just the next one. I spend a lot ot time fixing animations and it seems still not working correctly. We should ask ourself is is worth it spending so much time on it?
&gt; 
&gt; &gt; &gt; Even after promotion, it was never used by content.
&gt; &gt; 
&gt; &gt; This is not quite accurate.
&gt; &gt; 
&gt; &gt; Also, isn’t -webkit-svg-shadow faster? Does filter: drop-shadow always go through the filters code path?
&gt; Not sure what you mean with filter path. So yes, we create a FilterEffect object for drop-shadow
&gt; 
&gt; 
&gt; Instead of removing it, how about a compromise. Make -webkit-filter a shorthand for -webkit-svg-shadow with:
&gt; 
&gt; filter: drop-shadow(&lt;shadow&gt;)+
&gt; 
&gt; So the the CSSParser would set the -webkit-filter create a FilterEffect object like for the filter property (well it really sets the filter property). This way we have one code path and not multiple of features with the same effect, each of them hard to maintain.

This would be better in the long term, yes.

In the short term, I feel that setting the CG shadow while painting is in many cases going to be enormously faster than painting into a buffer, blurring it in software, and compositing it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748932</commentid>
    <comment_count>53</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-10-23 13:42:59 -0700</bug_when>
    <thetext>Also, we&apos;re looking for a safe, easy fix for this terrible repaint problem; we should investigate more invasive long-term solutions in another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759985</commentid>
    <comment_count>54</comment_count>
      <attachid>169072</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-06 13:14:12 -0800</bug_when>
    <thetext>Comment on attachment 169072
patch

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

Why is this code so much more complex than the equivalent non-SVG code?

&gt; Source/WebCore/rendering/RenderObject.cpp:277
&gt; +#if ENABLE(SVG)
&gt; +    SVGRenderSupport::setRendererHasSVGShadow(newChild, SVGRenderSupport::rendererHasSVGShadow(this) || SVGRenderSupport::rendererHasSVGShadow(newChild));
&gt; +#endif

This is pretty gross. Can&apos;t we update this flag during layout or something?

&gt; Source/WebCore/rendering/RenderObject.cpp:1917
&gt; +#if ENABLE(SVG)
&gt; +    SVGRenderSupport::setRendererHasSVGShadow(this, (m_parent &amp;&amp; SVGRenderSupport::rendererHasSVGShadow(m_parent)) || (style()-&gt;svgStyle() &amp;&amp; style()-&gt;svgStyle()-&gt;shadow()));
&gt; +#endif

Ditto.

&gt; Source/WebCore/rendering/svg/RenderSVGModelObject.h:80
&gt; +    bool m_hasSVGShadow;

Is it OK to increase the size of all RenderSVGModelObjects by this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760178</commentid>
    <comment_count>55</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-06 16:21:56 -0800</bug_when>
    <thetext>(In reply to comment #54)
&gt; (From update of attachment 169072 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169072&amp;action=review
&gt; 
&gt; Why is this code so much more complex than the equivalent non-SVG code?

We talked about this in person.

&gt; &gt; Source/WebCore/rendering/RenderObject.cpp:277
&gt; &gt; +#if ENABLE(SVG)
&gt; &gt; +    SVGRenderSupport::setRendererHasSVGShadow(newChild, SVGRenderSupport::rendererHasSVGShadow(this) || SVGRenderSupport::rendererHasSVGShadow(newChild));
&gt; &gt; +#endif
&gt; 
&gt; This is pretty gross. Can&apos;t we update this flag during layout or something?

Maybe!

&gt; &gt; Source/WebCore/rendering/RenderObject.cpp:1917
&gt; &gt; +#if ENABLE(SVG)
&gt; &gt; +    SVGRenderSupport::setRendererHasSVGShadow(this, (m_parent &amp;&amp; SVGRenderSupport::rendererHasSVGShadow(m_parent)) || (style()-&gt;svgStyle() &amp;&amp; style()-&gt;svgStyle()-&gt;shadow()));
&gt; &gt; +#endif
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGModelObject.h:80
&gt; &gt; +    bool m_hasSVGShadow;
&gt; 
&gt; Is it OK to increase the size of all RenderSVGModelObjects by this?

sizeof(RenderSVGModelObject) = 56 before and after. I wish we had compile-time-asserts for the size of everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760300</commentid>
    <comment_count>56</comment_count>
      <attachid>172699</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-06 19:23:20 -0800</bug_when>
    <thetext>Created attachment 172699
patch trying to fix testexpectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760302</commentid>
    <comment_count>57</comment_count>
      <attachid>172701</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-06 19:25:35 -0800</bug_when>
    <thetext>Created attachment 172701
and the style bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760304</commentid>
    <comment_count>58</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 19:28:08 -0800</bug_when>
    <thetext>Attachment 172701 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1
Source/WebCore/rendering/svg/RenderSVGModelObject.h:71:  Extra space before )  [whitespace/parens] [2]
Source/WebCore/rendering/svg/RenderSVGModelObject.h:71:  Too many spaces inside { }.  [whitespace/braces] [5]
Source/WebCore/rendering/svg/RenderSVGModelObject.h:80:  Should have a space between // and comment  [whitespace/comments] [4]
LayoutTests/platform/qt/TestExpectations:2399:  Path does not exist.  [test/expectations] [5]
Total errors found: 4 in 33 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760311</commentid>
    <comment_count>59</comment_count>
      <attachid>172701</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-06 19:33:10 -0800</bug_when>
    <thetext>Comment on attachment 172701
and the style bot

Attachment 172701 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14732993</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760314</commentid>
    <comment_count>60</comment_count>
      <attachid>172701</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-06 19:34:33 -0800</bug_when>
    <thetext>Comment on attachment 172701
and the style bot

Attachment 172701 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14745545</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760318</commentid>
    <comment_count>61</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-06 19:40:46 -0800</bug_when>
    <thetext>(In reply to comment #58)
&gt; Attachment 172701 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1
&gt; Source/WebCore/rendering/svg/RenderSVGModelObject.h:71:  Extra space before )  [whitespace/parens] [2]
&gt; Source/WebCore/rendering/svg/RenderSVGModelObject.h:71:  Too many spaces inside { }.  [whitespace/braces] [5]
&gt; Source/WebCore/rendering/svg/RenderSVGModelObject.h:80:  Should have a space between // and comment  [whitespace/comments] [4]
&gt; LayoutTests/platform/qt/TestExpectations:2399:  Path does not exist.  [test/expectations] [5]
&gt; Total errors found: 4 in 33 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Whoops, wrong patch.


&gt; LayoutTests/platform/qt/TestExpectations:2399:  Path does not exist.  [test/expectations] [5]

That&apos;s webkit.org/b/101302 css3/line-break, which I didn&apos;t add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760319</commentid>
    <comment_count>62</comment_count>
      <attachid>172706</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-06 19:41:53 -0800</bug_when>
    <thetext>Created attachment 172706
post the right patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760321</commentid>
    <comment_count>63</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 19:46:03 -0800</bug_when>
    <thetext>Attachment 172706 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1
LayoutTests/platform/qt/TestExpectations:2399:  Path does not exist.  [test/expectations] [5]
Total errors found: 1 in 33 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760376</commentid>
    <comment_count>64</comment_count>
      <attachid>172706</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 21:31:32 -0800</bug_when>
    <thetext>Comment on attachment 172706
post the right patch

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

New failing tests:
svg/css/clippath-with-shadow.svg
svg/css/arrow-with-shadow.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760387</commentid>
    <comment_count>65</comment_count>
      <attachid>172706</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 22:01:06 -0800</bug_when>
    <thetext>Comment on attachment 172706
post the right patch

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

New failing tests:
svg/css/clippath-with-shadow.svg
svg/css/arrow-with-shadow.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760947</commentid>
    <comment_count>66</comment_count>
      <attachid>172853</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-07 11:55:08 -0800</bug_when>
    <thetext>Created attachment 172853
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760977</commentid>
    <comment_count>67</comment_count>
      <attachid>172860</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-07 12:43:52 -0800</bug_when>
    <thetext>Created attachment 172860
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760980</commentid>
    <comment_count>68</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 12:47:44 -0800</bug_when>
    <thetext>Attachment 172860 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1
LayoutTests/platform/qt/TestExpectations:2401:  Path does not exist.  [test/expectations] [5]
Total errors found: 1 in 33 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761189</commentid>
    <comment_count>69</comment_count>
      <attachid>172860</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-07 17:12:20 -0800</bug_when>
    <thetext>Comment on attachment 172860
patch

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

&gt; Source/WebCore/rendering/RenderObject.cpp:289
&gt; +#if ENABLE(SVG)
&gt; +    SVGRenderSupport::setRendererHasSVGShadow(newChild, SVGRenderSupport::rendererHasSVGShadow(this) || SVGRenderSupport::rendererHasSVGShadow(newChild));
&gt; +#endif

This could be slightly less gross by having SVGRenderSupport::childAdded(RO*, RO*) and burying this inside it.

&gt; Source/WebCore/rendering/RenderObject.cpp:1923
&gt; +    SVGRenderSupport::setRendererHasSVGShadow(this, (m_parent &amp;&amp; SVGRenderSupport::rendererHasSVGShadow(m_parent)) || (style()-&gt;svgStyle() &amp;&amp; style()-&gt;svgStyle()-&gt;shadow()));

And SVGRenderSupport::styleChanged().

&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:332
&gt; +        ASSERT(style);

Not much point asserting there; you&apos;ll crash on the next line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761276</commentid>
    <comment_count>70</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-07 18:59:16 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/133834</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763603</commentid>
    <comment_count>71</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-11-09 23:05:10 -0800</bug_when>
    <thetext>(In reply to comment #70)
&gt; http://trac.webkit.org/changeset/133834

Hmpf, just realized that the review I made wasn&apos;t posted :(
Anyhow, the bottom line was a r+ as well. Sorry Tim, for the long delays from my side :( The thesis keeps me busy.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>102829</attachid>
            <date>2011-08-03 14:40:58 -0700</date>
            <delta_ts>2011-08-11 16:22:08 -0700</delta_ts>
            <desc>repro</desc>
            <filename>shadow-offsceen-test.html</filename>
            <type>text/html</type>
            <size>1987</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KPCEtLQoKU1ZHX05T
ID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJzsKCmZ1bmN0aW9uIG5ld1N2Z0VsZW1lbnQg
KHRhZ05hbWUsIHBhcmVudE5vZGUsIGF0dHJzKSB7CiAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUyhTVkdfTlMsIHRhZ05hbWUpOwogICAgaWYgKGF0dHJzKSB7CiAgICAgICAg
Zm9yICh2YXIgayBpbiBhdHRycykgewogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShrLCBh
dHRyc1trXSk7CiAgICAgICAgfQogICAgfQogICAgaWYgKHBhcmVudE5vZGUpIHsKICAgICAgICBw
YXJlbnROb2RlLmFwcGVuZENoaWxkKG5vZGUpOwogICAgfQogICAgcmV0dXJuIG5vZGU7Cn0KCmZ1
bmN0aW9uIHNldENlbnRlclBvc2l0aW9uIChub2RlLCB4LCB5KSB7CiAgICBub2RlLnNldEF0dHJp
YnV0ZSgndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgkMSwgJDIpJwogICAgICAgIC5yZXBsYWNlKCck
MScsIHgpCiAgICAgICAgLnJlcGxhY2UoJyQyJywgeSkpOwp9Cgp2YXIgYXJtZWQgPSBudWxsOwoK
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7CgogICAgdmFyIHN2
Z0NvbnRhaW5lciA9IG5ld1N2Z0VsZW1lbnQoJ3N2ZycsIGRvY3VtZW50LmJvZHkpO2dzLndlCiAg
ICB2YXIgc2hhcGVzID0gWwogICAgICAgIHsgcG9zOiBbIDEwMCwgMTAwIF0sIHNpemU6IDYwLCBo
YXNTdHJva2U6IGZhbHNlIH0sCiAgICAgICAgeyBwb3M6IFsgMjUwLCAxMDAgXSwgc2l6ZTogNjAs
IGhhc1N0cm9rZTogdHJ1ZSB9CiAgICBdOwoJc3ZnQ29udGFpbmVyLnN0eWxlLldlYmtpdFN2Z1No
YWRvdyA9ICcyMDBweCAyMDBweCA1cHggcmVkJzsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2hh
cGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgdmFyIHNoYXBlID0gc2hhcGVzW2ldOwogICAgICAg
IHZhciBub2RlID0gbmV3U3ZnRWxlbWVudCgncmVjdCcsIHN2Z0NvbnRhaW5lciwgewogICAgICAg
ICAgICB3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMCAvIChpICsgMSksIHg6IC01MCwgeTogLTUwLAog
ICAgICAgICAgICBmaWxsOiAnIzk5OScsCiAgICAgICAgfSk7CiAgICAgICAgc2hhcGVbIm5vZGUi
XSA9IG5vZGU7CiAgICAgICAgLy9ub2RlLnN0eWxlLldlYmtpdFN2Z1NoYWRvdyA9ICcyMDBweCAy
MDBweCA1cHggcmVkJzsKICAgICAgICBzZXRDZW50ZXJQb3NpdGlvbihub2RlLCBzaGFwZS5wb3Nb
MF0sIHNoYXBlLnBvc1sxXSk7CiAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRv
d24nLCBmdW5jdGlvbiAoZXYpIHsKICAgICAgICAgICAgdmFyIGUgPSBldiB8fCBldmVudDsKICAg
ICAgICAgICAgYXJtZWQgPSB7IG5vZGU6IGUudGFyZ2V0IHx8IGUuc3JjRWxlbWVudCB9OwogICAg
ICAgIH0pOwogICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgYXJtZWQgPSBudWxsOwogICAgICAgIH0pOwogICAgfQogICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZ1bmN0aW9uIChldikgewogICAgICAg
IGlmIChhcm1lZCkgewogICAgICAgICAgICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAgICAg
ICBzZXRDZW50ZXJQb3NpdGlvbihhcm1lZC5ub2RlLCBlLmNsaWVudFgsIGUuY2xpZW50WSk7CiAg
ICAgICAgfQogICAgfSk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uIG1vdmVpdCgpIHsKICAgICAg
ICBzZXRDZW50ZXJQb3NpdGlvbihzaGFwZXNbMF1bIm5vZGUiXSwgMjAwLCAzMDApOwogICAgfSwg
NTAwKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gbW92ZWl0KCkgewogICAgICAgIHNldENlbnRl
clBvc2l0aW9uKHNoYXBlc1swXVsibm9kZSJdLCAyNTAsIDMwMCk7CiAgICB9LCA2MDApOwp9KTsK
Ci8vLS0+Cjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgoKPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>103699</attachid>
            <date>2011-08-11 16:22:08 -0700</date>
            <delta_ts>2011-08-11 16:22:08 -0700</delta_ts>
            <desc>correct repro</desc>
            <filename>shadow-offsceen-test.html</filename>
            <type>text/html</type>
            <size>1982</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KPCEtLQoKU1ZHX05T
ID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJzsKCmZ1bmN0aW9uIG5ld1N2Z0VsZW1lbnQg
KHRhZ05hbWUsIHBhcmVudE5vZGUsIGF0dHJzKSB7CiAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUyhTVkdfTlMsIHRhZ05hbWUpOwogICAgaWYgKGF0dHJzKSB7CiAgICAgICAg
Zm9yICh2YXIgayBpbiBhdHRycykgewogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShrLCBh
dHRyc1trXSk7CiAgICAgICAgfQogICAgfQogICAgaWYgKHBhcmVudE5vZGUpIHsKICAgICAgICBw
YXJlbnROb2RlLmFwcGVuZENoaWxkKG5vZGUpOwogICAgfQogICAgcmV0dXJuIG5vZGU7Cn0KCmZ1
bmN0aW9uIHNldENlbnRlclBvc2l0aW9uIChub2RlLCB4LCB5KSB7CiAgICBub2RlLnNldEF0dHJp
YnV0ZSgndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgkMSwgJDIpJwogICAgICAgIC5yZXBsYWNlKCck
MScsIHgpCiAgICAgICAgLnJlcGxhY2UoJyQyJywgeSkpOwp9Cgp2YXIgYXJtZWQgPSBudWxsOwoK
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7CgogICAgdmFyIHN2
Z0NvbnRhaW5lciA9IG5ld1N2Z0VsZW1lbnQoJ3N2ZycsIGRvY3VtZW50LmJvZHkpOwogICAgdmFy
IHNoYXBlcyA9IFsKICAgICAgICB7IHBvczogWyAxMDAsIDEwMCBdLCBzaXplOiA2MCwgaGFzU3Ry
b2tlOiBmYWxzZSB9LAogICAgICAgIHsgcG9zOiBbIDI1MCwgMTAwIF0sIHNpemU6IDYwLCBoYXNT
dHJva2U6IHRydWUgfQogICAgXTsKCXN2Z0NvbnRhaW5lci5zdHlsZS5XZWJraXRTdmdTaGFkb3cg
PSAnMjAwcHggMjAwcHggNXB4IHJlZCc7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNoYXBlcy5s
ZW5ndGg7ICsraSkgewogICAgICAgIHZhciBzaGFwZSA9IHNoYXBlc1tpXTsKICAgICAgICB2YXIg
bm9kZSA9IG5ld1N2Z0VsZW1lbnQoJ3JlY3QnLCBzdmdDb250YWluZXIsIHsKICAgICAgICAgICAg
d2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAgLyAoaSArIDEpLCB4OiAtNTAsIHk6IC01MCwKICAgICAg
ICAgICAgZmlsbDogJyM5OTknLAogICAgICAgIH0pOwogICAgICAgIHNoYXBlWyJub2RlIl0gPSBu
b2RlOwogICAgICAgIC8vbm9kZS5zdHlsZS5XZWJraXRTdmdTaGFkb3cgPSAnMjAwcHggMjAwcHgg
NXB4IHJlZCc7CiAgICAgICAgc2V0Q2VudGVyUG9zaXRpb24obm9kZSwgc2hhcGUucG9zWzBdLCBz
aGFwZS5wb3NbMV0pOwogICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywg
ZnVuY3Rpb24gKGV2KSB7CiAgICAgICAgICAgIHZhciBlID0gZXYgfHwgZXZlbnQ7CiAgICAgICAg
ICAgIGFybWVkID0geyBub2RlOiBlLnRhcmdldCB8fCBlLnNyY0VsZW1lbnQgfTsKICAgICAgICB9
KTsKICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgIGFybWVkID0gbnVsbDsKICAgICAgICB9KTsKICAgIH0KICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmdW5jdGlvbiAoZXYpIHsKICAgICAgICBpZiAo
YXJtZWQpIHsKICAgICAgICAgICAgdmFyIGUgPSBldiB8fCBldmVudDsKICAgICAgICAgICAgc2V0
Q2VudGVyUG9zaXRpb24oYXJtZWQubm9kZSwgZS5jbGllbnRYLCBlLmNsaWVudFkpOwogICAgICAg
IH0KICAgIH0pOwogICAgc2V0VGltZW91dChmdW5jdGlvbiBtb3ZlaXQoKSB7CiAgICAgICAgc2V0
Q2VudGVyUG9zaXRpb24oc2hhcGVzWzBdWyJub2RlIl0sIDIwMCwgMzAwKTsKICAgIH0sIDUwMCk7
CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uIG1vdmVpdCgpIHsKICAgICAgICBzZXRDZW50ZXJQb3Np
dGlvbihzaGFwZXNbMF1bIm5vZGUiXSwgMjUwLCAzMDApOwogICAgfSwgNjAwKTsKfSk7CgovLy0t
Pgo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103710</attachid>
            <date>2011-08-11 17:24:52 -0700</date>
            <delta_ts>2011-08-11 17:41:08 -0700</delta_ts>
            <desc>preliminary patch sans changelog/test</desc>
            <filename>0001-fix.patch</filename>
            <type>text/plain</type>
            <size>3489</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">RnJvbSAxMDllNWMzOTNlNjMyZWJkN2YwZWY5ZGZmNjBkZjEzYjZmZTg0ODA5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW0gSG9ydG9uIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CkRhdGU6IFRodSwgMTEgQXVnIDIwMTEgMTc6MTA6NDYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBm
aXgKCi0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNw
cCB8ICAgMzIgKysrKysrKysrKysrKysrKysrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyU3VwcG9ydC5oICAgfCAgICAzICsrCiAyIGZpbGVzIGNoYW5nZWQsIDMxIGlu
c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggNjhlMThlZS4uMDE0OThjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3Bw
CkBAIC0yNzIsNiArMjcyLDMyIEBAIGJvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6aXNPdmVyZmxvd0hp
ZGRlbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKICAgICByZXR1cm4gb2JqZWN0LT5zdHls
ZSgpLT5vdmVyZmxvd1goKSA9PSBPSElEREVOOwogfQogCit2b2lkIFNWR1JlbmRlclN1cHBvcnQ6
OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3MoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QpCit7CisgICAgLy8gU2luY2UgLXdlYmtpdC1zdmct
c2hhZG93IGVuYWJsZXMgc2hhZG93IGRyYXdpbmcgZm9yIGl0cyBjaGlsZHJlbiwgYnV0IGl0cyBj
aGlsZHJlbgorICAgIC8vIGRvbid0IGluaGVyaXQgdGhlIHNoYWRvdyBpbiB0aGVpciBTVkdSZW5k
ZXJTdHlsZSwgd2UgbmVlZCB0byBzZWFyY2ggb3VyIHBhcmVudHMgZm9yCisgICAgLy8gc2hhZG93
cyBpbiBvcmRlciB0byBjb3JyZWN0bHkgY29tcHV0ZSBvdXIgcmVwYWludCByZWN0LgorCisgICAg
Y29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyZW50T2JqZWN0ID0gb2JqZWN0OworCisgICAgZG8gewor
ICAgICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBjdXJyZW50T2JqZWN0LT5zdHlsZSgpOworCisg
ICAgICAgIGlmICghc3R5bGUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBjb25z
dCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKTsKKworICAgICAg
ICBpZiAoIXN2Z1N0eWxlKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGNv
bnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKKyAgICAgICAgICAg
IHNoYWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7CisKKyAgICAgICAgY3Vy
cmVudE9iamVjdCA9IGN1cnJlbnRPYmplY3QtPnBhcmVudCgpOworICAgIH0gd2hpbGUgKGN1cnJl
bnRPYmplY3QpOworfQorCiB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRS
ZWN0V2l0aFJlc291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgRmxvYXRSZWN0JiBy
ZXBhaW50UmVjdCkKIHsKICAgICBBU1NFUlQob2JqZWN0KTsKQEAgLTI4NSw4ICszMTEsNyBAQCB2
b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyhj
b25zdCBSZW5kZXJPYmplY3QqIG9iagogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjb25z
dF9jYXN0PFJlbmRlck9iamVjdCo+KG9iamVjdCk7CiAgICAgU1ZHUmVzb3VyY2VzKiByZXNvdXJj
ZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVuZGVyT2JqZWN0KHJl
bmRlcmVyKTsKICAgICBpZiAoIXJlc291cmNlcykgewotICAgICAgICBpZiAoY29uc3QgU2hhZG93
RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQotICAgICAgICAgICAgc2hhZG93LT5h
ZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKKyAgICAgICAgaW50ZXJzZWN0UmVwYWlu
dFJlY3RXaXRoU2hhZG93cyhvYmplY3QsIHJlcGFpbnRSZWN0KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMzAxLDggKzMyNiw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJz
ZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqCiAgICAg
aWYgKFJlbmRlclNWR1Jlc291cmNlTWFza2VyKiBtYXNrZXIgPSByZXNvdXJjZXMtPm1hc2tlcigp
KQogICAgICAgICByZXBhaW50UmVjdC5pbnRlcnNlY3QobWFza2VyLT5yZXNvdXJjZUJvdW5kaW5n
Qm94KHJlbmRlcmVyKSk7CiAKLSAgICBpZiAoY29uc3QgU2hhZG93RGF0YSogc2hhZG93ID0gc3Zn
U3R5bGUtPnNoYWRvdygpKQotICAgICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3cocmVw
YWludFJlY3QpOworICAgIGludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3Mob2JqZWN0LCBy
ZXBhaW50UmVjdCk7CiB9CiAKIGJvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6cG9pbnRJbkNsaXBwaW5n
QXJlYShSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCmluZGV4IDgw
NmQzY2YuLjNmNDQ0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5oCkBAIC01MSw2ICs1MSw5IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXIg
ZnVuY3Rpb24gZGV0ZXJtaW5pbmcgd2hldGVyIG92ZXJmbG93IGlzIGhpZGRlbgogICAgIHN0YXRp
YyBib29sIGlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKKyAgICAvLyBF
eHBhbmRzIHRoZSByZXBhaW50UmVjdCBieSBhbGwgb2YgdGhlIHNoYWRvd3MgYXBwbGllZCB1cCB0
aGUgdHJlZQorICAgIHN0YXRpYyB2b2lkIGludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3Mo
Y29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CisKICAgICAvLyBDYWxjdWxhdGVzIHRo
ZSByZXBhaW50UmVjdCBpbiBjb21iaW5hdGlvbiB3aXRoIGZpbHRlciwgY2xpcHBlciBhbmQgbWFz
a2VyIGluIGxvY2FsIGNvb3JkaW5hdGVzLgogICAgIHN0YXRpYyB2b2lkIGludGVyc2VjdFJlcGFp
bnRSZWN0V2l0aFJlc291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3QmKTsKIAot
LSAKMS43LjQuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103714</attachid>
            <date>2011-08-11 17:40:55 -0700</date>
            <delta_ts>2011-08-19 16:59:45 -0700</delta_ts>
            <desc>preliminary patch sans changelog/test</desc>
            <filename>0001-fix.patch</filename>
            <type>text/plain</type>
            <size>3666</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">RnJvbSBhNDBhOGYxZmNhYjIzZjVjM2E0Mjg4YjJkYTViOTUwNmMwZjY0ZjNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW0gSG9ydG9uIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CkRhdGU6IFRodSwgMTEgQXVnIDIwMTEgMTc6MTA6NDYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBm
aXgKCi0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNw
cCB8ICAgMzggKysrKysrKysrKysrKysrLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyU3VwcG9ydC5oICAgfCAgICAzICsrCiAyIGZpbGVzIGNoYW5nZWQsIDMxIGlu
c2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCmluZGV4IDY4ZTE4ZWUuLjg4OGYyMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNw
cApAQCAtMjcyLDIxICsyNzIsNDAgQEAgYm9vbCBTVkdSZW5kZXJTdXBwb3J0Ojppc092ZXJmbG93
SGlkZGVuKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogICAgIHJldHVybiBvYmplY3QtPnN0
eWxlKCktPm92ZXJmbG93WCgpID09IE9ISURERU47CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9y
dDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCog
b2JqZWN0LCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0KQordm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpp
bnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0
LCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0KQogewotICAgIEFTU0VSVChvYmplY3QpOworICAgIC8v
IFNpbmNlIC13ZWJraXQtc3ZnLXNoYWRvdyBlbmFibGVzIHNoYWRvdyBkcmF3aW5nIGZvciBpdHMg
Y2hpbGRyZW4sIGJ1dCBpdHMgY2hpbGRyZW4KKyAgICAvLyBkb24ndCBpbmhlcml0IHRoZSBzaGFk
b3cgaW4gdGhlaXIgU1ZHUmVuZGVyU3R5bGUsIHdlIG5lZWQgdG8gc2VhcmNoIG91ciBwYXJlbnRz
IGZvcgorICAgIC8vIHNoYWRvd3MgaW4gb3JkZXIgdG8gY29ycmVjdGx5IGNvbXB1dGUgb3VyIHJl
cGFpbnQgcmVjdC4KIAotICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsK
LSAgICBBU1NFUlQoc3R5bGUpOworICAgIGNvbnN0IFJlbmRlck9iamVjdCogY3VycmVudE9iamVj
dCA9IG9iamVjdDsKIAotICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxl
LT5zdmdTdHlsZSgpOwotICAgIEFTU0VSVChzdmdTdHlsZSk7CisgICAgZG8geworICAgICAgICBS
ZW5kZXJTdHlsZSogc3R5bGUgPSBjdXJyZW50T2JqZWN0LT5zdHlsZSgpOworCisgICAgICAgIGlm
ICghc3R5bGUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBjb25zdCBTVkdSZW5k
ZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKTsKKworICAgICAgICBpZiAoIXN2
Z1N0eWxlKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKKyAgICAgICAgICAgIHNoYWRvdy0+
YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7CisKKyAgICAgICAgY3VycmVudE9iamVj
dCA9IGN1cnJlbnRPYmplY3QtPnBhcmVudCgpOworICAgIH0gd2hpbGUgKGN1cnJlbnRPYmplY3Qp
OworfQorCit2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJl
c291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgRmxvYXRSZWN0JiByZXBhaW50UmVj
dCkKK3sKKyAgICBBU1NFUlQob2JqZWN0KTsKIAogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIg
PSBjb25zdF9jYXN0PFJlbmRlck9iamVjdCo+KG9iamVjdCk7CiAgICAgU1ZHUmVzb3VyY2VzKiBy
ZXNvdXJjZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVuZGVyT2Jq
ZWN0KHJlbmRlcmVyKTsKICAgICBpZiAoIXJlc291cmNlcykgewotICAgICAgICBpZiAoY29uc3Qg
U2hhZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQotICAgICAgICAgICAgc2hh
ZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKKyAgICAgICAgaW50ZXJzZWN0
UmVwYWludFJlY3RXaXRoU2hhZG93cyhvYmplY3QsIHJlcGFpbnRSZWN0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMzAxLDggKzMyMCw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6
aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2Jq
CiAgICAgaWYgKFJlbmRlclNWR1Jlc291cmNlTWFza2VyKiBtYXNrZXIgPSByZXNvdXJjZXMtPm1h
c2tlcigpKQogICAgICAgICByZXBhaW50UmVjdC5pbnRlcnNlY3QobWFza2VyLT5yZXNvdXJjZUJv
dW5kaW5nQm94KHJlbmRlcmVyKSk7CiAKLSAgICBpZiAoY29uc3QgU2hhZG93RGF0YSogc2hhZG93
ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQotICAgICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFk
b3cocmVwYWludFJlY3QpOworICAgIGludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3Mob2Jq
ZWN0LCByZXBhaW50UmVjdCk7CiB9CiAKIGJvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6cG9pbnRJbkNs
aXBwaW5nQXJlYShSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBv
cnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCmlu
ZGV4IDgwNmQzY2YuLjNmNDQ0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyU3VwcG9ydC5oCkBAIC01MSw2ICs1MSw5IEBAIHB1YmxpYzoKICAgICAvLyBI
ZWxwZXIgZnVuY3Rpb24gZGV0ZXJtaW5pbmcgd2hldGVyIG92ZXJmbG93IGlzIGhpZGRlbgogICAg
IHN0YXRpYyBib29sIGlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKKyAg
ICAvLyBFeHBhbmRzIHRoZSByZXBhaW50UmVjdCBieSBhbGwgb2YgdGhlIHNoYWRvd3MgYXBwbGll
ZCB1cCB0aGUgdHJlZQorICAgIHN0YXRpYyB2b2lkIGludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNo
YWRvd3MoY29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CisKICAgICAvLyBDYWxjdWxh
dGVzIHRoZSByZXBhaW50UmVjdCBpbiBjb21iaW5hdGlvbiB3aXRoIGZpbHRlciwgY2xpcHBlciBh
bmQgbWFza2VyIGluIGxvY2FsIGNvb3JkaW5hdGVzLgogICAgIHN0YXRpYyB2b2lkIGludGVyc2Vj
dFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3Qm
KTsKIAotLSAKMS43LjQuNAoK
</data>
<flag name="review"
          id="99450"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
    <flag name="commit-queue"
          id="99435"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104596</attachid>
            <date>2011-08-19 16:59:45 -0700</date>
            <delta_ts>2011-08-19 17:04:15 -0700</delta_ts>
            <desc>expanded preliminary patch</desc>
            <filename>7600532.diff</filename>
            <type>text/plain</type>
            <size>11695</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3JlcGFpbnQt
d2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE2OTIzYQpCaW5hcnkgZmlsZXMgL2Rldi9u
dWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3JlcGFpbnQtd2Vi
a2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N2Zy9jdXN0b20vcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU0N2QyYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVwYWludC13ZWJraXQtc3ZnLXNoYWRv
dy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4
NjE2CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDc4NXg2MTYKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDYwMAorICAgICAgUmVuZGVy
U1ZHUm9vdCB7c3ZnfSBhdCAoMjgsOCkgc2l6ZSA2MDF4Njg0CisgICAgICAgIFJlbmRlclNWR1Bh
dGgge3JlY3R9IGF0ICgxNTgsMTA4KSBzaXplIDIyMHgyMjAgW3RyYW5zZm9ybT17bT0oKDEuMDAs
MC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUwLjAwLDUwLjAwKX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDAwMDBdfV0gW3g9MC4wMF0gW3k9NTAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdo
dD0yMC4wMF0KKyAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDEyOCw4KSBzaXplIDIy
MHgyMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbeD0xMjAuMDBdIFt5
PTAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICAgICAgUmVuZGVyU1ZHVGV4
dCB7dGV4dH0gYXQgKDIwLDM2Nikgc2l6ZSAzMDF4MTggY29udGFpbnMgMSBjaHVuayhzKQorICAg
ICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMwMXgxOAor
ICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMC4wMCwzODAuMDApIHN0YXJ0T2Zm
c2V0IDAgZW5kT2Zmc2V0IDQ4IHdpZHRoIDMwMS4wMDogIlBBU1MgaWYgZm91ciByZWN0cyBhcmUg
b24tc2NyZWVuIGFmdGVyIGFuaW1hdGlvbiIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1z
aGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVwYWludC13ZWJraXQtc3ZnLXNo
YWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkNzcxOGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2
Zy1zaGFkb3cuaHRtbApAQCAtMCwwICsxLDM0IEBACis8aHRtbD4KKzxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHlsZT0iLXdlYmtpdC1zdmctc2hhZG93OiAxMDBweCAx
MDBweCAwcHggI2FhYTsiPgorICAgIDxyZWN0IGlkPSJhIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAi
IHg9IjAiIHk9IjUwIiBmaWxsPSJibGFjayIgLz4KKyAgICA8cmVjdCBpZD0iYiIgd2lkdGg9IjIw
IiBoZWlnaHQ9IjIwIiB4PSIxMjAiIHk9IjAiIGZpbGw9ImJsYWNrIiAvPgorICAgIDx0ZXh0IHg9
IjIwIiB5PSIzODAiPlBBU1MgaWYgZm91ciByZWN0cyBhcmUgb24tc2NyZWVuIGFmdGVyIGFuaW1h
dGlvbjwvdGV4dD4KKzwvc3ZnPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHNldENlbnRlclBvc2l0aW9u
IChub2RlLCB4LCB5KSB7CisgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsICd0cmFu
c2xhdGUoJDEsICQyKScKKyAgICAgICAgLnJlcGxhY2UoJyQxJywgeCkKKyAgICAgICAgLnJlcGxh
Y2UoJyQyJywgeSkpOworfQorCitmdW5jdGlvbiBtb3ZlU3F1YXJlICgpIHsKKyAgICBzZXRDZW50
ZXJQb3NpdGlvbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpLCAxNTAsIDUwKTsKKworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kaXNwbGF5KCk7CisgICAgICAgIG1vdmVTcXVhcmUoKTsKKyAgICB9CisgICAgZWxz
ZSB7CisgICAgICAgIHNldFRpbWVvdXQobW92ZVNxdWFyZSwgNTAwKTsKKyAgICB9Cit9LCAwKTsK
KworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCmluZGV4IDI2YWQwMmUuLjY2YTNmODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0yNzMsNiAr
MjczLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGlzQ0FMYXllckNvbnRl
eHQoKSBjb25zdDsKIAogICAgICAgICB2b2lkIHNldElzQWNjZWxlcmF0ZWRDb250ZXh0KGJvb2wp
OworCisgICAgICAgIGJvb2wgaW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0OwogI2VuZGlmCiAg
ICAgICAgIGJvb2wgaXNBY2NlbGVyYXRlZENvbnRleHQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
Y3BwCmluZGV4IDEzZGQ5ZGIuLjEwYjVjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTk4OCw2
ICs5ODgsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkK
ICAgICByZXN0b3JlKCk7CiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjppblRyYW5zcGFyZW5j
eUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kYXRhLT5tX3RyYW5zcGFyZW5jeUNvdW50
ID4gMDsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0
IEZsb2F0U2l6ZSYgb2Zmc2V0LCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9y
U3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
UGxhdGZvcm1Qcml2YXRlQ0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmgKaW5kZXggZjRmYTEyMi4uZTg0YjVh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oCkBAIC05Miwy
MCArOTIsMjAgQEAgcHVibGljOgogCiAgICAgdm9pZCBiZWdpblRyYW5zcGFyZW5jeUxheWVyKCkK
ICAgICB7Ci0jaWYgUExBVEZPUk0oV0lOKSB8fCAhQVNTRVJUX0RJU0FCTEVECisjaWYgUExBVEZP
Uk0oV0lOKSB8fCBVU0UoQ0cpIHx8ICFBU1NFUlRfRElTQUJMRUQKICAgICAgICAgbV90cmFuc3Bh
cmVuY3lDb3VudCsrOwogI2VuZGlmCiAgICAgfQogICAgIHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5
ZXIoKQogICAgIHsKLSNpZiBQTEFURk9STShXSU4pIHx8ICFBU1NFUlRfRElTQUJMRUQKKyNpZiBQ
TEFURk9STShXSU4pIHx8IFVTRShDRykgfHwgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICBBU1NF
UlQobV90cmFuc3BhcmVuY3lDb3VudCA+IDApOwogICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50
LS07CiAjZW5kaWYKICAgICB9CiAKICAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBtX2NnQ29u
dGV4dDsKLSNpZiBQTEFURk9STShXSU4pIHx8ICFBU1NFUlRfRElTQUJMRUQKKyNpZiBQTEFURk9S
TShXSU4pIHx8IFVTRShDRykgfHwgIUFTU0VSVF9ESVNBQkxFRAogICAgIGludCBtX3RyYW5zcGFy
ZW5jeUNvdW50OwogI2VuZGlmCiAgICAgYm9vbCBtX3VzZXJUb0RldmljZVRyYW5zZm9ybUtub3du
VG9CZUlkZW50aXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udE1hYy5tbQppbmRleCAwNjdkNzM0Li4yZTE0YWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQpAQCAtMjIyLDcgKzIyMiw3IEBAIHZv
aWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNpbXBs
ZUZvbnREYXRhKiBmb250LCBjb25zCiAgICAgQ29sb3JTcGFjZSBmaWxsQ29sb3JTcGFjZSA9IGNv
bnRleHQtPmZpbGxDb2xvclNwYWNlKCk7CiAgICAgY29udGV4dC0+Z2V0U2hhZG93KHNoYWRvd09m
ZnNldCwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IsIHNoYWRvd0NvbG9yU3BhY2UpOwogCi0gICAg
Ym9vbCBoYXNTaW1wbGVTaGFkb3cgPSBjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSA9PSBUZXh0
TW9kZUZpbGwgJiYgc2hhZG93Q29sb3IuaXNWYWxpZCgpICYmICFzaGFkb3dCbHVyICYmICFwbGF0
Zm9ybURhdGEuaXNDb2xvckJpdG1hcEZvbnQoKSAmJiAoIWNvbnRleHQtPnNoYWRvd3NJZ25vcmVU
cmFuc2Zvcm1zKCkgfHwgY29udGV4dC0+Z2V0Q1RNKCkuaXNJZGVudGl0eU9yVHJhbnNsYXRpb25P
ckZsaXBwZWQoKSk7CisgICAgYm9vbCBoYXNTaW1wbGVTaGFkb3cgPSBjb250ZXh0LT50ZXh0RHJh
d2luZ01vZGUoKSA9PSBUZXh0TW9kZUZpbGwgJiYgc2hhZG93Q29sb3IuaXNWYWxpZCgpICYmICFz
aGFkb3dCbHVyICYmICFwbGF0Zm9ybURhdGEuaXNDb2xvckJpdG1hcEZvbnQoKSAmJiAoIWNvbnRl
eHQtPnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKCkgfHwgY29udGV4dC0+Z2V0Q1RNKCkuaXNJZGVu
dGl0eU9yVHJhbnNsYXRpb25PckZsaXBwZWQoKSkgJiYgIWNvbnRleHQtPmluVHJhbnNwYXJlbmN5
TGF5ZXIoKTsKICAgICBpZiAoaGFzU2ltcGxlU2hhZG93KSB7CiAgICAgICAgIC8vIFBhaW50IHNp
bXBsZSBzaGFkb3dzIG91cnNlbHZlcyBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gQ0cgc2hhZG93cywg
dG8gYXZvaWQgbG9zaW5nIHN1YnBpeGVsIGFudGlhbGlhc2luZy4KICAgICAgICAgY29udGV4dC0+
Y2xlYXJTaGFkb3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
aW5kZXggYWQzNWJlNS4uN2ZiMDUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKQEAgLTIyNCw2ICsyMjQsOSBAQCBSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVj
dChOb2RlKiBub2RlKQogICAgICwgbV9oYXNNYXJrdXBUcnVuY2F0aW9uKGZhbHNlKQogICAgICwg
bV9zZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25Ob25lKQogICAgICwgbV9oYXNDb2x1bW5zKGZhbHNl
KQorI2lmIEVOQUJMRShTVkcpCisgICAgLCBtX2hhc1NWR1NoYWRvdyhmYWxzZSkKKyNlbmRpZgog
ewogI2lmbmRlZiBOREVCVUcKICAgICByZW5kZXJPYmplY3RDb3VudGVyLmluY3JlbWVudCgpOwpA
QCAtMjgzLDYgKzI4NiwxMCBAQCB2b2lkIFJlbmRlck9iamVjdDo6YWRkQ2hpbGQoUmVuZGVyT2Jq
ZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKICAgICBpZiAoIWNoaWxk
cmVuKQogICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIG5ld0NoaWxkLT5z
ZXRIYXNTVkdTaGFkb3coaGFzU1ZHU2hhZG93KCkgfHwgbmV3Q2hpbGQtPmhhc1NWR1NoYWRvdygp
KTsKKyNlbmRpZgorCiAgICAgYm9vbCBuZWVkc1RhYmxlID0gZmFsc2U7CiAKICAgICBpZiAobmV3
Q2hpbGQtPmlzVGFibGVDb2woKSAmJiBuZXdDaGlsZC0+c3R5bGUoKS0+ZGlzcGxheSgpID09IFRB
QkxFX0NPTFVNTl9HUk9VUCkKQEAgLTE3NzcsNiArMTc4NCwxMSBAQCB2b2lkIFJlbmRlck9iamVj
dDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxl
KiBvbGRTdAogICAgIGlmIChzX2FmZmVjdHNQYXJlbnRCbG9jaykKICAgICAgICAgaGFuZGxlRHlu
YW1pY0Zsb2F0UG9zaXRpb25DaGFuZ2UoKTsKIAorI2lmIEVOQUJMRShTVkcpCisgICAgaWYgKCht
X3BhcmVudCAmJiBtX3BhcmVudC0+aGFzU1ZHU2hhZG93KCkpIHx8IChzdHlsZSgpLT5zdmdTdHls
ZSgpICYmIHN0eWxlKCktPnN2Z1N0eWxlKCktPnNoYWRvdygpKSkKKyAgICAgICAgc2V0SGFzU1ZH
U2hhZG93KFRSVUUpOworI2VuZGlmCisKICAgICBpZiAoIW1fcGFyZW50KQogICAgICAgICByZXR1
cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMmE5
MDcwMS4uN2FiZDc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApA
QCAtMzk4LDYgKzM5OCw5IEBAIHB1YmxpYzoKICAgICAvLyBjb29yZGluYXRlcyBpbnN0ZWFkIG9m
IGluIHJlcGFpbnQgY29udGFpbmVyIGNvb3JkaW5hdGVzLiAgRXZlbnR1YWxseSB0aGUKICAgICAv
LyByZXN0IG9mIHRoZSByZW5kZXJpbmcgdHJlZSB3aWxsIG1vdmUgdG8gYSBzaW1pbGFyIG1vZGVs
LgogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQsIEhpdFRl
c3RBY3Rpb24pOworCisgICAgYm9vbCBoYXNTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX2hh
c1NWR1NoYWRvdzsgfQorICAgIHZvaWQgc2V0SGFzU1ZHU2hhZG93KGJvb2wgc2hhZG93ZWRQYXJl
bnQpIHsgbV9oYXNTVkdTaGFkb3cgPSBzaGFkb3dlZFBhcmVudDsgfQogI2VuZGlmCiAKICAgICBi
b29sIGlzQW5vbnltb3VzKCkgY29uc3QgeyByZXR1cm4gbV9pc0Fub255bW91czsgfQpAQCAtOTEw
LDYgKzkxMywxMCBAQCBwcml2YXRlOgogcHJpdmF0ZToKICAgICAvLyBTdG9yZSBzdGF0ZSBiZXR3
ZWVuIHN0eWxlV2lsbENoYW5nZSBhbmQgc3R5bGVEaWRDaGFuZ2UKICAgICBzdGF0aWMgYm9vbCBz
X2FmZmVjdHNQYXJlbnRCbG9jazsKKworI2lmIEVOQUJMRShTVkcpCisgICAgYm9vbCBtX2hhc1NW
R1NoYWRvdzsKKyNlbmRpZgogfTsKIAogaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0Ojpkb2N1bWVu
dEJlaW5nRGVzdHJveWVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCmluZGV4IDAwNzkyMTkuLmRiYjE0N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcApAQCAt
MjcyLDIxICsyNzIsNDMgQEAgYm9vbCBTVkdSZW5kZXJTdXBwb3J0Ojppc092ZXJmbG93SGlkZGVu
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogICAgIHJldHVybiBvYmplY3QtPnN0eWxlKCkt
Pm92ZXJmbG93WCgpID09IE9ISURERU47CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50
ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0
LCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0KQordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNl
Y3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9h
dFJlY3QmIHJlcGFpbnRSZWN0KQogewotICAgIEFTU0VSVChvYmplY3QpOworICAgIC8vIFNpbmNl
IC13ZWJraXQtc3ZnLXNoYWRvdyBlbmFibGVzIHNoYWRvdyBkcmF3aW5nIGZvciBpdHMgY2hpbGRy
ZW4sIGJ1dCBpdHMgY2hpbGRyZW4KKyAgICAvLyBkb24ndCBpbmhlcml0IHRoZSBzaGFkb3cgaW4g
dGhlaXIgU1ZHUmVuZGVyU3R5bGUsIHdlIG5lZWQgdG8gc2VhcmNoIG91ciBwYXJlbnRzIGZvcgor
ICAgIC8vIHNoYWRvd3MgaW4gb3JkZXIgdG8gY29ycmVjdGx5IGNvbXB1dGUgb3VyIHJlcGFpbnQg
cmVjdC4KIAotICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsKLSAgICBB
U1NFUlQoc3R5bGUpOworICAgIGNvbnN0IFJlbmRlck9iamVjdCogY3VycmVudE9iamVjdCA9IG9i
amVjdDsKIAotICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxlLT5zdmdT
dHlsZSgpOwotICAgIEFTU0VSVChzdmdTdHlsZSk7CisgICAgZG8geworICAgICAgICBSZW5kZXJT
dHlsZSogc3R5bGUgPSBjdXJyZW50T2JqZWN0LT5zdHlsZSgpOworCisgICAgICAgIGlmICghc3R5
bGUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBjb25zdCBTVkdSZW5kZXJTdHls
ZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKTsKKworICAgICAgICBpZiAoIXN2Z1N0eWxl
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEq
IHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKKyAgICAgICAgICAgIHNoYWRvdy0+YWRqdXN0
UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7CisKKyAgICAgICAgY3VycmVudE9iamVjdCA9IGN1
cnJlbnRPYmplY3QtPnBhcmVudCgpOworCisgICAgICAgIGlmICghY3VycmVudE9iamVjdC0+aGFz
U1ZHU2hhZG93KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfSB3aGlsZSAoY3VycmVudE9i
amVjdCk7Cit9CisKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RX
aXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9hdFJlY3QmIHJlcGFp
bnRSZWN0KQoreworICAgIEFTU0VSVChvYmplY3QpOwogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4ob2JqZWN0KTsKICAgICBTVkdSZXNvdXJj
ZXMqIHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5k
ZXJPYmplY3QocmVuZGVyZXIpOwogICAgIGlmICghcmVzb3VyY2VzKSB7Ci0gICAgICAgIGlmIChj
b25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCi0gICAgICAgICAg
ICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3cocmVwYWludFJlY3QpOworICAgICAgICBpbnRl
cnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKG9iamVjdCwgcmVwYWludFJlY3QpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0zMDEsOCArMzIzLDcgQEAgdm9pZCBTVkdSZW5kZXJTdXBw
b3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0
KiBvYmoKICAgICBpZiAoUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIqIG1hc2tlciA9IHJlc291cmNl
cy0+bWFza2VyKCkpCiAgICAgICAgIHJlcGFpbnRSZWN0LmludGVyc2VjdChtYXNrZXItPnJlc291
cmNlQm91bmRpbmdCb3gocmVuZGVyZXIpKTsKIAotICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBz
aGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCi0gICAgICAgIHNoYWRvdy0+YWRqdXN0UmVjdEZv
clNoYWRvdyhyZXBhaW50UmVjdCk7CisgICAgaW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93
cyhvYmplY3QsIHJlcGFpbnRSZWN0KTsKIH0KIAogYm9vbCBTVkdSZW5kZXJTdXBwb3J0Ojpwb2lu
dEluQ2xpcHBpbmdBcmVhKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBGbG9hdFBvaW50JiBw
b2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0
LmgKaW5kZXggOGJkNzk1OS4uZTVmNjk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKQEAgLTUxLDYgKzUxLDkgQEAgcHVibGljOgogICAg
IC8vIEhlbHBlciBmdW5jdGlvbiBkZXRlcm1pbmluZyB3aGV0ZXIgb3ZlcmZsb3cgaXMgaGlkZGVu
CiAgICAgc3RhdGljIGJvb2wgaXNPdmVyZmxvd0hpZGRlbihjb25zdCBSZW5kZXJPYmplY3QqKTsK
IAorICAgIC8vIEV4cGFuZHMgdGhlIHJlcGFpbnRSZWN0IGJ5IGFsbCBvZiB0aGUgc2hhZG93cyBh
cHBsaWVkIHVwIHRoZSB0cmVlCisgICAgc3RhdGljIHZvaWQgaW50ZXJzZWN0UmVwYWludFJlY3RX
aXRoU2hhZG93cyhjb25zdCBSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3QmKTsKKwogICAgIC8vIENh
bGN1bGF0ZXMgdGhlIHJlcGFpbnRSZWN0IGluIGNvbWJpbmF0aW9uIHdpdGggZmlsdGVyLCBjbGlw
cGVyIGFuZCBtYXNrZXIgaW4gbG9jYWwgY29vcmRpbmF0ZXMuCiAgICAgc3RhdGljIHZvaWQgaW50
ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCosIEZsb2F0
UmVjdCYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104597</attachid>
            <date>2011-08-19 17:04:15 -0700</date>
            <delta_ts>2011-08-22 12:17:23 -0700</delta_ts>
            <desc>last patch plus image results that I missed</desc>
            <filename>7600532.diff</filename>
            <type>text/plain</type>
            <size>22688</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3JlcGFpbnQt
d2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWE2OTIzYTgzZWQ1NDZjMWE3ZDViODBiYTI4YzYxYTM0MGYyMmI1OQpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMTc4ODEKemNtZUh2WEg9Nn1fYikyOCFIeUZJNjtLMzMxNHU4QDZjT252
UWJJfFREbnA0UkFWZispTWpacX1paUQxJTB3WXp6CnpQKGxsJWdjYi0mI31INlI4S2goZ1FiSXk8
QTlPVXtafS1FMHQkWGtMQChJPmkmKU1na2VSbG53eSVUJWMrSTA2JQp6NTxkd0UzR0Z0IWJtNkx5
Jj16U1NxME5wdndnRHJWeDl7RXB7d01eUUkwbWBqXm1PK3syS3goWHlLOCFTc2pHTisKem8kKnJC
KFlmS0s/eEYzZTxEdXooPTd4dXNqKyUkdCtzWkB0MDRrQ2AjPlNWO2pFJHUpQmo4Pj5leDU9P3Bf
fWVxCno4fjUkSWUzMTl2R3cwUkVJOT4xa0l9TDZvMSRmdjc4RTA0ZklARVBMZWJUSHNifTZnQy16
QnM0I0JBaU4/SVVxOwp6VHwmdEdiXzRlSVRfWjhAdTtrc1gyWEN5RHtDMz1PPjNDJnNtYiNVXj9I
MWZ9e1d5RDBOMWoyMks0a3x3XiZNMisKemQoaDYtaFZZdShMT25Sbis1fG1mZTQyYUhEKCpoV1Qr
WTtKWnl5JUx0WCRZNSszRldHMk9scnl4ZXNKTSp8cTxsCnpCaHBRJjhaRX5eTFoxNCNeYXFLNDc+
czQrc0EjPEl3blJEPjNoJEtpKWBxKUJlfmY9NWxqZnphVlUpU15ePilIfQp6VTVpPkg/UjF8SDMl
aUYmKEZkdldheGFzVztgRUE1dH00PyFPdDhDX3sqZ2spdXdid0xOUyg/bVckYig4cERBd3IKekY4
dHdgbHVwRjBjKUhOUVV4dShsanB1NH1aYUhkQktHJXBtLStpS056ZyMwQEYzMlorKS13fFdROCp4
YjxWMXRwCnp3SzZxN0FHKmt2Kmkzcmc/Qn5uTHVreklLPlN+YU0kPVM8S2dyYCpxaSVTKzRLaTQl
NWsme3hrUGloenhEaCM1SAp6YyNYQDhoPSgqKEA7fXBtTjxKRis/M31EP1BiTzJsM3VOQjNnal9N
KWFfUml0Z2QtaiZLT34qc2J0QldnckQoK3gKekIhMWxkTVh5aUxINTY4UkBhKU55d0FteDNwJmhW
MndOVEthR3EhZj0xMUZhdkpDeEF5XkYyYiVeV2lKQVJuYiMqCnpTa2NWRz0tP2FxJmpVVmM7Yj5X
aHtmazkqVDtWO1dSYX1DNGNHfSMlRzhDKnllezc1NDI4O0JscnEwUlVLSCN7awp6dUgreCskfD04
fVowP0RAI15DJGdObkBxXmlCVy1JZ1dfRDw/JCNPRVVkIUhUazZRZjAjcStJKSpwRjM9b3BQRV4K
elNZPCFkVlpGYUJCRUshPD9sZ1ZFTVJ7bUBaaGU+USQ1cV5wUVlDfjshZlVaYmxrajh6R15zVGl6
LXIqWC02JGtDCnpePzZKYFM4PHhJP0BPd0NSJmdnYWt1MU5ZcEhMKCFqOyZ+X2hfdjV2YHA7K1h6
bkU3QiokOGNzXnwhXz5ZKXhWQQp6fDVZVVh3PSVgcCM5fXZ4JDJPO2JmQGtjNFZzQEY4VW04KCpi
dkFLIU9TU0V3RThQYyUpTEElbll3R2FZbmB0RjIKenlLUFlNPTY2VVh2OFFVbSlTYSl3cTJUR0Mk
eD9jYEhCbWB0JD9tMjR7eHxDNDRENUBeS315YiZvOWchIzU5SVh9Cno0Tnc/VnZgRlo0P3pXZFFL
TWxWQTlpfVFJQnJSbGk7b1A7Kk98dWs2KiRJYiVaNjc0VlctOWJhYChyeDlFdiprKwp6aVcwdVd7
VXtkaXJOcFF8QkJMYTxeTyo0WTMmIyo3YVlsQXVjJTx7cD8qIz8qSGo2cH5nfSpRKCVgPk8ySDcr
fiMKejZ5MHlFRHs3TWA8PzRxOy1qRmVoNjU2eWBjKmowenFvYCkxWCEqUXdMP0c+bmdPWVcmYzE1
XnBLPmFmM098fklBCnpHUmFXNkBwSkQ0bUtQQH0zVml1KCU1e2ckNXwzUndCcng5d3FKKkw/Z3Nx
e2hjPTwwQnt+ZG1uLXo9aXNARzVpOwp6I3tlbGV0eFR8VDk5I2trNmE2bzM8Mz98NT9ZYHZqQ2dS
Xk10V1QmMFUwUnNgKy1JWVZwMWQtfldmN0g/dnklRD4KelpJckVaeGlJcF8xMH4wKVgrSkR5eWZk
Z0xKWk83K0I1QT1YcSVTSCtWXnNjIXtyTl5gWi1VZTshdXEwMFFkb041Cno0aGw/PDVrfXchPkor
YHQpc2d2MXQpQzMwZDFFYG0qK2lKNiMqaFFBVWlFb2BfbkJ7N2ltbiNVLXNEcjlpI18oOAp6QEVQ
QXR5VzJ+TUdUUHQxKnxnYno9U2AjY01UTEhYYjlYcnpaQmQ8Tz9NVjIoVE8oKEhVRGNseTRoeURM
ZzVFfVQKeikjPT84K3s0P25zQkpHdz97d2IoS0NRV0F0R2FaaFFzTV56P0xURm97Pk48VDFHVkoy
PXFQQ2BBZHZNN0krb3Y9CnpaMWktOF9MaSRCTWheJUM/aUNXP0oxTiNtQEoqRF97PGwjRmNoLUVC
OzRkdGphV1VHME1ZQFR1aX1iJWR5ZXpDUAp6WlNxPzJoeDxQKF9CTHVKZHN6NX5jP1VQYHpMYSMh
O0BjY1JBNG1ZLSYmcTNWYGVCfWwoWi1oa0ZMT3k3Xj4pfHQKekQ2OzJWZVExdFFiZG9TQj1kNCFt
clRnRXN2Jiood3s0cnxLPGVLMVdHWWBJdlFpc0BeP2YpKGo+NGowLUphVThnCnp8TlEtR3F2ZTNo
d28wP1JEd3N4QmMpQlVXK3gzRlVjYWVCJTJGT1Q/PWFZa2lYe2V1VzhxcHpRUnxLP2dVTnpkJQp6
Pmo5QSFPdUw+Nz0+NWkpSG57WChCdW07TzlgP3paam1AIzVAKXNZP2JKK3tlNlNNfWQhPytWLXJh
N3ghOEVTeHMKemVXa2s8JnxMQGI1NnxRUE9BUk8+O0FYS1UkO1pFJj9LM3VqeCEwUk1lb0Vqa3Rw
SWgpMVEpKiR4V1g9NXp8SHA1Cnp7cjIjP3pjZmsjKUo9fGZOPGxEZjBrOG1GbH1nVjl3Qk5ufSst
d0tkVHJqTyE1M20zV0MyQFpVWHNaSmo7NkcoYwp6QUU8aDc0JWtnXlg3dUYyXiRFdGI1UERhSmFi
cilgeDZAWHdkc35iQTdCaGpoK1hQczxFaGVkKDE9aHw5YUhMaCYKeiUoRGVYUWVxIXFUUTZUdzVP
fmBeKV92cCNwJCM1PVFePTxxYTxyaSQ4KW9FeHooUSh8ODExPCNaUz4peyVga1NTCnpMeFQyZTBe
QVR1PztfWlFVaWpCKXVhcmxyTiQ9U3pATzs3dlJ6X1A4ZSpKTysqSm90M1cjWjhIUCM3UkwzfFJI
SAp6aX5oJWRuNThiQUBaSVZJfE5KKSt2NmR1VDAkalVaejFmP1RvI0Y0ZGBRSUc8e2VmSG1UP3pV
SWpJamFze0opMWsKelN4WCtJO0U7P3g/K01jWVdMVjN7NFhjaCEpY1M1QGA7fFpKeTBvVHxEZ2JZ
eWUqdyhnSyZ0c3VMR2J6c0shTiZVCnojXlQ+Kz9mY14qNVdISHc2Z0MkYCFJM318eWdfSiNOOGh+
VGg4K0RMc2ZlfGA9dTR4bDFLSl5URjFHQVQtX2gqcgp6PXxGKDtDVk5KSmp6dS1eMFBeK3lgKnhy
RXU1KGUlWE1vS0FqQ19+P1JnKnEqN2w3PTlGQmw3U1JyLXUyO0ZgS1IKenBhTzs3NWlrOThsbFoy
MGArZ1lPQ0hnak03Wk5NPkxwJnExPEVHST9CWCF7KWhUWl9pVlBqanVKMnRyV1JWZT1SCnpXYjBh
QWxwZGVFNVlycCtAdHpwU010YHYlRitQZiglRXVfNyN2ZXk/WDYxJj47UnZFT2RSSFcmd0dzM1Ra
X3FMJgp6V2Mrd31Jcjt1Zjx5PlF+ezRLfDVvTWd6ZmZ5SU12V0ZJRjFTIU5YJmBzaXpwVXdpRVhI
USMxLURGZTt0akt7NW0KemR+djJ5NWtZfSVNPz04WUlsNUokT0MjUTU3KzU1Rzt3VXE7WkROVEdo
bHd8Yjs1aWgrY0VncHcyI1o1N0pabis/CnpzM0QpLUJqeH1fKEklKUpEUkI9WkA3eD9ZNT5Bem9m
e2Ztb0Urc0RTOFl3aGZRQVY/Z2dlYG1aVWFmRSRoVWt5Xgp6PDl5ejdvVCQ3dHhjNldMR2k9O0J7
RyRsV3VAIXllZnh7ZnxlTGJFZCtgMkQpQStZOUNyVFJydWFqUH43WFd6fSMKemBEKTlySCNTI2pO
dFpgMTdHdTBtTXNnPm1sO0BmX2JEcWRzSlQ5QUg2VWo7O1h5TXUyMWJJVnQyY2EwY1NRS31oCnpC
PnIycnxIPk9GLW04X2o0LUE2ZGBPP217VDhQPzBkKHdlKD47PHRrWXlGSXU2Z1grKjx3ajtpb0VS
KjtMZUdVZAp6KTZvO1RSN3Q9emVhYG4zV3pgS2UmTHp7YCtZUTlGV2whWiQhfSk4PSUyJD0wazhV
bmJzMU0pTWA/PUAkZ3RlYUQKel5yRSVOVTx+cStjdW1DQGZVZW8jQ3JpWG1kKHZlT0JJSCpEQyN8
TnpHbHxlXiRlVH4zQXRgdHN6emdORXJSb3wqCnotcyV1dT4yVERYRkQ7VDNwdlBPODZqUT09NG51
d29RbD5+P1pOJHEqPHB6dCg+V2NKU15wPUwqaVB7ITNMI2BvfAp6ZHFiVCQkMmg0R2pMPENOQWZr
MEQkeTU/fHFNYHEwYHg1Wl94Xzg4MWxlNFNhUzd9b0BZZ1FeYCRPWU5gVVJQMmgKeihRWkxYLUhU
cnRecC1hYlclZXxGM08odnU3T1dEUWAmQTtlOD01UWZIYktPR1FGX3l2Vz9+eWMpWE1UWGo7S0Uy
CnpaTnlfP0BaaFlaSVJoTFkqbFEjVElNbE9uZmNHJCRoe1hZLUF2fCYrT0w8MXVCVHdXazk+SklA
JSE2dmB1WVU7Mgp6PEJUI3VLRUwpI2RzYUErM1NNK2YxeHpuPiliIXlsZlczV2shJngxa2VrZUd8
VHdIQ2thVXFCNExTSV9PXkNNNmgKelBEKW9lfDIhfmtYdmhYbihoKmUraEx7bm08dlljaVFOKWM7
RXtOKTFAPE1xX0hGI0dqMylHZjw+PWZuJlZRQzFACnpUViFGWTkhTiFvMktISExEWjJsTEJ4JmMl
YE1nST1JcXltfjkkVi1eXk57bCt6P0hycHJKUCtKM3U5c2YmMF5CbAp6UkFIXzltZkA1QEJzJTVC
IzlDaC0/QHp0Ui1oKHs0NzlPSG1vNDQ5dTJwV1FoYEo/fDNOI3B9N21VajgoYmwrZ0wKekx1JjBi
dkBOQCkheVMlPj1zO0o0PDNBUVQ0JD1ublRrbG99QEx+e0M9cm59QStHM3xSa0J0NlMzKmZEUWFp
dTR9CnpKZmJHRyghNHpfRlpLdiN1ZmZXUDwxb3R4NHV1SUZecmVpaE89eyNsND0/Q3NYdWAoYDZf
dlg+VlBEOzBeV2YlYAp6PmBoYXE4M1pVdThnaSFiPDhGQkUtISQrKFdRTUs4IT1WUGMyMnN2cXBr
QEhfaHNSJkpDUFdBUD5jQTg0dE1fTzYKemFgZHstZmY5V1ZWSD5CYzs3K2BiSEU8YFZ5Ujl6YjBK
RWxQdjZTfGp6czV4S3ZGQUVSP2xIcHxYSG1xN3NgN3xnCnojUWVfPns1ckphPSFtNVBGckJ9VSN8
SDtBJShyQDB7Iy1sPEBTUTczZV8rVntJSEF1KF4tS1dWYGkkVmcoSHljXgp6cTs/KWhyNWdeJS1u
NThHeT83IUtJbWpyaHBLfVdUezlNWV88QFNoWS0xeXBEMiQ2NmRZTyRyVlhkN0VqN3RgcVoKekVe
fT9KVlN6K2cqSlJLMTJlSVdAPExCLU5ifSUwemFQT3gyM2RRbytVRVhPMGtvR2IlJVdBYypWUXxE
UiVhcmN1Cno1YWFKWU15PnhlPnwpbXpUdjVfbGpFP3V1PFVlJjsmQzVTeGkpJkd+SSR5MityX1R7
Ml9lRGtyeWs9fjV1dHRkPQp6YT9KNEx4TyN8VFBZWSNqYlolbDg1QEx6XkNoP0JmZCQqbXk9ZFpN
Q0hDM3p0NjVIZXc/eSowYTsydUooJCkhRCoKeigjY0JsbEl+Zm9JYkJ4a2hPKEVBbis0az1jM3hA
UCRfeX1HbndyYm8lQl89WDN8VCg9Y2NqRHZASiEhTDU4fWwxCnpCWTYwdlk5aEI7LTxqa1dSNUxm
MzEjZCE0QT5adVEwdzJEd1pueT90YmVLKT8wPl9udVNxT1hDeE1wPlk0N0t8Pgp6a0o5aXJJaDY7
Y0lLeXA5NT9YUCtlKFdYZkkxVTJrXjY2RjRDSXl0SU5+WXBpaDc3clNVVTlzaUp1VXFQdGMjclMK
em5CKDMqeCFZSHcqTiVTfEI3V055biZuc0JFd2xTYG9yS0B2MS1iRiR6OVJDfkhtbT1nTV59cihu
fGcmQXAqX3JOCnpoPUxRbE9fcHI3QnJBRzwpYS1VZUQ0fmBaPytGI1FecV94VilCVGpzT3Z5VXgj
OVJoNzdvWUZoVDw2bDFKWEhDWgp6Yz5WLU5ubnFzYXI0NVpPbVczI2FKQHFrU0omRlc5cWcwKihj
I199QCh4NVBeOH1vP0hTUj4tNz1WPXRmdmZhT2kKelZ4SjJRJWk4SiR2ZF5tSzhUaX0qdFJnJGRK
ZktnUWhJNlVEPlVQcm9jMXxZfVhFbFJURVlMWmRMTSpEb3JBRHxmCnpqeDlIWjBII0slK15we14+
NjFzRXxITnRjSDFlX2dZZmt3ZVB2T05iZmchKThEVD5VZ3BEYnBYJDVlTkNXJDdXZAp6LUVgZjNm
TE1AalE5QGdpOT48UT9rKihUeyROR0FUNE4yen5xKjUqVGlAY1NXNGs0ISNgXyFlPkx6V3xPPDJs
b1IKenZ7fEc1NV9mKXlRS08mbGJtOCg+T2JgMmg0KU5aZkhIYDwoRTkmdUFgWlEmc2AhPlhwNWVa
XklQST9uM1NmWTY9CnpFZmM7bCZVPTxLckBfMTNmVCtkJVBfQXl4KTs5ck4mNXZ5ZDQ5Sk82LUlP
IS1KSnxPUEMpPUxtWTFsTTdMc2Nmegp6TDZVS2BCJFJPIypQeDhpeytXcmoyfCN3KEhXOTItbDJg
TCVVMjZPdm1oKkY7T0wmemJIMDloMjcyMnkkbUhZY14KeihraUJeSmNYUWpSZ2Q4NHpnNjZIST1P
NDF0QkRKIXpjdSUpNGVkUjxkP2hnX14yb08kQTUrbmxhUi0qXlZRPTZCCnpmOTJsMFA3MCMjST4k
flNzJHBxfHhtZUV8Y35YUDdZaDEzVDY3XlY0KXlGdE48QShHIzd1X2R7PDM8PW9AN3Zmagp6cl47
ejtKeExAe1ItSFgpREFJJGEjVCFNK0NrXiRVcTs/c051LStIbEtnT1l7cmdOPU5VXj89WmFNXmA7
U3YqJEAKemlWejx5eGFXWnlGSWVkYHBqQiVoXj5BRWJqPy01PFdXOHVNeW1OUGhRVTJ+SnM0b1lK
ak5oKDVIZHRkZ2NFdyVpCno2TDY0ZlJDcD5iQHk/OCZYa287Xm1rX2c2JmN+PHxBOEhyaWE0IVNp
PEZIbUUhY3EqK2pOfCRgTFV3bylVIVU0LQp6cmNgeSg4Ujl9O1d2JTtlPUlvZillQ35LXkQqZFV0
ST5qVStnZz9xO3JicjxSI1hEYyl7ZEQzVWtEc1FoS0swWUYKek5ScHk/amZVSWlzY0hJTD9NJE9U
NGIhbmpISERHSzwtSD9TcCo7NmtBOEEjKDRTS2JZPF5xWGdCeGVCQGwwekstCnptNU9+WHdmNDhF
bjhkU2VOO31nKElWNTE9YUkjOzhqamJhfEkqNV5vcyNhSHQpbkw7IzEzazAtQyNEbSFJTDVvYAp6
Z0ZDfkwhe3t6R3ZfKDdBUUlBUzEkKmYtPCpIKmB9ck4/PUpuRUNxUEYxWSpQKFkrJXpjQERZTDBv
JUxMbXo2VD0Kej51dTwjXk5QRHRoRkM1RW05KXN9OFJYa2hpcnhabGljfVRuP2slMjx8Tjg2flpN
QFRrKkolam5wZFp7fTkyLXhTCnp5MT8pPTBhLXYhUWVuPWdGanQ9KEwmbi1FRXB9YF5GKkpjOHJt
XmxjejNWWSNYM31OJmxvK20mekJfbUUzSUYwSAp6UCFuWEJWSDVjdzdocHt1diU2Kjw3ZUQ8cHFM
V00wKy09MnNAJlgqbTsoPm9YNUg+K050YEhkRlBVSVhnTSg0RikKekYzUHllR1FrT21aTzhiJUhu
QDAmJHJySiFsVCFUSlk8YXdFTTxsTDBVQnlmXnNmfWhqQ1FCTlh0S2tgbHQzOSU1Cno/SFl5bjtu
IXkyRndPbiE9K01tQW1aWUlSRT4lbSVyeW5jSjsxMEBKUz9+c21TdkVXNW0kQEJpT2c9aEkjPih0
ZAp6JTYjdmlSTVZFJik0Pm1pSDBLcCN7Xm1YeiYtUFFiPGk9YFFgQT5BdUMhdjNwX1JfZzs0JFYx
KztaT351R0FAPjYKeklnQTJjViFHa3dIZ2FvMmhnTz5qem1fO2soSmNffiV0c2R8SmdgRnJtbTwp
OFQlODBoY0ErRT81PzdHWUVKX2ZnCno5ej4rTEA8cEI3MmZ7TGBjNVVfJkAlYG1UJH04RjxYfj9Z
QUxMY1pkbl9SdHpENzV4OV9nISs0X0krUlNkKl9gcQp6ZHt9bT0tclRxezRDPHtQRik9ZXpJU0V+
XiV3QXBMY1cjIUNkbTI4T1l2UF5VYi1jY1FIeFNWQm1GQiQ5PC1JTygKeitVTmNJbFY+a1Ilb2VJ
WEpzNWlzdEtqYWIwIXJiZlhEQlFBQihGTnBKNHYxX1peXz1HJFlrPjUzaS1LdSoxSjBtCnpqOUo0
NiRCWDgqI0xNMkpEYWhAI3N0JkojXmVvbyE9bDRZd24pKUBSQFIjbzUzeDhEam9rZUdhI0ZNUiUl
TF5fVgp6PEJufmxxNiZTfUZTK0BXbktWcC1QOSppLU4rblc+bGE4cXpoJUhVenVUaWY/dmdIPTYl
fnM2bT8tX05wIXEkWXwKekNgO0RpI3xqbClSekdDK0t8ciFVSFBkYlJlZHN6OU5XSEB4NUlZNXho
M1ZFblZ4UUJQQGx9VntZMGwmVCorMGA8Cno+QmN0e1g0Qj9BcHlJQmVRY0YjK1dGd0kyJiR4RVR7
eTx3N3ohOEYkeXcoZDB6SkIqQTFYI2NFSDExYWNaQSpFZQp6JldBTUNDQk9gcGZjM0U8dlkwYWgr
RWMoTGAkbj1kekNDSjJISUQpN0ZPXlhiMnh5O0stPXVEc24mMlNBWE15I3sKenAxOGFnJkBLUXJZ
M1U5MzUqI0U5U2J3QkcqJjx5KWR4Sj9FT3hscDc0UiFuUHZQb0BiRUJQM3hnISleZUdRSl5uCnpv
KjsoZCY/OS1EWVhFRncqPCh4JDh2NDZsIT51ZngrPSEoU0xQNzJROFJRTTRrUjk8UyZKMFprUGBy
SSF7SFpLSwp6KkpqaytibGJaZysrMHVGRWJsRzs8WXxKe2hZYXNyJFFRaUJXYkxKR0Ehcj9sTGhN
SVJ3OFJwRWhnQHJGS05TXyoKengzYjxFP15PKF9uPF5tdT9CRyh0U19JZHIyRElYNHV0WlJne18t
ZjZVQ1g5dGlEayU+QTRqYWxjejRBSUdqYytwCnpwO05LKXhzR0V0R0FYcXpDO0g1bk0yPXw/dHMr
YmhBMXolNEtUMjlDUVVQIT55TT9lWEhRO252enxUMTdDK0tHdQp6bXA5IVIqYGNAa193JV5KMGt0
PHFqKG4tSFpgLVQpUHhDfUlJaVVXPCZKT1k0KUhndn5AXyU9JShyMn5INWIyWD8KeiZIPDM3WSEj
YDxtNSpfeCVqO08hKGolPzArSUJ9emlAcWRCWDVEbGRFcW9vRWs/bjIrKDdhRyZxdHpaMm4/fUZq
Cno5Vk5QUjJUKytqbyZFfHdNOGRXVC03dHFKUTw+QlJ0XjJra2lPbUY8czhtbjNTNE1eci18cm1C
JHQ3JklpZys/Rgp6YSZeayRTO1ZLOGc9eXVDRHpMaH1LYVA2YlRpZCt5dX1iQlJzWDBUQkpsPTR1
aFBPfHJ5OzU3fSU3fWVWa35ufWEKeiE0cW0heC14UFlkMXprcEtNJEYqJUFhISYpeG50bERmKWlM
IygwNHRFTlZ3cHUtPlc5SHlWSChgJVVaSHl0OWQlCnp3ck5NP1FPJTNZXn5kI1MpSzJYIXNeeGRP
PFRCTl9rSlFEaj1+LV97R1NxUXFRQiFQYGRnR35BT0w9SyhgKkFaOQp6SlBzMl4xeiFUZSNFYUU2
TjZfc0NsKSUyWEZReilRK0N4U0krWXIzYjl7YUJsUUVjRlZMQn15fll3VmZNVDNtTSsKekdEfUJ3
WSNuWHZRY08mLVAmIUghJiYhVXpHJlo5MyRjQTNLSU93ZUc7KmBjN25pWS03KjZFeTNTRH5zX0Jn
fnY2Cno0Rk1SOTd9KTNNZn0lWWs5PlN2ODVmKk9VVmFjfGpKMUNwXnp2LUBYakVNWmVqenw9STlS
VHZ8TGV6SmhTIWs3SQp6N2JzWGxEPDFZMCR5TE9RNTgwdGdEfElYLVJiMT8xLW4yQjNMSXdnY2xk
PkY0PilFUEgmfClfVCN6RHZhO1pQbFcKelopWkxxKG05YD1VZz8/OGY3O3AybEVUdGZwKUYrZkx7
PGtRbWxLRD02QSZ9T2lHOGp8Jkp2JDt6bDQhPz50JVo7Cno4M3xoTGI4Z0pmUSs7QXF4cjkmdkxJ
NU1oJXxNRTRhSEVDJDtBX34mOVRWJEZtODtTeFdyPj5+M0BGUFUkRjcwawp6QzxBMmIzaWszUkV2
ZX14dmokdVBjJUcqM15CNX0+X1JuQTJGQDNXNUU8NHNLY0JgeTJsPDBPITxRMTV7YTBpNTsKel8p
YHBne0lGNVBlMTg8MjQoXjd8d1cqNiNhfXxjVjhJY1dZSGc0VSs1VU1Qe0F1WjZuZ21VTnJ5ZVhE
NkopKD9mCnpEMk5jPnY8d35QTldXMVJTOXheQjRacFRUIz12YnhyPm87fU82OT90V098YSQ7Snxm
cXgpIUBrU0pQbzImPW93Kgp6YHQ8JF9BZnA8JlQkJFNEYXxZcVVoP0wrV1RJRG4+Q3YlaH41THt8
UjdKWko5KFFgNFI0QiZ7WCp6JFR6Y2ImSkgKejZ4RF5sKmFvQCpZOGIpUndtO0t8VExxdTVhfFgl
S0xYSldfSmRmb3VSKV94ZGV3U28mODxaLXBDR3MoUkkrSXtGCnphKH44bHNvTmlmVD8/JSUtYGtp
TStJUHRGVCVNdnhuWXQ9dTdyaEdIenUqRjMtdzlSfD9SaXY2azNRNDYlNyVVMAp6RnN7TGAhKkNG
Pzs+aVVNNlNZUUJYaSE4a3QyK3p9X3R8RnF6fE9oanc3VnhVOTBqWlBwRkN8KClXV2xkX1B1R3oK
ekpAbjg5YWU0dDBTWFZSNmROYHo7Z3xIMHJ0PzFCKzh8T21vVnlMeE5VMExEdnNNN2twKXVSVjN3
OTB3ZlMjKUtrCnpYKWJadnYjVHFtS3Z2YEFWeUF6MHI/K01zI0RNNHtobEx4YzYoXkxjZGZ7ZSFm
WWgkQWl9c35FPUZgNX4mfHJ2Wgp6KlIjPGlCbGlCKXh7c0JZTmZYY2Npbm1GM1EleCtFOHpFZWVg
USl0O09ARU9sV2FFKyRnVTMwMDBFXjxhSmJ6PVoKemtscFU0aHMyYkVVdHIoNUUtUnktTD9FLTR6
MmRFJChSbk1mZUREflNyV3JTO0MpVT4rb35seEJPflp8WC1senZkCnpUR0VJZmJzVENXeSs9SGs+
SXttMntGQ09Od2JCe1pJZVRNUUp5ZjxwNzBSOD0mRX12OHt3ZHY+czhzaGBjRHYyTgp6Nm1tY3Bn
QE5QKW5Kak91RWkyKUhEbGRJdXh5X3VMUlVPUEpHI2stZW9ednRQenBZN18oTzNfY3wxYnQjOSEr
eisKel9JcFleUWE/eGBUbVokaFRYalUxdjQwVFB6KTxYRVFYMFh0WXpAekI7LXJidCpPOFFaYktT
VXF6fFZSdXBCJUU3CnpzbjFsS09lM0l1WnIzNFliSFFFcjE4NmdzSz5aYjZ2ZXZTZ3hrRVVRMCZj
Kkc7UD5pbjF1SiMjYmwjUVMzJW5OQgp6PkkwbWpoVSUpMylWNntsYjEtPXtWM0k1cTY3UUl4aVo7
eWtteSlfWU43V31WO0FITk0mM2ItT0ZGTVRxZDJXdWIKemYkLWM2RGUtPnlTblZqZ3BwTDZ4WHJ5
ZC0tTzZkQzlHIUx8WlZzJXZAY3dOPytTJDFlPC1MQUVWdmAtcCZQcFo8CnomSmdMZUhxKnhMVmNk
KVNMbW14WE5lcV5nK3V5Q0pMbzd1VStRUnNYa35ndHhSYjFLb3tIay1TY30lakpHb18jYwp6ND97
STVHK31MVU19UFNPaztHcUFxTWIoZnJqYCtYNGArMiVEa05IIUZTX2dmSnp3M2xIbEg5dHl1eDYl
UmQhRTQKej9+M1NtX3MtSXV7UX1QWVROJkxaVkZ3OGg1bz11JjhnJXR+TGIkLUFrezRDMkxHfmx+
YGNUcUBZQnxRRDNJS3U9CnprMHB3X2dYc0E+Q3NpPXlWNVMxSSt1IVl5U31ITlFHaXxGSz5tJnc3
aT02MUdXZndISHo/T1FyU0BmPlJ3Rm1eeAp6Rjg0SjRLfVJoY1FgPyhPdDVWO3xoVWFeWHdXTSlr
V3Q+U1RXJCFsXyo1clJ8NC0tWXwjSm4xMTxJJGRZellmS1UKemZfRUw5ZFVUelItJE4kZTcrTmR0
bVg0fShyaGhVVkxQeXZed351JnF7ZjtgND5UY0wlcjZOVWpifnt6bVFSVXAkCnp1ZWVhRUR+V3ww
bWdAfnNfTi0mTTxeZ01Lb2t3V3cxODd0PklmZ3oqJnhvaTsmUTEmfnNNTzFASX4ta01CfEstWQp6
bz9vN0QqI3N2TjRQSFQxOX5iISpkPVVGc0Y+WHYxbUtwMDNrYVcqZkMqPXkxX15kai1JQiNvayh9
Kj1QPkhaMGsKekRSM21RQ0xhPS0zWkpZcih6JShaWUtyUilqZ0BfNSQtWmI8ITNjQ0NIbXV6WDlx
U3ZIPVhsT0xBazYwaSt1O2hHCno5OG5tKEd0VXBPeUhxeVNSLSNOI0RnXipQSVVKQWktY1o+QnBl
cF9uM2Y9bEJFU0ghYVRoQj1wZFpDRmpzOEp6aAp6SlVUPVRXYzZxaFViR34kZCl1aUlCbDNwRk5o
YEc4IW1sVzFSfjZ1SksrNyRNQ2xNWGl6I0VPYnhSeSU2djEhSD0Kenkmb30qVT9wfSlWdDJzTnpG
bzVBe2VAXmYwUHI1aGtnWE9OUmpUfGB7UWw9aCNBdmw8NW0jZG5kWUMoJk8/c0dsCnpnb3w4VyVo
O09VP1ppXlJvT2pNVUM5dzR7eEMxdTRuKEd1bT01LUo1e25CLUh0Nj8pX0ZPM2lIPFJeT1FyPzJB
fQp6SiR5cUNCMG4pKEo4V3ImMEpCd3N2QlVyQClUMUlQMkNKP0tgUEN6ZExJR3JuZiktbkBKayt5
WWM3Q3hZKz13TH4KenNCOCE+cFY0WWZ0SEFFLSZaZ30zWChqb3AjSlFxUkx1SiNqUHA5amIjeGU1
JTlAd31SUUoxSmk3XjBNcWpzdzc7CnpJS3RWQDhSR3pqY359MHp3TDx5YkBnSCFeJHxWb2heakV+
QWBXPnJ0QExnd0hYQTV1flI5UG14I05CJmZJUUw3Vwp6TEhVVXFSfWc7QVpjcjc2a2EwJGhIczxs
bWlKbjhhWm9aKlEtNnlBfTBobi10Ky0xO1AkVndYZzhiPH4mantNdlQKenNxJDYxcm1tI0RtKVpO
Q2tYaTRxMWdIKHhwJSREMXIrVGpCRHAjYm90Knh5bFN9WV9uaCshTn5rUURyM2N8OG49CnpTSGlH
WC07eGlJPmwjP0Fid2w+dTczKnFRRCZnQ1FCKEUrWndTTkpWTnE3Wn1LYTlOb3RZR0ohNyg3IVZL
fU4zUQp6MSFySzxhcm9xMWM9bUJZY2M5VG1HNCkyaiFBNEpwZn1qZCRxdXBlcUNGajRZK3Z3ZiMo
QFZmX2E0NCsqRjJNaFUKekNBZU8mOFJKXnJSOWRePFl5YUBoVENVaEVUfklYKHBha3xKSykzJFMj
anNHPzIrdnBJYW4me0c1NnVKRGVge1hICnpST0RAUDgkNT14KlY9dDR2JVFVVjwja15JOyh0LV49
cTx2Q3ZgSFgyalJVSDUxTGh+PGwkRGxBTkZNYDQ3Kko+PAp6QjZISjc+Mmpee0gtSH1LeVN9bHRf
YT9PbT1wNUFDMU44ZXAodTFEKDQmTkpIdyooT05ednU+RCs4TTR0MlZpJVoKekxAQCFQendnamBR
KCFeQypWPnR7dT0/O3gwQSs4VkchZndMIW1VNzhWRWp1VEBERD9wSyEyZW9EPlVnbDZmWUY1CnUw
PDtDWHt+ezZoIV9YdCg0ZE1UalpBSjY5bSl2RHFnT2BHV2YhfUhvR0JkSGhQPEg8TS1Ud3ZqY19E
b08KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9j
dXN0b20vcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1NDdkMmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDYxNgorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4
NjE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKKyAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKKyAgICAgIFJlbmRlclNWR1Jvb3Qg
e3N2Z30gYXQgKDI4LDgpIHNpemUgNjAxeDY4NAorICAgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0
fSBhdCAoMTU4LDEwOCkgc2l6ZSAyMjB4MjIwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDE1MC4wMCw1MC4wMCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDAwXX1dIFt4PTAuMDBdIFt5PTUwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBd
CisgICAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgxMjgsOCkgc2l6ZSAyMjB4MjIwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW3g9MTIwLjAwXSBbeT0wLjAwXSBb
d2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9
IGF0ICgyMCwzNjYpIHNpemUgMzAxeDE4IGNvbnRhaW5zIDEgY2h1bmsocykKKyAgICAgICAgICBS
ZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMDF4MTgKKyAgICAgICAg
ICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMjAuMDAsMzgwLjAwKSBzdGFydE9mZnNldCAwIGVu
ZE9mZnNldCA0OCB3aWR0aCAzMDEuMDA6ICJQQVNTIGlmIGZvdXIgcmVjdHMgYXJlIG9uLXNjcmVl
biBhZnRlciBhbmltYXRpb24iCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAweDAKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93Lmh0
bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDc3MThmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93
Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGh0bWw+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogMTAwcHggMTAwcHggMHB4
ICNhYWE7Ij4KKyAgICA8cmVjdCBpZD0iYSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB4PSIwIiB5
PSI1MCIgZmlsbD0iYmxhY2siIC8+CisgICAgPHJlY3QgaWQ9ImIiIHdpZHRoPSIyMCIgaGVpZ2h0
PSIyMCIgeD0iMTIwIiB5PSIwIiBmaWxsPSJibGFjayIgLz4KKyAgICA8dGV4dCB4PSIyMCIgeT0i
MzgwIj5QQVNTIGlmIGZvdXIgcmVjdHMgYXJlIG9uLXNjcmVlbiBhZnRlciBhbmltYXRpb248L3Rl
eHQ+Cis8L3N2Zz4KKzxzY3JpcHQ+CitmdW5jdGlvbiBzZXRDZW50ZXJQb3NpdGlvbiAobm9kZSwg
eCwgeSkgeworICAgIG5vZGUuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKCQx
LCAkMiknCisgICAgICAgIC5yZXBsYWNlKCckMScsIHgpCisgICAgICAgIC5yZXBsYWNlKCckMics
IHkpKTsKK30KKworZnVuY3Rpb24gbW92ZVNxdWFyZSAoKSB7CisgICAgc2V0Q2VudGVyUG9zaXRp
b24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImEiKSwgMTUwLCA1MCk7CisKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cit9CisKK3NldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZGlzcGxheSgpOworICAgICAgICBtb3ZlU3F1YXJlKCk7CisgICAgfQorICAgIGVsc2UgeworICAg
ICAgICBzZXRUaW1lb3V0KG1vdmVTcXVhcmUsIDUwMCk7CisgICAgfQorfSwgMCk7CisKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworPC9zY3JpcHQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaAppbmRleCAyNmFkMDJlLi42NmEzZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMjczLDYgKzI3Myw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBpc0NBTGF5ZXJDb250ZXh0KCkgY29u
c3Q7CiAKICAgICAgICAgdm9pZCBzZXRJc0FjY2VsZXJhdGVkQ29udGV4dChib29sKTsKKworICAg
ICAgICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdDsKICNlbmRpZgogICAgICAgICBi
b29sIGlzQWNjZWxlcmF0ZWRDb250ZXh0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRl
eCAxM2RkOWRiLi4xMGI1YzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC05ODgsNiArOTg4LDEx
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCiAgICAgcmVz
dG9yZSgpOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6aW5UcmFuc3BhcmVuY3lMYXllcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGF0YS0+bV90cmFuc3BhcmVuY3lDb3VudCA+IDA7Cit9
CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNp
emUmIG9mZnNldCwgZmxvYXQgYmx1ciwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dFBsYXRmb3Jt
UHJpdmF0ZUNHLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oCmluZGV4IGY0ZmExMjIuLmU4NGI1YTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dFBsYXRmb3JtUHJpdmF0ZUNHLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaApAQCAtOTIsMjAgKzkyLDIw
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcigpCiAgICAgewot
I2lmIFBMQVRGT1JNKFdJTikgfHwgIUFTU0VSVF9ESVNBQkxFRAorI2lmIFBMQVRGT1JNKFdJTikg
fHwgVVNFKENHKSB8fCAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIG1fdHJhbnNwYXJlbmN5Q291
bnQrKzsKICNlbmRpZgogICAgIH0KICAgICB2b2lkIGVuZFRyYW5zcGFyZW5jeUxheWVyKCkKICAg
ICB7Ci0jaWYgUExBVEZPUk0oV0lOKSB8fCAhQVNTRVJUX0RJU0FCTEVECisjaWYgUExBVEZPUk0o
V0lOKSB8fCBVU0UoQ0cpIHx8ICFBU1NFUlRfRElTQUJMRUQKICAgICAgICAgQVNTRVJUKG1fdHJh
bnNwYXJlbmN5Q291bnQgPiAwKTsKICAgICAgICAgbV90cmFuc3BhcmVuY3lDb3VudC0tOwogI2Vu
ZGlmCiAgICAgfQogCiAgICAgUmV0YWluUHRyPENHQ29udGV4dFJlZj4gbV9jZ0NvbnRleHQ7Ci0j
aWYgUExBVEZPUk0oV0lOKSB8fCAhQVNTRVJUX0RJU0FCTEVECisjaWYgUExBVEZPUk0oV0lOKSB8
fCBVU0UoQ0cpIHx8ICFBU1NFUlRfRElTQUJMRUQKICAgICBpbnQgbV90cmFuc3BhcmVuY3lDb3Vu
dDsKICNlbmRpZgogICAgIGJvb2wgbV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVu
dGl0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMu
bW0KaW5kZXggMDY3ZDczNC4uMmUxNGFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KQEAgLTIyMiw3ICsyMjIsNyBAQCB2b2lkIEZvbnQ6
OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBTaW1wbGVGb250RGF0
YSogZm9udCwgY29ucwogICAgIENvbG9yU3BhY2UgZmlsbENvbG9yU3BhY2UgPSBjb250ZXh0LT5m
aWxsQ29sb3JTcGFjZSgpOwogICAgIGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dPZmZzZXQsIHNo
YWRvd0JsdXIsIHNoYWRvd0NvbG9yLCBzaGFkb3dDb2xvclNwYWNlKTsKIAotICAgIGJvb2wgaGFz
U2ltcGxlU2hhZG93ID0gY29udGV4dC0+dGV4dERyYXdpbmdNb2RlKCkgPT0gVGV4dE1vZGVGaWxs
ICYmIHNoYWRvd0NvbG9yLmlzVmFsaWQoKSAmJiAhc2hhZG93Qmx1ciAmJiAhcGxhdGZvcm1EYXRh
LmlzQ29sb3JCaXRtYXBGb250KCkgJiYgKCFjb250ZXh0LT5zaGFkb3dzSWdub3JlVHJhbnNmb3Jt
cygpIHx8IGNvbnRleHQtPmdldENUTSgpLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVk
KCkpOworICAgIGJvb2wgaGFzU2ltcGxlU2hhZG93ID0gY29udGV4dC0+dGV4dERyYXdpbmdNb2Rl
KCkgPT0gVGV4dE1vZGVGaWxsICYmIHNoYWRvd0NvbG9yLmlzVmFsaWQoKSAmJiAhc2hhZG93Qmx1
ciAmJiAhcGxhdGZvcm1EYXRhLmlzQ29sb3JCaXRtYXBGb250KCkgJiYgKCFjb250ZXh0LT5zaGFk
b3dzSWdub3JlVHJhbnNmb3JtcygpIHx8IGNvbnRleHQtPmdldENUTSgpLmlzSWRlbnRpdHlPclRy
YW5zbGF0aW9uT3JGbGlwcGVkKCkpICYmICFjb250ZXh0LT5pblRyYW5zcGFyZW5jeUxheWVyKCk7
CiAgICAgaWYgKGhhc1NpbXBsZVNoYWRvdykgewogICAgICAgICAvLyBQYWludCBzaW1wbGUgc2hh
ZG93cyBvdXJzZWx2ZXMgaW5zdGVhZCBvZiByZWx5aW5nIG9uIENHIHNoYWRvd3MsIHRvIGF2b2lk
IGxvc2luZyBzdWJwaXhlbCBhbnRpYWxpYXNpbmcuCiAgICAgICAgIGNvbnRleHQtPmNsZWFyU2hh
ZG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGFk
MzViZTUuLjdmYjA1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCkBAIC0yMjQsNiArMjI0LDkgQEAgUmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3QoTm9kZSog
bm9kZSkKICAgICAsIG1faGFzTWFya3VwVHJ1bmNhdGlvbihmYWxzZSkKICAgICAsIG1fc2VsZWN0
aW9uU3RhdGUoU2VsZWN0aW9uTm9uZSkKICAgICAsIG1faGFzQ29sdW1ucyhmYWxzZSkKKyNpZiBF
TkFCTEUoU1ZHKQorICAgICwgbV9oYXNTVkdTaGFkb3coZmFsc2UpCisjZW5kaWYKIHsKICNpZm5k
ZWYgTkRFQlVHCiAgICAgcmVuZGVyT2JqZWN0Q291bnRlci5pbmNyZW1lbnQoKTsKQEAgLTI4Myw2
ICsyODYsMTAgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3
Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiAgICAgaWYgKCFjaGlsZHJlbikKICAg
ICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKFNWRykKKyAgICBuZXdDaGlsZC0+c2V0SGFzU1ZH
U2hhZG93KGhhc1NWR1NoYWRvdygpIHx8IG5ld0NoaWxkLT5oYXNTVkdTaGFkb3coKSk7CisjZW5k
aWYKKwogICAgIGJvb2wgbmVlZHNUYWJsZSA9IGZhbHNlOwogCiAgICAgaWYgKG5ld0NoaWxkLT5p
c1RhYmxlQ29sKCkgJiYgbmV3Q2hpbGQtPnN0eWxlKCktPmRpc3BsYXkoKSA9PSBUQUJMRV9DT0xV
TU5fR1JPVVApCkBAIC0xNzc3LDYgKzE3ODQsMTEgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3QK
ICAgICBpZiAoc19hZmZlY3RzUGFyZW50QmxvY2spCiAgICAgICAgIGhhbmRsZUR5bmFtaWNGbG9h
dFBvc2l0aW9uQ2hhbmdlKCk7CiAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGlmICgobV9wYXJlbnQg
JiYgbV9wYXJlbnQtPmhhc1NWR1NoYWRvdygpKSB8fCAoc3R5bGUoKS0+c3ZnU3R5bGUoKSAmJiBz
dHlsZSgpLT5zdmdTdHlsZSgpLT5zaGFkb3coKSkpCisgICAgICAgIHNldEhhc1NWR1NoYWRvdyhU
UlVFKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3BhcmVudCkKICAgICAgICAgcmV0dXJuOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDJhOTA3MDEuLjdh
YmQ3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTM5OCw2
ICszOTgsOSBAQCBwdWJsaWM6CiAgICAgLy8gY29vcmRpbmF0ZXMgaW5zdGVhZCBvZiBpbiByZXBh
aW50IGNvbnRhaW5lciBjb29yZGluYXRlcy4gIEV2ZW50dWFsbHkgdGhlCiAgICAgLy8gcmVzdCBv
ZiB0aGUgcmVuZGVyaW5nIHRyZWUgd2lsbCBtb3ZlIHRvIGEgc2ltaWxhciBtb2RlbC4KICAgICB2
aXJ0dWFsIGJvb2wgbm9kZUF0RmxvYXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRl
c3RSZXN1bHQmLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludEluUGFyZW50LCBIaXRUZXN0QWN0aW9u
KTsKKworICAgIGJvb2wgaGFzU1ZHU2hhZG93KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTVkdTaGFk
b3c7IH0KKyAgICB2b2lkIHNldEhhc1NWR1NoYWRvdyhib29sIHNoYWRvd2VkUGFyZW50KSB7IG1f
aGFzU1ZHU2hhZG93ID0gc2hhZG93ZWRQYXJlbnQ7IH0KICNlbmRpZgogCiAgICAgYm9vbCBpc0Fu
b255bW91cygpIGNvbnN0IHsgcmV0dXJuIG1faXNBbm9ueW1vdXM7IH0KQEAgLTkxMCw2ICs5MTMs
MTAgQEAgcHJpdmF0ZToKIHByaXZhdGU6CiAgICAgLy8gU3RvcmUgc3RhdGUgYmV0d2VlbiBzdHls
ZVdpbGxDaGFuZ2UgYW5kIHN0eWxlRGlkQ2hhbmdlCiAgICAgc3RhdGljIGJvb2wgc19hZmZlY3Rz
UGFyZW50QmxvY2s7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGJvb2wgbV9oYXNTVkdTaGFkb3c7
CisjZW5kaWYKIH07CiAKIGlubGluZSBib29sIFJlbmRlck9iamVjdDo6ZG9jdW1lbnRCZWluZ0Rl
c3Ryb3llZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJTdXBwb3J0LmNwcAppbmRleCAwMDc5MjE5Li5kYmIxNDdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTI3MiwyMSAr
MjcyLDQzIEBAIGJvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6aXNPdmVyZmxvd0hpZGRlbihjb25zdCBS
ZW5kZXJPYmplY3QqIG9iamVjdCkKICAgICByZXR1cm4gb2JqZWN0LT5zdHlsZSgpLT5vdmVyZmxv
d1goKSA9PSBPSElEREVOOwogfQogCi12b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJl
cGFpbnRSZWN0V2l0aFJlc291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgRmxvYXRS
ZWN0JiByZXBhaW50UmVjdCkKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWlu
dFJlY3RXaXRoU2hhZG93cyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgRmxvYXRSZWN0JiBy
ZXBhaW50UmVjdCkKIHsKLSAgICBBU1NFUlQob2JqZWN0KTsKKyAgICAvLyBTaW5jZSAtd2Via2l0
LXN2Zy1zaGFkb3cgZW5hYmxlcyBzaGFkb3cgZHJhd2luZyBmb3IgaXRzIGNoaWxkcmVuLCBidXQg
aXRzIGNoaWxkcmVuCisgICAgLy8gZG9uJ3QgaW5oZXJpdCB0aGUgc2hhZG93IGluIHRoZWlyIFNW
R1JlbmRlclN0eWxlLCB3ZSBuZWVkIHRvIHNlYXJjaCBvdXIgcGFyZW50cyBmb3IKKyAgICAvLyBz
aGFkb3dzIGluIG9yZGVyIHRvIGNvcnJlY3RseSBjb21wdXRlIG91ciByZXBhaW50IHJlY3QuCiAK
LSAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7Ci0gICAgQVNTRVJUKHN0
eWxlKTsKKyAgICBjb25zdCBSZW5kZXJPYmplY3QqIGN1cnJlbnRPYmplY3QgPSBvYmplY3Q7CiAK
LSAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKTsK
LSAgICBBU1NFUlQoc3ZnU3R5bGUpOworICAgIGRvIHsKKyAgICAgICAgUmVuZGVyU3R5bGUqIHN0
eWxlID0gY3VycmVudE9iamVjdC0+c3R5bGUoKTsKKworICAgICAgICBpZiAoIXN0eWxlKQorICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0
eWxlID0gc3R5bGUtPnN2Z1N0eWxlKCk7CisKKyAgICAgICAgaWYgKCFzdmdTdHlsZSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cg
PSBzdmdTdHlsZS0+c2hhZG93KCkpCisgICAgICAgICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JT
aGFkb3cocmVwYWludFJlY3QpOworCisgICAgICAgIGN1cnJlbnRPYmplY3QgPSBjdXJyZW50T2Jq
ZWN0LT5wYXJlbnQoKTsKKworICAgICAgICBpZiAoIWN1cnJlbnRPYmplY3QtPmhhc1NWR1NoYWRv
dygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0gd2hpbGUgKGN1cnJlbnRPYmplY3QpOwor
fQorCit2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291
cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCkK
K3sKKyAgICBBU1NFUlQob2JqZWN0KTsKIAogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBj
b25zdF9jYXN0PFJlbmRlck9iamVjdCo+KG9iamVjdCk7CiAgICAgU1ZHUmVzb3VyY2VzKiByZXNv
dXJjZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVuZGVyT2JqZWN0
KHJlbmRlcmVyKTsKICAgICBpZiAoIXJlc291cmNlcykgewotICAgICAgICBpZiAoY29uc3QgU2hh
ZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQotICAgICAgICAgICAgc2hhZG93
LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKKyAgICAgICAgaW50ZXJzZWN0UmVw
YWludFJlY3RXaXRoU2hhZG93cyhvYmplY3QsIHJlcGFpbnRSZWN0KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMzAxLDggKzMyMyw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50
ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqCiAg
ICAgaWYgKFJlbmRlclNWR1Jlc291cmNlTWFza2VyKiBtYXNrZXIgPSByZXNvdXJjZXMtPm1hc2tl
cigpKQogICAgICAgICByZXBhaW50UmVjdC5pbnRlcnNlY3QobWFza2VyLT5yZXNvdXJjZUJvdW5k
aW5nQm94KHJlbmRlcmVyKSk7CiAKLSAgICBpZiAoY29uc3QgU2hhZG93RGF0YSogc2hhZG93ID0g
c3ZnU3R5bGUtPnNoYWRvdygpKQotICAgICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3co
cmVwYWludFJlY3QpOworICAgIGludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3Mob2JqZWN0
LCByZXBhaW50UmVjdCk7CiB9CiAKIGJvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6cG9pbnRJbkNsaXBw
aW5nQXJlYShSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCmluZGV4
IDhiZDc5NTkuLmU1ZjY5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5oCkBAIC01MSw2ICs1MSw5IEBAIHB1YmxpYzoKICAgICAvLyBIZWxw
ZXIgZnVuY3Rpb24gZGV0ZXJtaW5pbmcgd2hldGVyIG92ZXJmbG93IGlzIGhpZGRlbgogICAgIHN0
YXRpYyBib29sIGlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKKyAgICAv
LyBFeHBhbmRzIHRoZSByZXBhaW50UmVjdCBieSBhbGwgb2YgdGhlIHNoYWRvd3MgYXBwbGllZCB1
cCB0aGUgdHJlZQorICAgIHN0YXRpYyB2b2lkIGludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRv
d3MoY29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CisKICAgICAvLyBDYWxjdWxhdGVz
IHRoZSByZXBhaW50UmVjdCBpbiBjb21iaW5hdGlvbiB3aXRoIGZpbHRlciwgY2xpcHBlciBhbmQg
bWFza2VyIGluIGxvY2FsIGNvb3JkaW5hdGVzLgogICAgIHN0YXRpYyB2b2lkIGludGVyc2VjdFJl
cGFpbnRSZWN0V2l0aFJlc291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3QmKTsK
IAo=
</data>
<flag name="review"
          id="100500"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
    <flag name="commit-queue"
          id="100481"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104713</attachid>
            <date>2011-08-22 12:17:23 -0700</date>
            <delta_ts>2011-08-29 14:51:51 -0700</delta_ts>
            <desc>previous patch plus make inTransparencyLayer/increment stuff generic, plus move hasSVGShadow into SVG renderers instead of RenderObject</desc>
            <filename>7600532.diff</filename>
            <type>text/plain</type>
            <size>31363</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3JlcGFpbnQt
d2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWE2OTIzYTgzZWQ1NDZjMWE3ZDViODBiYTI4YzYxYTM0MGYyMmI1OQpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMTc4ODEKemNtZUh2WEg9Nn1fYikyOCFIeUZJNjtLMzMxNHU4QDZjT252
UWJJfFREbnA0UkFWZispTWpacX1paUQxJTB3WXp6CnpQKGxsJWdjYi0mI31INlI4S2goZ1FiSXk8
QTlPVXtafS1FMHQkWGtMQChJPmkmKU1na2VSbG53eSVUJWMrSTA2JQp6NTxkd0UzR0Z0IWJtNkx5
Jj16U1NxME5wdndnRHJWeDl7RXB7d01eUUkwbWBqXm1PK3syS3goWHlLOCFTc2pHTisKem8kKnJC
KFlmS0s/eEYzZTxEdXooPTd4dXNqKyUkdCtzWkB0MDRrQ2AjPlNWO2pFJHUpQmo4Pj5leDU9P3Bf
fWVxCno4fjUkSWUzMTl2R3cwUkVJOT4xa0l9TDZvMSRmdjc4RTA0ZklARVBMZWJUSHNifTZnQy16
QnM0I0JBaU4/SVVxOwp6VHwmdEdiXzRlSVRfWjhAdTtrc1gyWEN5RHtDMz1PPjNDJnNtYiNVXj9I
MWZ9e1d5RDBOMWoyMks0a3x3XiZNMisKemQoaDYtaFZZdShMT25Sbis1fG1mZTQyYUhEKCpoV1Qr
WTtKWnl5JUx0WCRZNSszRldHMk9scnl4ZXNKTSp8cTxsCnpCaHBRJjhaRX5eTFoxNCNeYXFLNDc+
czQrc0EjPEl3blJEPjNoJEtpKWBxKUJlfmY9NWxqZnphVlUpU15ePilIfQp6VTVpPkg/UjF8SDMl
aUYmKEZkdldheGFzVztgRUE1dH00PyFPdDhDX3sqZ2spdXdid0xOUyg/bVckYig4cERBd3IKekY4
dHdgbHVwRjBjKUhOUVV4dShsanB1NH1aYUhkQktHJXBtLStpS056ZyMwQEYzMlorKS13fFdROCp4
YjxWMXRwCnp3SzZxN0FHKmt2Kmkzcmc/Qn5uTHVreklLPlN+YU0kPVM8S2dyYCpxaSVTKzRLaTQl
NWsme3hrUGloenhEaCM1SAp6YyNYQDhoPSgqKEA7fXBtTjxKRis/M31EP1BiTzJsM3VOQjNnal9N
KWFfUml0Z2QtaiZLT34qc2J0QldnckQoK3gKekIhMWxkTVh5aUxINTY4UkBhKU55d0FteDNwJmhW
MndOVEthR3EhZj0xMUZhdkpDeEF5XkYyYiVeV2lKQVJuYiMqCnpTa2NWRz0tP2FxJmpVVmM7Yj5X
aHtmazkqVDtWO1dSYX1DNGNHfSMlRzhDKnllezc1NDI4O0JscnEwUlVLSCN7awp6dUgreCskfD04
fVowP0RAI15DJGdObkBxXmlCVy1JZ1dfRDw/JCNPRVVkIUhUazZRZjAjcStJKSpwRjM9b3BQRV4K
elNZPCFkVlpGYUJCRUshPD9sZ1ZFTVJ7bUBaaGU+USQ1cV5wUVlDfjshZlVaYmxrajh6R15zVGl6
LXIqWC02JGtDCnpePzZKYFM4PHhJP0BPd0NSJmdnYWt1MU5ZcEhMKCFqOyZ+X2hfdjV2YHA7K1h6
bkU3QiokOGNzXnwhXz5ZKXhWQQp6fDVZVVh3PSVgcCM5fXZ4JDJPO2JmQGtjNFZzQEY4VW04KCpi
dkFLIU9TU0V3RThQYyUpTEElbll3R2FZbmB0RjIKenlLUFlNPTY2VVh2OFFVbSlTYSl3cTJUR0Mk
eD9jYEhCbWB0JD9tMjR7eHxDNDRENUBeS315YiZvOWchIzU5SVh9Cno0Tnc/VnZgRlo0P3pXZFFL
TWxWQTlpfVFJQnJSbGk7b1A7Kk98dWs2KiRJYiVaNjc0VlctOWJhYChyeDlFdiprKwp6aVcwdVd7
VXtkaXJOcFF8QkJMYTxeTyo0WTMmIyo3YVlsQXVjJTx7cD8qIz8qSGo2cH5nfSpRKCVgPk8ySDcr
fiMKejZ5MHlFRHs3TWA8PzRxOy1qRmVoNjU2eWBjKmowenFvYCkxWCEqUXdMP0c+bmdPWVcmYzE1
XnBLPmFmM098fklBCnpHUmFXNkBwSkQ0bUtQQH0zVml1KCU1e2ckNXwzUndCcng5d3FKKkw/Z3Nx
e2hjPTwwQnt+ZG1uLXo9aXNARzVpOwp6I3tlbGV0eFR8VDk5I2trNmE2bzM8Mz98NT9ZYHZqQ2dS
Xk10V1QmMFUwUnNgKy1JWVZwMWQtfldmN0g/dnklRD4KelpJckVaeGlJcF8xMH4wKVgrSkR5eWZk
Z0xKWk83K0I1QT1YcSVTSCtWXnNjIXtyTl5gWi1VZTshdXEwMFFkb041Cno0aGw/PDVrfXchPkor
YHQpc2d2MXQpQzMwZDFFYG0qK2lKNiMqaFFBVWlFb2BfbkJ7N2ltbiNVLXNEcjlpI18oOAp6QEVQ
QXR5VzJ+TUdUUHQxKnxnYno9U2AjY01UTEhYYjlYcnpaQmQ8Tz9NVjIoVE8oKEhVRGNseTRoeURM
ZzVFfVQKeikjPT84K3s0P25zQkpHdz97d2IoS0NRV0F0R2FaaFFzTV56P0xURm97Pk48VDFHVkoy
PXFQQ2BBZHZNN0krb3Y9CnpaMWktOF9MaSRCTWheJUM/aUNXP0oxTiNtQEoqRF97PGwjRmNoLUVC
OzRkdGphV1VHME1ZQFR1aX1iJWR5ZXpDUAp6WlNxPzJoeDxQKF9CTHVKZHN6NX5jP1VQYHpMYSMh
O0BjY1JBNG1ZLSYmcTNWYGVCfWwoWi1oa0ZMT3k3Xj4pfHQKekQ2OzJWZVExdFFiZG9TQj1kNCFt
clRnRXN2Jiood3s0cnxLPGVLMVdHWWBJdlFpc0BeP2YpKGo+NGowLUphVThnCnp8TlEtR3F2ZTNo
d28wP1JEd3N4QmMpQlVXK3gzRlVjYWVCJTJGT1Q/PWFZa2lYe2V1VzhxcHpRUnxLP2dVTnpkJQp6
Pmo5QSFPdUw+Nz0+NWkpSG57WChCdW07TzlgP3paam1AIzVAKXNZP2JKK3tlNlNNfWQhPytWLXJh
N3ghOEVTeHMKemVXa2s8JnxMQGI1NnxRUE9BUk8+O0FYS1UkO1pFJj9LM3VqeCEwUk1lb0Vqa3Rw
SWgpMVEpKiR4V1g9NXp8SHA1Cnp7cjIjP3pjZmsjKUo9fGZOPGxEZjBrOG1GbH1nVjl3Qk5ufSst
d0tkVHJqTyE1M20zV0MyQFpVWHNaSmo7NkcoYwp6QUU8aDc0JWtnXlg3dUYyXiRFdGI1UERhSmFi
cilgeDZAWHdkc35iQTdCaGpoK1hQczxFaGVkKDE9aHw5YUhMaCYKeiUoRGVYUWVxIXFUUTZUdzVP
fmBeKV92cCNwJCM1PVFePTxxYTxyaSQ4KW9FeHooUSh8ODExPCNaUz4peyVga1NTCnpMeFQyZTBe
QVR1PztfWlFVaWpCKXVhcmxyTiQ9U3pATzs3dlJ6X1A4ZSpKTysqSm90M1cjWjhIUCM3UkwzfFJI
SAp6aX5oJWRuNThiQUBaSVZJfE5KKSt2NmR1VDAkalVaejFmP1RvI0Y0ZGBRSUc8e2VmSG1UP3pV
SWpJamFze0opMWsKelN4WCtJO0U7P3g/K01jWVdMVjN7NFhjaCEpY1M1QGA7fFpKeTBvVHxEZ2JZ
eWUqdyhnSyZ0c3VMR2J6c0shTiZVCnojXlQ+Kz9mY14qNVdISHc2Z0MkYCFJM318eWdfSiNOOGh+
VGg4K0RMc2ZlfGA9dTR4bDFLSl5URjFHQVQtX2gqcgp6PXxGKDtDVk5KSmp6dS1eMFBeK3lgKnhy
RXU1KGUlWE1vS0FqQ19+P1JnKnEqN2w3PTlGQmw3U1JyLXUyO0ZgS1IKenBhTzs3NWlrOThsbFoy
MGArZ1lPQ0hnak03Wk5NPkxwJnExPEVHST9CWCF7KWhUWl9pVlBqanVKMnRyV1JWZT1SCnpXYjBh
QWxwZGVFNVlycCtAdHpwU010YHYlRitQZiglRXVfNyN2ZXk/WDYxJj47UnZFT2RSSFcmd0dzM1Ra
X3FMJgp6V2Mrd31Jcjt1Zjx5PlF+ezRLfDVvTWd6ZmZ5SU12V0ZJRjFTIU5YJmBzaXpwVXdpRVhI
USMxLURGZTt0akt7NW0KemR+djJ5NWtZfSVNPz04WUlsNUokT0MjUTU3KzU1Rzt3VXE7WkROVEdo
bHd8Yjs1aWgrY0VncHcyI1o1N0pabis/CnpzM0QpLUJqeH1fKEklKUpEUkI9WkA3eD9ZNT5Bem9m
e2Ztb0Urc0RTOFl3aGZRQVY/Z2dlYG1aVWFmRSRoVWt5Xgp6PDl5ejdvVCQ3dHhjNldMR2k9O0J7
RyRsV3VAIXllZnh7ZnxlTGJFZCtgMkQpQStZOUNyVFJydWFqUH43WFd6fSMKemBEKTlySCNTI2pO
dFpgMTdHdTBtTXNnPm1sO0BmX2JEcWRzSlQ5QUg2VWo7O1h5TXUyMWJJVnQyY2EwY1NRS31oCnpC
PnIycnxIPk9GLW04X2o0LUE2ZGBPP217VDhQPzBkKHdlKD47PHRrWXlGSXU2Z1grKjx3ajtpb0VS
KjtMZUdVZAp6KTZvO1RSN3Q9emVhYG4zV3pgS2UmTHp7YCtZUTlGV2whWiQhfSk4PSUyJD0wazhV
bmJzMU0pTWA/PUAkZ3RlYUQKel5yRSVOVTx+cStjdW1DQGZVZW8jQ3JpWG1kKHZlT0JJSCpEQyN8
TnpHbHxlXiRlVH4zQXRgdHN6emdORXJSb3wqCnotcyV1dT4yVERYRkQ7VDNwdlBPODZqUT09NG51
d29RbD5+P1pOJHEqPHB6dCg+V2NKU15wPUwqaVB7ITNMI2BvfAp6ZHFiVCQkMmg0R2pMPENOQWZr
MEQkeTU/fHFNYHEwYHg1Wl94Xzg4MWxlNFNhUzd9b0BZZ1FeYCRPWU5gVVJQMmgKeihRWkxYLUhU
cnRecC1hYlclZXxGM08odnU3T1dEUWAmQTtlOD01UWZIYktPR1FGX3l2Vz9+eWMpWE1UWGo7S0Uy
CnpaTnlfP0BaaFlaSVJoTFkqbFEjVElNbE9uZmNHJCRoe1hZLUF2fCYrT0w8MXVCVHdXazk+SklA
JSE2dmB1WVU7Mgp6PEJUI3VLRUwpI2RzYUErM1NNK2YxeHpuPiliIXlsZlczV2shJngxa2VrZUd8
VHdIQ2thVXFCNExTSV9PXkNNNmgKelBEKW9lfDIhfmtYdmhYbihoKmUraEx7bm08dlljaVFOKWM7
RXtOKTFAPE1xX0hGI0dqMylHZjw+PWZuJlZRQzFACnpUViFGWTkhTiFvMktISExEWjJsTEJ4JmMl
YE1nST1JcXltfjkkVi1eXk57bCt6P0hycHJKUCtKM3U5c2YmMF5CbAp6UkFIXzltZkA1QEJzJTVC
IzlDaC0/QHp0Ui1oKHs0NzlPSG1vNDQ5dTJwV1FoYEo/fDNOI3B9N21VajgoYmwrZ0wKekx1JjBi
dkBOQCkheVMlPj1zO0o0PDNBUVQ0JD1ublRrbG99QEx+e0M9cm59QStHM3xSa0J0NlMzKmZEUWFp
dTR9CnpKZmJHRyghNHpfRlpLdiN1ZmZXUDwxb3R4NHV1SUZecmVpaE89eyNsND0/Q3NYdWAoYDZf
dlg+VlBEOzBeV2YlYAp6PmBoYXE4M1pVdThnaSFiPDhGQkUtISQrKFdRTUs4IT1WUGMyMnN2cXBr
QEhfaHNSJkpDUFdBUD5jQTg0dE1fTzYKemFgZHstZmY5V1ZWSD5CYzs3K2BiSEU8YFZ5Ujl6YjBK
RWxQdjZTfGp6czV4S3ZGQUVSP2xIcHxYSG1xN3NgN3xnCnojUWVfPns1ckphPSFtNVBGckJ9VSN8
SDtBJShyQDB7Iy1sPEBTUTczZV8rVntJSEF1KF4tS1dWYGkkVmcoSHljXgp6cTs/KWhyNWdeJS1u
NThHeT83IUtJbWpyaHBLfVdUezlNWV88QFNoWS0xeXBEMiQ2NmRZTyRyVlhkN0VqN3RgcVoKekVe
fT9KVlN6K2cqSlJLMTJlSVdAPExCLU5ifSUwemFQT3gyM2RRbytVRVhPMGtvR2IlJVdBYypWUXxE
UiVhcmN1Cno1YWFKWU15PnhlPnwpbXpUdjVfbGpFP3V1PFVlJjsmQzVTeGkpJkd+SSR5MityX1R7
Ml9lRGtyeWs9fjV1dHRkPQp6YT9KNEx4TyN8VFBZWSNqYlolbDg1QEx6XkNoP0JmZCQqbXk9ZFpN
Q0hDM3p0NjVIZXc/eSowYTsydUooJCkhRCoKeigjY0JsbEl+Zm9JYkJ4a2hPKEVBbis0az1jM3hA
UCRfeX1HbndyYm8lQl89WDN8VCg9Y2NqRHZASiEhTDU4fWwxCnpCWTYwdlk5aEI7LTxqa1dSNUxm
MzEjZCE0QT5adVEwdzJEd1pueT90YmVLKT8wPl9udVNxT1hDeE1wPlk0N0t8Pgp6a0o5aXJJaDY7
Y0lLeXA5NT9YUCtlKFdYZkkxVTJrXjY2RjRDSXl0SU5+WXBpaDc3clNVVTlzaUp1VXFQdGMjclMK
em5CKDMqeCFZSHcqTiVTfEI3V055biZuc0JFd2xTYG9yS0B2MS1iRiR6OVJDfkhtbT1nTV59cihu
fGcmQXAqX3JOCnpoPUxRbE9fcHI3QnJBRzwpYS1VZUQ0fmBaPytGI1FecV94VilCVGpzT3Z5VXgj
OVJoNzdvWUZoVDw2bDFKWEhDWgp6Yz5WLU5ubnFzYXI0NVpPbVczI2FKQHFrU0omRlc5cWcwKihj
I199QCh4NVBeOH1vP0hTUj4tNz1WPXRmdmZhT2kKelZ4SjJRJWk4SiR2ZF5tSzhUaX0qdFJnJGRK
ZktnUWhJNlVEPlVQcm9jMXxZfVhFbFJURVlMWmRMTSpEb3JBRHxmCnpqeDlIWjBII0slK15we14+
NjFzRXxITnRjSDFlX2dZZmt3ZVB2T05iZmchKThEVD5VZ3BEYnBYJDVlTkNXJDdXZAp6LUVgZjNm
TE1AalE5QGdpOT48UT9rKihUeyROR0FUNE4yen5xKjUqVGlAY1NXNGs0ISNgXyFlPkx6V3xPPDJs
b1IKenZ7fEc1NV9mKXlRS08mbGJtOCg+T2JgMmg0KU5aZkhIYDwoRTkmdUFgWlEmc2AhPlhwNWVa
XklQST9uM1NmWTY9CnpFZmM7bCZVPTxLckBfMTNmVCtkJVBfQXl4KTs5ck4mNXZ5ZDQ5Sk82LUlP
IS1KSnxPUEMpPUxtWTFsTTdMc2Nmegp6TDZVS2BCJFJPIypQeDhpeytXcmoyfCN3KEhXOTItbDJg
TCVVMjZPdm1oKkY7T0wmemJIMDloMjcyMnkkbUhZY14KeihraUJeSmNYUWpSZ2Q4NHpnNjZIST1P
NDF0QkRKIXpjdSUpNGVkUjxkP2hnX14yb08kQTUrbmxhUi0qXlZRPTZCCnpmOTJsMFA3MCMjST4k
flNzJHBxfHhtZUV8Y35YUDdZaDEzVDY3XlY0KXlGdE48QShHIzd1X2R7PDM8PW9AN3Zmagp6cl47
ejtKeExAe1ItSFgpREFJJGEjVCFNK0NrXiRVcTs/c051LStIbEtnT1l7cmdOPU5VXj89WmFNXmA7
U3YqJEAKemlWejx5eGFXWnlGSWVkYHBqQiVoXj5BRWJqPy01PFdXOHVNeW1OUGhRVTJ+SnM0b1lK
ak5oKDVIZHRkZ2NFdyVpCno2TDY0ZlJDcD5iQHk/OCZYa287Xm1rX2c2JmN+PHxBOEhyaWE0IVNp
PEZIbUUhY3EqK2pOfCRgTFV3bylVIVU0LQp6cmNgeSg4Ujl9O1d2JTtlPUlvZillQ35LXkQqZFV0
ST5qVStnZz9xO3JicjxSI1hEYyl7ZEQzVWtEc1FoS0swWUYKek5ScHk/amZVSWlzY0hJTD9NJE9U
NGIhbmpISERHSzwtSD9TcCo7NmtBOEEjKDRTS2JZPF5xWGdCeGVCQGwwekstCnptNU9+WHdmNDhF
bjhkU2VOO31nKElWNTE9YUkjOzhqamJhfEkqNV5vcyNhSHQpbkw7IzEzazAtQyNEbSFJTDVvYAp6
Z0ZDfkwhe3t6R3ZfKDdBUUlBUzEkKmYtPCpIKmB9ck4/PUpuRUNxUEYxWSpQKFkrJXpjQERZTDBv
JUxMbXo2VD0Kej51dTwjXk5QRHRoRkM1RW05KXN9OFJYa2hpcnhabGljfVRuP2slMjx8Tjg2flpN
QFRrKkolam5wZFp7fTkyLXhTCnp5MT8pPTBhLXYhUWVuPWdGanQ9KEwmbi1FRXB9YF5GKkpjOHJt
XmxjejNWWSNYM31OJmxvK20mekJfbUUzSUYwSAp6UCFuWEJWSDVjdzdocHt1diU2Kjw3ZUQ8cHFM
V00wKy09MnNAJlgqbTsoPm9YNUg+K050YEhkRlBVSVhnTSg0RikKekYzUHllR1FrT21aTzhiJUhu
QDAmJHJySiFsVCFUSlk8YXdFTTxsTDBVQnlmXnNmfWhqQ1FCTlh0S2tgbHQzOSU1Cno/SFl5bjtu
IXkyRndPbiE9K01tQW1aWUlSRT4lbSVyeW5jSjsxMEBKUz9+c21TdkVXNW0kQEJpT2c9aEkjPih0
ZAp6JTYjdmlSTVZFJik0Pm1pSDBLcCN7Xm1YeiYtUFFiPGk9YFFgQT5BdUMhdjNwX1JfZzs0JFYx
KztaT351R0FAPjYKeklnQTJjViFHa3dIZ2FvMmhnTz5qem1fO2soSmNffiV0c2R8SmdgRnJtbTwp
OFQlODBoY0ErRT81PzdHWUVKX2ZnCno5ej4rTEA8cEI3MmZ7TGBjNVVfJkAlYG1UJH04RjxYfj9Z
QUxMY1pkbl9SdHpENzV4OV9nISs0X0krUlNkKl9gcQp6ZHt9bT0tclRxezRDPHtQRik9ZXpJU0V+
XiV3QXBMY1cjIUNkbTI4T1l2UF5VYi1jY1FIeFNWQm1GQiQ5PC1JTygKeitVTmNJbFY+a1Ilb2VJ
WEpzNWlzdEtqYWIwIXJiZlhEQlFBQihGTnBKNHYxX1peXz1HJFlrPjUzaS1LdSoxSjBtCnpqOUo0
NiRCWDgqI0xNMkpEYWhAI3N0JkojXmVvbyE9bDRZd24pKUBSQFIjbzUzeDhEam9rZUdhI0ZNUiUl
TF5fVgp6PEJufmxxNiZTfUZTK0BXbktWcC1QOSppLU4rblc+bGE4cXpoJUhVenVUaWY/dmdIPTYl
fnM2bT8tX05wIXEkWXwKekNgO0RpI3xqbClSekdDK0t8ciFVSFBkYlJlZHN6OU5XSEB4NUlZNXho
M1ZFblZ4UUJQQGx9VntZMGwmVCorMGA8Cno+QmN0e1g0Qj9BcHlJQmVRY0YjK1dGd0kyJiR4RVR7
eTx3N3ohOEYkeXcoZDB6SkIqQTFYI2NFSDExYWNaQSpFZQp6JldBTUNDQk9gcGZjM0U8dlkwYWgr
RWMoTGAkbj1kekNDSjJISUQpN0ZPXlhiMnh5O0stPXVEc24mMlNBWE15I3sKenAxOGFnJkBLUXJZ
M1U5MzUqI0U5U2J3QkcqJjx5KWR4Sj9FT3hscDc0UiFuUHZQb0BiRUJQM3hnISleZUdRSl5uCnpv
KjsoZCY/OS1EWVhFRncqPCh4JDh2NDZsIT51ZngrPSEoU0xQNzJROFJRTTRrUjk8UyZKMFprUGBy
SSF7SFpLSwp6KkpqaytibGJaZysrMHVGRWJsRzs8WXxKe2hZYXNyJFFRaUJXYkxKR0Ehcj9sTGhN
SVJ3OFJwRWhnQHJGS05TXyoKengzYjxFP15PKF9uPF5tdT9CRyh0U19JZHIyRElYNHV0WlJne18t
ZjZVQ1g5dGlEayU+QTRqYWxjejRBSUdqYytwCnpwO05LKXhzR0V0R0FYcXpDO0g1bk0yPXw/dHMr
YmhBMXolNEtUMjlDUVVQIT55TT9lWEhRO252enxUMTdDK0tHdQp6bXA5IVIqYGNAa193JV5KMGt0
PHFqKG4tSFpgLVQpUHhDfUlJaVVXPCZKT1k0KUhndn5AXyU9JShyMn5INWIyWD8KeiZIPDM3WSEj
YDxtNSpfeCVqO08hKGolPzArSUJ9emlAcWRCWDVEbGRFcW9vRWs/bjIrKDdhRyZxdHpaMm4/fUZq
Cno5Vk5QUjJUKytqbyZFfHdNOGRXVC03dHFKUTw+QlJ0XjJra2lPbUY8czhtbjNTNE1eci18cm1C
JHQ3JklpZys/Rgp6YSZeayRTO1ZLOGc9eXVDRHpMaH1LYVA2YlRpZCt5dX1iQlJzWDBUQkpsPTR1
aFBPfHJ5OzU3fSU3fWVWa35ufWEKeiE0cW0heC14UFlkMXprcEtNJEYqJUFhISYpeG50bERmKWlM
IygwNHRFTlZ3cHUtPlc5SHlWSChgJVVaSHl0OWQlCnp3ck5NP1FPJTNZXn5kI1MpSzJYIXNeeGRP
PFRCTl9rSlFEaj1+LV97R1NxUXFRQiFQYGRnR35BT0w9SyhgKkFaOQp6SlBzMl4xeiFUZSNFYUU2
TjZfc0NsKSUyWEZReilRK0N4U0krWXIzYjl7YUJsUUVjRlZMQn15fll3VmZNVDNtTSsKekdEfUJ3
WSNuWHZRY08mLVAmIUghJiYhVXpHJlo5MyRjQTNLSU93ZUc7KmBjN25pWS03KjZFeTNTRH5zX0Jn
fnY2Cno0Rk1SOTd9KTNNZn0lWWs5PlN2ODVmKk9VVmFjfGpKMUNwXnp2LUBYakVNWmVqenw9STlS
VHZ8TGV6SmhTIWs3SQp6N2JzWGxEPDFZMCR5TE9RNTgwdGdEfElYLVJiMT8xLW4yQjNMSXdnY2xk
PkY0PilFUEgmfClfVCN6RHZhO1pQbFcKelopWkxxKG05YD1VZz8/OGY3O3AybEVUdGZwKUYrZkx7
PGtRbWxLRD02QSZ9T2lHOGp8Jkp2JDt6bDQhPz50JVo7Cno4M3xoTGI4Z0pmUSs7QXF4cjkmdkxJ
NU1oJXxNRTRhSEVDJDtBX34mOVRWJEZtODtTeFdyPj5+M0BGUFUkRjcwawp6QzxBMmIzaWszUkV2
ZX14dmokdVBjJUcqM15CNX0+X1JuQTJGQDNXNUU8NHNLY0JgeTJsPDBPITxRMTV7YTBpNTsKel8p
YHBne0lGNVBlMTg8MjQoXjd8d1cqNiNhfXxjVjhJY1dZSGc0VSs1VU1Qe0F1WjZuZ21VTnJ5ZVhE
NkopKD9mCnpEMk5jPnY8d35QTldXMVJTOXheQjRacFRUIz12YnhyPm87fU82OT90V098YSQ7Snxm
cXgpIUBrU0pQbzImPW93Kgp6YHQ8JF9BZnA8JlQkJFNEYXxZcVVoP0wrV1RJRG4+Q3YlaH41THt8
UjdKWko5KFFgNFI0QiZ7WCp6JFR6Y2ImSkgKejZ4RF5sKmFvQCpZOGIpUndtO0t8VExxdTVhfFgl
S0xYSldfSmRmb3VSKV94ZGV3U28mODxaLXBDR3MoUkkrSXtGCnphKH44bHNvTmlmVD8/JSUtYGtp
TStJUHRGVCVNdnhuWXQ9dTdyaEdIenUqRjMtdzlSfD9SaXY2azNRNDYlNyVVMAp6RnN7TGAhKkNG
Pzs+aVVNNlNZUUJYaSE4a3QyK3p9X3R8RnF6fE9oanc3VnhVOTBqWlBwRkN8KClXV2xkX1B1R3oK
ekpAbjg5YWU0dDBTWFZSNmROYHo7Z3xIMHJ0PzFCKzh8T21vVnlMeE5VMExEdnNNN2twKXVSVjN3
OTB3ZlMjKUtrCnpYKWJadnYjVHFtS3Z2YEFWeUF6MHI/K01zI0RNNHtobEx4YzYoXkxjZGZ7ZSFm
WWgkQWl9c35FPUZgNX4mfHJ2Wgp6KlIjPGlCbGlCKXh7c0JZTmZYY2Npbm1GM1EleCtFOHpFZWVg
USl0O09ARU9sV2FFKyRnVTMwMDBFXjxhSmJ6PVoKemtscFU0aHMyYkVVdHIoNUUtUnktTD9FLTR6
MmRFJChSbk1mZUREflNyV3JTO0MpVT4rb35seEJPflp8WC1senZkCnpUR0VJZmJzVENXeSs9SGs+
SXttMntGQ09Od2JCe1pJZVRNUUp5ZjxwNzBSOD0mRX12OHt3ZHY+czhzaGBjRHYyTgp6Nm1tY3Bn
QE5QKW5Kak91RWkyKUhEbGRJdXh5X3VMUlVPUEpHI2stZW9ednRQenBZN18oTzNfY3wxYnQjOSEr
eisKel9JcFleUWE/eGBUbVokaFRYalUxdjQwVFB6KTxYRVFYMFh0WXpAekI7LXJidCpPOFFaYktT
VXF6fFZSdXBCJUU3CnpzbjFsS09lM0l1WnIzNFliSFFFcjE4NmdzSz5aYjZ2ZXZTZ3hrRVVRMCZj
Kkc7UD5pbjF1SiMjYmwjUVMzJW5OQgp6PkkwbWpoVSUpMylWNntsYjEtPXtWM0k1cTY3UUl4aVo7
eWtteSlfWU43V31WO0FITk0mM2ItT0ZGTVRxZDJXdWIKemYkLWM2RGUtPnlTblZqZ3BwTDZ4WHJ5
ZC0tTzZkQzlHIUx8WlZzJXZAY3dOPytTJDFlPC1MQUVWdmAtcCZQcFo8CnomSmdMZUhxKnhMVmNk
KVNMbW14WE5lcV5nK3V5Q0pMbzd1VStRUnNYa35ndHhSYjFLb3tIay1TY30lakpHb18jYwp6ND97
STVHK31MVU19UFNPaztHcUFxTWIoZnJqYCtYNGArMiVEa05IIUZTX2dmSnp3M2xIbEg5dHl1eDYl
UmQhRTQKej9+M1NtX3MtSXV7UX1QWVROJkxaVkZ3OGg1bz11JjhnJXR+TGIkLUFrezRDMkxHfmx+
YGNUcUBZQnxRRDNJS3U9CnprMHB3X2dYc0E+Q3NpPXlWNVMxSSt1IVl5U31ITlFHaXxGSz5tJnc3
aT02MUdXZndISHo/T1FyU0BmPlJ3Rm1eeAp6Rjg0SjRLfVJoY1FgPyhPdDVWO3xoVWFeWHdXTSlr
V3Q+U1RXJCFsXyo1clJ8NC0tWXwjSm4xMTxJJGRZellmS1UKemZfRUw5ZFVUelItJE4kZTcrTmR0
bVg0fShyaGhVVkxQeXZed351JnF7ZjtgND5UY0wlcjZOVWpifnt6bVFSVXAkCnp1ZWVhRUR+V3ww
bWdAfnNfTi0mTTxeZ01Lb2t3V3cxODd0PklmZ3oqJnhvaTsmUTEmfnNNTzFASX4ta01CfEstWQp6
bz9vN0QqI3N2TjRQSFQxOX5iISpkPVVGc0Y+WHYxbUtwMDNrYVcqZkMqPXkxX15kai1JQiNvayh9
Kj1QPkhaMGsKekRSM21RQ0xhPS0zWkpZcih6JShaWUtyUilqZ0BfNSQtWmI8ITNjQ0NIbXV6WDlx
U3ZIPVhsT0xBazYwaSt1O2hHCno5OG5tKEd0VXBPeUhxeVNSLSNOI0RnXipQSVVKQWktY1o+QnBl
cF9uM2Y9bEJFU0ghYVRoQj1wZFpDRmpzOEp6aAp6SlVUPVRXYzZxaFViR34kZCl1aUlCbDNwRk5o
YEc4IW1sVzFSfjZ1SksrNyRNQ2xNWGl6I0VPYnhSeSU2djEhSD0Kenkmb30qVT9wfSlWdDJzTnpG
bzVBe2VAXmYwUHI1aGtnWE9OUmpUfGB7UWw9aCNBdmw8NW0jZG5kWUMoJk8/c0dsCnpnb3w4VyVo
O09VP1ppXlJvT2pNVUM5dzR7eEMxdTRuKEd1bT01LUo1e25CLUh0Nj8pX0ZPM2lIPFJeT1FyPzJB
fQp6SiR5cUNCMG4pKEo4V3ImMEpCd3N2QlVyQClUMUlQMkNKP0tgUEN6ZExJR3JuZiktbkBKayt5
WWM3Q3hZKz13TH4KenNCOCE+cFY0WWZ0SEFFLSZaZ30zWChqb3AjSlFxUkx1SiNqUHA5amIjeGU1
JTlAd31SUUoxSmk3XjBNcWpzdzc7CnpJS3RWQDhSR3pqY359MHp3TDx5YkBnSCFeJHxWb2heakV+
QWBXPnJ0QExnd0hYQTV1flI5UG14I05CJmZJUUw3Vwp6TEhVVXFSfWc7QVpjcjc2a2EwJGhIczxs
bWlKbjhhWm9aKlEtNnlBfTBobi10Ky0xO1AkVndYZzhiPH4mantNdlQKenNxJDYxcm1tI0RtKVpO
Q2tYaTRxMWdIKHhwJSREMXIrVGpCRHAjYm90Knh5bFN9WV9uaCshTn5rUURyM2N8OG49CnpTSGlH
WC07eGlJPmwjP0Fid2w+dTczKnFRRCZnQ1FCKEUrWndTTkpWTnE3Wn1LYTlOb3RZR0ohNyg3IVZL
fU4zUQp6MSFySzxhcm9xMWM9bUJZY2M5VG1HNCkyaiFBNEpwZn1qZCRxdXBlcUNGajRZK3Z3ZiMo
QFZmX2E0NCsqRjJNaFUKekNBZU8mOFJKXnJSOWRePFl5YUBoVENVaEVUfklYKHBha3xKSykzJFMj
anNHPzIrdnBJYW4me0c1NnVKRGVge1hICnpST0RAUDgkNT14KlY9dDR2JVFVVjwja15JOyh0LV49
cTx2Q3ZgSFgyalJVSDUxTGh+PGwkRGxBTkZNYDQ3Kko+PAp6QjZISjc+Mmpee0gtSH1LeVN9bHRf
YT9PbT1wNUFDMU44ZXAodTFEKDQmTkpIdyooT05ednU+RCs4TTR0MlZpJVoKekxAQCFQendnamBR
KCFeQypWPnR7dT0/O3gwQSs4VkchZndMIW1VNzhWRWp1VEBERD9wSyEyZW9EPlVnbDZmWUY1CnUw
PDtDWHt+ezZoIV9YdCg0ZE1UalpBSjY5bSl2RHFnT2BHV2YhfUhvR0JkSGhQPEg8TS1Ud3ZqY19E
b08KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9j
dXN0b20vcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1NDdkMmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDYxNgorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4
NjE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKKyAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKKyAgICAgIFJlbmRlclNWR1Jvb3Qg
e3N2Z30gYXQgKDI4LDgpIHNpemUgNjAxeDY4NAorICAgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0
fSBhdCAoMTU4LDEwOCkgc2l6ZSAyMjB4MjIwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDE1MC4wMCw1MC4wMCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDAwXX1dIFt4PTAuMDBdIFt5PTUwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBd
CisgICAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgxMjgsOCkgc2l6ZSAyMjB4MjIwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW3g9MTIwLjAwXSBbeT0wLjAwXSBb
d2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9
IGF0ICgyMCwzNjYpIHNpemUgMzAxeDE4IGNvbnRhaW5zIDEgY2h1bmsocykKKyAgICAgICAgICBS
ZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMDF4MTgKKyAgICAgICAg
ICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMjAuMDAsMzgwLjAwKSBzdGFydE9mZnNldCAwIGVu
ZE9mZnNldCA0OCB3aWR0aCAzMDEuMDA6ICJQQVNTIGlmIGZvdXIgcmVjdHMgYXJlIG9uLXNjcmVl
biBhZnRlciBhbmltYXRpb24iCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAweDAKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93Lmh0
bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDc3MThmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93
Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGh0bWw+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogMTAwcHggMTAwcHggMHB4
ICNhYWE7Ij4KKyAgICA8cmVjdCBpZD0iYSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB4PSIwIiB5
PSI1MCIgZmlsbD0iYmxhY2siIC8+CisgICAgPHJlY3QgaWQ9ImIiIHdpZHRoPSIyMCIgaGVpZ2h0
PSIyMCIgeD0iMTIwIiB5PSIwIiBmaWxsPSJibGFjayIgLz4KKyAgICA8dGV4dCB4PSIyMCIgeT0i
MzgwIj5QQVNTIGlmIGZvdXIgcmVjdHMgYXJlIG9uLXNjcmVlbiBhZnRlciBhbmltYXRpb248L3Rl
eHQ+Cis8L3N2Zz4KKzxzY3JpcHQ+CitmdW5jdGlvbiBzZXRDZW50ZXJQb3NpdGlvbiAobm9kZSwg
eCwgeSkgeworICAgIG5vZGUuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKCQx
LCAkMiknCisgICAgICAgIC5yZXBsYWNlKCckMScsIHgpCisgICAgICAgIC5yZXBsYWNlKCckMics
IHkpKTsKK30KKworZnVuY3Rpb24gbW92ZVNxdWFyZSAoKSB7CisgICAgc2V0Q2VudGVyUG9zaXRp
b24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImEiKSwgMTUwLCA1MCk7CisKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cit9CisKK3NldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZGlzcGxheSgpOworICAgICAgICBtb3ZlU3F1YXJlKCk7CisgICAgfQorICAgIGVsc2UgeworICAg
ICAgICBzZXRUaW1lb3V0KG1vdmVTcXVhcmUsIDUwMCk7CisgICAgfQorfSwgMCk7CisKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworPC9zY3JpcHQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAKaW5kZXggYzViZWQ3My4uNWE4MGYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03OCw2ICs3
OCw3IEBAIHByaXZhdGU6CiAKIEdyYXBoaWNzQ29udGV4dDo6R3JhcGhpY3NDb250ZXh0KFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCkKICAgICA6IG1fdXBk
YXRpbmdDb250cm9sVGludHMoZmFsc2UpCisgICAgLCBtX3RyYW5zcGFyZW5jeUNvdW50KDApCiB7
CiAgICAgcGxhdGZvcm1Jbml0KHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KTsKIH0KQEAgLTg1LDYg
Kzg2LDcgQEAgR3JhcGhpY3NDb250ZXh0OjpHcmFwaGljc0NvbnRleHQoUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQqIHBsYXRmb3JtR3JhcGhpY3NDb250ZXgKIEdyYXBoaWNzQ29udGV4dDo6fkdyYXBo
aWNzQ29udGV4dCgpCiB7CiAgICAgQVNTRVJUKG1fc3RhY2suaXNFbXB0eSgpKTsKKyAgICBBU1NF
UlQoIW1fdHJhbnNwYXJlbmN5Q291bnQpOwogICAgIHBsYXRmb3JtRGVzdHJveSgpOwogfQogCkBA
IC0zMzAsNiArMzMyLDI4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0OjpzaGFkb3dzSWdub3JlVHJh
bnNmb3JtcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3RhdGUuc2hhZG93c0lnbm9yZVRyYW5zZm9y
bXM7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZs
b2F0IG9wYWNpdHkpCit7CisgICAgYmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKG9wYWNp
dHkpOworICAgIG1fdHJhbnNwYXJlbmN5Q291bnQrKzsKK30KKwordm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3sKKyAgICBlbmRQbGF0Zm9ybVRyYW5zcGFyZW5j
eUxheWVyKCk7CisgICAgQVNTRVJUKG1fdHJhbnNwYXJlbmN5Q291bnQgPiAwKTsKKyAgICBtX3Ry
YW5zcGFyZW5jeUNvdW50LS07Cit9CisKK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjppblRyYW5zcGFy
ZW5jeUxheWVyKCkgY29uc3QKK3sKKyNpZiAoT1MoV0lOQ0UpICYmICFQTEFURk9STShRVCkpIHx8
IFBMQVRGT1JNKFdYKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgcmV0dXJuIG1fdHJh
bnNwYXJlbmN5Q291bnQgPiAwOworI2VuZGlmCit9CisKIGJvb2wgR3JhcGhpY3NDb250ZXh0Ojp1
cGRhdGluZ0NvbnRyb2xUaW50cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdXBkYXRpbmdDb250
cm9sVGludHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IDI2YWQwMmUuLmFhY2ZiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0zNzAsNiArMzcw
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVu
Y3lMYXllcihmbG9hdCBvcGFjaXR5KTsKICAgICAgICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXll
cigpOworICAgICAgICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdDsKIAogICAgICAg
ICBib29sIGhhc1NoYWRvdygpIGNvbnN0OwogICAgICAgICB2b2lkIHNldFNoYWRvdyhjb25zdCBG
bG9hdFNpemUmLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOwpAQCAtNDI1
LDEzICs0MjYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdCaXRt
YXAoU2hhcmVkQml0bWFwKiwgY29uc3QgSW50UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50UmVjdCYg
c3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wKTsKICAgICAgICAgdm9pZCBkcmF3Qml0bWFwUGF0dGVybihTaGFyZWRCaXRtYXAq
LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0SW4sIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgSW50U2l6ZSYgb3JpZ1NvdXJjZVNpemUpOwogICAgICAgICB2b2lkIGRyYXdJY29u
KEhJQ09OIGljb24sIGNvbnN0IEludFJlY3QmIGRzdFJlY3QsIFVJTlQgZmxhZ3MpOwotICAgICAg
ICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
ICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wgc3VwcG9ydEFs
cGhhQmxlbmQgPSBmYWxzZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgLy8gVGhlIHBh
c3NlZCBpbiByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGluZyBp
bnNpZGUgdHJhbnNwYXJlbmN5IGxheWVycy4KICAgICAgICAgdm9pZCByZWxlYXNlV2luZG93c0Nv
bnRleHQoSERDLCBjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IGZhbHNl
LCBib29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAgICAvLyBUaGUgcGFzc2VkIGluIEhEQyBz
aG91bGQgYmUgdGhlIG9uZSBoYW5kZWQgYmFjayBieSBnZXRXaW5kb3dzQ29udGV4dC4KICAgICAg
ICAgdm9pZCBkcmF3Um91bmRDb3JuZXIoYm9vbCBuZXdDbGlwLCBSRUNUIGNsaXBSZWN0LCBSRUNU
IHJlY3RXaW4sIEhEQyBkYywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKICNlbGlmIFBMQVRGT1JN
KFdJTikKICAgICAgICAgR3JhcGhpY3NDb250ZXh0KEhEQywgYm9vbCBoYXNBbHBoYSA9IGZhbHNl
KTsgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQuCi0gICAgICAgIGJvb2wgaW5UcmFuc3BhcmVuY3lM
YXllcigpIGNvbnN0OwogICAgICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVj
dCYsIGJvb2wgc3VwcG9ydEFscGhhQmxlbmQgPSB0cnVlLCBib29sIG1heUNyZWF0ZUJpdG1hcCA9
IHRydWUpOyAvLyBUaGUgcGFzc2VkIGluIHJlY3QgaXMgdXNlZCB0byBjcmVhdGUgYSBiaXRtYXAg
Zm9yIGNvbXBvc2l0aW5nIGluc2lkZSB0cmFuc3BhcmVuY3kgbGF5ZXJzLgogICAgICAgICB2b2lk
IHJlbGVhc2VXaW5kb3dzQ29udGV4dChIREMsIGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRB
bHBoYUJsZW5kID0gdHJ1ZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgICAgLy8gVGhl
IHBhc3NlZCBpbiBIREMgc2hvdWxkIGJlIHRoZSBvbmUgaGFuZGVkIGJhY2sgYnkgZ2V0V2luZG93
c0NvbnRleHQuCiAKQEAgLTQ4MSwxMSArNDgwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAvLyBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIG9mIGEgYnVnIHdoZXJlYnkgZ2V0dGluZyBh
biBIREMgZnJvbSBhIEdESSsgY29udGV4dAogICAgICAgICAvLyBsb3NlcyB0aGUgc2NhbGUgb3Bl
cmF0aW9ucyBhcHBsaWVkIHRvIHRoZSBjb250ZXh0LgogICAgICAgICBGbG9hdFNpemUgY3VycmVu
dFNjYWxlKCk7IAotICAgICAgICBib29sIGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKLSAgICAgICAgYm9vbCBp
blRyYW5zcGFyZW5jeUxheWVyKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgcHVzaFRyYW5zcGFyZW5j
eUxheWVySW50ZXJuYWwoY29uc3QgUVJlY3QgJnJlY3QsIHFyZWFsIG9wYWNpdHksIFFQaXhtYXAm
IGFscGhhTWFzayk7CiAgICAgICAgIHZvaWQgdGFrZU93bmVyc2hpcE9mUGxhdGZvcm1Db250ZXh0
KCk7CiAjZW5kaWYKQEAgLTUzOCwxMSArNTM1LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2b2lkIHNldFBsYXRmb3JtQ29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJh
dG9yKTsKIAorICAgICAgICB2b2lkIGJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9h
dCBvcGFjaXR5KTsKKyAgICAgICAgdm9pZCBlbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCk7
CisKICAgICAgICAgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKiBtX2RhdGE7CiAKICAg
ICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgbV9zdGF0ZTsKICAgICAgICAgVmVjdG9yPEdyYXBo
aWNzQ29udGV4dFN0YXRlPiBtX3N0YWNrOwogICAgICAgICBib29sIG1fdXBkYXRpbmdDb250cm9s
VGludHM7CisgICAgICAgIGludCBtX3RyYW5zcGFyZW5jeUNvdW50OwogICAgIH07CiAKICAgICBj
bGFzcyBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCAx
M2RkOWRiLi44NTQxNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC05NjMsNyArOTYzLDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmFkZElubmVyUm91bmRlZFJlY3RDbGlwKGNvbnN0IEludFJl
Y3QmIHJlY3QsIGludCB0aGlja25lc3MKICAgICBDR0NvbnRleHRFT0NsaXAoY29udGV4dCk7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9w
YWNpdHkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxh
eWVyKGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtOTczLDE3ICs5NzMsMTUgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJl
Z2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKICAgICBDR0NvbnRleHRSZWYgY29u
dGV4dCA9IHBsYXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29udGV4dFNldEFscGhhKGNvbnRleHQs
IG9wYWNpdHkpOwogICAgIENHQ29udGV4dEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoY29udGV4dCwg
MCk7Ci0gICAgbV9kYXRhLT5iZWdpblRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgbV9kYXRhLT5t
X3VzZXJUb0RldmljZVRyYW5zZm9ybUtub3duVG9CZUlkZW50aXR5ID0gZmFsc2U7CiB9CiAKLXZv
aWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCit2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcigpCiB7CiAgICAgaWYgKHBhaW50
aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIENHQ29udGV4dFJlZiBjb250ZXh0
ID0gcGxhdGZvcm1Db250ZXh0KCk7CiAgICAgQ0dDb250ZXh0RW5kVHJhbnNwYXJlbmN5TGF5ZXIo
Y29udGV4dCk7Ci0gICAgbV9kYXRhLT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwogCiAgICAgcmVz
dG9yZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmgKaW5k
ZXggZjRmYTEyMi4uNWMwMDMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVBy
aXZhdGVDRy5oCkBAIC00NiwxOCArNDYsMTAgQEAgcHVibGljOgogICAgICAgICAsIG1faGRjKDAp
CiAgICAgICAgICwgbV9zaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dzKGZhbHNlKQogI2VuZGlmCi0j
aWYgUExBVEZPUk0oV0lOKSB8fCAhQVNTRVJUX0RJU0FCTEVECi0gICAgICAgICwgbV90cmFuc3Bh
cmVuY3lDb3VudCgwKQotI2VuZGlmCiAgICAgICAgICwgbV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1L
bm93blRvQmVJZGVudGl0eShmYWxzZSkKICAgICAgICAgLCBtX2NvbnRleHRGbGFncyhmbGFncykK
ICAgICB7CiAgICAgfQotICAgIAotICAgIH5HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUo
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX3RyYW5zcGFyZW5jeUNvdW50KTsKLSAgICB9CiAK
ICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQogICAgIC8vIFRoZXNlIG1l
dGhvZHMgZG8gbm90aGluZyBvbiBNYWMuCkBAIC05MCwyNCArODIsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBtX3Nob3VsZEluY2x1ZGVDaGlsZFdpbmRvd3M7CiAjZW5kaWYKIAotICAgIHZvaWQgYmVn
aW5UcmFuc3BhcmVuY3lMYXllcigpCi0gICAgewotI2lmIFBMQVRGT1JNKFdJTikgfHwgIUFTU0VS
VF9ESVNBQkxFRAotICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50Kys7Ci0jZW5kaWYKLSAgICB9
Ci0gICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpCi0gICAgewotI2lmIFBMQVRGT1JNKFdJ
TikgfHwgIUFTU0VSVF9ESVNBQkxFRAotICAgICAgICBBU1NFUlQobV90cmFuc3BhcmVuY3lDb3Vu
dCA+IDApOwotICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50LS07Ci0jZW5kaWYKLSAgICB9Ci0K
ICAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBtX2NnQ29udGV4dDsKLSNpZiBQTEFURk9STShX
SU4pIHx8ICFBU1NFUlRfRElTQUJMRUQKLSAgICBpbnQgbV90cmFuc3BhcmVuY3lDb3VudDsKLSNl
bmRpZgogICAgIGJvb2wgbV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eTsK
ICAgICBHcmFwaGljc0NvbnRleHRDR0ZsYWdzIG1fY29udGV4dEZsYWdzOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KaW5kZXggMDY3ZDcz
NC4uMmUxNGFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRNYWMubW0KQEAgLTIyMiw3ICsyMjIsNyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwgY29ucwog
ICAgIENvbG9yU3BhY2UgZmlsbENvbG9yU3BhY2UgPSBjb250ZXh0LT5maWxsQ29sb3JTcGFjZSgp
OwogICAgIGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd0JsdXIsIHNoYWRv
d0NvbG9yLCBzaGFkb3dDb2xvclNwYWNlKTsKIAotICAgIGJvb2wgaGFzU2ltcGxlU2hhZG93ID0g
Y29udGV4dC0+dGV4dERyYXdpbmdNb2RlKCkgPT0gVGV4dE1vZGVGaWxsICYmIHNoYWRvd0NvbG9y
LmlzVmFsaWQoKSAmJiAhc2hhZG93Qmx1ciAmJiAhcGxhdGZvcm1EYXRhLmlzQ29sb3JCaXRtYXBG
b250KCkgJiYgKCFjb250ZXh0LT5zaGFkb3dzSWdub3JlVHJhbnNmb3JtcygpIHx8IGNvbnRleHQt
PmdldENUTSgpLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVkKCkpOworICAgIGJvb2wg
aGFzU2ltcGxlU2hhZG93ID0gY29udGV4dC0+dGV4dERyYXdpbmdNb2RlKCkgPT0gVGV4dE1vZGVG
aWxsICYmIHNoYWRvd0NvbG9yLmlzVmFsaWQoKSAmJiAhc2hhZG93Qmx1ciAmJiAhcGxhdGZvcm1E
YXRhLmlzQ29sb3JCaXRtYXBGb250KCkgJiYgKCFjb250ZXh0LT5zaGFkb3dzSWdub3JlVHJhbnNm
b3JtcygpIHx8IGNvbnRleHQtPmdldENUTSgpLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlw
cGVkKCkpICYmICFjb250ZXh0LT5pblRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgaWYgKGhhc1Np
bXBsZVNoYWRvdykgewogICAgICAgICAvLyBQYWludCBzaW1wbGUgc2hhZG93cyBvdXJzZWx2ZXMg
aW5zdGVhZCBvZiByZWx5aW5nIG9uIENHIHNoYWRvd3MsIHRvIGF2b2lkIGxvc2luZyBzdWJwaXhl
bCBhbnRpYWxpYXNpbmcuCiAgICAgICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGFkMzViZTUuLjZkMzkwZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yODMsNiAr
MjgzLDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0No
aWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogICAgIGlmICghY2hpbGRyZW4pCiAgICAg
ICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShTVkcpCisgICAgbmV3Q2hpbGQtPnNldEhhc1NWR1No
YWRvdyhoYXNTVkdTaGFkb3coKSB8fCBuZXdDaGlsZC0+aGFzU1ZHU2hhZG93KCkpOworI2VuZGlm
CisKICAgICBib29sIG5lZWRzVGFibGUgPSBmYWxzZTsKIAogICAgIGlmIChuZXdDaGlsZC0+aXNU
YWJsZUNvbCgpICYmIG5ld0NoaWxkLT5zdHlsZSgpLT5kaXNwbGF5KCkgPT0gVEFCTEVfQ09MVU1O
X0dST1VQKQpAQCAtMTc3Nyw2ICsxNzgxLDExIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzdHlsZURp
ZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0CiAg
ICAgaWYgKHNfYWZmZWN0c1BhcmVudEJsb2NrKQogICAgICAgICBoYW5kbGVEeW5hbWljRmxvYXRQ
b3NpdGlvbkNoYW5nZSgpOwogCisjaWYgRU5BQkxFKFNWRykKKyAgICBpZiAoKG1fcGFyZW50ICYm
IG1fcGFyZW50LT5oYXNTVkdTaGFkb3coKSkgfHwgKHN0eWxlKCktPnN2Z1N0eWxlKCkgJiYgc3R5
bGUoKS0+c3ZnU3R5bGUoKS0+c2hhZG93KCkpKQorICAgICAgICBzZXRIYXNTVkdTaGFkb3codHJ1
ZSk7CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnQpCiAgICAgICAgIHJldHVybjsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAyYTkwNzAxLi4wY2Yy
MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0zOTgsNiAr
Mzk4LDkgQEAgcHVibGljOgogICAgIC8vIGNvb3JkaW5hdGVzIGluc3RlYWQgb2YgaW4gcmVwYWlu
dCBjb250YWluZXIgY29vcmRpbmF0ZXMuICBFdmVudHVhbGx5IHRoZQogICAgIC8vIHJlc3Qgb2Yg
dGhlIHJlbmRlcmluZyB0cmVlIHdpbGwgbW92ZSB0byBhIHNpbWlsYXIgbW9kZWwuCiAgICAgdmly
dHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0
UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBhcmVudCwgSGl0VGVzdEFjdGlvbik7
CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzU1ZHU2hhZG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SGFzU1ZHU2hhZG93KGJvb2wgc2hhZG93ZWRQYXJlbnQp
IHsgVU5VU0VEX1BBUkFNKHNoYWRvd2VkUGFyZW50KTsgfQogI2VuZGlmCiAKICAgICBib29sIGlz
QW5vbnltb3VzKCkgY29uc3QgeyByZXR1cm4gbV9pc0Fub255bW91czsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAppbmRleCAyYzgxNTkwLi5k
NTY1YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Js
b2NrLmNwcApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNW
R0Jsb2NrOjpSZW5kZXJTVkdCbG9jayhTVkdFbGVtZW50KiBub2RlKSAKICAgICA6IFJlbmRlckJs
b2NrKG5vZGUpCisgICAgLCBtX2hhc1NWR1NoYWRvdyhmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCmluZGV4IDIyYzFmMTguLjM4
NjRmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
QmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2Nr
LmgKQEAgLTMzLDYgKzMzLDkgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNWR0Jsb2Nr
KFNWR0VsZW1lbnQqKTsKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCB2aXN1YWxPdmVyZmxvd1Jl
Y3QoKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wgaGFzU1ZHU2hhZG93KCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNTVkdTaGFkb3c7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SGFzU1ZHU2hh
ZG93KGJvb2wgc2hhZG93ZWRQYXJlbnQpIHsgbV9oYXNTVkdTaGFkb3cgPSBzaGFkb3dlZFBhcmVu
dDsgfQogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZShQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPik7CkBAIC00NCw2ICs0Nyw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdT
dHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwg
Y29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJv
bUVsZW1lbnQoKTsKKworICAgIGJvb2wgbV9oYXNTVkdTaGFkb3c7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3Bw
CmluZGV4IDE0YzFkYjguLjc0OGEwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC00MCw2ICs0MCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OlJlbmRlclNWR01vZGVs
T2JqZWN0KFNWR1N0eWxlZEVsZW1lbnQqIG5vZGUpCiAgICAgOiBSZW5kZXJPYmplY3Qobm9kZSkK
KyAgICAsIG1faGFzU1ZHU2hhZG93KGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5kZXggYzI4ZDNjNi4u
MTk0OWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuaApAQCAtNjYsMTIgKzY2LDE2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Ym9vbCBjaGVja0ludGVyc2VjdGlvbihSZW5kZXJPYmplY3QqLCBjb25zdCBGbG9hdFJlY3QmKTsK
ICAgICBzdGF0aWMgYm9vbCBjaGVja0VuY2xvc3VyZShSZW5kZXJPYmplY3QqLCBjb25zdCBGbG9h
dFJlY3QmKTsKIAorICAgIHZpcnR1YWwgYm9vbCBoYXNTVkdTaGFkb3coKSBjb25zdCB7IHJldHVy
biBtX2hhc1NWR1NoYWRvdzsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRIYXNTVkdTaGFkb3coYm9v
bCBzaGFkb3dlZFBhcmVudCkgeyBtX2hhc1NWR1NoYWRvdyA9IHNoYWRvd2VkUGFyZW50OyB9CisK
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKIHByaXZh
dGU6CiAgICAgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCwgU1ZHIHVzZXMg
YSBkaWZmZXJlbnQgbm9kZUF0UG9pbnQgbWV0aG9kCiAgICAgYm9vbCBub2RlQXRQb2ludChjb25z
dCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnRJbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRU
ZXN0QWN0aW9uKTsKKyAgICBib29sIG1faGFzU1ZHU2hhZG93OwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggYzg2NDJhYi4u
OWQwNzFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwCkBAIC01NCw2ICs1NCw3IEBAIFJlbmRlclNWR1Jvb3Q6OlJlbmRlclNWR1Jvb3QoU1ZH
U3R5bGVkRWxlbWVudCogbm9kZSkKICAgICAsIG1faXNMYXlvdXRTaXplQ2hhbmdlZChmYWxzZSkK
ICAgICAsIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKICAgICAsIG1f
bmVlZHNTaXplTmVnb3RpYXRpb25XaXRoSG9zdERvY3VtZW50KGZhbHNlKQorICAgICwgbV9oYXNT
VkdTaGFkb3coZmFsc2UpCiB7CiAgICAgc2V0UmVwbGFjZWQodHJ1ZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDc3ZmZjNzYuLjc3NDE4
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBA
IC01NSw2ICs1NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNCb3VuZGFy
aWVzVXBkYXRlKCkgeyBtX25lZWRzQm91bmRhcmllc09yVHJhbnNmb3JtVXBkYXRlID0gdHJ1ZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9uZWVkc0Jv
dW5kYXJpZXNPclRyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBo
YXNTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX2hhc1NWR1NoYWRvdzsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZXRIYXNTVkdTaGFkb3coYm9vbCBzaGFkb3dlZFBhcmVudCkgeyBtX2hhc1NWR1No
YWRvdyA9IHNoYWRvd2VkUGFyZW50OyB9CisKIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb21w
dXRlSW50cmluc2ljV2lkdGgoTGF5b3V0VW5pdCByZXBsYWNlZFdpZHRoKSBjb25zdDsKICAgICBM
YXlvdXRVbml0IGNvbXB1dGVJbnRyaW5zaWNIZWlnaHQoTGF5b3V0VW5pdCByZXBsYWNlZEhlaWdo
dCkgY29uc3Q7CkBAIC0xMTEsNiArMTE0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNMYXlv
dXRTaXplQ2hhbmdlZCA6IDE7CiAgICAgYm9vbCBtX25lZWRzQm91bmRhcmllc09yVHJhbnNmb3Jt
VXBkYXRlIDogMTsKICAgICBib29sIG1fbmVlZHNTaXplTmVnb3RpYXRpb25XaXRoSG9zdERvY3Vt
ZW50IDogMTsKKyAgICBib29sIG1faGFzU1ZHU2hhZG93IDogMTsKIH07CiAKIGlubGluZSBSZW5k
ZXJTVkdSb290KiB0b1JlbmRlclNWR1Jvb3QoUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCAw
MDc5MjE5Li4yZGNlMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTI3MiwyMSArMjcyLDM2IEBAIGJvb2wgU1ZHUmVuZGVy
U3VwcG9ydDo6aXNPdmVyZmxvd0hpZGRlbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKICAg
ICByZXR1cm4gb2JqZWN0LT5zdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBPSElEREVOOwogfQogCi12
b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyhj
b25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCkKK3ZvaWQg
U1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93cyhjb25zdCBS
ZW5kZXJPYmplY3QqIG9iamVjdCwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCkKIHsKLSAgICBBU1NF
UlQob2JqZWN0KTsKKyAgICAvLyBTaW5jZSAtd2Via2l0LXN2Zy1zaGFkb3cgZW5hYmxlcyBzaGFk
b3cgZHJhd2luZyBmb3IgaXRzIGNoaWxkcmVuLCBidXQgaXRzIGNoaWxkcmVuCisgICAgLy8gZG9u
J3QgaW5oZXJpdCB0aGUgc2hhZG93IGluIHRoZWlyIFNWR1JlbmRlclN0eWxlLCB3ZSBuZWVkIHRv
IHNlYXJjaCBvdXIgcGFyZW50cyBmb3IKKyAgICAvLyBzaGFkb3dzIGluIG9yZGVyIHRvIGNvcnJl
Y3RseSBjb21wdXRlIG91ciByZXBhaW50IHJlY3QuCiAKLSAgICBSZW5kZXJTdHlsZSogc3R5bGUg
PSBvYmplY3QtPnN0eWxlKCk7Ci0gICAgQVNTRVJUKHN0eWxlKTsKKyAgICBjb25zdCBSZW5kZXJP
YmplY3QqIGN1cnJlbnRPYmplY3QgPSBvYmplY3Q7CiAKLSAgICBjb25zdCBTVkdSZW5kZXJTdHls
ZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKTsKLSAgICBBU1NFUlQoc3ZnU3R5bGUpOwor
ICAgIGRvIHsKKyAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gY3VycmVudE9iamVjdC0+c3R5
bGUoKTsKKyAgICAgICAgQVNTRVJUKHN0eWxlKTsKKworICAgICAgICBjb25zdCBTVkdSZW5kZXJT
dHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICAgICAgQVNTRVJUKHN2Z1N0
eWxlKTsKKworICAgICAgICBpZiAoY29uc3QgU2hhZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUt
PnNoYWRvdygpKQorICAgICAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFp
bnRSZWN0KTsKKworICAgICAgICBjdXJyZW50T2JqZWN0ID0gY3VycmVudE9iamVjdC0+cGFyZW50
KCk7CisgICAgfSB3aGlsZSAoY3VycmVudE9iamVjdCAmJiBjdXJyZW50T2JqZWN0LT5oYXNTVkdT
aGFkb3coKSk7Cit9CisKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJl
Y3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9hdFJlY3QmIHJl
cGFpbnRSZWN0KQoreworICAgIEFTU0VSVChvYmplY3QpOwogCiAgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4ob2JqZWN0KTsKICAgICBTVkdSZXNv
dXJjZXMqIHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JS
ZW5kZXJPYmplY3QocmVuZGVyZXIpOwogICAgIGlmICghcmVzb3VyY2VzKSB7Ci0gICAgICAgIGlm
IChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCi0gICAgICAg
ICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3cocmVwYWludFJlY3QpOworICAgICAgICBp
bnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKG9iamVjdCwgcmVwYWludFJlY3QpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMDEsOCArMzE2LDcgQEAgdm9pZCBTVkdSZW5kZXJT
dXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2Jq
ZWN0KiBvYmoKICAgICBpZiAoUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIqIG1hc2tlciA9IHJlc291
cmNlcy0+bWFza2VyKCkpCiAgICAgICAgIHJlcGFpbnRSZWN0LmludGVyc2VjdChtYXNrZXItPnJl
c291cmNlQm91bmRpbmdCb3gocmVuZGVyZXIpKTsKIAotICAgIGlmIChjb25zdCBTaGFkb3dEYXRh
KiBzaGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCi0gICAgICAgIHNoYWRvdy0+YWRqdXN0UmVj
dEZvclNoYWRvdyhyZXBhaW50UmVjdCk7CisgICAgaW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hh
ZG93cyhvYmplY3QsIHJlcGFpbnRSZWN0KTsKIH0KIAogYm9vbCBTVkdSZW5kZXJTdXBwb3J0Ojpw
b2ludEluQ2xpcHBpbmdBcmVhKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBGbG9hdFBvaW50
JiBwb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBw
b3J0LmgKaW5kZXggOGJkNzk1OS4uZTVmNjk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKQEAgLTUxLDYgKzUxLDkgQEAgcHVibGljOgog
ICAgIC8vIEhlbHBlciBmdW5jdGlvbiBkZXRlcm1pbmluZyB3aGV0ZXIgb3ZlcmZsb3cgaXMgaGlk
ZGVuCiAgICAgc3RhdGljIGJvb2wgaXNPdmVyZmxvd0hpZGRlbihjb25zdCBSZW5kZXJPYmplY3Qq
KTsKIAorICAgIC8vIEV4cGFuZHMgdGhlIHJlcGFpbnRSZWN0IGJ5IGFsbCBvZiB0aGUgc2hhZG93
cyBhcHBsaWVkIHVwIHRoZSB0cmVlCisgICAgc3RhdGljIHZvaWQgaW50ZXJzZWN0UmVwYWludFJl
Y3RXaXRoU2hhZG93cyhjb25zdCBSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3QmKTsKKwogICAgIC8v
IENhbGN1bGF0ZXMgdGhlIHJlcGFpbnRSZWN0IGluIGNvbWJpbmF0aW9uIHdpdGggZmlsdGVyLCBj
bGlwcGVyIGFuZCBtYXNrZXIgaW4gbG9jYWwgY29vcmRpbmF0ZXMuCiAgICAgc3RhdGljIHZvaWQg
aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCosIEZs
b2F0UmVjdCYpOwogCg==
</data>
<flag name="review"
          id="100647"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
    <flag name="commit-queue"
          id="100650"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105525</attachid>
            <date>2011-08-29 14:51:51 -0700</date>
            <delta_ts>2012-09-26 02:25:49 -0700</delta_ts>
            <desc>new patch, with per-platform fixes</desc>
            <filename>7600532.diff</filename>
            <type>text/plain</type>
            <size>37720</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjRmMWI4Li5lNzViOTM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgt
MjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVw
YWludCBpc3N1ZXMgd2l0aCAtd2Via2l0LXN2Zy1zaGFkb3cgdXNlZCBvbiBhIGNvbnRhaW5lcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NDMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0
IGVuc3VyaW5nIHRoYXQgZWxlbWVudHMgd2l0aCAtd2Via2l0LXN2Zy1zaGFkb3cgYXBwbGllZCBy
ZXBhaW50IGNvcnJlY3RseS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Jl
cGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMDgtMjkgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUgaW4gV2ViQ29yZTo6UmVuZGVyRmxvdzo6
cmlnaHRtb3N0UG9zaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YzQxZGM5Li44NTJlZmNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTA5IEBACisyMDExLTA4LTI1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGFpbnQgaXNzdWVzIHdpdGggLXdlYmtpdC1z
dmctc2hhZG93IHVzZWQgb24gYSBjb250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW1BSRUxJTUlOQVJZXSAoY2F1c2VzIG92ZXJkcmF3KQorCisg
ICAgICAgIFdoZW4gYXBwbHlpbmcgLXdlYmtpdC1zdmctc2hhZG93IHRvIGNvbnRhaW5lciBlbGVt
ZW50cywgY2hpbGRyZW4KKyAgICAgICAgYXJlIGN1cnJlbnRseSB1bmF3YXJlIG9mIHRoZSBib3Vu
ZHMgb2YgdGhlIHNoYWRvdywgYW5kIGZhaWwgdG8gaW5jbHVkZSBpdAorICAgICAgICBpbiB0aGVp
ciByZXBhaW50IHJlY3QuIFdlIG5lZWQgdG8gc2VhcmNoIHVwIHRoZSB0cmVlIGFuZCBleHBhbmQK
KyAgICAgICAgb3VyIHJlcGFpbnQgcmVjdCBieSBhbGwgcGFyZW50J3Mgc2hhZG93cy4KKworICAg
ICAgICBUbyByZWR1Y2UgdGhlIHBlcmZvcm1hbmNlIGhpdCwgd2Uga2VlcCB0cmFjayBvZiB3aGV0
aGVyIG9yIG5vdCBhIFJlbmRlck9iamVjdAorICAgICAgICBvciBhbnkgb2YgaXRzIHBhcmVudHMg
aGFzIGEgLXdlYmtpdC1zdmctc2hhZG93IGFwcGxpZWQsIGFuZCBvbmx5IHNlYXJjaCB1cCB0aGUK
KyAgICAgICAgdHJlZSBhcyBsb25nIGFzIHRoYXQgaXMgdHJ1ZS4KKyAgICAgICAgCisgICAgICAg
IEluIGFkZGl0aW9uLCB0aGlzIGV4cG9zZXMgYSBidWcgd2hlcmUgdGV4dCBzaGFkb3dzIHdvdWxk
IGJlIHJlbmRlcmVkIGluY29ycmVjdGx5OgorICAgICAgICBpZiBiZWluZyByZW5kZXJlZCB3aXRo
IHplcm8gYmx1ciwgaW50byBhIHRyYW5zcGFyZW5jeSBsYXllciwgc2ltcGxlIHRleHQgc2hhZG93
cyB3ZXJlCisgICAgICAgIGJlaW5nIGFwcGxpZWQsIHdoaWNoIGRlcGVuZCBvbiB0aGUgYWJpbGl0
eSB0byBjbGVhciB0aGUgbGF5ZXIncyBzaGFkb3cgc3RhdGUsIGRyYXcsCisgICAgICAgIGFuZCBy
ZXNldCBpdC4gVGhpcyBpcyBub3QgcG9zc2libGUgd2hlbiBpbnNpZGUgYSB0cmFuc3BhcmVuY3kg
bGF5ZXIsIHNvIHdlIGNhbid0CisgICAgICAgIHVzZSBzaW1wbGUgdGV4dCBzaGFkb3dzIGluIHRo
aXMgY2FzZS4KKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL3JlcGFpbnQtd2Via2l0LXN2Zy1z
aGFkb3cuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6R3JhcGhpY3NDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6fkdyYXBoaWNzQ29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmlzSW5UcmFuc3BhcmVu
Y3lMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJh
bnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQ
bGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5z
cGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3VwcG9y
dHNUcmFuc3BhcmVuY3lMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFp
a3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3Jt
VHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpl
bmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0ds
eXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0dyYXBoaWNzQ29udGV4
dE9wZW5WRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxh
dGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0Ojppc0luVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5j
eUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFu
c3BhcmVuY3lMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhp
Y3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJl
Z2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpkcmF3R0RJR2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhp
Y3NDb250ZXh0Q0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpy
ZWxlYXNlV2luZG93c0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0NvbnRleHRDYWlyb1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnJlbGVhc2VXaW5kb3dzQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmdldFdpbmRvd3NDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxh
eWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJh
bnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQ
bGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphZGRDaGls
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6Omhhc1NWR1NoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OnNldEhhc1NWR1NoYWRvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9j
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdCbG9jazo6UmVuZGVyU1ZHQmxvY2sp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNWR0Jsb2NrOjpoYXNTVkdTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHQmxvY2s6OnNldEhhc1NWR1NoYWRvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdN
b2RlbE9iamVjdDo6UmVuZGVyU1ZHTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01v
ZGVsT2JqZWN0OjpoYXNTVkdTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9k
ZWxPYmplY3Q6OnNldEhhc1NWR1NoYWRvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OlJlbmRlclNW
R1Jvb3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6aGFzU1ZHU2hhZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNWR1Jvb3Q6OnNldEhhc1NWR1NoYWRvdyk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1
cHBvcnQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5k
ZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNl
cyk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisKIDIwMTEt
MDgtMjkgIFRvbSBaYWtyYWpzZWsgIDx0b216QGNvZGVhdXJvcmEub3JnPgogCiAgICAgICAgIGNh
bnZhcyBhcmMoKSBtaXNzaW5nIGxpbmUgdG8gc3RhcnQgb2YgYXJjIGlmIHN3aW5nIGlzIHplcm8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCmluZGV4IGM1YmVkNzMuLjJiOTEwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNzgsNiArNzgsNyBA
QCBwcml2YXRlOgogCiBHcmFwaGljc0NvbnRleHQ6OkdyYXBoaWNzQ29udGV4dChQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dCogcGxhdGZvcm1HcmFwaGljc0NvbnRleHQpCiAgICAgOiBtX3VwZGF0aW5n
Q29udHJvbFRpbnRzKGZhbHNlKQorICAgICwgbV90cmFuc3BhcmVuY3lDb3VudCgwKQogewogICAg
IHBsYXRmb3JtSW5pdChwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCk7CiB9CkBAIC04NSw2ICs4Niw3
IEBAIEdyYXBoaWNzQ29udGV4dDo6R3JhcGhpY3NDb250ZXh0KFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0KiBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4CiBHcmFwaGljc0NvbnRleHQ6On5HcmFwaGljc0Nv
bnRleHQoKQogewogICAgIEFTU0VSVChtX3N0YWNrLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKCFt
X3RyYW5zcGFyZW5jeUNvdW50KTsKICAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIH0KIApAQCAtMzMw
LDYgKzMzMiwyNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDo6c2hhZG93c0lnbm9yZVRyYW5zZm9y
bXMoKSBjb25zdAogICAgIHJldHVybiBtX3N0YXRlLnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwog
fQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBv
cGFjaXR5KQoreworICAgIGJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihvcGFjaXR5KTsK
KyAgICArK21fdHJhbnNwYXJlbmN5Q291bnQ7Cit9CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpl
bmRUcmFuc3BhcmVuY3lMYXllcigpCit7CisgICAgZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXll
cigpOworICAgIEFTU0VSVChtX3RyYW5zcGFyZW5jeUNvdW50ID4gMCk7CisgICAgLS1tX3RyYW5z
cGFyZW5jeUNvdW50OworfQorCisjaWYgIVBMQVRGT1JNKFFUKQorYm9vbCBHcmFwaGljc0NvbnRl
eHQ6OmlzSW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX3RyYW5z
cGFyZW5jeUNvdW50ID4gMCkgJiYgc3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMoKTsKK30KKyNl
bmRpZgorCiBib29sIEdyYXBoaWNzQ29udGV4dDo6dXBkYXRpbmdDb250cm9sVGludHMoKSBjb25z
dAogewogICAgIHJldHVybiBtX3VwZGF0aW5nQ29udHJvbFRpbnRzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAyNmFkMDJl
Li44NTE0N2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaApAQCAtMzcwLDYgKzM3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSk7CiAg
ICAgICAgIHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKKyAgICAgICAgYm9vbCBpc0luVHJh
bnNwYXJlbmN5TGF5ZXIoKSBjb25zdDsKIAogICAgICAgICBib29sIGhhc1NoYWRvdygpIGNvbnN0
OwogICAgICAgICB2b2lkIHNldFNoYWRvdyhjb25zdCBGbG9hdFNpemUmLCBmbG9hdCBibHVyLCBj
b25zdCBDb2xvciYsIENvbG9yU3BhY2UpOwpAQCAtNDI1LDEzICs0MjYsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdCaXRtYXAoU2hhcmVkQml0bWFwKiwgY29uc3Qg
SW50UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wKTsKICAgICAgICAgdm9p
ZCBkcmF3Qml0bWFwUGF0dGVybihTaGFyZWRCaXRtYXAqLCBjb25zdCBGbG9hdFJlY3QmIHRpbGVS
ZWN0SW4sIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgSW50U2l6ZSYgb3JpZ1Nv
dXJjZVNpemUpOwogICAgICAgICB2b2lkIGRyYXdJY29uKEhJQ09OIGljb24sIGNvbnN0IEludFJl
Y3QmIGRzdFJlY3QsIFVJTlQgZmxhZ3MpOwotICAgICAgICBib29sIGluVHJhbnNwYXJlbmN5TGF5
ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBIREMgZ2V0V2luZG93c0NvbnRl
eHQoY29uc3QgSW50UmVjdCYsIGJvb2wgc3VwcG9ydEFscGhhQmxlbmQgPSBmYWxzZSwgYm9vbCBt
YXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgLy8gVGhlIHBhc3NlZCBpbiByZWN0IGlzIHVzZWQgdG8g
Y3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGluZyBpbnNpZGUgdHJhbnNwYXJlbmN5IGxheWVy
cy4KICAgICAgICAgdm9pZCByZWxlYXNlV2luZG93c0NvbnRleHQoSERDLCBjb25zdCBJbnRSZWN0
JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IGZhbHNlLCBib29sIG1heUNyZWF0ZUJpdG1hcCA9
IHRydWUpOyAgICAvLyBUaGUgcGFzc2VkIGluIEhEQyBzaG91bGQgYmUgdGhlIG9uZSBoYW5kZWQg
YmFjayBieSBnZXRXaW5kb3dzQ29udGV4dC4KICAgICAgICAgdm9pZCBkcmF3Um91bmRDb3JuZXIo
Ym9vbCBuZXdDbGlwLCBSRUNUIGNsaXBSZWN0LCBSRUNUIHJlY3RXaW4sIEhEQyBkYywgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0KTsKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICAgICAgR3JhcGhpY3ND
b250ZXh0KEhEQywgYm9vbCBoYXNBbHBoYSA9IGZhbHNlKTsgLy8gRklYTUU6IFRvIGJlIHJlbW92
ZWQuCi0gICAgICAgIGJvb2wgaW5UcmFuc3BhcmVuY3lMYXllcigpIGNvbnN0OwogICAgICAgICBI
REMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wgc3VwcG9ydEFscGhhQmxl
bmQgPSB0cnVlLCBib29sIG1heUNyZWF0ZUJpdG1hcCA9IHRydWUpOyAvLyBUaGUgcGFzc2VkIGlu
IHJlY3QgaXMgdXNlZCB0byBjcmVhdGUgYSBiaXRtYXAgZm9yIGNvbXBvc2l0aW5nIGluc2lkZSB0
cmFuc3BhcmVuY3kgbGF5ZXJzLgogICAgICAgICB2b2lkIHJlbGVhc2VXaW5kb3dzQ29udGV4dChI
REMsIGNvbnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5kID0gdHJ1ZSwgYm9vbCBt
YXlDcmVhdGVCaXRtYXAgPSB0cnVlKTsgICAgLy8gVGhlIHBhc3NlZCBpbiBIREMgc2hvdWxkIGJl
IHRoZSBvbmUgaGFuZGVkIGJhY2sgYnkgZ2V0V2luZG93c0NvbnRleHQuCiAKQEAgLTQ4MSwxMSAr
NDgwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBi
ZWNhdXNlIG9mIGEgYnVnIHdoZXJlYnkgZ2V0dGluZyBhbiBIREMgZnJvbSBhIEdESSsgY29udGV4
dAogICAgICAgICAvLyBsb3NlcyB0aGUgc2NhbGUgb3BlcmF0aW9ucyBhcHBsaWVkIHRvIHRoZSBj
b250ZXh0LgogICAgICAgICBGbG9hdFNpemUgY3VycmVudFNjYWxlKCk7IAotICAgICAgICBib29s
IGluVHJhbnNwYXJlbmN5TGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShRVCkKLSAgICAgICAgYm9vbCBpblRyYW5zcGFyZW5jeUxheWVyKCkgY29u
c3Q7CiAgICAgICAgIHZvaWQgcHVzaFRyYW5zcGFyZW5jeUxheWVySW50ZXJuYWwoY29uc3QgUVJl
Y3QgJnJlY3QsIHFyZWFsIG9wYWNpdHksIFFQaXhtYXAmIGFscGhhTWFzayk7CiAgICAgICAgIHZv
aWQgdGFrZU93bmVyc2hpcE9mUGxhdGZvcm1Db250ZXh0KCk7CiAjZW5kaWYKQEAgLTUzOCwxMSAr
NTM1LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldFBsYXRmb3Jt
Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9yKTsKIAorICAgICAgICB2b2lkIGJl
Z2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsKKyAgICAgICAgdm9p
ZCBlbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCk7CisgICAgICAgIHN0YXRpYyBib29sIHN1
cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCk7CisKICAgICAgICAgR3JhcGhpY3NDb250ZXh0UGxh
dGZvcm1Qcml2YXRlKiBtX2RhdGE7CiAKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGUgbV9z
dGF0ZTsKICAgICAgICAgVmVjdG9yPEdyYXBoaWNzQ29udGV4dFN0YXRlPiBtX3N0YWNrOwogICAg
ICAgICBib29sIG1fdXBkYXRpbmdDb250cm9sVGludHM7CisgICAgICAgIHVuc2lnbmVkIG1fdHJh
bnNwYXJlbmN5Q291bnQ7CiAgICAgfTsKIAogICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dFN0YXRl
U2F2ZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IGE4NTlmODcuLmE3MGJh
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTg3OSw3ICs4NzksNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJQbGF0Zm9ybVNoYWRvdygpCiAgICAgcGxhdGZvcm1D
b250ZXh0KCktPnNoYWRvd0JsdXIoKS5jbGVhcigpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQordm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQogewog
ICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTg4NywxMCAr
ODg3LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxv
YXQgb3BhY2l0eSkKICAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dCgpLT5jcigpOwog
ICAgIGNhaXJvX3B1c2hfZ3JvdXAoY3IpOwogICAgIG1fZGF0YS0+bGF5ZXJzLmFwcGVuZChvcGFj
aXR5KTsKLSAgICBtX2RhdGEtPmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoKTsKIH0KIAotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250
ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkKIHsKICAgICBpZiAocGFpbnRpbmdE
aXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC05MDAsNyArODk5LDExIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCiAgICAgY2Fpcm9fcG9wX2dyb3Vw
X3RvX3NvdXJjZShjcik7CiAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5s
YXllcnMubGFzdCgpKTsKICAgICBtX2RhdGEtPmxheWVycy5yZW1vdmVMYXN0KCk7Ci0gICAgbV9k
YXRhLT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOworfQorCitib29sIEdyYXBoaWNzQ29udGV4dDo6
c3VwcG9ydHNUcmFuc3BhcmVuY3lMYXllcnMoKQoreworICAgIHJldHVybiB0cnVlOwogfQogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oCmluZGV4
IGQ4ZmYyMDUuLjlkZmY5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxh
dGZvcm1Qcml2YXRlQ2Fpcm8uaApAQCAtNzcsOCArNzcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB0
cmFuc2xhdGUoZmxvYXQsIGZsb2F0KTsKICAgICB2b2lkIGNvbmNhdENUTShjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mKTsKICAgICB2b2lkIHNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKLSAg
ICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoKSB7IG1fdHJhbnNwYXJlbmN5Q291bnQrKzsg
fQotICAgIHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSB7IG1fdHJhbnNwYXJlbmN5Q291bnQt
LTsgfQogICAgIHZvaWQgc3luY0NvbnRleHQoY2Fpcm9fdCogY3IpOwogI2Vsc2UKICAgICAvLyBP
biBldmVyeXRoaW5nIGVsc2UsIHdlIGRvIG5vdGhpbmcuCkBAIC05Miw4ICs5MCw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCwgZmxvYXQpIHt9CiAgICAgdm9pZCBjb25jYXRD
VE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJikge30KICAgICB2b2lkIHNldENUTShjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mKSB7fQotICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcigpIHt9Ci0g
ICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpIHt9CiAgICAgdm9pZCBzeW5jQ29udGV4dChj
YWlyb190KiBjcikge30KICNlbmRpZgogCkBAIC0xMDUsNyArMTAxLDYgQEAgcHVibGljOgogICAg
IEdka0V2ZW50RXhwb3NlKiBleHBvc2U7CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgSERDIG1f
aGRjOwotICAgIHVuc2lnbmVkIG1fdHJhbnNwYXJlbmN5Q291bnQ7CiAgICAgYm9vbCBtX3Nob3Vs
ZEluY2x1ZGVDaGlsZFdpbmRvd3M7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXgg
ZTE4ZmEwYS4uYzRmODQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtOTYzLDcgKzk2Myw3IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChjb25zdCBJbnRS
ZWN0JiByZWN0LCBpbnQgdGhpY2tuZXNzCiAgICAgQ0dDb250ZXh0RU9DbGlwKGNvbnRleHQpOwog
fQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBv
cGFjaXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lM
YXllcihmbG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTk3MywyMSArOTczLDI0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpi
ZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgQ0dDb250ZXh0UmVmIGNv
bnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRTZXRBbHBoYShjb250ZXh0
LCBvcGFjaXR5KTsKICAgICBDR0NvbnRleHRCZWdpblRyYW5zcGFyZW5jeUxheWVyKGNvbnRleHQs
IDApOwotICAgIG1fZGF0YS0+YmVnaW5UcmFuc3BhcmVuY3lMYXllcigpOwogICAgIG1fZGF0YS0+
bV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQordm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIoKQogewogICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKICAgICBDR0NvbnRleHRSZWYgY29udGV4
dCA9IHBsYXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29udGV4dEVuZFRyYW5zcGFyZW5jeUxheWVy
KGNvbnRleHQpOwotICAgIG1fZGF0YS0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKIAogICAgIHJl
c3RvcmUoKTsKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5
TGF5ZXJzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0LCBmbG9hdCBibHVyLCBj
b25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBpZiAocGFp
bnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNH
LmgKaW5kZXggZjRmYTEyMi4uNWMwMDMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRQbGF0
Zm9ybVByaXZhdGVDRy5oCkBAIC00NiwxOCArNDYsMTAgQEAgcHVibGljOgogICAgICAgICAsIG1f
aGRjKDApCiAgICAgICAgICwgbV9zaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dzKGZhbHNlKQogI2Vu
ZGlmCi0jaWYgUExBVEZPUk0oV0lOKSB8fCAhQVNTRVJUX0RJU0FCTEVECi0gICAgICAgICwgbV90
cmFuc3BhcmVuY3lDb3VudCgwKQotI2VuZGlmCiAgICAgICAgICwgbV91c2VyVG9EZXZpY2VUcmFu
c2Zvcm1Lbm93blRvQmVJZGVudGl0eShmYWxzZSkKICAgICAgICAgLCBtX2NvbnRleHRGbGFncyhm
bGFncykKICAgICB7CiAgICAgfQotICAgIAotICAgIH5HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVBy
aXZhdGUoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX3RyYW5zcGFyZW5jeUNvdW50KTsKLSAg
ICB9CiAKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQogICAgIC8vIFRo
ZXNlIG1ldGhvZHMgZG8gbm90aGluZyBvbiBNYWMuCkBAIC05MCwyNCArODIsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBtX3Nob3VsZEluY2x1ZGVDaGlsZFdpbmRvd3M7CiAjZW5kaWYKIAotICAgIHZv
aWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcigpCi0gICAgewotI2lmIFBMQVRGT1JNKFdJTikgfHwg
IUFTU0VSVF9ESVNBQkxFRAotICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50Kys7Ci0jZW5kaWYK
LSAgICB9Ci0gICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpCi0gICAgewotI2lmIFBMQVRG
T1JNKFdJTikgfHwgIUFTU0VSVF9ESVNBQkxFRAotICAgICAgICBBU1NFUlQobV90cmFuc3BhcmVu
Y3lDb3VudCA+IDApOwotICAgICAgICBtX3RyYW5zcGFyZW5jeUNvdW50LS07Ci0jZW5kaWYKLSAg
ICB9Ci0KICAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBtX2NnQ29udGV4dDsKLSNpZiBQTEFU
Rk9STShXSU4pIHx8ICFBU1NFUlRfRElTQUJMRUQKLSAgICBpbnQgbV90cmFuc3BhcmVuY3lDb3Vu
dDsKLSNlbmRpZgogICAgIGJvb2wgbV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVu
dGl0eTsKICAgICBHcmFwaGljc0NvbnRleHRDR0ZsYWdzIG1fY29udGV4dEZsYWdzOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNz
Q29udGV4dEhhaWt1LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1
L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcAppbmRleCBiM2Y2YzA2Li40ZGFmZTU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRl
eHRIYWlrdS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3Uv
R3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwCkBAIC0yNDksNyArMjQ5LDcgQEAgRmxvYXRSZWN0IEdy
YXBoaWNzQ29udGV4dDo6cm91bmRUb0RldmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5z
cGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5Q
bGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgaWYgKHBhaW50
aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5z
cGFyZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFy
ZW5jeUxheWVyKCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm47CkBAIC0yNjUsNiArMjY1LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3Bh
cmVuY3lMYXllcigpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBHcmFwaGljc0Nv
bnRleHQ6OnN1cHBvcnRzVHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCmluZGV4IDA2N2Q3MzQuLmY1NGY4ZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1t
CkBAIC0yMjIsNyArMjIyLDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIGNvbnMKICAgICBDb2xvclNw
YWNlIGZpbGxDb2xvclNwYWNlID0gY29udGV4dC0+ZmlsbENvbG9yU3BhY2UoKTsKICAgICBjb250
ZXh0LT5nZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvciwgc2hh
ZG93Q29sb3JTcGFjZSk7CiAKLSAgICBib29sIGhhc1NpbXBsZVNoYWRvdyA9IGNvbnRleHQtPnRl
eHREcmF3aW5nTW9kZSgpID09IFRleHRNb2RlRmlsbCAmJiBzaGFkb3dDb2xvci5pc1ZhbGlkKCkg
JiYgIXNoYWRvd0JsdXIgJiYgIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9udCgpICYmICgh
Y29udGV4dC0+c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSB8fCBjb250ZXh0LT5nZXRDVE0oKS5p
c0lkZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKTsKKyAgICBib29sIGhhc1NpbXBsZVNo
YWRvdyA9IGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpID09IFRleHRNb2RlRmlsbCAmJiBzaGFk
b3dDb2xvci5pc1ZhbGlkKCkgJiYgIXNoYWRvd0JsdXIgJiYgIXBsYXRmb3JtRGF0YS5pc0NvbG9y
Qml0bWFwRm9udCgpICYmICghY29udGV4dC0+c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSB8fCBj
b250ZXh0LT5nZXRDVE0oKS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKSAmJiAh
Y29udGV4dC0+aXNJblRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgaWYgKGhhc1NpbXBsZVNoYWRv
dykgewogICAgICAgICAvLyBQYWludCBzaW1wbGUgc2hhZG93cyBvdXJzZWx2ZXMgaW5zdGVhZCBv
ZiByZWx5aW5nIG9uIENHIHNoYWRvd3MsIHRvIGF2b2lkIGxvc2luZyBzdWJwaXhlbCBhbnRpYWxp
YXNpbmcuCiAgICAgICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhpY3NDb250ZXh0T3BlblZH
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0Nv
bnRleHRPcGVuVkcuY3BwCmluZGV4IDE1OTU2OTIuLjQ0MTdkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGlj
c0NvbnRleHRPcGVuVkcuY3BwCkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmNsZWFyUGxhdGZvcm1TaGFkb3coKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKGZs
b2F0IG9wYWNpdHkpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5z
cGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgVU5VU0VEX1BBUkFNKG9wYWNpdHkpOwog
fQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIoKQogewogICAgIGlm
IChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMwMiw2ICszMDIsMTEg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFuc3Bh
cmVuY3lMYXllcnMoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmNsZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKHBhaW50
aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAppbmRleCBhMDg5ZmVmLi40NGNkZDk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0Nv
bnRleHRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3Jh
cGhpY3NDb250ZXh0UXQuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgcHVibGljOgogICAgIGJvb2wg
YW50aUFsaWFzaW5nRm9yUmVjdHNBbmRMaW5lczsKIAogICAgIFFTdGFjazxUcmFuc3BhcmVuY3lM
YXllcio+IGxheWVyczsKLSAgICAvLyBDb3VudGluZyByZWFsIGxheWVycy4gUmVxdWlyZWQgYnkg
aW5UcmFuc3BhcmVuY3lMYXllcigpIGNhbGxzCisgICAgLy8gQ291bnRpbmcgcmVhbCBsYXllcnMu
IFJlcXVpcmVkIGJ5IGlzSW5UcmFuc3BhcmVuY3lMYXllcigpIGNhbGxzCiAgICAgLy8gRm9yIGV4
YW1wbGUsIGxheWVycyB3aXRoIHZhbGlkIGFscGhhTWFzayBhcmUgbm90IHJlYWwgbGF5ZXJzCiAg
ICAgaW50IGxheWVyQ291bnQ7CiAKQEAgLTc2Myw3ICs3NjMsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUm
IHRvcExlZgogICAgIHAtPmZpbGxQYXRoKHBhdGgucGxhdGZvcm1QYXRoKCksIFFDb2xvcihjb2xv
cikpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dDo6aW5UcmFuc3BhcmVuY3lMYXllcigpIGNv
bnN0Citib29sIEdyYXBoaWNzQ29udGV4dDo6aXNJblRyYW5zcGFyZW5jeUxheWVyKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9kYXRhLT5sYXllckNvdW50OwogfQpAQCAtMTA2MCw3ICsxMDYwLDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnB1c2hUcmFuc3BhcmVuY3lMYXllckludGVybmFsKGNv
bnN0IFFSZWN0ICZyZWN0LCBxcmVhbCBvcGEKICAgICBtX2RhdGEtPmxheWVycy5wdXNoKG5ldyBU
cmFuc3BhcmVuY3lMYXllcihwLCBkZXZpY2VDbGlwLCAxLjAsIGFscGhhTWFzaykpOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihm
bG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTEwODQsNyArMTA4NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRy
YW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCiAgICAgKyttX2RhdGEtPmxheWVyQ291bnQ7
CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCit2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcigpCiB7CiAgICAg
aWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTEwOCw2ICsxMTA4
LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXllcigpCiAgICAg
ZGVsZXRlIGxheWVyOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFuc3Bh
cmVuY3lMYXllcnMoKQoreworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6Y2xlYXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKaW5kZXggODlkNmZhMy4uZDdh
YzNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9H
cmFwaGljc0NvbnRleHRTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCkBAIC0yNjIsNyArMjYyLDcgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBwbGF0Zm9ybUNv
bnRleHQoKS0+cmVzdG9yZSgpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFu
c3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2lu
UGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4MywxMyArMjgzLDE4IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNrQ2FudmFzOjprRnVs
bENvbG9yTGF5ZXJfU2F2ZUZsYWcpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRy
YW5zcGFyZW5jeUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5z
cGFyZW5jeUxheWVyKCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5yZXN0b3JlKCk7CiB9CiAK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0OjpzdXBwb3J0c1RyYW5zcGFyZW5jeUxheWVycygpCit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIC8vIEdyYXBoaWNzIHByaW1pdGl2ZXMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRSZWN0Q2xpcChjb25zdCBJbnRSZWN0JiByZWN0
LCBpbnQgdGhpY2tuZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDR1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udENHV2luLmNwcAppbmRleCA5ZDA3M2FjLi5mNTk2Njk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcApAQCAtMTM4
LDcgKzEzOCw3IEBAIHN0YXRpYyB2b2lkIGRyYXdHRElHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBn
cmFwaGljc0NvbnRleHQsIGNvbnN0IFNpbXBsZUZvbnREYXRhCiAgICAgICAgIGlmICghZmlsbENv
bG9yLmFscGhhKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZHJhd0ludG9CaXRt
YXAgPSBmaWxsQ29sb3IuYWxwaGEoKSAhPSAyNTUgfHwgZ3JhcGhpY3NDb250ZXh0LT5pblRyYW5z
cGFyZW5jeUxheWVyKCk7CisgICAgICAgIGRyYXdJbnRvQml0bWFwID0gZmlsbENvbG9yLmFscGhh
KCkgIT0gMjU1IHx8IGdyYXBoaWNzQ29udGV4dC0+aXNJblRyYW5zcGFyZW5jeUxheWVyKCk7CiAg
ICAgICAgIGlmICghZHJhd0ludG9CaXRtYXApIHsKICAgICAgICAgICAgIEZsb2F0U2l6ZSBvZmZz
ZXQ7CiAgICAgICAgICAgICBmbG9hdCBibHVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKaW5k
ZXggY2IwYzlhNy4uNWZiY2EzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCkBAIC04OSw3
ICs4OSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUluaXQoSERDIGhkYywgYm9v
bCBoYXNBbHBoYSkKIC8vIHN1aXRhYmxlIGZvciBhbGwgY2xpZW50cz8KIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpyZWxlYXNlV2luZG93c0NvbnRleHQoSERDIGhkYywgY29uc3QgSW50UmVjdCYgZHN0
UmVjdCwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCwgYm9vbCBtYXlDcmVhdGVCaXRtYXApCiB7Ci0g
ICAgYm9vbCBjcmVhdGVkQml0bWFwID0gbWF5Q3JlYXRlQml0bWFwICYmICghbV9kYXRhLT5tX2hk
YyB8fCBpblRyYW5zcGFyZW5jeUxheWVyKCkpOworICAgIGJvb2wgY3JlYXRlZEJpdG1hcCA9IG1h
eUNyZWF0ZUJpdG1hcCAmJiAoIW1fZGF0YS0+bV9oZGMgfHwgaXNJblRyYW5zcGFyZW5jeUxheWVy
KCkpOwogICAgIGlmICghY3JlYXRlZEJpdG1hcCkgewogICAgICAgICBtX2RhdGEtPnJlc3RvcmUo
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDYWlyb1dpbi5jcHAKaW5kZXgg
OWY3YWVjZS4uMjJiZjk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9XaW4uY3BwCkBAIC0x
MjIsNyArMTIyLDcgQEAgc3RhdGljIHZvaWQgZHJhd0JpdG1hcFRvQ29udGV4dChHcmFwaGljc0Nv
bnRleHRQbGF0Zm9ybVByaXZhdGUqIGNvbnRleHQsIGNhaXJvX3QKIAogdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnJlbGVhc2VXaW5kb3dzQ29udGV4dChIREMgaGRjLCBjb25zdCBJbnRSZWN0JiBkc3RS
ZWN0LCBib29sIHN1cHBvcnRBbHBoYUJsZW5kLCBib29sIG1heUNyZWF0ZUJpdG1hcCkKIHsKLSAg
ICBib29sIGNyZWF0ZWRCaXRtYXAgPSBtYXlDcmVhdGVCaXRtYXAgJiYgKCFtX2RhdGEtPm1faGRj
IHx8IGluVHJhbnNwYXJlbmN5TGF5ZXIoKSk7CisgICAgYm9vbCBjcmVhdGVkQml0bWFwID0gbWF5
Q3JlYXRlQml0bWFwICYmICghbV9kYXRhLT5tX2hkYyB8fCBpc0luVHJhbnNwYXJlbmN5TGF5ZXIo
KSk7CiAgICAgaWYgKCFoZGMgfHwgIWNyZWF0ZWRCaXRtYXApIHsKICAgICAgICAgbV9kYXRhLT5y
ZXN0b3JlKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAKaW5kZXggZjAz
NDQ4Ny4uZTMxOWJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAKQEAgLTUxLDggKzUxLDYgQEAg
c3RhdGljIHZvaWQgZmlsbFdpdGhDbGVhckNvbG9yKEhCSVRNQVAgYml0bWFwKQogICAgIG1lbXNl
dChibXBJbmZvLmJtQml0cywgMCwgYnVmZmVyU2l6ZSk7CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250
ZXh0OjppblRyYW5zcGFyZW5jeUxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLT5tX3RyYW5z
cGFyZW5jeUNvdW50OyB9Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTaG91bGRJbmNsdWRl
Q2hpbGRXaW5kb3dzKGJvb2wgaW5jbHVkZSkKIHsKICAgICBtX2RhdGEtPm1fc2hvdWxkSW5jbHVk
ZUNoaWxkV2luZG93cyA9IGluY2x1ZGU7CkBAIC0xMDAsNyArOTgsNyBAQCBQYXNzT3duUHRyPEdy
YXBoaWNzQ29udGV4dDo6V2luZG93c0JpdG1hcD4gR3JhcGhpY3NDb250ZXh0OjpjcmVhdGVXaW5k
b3dzQml0bWFwKAogSERDIEdyYXBoaWNzQ29udGV4dDo6Z2V0V2luZG93c0NvbnRleHQoY29uc3Qg
SW50UmVjdCYgZHN0UmVjdCwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCwgYm9vbCBtYXlDcmVhdGVC
aXRtYXApCiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCBhIGJpdG1hcCBiZSBjcmVhdGVkIGFsc28g
d2hlbiBhIHNoYWRvdyBpcyBzZXQ/Ci0gICAgaWYgKG1heUNyZWF0ZUJpdG1hcCAmJiAoIW1fZGF0
YS0+bV9oZGMgfHwgaW5UcmFuc3BhcmVuY3lMYXllcigpKSkgeworICAgIGlmIChtYXlDcmVhdGVC
aXRtYXAgJiYgKCFtX2RhdGEtPm1faGRjIHx8IGlzSW5UcmFuc3BhcmVuY3lMYXllcigpKSkgewog
ICAgICAgICBpZiAoZHN0UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gMDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhp
Y3NDb250ZXh0V2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwCmluZGV4IDVmYjQzZDcuLjY2ODVjMWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29u
dGV4dFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9HcmFwaGljc0NvbnRleHRXaW5DRS5jcHAKQEAgLTExMTMsMTcgKzExMTMsMjIgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCB3
aWR0aCkKICAgICBTZWxlY3RPYmplY3QoZGMsIG9sZFBlbik7CiB9CiAKLXZvaWQgR3JhcGhpY3ND
b250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6YmVnaW5QbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkp
CiB7CiAgICAgbV9kYXRhLT5zYXZlKCk7CiAgICAgbV9kYXRhLT5tX29wYWNpdHkgKj0gb3BhY2l0
eTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkKIHsKICAg
ICBtX2RhdGEtPnJlc3RvcmUoKTsKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6OnN1cHBvcnRz
VHJhbnNwYXJlbmN5TGF5ZXJzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmNvbmNhdENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkK
IHsKICAgICBtX2RhdGEtPmNvbmNhdENUTSh0cmFuc2Zvcm0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCmlu
ZGV4IGYwMzI1MzcuLjM3YzRjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRXeC5jcHAKQEAgLTY0MiwxNiArNjQy
LDIxIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3JtU2hhZG93KCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOyAKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luVHJhbnNw
YXJlbmN5TGF5ZXIoZmxvYXQpIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1U
cmFuc3BhcmVuY3lMYXllcihmbG9hdCkgCiB7IAogICAgIG5vdEltcGxlbWVudGVkKCk7IAogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSAKK3ZvaWQgR3Jh
cGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkgCiB7IAogICAgIG5v
dEltcGxlbWVudGVkKCk7IAogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6c3VwcG9ydHNUcmFu
c3BhcmVuY3lMYXllcnMoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmNsZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmKSAKIHsgCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4
IGFkMzViZTUuLjZkMzkwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCkBAIC0yODMsNiArMjgzLDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphZGRDaGlsZChS
ZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogICAgIGlm
ICghY2hpbGRyZW4pCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShTVkcpCisgICAgbmV3
Q2hpbGQtPnNldEhhc1NWR1NoYWRvdyhoYXNTVkdTaGFkb3coKSB8fCBuZXdDaGlsZC0+aGFzU1ZH
U2hhZG93KCkpOworI2VuZGlmCisKICAgICBib29sIG5lZWRzVGFibGUgPSBmYWxzZTsKIAogICAg
IGlmIChuZXdDaGlsZC0+aXNUYWJsZUNvbCgpICYmIG5ld0NoaWxkLT5zdHlsZSgpLT5kaXNwbGF5
KCkgPT0gVEFCTEVfQ09MVU1OX0dST1VQKQpAQCAtMTc3Nyw2ICsxNzgxLDExIEBAIHZvaWQgUmVu
ZGVyT2JqZWN0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVu
ZGVyU3R5bGUqIG9sZFN0CiAgICAgaWYgKHNfYWZmZWN0c1BhcmVudEJsb2NrKQogICAgICAgICBo
YW5kbGVEeW5hbWljRmxvYXRQb3NpdGlvbkNoYW5nZSgpOwogCisjaWYgRU5BQkxFKFNWRykKKyAg
ICBpZiAoKG1fcGFyZW50ICYmIG1fcGFyZW50LT5oYXNTVkdTaGFkb3coKSkgfHwgKHN0eWxlKCkt
PnN2Z1N0eWxlKCkgJiYgc3R5bGUoKS0+c3ZnU3R5bGUoKS0+c2hhZG93KCkpKQorICAgICAgICBz
ZXRIYXNTVkdTaGFkb3codHJ1ZSk7CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnQpCiAgICAg
ICAgIHJldHVybjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApp
bmRleCA4OTgzMDZjLi4zOWFlNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCkBAIC0zOTgsNiArMzk4LDkgQEAgcHVibGljOgogICAgIC8vIGNvb3JkaW5hdGVzIGlu
c3RlYWQgb2YgaW4gcmVwYWludCBjb250YWluZXIgY29vcmRpbmF0ZXMuICBFdmVudHVhbGx5IHRo
ZQogICAgIC8vIHJlc3Qgb2YgdGhlIHJlbmRlcmluZyB0cmVlIHdpbGwgbW92ZSB0byBhIHNpbWls
YXIgbW9kZWwuCiAgICAgdmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0VGVz
dFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBhcmVu
dCwgSGl0VGVzdEFjdGlvbik7CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzU1ZHU2hhZG93KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SGFzU1ZHU2hhZG93KGJv
b2wpIHsgfQogI2VuZGlmCiAKICAgICBib29sIGlzQW5vbnltb3VzKCkgY29uc3QgeyByZXR1cm4g
bV9pc0Fub255bW91czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0Jsb2NrLmNwcAppbmRleCAyYzgxNTkwLi5kNTY1YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcApAQCAtMzEsNiArMzEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR0Jsb2NrOjpSZW5kZXJTVkdCbG9jayhTVkdF
bGVtZW50KiBub2RlKSAKICAgICA6IFJlbmRlckJsb2NrKG5vZGUpCisgICAgLCBtX2hhc1NWR1No
YWRvdyhmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdCbG9jay5oCmluZGV4IDIyYzFmMTguLjM4NjRmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKQEAgLTMzLDYgKzMzLDkgQEAgcHVibGlj
OgogICAgIGV4cGxpY2l0IFJlbmRlclNWR0Jsb2NrKFNWR0VsZW1lbnQqKTsKIAogICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCB2aXN1YWxPdmVyZmxvd1JlY3QoKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0
dWFsIGJvb2wgaGFzU1ZHU2hhZG93KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTVkdTaGFkb3c7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0SGFzU1ZHU2hhZG93KGJvb2wgc2hhZG93ZWRQYXJlbnQpIHsg
bV9oYXNTVkdTaGFkb3cgPSBzaGFkb3dlZFBhcmVudDsgfQogCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CkBAIC00NCw2ICs0Nyw4
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKworICAgIGJvb2wgbV9o
YXNTVkdTaGFkb3c7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IDE0YzFkYjguLjc0OGEwNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuY3BwCkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVy
U1ZHTW9kZWxPYmplY3Q6OlJlbmRlclNWR01vZGVsT2JqZWN0KFNWR1N0eWxlZEVsZW1lbnQqIG5v
ZGUpCiAgICAgOiBSZW5kZXJPYmplY3Qobm9kZSkKKyAgICAsIG1faGFzU1ZHU2hhZG93KGZhbHNl
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR01vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R01vZGVsT2JqZWN0LmgKaW5kZXggYzI4ZDNjNi4uMTk0OWVlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNjYsMTIg
KzY2LDE2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBjaGVja0ludGVyc2VjdGlvbihSZW5k
ZXJPYmplY3QqLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICBzdGF0aWMgYm9vbCBjaGVja0VuY2xv
c3VyZShSZW5kZXJPYmplY3QqLCBjb25zdCBGbG9hdFJlY3QmKTsKIAorICAgIHZpcnR1YWwgYm9v
bCBoYXNTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX2hhc1NWR1NoYWRvdzsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXRIYXNTVkdTaGFkb3coYm9vbCBzaGFkb3dlZFBhcmVudCkgeyBtX2hhc1NW
R1NoYWRvdyA9IHNoYWRvd2VkUGFyZW50OyB9CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKIHByaXZhdGU6CiAgICAgLy8gVGhpcyBtZXRob2Qgc2hv
dWxkIG5ldmVyIGJlIGNhbGxlZCwgU1ZHIHVzZXMgYSBkaWZmZXJlbnQgbm9kZUF0UG9pbnQgbWV0
aG9kCiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0
UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKTsKKyAgICBib29sIG1faGFz
U1ZHU2hhZG93OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5jcHAKaW5kZXggYzg2NDJhYi4uOWQwNzFmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC01NCw2ICs1NCw3IEBAIFJl
bmRlclNWR1Jvb3Q6OlJlbmRlclNWR1Jvb3QoU1ZHU3R5bGVkRWxlbWVudCogbm9kZSkKICAgICAs
IG1faXNMYXlvdXRTaXplQ2hhbmdlZChmYWxzZSkKICAgICAsIG1fbmVlZHNCb3VuZGFyaWVzT3JU
cmFuc2Zvcm1VcGRhdGUodHJ1ZSkKICAgICAsIG1fbmVlZHNTaXplTmVnb3RpYXRpb25XaXRoSG9z
dERvY3VtZW50KGZhbHNlKQorICAgICwgbV9oYXNTVkdTaGFkb3coZmFsc2UpCiB7CiAgICAgc2V0
UmVwbGFjZWQodHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oCmluZGV4IDc3ZmZjNzYuLjc3NDE4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC01NSw2ICs1NSw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNCb3VuZGFyaWVzVXBkYXRlKCkgeyBtX25lZWRzQm91bmRh
cmllc09yVHJhbnNmb3JtVXBkYXRlID0gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVk
c1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9uZWVkc0JvdW5kYXJpZXNPclRyYW5zZm9ybVVwZGF0ZSA9
IHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBoYXNTVkdTaGFkb3coKSBjb25zdCB7IHJldHVy
biBtX2hhc1NWR1NoYWRvdzsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRIYXNTVkdTaGFkb3coYm9v
bCBzaGFkb3dlZFBhcmVudCkgeyBtX2hhc1NWR1NoYWRvdyA9IHNoYWRvd2VkUGFyZW50OyB9CisK
IHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlSW50cmluc2ljV2lkdGgoTGF5b3V0VW5p
dCByZXBsYWNlZFdpZHRoKSBjb25zdDsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVJbnRyaW5zaWNI
ZWlnaHQoTGF5b3V0VW5pdCByZXBsYWNlZEhlaWdodCkgY29uc3Q7CkBAIC0xMTEsNiArMTE0LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faXNMYXlvdXRTaXplQ2hhbmdlZCA6IDE7CiAgICAgYm9v
bCBtX25lZWRzQm91bmRhcmllc09yVHJhbnNmb3JtVXBkYXRlIDogMTsKICAgICBib29sIG1fbmVl
ZHNTaXplTmVnb3RpYXRpb25XaXRoSG9zdERvY3VtZW50IDogMTsKKyAgICBib29sIG1faGFzU1ZH
U2hhZG93IDogMTsKIH07CiAKIGlubGluZSBSZW5kZXJTVkdSb290KiB0b1JlbmRlclNWR1Jvb3Qo
UmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCAwMDc5MjE5Li4yZGNlMmIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTI3
MiwyMSArMjcyLDM2IEBAIGJvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6aXNPdmVyZmxvd0hpZGRlbihj
b25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKICAgICByZXR1cm4gb2JqZWN0LT5zdHlsZSgpLT5v
dmVyZmxvd1goKSA9PSBPSElEREVOOwogfQogCi12b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVy
c2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwg
RmxvYXRSZWN0JiByZXBhaW50UmVjdCkKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0
UmVwYWludFJlY3RXaXRoU2hhZG93cyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgRmxvYXRS
ZWN0JiByZXBhaW50UmVjdCkKIHsKLSAgICBBU1NFUlQob2JqZWN0KTsKKyAgICAvLyBTaW5jZSAt
d2Via2l0LXN2Zy1zaGFkb3cgZW5hYmxlcyBzaGFkb3cgZHJhd2luZyBmb3IgaXRzIGNoaWxkcmVu
LCBidXQgaXRzIGNoaWxkcmVuCisgICAgLy8gZG9uJ3QgaW5oZXJpdCB0aGUgc2hhZG93IGluIHRo
ZWlyIFNWR1JlbmRlclN0eWxlLCB3ZSBuZWVkIHRvIHNlYXJjaCBvdXIgcGFyZW50cyBmb3IKKyAg
ICAvLyBzaGFkb3dzIGluIG9yZGVyIHRvIGNvcnJlY3RseSBjb21wdXRlIG91ciByZXBhaW50IHJl
Y3QuCiAKLSAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7Ci0gICAgQVNT
RVJUKHN0eWxlKTsKKyAgICBjb25zdCBSZW5kZXJPYmplY3QqIGN1cnJlbnRPYmplY3QgPSBvYmpl
Y3Q7CiAKLSAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5
bGUoKTsKLSAgICBBU1NFUlQoc3ZnU3R5bGUpOworICAgIGRvIHsKKyAgICAgICAgUmVuZGVyU3R5
bGUqIHN0eWxlID0gY3VycmVudE9iamVjdC0+c3R5bGUoKTsKKyAgICAgICAgQVNTRVJUKHN0eWxl
KTsKKworICAgICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3Zn
U3R5bGUoKTsKKyAgICAgICAgQVNTRVJUKHN2Z1N0eWxlKTsKKworICAgICAgICBpZiAoY29uc3Qg
U2hhZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQorICAgICAgICAgICAgc2hh
ZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKKworICAgICAgICBjdXJyZW50
T2JqZWN0ID0gY3VycmVudE9iamVjdC0+cGFyZW50KCk7CisgICAgfSB3aGlsZSAoY3VycmVudE9i
amVjdCAmJiBjdXJyZW50T2JqZWN0LT5oYXNTVkdTaGFkb3coKSk7Cit9CisKK3ZvaWQgU1ZHUmVu
ZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRl
ck9iamVjdCogb2JqZWN0LCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0KQoreworICAgIEFTU0VSVChv
YmplY3QpOwogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvbnN0X2Nhc3Q8UmVuZGVy
T2JqZWN0Kj4ob2JqZWN0KTsKICAgICBTVkdSZXNvdXJjZXMqIHJlc291cmNlcyA9IFNWR1Jlc291
cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJPYmplY3QocmVuZGVyZXIpOwogICAg
IGlmICghcmVzb3VyY2VzKSB7Ci0gICAgICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cg
PSBzdmdTdHlsZS0+c2hhZG93KCkpCi0gICAgICAgICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JT
aGFkb3cocmVwYWludFJlY3QpOworICAgICAgICBpbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFk
b3dzKG9iamVjdCwgcmVwYWludFJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0z
MDEsOCArMzE2LDcgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVj
dFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmoKICAgICBpZiAoUmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXIqIG1hc2tlciA9IHJlc291cmNlcy0+bWFza2VyKCkpCiAgICAgICAgIHJl
cGFpbnRSZWN0LmludGVyc2VjdChtYXNrZXItPnJlc291cmNlQm91bmRpbmdCb3gocmVuZGVyZXIp
KTsKIAotICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93
KCkpCi0gICAgICAgIHNoYWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7Cisg
ICAgaW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93cyhvYmplY3QsIHJlcGFpbnRSZWN0KTsK
IH0KIAogYm9vbCBTVkdSZW5kZXJTdXBwb3J0Ojpwb2ludEluQ2xpcHBpbmdBcmVhKFJlbmRlck9i
amVjdCogb2JqZWN0LCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKaW5kZXggOGJkNzk1OS4uZTVmNjk0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBw
b3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0
LmgKQEAgLTUxLDYgKzUxLDkgQEAgcHVibGljOgogICAgIC8vIEhlbHBlciBmdW5jdGlvbiBkZXRl
cm1pbmluZyB3aGV0ZXIgb3ZlcmZsb3cgaXMgaGlkZGVuCiAgICAgc3RhdGljIGJvb2wgaXNPdmVy
Zmxvd0hpZGRlbihjb25zdCBSZW5kZXJPYmplY3QqKTsKIAorICAgIC8vIEV4cGFuZHMgdGhlIHJl
cGFpbnRSZWN0IGJ5IGFsbCBvZiB0aGUgc2hhZG93cyBhcHBsaWVkIHVwIHRoZSB0cmVlCisgICAg
c3RhdGljIHZvaWQgaW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93cyhjb25zdCBSZW5kZXJP
YmplY3QqLCBGbG9hdFJlY3QmKTsKKwogICAgIC8vIENhbGN1bGF0ZXMgdGhlIHJlcGFpbnRSZWN0
IGluIGNvbWJpbmF0aW9uIHdpdGggZmlsdGVyLCBjbGlwcGVyIGFuZCBtYXNrZXIgaW4gbG9jYWwg
Y29vcmRpbmF0ZXMuCiAgICAgc3RhdGljIHZvaWQgaW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVz
b3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCosIEZsb2F0UmVjdCYpOwogCg==
</data>
<flag name="commit-queue"
          id="101725"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>106521</attachid>
            <date>2011-09-06 17:08:34 -0700</date>
            <delta_ts>2011-09-06 17:08:34 -0700</delta_ts>
            <desc>test case of applying a shadow, and transforming the shadowed paths below the shadowed element</desc>
            <filename>webkit-svg-shadow-transform.html</filename>
            <type>text/html</type>
            <size>655</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PGh0bWw+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIHN0
eWxlPSItd2Via2l0LXN2Zy1zaGFkb3c6IDUwcHggNTBweCAwcHggI2FhYTsiPgogICAgICAgIDxn
IHRyYW5zZm9ybT0ic2NhbGUoNCkiPgogICAgICAgICAgICA8cmVjdCBpZD0iYSIgd2lkdGg9IjI1
IiBoZWlnaHQ9IjI1IiB4PSIwIiB5PSIwIiBmaWxsPSJibGFjayIgLz4KICAgICAgICA8L2c+CiAg
ICAgICAgPHJlY3QgaWQ9ImEiIHdpZHRoPSIyNSIgaGVpZ2h0PSIyNSIgeD0iMjAwIiB5PSIwIiBm
aWxsPSJibGFjayIgLz4KICAgIDwvZz4KICAgIAogICAgPGcgdHJhbnNmb3JtPSJzY2FsZSg0KSI+
CiAgICAgICAgPGcgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogNTBweCA1MHB4IDBweCAjNjAw
OyI+CiAgICAgICAgICAgIDxyZWN0IGlkPSJhIiB3aWR0aD0iMjUiIGhlaWdodD0iMjUiIHg9IjEw
MCIgeT0iMCIgZmlsbD0icmVkIiAvPgogICAgICAgIDwvZz4KICAgIDwvZz4KICAgIDx0ZXh0IHg9
IjUwIiB5PSI0MDAiPldpdGgge3NoYWRvdywgdGhlbiBzY2FsZX0gb24gbGVmdCwgd2l0aG91dCBh
bnkgdHJhbnNmb3JtIGluIGNlbnRlciwgd2l0aCB7c2NhbGUsIHRoZW4gc2hhZG93fSBvbiB0aGUg
cmlnaHQuPC90ZXh0Pgo8L3N2Zz4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165758</attachid>
            <date>2012-09-26 02:25:49 -0700</date>
            <delta_ts>2012-10-16 19:26:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>svg-shadow.diff</filename>
            <type>text/plain</type>
            <size>20808</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggYzUyM2QyNi4u
YTc0NmM5NSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAg
LTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmFkZENoaWxkKFJlbmRlck9iamVj
dCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiAgICAgaWYgKCFjaGlsZHJl
bikKICAgICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKFNWRykKKyAgICBuZXdDaGlsZC0+c2V0
SGFzU1ZHU2hhZG93KGhhc1NWR1NoYWRvdygpIHx8IG5ld0NoaWxkLT5oYXNTVkdTaGFkb3coKSk7
CisjZW5kaWYKKwogICAgIGJvb2wgbmVlZHNUYWJsZSA9IGZhbHNlOwogCiAgICAgaWYgKG5ld0No
aWxkLT5pc1JlbmRlclRhYmxlQ29sKCkpIHsKQEAgLTE5MDEsNiArMTkwNSwxMCBAQCB2b2lkIFJl
bmRlck9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdAogICAgIGlmIChzX2FmZmVjdHNQYXJlbnRCbG9jaykKICAgICAgICAg
aGFuZGxlRHluYW1pY0Zsb2F0UG9zaXRpb25DaGFuZ2UoKTsKIAorI2lmIEVOQUJMRShTVkcpCisg
ICAgc2V0SGFzU1ZHU2hhZG93KChtX3BhcmVudCAmJiBtX3BhcmVudC0+aGFzU1ZHU2hhZG93KCkp
IHx8IChzdHlsZSgpLT5zdmdTdHlsZSgpICYmIHN0eWxlKCktPnN2Z1N0eWxlKCktPnNoYWRvdygp
KSk7CisjZW5kaWYKKwogICAgIGlmICghbV9wYXJlbnQpCiAgICAgICAgIHJldHVybjsKICAgICAK
QEAgLTMwMzEsNiArMzAzOSwxMSBAQCBGbG9hdFJlY3QgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVj
dEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0CiAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogfQog
CitGbG9hdFJlY3QgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4
Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlcGFpbnRSZWN0SW5Mb2Nh
bENvb3JkaW5hdGVzKCk7Cit9CisKIEFmZmluZVRyYW5zZm9ybSBSZW5kZXJPYmplY3Q6OmxvY2Fs
VHJhbnNmb3JtKCkgY29uc3QKIHsKICAgICBzdGF0aWMgY29uc3QgQWZmaW5lVHJhbnNmb3JtIGlk
ZW50aXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDI4Y2Rh
M2EuLjQ1MmY2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAg
LTQ3NCw2ICs0NzQsOSBAQCBwdWJsaWM6CiAgICAgLy8gcmVzcGVjdGluZyBjbGlwcGluZywgbWFz
a2luZywgZmlsdGVycywgb3BhY2l0eSwgc3Ryb2tlLXdpZHRoIGFuZCBtYXJrZXJzCiAgICAgdmly
dHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdDsKIAor
ICAgIC8vIHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzLCBidXQgd2l0aG91dCB0YWtpbmcg
LXdlYmtpdC1zdmctc2hhZG93IGludG8gYWNjb3VudAorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJl
cGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KCkgY29uc3Q7CisK
ICAgICAvLyBUaGlzIG9ubHkgcmV0dXJucyB0aGUgdHJhbnNmb3JtPSIiIHZhbHVlIGZyb20gdGhl
IGVsZW1lbnQKICAgICAvLyBtb3N0IGNhbGxzaXRlcyB3YW50IGxvY2FsVG9QYXJlbnRUcmFuc2Zv
cm0oKSBpbnN0ZWFkLgogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNmb3Jt
KCkgY29uc3Q7CkBAIC00ODYsNiArNDg5LDkgQEAgcHVibGljOgogICAgIC8vIGNvb3JkaW5hdGVz
IGluc3RlYWQgb2YgaW4gcmVwYWludCBjb250YWluZXIgY29vcmRpbmF0ZXMuICBFdmVudHVhbGx5
IHRoZQogICAgIC8vIHJlc3Qgb2YgdGhlIHJlbmRlcmluZyB0cmVlIHdpbGwgbW92ZSB0byBhIHNp
bWlsYXIgbW9kZWwuCiAgICAgdmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0
VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBh
cmVudCwgSGl0VGVzdEFjdGlvbik7CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzU1ZHU2hhZG93KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SGFzU1ZHU2hhZG93
KGJvb2wpIHsgfQogI2VuZGlmCiAKICAgICBib29sIGlzQW5vbnltb3VzKCkgY29uc3QgeyByZXR1
cm4gbV9iaXRmaWVsZHMuaXNBbm9ueW1vdXMoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAppbmRleCAzNjEyNzk0Li4yZmE0ZGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcApAQCAt
MzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR0Jsb2NrOjpSZW5k
ZXJTVkdCbG9jayhTVkdFbGVtZW50KiBub2RlKSAKICAgICA6IFJlbmRlckJsb2NrKG5vZGUpCisg
ICAgLCBtX2hhc1NWR1NoYWRvdyhmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCmluZGV4IDdmNWI3ODUuLjE2Yjc5YjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKQEAgLTM0LDYg
KzM0LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IHZpc3VhbE92ZXJmbG93
UmVjdCgpIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIGhhc1NWR1NoYWRvdygpIGNvbnN0IHsg
cmV0dXJuIG1faGFzU1ZHU2hhZG93OyB9CisgICAgdmlydHVhbCB2b2lkIHNldEhhc1NWR1NoYWRv
dyhib29sIGhhc1NoYWRvdykgeyBtX2hhc1NWR1NoYWRvdyA9IGhhc1NoYWRvdzsgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIE9WRVJSSURFOwogCkBA
IC00NSw2ICs0OCw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKICAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpOworCisgICAgYm9vbCBtX2hhc1NWR1NoYWRvdzsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKaW5kZXgg
NTZiZTVjZC4uYTk0NGMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbWFnZS5jcHAKQEAgLTkxLDggKzkxLDEyIEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6
OmxheW91dCgpCiAgICAgfQogCiAgICAgaWYgKG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlKSB7Ci0g
ICAgICAgIG1fcmVwYWludEJvdW5kaW5nQm94ID0gbV9vYmplY3RCb3VuZGluZ0JveDsKLSAgICAg
ICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKHRo
aXMsIG1fcmVwYWludEJvdW5kaW5nQm94KTsKKyAgICAgICAgbV9yZXBhaW50Qm91bmRpbmdCb3hF
eGNsdWRpbmdTaGFkb3cgPSBtX29iamVjdEJvdW5kaW5nQm94OworICAgICAgICBTVkdSZW5kZXJT
dXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50
Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3cpOworCisgICAgICAgIG1fcmVwYWludEJvdW5kaW5n
Qm94ID0gbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7CisgICAgICAgIFNWR1Jl
bmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3ModGhpcywgbV9yZXBh
aW50Qm91bmRpbmdCb3gpOworCiAgICAgICAgIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlID0gZmFs
c2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lt
YWdlLmgKaW5kZXggOWNkM2VlYS4uNWEyM2EyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaApAQCAtNTcsNiArNTcsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV9v
YmplY3RCb3VuZGluZ0JveDsgfQogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5n
Qm94KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveDsgfQogICAgIHZpcnR1YWwg
RmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4g
bV9yZXBhaW50Qm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVj
dEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1f
cmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
YWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsK
IApAQCAtNzUsNiArNzYsNyBAQCBwcml2YXRlOgogICAgIEFmZmluZVRyYW5zZm9ybSBtX2xvY2Fs
VHJhbnNmb3JtOwogICAgIEZsb2F0UmVjdCBtX29iamVjdEJvdW5kaW5nQm94OwogICAgIEZsb2F0
UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveDsKKyAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRp
bmdCb3hFeGNsdWRpbmdTaGFkb3c7CiAgICAgT3duUHRyPFJlbmRlckltYWdlUmVzb3VyY2U+IG1f
aW1hZ2VSZXNvdXJjZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCAyMWJlZDRhLi4yNGM0NjcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCkBAIC02OSw2ICs2
OSwxNCBAQCBGbG9hdFJlY3QgUmVuZGVyU1ZHSW5saW5lOjpyZXBhaW50UmVjdEluTG9jYWxDb29y
ZGluYXRlcygpIGNvbnN0CiAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogfQogCitGbG9hdFJlY3Qg
UmVuZGVyU1ZHSW5saW5lOjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NW
R1NoYWRvdygpIGNvbnN0Cit7CisgICAgaWYgKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0ID0g
UmVuZGVyU1ZHVGV4dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKHRoaXMpKQorICAgICAg
ICByZXR1cm4gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NW
R1NoYWRvdygpOworCisgICAgcmV0dXJuIEZsb2F0UmVjdCgpOworfQorCiBMYXlvdXRSZWN0IFJl
bmRlclNWR0lubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1JlbmRl
clN1cHBvcnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250
YWluZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
LmgKaW5kZXggOGVmOWNlZC4uMDBlODZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
RmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3Q7CiAgICAgdmlydHVhbCBGbG9hdFJl
Y3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEZs
b2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygp
IGNvbnN0OwogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JS
ZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
TW9kZWxPYmplY3QuY3BwCmluZGV4IDU2MzcyYjQuLjU0Yjc1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC00
Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZHTW9kZWxPYmplY3Q6
OlJlbmRlclNWR01vZGVsT2JqZWN0KFNWR1N0eWxlZEVsZW1lbnQqIG5vZGUpCiAgICAgOiBSZW5k
ZXJPYmplY3Qobm9kZSkKKyAgICAsIG1faGFzU1ZHU2hhZG93KGZhbHNlKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgK
aW5kZXggYjgzY2EwZi4uODFjYjhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNjYsNiArNjYsOSBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGJvb2wgY2hlY2tJbnRlcnNlY3Rpb24oUmVuZGVyT2JqZWN0KiwgY29uc3Qg
RmxvYXRSZWN0Jik7CiAgICAgc3RhdGljIGJvb2wgY2hlY2tFbmNsb3N1cmUoUmVuZGVyT2JqZWN0
KiwgY29uc3QgRmxvYXRSZWN0Jik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaGFzU1ZHU2hhZG93KCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNTVkdTaGFkb3c7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SGFz
U1ZHU2hhZG93KGJvb2wgaGFzU2hhZG93KSB7IG1faGFzU1ZHU2hhZG93ID0gaGFzU2hhZG93OyB9
CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKQEAg
LTczLDYgKzc2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBUaGlzIG1ldGhvZCBzaG91bGQgbmV2ZXIg
YmUgY2FsbGVkLCBTVkcgdXNlcyBhIGRpZmZlcmVudCBub2RlQXRQb2ludCBtZXRob2QKICAgICBi
b29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9p
bnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgYWJzb2x1dGVGb2N1c1JpbmdRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYpOworICAg
IGJvb2wgbV9oYXNTVkdTaGFkb3c7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAppbmRleCA3NDc2NzkyLi4wYzk4YjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTYwLDYg
KzYwLDcgQEAgUmVuZGVyU1ZHUm9vdDo6UmVuZGVyU1ZHUm9vdChTVkdTdHlsZWRFbGVtZW50KiBu
b2RlKQogICAgICwgbV9vYmplY3RCb3VuZGluZ0JveFZhbGlkKGZhbHNlKQogICAgICwgbV9pc0xh
eW91dFNpemVDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9uZWVkc0JvdW5kYXJpZXNPclRyYW5zZm9y
bVVwZGF0ZSh0cnVlKQorICAgICwgbV9oYXNTVkdTaGFkb3coZmFsc2UpCiB7CiB9CiAKQEAgLTM4
MCwxMyArMzgxLDEzIEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJl
cGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250CiAgICAgLy8gYW5kIHRoZW4g
Y2FsbCBSZW5kZXJCb3gncyBtZXRob2QgdG8gaGFuZGxlIGFsbCB0aGUgbm9ybWFsIENTUyBCb3gg
bW9kZWwgYml0cwogICAgIHJlcGFpbnRSZWN0ID0gbV9sb2NhbFRvQm9yZGVyQm94VHJhbnNmb3Jt
Lm1hcFJlY3QocmVwYWludFJlY3QpOwogCi0gICAgLy8gQXBwbHkgaW5pdGlhbCB2aWV3cG9ydCBj
bGlwIC0gbm90IGFmZmVjdGVkIGJ5IG92ZXJmbG93IHNldHRpbmdzICAgIAotICAgIHJlcGFpbnRS
ZWN0LmludGVyc2VjdChwaXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkpOwotCiAgICAgY29uc3Qg
U1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUoKS0+c3ZnU3R5bGUoKTsKICAgICBpZiAo
Y29uc3QgU2hhZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQogICAgICAgICBz
aGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3cocmVwYWludFJlY3QpOwogCisgICAgLy8gQXBwbHkg
aW5pdGlhbCB2aWV3cG9ydCBjbGlwIC0gbm90IGFmZmVjdGVkIGJ5IG92ZXJmbG93IHNldHRpbmdz
CisgICAgcmVwYWludFJlY3QuaW50ZXJzZWN0KHBpeGVsU25hcHBlZEJvcmRlckJveFJlY3QoKSk7
CisKICAgICBMYXlvdXRSZWN0IHJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHJlcGFpbnRSZWN0KTsK
ICAgICBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWlu
ZXIsIHJlY3QsIGZpeGVkKTsKICAgICByZXBhaW50UmVjdCA9IHJlY3Q7CkBAIC00MTAsOSArNDEx
LDEyIEBAIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHUm9vdDo6cHVzaE1hcHBpbmdUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJCb3hNb2RlbE9iCiAKIHZvaWQgUmVuZGVyU1ZHUm9vdDo6dXBk
YXRlQ2FjaGVkQm91bmRhcmllcygpCiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUNv
bnRhaW5lckJvdW5kaW5nQm94ZXModGhpcywgbV9vYmplY3RCb3VuZGluZ0JveCwgbV9vYmplY3RC
b3VuZGluZ0JveFZhbGlkLCBtX3N0cm9rZUJvdW5kaW5nQm94LCBtX3JlcGFpbnRCb3VuZGluZ0Jv
eCk7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3Vy
Y2VzKHRoaXMsIG1fcmVwYWludEJvdW5kaW5nQm94KTsKLSAgICBtX3JlcGFpbnRCb3VuZGluZ0Jv
eC5pbmZsYXRlKGJvcmRlckFuZFBhZGRpbmdXaWR0aCgpKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0
Ojpjb21wdXRlQ29udGFpbmVyQm91bmRpbmdCb3hlcyh0aGlzLCBtX29iamVjdEJvdW5kaW5nQm94
LCBtX29iamVjdEJvdW5kaW5nQm94VmFsaWQsIG1fc3Ryb2tlQm91bmRpbmdCb3gsIG1fcmVwYWlu
dEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93KTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRl
cnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3hF
eGNsdWRpbmdTaGFkb3cpOworICAgIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93
LmluZmxhdGUoYm9yZGVyQW5kUGFkZGluZ1dpZHRoKCkpOworCisgICAgbV9yZXBhaW50Qm91bmRp
bmdCb3ggPSBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsKKyAgICBTVkdSZW5k
ZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKHRoaXMsIG1fcmVwYWlu
dEJvdW5kaW5nQm94KTsKIH0KIAogYm9vbCBSZW5kZXJTVkdSb290Ojpub2RlQXRQb2ludChjb25z
dCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBI
aXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAppbmRleCBjZGRkMzExLi44ZWYw
YWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaApA
QCAtNjMsNiArNjMsOSBAQCBwdWJsaWM6CiAgICAgLy8gbWV0aG9kIGR1cmluZyBsYXlvdXQgd2hl
biB0aGV5IGFyZSBpbnZhbGlkYXRlZCBieSBhIGZpbHRlci4KICAgICBzdGF0aWMgdm9pZCBhZGRS
ZXNvdXJjZUZvckNsaWVudEludmFsaWRhdGlvbihSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciop
OwogCisgICAgdmlydHVhbCBib29sIGhhc1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1faGFz
U1ZHU2hhZG93OyB9CisgICAgdmlydHVhbCB2b2lkIHNldEhhc1NWR1NoYWRvdyhib29sIGhhc1No
YWRvdykgeyBtX2hhc1NWR1NoYWRvdyA9IGhhc1NoYWRvdzsgfQorCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7IHJldHVybiBj
aGlsZHJlbigpOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZp
cnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KQEAgLTg5LDYgKzky
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgp
IGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0Qm91bmRpbmdCb3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0
UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Ryb2tlQm91bmRpbmdC
b3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRl
cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94OyB9CisgICAgdmlydHVhbCBG
bG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3co
KSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsgfQog
CiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVS
UklERTsKIApAQCAtMTEwLDExICsxMTQsMTMgQEAgcHJpdmF0ZToKICAgICBib29sIG1fb2JqZWN0
Qm91bmRpbmdCb3hWYWxpZDsKICAgICBGbG9hdFJlY3QgbV9zdHJva2VCb3VuZGluZ0JveDsKICAg
ICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdCb3g7CisgICAgRmxvYXRSZWN0IG1fcmVwYWlu
dEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OwogICAgIG11dGFibGUgQWZmaW5lVHJhbnNmb3Jt
IG1fbG9jYWxUb1BhcmVudFRyYW5zZm9ybTsKICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sb2NhbFRv
Qm9yZGVyQm94VHJhbnNmb3JtOwogICAgIEhhc2hTZXQ8UmVuZGVyU1ZHUmVzb3VyY2VDb250YWlu
ZXIqPiBtX3Jlc291cmNlc05lZWRpbmdUb0ludmFsaWRhdGVDbGllbnRzOwogICAgIGJvb2wgbV9p
c0xheW91dFNpemVDaGFuZ2VkIDogMTsKICAgICBib29sIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFu
c2Zvcm1VcGRhdGUgOiAxOworICAgIGJvb2wgbV9oYXNTVkdTaGFkb3cgOiAxOwogfTsKIAogaW5s
aW5lIFJlbmRlclNWR1Jvb3QqIHRvUmVuZGVyU1ZHUm9vdChSZW5kZXJPYmplY3QqIG9iamVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5k
ZXggNjJhOGM5OS4uODRhNzQ1MiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTQwNiw4ICs0MDYsMTEgQEAgRmxvYXRSZWN0IFJlbmRl
clNWR1NoYXBlOjpjYWxjdWxhdGVTdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0CiAKIHZvaWQgUmVu
ZGVyU1ZHU2hhcGU6OnVwZGF0ZVJlcGFpbnRCb3VuZGluZ0JveCgpCiB7Ci0gICAgbV9yZXBhaW50
Qm91bmRpbmdCb3ggPSBzdHJva2VCb3VuZGluZ0JveCgpOwotICAgIFNWR1JlbmRlclN1cHBvcnQ6
OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGlu
Z0JveCk7CisgICAgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3cgPSBzdHJva2VC
b3VuZGluZ0JveCgpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0
V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyk7
CisKKyAgICBtX3JlcGFpbnRCb3VuZGluZ0JveCA9IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVk
aW5nU2hhZG93OworICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0
aFNoYWRvd3ModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOwogfQogCiBmbG9hdCBSZW5kZXJT
VkdTaGFwZTo6c3Ryb2tlV2lkdGgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdTaGFwZS5oCmluZGV4IDQ3OTZlOGMuLjM5Nzc4ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKQEAgLTEwNCw2ICsxMDQs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYs
IGJvb2wgcmVxdWlyZXNTdHJva2UgPSB0cnVlKTsKIAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJl
cGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Qm91
bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29y
ZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludEJvdW5k
aW5nQm94RXhjbHVkaW5nU2hhZG93OyB9CiAgICAgdmlydHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsVHJhbnNm
b3JtOyB9CiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25z
dCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CiAKQEAgLTEzNSw2ICsxMzYsNyBAQCBwcml2
YXRlOgogCiBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveDsKKyAg
ICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7CiAgICAgQWZm
aW5lVHJhbnNmb3JtIG1fbG9jYWxUcmFuc2Zvcm07CiAgICAgT3duUHRyPFBhdGg+IG1fcGF0aDsK
ICAgICBWZWN0b3I8TWFya2VyUG9zaXRpb24+IG1fbWFya2VyUG9zaXRpb25zOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKaW5kZXggMjk0NWZlNC4u
NzQ3OTkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Rl
eHQuY3BwCkBAIC01MjEsNiArNTIxLDE4IEBAIEZsb2F0UmVjdCBSZW5kZXJTVkdUZXh0OjpyZXBh
aW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0CiB7CiAgICAgRmxvYXRSZWN0IHJlcGFp
bnRSZWN0ID0gc3Ryb2tlQm91bmRpbmdCb3goKTsKICAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRl
cnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXModGhpcywgcmVwYWludFJlY3QpOworICAgIFNW
R1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3ModGhpcywgcmVw
YWludFJlY3QpOworCisgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHRleHRTaGFkb3cgPSBzdHls
ZSgpLT50ZXh0U2hhZG93KCkpCisgICAgICAgIHRleHRTaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFk
b3cocmVwYWludFJlY3QpOworCisgICAgcmV0dXJuIHJlcGFpbnRSZWN0OworfQorCitGbG9hdFJl
Y3QgUmVuZGVyU1ZHVGV4dDo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdT
VkdTaGFkb3coKSBjb25zdAoreworICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IHN0cm9rZUJv
dW5kaW5nQm94KCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RX
aXRoUmVzb3VyY2VzKHRoaXMsIHJlcGFpbnRSZWN0KTsKIAogICAgIGlmIChjb25zdCBTaGFkb3dE
YXRhKiB0ZXh0U2hhZG93ID0gc3R5bGUoKS0+dGV4dFNoYWRvdygpKQogICAgICAgICB0ZXh0U2hh
ZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKaW5kZXggY2QyZTM4Zi4uMzExMmFmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKQEAgLTQ0LDYg
KzQ0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0
ZSgpIHsgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KICAgICB2b2lkIHNldE5lZWRz
VGV4dE1ldHJpY3NVcGRhdGUoKSB7IG1fbmVlZHNUZXh0TWV0cmljc1VwZGF0ZSA9IHRydWU7IH0K
ICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNv
bnN0OworICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVz
RXhjbHVkaW5nU1ZHU2hhZG93KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUmVuZGVyU1ZHVGV4dCog
bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9yKFJlbmRlck9iamVjdCopOwogICAgIHN0YXRpYyBj
b25zdCBSZW5kZXJTVkdUZXh0KiBsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IoY29uc3QgUmVu
ZGVyT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJTdXBwb3J0LmNwcAppbmRleCBmYzU3MmFkLi5mOTZmNmFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTU0LDcgKzU0LDEw
IEBAIExheW91dFJlY3QgU1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiBvCiAKICAgICAvLyBQYXNzIG91ciBsb2NhbCBwYWlu
dCByZWN0IHRvIGNvbXB1dGVSZWN0Rm9yUmVwYWludCgpIHdoaWNoIHdpbGwKICAgICAvLyBtYXAg
dG8gcGFyZW50IGNvb3JkcyBhbmQgcmVjdXJzZSB1cCB0aGUgcGFyZW50IGNoYWluLgotICAgIEZs
b2F0UmVjdCByZXBhaW50UmVjdCA9IG9iamVjdC0+cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0
ZXMoKTsKKyAgICBGbG9hdFJlY3QgcmVwYWludFJlY3QgPSBvYmplY3QtPnJlcGFpbnRSZWN0SW5M
b2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KCk7CisgICAgY29uc3QgU1ZHUmVuZGVy
U3R5bGUqIHN2Z1N0eWxlID0gb2JqZWN0LT5zdHlsZSgpLT5zdmdTdHlsZSgpOworICAgIGlmIChj
b25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCisgICAgICAgIHNo
YWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7CiAgICAgb2JqZWN0LT5jb21w
dXRlRmxvYXRSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCk7CiAg
ICAgcmV0dXJuIGVuY2xvc2luZ0xheW91dFJlY3QocmVwYWludFJlY3QpOwogfQpAQCAtMjc4LDIz
ICsyODEsNDcgQEAgYm9vbCBTVkdSZW5kZXJTdXBwb3J0Ojppc092ZXJmbG93SGlkZGVuKGNvbnN0
IFJlbmRlck9iamVjdCogb2JqZWN0KQogICAgIHJldHVybiBvYmplY3QtPnN0eWxlKCktPm92ZXJm
bG93WCgpID09IE9ISURERU47CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0
UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9h
dFJlY3QmIHJlcGFpbnRSZWN0KQordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBh
aW50UmVjdFdpdGhTaGFkb3dzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9hdFJlY3Qm
IHJlcGFpbnRSZWN0KQogeworICAgIC8vIFNpbmNlIC13ZWJraXQtc3ZnLXNoYWRvdyBlbmFibGVz
IHNoYWRvdyBkcmF3aW5nIGZvciBpdHMgY2hpbGRyZW4sIGJ1dCBpdHMgY2hpbGRyZW4KKyAgICAv
LyBkb24ndCBpbmhlcml0IHRoZSBzaGFkb3cgaW4gdGhlaXIgU1ZHUmVuZGVyU3R5bGUsIHdlIG5l
ZWQgdG8gc2VhcmNoIG91ciBwYXJlbnRzIGZvcgorICAgIC8vIHNoYWRvd3MgaW4gb3JkZXIgdG8g
Y29ycmVjdGx5IGNvbXB1dGUgb3VyIHJlcGFpbnQgcmVjdC4KKwogICAgIEFTU0VSVChvYmplY3Qp
OwogCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOwotICAgIEFTU0VS
VChzdHlsZSk7CisgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyZW50T2JqZWN0ID0gb2JqZWN0
OwogCi0gICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2Z1N0eWxl
KCk7Ci0gICAgQVNTRVJUKHN2Z1N0eWxlKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUb1Jv
b3RUcmFuc2Zvcm07CisKKyAgICBkbyB7CisgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IGN1
cnJlbnRPYmplY3QtPnN0eWxlKCk7CisgICAgICAgIEFTU0VSVChzdHlsZSk7CisKKyAgICAgICAg
Y29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2Z1N0eWxlKCk7CisgICAg
ICAgIEFTU0VSVChzdmdTdHlsZSk7CiAKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29u
c3RfY2FzdDxSZW5kZXJPYmplY3QqPihvYmplY3QpOwotICAgIFNWR1Jlc291cmNlcyogcmVzb3Vy
Y2VzID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJlbmRlck9iamVjdChy
ZW5kZXJlcik7Ci0gICAgaWYgKCFyZXNvdXJjZXMpIHsKICAgICAgICAgaWYgKGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKICAgICAgICAgICAgIHNoYWRvdy0+
YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7CisKKyAgICAgICAgcmVwYWludFJlY3Qg
PSBjdXJyZW50T2JqZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkubWFwUmVjdChyZXBhaW50
UmVjdCk7CisgICAgICAgIGxvY2FsVG9Sb290VHJhbnNmb3JtICo9IGN1cnJlbnRPYmplY3QtPmxv
Y2FsVG9QYXJlbnRUcmFuc2Zvcm0oKTsKKworICAgICAgICBjdXJyZW50T2JqZWN0ID0gY3VycmVu
dE9iamVjdC0+cGFyZW50KCk7CisgICAgfSB3aGlsZSAoY3VycmVudE9iamVjdCAmJiBjdXJyZW50
T2JqZWN0LT5oYXNTVkdTaGFkb3coKSk7CisKKyAgICAvLyBGSVhNRTogaXMgdGhlcmUgYSB3YXkg
dG8gYXZvaWQgZG9pbmcgdGhlIGludmVyc2UgdHJhbnNmb3JtYXRpb24gaGVyZT8KKyAgICBBZmZp
bmVUcmFuc2Zvcm0gcm9vdFRvTG9jYWxUcmFuc2Zvcm0gPSBsb2NhbFRvUm9vdFRyYW5zZm9ybS5p
bnZlcnNlKCk7CisgICAgcmVwYWludFJlY3QgPSByb290VG9Mb2NhbFRyYW5zZm9ybS5tYXBSZWN0
KHJlcGFpbnRSZWN0KTsKK30KKwordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBh
aW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZsb2F0UmVj
dCYgcmVwYWludFJlY3QpCit7CisgICAgQVNTRVJUKG9iamVjdCk7CisKKyAgICBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyID0gY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPihvYmplY3QpOworICAgIFNW
R1Jlc291cmNlcyogcmVzb3VyY2VzID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNl
c0ZvclJlbmRlck9iamVjdChyZW5kZXJlcik7CisgICAgaWYgKCFyZXNvdXJjZXMpCiAgICAgICAg
IHJldHVybjsKLSAgICB9CiAKICNpZiBFTkFCTEUoRklMVEVSUykKICAgICBpZiAoUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIqIGZpbHRlciA9IHJlc291cmNlcy0+ZmlsdGVyKCkpCkBAIC0zMDYsOSAr
MzMzLDYgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhS
ZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmoKIAogICAgIGlmIChSZW5kZXJTVkdSZXNv
dXJjZU1hc2tlciogbWFza2VyID0gcmVzb3VyY2VzLT5tYXNrZXIoKSkKICAgICAgICAgcmVwYWlu
dFJlY3QuaW50ZXJzZWN0KG1hc2tlci0+cmVzb3VyY2VCb3VuZGluZ0JveChyZW5kZXJlcikpOwot
Ci0gICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkK
LSAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKIH0KIAog
Ym9vbCBTVkdSZW5kZXJTdXBwb3J0OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQoUmVuZGVy
T2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5oCmluZGV4IGI2MmNjZmIuLjZmOWMzZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCkBAIC00OSw2ICs0OSw4IEBAIHB1
YmxpYzoKICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gZGV0ZXJtaW5pbmcgd2hldGVyIG92ZXJmbG93
IGlzIGhpZGRlbgogICAgIHN0YXRpYyBib29sIGlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVuZGVy
T2JqZWN0Kik7CiAKKyAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFk
b3dzKGNvbnN0IFJlbmRlck9iamVjdCosIEZsb2F0UmVjdCYpOworCiAgICAgLy8gQ2FsY3VsYXRl
cyB0aGUgcmVwYWludFJlY3QgaW4gY29tYmluYXRpb24gd2l0aCBmaWx0ZXIsIGNsaXBwZXIgYW5k
IG1hc2tlciBpbiBsb2NhbCBjb29yZGluYXRlcy4KICAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RS
ZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7
CiAK
</data>
<flag name="commit-queue"
          id="177903"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169072</attachid>
            <date>2012-10-16 19:26:31 -0700</date>
            <delta_ts>2012-11-06 19:23:20 -0800</delta_ts>
            <desc>patch</desc>
            <filename>svgshadow.diff</filename>
            <type>text/plain</type>
            <size>42375</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NzE4MzE5Li40NmYyODJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMTAt
MTYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVw
YWludCBpc3N1ZXMgd2l0aCAtd2Via2l0LXN2Zy1zaGFkb3cgdXNlZCBvbiBhIGNvbnRhaW5lcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NDMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MDA1MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9hcnJvdy13aXRo
LXNoYWRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY2xp
cHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9z
dmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhhbXBsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13aXRoLW9wYWNpdHktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hhZG93
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hh
bmdlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2lt
cGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUg
TWFjIHJlc3VsdHMgZHVlIHRvIHRoaXMgY2hhbmdlLgorCisgICAgICAgICogc3ZnL2Nzcy9wYXJl
bnQtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9j
c3MvcGFyZW50LXNoYWRvdy1vZmZzY3JlZW4uc3ZnOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgbmV3
IHRlc3QgdGhhdCBlbnN1cmVzIHRoYXQgPGc+IHdpdGggLXdlYmtpdC1zdmctc2hhZG93IGFwcGxp
ZWQgZHJhd3Mgd2hlbiBjaGlsZHJlbiBhcmUgb2Zmc2NyZWVuIGJ1dCB0aGUgc2hhZG93IGlzIG5v
dC4KKworICAgICAgICAqIHN2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLWV4cGVjdGVkLnN2
ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZzY3JlZW4uc3ZnOiBB
ZGRlZC4KKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdGhhdCBlbnN1cmVzIHRoYXQgPHN2Zz4gd2l0
aCAtd2Via2l0LXN2Zy1zaGFkb3cgYXBwbGllZCBkcmF3cyB3aGVuIGNoaWxkcmVuIGFyZSBvZmZz
Y3JlZW4gYnV0IHRoZSBzaGFkb3cgaXMgbm90LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2
Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNo
YWRvdy5zdmc6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcgdGVzdCB0aGF0IGVuc3VyZXMgdGhh
dCBTVkcgZWxlbWVudHMgd2l0aCAtd2Via2l0LXN2Zy1zaGFkb3cgYXJlIGNvcnJlY3RseSBpbnZh
bGlkYXRlZC4KKwogMjAxMi0xMC0xNiAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEFuIGZlSW1hZ2UgdGhhdCB0cmllcyB0byByZW5kZXIgaXRzZWxm
IHNob3VsZCBiZSBzdG9wcGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL2Nzcy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL2Nzcy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggYjBm
NDU4My4uZDcwMThjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9j
c3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMiw2ICsy
LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9v
dCB7c3ZnfSBhdCAoNzksMjMpIHNpemUgNjA1eDQxNAotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDc5LDIzKSBzaXplIDYzOHg0NDcgW3RyYW5zZm9ybT17bT0oKDIuMDAsMC4wMCkoMC4w
MCwyLjAwKSkgdD0oMC4wMCwwLjAwKX1dCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2F9IGF0
ICg3OSwyMykgc2l6ZSA2MDV4NDE0CisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNzks
MjMpIHNpemUgNjcxeDQ4MCBbdHJhbnNmb3JtPXttPSgoMi4wMCwwLjAwKSgwLjAwLDIuMDApKSB0
PSgwLjAwLDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7YX0gYXQgKDc5LDIzKSBz
aXplIDYzOHg0NDcKICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDc5LDIzKSBzaXpl
IDYwNXg0MTQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXSBbc3Ryb2tlIHdp
ZHRoPTIwLjAwXX1dIFtkYXRhPSJNIDE4NSA0MCBMIDg1IDQwIEwgODUgMjggTCA0MCA2NCBMIDg1
IDEwMCBMIDg1IDg4IEwgMTg1IDg4IFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQu
dHh0CmluZGV4IDJlNjM2OWEuLjEyOWU2YzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jbGlwcGF0aC13aXRoLXNoYWRvdy1leHBl
Y3RlZC50eHQKQEAgLTEsMTEgKzEsMTEgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgIFJl
bmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMTB4MjAwCiAgICAgUmVuZGVyU1ZHUmVj
dCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRjAwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hlaWdodD0yMDAu
MDBdCiAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KC0yMDAuMDAsMC4wMCl9XSBbeD0y
MDAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAwLjAwXQogICAgIFJlbmRl
clNWR1Jlc291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IFtpZD0iY2xpcCJdIFtjbGlwUGF0aFVuaXRz
PXVzZXJTcGFjZU9uVXNlXQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDAp
IHNpemUgMjEweDIxMAorICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDApIHNp
emUgMjIweDIyMAogICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDIx
MHgyMTAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oLTIwMC4wMCww
LjAwKX1dIFt4PTIwMC4wMF0gW3k9MC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hlaWdodD0yMDAuMDBd
Ci0gICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTQw
MC4wMF0gW2hlaWdodD0yMDAuMDBdCi0gICAgICBbY2xpcFBhdGg9ImNsaXAiXSBSZW5kZXJTVkdS
ZXNvdXJjZUNsaXBwZXIge2NsaXBQYXRofSBhdCAoMCwwKSBzaXplIDIwMHgyMDAKKyAgICBSZW5k
ZXJTVkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDIxMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NDAwLjAwXSBbaGVp
Z2h0PTIwMC4wMF0KKyAgICAgIFtjbGlwUGF0aD0iY2xpcCJdIFJlbmRlclNWR1Jlc291cmNlQ2xp
cHBlciB7Y2xpcFBhdGh9IGF0ICgwLDApIHNpemUgMjEweDIxMApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFk
b3ctZXhhbXBsZS1leHBlY3RlZC50eHQKaW5kZXggNTI3MGY3MC4uNTI4MWYxZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFt
cGxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9j
b21wb3NpdGUtc2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0zLDEwICszLDEwIEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgNzg1eDYxNgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKLSAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30g
YXQgKDQwLDM2KSBzaXplIDQzNngxNTAKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoNDAsMzYpIHNpemUgMTQ2eDE0MAorICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoNDAs
MzYpIHNpemUgNDU2eDE3MAorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwz
Nikgc2l6ZSAxNTZ4MTUwCiAgICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDQwLDM2
KSBzaXplIDE0NngxNDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MTAwLjAwLDEwMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtz
dHJva2Ugd2lkdGg9MTAuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5OTk5OV19
XSBbZGF0YT0iTSAxLjgzNjk3ZS0xNSAzMCBMIC0zNS4yNjcxIDQ4LjU0MSBMIC0yOC41MzE3IDku
MjcwNTEgTCAtNTcuMDYzNCAtMTguNTQxIEwgLTE3LjYzMzYgLTI0LjI3MDUgTCAtMS4xMDIxOGUt
MTQgLTYwIEwgMTcuNjMzNiAtMjQuMjcwNSBMIDU3LjA2MzQgLTE4LjU0MSBMIDI4LjUzMTcgOS4y
NzA1MSBMIDM1LjI2NzEgNDguNTQxIFoiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgyMDAsNDYpIHNpemUgMTI4eDEyNQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgyMDAsNDYpIHNpemUgMTM4eDEzNQogICAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9
IGF0ICgyMDAsNDYpIHNpemUgMTI4eDEyNSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSgyNTAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2ggYXJyYXk9ezIwLjAwfV19XSBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMw
IEwgLTM1LjI2NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEg
TCAtMTcuNjMzNiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1
IEwgNTcuMDYzNCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJd
Ci0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIy
CisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMjd4MTMy
CiAgICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIy
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwMC4wMCwxMDAuMDAp
fV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEw
LjAwXSBbZGFzaCBhcnJheT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5
OTk5OTldfV0gW2RhdGE9Ik0gMS41MzA4MWUtMTUgMjUgTCAtMjkuMzg5MyA0MC40NTA5IEwgLTIz
Ljc3NjQgNy43MjU0MiBMIC00Ny41NTI4IC0xNS40NTA4IEwgLTE0LjY5NDYgLTIwLjIyNTQgTCAt
OS4xODQ4NWUtMTUgLTUwIEwgMTQuNjk0NiAtMjAuMjI1NCBMIDQ3LjU1MjggLTE1LjQ1MDggTCAy
My43NzY0IDcuNzI1NDIgTCAyOS4zODkzIDQwLjQ1MDkgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUt
c2hhZG93LXdpdGgtb3BhY2l0eS1leHBlY3RlZC50eHQKaW5kZXggYzFiMWViNS4uNmJhY2QzMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNo
YWRvdy13aXRoLW9wYWNpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dApA
QCAtNCwxMCArNCwxMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzY5eDYwMAogbGF5ZXIgYXQgKDgsOCkgc2l6ZSA3Njl4NjAwCi0gIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKDQwLDM2KSBzaXplIDQzNngxNTAgW29wYWNpdHk9MC41MF0KLSAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6ZSAxNDZ4MTQwCisgIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKDQwLDM2KSBzaXplIDQ1NngxNzAgW29wYWNpdHk9MC41MF0KKyAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6ZSAxNTZ4MTUwCiAgICAgICBS
ZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoNDAsMzYpIHNpemUgMTQ2eDE0MCBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMDAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0xMC4wMF19XSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMwIEwg
LTM1LjI2NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAt
MTcuNjMzNiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1IEwg
NTcuMDYzNCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJdCi0g
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEyOHgxMjUKKyAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMDAsNDYpIHNpemUgMTM4eDEzNQogICAgICAgUmVu
ZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDIwMCw0Nikgc2l6ZSAxMjh4MTI1IFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1MC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBbZGFzaCBhcnJh
eT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9
Ik0gMS44MzY5N2UtMTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAtMjguNTMxNyA5LjI3MDUxIEwg
LTU3LjA2MzQgLTE4LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwgLTEuMTAyMThlLTE0IC02MCBM
IDE3LjYzMzYgLTI0LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAyOC41MzE3IDkuMjcwNTEgTCAz
NS4yNjcxIDQ4LjU0MSBaIl0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYp
IHNpemUgMTE3eDEyMgorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6
ZSAxMjd4MTMyCiAgICAgICBSZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoMzQ5LDQ2KSBzaXplIDEx
N3gxMjIgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNDAwLjAwLDEw
MC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lk
dGg9MTAuMDBdIFtkYXNoIGFycmF5PXsyMC4wMH1dfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9Izk5OTk5OV19XSBbZGF0YT0iTSAxLjUzMDgxZS0xNSAyNSBMIC0yOS4zODkzIDQwLjQ1MDkg
TCAtMjMuNzc2NCA3LjcyNTQyIEwgLTQ3LjU1MjggLTE1LjQ1MDggTCAtMTQuNjk0NiAtMjAuMjI1
NCBMIC05LjE4NDg1ZS0xNSAtNTAgTCAxNC42OTQ2IC0yMC4yMjU0IEwgNDcuNTUyOCAtMTUuNDUw
OCBMIDIzLjc3NjQgNy43MjU0MiBMIDI5LjM4OTMgNDAuNDUwOSBaIl0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hhZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hhZG93
LWV4cGVjdGVkLnR4dAppbmRleCBkYTVjNjY1Li4yNTcyZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvZ3JvdXAtd2l0aC1zaGFkb3ct
ZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMzAsMzEpIHNpemUgMzAweDMxOQot
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMwLDMxKSBzaXplIDMzNHgzNTMgW3RyYW5z
Zm9ybT17bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAwKSkgdD0oMC4wMCwwLjAwKX1dCisgIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKDMwLDMxKSBzaXplIDI4OXgyODYKKyAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICgzMCwzMSkgc2l6ZSAzNTV4MzUzIFt0cmFuc2Zvcm09e209KCgyLjAwLDAu
MDApKDAuMDAsMi4wMCkpIHQ9KDAuMDAsMC4wMCl9XQogICAgICAgUmVuZGVyU1ZHUGF0aCB7bGlu
ZX0gYXQgKDMzLDMxKSBzaXplIDI4NHgzOCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4
MDAwODBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbeDE9MTAuMDBd
IFt5MT0xMC4wMF0gW3gyPTg1LjAwXSBbeTI9MTAuMDBdCiAgICAgICBSZW5kZXJTVkdSZWN0IHty
ZWN0fSBhdCAoMzEsNjUpIHNpemUgMjg4eDIwNCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSM4MDAwODBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzgwMDA4MF19XSBbeD0xMC4w
MF0gW3k9MjAuMDBdIFt3aWR0aD03NS4wMF0gW2hlaWdodD01MC4wMF0KICAgICAgIFJlbmRlclNW
R1RleHQge3RleHR9IGF0ICgxMCw3NSkgc2l6ZSA3OHgxOSBjb250YWlucyAxIGNodW5rKHMpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hhbmdl
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ct
Y2hhbmdlcy1leHBlY3RlZC50eHQKaW5kZXggNzEzMzgyYS4uMDgwMDNmNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNoYW5nZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL3NoYWRvdy1jaGFuZ2Vz
LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEzNSw1KSBzaXplIDMyNngyODUK
LSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMjAsMCkgc2l6ZSAzNDF4MjkwCisgIFJl
bmRlclNWR1Jvb3Qge3N2Z30gYXQgKDE0NiwxNikgc2l6ZSAzMTV4Mjg4CisgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMTE2LDApIHNpemUgMzQ1eDMwNAogICAgICAgUmVuZGVyU1ZHUmVj
dCB7cmVjdH0gYXQgKDEzNSw1KSBzaXplIDIxNXgyMTUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbeD0xNTAuMDBdIFt5PTIwLjAwXSBbd2lkdGg9MjAwLjAwXSBbaGVpZ2h0
PTIwMC4wMF0KICAgICAgIFJlbmRlclNWR0VsbGlwc2Uge2NpcmNsZX0gYXQgKDIwNSw3NSkgc2l6
ZSAyMTV4MjE1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2N4PTMyMC4w
MF0gW2N5PTE5MC4wMF0gW3I9MTAwLjAwXQogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQg
KDI3MCwzNikgc2l6ZSAxOTF4MTA3IGNvbnRhaW5zIDEgY2h1bmsocykKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFk
b3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2lt
cGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggM2YwODczMS4uOTQyMWE1
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxl
LXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQK
QEAgLTEsNyArMSw3IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBS
ZW5kZXJTVkdSb290IHtzdmd9IGF0ICgyMCwyNikgc2l6ZSAzODB4MTk0CisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDIwLDI2KSBzaXplIDQ4MHgyOTQKICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0
fSBhdCAoMjAsMjYpIHNpemUgMjE3eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRl
clNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxN3gxOAogICAgICAgICBjaHVu
ayAxIHRleHQgcnVuIDEgYXQgKDIwLjAwLDQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAz
NCB3aWR0aCAyMTcuMDA6ICJUaGlzIHRleHQgc2hvdWxkIGFwcGVhciBvbmx5IHR3aWNlIgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Vi
a2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU5ZTNmMDc0Y2IzYTIxYThlZDlkMzI2ZDMxOWNlZjI5MGMyZWM1ZGEKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDEwODYwCnpjbWVITlpBPz5GN3swZXVzVGp3VmZmSGZuR0tZcmZDTjEoY2t6
TiFTXmBrU2VzZ28mVTlnR05xUXZ8bCEtWVJPZwp6QVQrdismOTVkSzN0S199JDJPZjJ0biZreD5E
MClFNkdyUnNWXzgqTnY3P21JP3EkK0AmaFB6THFNbCErUHkxZnAKektKUGl0YktZfiMyZ184aVA3
MFY3S3ZDMnJXb0I5eU1mdEg1QzBaI041NkokbCtlX2drZFExQXNFJFZtUFImVXJgCnpSIXFyYVZg
R3clO15waCY8bShiK15XXkwwaUZ2VmRjfHlLQ1VYflg+SD5xYXJUP05FPWx4ZUIyU0ozeDxPV2hj
agp6OEkqUiNaZHdzc0ttR2RVJGhnKjlwOUwoOTMwP2hWTU8kcCkzVkNpKmltVTZBKkU/TTZaMz1O
WnRYK1JARyNaVmMKel9nN1hedmBHQWwqeUExPVhyQXFJSTJfRnY7eSRBRS08b3Q/eGtJfX5LYT87
bSRITzEzQkdMTF51V2tfRGl6UCozCnpAJWl4YEQ9XzNqZlcrfFRZdDU0JU1UfnlYR01RbishZ0Ri
c1cpe29rJnVfflplZGVRM1F3R051bTFAIzRxPi1tUwp6YnYmSHJgdiFiOWpIYlVuV2U+clMkMjF9
TDtjWSl9WHFjZVVZN2hVdCZuQCo0dFkxZmF7cCszMTx1bV9mZHoyWiYKejZveElfR35nP01TUTAh
QFYpJnlrPWE5ZjB3fkZLSSZ0OUFeZ2U7clFhdiM9fmw9K0BZaXdiRmFAMDVnRTZtbz44CnpxRXAm
YG5KYHZYdjd+O1NJQ0U3YEc3MzI+NXxLbSpCVj4kX1MlWEMzdkM8SzNnYTdgbk5aVmspYEFXSkB0
SWFTRQp6QUMoUyFKa3NZIT5+QCl9U0YhRGApb0x8Ki1xODZmWS0yNTZLRHBIQ2h4dG8/RnZJcURJ
XnI9WFAkYXNrS09LUC0Kem5XPD50c21nfD9xZXhEZjNXaXw9ISMjb35iRyZLWklQdio7V289Nl9o
dVo7aDdNbmpKU2xrPVVhPWwrIWkhbiRGCno0KHFwREF4SmdEK0VnX0NLKClIJFMhQSZgbWdTXzBa
b01HIWwpZkIleGNzbTg0cSVXISNGPWdjVnJHM0pvOHdQcAp6Y1hlWT52UDVGPWVAMkklJX49az9Q
ZDs/S2NMd0A3bVE/T1BRZjJCZFBxfXxAalVKWEJ5fClxJD1ybyQ1YzhBWj4KekVtfDxabzFVPDRn
T0lnSjJMSnElWS1jMSZAJjBvUko3flZQM240WUkhc3N+b0x0dnprVmQrVnBgcmRta3t6WmdUCnpe
SGtGOVY2OC1gckc2TW5HTHJDSkJ0cTBjd3llUm41TExIbDQkSXY/ZDFNa1FadW9TVHQ0WjEhdXxU
TEtxKW9yOwp6LUJYOzJrZzAlTmg7fW9ta2Jfe3shekQhdjV6K3hudDVyOTRxdFlKQjxAZz8qSXhJ
K0ZLTX5lTjtoT14jUmZ2IWcKekFjUm12Qz5rMyFXRTdFIV9KMylTV2woblY0NStON1NZJFN2T1d5
QjNKKkw2PjA8azs3UTFGZD1ISWdeK25qblVxCnpWO3x+M0l4Ul5DP0wyKHRLey0tV3JhfW84Ym1t
UzM/cShwPmxeSCpvcVhoQmhFSyVUSEt9T3ZZTDFLQVJFQ154Zgp6T1MoRWk4WXo3cD09V2xjTTx5
c2JFeEg2TWA9bGppOEM+a1d1OShybkk5O3cpbm0pQ1ViYmJENDEzQmN7aVcqMTsKejhweW9USzRm
VGYhR35eSnlSaW14Q0M2OHQrSmhSJSVne2pYWiFSaEtKKFUqYShSOSVHZ2NeWnB1OWM/Pit1TUlm
CnpXdnFlKmEleFdeM2JfYWtCdVJ1WUxkRlEwSEclO1U5VTttfXlvUl9oUyZ4dHY4ZClqfGAjeG14
T3hnKzNWM0MmZAp6c2NPUVZCTXdLMXdEN0dnJU8jYFkkNCZYQGRjZF4rci1JRnE9QXRjTEhVYGNg
WDJpQU8qOGBUcmdASDxxNjU5YHwKemhZSklwNTJzKnpLUkl3PTtGZGlLTC14VDloT0RiT0xQcjhP
N35sfSM8Qm1FRVNwcHt+JUIzWUpBK3t4aUFxZiROCnojdGkhajl6ITxremAjSmtnSChMKmI4RG1F
VjY8XylNdXA5X1Y+fWYpKTReZ2hZWmxENHo0anl3PjRVajt1eVk0Qwp6Wlc+e0djRzA7ejcqWStw
ayg7c3R2OG1ueXlULUZaam81WkAlKiFseVBCfFopdUpOV3Q5NyV7VUc8R35kI3RAbGgKZ3NHRUdN
YmpZVW9MaWZWT2lpemlzIX1VPjBuWFhEfVRDakhlS1FhfHcpJkt3aQoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9tYXNrLXdpdGgtc2hhZG93
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9jc3MvbWFzay13aXRoLXNoYWRvdy1leHBl
Y3RlZC50eHQKaW5kZXggZTI2OWQzMy4uZGIxZDgzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3ZnL2Nzcy9tYXNrLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dmcvY3NzL21hc2std2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAogbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDQ1MHg1MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBh
dCAoNSw1KSBzaXplIDIxMHgyMTAKLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1LDUp
IHNpemUgMjEweDIxMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg1LDUpIHNpemUgMjIweDIy
MAorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDUsNSkgc2l6ZSAyMjB4MjIwCiAgICAg
ICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAg
ICAgIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQge2xpbmVhckdyYWRpZW50fSBbaWQ9
Im1hc2tlZEdyYWRpZW50Il0gW2dyYWRpZW50VW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtzdGFy
dD0oMCwwKV0gW2VuZD0oMSwxKV0KICAgICAgICAgICBSZW5kZXJTVkdHcmFkaWVudFN0b3Age3N0
b3B9IFtvZmZzZXQ9MC4wMF0gW2NvbG9yPSMwMDAwRkZdCkBAIC0xMyw3ICsxMyw3IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgNDUweDUwMAogICAgICAgICAgIFJlbmRlclNWR0VsbGlwc2Uge2NpcmNs
ZX0gYXQgKDUsMTE1KSBzaXplIDExMHgxMTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
RkZGRl19XSBbY3g9NTUuMDBdIFtjeT0xNjUuMDBdIFtyPTUwLjAwXQogICAgICAgICAgIFJlbmRl
clNWR0VsbGlwc2Uge2NpcmNsZX0gYXQgKDExNSw1KSBzaXplIDExMHgxMTAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbY3g9MTY1LjAwXSBbY3k9NTUuMDBdIFtyPTUwLjAw
XQogICAgICAgICAgIFJlbmRlclNWR0VsbGlwc2Uge2NpcmNsZX0gYXQgKDExNSwxMTUpIHNpemUg
MTEweDExMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtjeD0xNjUuMDBd
IFtjeT0xNjUuMDBdIFtyPTUwLjAwXQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
NSw1KSBzaXplIDIxMHgyMTAKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg1
LDUpIHNpemUgMjEweDIxMAotICAgICAgICAgIFttYXNrZXI9Im1hc2tfMSJdIFJlbmRlclNWR1Jl
c291cmNlTWFza2VyIHttYXNrfSBhdCAoNSw1KSBzaXplIDIxMHgyMTAKKyAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDUsNSkgc2l6ZSAyMjB4MjIwCisgICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7dXNlfSBhdCAoNSw1KSBzaXplIDIyMHgyMjAKKyAgICAgICAgICBbbWFza2VyPSJt
YXNrXzEiXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDUsNSkgc2l6ZSAyMjB4
MjIwCiAgICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAzMDB4MzAw
IFtmaWxsPXtbdHlwZT1MSU5FQVItR1JBRElFTlRdIFtpZD0ibWFza2VkR3JhZGllbnQiXX1dIFt4
PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0zMDAuMDBdIFtoZWlnaHQ9MzAwLjAwXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5z
dmcgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLWV4cGVjdGVk
LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzVkM2EwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi1l
eHBlY3RlZC5zdmcKQEAgLTAsMCArMSw0IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyI+Cis8dGl0bGU+RXhwZWN0ZWQgcmVzdWx0cyBmb3IgcGFyZW50LXNoYWRvdy1v
ZmZzY3JlZW4uc3ZnPC90aXRsZT4KKzxyZWN0IGlkPSJyZWN0IiBmaWxsPSJ3aGl0ZSIgc3R5bGU9
Ii13ZWJraXQtc3ZnLXNoYWRvdzogIzAwMCAxMDBweCAxMDBweCA1cHgiIHg9IjAiIHk9IjAiIHdp
ZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdmcvY3NzL3BhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZyBiL0xheW91dFRlc3RzL3N2
Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZzY3JlZW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmI3YjdiMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
Y3NzL3BhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZwpAQCAtMCwwICsxLDYgQEAKKzxzdmcgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzx0aXRsZT5UZXN0IHBhc3NlcyBpZiB0
aGUgc2hhZG93IGlzIGRyYXduLjwvdGl0bGU+Cis8ZyBzdHlsZT0iLXdlYmtpdC1zdmctc2hhZG93
OiAjMDAwIDIwMHB4IDIwMHB4IDVweCI+Cis8cmVjdCBpZD0icmVjdCIgeD0iLTEwMCIgeT0iLTEw
MCIgd2lkdGg9Ijc1IiBoZWlnaHQ9Ijc1Ij48L3JlY3Q+Cis8L2c+Cis8L3N2Zz4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLWV4cGVjdGVkLnN2
ZyBiL0xheW91dFRlc3RzL3N2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLWV4cGVjdGVkLnN2
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzY0ZjE1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZzY3JlZW4tZXhwZWN0
ZWQuc3ZnCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciPgorPHRpdGxlPkV4cGVjdGVkIHJlc3VsdHMgZm9yIHJvb3Qtc2hhZG93LW9mZnNjcmVl
bi5zdmc8L3RpdGxlPgorPHJlY3QgaWQ9InJlY3QiIGZpbGw9IndoaXRlIiBzdHlsZT0iLXdlYmtp
dC1zdmctc2hhZG93OiAjMDAwIDEwMHB4IDEwMHB4IDVweCIgeD0iMCIgeT0iMCIgd2lkdGg9Ijc1
IiBoZWlnaHQ9Ijc1Ij48L3JlY3Q+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2
Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jc3Mvcm9v
dC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mZWQxYjEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9yb290LXNo
YWRvdy1vZmZzY3JlZW4uc3ZnCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSItd2Via2l0LXN2Zy1zaGFkb3c6ICMwMDAgMjAwcHgg
MjAwcHggNXB4Ij4KKzx0aXRsZT5UZXN0IHBhc3NlcyBpZiB0aGUgc2hhZG93IGlzIGRyYXduLjwv
dGl0bGU+Cis8cmVjdCBpZD0icmVjdCIgeD0iLTEwMCIgeT0iLTEwMCIgd2lkdGg9Ijc1IiBoZWln
aHQ9Ijc1Ij48L3JlY3Q+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9yZXBh
aW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk5OTc1ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMTIwLDApIHNpemUgNDUweDUyMAorICAgIFJl
bmRlclNWR1JlY3Qge3JlY3R9IGF0ICgxNTAsMTAwKSBzaXplIDEyMHgxMjAgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUwLjAwLDUwLjAwKX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW3g9MC4wMF0gW3k9NTAuMDBdIFt3aWR0aD0yMC4w
MF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMTIwLDApIHNp
emUgMTIweDEyMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFt4PTEyMC4w
MF0gW3k9MC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy5zdmcgYi9MYXlv
dXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LnN2ZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTFhMTViCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy5zdmcKQEAg
LTAsMCArMSwxMiBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHht
bG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0iLXdlYmtpdC1z
dmctc2hhZG93OiAxMDBweCAxMDBweCAwcHggI2FhYTsiIG9ubG9hZD0icnVuUmVwYWludFRlc3Qo
KSI+CisgICAgPHRpdGxlPlRlc3QgcGFzc2VzIGlmIGZvdXIgcmVjdGFuZ2xlcyBhcmUgZHJhd24g
YWZ0ZXIgdGhlIGFuaW1hdGlvbi48L3RpdGxlPgorICAgIDxyZWN0IGlkPSJhIiB3aWR0aD0iMjAi
IGhlaWdodD0iMjAiIHg9IjAiIHk9IjUwIiBmaWxsPSJibGFjayIgLz4KKyAgICA8cmVjdCBpZD0i
YiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB4PSIxMjAiIHk9IjAiIGZpbGw9ImJsYWNrIiAvPgor
ICAgIDxzY3JpcHQgeGxpbms6aHJlZj0iLi4vLi4vZmFzdC9yZXBhaW50L3Jlc291cmNlcy9yZXBh
aW50LmpzIi8+CisgICAgPHNjcmlwdD4KKyAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJhIik7CisgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgICAgICAgIHJlY3Qu
c2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKDE1MCwgNTApIikKKyAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYjI4ZjhiLi4zMjIwZTA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTItMTAtMTYgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwYWludCBpc3N1ZXMgd2l0aCAtd2Via2l0
LXN2Zy1zaGFkb3cgdXNlZCBvbiBhIGNvbnRhaW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2
MDA1MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U1ZHIHJlbmRlcmVyIHJlcGFpbnQgcmVjdHMgYXJlIGN1cnJlbnRseSBleHBhbmRlZCBvbmx5IGJ5
IHRoZSBzaGFkb3cgb2YKKyAgICAgICAgdGhlIHJlbmRlcmVyIGl0c2VsZjsgaG93ZXZlciwgdGhl
IGFyZWEgdGhleSBuZWVkIHRvIHJlcGFpbnQgY2FuIGJlIGxhcmdlcgorICAgICAgICB0aGFuIHRo
YXQsIGlmIHRoZWlyIHBhcmVudHMgYWxzbyBoYXZlIHNoYWRvd3MuIFdlIG5lZWQgdG8gdGFrZSBp
bnRvIGFjY291bnQKKyAgICAgICAgcGFyZW50J3Mgc2hhZG93cyAocmVzcGVjdGluZyB0cmFuc2Zv
cm1zLCBhcyB3ZWxsKS4KKworICAgICAgICBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCBh
bHJlYWR5IHJlY3Vyc2VzIHVwd2FyZHMgdGhyb3VnaCB0aGUgcmVuZGVyIHRyZWUsCisgICAgICAg
IGFuZCBlbmRzIHVwIHdpdGggYSByZWN0IGluIGxheW91dCBjb29yZGluYXRlcywgc28gd2UgbWFu
dWFsbHkgYXBwbHkgdGhlIHNoYWRvdworICAgICAgICBhdCBlYWNoIHN0ZXAgKHJlcGFpbnRSZWN0
SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93IHdhcyBhZGRlZCB0byBhbGxvdwor
ICAgICAgICB1cyB0byBnZXQgdGhlIHJhdyByZXBhaW50IHJlY3Qgd2l0aG91dCB0aGUgc2hhZG93
IGJha2VkLWluKS4KKworICAgICAgICByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcyBub3cg
aW5jbHVkZXMgc2hhZG93cyBmcm9tIGFsbCBwYXJlbnRzLgorCisgICAgICAgIEFsc28sIFJlbmRl
clNWR1Jvb3Qgd2FzIGNsaXBwaW5nIHJlcGFpbnQgcmVjdHMgdG8gdGhlIHZpZXdwb3J0IGJlZm9y
ZSBhcHBseWluZworICAgICAgICBzaGFkb3dzLCBzbyBvZmZzY3JlZW4gZWxlbWVudHMgd2l0aCBv
bi1zY3JlZW4gc2hhZG93cyAoYXBwbGllZCBieSB0aGUgcm9vdCkgd291bGQgbm90IHBhaW50IHRo
ZSBzaGFkb3dzLgorICAgICAgICBXZSBjYW4ganVzdCBzd2FwIHRoZSBvcmRlciBvZiB0aGVzZSB0
aGluZ3MgdG8gY29ycmVjdCB0aGlzLgorCisgICAgICAgIFRlc3RzOiBzdmcvY3NzL3BhcmVudC1z
aGFkb3ctb2Zmc2NyZWVuLnN2Zywgc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZzY3JlZW4uc3ZnLCBz
dmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LnN2ZworCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OmFkZENoaWxkKTogTWFyayB0aGUgY2hpbGQgYmVpbmcgYWRkZWQgYXMgaGF2aW5nIGFuIFNWRyBz
aGFkb3cgaWYgaXQgaXMgYmVpbmcgYWRkZWQgYXMgYSBjaGlsZCBvZiBhbiBlbGVtZW50IHRoYXQg
ZG9lcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c3R5bGVEaWRDaGFuZ2UpOiBN
YXJrIHRoZSBjaGlsZCBiZWluZyBhZGRlZCBhcyBoYXZpbmcgYW4gU1ZHIHNoYWRvdyBpZiBpdHMg
bmV3IHN0eWxlIGhhcyBhIHNoYWRvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0ltYWdlOjpsYXlvdXQpOiBD
YWNoZSB0aGUgcmVwYWludCByZWN0IGJlZm9yZSBpbnRlcnNlY3RpbmcgaXQgd2l0aCB0aGUgc2hh
ZG93LgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR0ltYWdlOjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4
Y2x1ZGluZ1NWR1NoYWRvdyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFpbnQgcmVjdCBmb3IgdGhl
IHJlbmRlcmVyIHdpdGhvdXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR01vZGVsT2JqZWN0OjpSZW5kZXJTVkdNb2RlbE9iamVjdCk6IFJlbmRlcmVycyBkbyBub3Qg
aGF2ZSBhIHNoYWRvdyBieSBkZWZhdWx0LgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0
OjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyk6IFJldHVy
biB0aGUgY2FjaGVkIHJlcGFpbnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhvdXQgdGhlIHNo
YWRvdyBpbmNsdWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0Ojpo
YXNTVkdTaGFkb3cpOiBSZXR1cm4gd2hldGhlciBvciBub3QgdGhlIHJlbmRlcmVyIGhhcyBhIHNo
YWRvdy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0OjpzZXRIYXNTVkdT
aGFkb3cpOiBTZXQgd2hldGhlciBvciBub3QgdGhlIHJlbmRlcmVyIGhhcyBhIHNoYWRvdy4KKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHUm9vdDo6UmVuZGVyU1ZHUm9vdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdSb290Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCk6IEFwcGx5IHRoZSBzaGFkb3cg
YmVmb3JlIGNsaXBwaW5nIHRvIHRoZSB2aWV3cG9ydCwgc28gd2UgZHJhdyBzaGFkb3dzIGZvciBl
bGVtZW50cyBvdXRzaWRlIHRoZSB2aWV3cG9ydC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R1Jvb3Q6OnVwZGF0ZUNhY2hlZEJvdW5kYXJpZXMpOiBDYWNoZSB0aGUgcmVwYWludCByZWN0IGJl
Zm9yZSBpbnRlcnNlY3RpbmcgaXQgd2l0aCB0aGUgc2hhZG93LgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6
aGFzU1ZHU2hhZG93KTogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMgYSBz
aGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjpzZXRIYXNTVkdTaGFkb3cp
OiBTZXQgd2hldGhlciBvciBub3QgdGhlIHJlbmRlcmVyIGhhcyBhIHNoYWRvdy4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhj
bHVkaW5nU1ZHU2hhZG93KTogUmV0dXJuIHRoZSBjYWNoZWQgcmVwYWludCByZWN0IGZvciB0aGUg
cmVuZGVyZXIgd2l0aG91dCB0aGUgc2hhZG93IGluY2x1ZGVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hh
cGU6OnVwZGF0ZVJlcGFpbnRCb3VuZGluZ0JveCk6IENhY2hlIHRoZSByZXBhaW50IHJlY3QgYmVm
b3JlIGludGVyc2VjdGluZyBpdCB3aXRoIHRoZSBzaGFkb3cuCisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6
OnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KTogUmV0dXJu
IHRoZSBjYWNoZWQgcmVwYWludCByZWN0IGZvciB0aGUgcmVuZGVyZXIgd2l0aG91dCB0aGUgc2hh
ZG93IGluY2x1ZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjpyZXBhaW50UmVjdEZvclJl
bmRlcmVySW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KTogUmV0dXJuIHRoZSBj
YWNoZWQgcmVwYWludCByZWN0IGZvciB0aGUgcmVuZGVyZXIgd2l0aG91dCB0aGUgc2hhZG93IGlu
Y2x1ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQpOiBBcHBseSBzaGFkb3dzIGFzIHdlIHdhbGsgdGhyb3VnaCBvdXIg
cGFyZW50cywgaW5zdGVhZCBvZiBvbmx5IGFwcGx5aW5nIHRoZSByZW5kZXJlcidzIG93biBzaGFk
b3cuCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjpyZW5kZXJlckhhc1NWR1No
YWRvdyk6IFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGUgcmVuZGVyZXIgaGFzIGEgc2hhZG93Lgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVuZGVyZXJIYXNTVkdTaGFk
b3cpOiBTZXQgd2hldGhlciBvciBub3QgdGhlIHJlbmRlcmVyIGhhcyBhIHNoYWRvdy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNo
YWRvd3MpOiBXYWxrIHRocm91Z2ggdGhlIGVsZW1lbnQncyBwYXJlbnRzLCBhZGRpbmcgc2hhZG93
cyB0byB0aGUgcmVwYWludCByZWN0IGFzIHdlIGdvLCBldmVudHVhbGx5CisgICAgICAgIHRyYW5z
Zm9ybWluZyB0aGUgcmVwYWludCByZWN0IGJhY2sgaW50byBsb2NhbCBjb29yZGluYXRlcy4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0
aFJlc291cmNlcyk6IERvbid0IGFkZCBzaGFkb3dzIGJ5IGRlZmF1bHQsIGp1c3Qgb3RoZXIgcmVz
b3VyY2VzLCBzbyB0aGF0IHdlIGNhbiBjYWNoZSByZXBhaW50IHJlY3RzIHdpdGggYW5kIHdpdGhv
dXQgc2hhZG93cy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaDoK
KwogMjAxMi0xMC0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgYSBuZXcgbGF5ZXIgdHlwZSBmb3IgdGhlIHBhZ2UgdGlsZWQgY2FjaGUgbGF5
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggN2ZlZTA1
NC4uMGMxMWVmZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
QEAgLTI3Miw2ICsyNzIsMTAgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmFkZENoaWxkKFJlbmRlck9i
amVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiAgICAgaWYgKCFjaGls
ZHJlbikKICAgICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKFNWRykKKyAgICBTVkdSZW5kZXJT
dXBwb3J0OjpzZXRSZW5kZXJlckhhc1NWR1NoYWRvdyhuZXdDaGlsZCwgU1ZHUmVuZGVyU3VwcG9y
dDo6cmVuZGVyZXJIYXNTVkdTaGFkb3codGhpcykgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6cmVuZGVy
ZXJIYXNTVkdTaGFkb3cobmV3Q2hpbGQpKTsKKyNlbmRpZgorCiAgICAgYm9vbCBuZWVkc1RhYmxl
ID0gZmFsc2U7CiAKICAgICBpZiAobmV3Q2hpbGQtPmlzUmVuZGVyVGFibGVDb2woKSkgewpAQCAt
MTkwOCw2ICsxOTEyLDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzdHlsZURpZENoYW5nZShTdHls
ZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0CiAgICAgaWYgKHNfYWZm
ZWN0c1BhcmVudEJsb2NrKQogICAgICAgICBoYW5kbGVEeW5hbWljRmxvYXRQb3NpdGlvbkNoYW5n
ZSgpOwogCisjaWYgRU5BQkxFKFNWRykKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjpzZXRSZW5kZXJl
ckhhc1NWR1NoYWRvdyh0aGlzLCAobV9wYXJlbnQgJiYgU1ZHUmVuZGVyU3VwcG9ydDo6cmVuZGVy
ZXJIYXNTVkdTaGFkb3cobV9wYXJlbnQpKSB8fCAoc3R5bGUoKS0+c3ZnU3R5bGUoKSAmJiBzdHls
ZSgpLT5zdmdTdHlsZSgpLT5zaGFkb3coKSkpOworI2VuZGlmCisKICAgICBpZiAoIW1fcGFyZW50
KQogICAgICAgICByZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCmluZGV4IDU2YmU1Y2QuLmE5NDRjMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCkBAIC05MSw4ICs5
MSwxMiBAQCB2b2lkIFJlbmRlclNWR0ltYWdlOjpsYXlvdXQoKQogICAgIH0KIAogICAgIGlmICht
X25lZWRzQm91bmRhcmllc1VwZGF0ZSkgewotICAgICAgICBtX3JlcGFpbnRCb3VuZGluZ0JveCA9
IG1fb2JqZWN0Qm91bmRpbmdCb3g7Ci0gICAgICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2Vj
dFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7Cisg
ICAgICAgIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93ID0gbV9vYmplY3RCb3Vu
ZGluZ0JveDsKKyAgICAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RX
aXRoUmVzb3VyY2VzKHRoaXMsIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93KTsK
KworICAgICAgICBtX3JlcGFpbnRCb3VuZGluZ0JveCA9IG1fcmVwYWludEJvdW5kaW5nQm94RXhj
bHVkaW5nU2hhZG93OworICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50
UmVjdFdpdGhTaGFkb3dzKHRoaXMsIG1fcmVwYWludEJvdW5kaW5nQm94KTsKKwogICAgICAgICBt
X25lZWRzQm91bmRhcmllc1VwZGF0ZSA9IGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCmluZGV4IDljZDNlZWEuLjkwNWE4ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKQEAg
LTU3LDYgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3Vu
ZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0Qm91bmRpbmdCb3g7IH0KICAgICB2aXJ0
dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0
Qm91bmRpbmdCb3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxD
b29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94OyB9CisgICAg
dmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdT
VkdTaGFkb3coKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveEV4
Y2x1ZGluZ1NoYWRvdzsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZl
Y3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50Jik7CiAKQEAgLTc1LDYgKzc2LDcgQEAg
cHJpdmF0ZToKICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sb2NhbFRyYW5zZm9ybTsKICAgICBGbG9h
dFJlY3QgbV9vYmplY3RCb3VuZGluZ0JveDsKICAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRp
bmdCb3g7CisgICAgRmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93
OwogICAgIE93blB0cjxSZW5kZXJJbWFnZVJlc291cmNlPiBtX2ltYWdlUmVzb3VyY2U7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVs
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuY3BwCmluZGV4IDdiZGNkNzQuLjgzODY2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC00Myw2ICs0
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OlJlbmRl
clNWR01vZGVsT2JqZWN0KFNWR1N0eWxlZEVsZW1lbnQqIG5vZGUpCiAgICAgOiBSZW5kZXJPYmpl
Y3Qobm9kZSkKKyAgICAsIG1faGFzU1ZHU2hhZG93KGZhbHNlKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5kZXgg
MGM0ZWM1Yi4uYTY0MzZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNjYsNiArNjYsMTAgQEAgcHVibGljOgogICAg
IHN0YXRpYyBib29sIGNoZWNrSW50ZXJzZWN0aW9uKFJlbmRlck9iamVjdCosIGNvbnN0IEZsb2F0
UmVjdCYpOwogICAgIHN0YXRpYyBib29sIGNoZWNrRW5jbG9zdXJlKFJlbmRlck9iamVjdCosIGNv
bnN0IEZsb2F0UmVjdCYpOwogCisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxv
Y2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiByZXBhaW50
UmVjdEluTG9jYWxDb29yZGluYXRlcygpOyB9CisgICAgYm9vbCBoYXNTVkdTaGFkb3coKSBjb25z
dCB7IHJldHVybiBtX2hhc1NWR1NoYWRvdzsgfQorICAgIHZvaWQgc2V0SGFzU1ZHU2hhZG93KGJv
b2wgaGFzU2hhZG93KSB7IG1faGFzU1ZHU2hhZG93ID0gaGFzU2hhZG93OyB9CisKIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKQEAgLTczLDYgKzc3LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBUaGlzIG1ldGhvZCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkLCBT
VkcgdXNlcyBhIGRpZmZlcmVudCBub2RlQXRQb2ludCBtZXRob2QKICAgICBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWJz
b2x1dGVGb2N1c1JpbmdRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYpOworICAgIGJvb2wgbV9oYXNT
VkdTaGFkb3c7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcAppbmRleCBjNDdhN2JiLi5kMjMwZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTYwLDYgKzYwLDcgQEAgUmVu
ZGVyU1ZHUm9vdDo6UmVuZGVyU1ZHUm9vdChTVkdTdHlsZWRFbGVtZW50KiBub2RlKQogICAgICwg
bV9vYmplY3RCb3VuZGluZ0JveFZhbGlkKGZhbHNlKQogICAgICwgbV9pc0xheW91dFNpemVDaGFu
Z2VkKGZhbHNlKQogICAgICwgbV9uZWVkc0JvdW5kYXJpZXNPclRyYW5zZm9ybVVwZGF0ZSh0cnVl
KQorICAgICwgbV9oYXNTVkdTaGFkb3coZmFsc2UpCiB7CiB9CiAKQEAgLTM4MCwxMyArMzgxLDEz
IEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAgICAgLy8gYW5kIHRoZW4gY2FsbCBSZW5kZXJC
b3gncyBtZXRob2QgdG8gaGFuZGxlIGFsbCB0aGUgbm9ybWFsIENTUyBCb3ggbW9kZWwgYml0cwog
ICAgIHJlcGFpbnRSZWN0ID0gbV9sb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtLm1hcFJlY3QocmVw
YWludFJlY3QpOwogCi0gICAgLy8gQXBwbHkgaW5pdGlhbCB2aWV3cG9ydCBjbGlwIC0gbm90IGFm
ZmVjdGVkIGJ5IG92ZXJmbG93IHNldHRpbmdzICAgIAotICAgIHJlcGFpbnRSZWN0LmludGVyc2Vj
dChwaXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkpOwotCiAgICAgY29uc3QgU1ZHUmVuZGVyU3R5
bGUqIHN2Z1N0eWxlID0gc3R5bGUoKS0+c3ZnU3R5bGUoKTsKICAgICBpZiAoY29uc3QgU2hhZG93
RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQogICAgICAgICBzaGFkb3ctPmFkanVz
dFJlY3RGb3JTaGFkb3cocmVwYWludFJlY3QpOwogCisgICAgLy8gQXBwbHkgaW5pdGlhbCB2aWV3
cG9ydCBjbGlwIC0gbm90IGFmZmVjdGVkIGJ5IG92ZXJmbG93IHNldHRpbmdzCisgICAgcmVwYWlu
dFJlY3QuaW50ZXJzZWN0KHBpeGVsU25hcHBlZEJvcmRlckJveFJlY3QoKSk7CisKICAgICBMYXlv
dXRSZWN0IHJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHJlcGFpbnRSZWN0KTsKICAgICBSZW5kZXJS
ZXBsYWNlZDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlY3QsIGZp
eGVkKTsKICAgICByZXBhaW50UmVjdCA9IHJlY3Q7CkBAIC00MTAsOSArNDExLDEyIEBAIGNvbnN0
IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHUm9vdDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsCiAKIHZvaWQgUmVuZGVyU1ZHUm9vdDo6dXBkYXRlQ2FjaGVkQm91
bmRhcmllcygpCiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUNvbnRhaW5lckJvdW5k
aW5nQm94ZXModGhpcywgbV9vYmplY3RCb3VuZGluZ0JveCwgbV9vYmplY3RCb3VuZGluZ0JveFZh
bGlkLCBtX3N0cm9rZUJvdW5kaW5nQm94LCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7Ci0gICAgU1ZH
UmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKHRoaXMsIG1f
cmVwYWludEJvdW5kaW5nQm94KTsKLSAgICBtX3JlcGFpbnRCb3VuZGluZ0JveC5pbmZsYXRlKGJv
cmRlckFuZFBhZGRpbmdXaWR0aCgpKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlQ29u
dGFpbmVyQm91bmRpbmdCb3hlcyh0aGlzLCBtX29iamVjdEJvdW5kaW5nQm94LCBtX29iamVjdEJv
dW5kaW5nQm94VmFsaWQsIG1fc3Ryb2tlQm91bmRpbmdCb3gsIG1fcmVwYWludEJvdW5kaW5nQm94
RXhjbHVkaW5nU2hhZG93KTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50
UmVjdFdpdGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFk
b3cpOworICAgIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93LmluZmxhdGUoYm9y
ZGVyQW5kUGFkZGluZ1dpZHRoKCkpOworCisgICAgbV9yZXBhaW50Qm91bmRpbmdCb3ggPSBtX3Jl
cGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsKKyAgICBTVkdSZW5kZXJTdXBwb3J0Ojpp
bnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKHRoaXMsIG1fcmVwYWludEJvdW5kaW5nQm94
KTsKIH0KIAogYm9vbCBSZW5kZXJTVkdSb290Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVx
dWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0TG9jYXRp
b24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9m
ZnNldCwgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAppbmRleCAzZmFkYzkxLi5hYjUyZDJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaApAQCAtNjMsNiArNjMs
OSBAQCBwdWJsaWM6CiAgICAgLy8gbWV0aG9kIGR1cmluZyBsYXlvdXQgd2hlbiB0aGV5IGFyZSBp
bnZhbGlkYXRlZCBieSBhIGZpbHRlci4KICAgICBzdGF0aWMgdm9pZCBhZGRSZXNvdXJjZUZvckNs
aWVudEludmFsaWRhdGlvbihSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciopOwogCisgICAgYm9v
bCBoYXNTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX2hhc1NWR1NoYWRvdzsgfQorICAgIHZv
aWQgc2V0SGFzU1ZHU2hhZG93KGJvb2wgaGFzU2hhZG93KSB7IG1faGFzU1ZHU2hhZG93ID0gaGFz
U2hhZG93OyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExpc3Qq
IHZpcnR1YWxDaGlsZHJlbigpIHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29uc3QgeyByZXR1
cm4gY2hpbGRyZW4oKTsgfQpAQCAtODksNiArOTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
RmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RCb3Vu
ZGluZ0JveDsgfQogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29u
c3QgeyByZXR1cm4gbV9zdHJva2VCb3VuZGluZ0JveDsgfQogICAgIHZpcnR1YWwgRmxvYXRSZWN0
IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50
Qm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxD
b29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludEJv
dW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9p
bnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExv
Y2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogCkBAIC0xMTAsMTEgKzExNCwxMyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9vYmplY3RCb3VuZGluZ0JveFZhbGlkOwogICAgIEZsb2F0
UmVjdCBtX3N0cm9rZUJvdW5kaW5nQm94OwogICAgIEZsb2F0UmVjdCBtX3JlcGFpbnRCb3VuZGlu
Z0JveDsKKyAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7
CiAgICAgbXV0YWJsZSBBZmZpbmVUcmFuc2Zvcm0gbV9sb2NhbFRvUGFyZW50VHJhbnNmb3JtOwog
ICAgIEFmZmluZVRyYW5zZm9ybSBtX2xvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm07CiAgICAgSGFz
aFNldDxSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcio+IG1fcmVzb3VyY2VzTmVlZGluZ1RvSW52
YWxpZGF0ZUNsaWVudHM7CiAgICAgYm9vbCBtX2lzTGF5b3V0U2l6ZUNoYW5nZWQgOiAxOwogICAg
IGJvb2wgbV9uZWVkc0JvdW5kYXJpZXNPclRyYW5zZm9ybVVwZGF0ZSA6IDE7CisgICAgYm9vbCBt
X2hhc1NWR1NoYWRvdyA6IDE7CiB9OwogCiBpbmxpbmUgUmVuZGVyU1ZHUm9vdCogdG9SZW5kZXJT
VkdSb290KFJlbmRlck9iamVjdCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAppbmRleCA2MmE4Yzk5Li44NGE3NDUyIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcApAQCAtNDA2
LDggKzQwNiwxMSBAQCBGbG9hdFJlY3QgUmVuZGVyU1ZHU2hhcGU6OmNhbGN1bGF0ZVN0cm9rZUJv
dW5kaW5nQm94KCkgY29uc3QKIAogdm9pZCBSZW5kZXJTVkdTaGFwZTo6dXBkYXRlUmVwYWludEJv
dW5kaW5nQm94KCkKIHsKLSAgICBtX3JlcGFpbnRCb3VuZGluZ0JveCA9IHN0cm9rZUJvdW5kaW5n
Qm94KCk7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVz
b3VyY2VzKHRoaXMsIG1fcmVwYWludEJvdW5kaW5nQm94KTsKKyAgICBtX3JlcGFpbnRCb3VuZGlu
Z0JveEV4Y2x1ZGluZ1NoYWRvdyA9IHN0cm9rZUJvdW5kaW5nQm94KCk7CisgICAgU1ZHUmVuZGVy
U3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKHRoaXMsIG1fcmVwYWlu
dEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93KTsKKworICAgIG1fcmVwYWludEJvdW5kaW5nQm94
ID0gbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7CisgICAgU1ZHUmVuZGVyU3Vw
cG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93cyh0aGlzLCBtX3JlcGFpbnRCb3Vu
ZGluZ0JveCk7CiB9CiAKIGZsb2F0IFJlbmRlclNWR1NoYXBlOjpzdHJva2VXaWR0aCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKaW5kZXgg
NDc5NmU4Yy4uNjBhMmRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHU2hhcGUuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdHJv
a2VDb250YWlucyhjb25zdCBGbG9hdFBvaW50JiwgYm9vbCByZXF1aXJlc1N0cm9rZSA9IHRydWUp
OwogCiAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMo
KSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveDsgfQorICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFk
b3c7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbG9jYWxUb1BhcmVudFRy
YW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KICAgICB2aXJ0dWFs
IEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxU
cmFuc2Zvcm07IH0KIApAQCAtMTM1LDYgKzEzNiw3IEBAIHByaXZhdGU6CiAKIHByaXZhdGU6CiAg
ICAgRmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94OworICAgIEZsb2F0UmVjdCBtX3JlcGFp
bnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsKICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sb2Nh
bFRyYW5zZm9ybTsKICAgICBPd25QdHI8UGF0aD4gbV9wYXRoOwogICAgIFZlY3RvcjxNYXJrZXJQ
b3NpdGlvbj4gbV9tYXJrZXJQb3NpdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCA2OTdhNDM5Li5lNmQ4MzhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAK
QEAgLTQ2LDYgKzQ2LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorRmxvYXRSZWN0IFNW
R1JlbmRlclN1cHBvcnQ6OnJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxvY2FsQ29vcmRpbmF0ZXNF
eGNsdWRpbmdTVkdTaGFkb3coY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8g
RklYTUU6IEFkZCBzdXBwb3J0IGZvciBSZW5kZXJTVkdCbG9jay4KKworICAgIGlmIChvYmplY3Qt
PmlzU1ZHU2hhcGUoKSB8fCBvYmplY3QtPmlzU1ZHSW1hZ2UoKSB8fCBvYmplY3QtPmlzU1ZHQ29u
dGFpbmVyKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJTVkdNb2Rl
bE9iamVjdCo+KG9iamVjdCktPnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5n
U1ZHU2hhZG93KCk7CisKKyAgICByZXR1cm4gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29y
ZGluYXRlcygpOworfQorCiBMYXlvdXRSZWN0IFNWR1JlbmRlclN1cHBvcnQ6OmNsaXBwZWRPdmVy
Zmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKQogewogICAgIC8vIFJldHVybiBlYXJseSBm
b3IgYW55IGNhc2VzIHdoZXJlIHdlIGRvbid0IGFjdHVhbGx5IHBhaW50CkBAIC01NCw3ICs2NCwx
MCBAQCBMYXlvdXRSZWN0IFNWR1JlbmRlclN1cHBvcnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlck9iamVjdCogbwogCiAgICAgLy8gUGFzcyBvdXIgbG9jYWwgcGFp
bnQgcmVjdCB0byBjb21wdXRlUmVjdEZvclJlcGFpbnQoKSB3aGljaCB3aWxsCiAgICAgLy8gbWFw
IHRvIHBhcmVudCBjb29yZHMgYW5kIHJlY3Vyc2UgdXAgdGhlIHBhcmVudCBjaGFpbi4KLSAgICBG
bG9hdFJlY3QgcmVwYWludFJlY3QgPSBvYmplY3QtPnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5h
dGVzKCk7CisgICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0ID0gcmVwYWludFJlY3RGb3JSZW5kZXJl
ckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyhvYmplY3QpOworICAgIGNvbnN0
IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IG9iamVjdC0+c3R5bGUoKS0+c3ZnU3R5bGUoKTsK
KyAgICBpZiAoY29uc3QgU2hhZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQor
ICAgICAgICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3cocmVwYWludFJlY3QpOwogICAgIG9i
amVjdC0+Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciwgcmVwYWlu
dFJlY3QpOwogICAgIHJldHVybiBlbmNsb3NpbmdMYXlvdXRSZWN0KHJlcGFpbnRSZWN0KTsKIH0K
QEAgLTI3OCwyMyArMjkxLDczIEBAIGJvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6aXNPdmVyZmxvd0hp
ZGRlbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKICAgICByZXR1cm4gb2JqZWN0LT5zdHls
ZSgpLT5vdmVyZmxvd1goKSA9PSBPSElEREVOOwogfQogCi12b2lkIFNWR1JlbmRlclN1cHBvcnQ6
OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCkKK2Jvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6cmVu
ZGVyZXJIYXNTVkdTaGFkb3coY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8g
RklYTUU6IEFkZCBzdXBwb3J0IGZvciBSZW5kZXJTVkdCbG9jay4KKworICAgIGlmIChvYmplY3Qt
PmlzU1ZHU2hhcGUoKSB8fCBvYmplY3QtPmlzU1ZHSW1hZ2UoKSB8fCBvYmplY3QtPmlzU1ZHQ29u
dGFpbmVyKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJTVkdNb2Rl
bE9iamVjdCo+KG9iamVjdCktPmhhc1NWR1NoYWRvdygpOworCisgICAgaWYgKG9iamVjdC0+aXNT
VkdSb290KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJTVkdSb290
Kj4ob2JqZWN0KS0+aGFzU1ZHU2hhZG93KCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Zv
aWQgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVuZGVyZXJIYXNTVkdTaGFkb3coUmVuZGVyT2JqZWN0
KiBvYmplY3QsIGJvb2wgaGFzU2hhZG93KQoreworICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBm
b3IgUmVuZGVyU1ZHQmxvY2suCisKKyAgICBpZiAob2JqZWN0LT5pc1NWR1NoYXBlKCkgfHwgb2Jq
ZWN0LT5pc1NWR0ltYWdlKCkgfHwgb2JqZWN0LT5pc1NWR0NvbnRhaW5lcigpKQorICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHTW9kZWxPYmplY3QqPihvYmplY3QpLT5zZXRIYXNT
VkdTaGFkb3coaGFzU2hhZG93KTsKKworICAgIGlmIChvYmplY3QtPmlzU1ZHUm9vdCgpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUm9vdCo+KG9iamVjdCktPnNldEhhc1NW
R1NoYWRvdyhoYXNTaGFkb3cpOworfQorCit2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2Vj
dFJlcGFpbnRSZWN0V2l0aFNoYWRvd3MoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZsb2F0
UmVjdCYgcmVwYWludFJlY3QpCiB7CisgICAgLy8gU2luY2UgLXdlYmtpdC1zdmctc2hhZG93IGVu
YWJsZXMgc2hhZG93IGRyYXdpbmcgZm9yIGl0cyBjaGlsZHJlbiwgYnV0IGl0cyBjaGlsZHJlbgor
ICAgIC8vIGRvbid0IGluaGVyaXQgdGhlIHNoYWRvdyBpbiB0aGVpciBTVkdSZW5kZXJTdHlsZSwg
d2UgbmVlZCB0byBzZWFyY2ggb3VyIHBhcmVudHMgZm9yCisgICAgLy8gc2hhZG93cyBpbiBvcmRl
ciB0byBjb3JyZWN0bHkgY29tcHV0ZSBvdXIgcmVwYWludCByZWN0LgorCiAgICAgQVNTRVJUKG9i
amVjdCk7CiAKLSAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7Ci0gICAg
QVNTRVJUKHN0eWxlKTsKKyAgICBjb25zdCBSZW5kZXJPYmplY3QqIGN1cnJlbnRPYmplY3QgPSBv
YmplY3Q7CiAKLSAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+c3Zn
U3R5bGUoKTsKLSAgICBBU1NFUlQoc3ZnU3R5bGUpOworICAgIEFmZmluZVRyYW5zZm9ybSBsb2Nh
bFRvUm9vdFRyYW5zZm9ybTsKKworICAgIHdoaWxlIChjdXJyZW50T2JqZWN0ICYmIHJlbmRlcmVy
SGFzU1ZHU2hhZG93KGN1cnJlbnRPYmplY3QpKSB7CisgICAgICAgIFJlbmRlclN0eWxlKiBzdHls
ZSA9IGN1cnJlbnRPYmplY3QtPnN0eWxlKCk7CisgICAgICAgIEFTU0VSVChzdHlsZSk7CisKKyAg
ICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2Z1N0eWxlKCk7
CisgICAgICAgIEFTU0VSVChzdmdTdHlsZSk7CiAKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
ID0gY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPihvYmplY3QpOwotICAgIFNWR1Jlc291cmNlcyog
cmVzb3VyY2VzID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJlbmRlck9i
amVjdChyZW5kZXJlcik7Ci0gICAgaWYgKCFyZXNvdXJjZXMpIHsKICAgICAgICAgaWYgKGNvbnN0
IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKICAgICAgICAgICAgIHNo
YWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7CisKKyAgICAgICAgcmVwYWlu
dFJlY3QgPSBjdXJyZW50T2JqZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkubWFwUmVjdChy
ZXBhaW50UmVjdCk7CisgICAgICAgIGxvY2FsVG9Sb290VHJhbnNmb3JtICo9IGN1cnJlbnRPYmpl
Y3QtPmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKTsKKworICAgICAgICBjdXJyZW50T2JqZWN0ID0g
Y3VycmVudE9iamVjdC0+cGFyZW50KCk7CisgICAgfTsKKworICAgIGlmIChsb2NhbFRvUm9vdFRy
YW5zZm9ybS5pc0lkZW50aXR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFmZmluZVRyYW5z
Zm9ybSByb290VG9Mb2NhbFRyYW5zZm9ybSA9IGxvY2FsVG9Sb290VHJhbnNmb3JtLmludmVyc2Uo
KTsKKyAgICByZXBhaW50UmVjdCA9IHJvb3RUb0xvY2FsVHJhbnNmb3JtLm1hcFJlY3QocmVwYWlu
dFJlY3QpOworfQorCit2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0
V2l0aFJlc291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgRmxvYXRSZWN0JiByZXBh
aW50UmVjdCkKK3sKKyAgICBBU1NFUlQob2JqZWN0KTsKKworICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSBjb25zdF9jYXN0PFJlbmRlck9iamVjdCo+KG9iamVjdCk7CisgICAgU1ZHUmVzb3Vy
Y2VzKiByZXNvdXJjZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVu
ZGVyT2JqZWN0KHJlbmRlcmVyKTsKKyAgICBpZiAoIXJlc291cmNlcykKICAgICAgICAgcmV0dXJu
OwotICAgIH0KIAogI2lmIEVOQUJMRShGSUxURVJTKQogICAgIGlmIChSZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlciogZmlsdGVyID0gcmVzb3VyY2VzLT5maWx0ZXIoKSkKQEAgLTMwNiw5ICszNjksNiBA
QCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNl
cyhjb25zdCBSZW5kZXJPYmplY3QqIG9iagogCiAgICAgaWYgKFJlbmRlclNWR1Jlc291cmNlTWFz
a2VyKiBtYXNrZXIgPSByZXNvdXJjZXMtPm1hc2tlcigpKQogICAgICAgICByZXBhaW50UmVjdC5p
bnRlcnNlY3QobWFza2VyLT5yZXNvdXJjZUJvdW5kaW5nQm94KHJlbmRlcmVyKSk7Ci0KLSAgICBp
ZiAoY29uc3QgU2hhZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygpKQotICAgICAg
ICBzaGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3cocmVwYWludFJlY3QpOwogfQogCiBib29sIFNW
R1JlbmRlclN1cHBvcnQ6OmZpbHRlcnNGb3JjZUNvbnRhaW5lckxheW91dChSZW5kZXJPYmplY3Qq
IG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBw
b3J0LmgKaW5kZXggMzI4NmY4Zi4uYjczOWJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKQEAgLTUwLDYgKzUwLDggQEAgcHVibGljOgog
ICAgIC8vIEhlbHBlciBmdW5jdGlvbiBkZXRlcm1pbmluZyB3aGV0ZXIgb3ZlcmZsb3cgaXMgaGlk
ZGVuCiAgICAgc3RhdGljIGJvb2wgaXNPdmVyZmxvd0hpZGRlbihjb25zdCBSZW5kZXJPYmplY3Qq
KTsKIAorICAgIHN0YXRpYyB2b2lkIGludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3MoY29u
c3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CisKICAgICAvLyBDYWxjdWxhdGVzIHRoZSBy
ZXBhaW50UmVjdCBpbiBjb21iaW5hdGlvbiB3aXRoIGZpbHRlciwgY2xpcHBlciBhbmQgbWFza2Vy
IGluIGxvY2FsIGNvb3JkaW5hdGVzLgogICAgIHN0YXRpYyB2b2lkIGludGVyc2VjdFJlcGFpbnRS
ZWN0V2l0aFJlc291cmNlcyhjb25zdCBSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3QmKTsKIApAQCAt
NjMsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgcGFpbnRJbmZvSW50ZXJzZWN0
c1JlcGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgbG9jYWxSZXBhaW50UmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBsb2NhbFRyYW5zZm9ybSwgY29uc3QgUGFpbnRJbmZvJik7CiAKICAgICAv
LyBJbXBvcnRhbnQgZnVuY3Rpb25zIHVzZWQgYnkgbmVhcmx5IGFsbCBTVkcgcmVuZGVyZXJzIGNl
bnRyYWxpemluZyBjb29yZGluYXRlIHRyYW5zZm9ybWF0aW9ucyAvIHJlcGFpbnQgcmVjdCBjYWxj
dWxhdGlvbnMKKyAgICBzdGF0aWMgRmxvYXRSZWN0IHJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxv
Y2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3coY29uc3QgUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpOwogICAgIHN0YXRpYyBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlck9iamVjdCosIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpOwogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0
IFJlbmRlck9iamVjdCosIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQpOwogICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
ID0gdHJ1ZSwgYm9vbCogd2FzRml4ZWQgPSAwKTsKQEAgLTc0LDYgKzc3LDEwIEBAIHB1YmxpYzoK
ICAgICAvLyBEZXRlcm1pbmVzIGlmIGFueSBhbmNlc3RvcidzIHRyYW5zZm9ybSBoYXMgY2hhbmdl
ZC4KICAgICBzdGF0aWMgYm9vbCB0cmFuc2Zvcm1Ub1Jvb3RDaGFuZ2VkKFJlbmRlck9iamVjdCop
OwogCisgICAgLy8gSGVscGVyIGZ1bmN0aW9ucyB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgYSBy
ZW5kZXJlciBoYXMgYW4gU1ZHIHNoYWRvdyBhcHBsaWVkLgorICAgIHN0YXRpYyBib29sIHJlbmRl
cmVySGFzU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KTsKKyAgICBzdGF0aWMg
dm9pZCBzZXRSZW5kZXJlckhhc1NWR1NoYWRvdyhSZW5kZXJPYmplY3QqIG9iamVjdCwgYm9vbCBo
YXNTaGFkb3cpOworCiAgICAgLy8gRklYTUU6IFRoZXNlIG1ldGhvZHMgZG8gbm90IGJlbG9uZyBo
ZXJlLgogICAgIHN0YXRpYyBjb25zdCBSZW5kZXJTVkdSb290KiBmaW5kVHJlZVJvb3RPYmplY3Qo
Y29uc3QgUmVuZGVyT2JqZWN0Kik7CiAK
</data>
<flag name="commit-queue"
          id="182257"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172699</attachid>
            <date>2012-11-06 19:23:20 -0800</date>
            <delta_ts>2012-11-06 19:25:35 -0800</delta_ts>
            <desc>patch trying to fix testexpectations</desc>
            <filename>shadow.diff</filename>
            <type>text/plain</type>
            <size>49102</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MjRmNjg4Li4zYWE5ZmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMTEt
MDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVw
YWludCBpc3N1ZXMgd2l0aCAtd2Via2l0LXN2Zy1zaGFkb3cgdXNlZCBvbiBhIGNvbnRhaW5lcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NDMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MDA1MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zOiBNYXJrIHRlc3RzIGFzIG5lZWRpbmcgcmViYXNlbGluZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9uczogTWFyayB0ZXN0cyBhcyBuZWVkaW5nIHJlYmFzZWxpbmUu
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmsgdGVzdHMgYXMg
bmVlZGluZyByZWJhc2VsaW5lLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnM6IE1hcmsgdGVzdHMgYXMgbmVlZGluZyByZWJhc2VsaW5lLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgt
c2hhZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21w
b3NpdGUtc2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNoYW5nZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRv
dWJsZS1zaGFkb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIE1hYyByZXN1bHRz
IGR1ZSB0byB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHN2Zy9jc3MvcGFyZW50LXNoYWRvdy1v
ZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3NzL3BhcmVudC1z
aGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQg
ZW5zdXJlcyB0aGF0IDxnPiB3aXRoIC13ZWJraXQtc3ZnLXNoYWRvdyBhcHBsaWVkIGRyYXdzIHdo
ZW4gY2hpbGRyZW4gYXJlIG9mZnNjcmVlbiBidXQgdGhlIHNoYWRvdyBpcyBub3QuCisKKyAgICAg
ICAgKiBzdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5zdmc6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAg
ICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IDxzdmc+IHdpdGggLXdlYmtpdC1z
dmctc2hhZG93IGFwcGxpZWQgZHJhd3Mgd2hlbiBjaGlsZHJlbiBhcmUgb2Zmc2NyZWVuIGJ1dCB0
aGUgc2hhZG93IGlzIG5vdC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvcmVwYWludC9y
ZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICog
c3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnOiBB
ZGRlZC4KKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdGhhdCBlbnN1cmVzIHRoYXQgU1ZHIGVsZW1l
bnRzIHdpdGggLXdlYmtpdC1zdmctc2hhZG93IGFyZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQuCisK
IDIwMTItMTEtMDYgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBjaHJvbWl1bSwgY2hyb21pdW0tbWFjLW1vdW50YWlubGlvbiBnYXJkZW5p
bmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDU3NzZmZTYuLjk5MDExMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM4Niw2ICsxMzg2LDE1IEBAIHdlYmtpdC5vcmcvYi84
NTEwNyBzdmcvYXMtaW1hZ2UvYW5pbWF0ZWQtc3ZnLWFzLWltYWdlLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIFBhCiAKIHdlYmtpdC5vcmcvYi85MzU4OSBzdmcvZG9tL1NWR1NjcmlwdEVsZW1lbnQv
c2NyaXB0LWNoYW5nZS1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLXdoaWxlLWxvYWRpbmcuc3Zn
IFsgRmFpbHVyZSBQYXNzIFRpbWVvdXQgXQogCisjIFRoZXNlIHRlc3RzIG5lZWQgdG8gYmUgcmVi
YXNlbGluZWQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
NjQzCit3ZWJraXQub3JnL2IvMTAxMzk2IHN2Zy9jc3Mvc2hhZG93LWNoYW5nZXMuc3ZnCit3ZWJr
aXQub3JnL2IvMTAxMzk2IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3Zn
Cit3ZWJraXQub3JnL2IvMTAxMzk2IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0
bWwKK3dlYmtpdC5vcmcvYi8xMDEzOTYgc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3Bh
Y2l0eS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk2IGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93
LW9uLWNvbnRhaW5lci5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk2IHN2Zy9jc3MvY29tcG9zaXRl
LXNoYWRvdy10ZXh0LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcvY3VzdG9tL3NpbXBsZS10
ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRW5kIFNWRyBURVNUUwogIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4
ZjI5ODlkLi4xM2EwMTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTY2Niw2ICsxNjY2LDE1IEBAIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcgWyBTa2lwIF0KICMgUmVn
cmVzc2lvbiBhZnRlciByMTMxNjQwLgogd2Via2l0Lm9yZy9iLzk5NjkxIGdhbWVwYWQvZ2FtZXBh
ZC1vdXQtb2YtcmFuZ2UtY3Jhc2hlci5odG1sIFsgRmFpbHVyZSBdCiAKKyMgVGhlc2UgdGVzdHMg
bmVlZCB0byBiZSByZWJhc2VsaW5lZCBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjU2NDMKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3ZnL2Nzcy9zaGFkb3ctY2hh
bmdlcy5zdmcKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQt
c3ZnLXNoYWRvdy5zdmcKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3ZnL2Nzcy9jb21wb3NpdGUtc2hh
ZG93LWV4YW1wbGUuaHRtbAord2Via2l0Lm9yZy9iLzEwMTQwMCBzdmcvY3NzL2NvbXBvc2l0ZS1z
aGFkb3ctd2l0aC1vcGFjaXR5Lmh0bWwKK3dlYmtpdC5vcmcvYi8xMDE0MDAgZmFzdC9yZXBhaW50
L21vdmluZy1zaGFkb3ctb24tY29udGFpbmVyLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3Zn
L2Nzcy9jb21wb3NpdGUtc2hhZG93LXRleHQuc3ZnCit3ZWJraXQub3JnL2IvMTAxNDAwIHN2Zy9j
dXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy5zdmcKKwogIyBSZXNvdXJjZSBUaW1pbmcg
aXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCiB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY3N2Q2YjAu
LmU2ZmI4NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMzY0LDYgKzEzNjQsMTUgQEAgd2Via2l0Lm9yZy9iLzk4NjEyIFsgUmVsZWFzZSBdIGZhc3Qv
ZG9tL2djLWRvbS10cmVlLWxpZmV0aW1lLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85
ODYxMyBjc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS11c2VyU3BhY2VPblVzZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTg2MTMgY3NzMy9tYXNraW5nL2Ns
aXAtcGF0aC1yZWZlcmVuY2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCisjIFRoZXNlIHRl
c3RzIG5lZWQgdG8gYmUgcmViYXNlbGluZWQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY1NjQzCit3ZWJraXQub3JnL2IvMTAxMzk4IHN2Zy9jc3Mvc2hhZG93
LWNoYW5nZXMuc3ZnCit3ZWJraXQub3JnL2IvMTAxMzk4IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Vi
a2l0LXN2Zy1zaGFkb3cuc3ZnCit3ZWJraXQub3JnL2IvMTAxMzk4IHN2Zy9jc3MvY29tcG9zaXRl
LXNoYWRvdy1leGFtcGxlLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDEzOTggc3ZnL2Nzcy9jb21wb3Np
dGUtc2hhZG93LXdpdGgtb3BhY2l0eS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk4IGZhc3QvcmVw
YWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk4
IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy10ZXh0LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5OCBz
dmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCisKICMgUmVxdWlyZXMgcmVi
YXNlbGluaW5nIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY0NQogd2Via2l0Lm9yZy9iLzExNjQ1IGZhc3QvdGFibGUvMDI1Lmh0bWwgWyBGYWlsdXJlIF0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zp
bmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZXBhaW50L21vdmluZy1zaGFkb3ctb24tY29udGFpbmVyLWV4cGVjdGVkLnR4
dAppbmRleCA5YzVhNTUyLi4zZmFlOGVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZXBhaW50L21vdmluZy1zaGFkb3ctb24tY29udGFpbmVyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L21vdmluZy1zaGFk
b3ctb24tY29udGFpbmVyLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA3ODV4NjE2CiBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzY5eDYwMAotICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoOCw4KSBz
aXplIDQ2OHgxNzMKKyAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDgsOCkgc2l6ZSA0ODh4
MTkzCiAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICg4LDgpIHNpemUgNzh4NjggW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS44MzY5N2Ut
MTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAtMjguNTMxNyA5LjI3MDUxIEwgLTU3LjA2MzQgLTE4
LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwgLTEuMTAyMThlLTE0IC02MCBMIDE3LjYzMzYgLTI0
LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAyOC41MzE3IDkuMjcwNTEgTCAzNS4yNjcxIDQ4LjU0
MSBaIl0KICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDIwMCw0Nikgc2l6ZSAxMjh4
MTI1IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1MC4wMCwxMDAu
MDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRo
PTEwLjAwXSBbZGFzaCBhcnJheT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSM5OTk5OTldfV0gW2RhdGE9Ik0gMS44MzY5N2UtMTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAt
MjguNTMxNyA5LjI3MDUxIEwgLTU3LjA2MzQgLTE4LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwg
LTEuMTAyMThlLTE0IC02MCBMIDE3LjYzMzYgLTI0LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAy
OC41MzE3IDkuMjcwNTEgTCAzNS4yNjcxIDQ4LjU0MSBaIl0KICAgICAgICAgUmVuZGVyU1ZHUGF0
aCB7cGF0aH0gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIyIFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDQwMC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBbZGFzaCBhcnJheT17MjAuMDB9
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS41MzA4
MWUtMTUgMjUgTCAtMjkuMzg5MyA0MC40NTA5IEwgLTIzLjc3NjQgNy43MjU0MiBMIC00Ny41NTI4
IC0xNS40NTA4IEwgLTE0LjY5NDYgLTIwLjIyNTQgTCAtOS4xODQ4NWUtMTUgLTUwIEwgMTQuNjk0
NiAtMjAuMjI1NCBMIDQ3LjU1MjggLTE1LjQ1MDggTCAyMy43NzY0IDcuNzI1NDIgTCAyOS4zODkz
IDQwLjQ1MDkgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nz
cy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL2Nzcy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggYjBmNDU4My4u
ZDcwMThjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJy
b3ctd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDYgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3Zn
fSBhdCAoNzksMjMpIHNpemUgNjA1eDQxNAotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDc5LDIzKSBzaXplIDYzOHg0NDcgW3RyYW5zZm9ybT17bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAw
KSkgdD0oMC4wMCwwLjAwKX1dCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2F9IGF0ICg3OSwy
Mykgc2l6ZSA2MDV4NDE0CisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNzksMjMpIHNp
emUgNjcxeDQ4MCBbdHJhbnNmb3JtPXttPSgoMi4wMCwwLjAwKSgwLjAwLDIuMDApKSB0PSgwLjAw
LDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7YX0gYXQgKDc5LDIzKSBzaXplIDYz
OHg0NDcKICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDc5LDIzKSBzaXplIDYwNXg0
MTQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXSBbc3Ryb2tlIHdpZHRoPTIw
LjAwXX1dIFtkYXRhPSJNIDE4NSA0MCBMIDg1IDQwIEwgODUgMjggTCA0MCA2NCBMIDg1IDEwMCBM
IDg1IDg4IEwgMTg1IDg4IFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0Cmlu
ZGV4IDJlNjM2OWEuLjEyOWU2YzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jbGlwcGF0aC13aXRoLXNoYWRvdy1leHBlY3RlZC50
eHQKQEAgLTEsMTEgKzEsMTEgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMTB4MjAwCiAgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hlaWdodD0yMDAuMDBdCiAg
ICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KC0yMDAuMDAsMC4wMCl9XSBbeD0yMDAuMDBd
IFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAwLjAwXQogICAgIFJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IFtpZD0iY2xpcCJdIFtjbGlwUGF0aFVuaXRzPXVzZXJT
cGFjZU9uVXNlXQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDApIHNpemUg
MjEweDIxMAorICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDApIHNpemUgMjIw
eDIyMAogICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDIxMHgyMTAg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oLTIwMC4wMCwwLjAwKX1d
IFt4PTIwMC4wMF0gW3k9MC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hlaWdodD0yMDAuMDBdCi0gICAg
UmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTQwMC4wMF0g
W2hlaWdodD0yMDAuMDBdCi0gICAgICBbY2xpcFBhdGg9ImNsaXAiXSBSZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIge2NsaXBQYXRofSBhdCAoMCwwKSBzaXplIDIwMHgyMDAKKyAgICBSZW5kZXJTVkdS
ZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDIxMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NDAwLjAwXSBbaGVpZ2h0PTIw
MC4wMF0KKyAgICAgIFtjbGlwUGF0aD0iY2xpcCJdIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciB7
Y2xpcFBhdGh9IGF0ICgwLDApIHNpemUgMjEweDIxMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhh
bXBsZS1leHBlY3RlZC50eHQKaW5kZXggNTI3MGY3MC4uNTI4MWYxZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3Np
dGUtc2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0zLDEwICszLDEwIEBAIGxheWVyIGF0
ICgwLDApIHNpemUgNzg1eDYxNgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKLSAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDQw
LDM2KSBzaXplIDQzNngxNTAKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDAs
MzYpIHNpemUgMTQ2eDE0MAorICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoNDAsMzYpIHNp
emUgNDU2eDE3MAorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6
ZSAxNTZ4MTUwCiAgICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDQwLDM2KSBzaXpl
IDE0NngxNDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAw
LDEwMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ug
d2lkdGg9MTAuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5OTk5OV19XSBbZGF0
YT0iTSAxLjgzNjk3ZS0xNSAzMCBMIC0zNS4yNjcxIDQ4LjU0MSBMIC0yOC41MzE3IDkuMjcwNTEg
TCAtNTcuMDYzNCAtMTguNTQxIEwgLTE3LjYzMzYgLTI0LjI3MDUgTCAtMS4xMDIxOGUtMTQgLTYw
IEwgMTcuNjMzNiAtMjQuMjcwNSBMIDU3LjA2MzQgLTE4LjU0MSBMIDI4LjUzMTcgOS4yNzA1MSBM
IDM1LjI2NzEgNDguNTQxIFoiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
MDAsNDYpIHNpemUgMTI4eDEyNQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
MDAsNDYpIHNpemUgMTM4eDEzNQogICAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgy
MDAsNDYpIHNpemUgMTI4eDEyNSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgyNTAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF0gW3N0cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2ggYXJyYXk9ezIwLjAwfV19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1
LjI2NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcu
NjMzNiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcu
MDYzNCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJdCi0gICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIyCisgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMjd4MTMyCiAgICAg
ICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIyIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwMC4wMCwxMDAuMDApfV0gW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBb
ZGFzaCBhcnJheT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTld
fV0gW2RhdGE9Ik0gMS41MzA4MWUtMTUgMjUgTCAtMjkuMzg5MyA0MC40NTA5IEwgLTIzLjc3NjQg
Ny43MjU0MiBMIC00Ny41NTI4IC0xNS40NTA4IEwgLTE0LjY5NDYgLTIwLjIyNTQgTCAtOS4xODQ4
NWUtMTUgLTUwIEwgMTQuNjk0NiAtMjAuMjI1NCBMIDQ3LjU1MjggLTE1LjQ1MDggTCAyMy43NzY0
IDcuNzI1NDIgTCAyOS4zODkzIDQwLjQ1MDkgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93
LXdpdGgtb3BhY2l0eS1leHBlY3RlZC50eHQKaW5kZXggYzFiMWViNS4uNmJhY2QzMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13
aXRoLW9wYWNpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dApAQCAtNCwx
MCArNCwxMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzY5eDYwMAogbGF5ZXIgYXQgKDgsOCkgc2l6ZSA3Njl4NjAwCi0gIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDQwLDM2KSBzaXplIDQzNngxNTAgW29wYWNpdHk9MC41MF0KLSAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6ZSAxNDZ4MTQwCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDQwLDM2KSBzaXplIDQ1NngxNzAgW29wYWNpdHk9MC41MF0KKyAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6ZSAxNTZ4MTUwCiAgICAgICBSZW5kZXJT
VkdQYXRoIHtwYXRofSBhdCAoNDAsMzYpIHNpemUgMTQ2eDE0MCBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMDAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0xMC4wMF19XSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1LjI2
NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcuNjMz
NiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcuMDYz
NCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJdCi0gICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEyOHgxMjUKKyAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICgyMDAsNDYpIHNpemUgMTM4eDEzNQogICAgICAgUmVuZGVyU1ZH
UGF0aCB7cGF0aH0gYXQgKDIwMCw0Nikgc2l6ZSAxMjh4MTI1IFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1MC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBbZGFzaCBhcnJheT17MjAu
MDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS44
MzY5N2UtMTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAtMjguNTMxNyA5LjI3MDUxIEwgLTU3LjA2
MzQgLTE4LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwgLTEuMTAyMThlLTE0IC02MCBMIDE3LjYz
MzYgLTI0LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAyOC41MzE3IDkuMjcwNTEgTCAzNS4yNjcx
IDQ4LjU0MSBaIl0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYpIHNpemUg
MTE3eDEyMgorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMjd4
MTMyCiAgICAgICBSZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoMzQ5LDQ2KSBzaXplIDExN3gxMjIg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNDAwLjAwLDEwMC4wMCl9
XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9MTAu
MDBdIFtkYXNoIGFycmF5PXsyMC4wMH1dfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5
OTk5OV19XSBbZGF0YT0iTSAxLjUzMDgxZS0xNSAyNSBMIC0yOS4zODkzIDQwLjQ1MDkgTCAtMjMu
Nzc2NCA3LjcyNTQyIEwgLTQ3LjU1MjggLTE1LjQ1MDggTCAtMTQuNjk0NiAtMjAuMjI1NCBMIC05
LjE4NDg1ZS0xNSAtNTAgTCAxNC42OTQ2IC0yMC4yMjU0IEwgNDcuNTUyOCAtMTUuNDUwOCBMIDIz
Ljc3NjQgNy43MjU0MiBMIDI5LjM4OTMgNDAuNDUwOSBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hhZG93LWV4cGVj
dGVkLnR4dAppbmRleCBkYTVjNjY1Li4yNTcyZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvZ3JvdXAtd2l0aC1zaGFkb3ctZXhwZWN0
ZWQudHh0CkBAIC0xLDggKzEsOCBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMzAsMzEpIHNpemUgMzAweDMxOQotICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMwLDMxKSBzaXplIDMzNHgzNTMgW3RyYW5zZm9ybT17
bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAwKSkgdD0oMC4wMCwwLjAwKX1dCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDMwLDMxKSBzaXplIDI4OXgyODYKKyAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgzMCwzMSkgc2l6ZSAzNTV4MzUzIFt0cmFuc2Zvcm09e209KCgyLjAwLDAuMDApKDAu
MDAsMi4wMCkpIHQ9KDAuMDAsMC4wMCl9XQogICAgICAgUmVuZGVyU1ZHUGF0aCB7bGluZX0gYXQg
KDMzLDMxKSBzaXplIDI4NHgzOCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDAwODBd
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbeDE9MTAuMDBdIFt5MT0x
MC4wMF0gW3gyPTg1LjAwXSBbeTI9MTAuMDBdCiAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBh
dCAoMzEsNjUpIHNpemUgMjg4eDIwNCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDAw
ODBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzgwMDA4MF19XSBbeD0xMC4wMF0gW3k9
MjAuMDBdIFt3aWR0aD03NS4wMF0gW2hlaWdodD01MC4wMF0KICAgICAgIFJlbmRlclNWR1RleHQg
e3RleHR9IGF0ICgxMCw3NSkgc2l6ZSA3OHgxOSBjb250YWlucyAxIGNodW5rKHMpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hhbmdlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hhbmdl
cy1leHBlY3RlZC50eHQKaW5kZXggNzEzMzgyYS4uMDgwMDNmNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNoYW5nZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLWV4cGVj
dGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEzNSw1KSBzaXplIDMyNngyODUKLSAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMjAsMCkgc2l6ZSAzNDF4MjkwCisgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDE0NiwxNikgc2l6ZSAzMTV4Mjg4CisgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMTE2LDApIHNpemUgMzQ1eDMwNAogICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDEzNSw1KSBzaXplIDIxNXgyMTUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbeD0xNTAuMDBdIFt5PTIwLjAwXSBbd2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4w
MF0KICAgICAgIFJlbmRlclNWR0VsbGlwc2Uge2NpcmNsZX0gYXQgKDIwNSw3NSkgc2l6ZSAyMTV4
MjE1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2N4PTMyMC4wMF0gW2N5
PTE5MC4wMF0gW3I9MTAwLjAwXQogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDI3MCwz
Nikgc2l6ZSAxOTF4MTA3IGNvbnRhaW5zIDEgY2h1bmsocykKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRl
eHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggM2YwODczMS4uOTQyMWE1MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQt
ZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSw3IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgyMCwyNikgc2l6ZSAzODB4MTk0CisgIFJlbmRlclNWR1Jvb3Qge3N2
Z30gYXQgKDIwLDI2KSBzaXplIDQ4MHgyOTQKICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAo
MjAsMjYpIHNpemUgMjE3eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lu
bGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxN3gxOAogICAgICAgICBjaHVuayAxIHRl
eHQgcnVuIDEgYXQgKDIwLjAwLDQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAzNCB3aWR0
aCAyMTcuMDA6ICJUaGlzIHRleHQgc2hvdWxkIGFwcGVhciBvbmx5IHR3aWNlIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2
Zy1zaGFkb3ctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9yZXBh
aW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5
ZTNmMDc0Y2IzYTIxYThlZDlkMzI2ZDMxOWNlZjI5MGMyZWM1ZGEKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDEwODYwCnpjbWVITlpBPz5GN3swZXVzVGp3VmZmSGZuR0tZcmZDTjEoY2t6TiFTXmBr
U2VzZ28mVTlnR05xUXZ8bCEtWVJPZwp6QVQrdismOTVkSzN0S199JDJPZjJ0biZreD5EMClFNkdy
UnNWXzgqTnY3P21JP3EkK0AmaFB6THFNbCErUHkxZnAKektKUGl0YktZfiMyZ184aVA3MFY3S3ZD
MnJXb0I5eU1mdEg1QzBaI041NkokbCtlX2drZFExQXNFJFZtUFImVXJgCnpSIXFyYVZgR3clO15w
aCY8bShiK15XXkwwaUZ2VmRjfHlLQ1VYflg+SD5xYXJUP05FPWx4ZUIyU0ozeDxPV2hjagp6OEkq
UiNaZHdzc0ttR2RVJGhnKjlwOUwoOTMwP2hWTU8kcCkzVkNpKmltVTZBKkU/TTZaMz1OWnRYK1JA
RyNaVmMKel9nN1hedmBHQWwqeUExPVhyQXFJSTJfRnY7eSRBRS08b3Q/eGtJfX5LYT87bSRITzEz
QkdMTF51V2tfRGl6UCozCnpAJWl4YEQ9XzNqZlcrfFRZdDU0JU1UfnlYR01RbishZ0Ric1cpe29r
JnVfflplZGVRM1F3R051bTFAIzRxPi1tUwp6YnYmSHJgdiFiOWpIYlVuV2U+clMkMjF9TDtjWSl9
WHFjZVVZN2hVdCZuQCo0dFkxZmF7cCszMTx1bV9mZHoyWiYKejZveElfR35nP01TUTAhQFYpJnlr
PWE5ZjB3fkZLSSZ0OUFeZ2U7clFhdiM9fmw9K0BZaXdiRmFAMDVnRTZtbz44CnpxRXAmYG5KYHZY
djd+O1NJQ0U3YEc3MzI+NXxLbSpCVj4kX1MlWEMzdkM8SzNnYTdgbk5aVmspYEFXSkB0SWFTRQp6
QUMoUyFKa3NZIT5+QCl9U0YhRGApb0x8Ki1xODZmWS0yNTZLRHBIQ2h4dG8/RnZJcURJXnI9WFAk
YXNrS09LUC0Kem5XPD50c21nfD9xZXhEZjNXaXw9ISMjb35iRyZLWklQdio7V289Nl9odVo7aDdN
bmpKU2xrPVVhPWwrIWkhbiRGCno0KHFwREF4SmdEK0VnX0NLKClIJFMhQSZgbWdTXzBab01HIWwp
ZkIleGNzbTg0cSVXISNGPWdjVnJHM0pvOHdQcAp6Y1hlWT52UDVGPWVAMkklJX49az9QZDs/S2NM
d0A3bVE/T1BRZjJCZFBxfXxAalVKWEJ5fClxJD1ybyQ1YzhBWj4KekVtfDxabzFVPDRnT0lnSjJM
SnElWS1jMSZAJjBvUko3flZQM240WUkhc3N+b0x0dnprVmQrVnBgcmRta3t6WmdUCnpeSGtGOVY2
OC1gckc2TW5HTHJDSkJ0cTBjd3llUm41TExIbDQkSXY/ZDFNa1FadW9TVHQ0WjEhdXxUTEtxKW9y
Owp6LUJYOzJrZzAlTmg7fW9ta2Jfe3shekQhdjV6K3hudDVyOTRxdFlKQjxAZz8qSXhJK0ZLTX5l
TjtoT14jUmZ2IWcKekFjUm12Qz5rMyFXRTdFIV9KMylTV2woblY0NStON1NZJFN2T1d5QjNKKkw2
PjA8azs3UTFGZD1ISWdeK25qblVxCnpWO3x+M0l4Ul5DP0wyKHRLey0tV3JhfW84Ym1tUzM/cShw
PmxeSCpvcVhoQmhFSyVUSEt9T3ZZTDFLQVJFQ154Zgp6T1MoRWk4WXo3cD09V2xjTTx5c2JFeEg2
TWA9bGppOEM+a1d1OShybkk5O3cpbm0pQ1ViYmJENDEzQmN7aVcqMTsKejhweW9USzRmVGYhR35e
SnlSaW14Q0M2OHQrSmhSJSVne2pYWiFSaEtKKFUqYShSOSVHZ2NeWnB1OWM/Pit1TUlmCnpXdnFl
KmEleFdeM2JfYWtCdVJ1WUxkRlEwSEclO1U5VTttfXlvUl9oUyZ4dHY4ZClqfGAjeG14T3hnKzNW
M0MmZAp6c2NPUVZCTXdLMXdEN0dnJU8jYFkkNCZYQGRjZF4rci1JRnE9QXRjTEhVYGNgWDJpQU8q
OGBUcmdASDxxNjU5YHwKemhZSklwNTJzKnpLUkl3PTtGZGlLTC14VDloT0RiT0xQcjhPN35sfSM8
Qm1FRVNwcHt+JUIzWUpBK3t4aUFxZiROCnojdGkhajl6ITxremAjSmtnSChMKmI4RG1FVjY8XylN
dXA5X1Y+fWYpKTReZ2hZWmxENHo0anl3PjRVajt1eVk0Qwp6Wlc+e0djRzA7ejcqWStwayg7c3R2
OG1ueXlULUZaam81WkAlKiFseVBCfFopdUpOV3Q5NyV7VUc8R35kI3RAbGgKZ3NHRUdNYmpZVW9M
aWZWT2lpemlzIX1VPjBuWFhEfVRDakhlS1FhfHcpJkt3aQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjg1OTUyZS4u
OWNlMmQ0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
MzgzLDYgKzIzODMsMTUgQEAgd2Via2l0Lm9yZy9iLzEwMDg0NiBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXItdGVybWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUKICMgTmV3LCBidXQgZmFp
bGluZyB0ZXN0CiB3ZWJraXQub3JnL2IvMTAxMDM1IGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRp
b24taW1hZ2UtZG9jdW1lbnQuaHRtbAogCisjIFRoZXNlIHRlc3RzIG5lZWQgdG8gYmUgcmViYXNl
bGluZWQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQz
Cit3ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3Mvc2hhZG93LWNoYW5nZXMuc3ZnCit3ZWJraXQu
b3JnL2IvMTAxMzk3IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnCit3
ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0bWwK
K3dlYmtpdC5vcmcvYi8xMDEzOTcgc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0
eS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk3IGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9u
LWNvbnRhaW5lci5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvY29tcG9zaXRlLXNo
YWRvdy10ZXh0LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NyBzdmcvY3VzdG9tL3NpbXBsZS10ZXh0
LWRvdWJsZS1zaGFkb3cuc3ZnCisKICMgRmFpbHMgYWZ0ZXIgdGVzdCByZWZhY3RvcmluZywgbWF5
YmUgcmViYXNlbGluZSBuZWVkZWQKIHdlYmtpdC5vcmcvYi85ODUyMyBmYXN0L2ltYWdlcy9yZXBh
aW50LXN1YnJlY3QtZ3JpZC5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3Mv
bWFzay13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL21hc2st
d2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4IGUyNjlkMzMuLmRiMWQ4MzYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N2Zy9jc3MvbWFzay13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9tYXNrLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAt
MSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCi0gIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCi0gICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoNSw1KSBzaXplIDIxMHgyMTAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAo
NSw1KSBzaXplIDIyMHgyMjAKKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1LDUpIHNp
emUgMjIweDIyMAogICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50IHtsaW5l
YXJHcmFkaWVudH0gW2lkPSJtYXNrZWRHcmFkaWVudCJdIFtncmFkaWVudFVuaXRzPW9iamVjdEJv
dW5kaW5nQm94XSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDEsMSldCiAgICAgICAgICAgUmVuZGVyU1ZH
R3JhZGllbnRTdG9wIHtzdG9wfSBbb2Zmc2V0PTAuMDBdIFtjb2xvcj0jMDAwMEZGXQpAQCAtMTMs
NyArMTMsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ1MHg1MDAKICAgICAgICAgICBSZW5kZXJT
VkdFbGxpcHNlIHtjaXJjbGV9IGF0ICg1LDExNSkgc2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2N4PTU1LjAwXSBbY3k9MTY1LjAwXSBbcj01MC4wMF0K
ICAgICAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICgxMTUsNSkgc2l6ZSAxMTB4
MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2N4PTE2NS4wMF0gW2N5
PTU1LjAwXSBbcj01MC4wMF0KICAgICAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0
ICgxMTUsMTE1KSBzaXplIDExMHgxMTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZG
Rl19XSBbY3g9MTY1LjAwXSBbY3k9MTY1LjAwXSBbcj01MC4wMF0KLSAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCi0gICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7dXNlfSBhdCAoNSw1KSBzaXplIDIxMHgyMTAKLSAgICAgICAgICBbbWFza2VyPSJtYXNr
XzEiXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEw
CisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1LDUpIHNpemUgMjIweDIyMAorICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDUsNSkgc2l6ZSAyMjB4MjIwCisgICAg
ICAgICAgW21hc2tlcj0ibWFza18xIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0
ICg1LDUpIHNpemUgMjIweDIyMAogICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgw
LDApIHNpemUgMzAweDMwMCBbZmlsbD17W3R5cGU9TElORUFSLUdSQURJRU5UXSBbaWQ9Im1hc2tl
ZEdyYWRpZW50Il19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MzAwLjAwXSBbaGVpZ2h0PTMw
MC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZz
Y3JlZW4tZXhwZWN0ZWQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9m
ZnNjcmVlbi1leHBlY3RlZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Yjc1ZDNhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNo
YWRvdy1vZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorPHRpdGxlPkV4cGVjdGVkIHJlc3VsdHMgZm9y
IHBhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZzwvdGl0bGU+Cis8cmVjdCBpZD0icmVjdCIgZmls
bD0id2hpdGUiIHN0eWxlPSItd2Via2l0LXN2Zy1zaGFkb3c6ICMwMDAgMTAwcHggMTAwcHggNXB4
IiB4PSIwIiB5PSIwIiB3aWR0aD0iNzUiIGhlaWdodD0iNzUiPjwvcmVjdD4KKzwvc3ZnPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcg
Yi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2I3YjFhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcKQEAgLTAsMCAr
MSw2IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cis8dGl0bGU+
VGVzdCBwYXNzZXMgaWYgdGhlIHNoYWRvdyBpcyBkcmF3bi48L3RpdGxlPgorPGcgc3R5bGU9Ii13
ZWJraXQtc3ZnLXNoYWRvdzogIzAwMCAyMDBweCAyMDBweCA1cHgiPgorPHJlY3QgaWQ9InJlY3Qi
IHg9Ii0xMDAiIHk9Ii0xMDAiIHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9nPgor
PC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNj
cmVlbi1leHBlY3RlZC5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNj
cmVlbi1leHBlY3RlZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM2
NGYxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3Mvcm9vdC1zaGFkb3ct
b2Zmc2NyZWVuLWV4cGVjdGVkLnN2ZwpAQCAtMCwwICsxLDQgQEAKKzxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzx0aXRsZT5FeHBlY3RlZCByZXN1bHRzIGZvciByb290
LXNoYWRvdy1vZmZzY3JlZW4uc3ZnPC90aXRsZT4KKzxyZWN0IGlkPSJyZWN0IiBmaWxsPSJ3aGl0
ZSIgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogIzAwMCAxMDBweCAxMDBweCA1cHgiIHg9IjAi
IHk9IjAiIHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9zdmc+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi5zdmcgYi9MYXlvdXRU
ZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZmVkMWIxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZwpAQCAtMCwwICsxLDQgQEAKKzxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHlsZT0iLXdlYmtpdC1zdmctc2hh
ZG93OiAjMDAwIDIwMHB4IDIwMHB4IDVweCI+Cis8dGl0bGU+VGVzdCBwYXNzZXMgaWYgdGhlIHNo
YWRvdyBpcyBkcmF3bi48L3RpdGxlPgorPHJlY3QgaWQ9InJlY3QiIHg9Ii0xMDAiIHk9Ii0xMDAi
IHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5OTk3NWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1z
dmctc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEyMCwwKSBzaXpl
IDQ1MHg1MjAKKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMTUwLDEwMCkgc2l6ZSAxMjB4
MTIwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1MC4wMCw1MC4w
MCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFt4PTAuMDBdIFt5PTUw
LjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDEyMCwwKSBzaXplIDEyMHgxMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbeD0xMjAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1z
aGFkb3cuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNo
YWRvdy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmExYTE1YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2
Zy1zaGFkb3cuc3ZnCkBAIC0wLDAgKzEsMTIgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIg
c3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogMTAwcHggMTAwcHggMHB4ICNhYWE7IiBvbmxvYWQ9
InJ1blJlcGFpbnRUZXN0KCkiPgorICAgIDx0aXRsZT5UZXN0IHBhc3NlcyBpZiBmb3VyIHJlY3Rh
bmdsZXMgYXJlIGRyYXduIGFmdGVyIHRoZSBhbmltYXRpb24uPC90aXRsZT4KKyAgICA8cmVjdCBp
ZD0iYSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB4PSIwIiB5PSI1MCIgZmlsbD0iYmxhY2siIC8+
CisgICAgPHJlY3QgaWQ9ImIiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgeD0iMTIwIiB5PSIwIiBm
aWxsPSJibGFjayIgLz4KKyAgICA8c2NyaXB0IHhsaW5rOmhyZWY9Ii4uLy4uL2Zhc3QvcmVwYWlu
dC9yZXNvdXJjZXMvcmVwYWludC5qcyIvPgorICAgIDxzY3JpcHQ+CisgICAgdmFyIHJlY3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkg
eworICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSgxNTAs
IDUwKSIpCisgICAgfQorICAgIDwvc2NyaXB0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEyNWUx
MS4uMzBlZGJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTExLTA2ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGFpbnQgaXNz
dWVzIHdpdGggLXdlYmtpdC1zdmctc2hhZG93IHVzZWQgb24gYSBjb250YWluZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NjAwNTMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNWRyByZW5kZXJlciByZXBhaW50IHJlY3RzIGFyZSBjdXJyZW50bHkg
ZXhwYW5kZWQgb25seSBieSB0aGUgc2hhZG93IG9mCisgICAgICAgIHRoZSByZW5kZXJlciBpdHNl
bGY7IGhvd2V2ZXIsIHRoZSBhcmVhIHRoZXkgbmVlZCB0byByZXBhaW50IGNhbiBiZSBsYXJnZXIK
KyAgICAgICAgdGhhbiB0aGF0LCBpZiB0aGVpciBwYXJlbnRzIGFsc28gaGF2ZSBzaGFkb3dzLiBX
ZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50CisgICAgICAgIHBhcmVudCdzIHNoYWRvd3MgKHJl
c3BlY3RpbmcgdHJhbnNmb3JtcywgYXMgd2VsbCkuCisKKyAgICAgICAgY2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQgYWxyZWFkeSByZWN1cnNlcyB1cHdhcmRzIHRocm91Z2ggdGhlIHJlbmRl
ciB0cmVlLAorICAgICAgICBhbmQgZW5kcyB1cCB3aXRoIGEgcmVjdCBpbiBsYXlvdXQgY29vcmRp
bmF0ZXMsIHNvIHdlIG1hbnVhbGx5IGFwcGx5IHRoZSBzaGFkb3cKKyAgICAgICAgYXQgZWFjaCBz
dGVwIChyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyB3YXMg
YWRkZWQgdG8gYWxsb3cKKyAgICAgICAgdXMgdG8gZ2V0IHRoZSByYXcgcmVwYWludCByZWN0IHdp
dGhvdXQgdGhlIHNoYWRvdyBiYWtlZC1pbikuCisKKyAgICAgICAgcmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXMgbm93IGluY2x1ZGVzIHNoYWRvd3MgZnJvbSBhbGwgcGFyZW50cy4KKworICAg
ICAgICBBbHNvLCBSZW5kZXJTVkdSb290IHdhcyBjbGlwcGluZyByZXBhaW50IHJlY3RzIHRvIHRo
ZSB2aWV3cG9ydCBiZWZvcmUgYXBwbHlpbmcKKyAgICAgICAgc2hhZG93cywgc28gb2Zmc2NyZWVu
IGVsZW1lbnRzIHdpdGggb24tc2NyZWVuIHNoYWRvd3MgKGFwcGxpZWQgYnkgdGhlIHJvb3QpIHdv
dWxkIG5vdCBwYWludCB0aGUgc2hhZG93cy4KKyAgICAgICAgV2UgY2FuIGp1c3Qgc3dhcCB0aGUg
b3JkZXIgb2YgdGhlc2UgdGhpbmdzIHRvIGNvcnJlY3QgdGhpcy4KKworICAgICAgICBUZXN0czog
c3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcsIHN2Zy9jc3Mvcm9vdC1zaGFkb3ct
b2Zmc2NyZWVuLnN2Zywgc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy5zdmcK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjphZGRDaGlsZCk6IE1hcmsgdGhlIGNoaWxkIGJlaW5nIGFkZGVkIGFz
IGhhdmluZyBhbiBTVkcgc2hhZG93IGlmIGl0IGlzIGJlaW5nIGFkZGVkIGFzIGEgY2hpbGQgb2Yg
YW4gZWxlbWVudCB0aGF0IGRvZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnN0
eWxlRGlkQ2hhbmdlKTogTWFyayB0aGUgY2hpbGQgYmVpbmcgYWRkZWQgYXMgaGF2aW5nIGFuIFNW
RyBzaGFkb3cgaWYgaXRzIG5ldyBzdHlsZSBoYXMgYSBzaGFkb3cuCisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJ
bWFnZTo6bGF5b3V0KTogQ2FjaGUgdGhlIHJlcGFpbnQgcmVjdCBiZWZvcmUgaW50ZXJzZWN0aW5n
IGl0IHdpdGggdGhlIHNoYWRvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lt
YWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6cmVwYWludFJlY3RJbkxv
Y2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBh
aW50IHJlY3QgZm9yIHRoZSByZW5kZXJlciB3aXRob3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6UmVuZGVyU1ZHTW9kZWxPYmplY3QpOiBS
ZW5kZXJlcnMgZG8gbm90IGhhdmUgYSBzaGFkb3cgYnkgZGVmYXVsdC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdT
VkdTaGFkb3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBhaW50IHJlY3QgZm9yIHRoZSByZW5kZXJl
ciB3aXRob3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdNb2RlbE9iamVjdDo6aGFzU1ZHU2hhZG93KTogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBy
ZW5kZXJlciBoYXMgYSBzaGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9i
amVjdDo6c2V0SGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBo
YXMgYSBzaGFkb3cuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OlJlbmRlclNWR1Jvb3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQpOiBB
cHBseSB0aGUgc2hhZG93IGJlZm9yZSBjbGlwcGluZyB0byB0aGUgdmlld3BvcnQsIHNvIHdlIGRy
YXcgc2hhZG93cyBmb3IgZWxlbWVudHMgb3V0c2lkZSB0aGUgdmlld3BvcnQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdSb290Ojp1cGRhdGVDYWNoZWRCb3VuZGFyaWVzKTogQ2FjaGUgdGhl
IHJlcGFpbnQgcmVjdCBiZWZvcmUgaW50ZXJzZWN0aW5nIGl0IHdpdGggdGhlIHNoYWRvdy4KKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1Jvb3Q6Omhhc1NWR1NoYWRvdyk6IFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGUg
cmVuZGVyZXIgaGFzIGEgc2hhZG93LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6
c2V0SGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMgYSBz
aGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjpyZXBhaW50UmVjdEluTG9j
YWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFp
bnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhvdXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNWR1NoYXBlOjp1cGRhdGVSZXBhaW50Qm91bmRpbmdCb3gpOiBDYWNoZSB0aGUg
cmVwYWludCByZWN0IGJlZm9yZSBpbnRlcnNlY3RpbmcgaXQgd2l0aCB0aGUgc2hhZG93LgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1NoYXBlOjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NW
R1NoYWRvdyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFpbnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVy
IHdpdGhvdXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6
cmVwYWludFJlY3RGb3JSZW5kZXJlckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRv
dyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFpbnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhv
dXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBv
cnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KTogQXBwbHkgc2hhZG93cyBhcyB3ZSB3
YWxrIHRocm91Z2ggb3VyIHBhcmVudHMsIGluc3RlYWQgb2Ygb25seSBhcHBseWluZyB0aGUgcmVu
ZGVyZXIncyBvd24gc2hhZG93LgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6
cmVuZGVyZXJIYXNTVkdTaGFkb3cpOiBSZXR1cm4gd2hldGhlciBvciBub3QgdGhlIHJlbmRlcmVy
IGhhcyBhIHNoYWRvdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OnNldFJl
bmRlcmVySGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMg
YSBzaGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RS
ZXBhaW50UmVjdFdpdGhTaGFkb3dzKTogV2FsayB0aHJvdWdoIHRoZSBlbGVtZW50J3MgcGFyZW50
cywgYWRkaW5nIHNoYWRvd3MgdG8gdGhlIHJlcGFpbnQgcmVjdCBhcyB3ZSBnbywgZXZlbnR1YWxs
eQorICAgICAgICB0cmFuc2Zvcm1pbmcgdGhlIHJlcGFpbnQgcmVjdCBiYWNrIGludG8gbG9jYWwg
Y29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNl
Y3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMpOiBEb24ndCBhZGQgc2hhZG93cyBieSBkZWZhdWx0
LCBqdXN0IG90aGVyIHJlc291cmNlcywgc28gdGhhdCB3ZSBjYW4gY2FjaGUgcmVwYWludCByZWN0
cyB3aXRoIGFuZCB3aXRob3V0IHNoYWRvd3MuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJTdXBwb3J0Lmg6CisKIDIwMTItMTEtMDYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgU29tZSBjb29raWUgY29kZSBjbGVhbnVwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDk4ZDBjM2QuLjIyNThmN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yODQsNiArMjg0
LDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogICAgIGlmICghY2hpbGRyZW4pCiAgICAgICAg
IHJldHVybjsKIAorI2lmIEVOQUJMRShTVkcpCisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVu
ZGVyZXJIYXNTVkdTaGFkb3cobmV3Q2hpbGQsIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFz
U1ZHU2hhZG93KHRoaXMpIHx8IFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hhZG93
KG5ld0NoaWxkKSk7CisjZW5kaWYKKwogICAgIGJvb2wgbmVlZHNUYWJsZSA9IGZhbHNlOwogCiAg
ICAgaWYgKG5ld0NoaWxkLT5pc1JlbmRlclRhYmxlQ29sKCkpIHsKQEAgLTE5MTUsNiArMTkxOSwx
MCBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdAogICAgIGlmIChzX2FmZmVjdHNQYXJlbnRCbG9j
aykKICAgICAgICAgaGFuZGxlRHluYW1pY0Zsb2F0UG9zaXRpb25DaGFuZ2UoKTsKIAorI2lmIEVO
QUJMRShTVkcpCisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVuZGVyZXJIYXNTVkdTaGFkb3co
dGhpcywgKG1fcGFyZW50ICYmIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hhZG93
KG1fcGFyZW50KSkgfHwgKHN0eWxlKCktPnN2Z1N0eWxlKCkgJiYgc3R5bGUoKS0+c3ZnU3R5bGUo
KS0+c2hhZG93KCkpKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3BhcmVudCkKICAgICAgICAgcmV0
dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lt
YWdlLmNwcAppbmRleCA0Nzk0N2UxLi42NjFiMTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcApAQCAtOTIsOCArOTIsMTIgQEAgdm9pZCBS
ZW5kZXJTVkdJbWFnZTo6bGF5b3V0KCkKICAgICB9CiAKICAgICBpZiAobV9uZWVkc0JvdW5kYXJp
ZXNVcGRhdGUpIHsKLSAgICAgICAgbV9yZXBhaW50Qm91bmRpbmdCb3ggPSBtX29iamVjdEJvdW5k
aW5nQm94OwotICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdp
dGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOworICAgICAgICBtX3JlcGFp
bnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyA9IG1fb2JqZWN0Qm91bmRpbmdCb3g7CisgICAg
ICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0
aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyk7CisKKyAgICAgICAgbV9y
ZXBhaW50Qm91bmRpbmdCb3ggPSBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsK
KyAgICAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93
cyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7CisKICAgICAgICAgbV9uZWVkc0JvdW5kYXJp
ZXNVcGRhdGUgPSBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW1hZ2UuaAppbmRleCA5Y2QzZWVhLi45MDVhOGQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCkBAIC01Nyw2ICs1Nyw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25z
dCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qg
c3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9
CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBj
b25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveDsgfQorICAgIHZpcnR1YWwgRmxvYXRS
ZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4m
LCBjb25zdCBMYXlvdXRQb2ludCYpOwogCkBAIC03NSw2ICs3Niw3IEBAIHByaXZhdGU6CiAgICAg
QWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUcmFuc2Zvcm07CiAgICAgRmxvYXRSZWN0IG1fb2JqZWN0
Qm91bmRpbmdCb3g7CiAgICAgRmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94OworICAgIEZs
b2F0UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsKICAgICBPd25QdHI8
UmVuZGVySW1hZ2VSZXNvdXJjZT4gbV9pbWFnZVJlc291cmNlOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRl
eCA3YmRjZDc0Li4wMWRlMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcApAQCAtNDMsNyArNDMsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR01vZGVsT2JqZWN0OjpSZW5kZXJTVkdNb2RlbE9iamVj
dChTVkdTdHlsZWRFbGVtZW50KiBub2RlKQogICAgIDogUmVuZGVyT2JqZWN0KG5vZGUpCisvLyAg
ICAsIG1faGFzU1ZHU2hhZG93KGZhbHNlKQogeworICAgIFdURkxvZ0Fsd2F5cygiJWxkXG4iLCBz
aXplb2YoUmVuZGVyU1ZHTW9kZWxPYmplY3QpKTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCAwYzRlYzViLi45NzM1
Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5oCkBAIC02Niw2ICs2NiwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wg
Y2hlY2tJbnRlcnNlY3Rpb24oUmVuZGVyT2JqZWN0KiwgY29uc3QgRmxvYXRSZWN0Jik7CiAgICAg
c3RhdGljIGJvb2wgY2hlY2tFbmNsb3N1cmUoUmVuZGVyT2JqZWN0KiwgY29uc3QgRmxvYXRSZWN0
Jik7CiAKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRl
c0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIHJlcGFpbnRSZWN0SW5Mb2NhbENv
b3JkaW5hdGVzKCk7IH0KKyAgICBib29sIGhhc1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdm9pZCBzZXRIYXNTVkdTaGFkb3coYm9vbCApIHsgIH0KKwogcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApAQCAtNzMsNiArNzcsNyBA
QCBwcml2YXRlOgogICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBuZXZlciBiZSBjYWxsZWQsIFNW
RyB1c2VzIGEgZGlmZmVyZW50IG5vZGVBdFBvaW50IG1ldGhvZAogICAgIGJvb2wgbm9kZUF0UG9p
bnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExv
Y2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhYnNv
bHV0ZUZvY3VzUmluZ1F1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+Jik7CisgICAgLy9ib29sIG1faGFz
U1ZHU2hhZG93OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5jcHAKaW5kZXggMjczM2FlNC4uNTU1ZDUyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC02MCw2ICs2MCw3IEBAIFJl
bmRlclNWR1Jvb3Q6OlJlbmRlclNWR1Jvb3QoU1ZHU3R5bGVkRWxlbWVudCogbm9kZSkKICAgICAs
IG1fb2JqZWN0Qm91bmRpbmdCb3hWYWxpZChmYWxzZSkKICAgICAsIG1faXNMYXlvdXRTaXplQ2hh
bmdlZChmYWxzZSkKICAgICAsIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUodHJ1
ZSkKKyAgICAsIG1faGFzU1ZHU2hhZG93KGZhbHNlKQogewogfQogCkBAIC0zODUsMTMgKzM4Niwx
MyBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDbwogICAgIC8vIGFuZCB0aGVuIGNhbGwgUmVuZGVy
Qm94J3MgbWV0aG9kIHRvIGhhbmRsZSBhbGwgdGhlIG5vcm1hbCBDU1MgQm94IG1vZGVsIGJpdHMK
ICAgICByZXBhaW50UmVjdCA9IG1fbG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybS5tYXBSZWN0KHJl
cGFpbnRSZWN0KTsKIAotICAgIC8vIEFwcGx5IGluaXRpYWwgdmlld3BvcnQgY2xpcCAtIG5vdCBh
ZmZlY3RlZCBieSBvdmVyZmxvdyBzZXR0aW5ncyAgICAKLSAgICByZXBhaW50UmVjdC5pbnRlcnNl
Y3QocGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpKTsKLQogICAgIGNvbnN0IFNWR1JlbmRlclN0
eWxlKiBzdmdTdHlsZSA9IHN0eWxlKCktPnN2Z1N0eWxlKCk7CiAgICAgaWYgKGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKICAgICAgICAgc2hhZG93LT5hZGp1
c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKIAorICAgIC8vIEFwcGx5IGluaXRpYWwgdmll
d3BvcnQgY2xpcCAtIG5vdCBhZmZlY3RlZCBieSBvdmVyZmxvdyBzZXR0aW5ncworICAgIHJlcGFp
bnRSZWN0LmludGVyc2VjdChwaXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkpOworCiAgICAgTGF5
b3V0UmVjdCByZWN0ID0gZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCk7CiAgICAgUmVuZGVy
UmVwbGFjZWQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZWN0LCBm
aXhlZCk7CiAgICAgcmVwYWludFJlY3QgPSByZWN0OwpAQCAtNDE1LDkgKzQxNiwxMiBAQCBjb25z
dCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR1Jvb3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbAogCiB2b2lkIFJlbmRlclNWR1Jvb3Q6OnVwZGF0ZUNhY2hlZEJv
dW5kYXJpZXMoKQogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVDb250YWluZXJCb3Vu
ZGluZ0JveGVzKHRoaXMsIG1fb2JqZWN0Qm91bmRpbmdCb3gsIG1fb2JqZWN0Qm91bmRpbmdCb3hW
YWxpZCwgbV9zdHJva2VCb3VuZGluZ0JveCwgbV9yZXBhaW50Qm91bmRpbmdCb3gpOwotICAgIFNW
R1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBt
X3JlcGFpbnRCb3VuZGluZ0JveCk7Ci0gICAgbV9yZXBhaW50Qm91bmRpbmdCb3guaW5mbGF0ZShi
b3JkZXJBbmRQYWRkaW5nV2lkdGgoKSk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUNv
bnRhaW5lckJvdW5kaW5nQm94ZXModGhpcywgbV9vYmplY3RCb3VuZGluZ0JveCwgbV9vYmplY3RC
b3VuZGluZ0JveFZhbGlkLCBtX3N0cm9rZUJvdW5kaW5nQm94LCBtX3JlcGFpbnRCb3VuZGluZ0Jv
eEV4Y2x1ZGluZ1NoYWRvdyk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWlu
dFJlY3RXaXRoUmVzb3VyY2VzKHRoaXMsIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hh
ZG93KTsKKyAgICBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdy5pbmZsYXRlKGJv
cmRlckFuZFBhZGRpbmdXaWR0aCgpKTsKKworICAgIG1fcmVwYWludEJvdW5kaW5nQm94ID0gbV9y
ZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6
aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93cyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0Jv
eCk7CiB9CiAKIGJvb2wgUmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdExvY2F0
aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRP
ZmZzZXQsIEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKaW5kZXggMWUxMTJhMS4uMTNkNzhkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY3LDYgKzY3
LDkgQEAgcHVibGljOgogICAgIC8vIG1ldGhvZCBkdXJpbmcgbGF5b3V0IHdoZW4gdGhleSBhcmUg
aW52YWxpZGF0ZWQgYnkgYSBmaWx0ZXIuCiAgICAgc3RhdGljIHZvaWQgYWRkUmVzb3VyY2VGb3JD
bGllbnRJbnZhbGlkYXRpb24oUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqKTsKIAorICAgIGJv
b2wgaGFzU1ZHU2hhZG93KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTVkdTaGFkb3c7IH0KKyAgICB2
b2lkIHNldEhhc1NWR1NoYWRvdyhib29sIGhhc1NoYWRvdykgeyBtX2hhc1NWR1NoYWRvdyA9IGhh
c1NoYWRvdzsgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7IHJldHVybiBjaGlsZHJlbigpOyB9CiAgICAgdmlydHVhbCBj
b25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0
dXJuIGNoaWxkcmVuKCk7IH0KQEAgLTkzLDYgKzk2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0Qm91
bmRpbmdCb3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNv
bnN0IHsgcmV0dXJuIG1fc3Ryb2tlQm91bmRpbmdCb3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVj
dCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWlu
dEJvdW5kaW5nQm94OyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRC
b3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsgfQogCiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKIApAQCAtMTE0LDExICsxMTgsMTMg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fb2JqZWN0Qm91bmRpbmdCb3hWYWxpZDsKICAgICBGbG9h
dFJlY3QgbV9zdHJva2VCb3VuZGluZ0JveDsKICAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRp
bmdCb3g7CisgICAgRmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93
OwogICAgIG11dGFibGUgQWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUb1BhcmVudFRyYW5zZm9ybTsK
ICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtOwogICAgIEhh
c2hTZXQ8UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqPiBtX3Jlc291cmNlc05lZWRpbmdUb0lu
dmFsaWRhdGVDbGllbnRzOwogICAgIGJvb2wgbV9pc0xheW91dFNpemVDaGFuZ2VkIDogMTsKICAg
ICBib29sIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUgOiAxOworICAgIGJvb2wg
bV9oYXNTVkdTaGFkb3cgOiAxOwogfTsKIAogaW5saW5lIFJlbmRlclNWR1Jvb3QqIHRvUmVuZGVy
U1ZHUm9vdChSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXggNWRjZWFjMy4uMDE5MjY2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTQw
Nyw4ICs0MDcsMTEgQEAgRmxvYXRSZWN0IFJlbmRlclNWR1NoYXBlOjpjYWxjdWxhdGVTdHJva2VC
b3VuZGluZ0JveCgpIGNvbnN0CiAKIHZvaWQgUmVuZGVyU1ZHU2hhcGU6OnVwZGF0ZVJlcGFpbnRC
b3VuZGluZ0JveCgpCiB7Ci0gICAgbV9yZXBhaW50Qm91bmRpbmdCb3ggPSBzdHJva2VCb3VuZGlu
Z0JveCgpOwotICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJl
c291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7CisgICAgbV9yZXBhaW50Qm91bmRp
bmdCb3hFeGNsdWRpbmdTaGFkb3cgPSBzdHJva2VCb3VuZGluZ0JveCgpOworICAgIFNWR1JlbmRl
clN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFp
bnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyk7CisKKyAgICBtX3JlcGFpbnRCb3VuZGluZ0Jv
eCA9IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OworICAgIFNWR1JlbmRlclN1
cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3ModGhpcywgbV9yZXBhaW50Qm91
bmRpbmdCb3gpOwogfQogCiBmbG9hdCBSZW5kZXJTVkdTaGFwZTo6c3Ryb2tlV2lkdGgoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFw
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCmluZGV4
IDQ3OTZlOGMuLjYwYTJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3Ry
b2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgcmVxdWlyZXNTdHJva2UgPSB0cnVl
KTsKIAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVz
KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZs
b2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hh
ZG93OyB9CiAgICAgdmlydHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRU
cmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CiAgICAgdmlydHVh
bCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2Fs
VHJhbnNmb3JtOyB9CiAKQEAgLTEzNSw2ICsxMzYsNyBAQCBwcml2YXRlOgogCiBwcml2YXRlOgog
ICAgIEZsb2F0UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveDsKKyAgICBGbG9hdFJlY3QgbV9yZXBh
aW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbG9j
YWxUcmFuc2Zvcm07CiAgICAgT3duUHRyPFBhdGg+IG1fcGF0aDsKICAgICBWZWN0b3I8TWFya2Vy
UG9zaXRpb24+IG1fbWFya2VyUG9zaXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggNjk3YTQzOS4uZTZkODM4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3Bw
CkBAIC00Niw2ICs0NiwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0Zsb2F0UmVjdCBT
VkdSZW5kZXJTdXBwb3J0OjpyZXBhaW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5hdGVz
RXhjbHVkaW5nU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIC8v
IEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgUmVuZGVyU1ZHQmxvY2suCisKKyAgICBpZiAob2JqZWN0
LT5pc1NWR1NoYXBlKCkgfHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkgfHwgb2JqZWN0LT5pc1NWR0Nv
bnRhaW5lcigpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHTW9k
ZWxPYmplY3QqPihvYmplY3QpLT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGlu
Z1NWR1NoYWRvdygpOworCisgICAgcmV0dXJuIG9iamVjdC0+cmVwYWludFJlY3RJbkxvY2FsQ29v
cmRpbmF0ZXMoKTsKK30KKwogTGF5b3V0UmVjdCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3Zl
cmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikKIHsKICAgICAvLyBSZXR1cm4gZWFybHkg
Zm9yIGFueSBjYXNlcyB3aGVyZSB3ZSBkb24ndCBhY3R1YWxseSBwYWludApAQCAtNTQsNyArNjQs
MTAgQEAgTGF5b3V0UmVjdCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqIG8KIAogICAgIC8vIFBhc3Mgb3VyIGxvY2FsIHBh
aW50IHJlY3QgdG8gY29tcHV0ZVJlY3RGb3JSZXBhaW50KCkgd2hpY2ggd2lsbAogICAgIC8vIG1h
cCB0byBwYXJlbnQgY29vcmRzIGFuZCByZWN1cnNlIHVwIHRoZSBwYXJlbnQgY2hhaW4uCi0gICAg
RmxvYXRSZWN0IHJlcGFpbnRSZWN0ID0gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGlu
YXRlcygpOworICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IHJlcGFpbnRSZWN0Rm9yUmVuZGVy
ZXJJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cob2JqZWN0KTsKKyAgICBjb25z
dCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxlKCk7
CisgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkK
KyAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKICAgICBv
YmplY3QtPmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFp
bnRSZWN0KTsKICAgICByZXR1cm4gZW5jbG9zaW5nTGF5b3V0UmVjdChyZXBhaW50UmVjdCk7CiB9
CkBAIC0yNzgsMjMgKzI5MSw3MyBAQCBib29sIFNWR1JlbmRlclN1cHBvcnQ6OmlzT3ZlcmZsb3dI
aWRkZW4oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIG9iamVjdC0+c3R5
bGUoKS0+b3ZlcmZsb3dYKCkgPT0gT0hJRERFTjsKIH0KIAotdm9pZCBTVkdSZW5kZXJTdXBwb3J0
OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QpCitib29sIFNWR1JlbmRlclN1cHBvcnQ6OnJl
bmRlcmVySGFzU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIC8v
IEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgUmVuZGVyU1ZHQmxvY2suCisKKyAgICBpZiAob2JqZWN0
LT5pc1NWR1NoYXBlKCkgfHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkgfHwgb2JqZWN0LT5pc1NWR0Nv
bnRhaW5lcigpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHTW9k
ZWxPYmplY3QqPihvYmplY3QpLT5oYXNTVkdTaGFkb3coKTsKKworICAgIGlmIChvYmplY3QtPmlz
U1ZHUm9vdCgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHUm9v
dCo+KG9iamVjdCktPmhhc1NWR1NoYWRvdygpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFNWR1JlbmRlclN1cHBvcnQ6OnNldFJlbmRlcmVySGFzU1ZHU2hhZG93KFJlbmRlck9iamVj
dCogb2JqZWN0LCBib29sIGhhc1NoYWRvdykKK3sKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQg
Zm9yIFJlbmRlclNWR0Jsb2NrLgorCisgICAgaWYgKG9iamVjdC0+aXNTVkdTaGFwZSgpIHx8IG9i
amVjdC0+aXNTVkdJbWFnZSgpIHx8IG9iamVjdC0+aXNTVkdDb250YWluZXIoKSkKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR01vZGVsT2JqZWN0Kj4ob2JqZWN0KS0+c2V0SGFz
U1ZHU2hhZG93KGhhc1NoYWRvdyk7CisKKyAgICBpZiAob2JqZWN0LT5pc1NWR1Jvb3QoKSkKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR1Jvb3QqPihvYmplY3QpLT5zZXRIYXNT
VkdTaGFkb3coaGFzU2hhZG93KTsKK30KKwordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNl
Y3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9h
dFJlY3QmIHJlcGFpbnRSZWN0KQogeworICAgIC8vIFNpbmNlIC13ZWJraXQtc3ZnLXNoYWRvdyBl
bmFibGVzIHNoYWRvdyBkcmF3aW5nIGZvciBpdHMgY2hpbGRyZW4sIGJ1dCBpdHMgY2hpbGRyZW4K
KyAgICAvLyBkb24ndCBpbmhlcml0IHRoZSBzaGFkb3cgaW4gdGhlaXIgU1ZHUmVuZGVyU3R5bGUs
IHdlIG5lZWQgdG8gc2VhcmNoIG91ciBwYXJlbnRzIGZvcgorICAgIC8vIHNoYWRvd3MgaW4gb3Jk
ZXIgdG8gY29ycmVjdGx5IGNvbXB1dGUgb3VyIHJlcGFpbnQgcmVjdC4KKwogICAgIEFTU0VSVChv
YmplY3QpOwogCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOwotICAg
IEFTU0VSVChzdHlsZSk7CisgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyZW50T2JqZWN0ID0g
b2JqZWN0OwogCi0gICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2
Z1N0eWxlKCk7Ci0gICAgQVNTRVJUKHN2Z1N0eWxlKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbG9j
YWxUb1Jvb3RUcmFuc2Zvcm07CisKKyAgICB3aGlsZSAoY3VycmVudE9iamVjdCAmJiByZW5kZXJl
ckhhc1NWR1NoYWRvdyhjdXJyZW50T2JqZWN0KSkgeworICAgICAgICBSZW5kZXJTdHlsZSogc3R5
bGUgPSBjdXJyZW50T2JqZWN0LT5zdHlsZSgpOworICAgICAgICBBU1NFUlQoc3R5bGUpOworCisg
ICAgICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxlLT5zdmdTdHlsZSgp
OworICAgICAgICBBU1NFUlQoc3ZnU3R5bGUpOwogCi0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4ob2JqZWN0KTsKLSAgICBTVkdSZXNvdXJjZXMq
IHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJP
YmplY3QocmVuZGVyZXIpOwotICAgIGlmICghcmVzb3VyY2VzKSB7CiAgICAgICAgIGlmIChjb25z
dCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCiAgICAgICAgICAgICBz
aGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3cocmVwYWludFJlY3QpOworCisgICAgICAgIHJlcGFp
bnRSZWN0ID0gY3VycmVudE9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLm1hcFJlY3Qo
cmVwYWludFJlY3QpOworICAgICAgICBsb2NhbFRvUm9vdFRyYW5zZm9ybSAqPSBjdXJyZW50T2Jq
ZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCk7CisKKyAgICAgICAgY3VycmVudE9iamVjdCA9
IGN1cnJlbnRPYmplY3QtPnBhcmVudCgpOworICAgIH07CisKKyAgICBpZiAobG9jYWxUb1Jvb3RU
cmFuc2Zvcm0uaXNJZGVudGl0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBZmZpbmVUcmFu
c2Zvcm0gcm9vdFRvTG9jYWxUcmFuc2Zvcm0gPSBsb2NhbFRvUm9vdFRyYW5zZm9ybS5pbnZlcnNl
KCk7CisgICAgcmVwYWludFJlY3QgPSByb290VG9Mb2NhbFRyYW5zZm9ybS5tYXBSZWN0KHJlcGFp
bnRSZWN0KTsKK30KKwordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVj
dFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZsb2F0UmVjdCYgcmVw
YWludFJlY3QpCit7CisgICAgQVNTRVJUKG9iamVjdCk7CisKKyAgICBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyID0gY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPihvYmplY3QpOworICAgIFNWR1Jlc291
cmNlcyogcmVzb3VyY2VzID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJl
bmRlck9iamVjdChyZW5kZXJlcik7CisgICAgaWYgKCFyZXNvdXJjZXMpCiAgICAgICAgIHJldHVy
bjsKLSAgICB9CiAKICNpZiBFTkFCTEUoRklMVEVSUykKICAgICBpZiAoUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIqIGZpbHRlciA9IHJlc291cmNlcy0+ZmlsdGVyKCkpCkBAIC0zMDYsOSArMzY5LDYg
QEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJj
ZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmoKIAogICAgIGlmIChSZW5kZXJTVkdSZXNvdXJjZU1h
c2tlciogbWFza2VyID0gcmVzb3VyY2VzLT5tYXNrZXIoKSkKICAgICAgICAgcmVwYWludFJlY3Qu
aW50ZXJzZWN0KG1hc2tlci0+cmVzb3VyY2VCb3VuZGluZ0JveChyZW5kZXJlcikpOwotCi0gICAg
aWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKLSAgICAg
ICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKIH0KIAogYm9vbCBT
VkdSZW5kZXJTdXBwb3J0OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQoUmVuZGVyT2JqZWN0
KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlclN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3Vw
cG9ydC5oCmluZGV4IDMyODZmOGYuLmI3MzliZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoK
ICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gZGV0ZXJtaW5pbmcgd2hldGVyIG92ZXJmbG93IGlzIGhp
ZGRlbgogICAgIHN0YXRpYyBib29sIGlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVuZGVyT2JqZWN0
Kik7CiAKKyAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKGNv
bnN0IFJlbmRlck9iamVjdCosIEZsb2F0UmVjdCYpOworCiAgICAgLy8gQ2FsY3VsYXRlcyB0aGUg
cmVwYWludFJlY3QgaW4gY29tYmluYXRpb24gd2l0aCBmaWx0ZXIsIGNsaXBwZXIgYW5kIG1hc2tl
ciBpbiBsb2NhbCBjb29yZGluYXRlcy4KICAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50
UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CiAKQEAg
LTYzLDYgKzY1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHBhaW50SW5mb0ludGVyc2Vj
dHNSZXBhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmIGxvY2FsUmVwYWludFJlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgbG9jYWxUcmFuc2Zvcm0sIGNvbnN0IFBhaW50SW5mbyYpOwogCiAgICAg
Ly8gSW1wb3J0YW50IGZ1bmN0aW9ucyB1c2VkIGJ5IG5lYXJseSBhbGwgU1ZHIHJlbmRlcmVycyBj
ZW50cmFsaXppbmcgY29vcmRpbmF0ZSB0cmFuc2Zvcm1hdGlvbnMgLyByZXBhaW50IHJlY3QgY2Fs
Y3VsYXRpb25zCisgICAgc3RhdGljIEZsb2F0UmVjdCByZXBhaW50UmVjdEZvclJlbmRlcmVySW5M
b2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2Jq
ZWN0KTsKICAgICBzdGF0aWMgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWlu
dChjb25zdCBSZW5kZXJPYmplY3QqLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyKTsKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25z
dCBSZW5kZXJPYmplY3QqLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBGbG9hdFJlY3QmLCBib29sIGZpeGVkKTsKICAgICBzdGF0aWMgdm9pZCBtYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CkBAIC03NCw2ICs3NywxMCBAQCBwdWJsaWM6
CiAgICAgLy8gRGV0ZXJtaW5lcyBpZiBhbnkgYW5jZXN0b3IncyB0cmFuc2Zvcm0gaGFzIGNoYW5n
ZWQuCiAgICAgc3RhdGljIGJvb2wgdHJhbnNmb3JtVG9Sb290Q2hhbmdlZChSZW5kZXJPYmplY3Qq
KTsKIAorICAgIC8vIEhlbHBlciBmdW5jdGlvbnMgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGEg
cmVuZGVyZXIgaGFzIGFuIFNWRyBzaGFkb3cgYXBwbGllZC4KKyAgICBzdGF0aWMgYm9vbCByZW5k
ZXJlckhhc1NWR1NoYWRvdyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCk7CisgICAgc3RhdGlj
IHZvaWQgc2V0UmVuZGVyZXJIYXNTVkdTaGFkb3coUmVuZGVyT2JqZWN0KiBvYmplY3QsIGJvb2wg
aGFzU2hhZG93KTsKKwogICAgIC8vIEZJWE1FOiBUaGVzZSBtZXRob2RzIGRvIG5vdCBiZWxvbmcg
aGVyZS4KICAgICBzdGF0aWMgY29uc3QgUmVuZGVyU1ZHUm9vdCogZmluZFRyZWVSb290T2JqZWN0
KGNvbnN0IFJlbmRlck9iamVjdCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172701</attachid>
            <date>2012-11-06 19:25:35 -0800</date>
            <delta_ts>2012-11-06 19:41:53 -0800</delta_ts>
            <desc>and the style bot</desc>
            <filename>shadow.diff</filename>
            <type>text/plain</type>
            <size>49081</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MjRmNjg4Li4zYWE5ZmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMTEt
MDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVw
YWludCBpc3N1ZXMgd2l0aCAtd2Via2l0LXN2Zy1zaGFkb3cgdXNlZCBvbiBhIGNvbnRhaW5lcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NDMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MDA1MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zOiBNYXJrIHRlc3RzIGFzIG5lZWRpbmcgcmViYXNlbGluZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9uczogTWFyayB0ZXN0cyBhcyBuZWVkaW5nIHJlYmFzZWxpbmUu
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmsgdGVzdHMgYXMg
bmVlZGluZyByZWJhc2VsaW5lLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnM6IE1hcmsgdGVzdHMgYXMgbmVlZGluZyByZWJhc2VsaW5lLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgt
c2hhZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21w
b3NpdGUtc2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNoYW5nZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRv
dWJsZS1zaGFkb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIE1hYyByZXN1bHRz
IGR1ZSB0byB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHN2Zy9jc3MvcGFyZW50LXNoYWRvdy1v
ZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3NzL3BhcmVudC1z
aGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQg
ZW5zdXJlcyB0aGF0IDxnPiB3aXRoIC13ZWJraXQtc3ZnLXNoYWRvdyBhcHBsaWVkIGRyYXdzIHdo
ZW4gY2hpbGRyZW4gYXJlIG9mZnNjcmVlbiBidXQgdGhlIHNoYWRvdyBpcyBub3QuCisKKyAgICAg
ICAgKiBzdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5zdmc6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAg
ICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IDxzdmc+IHdpdGggLXdlYmtpdC1z
dmctc2hhZG93IGFwcGxpZWQgZHJhd3Mgd2hlbiBjaGlsZHJlbiBhcmUgb2Zmc2NyZWVuIGJ1dCB0
aGUgc2hhZG93IGlzIG5vdC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvcmVwYWludC9y
ZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICog
c3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnOiBB
ZGRlZC4KKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdGhhdCBlbnN1cmVzIHRoYXQgU1ZHIGVsZW1l
bnRzIHdpdGggLXdlYmtpdC1zdmctc2hhZG93IGFyZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQuCisK
IDIwMTItMTEtMDYgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBjaHJvbWl1bSwgY2hyb21pdW0tbWFjLW1vdW50YWlubGlvbiBnYXJkZW5p
bmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDU3NzZmZTYuLjk5MDExMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM4Niw2ICsxMzg2LDE1IEBAIHdlYmtpdC5vcmcvYi84
NTEwNyBzdmcvYXMtaW1hZ2UvYW5pbWF0ZWQtc3ZnLWFzLWltYWdlLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIFBhCiAKIHdlYmtpdC5vcmcvYi85MzU4OSBzdmcvZG9tL1NWR1NjcmlwdEVsZW1lbnQv
c2NyaXB0LWNoYW5nZS1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLXdoaWxlLWxvYWRpbmcuc3Zn
IFsgRmFpbHVyZSBQYXNzIFRpbWVvdXQgXQogCisjIFRoZXNlIHRlc3RzIG5lZWQgdG8gYmUgcmVi
YXNlbGluZWQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
NjQzCit3ZWJraXQub3JnL2IvMTAxMzk2IHN2Zy9jc3Mvc2hhZG93LWNoYW5nZXMuc3ZnCit3ZWJr
aXQub3JnL2IvMTAxMzk2IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3Zn
Cit3ZWJraXQub3JnL2IvMTAxMzk2IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0
bWwKK3dlYmtpdC5vcmcvYi8xMDEzOTYgc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3Bh
Y2l0eS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk2IGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93
LW9uLWNvbnRhaW5lci5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk2IHN2Zy9jc3MvY29tcG9zaXRl
LXNoYWRvdy10ZXh0LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcvY3VzdG9tL3NpbXBsZS10
ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRW5kIFNWRyBURVNUUwogIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4
ZjI5ODlkLi4xM2EwMTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTY2Niw2ICsxNjY2LDE1IEBAIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcgWyBTa2lwIF0KICMgUmVn
cmVzc2lvbiBhZnRlciByMTMxNjQwLgogd2Via2l0Lm9yZy9iLzk5NjkxIGdhbWVwYWQvZ2FtZXBh
ZC1vdXQtb2YtcmFuZ2UtY3Jhc2hlci5odG1sIFsgRmFpbHVyZSBdCiAKKyMgVGhlc2UgdGVzdHMg
bmVlZCB0byBiZSByZWJhc2VsaW5lZCBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjU2NDMKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3ZnL2Nzcy9zaGFkb3ctY2hh
bmdlcy5zdmcKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQt
c3ZnLXNoYWRvdy5zdmcKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3ZnL2Nzcy9jb21wb3NpdGUtc2hh
ZG93LWV4YW1wbGUuaHRtbAord2Via2l0Lm9yZy9iLzEwMTQwMCBzdmcvY3NzL2NvbXBvc2l0ZS1z
aGFkb3ctd2l0aC1vcGFjaXR5Lmh0bWwKK3dlYmtpdC5vcmcvYi8xMDE0MDAgZmFzdC9yZXBhaW50
L21vdmluZy1zaGFkb3ctb24tY29udGFpbmVyLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3Zn
L2Nzcy9jb21wb3NpdGUtc2hhZG93LXRleHQuc3ZnCit3ZWJraXQub3JnL2IvMTAxNDAwIHN2Zy9j
dXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy5zdmcKKwogIyBSZXNvdXJjZSBUaW1pbmcg
aXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCiB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY3N2Q2YjAu
LmU2ZmI4NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMzY0LDYgKzEzNjQsMTUgQEAgd2Via2l0Lm9yZy9iLzk4NjEyIFsgUmVsZWFzZSBdIGZhc3Qv
ZG9tL2djLWRvbS10cmVlLWxpZmV0aW1lLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85
ODYxMyBjc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS11c2VyU3BhY2VPblVzZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTg2MTMgY3NzMy9tYXNraW5nL2Ns
aXAtcGF0aC1yZWZlcmVuY2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCisjIFRoZXNlIHRl
c3RzIG5lZWQgdG8gYmUgcmViYXNlbGluZWQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY1NjQzCit3ZWJraXQub3JnL2IvMTAxMzk4IHN2Zy9jc3Mvc2hhZG93
LWNoYW5nZXMuc3ZnCit3ZWJraXQub3JnL2IvMTAxMzk4IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Vi
a2l0LXN2Zy1zaGFkb3cuc3ZnCit3ZWJraXQub3JnL2IvMTAxMzk4IHN2Zy9jc3MvY29tcG9zaXRl
LXNoYWRvdy1leGFtcGxlLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDEzOTggc3ZnL2Nzcy9jb21wb3Np
dGUtc2hhZG93LXdpdGgtb3BhY2l0eS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk4IGZhc3QvcmVw
YWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk4
IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy10ZXh0LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5OCBz
dmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCisKICMgUmVxdWlyZXMgcmVi
YXNlbGluaW5nIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY0NQogd2Via2l0Lm9yZy9iLzExNjQ1IGZhc3QvdGFibGUvMDI1Lmh0bWwgWyBGYWlsdXJlIF0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zp
bmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZXBhaW50L21vdmluZy1zaGFkb3ctb24tY29udGFpbmVyLWV4cGVjdGVkLnR4
dAppbmRleCA5YzVhNTUyLi4zZmFlOGVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZXBhaW50L21vdmluZy1zaGFkb3ctb24tY29udGFpbmVyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L21vdmluZy1zaGFk
b3ctb24tY29udGFpbmVyLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA3ODV4NjE2CiBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzY5eDYwMAotICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoOCw4KSBz
aXplIDQ2OHgxNzMKKyAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDgsOCkgc2l6ZSA0ODh4
MTkzCiAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICg4LDgpIHNpemUgNzh4NjggW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS44MzY5N2Ut
MTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAtMjguNTMxNyA5LjI3MDUxIEwgLTU3LjA2MzQgLTE4
LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwgLTEuMTAyMThlLTE0IC02MCBMIDE3LjYzMzYgLTI0
LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAyOC41MzE3IDkuMjcwNTEgTCAzNS4yNjcxIDQ4LjU0
MSBaIl0KICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDIwMCw0Nikgc2l6ZSAxMjh4
MTI1IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1MC4wMCwxMDAu
MDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRo
PTEwLjAwXSBbZGFzaCBhcnJheT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSM5OTk5OTldfV0gW2RhdGE9Ik0gMS44MzY5N2UtMTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAt
MjguNTMxNyA5LjI3MDUxIEwgLTU3LjA2MzQgLTE4LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwg
LTEuMTAyMThlLTE0IC02MCBMIDE3LjYzMzYgLTI0LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAy
OC41MzE3IDkuMjcwNTEgTCAzNS4yNjcxIDQ4LjU0MSBaIl0KICAgICAgICAgUmVuZGVyU1ZHUGF0
aCB7cGF0aH0gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIyIFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDQwMC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBbZGFzaCBhcnJheT17MjAuMDB9
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS41MzA4
MWUtMTUgMjUgTCAtMjkuMzg5MyA0MC40NTA5IEwgLTIzLjc3NjQgNy43MjU0MiBMIC00Ny41NTI4
IC0xNS40NTA4IEwgLTE0LjY5NDYgLTIwLjIyNTQgTCAtOS4xODQ4NWUtMTUgLTUwIEwgMTQuNjk0
NiAtMjAuMjI1NCBMIDQ3LjU1MjggLTE1LjQ1MDggTCAyMy43NzY0IDcuNzI1NDIgTCAyOS4zODkz
IDQwLjQ1MDkgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nz
cy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL2Nzcy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggYjBmNDU4My4u
ZDcwMThjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJy
b3ctd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDYgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3Zn
fSBhdCAoNzksMjMpIHNpemUgNjA1eDQxNAotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDc5LDIzKSBzaXplIDYzOHg0NDcgW3RyYW5zZm9ybT17bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAw
KSkgdD0oMC4wMCwwLjAwKX1dCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2F9IGF0ICg3OSwy
Mykgc2l6ZSA2MDV4NDE0CisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNzksMjMpIHNp
emUgNjcxeDQ4MCBbdHJhbnNmb3JtPXttPSgoMi4wMCwwLjAwKSgwLjAwLDIuMDApKSB0PSgwLjAw
LDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7YX0gYXQgKDc5LDIzKSBzaXplIDYz
OHg0NDcKICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDc5LDIzKSBzaXplIDYwNXg0
MTQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXSBbc3Ryb2tlIHdpZHRoPTIw
LjAwXX1dIFtkYXRhPSJNIDE4NSA0MCBMIDg1IDQwIEwgODUgMjggTCA0MCA2NCBMIDg1IDEwMCBM
IDg1IDg4IEwgMTg1IDg4IFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0Cmlu
ZGV4IDJlNjM2OWEuLjEyOWU2YzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jbGlwcGF0aC13aXRoLXNoYWRvdy1leHBlY3RlZC50
eHQKQEAgLTEsMTEgKzEsMTEgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMTB4MjAwCiAgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hlaWdodD0yMDAuMDBdCiAg
ICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KC0yMDAuMDAsMC4wMCl9XSBbeD0yMDAuMDBd
IFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAwLjAwXQogICAgIFJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IFtpZD0iY2xpcCJdIFtjbGlwUGF0aFVuaXRzPXVzZXJT
cGFjZU9uVXNlXQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDApIHNpemUg
MjEweDIxMAorICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDApIHNpemUgMjIw
eDIyMAogICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDIxMHgyMTAg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oLTIwMC4wMCwwLjAwKX1d
IFt4PTIwMC4wMF0gW3k9MC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hlaWdodD0yMDAuMDBdCi0gICAg
UmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTQwMC4wMF0g
W2hlaWdodD0yMDAuMDBdCi0gICAgICBbY2xpcFBhdGg9ImNsaXAiXSBSZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIge2NsaXBQYXRofSBhdCAoMCwwKSBzaXplIDIwMHgyMDAKKyAgICBSZW5kZXJTVkdS
ZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDIxMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NDAwLjAwXSBbaGVpZ2h0PTIw
MC4wMF0KKyAgICAgIFtjbGlwUGF0aD0iY2xpcCJdIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciB7
Y2xpcFBhdGh9IGF0ICgwLDApIHNpemUgMjEweDIxMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhh
bXBsZS1leHBlY3RlZC50eHQKaW5kZXggNTI3MGY3MC4uNTI4MWYxZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3Np
dGUtc2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0zLDEwICszLDEwIEBAIGxheWVyIGF0
ICgwLDApIHNpemUgNzg1eDYxNgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKLSAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDQw
LDM2KSBzaXplIDQzNngxNTAKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDAs
MzYpIHNpemUgMTQ2eDE0MAorICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoNDAsMzYpIHNp
emUgNDU2eDE3MAorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6
ZSAxNTZ4MTUwCiAgICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDQwLDM2KSBzaXpl
IDE0NngxNDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAw
LDEwMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ug
d2lkdGg9MTAuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5OTk5OV19XSBbZGF0
YT0iTSAxLjgzNjk3ZS0xNSAzMCBMIC0zNS4yNjcxIDQ4LjU0MSBMIC0yOC41MzE3IDkuMjcwNTEg
TCAtNTcuMDYzNCAtMTguNTQxIEwgLTE3LjYzMzYgLTI0LjI3MDUgTCAtMS4xMDIxOGUtMTQgLTYw
IEwgMTcuNjMzNiAtMjQuMjcwNSBMIDU3LjA2MzQgLTE4LjU0MSBMIDI4LjUzMTcgOS4yNzA1MSBM
IDM1LjI2NzEgNDguNTQxIFoiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
MDAsNDYpIHNpemUgMTI4eDEyNQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
MDAsNDYpIHNpemUgMTM4eDEzNQogICAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgy
MDAsNDYpIHNpemUgMTI4eDEyNSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgyNTAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF0gW3N0cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2ggYXJyYXk9ezIwLjAwfV19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1
LjI2NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcu
NjMzNiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcu
MDYzNCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJdCi0gICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIyCisgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMjd4MTMyCiAgICAg
ICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIyIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwMC4wMCwxMDAuMDApfV0gW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBb
ZGFzaCBhcnJheT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTld
fV0gW2RhdGE9Ik0gMS41MzA4MWUtMTUgMjUgTCAtMjkuMzg5MyA0MC40NTA5IEwgLTIzLjc3NjQg
Ny43MjU0MiBMIC00Ny41NTI4IC0xNS40NTA4IEwgLTE0LjY5NDYgLTIwLjIyNTQgTCAtOS4xODQ4
NWUtMTUgLTUwIEwgMTQuNjk0NiAtMjAuMjI1NCBMIDQ3LjU1MjggLTE1LjQ1MDggTCAyMy43NzY0
IDcuNzI1NDIgTCAyOS4zODkzIDQwLjQ1MDkgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93
LXdpdGgtb3BhY2l0eS1leHBlY3RlZC50eHQKaW5kZXggYzFiMWViNS4uNmJhY2QzMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13
aXRoLW9wYWNpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dApAQCAtNCwx
MCArNCwxMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzY5eDYwMAogbGF5ZXIgYXQgKDgsOCkgc2l6ZSA3Njl4NjAwCi0gIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDQwLDM2KSBzaXplIDQzNngxNTAgW29wYWNpdHk9MC41MF0KLSAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6ZSAxNDZ4MTQwCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDQwLDM2KSBzaXplIDQ1NngxNzAgW29wYWNpdHk9MC41MF0KKyAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6ZSAxNTZ4MTUwCiAgICAgICBSZW5kZXJT
VkdQYXRoIHtwYXRofSBhdCAoNDAsMzYpIHNpemUgMTQ2eDE0MCBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMDAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0xMC4wMF19XSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1LjI2
NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcuNjMz
NiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcuMDYz
NCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJdCi0gICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEyOHgxMjUKKyAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICgyMDAsNDYpIHNpemUgMTM4eDEzNQogICAgICAgUmVuZGVyU1ZH
UGF0aCB7cGF0aH0gYXQgKDIwMCw0Nikgc2l6ZSAxMjh4MTI1IFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1MC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBbZGFzaCBhcnJheT17MjAu
MDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS44
MzY5N2UtMTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAtMjguNTMxNyA5LjI3MDUxIEwgLTU3LjA2
MzQgLTE4LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwgLTEuMTAyMThlLTE0IC02MCBMIDE3LjYz
MzYgLTI0LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAyOC41MzE3IDkuMjcwNTEgTCAzNS4yNjcx
IDQ4LjU0MSBaIl0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYpIHNpemUg
MTE3eDEyMgorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMjd4
MTMyCiAgICAgICBSZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoMzQ5LDQ2KSBzaXplIDExN3gxMjIg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNDAwLjAwLDEwMC4wMCl9
XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9MTAu
MDBdIFtkYXNoIGFycmF5PXsyMC4wMH1dfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5
OTk5OV19XSBbZGF0YT0iTSAxLjUzMDgxZS0xNSAyNSBMIC0yOS4zODkzIDQwLjQ1MDkgTCAtMjMu
Nzc2NCA3LjcyNTQyIEwgLTQ3LjU1MjggLTE1LjQ1MDggTCAtMTQuNjk0NiAtMjAuMjI1NCBMIC05
LjE4NDg1ZS0xNSAtNTAgTCAxNC42OTQ2IC0yMC4yMjU0IEwgNDcuNTUyOCAtMTUuNDUwOCBMIDIz
Ljc3NjQgNy43MjU0MiBMIDI5LjM4OTMgNDAuNDUwOSBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hhZG93LWV4cGVj
dGVkLnR4dAppbmRleCBkYTVjNjY1Li4yNTcyZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvZ3JvdXAtd2l0aC1zaGFkb3ctZXhwZWN0
ZWQudHh0CkBAIC0xLDggKzEsOCBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMzAsMzEpIHNpemUgMzAweDMxOQotICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMwLDMxKSBzaXplIDMzNHgzNTMgW3RyYW5zZm9ybT17
bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAwKSkgdD0oMC4wMCwwLjAwKX1dCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDMwLDMxKSBzaXplIDI4OXgyODYKKyAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgzMCwzMSkgc2l6ZSAzNTV4MzUzIFt0cmFuc2Zvcm09e209KCgyLjAwLDAuMDApKDAu
MDAsMi4wMCkpIHQ9KDAuMDAsMC4wMCl9XQogICAgICAgUmVuZGVyU1ZHUGF0aCB7bGluZX0gYXQg
KDMzLDMxKSBzaXplIDI4NHgzOCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDAwODBd
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbeDE9MTAuMDBdIFt5MT0x
MC4wMF0gW3gyPTg1LjAwXSBbeTI9MTAuMDBdCiAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBh
dCAoMzEsNjUpIHNpemUgMjg4eDIwNCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDAw
ODBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzgwMDA4MF19XSBbeD0xMC4wMF0gW3k9
MjAuMDBdIFt3aWR0aD03NS4wMF0gW2hlaWdodD01MC4wMF0KICAgICAgIFJlbmRlclNWR1RleHQg
e3RleHR9IGF0ICgxMCw3NSkgc2l6ZSA3OHgxOSBjb250YWlucyAxIGNodW5rKHMpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hhbmdlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hhbmdl
cy1leHBlY3RlZC50eHQKaW5kZXggNzEzMzgyYS4uMDgwMDNmNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNoYW5nZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLWV4cGVj
dGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEzNSw1KSBzaXplIDMyNngyODUKLSAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMjAsMCkgc2l6ZSAzNDF4MjkwCisgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDE0NiwxNikgc2l6ZSAzMTV4Mjg4CisgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMTE2LDApIHNpemUgMzQ1eDMwNAogICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDEzNSw1KSBzaXplIDIxNXgyMTUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbeD0xNTAuMDBdIFt5PTIwLjAwXSBbd2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4w
MF0KICAgICAgIFJlbmRlclNWR0VsbGlwc2Uge2NpcmNsZX0gYXQgKDIwNSw3NSkgc2l6ZSAyMTV4
MjE1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2N4PTMyMC4wMF0gW2N5
PTE5MC4wMF0gW3I9MTAwLjAwXQogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDI3MCwz
Nikgc2l6ZSAxOTF4MTA3IGNvbnRhaW5zIDEgY2h1bmsocykKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRl
eHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggM2YwODczMS4uOTQyMWE1MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQt
ZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSw3IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgyMCwyNikgc2l6ZSAzODB4MTk0CisgIFJlbmRlclNWR1Jvb3Qge3N2
Z30gYXQgKDIwLDI2KSBzaXplIDQ4MHgyOTQKICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAo
MjAsMjYpIHNpemUgMjE3eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lu
bGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxN3gxOAogICAgICAgICBjaHVuayAxIHRl
eHQgcnVuIDEgYXQgKDIwLjAwLDQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAzNCB3aWR0
aCAyMTcuMDA6ICJUaGlzIHRleHQgc2hvdWxkIGFwcGVhciBvbmx5IHR3aWNlIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2
Zy1zaGFkb3ctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9yZXBh
aW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5
ZTNmMDc0Y2IzYTIxYThlZDlkMzI2ZDMxOWNlZjI5MGMyZWM1ZGEKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDEwODYwCnpjbWVITlpBPz5GN3swZXVzVGp3VmZmSGZuR0tZcmZDTjEoY2t6TiFTXmBr
U2VzZ28mVTlnR05xUXZ8bCEtWVJPZwp6QVQrdismOTVkSzN0S199JDJPZjJ0biZreD5EMClFNkdy
UnNWXzgqTnY3P21JP3EkK0AmaFB6THFNbCErUHkxZnAKektKUGl0YktZfiMyZ184aVA3MFY3S3ZD
MnJXb0I5eU1mdEg1QzBaI041NkokbCtlX2drZFExQXNFJFZtUFImVXJgCnpSIXFyYVZgR3clO15w
aCY8bShiK15XXkwwaUZ2VmRjfHlLQ1VYflg+SD5xYXJUP05FPWx4ZUIyU0ozeDxPV2hjagp6OEkq
UiNaZHdzc0ttR2RVJGhnKjlwOUwoOTMwP2hWTU8kcCkzVkNpKmltVTZBKkU/TTZaMz1OWnRYK1JA
RyNaVmMKel9nN1hedmBHQWwqeUExPVhyQXFJSTJfRnY7eSRBRS08b3Q/eGtJfX5LYT87bSRITzEz
QkdMTF51V2tfRGl6UCozCnpAJWl4YEQ9XzNqZlcrfFRZdDU0JU1UfnlYR01RbishZ0Ric1cpe29r
JnVfflplZGVRM1F3R051bTFAIzRxPi1tUwp6YnYmSHJgdiFiOWpIYlVuV2U+clMkMjF9TDtjWSl9
WHFjZVVZN2hVdCZuQCo0dFkxZmF7cCszMTx1bV9mZHoyWiYKejZveElfR35nP01TUTAhQFYpJnlr
PWE5ZjB3fkZLSSZ0OUFeZ2U7clFhdiM9fmw9K0BZaXdiRmFAMDVnRTZtbz44CnpxRXAmYG5KYHZY
djd+O1NJQ0U3YEc3MzI+NXxLbSpCVj4kX1MlWEMzdkM8SzNnYTdgbk5aVmspYEFXSkB0SWFTRQp6
QUMoUyFKa3NZIT5+QCl9U0YhRGApb0x8Ki1xODZmWS0yNTZLRHBIQ2h4dG8/RnZJcURJXnI9WFAk
YXNrS09LUC0Kem5XPD50c21nfD9xZXhEZjNXaXw9ISMjb35iRyZLWklQdio7V289Nl9odVo7aDdN
bmpKU2xrPVVhPWwrIWkhbiRGCno0KHFwREF4SmdEK0VnX0NLKClIJFMhQSZgbWdTXzBab01HIWwp
ZkIleGNzbTg0cSVXISNGPWdjVnJHM0pvOHdQcAp6Y1hlWT52UDVGPWVAMkklJX49az9QZDs/S2NM
d0A3bVE/T1BRZjJCZFBxfXxAalVKWEJ5fClxJD1ybyQ1YzhBWj4KekVtfDxabzFVPDRnT0lnSjJM
SnElWS1jMSZAJjBvUko3flZQM240WUkhc3N+b0x0dnprVmQrVnBgcmRta3t6WmdUCnpeSGtGOVY2
OC1gckc2TW5HTHJDSkJ0cTBjd3llUm41TExIbDQkSXY/ZDFNa1FadW9TVHQ0WjEhdXxUTEtxKW9y
Owp6LUJYOzJrZzAlTmg7fW9ta2Jfe3shekQhdjV6K3hudDVyOTRxdFlKQjxAZz8qSXhJK0ZLTX5l
TjtoT14jUmZ2IWcKekFjUm12Qz5rMyFXRTdFIV9KMylTV2woblY0NStON1NZJFN2T1d5QjNKKkw2
PjA8azs3UTFGZD1ISWdeK25qblVxCnpWO3x+M0l4Ul5DP0wyKHRLey0tV3JhfW84Ym1tUzM/cShw
PmxeSCpvcVhoQmhFSyVUSEt9T3ZZTDFLQVJFQ154Zgp6T1MoRWk4WXo3cD09V2xjTTx5c2JFeEg2
TWA9bGppOEM+a1d1OShybkk5O3cpbm0pQ1ViYmJENDEzQmN7aVcqMTsKejhweW9USzRmVGYhR35e
SnlSaW14Q0M2OHQrSmhSJSVne2pYWiFSaEtKKFUqYShSOSVHZ2NeWnB1OWM/Pit1TUlmCnpXdnFl
KmEleFdeM2JfYWtCdVJ1WUxkRlEwSEclO1U5VTttfXlvUl9oUyZ4dHY4ZClqfGAjeG14T3hnKzNW
M0MmZAp6c2NPUVZCTXdLMXdEN0dnJU8jYFkkNCZYQGRjZF4rci1JRnE9QXRjTEhVYGNgWDJpQU8q
OGBUcmdASDxxNjU5YHwKemhZSklwNTJzKnpLUkl3PTtGZGlLTC14VDloT0RiT0xQcjhPN35sfSM8
Qm1FRVNwcHt+JUIzWUpBK3t4aUFxZiROCnojdGkhajl6ITxremAjSmtnSChMKmI4RG1FVjY8XylN
dXA5X1Y+fWYpKTReZ2hZWmxENHo0anl3PjRVajt1eVk0Qwp6Wlc+e0djRzA7ejcqWStwayg7c3R2
OG1ueXlULUZaam81WkAlKiFseVBCfFopdUpOV3Q5NyV7VUc8R35kI3RAbGgKZ3NHRUdNYmpZVW9M
aWZWT2lpemlzIX1VPjBuWFhEfVRDakhlS1FhfHcpJkt3aQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjg1OTUyZS4u
OWNlMmQ0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
MzgzLDYgKzIzODMsMTUgQEAgd2Via2l0Lm9yZy9iLzEwMDg0NiBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXItdGVybWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUKICMgTmV3LCBidXQgZmFp
bGluZyB0ZXN0CiB3ZWJraXQub3JnL2IvMTAxMDM1IGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRp
b24taW1hZ2UtZG9jdW1lbnQuaHRtbAogCisjIFRoZXNlIHRlc3RzIG5lZWQgdG8gYmUgcmViYXNl
bGluZWQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQz
Cit3ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3Mvc2hhZG93LWNoYW5nZXMuc3ZnCit3ZWJraXQu
b3JnL2IvMTAxMzk3IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnCit3
ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0bWwK
K3dlYmtpdC5vcmcvYi8xMDEzOTcgc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0
eS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk3IGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9u
LWNvbnRhaW5lci5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvY29tcG9zaXRlLXNo
YWRvdy10ZXh0LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NyBzdmcvY3VzdG9tL3NpbXBsZS10ZXh0
LWRvdWJsZS1zaGFkb3cuc3ZnCisKICMgRmFpbHMgYWZ0ZXIgdGVzdCByZWZhY3RvcmluZywgbWF5
YmUgcmViYXNlbGluZSBuZWVkZWQKIHdlYmtpdC5vcmcvYi85ODUyMyBmYXN0L2ltYWdlcy9yZXBh
aW50LXN1YnJlY3QtZ3JpZC5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3Mv
bWFzay13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL21hc2st
d2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4IGUyNjlkMzMuLmRiMWQ4MzYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N2Zy9jc3MvbWFzay13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9tYXNrLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAt
MSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCi0gIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCi0gICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoNSw1KSBzaXplIDIxMHgyMTAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAo
NSw1KSBzaXplIDIyMHgyMjAKKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1LDUpIHNp
emUgMjIweDIyMAogICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50IHtsaW5l
YXJHcmFkaWVudH0gW2lkPSJtYXNrZWRHcmFkaWVudCJdIFtncmFkaWVudFVuaXRzPW9iamVjdEJv
dW5kaW5nQm94XSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDEsMSldCiAgICAgICAgICAgUmVuZGVyU1ZH
R3JhZGllbnRTdG9wIHtzdG9wfSBbb2Zmc2V0PTAuMDBdIFtjb2xvcj0jMDAwMEZGXQpAQCAtMTMs
NyArMTMsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ1MHg1MDAKICAgICAgICAgICBSZW5kZXJT
VkdFbGxpcHNlIHtjaXJjbGV9IGF0ICg1LDExNSkgc2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2N4PTU1LjAwXSBbY3k9MTY1LjAwXSBbcj01MC4wMF0K
ICAgICAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICgxMTUsNSkgc2l6ZSAxMTB4
MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2N4PTE2NS4wMF0gW2N5
PTU1LjAwXSBbcj01MC4wMF0KICAgICAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0
ICgxMTUsMTE1KSBzaXplIDExMHgxMTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZG
Rl19XSBbY3g9MTY1LjAwXSBbY3k9MTY1LjAwXSBbcj01MC4wMF0KLSAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCi0gICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7dXNlfSBhdCAoNSw1KSBzaXplIDIxMHgyMTAKLSAgICAgICAgICBbbWFza2VyPSJtYXNr
XzEiXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEw
CisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1LDUpIHNpemUgMjIweDIyMAorICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDUsNSkgc2l6ZSAyMjB4MjIwCisgICAg
ICAgICAgW21hc2tlcj0ibWFza18xIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0
ICg1LDUpIHNpemUgMjIweDIyMAogICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgw
LDApIHNpemUgMzAweDMwMCBbZmlsbD17W3R5cGU9TElORUFSLUdSQURJRU5UXSBbaWQ9Im1hc2tl
ZEdyYWRpZW50Il19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MzAwLjAwXSBbaGVpZ2h0PTMw
MC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZz
Y3JlZW4tZXhwZWN0ZWQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9m
ZnNjcmVlbi1leHBlY3RlZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Yjc1ZDNhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNo
YWRvdy1vZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorPHRpdGxlPkV4cGVjdGVkIHJlc3VsdHMgZm9y
IHBhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZzwvdGl0bGU+Cis8cmVjdCBpZD0icmVjdCIgZmls
bD0id2hpdGUiIHN0eWxlPSItd2Via2l0LXN2Zy1zaGFkb3c6ICMwMDAgMTAwcHggMTAwcHggNXB4
IiB4PSIwIiB5PSIwIiB3aWR0aD0iNzUiIGhlaWdodD0iNzUiPjwvcmVjdD4KKzwvc3ZnPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcg
Yi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2I3YjFhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcKQEAgLTAsMCAr
MSw2IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cis8dGl0bGU+
VGVzdCBwYXNzZXMgaWYgdGhlIHNoYWRvdyBpcyBkcmF3bi48L3RpdGxlPgorPGcgc3R5bGU9Ii13
ZWJraXQtc3ZnLXNoYWRvdzogIzAwMCAyMDBweCAyMDBweCA1cHgiPgorPHJlY3QgaWQ9InJlY3Qi
IHg9Ii0xMDAiIHk9Ii0xMDAiIHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9nPgor
PC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNj
cmVlbi1leHBlY3RlZC5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNj
cmVlbi1leHBlY3RlZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM2
NGYxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3Mvcm9vdC1zaGFkb3ct
b2Zmc2NyZWVuLWV4cGVjdGVkLnN2ZwpAQCAtMCwwICsxLDQgQEAKKzxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzx0aXRsZT5FeHBlY3RlZCByZXN1bHRzIGZvciByb290
LXNoYWRvdy1vZmZzY3JlZW4uc3ZnPC90aXRsZT4KKzxyZWN0IGlkPSJyZWN0IiBmaWxsPSJ3aGl0
ZSIgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogIzAwMCAxMDBweCAxMDBweCA1cHgiIHg9IjAi
IHk9IjAiIHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9zdmc+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi5zdmcgYi9MYXlvdXRU
ZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZmVkMWIxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZwpAQCAtMCwwICsxLDQgQEAKKzxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHlsZT0iLXdlYmtpdC1zdmctc2hh
ZG93OiAjMDAwIDIwMHB4IDIwMHB4IDVweCI+Cis8dGl0bGU+VGVzdCBwYXNzZXMgaWYgdGhlIHNo
YWRvdyBpcyBkcmF3bi48L3RpdGxlPgorPHJlY3QgaWQ9InJlY3QiIHg9Ii0xMDAiIHk9Ii0xMDAi
IHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5OTk3NWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1z
dmctc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEyMCwwKSBzaXpl
IDQ1MHg1MjAKKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMTUwLDEwMCkgc2l6ZSAxMjB4
MTIwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1MC4wMCw1MC4w
MCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFt4PTAuMDBdIFt5PTUw
LjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDEyMCwwKSBzaXplIDEyMHgxMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbeD0xMjAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1z
aGFkb3cuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNo
YWRvdy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmExYTE1YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2
Zy1zaGFkb3cuc3ZnCkBAIC0wLDAgKzEsMTIgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIg
c3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogMTAwcHggMTAwcHggMHB4ICNhYWE7IiBvbmxvYWQ9
InJ1blJlcGFpbnRUZXN0KCkiPgorICAgIDx0aXRsZT5UZXN0IHBhc3NlcyBpZiBmb3VyIHJlY3Rh
bmdsZXMgYXJlIGRyYXduIGFmdGVyIHRoZSBhbmltYXRpb24uPC90aXRsZT4KKyAgICA8cmVjdCBp
ZD0iYSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB4PSIwIiB5PSI1MCIgZmlsbD0iYmxhY2siIC8+
CisgICAgPHJlY3QgaWQ9ImIiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgeD0iMTIwIiB5PSIwIiBm
aWxsPSJibGFjayIgLz4KKyAgICA8c2NyaXB0IHhsaW5rOmhyZWY9Ii4uLy4uL2Zhc3QvcmVwYWlu
dC9yZXNvdXJjZXMvcmVwYWludC5qcyIvPgorICAgIDxzY3JpcHQ+CisgICAgdmFyIHJlY3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkg
eworICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSgxNTAs
IDUwKSIpCisgICAgfQorICAgIDwvc2NyaXB0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEyNWUx
MS4uMzBlZGJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTExLTA2ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGFpbnQgaXNz
dWVzIHdpdGggLXdlYmtpdC1zdmctc2hhZG93IHVzZWQgb24gYSBjb250YWluZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NjAwNTMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNWRyByZW5kZXJlciByZXBhaW50IHJlY3RzIGFyZSBjdXJyZW50bHkg
ZXhwYW5kZWQgb25seSBieSB0aGUgc2hhZG93IG9mCisgICAgICAgIHRoZSByZW5kZXJlciBpdHNl
bGY7IGhvd2V2ZXIsIHRoZSBhcmVhIHRoZXkgbmVlZCB0byByZXBhaW50IGNhbiBiZSBsYXJnZXIK
KyAgICAgICAgdGhhbiB0aGF0LCBpZiB0aGVpciBwYXJlbnRzIGFsc28gaGF2ZSBzaGFkb3dzLiBX
ZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50CisgICAgICAgIHBhcmVudCdzIHNoYWRvd3MgKHJl
c3BlY3RpbmcgdHJhbnNmb3JtcywgYXMgd2VsbCkuCisKKyAgICAgICAgY2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQgYWxyZWFkeSByZWN1cnNlcyB1cHdhcmRzIHRocm91Z2ggdGhlIHJlbmRl
ciB0cmVlLAorICAgICAgICBhbmQgZW5kcyB1cCB3aXRoIGEgcmVjdCBpbiBsYXlvdXQgY29vcmRp
bmF0ZXMsIHNvIHdlIG1hbnVhbGx5IGFwcGx5IHRoZSBzaGFkb3cKKyAgICAgICAgYXQgZWFjaCBz
dGVwIChyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyB3YXMg
YWRkZWQgdG8gYWxsb3cKKyAgICAgICAgdXMgdG8gZ2V0IHRoZSByYXcgcmVwYWludCByZWN0IHdp
dGhvdXQgdGhlIHNoYWRvdyBiYWtlZC1pbikuCisKKyAgICAgICAgcmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXMgbm93IGluY2x1ZGVzIHNoYWRvd3MgZnJvbSBhbGwgcGFyZW50cy4KKworICAg
ICAgICBBbHNvLCBSZW5kZXJTVkdSb290IHdhcyBjbGlwcGluZyByZXBhaW50IHJlY3RzIHRvIHRo
ZSB2aWV3cG9ydCBiZWZvcmUgYXBwbHlpbmcKKyAgICAgICAgc2hhZG93cywgc28gb2Zmc2NyZWVu
IGVsZW1lbnRzIHdpdGggb24tc2NyZWVuIHNoYWRvd3MgKGFwcGxpZWQgYnkgdGhlIHJvb3QpIHdv
dWxkIG5vdCBwYWludCB0aGUgc2hhZG93cy4KKyAgICAgICAgV2UgY2FuIGp1c3Qgc3dhcCB0aGUg
b3JkZXIgb2YgdGhlc2UgdGhpbmdzIHRvIGNvcnJlY3QgdGhpcy4KKworICAgICAgICBUZXN0czog
c3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcsIHN2Zy9jc3Mvcm9vdC1zaGFkb3ct
b2Zmc2NyZWVuLnN2Zywgc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy5zdmcK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjphZGRDaGlsZCk6IE1hcmsgdGhlIGNoaWxkIGJlaW5nIGFkZGVkIGFz
IGhhdmluZyBhbiBTVkcgc2hhZG93IGlmIGl0IGlzIGJlaW5nIGFkZGVkIGFzIGEgY2hpbGQgb2Yg
YW4gZWxlbWVudCB0aGF0IGRvZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnN0
eWxlRGlkQ2hhbmdlKTogTWFyayB0aGUgY2hpbGQgYmVpbmcgYWRkZWQgYXMgaGF2aW5nIGFuIFNW
RyBzaGFkb3cgaWYgaXRzIG5ldyBzdHlsZSBoYXMgYSBzaGFkb3cuCisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJ
bWFnZTo6bGF5b3V0KTogQ2FjaGUgdGhlIHJlcGFpbnQgcmVjdCBiZWZvcmUgaW50ZXJzZWN0aW5n
IGl0IHdpdGggdGhlIHNoYWRvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lt
YWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6cmVwYWludFJlY3RJbkxv
Y2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBh
aW50IHJlY3QgZm9yIHRoZSByZW5kZXJlciB3aXRob3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6UmVuZGVyU1ZHTW9kZWxPYmplY3QpOiBS
ZW5kZXJlcnMgZG8gbm90IGhhdmUgYSBzaGFkb3cgYnkgZGVmYXVsdC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdT
VkdTaGFkb3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBhaW50IHJlY3QgZm9yIHRoZSByZW5kZXJl
ciB3aXRob3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdNb2RlbE9iamVjdDo6aGFzU1ZHU2hhZG93KTogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBy
ZW5kZXJlciBoYXMgYSBzaGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9i
amVjdDo6c2V0SGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBo
YXMgYSBzaGFkb3cuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OlJlbmRlclNWR1Jvb3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQpOiBB
cHBseSB0aGUgc2hhZG93IGJlZm9yZSBjbGlwcGluZyB0byB0aGUgdmlld3BvcnQsIHNvIHdlIGRy
YXcgc2hhZG93cyBmb3IgZWxlbWVudHMgb3V0c2lkZSB0aGUgdmlld3BvcnQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdSb290Ojp1cGRhdGVDYWNoZWRCb3VuZGFyaWVzKTogQ2FjaGUgdGhl
IHJlcGFpbnQgcmVjdCBiZWZvcmUgaW50ZXJzZWN0aW5nIGl0IHdpdGggdGhlIHNoYWRvdy4KKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1Jvb3Q6Omhhc1NWR1NoYWRvdyk6IFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGUg
cmVuZGVyZXIgaGFzIGEgc2hhZG93LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6
c2V0SGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMgYSBz
aGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjpyZXBhaW50UmVjdEluTG9j
YWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFp
bnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhvdXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNWR1NoYXBlOjp1cGRhdGVSZXBhaW50Qm91bmRpbmdCb3gpOiBDYWNoZSB0aGUg
cmVwYWludCByZWN0IGJlZm9yZSBpbnRlcnNlY3RpbmcgaXQgd2l0aCB0aGUgc2hhZG93LgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1NoYXBlOjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NW
R1NoYWRvdyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFpbnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVy
IHdpdGhvdXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6
cmVwYWludFJlY3RGb3JSZW5kZXJlckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRv
dyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFpbnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhv
dXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBv
cnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KTogQXBwbHkgc2hhZG93cyBhcyB3ZSB3
YWxrIHRocm91Z2ggb3VyIHBhcmVudHMsIGluc3RlYWQgb2Ygb25seSBhcHBseWluZyB0aGUgcmVu
ZGVyZXIncyBvd24gc2hhZG93LgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6
cmVuZGVyZXJIYXNTVkdTaGFkb3cpOiBSZXR1cm4gd2hldGhlciBvciBub3QgdGhlIHJlbmRlcmVy
IGhhcyBhIHNoYWRvdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OnNldFJl
bmRlcmVySGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMg
YSBzaGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RS
ZXBhaW50UmVjdFdpdGhTaGFkb3dzKTogV2FsayB0aHJvdWdoIHRoZSBlbGVtZW50J3MgcGFyZW50
cywgYWRkaW5nIHNoYWRvd3MgdG8gdGhlIHJlcGFpbnQgcmVjdCBhcyB3ZSBnbywgZXZlbnR1YWxs
eQorICAgICAgICB0cmFuc2Zvcm1pbmcgdGhlIHJlcGFpbnQgcmVjdCBiYWNrIGludG8gbG9jYWwg
Y29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNl
Y3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMpOiBEb24ndCBhZGQgc2hhZG93cyBieSBkZWZhdWx0
LCBqdXN0IG90aGVyIHJlc291cmNlcywgc28gdGhhdCB3ZSBjYW4gY2FjaGUgcmVwYWludCByZWN0
cyB3aXRoIGFuZCB3aXRob3V0IHNoYWRvd3MuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJTdXBwb3J0Lmg6CisKIDIwMTItMTEtMDYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgU29tZSBjb29raWUgY29kZSBjbGVhbnVwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDk4ZDBjM2QuLjIyNThmN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yODQsNiArMjg0
LDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogICAgIGlmICghY2hpbGRyZW4pCiAgICAgICAg
IHJldHVybjsKIAorI2lmIEVOQUJMRShTVkcpCisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVu
ZGVyZXJIYXNTVkdTaGFkb3cobmV3Q2hpbGQsIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFz
U1ZHU2hhZG93KHRoaXMpIHx8IFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hhZG93
KG5ld0NoaWxkKSk7CisjZW5kaWYKKwogICAgIGJvb2wgbmVlZHNUYWJsZSA9IGZhbHNlOwogCiAg
ICAgaWYgKG5ld0NoaWxkLT5pc1JlbmRlclRhYmxlQ29sKCkpIHsKQEAgLTE5MTUsNiArMTkxOSwx
MCBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdAogICAgIGlmIChzX2FmZmVjdHNQYXJlbnRCbG9j
aykKICAgICAgICAgaGFuZGxlRHluYW1pY0Zsb2F0UG9zaXRpb25DaGFuZ2UoKTsKIAorI2lmIEVO
QUJMRShTVkcpCisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVuZGVyZXJIYXNTVkdTaGFkb3co
dGhpcywgKG1fcGFyZW50ICYmIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hhZG93
KG1fcGFyZW50KSkgfHwgKHN0eWxlKCktPnN2Z1N0eWxlKCkgJiYgc3R5bGUoKS0+c3ZnU3R5bGUo
KS0+c2hhZG93KCkpKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3BhcmVudCkKICAgICAgICAgcmV0
dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lt
YWdlLmNwcAppbmRleCA0Nzk0N2UxLi42NjFiMTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcApAQCAtOTIsOCArOTIsMTIgQEAgdm9pZCBS
ZW5kZXJTVkdJbWFnZTo6bGF5b3V0KCkKICAgICB9CiAKICAgICBpZiAobV9uZWVkc0JvdW5kYXJp
ZXNVcGRhdGUpIHsKLSAgICAgICAgbV9yZXBhaW50Qm91bmRpbmdCb3ggPSBtX29iamVjdEJvdW5k
aW5nQm94OwotICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdp
dGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOworICAgICAgICBtX3JlcGFp
bnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyA9IG1fb2JqZWN0Qm91bmRpbmdCb3g7CisgICAg
ICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0
aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyk7CisKKyAgICAgICAgbV9y
ZXBhaW50Qm91bmRpbmdCb3ggPSBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsK
KyAgICAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93
cyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7CisKICAgICAgICAgbV9uZWVkc0JvdW5kYXJp
ZXNVcGRhdGUgPSBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW1hZ2UuaAppbmRleCA5Y2QzZWVhLi45MDVhOGQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCkBAIC01Nyw2ICs1Nyw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25z
dCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qg
c3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9
CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBj
b25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveDsgfQorICAgIHZpcnR1YWwgRmxvYXRS
ZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4m
LCBjb25zdCBMYXlvdXRQb2ludCYpOwogCkBAIC03NSw2ICs3Niw3IEBAIHByaXZhdGU6CiAgICAg
QWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUcmFuc2Zvcm07CiAgICAgRmxvYXRSZWN0IG1fb2JqZWN0
Qm91bmRpbmdCb3g7CiAgICAgRmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94OworICAgIEZs
b2F0UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsKICAgICBPd25QdHI8
UmVuZGVySW1hZ2VSZXNvdXJjZT4gbV9pbWFnZVJlc291cmNlOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRl
eCA3YmRjZDc0Li4wMWRlMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcApAQCAtNDMsNyArNDMsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR01vZGVsT2JqZWN0OjpSZW5kZXJTVkdNb2RlbE9iamVj
dChTVkdTdHlsZWRFbGVtZW50KiBub2RlKQogICAgIDogUmVuZGVyT2JqZWN0KG5vZGUpCisvLyAg
ICAsIG1faGFzU1ZHU2hhZG93KGZhbHNlKQogeworICAgIFdURkxvZ0Fsd2F5cygiJWxkXG4iLCBz
aXplb2YoUmVuZGVyU1ZHTW9kZWxPYmplY3QpKTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCAwYzRlYzViLi45NzM1
Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5oCkBAIC02Niw2ICs2NiwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wg
Y2hlY2tJbnRlcnNlY3Rpb24oUmVuZGVyT2JqZWN0KiwgY29uc3QgRmxvYXRSZWN0Jik7CiAgICAg
c3RhdGljIGJvb2wgY2hlY2tFbmNsb3N1cmUoUmVuZGVyT2JqZWN0KiwgY29uc3QgRmxvYXRSZWN0
Jik7CiAKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRl
c0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIHJlcGFpbnRSZWN0SW5Mb2NhbENv
b3JkaW5hdGVzKCk7IH0KKyAgICBib29sIGhhc1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdm9pZCBzZXRIYXNTVkdTaGFkb3coYm9vbCApIHsgIH0KKwogcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApAQCAtNzMsNiArNzcsNyBA
QCBwcml2YXRlOgogICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBuZXZlciBiZSBjYWxsZWQsIFNW
RyB1c2VzIGEgZGlmZmVyZW50IG5vZGVBdFBvaW50IG1ldGhvZAogICAgIGJvb2wgbm9kZUF0UG9p
bnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExv
Y2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhYnNv
bHV0ZUZvY3VzUmluZ1F1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+Jik7CisgICAgLy9ib29sIG1faGFz
U1ZHU2hhZG93OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5jcHAKaW5kZXggMjczM2FlNC4uNTU1ZDUyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC02MCw2ICs2MCw3IEBAIFJl
bmRlclNWR1Jvb3Q6OlJlbmRlclNWR1Jvb3QoU1ZHU3R5bGVkRWxlbWVudCogbm9kZSkKICAgICAs
IG1fb2JqZWN0Qm91bmRpbmdCb3hWYWxpZChmYWxzZSkKICAgICAsIG1faXNMYXlvdXRTaXplQ2hh
bmdlZChmYWxzZSkKICAgICAsIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUodHJ1
ZSkKKyAgICAsIG1faGFzU1ZHU2hhZG93KGZhbHNlKQogewogfQogCkBAIC0zODUsMTMgKzM4Niwx
MyBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDbwogICAgIC8vIGFuZCB0aGVuIGNhbGwgUmVuZGVy
Qm94J3MgbWV0aG9kIHRvIGhhbmRsZSBhbGwgdGhlIG5vcm1hbCBDU1MgQm94IG1vZGVsIGJpdHMK
ICAgICByZXBhaW50UmVjdCA9IG1fbG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybS5tYXBSZWN0KHJl
cGFpbnRSZWN0KTsKIAotICAgIC8vIEFwcGx5IGluaXRpYWwgdmlld3BvcnQgY2xpcCAtIG5vdCBh
ZmZlY3RlZCBieSBvdmVyZmxvdyBzZXR0aW5ncyAgICAKLSAgICByZXBhaW50UmVjdC5pbnRlcnNl
Y3QocGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpKTsKLQogICAgIGNvbnN0IFNWR1JlbmRlclN0
eWxlKiBzdmdTdHlsZSA9IHN0eWxlKCktPnN2Z1N0eWxlKCk7CiAgICAgaWYgKGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKICAgICAgICAgc2hhZG93LT5hZGp1
c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKIAorICAgIC8vIEFwcGx5IGluaXRpYWwgdmll
d3BvcnQgY2xpcCAtIG5vdCBhZmZlY3RlZCBieSBvdmVyZmxvdyBzZXR0aW5ncworICAgIHJlcGFp
bnRSZWN0LmludGVyc2VjdChwaXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkpOworCiAgICAgTGF5
b3V0UmVjdCByZWN0ID0gZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCk7CiAgICAgUmVuZGVy
UmVwbGFjZWQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZWN0LCBm
aXhlZCk7CiAgICAgcmVwYWludFJlY3QgPSByZWN0OwpAQCAtNDE1LDkgKzQxNiwxMiBAQCBjb25z
dCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR1Jvb3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbAogCiB2b2lkIFJlbmRlclNWR1Jvb3Q6OnVwZGF0ZUNhY2hlZEJv
dW5kYXJpZXMoKQogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVDb250YWluZXJCb3Vu
ZGluZ0JveGVzKHRoaXMsIG1fb2JqZWN0Qm91bmRpbmdCb3gsIG1fb2JqZWN0Qm91bmRpbmdCb3hW
YWxpZCwgbV9zdHJva2VCb3VuZGluZ0JveCwgbV9yZXBhaW50Qm91bmRpbmdCb3gpOwotICAgIFNW
R1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBt
X3JlcGFpbnRCb3VuZGluZ0JveCk7Ci0gICAgbV9yZXBhaW50Qm91bmRpbmdCb3guaW5mbGF0ZShi
b3JkZXJBbmRQYWRkaW5nV2lkdGgoKSk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUNv
bnRhaW5lckJvdW5kaW5nQm94ZXModGhpcywgbV9vYmplY3RCb3VuZGluZ0JveCwgbV9vYmplY3RC
b3VuZGluZ0JveFZhbGlkLCBtX3N0cm9rZUJvdW5kaW5nQm94LCBtX3JlcGFpbnRCb3VuZGluZ0Jv
eEV4Y2x1ZGluZ1NoYWRvdyk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWlu
dFJlY3RXaXRoUmVzb3VyY2VzKHRoaXMsIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hh
ZG93KTsKKyAgICBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdy5pbmZsYXRlKGJv
cmRlckFuZFBhZGRpbmdXaWR0aCgpKTsKKworICAgIG1fcmVwYWludEJvdW5kaW5nQm94ID0gbV9y
ZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6
aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93cyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0Jv
eCk7CiB9CiAKIGJvb2wgUmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdExvY2F0
aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRP
ZmZzZXQsIEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKaW5kZXggMWUxMTJhMS4uMTNkNzhkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY3LDYgKzY3
LDkgQEAgcHVibGljOgogICAgIC8vIG1ldGhvZCBkdXJpbmcgbGF5b3V0IHdoZW4gdGhleSBhcmUg
aW52YWxpZGF0ZWQgYnkgYSBmaWx0ZXIuCiAgICAgc3RhdGljIHZvaWQgYWRkUmVzb3VyY2VGb3JD
bGllbnRJbnZhbGlkYXRpb24oUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqKTsKIAorICAgIGJv
b2wgaGFzU1ZHU2hhZG93KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTVkdTaGFkb3c7IH0KKyAgICB2
b2lkIHNldEhhc1NWR1NoYWRvdyhib29sIGhhc1NoYWRvdykgeyBtX2hhc1NWR1NoYWRvdyA9IGhh
c1NoYWRvdzsgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7IHJldHVybiBjaGlsZHJlbigpOyB9CiAgICAgdmlydHVhbCBj
b25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0
dXJuIGNoaWxkcmVuKCk7IH0KQEAgLTkzLDYgKzk2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0Qm91
bmRpbmdCb3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNv
bnN0IHsgcmV0dXJuIG1fc3Ryb2tlQm91bmRpbmdCb3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVj
dCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWlu
dEJvdW5kaW5nQm94OyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRC
b3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsgfQogCiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKIApAQCAtMTE0LDExICsxMTgsMTMg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fb2JqZWN0Qm91bmRpbmdCb3hWYWxpZDsKICAgICBGbG9h
dFJlY3QgbV9zdHJva2VCb3VuZGluZ0JveDsKICAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRp
bmdCb3g7CisgICAgRmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93
OwogICAgIG11dGFibGUgQWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUb1BhcmVudFRyYW5zZm9ybTsK
ICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtOwogICAgIEhh
c2hTZXQ8UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqPiBtX3Jlc291cmNlc05lZWRpbmdUb0lu
dmFsaWRhdGVDbGllbnRzOwogICAgIGJvb2wgbV9pc0xheW91dFNpemVDaGFuZ2VkIDogMTsKICAg
ICBib29sIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUgOiAxOworICAgIGJvb2wg
bV9oYXNTVkdTaGFkb3cgOiAxOwogfTsKIAogaW5saW5lIFJlbmRlclNWR1Jvb3QqIHRvUmVuZGVy
U1ZHUm9vdChSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKaW5kZXggNWRjZWFjMy4uMDE5MjY2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTQw
Nyw4ICs0MDcsMTEgQEAgRmxvYXRSZWN0IFJlbmRlclNWR1NoYXBlOjpjYWxjdWxhdGVTdHJva2VC
b3VuZGluZ0JveCgpIGNvbnN0CiAKIHZvaWQgUmVuZGVyU1ZHU2hhcGU6OnVwZGF0ZVJlcGFpbnRC
b3VuZGluZ0JveCgpCiB7Ci0gICAgbV9yZXBhaW50Qm91bmRpbmdCb3ggPSBzdHJva2VCb3VuZGlu
Z0JveCgpOwotICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJl
c291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7CisgICAgbV9yZXBhaW50Qm91bmRp
bmdCb3hFeGNsdWRpbmdTaGFkb3cgPSBzdHJva2VCb3VuZGluZ0JveCgpOworICAgIFNWR1JlbmRl
clN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFp
bnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyk7CisKKyAgICBtX3JlcGFpbnRCb3VuZGluZ0Jv
eCA9IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OworICAgIFNWR1JlbmRlclN1
cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3ModGhpcywgbV9yZXBhaW50Qm91
bmRpbmdCb3gpOwogfQogCiBmbG9hdCBSZW5kZXJTVkdTaGFwZTo6c3Ryb2tlV2lkdGgoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFw
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCmluZGV4
IDQ3OTZlOGMuLjYwYTJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3Ry
b2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYsIGJvb2wgcmVxdWlyZXNTdHJva2UgPSB0cnVl
KTsKIAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVz
KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZs
b2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hh
ZG93OyB9CiAgICAgdmlydHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRU
cmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CiAgICAgdmlydHVh
bCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2Fs
VHJhbnNmb3JtOyB9CiAKQEAgLTEzNSw2ICsxMzYsNyBAQCBwcml2YXRlOgogCiBwcml2YXRlOgog
ICAgIEZsb2F0UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveDsKKyAgICBGbG9hdFJlY3QgbV9yZXBh
aW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbG9j
YWxUcmFuc2Zvcm07CiAgICAgT3duUHRyPFBhdGg+IG1fcGF0aDsKICAgICBWZWN0b3I8TWFya2Vy
UG9zaXRpb24+IG1fbWFya2VyUG9zaXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggNjk3YTQzOS4uZTZkODM4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3Bw
CkBAIC00Niw2ICs0NiwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0Zsb2F0UmVjdCBT
VkdSZW5kZXJTdXBwb3J0OjpyZXBhaW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5hdGVz
RXhjbHVkaW5nU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIC8v
IEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgUmVuZGVyU1ZHQmxvY2suCisKKyAgICBpZiAob2JqZWN0
LT5pc1NWR1NoYXBlKCkgfHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkgfHwgb2JqZWN0LT5pc1NWR0Nv
bnRhaW5lcigpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHTW9k
ZWxPYmplY3QqPihvYmplY3QpLT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGlu
Z1NWR1NoYWRvdygpOworCisgICAgcmV0dXJuIG9iamVjdC0+cmVwYWludFJlY3RJbkxvY2FsQ29v
cmRpbmF0ZXMoKTsKK30KKwogTGF5b3V0UmVjdCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3Zl
cmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikKIHsKICAgICAvLyBSZXR1cm4gZWFybHkg
Zm9yIGFueSBjYXNlcyB3aGVyZSB3ZSBkb24ndCBhY3R1YWxseSBwYWludApAQCAtNTQsNyArNjQs
MTAgQEAgTGF5b3V0UmVjdCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqIG8KIAogICAgIC8vIFBhc3Mgb3VyIGxvY2FsIHBh
aW50IHJlY3QgdG8gY29tcHV0ZVJlY3RGb3JSZXBhaW50KCkgd2hpY2ggd2lsbAogICAgIC8vIG1h
cCB0byBwYXJlbnQgY29vcmRzIGFuZCByZWN1cnNlIHVwIHRoZSBwYXJlbnQgY2hhaW4uCi0gICAg
RmxvYXRSZWN0IHJlcGFpbnRSZWN0ID0gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGlu
YXRlcygpOworICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IHJlcGFpbnRSZWN0Rm9yUmVuZGVy
ZXJJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cob2JqZWN0KTsKKyAgICBjb25z
dCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxlKCk7
CisgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkK
KyAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKICAgICBv
YmplY3QtPmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFp
bnRSZWN0KTsKICAgICByZXR1cm4gZW5jbG9zaW5nTGF5b3V0UmVjdChyZXBhaW50UmVjdCk7CiB9
CkBAIC0yNzgsMjMgKzI5MSw3MyBAQCBib29sIFNWR1JlbmRlclN1cHBvcnQ6OmlzT3ZlcmZsb3dI
aWRkZW4oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIG9iamVjdC0+c3R5
bGUoKS0+b3ZlcmZsb3dYKCkgPT0gT0hJRERFTjsKIH0KIAotdm9pZCBTVkdSZW5kZXJTdXBwb3J0
OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QpCitib29sIFNWR1JlbmRlclN1cHBvcnQ6OnJl
bmRlcmVySGFzU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIC8v
IEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgUmVuZGVyU1ZHQmxvY2suCisKKyAgICBpZiAob2JqZWN0
LT5pc1NWR1NoYXBlKCkgfHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkgfHwgb2JqZWN0LT5pc1NWR0Nv
bnRhaW5lcigpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHTW9k
ZWxPYmplY3QqPihvYmplY3QpLT5oYXNTVkdTaGFkb3coKTsKKworICAgIGlmIChvYmplY3QtPmlz
U1ZHUm9vdCgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHUm9v
dCo+KG9iamVjdCktPmhhc1NWR1NoYWRvdygpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFNWR1JlbmRlclN1cHBvcnQ6OnNldFJlbmRlcmVySGFzU1ZHU2hhZG93KFJlbmRlck9iamVj
dCogb2JqZWN0LCBib29sIGhhc1NoYWRvdykKK3sKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQg
Zm9yIFJlbmRlclNWR0Jsb2NrLgorCisgICAgaWYgKG9iamVjdC0+aXNTVkdTaGFwZSgpIHx8IG9i
amVjdC0+aXNTVkdJbWFnZSgpIHx8IG9iamVjdC0+aXNTVkdDb250YWluZXIoKSkKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR01vZGVsT2JqZWN0Kj4ob2JqZWN0KS0+c2V0SGFz
U1ZHU2hhZG93KGhhc1NoYWRvdyk7CisKKyAgICBpZiAob2JqZWN0LT5pc1NWR1Jvb3QoKSkKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR1Jvb3QqPihvYmplY3QpLT5zZXRIYXNT
VkdTaGFkb3coaGFzU2hhZG93KTsKK30KKwordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNl
Y3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9h
dFJlY3QmIHJlcGFpbnRSZWN0KQogeworICAgIC8vIFNpbmNlIC13ZWJraXQtc3ZnLXNoYWRvdyBl
bmFibGVzIHNoYWRvdyBkcmF3aW5nIGZvciBpdHMgY2hpbGRyZW4sIGJ1dCBpdHMgY2hpbGRyZW4K
KyAgICAvLyBkb24ndCBpbmhlcml0IHRoZSBzaGFkb3cgaW4gdGhlaXIgU1ZHUmVuZGVyU3R5bGUs
IHdlIG5lZWQgdG8gc2VhcmNoIG91ciBwYXJlbnRzIGZvcgorICAgIC8vIHNoYWRvd3MgaW4gb3Jk
ZXIgdG8gY29ycmVjdGx5IGNvbXB1dGUgb3VyIHJlcGFpbnQgcmVjdC4KKwogICAgIEFTU0VSVChv
YmplY3QpOwogCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOwotICAg
IEFTU0VSVChzdHlsZSk7CisgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyZW50T2JqZWN0ID0g
b2JqZWN0OwogCi0gICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2
Z1N0eWxlKCk7Ci0gICAgQVNTRVJUKHN2Z1N0eWxlKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbG9j
YWxUb1Jvb3RUcmFuc2Zvcm07CisKKyAgICB3aGlsZSAoY3VycmVudE9iamVjdCAmJiByZW5kZXJl
ckhhc1NWR1NoYWRvdyhjdXJyZW50T2JqZWN0KSkgeworICAgICAgICBSZW5kZXJTdHlsZSogc3R5
bGUgPSBjdXJyZW50T2JqZWN0LT5zdHlsZSgpOworICAgICAgICBBU1NFUlQoc3R5bGUpOworCisg
ICAgICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxlLT5zdmdTdHlsZSgp
OworICAgICAgICBBU1NFUlQoc3ZnU3R5bGUpOwogCi0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4ob2JqZWN0KTsKLSAgICBTVkdSZXNvdXJjZXMq
IHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJP
YmplY3QocmVuZGVyZXIpOwotICAgIGlmICghcmVzb3VyY2VzKSB7CiAgICAgICAgIGlmIChjb25z
dCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCiAgICAgICAgICAgICBz
aGFkb3ctPmFkanVzdFJlY3RGb3JTaGFkb3cocmVwYWludFJlY3QpOworCisgICAgICAgIHJlcGFp
bnRSZWN0ID0gY3VycmVudE9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLm1hcFJlY3Qo
cmVwYWludFJlY3QpOworICAgICAgICBsb2NhbFRvUm9vdFRyYW5zZm9ybSAqPSBjdXJyZW50T2Jq
ZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCk7CisKKyAgICAgICAgY3VycmVudE9iamVjdCA9
IGN1cnJlbnRPYmplY3QtPnBhcmVudCgpOworICAgIH07CisKKyAgICBpZiAobG9jYWxUb1Jvb3RU
cmFuc2Zvcm0uaXNJZGVudGl0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBZmZpbmVUcmFu
c2Zvcm0gcm9vdFRvTG9jYWxUcmFuc2Zvcm0gPSBsb2NhbFRvUm9vdFRyYW5zZm9ybS5pbnZlcnNl
KCk7CisgICAgcmVwYWludFJlY3QgPSByb290VG9Mb2NhbFRyYW5zZm9ybS5tYXBSZWN0KHJlcGFp
bnRSZWN0KTsKK30KKwordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVj
dFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZsb2F0UmVjdCYgcmVw
YWludFJlY3QpCit7CisgICAgQVNTRVJUKG9iamVjdCk7CisKKyAgICBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyID0gY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPihvYmplY3QpOworICAgIFNWR1Jlc291
cmNlcyogcmVzb3VyY2VzID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJl
bmRlck9iamVjdChyZW5kZXJlcik7CisgICAgaWYgKCFyZXNvdXJjZXMpCiAgICAgICAgIHJldHVy
bjsKLSAgICB9CiAKICNpZiBFTkFCTEUoRklMVEVSUykKICAgICBpZiAoUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIqIGZpbHRlciA9IHJlc291cmNlcy0+ZmlsdGVyKCkpCkBAIC0zMDYsOSArMzY5LDYg
QEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJj
ZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmoKIAogICAgIGlmIChSZW5kZXJTVkdSZXNvdXJjZU1h
c2tlciogbWFza2VyID0gcmVzb3VyY2VzLT5tYXNrZXIoKSkKICAgICAgICAgcmVwYWludFJlY3Qu
aW50ZXJzZWN0KG1hc2tlci0+cmVzb3VyY2VCb3VuZGluZ0JveChyZW5kZXJlcikpOwotCi0gICAg
aWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKLSAgICAg
ICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKIH0KIAogYm9vbCBT
VkdSZW5kZXJTdXBwb3J0OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQoUmVuZGVyT2JqZWN0
KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlclN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3Vw
cG9ydC5oCmluZGV4IDMyODZmOGYuLjVlOGY5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoK
ICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gZGV0ZXJtaW5pbmcgd2hldGVyIG92ZXJmbG93IGlzIGhp
ZGRlbgogICAgIHN0YXRpYyBib29sIGlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVuZGVyT2JqZWN0
Kik7CiAKKyAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKGNv
bnN0IFJlbmRlck9iamVjdCosIEZsb2F0UmVjdCYpOworCiAgICAgLy8gQ2FsY3VsYXRlcyB0aGUg
cmVwYWludFJlY3QgaW4gY29tYmluYXRpb24gd2l0aCBmaWx0ZXIsIGNsaXBwZXIgYW5kIG1hc2tl
ciBpbiBsb2NhbCBjb29yZGluYXRlcy4KICAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50
UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CiAKQEAg
LTYzLDYgKzY1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHBhaW50SW5mb0ludGVyc2Vj
dHNSZXBhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmIGxvY2FsUmVwYWludFJlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgbG9jYWxUcmFuc2Zvcm0sIGNvbnN0IFBhaW50SW5mbyYpOwogCiAgICAg
Ly8gSW1wb3J0YW50IGZ1bmN0aW9ucyB1c2VkIGJ5IG5lYXJseSBhbGwgU1ZHIHJlbmRlcmVycyBj
ZW50cmFsaXppbmcgY29vcmRpbmF0ZSB0cmFuc2Zvcm1hdGlvbnMgLyByZXBhaW50IHJlY3QgY2Fs
Y3VsYXRpb25zCisgICAgc3RhdGljIEZsb2F0UmVjdCByZXBhaW50UmVjdEZvclJlbmRlcmVySW5M
b2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCopOwog
ICAgIHN0YXRpYyBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0
IFJlbmRlck9iamVjdCosIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIp
OwogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ck9iamVjdCosIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0
UmVjdCYsIGJvb2wgZml4ZWQpOwogICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyT2JqZWN0KiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gdHJ1
ZSwgYm9vbCogd2FzRml4ZWQgPSAwKTsKQEAgLTc0LDYgKzc3LDEwIEBAIHB1YmxpYzoKICAgICAv
LyBEZXRlcm1pbmVzIGlmIGFueSBhbmNlc3RvcidzIHRyYW5zZm9ybSBoYXMgY2hhbmdlZC4KICAg
ICBzdGF0aWMgYm9vbCB0cmFuc2Zvcm1Ub1Jvb3RDaGFuZ2VkKFJlbmRlck9iamVjdCopOwogCisg
ICAgLy8gSGVscGVyIGZ1bmN0aW9ucyB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgYSByZW5kZXJl
ciBoYXMgYW4gU1ZHIHNoYWRvdyBhcHBsaWVkLgorICAgIHN0YXRpYyBib29sIHJlbmRlcmVySGFz
U1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIHNldFJlbmRl
cmVySGFzU1ZHU2hhZG93KFJlbmRlck9iamVjdCosIGJvb2wgaGFzU2hhZG93KTsKKwogICAgIC8v
IEZJWE1FOiBUaGVzZSBtZXRob2RzIGRvIG5vdCBiZWxvbmcgaGVyZS4KICAgICBzdGF0aWMgY29u
c3QgUmVuZGVyU1ZHUm9vdCogZmluZFRyZWVSb290T2JqZWN0KGNvbnN0IFJlbmRlck9iamVjdCop
OwogCg==
</data>
<flag name="commit-queue"
          id="187119"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172706</attachid>
            <date>2012-11-06 19:41:53 -0800</date>
            <delta_ts>2012-11-07 11:55:08 -0800</delta_ts>
            <desc>post the right patch</desc>
            <filename>shadow.diff</filename>
            <type>text/plain</type>
            <size>48952</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MjRmNjg4Li4zYWE5ZmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMTEt
MDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVw
YWludCBpc3N1ZXMgd2l0aCAtd2Via2l0LXN2Zy1zaGFkb3cgdXNlZCBvbiBhIGNvbnRhaW5lcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NDMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MDA1MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zOiBNYXJrIHRlc3RzIGFzIG5lZWRpbmcgcmViYXNlbGluZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9uczogTWFyayB0ZXN0cyBhcyBuZWVkaW5nIHJlYmFzZWxpbmUu
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmsgdGVzdHMgYXMg
bmVlZGluZyByZWJhc2VsaW5lLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnM6IE1hcmsgdGVzdHMgYXMgbmVlZGluZyByZWJhc2VsaW5lLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgt
c2hhZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21w
b3NpdGUtc2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNoYW5nZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRv
dWJsZS1zaGFkb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIE1hYyByZXN1bHRz
IGR1ZSB0byB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHN2Zy9jc3MvcGFyZW50LXNoYWRvdy1v
ZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3NzL3BhcmVudC1z
aGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQg
ZW5zdXJlcyB0aGF0IDxnPiB3aXRoIC13ZWJraXQtc3ZnLXNoYWRvdyBhcHBsaWVkIGRyYXdzIHdo
ZW4gY2hpbGRyZW4gYXJlIG9mZnNjcmVlbiBidXQgdGhlIHNoYWRvdyBpcyBub3QuCisKKyAgICAg
ICAgKiBzdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5zdmc6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAg
ICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IDxzdmc+IHdpdGggLXdlYmtpdC1z
dmctc2hhZG93IGFwcGxpZWQgZHJhd3Mgd2hlbiBjaGlsZHJlbiBhcmUgb2Zmc2NyZWVuIGJ1dCB0
aGUgc2hhZG93IGlzIG5vdC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvcmVwYWludC9y
ZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICog
c3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnOiBB
ZGRlZC4KKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdGhhdCBlbnN1cmVzIHRoYXQgU1ZHIGVsZW1l
bnRzIHdpdGggLXdlYmtpdC1zdmctc2hhZG93IGFyZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQuCisK
IDIwMTItMTEtMDYgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBjaHJvbWl1bSwgY2hyb21pdW0tbWFjLW1vdW50YWlubGlvbiBnYXJkZW5p
bmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDU3NzZmZTYuLjk5MDExMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM4Niw2ICsxMzg2LDE1IEBAIHdlYmtpdC5vcmcvYi84
NTEwNyBzdmcvYXMtaW1hZ2UvYW5pbWF0ZWQtc3ZnLWFzLWltYWdlLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIFBhCiAKIHdlYmtpdC5vcmcvYi85MzU4OSBzdmcvZG9tL1NWR1NjcmlwdEVsZW1lbnQv
c2NyaXB0LWNoYW5nZS1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLXdoaWxlLWxvYWRpbmcuc3Zn
IFsgRmFpbHVyZSBQYXNzIFRpbWVvdXQgXQogCisjIFRoZXNlIHRlc3RzIG5lZWQgdG8gYmUgcmVi
YXNlbGluZWQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
NjQzCit3ZWJraXQub3JnL2IvMTAxMzk2IHN2Zy9jc3Mvc2hhZG93LWNoYW5nZXMuc3ZnCit3ZWJr
aXQub3JnL2IvMTAxMzk2IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3Zn
Cit3ZWJraXQub3JnL2IvMTAxMzk2IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0
bWwKK3dlYmtpdC5vcmcvYi8xMDEzOTYgc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3Bh
Y2l0eS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk2IGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93
LW9uLWNvbnRhaW5lci5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk2IHN2Zy9jc3MvY29tcG9zaXRl
LXNoYWRvdy10ZXh0LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcvY3VzdG9tL3NpbXBsZS10
ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRW5kIFNWRyBURVNUUwogIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4
ZjI5ODlkLi4xM2EwMTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTY2Niw2ICsxNjY2LDE1IEBAIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcgWyBTa2lwIF0KICMgUmVn
cmVzc2lvbiBhZnRlciByMTMxNjQwLgogd2Via2l0Lm9yZy9iLzk5NjkxIGdhbWVwYWQvZ2FtZXBh
ZC1vdXQtb2YtcmFuZ2UtY3Jhc2hlci5odG1sIFsgRmFpbHVyZSBdCiAKKyMgVGhlc2UgdGVzdHMg
bmVlZCB0byBiZSByZWJhc2VsaW5lZCBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjU2NDMKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3ZnL2Nzcy9zaGFkb3ctY2hh
bmdlcy5zdmcKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQt
c3ZnLXNoYWRvdy5zdmcKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3ZnL2Nzcy9jb21wb3NpdGUtc2hh
ZG93LWV4YW1wbGUuaHRtbAord2Via2l0Lm9yZy9iLzEwMTQwMCBzdmcvY3NzL2NvbXBvc2l0ZS1z
aGFkb3ctd2l0aC1vcGFjaXR5Lmh0bWwKK3dlYmtpdC5vcmcvYi8xMDE0MDAgZmFzdC9yZXBhaW50
L21vdmluZy1zaGFkb3ctb24tY29udGFpbmVyLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDE0MDAgc3Zn
L2Nzcy9jb21wb3NpdGUtc2hhZG93LXRleHQuc3ZnCit3ZWJraXQub3JnL2IvMTAxNDAwIHN2Zy9j
dXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy5zdmcKKwogIyBSZXNvdXJjZSBUaW1pbmcg
aXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCiB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY3N2Q2YjAu
LmU2ZmI4NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMzY0LDYgKzEzNjQsMTUgQEAgd2Via2l0Lm9yZy9iLzk4NjEyIFsgUmVsZWFzZSBdIGZhc3Qv
ZG9tL2djLWRvbS10cmVlLWxpZmV0aW1lLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85
ODYxMyBjc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS11c2VyU3BhY2VPblVzZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTg2MTMgY3NzMy9tYXNraW5nL2Ns
aXAtcGF0aC1yZWZlcmVuY2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCisjIFRoZXNlIHRl
c3RzIG5lZWQgdG8gYmUgcmViYXNlbGluZWQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY1NjQzCit3ZWJraXQub3JnL2IvMTAxMzk4IHN2Zy9jc3Mvc2hhZG93
LWNoYW5nZXMuc3ZnCit3ZWJraXQub3JnL2IvMTAxMzk4IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Vi
a2l0LXN2Zy1zaGFkb3cuc3ZnCit3ZWJraXQub3JnL2IvMTAxMzk4IHN2Zy9jc3MvY29tcG9zaXRl
LXNoYWRvdy1leGFtcGxlLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDEzOTggc3ZnL2Nzcy9jb21wb3Np
dGUtc2hhZG93LXdpdGgtb3BhY2l0eS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk4IGZhc3QvcmVw
YWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk4
IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy10ZXh0LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5OCBz
dmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCisKICMgUmVxdWlyZXMgcmVi
YXNlbGluaW5nIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY0NQogd2Via2l0Lm9yZy9iLzExNjQ1IGZhc3QvdGFibGUvMDI1Lmh0bWwgWyBGYWlsdXJlIF0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zp
bmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZXBhaW50L21vdmluZy1zaGFkb3ctb24tY29udGFpbmVyLWV4cGVjdGVkLnR4
dAppbmRleCA5YzVhNTUyLi4zZmFlOGVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZXBhaW50L21vdmluZy1zaGFkb3ctb24tY29udGFpbmVyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L21vdmluZy1zaGFk
b3ctb24tY29udGFpbmVyLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA3ODV4NjE2CiBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzY5eDYwMAotICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoOCw4KSBz
aXplIDQ2OHgxNzMKKyAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDgsOCkgc2l6ZSA0ODh4
MTkzCiAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICg4LDgpIHNpemUgNzh4NjggW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS44MzY5N2Ut
MTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAtMjguNTMxNyA5LjI3MDUxIEwgLTU3LjA2MzQgLTE4
LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwgLTEuMTAyMThlLTE0IC02MCBMIDE3LjYzMzYgLTI0
LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAyOC41MzE3IDkuMjcwNTEgTCAzNS4yNjcxIDQ4LjU0
MSBaIl0KICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDIwMCw0Nikgc2l6ZSAxMjh4
MTI1IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1MC4wMCwxMDAu
MDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRo
PTEwLjAwXSBbZGFzaCBhcnJheT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSM5OTk5OTldfV0gW2RhdGE9Ik0gMS44MzY5N2UtMTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAt
MjguNTMxNyA5LjI3MDUxIEwgLTU3LjA2MzQgLTE4LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwg
LTEuMTAyMThlLTE0IC02MCBMIDE3LjYzMzYgLTI0LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAy
OC41MzE3IDkuMjcwNTEgTCAzNS4yNjcxIDQ4LjU0MSBaIl0KICAgICAgICAgUmVuZGVyU1ZHUGF0
aCB7cGF0aH0gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIyIFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDQwMC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBbZGFzaCBhcnJheT17MjAuMDB9
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS41MzA4
MWUtMTUgMjUgTCAtMjkuMzg5MyA0MC40NTA5IEwgLTIzLjc3NjQgNy43MjU0MiBMIC00Ny41NTI4
IC0xNS40NTA4IEwgLTE0LjY5NDYgLTIwLjIyNTQgTCAtOS4xODQ4NWUtMTUgLTUwIEwgMTQuNjk0
NiAtMjAuMjI1NCBMIDQ3LjU1MjggLTE1LjQ1MDggTCAyMy43NzY0IDcuNzI1NDIgTCAyOS4zODkz
IDQwLjQ1MDkgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nz
cy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL2Nzcy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggYjBmNDU4My4u
ZDcwMThjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJy
b3ctd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDYgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3Zn
fSBhdCAoNzksMjMpIHNpemUgNjA1eDQxNAotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDc5LDIzKSBzaXplIDYzOHg0NDcgW3RyYW5zZm9ybT17bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAw
KSkgdD0oMC4wMCwwLjAwKX1dCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2F9IGF0ICg3OSwy
Mykgc2l6ZSA2MDV4NDE0CisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNzksMjMpIHNp
emUgNjcxeDQ4MCBbdHJhbnNmb3JtPXttPSgoMi4wMCwwLjAwKSgwLjAwLDIuMDApKSB0PSgwLjAw
LDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7YX0gYXQgKDc5LDIzKSBzaXplIDYz
OHg0NDcKICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDc5LDIzKSBzaXplIDYwNXg0
MTQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXSBbc3Ryb2tlIHdpZHRoPTIw
LjAwXX1dIFtkYXRhPSJNIDE4NSA0MCBMIDg1IDQwIEwgODUgMjggTCA0MCA2NCBMIDg1IDEwMCBM
IDg1IDg4IEwgMTg1IDg4IFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0Cmlu
ZGV4IDJlNjM2OWEuLjEyOWU2YzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jbGlwcGF0aC13aXRoLXNoYWRvdy1leHBlY3RlZC50
eHQKQEAgLTEsMTEgKzEsMTEgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAyMTB4MjAwCiAgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hlaWdodD0yMDAuMDBdCiAg
ICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KC0yMDAuMDAsMC4wMCl9XSBbeD0yMDAuMDBd
IFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAwLjAwXQogICAgIFJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IFtpZD0iY2xpcCJdIFtjbGlwUGF0aFVuaXRzPXVzZXJT
cGFjZU9uVXNlXQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDApIHNpemUg
MjEweDIxMAorICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgwLDApIHNpemUgMjIw
eDIyMAogICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDIxMHgyMTAg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oLTIwMC4wMCwwLjAwKX1d
IFt4PTIwMC4wMF0gW3k9MC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hlaWdodD0yMDAuMDBdCi0gICAg
UmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTQwMC4wMF0g
W2hlaWdodD0yMDAuMDBdCi0gICAgICBbY2xpcFBhdGg9ImNsaXAiXSBSZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIge2NsaXBQYXRofSBhdCAoMCwwKSBzaXplIDIwMHgyMDAKKyAgICBSZW5kZXJTVkdS
ZWN0IHtyZWN0fSBhdCAoMCwwKSBzaXplIDIxMHgyMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NDAwLjAwXSBbaGVpZ2h0PTIw
MC4wMF0KKyAgICAgIFtjbGlwUGF0aD0iY2xpcCJdIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciB7
Y2xpcFBhdGh9IGF0ICgwLDApIHNpemUgMjEweDIxMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhh
bXBsZS1leHBlY3RlZC50eHQKaW5kZXggNTI3MGY3MC4uNTI4MWYxZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3Np
dGUtc2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0zLDEwICszLDEwIEBAIGxheWVyIGF0
ICgwLDApIHNpemUgNzg1eDYxNgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKLSAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDQw
LDM2KSBzaXplIDQzNngxNTAKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDAs
MzYpIHNpemUgMTQ2eDE0MAorICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoNDAsMzYpIHNp
emUgNDU2eDE3MAorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6
ZSAxNTZ4MTUwCiAgICAgICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDQwLDM2KSBzaXpl
IDE0NngxNDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAw
LDEwMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ug
d2lkdGg9MTAuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5OTk5OV19XSBbZGF0
YT0iTSAxLjgzNjk3ZS0xNSAzMCBMIC0zNS4yNjcxIDQ4LjU0MSBMIC0yOC41MzE3IDkuMjcwNTEg
TCAtNTcuMDYzNCAtMTguNTQxIEwgLTE3LjYzMzYgLTI0LjI3MDUgTCAtMS4xMDIxOGUtMTQgLTYw
IEwgMTcuNjMzNiAtMjQuMjcwNSBMIDU3LjA2MzQgLTE4LjU0MSBMIDI4LjUzMTcgOS4yNzA1MSBM
IDM1LjI2NzEgNDguNTQxIFoiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
MDAsNDYpIHNpemUgMTI4eDEyNQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
MDAsNDYpIHNpemUgMTM4eDEzNQogICAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgy
MDAsNDYpIHNpemUgMTI4eDEyNSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgyNTAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF0gW3N0cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2ggYXJyYXk9ezIwLjAwfV19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1
LjI2NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcu
NjMzNiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcu
MDYzNCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJdCi0gICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIyCisgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMjd4MTMyCiAgICAg
ICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDM0OSw0Nikgc2l6ZSAxMTd4MTIyIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwMC4wMCwxMDAuMDApfV0gW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBb
ZGFzaCBhcnJheT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTld
fV0gW2RhdGE9Ik0gMS41MzA4MWUtMTUgMjUgTCAtMjkuMzg5MyA0MC40NTA5IEwgLTIzLjc3NjQg
Ny43MjU0MiBMIC00Ny41NTI4IC0xNS40NTA4IEwgLTE0LjY5NDYgLTIwLjIyNTQgTCAtOS4xODQ4
NWUtMTUgLTUwIEwgMTQuNjk0NiAtMjAuMjI1NCBMIDQ3LjU1MjggLTE1LjQ1MDggTCAyMy43NzY0
IDcuNzI1NDIgTCAyOS4zODkzIDQwLjQ1MDkgWiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93
LXdpdGgtb3BhY2l0eS1leHBlY3RlZC50eHQKaW5kZXggYzFiMWViNS4uNmJhY2QzMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13
aXRoLW9wYWNpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dApAQCAtNCwx
MCArNCwxMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzY5eDYwMAogbGF5ZXIgYXQgKDgsOCkgc2l6ZSA3Njl4NjAwCi0gIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDQwLDM2KSBzaXplIDQzNngxNTAgW29wYWNpdHk9MC41MF0KLSAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6ZSAxNDZ4MTQwCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDQwLDM2KSBzaXplIDQ1NngxNzAgW29wYWNpdHk9MC41MF0KKyAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwzNikgc2l6ZSAxNTZ4MTUwCiAgICAgICBSZW5kZXJT
VkdQYXRoIHtwYXRofSBhdCAoNDAsMzYpIHNpemUgMTQ2eDE0MCBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMDAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0xMC4wMF19XSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1LjI2
NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcuNjMz
NiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcuMDYz
NCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJdCi0gICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEyOHgxMjUKKyAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICgyMDAsNDYpIHNpemUgMTM4eDEzNQogICAgICAgUmVuZGVyU1ZH
UGF0aCB7cGF0aH0gYXQgKDIwMCw0Nikgc2l6ZSAxMjh4MTI1IFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1MC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBbZGFzaCBhcnJheT17MjAu
MDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS44
MzY5N2UtMTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAtMjguNTMxNyA5LjI3MDUxIEwgLTU3LjA2
MzQgLTE4LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwgLTEuMTAyMThlLTE0IC02MCBMIDE3LjYz
MzYgLTI0LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAyOC41MzE3IDkuMjcwNTEgTCAzNS4yNjcx
IDQ4LjU0MSBaIl0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYpIHNpemUg
MTE3eDEyMgorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0OSw0Nikgc2l6ZSAxMjd4
MTMyCiAgICAgICBSZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoMzQ5LDQ2KSBzaXplIDExN3gxMjIg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNDAwLjAwLDEwMC4wMCl9
XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9MTAu
MDBdIFtkYXNoIGFycmF5PXsyMC4wMH1dfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5
OTk5OV19XSBbZGF0YT0iTSAxLjUzMDgxZS0xNSAyNSBMIC0yOS4zODkzIDQwLjQ1MDkgTCAtMjMu
Nzc2NCA3LjcyNTQyIEwgLTQ3LjU1MjggLTE1LjQ1MDggTCAtMTQuNjk0NiAtMjAuMjI1NCBMIC05
LjE4NDg1ZS0xNSAtNTAgTCAxNC42OTQ2IC0yMC4yMjU0IEwgNDcuNTUyOCAtMTUuNDUwOCBMIDIz
Ljc3NjQgNy43MjU0MiBMIDI5LjM4OTMgNDAuNDUwOSBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hhZG93LWV4cGVj
dGVkLnR4dAppbmRleCBkYTVjNjY1Li4yNTcyZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvZ3JvdXAtd2l0aC1zaGFkb3ctZXhwZWN0
ZWQudHh0CkBAIC0xLDggKzEsOCBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMzAsMzEpIHNpemUgMzAweDMxOQotICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMwLDMxKSBzaXplIDMzNHgzNTMgW3RyYW5zZm9ybT17
bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAwKSkgdD0oMC4wMCwwLjAwKX1dCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDMwLDMxKSBzaXplIDI4OXgyODYKKyAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgzMCwzMSkgc2l6ZSAzNTV4MzUzIFt0cmFuc2Zvcm09e209KCgyLjAwLDAuMDApKDAu
MDAsMi4wMCkpIHQ9KDAuMDAsMC4wMCl9XQogICAgICAgUmVuZGVyU1ZHUGF0aCB7bGluZX0gYXQg
KDMzLDMxKSBzaXplIDI4NHgzOCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDAwODBd
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbeDE9MTAuMDBdIFt5MT0x
MC4wMF0gW3gyPTg1LjAwXSBbeTI9MTAuMDBdCiAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBh
dCAoMzEsNjUpIHNpemUgMjg4eDIwNCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDAw
ODBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzgwMDA4MF19XSBbeD0xMC4wMF0gW3k9
MjAuMDBdIFt3aWR0aD03NS4wMF0gW2hlaWdodD01MC4wMF0KICAgICAgIFJlbmRlclNWR1RleHQg
e3RleHR9IGF0ICgxMCw3NSkgc2l6ZSA3OHgxOSBjb250YWlucyAxIGNodW5rKHMpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hhbmdlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hhbmdl
cy1leHBlY3RlZC50eHQKaW5kZXggNzEzMzgyYS4uMDgwMDNmNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNoYW5nZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLWV4cGVj
dGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEzNSw1KSBzaXplIDMyNngyODUKLSAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMjAsMCkgc2l6ZSAzNDF4MjkwCisgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDE0NiwxNikgc2l6ZSAzMTV4Mjg4CisgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMTE2LDApIHNpemUgMzQ1eDMwNAogICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDEzNSw1KSBzaXplIDIxNXgyMTUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbeD0xNTAuMDBdIFt5PTIwLjAwXSBbd2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4w
MF0KICAgICAgIFJlbmRlclNWR0VsbGlwc2Uge2NpcmNsZX0gYXQgKDIwNSw3NSkgc2l6ZSAyMTV4
MjE1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2N4PTMyMC4wMF0gW2N5
PTE5MC4wMF0gW3I9MTAwLjAwXQogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDI3MCwz
Nikgc2l6ZSAxOTF4MTA3IGNvbnRhaW5zIDEgY2h1bmsocykKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRl
eHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggM2YwODczMS4uOTQyMWE1MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2ltcGxlLXRleHQt
ZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vc2ltcGxlLXRleHQtZG91YmxlLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSw3IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgyMCwyNikgc2l6ZSAzODB4MTk0CisgIFJlbmRlclNWR1Jvb3Qge3N2
Z30gYXQgKDIwLDI2KSBzaXplIDQ4MHgyOTQKICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAo
MjAsMjYpIHNpemUgMjE3eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lu
bGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxN3gxOAogICAgICAgICBjaHVuayAxIHRl
eHQgcnVuIDEgYXQgKDIwLjAwLDQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAzNCB3aWR0
aCAyMTcuMDA6ICJUaGlzIHRleHQgc2hvdWxkIGFwcGVhciBvbmx5IHR3aWNlIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2
Zy1zaGFkb3ctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9yZXBh
aW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5
ZTNmMDc0Y2IzYTIxYThlZDlkMzI2ZDMxOWNlZjI5MGMyZWM1ZGEKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDEwODYwCnpjbWVITlpBPz5GN3swZXVzVGp3VmZmSGZuR0tZcmZDTjEoY2t6TiFTXmBr
U2VzZ28mVTlnR05xUXZ8bCEtWVJPZwp6QVQrdismOTVkSzN0S199JDJPZjJ0biZreD5EMClFNkdy
UnNWXzgqTnY3P21JP3EkK0AmaFB6THFNbCErUHkxZnAKektKUGl0YktZfiMyZ184aVA3MFY3S3ZD
MnJXb0I5eU1mdEg1QzBaI041NkokbCtlX2drZFExQXNFJFZtUFImVXJgCnpSIXFyYVZgR3clO15w
aCY8bShiK15XXkwwaUZ2VmRjfHlLQ1VYflg+SD5xYXJUP05FPWx4ZUIyU0ozeDxPV2hjagp6OEkq
UiNaZHdzc0ttR2RVJGhnKjlwOUwoOTMwP2hWTU8kcCkzVkNpKmltVTZBKkU/TTZaMz1OWnRYK1JA
RyNaVmMKel9nN1hedmBHQWwqeUExPVhyQXFJSTJfRnY7eSRBRS08b3Q/eGtJfX5LYT87bSRITzEz
QkdMTF51V2tfRGl6UCozCnpAJWl4YEQ9XzNqZlcrfFRZdDU0JU1UfnlYR01RbishZ0Ric1cpe29r
JnVfflplZGVRM1F3R051bTFAIzRxPi1tUwp6YnYmSHJgdiFiOWpIYlVuV2U+clMkMjF9TDtjWSl9
WHFjZVVZN2hVdCZuQCo0dFkxZmF7cCszMTx1bV9mZHoyWiYKejZveElfR35nP01TUTAhQFYpJnlr
PWE5ZjB3fkZLSSZ0OUFeZ2U7clFhdiM9fmw9K0BZaXdiRmFAMDVnRTZtbz44CnpxRXAmYG5KYHZY
djd+O1NJQ0U3YEc3MzI+NXxLbSpCVj4kX1MlWEMzdkM8SzNnYTdgbk5aVmspYEFXSkB0SWFTRQp6
QUMoUyFKa3NZIT5+QCl9U0YhRGApb0x8Ki1xODZmWS0yNTZLRHBIQ2h4dG8/RnZJcURJXnI9WFAk
YXNrS09LUC0Kem5XPD50c21nfD9xZXhEZjNXaXw9ISMjb35iRyZLWklQdio7V289Nl9odVo7aDdN
bmpKU2xrPVVhPWwrIWkhbiRGCno0KHFwREF4SmdEK0VnX0NLKClIJFMhQSZgbWdTXzBab01HIWwp
ZkIleGNzbTg0cSVXISNGPWdjVnJHM0pvOHdQcAp6Y1hlWT52UDVGPWVAMkklJX49az9QZDs/S2NM
d0A3bVE/T1BRZjJCZFBxfXxAalVKWEJ5fClxJD1ybyQ1YzhBWj4KekVtfDxabzFVPDRnT0lnSjJM
SnElWS1jMSZAJjBvUko3flZQM240WUkhc3N+b0x0dnprVmQrVnBgcmRta3t6WmdUCnpeSGtGOVY2
OC1gckc2TW5HTHJDSkJ0cTBjd3llUm41TExIbDQkSXY/ZDFNa1FadW9TVHQ0WjEhdXxUTEtxKW9y
Owp6LUJYOzJrZzAlTmg7fW9ta2Jfe3shekQhdjV6K3hudDVyOTRxdFlKQjxAZz8qSXhJK0ZLTX5l
TjtoT14jUmZ2IWcKekFjUm12Qz5rMyFXRTdFIV9KMylTV2woblY0NStON1NZJFN2T1d5QjNKKkw2
PjA8azs3UTFGZD1ISWdeK25qblVxCnpWO3x+M0l4Ul5DP0wyKHRLey0tV3JhfW84Ym1tUzM/cShw
PmxeSCpvcVhoQmhFSyVUSEt9T3ZZTDFLQVJFQ154Zgp6T1MoRWk4WXo3cD09V2xjTTx5c2JFeEg2
TWA9bGppOEM+a1d1OShybkk5O3cpbm0pQ1ViYmJENDEzQmN7aVcqMTsKejhweW9USzRmVGYhR35e
SnlSaW14Q0M2OHQrSmhSJSVne2pYWiFSaEtKKFUqYShSOSVHZ2NeWnB1OWM/Pit1TUlmCnpXdnFl
KmEleFdeM2JfYWtCdVJ1WUxkRlEwSEclO1U5VTttfXlvUl9oUyZ4dHY4ZClqfGAjeG14T3hnKzNW
M0MmZAp6c2NPUVZCTXdLMXdEN0dnJU8jYFkkNCZYQGRjZF4rci1JRnE9QXRjTEhVYGNgWDJpQU8q
OGBUcmdASDxxNjU5YHwKemhZSklwNTJzKnpLUkl3PTtGZGlLTC14VDloT0RiT0xQcjhPN35sfSM8
Qm1FRVNwcHt+JUIzWUpBK3t4aUFxZiROCnojdGkhajl6ITxremAjSmtnSChMKmI4RG1FVjY8XylN
dXA5X1Y+fWYpKTReZ2hZWmxENHo0anl3PjRVajt1eVk0Qwp6Wlc+e0djRzA7ejcqWStwayg7c3R2
OG1ueXlULUZaam81WkAlKiFseVBCfFopdUpOV3Q5NyV7VUc8R35kI3RAbGgKZ3NHRUdNYmpZVW9M
aWZWT2lpemlzIX1VPjBuWFhEfVRDakhlS1FhfHcpJkt3aQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjg1OTUyZS4u
OWNlMmQ0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
MzgzLDYgKzIzODMsMTUgQEAgd2Via2l0Lm9yZy9iLzEwMDg0NiBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXItdGVybWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUKICMgTmV3LCBidXQgZmFp
bGluZyB0ZXN0CiB3ZWJraXQub3JnL2IvMTAxMDM1IGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRp
b24taW1hZ2UtZG9jdW1lbnQuaHRtbAogCisjIFRoZXNlIHRlc3RzIG5lZWQgdG8gYmUgcmViYXNl
bGluZWQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQz
Cit3ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3Mvc2hhZG93LWNoYW5nZXMuc3ZnCit3ZWJraXQu
b3JnL2IvMTAxMzk3IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnCit3
ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0bWwK
K3dlYmtpdC5vcmcvYi8xMDEzOTcgc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0
eS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk3IGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9u
LWNvbnRhaW5lci5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvY29tcG9zaXRlLXNo
YWRvdy10ZXh0LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NyBzdmcvY3VzdG9tL3NpbXBsZS10ZXh0
LWRvdWJsZS1zaGFkb3cuc3ZnCisKICMgRmFpbHMgYWZ0ZXIgdGVzdCByZWZhY3RvcmluZywgbWF5
YmUgcmViYXNlbGluZSBuZWVkZWQKIHdlYmtpdC5vcmcvYi85ODUyMyBmYXN0L2ltYWdlcy9yZXBh
aW50LXN1YnJlY3QtZ3JpZC5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3Mv
bWFzay13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL21hc2st
d2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4IGUyNjlkMzMuLmRiMWQ4MzYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N2Zy9jc3MvbWFzay13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9tYXNrLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAt
MSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCi0gIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCi0gICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoNSw1KSBzaXplIDIxMHgyMTAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAo
NSw1KSBzaXplIDIyMHgyMjAKKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1LDUpIHNp
emUgMjIweDIyMAogICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50IHtsaW5l
YXJHcmFkaWVudH0gW2lkPSJtYXNrZWRHcmFkaWVudCJdIFtncmFkaWVudFVuaXRzPW9iamVjdEJv
dW5kaW5nQm94XSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDEsMSldCiAgICAgICAgICAgUmVuZGVyU1ZH
R3JhZGllbnRTdG9wIHtzdG9wfSBbb2Zmc2V0PTAuMDBdIFtjb2xvcj0jMDAwMEZGXQpAQCAtMTMs
NyArMTMsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ1MHg1MDAKICAgICAgICAgICBSZW5kZXJT
VkdFbGxpcHNlIHtjaXJjbGV9IGF0ICg1LDExNSkgc2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2N4PTU1LjAwXSBbY3k9MTY1LjAwXSBbcj01MC4wMF0K
ICAgICAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICgxMTUsNSkgc2l6ZSAxMTB4
MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2N4PTE2NS4wMF0gW2N5
PTU1LjAwXSBbcj01MC4wMF0KICAgICAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0
ICgxMTUsMTE1KSBzaXplIDExMHgxMTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZG
Rl19XSBbY3g9MTY1LjAwXSBbY3k9MTY1LjAwXSBbcj01MC4wMF0KLSAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCi0gICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7dXNlfSBhdCAoNSw1KSBzaXplIDIxMHgyMTAKLSAgICAgICAgICBbbWFza2VyPSJtYXNr
XzEiXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7bWFza30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEw
CisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1LDUpIHNpemUgMjIweDIyMAorICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDUsNSkgc2l6ZSAyMjB4MjIwCisgICAg
ICAgICAgW21hc2tlcj0ibWFza18xIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0
ICg1LDUpIHNpemUgMjIweDIyMAogICAgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgw
LDApIHNpemUgMzAweDMwMCBbZmlsbD17W3R5cGU9TElORUFSLUdSQURJRU5UXSBbaWQ9Im1hc2tl
ZEdyYWRpZW50Il19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MzAwLjAwXSBbaGVpZ2h0PTMw
MC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZz
Y3JlZW4tZXhwZWN0ZWQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9m
ZnNjcmVlbi1leHBlY3RlZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Yjc1ZDNhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNo
YWRvdy1vZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorPHRpdGxlPkV4cGVjdGVkIHJlc3VsdHMgZm9y
IHBhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZzwvdGl0bGU+Cis8cmVjdCBpZD0icmVjdCIgZmls
bD0id2hpdGUiIHN0eWxlPSItd2Via2l0LXN2Zy1zaGFkb3c6ICMwMDAgMTAwcHggMTAwcHggNXB4
IiB4PSIwIiB5PSIwIiB3aWR0aD0iNzUiIGhlaWdodD0iNzUiPjwvcmVjdD4KKzwvc3ZnPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcg
Yi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2I3YjFhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcKQEAgLTAsMCAr
MSw2IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cis8dGl0bGU+
VGVzdCBwYXNzZXMgaWYgdGhlIHNoYWRvdyBpcyBkcmF3bi48L3RpdGxlPgorPGcgc3R5bGU9Ii13
ZWJraXQtc3ZnLXNoYWRvdzogIzAwMCAyMDBweCAyMDBweCA1cHgiPgorPHJlY3QgaWQ9InJlY3Qi
IHg9Ii0xMDAiIHk9Ii0xMDAiIHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9nPgor
PC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNj
cmVlbi1leHBlY3RlZC5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNj
cmVlbi1leHBlY3RlZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM2
NGYxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3Mvcm9vdC1zaGFkb3ct
b2Zmc2NyZWVuLWV4cGVjdGVkLnN2ZwpAQCAtMCwwICsxLDQgQEAKKzxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzx0aXRsZT5FeHBlY3RlZCByZXN1bHRzIGZvciByb290
LXNoYWRvdy1vZmZzY3JlZW4uc3ZnPC90aXRsZT4KKzxyZWN0IGlkPSJyZWN0IiBmaWxsPSJ3aGl0
ZSIgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogIzAwMCAxMDBweCAxMDBweCA1cHgiIHg9IjAi
IHk9IjAiIHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9zdmc+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi5zdmcgYi9MYXlvdXRU
ZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZmVkMWIxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZwpAQCAtMCwwICsxLDQgQEAKKzxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHlsZT0iLXdlYmtpdC1zdmctc2hh
ZG93OiAjMDAwIDIwMHB4IDIwMHB4IDVweCI+Cis8dGl0bGU+VGVzdCBwYXNzZXMgaWYgdGhlIHNo
YWRvdyBpcyBkcmF3bi48L3RpdGxlPgorPHJlY3QgaWQ9InJlY3QiIHg9Ii0xMDAiIHk9Ii0xMDAi
IHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5OTk3NWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1z
dmctc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDEyMCwwKSBzaXpl
IDQ1MHg1MjAKKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMTUwLDEwMCkgc2l6ZSAxMjB4
MTIwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1MC4wMCw1MC4w
MCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFt4PTAuMDBdIFt5PTUw
LjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDEyMCwwKSBzaXplIDEyMHgxMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbeD0xMjAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1z
aGFkb3cuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNo
YWRvdy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmExYTE1YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2
Zy1zaGFkb3cuc3ZnCkBAIC0wLDAgKzEsMTIgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIg
c3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogMTAwcHggMTAwcHggMHB4ICNhYWE7IiBvbmxvYWQ9
InJ1blJlcGFpbnRUZXN0KCkiPgorICAgIDx0aXRsZT5UZXN0IHBhc3NlcyBpZiBmb3VyIHJlY3Rh
bmdsZXMgYXJlIGRyYXduIGFmdGVyIHRoZSBhbmltYXRpb24uPC90aXRsZT4KKyAgICA8cmVjdCBp
ZD0iYSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB4PSIwIiB5PSI1MCIgZmlsbD0iYmxhY2siIC8+
CisgICAgPHJlY3QgaWQ9ImIiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgeD0iMTIwIiB5PSIwIiBm
aWxsPSJibGFjayIgLz4KKyAgICA8c2NyaXB0IHhsaW5rOmhyZWY9Ii4uLy4uL2Zhc3QvcmVwYWlu
dC9yZXNvdXJjZXMvcmVwYWludC5qcyIvPgorICAgIDxzY3JpcHQ+CisgICAgdmFyIHJlY3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkg
eworICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSgxNTAs
IDUwKSIpCisgICAgfQorICAgIDwvc2NyaXB0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEyNWUx
MS4uMzBlZGJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTExLTA2ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGFpbnQgaXNz
dWVzIHdpdGggLXdlYmtpdC1zdmctc2hhZG93IHVzZWQgb24gYSBjb250YWluZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NjAwNTMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNWRyByZW5kZXJlciByZXBhaW50IHJlY3RzIGFyZSBjdXJyZW50bHkg
ZXhwYW5kZWQgb25seSBieSB0aGUgc2hhZG93IG9mCisgICAgICAgIHRoZSByZW5kZXJlciBpdHNl
bGY7IGhvd2V2ZXIsIHRoZSBhcmVhIHRoZXkgbmVlZCB0byByZXBhaW50IGNhbiBiZSBsYXJnZXIK
KyAgICAgICAgdGhhbiB0aGF0LCBpZiB0aGVpciBwYXJlbnRzIGFsc28gaGF2ZSBzaGFkb3dzLiBX
ZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50CisgICAgICAgIHBhcmVudCdzIHNoYWRvd3MgKHJl
c3BlY3RpbmcgdHJhbnNmb3JtcywgYXMgd2VsbCkuCisKKyAgICAgICAgY2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQgYWxyZWFkeSByZWN1cnNlcyB1cHdhcmRzIHRocm91Z2ggdGhlIHJlbmRl
ciB0cmVlLAorICAgICAgICBhbmQgZW5kcyB1cCB3aXRoIGEgcmVjdCBpbiBsYXlvdXQgY29vcmRp
bmF0ZXMsIHNvIHdlIG1hbnVhbGx5IGFwcGx5IHRoZSBzaGFkb3cKKyAgICAgICAgYXQgZWFjaCBz
dGVwIChyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyB3YXMg
YWRkZWQgdG8gYWxsb3cKKyAgICAgICAgdXMgdG8gZ2V0IHRoZSByYXcgcmVwYWludCByZWN0IHdp
dGhvdXQgdGhlIHNoYWRvdyBiYWtlZC1pbikuCisKKyAgICAgICAgcmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXMgbm93IGluY2x1ZGVzIHNoYWRvd3MgZnJvbSBhbGwgcGFyZW50cy4KKworICAg
ICAgICBBbHNvLCBSZW5kZXJTVkdSb290IHdhcyBjbGlwcGluZyByZXBhaW50IHJlY3RzIHRvIHRo
ZSB2aWV3cG9ydCBiZWZvcmUgYXBwbHlpbmcKKyAgICAgICAgc2hhZG93cywgc28gb2Zmc2NyZWVu
IGVsZW1lbnRzIHdpdGggb24tc2NyZWVuIHNoYWRvd3MgKGFwcGxpZWQgYnkgdGhlIHJvb3QpIHdv
dWxkIG5vdCBwYWludCB0aGUgc2hhZG93cy4KKyAgICAgICAgV2UgY2FuIGp1c3Qgc3dhcCB0aGUg
b3JkZXIgb2YgdGhlc2UgdGhpbmdzIHRvIGNvcnJlY3QgdGhpcy4KKworICAgICAgICBUZXN0czog
c3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcsIHN2Zy9jc3Mvcm9vdC1zaGFkb3ct
b2Zmc2NyZWVuLnN2Zywgc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy5zdmcK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjphZGRDaGlsZCk6IE1hcmsgdGhlIGNoaWxkIGJlaW5nIGFkZGVkIGFz
IGhhdmluZyBhbiBTVkcgc2hhZG93IGlmIGl0IGlzIGJlaW5nIGFkZGVkIGFzIGEgY2hpbGQgb2Yg
YW4gZWxlbWVudCB0aGF0IGRvZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnN0
eWxlRGlkQ2hhbmdlKTogTWFyayB0aGUgY2hpbGQgYmVpbmcgYWRkZWQgYXMgaGF2aW5nIGFuIFNW
RyBzaGFkb3cgaWYgaXRzIG5ldyBzdHlsZSBoYXMgYSBzaGFkb3cuCisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJ
bWFnZTo6bGF5b3V0KTogQ2FjaGUgdGhlIHJlcGFpbnQgcmVjdCBiZWZvcmUgaW50ZXJzZWN0aW5n
IGl0IHdpdGggdGhlIHNoYWRvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lt
YWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6cmVwYWludFJlY3RJbkxv
Y2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBh
aW50IHJlY3QgZm9yIHRoZSByZW5kZXJlciB3aXRob3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6UmVuZGVyU1ZHTW9kZWxPYmplY3QpOiBS
ZW5kZXJlcnMgZG8gbm90IGhhdmUgYSBzaGFkb3cgYnkgZGVmYXVsdC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdT
VkdTaGFkb3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBhaW50IHJlY3QgZm9yIHRoZSByZW5kZXJl
ciB3aXRob3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdNb2RlbE9iamVjdDo6aGFzU1ZHU2hhZG93KTogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBy
ZW5kZXJlciBoYXMgYSBzaGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9i
amVjdDo6c2V0SGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBo
YXMgYSBzaGFkb3cuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OlJlbmRlclNWR1Jvb3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQpOiBB
cHBseSB0aGUgc2hhZG93IGJlZm9yZSBjbGlwcGluZyB0byB0aGUgdmlld3BvcnQsIHNvIHdlIGRy
YXcgc2hhZG93cyBmb3IgZWxlbWVudHMgb3V0c2lkZSB0aGUgdmlld3BvcnQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdSb290Ojp1cGRhdGVDYWNoZWRCb3VuZGFyaWVzKTogQ2FjaGUgdGhl
IHJlcGFpbnQgcmVjdCBiZWZvcmUgaW50ZXJzZWN0aW5nIGl0IHdpdGggdGhlIHNoYWRvdy4KKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1Jvb3Q6Omhhc1NWR1NoYWRvdyk6IFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGUg
cmVuZGVyZXIgaGFzIGEgc2hhZG93LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6
c2V0SGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMgYSBz
aGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjpyZXBhaW50UmVjdEluTG9j
YWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFp
bnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhvdXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNWR1NoYXBlOjp1cGRhdGVSZXBhaW50Qm91bmRpbmdCb3gpOiBDYWNoZSB0aGUg
cmVwYWludCByZWN0IGJlZm9yZSBpbnRlcnNlY3RpbmcgaXQgd2l0aCB0aGUgc2hhZG93LgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1NoYXBlOjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NW
R1NoYWRvdyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFpbnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVy
IHdpdGhvdXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6
cmVwYWludFJlY3RGb3JSZW5kZXJlckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRv
dyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFpbnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhv
dXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBv
cnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KTogQXBwbHkgc2hhZG93cyBhcyB3ZSB3
YWxrIHRocm91Z2ggb3VyIHBhcmVudHMsIGluc3RlYWQgb2Ygb25seSBhcHBseWluZyB0aGUgcmVu
ZGVyZXIncyBvd24gc2hhZG93LgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6
cmVuZGVyZXJIYXNTVkdTaGFkb3cpOiBSZXR1cm4gd2hldGhlciBvciBub3QgdGhlIHJlbmRlcmVy
IGhhcyBhIHNoYWRvdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OnNldFJl
bmRlcmVySGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMg
YSBzaGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RS
ZXBhaW50UmVjdFdpdGhTaGFkb3dzKTogV2FsayB0aHJvdWdoIHRoZSBlbGVtZW50J3MgcGFyZW50
cywgYWRkaW5nIHNoYWRvd3MgdG8gdGhlIHJlcGFpbnQgcmVjdCBhcyB3ZSBnbywgZXZlbnR1YWxs
eQorICAgICAgICB0cmFuc2Zvcm1pbmcgdGhlIHJlcGFpbnQgcmVjdCBiYWNrIGludG8gbG9jYWwg
Y29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNl
Y3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMpOiBEb24ndCBhZGQgc2hhZG93cyBieSBkZWZhdWx0
LCBqdXN0IG90aGVyIHJlc291cmNlcywgc28gdGhhdCB3ZSBjYW4gY2FjaGUgcmVwYWludCByZWN0
cyB3aXRoIGFuZCB3aXRob3V0IHNoYWRvd3MuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJTdXBwb3J0Lmg6CisKIDIwMTItMTEtMDYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgU29tZSBjb29raWUgY29kZSBjbGVhbnVwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDk4ZDBjM2QuLjIyNThmN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yODQsNiArMjg0
LDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogICAgIGlmICghY2hpbGRyZW4pCiAgICAgICAg
IHJldHVybjsKIAorI2lmIEVOQUJMRShTVkcpCisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVu
ZGVyZXJIYXNTVkdTaGFkb3cobmV3Q2hpbGQsIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFz
U1ZHU2hhZG93KHRoaXMpIHx8IFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hhZG93
KG5ld0NoaWxkKSk7CisjZW5kaWYKKwogICAgIGJvb2wgbmVlZHNUYWJsZSA9IGZhbHNlOwogCiAg
ICAgaWYgKG5ld0NoaWxkLT5pc1JlbmRlclRhYmxlQ29sKCkpIHsKQEAgLTE5MTUsNiArMTkxOSwx
MCBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdAogICAgIGlmIChzX2FmZmVjdHNQYXJlbnRCbG9j
aykKICAgICAgICAgaGFuZGxlRHluYW1pY0Zsb2F0UG9zaXRpb25DaGFuZ2UoKTsKIAorI2lmIEVO
QUJMRShTVkcpCisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVuZGVyZXJIYXNTVkdTaGFkb3co
dGhpcywgKG1fcGFyZW50ICYmIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hhZG93
KG1fcGFyZW50KSkgfHwgKHN0eWxlKCktPnN2Z1N0eWxlKCkgJiYgc3R5bGUoKS0+c3ZnU3R5bGUo
KS0+c2hhZG93KCkpKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3BhcmVudCkKICAgICAgICAgcmV0
dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lt
YWdlLmNwcAppbmRleCA0Nzk0N2UxLi42NjFiMTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcApAQCAtOTIsOCArOTIsMTIgQEAgdm9pZCBS
ZW5kZXJTVkdJbWFnZTo6bGF5b3V0KCkKICAgICB9CiAKICAgICBpZiAobV9uZWVkc0JvdW5kYXJp
ZXNVcGRhdGUpIHsKLSAgICAgICAgbV9yZXBhaW50Qm91bmRpbmdCb3ggPSBtX29iamVjdEJvdW5k
aW5nQm94OwotICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdp
dGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOworICAgICAgICBtX3JlcGFp
bnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyA9IG1fb2JqZWN0Qm91bmRpbmdCb3g7CisgICAg
ICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0
aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyk7CisKKyAgICAgICAgbV9y
ZXBhaW50Qm91bmRpbmdCb3ggPSBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsK
KyAgICAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93
cyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7CisKICAgICAgICAgbV9uZWVkc0JvdW5kYXJp
ZXNVcGRhdGUgPSBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW1hZ2UuaAppbmRleCA5Y2QzZWVhLi45MDVhOGQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCkBAIC01Nyw2ICs1Nyw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25z
dCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qg
c3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9
CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBj
b25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveDsgfQorICAgIHZpcnR1YWwgRmxvYXRS
ZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4m
LCBjb25zdCBMYXlvdXRQb2ludCYpOwogCkBAIC03NSw2ICs3Niw3IEBAIHByaXZhdGU6CiAgICAg
QWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUcmFuc2Zvcm07CiAgICAgRmxvYXRSZWN0IG1fb2JqZWN0
Qm91bmRpbmdCb3g7CiAgICAgRmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94OworICAgIEZs
b2F0UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsKICAgICBPd25QdHI8
UmVuZGVySW1hZ2VSZXNvdXJjZT4gbV9pbWFnZVJlc291cmNlOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRl
eCA3YmRjZDc0Li44Mzg2Njc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcApAQCAtNDMsNiArNDMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR01vZGVsT2JqZWN0OjpSZW5kZXJTVkdNb2RlbE9iamVj
dChTVkdTdHlsZWRFbGVtZW50KiBub2RlKQogICAgIDogUmVuZGVyT2JqZWN0KG5vZGUpCisgICAg
LCBtX2hhc1NWR1NoYWRvdyhmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCmluZGV4IDBjNGVjNWIuLmE2NDM2
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmgKQEAgLTY2LDYgKzY2LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBj
aGVja0ludGVyc2VjdGlvbihSZW5kZXJPYmplY3QqLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICBz
dGF0aWMgYm9vbCBjaGVja0VuY2xvc3VyZShSZW5kZXJPYmplY3QqLCBjb25zdCBGbG9hdFJlY3Qm
KTsKIAorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVz
RXhjbHVkaW5nU1ZHU2hhZG93KCkgY29uc3QgeyByZXR1cm4gcmVwYWludFJlY3RJbkxvY2FsQ29v
cmRpbmF0ZXMoKTsgfQorICAgIGJvb2wgaGFzU1ZHU2hhZG93KCkgY29uc3QgeyByZXR1cm4gbV9o
YXNTVkdTaGFkb3c7IH0KKyAgICB2b2lkIHNldEhhc1NWR1NoYWRvdyhib29sIGhhc1NoYWRvdykg
eyBtX2hhc1NWR1NoYWRvdyA9IGhhc1NoYWRvdzsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogCkBAIC03Myw2ICs3Nyw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCwgU1ZHIHVzZXMgYSBkaWZm
ZXJlbnQgbm9kZUF0UG9pbnQgbWV0aG9kCiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRU
ZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0
aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0
VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlRm9jdXNSaW5n
UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mKTsKKyAgICBib29sIG1faGFzU1ZHU2hhZG93OwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
b290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAK
aW5kZXggMjczM2FlNC4uNTU1ZDUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC02MCw2ICs2MCw3IEBAIFJlbmRlclNWR1Jvb3Q6OlJl
bmRlclNWR1Jvb3QoU1ZHU3R5bGVkRWxlbWVudCogbm9kZSkKICAgICAsIG1fb2JqZWN0Qm91bmRp
bmdCb3hWYWxpZChmYWxzZSkKICAgICAsIG1faXNMYXlvdXRTaXplQ2hhbmdlZChmYWxzZSkKICAg
ICAsIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKKyAgICAsIG1faGFz
U1ZHU2hhZG93KGZhbHNlKQogewogfQogCkBAIC0zODUsMTMgKzM4NiwxMyBAQCB2b2lkIFJlbmRl
clNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDbwogICAgIC8vIGFuZCB0aGVuIGNhbGwgUmVuZGVyQm94J3MgbWV0aG9kIHRv
IGhhbmRsZSBhbGwgdGhlIG5vcm1hbCBDU1MgQm94IG1vZGVsIGJpdHMKICAgICByZXBhaW50UmVj
dCA9IG1fbG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybS5tYXBSZWN0KHJlcGFpbnRSZWN0KTsKIAot
ICAgIC8vIEFwcGx5IGluaXRpYWwgdmlld3BvcnQgY2xpcCAtIG5vdCBhZmZlY3RlZCBieSBvdmVy
ZmxvdyBzZXR0aW5ncyAgICAKLSAgICByZXBhaW50UmVjdC5pbnRlcnNlY3QocGl4ZWxTbmFwcGVk
Qm9yZGVyQm94UmVjdCgpKTsKLQogICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9
IHN0eWxlKCktPnN2Z1N0eWxlKCk7CiAgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9
IHN2Z1N0eWxlLT5zaGFkb3coKSkKICAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93
KHJlcGFpbnRSZWN0KTsKIAorICAgIC8vIEFwcGx5IGluaXRpYWwgdmlld3BvcnQgY2xpcCAtIG5v
dCBhZmZlY3RlZCBieSBvdmVyZmxvdyBzZXR0aW5ncworICAgIHJlcGFpbnRSZWN0LmludGVyc2Vj
dChwaXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkpOworCiAgICAgTGF5b3V0UmVjdCByZWN0ID0g
ZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCk7CiAgICAgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZWN0LCBmaXhlZCk7CiAgICAgcmVw
YWludFJlY3QgPSByZWN0OwpAQCAtNDE1LDkgKzQxNiwxMiBAQCBjb25zdCBSZW5kZXJPYmplY3Qq
IFJlbmRlclNWR1Jvb3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbAogCiB2b2lkIFJlbmRlclNWR1Jvb3Q6OnVwZGF0ZUNhY2hlZEJvdW5kYXJpZXMoKQogewot
ICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVDb250YWluZXJCb3VuZGluZ0JveGVzKHRoaXMs
IG1fb2JqZWN0Qm91bmRpbmdCb3gsIG1fb2JqZWN0Qm91bmRpbmdCb3hWYWxpZCwgbV9zdHJva2VC
b3VuZGluZ0JveCwgbV9yZXBhaW50Qm91bmRpbmdCb3gpOwotICAgIFNWR1JlbmRlclN1cHBvcnQ6
OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGlu
Z0JveCk7Ci0gICAgbV9yZXBhaW50Qm91bmRpbmdCb3guaW5mbGF0ZShib3JkZXJBbmRQYWRkaW5n
V2lkdGgoKSk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUNvbnRhaW5lckJvdW5kaW5n
Qm94ZXModGhpcywgbV9vYmplY3RCb3VuZGluZ0JveCwgbV9vYmplY3RCb3VuZGluZ0JveFZhbGlk
LCBtX3N0cm9rZUJvdW5kaW5nQm94LCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRv
dyk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3Vy
Y2VzKHRoaXMsIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93KTsKKyAgICBtX3Jl
cGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdy5pbmZsYXRlKGJvcmRlckFuZFBhZGRpbmdX
aWR0aCgpKTsKKworICAgIG1fcmVwYWludEJvdW5kaW5nQm94ID0gbV9yZXBhaW50Qm91bmRpbmdC
b3hFeGNsdWRpbmdTaGFkb3c7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWlu
dFJlY3RXaXRoU2hhZG93cyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7CiB9CiAKIGJvb2wg
UmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3Qs
IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbklu
Q29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RB
Y3Rpb24gaGl0VGVzdEFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmgKaW5kZXggMWUxMTJhMS4uMTNkNzhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY3LDYgKzY3LDkgQEAgcHVibGljOgog
ICAgIC8vIG1ldGhvZCBkdXJpbmcgbGF5b3V0IHdoZW4gdGhleSBhcmUgaW52YWxpZGF0ZWQgYnkg
YSBmaWx0ZXIuCiAgICAgc3RhdGljIHZvaWQgYWRkUmVzb3VyY2VGb3JDbGllbnRJbnZhbGlkYXRp
b24oUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqKTsKIAorICAgIGJvb2wgaGFzU1ZHU2hhZG93
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTVkdTaGFkb3c7IH0KKyAgICB2b2lkIHNldEhhc1NWR1No
YWRvdyhib29sIGhhc1NoYWRvdykgeyBtX2hhc1NWR1NoYWRvdyA9IGhhc1NoYWRvdzsgfQorCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRy
ZW4oKSB7IHJldHVybiBjaGlsZHJlbigpOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmpl
Y3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGNoaWxkcmVuKCk7
IH0KQEAgLTkzLDYgKzk2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmpl
Y3RCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0Qm91bmRpbmdCb3g7IH0KICAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3Ryb2tlQm91bmRpbmdCb3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdElu
TG9jYWxDb29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94OyB9
CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNs
dWRpbmdTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1
ZGluZ1NoYWRvdzsgfQogCiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRp
b25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRU
ZXN0QWN0aW9uKSBPVkVSUklERTsKIApAQCAtMTE0LDExICsxMTgsMTMgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fb2JqZWN0Qm91bmRpbmdCb3hWYWxpZDsKICAgICBGbG9hdFJlY3QgbV9zdHJva2VC
b3VuZGluZ0JveDsKICAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdCb3g7CisgICAgRmxv
YXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OwogICAgIG11dGFibGUg
QWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUb1BhcmVudFRyYW5zZm9ybTsKICAgICBBZmZpbmVUcmFu
c2Zvcm0gbV9sb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtOwogICAgIEhhc2hTZXQ8UmVuZGVyU1ZH
UmVzb3VyY2VDb250YWluZXIqPiBtX3Jlc291cmNlc05lZWRpbmdUb0ludmFsaWRhdGVDbGllbnRz
OwogICAgIGJvb2wgbV9pc0xheW91dFNpemVDaGFuZ2VkIDogMTsKICAgICBib29sIG1fbmVlZHNC
b3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUgOiAxOworICAgIGJvb2wgbV9oYXNTVkdTaGFkb3cg
OiAxOwogfTsKIAogaW5saW5lIFJlbmRlclNWR1Jvb3QqIHRvUmVuZGVyU1ZHUm9vdChSZW5kZXJP
YmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdTaGFwZS5jcHAKaW5kZXggNWRjZWFjMy4uMDE5MjY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTQwNyw4ICs0MDcsMTEgQEAg
RmxvYXRSZWN0IFJlbmRlclNWR1NoYXBlOjpjYWxjdWxhdGVTdHJva2VCb3VuZGluZ0JveCgpIGNv
bnN0CiAKIHZvaWQgUmVuZGVyU1ZHU2hhcGU6OnVwZGF0ZVJlcGFpbnRCb3VuZGluZ0JveCgpCiB7
Ci0gICAgbV9yZXBhaW50Qm91bmRpbmdCb3ggPSBzdHJva2VCb3VuZGluZ0JveCgpOwotICAgIFNW
R1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBt
X3JlcGFpbnRCb3VuZGluZ0JveCk7CisgICAgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdT
aGFkb3cgPSBzdHJva2VCb3VuZGluZ0JveCgpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVy
c2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4
Y2x1ZGluZ1NoYWRvdyk7CisKKyAgICBtX3JlcGFpbnRCb3VuZGluZ0JveCA9IG1fcmVwYWludEJv
dW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OworICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2Vj
dFJlcGFpbnRSZWN0V2l0aFNoYWRvd3ModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOwogfQog
CiBmbG9hdCBSZW5kZXJTVkdTaGFwZTo6c3Ryb2tlV2lkdGgoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCmluZGV4IDQ3OTZlOGMuLjYwYTJk
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgK
QEAgLTEwNCw2ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3Ryb2tlQ29udGFpbnMoY29u
c3QgRmxvYXRQb2ludCYsIGJvb2wgcmVxdWlyZXNTdHJva2UgPSB0cnVlKTsKIAogICAgIHZpcnR1
YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1
cm4gbV9yZXBhaW50Qm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50
UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OyB9CiAgICAgdmly
dHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSBjb25z
dCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zv
cm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CiAK
QEAgLTEzNSw2ICsxMzYsNyBAQCBwcml2YXRlOgogCiBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBt
X3JlcGFpbnRCb3VuZGluZ0JveDsKKyAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdCb3hF
eGNsdWRpbmdTaGFkb3c7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUcmFuc2Zvcm07CiAg
ICAgT3duUHRyPFBhdGg+IG1fcGF0aDsKICAgICBWZWN0b3I8TWFya2VyUG9zaXRpb24+IG1fbWFy
a2VyUG9zaXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAKaW5kZXggNjk3YTQzOS4uZTZkODM4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCkBAIC00Niw2ICs0Niwx
NiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0Zsb2F0UmVjdCBTVkdSZW5kZXJTdXBwb3J0
OjpyZXBhaW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hh
ZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIC8vIEZJWE1FOiBBZGQgc3Vw
cG9ydCBmb3IgUmVuZGVyU1ZHQmxvY2suCisKKyAgICBpZiAob2JqZWN0LT5pc1NWR1NoYXBlKCkg
fHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkgfHwgb2JqZWN0LT5pc1NWR0NvbnRhaW5lcigpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHTW9kZWxPYmplY3QqPihvYmpl
Y3QpLT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpOwor
CisgICAgcmV0dXJuIG9iamVjdC0+cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKK30K
KwogTGF5b3V0UmVjdCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lcikKIHsKICAgICAvLyBSZXR1cm4gZWFybHkgZm9yIGFueSBjYXNlcyB3
aGVyZSB3ZSBkb24ndCBhY3R1YWxseSBwYWludApAQCAtNTQsNyArNjQsMTAgQEAgTGF5b3V0UmVj
dCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBS
ZW5kZXJPYmplY3QqIG8KIAogICAgIC8vIFBhc3Mgb3VyIGxvY2FsIHBhaW50IHJlY3QgdG8gY29t
cHV0ZVJlY3RGb3JSZXBhaW50KCkgd2hpY2ggd2lsbAogICAgIC8vIG1hcCB0byBwYXJlbnQgY29v
cmRzIGFuZCByZWN1cnNlIHVwIHRoZSBwYXJlbnQgY2hhaW4uCi0gICAgRmxvYXRSZWN0IHJlcGFp
bnRSZWN0ID0gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpOworICAgIEZs
b2F0UmVjdCByZXBhaW50UmVjdCA9IHJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxvY2FsQ29vcmRp
bmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cob2JqZWN0KTsKKyAgICBjb25zdCBTVkdSZW5kZXJTdHls
ZSogc3ZnU3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxlKCk7CisgICAgaWYgKGNvbnN0
IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKKyAgICAgICAgc2hhZG93
LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKICAgICBvYmplY3QtPmNvbXB1dGVG
bG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0KTsKICAgICBy
ZXR1cm4gZW5jbG9zaW5nTGF5b3V0UmVjdChyZXBhaW50UmVjdCk7CiB9CkBAIC0yNzgsMjMgKzI5
MSw3MyBAQCBib29sIFNWR1JlbmRlclN1cHBvcnQ6OmlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVu
ZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIG9iamVjdC0+c3R5bGUoKS0+b3ZlcmZsb3dY
KCkgPT0gT0hJRERFTjsKIH0KIAotdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBh
aW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZsb2F0UmVj
dCYgcmVwYWludFJlY3QpCitib29sIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hh
ZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIC8vIEZJWE1FOiBBZGQgc3Vw
cG9ydCBmb3IgUmVuZGVyU1ZHQmxvY2suCisKKyAgICBpZiAob2JqZWN0LT5pc1NWR1NoYXBlKCkg
fHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkgfHwgb2JqZWN0LT5pc1NWR0NvbnRhaW5lcigpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHTW9kZWxPYmplY3QqPihvYmpl
Y3QpLT5oYXNTVkdTaGFkb3coKTsKKworICAgIGlmIChvYmplY3QtPmlzU1ZHUm9vdCgpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHUm9vdCo+KG9iamVjdCktPmhh
c1NWR1NoYWRvdygpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFNWR1JlbmRlclN1
cHBvcnQ6OnNldFJlbmRlcmVySGFzU1ZHU2hhZG93KFJlbmRlck9iamVjdCogb2JqZWN0LCBib29s
IGhhc1NoYWRvdykKK3sKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFJlbmRlclNWR0Js
b2NrLgorCisgICAgaWYgKG9iamVjdC0+aXNTVkdTaGFwZSgpIHx8IG9iamVjdC0+aXNTVkdJbWFn
ZSgpIHx8IG9iamVjdC0+aXNTVkdDb250YWluZXIoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlbmRlclNWR01vZGVsT2JqZWN0Kj4ob2JqZWN0KS0+c2V0SGFzU1ZHU2hhZG93KGhhc1No
YWRvdyk7CisKKyAgICBpZiAob2JqZWN0LT5pc1NWR1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFJlbmRlclNWR1Jvb3QqPihvYmplY3QpLT5zZXRIYXNTVkdTaGFkb3coaGFzU2hh
ZG93KTsKK30KKwordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdp
dGhTaGFkb3dzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9hdFJlY3QmIHJlcGFpbnRS
ZWN0KQogeworICAgIC8vIFNpbmNlIC13ZWJraXQtc3ZnLXNoYWRvdyBlbmFibGVzIHNoYWRvdyBk
cmF3aW5nIGZvciBpdHMgY2hpbGRyZW4sIGJ1dCBpdHMgY2hpbGRyZW4KKyAgICAvLyBkb24ndCBp
bmhlcml0IHRoZSBzaGFkb3cgaW4gdGhlaXIgU1ZHUmVuZGVyU3R5bGUsIHdlIG5lZWQgdG8gc2Vh
cmNoIG91ciBwYXJlbnRzIGZvcgorICAgIC8vIHNoYWRvd3MgaW4gb3JkZXIgdG8gY29ycmVjdGx5
IGNvbXB1dGUgb3VyIHJlcGFpbnQgcmVjdC4KKwogICAgIEFTU0VSVChvYmplY3QpOwogCi0gICAg
UmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOwotICAgIEFTU0VSVChzdHlsZSk7
CisgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyZW50T2JqZWN0ID0gb2JqZWN0OwogCi0gICAg
Y29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2Z1N0eWxlKCk7Ci0gICAg
QVNTRVJUKHN2Z1N0eWxlKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUb1Jvb3RUcmFuc2Zv
cm07CisKKyAgICB3aGlsZSAoY3VycmVudE9iamVjdCAmJiByZW5kZXJlckhhc1NWR1NoYWRvdyhj
dXJyZW50T2JqZWN0KSkgeworICAgICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBjdXJyZW50T2Jq
ZWN0LT5zdHlsZSgpOworICAgICAgICBBU1NFUlQoc3R5bGUpOworCisgICAgICAgIGNvbnN0IFNW
R1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxlLT5zdmdTdHlsZSgpOworICAgICAgICBBU1NF
UlQoc3ZnU3R5bGUpOwogCi0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvbnN0X2Nhc3Q8
UmVuZGVyT2JqZWN0Kj4ob2JqZWN0KTsKLSAgICBTVkdSZXNvdXJjZXMqIHJlc291cmNlcyA9IFNW
R1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJPYmplY3QocmVuZGVyZXIp
OwotICAgIGlmICghcmVzb3VyY2VzKSB7CiAgICAgICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBz
aGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCiAgICAgICAgICAgICBzaGFkb3ctPmFkanVzdFJl
Y3RGb3JTaGFkb3cocmVwYWludFJlY3QpOworCisgICAgICAgIHJlcGFpbnRSZWN0ID0gY3VycmVu
dE9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLm1hcFJlY3QocmVwYWludFJlY3QpOwor
ICAgICAgICBsb2NhbFRvUm9vdFRyYW5zZm9ybSAqPSBjdXJyZW50T2JqZWN0LT5sb2NhbFRvUGFy
ZW50VHJhbnNmb3JtKCk7CisKKyAgICAgICAgY3VycmVudE9iamVjdCA9IGN1cnJlbnRPYmplY3Qt
PnBhcmVudCgpOworICAgIH07CisKKyAgICBpZiAobG9jYWxUb1Jvb3RUcmFuc2Zvcm0uaXNJZGVu
dGl0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcm9vdFRvTG9j
YWxUcmFuc2Zvcm0gPSBsb2NhbFRvUm9vdFRyYW5zZm9ybS5pbnZlcnNlKCk7CisgICAgcmVwYWlu
dFJlY3QgPSByb290VG9Mb2NhbFRyYW5zZm9ybS5tYXBSZWN0KHJlcGFpbnRSZWN0KTsKK30KKwor
dm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMo
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QpCit7Cisg
ICAgQVNTRVJUKG9iamVjdCk7CisKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29uc3Rf
Y2FzdDxSZW5kZXJPYmplY3QqPihvYmplY3QpOworICAgIFNWR1Jlc291cmNlcyogcmVzb3VyY2Vz
ID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJlbmRlck9iamVjdChyZW5k
ZXJlcik7CisgICAgaWYgKCFyZXNvdXJjZXMpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKICNp
ZiBFTkFCTEUoRklMVEVSUykKICAgICBpZiAoUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIqIGZpbHRl
ciA9IHJlc291cmNlcy0+ZmlsdGVyKCkpCkBAIC0zMDYsOSArMzY5LDYgQEAgdm9pZCBTVkdSZW5k
ZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVy
T2JqZWN0KiBvYmoKIAogICAgIGlmIChSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciogbWFza2VyID0g
cmVzb3VyY2VzLT5tYXNrZXIoKSkKICAgICAgICAgcmVwYWludFJlY3QuaW50ZXJzZWN0KG1hc2tl
ci0+cmVzb3VyY2VCb3VuZGluZ0JveChyZW5kZXJlcikpOwotCi0gICAgaWYgKGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKLSAgICAgICAgc2hhZG93LT5hZGp1
c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKIH0KIAogYm9vbCBTVkdSZW5kZXJTdXBwb3J0
OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCmluZGV4IDMy
ODZmOGYuLjVlOGY5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5oCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXIg
ZnVuY3Rpb24gZGV0ZXJtaW5pbmcgd2hldGVyIG92ZXJmbG93IGlzIGhpZGRlbgogICAgIHN0YXRp
YyBib29sIGlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKKyAgICBzdGF0
aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKGNvbnN0IFJlbmRlck9iamVj
dCosIEZsb2F0UmVjdCYpOworCiAgICAgLy8gQ2FsY3VsYXRlcyB0aGUgcmVwYWludFJlY3QgaW4g
Y29tYmluYXRpb24gd2l0aCBmaWx0ZXIsIGNsaXBwZXIgYW5kIG1hc2tlciBpbiBsb2NhbCBjb29y
ZGluYXRlcy4KICAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJj
ZXMoY29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CiAKQEAgLTYzLDYgKzY1LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBib29sIHBhaW50SW5mb0ludGVyc2VjdHNSZXBhaW50UmVjdChj
b25zdCBGbG9hdFJlY3QmIGxvY2FsUmVwYWludFJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
bG9jYWxUcmFuc2Zvcm0sIGNvbnN0IFBhaW50SW5mbyYpOwogCiAgICAgLy8gSW1wb3J0YW50IGZ1
bmN0aW9ucyB1c2VkIGJ5IG5lYXJseSBhbGwgU1ZHIHJlbmRlcmVycyBjZW50cmFsaXppbmcgY29v
cmRpbmF0ZSB0cmFuc2Zvcm1hdGlvbnMgLyByZXBhaW50IHJlY3QgY2FsY3VsYXRpb25zCisgICAg
c3RhdGljIEZsb2F0UmVjdCByZXBhaW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5hdGVz
RXhjbHVkaW5nU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCopOwogICAgIHN0YXRpYyBMYXlv
dXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVjdCos
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpOwogICAgIHN0YXRpYyB2
b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVjdCosIFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4
ZWQpOwogICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0KiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gdHJ1ZSwgYm9vbCogd2FzRml4
ZWQgPSAwKTsKQEAgLTc0LDYgKzc3LDEwIEBAIHB1YmxpYzoKICAgICAvLyBEZXRlcm1pbmVzIGlm
IGFueSBhbmNlc3RvcidzIHRyYW5zZm9ybSBoYXMgY2hhbmdlZC4KICAgICBzdGF0aWMgYm9vbCB0
cmFuc2Zvcm1Ub1Jvb3RDaGFuZ2VkKFJlbmRlck9iamVjdCopOwogCisgICAgLy8gSGVscGVyIGZ1
bmN0aW9ucyB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgYSByZW5kZXJlciBoYXMgYW4gU1ZHIHNo
YWRvdyBhcHBsaWVkLgorICAgIHN0YXRpYyBib29sIHJlbmRlcmVySGFzU1ZHU2hhZG93KGNvbnN0
IFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIHNldFJlbmRlcmVySGFzU1ZHU2hhZG93
KFJlbmRlck9iamVjdCosIGJvb2wgaGFzU2hhZG93KTsKKwogICAgIC8vIEZJWE1FOiBUaGVzZSBt
ZXRob2RzIGRvIG5vdCBiZWxvbmcgaGVyZS4KICAgICBzdGF0aWMgY29uc3QgUmVuZGVyU1ZHUm9v
dCogZmluZFRyZWVSb290T2JqZWN0KGNvbnN0IFJlbmRlck9iamVjdCopOwogCg==
</data>
<flag name="commit-queue"
          id="187136"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172853</attachid>
            <date>2012-11-07 11:55:08 -0800</date>
            <delta_ts>2012-11-07 12:43:52 -0800</delta_ts>
            <desc>patch</desc>
            <filename>shadow.diff</filename>
            <type>text/plain</type>
            <size>47584</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODlmZmM3Li43NjQ5ZmQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMTEt
MDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVw
YWludCBpc3N1ZXMgd2l0aCAtd2Via2l0LXN2Zy1zaGFkb3cgdXNlZCBvbiBhIGNvbnRhaW5lcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NDMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MDA1MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zOiBNYXJrIHRlc3RzIGFzIG5lZWRpbmcgcmViYXNlbGluZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9uczogTWFyayB0ZXN0cyBhcyBuZWVkaW5nIHJlYmFzZWxpbmUu
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmsgdGVzdHMgYXMg
bmVlZGluZyByZWJhc2VsaW5lLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnM6IE1hcmsgdGVzdHMgYXMgbmVlZGluZyByZWJhc2VsaW5lLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgt
c2hhZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21w
b3NpdGUtc2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNoYW5nZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRv
dWJsZS1zaGFkb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIE1hYyByZXN1bHRz
IGR1ZSB0byB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHN2Zy9jc3MvcGFyZW50LXNoYWRvdy1v
ZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3NzL3BhcmVudC1z
aGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQg
ZW5zdXJlcyB0aGF0IDxnPiB3aXRoIC13ZWJraXQtc3ZnLXNoYWRvdyBhcHBsaWVkIGRyYXdzIHdo
ZW4gY2hpbGRyZW4gYXJlIG9mZnNjcmVlbiBidXQgdGhlIHNoYWRvdyBpcyBub3QuCisKKyAgICAg
ICAgKiBzdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5zdmc6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAg
ICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IDxzdmc+IHdpdGggLXdlYmtpdC1z
dmctc2hhZG93IGFwcGxpZWQgZHJhd3Mgd2hlbiBjaGlsZHJlbiBhcmUgb2Zmc2NyZWVuIGJ1dCB0
aGUgc2hhZG93IGlzIG5vdC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvcmVwYWludC9y
ZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICog
c3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnOiBB
ZGRlZC4KKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdGhhdCBlbnN1cmVzIHRoYXQgU1ZHIGVsZW1l
bnRzIHdpdGggLXdlYmtpdC1zdmctc2hhZG93IGFyZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQuCisK
IDIwMTItMTEtMDcgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtRdF0gVGV4dCBvbiBzY2FsZWQgbGF5ZXIgaXMgYmx1cnJ5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYmJkZWJiLi5lZjRmNTkw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEzODUsNiArMTM4NSwxNyBAQCB3ZWJraXQub3JnL2IvODUxMDcgc3ZnL2FzLWltYWdlL2Fu
aW1hdGVkLXN2Zy1hcy1pbWFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYQogCiB3ZWJraXQu
b3JnL2IvOTM1ODkgc3ZnL2RvbS9TVkdTY3JpcHRFbGVtZW50L3NjcmlwdC1jaGFuZ2UtZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC13aGlsZS1sb2FkaW5nLnN2ZyBbIEZhaWx1cmUgUGFzcyBUaW1l
b3V0IF0KIAorIyBUaGVzZSB0ZXN0cyBuZWVkIHRvIGJlIHJlYmFzZWxpbmVkIGFmdGVyIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTY0Mword2Via2l0Lm9yZy9iLzEw
MTM5NiBzdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcv
cmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5
NiBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhhbXBsZS5odG1sCit3ZWJraXQub3JnL2IvMTAx
Mzk2IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13aXRoLW9wYWNpdHkuaHRtbAord2Via2l0Lm9y
Zy9iLzEwMTM5NiBmYXN0L3JlcGFpbnQvbW92aW5nLXNoYWRvdy1vbi1jb250YWluZXIuaHRtbAor
d2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctdGV4dC5zdmcKK3dl
YmtpdC5vcmcvYi8xMDEzOTYgc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LnN2
Zword2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LnN2Zwor
d2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LnN2ZworCiAjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAjIEVuZCBTVkcgVEVTVFMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYWQ5OWVhMy4uZDY2Y2U5YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2NTEsNiArMTY1MSwxNyBAQCB3
ZWJraXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3VzZXItdGltaW5nIFsgU2tpcCBdCiAjIFJlZ3Jlc3Npb24gYWZ0ZXIgcjEzMTY0MC4KIHdlYmtp
dC5vcmcvYi85OTY5MSBnYW1lcGFkL2dhbWVwYWQtb3V0LW9mLXJhbmdlLWNyYXNoZXIuaHRtbCBb
IEZhaWx1cmUgXQogCisjIFRoZXNlIHRlc3RzIG5lZWQgdG8gYmUgcmViYXNlbGluZWQgYWZ0ZXIg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQzCit3ZWJraXQub3Jn
L2IvMTAxNDAwIHN2Zy9jc3Mvc2hhZG93LWNoYW5nZXMuc3ZnCit3ZWJraXQub3JnL2IvMTAxNDAw
IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnCit3ZWJraXQub3JnL2Iv
MTAxNDAwIHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0bWwKK3dlYmtpdC5vcmcv
Yi8xMDE0MDAgc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS5odG1sCit3ZWJr
aXQub3JnL2IvMTAxNDAwIGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5o
dG1sCit3ZWJraXQub3JnL2IvMTAxNDAwIHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy10ZXh0LnN2
Zword2Via2l0Lm9yZy9iLzEwMTQwMCBzdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFk
b3cuc3ZnCit3ZWJraXQub3JnL2IvMTAxNDAwIHN2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3cu
c3ZnCit3ZWJraXQub3JnL2IvMTAxNDAwIHN2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3cuc3ZnCisK
ICMgUmVzb3VyY2UgVGltaW5nIGlzIG5vdCBlbmFibGUgeWV0LCBza2lwIGl0Lgogd2Via2l0Lm9y
Zy9iLzYxMTM4IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJj
ZS10aW1pbmcgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBjOGQ1ZjI1Li45OTUxMzA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM2OSw2ICsxMzY5LDE3IEBAIHdlYmtpdC5vcmcvYi85ODYx
MiBbIFJlbGVhc2UgXSBmYXN0L2RvbS9nYy1kb20tdHJlZS1saWZldGltZS5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvOTg2MTMgY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2Ut
dXNlclNwYWNlT25Vc2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4
NjEzIGNzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNlLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIAorIyBUaGVzZSB0ZXN0cyBuZWVkIHRvIGJlIHJlYmFzZWxpbmVkIGFmdGVyIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTY0Mword2Via2l0Lm9yZy9iLzEw
MTM5OCBzdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLnN2Zword2Via2l0Lm9yZy9iLzEwMTM5OCBzdmcv
cmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5
OCBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhhbXBsZS5odG1sCit3ZWJraXQub3JnL2IvMTAx
Mzk4IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13aXRoLW9wYWNpdHkuaHRtbAord2Via2l0Lm9y
Zy9iLzEwMTM5OCBmYXN0L3JlcGFpbnQvbW92aW5nLXNoYWRvdy1vbi1jb250YWluZXIuaHRtbAor
d2Via2l0Lm9yZy9iLzEwMTM5OCBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctdGV4dC5zdmcKK3dl
YmtpdC5vcmcvYi8xMDEzOTggc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LnN2
Zword2Via2l0Lm9yZy9iLzEwMTM5OCBzdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LnN2Zwor
d2Via2l0Lm9yZy9iLzEwMTM5OCBzdmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LnN2ZworCiAjIFJl
cXVpcmVzIHJlYmFzZWxpbmluZyBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE2NDUKIHdlYmtpdC5vcmcvYi8xMTY0NSBmYXN0L3RhYmxlLzAyNS5odG1sIFsg
RmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Jl
cGFpbnQvbW92aW5nLXNoYWRvdy1vbi1jb250YWluZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1l
eHBlY3RlZC50eHQKaW5kZXggOWM1YTU1Mi4uM2ZhZThlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9t
b3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgNzg1eDYxNgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKLSAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30g
YXQgKDgsOCkgc2l6ZSA0Njh4MTczCisgICAgICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg4LDgp
IHNpemUgNDg4eDE5MwogICAgICAgICBSZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoOCw4KSBzaXpl
IDc4eDY4IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0
aD0xMC4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJN
IDEuODM2OTdlLTE1IDMwIEwgLTM1LjI2NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01
Ny4wNjM0IC0xOC41NDEgTCAtMTcuNjMzNiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAx
Ny42MzM2IC0yNC4yNzA1IEwgNTcuMDYzNCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUu
MjY3MSA0OC41NDEgWiJdCiAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgyMDAsNDYp
IHNpemUgMTI4eDEyNSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgy
NTAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0
cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2ggYXJyYXk9ezIwLjAwfV19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1LjI2NzEg
NDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcuNjMzNiAt
MjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcuMDYzNCAt
MTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJdCiAgICAgICAgIFJl
bmRlclNWR1BhdGgge3BhdGh9IGF0ICgzNDksNDYpIHNpemUgMTE3eDEyMiBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0MDAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2ggYXJy
YXk9ezIwLjAwfV19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRh
PSJNIDEuNTMwODFlLTE1IDI1IEwgLTI5LjM4OTMgNDAuNDUwOSBMIC0yMy43NzY0IDcuNzI1NDIg
TCAtNDcuNTUyOCAtMTUuNDUwOCBMIC0xNC42OTQ2IC0yMC4yMjU0IEwgLTkuMTg0ODVlLTE1IC01
MCBMIDE0LjY5NDYgLTIwLjIyNTQgTCA0Ny41NTI4IC0xNS40NTA4IEwgMjMuNzc2NCA3LjcyNTQy
IEwgMjkuMzg5MyA0MC40NTA5IFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4
IGIwZjQ1ODMuLmQ3MDE4Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTIs
NiArMiw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDc5LDIzKSBzaXplIDYwNXg0MTQKLSAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICg3OSwyMykgc2l6ZSA2Mzh4NDQ3IFt0cmFuc2Zvcm09e209KCgyLjAwLDAuMDAp
KDAuMDAsMi4wMCkpIHQ9KDAuMDAsMC4wMCl9XQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHth
fSBhdCAoNzksMjMpIHNpemUgNjA1eDQxNAorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDc5LDIzKSBzaXplIDY3MXg0ODAgW3RyYW5zZm9ybT17bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAw
KSkgdD0oMC4wMCwwLjAwKX1dCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2F9IGF0ICg3OSwy
Mykgc2l6ZSA2Mzh4NDQ3CiAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICg3OSwyMykg
c2l6ZSA2MDV4NDE0IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl0gW3N0cm9r
ZSB3aWR0aD0yMC4wMF19XSBbZGF0YT0iTSAxODUgNDAgTCA4NSA0MCBMIDg1IDI4IEwgNDAgNjQg
TCA4NSAxMDAgTCA4NSA4OCBMIDE4NSA4OCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LWV4cGVj
dGVkLnR4dAppbmRleCAyZTYzNjlhLi4xMjllNmMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jbGlwcGF0aC13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ct
ZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDExIEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMjAweDIwMAor
ICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMjEweDIwMAogICAgIFJlbmRlclNW
R1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMjAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9
MjAwLjAwXQogICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMjAweDIwMCBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgtMjAwLjAwLDAuMDApfV0g
W3g9MjAwLjAwXSBbeT0wLjAwXSBbd2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4wMF0KICAgICBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIge2NsaXBQYXRofSBbaWQ9ImNsaXAiXSBbY2xpcFBhdGhV
bml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAo
MCwwKSBzaXplIDIxMHgyMTAKKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMCww
KSBzaXplIDIyMHgyMjAKICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6
ZSAyMTB4MjEwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KC0yMDAu
MDAsMC4wMCl9XSBbeD0yMDAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAw
LjAwXQotICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMjAweDIwMCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0
aD00MDAuMDBdIFtoZWlnaHQ9MjAwLjAwXQotICAgICAgW2NsaXBQYXRoPSJjbGlwIl0gUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyIHtjbGlwUGF0aH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgICAg
UmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMTB4MjAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTQwMC4wMF0g
W2hlaWdodD0yMDAuMDBdCisgICAgICBbY2xpcFBhdGg9ImNsaXAiXSBSZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIge2NsaXBQYXRofSBhdCAoMCwwKSBzaXplIDIxMHgyMTAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhhbXBsZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUt
c2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0CmluZGV4IDUyNzBmNzAuLjUyODFmMWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ct
ZXhhbXBsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9j
c3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLWV4cGVjdGVkLnR4dApAQCAtMywxMCArMywxMCBA
QCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDYx
NgogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3Njl4NjAwCi0gICAgICBSZW5kZXJTVkdSb290IHtz
dmd9IGF0ICg0MCwzNikgc2l6ZSA0MzZ4MTUwCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDQwLDM2KSBzaXplIDE0NngxNDAKKyAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQg
KDQwLDM2KSBzaXplIDQ1NngxNzAKKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
NDAsMzYpIHNpemUgMTU2eDE1MAogICAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICg0
MCwzNikgc2l6ZSAxNDZ4MTQwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDEwMC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XSBbc3Ryb2tlIHdpZHRoPTEwLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5
OTldfV0gW2RhdGE9Ik0gMS44MzY5N2UtMTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAtMjguNTMx
NyA5LjI3MDUxIEwgLTU3LjA2MzQgLTE4LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwgLTEuMTAy
MThlLTE0IC02MCBMIDE3LjYzMzYgLTI0LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAyOC41MzE3
IDkuMjcwNTEgTCAzNS4yNjcxIDQ4LjU0MSBaIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEyOHgxMjUKKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEzOHgxMzUKICAgICAgICAgICBSZW5kZXJTVkdQYXRoIHtw
YXRofSBhdCAoMjAwLDQ2KSBzaXplIDEyOHgxMjUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMjUwLjAwLDEwMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9MTAuMDBdIFtkYXNoIGFycmF5PXsyMC4wMH1dfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5OTk5OV19XSBbZGF0YT0iTSAxLjgzNjk3ZS0x
NSAzMCBMIC0zNS4yNjcxIDQ4LjU0MSBMIC0yOC41MzE3IDkuMjcwNTEgTCAtNTcuMDYzNCAtMTgu
NTQxIEwgLTE3LjYzMzYgLTI0LjI3MDUgTCAtMS4xMDIxOGUtMTQgLTYwIEwgMTcuNjMzNiAtMjQu
MjcwNSBMIDU3LjA2MzQgLTE4LjU0MSBMIDI4LjUzMTcgOS4yNzA1MSBMIDM1LjI2NzEgNDguNTQx
IFoiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYpIHNpemUgMTE3
eDEyMgorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYpIHNpemUgMTI3
eDEzMgogICAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgzNDksNDYpIHNpemUgMTE3
eDEyMiBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0MDAuMDAsMTAw
LjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0
aD0xMC4wMF0gW2Rhc2ggYXJyYXk9ezIwLjAwfV19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuNTMwODFlLTE1IDI1IEwgLTI5LjM4OTMgNDAuNDUwOSBM
IC0yMy43NzY0IDcuNzI1NDIgTCAtNDcuNTUyOCAtMTUuNDUwOCBMIC0xNC42OTQ2IC0yMC4yMjU0
IEwgLTkuMTg0ODVlLTE1IC01MCBMIDE0LjY5NDYgLTIwLjIyNTQgTCA0Ny41NTI4IC0xNS40NTA4
IEwgMjMuNzc2NCA3LjcyNTQyIEwgMjkuMzg5MyA0MC40NTA5IFoiXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13aXRoLW9wYWNp
dHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9z
aXRlLXNoYWRvdy13aXRoLW9wYWNpdHktZXhwZWN0ZWQudHh0CmluZGV4IGMxYjFlYjUuLjZiYWNk
MzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0
ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS1leHBlY3RlZC50
eHQKQEAgLTQsMTAgKzQsMTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKIGxheWVyIGF0ICg4LDgpIHNpemUgNzY5eDYwMAotICBS
ZW5kZXJTVkdSb290IHtzdmd9IGF0ICg0MCwzNikgc2l6ZSA0MzZ4MTUwIFtvcGFjaXR5PTAuNTBd
Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDAsMzYpIHNpemUgMTQ2eDE0MAorICBS
ZW5kZXJTVkdSb290IHtzdmd9IGF0ICg0MCwzNikgc2l6ZSA0NTZ4MTcwIFtvcGFjaXR5PTAuNTBd
CisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDAsMzYpIHNpemUgMTU2eDE1MAogICAg
ICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDQwLDM2KSBzaXplIDE0NngxNDAgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAwLDEwMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9MTAuMDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5OTk5OV19XSBbZGF0YT0iTSAxLjgzNjk3ZS0xNSAz
MCBMIC0zNS4yNjcxIDQ4LjU0MSBMIC0yOC41MzE3IDkuMjcwNTEgTCAtNTcuMDYzNCAtMTguNTQx
IEwgLTE3LjYzMzYgLTI0LjI3MDUgTCAtMS4xMDIxOGUtMTQgLTYwIEwgMTcuNjMzNiAtMjQuMjcw
NSBMIDU3LjA2MzQgLTE4LjU0MSBMIDI4LjUzMTcgOS4yNzA1MSBMIDM1LjI2NzEgNDguNTQxIFoi
XQotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIwMCw0Nikgc2l6ZSAxMjh4MTI1Cisg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEzOHgxMzUKICAgICAg
IFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgyMDAsNDYpIHNpemUgMTI4eDEyNSBbdHJhbnNmb3Jt
PXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyNTAuMDAsMTAwLjAwKX1dIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2gg
YXJyYXk9ezIwLjAwfV19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtk
YXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1LjI2NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1
MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcuNjMzNiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAt
NjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcuMDYzNCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUx
IEwgMzUuMjY3MSA0OC41NDEgWiJdCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzQ5
LDQ2KSBzaXplIDExN3gxMjIKKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYp
IHNpemUgMTI3eDEzMgogICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDM0OSw0Nikgc2l6
ZSAxMTd4MTIyIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwMC4w
MCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tl
IHdpZHRoPTEwLjAwXSBbZGFzaCBhcnJheT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS41MzA4MWUtMTUgMjUgTCAtMjkuMzg5MyA0MC40
NTA5IEwgLTIzLjc3NjQgNy43MjU0MiBMIC00Ny41NTI4IC0xNS40NTA4IEwgLTE0LjY5NDYgLTIw
LjIyNTQgTCAtOS4xODQ4NWUtMTUgLTUwIEwgMTQuNjk0NiAtMjAuMjI1NCBMIDQ3LjU1MjggLTE1
LjQ1MDggTCAyMy43NzY0IDcuNzI1NDIgTCAyOS4zODkzIDQwLjQ1MDkgWiJdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNo
YWRvdy1leHBlY3RlZC50eHQKaW5kZXggZGE1YzY2NS4uMjU3MmQ3NCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvZ3JvdXAtd2l0aC1zaGFkb3ctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hh
ZG93LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDMwLDMxKSBzaXplIDMwMHgz
MTkKLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMCwzMSkgc2l6ZSAzMzR4MzUzIFt0
cmFuc2Zvcm09e209KCgyLjAwLDAuMDApKDAuMDAsMi4wMCkpIHQ9KDAuMDAsMC4wMCl9XQorICBS
ZW5kZXJTVkdSb290IHtzdmd9IGF0ICgzMCwzMSkgc2l6ZSAyODl4Mjg2CisgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMzAsMzEpIHNpemUgMzU1eDM1MyBbdHJhbnNmb3JtPXttPSgoMi4w
MCwwLjAwKSgwLjAwLDIuMDApKSB0PSgwLjAwLDAuMDApfV0KICAgICAgIFJlbmRlclNWR1BhdGgg
e2xpbmV9IGF0ICgzMywzMSkgc2l6ZSAyODR4MzggW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jODAwMDgwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW3gxPTEw
LjAwXSBbeTE9MTAuMDBdIFt4Mj04NS4wMF0gW3kyPTEwLjAwXQogICAgICAgUmVuZGVyU1ZHUmVj
dCB7cmVjdH0gYXQgKDMxLDY1KSBzaXplIDI4OHgyMDQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jODAwMDgwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDAwODBdfV0gW3g9
MTAuMDBdIFt5PTIwLjAwXSBbd2lkdGg9NzUuMDBdIFtoZWlnaHQ9NTAuMDBdCiAgICAgICBSZW5k
ZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsNzUpIHNpemUgNzh4MTkgY29udGFpbnMgMSBjaHVuayhz
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNo
YW5nZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hh
ZG93LWNoYW5nZXMtZXhwZWN0ZWQudHh0CmluZGV4IDcxMzM4MmEuLjA4MDAzZjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hh
bmdlcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgxMzUsNSkgc2l6ZSAzMjZ4
Mjg1Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTIwLDApIHNpemUgMzQxeDI5MAor
ICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgxNDYsMTYpIHNpemUgMzE1eDI4OAorICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDExNiwwKSBzaXplIDM0NXgzMDQKICAgICAgIFJlbmRlclNW
R1JlY3Qge3JlY3R9IGF0ICgxMzUsNSkgc2l6ZSAyMTV4MjE1IFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNGRjAwMDBdfV0gW3g9MTUwLjAwXSBbeT0yMC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hl
aWdodD0yMDAuMDBdCiAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICgyMDUsNzUp
IHNpemUgMjE1eDIxNSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtjeD0z
MjAuMDBdIFtjeT0xOTAuMDBdIFtyPTEwMC4wMF0KICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9
IGF0ICgyNzAsMzYpIHNpemUgMTkxeDEwNyBjb250YWlucyAxIGNodW5rKHMpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUt
c2hhZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4IDNmMDg3MzEuLjk0
MjFhNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Np
bXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhwZWN0ZWQu
dHh0CkBAIC0xLDcgKzEsNyBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAsMjYpIHNpemUgMzgweDE5NAorICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgyMCwyNikgc2l6ZSA0ODB4Mjk0CiAgICAgUmVuZGVyU1ZHVGV4dCB7
dGV4dH0gYXQgKDIwLDI2KSBzaXplIDIxN3gxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICBS
ZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMTd4MTgKICAgICAgICAg
Y2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMC4wMCw0MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZz
ZXQgMzQgd2lkdGggMjE3LjAwOiAiVGhpcyB0ZXh0IHNob3VsZCBhcHBlYXIgb25seSB0d2ljZSIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvcmVwYWludC9yZXBhaW50
LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnBuZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWUzZjA3CkJpbmFyeSBmaWxlcyAvZGV2
L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9yZXBhaW50L3JlcGFpbnQt
d2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjg1OTUyZS4uZWNjOTgzYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzgzLDYgKzIzODMsMTcgQEAgd2Vi
a2l0Lm9yZy9iLzEwMDg0NiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXItdGVybWluYXRlLWRl
ZGljYXRlZC13b3JrZXItd2hpbGUKICMgTmV3LCBidXQgZmFpbGluZyB0ZXN0CiB3ZWJraXQub3Jn
L2IvMTAxMDM1IGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQuaHRt
bAogCisjIFRoZXNlIHRlc3RzIG5lZWQgdG8gYmUgcmViYXNlbGluZWQgYWZ0ZXIgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQzCit3ZWJraXQub3JnL2IvMTAxMzk3
IHN2Zy9jc3Mvc2hhZG93LWNoYW5nZXMuc3ZnCit3ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9yZXBh
aW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnCit3ZWJraXQub3JnL2IvMTAxMzk3IHN2
Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDEzOTcg
c3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS5odG1sCit3ZWJraXQub3JnL2Iv
MTAxMzk3IGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sCit3ZWJr
aXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy10ZXh0LnN2Zword2Via2l0
Lm9yZy9iLzEwMTM5NyBzdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3cuc3ZnCit3
ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3cuc3ZnCit3ZWJr
aXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3cuc3ZnCisKICMgRmFpbHMg
YWZ0ZXIgdGVzdCByZWZhY3RvcmluZywgbWF5YmUgcmViYXNlbGluZSBuZWVkZWQKIHdlYmtpdC5v
cmcvYi85ODUyMyBmYXN0L2ltYWdlcy9yZXBhaW50LXN1YnJlY3QtZ3JpZC5odG1sCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3MvbWFzay13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdmcvY3NzL21hc2std2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4
IGUyNjlkMzMuLmRiMWQ4MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9jc3MvbWFzay13
aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9tYXNrLXdp
dGgtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA0NTB4NTAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDUsNSkgc2l6ZSAy
MTB4MjEwCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNSw1KSBzaXplIDIxMHgyMTAK
KyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoNSw1KSBzaXplIDIyMHgyMjAKKyAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICg1LDUpIHNpemUgMjIweDIyMAogICAgICAgUmVuZGVyU1ZHSGlk
ZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJTVkdS
ZXNvdXJjZUxpbmVhckdyYWRpZW50IHtsaW5lYXJHcmFkaWVudH0gW2lkPSJtYXNrZWRHcmFkaWVu
dCJdIFtncmFkaWVudFVuaXRzPW9iamVjdEJvdW5kaW5nQm94XSBbc3RhcnQ9KDAsMCldIFtlbmQ9
KDEsMSldCiAgICAgICAgICAgUmVuZGVyU1ZHR3JhZGllbnRTdG9wIHtzdG9wfSBbb2Zmc2V0PTAu
MDBdIFtjb2xvcj0jMDAwMEZGXQpAQCAtMTMsNyArMTMsNyBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDQ1MHg1MDAKICAgICAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICg1LDExNSkg
c2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2N4PTU1
LjAwXSBbY3k9MTY1LjAwXSBbcj01MC4wMF0KICAgICAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtj
aXJjbGV9IGF0ICgxMTUsNSkgc2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkZGRkZdfV0gW2N4PTE2NS4wMF0gW2N5PTU1LjAwXSBbcj01MC4wMF0KICAgICAgICAgICBS
ZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICgxMTUsMTE1KSBzaXplIDExMHgxMTAgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbY3g9MTY1LjAwXSBbY3k9MTY1LjAwXSBb
cj01MC4wMF0KLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDUsNSkgc2l6ZSAyMTB4
MjEwCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNSw1KSBzaXplIDIxMHgy
MTAKLSAgICAgICAgICBbbWFza2VyPSJtYXNrXzEiXSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciB7
bWFza30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICg1LDUpIHNpemUgMjIweDIyMAorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0g
YXQgKDUsNSkgc2l6ZSAyMjB4MjIwCisgICAgICAgICAgW21hc2tlcj0ibWFza18xIl0gUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICg1LDUpIHNpemUgMjIweDIyMAogICAgICAgICAg
IFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMzAweDMwMCBbZmlsbD17W3R5cGU9
TElORUFSLUdSQURJRU5UXSBbaWQ9Im1hc2tlZEdyYWRpZW50Il19XSBbeD0wLjAwXSBbeT0wLjAw
XSBbd2lkdGg9MzAwLjAwXSBbaGVpZ2h0PTMwMC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnIGIvTGF5b3V0VGVz
dHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5zdmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc1ZDNhMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnCkBA
IC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgor
PHRpdGxlPkV4cGVjdGVkIHJlc3VsdHMgZm9yIHBhcmVudC1zaGFkb3ctb2Zmc2NyZWVuLnN2Zzwv
dGl0bGU+Cis8cmVjdCBpZD0icmVjdCIgZmlsbD0id2hpdGUiIHN0eWxlPSItd2Via2l0LXN2Zy1z
aGFkb3c6ICMwMDAgMTAwcHggMTAwcHggNXB4IiB4PSIwIiB5PSIwIiB3aWR0aD0iNzUiIGhlaWdo
dD0iNzUiPjwvcmVjdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9w
YXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcmVudC1z
aGFkb3ctb2Zmc2NyZWVuLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i
N2I3YjFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hh
ZG93LW9mZnNjcmVlbi5zdmcKQEAgLTAsMCArMSw2IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyI+Cis8dGl0bGU+VGVzdCBwYXNzZXMgaWYgdGhlIHNoYWRvdyBpcyBk
cmF3bi48L3RpdGxlPgorPGcgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogIzAwMCAyMDBweCAy
MDBweCA1cHgiPgorPHJlY3QgaWQ9InJlY3QiIHg9Ii0xMDAiIHk9Ii0xMDAiIHdpZHRoPSI3NSIg
aGVpZ2h0PSI3NSI+PC9yZWN0PgorPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5zdmcgYi9MYXlvdXRUZXN0
cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5zdmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM2NGYxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLWV4cGVjdGVkLnN2ZwpAQCAtMCww
ICsxLDQgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzx0aXRs
ZT5FeHBlY3RlZCByZXN1bHRzIGZvciByb290LXNoYWRvdy1vZmZzY3JlZW4uc3ZnPC90aXRsZT4K
KzxyZWN0IGlkPSJyZWN0IiBmaWxsPSJ3aGl0ZSIgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzog
IzAwMCAxMDBweCAxMDBweCA1cHgiIHg9IjAiIHk9IjAiIHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+
PC9yZWN0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hh
ZG93LW9mZnNjcmVlbi5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNj
cmVlbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVkMWIxMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVu
LnN2ZwpAQCAtMCwwICsxLDQgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIiBzdHlsZT0iLXdlYmtpdC1zdmctc2hhZG93OiAjMDAwIDIwMHB4IDIwMHB4IDVweCI+Cis8
dGl0bGU+VGVzdCBwYXNzZXMgaWYgdGhlIHNoYWRvdyBpcyBkcmF3bi48L3RpdGxlPgorPHJlY3Qg
aWQ9InJlY3QiIHg9Ii0xMDAiIHk9Ii0xMDAiIHdpZHRoPSI3NSIgaGVpZ2h0PSI3NSI+PC9yZWN0
PgorPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdl
YmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3Jl
cGFpbnQtd2Via2l0LXN2Zy1zaGFkb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmY5OTk3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDEyMCwwKSBzaXplIDQ1MHg1MjAKKyAgICBSZW5kZXJTVkdSZWN0IHty
ZWN0fSBhdCAoMTUwLDEwMCkgc2l6ZSAxMjB4MTIwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDAp
KDAuMDAsMS4wMCkpIHQ9KDE1MC4wMCw1MC4wMCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMDAwXX1dIFt4PTAuMDBdIFt5PTUwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAu
MDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDEyMCwwKSBzaXplIDEyMHgxMjAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbeD0xMjAuMDBdIFt5PTAuMDBdIFt3
aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9y
ZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL3Jl
cGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZmExYTE1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2
Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnCkBAIC0wLDAgKzEsMTIgQEAK
KzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgc3R5bGU9Ii13ZWJraXQtc3ZnLXNoYWRvdzogMTAw
cHggMTAwcHggMHB4ICNhYWE7IiBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCkiPgorICAgIDx0aXRs
ZT5UZXN0IHBhc3NlcyBpZiBmb3VyIHJlY3RhbmdsZXMgYXJlIGRyYXduIGFmdGVyIHRoZSBhbmlt
YXRpb24uPC90aXRsZT4KKyAgICA8cmVjdCBpZD0iYSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB4
PSIwIiB5PSI1MCIgZmlsbD0iYmxhY2siIC8+CisgICAgPHJlY3QgaWQ9ImIiIHdpZHRoPSIyMCIg
aGVpZ2h0PSIyMCIgeD0iMTIwIiB5PSIwIiBmaWxsPSJibGFjayIgLz4KKyAgICA8c2NyaXB0IHhs
aW5rOmhyZWY9Ii4uLy4uL2Zhc3QvcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcyIvPgorICAg
IDxzY3JpcHQ+CisgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOwor
ICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgi
dHJhbnNmb3JtIiwgInRyYW5zbGF0ZSgxNTAsIDUwKSIpCisgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOWUwZjcwYS4uZWQ2MjBhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY0IEBACisyMDEyLTExLTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJlcGFpbnQgaXNzdWVzIHdpdGggLXdlYmtpdC1zdmctc2hhZG93IHVz
ZWQgb24gYSBjb250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY1NjQzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjAwNTMyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWRyByZW5kZXJlciBy
ZXBhaW50IHJlY3RzIGFyZSBjdXJyZW50bHkgZXhwYW5kZWQgb25seSBieSB0aGUgc2hhZG93IG9m
CisgICAgICAgIHRoZSByZW5kZXJlciBpdHNlbGY7IGhvd2V2ZXIsIHRoZSBhcmVhIHRoZXkgbmVl
ZCB0byByZXBhaW50IGNhbiBiZSBsYXJnZXIKKyAgICAgICAgdGhhbiB0aGF0LCBpZiB0aGVpciBw
YXJlbnRzIGFsc28gaGF2ZSBzaGFkb3dzLiBXZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50Cisg
ICAgICAgIHBhcmVudCdzIHNoYWRvd3MgKHJlc3BlY3RpbmcgdHJhbnNmb3JtcywgYXMgd2VsbCku
CisKKyAgICAgICAgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQgYWxyZWFkeSByZWN1cnNl
cyB1cHdhcmRzIHRocm91Z2ggdGhlIHJlbmRlciB0cmVlLAorICAgICAgICBhbmQgZW5kcyB1cCB3
aXRoIGEgcmVjdCBpbiBsYXlvdXQgY29vcmRpbmF0ZXMsIHNvIHdlIG1hbnVhbGx5IGFwcGx5IHRo
ZSBzaGFkb3cKKyAgICAgICAgYXQgZWFjaCBzdGVwIChyZXBhaW50UmVjdEluTG9jYWxDb29yZGlu
YXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyB3YXMgYWRkZWQgdG8gYWxsb3cKKyAgICAgICAgdXMgdG8g
Z2V0IHRoZSByYXcgcmVwYWludCByZWN0IHdpdGhvdXQgdGhlIHNoYWRvdyBiYWtlZC1pbikuCisK
KyAgICAgICAgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMgbm93IGluY2x1ZGVzIHNoYWRv
d3MgZnJvbSBhbGwgcGFyZW50cy4KKworICAgICAgICBBbHNvLCBSZW5kZXJTVkdSb290IHdhcyBj
bGlwcGluZyByZXBhaW50IHJlY3RzIHRvIHRoZSB2aWV3cG9ydCBiZWZvcmUgYXBwbHlpbmcKKyAg
ICAgICAgc2hhZG93cywgc28gb2Zmc2NyZWVuIGVsZW1lbnRzIHdpdGggb24tc2NyZWVuIHNoYWRv
d3MgKGFwcGxpZWQgYnkgdGhlIHJvb3QpIHdvdWxkIG5vdCBwYWludCB0aGUgc2hhZG93cy4KKyAg
ICAgICAgV2UgY2FuIGp1c3Qgc3dhcCB0aGUgb3JkZXIgb2YgdGhlc2UgdGhpbmdzIHRvIGNvcnJl
Y3QgdGhpcy4KKworICAgICAgICBUZXN0czogc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVl
bi5zdmcsIHN2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2Zywgc3ZnL3JlcGFpbnQvcmVw
YWludC13ZWJraXQtc3ZnLXNoYWRvdy5zdmcKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphZGRDaGlsZCk6IE1h
cmsgdGhlIGNoaWxkIGJlaW5nIGFkZGVkIGFzIGhhdmluZyBhbiBTVkcgc2hhZG93IGlmIGl0IGlz
IGJlaW5nIGFkZGVkIGFzIGEgY2hpbGQgb2YgYW4gZWxlbWVudCB0aGF0IGRvZXMuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKTogTWFyayB0aGUgY2hpbGQg
YmVpbmcgYWRkZWQgYXMgaGF2aW5nIGFuIFNWRyBzaGFkb3cgaWYgaXRzIG5ldyBzdHlsZSBoYXMg
YSBzaGFkb3cuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6bGF5b3V0KTogQ2FjaGUgdGhlIHJlcGFp
bnQgcmVjdCBiZWZvcmUgaW50ZXJzZWN0aW5nIGl0IHdpdGggdGhlIHNoYWRvdy4KKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbWFnZTo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFk
b3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBhaW50IHJlY3QgZm9yIHRoZSByZW5kZXJlciB3aXRo
b3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVj
dDo6UmVuZGVyU1ZHTW9kZWxPYmplY3QpOiBSZW5kZXJlcnMgZG8gbm90IGhhdmUgYSBzaGFkb3cg
YnkgZGVmYXVsdC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6cmVwYWludFJlY3RJ
bkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cpOiBSZXR1cm4gdGhlIGNhY2hlZCBy
ZXBhaW50IHJlY3QgZm9yIHRoZSByZW5kZXJlciB3aXRob3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6aGFzU1ZHU2hhZG93KTog
UmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMgYSBzaGFkb3cuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6c2V0SGFzU1ZHU2hhZG93KTogU2V0IHdo
ZXRoZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMgYSBzaGFkb3cuCisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jv
b3Q6OlJlbmRlclNWR1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y29t
cHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQpOiBBcHBseSB0aGUgc2hhZG93IGJlZm9yZSBjbGlwcGlu
ZyB0byB0aGUgdmlld3BvcnQsIHNvIHdlIGRyYXcgc2hhZG93cyBmb3IgZWxlbWVudHMgb3V0c2lk
ZSB0aGUgdmlld3BvcnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojp1cGRhdGVD
YWNoZWRCb3VuZGFyaWVzKTogQ2FjaGUgdGhlIHJlcGFpbnQgcmVjdCBiZWZvcmUgaW50ZXJzZWN0
aW5nIGl0IHdpdGggdGhlIHNoYWRvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6Omhhc1NWR1NoYWRvdyk6
IFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGUgcmVuZGVyZXIgaGFzIGEgc2hhZG93LgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6c2V0SGFzU1ZHU2hhZG93KTogU2V0IHdoZXRoZXIg
b3Igbm90IHRoZSByZW5kZXJlciBoYXMgYSBzaGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdSb290OjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRv
dyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFpbnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhv
dXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjp1cGRhdGVSZXBh
aW50Qm91bmRpbmdCb3gpOiBDYWNoZSB0aGUgcmVwYWludCByZWN0IGJlZm9yZSBpbnRlcnNlY3Rp
bmcgaXQgd2l0aCB0aGUgc2hhZG93LgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
U2hhcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpyZXBhaW50UmVjdElu
TG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyk6IFJldHVybiB0aGUgY2FjaGVkIHJl
cGFpbnQgcmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhvdXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6cmVwYWludFJlY3RGb3JSZW5kZXJlckluTG9jYWxD
b29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyk6IFJldHVybiB0aGUgY2FjaGVkIHJlcGFpbnQg
cmVjdCBmb3IgdGhlIHJlbmRlcmVyIHdpdGhvdXQgdGhlIHNoYWRvdyBpbmNsdWRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KTogQXBwbHkgc2hhZG93cyBhcyB3ZSB3YWxrIHRocm91Z2ggb3VyIHBhcmVudHMsIGluc3Rl
YWQgb2Ygb25seSBhcHBseWluZyB0aGUgcmVuZGVyZXIncyBvd24gc2hhZG93LgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6cmVuZGVyZXJIYXNTVkdTaGFkb3cpOiBSZXR1cm4g
d2hldGhlciBvciBub3QgdGhlIHJlbmRlcmVyIGhhcyBhIHNoYWRvdy4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlbmRlclN1cHBvcnQ6OnNldFJlbmRlcmVySGFzU1ZHU2hhZG93KTogU2V0IHdoZXRo
ZXIgb3Igbm90IHRoZSByZW5kZXJlciBoYXMgYSBzaGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpT
VkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKTogV2FsayB0
aHJvdWdoIHRoZSBlbGVtZW50J3MgcGFyZW50cywgYWRkaW5nIHNoYWRvd3MgdG8gdGhlIHJlcGFp
bnQgcmVjdCBhcyB3ZSBnbywgZXZlbnR1YWxseQorICAgICAgICB0cmFuc2Zvcm1pbmcgdGhlIHJl
cGFpbnQgcmVjdCBiYWNrIGludG8gbG9jYWwgY29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMpOiBE
b24ndCBhZGQgc2hhZG93cyBieSBkZWZhdWx0LCBqdXN0IG90aGVyIHJlc291cmNlcywgc28gdGhh
dCB3ZSBjYW4gY2FjaGUgcmVwYWludCByZWN0cyB3aXRoIGFuZCB3aXRob3V0IHNoYWRvd3MuCisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisKIDIwMTItMTEtMDcg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBbVjhdIFdlIHNob3Vs
ZCBoaWRlIHRoZSBET01XcmFwcGVyTWFwcyBpbnNpZGUgRE9NRGF0YVN0b3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDc0ZTUwNjYuLjUzNzNkZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yODQsNiArMjg0
LDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogICAgIGlmICghY2hpbGRyZW4pCiAgICAgICAg
IHJldHVybjsKIAorI2lmIEVOQUJMRShTVkcpCisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVu
ZGVyZXJIYXNTVkdTaGFkb3cobmV3Q2hpbGQsIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFz
U1ZHU2hhZG93KHRoaXMpIHx8IFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hhZG93
KG5ld0NoaWxkKSk7CisjZW5kaWYKKwogICAgIGJvb2wgbmVlZHNUYWJsZSA9IGZhbHNlOwogCiAg
ICAgaWYgKG5ld0NoaWxkLT5pc1JlbmRlclRhYmxlQ29sKCkpIHsKQEAgLTE5MTUsNiArMTkxOSwx
MCBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdAogICAgIGlmIChzX2FmZmVjdHNQYXJlbnRCbG9j
aykKICAgICAgICAgaGFuZGxlRHluYW1pY0Zsb2F0UG9zaXRpb25DaGFuZ2UoKTsKIAorI2lmIEVO
QUJMRShTVkcpCisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0UmVuZGVyZXJIYXNTVkdTaGFkb3co
dGhpcywgKG1fcGFyZW50ICYmIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hhZG93
KG1fcGFyZW50KSkgfHwgKHN0eWxlKCktPnN2Z1N0eWxlKCkgJiYgc3R5bGUoKS0+c3ZnU3R5bGUo
KS0+c2hhZG93KCkpKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX3BhcmVudCkKICAgICAgICAgcmV0
dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lt
YWdlLmNwcAppbmRleCA0Nzk0N2UxLi42NjFiMTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcApAQCAtOTIsOCArOTIsMTIgQEAgdm9pZCBS
ZW5kZXJTVkdJbWFnZTo6bGF5b3V0KCkKICAgICB9CiAKICAgICBpZiAobV9uZWVkc0JvdW5kYXJp
ZXNVcGRhdGUpIHsKLSAgICAgICAgbV9yZXBhaW50Qm91bmRpbmdCb3ggPSBtX29iamVjdEJvdW5k
aW5nQm94OwotICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdp
dGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOworICAgICAgICBtX3JlcGFp
bnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyA9IG1fb2JqZWN0Qm91bmRpbmdCb3g7CisgICAg
ICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0
aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdyk7CisKKyAgICAgICAgbV9y
ZXBhaW50Qm91bmRpbmdCb3ggPSBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsK
KyAgICAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93
cyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7CisKICAgICAgICAgbV9uZWVkc0JvdW5kYXJp
ZXNVcGRhdGUgPSBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW1hZ2UuaAppbmRleCA5Y2QzZWVhLi45MDVhOGQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCkBAIC01Nyw2ICs1Nyw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25z
dCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qg
c3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9
CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBj
b25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveDsgfQorICAgIHZpcnR1YWwgRmxvYXRS
ZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4m
LCBjb25zdCBMYXlvdXRQb2ludCYpOwogCkBAIC03NSw2ICs3Niw3IEBAIHByaXZhdGU6CiAgICAg
QWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUcmFuc2Zvcm07CiAgICAgRmxvYXRSZWN0IG1fb2JqZWN0
Qm91bmRpbmdCb3g7CiAgICAgRmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94OworICAgIEZs
b2F0UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsKICAgICBPd25QdHI8
UmVuZGVySW1hZ2VSZXNvdXJjZT4gbV9pbWFnZVJlc291cmNlOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRl
eCA3YmRjZDc0Li44Mzg2Njc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcApAQCAtNDMsNiArNDMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR01vZGVsT2JqZWN0OjpSZW5kZXJTVkdNb2RlbE9iamVj
dChTVkdTdHlsZWRFbGVtZW50KiBub2RlKQogICAgIDogUmVuZGVyT2JqZWN0KG5vZGUpCisgICAg
LCBtX2hhc1NWR1NoYWRvdyhmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCmluZGV4IDBjNGVjNWIuLmE2NDM2
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmgKQEAgLTY2LDYgKzY2LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBj
aGVja0ludGVyc2VjdGlvbihSZW5kZXJPYmplY3QqLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICBz
dGF0aWMgYm9vbCBjaGVja0VuY2xvc3VyZShSZW5kZXJPYmplY3QqLCBjb25zdCBGbG9hdFJlY3Qm
KTsKIAorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVz
RXhjbHVkaW5nU1ZHU2hhZG93KCkgY29uc3QgeyByZXR1cm4gcmVwYWludFJlY3RJbkxvY2FsQ29v
cmRpbmF0ZXMoKTsgfQorICAgIGJvb2wgaGFzU1ZHU2hhZG93KCkgY29uc3QgeyByZXR1cm4gbV9o
YXNTVkdTaGFkb3c7IH0KKyAgICB2b2lkIHNldEhhc1NWR1NoYWRvdyhib29sIGhhc1NoYWRvdykg
eyBtX2hhc1NWR1NoYWRvdyA9IGhhc1NoYWRvdzsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogCkBAIC03Myw2ICs3Nyw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCwgU1ZHIHVzZXMgYSBkaWZm
ZXJlbnQgbm9kZUF0UG9pbnQgbWV0aG9kCiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRU
ZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0
aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0
VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlRm9jdXNSaW5n
UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mKTsKKyAgICBib29sIG1faGFzU1ZHU2hhZG93OwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
b290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAK
aW5kZXggMjczM2FlNC4uNTU1ZDUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC02MCw2ICs2MCw3IEBAIFJlbmRlclNWR1Jvb3Q6OlJl
bmRlclNWR1Jvb3QoU1ZHU3R5bGVkRWxlbWVudCogbm9kZSkKICAgICAsIG1fb2JqZWN0Qm91bmRp
bmdCb3hWYWxpZChmYWxzZSkKICAgICAsIG1faXNMYXlvdXRTaXplQ2hhbmdlZChmYWxzZSkKICAg
ICAsIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKKyAgICAsIG1faGFz
U1ZHU2hhZG93KGZhbHNlKQogewogfQogCkBAIC0zODUsMTMgKzM4NiwxMyBAQCB2b2lkIFJlbmRl
clNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDbwogICAgIC8vIGFuZCB0aGVuIGNhbGwgUmVuZGVyQm94J3MgbWV0aG9kIHRv
IGhhbmRsZSBhbGwgdGhlIG5vcm1hbCBDU1MgQm94IG1vZGVsIGJpdHMKICAgICByZXBhaW50UmVj
dCA9IG1fbG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybS5tYXBSZWN0KHJlcGFpbnRSZWN0KTsKIAot
ICAgIC8vIEFwcGx5IGluaXRpYWwgdmlld3BvcnQgY2xpcCAtIG5vdCBhZmZlY3RlZCBieSBvdmVy
ZmxvdyBzZXR0aW5ncyAgICAKLSAgICByZXBhaW50UmVjdC5pbnRlcnNlY3QocGl4ZWxTbmFwcGVk
Qm9yZGVyQm94UmVjdCgpKTsKLQogICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9
IHN0eWxlKCktPnN2Z1N0eWxlKCk7CiAgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9
IHN2Z1N0eWxlLT5zaGFkb3coKSkKICAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93
KHJlcGFpbnRSZWN0KTsKIAorICAgIC8vIEFwcGx5IGluaXRpYWwgdmlld3BvcnQgY2xpcCAtIG5v
dCBhZmZlY3RlZCBieSBvdmVyZmxvdyBzZXR0aW5ncworICAgIHJlcGFpbnRSZWN0LmludGVyc2Vj
dChwaXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkpOworCiAgICAgTGF5b3V0UmVjdCByZWN0ID0g
ZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCk7CiAgICAgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZWN0LCBmaXhlZCk7CiAgICAgcmVw
YWludFJlY3QgPSByZWN0OwpAQCAtNDE1LDkgKzQxNiwxMiBAQCBjb25zdCBSZW5kZXJPYmplY3Qq
IFJlbmRlclNWR1Jvb3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbAogCiB2b2lkIFJlbmRlclNWR1Jvb3Q6OnVwZGF0ZUNhY2hlZEJvdW5kYXJpZXMoKQogewot
ICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVDb250YWluZXJCb3VuZGluZ0JveGVzKHRoaXMs
IG1fb2JqZWN0Qm91bmRpbmdCb3gsIG1fb2JqZWN0Qm91bmRpbmdCb3hWYWxpZCwgbV9zdHJva2VC
b3VuZGluZ0JveCwgbV9yZXBhaW50Qm91bmRpbmdCb3gpOwotICAgIFNWR1JlbmRlclN1cHBvcnQ6
OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGlu
Z0JveCk7Ci0gICAgbV9yZXBhaW50Qm91bmRpbmdCb3guaW5mbGF0ZShib3JkZXJBbmRQYWRkaW5n
V2lkdGgoKSk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUNvbnRhaW5lckJvdW5kaW5n
Qm94ZXModGhpcywgbV9vYmplY3RCb3VuZGluZ0JveCwgbV9vYmplY3RCb3VuZGluZ0JveFZhbGlk
LCBtX3N0cm9rZUJvdW5kaW5nQm94LCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRv
dyk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3Vy
Y2VzKHRoaXMsIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93KTsKKyAgICBtX3Jl
cGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdy5pbmZsYXRlKGJvcmRlckFuZFBhZGRpbmdX
aWR0aCgpKTsKKworICAgIG1fcmVwYWludEJvdW5kaW5nQm94ID0gbV9yZXBhaW50Qm91bmRpbmdC
b3hFeGNsdWRpbmdTaGFkb3c7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWlu
dFJlY3RXaXRoU2hhZG93cyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveCk7CiB9CiAKIGJvb2wg
UmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3Qs
IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbklu
Q29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RB
Y3Rpb24gaGl0VGVzdEFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmgKaW5kZXggMWUxMTJhMS4uMTNkNzhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY3LDYgKzY3LDkgQEAgcHVibGljOgog
ICAgIC8vIG1ldGhvZCBkdXJpbmcgbGF5b3V0IHdoZW4gdGhleSBhcmUgaW52YWxpZGF0ZWQgYnkg
YSBmaWx0ZXIuCiAgICAgc3RhdGljIHZvaWQgYWRkUmVzb3VyY2VGb3JDbGllbnRJbnZhbGlkYXRp
b24oUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqKTsKIAorICAgIGJvb2wgaGFzU1ZHU2hhZG93
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTVkdTaGFkb3c7IH0KKyAgICB2b2lkIHNldEhhc1NWR1No
YWRvdyhib29sIGhhc1NoYWRvdykgeyBtX2hhc1NWR1NoYWRvdyA9IGhhc1NoYWRvdzsgfQorCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRy
ZW4oKSB7IHJldHVybiBjaGlsZHJlbigpOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmpl
Y3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGNoaWxkcmVuKCk7
IH0KQEAgLTkzLDYgKzk2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmpl
Y3RCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0Qm91bmRpbmdCb3g7IH0KICAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3Ryb2tlQm91bmRpbmdCb3g7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdElu
TG9jYWxDb29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94OyB9
CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNs
dWRpbmdTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1
ZGluZ1NoYWRvdzsgfQogCiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRp
b25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRU
ZXN0QWN0aW9uKSBPVkVSUklERTsKIApAQCAtMTE0LDExICsxMTgsMTMgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fb2JqZWN0Qm91bmRpbmdCb3hWYWxpZDsKICAgICBGbG9hdFJlY3QgbV9zdHJva2VC
b3VuZGluZ0JveDsKICAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdCb3g7CisgICAgRmxv
YXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OwogICAgIG11dGFibGUg
QWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUb1BhcmVudFRyYW5zZm9ybTsKICAgICBBZmZpbmVUcmFu
c2Zvcm0gbV9sb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtOwogICAgIEhhc2hTZXQ8UmVuZGVyU1ZH
UmVzb3VyY2VDb250YWluZXIqPiBtX3Jlc291cmNlc05lZWRpbmdUb0ludmFsaWRhdGVDbGllbnRz
OwogICAgIGJvb2wgbV9pc0xheW91dFNpemVDaGFuZ2VkIDogMTsKICAgICBib29sIG1fbmVlZHNC
b3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUgOiAxOworICAgIGJvb2wgbV9oYXNTVkdTaGFkb3cg
OiAxOwogfTsKIAogaW5saW5lIFJlbmRlclNWR1Jvb3QqIHRvUmVuZGVyU1ZHUm9vdChSZW5kZXJP
YmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdTaGFwZS5jcHAKaW5kZXggNWRjZWFjMy4uMDE5MjY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKQEAgLTQwNyw4ICs0MDcsMTEgQEAg
RmxvYXRSZWN0IFJlbmRlclNWR1NoYXBlOjpjYWxjdWxhdGVTdHJva2VCb3VuZGluZ0JveCgpIGNv
bnN0CiAKIHZvaWQgUmVuZGVyU1ZHU2hhcGU6OnVwZGF0ZVJlcGFpbnRCb3VuZGluZ0JveCgpCiB7
Ci0gICAgbV9yZXBhaW50Qm91bmRpbmdCb3ggPSBzdHJva2VCb3VuZGluZ0JveCgpOwotICAgIFNW
R1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBt
X3JlcGFpbnRCb3VuZGluZ0JveCk7CisgICAgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdT
aGFkb3cgPSBzdHJva2VCb3VuZGluZ0JveCgpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVy
c2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGluZ0JveEV4
Y2x1ZGluZ1NoYWRvdyk7CisKKyAgICBtX3JlcGFpbnRCb3VuZGluZ0JveCA9IG1fcmVwYWludEJv
dW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OworICAgIFNWR1JlbmRlclN1cHBvcnQ6OmludGVyc2Vj
dFJlcGFpbnRSZWN0V2l0aFNoYWRvd3ModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOwogfQog
CiBmbG9hdCBSZW5kZXJTVkdTaGFwZTo6c3Ryb2tlV2lkdGgoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCmluZGV4IDQ3OTZlOGMuLjYwYTJk
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgK
QEAgLTEwNCw2ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3Ryb2tlQ29udGFpbnMoY29u
c3QgRmxvYXRQb2ludCYsIGJvb2wgcmVxdWlyZXNTdHJva2UgPSB0cnVlKTsKIAogICAgIHZpcnR1
YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1
cm4gbV9yZXBhaW50Qm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50
UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OyB9CiAgICAgdmly
dHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSBjb25z
dCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zv
cm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CiAK
QEAgLTEzNSw2ICsxMzYsNyBAQCBwcml2YXRlOgogCiBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBt
X3JlcGFpbnRCb3VuZGluZ0JveDsKKyAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdCb3hF
eGNsdWRpbmdTaGFkb3c7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUcmFuc2Zvcm07CiAg
ICAgT3duUHRyPFBhdGg+IG1fcGF0aDsKICAgICBWZWN0b3I8TWFya2VyUG9zaXRpb24+IG1fbWFy
a2VyUG9zaXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAKaW5kZXggNjk3YTQzOS4uZTZkODM4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCkBAIC00Niw2ICs0Niwx
NiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0Zsb2F0UmVjdCBTVkdSZW5kZXJTdXBwb3J0
OjpyZXBhaW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hh
ZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIC8vIEZJWE1FOiBBZGQgc3Vw
cG9ydCBmb3IgUmVuZGVyU1ZHQmxvY2suCisKKyAgICBpZiAob2JqZWN0LT5pc1NWR1NoYXBlKCkg
fHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkgfHwgb2JqZWN0LT5pc1NWR0NvbnRhaW5lcigpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHTW9kZWxPYmplY3QqPihvYmpl
Y3QpLT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpOwor
CisgICAgcmV0dXJuIG9iamVjdC0+cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKK30K
KwogTGF5b3V0UmVjdCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lcikKIHsKICAgICAvLyBSZXR1cm4gZWFybHkgZm9yIGFueSBjYXNlcyB3
aGVyZSB3ZSBkb24ndCBhY3R1YWxseSBwYWludApAQCAtNTQsNyArNjQsMTAgQEAgTGF5b3V0UmVj
dCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBS
ZW5kZXJPYmplY3QqIG8KIAogICAgIC8vIFBhc3Mgb3VyIGxvY2FsIHBhaW50IHJlY3QgdG8gY29t
cHV0ZVJlY3RGb3JSZXBhaW50KCkgd2hpY2ggd2lsbAogICAgIC8vIG1hcCB0byBwYXJlbnQgY29v
cmRzIGFuZCByZWN1cnNlIHVwIHRoZSBwYXJlbnQgY2hhaW4uCi0gICAgRmxvYXRSZWN0IHJlcGFp
bnRSZWN0ID0gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpOworICAgIEZs
b2F0UmVjdCByZXBhaW50UmVjdCA9IHJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxvY2FsQ29vcmRp
bmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cob2JqZWN0KTsKKyAgICBjb25zdCBTVkdSZW5kZXJTdHls
ZSogc3ZnU3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxlKCk7CisgICAgaWYgKGNvbnN0
IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKKyAgICAgICAgc2hhZG93
LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKICAgICBvYmplY3QtPmNvbXB1dGVG
bG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0KTsKICAgICBy
ZXR1cm4gZW5jbG9zaW5nTGF5b3V0UmVjdChyZXBhaW50UmVjdCk7CiB9CkBAIC0yNzgsMjMgKzI5
MSw3MyBAQCBib29sIFNWR1JlbmRlclN1cHBvcnQ6OmlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVu
ZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIG9iamVjdC0+c3R5bGUoKS0+b3ZlcmZsb3dY
KCkgPT0gT0hJRERFTjsKIH0KIAotdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBh
aW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZsb2F0UmVj
dCYgcmVwYWludFJlY3QpCitib29sIFNWR1JlbmRlclN1cHBvcnQ6OnJlbmRlcmVySGFzU1ZHU2hh
ZG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIC8vIEZJWE1FOiBBZGQgc3Vw
cG9ydCBmb3IgUmVuZGVyU1ZHQmxvY2suCisKKyAgICBpZiAob2JqZWN0LT5pc1NWR1NoYXBlKCkg
fHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkgfHwgb2JqZWN0LT5pc1NWR0NvbnRhaW5lcigpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHTW9kZWxPYmplY3QqPihvYmpl
Y3QpLT5oYXNTVkdTaGFkb3coKTsKKworICAgIGlmIChvYmplY3QtPmlzU1ZHUm9vdCgpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHUm9vdCo+KG9iamVjdCktPmhh
c1NWR1NoYWRvdygpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFNWR1JlbmRlclN1
cHBvcnQ6OnNldFJlbmRlcmVySGFzU1ZHU2hhZG93KFJlbmRlck9iamVjdCogb2JqZWN0LCBib29s
IGhhc1NoYWRvdykKK3sKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFJlbmRlclNWR0Js
b2NrLgorCisgICAgaWYgKG9iamVjdC0+aXNTVkdTaGFwZSgpIHx8IG9iamVjdC0+aXNTVkdJbWFn
ZSgpIHx8IG9iamVjdC0+aXNTVkdDb250YWluZXIoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlbmRlclNWR01vZGVsT2JqZWN0Kj4ob2JqZWN0KS0+c2V0SGFzU1ZHU2hhZG93KGhhc1No
YWRvdyk7CisKKyAgICBpZiAob2JqZWN0LT5pc1NWR1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFJlbmRlclNWR1Jvb3QqPihvYmplY3QpLT5zZXRIYXNTVkdTaGFkb3coaGFzU2hh
ZG93KTsKK30KKwordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdp
dGhTaGFkb3dzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9hdFJlY3QmIHJlcGFpbnRS
ZWN0KQogeworICAgIC8vIFNpbmNlIC13ZWJraXQtc3ZnLXNoYWRvdyBlbmFibGVzIHNoYWRvdyBk
cmF3aW5nIGZvciBpdHMgY2hpbGRyZW4sIGJ1dCBpdHMgY2hpbGRyZW4KKyAgICAvLyBkb24ndCBp
bmhlcml0IHRoZSBzaGFkb3cgaW4gdGhlaXIgU1ZHUmVuZGVyU3R5bGUsIHdlIG5lZWQgdG8gc2Vh
cmNoIG91ciBwYXJlbnRzIGZvcgorICAgIC8vIHNoYWRvd3MgaW4gb3JkZXIgdG8gY29ycmVjdGx5
IGNvbXB1dGUgb3VyIHJlcGFpbnQgcmVjdC4KKwogICAgIEFTU0VSVChvYmplY3QpOwogCi0gICAg
UmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOwotICAgIEFTU0VSVChzdHlsZSk7
CisgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyZW50T2JqZWN0ID0gb2JqZWN0OwogCi0gICAg
Y29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUtPnN2Z1N0eWxlKCk7Ci0gICAg
QVNTRVJUKHN2Z1N0eWxlKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUb1Jvb3RUcmFuc2Zv
cm07CisKKyAgICB3aGlsZSAoY3VycmVudE9iamVjdCAmJiByZW5kZXJlckhhc1NWR1NoYWRvdyhj
dXJyZW50T2JqZWN0KSkgeworICAgICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBjdXJyZW50T2Jq
ZWN0LT5zdHlsZSgpOworICAgICAgICBBU1NFUlQoc3R5bGUpOworCisgICAgICAgIGNvbnN0IFNW
R1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxlLT5zdmdTdHlsZSgpOworICAgICAgICBBU1NF
UlQoc3ZnU3R5bGUpOwogCi0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvbnN0X2Nhc3Q8
UmVuZGVyT2JqZWN0Kj4ob2JqZWN0KTsKLSAgICBTVkdSZXNvdXJjZXMqIHJlc291cmNlcyA9IFNW
R1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJPYmplY3QocmVuZGVyZXIp
OwotICAgIGlmICghcmVzb3VyY2VzKSB7CiAgICAgICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBz
aGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCiAgICAgICAgICAgICBzaGFkb3ctPmFkanVzdFJl
Y3RGb3JTaGFkb3cocmVwYWludFJlY3QpOworCisgICAgICAgIHJlcGFpbnRSZWN0ID0gY3VycmVu
dE9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLm1hcFJlY3QocmVwYWludFJlY3QpOwor
ICAgICAgICBsb2NhbFRvUm9vdFRyYW5zZm9ybSAqPSBjdXJyZW50T2JqZWN0LT5sb2NhbFRvUGFy
ZW50VHJhbnNmb3JtKCk7CisKKyAgICAgICAgY3VycmVudE9iamVjdCA9IGN1cnJlbnRPYmplY3Qt
PnBhcmVudCgpOworICAgIH07CisKKyAgICBpZiAobG9jYWxUb1Jvb3RUcmFuc2Zvcm0uaXNJZGVu
dGl0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcm9vdFRvTG9j
YWxUcmFuc2Zvcm0gPSBsb2NhbFRvUm9vdFRyYW5zZm9ybS5pbnZlcnNlKCk7CisgICAgcmVwYWlu
dFJlY3QgPSByb290VG9Mb2NhbFRyYW5zZm9ybS5tYXBSZWN0KHJlcGFpbnRSZWN0KTsKK30KKwor
dm9pZCBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMo
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QpCit7Cisg
ICAgQVNTRVJUKG9iamVjdCk7CisKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29uc3Rf
Y2FzdDxSZW5kZXJPYmplY3QqPihvYmplY3QpOworICAgIFNWR1Jlc291cmNlcyogcmVzb3VyY2Vz
ID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJlbmRlck9iamVjdChyZW5k
ZXJlcik7CisgICAgaWYgKCFyZXNvdXJjZXMpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKICNp
ZiBFTkFCTEUoRklMVEVSUykKICAgICBpZiAoUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIqIGZpbHRl
ciA9IHJlc291cmNlcy0+ZmlsdGVyKCkpCkBAIC0zMDYsOSArMzY5LDYgQEAgdm9pZCBTVkdSZW5k
ZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVy
T2JqZWN0KiBvYmoKIAogICAgIGlmIChSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciogbWFza2VyID0g
cmVzb3VyY2VzLT5tYXNrZXIoKSkKICAgICAgICAgcmVwYWludFJlY3QuaW50ZXJzZWN0KG1hc2tl
ci0+cmVzb3VyY2VCb3VuZGluZ0JveChyZW5kZXJlcikpOwotCi0gICAgaWYgKGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3coKSkKLSAgICAgICAgc2hhZG93LT5hZGp1
c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKIH0KIAogYm9vbCBTVkdSZW5kZXJTdXBwb3J0
OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCmluZGV4IDE0
M2FlNTIuLmRhY2JkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5oCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXIg
ZnVuY3Rpb24gZGV0ZXJtaW5pbmcgd2hldGVyIG92ZXJmbG93IGlzIGhpZGRlbgogICAgIHN0YXRp
YyBib29sIGlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKKyAgICBzdGF0
aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKGNvbnN0IFJlbmRlck9iamVj
dCosIEZsb2F0UmVjdCYpOworCiAgICAgLy8gQ2FsY3VsYXRlcyB0aGUgcmVwYWludFJlY3QgaW4g
Y29tYmluYXRpb24gd2l0aCBmaWx0ZXIsIGNsaXBwZXIgYW5kIG1hc2tlciBpbiBsb2NhbCBjb29y
ZGluYXRlcy4KICAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJj
ZXMoY29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CiAKQEAgLTYzLDYgKzY1LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBib29sIHBhaW50SW5mb0ludGVyc2VjdHNSZXBhaW50UmVjdChj
b25zdCBGbG9hdFJlY3QmIGxvY2FsUmVwYWludFJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
bG9jYWxUcmFuc2Zvcm0sIGNvbnN0IFBhaW50SW5mbyYpOwogCiAgICAgLy8gSW1wb3J0YW50IGZ1
bmN0aW9ucyB1c2VkIGJ5IG5lYXJseSBhbGwgU1ZHIHJlbmRlcmVycyBjZW50cmFsaXppbmcgY29v
cmRpbmF0ZSB0cmFuc2Zvcm1hdGlvbnMgLyByZXBhaW50IHJlY3QgY2FsY3VsYXRpb25zCisgICAg
c3RhdGljIEZsb2F0UmVjdCByZXBhaW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5hdGVz
RXhjbHVkaW5nU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCopOwogICAgIHN0YXRpYyBMYXlv
dXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVjdCos
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpOwogICAgIHN0YXRpYyB2
b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVjdCosIFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4
ZWQpOwogICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0KiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gdHJ1ZSwgYm9vbCogd2FzRml4
ZWQgPSAwKTsKQEAgLTc0LDYgKzc3LDEwIEBAIHB1YmxpYzoKICAgICAvLyBEZXRlcm1pbmVzIGlm
IGFueSBhbmNlc3RvcidzIHRyYW5zZm9ybSBoYXMgY2hhbmdlZC4KICAgICBzdGF0aWMgYm9vbCB0
cmFuc2Zvcm1Ub1Jvb3RDaGFuZ2VkKFJlbmRlck9iamVjdCopOwogCisgICAgLy8gSGVscGVyIGZ1
bmN0aW9ucyB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgYSByZW5kZXJlciBoYXMgYW4gU1ZHIHNo
YWRvdyBhcHBsaWVkLgorICAgIHN0YXRpYyBib29sIHJlbmRlcmVySGFzU1ZHU2hhZG93KGNvbnN0
IFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIHNldFJlbmRlcmVySGFzU1ZHU2hhZG93
KFJlbmRlck9iamVjdCosIGJvb2wgaGFzU2hhZG93KTsKKwogICAgIC8vIEZJWE1FOiBUaGVzZSBt
ZXRob2RzIGRvIG5vdCBiZWxvbmcgaGVyZS4KICAgICBzdGF0aWMgY29uc3QgUmVuZGVyU1ZHUm9v
dCogZmluZFRyZWVSb290T2JqZWN0KGNvbnN0IFJlbmRlck9iamVjdCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172860</attachid>
            <date>2012-11-07 12:43:52 -0800</date>
            <delta_ts>2012-11-07 17:12:20 -0800</delta_ts>
            <desc>patch</desc>
            <filename>shadow.diff</filename>
            <type>text/plain</type>
            <size>49382</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODlmZmM3Li43NjQ5ZmQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMTEt
MDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVw
YWludCBpc3N1ZXMgd2l0aCAtd2Via2l0LXN2Zy1zaGFkb3cgdXNlZCBvbiBhIGNvbnRhaW5lcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NDMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MDA1MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zOiBNYXJrIHRlc3RzIGFzIG5lZWRpbmcgcmViYXNlbGluZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9uczogTWFyayB0ZXN0cyBhcyBuZWVkaW5nIHJlYmFzZWxpbmUu
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmsgdGVzdHMgYXMg
bmVlZGluZyByZWJhc2VsaW5lLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnM6IE1hcmsgdGVzdHMgYXMgbmVlZGluZyByZWJhc2VsaW5lLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgt
c2hhZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21w
b3NpdGUtc2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNoYW5nZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRv
dWJsZS1zaGFkb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIE1hYyByZXN1bHRz
IGR1ZSB0byB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHN2Zy9jc3MvcGFyZW50LXNoYWRvdy1v
ZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3NzL3BhcmVudC1z
aGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQg
ZW5zdXJlcyB0aGF0IDxnPiB3aXRoIC13ZWJraXQtc3ZnLXNoYWRvdyBhcHBsaWVkIGRyYXdzIHdo
ZW4gY2hpbGRyZW4gYXJlIG9mZnNjcmVlbiBidXQgdGhlIHNoYWRvdyBpcyBub3QuCisKKyAgICAg
ICAgKiBzdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi1leHBlY3RlZC5zdmc6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9jc3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZzogQWRkZWQuCisgICAg
ICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IDxzdmc+IHdpdGggLXdlYmtpdC1z
dmctc2hhZG93IGFwcGxpZWQgZHJhd3Mgd2hlbiBjaGlsZHJlbiBhcmUgb2Zmc2NyZWVuIGJ1dCB0
aGUgc2hhZG93IGlzIG5vdC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvcmVwYWludC9y
ZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICog
c3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnOiBB
ZGRlZC4KKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdGhhdCBlbnN1cmVzIHRoYXQgU1ZHIGVsZW1l
bnRzIHdpdGggLXdlYmtpdC1zdmctc2hhZG93IGFyZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQuCisK
IDIwMTItMTEtMDcgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtRdF0gVGV4dCBvbiBzY2FsZWQgbGF5ZXIgaXMgYmx1cnJ5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYmJkZWJiLi5lZjRmNTkw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEzODUsNiArMTM4NSwxNyBAQCB3ZWJraXQub3JnL2IvODUxMDcgc3ZnL2FzLWltYWdlL2Fu
aW1hdGVkLXN2Zy1hcy1pbWFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYQogCiB3ZWJraXQu
b3JnL2IvOTM1ODkgc3ZnL2RvbS9TVkdTY3JpcHRFbGVtZW50L3NjcmlwdC1jaGFuZ2UtZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC13aGlsZS1sb2FkaW5nLnN2ZyBbIEZhaWx1cmUgUGFzcyBUaW1l
b3V0IF0KIAorIyBUaGVzZSB0ZXN0cyBuZWVkIHRvIGJlIHJlYmFzZWxpbmVkIGFmdGVyIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTY0Mword2Via2l0Lm9yZy9iLzEw
MTM5NiBzdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcv
cmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5
NiBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhhbXBsZS5odG1sCit3ZWJraXQub3JnL2IvMTAx
Mzk2IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13aXRoLW9wYWNpdHkuaHRtbAord2Via2l0Lm9y
Zy9iLzEwMTM5NiBmYXN0L3JlcGFpbnQvbW92aW5nLXNoYWRvdy1vbi1jb250YWluZXIuaHRtbAor
d2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctdGV4dC5zdmcKK3dl
YmtpdC5vcmcvYi8xMDEzOTYgc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LnN2
Zword2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LnN2Zwor
d2Via2l0Lm9yZy9iLzEwMTM5NiBzdmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LnN2ZworCiAjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAjIEVuZCBTVkcgVEVTVFMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYWQ5OWVhMy4uZDY2Y2U5YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2NTEsNiArMTY1MSwxNyBAQCB3
ZWJraXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3VzZXItdGltaW5nIFsgU2tpcCBdCiAjIFJlZ3Jlc3Npb24gYWZ0ZXIgcjEzMTY0MC4KIHdlYmtp
dC5vcmcvYi85OTY5MSBnYW1lcGFkL2dhbWVwYWQtb3V0LW9mLXJhbmdlLWNyYXNoZXIuaHRtbCBb
IEZhaWx1cmUgXQogCisjIFRoZXNlIHRlc3RzIG5lZWQgdG8gYmUgcmViYXNlbGluZWQgYWZ0ZXIg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjQzCit3ZWJraXQub3Jn
L2IvMTAxNDAwIHN2Zy9jc3Mvc2hhZG93LWNoYW5nZXMuc3ZnCit3ZWJraXQub3JnL2IvMTAxNDAw
IHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3ZnCit3ZWJraXQub3JnL2Iv
MTAxNDAwIHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0bWwKK3dlYmtpdC5vcmcv
Yi8xMDE0MDAgc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS5odG1sCit3ZWJr
aXQub3JnL2IvMTAxNDAwIGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5o
dG1sCit3ZWJraXQub3JnL2IvMTAxNDAwIHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy10ZXh0LnN2
Zword2Via2l0Lm9yZy9iLzEwMTQwMCBzdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFk
b3cuc3ZnCit3ZWJraXQub3JnL2IvMTAxNDAwIHN2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3cu
c3ZnCit3ZWJraXQub3JnL2IvMTAxNDAwIHN2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3cuc3ZnCisK
ICMgUmVzb3VyY2UgVGltaW5nIGlzIG5vdCBlbmFibGUgeWV0LCBza2lwIGl0Lgogd2Via2l0Lm9y
Zy9iLzYxMTM4IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJj
ZS10aW1pbmcgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBjOGQ1ZjI1Li45OTUxMzA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM2OSw2ICsxMzY5LDE3IEBAIHdlYmtpdC5vcmcvYi85ODYx
MiBbIFJlbGVhc2UgXSBmYXN0L2RvbS9nYy1kb20tdHJlZS1saWZldGltZS5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvOTg2MTMgY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2Ut
dXNlclNwYWNlT25Vc2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4
NjEzIGNzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNlLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIAorIyBUaGVzZSB0ZXN0cyBuZWVkIHRvIGJlIHJlYmFzZWxpbmVkIGFmdGVyIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTY0Mword2Via2l0Lm9yZy9iLzEw
MTM5OCBzdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLnN2Zword2Via2l0Lm9yZy9iLzEwMTM5OCBzdmcv
cmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5
OCBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhhbXBsZS5odG1sCit3ZWJraXQub3JnL2IvMTAx
Mzk4IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13aXRoLW9wYWNpdHkuaHRtbAord2Via2l0Lm9y
Zy9iLzEwMTM5OCBmYXN0L3JlcGFpbnQvbW92aW5nLXNoYWRvdy1vbi1jb250YWluZXIuaHRtbAor
d2Via2l0Lm9yZy9iLzEwMTM5OCBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctdGV4dC5zdmcKK3dl
YmtpdC5vcmcvYi8xMDEzOTggc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LnN2
Zword2Via2l0Lm9yZy9iLzEwMTM5OCBzdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LnN2Zwor
d2Via2l0Lm9yZy9iLzEwMTM5OCBzdmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LnN2ZworCiAjIFJl
cXVpcmVzIHJlYmFzZWxpbmluZyBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE2NDUKIHdlYmtpdC5vcmcvYi8xMTY0NSBmYXN0L3RhYmxlLzAyNS5odG1sIFsg
RmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Jl
cGFpbnQvbW92aW5nLXNoYWRvdy1vbi1jb250YWluZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1l
eHBlY3RlZC50eHQKaW5kZXggOWM1YTU1Mi4uM2ZhZThlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC9t
b3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgNzg1eDYxNgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKLSAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30g
YXQgKDgsOCkgc2l6ZSA0Njh4MTczCisgICAgICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg4LDgp
IHNpemUgNDg4eDE5MwogICAgICAgICBSZW5kZXJTVkdQYXRoIHtwYXRofSBhdCAoOCw4KSBzaXpl
IDc4eDY4IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0
aD0xMC4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJN
IDEuODM2OTdlLTE1IDMwIEwgLTM1LjI2NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01
Ny4wNjM0IC0xOC41NDEgTCAtMTcuNjMzNiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAx
Ny42MzM2IC0yNC4yNzA1IEwgNTcuMDYzNCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUu
MjY3MSA0OC41NDEgWiJdCiAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgyMDAsNDYp
IHNpemUgMTI4eDEyNSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgy
NTAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0
cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2ggYXJyYXk9ezIwLjAwfV19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1LjI2NzEg
NDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcuNjMzNiAt
MjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAtNjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcuMDYzNCAt
MTguNTQxIEwgMjguNTMxNyA5LjI3MDUxIEwgMzUuMjY3MSA0OC41NDEgWiJdCiAgICAgICAgIFJl
bmRlclNWR1BhdGgge3BhdGh9IGF0ICgzNDksNDYpIHNpemUgMTE3eDEyMiBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0MDAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2ggYXJy
YXk9ezIwLjAwfV19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtkYXRh
PSJNIDEuNTMwODFlLTE1IDI1IEwgLTI5LjM4OTMgNDAuNDUwOSBMIC0yMy43NzY0IDcuNzI1NDIg
TCAtNDcuNTUyOCAtMTUuNDUwOCBMIC0xNC42OTQ2IC0yMC4yMjU0IEwgLTkuMTg0ODVlLTE1IC01
MCBMIDE0LjY5NDYgLTIwLjIyNTQgTCA0Ny41NTI4IC0xNS40NTA4IEwgMjMuNzc2NCA3LjcyNTQy
IEwgMjkuMzg5MyA0MC40NTA5IFoiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jc3MvYXJyb3ctd2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4
IGIwZjQ1ODMuLmQ3MDE4Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3NzL2Fycm93LXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9hcnJvdy13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTIs
NiArMiw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKDc5LDIzKSBzaXplIDYwNXg0MTQKLSAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICg3OSwyMykgc2l6ZSA2Mzh4NDQ3IFt0cmFuc2Zvcm09e209KCgyLjAwLDAuMDAp
KDAuMDAsMi4wMCkpIHQ9KDAuMDAsMC4wMCl9XQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHth
fSBhdCAoNzksMjMpIHNpemUgNjA1eDQxNAorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDc5LDIzKSBzaXplIDY3MXg0ODAgW3RyYW5zZm9ybT17bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAw
KSkgdD0oMC4wMCwwLjAwKX1dCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2F9IGF0ICg3OSwy
Mykgc2l6ZSA2Mzh4NDQ3CiAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICg3OSwyMykg
c2l6ZSA2MDV4NDE0IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl0gW3N0cm9r
ZSB3aWR0aD0yMC4wMF19XSBbZGF0YT0iTSAxODUgNDAgTCA4NSA0MCBMIDg1IDI4IEwgNDAgNjQg
TCA4NSAxMDAgTCA4NSA4OCBMIDE4NSA4OCBaIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NsaXBwYXRoLXdpdGgtc2hhZG93LWV4cGVj
dGVkLnR4dAppbmRleCAyZTYzNjlhLi4xMjllNmMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jbGlwcGF0aC13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY2xpcHBhdGgtd2l0aC1zaGFkb3ct
ZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDExIEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMjAweDIwMAor
ICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMjEweDIwMAogICAgIFJlbmRlclNW
R1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMjAweDIwMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkYwMDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9
MjAwLjAwXQogICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMjAweDIwMCBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgtMjAwLjAwLDAuMDApfV0g
W3g9MjAwLjAwXSBbeT0wLjAwXSBbd2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4wMF0KICAgICBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIge2NsaXBQYXRofSBbaWQ9ImNsaXAiXSBbY2xpcFBhdGhV
bml0cz11c2VyU3BhY2VPblVzZV0KLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAo
MCwwKSBzaXplIDIxMHgyMTAKKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMCww
KSBzaXplIDIyMHgyMjAKICAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6
ZSAyMTB4MjEwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KC0yMDAu
MDAsMC4wMCl9XSBbeD0yMDAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAw
LjAwXQotICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgwLDApIHNpemUgMjAweDIwMCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0
aD00MDAuMDBdIFtoZWlnaHQ9MjAwLjAwXQotICAgICAgW2NsaXBQYXRoPSJjbGlwIl0gUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyIHtjbGlwUGF0aH0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwCisgICAg
UmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyMTB4MjAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTQwMC4wMF0g
W2hlaWdodD0yMDAuMDBdCisgICAgICBbY2xpcFBhdGg9ImNsaXAiXSBSZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIge2NsaXBQYXRofSBhdCAoMCwwKSBzaXplIDIxMHgyMTAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhhbXBsZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUt
c2hhZG93LWV4YW1wbGUtZXhwZWN0ZWQudHh0CmluZGV4IDUyNzBmNzAuLjUyODFmMWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ct
ZXhhbXBsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9j
c3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLWV4cGVjdGVkLnR4dApAQCAtMywxMCArMywxMCBA
QCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDYx
NgogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3Njl4NjAwCi0gICAgICBSZW5kZXJTVkdSb290IHtz
dmd9IGF0ICg0MCwzNikgc2l6ZSA0MzZ4MTUwCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDQwLDM2KSBzaXplIDE0NngxNDAKKyAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQg
KDQwLDM2KSBzaXplIDQ1NngxNzAKKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
NDAsMzYpIHNpemUgMTU2eDE1MAogICAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICg0
MCwzNikgc2l6ZSAxNDZ4MTQwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDEwMC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XSBbc3Ryb2tlIHdpZHRoPTEwLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTk5
OTldfV0gW2RhdGE9Ik0gMS44MzY5N2UtMTUgMzAgTCAtMzUuMjY3MSA0OC41NDEgTCAtMjguNTMx
NyA5LjI3MDUxIEwgLTU3LjA2MzQgLTE4LjU0MSBMIC0xNy42MzM2IC0yNC4yNzA1IEwgLTEuMTAy
MThlLTE0IC02MCBMIDE3LjYzMzYgLTI0LjI3MDUgTCA1Ny4wNjM0IC0xOC41NDEgTCAyOC41MzE3
IDkuMjcwNTEgTCAzNS4yNjcxIDQ4LjU0MSBaIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEyOHgxMjUKKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEzOHgxMzUKICAgICAgICAgICBSZW5kZXJTVkdQYXRoIHtw
YXRofSBhdCAoMjAwLDQ2KSBzaXplIDEyOHgxMjUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMjUwLjAwLDEwMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9MTAuMDBdIFtkYXNoIGFycmF5PXsyMC4wMH1dfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5OTk5OV19XSBbZGF0YT0iTSAxLjgzNjk3ZS0x
NSAzMCBMIC0zNS4yNjcxIDQ4LjU0MSBMIC0yOC41MzE3IDkuMjcwNTEgTCAtNTcuMDYzNCAtMTgu
NTQxIEwgLTE3LjYzMzYgLTI0LjI3MDUgTCAtMS4xMDIxOGUtMTQgLTYwIEwgMTcuNjMzNiAtMjQu
MjcwNSBMIDU3LjA2MzQgLTE4LjU0MSBMIDI4LjUzMTcgOS4yNzA1MSBMIDM1LjI2NzEgNDguNTQx
IFoiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYpIHNpemUgMTE3
eDEyMgorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYpIHNpemUgMTI3
eDEzMgogICAgICAgICAgIFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgzNDksNDYpIHNpemUgMTE3
eDEyMiBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0MDAuMDAsMTAw
LjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0
aD0xMC4wMF0gW2Rhc2ggYXJyYXk9ezIwLjAwfV19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jOTk5OTk5XX1dIFtkYXRhPSJNIDEuNTMwODFlLTE1IDI1IEwgLTI5LjM4OTMgNDAuNDUwOSBM
IC0yMy43NzY0IDcuNzI1NDIgTCAtNDcuNTUyOCAtMTUuNDUwOCBMIC0xNC42OTQ2IC0yMC4yMjU0
IEwgLTkuMTg0ODVlLTE1IC01MCBMIDE0LjY5NDYgLTIwLjIyNTQgTCA0Ny41NTI4IC0xNS40NTA4
IEwgMjMuNzc2NCA3LjcyNTQyIEwgMjkuMzg5MyA0MC40NTA5IFoiXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13aXRoLW9wYWNp
dHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvY29tcG9z
aXRlLXNoYWRvdy13aXRoLW9wYWNpdHktZXhwZWN0ZWQudHh0CmluZGV4IGMxYjFlYjUuLjZiYWNk
MzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2NvbXBvc2l0
ZS1zaGFkb3ctd2l0aC1vcGFjaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS1leHBlY3RlZC50
eHQKQEAgLTQsMTAgKzQsMTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CiAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg2MTYKICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc2OXg2MDAKIGxheWVyIGF0ICg4LDgpIHNpemUgNzY5eDYwMAotICBS
ZW5kZXJTVkdSb290IHtzdmd9IGF0ICg0MCwzNikgc2l6ZSA0MzZ4MTUwIFtvcGFjaXR5PTAuNTBd
Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDAsMzYpIHNpemUgMTQ2eDE0MAorICBS
ZW5kZXJTVkdSb290IHtzdmd9IGF0ICg0MCwzNikgc2l6ZSA0NTZ4MTcwIFtvcGFjaXR5PTAuNTBd
CisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDAsMzYpIHNpemUgMTU2eDE1MAogICAg
ICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDQwLDM2KSBzaXplIDE0NngxNDAgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAwLDEwMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9MTAuMDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5OTk5OV19XSBbZGF0YT0iTSAxLjgzNjk3ZS0xNSAz
MCBMIC0zNS4yNjcxIDQ4LjU0MSBMIC0yOC41MzE3IDkuMjcwNTEgTCAtNTcuMDYzNCAtMTguNTQx
IEwgLTE3LjYzMzYgLTI0LjI3MDUgTCAtMS4xMDIxOGUtMTQgLTYwIEwgMTcuNjMzNiAtMjQuMjcw
NSBMIDU3LjA2MzQgLTE4LjU0MSBMIDI4LjUzMTcgOS4yNzA1MSBMIDM1LjI2NzEgNDguNTQxIFoi
XQotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIwMCw0Nikgc2l6ZSAxMjh4MTI1Cisg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjAwLDQ2KSBzaXplIDEzOHgxMzUKICAgICAg
IFJlbmRlclNWR1BhdGgge3BhdGh9IGF0ICgyMDAsNDYpIHNpemUgMTI4eDEyNSBbdHJhbnNmb3Jt
PXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyNTAuMDAsMTAwLjAwKX1dIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0xMC4wMF0gW2Rhc2gg
YXJyYXk9ezIwLjAwfV19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jOTk5OTk5XX1dIFtk
YXRhPSJNIDEuODM2OTdlLTE1IDMwIEwgLTM1LjI2NzEgNDguNTQxIEwgLTI4LjUzMTcgOS4yNzA1
MSBMIC01Ny4wNjM0IC0xOC41NDEgTCAtMTcuNjMzNiAtMjQuMjcwNSBMIC0xLjEwMjE4ZS0xNCAt
NjAgTCAxNy42MzM2IC0yNC4yNzA1IEwgNTcuMDYzNCAtMTguNTQxIEwgMjguNTMxNyA5LjI3MDUx
IEwgMzUuMjY3MSA0OC41NDEgWiJdCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzQ5
LDQ2KSBzaXplIDExN3gxMjIKKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDksNDYp
IHNpemUgMTI3eDEzMgogICAgICAgUmVuZGVyU1ZHUGF0aCB7cGF0aH0gYXQgKDM0OSw0Nikgc2l6
ZSAxMTd4MTIyIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwMC4w
MCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tl
IHdpZHRoPTEwLjAwXSBbZGFzaCBhcnJheT17MjAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM5OTk5OTldfV0gW2RhdGE9Ik0gMS41MzA4MWUtMTUgMjUgTCAtMjkuMzg5MyA0MC40
NTA5IEwgLTIzLjc3NjQgNy43MjU0MiBMIC00Ny41NTI4IC0xNS40NTA4IEwgLTE0LjY5NDYgLTIw
LjIyNTQgTCAtOS4xODQ4NWUtMTUgLTUwIEwgMTQuNjk0NiAtMjAuMjI1NCBMIDQ3LjU1MjggLTE1
LjQ1MDggTCAyMy43NzY0IDcuNzI1NDIgTCAyOS4zODkzIDQwLjQ1MDkgWiJdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNoYWRvdy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9ncm91cC13aXRoLXNo
YWRvdy1leHBlY3RlZC50eHQKaW5kZXggZGE1YzY2NS4uMjU3MmQ3NCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3MvZ3JvdXAtd2l0aC1zaGFkb3ctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL2dyb3VwLXdpdGgtc2hh
ZG93LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDMwLDMxKSBzaXplIDMwMHgz
MTkKLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMCwzMSkgc2l6ZSAzMzR4MzUzIFt0
cmFuc2Zvcm09e209KCgyLjAwLDAuMDApKDAuMDAsMi4wMCkpIHQ9KDAuMDAsMC4wMCl9XQorICBS
ZW5kZXJTVkdSb290IHtzdmd9IGF0ICgzMCwzMSkgc2l6ZSAyODl4Mjg2CisgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMzAsMzEpIHNpemUgMzU1eDM1MyBbdHJhbnNmb3JtPXttPSgoMi4w
MCwwLjAwKSgwLjAwLDIuMDApKSB0PSgwLjAwLDAuMDApfV0KICAgICAgIFJlbmRlclNWR1BhdGgg
e2xpbmV9IGF0ICgzMywzMSkgc2l6ZSAyODR4MzggW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jODAwMDgwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW3gxPTEw
LjAwXSBbeTE9MTAuMDBdIFt4Mj04NS4wMF0gW3kyPTEwLjAwXQogICAgICAgUmVuZGVyU1ZHUmVj
dCB7cmVjdH0gYXQgKDMxLDY1KSBzaXplIDI4OHgyMDQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jODAwMDgwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDAwODBdfV0gW3g9
MTAuMDBdIFt5PTIwLjAwXSBbd2lkdGg9NzUuMDBdIFtoZWlnaHQ9NTAuMDBdCiAgICAgICBSZW5k
ZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsNzUpIHNpemUgNzh4MTkgY29udGFpbnMgMSBjaHVuayhz
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hhZG93LWNo
YW5nZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jc3Mvc2hh
ZG93LWNoYW5nZXMtZXhwZWN0ZWQudHh0CmluZGV4IDcxMzM4MmEuLjA4MDAzZjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2Nzcy9zaGFkb3ctY2hh
bmdlcy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgxMzUsNSkgc2l6ZSAzMjZ4
Mjg1Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTIwLDApIHNpemUgMzQxeDI5MAor
ICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgxNDYsMTYpIHNpemUgMzE1eDI4OAorICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDExNiwwKSBzaXplIDM0NXgzMDQKICAgICAgIFJlbmRlclNW
R1JlY3Qge3JlY3R9IGF0ICgxMzUsNSkgc2l6ZSAyMTV4MjE1IFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNGRjAwMDBdfV0gW3g9MTUwLjAwXSBbeT0yMC4wMF0gW3dpZHRoPTIwMC4wMF0gW2hl
aWdodD0yMDAuMDBdCiAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICgyMDUsNzUp
IHNpemUgMjE1eDIxNSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtjeD0z
MjAuMDBdIFtjeT0xOTAuMDBdIFtyPTEwMC4wMF0KICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9
IGF0ICgyNzAsMzYpIHNpemUgMTkxeDEwNyBjb250YWlucyAxIGNodW5rKHMpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zaW1wbGUtdGV4dC1kb3VibGUt
c2hhZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhwZWN0ZWQudHh0CmluZGV4IDNmMDg3MzEuLjk0
MjFhNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Np
bXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL3NpbXBsZS10ZXh0LWRvdWJsZS1zaGFkb3ctZXhwZWN0ZWQu
dHh0CkBAIC0xLDcgKzEsNyBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjAsMjYpIHNpemUgMzgweDE5NAorICBSZW5kZXJT
VkdSb290IHtzdmd9IGF0ICgyMCwyNikgc2l6ZSA0ODB4Mjk0CiAgICAgUmVuZGVyU1ZHVGV4dCB7
dGV4dH0gYXQgKDIwLDI2KSBzaXplIDIxN3gxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICBS
ZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMTd4MTgKICAgICAgICAg
Y2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMC4wMCw0MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZz
ZXQgMzQgd2lkdGggMjE3LjAwOiAiVGhpcyB0ZXh0IHNob3VsZCBhcHBlYXIgb25seSB0d2ljZSIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvcmVwYWludC9yZXBhaW50
LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4cGVjdGVkLnBuZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lOWUzZjA3NGNiM2EyMWE4ZWQ5ZDMyNmQzMTljZWYyOTBjMmVjNWRhCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAxMDg2MAp6Y21lSE5aQT8+Rjd7MGV1c1Rqd1ZmZkhmbkdLWXJmQ04x
KGNrek4hU15ga1Nlc2dvJlU5Z0dOcVF2fGwhLVlST2cKekFUK3YrJjk1ZEszdEtffSQyT2YydG4m
a3g+RDApRTZHclJzVl84Kk52Nz9tST9xJCtAJmhQekxxTWwhK1B5MWZwCnpLSlBpdGJLWX4jMmdf
OGlQNzBWN0t2QzJyV29COXlNZnRINUMwWiNONTZKJGwrZV9na2RRMUFzRSRWbVBSJlVyYAp6UiFx
cmFWYEd3JTtecGgmPG0oYiteV15MMGlGdlZkY3x5S0NVWH5YPkg+cWFyVD9ORT1seGVCMlNKM3g8
T1doY2oKejhJKlIjWmR3c3NLbUdkVSRoZyo5cDlMKDkzMD9oVk1PJHApM1ZDaSppbVU2QSpFP002
WjM9Tlp0WCtSQEcjWlZjCnpfZzdYXnZgR0FsKnlBMT1YckFxSUkyX0Z2O3kkQUUtPG90P3hrSX1+
S2E/O20kSE8xM0JHTExedVdrX0RpelAqMwp6QCVpeGBEPV8zamZXK3xUWXQ1NCVNVH55WEdNUW4r
IWdEYnNXKXtvayZ1X35aZWRlUTNRd0dOdW0xQCM0cT4tbVMKemJ2JkhyYHYhYjlqSGJVbldlPnJT
JDIxfUw7Y1kpfVhxY2VVWTdoVXQmbkAqNHRZMWZhe3ArMzE8dW1fZmR6MlomCno2b3hJX0d+Zz9N
U1EwIUBWKSZ5az1hOWYwd35GS0kmdDlBXmdlO3JRYXYjPX5sPStAWWl3YkZhQDA1Z0U2bW8+OAp6
cUVwJmBuSmB2WHY3fjtTSUNFN2BHNzMyPjV8S20qQlY+JF9TJVhDM3ZDPEszZ2E3YG5OWlZrKWBB
V0pAdElhU0UKekFDKFMhSmtzWSE+fkApfVNGIURgKW9MfCotcTg2ZlktMjU2S0RwSENoeHRvP0Z2
SXFESV5yPVhQJGFza0tPS1AtCnpuVzw+dHNtZ3w/cWV4RGYzV2l8PSEjI29+YkcmS1pJUHYqO1dv
PTZfaHVaO2g3TW5qSlNsaz1VYT1sKyFpIW4kRgp6NChxcERBeEpnRCtFZ19DSygpSCRTIUEmYG1n
U18wWm9NRyFsKWZCJXhjc204NHElVyEjRj1nY1ZyRzNKbzh3UHAKemNYZVk+dlA1Rj1lQDJJJSV+
PWs/UGQ7P0tjTHdAN21RP09QUWYyQmRQcX18QGpVSlhCeXwpcSQ9cm8kNWM4QVo+CnpFbXw8Wm8x
VTw0Z09JZ0oyTEpxJVktYzEmQCYwb1JKN35WUDNuNFlJIXNzfm9MdHZ6a1ZkK1ZwYHJkbWt7elpn
VAp6XkhrRjlWNjgtYHJHNk1uR0xyQ0pCdHEwY3d5ZVJuNUxMSGw0JEl2P2QxTWtRWnVvU1R0NFox
IXV8VExLcSlvcjsKei1CWDsya2cwJU5oO31vbWtiX3t7IXpEIXY1eit4bnQ1cjk0cXRZSkI8QGc/
Kkl4SStGS01+ZU47aE9eI1JmdiFnCnpBY1JtdkM+azMhV0U3RSFfSjMpU1dsKG5WNDUrTjdTWSRT
dk9XeUIzSipMNj4wPGs7N1ExRmQ9SElnXituam5VcQp6Vjt8fjNJeFJeQz9MMih0S3stLVdyYX1v
OGJtbVMzP3EocD5sXkgqb3FYaEJoRUslVEhLfU92WUwxS0FSRUNeeGYKek9TKEVpOFl6N3A9PVds
Y008eXNiRXhINk1gPWxqaThDPmtXdTkocm5JOTt3KW5tKUNVYmJiRDQxM0Jje2lXKjE7Cno4cHlv
VEs0ZlRmIUd+Xkp5UmlteENDNjh0K0poUiUlZ3tqWFohUmhLSihVKmEoUjklR2djXlpwdTljPz4r
dU1JZgp6V3ZxZSphJXhXXjNiX2FrQnVSdVlMZEZRMEhHJTtVOVU7bX15b1JfaFMmeHR2OGQpanxg
I3hteE94ZyszVjNDJmQKenNjT1FWQk13SzF3RDdHZyVPI2BZJDQmWEBkY2ReK3ItSUZxPUF0Y0xI
VWBjYFgyaUFPKjhgVHJnQEg8cTY1OWB8CnpoWUpJcDUycyp6S1JJdz07RmRpS0wteFQ5aE9EYk9M
UHI4Tzd+bH0jPEJtRUVTcHB7fiVCM1lKQSt7eGlBcWYkTgp6I3RpIWo5eiE8a3pgI0prZ0goTCpi
OERtRVY2PF8pTXVwOV9WPn1mKSk0XmdoWVpsRDR6NGp5dz40VWo7dXlZNEMKelpXPntHY0cwO3o3
KlkrcGsoO3N0djhtbnl5VC1GWmpvNVpAJSohbHlQQnxaKXVKTld0OTcle1VHPEd+ZCN0QGxoCmdz
R0VHTWJqWVVvTGlmVk9paXppcyF9VT4wblhYRH1UQ2pIZUtRYXx3KSZLd2kKCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDY4NTk1MmUuLmVjYzk4M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjM4Myw2ICsyMzgzLDE3IEBAIHdlYmtpdC5vcmcvYi8xMDA4NDYgaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyLXRlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlCiAjIE5l
dywgYnV0IGZhaWxpbmcgdGVzdAogd2Via2l0Lm9yZy9iLzEwMTAzNSBmYXN0L2ltYWdlcy9leGlm
LW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50Lmh0bWwKIAorIyBUaGVzZSB0ZXN0cyBuZWVkIHRv
IGJlIHJlYmFzZWxpbmVkIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NTY0Mword2Via2l0Lm9yZy9iLzEwMTM5NyBzdmcvY3NzL3NoYWRvdy1jaGFuZ2VzLnN2
Zword2Via2l0Lm9yZy9iLzEwMTM5NyBzdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hh
ZG93LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NyBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctZXhh
bXBsZS5odG1sCit3ZWJraXQub3JnL2IvMTAxMzk3IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy13
aXRoLW9wYWNpdHkuaHRtbAord2Via2l0Lm9yZy9iLzEwMTM5NyBmYXN0L3JlcGFpbnQvbW92aW5n
LXNoYWRvdy1vbi1jb250YWluZXIuaHRtbAord2Via2l0Lm9yZy9iLzEwMTM5NyBzdmcvY3NzL2Nv
bXBvc2l0ZS1zaGFkb3ctdGV4dC5zdmcKK3dlYmtpdC5vcmcvYi8xMDEzOTcgc3ZnL2N1c3RvbS9z
aW1wbGUtdGV4dC1kb3VibGUtc2hhZG93LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NyBzdmcvY3Nz
L2NsaXBwYXRoLXdpdGgtc2hhZG93LnN2Zword2Via2l0Lm9yZy9iLzEwMTM5NyBzdmcvY3NzL2Fy
cm93LXdpdGgtc2hhZG93LnN2ZworCiAjIEZhaWxzIGFmdGVyIHRlc3QgcmVmYWN0b3JpbmcsIG1h
eWJlIHJlYmFzZWxpbmUgbmVlZGVkCiB3ZWJraXQub3JnL2IvOTg1MjMgZmFzdC9pbWFnZXMvcmVw
YWludC1zdWJyZWN0LWdyaWQuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3Nz
L21hc2std2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9tYXNr
LXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dAppbmRleCBlMjY5ZDMzLi5kYjFkODM2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdmcvY3NzL21hc2std2l0aC1zaGFkb3ctZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N2Zy9jc3MvbWFzay13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQKQEAg
LTEsOCArMSw4IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgNDUweDUwMAotICBSZW5k
ZXJTVkdSb290IHtzdmd9IGF0ICg1LDUpIHNpemUgMjEweDIxMAotICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQg
KDUsNSkgc2l6ZSAyMjB4MjIwCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNSw1KSBz
aXplIDIyMHgyMjAKICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAs
MCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudCB7bGlu
ZWFyR3JhZGllbnR9IFtpZD0ibWFza2VkR3JhZGllbnQiXSBbZ3JhZGllbnRVbml0cz1vYmplY3RC
b3VuZGluZ0JveF0gW3N0YXJ0PSgwLDApXSBbZW5kPSgxLDEpXQogICAgICAgICAgIFJlbmRlclNW
R0dyYWRpZW50U3RvcCB7c3RvcH0gW29mZnNldD0wLjAwXSBbY29sb3I9IzAwMDBGRl0KQEAgLTEz
LDcgKzEzLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCiAgICAgICAgICAgUmVuZGVy
U1ZHRWxsaXBzZSB7Y2lyY2xlfSBhdCAoNSwxMTUpIHNpemUgMTEweDExMCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtjeD01NS4wMF0gW2N5PTE2NS4wMF0gW3I9NTAuMDBd
CiAgICAgICAgICAgUmVuZGVyU1ZHRWxsaXBzZSB7Y2lyY2xlfSBhdCAoMTE1LDUpIHNpemUgMTEw
eDExMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRkZGXX1dIFtjeD0xNjUuMDBdIFtj
eT01NS4wMF0gW3I9NTAuMDBdCiAgICAgICAgICAgUmVuZGVyU1ZHRWxsaXBzZSB7Y2lyY2xlfSBh
dCAoMTE1LDExNSkgc2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZG
RkZdfV0gW2N4PTE2NS4wMF0gW2N5PTE2NS4wMF0gW3I9NTAuMDBdCi0gICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICg1LDUpIHNpemUgMjEweDIxMAotICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge3VzZX0gYXQgKDUsNSkgc2l6ZSAyMTB4MjEwCi0gICAgICAgICAgW21hc2tlcj0ibWFz
a18xIl0gUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIge21hc2t9IGF0ICg1LDUpIHNpemUgMjEweDIx
MAorICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNSw1KSBzaXplIDIyMHgyMjAKKyAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg1LDUpIHNpemUgMjIweDIyMAorICAg
ICAgICAgIFttYXNrZXI9Im1hc2tfMSJdIFJlbmRlclNWR1Jlc291cmNlTWFza2VyIHttYXNrfSBh
dCAoNSw1KSBzaXplIDIyMHgyMjAKICAgICAgICAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAo
MCwwKSBzaXplIDMwMHgzMDAgW2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW2lkPSJtYXNr
ZWRHcmFkaWVudCJdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTMwMC4wMF0gW2hlaWdodD0z
MDAuMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcmVudC1zaGFkb3ctb2Zm
c2NyZWVuLWV4cGVjdGVkLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNoYWRvdy1v
ZmZzY3JlZW4tZXhwZWN0ZWQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmI3NWQzYTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3BhcmVudC1z
aGFkb3ctb2Zmc2NyZWVuLWV4cGVjdGVkLnN2ZwpAQCAtMCwwICsxLDQgQEAKKzxzdmcgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKzx0aXRsZT5FeHBlY3RlZCByZXN1bHRzIGZv
ciBwYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmc8L3RpdGxlPgorPHJlY3QgaWQ9InJlY3QiIGZp
bGw9IndoaXRlIiBzdHlsZT0iLXdlYmtpdC1zdmctc2hhZG93OiAjMDAwIDEwMHB4IDEwMHB4IDVw
eCIgeD0iMCIgeT0iMCIgd2lkdGg9Ijc1IiBoZWlnaHQ9Ijc1Ij48L3JlY3Q+Cis8L3N2Zz4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZzY3JlZW4uc3Zn
IGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdiN2IxYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZzY3JlZW4uc3ZnCkBAIC0wLDAg
KzEsNiBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorPHRpdGxl
PlRlc3QgcGFzc2VzIGlmIHRoZSBzaGFkb3cgaXMgZHJhd24uPC90aXRsZT4KKzxnIHN0eWxlPSIt
d2Via2l0LXN2Zy1zaGFkb3c6ICMwMDAgMjAwcHggMjAwcHggNXB4Ij4KKzxyZWN0IGlkPSJyZWN0
IiB4PSItMTAwIiB5PSItMTAwIiB3aWR0aD0iNzUiIGhlaWdodD0iNzUiPjwvcmVjdD4KKzwvZz4K
Kzwvc3ZnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZz
Y3JlZW4tZXhwZWN0ZWQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZz
Y3JlZW4tZXhwZWN0ZWQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIz
NjRmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL3Jvb3Qtc2hhZG93
LW9mZnNjcmVlbi1leHBlY3RlZC5zdmcKQEAgLTAsMCArMSw0IEBACis8c3ZnIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cis8dGl0bGU+RXhwZWN0ZWQgcmVzdWx0cyBmb3Igcm9v
dC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZzwvdGl0bGU+Cis8cmVjdCBpZD0icmVjdCIgZmlsbD0id2hp
dGUiIHN0eWxlPSItd2Via2l0LXN2Zy1zaGFkb3c6ICMwMDAgMTAwcHggMTAwcHggNXB4IiB4PSIw
IiB5PSIwIiB3aWR0aD0iNzUiIGhlaWdodD0iNzUiPjwvcmVjdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZzY3JlZW4uc3ZnIGIvTGF5b3V0
VGVzdHMvc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZzY3JlZW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmZlZDFiMTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdmcvY3NzL3Jvb3Qtc2hhZG93LW9mZnNjcmVlbi5zdmcKQEAgLTAsMCArMSw0IEBACis8c3Zn
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3R5bGU9Ii13ZWJraXQtc3ZnLXNo
YWRvdzogIzAwMCAyMDBweCAyMDBweCA1cHgiPgorPHRpdGxlPlRlc3QgcGFzc2VzIGlmIHRoZSBz
aGFkb3cgaXMgZHJhd24uPC90aXRsZT4KKzxyZWN0IGlkPSJyZWN0IiB4PSItMTAwIiB5PSItMTAw
IiB3aWR0aD0iNzUiIGhlaWdodD0iNzUiPjwvcmVjdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQtc3ZnLXNoYWRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmctc2hhZG93LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTk5NzVkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3JlcGFpbnQvcmVwYWludC13ZWJraXQt
c3ZnLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgxMjAsMCkgc2l6
ZSA0NTB4NTIwCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDE1MCwxMDApIHNpemUgMTIw
eDEyMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNTAuMDAsNTAu
MDApfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbeD0wLjAwXSBbeT01
MC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3Jl
Y3R9IGF0ICgxMjAsMCkgc2l6ZSAxMjB4MTIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW3g9MTIwLjAwXSBbeT0wLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1zdmct
c2hhZG93LnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1z
aGFkb3cuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMWExNWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvcmVwYWludC9yZXBhaW50LXdlYmtpdC1z
dmctc2hhZG93LnN2ZwpAQCAtMCwwICsxLDEyIEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsi
IHN0eWxlPSItd2Via2l0LXN2Zy1zaGFkb3c6IDEwMHB4IDEwMHB4IDBweCAjYWFhOyIgb25sb2Fk
PSJydW5SZXBhaW50VGVzdCgpIj4KKyAgICA8dGl0bGU+VGVzdCBwYXNzZXMgaWYgZm91ciByZWN0
YW5nbGVzIGFyZSBkcmF3biBhZnRlciB0aGUgYW5pbWF0aW9uLjwvdGl0bGU+CisgICAgPHJlY3Qg
aWQ9ImEiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgeD0iMCIgeT0iNTAiIGZpbGw9ImJsYWNrIiAv
PgorICAgIDxyZWN0IGlkPSJiIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHg9IjEyMCIgeT0iMCIg
ZmlsbD0iYmxhY2siIC8+CisgICAgPHNjcmlwdCB4bGluazpocmVmPSIuLi8uLi9mYXN0L3JlcGFp
bnQvcmVzb3VyY2VzL3JlcGFpbnQuanMiLz4KKyAgICA8c2NyaXB0PgorICAgIHZhciByZWN0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImEiKTsKKyAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgp
IHsKKyAgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGUoMTUw
LCA1MCkiKQorICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDllMGY3
MGEuLmVkNjIwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAxMi0xMS0wNiAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBhaW50IGlz
c3VlcyB3aXRoIC13ZWJraXQtc3ZnLXNoYWRvdyB1c2VkIG9uIGEgY29udGFpbmVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTY0MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzYwMDUzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkcgcmVuZGVyZXIgcmVwYWludCByZWN0cyBhcmUgY3VycmVudGx5
IGV4cGFuZGVkIG9ubHkgYnkgdGhlIHNoYWRvdyBvZgorICAgICAgICB0aGUgcmVuZGVyZXIgaXRz
ZWxmOyBob3dldmVyLCB0aGUgYXJlYSB0aGV5IG5lZWQgdG8gcmVwYWludCBjYW4gYmUgbGFyZ2Vy
CisgICAgICAgIHRoYW4gdGhhdCwgaWYgdGhlaXIgcGFyZW50cyBhbHNvIGhhdmUgc2hhZG93cy4g
V2UgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudAorICAgICAgICBwYXJlbnQncyBzaGFkb3dzIChy
ZXNwZWN0aW5nIHRyYW5zZm9ybXMsIGFzIHdlbGwpLgorCisgICAgICAgIGNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50IGFscmVhZHkgcmVjdXJzZXMgdXB3YXJkcyB0aHJvdWdoIHRoZSByZW5k
ZXIgdHJlZSwKKyAgICAgICAgYW5kIGVuZHMgdXAgd2l0aCBhIHJlY3QgaW4gbGF5b3V0IGNvb3Jk
aW5hdGVzLCBzbyB3ZSBtYW51YWxseSBhcHBseSB0aGUgc2hhZG93CisgICAgICAgIGF0IGVhY2gg
c3RlcCAocmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cgd2Fz
IGFkZGVkIHRvIGFsbG93CisgICAgICAgIHVzIHRvIGdldCB0aGUgcmF3IHJlcGFpbnQgcmVjdCB3
aXRob3V0IHRoZSBzaGFkb3cgYmFrZWQtaW4pLgorCisgICAgICAgIHJlcGFpbnRSZWN0SW5Mb2Nh
bENvb3JkaW5hdGVzIG5vdyBpbmNsdWRlcyBzaGFkb3dzIGZyb20gYWxsIHBhcmVudHMuCisKKyAg
ICAgICAgQWxzbywgUmVuZGVyU1ZHUm9vdCB3YXMgY2xpcHBpbmcgcmVwYWludCByZWN0cyB0byB0
aGUgdmlld3BvcnQgYmVmb3JlIGFwcGx5aW5nCisgICAgICAgIHNoYWRvd3MsIHNvIG9mZnNjcmVl
biBlbGVtZW50cyB3aXRoIG9uLXNjcmVlbiBzaGFkb3dzIChhcHBsaWVkIGJ5IHRoZSByb290KSB3
b3VsZCBub3QgcGFpbnQgdGhlIHNoYWRvd3MuCisgICAgICAgIFdlIGNhbiBqdXN0IHN3YXAgdGhl
IG9yZGVyIG9mIHRoZXNlIHRoaW5ncyB0byBjb3JyZWN0IHRoaXMuCisKKyAgICAgICAgVGVzdHM6
IHN2Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZzY3JlZW4uc3ZnLCBzdmcvY3NzL3Jvb3Qtc2hhZG93
LW9mZnNjcmVlbi5zdmcsIHN2Zy9yZXBhaW50L3JlcGFpbnQtd2Via2l0LXN2Zy1zaGFkb3cuc3Zn
CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6YWRkQ2hpbGQpOiBNYXJrIHRoZSBjaGlsZCBiZWluZyBhZGRlZCBh
cyBoYXZpbmcgYW4gU1ZHIHNoYWRvdyBpZiBpdCBpcyBiZWluZyBhZGRlZCBhcyBhIGNoaWxkIG9m
IGFuIGVsZW1lbnQgdGhhdCBkb2VzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpz
dHlsZURpZENoYW5nZSk6IE1hcmsgdGhlIGNoaWxkIGJlaW5nIGFkZGVkIGFzIGhhdmluZyBhbiBT
Vkcgc2hhZG93IGlmIGl0cyBuZXcgc3R5bGUgaGFzIGEgc2hhZG93LgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
SW1hZ2U6OmxheW91dCk6IENhY2hlIHRoZSByZXBhaW50IHJlY3QgYmVmb3JlIGludGVyc2VjdGlu
ZyBpdCB3aXRoIHRoZSBzaGFkb3cuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6OnJlcGFpbnRSZWN0SW5M
b2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KTogUmV0dXJuIHRoZSBjYWNoZWQgcmVw
YWludCByZWN0IGZvciB0aGUgcmVuZGVyZXIgd2l0aG91dCB0aGUgc2hhZG93IGluY2x1ZGVkLgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OlJlbmRlclNWR01vZGVsT2JqZWN0KTog
UmVuZGVyZXJzIGRvIG5vdCBoYXZlIGEgc2hhZG93IGJ5IGRlZmF1bHQuCisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHTW9kZWxPYmplY3Q6OnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5n
U1ZHU2hhZG93KTogUmV0dXJuIHRoZSBjYWNoZWQgcmVwYWludCByZWN0IGZvciB0aGUgcmVuZGVy
ZXIgd2l0aG91dCB0aGUgc2hhZG93IGluY2x1ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHTW9kZWxPYmplY3Q6Omhhc1NWR1NoYWRvdyk6IFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGUg
cmVuZGVyZXIgaGFzIGEgc2hhZG93LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OnNldEhhc1NWR1NoYWRvdyk6IFNldCB3aGV0aGVyIG9yIG5vdCB0aGUgcmVuZGVyZXIg
aGFzIGEgc2hhZG93LgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjpSZW5kZXJTVkdSb290KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KTog
QXBwbHkgdGhlIHNoYWRvdyBiZWZvcmUgY2xpcHBpbmcgdG8gdGhlIHZpZXdwb3J0LCBzbyB3ZSBk
cmF3IHNoYWRvd3MgZm9yIGVsZW1lbnRzIG91dHNpZGUgdGhlIHZpZXdwb3J0LgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6dXBkYXRlQ2FjaGVkQm91bmRhcmllcyk6IENhY2hlIHRo
ZSByZXBhaW50IHJlY3QgYmVmb3JlIGludGVyc2VjdGluZyBpdCB3aXRoIHRoZSBzaGFkb3cuCisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdSb290OjpoYXNTVkdTaGFkb3cpOiBSZXR1cm4gd2hldGhlciBvciBub3QgdGhl
IHJlbmRlcmVyIGhhcyBhIHNoYWRvdy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6
OnNldEhhc1NWR1NoYWRvdyk6IFNldCB3aGV0aGVyIG9yIG5vdCB0aGUgcmVuZGVyZXIgaGFzIGEg
c2hhZG93LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6cmVwYWludFJlY3RJbkxv
Y2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBh
aW50IHJlY3QgZm9yIHRoZSByZW5kZXJlciB3aXRob3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdTaGFwZTo6dXBkYXRlUmVwYWludEJvdW5kaW5nQm94KTogQ2FjaGUgdGhl
IHJlcGFpbnQgcmVjdCBiZWZvcmUgaW50ZXJzZWN0aW5nIGl0IHdpdGggdGhlIHNoYWRvdy4KKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdTaGFwZTo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdT
VkdTaGFkb3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBhaW50IHJlY3QgZm9yIHRoZSByZW5kZXJl
ciB3aXRob3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6
OnJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFk
b3cpOiBSZXR1cm4gdGhlIGNhY2hlZCByZXBhaW50IHJlY3QgZm9yIHRoZSByZW5kZXJlciB3aXRo
b3V0IHRoZSBzaGFkb3cgaW5jbHVkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBw
b3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6IEFwcGx5IHNoYWRvd3MgYXMgd2Ug
d2FsayB0aHJvdWdoIG91ciBwYXJlbnRzLCBpbnN0ZWFkIG9mIG9ubHkgYXBwbHlpbmcgdGhlIHJl
bmRlcmVyJ3Mgb3duIHNoYWRvdy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6
OnJlbmRlcmVySGFzU1ZHU2hhZG93KTogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSByZW5kZXJl
ciBoYXMgYSBzaGFkb3cuCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0OjpzZXRS
ZW5kZXJlckhhc1NWR1NoYWRvdyk6IFNldCB3aGV0aGVyIG9yIG5vdCB0aGUgcmVuZGVyZXIgaGFz
IGEgc2hhZG93LgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0
UmVwYWludFJlY3RXaXRoU2hhZG93cyk6IFdhbGsgdGhyb3VnaCB0aGUgZWxlbWVudCdzIHBhcmVu
dHMsIGFkZGluZyBzaGFkb3dzIHRvIHRoZSByZXBhaW50IHJlY3QgYXMgd2UgZ28sIGV2ZW50dWFs
bHkKKyAgICAgICAgdHJhbnNmb3JtaW5nIHRoZSByZXBhaW50IHJlY3QgYmFjayBpbnRvIGxvY2Fs
IGNvb3JkaW5hdGVzLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJz
ZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKTogRG9uJ3QgYWRkIHNoYWRvd3MgYnkgZGVmYXVs
dCwganVzdCBvdGhlciByZXNvdXJjZXMsIHNvIHRoYXQgd2UgY2FuIGNhY2hlIHJlcGFpbnQgcmVj
dHMgd2l0aCBhbmQgd2l0aG91dCBzaGFkb3dzLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5oOgorCiAyMDEyLTExLTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW1Y4XSBXZSBzaG91bGQgaGlkZSB0aGUgRE9NV3JhcHBlck1hcHMg
aW5zaWRlIERPTURhdGFTdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAppbmRleCA3NGU1MDY2Li41MzczZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcApAQCAtMjg0LDYgKzI4NCwxMCBAQCB2b2lkIFJlbmRlck9iamVjdDo6
YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGls
ZCkKICAgICBpZiAoIWNoaWxkcmVuKQogICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoU1ZH
KQorICAgIFNWR1JlbmRlclN1cHBvcnQ6OnNldFJlbmRlcmVySGFzU1ZHU2hhZG93KG5ld0NoaWxk
LCBTVkdSZW5kZXJTdXBwb3J0OjpyZW5kZXJlckhhc1NWR1NoYWRvdyh0aGlzKSB8fCBTVkdSZW5k
ZXJTdXBwb3J0OjpyZW5kZXJlckhhc1NWR1NoYWRvdyhuZXdDaGlsZCkpOworI2VuZGlmCisKICAg
ICBib29sIG5lZWRzVGFibGUgPSBmYWxzZTsKIAogICAgIGlmIChuZXdDaGlsZC0+aXNSZW5kZXJU
YWJsZUNvbCgpKSB7CkBAIC0xOTE1LDYgKzE5MTksMTAgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3QKICAgICBpZiAoc19hZmZlY3RzUGFyZW50QmxvY2spCiAgICAgICAgIGhhbmRsZUR5bmFtaWNG
bG9hdFBvc2l0aW9uQ2hhbmdlKCk7CiAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIFNWR1JlbmRlclN1
cHBvcnQ6OnNldFJlbmRlcmVySGFzU1ZHU2hhZG93KHRoaXMsIChtX3BhcmVudCAmJiBTVkdSZW5k
ZXJTdXBwb3J0OjpyZW5kZXJlckhhc1NWR1NoYWRvdyhtX3BhcmVudCkpIHx8IChzdHlsZSgpLT5z
dmdTdHlsZSgpICYmIHN0eWxlKCktPnN2Z1N0eWxlKCktPnNoYWRvdygpKSk7CisjZW5kaWYKKwog
ICAgIGlmICghbV9wYXJlbnQpCiAgICAgICAgIHJldHVybjsKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKaW5kZXggNDc5NDdlMS4uNjYx
YjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFn
ZS5jcHAKQEAgLTkyLDggKzkyLDEyIEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6OmxheW91dCgpCiAg
ICAgfQogCiAgICAgaWYgKG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlKSB7Ci0gICAgICAgIG1fcmVw
YWludEJvdW5kaW5nQm94ID0gbV9vYmplY3RCb3VuZGluZ0JveDsKLSAgICAgICAgU1ZHUmVuZGVy
U3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKHRoaXMsIG1fcmVwYWlu
dEJvdW5kaW5nQm94KTsKKyAgICAgICAgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFk
b3cgPSBtX29iamVjdEJvdW5kaW5nQm94OworICAgICAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRl
cnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3hF
eGNsdWRpbmdTaGFkb3cpOworCisgICAgICAgIG1fcmVwYWludEJvdW5kaW5nQm94ID0gbV9yZXBh
aW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7CisgICAgICAgIFNWR1JlbmRlclN1cHBvcnQ6
OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3ModGhpcywgbV9yZXBhaW50Qm91bmRpbmdC
b3gpOworCiAgICAgICAgIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlID0gZmFsc2U7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKaW5kZXgg
OWNkM2VlYS4uOTA1YThkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHSW1hZ2UuaApAQCAtNTcsNiArNTcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgRmxv
YXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RCb3VuZGlu
Z0JveDsgfQogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3Qg
eyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveDsgfQogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJl
cGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Qm91
bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29y
ZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmVw
YWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRk
Rm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIApA
QCAtNzUsNiArNzYsNyBAQCBwcml2YXRlOgogICAgIEFmZmluZVRyYW5zZm9ybSBtX2xvY2FsVHJh
bnNmb3JtOwogICAgIEZsb2F0UmVjdCBtX29iamVjdEJvdW5kaW5nQm94OwogICAgIEZsb2F0UmVj
dCBtX3JlcGFpbnRCb3VuZGluZ0JveDsKKyAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdC
b3hFeGNsdWRpbmdTaGFkb3c7CiAgICAgT3duUHRyPFJlbmRlckltYWdlUmVzb3VyY2U+IG1faW1h
Z2VSZXNvdXJjZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKaW5kZXggN2JkY2Q3NC4uODM4NjY3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVj
dC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6UmVuZGVyU1ZHTW9kZWxPYmplY3QoU1ZHU3R5bGVkRWxlbWVudCogbm9kZSkK
ICAgICA6IFJlbmRlck9iamVjdChub2RlKQorICAgICwgbV9oYXNTVkdTaGFkb3coZmFsc2UpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuaAppbmRleCAwYzRlYzViLi5hNjQzNmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCkBAIC02Niw2ICs2Niwx
MCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY2hlY2tJbnRlcnNlY3Rpb24oUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgc3RhdGljIGJvb2wgY2hlY2tFbmNsb3N1cmUo
UmVuZGVyT2JqZWN0KiwgY29uc3QgRmxvYXRSZWN0Jik7CiAKKyAgICB2aXJ0dWFsIEZsb2F0UmVj
dCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0
IHsgcmV0dXJuIHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCk7IH0KKyAgICBib29sIGhh
c1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1faGFzU1ZHU2hhZG93OyB9CisgICAgdm9pZCBz
ZXRIYXNTVkdTaGFkb3coYm9vbCBoYXNTaGFkb3cpIHsgbV9oYXNTVkdTaGFkb3cgPSBoYXNTaGFk
b3c7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsK
IApAQCAtNzMsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBu
ZXZlciBiZSBjYWxsZWQsIFNWRyB1c2VzIGEgZGlmZmVyZW50IG5vZGVBdFBvaW50IG1ldGhvZAog
ICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlv
dXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBhYnNvbHV0ZUZvY3VzUmluZ1F1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+Jik7
CisgICAgYm9vbCBtX2hhc1NWR1NoYWRvdzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IDI3MzNhZTQuLjU1NWQ1MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAt
NjAsNiArNjAsNyBAQCBSZW5kZXJTVkdSb290OjpSZW5kZXJTVkdSb290KFNWR1N0eWxlZEVsZW1l
bnQqIG5vZGUpCiAgICAgLCBtX29iamVjdEJvdW5kaW5nQm94VmFsaWQoZmFsc2UpCiAgICAgLCBt
X2lzTGF5b3V0U2l6ZUNoYW5nZWQoZmFsc2UpCiAgICAgLCBtX25lZWRzQm91bmRhcmllc09yVHJh
bnNmb3JtVXBkYXRlKHRydWUpCisgICAgLCBtX2hhc1NWR1NoYWRvdyhmYWxzZSkKIHsKIH0KIApA
QCAtMzg1LDEzICszODYsMTMgQEAgdm9pZCBSZW5kZXJTVkdSb290Ojpjb21wdXRlRmxvYXRSZWN0
Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q28KICAgICAvLyBhbmQg
dGhlbiBjYWxsIFJlbmRlckJveCdzIG1ldGhvZCB0byBoYW5kbGUgYWxsIHRoZSBub3JtYWwgQ1NT
IEJveCBtb2RlbCBiaXRzCiAgICAgcmVwYWludFJlY3QgPSBtX2xvY2FsVG9Cb3JkZXJCb3hUcmFu
c2Zvcm0ubWFwUmVjdChyZXBhaW50UmVjdCk7CiAKLSAgICAvLyBBcHBseSBpbml0aWFsIHZpZXdw
b3J0IGNsaXAgLSBub3QgYWZmZWN0ZWQgYnkgb3ZlcmZsb3cgc2V0dGluZ3MgICAgCi0gICAgcmVw
YWludFJlY3QuaW50ZXJzZWN0KHBpeGVsU25hcHBlZEJvcmRlckJveFJlY3QoKSk7Ci0KICAgICBj
b25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZSgpLT5zdmdTdHlsZSgpOwogICAg
IGlmIChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdmdTdHlsZS0+c2hhZG93KCkpCiAgICAg
ICAgIHNoYWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7CiAKKyAgICAvLyBB
cHBseSBpbml0aWFsIHZpZXdwb3J0IGNsaXAgLSBub3QgYWZmZWN0ZWQgYnkgb3ZlcmZsb3cgc2V0
dGluZ3MKKyAgICByZXBhaW50UmVjdC5pbnRlcnNlY3QocGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVj
dCgpKTsKKwogICAgIExheW91dFJlY3QgcmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocmVwYWludFJl
Y3QpOwogICAgIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVjdEZvclJlcGFpbnQocmVwYWludENv
bnRhaW5lciwgcmVjdCwgZml4ZWQpOwogICAgIHJlcGFpbnRSZWN0ID0gcmVjdDsKQEAgLTQxNSw5
ICs0MTYsMTIgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdSb290OjpwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWwKIAogdm9pZCBSZW5kZXJTVkdSb290
Ojp1cGRhdGVDYWNoZWRCb3VuZGFyaWVzKCkKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21w
dXRlQ29udGFpbmVyQm91bmRpbmdCb3hlcyh0aGlzLCBtX29iamVjdEJvdW5kaW5nQm94LCBtX29i
amVjdEJvdW5kaW5nQm94VmFsaWQsIG1fc3Ryb2tlQm91bmRpbmdCb3gsIG1fcmVwYWludEJvdW5k
aW5nQm94KTsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhS
ZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOwotICAgIG1fcmVwYWludEJvdW5k
aW5nQm94LmluZmxhdGUoYm9yZGVyQW5kUGFkZGluZ1dpZHRoKCkpOworICAgIFNWR1JlbmRlclN1
cHBvcnQ6OmNvbXB1dGVDb250YWluZXJCb3VuZGluZ0JveGVzKHRoaXMsIG1fb2JqZWN0Qm91bmRp
bmdCb3gsIG1fb2JqZWN0Qm91bmRpbmdCb3hWYWxpZCwgbV9zdHJva2VCb3VuZGluZ0JveCwgbV9y
ZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3cpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6
OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFJlc291cmNlcyh0aGlzLCBtX3JlcGFpbnRCb3VuZGlu
Z0JveEV4Y2x1ZGluZ1NoYWRvdyk7CisgICAgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdT
aGFkb3cuaW5mbGF0ZShib3JkZXJBbmRQYWRkaW5nV2lkdGgoKSk7CisKKyAgICBtX3JlcGFpbnRC
b3VuZGluZ0JveCA9IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OworICAgIFNW
R1JlbmRlclN1cHBvcnQ6OmludGVyc2VjdFJlcGFpbnRSZWN0V2l0aFNoYWRvd3ModGhpcywgbV9y
ZXBhaW50Qm91bmRpbmdCb3gpOwogfQogCiBib29sIFJlbmRlclNWR1Jvb3Q6Om5vZGVBdFBvaW50
KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNv
bnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9p
bnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDFlMTEyYTEu
LjEzZDc4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5oCkBAIC02Nyw2ICs2Nyw5IEBAIHB1YmxpYzoKICAgICAvLyBtZXRob2QgZHVyaW5nIGxheW91
dCB3aGVuIHRoZXkgYXJlIGludmFsaWRhdGVkIGJ5IGEgZmlsdGVyLgogICAgIHN0YXRpYyB2b2lk
IGFkZFJlc291cmNlRm9yQ2xpZW50SW52YWxpZGF0aW9uKFJlbmRlclNWR1Jlc291cmNlQ29udGFp
bmVyKik7CiAKKyAgICBib29sIGhhc1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1faGFzU1ZH
U2hhZG93OyB9CisgICAgdm9pZCBzZXRIYXNTVkdTaGFkb3coYm9vbCBoYXNTaGFkb3cpIHsgbV9o
YXNTVkdTaGFkb3cgPSBoYXNTaGFkb3c7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4oKTsg
fQogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRy
ZW4oKSBjb25zdCB7IHJldHVybiBjaGlsZHJlbigpOyB9CkBAIC05Myw2ICs5Niw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdCB7IHJl
dHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tl
Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX3N0cm9rZUJvdW5kaW5nQm94OyB9CiAgICAg
dmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdCB7
IHJldHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveDsgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJl
cGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7IH0KIAogICAgIHZpcnR1
YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQm
LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91
dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAKQEAg
LTExNCwxMSArMTE4LDEzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX29iamVjdEJvdW5kaW5nQm94
VmFsaWQ7CiAgICAgRmxvYXRSZWN0IG1fc3Ryb2tlQm91bmRpbmdCb3g7CiAgICAgRmxvYXRSZWN0
IG1fcmVwYWludEJvdW5kaW5nQm94OworICAgIEZsb2F0UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0Jv
eEV4Y2x1ZGluZ1NoYWRvdzsKICAgICBtdXRhYmxlIEFmZmluZVRyYW5zZm9ybSBtX2xvY2FsVG9Q
YXJlbnRUcmFuc2Zvcm07CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxUb0JvcmRlckJveFRy
YW5zZm9ybTsKICAgICBIYXNoU2V0PFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKj4gbV9yZXNv
dXJjZXNOZWVkaW5nVG9JbnZhbGlkYXRlQ2xpZW50czsKICAgICBib29sIG1faXNMYXlvdXRTaXpl
Q2hhbmdlZCA6IDE7CiAgICAgYm9vbCBtX25lZWRzQm91bmRhcmllc09yVHJhbnNmb3JtVXBkYXRl
IDogMTsKKyAgICBib29sIG1faGFzU1ZHU2hhZG93IDogMTsKIH07CiAKIGlubGluZSBSZW5kZXJT
VkdSb290KiB0b1JlbmRlclNWR1Jvb3QoUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwCmluZGV4IDVkY2VhYzMu
LjAxOTI2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHU2hhcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
U2hhcGUuY3BwCkBAIC00MDcsOCArNDA3LDExIEBAIEZsb2F0UmVjdCBSZW5kZXJTVkdTaGFwZTo6
Y2FsY3VsYXRlU3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdAogCiB2b2lkIFJlbmRlclNWR1NoYXBl
Ojp1cGRhdGVSZXBhaW50Qm91bmRpbmdCb3goKQogewotICAgIG1fcmVwYWludEJvdW5kaW5nQm94
ID0gc3Ryb2tlQm91bmRpbmdCb3goKTsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RS
ZXBhaW50UmVjdFdpdGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOworICAg
IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93ID0gc3Ryb2tlQm91bmRpbmdCb3go
KTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJj
ZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3cpOworCisgICAgbV9y
ZXBhaW50Qm91bmRpbmdCb3ggPSBtX3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsK
KyAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhTaGFkb3dzKHRo
aXMsIG1fcmVwYWludEJvdW5kaW5nQm94KTsKIH0KIAogZmxvYXQgUmVuZGVyU1ZHU2hhcGU6OnN0
cm9rZVdpZHRoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHU2hhcGUuaAppbmRleCA0Nzk2ZThjLi42MGEyZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIHN0cm9rZUNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcXVp
cmVzU3Ryb2tlID0gdHJ1ZSk7CiAKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdElu
TG9jYWxDb29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94OyB9
CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNs
dWRpbmdTVkdTaGFkb3coKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGlu
Z0JveEV4Y2x1ZGluZ1NoYWRvdzsgfQogICAgIHZpcnR1YWwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFRyYW5zZm9y
bTsgfQogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNmb3JtKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2NhbFRyYW5zZm9ybTsgfQogCkBAIC0xMzUsNiArMTM2LDcgQEAgcHJpdmF0
ZToKIAogcHJpdmF0ZToKICAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdCb3g7CisgICAg
RmxvYXRSZWN0IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OwogICAgIEFmZmlu
ZVRyYW5zZm9ybSBtX2xvY2FsVHJhbnNmb3JtOwogICAgIE93blB0cjxQYXRoPiBtX3BhdGg7CiAg
ICAgVmVjdG9yPE1hcmtlclBvc2l0aW9uPiBtX21hcmtlclBvc2l0aW9uczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCmluZGV4IDY5N2E0
MzkuLmU2ZDgzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJTdXBwb3J0LmNwcApAQCAtNDYsNiArNDYsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitGbG9hdFJlY3QgU1ZHUmVuZGVyU3VwcG9ydDo6cmVwYWludFJlY3RGb3JSZW5kZXJlcklu
TG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyhjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKK3sKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFJlbmRlclNWR0Jsb2NrLgor
CisgICAgaWYgKG9iamVjdC0+aXNTVkdTaGFwZSgpIHx8IG9iamVjdC0+aXNTVkdJbWFnZSgpIHx8
IG9iamVjdC0+aXNTVkdDb250YWluZXIoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFJlbmRlclNWR01vZGVsT2JqZWN0Kj4ob2JqZWN0KS0+cmVwYWludFJlY3RJbkxvY2FsQ29v
cmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3coKTsKKworICAgIHJldHVybiBvYmplY3QtPnJlcGFp
bnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCk7Cit9CisKIExheW91dFJlY3QgU1ZHUmVuZGVyU3Vw
cG9ydDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QsIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpCiB7CiAgICAg
Ly8gUmV0dXJuIGVhcmx5IGZvciBhbnkgY2FzZXMgd2hlcmUgd2UgZG9uJ3QgYWN0dWFsbHkgcGFp
bnQKQEAgLTU0LDcgKzY0LDEwIEBAIExheW91dFJlY3QgU1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBl
ZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiBvCiAKICAgICAvLyBQ
YXNzIG91ciBsb2NhbCBwYWludCByZWN0IHRvIGNvbXB1dGVSZWN0Rm9yUmVwYWludCgpIHdoaWNo
IHdpbGwKICAgICAvLyBtYXAgdG8gcGFyZW50IGNvb3JkcyBhbmQgcmVjdXJzZSB1cCB0aGUgcGFy
ZW50IGNoYWluLgotICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IG9iamVjdC0+cmVwYWludFJl
Y3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKKyAgICBGbG9hdFJlY3QgcmVwYWludFJlY3QgPSByZXBh
aW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KG9i
amVjdCk7CisgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gb2JqZWN0LT5zdHls
ZSgpLT5zdmdTdHlsZSgpOworICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdmdT
dHlsZS0+c2hhZG93KCkpCisgICAgICAgIHNoYWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBh
aW50UmVjdCk7CiAgICAgb2JqZWN0LT5jb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChyZXBhaW50
Q29udGFpbmVyLCByZXBhaW50UmVjdCk7CiAgICAgcmV0dXJuIGVuY2xvc2luZ0xheW91dFJlY3Qo
cmVwYWludFJlY3QpOwogfQpAQCAtMjc4LDIzICsyOTEsNzMgQEAgYm9vbCBTVkdSZW5kZXJTdXBw
b3J0Ojppc092ZXJmbG93SGlkZGVuKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogICAgIHJl
dHVybiBvYmplY3QtPnN0eWxlKCktPm92ZXJmbG93WCgpID09IE9ISURERU47CiB9CiAKLXZvaWQg
U1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0
IFJlbmRlck9iamVjdCogb2JqZWN0LCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0KQorYm9vbCBTVkdS
ZW5kZXJTdXBwb3J0OjpyZW5kZXJlckhhc1NWR1NoYWRvdyhjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKK3sKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFJlbmRlclNWR0Jsb2NrLgor
CisgICAgaWYgKG9iamVjdC0+aXNTVkdTaGFwZSgpIHx8IG9iamVjdC0+aXNTVkdJbWFnZSgpIHx8
IG9iamVjdC0+aXNTVkdDb250YWluZXIoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFJlbmRlclNWR01vZGVsT2JqZWN0Kj4ob2JqZWN0KS0+aGFzU1ZHU2hhZG93KCk7CisKKyAg
ICBpZiAob2JqZWN0LT5pc1NWR1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFJlbmRlclNWR1Jvb3QqPihvYmplY3QpLT5oYXNTVkdTaGFkb3coKTsKKworICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjpzZXRSZW5kZXJlckhhc1NWR1No
YWRvdyhSZW5kZXJPYmplY3QqIG9iamVjdCwgYm9vbCBoYXNTaGFkb3cpCit7CisgICAgLy8gRklY
TUU6IEFkZCBzdXBwb3J0IGZvciBSZW5kZXJTVkdCbG9jay4KKworICAgIGlmIChvYmplY3QtPmlz
U1ZHU2hhcGUoKSB8fCBvYmplY3QtPmlzU1ZHSW1hZ2UoKSB8fCBvYmplY3QtPmlzU1ZHQ29udGFp
bmVyKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTVkdNb2RlbE9iamVjdCo+
KG9iamVjdCktPnNldEhhc1NWR1NoYWRvdyhoYXNTaGFkb3cpOworCisgICAgaWYgKG9iamVjdC0+
aXNTVkdSb290KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTVkdSb290Kj4o
b2JqZWN0KS0+c2V0SGFzU1ZHU2hhZG93KGhhc1NoYWRvdyk7Cit9CisKK3ZvaWQgU1ZHUmVuZGVy
U3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoU2hhZG93cyhjb25zdCBSZW5kZXJPYmpl
Y3QqIG9iamVjdCwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCkKIHsKKyAgICAvLyBTaW5jZSAtd2Vi
a2l0LXN2Zy1zaGFkb3cgZW5hYmxlcyBzaGFkb3cgZHJhd2luZyBmb3IgaXRzIGNoaWxkcmVuLCBi
dXQgaXRzIGNoaWxkcmVuCisgICAgLy8gZG9uJ3QgaW5oZXJpdCB0aGUgc2hhZG93IGluIHRoZWly
IFNWR1JlbmRlclN0eWxlLCB3ZSBuZWVkIHRvIHNlYXJjaCBvdXIgcGFyZW50cyBmb3IKKyAgICAv
LyBzaGFkb3dzIGluIG9yZGVyIHRvIGNvcnJlY3RseSBjb21wdXRlIG91ciByZXBhaW50IHJlY3Qu
CisKICAgICBBU1NFUlQob2JqZWN0KTsKIAotICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG9iamVj
dC0+c3R5bGUoKTsKLSAgICBBU1NFUlQoc3R5bGUpOworICAgIGNvbnN0IFJlbmRlck9iamVjdCog
Y3VycmVudE9iamVjdCA9IG9iamVjdDsKIAotICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdT
dHlsZSA9IHN0eWxlLT5zdmdTdHlsZSgpOwotICAgIEFTU0VSVChzdmdTdHlsZSk7CisgICAgQWZm
aW5lVHJhbnNmb3JtIGxvY2FsVG9Sb290VHJhbnNmb3JtOworCisgICAgd2hpbGUgKGN1cnJlbnRP
YmplY3QgJiYgcmVuZGVyZXJIYXNTVkdTaGFkb3coY3VycmVudE9iamVjdCkpIHsKKyAgICAgICAg
UmVuZGVyU3R5bGUqIHN0eWxlID0gY3VycmVudE9iamVjdC0+c3R5bGUoKTsKKyAgICAgICAgQVNT
RVJUKHN0eWxlKTsKKworICAgICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBz
dHlsZS0+c3ZnU3R5bGUoKTsKKyAgICAgICAgQVNTRVJUKHN2Z1N0eWxlKTsKIAotICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSBjb25zdF9jYXN0PFJlbmRlck9iamVjdCo+KG9iamVjdCk7Ci0g
ICAgU1ZHUmVzb3VyY2VzKiByZXNvdXJjZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVz
b3VyY2VzRm9yUmVuZGVyT2JqZWN0KHJlbmRlcmVyKTsKLSAgICBpZiAoIXJlc291cmNlcykgewog
ICAgICAgICBpZiAoY29uc3QgU2hhZG93RGF0YSogc2hhZG93ID0gc3ZnU3R5bGUtPnNoYWRvdygp
KQogICAgICAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsK
KworICAgICAgICByZXBhaW50UmVjdCA9IGN1cnJlbnRPYmplY3QtPmxvY2FsVG9QYXJlbnRUcmFu
c2Zvcm0oKS5tYXBSZWN0KHJlcGFpbnRSZWN0KTsKKyAgICAgICAgbG9jYWxUb1Jvb3RUcmFuc2Zv
cm0gKj0gY3VycmVudE9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpOworCisgICAgICAg
IGN1cnJlbnRPYmplY3QgPSBjdXJyZW50T2JqZWN0LT5wYXJlbnQoKTsKKyAgICB9OworCisgICAg
aWYgKGxvY2FsVG9Sb290VHJhbnNmb3JtLmlzSWRlbnRpdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQWZmaW5lVHJhbnNmb3JtIHJvb3RUb0xvY2FsVHJhbnNmb3JtID0gbG9jYWxUb1Jvb3RU
cmFuc2Zvcm0uaW52ZXJzZSgpOworICAgIHJlcGFpbnRSZWN0ID0gcm9vdFRvTG9jYWxUcmFuc2Zv
cm0ubWFwUmVjdChyZXBhaW50UmVjdCk7Cit9CisKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50
ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0
LCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0KQoreworICAgIEFTU0VSVChvYmplY3QpOworCisgICAg
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4ob2JqZWN0
KTsKKyAgICBTVkdSZXNvdXJjZXMqIHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNo
ZWRSZXNvdXJjZXNGb3JSZW5kZXJPYmplY3QocmVuZGVyZXIpOworICAgIGlmICghcmVzb3VyY2Vz
KQogICAgICAgICByZXR1cm47Ci0gICAgfQogCiAjaWYgRU5BQkxFKEZJTFRFUlMpCiAgICAgaWYg
KFJlbmRlclNWR1Jlc291cmNlRmlsdGVyKiBmaWx0ZXIgPSByZXNvdXJjZXMtPmZpbHRlcigpKQpA
QCAtMzA2LDkgKzM2OSw2IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWlu
dFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqCiAKICAgICBpZiAoUmVu
ZGVyU1ZHUmVzb3VyY2VNYXNrZXIqIG1hc2tlciA9IHJlc291cmNlcy0+bWFza2VyKCkpCiAgICAg
ICAgIHJlcGFpbnRSZWN0LmludGVyc2VjdChtYXNrZXItPnJlc291cmNlQm91bmRpbmdCb3gocmVu
ZGVyZXIpKTsKLQotICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdmdTdHlsZS0+
c2hhZG93KCkpCi0gICAgICAgIHNoYWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVj
dCk7CiB9CiAKIGJvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6ZmlsdGVyc0ZvcmNlQ29udGFpbmVyTGF5
b3V0KFJlbmRlck9iamVjdCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclN1cHBvcnQuaAppbmRleCAxNDNhZTUyLi5kYWNiZDU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaApAQCAtNTAsNiAr
NTAsOCBAQCBwdWJsaWM6CiAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIGRldGVybWluaW5nIHdoZXRl
ciBvdmVyZmxvdyBpcyBoaWRkZW4KICAgICBzdGF0aWMgYm9vbCBpc092ZXJmbG93SGlkZGVuKGNv
bnN0IFJlbmRlck9iamVjdCopOwogCisgICAgc3RhdGljIHZvaWQgaW50ZXJzZWN0UmVwYWludFJl
Y3RXaXRoU2hhZG93cyhjb25zdCBSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3QmKTsKKwogICAgIC8v
IENhbGN1bGF0ZXMgdGhlIHJlcGFpbnRSZWN0IGluIGNvbWJpbmF0aW9uIHdpdGggZmlsdGVyLCBj
bGlwcGVyIGFuZCBtYXNrZXIgaW4gbG9jYWwgY29vcmRpbmF0ZXMuCiAgICAgc3RhdGljIHZvaWQg
aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCosIEZs
b2F0UmVjdCYpOwogCkBAIC02Myw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBw
YWludEluZm9JbnRlcnNlY3RzUmVwYWludFJlY3QoY29uc3QgRmxvYXRSZWN0JiBsb2NhbFJlcGFp
bnRSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVHJhbnNmb3JtLCBjb25zdCBQYWlu
dEluZm8mKTsKIAogICAgIC8vIEltcG9ydGFudCBmdW5jdGlvbnMgdXNlZCBieSBuZWFybHkgYWxs
IFNWRyByZW5kZXJlcnMgY2VudHJhbGl6aW5nIGNvb3JkaW5hdGUgdHJhbnNmb3JtYXRpb25zIC8g
cmVwYWludCByZWN0IGNhbGN1bGF0aW9ucworICAgIHN0YXRpYyBGbG9hdFJlY3QgcmVwYWludFJl
Y3RGb3JSZW5kZXJlckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyhjb25zdCBS
ZW5kZXJPYmplY3QqKTsKICAgICBzdGF0aWMgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0
Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyKTsKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJPYmplY3QqLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkKTsKICAgICBzdGF0aWMgdm9pZCBtYXBM
b2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCBzbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CkBAIC03NCw2ICs3NywxMCBA
QCBwdWJsaWM6CiAgICAgLy8gRGV0ZXJtaW5lcyBpZiBhbnkgYW5jZXN0b3IncyB0cmFuc2Zvcm0g
aGFzIGNoYW5nZWQuCiAgICAgc3RhdGljIGJvb2wgdHJhbnNmb3JtVG9Sb290Q2hhbmdlZChSZW5k
ZXJPYmplY3QqKTsKIAorICAgIC8vIEhlbHBlciBmdW5jdGlvbnMgdG8ga2VlcCB0cmFjayBvZiB3
aGV0aGVyIGEgcmVuZGVyZXIgaGFzIGFuIFNWRyBzaGFkb3cgYXBwbGllZC4KKyAgICBzdGF0aWMg
Ym9vbCByZW5kZXJlckhhc1NWR1NoYWRvdyhjb25zdCBSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0
aWMgdm9pZCBzZXRSZW5kZXJlckhhc1NWR1NoYWRvdyhSZW5kZXJPYmplY3QqLCBib29sIGhhc1No
YWRvdyk7CisKICAgICAvLyBGSVhNRTogVGhlc2UgbWV0aG9kcyBkbyBub3QgYmVsb25nIGhlcmUu
CiAgICAgc3RhdGljIGNvbnN0IFJlbmRlclNWR1Jvb3QqIGZpbmRUcmVlUm9vdE9iamVjdChjb25z
dCBSZW5kZXJPYmplY3QqKTsKIAo=
</data>
<flag name="review"
          id="187332"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>