<?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>97533</bug_id>
          
          <creation_ts>2012-09-25 00:30:14 -0700</creation_ts>
          <short_desc>[CSSRegions]Add support for auto-height regions (without region-breaks)</short_desc>
          <delta_ts>2012-11-05 01:37:41 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>66645</blocked>
    
    <blocked>91097</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihnea Ovidenie">mihnea</reporter>
          <assigned_to name="Mihnea Ovidenie">mihnea</assigned_to>
          <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>mark.lam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>727354</commentid>
    <comment_count>0</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-09-25 00:30:14 -0700</bug_when>
    <thetext>Implement processing model for auto-height regions as described in http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps, but without taking region-breaks into account, which will be addressed in a follow up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727596</commentid>
    <comment_count>1</comment_count>
      <attachid>165605</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-09-25 07:01:54 -0700</bug_when>
    <thetext>Created attachment 165605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727600</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 07:04:52 -0700</bug_when>
    <thetext>Attachment 165605 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/fast...&quot; exit_code: 1
Source/WebCore/rendering/RenderView.cpp:149:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 29 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>729714</commentid>
    <comment_count>3</comment_count>
      <attachid>165605</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-09-27 11:10:21 -0700</bug_when>
    <thetext>Comment on attachment 165605
Patch

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

&gt; Source/WebCore/rendering/FlowThreadController.cpp:179
&gt; +bool FlowThreadController::resetRegionsOverrideLogicalContentHeight()

Not a huge fan of reset functions returning some bool parameter. I don&apos;t understand why FlowThreadController::hasAutoLogicalHeightRegions() is not enough as you check it in RenderView::layout().

&gt; Source/WebCore/rendering/FlowThreadController.cpp:185
&gt; +        if (flowRenderer-&gt;resetRegionsOverrideLogicalContentHeight())
&gt; +            hadFlowsWithAutoLogicalHeightRegions = true;

Maybe better written:

hadFlowsWithAutoLogicalHeightRegions |= flowRenderer-&gt;resetRegionsOverrideLogicalContentHeight();

(removes the need for the branch).

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:226
&gt; +        if (region-&gt;needsOverrideLogicalContentHeightComputation())
&gt; +            // If we have an auto logical height region for which we did not compute a height yet,
&gt; +            // then we cannot compute and update the height of this flow.
&gt; +            return;

Please put curly braces around multi-line if () as per our style guide.

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:812
&gt; +        region-&gt;setNeedsLayout(true);

Please use the following instead:

region-&gt;setNeedsLayout(true, MarkOnlyThis)

Calling setNeedsLayout(true, MarkContainingBlockChain) during layout is a programming mistake that we should ASSERT against (but that&apos;s another debate). Here I think it is not too bad but I would rather avoid anti-patterns.

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:825
&gt; +        region-&gt;setNeedsLayout(true);

Ditto.

&gt; Source/WebCore/rendering/RenderView.cpp:185
&gt;      if (needsLayout()) {

I would really push this needsLayout() call above and make it an early return (before we initialize the LayoutState but after the ASSERT).

&gt; Source/WebCore/rendering/RenderView.cpp:199
&gt; +        m_layoutPhase = RenderViewNormalLayout;
&gt; +        setNeedsLayout(false);

This is confusing to reset the state to the normal layout for the second phase and doesn&apos;t make much sense.

Reading the code, you would assume the setNeedsLayout(false) will trigger an ASSERT in layoutContent but no due to marking below. AFAICT, you *know* you should have at least one region to lay out.

&gt; Source/WebCore/rendering/RenderView.h:191
&gt; +    enum RenderViewLayoutPhase { RenderViewNormalLayout, UnconstrainedFlowThreadsLayoutInAutoLogicalHeightRegions };

You are assuming that we always do a normal layout and may do a pre-unconstrained flow thread layout. You could just do an unconstrained phase first (regardless of whether there is any auto-height regions) and then if you had auto-height region do a follow-up constrained phase. I would say this would be more readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733493</commentid>
    <comment_count>4</comment_count>
      <attachid>166835</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-10-03 02:42:51 -0700</bug_when>
    <thetext>Created attachment 166835
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733502</commentid>
    <comment_count>5</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-10-03 02:47:43 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 165605 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165605&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/FlowThreadController.cpp:179
&gt; &gt; +bool FlowThreadController::resetRegionsOverrideLogicalContentHeight()
&gt; 
&gt; Not a huge fan of reset functions returning some bool parameter. I don&apos;t understand why FlowThreadController::hasAutoLogicalHeightRegions() is not enough as you check it in RenderView::layout().
&gt; 

You are right, resetRegionsOverrideLogicalContentHeight has void return type.

&gt; &gt; Source/WebCore/rendering/FlowThreadController.cpp:185
&gt; &gt; +        if (flowRenderer-&gt;resetRegionsOverrideLogicalContentHeight())
&gt; &gt; +            hadFlowsWithAutoLogicalHeightRegions = true;
&gt; 
&gt; Maybe better written:
&gt; 
&gt; hadFlowsWithAutoLogicalHeightRegions |= flowRenderer-&gt;resetRegionsOverrideLogicalContentHeight();
&gt; 
&gt; (removes the need for the branch).
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderFlowThread.cpp:226
&gt; &gt; +        if (region-&gt;needsOverrideLogicalContentHeightComputation())
&gt; &gt; +            // If we have an auto logical height region for which we did not compute a height yet,
&gt; &gt; +            // then we cannot compute and update the height of this flow.
&gt; &gt; +            return;
&gt; 
&gt; Please put curly braces around multi-line if () as per our style guide.
&gt; 

Done.

&gt; &gt; Source/WebCore/rendering/RenderFlowThread.cpp:812
&gt; &gt; +        region-&gt;setNeedsLayout(true);
&gt; 
&gt; Please use the following instead:
&gt; 
&gt; region-&gt;setNeedsLayout(true, MarkOnlyThis)
&gt; 
&gt; Calling setNeedsLayout(true, MarkContainingBlockChain) during layout is a programming mistake that we should ASSERT against (but that&apos;s another debate). Here I think it is not too bad but I would rather avoid anti-patterns.
&gt;

Added a FIXME in the code and call region-&gt;setNeedsLayout(true) for now.
 
&gt; &gt; Source/WebCore/rendering/RenderFlowThread.cpp:825
&gt; &gt; +        region-&gt;setNeedsLayout(true);
&gt; 
&gt; Ditto.
&gt; 

Added a FIXME in the code and call region-&gt;setNeedsLayout(true) for now.

&gt; &gt; Source/WebCore/rendering/RenderView.cpp:185
&gt; &gt;      if (needsLayout()) {
&gt; 
&gt; I would really push this needsLayout() call above and make it an early return (before we initialize the LayoutState but after the ASSERT).
&gt; 

Done.

&gt; &gt; Source/WebCore/rendering/RenderView.cpp:199
&gt; &gt; +        m_layoutPhase = RenderViewNormalLayout;
&gt; &gt; +        setNeedsLayout(false);
&gt; 
&gt; This is confusing to reset the state to the normal layout for the second phase and doesn&apos;t make much sense.
&gt; 
&gt; Reading the code, you would assume the setNeedsLayout(false) will trigger an ASSERT in layoutContent but no due to marking below. AFAICT, you *know* you should have at least one region to lay out.
&gt; 

I have removed the call to setNeedsLayout(false).

&gt; &gt; Source/WebCore/rendering/RenderView.h:191
&gt; &gt; +    enum RenderViewLayoutPhase { RenderViewNormalLayout, UnconstrainedFlowThreadsLayoutInAutoLogicalHeightRegions };
&gt; 
&gt; You are assuming that we always do a normal layout and may do a pre-unconstrained flow thread layout. You could just do an unconstrained phase first (regardless of whether there is any auto-height regions) and then if you had auto-height region do a follow-up constrained phase. I would say this would be more readable.

Ok, now the 2 phases of layout are { RenderViewNormalLayout, ConstrainedFlowThreadsLayoutInAutoLogicalHeightRegions }. RenderViewNormalLayout is done regardless we have auto logical height regions, the second one is done only when we have auto logical height regions and we need a second pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734776</commentid>
    <comment_count>6</comment_count>
      <attachid>166835</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-04 09:53:17 -0700</bug_when>
    <thetext>Comment on attachment 166835
Patch 2

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

&gt; LayoutTests/fast/regions/autoheight-horizontal-bt.html:26
&gt; +                aaaa aaaa aaaa

Shouldn&apos;t there be 3 repetitions of 5 &apos;a&apos; to have 3 lines of 200px each?

&gt; LayoutTests/fast/regions/webkit-named-flow-first-empty-region-index.html:11
&gt; -    #region, #region2, region3 {width: 250px; height: 50px}
&gt; +    #region, #region2, #region3 {width: 250px; height: 50px; }

Was the test passing before?

&gt; Source/WebCore/rendering/FlowThreadController.cpp:183
&gt; +        RenderNamedFlowThread* flowRenderer = *iter;
&gt; +        flowRenderer-&gt;resetRegionsOverrideLogicalContentHeight();

No need for the extra variable here: (*iter)-&gt;resetRegionsOverrideLogicalContentHeight()

&gt; Source/WebCore/rendering/FlowThreadController.cpp:191
&gt; +        RenderNamedFlowThread* flowRenderer = *iter;
&gt; +        flowRenderer-&gt;markAutoLogicalHeightRegionsForLayout();

Ditto.

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:637
&gt; +    bool useHorizontalWritingMode = isHorizontalWritingMode();

Unneeded change, also the variable name is worse than the API name. You *are* in an horizontal writing-mode, you don&apos;t *use* it.

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:839
&gt; +        if (region-&gt;hasOverrideHeight() &amp;&amp; view()-&gt;normalLayoutPhase()) {
&gt; +            regionLogicalHeight = region-&gt;overrideLogicalContentHeight();
&gt; +            regionRect.setHeight(regionLogicalHeight);
&gt; +        }

Are you ignoring the overridden logical content height for the constrained phase as it is already included into the logicalHeight?

Couldn&apos;t you ignore the overridden logical content height for the normal phase and properly update your flow-thread in the follow-up phase?

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:864
&gt; +    bool useHorizontalWritingMode = isHorizontalWritingMode();

Same comment about the variable here.

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:882
&gt; +    // Mark all the remaining auto logical height regions with 0 override computed height
&gt; +    for (; regionIter != m_regionList.end(); ++regionIter) {
&gt; +        RenderRegion* currRegion = *regionIter;
&gt; +        if (!currRegion-&gt;isValid() || (currRegion == region))
&gt; +            continue;
&gt; +        currRegion-&gt;setOverrideLogicalContentHeight(ZERO_LAYOUT_UNIT);
&gt; +    }

You may as well just clearOverrideSize() to avoid a hash lookup and extra-operations later (or better add a clearOverrideLogicalContentHeight())

&gt; Source/WebCore/rendering/RenderRegion.cpp:593
&gt; +    if (view()-&gt;normalLayoutPhase())
&gt; +        return;
&gt; +
&gt; +    if (hasAutoLogicalHeight() &amp;&amp; hasOverrideHeight()) {

Wouldn&apos;t the second check cover the first one as we only set the override height in computeOverflow, ie at the end of the normal layout phase.

&gt; Source/WebCore/rendering/RenderView.cpp:202
&gt; +        m_layoutPhase = RenderViewNormalLayout;

The logic is really backwards here (not that it doesn&apos;t work, just that it opens a hole for potential badness). It would be better to always reset m_layoutPhase before calling the first layoutContent.

&gt; Source/WebCore/rendering/RenderView.h:191
&gt; +    enum RenderViewLayoutPhase { RenderViewNormalLayout, ConstrainedFlowThreadsLayoutInAutoLogicalHeightRegions };

Not super happy with the &quot;normal&quot; layout vs (&quot;abnormal&quot;) constrained layout phase, I could live with it though as I couldn&apos;t find a better way to put it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736650</commentid>
    <comment_count>7</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-10-08 06:15:10 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 166835 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166835&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/regions/autoheight-horizontal-bt.html:26
&gt; &gt; +                aaaa aaaa aaaa
&gt; 
&gt; Shouldn&apos;t there be 3 repetitions of 5 &apos;a&apos; to have 3 lines of 200px each?
&gt; 

No, if i have a line with 5&apos;a&apos;, that line would have 250px. I have changed the test to make it more clear.

&gt; &gt; LayoutTests/fast/regions/webkit-named-flow-first-empty-region-index.html:11
&gt; &gt; -    #region, #region2, region3 {width: 250px; height: 50px}
&gt; &gt; +    #region, #region2, #region3 {width: 250px; height: 50px; }
&gt; 
&gt; Was the test passing before?
&gt; 

YES. When debugging the patch, i noticed that this test was having an auto-logical height region, which was obviously not the intent here, so i decided to change the test.

&gt; &gt; Source/WebCore/rendering/FlowThreadController.cpp:183
&gt; &gt; +        RenderNamedFlowThread* flowRenderer = *iter;
&gt; &gt; +        flowRenderer-&gt;resetRegionsOverrideLogicalContentHeight();
&gt; 
&gt; No need for the extra variable here: (*iter)-&gt;resetRegionsOverrideLogicalContentHeight()
&gt; 

OK.

&gt; &gt; Source/WebCore/rendering/FlowThreadController.cpp:191
&gt; &gt; +        RenderNamedFlowThread* flowRenderer = *iter;
&gt; &gt; +        flowRenderer-&gt;markAutoLogicalHeightRegionsForLayout();
&gt; 
&gt; Ditto.
&gt;

OK.
 
&gt; &gt; Source/WebCore/rendering/RenderFlowThread.cpp:637
&gt; &gt; +    bool useHorizontalWritingMode = isHorizontalWritingMode();
&gt; 
&gt; Unneeded change, also the variable name is worse than the API name. You *are* in an horizontal writing-mode, you don&apos;t *use* it.
&gt; 

Agree.

&gt; &gt; Source/WebCore/rendering/RenderFlowThread.cpp:839
&gt; &gt; +        if (region-&gt;hasOverrideHeight() &amp;&amp; view()-&gt;normalLayoutPhase()) {
&gt; &gt; +            regionLogicalHeight = region-&gt;overrideLogicalContentHeight();
&gt; &gt; +            regionRect.setHeight(regionLogicalHeight);
&gt; &gt; +        }
&gt; 
&gt; Are you ignoring the overridden logical content height for the constrained phase as it is already included into the logicalHeight?
&gt;
Yes. 
&gt; Couldn&apos;t you ignore the overridden logical content height for the normal phase and properly update your flow-thread in the follow-up phase?
&gt;

Only for this patch, because i am not processing breaks. If it take a break into account and call addForcedBreak from RenderBlock::applyBeforeBreak/applyAfterBreak (not only from RenderFlowThread::computeOverflowStateForRegions), then i need to update the flow thread region rects so that the following auto logical height regions will have a chance to properly paginate flow thread content.
 
&gt; &gt; Source/WebCore/rendering/RenderFlowThread.cpp:864
&gt; &gt; +    bool useHorizontalWritingMode = isHorizontalWritingMode();
&gt; 
&gt; Same comment about the variable here.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderFlowThread.cpp:882
&gt; &gt; +    // Mark all the remaining auto logical height regions with 0 override computed height
&gt; &gt; +    for (; regionIter != m_regionList.end(); ++regionIter) {
&gt; &gt; +        RenderRegion* currRegion = *regionIter;
&gt; &gt; +        if (!currRegion-&gt;isValid() || (currRegion == region))
&gt; &gt; +            continue;
&gt; &gt; +        currRegion-&gt;setOverrideLogicalContentHeight(ZERO_LAYOUT_UNIT);
&gt; &gt; +    }
&gt; 
&gt; You may as well just clearOverrideSize() to avoid a hash lookup and extra-operations later (or better add a clearOverrideLogicalContentHeight())
&gt; 

I will add a new function, clearOverrideLogicalContentHeight for this.

&gt; &gt; Source/WebCore/rendering/RenderRegion.cpp:593
&gt; &gt; +    if (view()-&gt;normalLayoutPhase())
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    if (hasAutoLogicalHeight() &amp;&amp; hasOverrideHeight()) {
&gt; 
&gt; Wouldn&apos;t the second check cover the first one as we only set the override height in computeOverflow, ie at the end of the normal layout phase.
&gt;
&gt; &gt; Source/WebCore/rendering/RenderView.cpp:202
&gt; &gt; +        m_layoutPhase = RenderViewNormalLayout;
&gt; 
&gt; The logic is really backwards here (not that it doesn&apos;t work, just that it opens a hole for potential badness). It would be better to always reset m_layoutPhase before calling the first layoutContent.
&gt; 
OK
&gt; &gt; Source/WebCore/rendering/RenderView.h:191
&gt; &gt; +    enum RenderViewLayoutPhase { RenderViewNormalLayout, ConstrainedFlowThreadsLayoutInAutoLogicalHeightRegions };
&gt; 
&gt; Not super happy with the &quot;normal&quot; layout vs (&quot;abnormal&quot;) constrained layout phase, I could live with it though as I couldn&apos;t find a better way to put it.
I am not happy either with the name, i thought for a better name but without much luck.

Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736672</commentid>
    <comment_count>8</comment_count>
      <attachid>167535</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-10-08 06:54:25 -0700</bug_when>
    <thetext>Created attachment 167535
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741056</commentid>
    <comment_count>9</comment_count>
      <attachid>167535</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-12 11:32:02 -0700</bug_when>
    <thetext>Comment on attachment 167535
Patch 3

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

&gt; Source/WebCore/ChangeLog:47
&gt; +        (WebCore):

Let&apos;s remove those useless lines from the ChangeLog.

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:871
&gt; +    bool useHorizontalWritingMode = isHorizontalWritingMode();

If you need to cache the variable, use:

bool isHorizontalWritingMode = this-&gt;isHorizontalWritingMode();

Alternatively shouldBeConsideredHorizontalWritingMode or equivalent would work. The word &apos;use&apos; doesn&apos;t really fit in this context IMHO.

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:885
&gt; +    for (; regionIter != m_regionList.end(); ++regionIter) {
&gt; +        RenderRegion* currRegion = *regionIter;
&gt; +        if (!currRegion-&gt;isValid() || (currRegion == region) || !currRegion-&gt;hasAutoLogicalHeight())

You could remove the need to check (currRegion == region) by tweaking the code a bit AFAICT.

// Skip current region.
++regionIter;
for (; regionItern != m_regionList.end(); ++regionIter) {

&gt; Source/WebCore/rendering/RenderRegion.cpp:238
&gt; -void RenderRegion::repaintFlowThreadContentRectangle(const LayoutRect&amp; repaintRect, bool immediate, const LayoutRect&amp; flowThreadPortionRect, const LayoutRect&amp; flowThreadPortionOverflowRect, const LayoutPoint&amp; regionLocation) const
&gt; +void RenderRegion::repaintFlowThreadContentRectangle(const LayoutRect&amp; repaintRect, bool immediate, const LayoutRect&amp; flowThreadPortionRect,
&gt; +    const LayoutRect&amp; flowThreadPortionOverflowRect, const LayoutPoint&amp; regionLocation) const

Unneeded line break.

&gt; Source/WebCore/rendering/RenderRegion.cpp:616
&gt; +    if (view()-&gt;normalLayoutPhase())
&gt; +        return !hasOverrideHeight();
&gt; +
&gt; +    return false;

Could be also written:

return view()-&gt;normalLayoutPhase() &amp;&amp; !hasOverrideHeight();

&gt; Source/WebCore/rendering/RenderView.cpp:190
&gt; +    bool needsTwoPassLayoutForAutoLogicalHeightRegions = hasRenderNamedFlowThreads()
&gt; +        &amp;&amp; flowThreadController()-&gt;hasAutoLogicalHeightRegions();

Unneeded line breaking.

&gt; Source/WebCore/rendering/RenderView.cpp:206
&gt; +        layoutContent();
&gt; +#ifndef NDEBUG
&gt; +        checkLayoutState(state);
&gt; +#endif

The checkLayoutState should be moved into layoutContent() as it will guarantee it&apos;s always called after you layout.

&gt; Source/WebCore/rendering/RenderView.cpp:-174
&gt; -    ASSERT(layoutDelta() == LayoutSize());
&gt; -    ASSERT(m_layoutStateDisableCount == 0);
&gt; -    ASSERT(m_layoutState == &amp;state);

I really liked having these ASSERTs here as they ensured we always were in a good state before clearing m_layoutState. I would introduce a checkLayoutState here even if it is redundant with the other ones.

&gt; Source/WebCore/rendering/RenderView.h:257
&gt; +    void checkLayoutState(const LayoutState&amp;);

#ifndef NDEBUG?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741967</commentid>
    <comment_count>10</comment_count>
      <attachid>168687</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-10-15 05:32:41 -0700</bug_when>
    <thetext>Created attachment 168687
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742363</commentid>
    <comment_count>11</comment_count>
      <attachid>168687</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-15 13:31:50 -0700</bug_when>
    <thetext>Comment on attachment 168687
Patch for landing

Clearing flags on attachment: 168687

Committed r131348: &lt;http://trac.webkit.org/changeset/131348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742364</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-15 13:31:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742419</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-15 14:14:07 -0700</bug_when>
    <thetext>Looks like it breaks in release:

http://build.webkit.org/builders/Apple%20Lion%20Release%20%28Build%29/builds/5086/steps/compile-webkit/logs/stdio
/Volumes/Data/slave/lion-release/build/Source/WebCore/rendering/RenderView.cpp:136:51: error: unused parameter &apos;state&apos; [-Werror,-Wunused-parameter]
void RenderView::layoutContent(const LayoutState&amp; state)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742472</commentid>
    <comment_count>14</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-10-15 14:41:59 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Looks like it breaks in release:
&gt; 
&gt; http://build.webkit.org/builders/Apple%20Lion%20Release%20%28Build%29/builds/5086/steps/compile-webkit/logs/stdio
&gt; /Volumes/Data/slave/lion-release/build/Source/WebCore/rendering/RenderView.cpp:136:51: error: unused parameter &apos;state&apos; [-Werror,-Wunused-parameter]
&gt; void RenderView::layoutContent(const LayoutState&amp; state)

Landed fix in r131363: &lt;http://trac.webkit.org/changeset/131363&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165605</attachid>
            <date>2012-09-25 07:01:54 -0700</date>
            <delta_ts>2012-10-03 02:42:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>97533.patch</filename>
            <type>text/plain</type>
            <size>51032</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNDEzZWY2Li4xMmFiZTUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDkt
MjUgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdQWRkIHN1cHBvcnQgZm9yIGF1dG8taGVpZ2h0IHJlZ2lvbnMgKHdpdGhvdXQgcmVnaW9u
LWJyZWFrcykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk3NTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgdGVzdHMgZm9yIGF1dG8taGVpZ2h0IHJlZ2lvbnMsIHdpdGggZGlmZmVyZW50IHdyaXRp
bmcgbW9kZXMsIHdpdGggbWluL21heC1oZWlnaHQuCisgICAgICAgIFRoZSBidWcgcmVmZXJlbmNl
ZCBpbiB0aGUgdGVzdHMgaXMgdGhlIG1hc3RlciBidWcgZm9yIGF1dG8taGVpZ2h0IHN1cHBvcnQs
IDkxMDk3LgorCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJlZ2lv
bi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdo
dC1hYnNwb3MtcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWhvcml6b250YWwtYnQtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaG9yaXpvbnRh
bC1idC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxp
bmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQt
cmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LW1heGhlaWdodC1yZWdpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taW5oZWlnaHQtcmVnaW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5vcm1hbGZsb3ctcmVnaW9u
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0
LW5vcm1hbGZsb3ctcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9h
dXRvaGVpZ2h0LXZlcnRpY2FsLWxyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLWxyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1maXJzdC1lbXB0
eS1yZWdpb24taW5kZXguaHRtbDoKKwogMjAxMi0wOS0yNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNo
cmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdIFVuc2tpcCBzZXZlcmFs
IHRlc3QgY2FzZXMgdGhhdCBhcmUgbm93IHBhc3NpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWFic3Bvcy1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWFic3Bvcy1yZWdpb24tZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzEzOWIxYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWFic3Bvcy1y
ZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuZXhwZWN0ZWRS
ZWdpb25TaXplICB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNn
cmVlbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDog
MTAwcHg7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9h
Pi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50LCBhYnNvbHV0
ZWx5IHBvc2l0aW9uZWQuPC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5v
dCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4i
IGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgIDxib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJl
Z2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJl
Z2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZDkxYjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1hYnNw
b3MtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmZsb3dDb250ZW50U2l6
ZSAgeyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjYXJ0aWNsZSB7
IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQorCisg
ICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXplICB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUw
cHg7IH0KKyAgICAgICAgICAgICNyZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHBvc2l0aW9u
OiBhYnNvbHV0ZTsgdG9wOiAxMDBweDsgfQorCisgICAgICAgICAgICAucmVnaW9uU2l6ZSB7IHdp
ZHRoOiA1MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZs
b3c7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDBweDsgfQorICAgICAgICA8L3N0eWxlPgor
ICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQg
aXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lv
biBpcyBhIGJsb2NrIGVsZW1lbnQsIGFic29sdXRlbHkgcG9zaXRpb25lZC48L3A+CisgICAgICAg
IDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cu
PC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnRTaXplIj48
L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6ZSI+PC9kaXY+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtZmxvYXRyaWdodC1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdjZmNkNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQt
cmVnaW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgYm9keSB7IG1h
cmdpbjogMTBweDsgfQorICAgICAgICAgICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiA1
MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNncmVlbiB7IGJhY2tncm91bmQtY29s
b3I6IGdyZWVuOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTUwcHg7IGxlZnQ6IDYwcHg7IH0K
KyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRl
c3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+Cisg
ICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50LCByaWdodCBmbG9hdGluZy48
L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0
YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImV4cGVjdGVk
UmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtZmxvYXRyaWdodC1yZWdpb24uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdmOGE0ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQt
cmVnaW9uLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMTBw
eDsgfQorCisgICAgICAgICAgICAuZmxvd0NvbnRlbnRTaXplIHsgd2lkdGg6IDUwcHg7IGhlaWdo
dDogNTBweDsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxv
dzsgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisKKyAgICAgICAgICAgIC5leHBlY3RlZFJl
Z2lvblNpemUgeyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjcmVk
IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTUwcHg7
IGxlZnQ6IDYwcHg7IH0KKworICAgICAgICAgICAgLnJlZ2lvbkNvbnRhaW5lclNpemUgeyB3aWR0
aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IH0KKyAgICAgICAgICAgICNjb250YWluZXIgeyBwb3Np
dGlvbjogYWJzb2x1dGU7ICB0b3A6IDE1MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdl
YmtpdC1mbG93LWZyb206IGZsb3c7IHdpZHRoOiA1MHB4OyBmbG9hdDogcmlnaHQ7IH0KKyAgICAg
ICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9y
IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+
IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAg
IDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50LCByaWdodCBmbG9hdGluZy48L3A+Cisg
ICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUg
YmVsb3cuPC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNp
emUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnRT
aXplIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIiBjbGFzcz0icmVnaW9uQ29u
dGFpbmVyU2l6ZSI+CisgICAgICAgICAgICA8ZGl2IGlkPSJyZWdpb24iPjwvZGl2PgorICAgICAg
ICA8L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ob3Jpem9udGFsLWJ0LWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ob3Jpem9udGFsLWJ0LWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFmNTUxMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWhvcml6b250YWwt
YnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
IHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsiPgorICAgIDxoZWFk
PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuZ3JlZW5Cb3ggeyBwb3NpdGlvbjogYWJz
b2x1dGU7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsgfQorICAgICAgICAgICAgI2dyZWVuIHsgYm90dG9tOiAxMjVweDsgfQorICAgICAgICAgICAg
I2dyZWVuMSB7IGJvdHRvbTogMjI1cHg7IH0KKyAgICAgICAgICAgICNncmVlbjIgeyBib3R0b206
IDMyNXB4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwv
YT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgd3JpdGlu
ZyBtb2RlIGhvcml6b250YWwtYnQuPC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hv
dWxkIHNlZSAzIGdyZWVuIHJlY3RhbmdsZXMuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIg
Y2xhc3M9ImdyZWVuQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4xIiBjbGFzcz0i
Z3JlZW5Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJncmVlbjIiIGNsYXNzPSJncmVlbkJv
eCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaG9yaXpvbnRhbC1idC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaG9yaXpvbnRhbC1idC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiNTA4OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ob3Jpem9udGFsLWJ0Lmh0bWwKQEAgLTAsMCAr
MSwzMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1v
ZGU6IGhvcml6b250YWwtYnQ7Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAg
ICAgICAgLmZsb3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsg
dGV4dC1hbGlnbjoganVzdGlmeTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAg
ICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorCisgICAgICAg
ICAgICAucmVnaW9uU2l6ZSB7IHdpZHRoOiAyMDBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbiB7
IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMTAw
cHg7IH0KKworICAgICAgICAgICAgLnJlZEJveCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6
IDIwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQorICAgICAgICAg
ICAgI3JlZCB7IGJvdHRvbTogMTI1cHg7IH0KKyAgICAgICAgICAgICNyZWQxIHsgYm90dG9tOiAy
MjVweDsgfQorICAgICAgICAgICAgI3JlZDIgeyBib3R0b206IDMyNXB4OyB9CisgICAgICAgIDwv
c3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRv
IGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5U
aGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgd3JpdGluZyBtb2RlIGhvcml6b250YWwtYnQu
PC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAzIGdyZWVuIHJlY3Rh
bmdsZXMuPC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJyZWRCb3giPjwvZGl2Pgor
ICAgICAgICA8ZGl2IGlkPSJyZWQxIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4KKyAgICAgICAgPGRp
diBpZD0icmVkMiIgY2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImFydGlj
bGUiIGNsYXNzPSJmbG93Q29udGVudCI+CisgICAgICAgICAgICA8c3BhbiBzdHlsZT0iYmFja2dy
b3VuZC1jb2xvcjogZ3JlZW4iPgorICAgICAgICAgICAgICAgIGFhYWEgYWFhYSBhYWFhCisgICAg
ICAgICAgICA8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24i
IGNsYXNzPSJyZWdpb25TaXplIj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3Jt
YWxmbG93LXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1
dG9oZWlnaHQtaW5saW5lYmxvY2stbm9ybWFsZmxvdy1yZWdpb24tZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTM4MjhmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaW5saW5lYmxvY2stbm9ybWFs
Zmxvdy1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuZXhw
ZWN0ZWRSZWdpb25TaXplIHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAg
ICAgI2dyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKyAgICAgICAgPC9zdHlsZT4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0
IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdp
b24gaXMgYW4gaW5saW5lLWJsb2NrIGVsZW1lbnQgaW4gbm9ybWFsIGZsb3c8L3A+CisgICAgICAg
IDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cu
PC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+
PC9kaXY+CisgICAgPGJvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaW5saW5lYmxvY2stbm9ybWFsZmxv
dy1yZWdpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTAyOWFh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQt
aW5saW5lYmxvY2stbm9ybWFsZmxvdy1yZWdpb24uaHRtbApAQCAtMCwwICsxLDIzIEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAg
ICAgICAuZmxvd0NvbnRlbnRTaXplIHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAg
ICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47IH0KKworICAgICAgICAgICAgLmV4cGN0ZWRSZWdpb25TaXplIHsgd2lkdGg6
IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI3JlZCB7IGJhY2tncm91bmQtY29s
b3I6IHJlZDsgfQorCisgICAgICAgICAgICAucmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyB9Cisg
ICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiBy
ZWxhdGl2ZTsgdG9wOiAtNTBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9CisgICAgICAgIDwv
c3R5bGU+CisgICAgPC9oZWFkPgorICAgICA8Ym9keT4KKyAgICAgICAgIDxwPlRlc3QgZm9yIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1
dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgICA8
cD5UaGUgcmVnaW9uIGlzIGFuIGlubGluZS1ibG9jayBlbGVtZW50IGluIG5vcm1hbCBmbG93PC9w
PgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5vdCBzZWUgYSByZWQgcmVjdGFu
Z2xlIGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0icmVkIiBjbGFzcz0iZXhwY3RlZFJlZ2lv
blNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRl
bnRTaXplIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6
ZSI+PC9kaXY+CisgICAgPGJvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q1NzYxNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1heGhl
aWdodC1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIC5leHBlY3Rl
ZFJlZ2lvblNpemUgeyB3aWR0aDogMjAwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAjZ3Jl
ZW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTUwcHg7IGJhY2tncm91bmQtY29sb3I6Z3Jl
ZW47IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48
L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50IGluIG5vcm1hbCBm
bG93LCBoYXZpbmcgbWF4LWhlaWdodCBzcGVjaWZpZWQuPC9wPgorICAgICAgICA8cD5PbiBzdWNj
ZXNzLCB5b3Ugc2hvdWxkIHNlZSAxIGdyZWVuIGxpbmUuPC9wPgorICAgICAgICA8ZGl2IGlkPSJn
cmVlbiIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWF4
aGVpZ2h0LXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQt
bWF4aGVpZ2h0LXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjY1ZGNkZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0
b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAg
LmZsb3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgdGV4dC1h
bGlnbjoganVzdGlmeTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAgICAg
ICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgcGFkZGluZy10b3A6IDI1cHg7
IH0KKworICAgICAgICAgICAgLnJlZ2lvblNpemUgeyB3aWR0aDogMjAwcHg7IG1heC1oZWlnaHQ6
IDEwMHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7
IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDBweDsgfQorCisg
ICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXplIHsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDUw
cHg7ICB9CisgICAgICAgICAgICAjcmVkIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1MHB4
OyBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtp
bmcgZm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2Nr
IGVsZW1lbnQgaW4gbm9ybWFsIGZsb3csIGhhdmluZyBtYXgtaGVpZ2h0IHNwZWNpZmllZC48L3A+
CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIDEgZ3JlZW4gbGluZS48L3A+
CisgICAgICAgIDxkaXYgaWQ9InJlZCIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUiIGNsYXNzPSJmbG93Q29udGVudCI+CisgICAgICAg
ICAgICA8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4iPgorICAgICAgICAgICAg
ICAgIGFhYWEgYWFhYSBhYWFhCisgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25TaXplIj48L2Rpdj4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0
b2hlaWdodC1taW5oZWlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvYXV0b2hlaWdodC1taW5oZWlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzIyNzAxOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1pbmhlaWdodC1yZWdpb24tZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXpl
IHsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyB9CisgICAgICAgICAgICAjZ3JlZW4geyBw
b3NpdGlvbjogYWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB0b3A6IDE1MHB4OyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5U
ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgor
ICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgaGF2aW5nIG1pbi1oZWln
aHQgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUg
MSBncmVlbiByZWN0YW5nbGUuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImV4
cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyZTQ5ZDIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taW5oZWln
aHQtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmZsb3dDb250ZW50IHsg
Zm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgdGV4dC1hbGlnbjoganVzdGlmeTsg
bGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAt
d2Via2l0LWZsb3ctaW50bzogZmxvdzsgcGFkZGluZy10b3A6IDI1cHg7IH0KKworICAgICAgICAg
ICAgLnJlZ2lvblNpemUgeyB3aWR0aDogMjAwcHg7IG1pbi1oZWlnaHQ6IDIwMHB4OyB9CisgICAg
ICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiBhYnNv
bHV0ZTsgdG9wOiAxNTBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKworICAgICAgICAg
ICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgfQor
ICAgICAgICAgICAgI3JlZCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjog
cmVkOyB0b3A6IDE1MHB4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3Ig
cmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVu
dCwgaGF2aW5nIG1pbi1oZWlnaHQgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2Vz
cywgeW91IHNob3VsZCBzZWUgMSBncmVlbiByZWN0YW5nbGUuPC9wPgorICAgICAgICA8ZGl2IGlk
PSJyZWQiIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlk
PSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnQiPgorICAgICAgICAgICAgPHNwYW4gc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6IGdyZWVuIj4KKyAgICAgICAgICAgICAgICBhYWFhCisgICAgICAg
ICAgICA8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNs
YXNzPSJyZWdpb25TaXplIj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ub3JtYWxmbG93LXJlZ2lvbi1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbm9ybWFs
Zmxvdy1yZWdpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5lZGExNzJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2F1dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+
CisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXplICB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6
IDUwcHg7IH0KKyAgICAgICAgICAgICNncmVlbiB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFk
PgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29y
a2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxv
Y2sgZWxlbWVudCBpbiBub3JtYWwgZmxvdyB3aXRoIGhlaWdodCBhdXRvLjwvcD4KKyAgICAgICAg
PHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBub3Qgc2VlIGEgcmVkIHJlY3RhbmdsZSBiZWxvdy48
L3A+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuIiBjbGFzcz0iZXhwZWN0ZWRSZWdpb25TaXplIj48
L2Rpdj4KKyAgICA8Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9hdXRvaGVpZ2h0LW5vcm1hbGZsb3ctcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ub3JtYWxmbG93LXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlZmJkOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ub3JtYWxmbG93LXJlZ2lvbi5odG1sCkBA
IC0wLDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAg
ICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5mbG93Q29udGVudFNpemUgIHsgd2lkdGg6IDUwcHg7
IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI2FydGljbGUgICAgeyAtd2Via2l0LWZsb3ct
aW50bzogZmxvdzsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKworICAgICAgICAgICAgLmV4
cGVjdGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAg
ICAgICNyZWQgICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9CisKKyAgICAgICAgICAg
IC5yZWdpb25TaXplIHsgd2lkdGg6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24gICAgIHsg
LXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAtNTBweDsg
fQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+
VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+LjwvcD4K
KyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQgaW4gbm9ybWFsIGZsb3cg
d2l0aCBoZWlnaHQgYXV0by48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQg
bm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQi
IGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRp
Y2xlIiBjbGFzcz0iZmxvd0NvbnRlbnRTaXplIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVn
aW9uIiBjbGFzcz0icmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPGJvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1sci1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGlj
YWwtbHItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
ZTE5ZjBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9o
ZWlnaHQtdmVydGljYWwtbHItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7
Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmdyZWVuQm94IHsg
cG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6IDUwcHg7
IGhlaWdodDogMjAwcHg7IH0KKyAgICAgICAgICAgICNncmVlbiB7IGxlZnQ6IDEyNXB4OyB9Cisg
ICAgICAgICAgICAjZ3JlZW4xIHsgbGVmdDogMjI1cHg7IH0KKyAgICAgICAgICAgICNncmVlbjIg
eyBsZWZ0OiAzMjVweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJl
Z2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQs
IHdyaXRpbmcgbW9kZSB2ZXJ0aWNhbC1sci48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlv
dSBzaG91bGQgc2VlIDMgZ3JlZW4gcmVjdGFuZ2xlcy48L3A+CisgICAgICAgIDxkaXYgaWQ9Imdy
ZWVuIiBjbGFzcz0iZ3JlZW5Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJncmVlbjEiIGNs
YXNzPSJncmVlbkJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuMiIgY2xhc3M9Imdy
ZWVuQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1sci5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtbHIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjRlYWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtbHIuaHRtbApAQCAtMCwwICsx
LDMxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9k
ZTogdmVydGljYWwtbHI7Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAg
ICAgLmZsb3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgdGV4
dC1hbGlnbjoganVzdGlmeTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAg
ICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorCisgICAgICAgICAg
ICAucmVnaW9uU2l6ZSB7IGhlaWdodDogMjAwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24geyAt
d2Via2l0LWZsb3ctZnJvbTogZmxvdzsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMDBweDsg
fQorCisgICAgICAgICAgICAucmVkQm94IHsgcG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDIwMHB4OyB9CisgICAgICAgICAgICAj
cmVkIHsgbGVmdDogMTI1cHg7IH0KKyAgICAgICAgICAgICNyZWQxIHsgbGVmdDogMjI1cHg7IH0K
KyAgICAgICAgICAgICNyZWQyIHsgbGVmdDogMzI1cHg7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAg
ICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlz
IG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24g
aXMgYSBibG9jayBlbGVtZW50LCB3cml0aW5nIG1vZGUgdmVydGljYWwtbHIuPC9wPgorICAgICAg
ICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAzIGdyZWVuIHJlY3RhbmdsZXMuPC9wPgor
ICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJyZWRCb3giPjwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJyZWQxIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVkMiIg
Y2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUiIGNsYXNzPSJm
bG93Q29udGVudCI+CisgICAgICAgICAgICA8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW4iPgorICAgICAgICAgICAgICAgIGFhYWEgYWFhYSBhYWFhCisgICAgICAgICAgICA8L3Nw
YW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdp
b25TaXplIj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1ybC1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtcmwtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDI5ZTdhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwt
cmwtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
IHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7Ij4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmdyZWVuQm94IHsgcG9zaXRpb246IGFic29s
dXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjAwcHg7
IH0KKyAgICAgICAgICAgICNncmVlbiB7IHJpZ2h0OiAxMjVweDsgfQorICAgICAgICAgICAgI2dy
ZWVuMSB7IHJpZ2h0OiAyMjVweDsgfQorICAgICAgICAgICAgI2dyZWVuMiB7IHJpZ2h0OiAzMjVw
eDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAg
PHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+Ljwv
cD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQsIHdyaXRpbmcgbW9k
ZSB2ZXJ0aWNhbC1ybC48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2Vl
IDMgZ3JlZW4gcmVjdGFuZ2xlcy48L3A+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuIiBjbGFzcz0i
Z3JlZW5Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJncmVlbjEiIGNsYXNzPSJncmVlbkJv
eCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuMiIgY2xhc3M9ImdyZWVuQm94Ij48L2Rp
dj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1ybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtdmVydGljYWwtcmwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hZmRhMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtcmwuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwt
cmw7Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmZsb3dDb250
ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgdGV4dC1hbGlnbjoganVz
dGlmeTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2FydGlj
bGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorCisgICAgICAgICAgICAucmVnaW9uU2l6
ZSB7IGhlaWdodDogMjAwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24geyAtd2Via2l0LWZsb3ct
ZnJvbTogZmxvdzsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMTAwcHg7IH0KKworICAgICAg
ICAgICAgLnJlZEJveCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjogcmVk
OyB3aWR0aDogNTBweDsgaGVpZ2h0OiAyMDBweDsgfQorICAgICAgICAgICAgI3JlZCB7IHJpZ2h0
OiAxMjVweDsgfQorICAgICAgICAgICAgI3JlZDEgeyByaWdodDogMjI1cHg7IH0KKyAgICAgICAg
ICAgICNyZWQyIHsgcmlnaHQ6IDMyNXB4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFk
PgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29y
a2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxv
Y2sgZWxlbWVudCwgd3JpdGluZyBtb2RlIHZlcnRpY2FsLXJsLjwvcD4KKyAgICAgICAgPHA+T24g
c3VjY2VzcywgeW91IHNob3VsZCBzZWUgMyBncmVlbiByZWN0YW5nbGVzLjwvcD4KKyAgICAgICAg
PGRpdiBpZD0icmVkIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVk
MSIgY2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZDIiIGNsYXNzPSJy
ZWRCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRl
bnQiPgorICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVuIj4K
KyAgICAgICAgICAgICAgICBhYWFhIGFhYWEgYWFhYQorICAgICAgICAgICAgPC9zcGFuPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6ZSI+
PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWZpcnN0LWVtcHR5LXJlZ2lvbi1pbmRleC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWZpcnN0LWVtcHR5
LXJlZ2lvbi1pbmRleC5odG1sCmluZGV4IDEyM2U3MWYuLmRhMjIxZDkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1maXJzdC1lbXB0eS1yZWdp
b24taW5kZXguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVk
LWZsb3ctZmlyc3QtZW1wdHktcmVnaW9uLWluZGV4Lmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAg
Ym9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2UgfQogICAgIC5jb250ZW50IHsgLXdlYmtpdC1m
bG93LWludG86IGZsb3cgfQogICAgIC5yZWdpb24geyAgLXdlYmtpdC1mbG93LWZyb206IGZsb3d9
Ci0gICAgI3JlZ2lvbiwgI3JlZ2lvbjIsIHJlZ2lvbjMge3dpZHRoOiAyNTBweDsgaGVpZ2h0OiA1
MHB4fQorICAgICNyZWdpb24sICNyZWdpb24yLCAjcmVnaW9uMyB7d2lkdGg6IDI1MHB4OyBoZWln
aHQ6IDUwcHg7IH0KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MDY3
NWY2Li44MjIwODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODYgQEAKKzIwMTItMDktMjUgIE1p
aG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1JlZ2lvbnNd
QWRkIHN1cHBvcnQgZm9yIGF1dG8taGVpZ2h0IHJlZ2lvbnMgKHdpdGhvdXQgcmVnaW9uLWJyZWFr
cykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NTMz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVt
ZW50IHRoZSAycGFzcyBsYXlvdXQgYWxnb3JpdGhtIGZvciBjb21wdXRpbmcgdGhlIGhlaWdodCBv
ZiByZWdpb25zIHdpdGggYXV0byBsb2dpY2FsIGhlaWdodCwgd2l0aG91dCB0YWtpbmcgcmVnaW9u
IGJyZWFrcyBpbnRvIGFjY291bnQuCisgICAgICAgIFRoZSBhbGdvcml0aG0gaXMgZGVzY3JpYmVk
IGluIHRoZSBDU1NSZWdpb25zIHNwZWM6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtcmVn
aW9ucy8jcmVnaW9ucy12aXN1YWwtZm9ybWF0dGluZy1zdGVwcworCisgICAgICAgIFdoZW4gdGhl
IGZsb3cgdGhyZWFkIGNvbnRhaW5zIHJlZ2lvbnMgd2l0aCBhdXRvIGxvZ2ljYWwgaGVpZ2h0LCBh
IDJwYXNzIGxheW91dCBhbGdvcml0aG0gaXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgaGVpZ2h0
IG9mIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9ucy4KKyAgICAgICAgSW4gZWFjaCBzdGVwIG9m
IHRoZSBsYXlvdXQsIHRoZSByZWdpb25zIGFyZSBsYWlkIG91dCBiZWZvcmUgdGhlIGZsb3cgdGhy
ZWFkIGlzIGxhaWQgb3V0LgorCisgICAgICAgIEluIHRoZSBmaXJzdCBwYXNzIG9mIGxheW91dCwg
dGhlIGNvbnRlbnQgb2YgdGhlIGZsb3cgdGhyZWFkIGlzIGxhaWQgb3V0IHVuY29uc3RyYWluZWQg
aW4gdGhlIHJlZ2lvbnMuIFRoZSByZWdpb24gbWFya2VkIGFzIGhhdmluZyBhdXRvIGxvZ2ljYWwg
aGVpZ2h0CisgICAgICAgIGRpc3BsYXlzIGFsbCB0aGUgY29ycmVzcG9uZGluZyBjb250ZW50IGZy
b20gdGhlIGZsb3cgdGhyZWFkICh0YWtpbmcgbWluLWhlaWdodCBhbmQgbWF4LWhlaWdodCBpbnRv
IGFjY291bnQpLCBhbmQgdGhlIGhlaWdodCBvZiB0aGUgY29udGVudCBkaXNwbGF5ZWQKKyAgICAg
ICAgZGV0ZXJtaW5lcyB0aGUgb3ZlcnJpZGRlbiBsb2dpY2FsIGNvbnRlbnQgaGVpZ2h0LiBUaHVz
LCBhZnRlciB0aGUgZmlyc3QgcGFzcyBvZiBsYXlvdXQsIGVhY2ggYXV0byBsb2dpY2FsIGhlaWdo
dCByZWdpb24gd2lsbCBzdG9yZSB0aGUgbG9naWNhbCBoZWlnaHQKKyAgICAgICAgdmFsdWUgZm9y
IHRoZSBzZWNvbmQgcGFzcyBpbiBpdHMgb3ZlcnJpZGRlbiBsb2dpY2FsIGNvbnRlbnQgaGVpZ2h0
IHByb3BlcnR5LgorCisgICAgICAgIEluIHRoZSBzZWNvbmQgcGFzcyBvZiBsYXlvdXQsIHRoZSBy
ZWdpb25zIGFyZSBsYWlkIG91dCBhZ2FpbiBhbmQgdGhleSBhcmUgdXNpbmcgdGhlIG92ZXJyaWRk
ZW4gbG9naWNhbCBjb250ZW50IGhlaWdodCBmcm9tIHRoZSBmaXJzdCBwYXNzIHRvIHVwZGF0ZQor
ICAgICAgICB0aGVpciBsb2dpY2FsIGhlaWdodC4gVGhlbiwgdGhlIGZsb3cgdGhyZWFkIGNvbnRl
bnQgaXMgbGFpZCBvdXQgaW4gdGhlIGFzc29jaWF0ZWQgcmVnaW9uIGNoYWluLCBmb3Igd2hpY2gg
dGhlIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9ucyBoYXZlIHByb3BlcgorICAgICAgICBsb2dp
Y2FsIGhlaWdodC4KKworICAgICAgICBBIGZ1dHVyZSBwYXRjaCB3aWxsIHByb3Blcmx5IHRha2Ug
cmVnaW9uIGJyZWFrcyBpbnRvIGFjY291bnQgZm9yIHRoZSBmaXJzdCBwYXNzIG9mIGxheW91dC4K
KworICAgICAgICBUZXN0czogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJlZ2lvbi5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1mbG9hdHJpZ2h0LXJl
Z2lvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ob3Jpem9u
dGFsLWJ0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWlubGlu
ZWJsb2NrLW5vcm1hbGZsb3ctcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9u
cy9hdXRvaGVpZ2h0LW1heGhlaWdodC1yZWdpb24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9y
ZWdpb25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lvbi5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ub3JtYWxmbG93LXJlZ2lvbi5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1sci5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1ybC5odG1sCisKKyAgICAgICAg
KiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rmxvd1RocmVhZENvbnRyb2xsZXI6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRI
ZWlnaHQpOiBGb3IgYWxsIHRoZSBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbnMsIHJlc2V0cyB0
aGVpciBhc3NvY2lhdGVkCisgICAgICAgIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQgYW5k
IHJldHVybnMgdHJ1ZSB3aGV0aGVyIHdlIHBlcmZvcm1lZCB0aGlzIHJlc2V0IGZvciBhdCBsZWFz
dCBvbmUgcmVnaW9uLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG93
VGhyZWFkQ29udHJvbGxlcjo6bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCk6
IE1hcmsgYWxsIHRoZSBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbnMgYW5kIHRoZWlyIGFzc29j
aWF0ZWQgZmxvdyB0aHJlYWQgYXMgbmVlZGluZyBsYXlvdXQuCisgICAgICAgICogcmVuZGVyaW5n
L0Zsb3dUaHJlYWRDb250cm9sbGVyLmg6CisgICAgICAgIChGbG93VGhyZWFkQ29udHJvbGxlcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZsb3dUaHJlYWQ6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgSWYgdGhlIGZsb3cg
dGhyZWFkIGhhcyBhbiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiBmb3Igd2hpY2ggd2UgZGlk
IG5vdCB5ZXQgY29tcHV0ZSB0aGUgb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCB2YWx1ZSwg
YmFpbCBvdXQgZWFybHkgc2luY2Ugd2UgY2Fubm90IGNvbXB1dGUgdGhlCisgICAgICAgIGZsb3cg
dGhyZWFkIGxvZ2ljYWwgaGVpZ2h0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVh
ZDo6cmVnaW9uQXRCbG9ja09mZnNldCk6CisgICAgICAgIElmIHRoZSBvZmZzZXQgaXMgaW5zaWRl
IGFuIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9uIGZvciB3aGljaCB3ZSBkaWQgbm90IGNvbXB1
dGUgdGhlIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQsIHRoZW4gd2UgY29uc2lkZXIgdGhp
cyByZWdpb24gdGFsbCBlbm91Z2ggdG8gYWNjb21tb2RhdGUgYWxsCisgICAgICAgIHRoZSBjb250
ZW50IGFuZCB3ZSByZXR1cm4gdGhpcyByZWdpb24uIE90aGVyd2lzZSwgZm9yIGFuIGF1dG8gbG9n
aWNhbCBoZWlnaHQgcmVnaW9uLCB3ZSB1c2UgZWl0aGVyIHRoZSBvdmVycmlkZUxvZ2ljYWxDb250
ZW50SGVpZ2h0IChpZiB3ZSBhcmUgaW4gdGhlIGZpcnN0IGxheW91dCBwaGFzZSkgb3IKKyAgICAg
ICAgdGhlIGxvZ2ljYWxIZWlnaHQgaWYgd2UgYXJlIGluIHRoZSBzZWNvbmQgbGF5b3V0IHBoYXNl
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6cGFnZUxvZ2ljYWxIZWlnaHRG
b3JPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6cGFnZVJlbWFp
bmluZ0xvZ2ljYWxIZWlnaHRGb3JPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxv
d1RocmVhZDo6Y29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKToKKyAgICAgICAgU2ltdWxh
dGUgYSBmb3JjZWQgcmVnaW9uIGJyZWFrIHNvIHRoYXQgaWYgaXQgZml0cyBpbnNpZGUgYW4gYXV0
byBsb2dpY2FsIGhlaWdodCByZWdpb24sIGl0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSByZWdp
b24gb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZsb3dUaHJlYWQ6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpt
YXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZVJlZ2lvbnNGbG93VGhyZWFkUG9ydGlvblJlY3QpOgor
ICAgICAgICBDb2RlIHRha2VuIG91dCBvZiBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQgc2luY2Ug
aXQgaXMgdXNlZCBpbiBtb3JlIHRoYW4gb25lIHBsYWNlLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRmxvd1RocmVhZDo6YWRkRm9yY2VkUmVnaW9uQnJlYWspOgorICAgICAgICBTaW11bGF0ZSBh
IHJlZ2lvbiBicmVhayBhdCB0aGUgc3BlY2lmaWVkIG9mZnNldC4gSXQgd2lsbCBiZSBleHRlbmRl
ZCB0byBwcm9wZXJseSBwcm9jZXNzIHRoZSByZWdpb24gYnJlYWtzLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnVwZGF0ZUxvZ2ljYWxIZWln
aHQpOgorICAgICAgICBJZiB0aGUgYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb24gaGFzIGFuIG92
ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQgYW5kIHdlIGFyZSBpbiB0aGUgc2Vjb25kIHBhc3Mg
b2YgbGF5b3V0LCB3ZSB1c2UgdGhlIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQgdG8KKyAg
ICAgICAgdXBkYXRlIHRoZSByZWdpb24gbG9naWNhbCBoZWlnaHQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6bmVlZHNPdmVycmlkZUxvZ2ljYWxD
b250ZW50SGVpZ2h0Q29tcHV0YXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdp
b24uaDoKKyAgICAgICAgKFJlbmRlclJlZ2lvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6UmVuZGVyVmlldyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpsYXlvdXRDb250ZW50KToKKyAgICAgICAgQWRk
ZWQgYSBuZXcgZnVuY3Rpb24gdG8gY29udGFpbiB0aGUgUmVuZGVyVmlldyBibG9jayBsYXlvdXQg
YW5kIGZsb3cgdGhyZWFkcyBsYXlvdXQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclZpZXc6OmNoZWNrTGF5b3V0U3RhdGUpOgorICAgICAgICBIZWxwZXIgZnVu
Y3Rpb24ga2VlcGluZyB0aGUgb3JpZ2luYWwgYXNzZXJ0cyBmcm9tIFJlbmRlclZpZXcsIHVzZWQg
aW4gbW9yZSB0aGFuIG9uZSBwbGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclZpZXc6Om5lZWRzU2Vjb25kUGFzc0xheW91dEZvckF1dG9Mb2dpY2FsSGVpZ2h0
UmVnaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojpub3JtYWxMYXlvdXRQaGFz
ZSk6CisgICAgICAgIChSZW5kZXJWaWV3KToKKwogMjAxMi0wOS0yNSAgVnNldm9sb2QgVmxhc292
ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZXNvdXJj
ZVNjcmlwdE1hcHBpbmcgc2hvdWxkIG5vIHN0ZWFsIHNjcmlwdHMgZnJvbSBvdGhlciBtYXBwaW5n
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIu
Y3BwCmluZGV4IGNiNGJkYjEuLjFjYTg3MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcApAQCAtMTc2LDQgKzE3NiwyNCBAQCBib29s
IEZsb3dUaHJlYWRDb250cm9sbGVyOjppc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25z
aXN0ZW50KCkgY29uc3QKIH0KICNlbmRpZgogCitib29sIEZsb3dUaHJlYWRDb250cm9sbGVyOjpy
ZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCkKK3sKKyAgICBib29sIGhh
ZEZsb3dzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA9IGZhbHNlOworICAgIGZvciAoUmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVuZGVyTmFtZWRGbG93
VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3Qt
PmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93UmVu
ZGVyZXIgPSAqaXRlcjsKKyAgICAgICAgaWYgKGZsb3dSZW5kZXJlci0+cmVzZXRSZWdpb25zT3Zl
cnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpKQorICAgICAgICAgICAgaGFkRmxvd3NXaXRoQXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zID0gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gaGFkRmxv
d3NXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zOworfQorCit2b2lkIEZsb3dUaHJlYWRDb250
cm9sbGVyOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCkKK3sKKyAgICBm
b3IgKFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5h
bWVkRmxvd1RocmVhZExpc3QtPmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJl
YWRMaXN0LT5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCog
Zmxvd1JlbmRlcmVyID0gKml0ZXI7CisgICAgICAgIGZsb3dSZW5kZXJlci0+bWFya0F1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xs
ZXIuaAppbmRleCA4NDQ4NmY0Li43YTU5NGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaApAQCAtNzUsNiArNzUsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkgY29uc3Q7
CiAjZW5kaWYKIAorICAgIGJvb2wgcmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhl
aWdodCgpOworICAgIHZvaWQgbWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgp
OworCiBwcm90ZWN0ZWQ6CiAgICAgRmxvd1RocmVhZENvbnRyb2xsZXIoUmVuZGVyVmlldyopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXgg
ZDVhOTliNy4uYzJjZTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmNwcApAQCAtMTY3LDIwICsxNjcsNyBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6
OmxheW91dCgpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHVwZGF0
ZUxvZ2ljYWxXaWR0aCgpOyAvLyBDYWxsZWQgdG8gZ2V0IHRoZSBtYXhpbXVtIGxvZ2ljYWwgd2lk
dGggZm9yIHRoZSByZWdpb24uCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIExheW91dFVuaXQg
bG9naWNhbEhlaWdodCA9IDA7Ci0gICAgICAgICAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0
ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3Qu
ZW5kKCk7ICsraXRlcikgewotICAgICAgICAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0g
Kml0ZXI7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSkKLSAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIExheW91dFVuaXQgcmVnaW9uTG9naWNhbFdpZHRoID0gcmVnaW9uLT5wYWdlTG9naWNhbFdp
ZHRoKCk7Ci0gICAgICAgICAgICAgICAgTGF5b3V0VW5pdCByZWdpb25Mb2dpY2FsSGVpZ2h0ID0g
cmVnaW9uLT5sb2dpY2FsSGVpZ2h0T2ZBbGxGbG93VGhyZWFkQ29udGVudCgpOwotICAgIAotICAg
ICAgICAgICAgICAgIExheW91dFJlY3QgcmVnaW9uUmVjdChzdHlsZSgpLT5kaXJlY3Rpb24oKSA9
PSBMVFIgPyBaRVJPX0xBWU9VVF9VTklUIDogbG9naWNhbFdpZHRoKCkgLSByZWdpb25Mb2dpY2Fs
V2lkdGgsIGxvZ2ljYWxIZWlnaHQsIHJlZ2lvbkxvZ2ljYWxXaWR0aCwgcmVnaW9uTG9naWNhbEhl
aWdodCk7Ci0gICAgICAgICAgICAgICAgcmVnaW9uLT5zZXRGbG93VGhyZWFkUG9ydGlvblJlY3Qo
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvblJlY3QgOiByZWdpb25SZWN0LnRyYW5z
cG9zZWRSZWN0KCkpOwotICAgICAgICAgICAgICAgIGxvZ2ljYWxIZWlnaHQgKz0gcmVnaW9uTG9n
aWNhbEhlaWdodDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVwZGF0ZVJlZ2lvbnNGbG93
VGhyZWFkUG9ydGlvblJlY3QoKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjMyLDYgKzIxOSwx
MSBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVu
aXQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTAogICAgICAgICBpZiAoIXJlZ2lvbi0+aXNWYWxp
ZCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIEFTU0VSVCghcmVnaW9uLT5uZWVk
c0xheW91dCgpKTsKKworICAgICAgICBpZiAocmVnaW9uLT5uZWVkc092ZXJyaWRlTG9naWNhbENv
bnRlbnRIZWlnaHRDb21wdXRhdGlvbigpKQorICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhbiBh
dXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiBmb3Igd2hpY2ggd2UgZGlkIG5vdCBjb21wdXRlIGEg
aGVpZ2h0IHlldCwKKyAgICAgICAgICAgIC8vIHRoZW4gd2UgY2Fubm90IGNvbXB1dGUgYW5kIHVw
ZGF0ZSB0aGUgaGVpZ2h0IG9mIHRoaXMgZmxvdy4KKyAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgKz0gcmVnaW9uLT5sb2dpY2FsSGVpZ2h0T2ZBbGxG
bG93VGhyZWFkQ29udGVudCgpOwogICAgIH0KIH0KQEAgLTMzOCw2ICszMzAsOCBAQCBSZW5kZXJS
ZWdpb24qIFJlbmRlckZsb3dUaHJlYWQ6OnJlZ2lvbkF0QmxvY2tPZmZzZXQoTGF5b3V0VW5pdCBv
ZmZzZXQsIGJvb2wgZXh0ZQogICAgIC8vIElmIG5vIHJlZ2lvbiBtYXRjaGVzIHRoZSBwb3NpdGlv
biBhbmQgZXh0ZW5kTGFzdFJlZ2lvbiBpcyB0cnVlLCBpdCB3aWxsIHJldHVybgogICAgIC8vIHRo
ZSBsYXN0IHZhbGlkIHJlZ2lvbi4gSXQgaXMgc2ltaWxhciB0byBhdXRvIGV4dGVuZGluZyB0aGUg
c2l6ZSBvZiB0aGUgbGFzdCByZWdpb24uIAogICAgIFJlbmRlclJlZ2lvbiogbGFzdFZhbGlkUmVn
aW9uID0gMDsKKworICAgIExheW91dFVuaXQgYWNjdW11bGF0ZWRMb2dpY2FsSGVpZ2h0ID0gWkVS
T19MQVlPVVRfVU5JVDsKICAgICAKICAgICAvLyBGSVhNRTogVGhlIHJlZ2lvbnMgYXJlIGFsd2F5
cyBpbiBvcmRlciwgb3B0aW1pemUgdGhpcyBzZWFyY2guCiAgICAgYm9vbCB1c2VIb3Jpem9udGFs
V3JpdGluZ01vZGUgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwpAQCAtMzQ5LDEyICszNDMs
MjUgQEAgUmVuZGVyUmVnaW9uKiBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25BdEJsb2NrT2Zmc2V0
KExheW91dFVuaXQgb2Zmc2V0LCBib29sIGV4dGUKICAgICAgICAgaWYgKG9mZnNldCA8PSAwKQog
ICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsKIAotICAgICAgICBMYXlvdXRSZWN0IHJlZ2lvblJl
Y3QgPSByZWdpb24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpOwotICAgICAgICBpZiAoKHVzZUhv
cml6b250YWxXcml0aW5nTW9kZSAmJiBvZmZzZXQgPCByZWdpb25SZWN0Lm1heFkoKSkgfHwgKCF1
c2VIb3Jpem9udGFsV3JpdGluZ01vZGUgJiYgb2Zmc2V0IDwgcmVnaW9uUmVjdC5tYXhYKCkpKQot
ICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsKLQogICAgICAgICBpZiAoZXh0ZW5kTGFzdFJlZ2lv
biB8fCByZWdpb24tPmlzUmVuZGVyUmVnaW9uU2V0KCkpCiAgICAgICAgICAgICBsYXN0VmFsaWRS
ZWdpb24gPSByZWdpb247CisKKyAgICAgICAgLy8gSWYgd2UgZGlkIG5vdCBjb21wdXRlIHRoZSBy
ZWdpb24ncyBoZWlnaHQsIHdlIHNob3VsZCBjb25zaWRlciB0aGlzIHJlZ2lvbgorICAgICAgICAv
LyB0YWxsIGVub3VnaCB0byBhY2NvbW9kYXRlIGFsbCBjb250ZW50LgorICAgICAgICBpZiAocmVn
aW9uLT5uZWVkc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHRDb21wdXRhdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuIHJlZ2lvbjsKKworICAgICAgICBpZiAocmVnaW9uLT5oYXNBdXRvTG9n
aWNhbEhlaWdodCgpICYmICF2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpIHsKKyAgICAgICAg
ICAgIGFjY3VtdWxhdGVkTG9naWNhbEhlaWdodCArPSByZWdpb24tPm92ZXJyaWRlTG9naWNhbENv
bnRlbnRIZWlnaHQoKTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPCBhY2N1bXVsYXRlZExvZ2lj
YWxIZWlnaHQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgTGF5b3V0UmVjdCByZWdpb25SZWN0ID0gcmVn
aW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKTsKKyAgICAgICAgYWNjdW11bGF0ZWRMb2dpY2Fs
SGVpZ2h0ICs9IHVzZUhvcml6b250YWxXcml0aW5nTW9kZSA/IHJlZ2lvblJlY3QuaGVpZ2h0KCkg
OiByZWdpb25SZWN0LndpZHRoKCk7CisgICAgICAgIGlmIChvZmZzZXQgPCBhY2N1bXVsYXRlZExv
Z2ljYWxIZWlnaHQpCisgICAgICAgICAgICByZXR1cm4gcmVnaW9uOwogICAgIH0KIAogICAgIHJl
dHVybiBsYXN0VmFsaWRSZWdpb247CkBAIC0zNzUsNyArMzgyLDExIEBAIExheW91dFVuaXQgUmVu
ZGVyRmxvd1RocmVhZDo6cGFnZUxvZ2ljYWxXaWR0aEZvck9mZnNldChMYXlvdXRVbml0IG9mZnNl
dCkgY29uc3QKIExheW91dFVuaXQgUmVuZGVyRmxvd1RocmVhZDo6cGFnZUxvZ2ljYWxIZWlnaHRG
b3JPZmZzZXQoTGF5b3V0VW5pdCBvZmZzZXQpIGNvbnN0CiB7CiAgICAgUmVuZGVyUmVnaW9uKiBy
ZWdpb24gPSByZWdpb25BdEJsb2NrT2Zmc2V0KG9mZnNldCk7Ci0gICAgcmV0dXJuIHJlZ2lvbiA/
IHJlZ2lvbi0+cGFnZUxvZ2ljYWxIZWlnaHQoKSA6IFpFUk9fTEFZT1VUX1VOSVQ7CisgICAgaWYg
KCFyZWdpb24pCisgICAgICAgIHJldHVybiBaRVJPX0xBWU9VVF9VTklUOworICAgIGlmIChyZWdp
b24tPm5lZWRzT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodENvbXB1dGF0aW9uKCkpCisgICAg
ICAgIHJldHVybiBNQVhfTEFZT1VUX1VOSVQgLyAyOworICAgIHJldHVybiByZWdpb24tPnBhZ2VM
b2dpY2FsSGVpZ2h0KCk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyRmxvd1RocmVhZDo6cGFnZVJl
bWFpbmluZ0xvZ2ljYWxIZWlnaHRGb3JPZmZzZXQoTGF5b3V0VW5pdCBvZmZzZXQsIFBhZ2VCb3Vu
ZGFyeVJ1bGUgcGFnZUJvdW5kYXJ5UnVsZSkgY29uc3QKQEAgLTM4Myw3ICszOTQsOSBAQCBMYXlv
dXRVbml0IFJlbmRlckZsb3dUaHJlYWQ6OnBhZ2VSZW1haW5pbmdMb2dpY2FsSGVpZ2h0Rm9yT2Zm
c2V0KExheW91dFVuaXQgb2ZmcwogICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gcmVnaW9uQXRC
bG9ja09mZnNldChvZmZzZXQpOwogICAgIGlmICghcmVnaW9uKQogICAgICAgICByZXR1cm4gWkVS
T19MQVlPVVRfVU5JVDsKLSAgICAKKyAgICBpZiAocmVnaW9uLT5uZWVkc092ZXJyaWRlTG9naWNh
bENvbnRlbnRIZWlnaHRDb21wdXRhdGlvbigpKQorICAgICAgICByZXR1cm4gTUFYX0xBWU9VVF9V
TklUIC8gMjsKKwogICAgIExheW91dFVuaXQgcGFnZUxvZ2ljYWxUb3AgPSByZWdpb24tPnBhZ2VM
b2dpY2FsVG9wRm9yT2Zmc2V0KG9mZnNldCk7CiAgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhl
aWdodCA9IHJlZ2lvbi0+cGFnZUxvZ2ljYWxIZWlnaHQoKTsKICAgICBMYXlvdXRVbml0IHBhZ2VM
b2dpY2FsQm90dG9tID0gcGFnZUxvZ2ljYWxUb3AgKyBwYWdlTG9naWNhbEhlaWdodDsKQEAgLTYz
NCwxMyArNjQ3LDE5IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6Z2V0UmVnaW9uUmFuZ2VGb3JC
b3goY29uc3QgUmVuZGVyQm94KiBib3gsIFJlbmRlclJlZ2lvbiomCiB2b2lkIFJlbmRlckZsb3dU
aHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENsaWVu
dEFmdGVyRWRnZSkKIHsKICAgICBMYXlvdXRVbml0IGhlaWdodCA9IG9sZENsaWVudEFmdGVyRWRn
ZTsKKyAgICBib29sIHVzZUhvcml6b250YWxXcml0aW5nTW9kZSA9IGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCk7CisKKyAgICAvLyBTaW11bGF0ZSBhIHJlZ2lvbiBicmVhayBhdCBoZWlnaHQuIElm
IGl0IHBvaW50cyBpbnNpZGUgYW4gYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb24sCisgICAgLy8g
dGhlbiBpdCBkZXRlcm1pbmVzIHRoZSByZWdpb24gb3ZlcnJpZGUgbG9naWNhbCBjb250ZW50IGhl
aWdodC4KKyAgICBhZGRGb3JjZWRSZWdpb25CcmVhayhoZWlnaHQpOworCiAgICAgLy8gRklYTUU6
IHRoZSB2aXN1YWwgb3ZlcmZsb3cgb2YgbWlkZGxlIHJlZ2lvbiAoaWYgaXQgaXMgdGhlIGxhc3Qg
b25lIHRvIGNvbnRhaW4gYW55IGNvbnRlbnQgaW4gYSByZW5kZXIgZmxvdyB0aHJlYWQpCiAgICAg
Ly8gbWlnaHQgbm90IGJlIHRha2VuIGludG8gYWNjb3VudCBiZWNhdXNlIHRoZSByZW5kZXIgZmxv
dyB0aHJlYWQgaGVpZ2h0IGlzIGdyZWF0ZXIgdGhhdCB0aGF0IHJlZ2lvbnMgaGVpZ2h0ICsgaXRz
IHZpc3VhbCBvdmVyZmxvdwogICAgIC8vIGJlY2F1c2Ugb2YgaG93IGNvbXB1dGVMb2dpY2FsSGVp
Z2h0IGlzIGltcGxlbWVudGVkIGZvciBSZW5kZXJGbG93VGhyZWFkIChhcyBhIHN1bSBvZiBhbGwg
cmVnaW9ucyBoZWlnaHQpLgogICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGUgbWlkZGxlIHJlZ2lv
biB3aWxsIGJlIG1hcmtlZCBhcyBmaXQgKGV2ZW4gaWYgaXQgaGFzIHZpc3VhbCBvdmVyZmxvdyBm
bG93aW5nIGludG8gdGhlIG5leHQgcmVnaW9uKQotICAgIGlmIChoYXNSZW5kZXJPdmVyZmxvdygp
ICYmICggKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgJiYgdmlzdWFsT3ZlcmZsb3dSZWN0KCku
bWF4WSgpID4gY2xpZW50Qm94UmVjdCgpLm1heFkoKSkgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHx8ICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiB2aXN1YWxPdmVyZmxv
d1JlY3QoKS5tYXhYKCkgPiBjbGllbnRCb3hSZWN0KCkubWF4WCgpKSkpCi0gICAgICAgIGhlaWdo
dCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyB2aXN1YWxPdmVyZmxvd1JlY3QoKS5tYXhZ
KCkgOiB2aXN1YWxPdmVyZmxvd1JlY3QoKS5tYXhYKCk7CisgICAgaWYgKGhhc1JlbmRlck92ZXJm
bG93KCkgJiYgKCAodXNlSG9yaXpvbnRhbFdyaXRpbmdNb2RlICYmIHZpc3VhbE92ZXJmbG93UmVj
dCgpLm1heFkoKSA+IGNsaWVudEJveFJlY3QoKS5tYXhZKCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHx8ICghdXNlSG9yaXpvbnRhbFdyaXRpbmdNb2RlICYmIHZpc3VhbE92ZXJm
bG93UmVjdCgpLm1heFgoKSA+IGNsaWVudEJveFJlY3QoKS5tYXhYKCkpKSkKKyAgICAgICAgaGVp
Z2h0ID0gdXNlSG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gdmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4
WSgpIDogdmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4WCgpOwogCiAgICAgUmVuZGVyUmVnaW9uKiBs
YXN0UmVnID0gbGFzdFJlZ2lvbigpOwogICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0
b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlzdC5lbmQo
KTsgKytpdGVyKSB7CkBAIC02NDksOCArNjY4LDggQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpj
b21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckUK
ICAgICAgICAgICAgIHJlZ2lvbi0+c2V0UmVnaW9uU3RhdGUoUmVuZGVyUmVnaW9uOjpSZWdpb25V
bmRlZmluZWQpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgTGF5
b3V0VW5pdCBmbG93TWluID0gaGVpZ2h0IC0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBy
ZWdpb24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLnkoKSA6IHJlZ2lvbi0+Zmxvd1RocmVhZFBv
cnRpb25SZWN0KCkueCgpKTsKLSAgICAgICAgTGF5b3V0VW5pdCBmbG93TWF4ID0gaGVpZ2h0IC0g
KGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyByZWdpb24tPmZsb3dUaHJlYWRQb3J0aW9uUmVj
dCgpLm1heFkoKSA6IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkubWF4WCgpKTsKKyAg
ICAgICAgTGF5b3V0VW5pdCBmbG93TWluID0gaGVpZ2h0IC0gKHVzZUhvcml6b250YWxXcml0aW5n
TW9kZSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkueSgpIDogcmVnaW9uLT5mbG93
VGhyZWFkUG9ydGlvblJlY3QoKS54KCkpOworICAgICAgICBMYXlvdXRVbml0IGZsb3dNYXggPSBo
ZWlnaHQgLSAodXNlSG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gcmVnaW9uLT5mbG93VGhyZWFkUG9y
dGlvblJlY3QoKS5tYXhZKCkgOiByZWdpb24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLm1heFgo
KSk7CiAgICAgICAgIFJlbmRlclJlZ2lvbjo6UmVnaW9uU3RhdGUgcHJldmlvdXNTdGF0ZSA9IHJl
Z2lvbi0+cmVnaW9uU3RhdGUoKTsKICAgICAgICAgUmVuZGVyUmVnaW9uOjpSZWdpb25TdGF0ZSBz
dGF0ZSA9IFJlbmRlclJlZ2lvbjo6UmVnaW9uRml0OwogICAgICAgICBpZiAoZmxvd01pbiA8PSAw
KQpAQCAtNzcyLDYgKzc5MSwxMDggQEAgdW5zaWduZWQgUmVuZGVyRmxvd1RocmVhZDo6YXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zQ291bnQoKSBjb25zdAogfQogI2VuZGlmCiAKK2Jvb2wgUmVuZGVy
Rmxvd1RocmVhZDo6cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpCit7
CisgICAgQVNTRVJUKHZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2UoKSk7CisKKyAgICAvLyBXZSBu
ZWVkIHRvIHJlc2V0IHRoZSBvdmVycmlkZSBsb2dpY2FsIGNvbnRlbnQgaGVpZ2h0IGZvciByZWdp
b25zIHdpdGggYXV0byBsb2dpY2FsIGhlaWdodAorICAgIC8vIG9ubHkgaWYgdGhlIGZsb3cgaXRz
ZWxmIG5lZWRzIGxheW91dC4KKyAgICBpZiAoIXNlbGZOZWVkc0xheW91dCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBib29sIGhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA9IGZh
bHNlOworICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVnaW9u
TGlzdC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7CisgICAg
ICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gKml0ZXI7CisgICAgICAgIGlmICghcmVnaW9uLT5p
c1ZhbGlkKCkgfHwgIXJlZ2lvbi0+aGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIGhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA9IHRydWU7
CisKKyAgICAgICAgcmVnaW9uLT5jbGVhck92ZXJyaWRlU2l6ZSgpOworICAgICAgICByZWdpb24t
PnNldE5lZWRzTGF5b3V0KHRydWUpOworICAgIH0KKworICAgIHJldHVybiBoYXNBdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnM7Cit9CisKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bWFya0F1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpCit7CisgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0
OjppdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25M
aXN0LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRl
cjsKKyAgICAgICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSB8fCAhcmVnaW9uLT5oYXNBdXRvTG9n
aWNhbEhlaWdodCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgcmVnaW9uLT5z
ZXROZWVkc0xheW91dCh0cnVlKTsKKyAgICB9CisKKyAgICBtX3JlZ2lvbnNJbnZhbGlkYXRlZCA9
IHRydWU7CisgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7Cit9CisKK3ZvaWQgUmVuZGVyRmxvd1Ro
cmVhZDo6dXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdCgpCit7CisgICAgTGF5b3V0
VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMDsKKyAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJh
dG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5k
KCk7ICsraXRlcikgeworICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOworICAg
ICAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgTGF5b3V0VW5pdCByZWdpb25Mb2dpY2FsV2lkdGggPSByZWdpb24tPnBhZ2VMb2dpY2Fs
V2lkdGgoKTsKKyAgICAgICAgTGF5b3V0VW5pdCByZWdpb25Mb2dpY2FsSGVpZ2h0ID0gcmVnaW9u
LT5sb2dpY2FsSGVpZ2h0T2ZBbGxGbG93VGhyZWFkQ29udGVudCgpOworCisgICAgICAgIExheW91
dFJlY3QgcmVnaW9uUmVjdChzdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBMVFIgPyBaRVJPX0xBWU9V
VF9VTklUIDogbG9naWNhbFdpZHRoKCkgLSByZWdpb25Mb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWln
aHQsIHJlZ2lvbkxvZ2ljYWxXaWR0aCwgcmVnaW9uTG9naWNhbEhlaWdodCk7CisKKyAgICAgICAg
aWYgKHJlZ2lvbi0+aGFzT3ZlcnJpZGVIZWlnaHQoKSAmJiAhdmlldygpLT5ub3JtYWxMYXlvdXRQ
aGFzZSgpKSB7CisgICAgICAgICAgICByZWdpb25Mb2dpY2FsSGVpZ2h0ID0gcmVnaW9uLT5vdmVy
cmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CisgICAgICAgICAgICByZWdpb25SZWN0LnNldEhl
aWdodChyZWdpb25Mb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJlZ2lvbi0+
c2V0Rmxvd1RocmVhZFBvcnRpb25SZWN0KGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyByZWdp
b25SZWN0IDogcmVnaW9uUmVjdC50cmFuc3Bvc2VkUmVjdCgpKTsKKyAgICAgICAgbG9naWNhbEhl
aWdodCArPSByZWdpb25Mb2dpY2FsSGVpZ2h0OworICAgIH0KK30KKworLy8gRklYTUU6IEV4dGVu
ZCBpdCB0byBhY2NvdW50IGZvciByZWdpb24gYnJlYWsKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6
YWRkRm9yY2VkUmVnaW9uQnJlYWsoTGF5b3V0VW5pdCBvZmZzZXRCcmVha0luRmxvd1RocmVhZCkK
K3sKKyAgICAvLyBXZSB0YWtlIGJyZWFrcyBpbnRvIGFjY291bnQgZm9yIGhlaWdodCBjb21wdXRh
dGlvbiBmb3IgYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb25zCisgICAgLy8gb25seSBpbiB0aGUg
bGF5b3V0IHBoYXNlIGluIHdoaWNoIHdlIGxheSBvdXQgdGhlIGZsb3dzIHRocmVhZHMgdW5jb25z
dHJhaW5lZCAod2UgYXJlIG5vdAorICAgIC8vIGJyZWFraW5nIGZsb3cgdGhyZWFkcyBjb250ZW50
IGluIHJlZ2lvbnMpLgorICAgIGlmICh2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIFNpbXVsYXRlIGEgcmVnaW9uIGJyZWFrIGF0IGhlaWdodC4g
SWYgaXQgcG9pbnRzIGluc2lkZSBhbiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiwKKyAgICAv
LyB0aGVuIGl0IGRldGVybWluZXMgdGhlIHJlZ2lvbiBvdmVycmlkZSBsb2dpY2FsIGNvbnRlbnQg
aGVpZ2h0LgorICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gcmVnaW9uQXRCbG9ja09mZnNldChv
ZmZzZXRCcmVha0luRmxvd1RocmVhZCk7CisgICAgaWYgKCFyZWdpb24pCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghcmVnaW9uLT5uZWVkc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHRD
b21wdXRhdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIHVzZUhvcml6b250YWxX
cml0aW5nTW9kZSA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CisgICAgTGF5b3V0VW5pdCBj
dXJyZW50UmVnaW9uT2Zmc2V0SW5GbG93VGhyZWFkID0gdXNlSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
ID8gcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS55KCkgOiByZWdpb24tPmZsb3dUaHJl
YWRQb3J0aW9uUmVjdCgpLngoKTsKKyAgICBMYXlvdXRVbml0IG9mZnNldEJyZWFrSW5DdXJyZW50
UmVnaW9uID0gb2Zmc2V0QnJlYWtJbkZsb3dUaHJlYWQgLSBjdXJyZW50UmVnaW9uT2Zmc2V0SW5G
bG93VGhyZWFkOworICAgIExheW91dFVuaXQgcmVnaW9uT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhl
aWdodCA9IHJlZ2lvbi0+Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFJlc3BlY3RpbmdNaW5N
YXhIZWlnaHQob2Zmc2V0QnJlYWtJbkN1cnJlbnRSZWdpb24pOworICAgIHJlZ2lvbi0+c2V0T3Zl
cnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChyZWdpb25PdmVycmlkZUxvZ2ljYWxDb250ZW50SGVp
Z2h0KTsKKworICAgIC8vIEZJWE1FOiBFeHRlbmQgaXQgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhh
dCB3ZSBtYXkgaGF2ZSBtb3JlIHRoYW4gb25lIGF1dG8taGVpZ2h0IHJlZ2lvbiBpbiBmbG93Lgor
ICAgIC8vIEZvciBub3csIHNldCB0aGUgbG9naWNhbCBjb250ZW50IGhlaWdodCBmb3IgcmVtYWlu
aW5nIHJlZ2lvbnMgaW4gdGhlIGZsb3cgdG8gMC4KKyAgICAvLyBBIGZvbGxvdy11cCBwYXRjaCB3
aWxsIHByb3Blcmx5IGRpc3RyaWJ1dGUgdGhlIHJlbWFpbmluZyBoZWlnaHQgaW50byB0aGUgZm9s
bG93aW5nIHJlZ2lvbnMuCisgICAgUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgcmVnaW9uSXRl
ciA9IG1fcmVnaW9uTGlzdC5maW5kKHJlZ2lvbik7CisgICAgQVNTRVJUKHJlZ2lvbkl0ZXIgIT0g
bV9yZWdpb25MaXN0LmVuZCgpKTsKKworICAgIC8vIE1hcmsgYWxsIHRoZSByZW1haW5pbmcgYXV0
byBsb2dpY2FsIGhlaWdodCByZWdpb25zIHdpdGggMCBvdmVycmlkZSBjb21wdXRlZCBoZWlnaHQK
KyAgICBmb3IgKDsgcmVnaW9uSXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsrcmVnaW9uSXRl
cikgeworICAgICAgICBSZW5kZXJSZWdpb24qIGN1cnJSZWdpb24gPSAqcmVnaW9uSXRlcjsKKyAg
ICAgICAgaWYgKCFjdXJyUmVnaW9uLT5pc1ZhbGlkKCkgfHwgKGN1cnJSZWdpb24gPT0gcmVnaW9u
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgIGN1cnJSZWdpb24tPnNldE92ZXJyaWRl
TG9naWNhbENvbnRlbnRIZWlnaHQoWkVST19MQVlPVVRfVU5JVCk7CisgICAgfQorCisgICAgdXBk
YXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdCgpOworfQorCiBDdXJyZW50UmVuZGVyRmxv
d1RocmVhZE1haW50YWluZXI6OkN1cnJlbnRSZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lcihSZW5k
ZXJGbG93VGhyZWFkKiByZW5kZXJGbG93VGhyZWFkKQogICAgICAgICA6IG1fcmVuZGVyRmxvd1Ro
cmVhZChyZW5kZXJGbG93VGhyZWFkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmgKaW5kZXggYjk0MmVlZS4uN2I1YTIzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC0xMjksNiArMTI5LDExIEBAIHB1Ymxp
YzoKICAgICAvLyBDaGVjayBpZiB0aGUgb2JqZWN0IGlzIGluIHJlZ2lvbiBhbmQgdGhlIHJlZ2lv
biBpcyBwYXJ0IG9mIHRoaXMgZmxvdyB0aHJlYWQuCiAgICAgYm9vbCBvYmplY3RJbkZsb3dSZWdp
b24oY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyUmVnaW9uKikgY29uc3Q7CiAKKyAg
ICBib29sIHJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKKyAgICB2
b2lkIG1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKTsKKworICAgIHZvaWQg
YWRkRm9yY2VkUmVnaW9uQnJlYWsoTGF5b3V0VW5pdCk7CisKICAgICBib29sIHBhZ2VMb2dpY2Fs
SGVpZ2h0Q2hhbmdlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2Vk
OyB9CiAKICNpZm5kZWYgTkRFQlVHCkBAIC0xMzgsNiArMTQzLDcgQEAgcHVibGljOgogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0ID0gMDsKIAor
ICAgIHZvaWQgdXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdCgpOwogICAgIGJvb2wg
c2hvdWxkUmVwYWludChjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAgICAgYm9vbCByZWdpb25J
blJhbmdlKGNvbnN0IFJlbmRlclJlZ2lvbiogdGFyZ2V0UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdp
b24qIHN0YXJ0UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdpb24qIGVuZFJlZ2lvbikgY29uc3Q7CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4IDhhNzQ4
N2QuLmExMzM1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3Bw
CkBAIC01NzksNCArNTc5LDM2IEBAIHZvaWQgUmVuZGVyUmVnaW9uOjpnZXRSYW5nZXMoVmVjdG9y
PFJlZlB0cjxSYW5nZT4gPiYgcmFuZ2VPYmplY3RzKSBjb25zdAogICAgIG5hbWVkRmxvdy0+Z2V0
UmFuZ2VzKHJhbmdlT2JqZWN0cywgdGhpcyk7CiB9CiAKK3ZvaWQgUmVuZGVyUmVnaW9uOjp1cGRh
dGVMb2dpY2FsSGVpZ2h0KCkKK3sKKyAgICBSZW5kZXJSZXBsYWNlZDo6dXBkYXRlTG9naWNhbEhl
aWdodCgpOworCisgICAgLy8gV2Ugd2FudCB0byB1cGRhdGUgdGhlIGxvZ2ljYWwgaGVpZ2h0IGJh
c2VkIG9uIHRoZSBjb21wdXRlZCBvdmVycmlkZSBsb2dpY2FsCisgICAgLy8gY29udGVudCBoZWln
aHQgb25seSBpZiB0aGUgdmlldyBpcyBpbiB0aGUgc2Vjb25kIGxheW91dCBwaGFzZSBvZiB0aGUg
bGF5b3V0LAorICAgIC8vIGluIHdoaWNoIGFsbCB0aGUgYXV0byBsb2dpY2FsIGhlaWdodCByZWdp
b25zIGhhdmUgdGhlaXIgb3ZlcnJpZGUgbG9naWNhbCBoZWlnaHQgc2V0LgorICAgIGlmICghdmll
dygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaGFz
QXV0b0xvZ2ljYWxIZWlnaHQoKSAmJiBoYXNPdmVycmlkZUhlaWdodCgpKSB7CisgICAgICAgIExh
eW91dFVuaXQgbmV3TG9naWNhbEhlaWdodCA9IG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQo
KSArIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIGlmIChuZXdMb2dp
Y2FsSGVpZ2h0ID4gbG9naWNhbEhlaWdodCgpKQorICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdo
dChuZXdMb2dpY2FsSGVpZ2h0KTsKKyAgICB9Cit9CisKK2Jvb2wgUmVuZGVyUmVnaW9uOjpuZWVk
c092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHRDb21wdXRhdGlvbigpIGNvbnN0Cit7CisgICAg
aWYgKCFoYXNBdXRvTG9naWNhbEhlaWdodCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIXZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2UoKSkKKyAgICAgICAgcmV0dXJuICFoYXNP
dmVycmlkZUhlaWdodCgpOworCisgICAgLy8gVGhlIHJlZ2lvbnMgYXJlIGFsd2F5cyBsYWlkIG91
dCBiZWZvcmUgdGhlIGFzc29jaWF0ZWQgZmxvdyB0aHJlYWQgY29udGVudC4KKyAgICAvLyBCZWNh
dXNlIG9mIHRoYXQsIGlmIHdlIGFyZSBpbiB0aGUgc2Vjb25kIHBoYXNlIG9mIGxheW91dCBmb3Ig
YXV0b2hlaWdodCByZWdpb25zLAorICAgIC8vIHRoZSByZWdpb25zIHNob3VsZCBoYXZlIHRoZWly
IGhlaWdodCBjb21wdXRlZC4KKyAgICBBU1NFUlQoaGFzT3ZlcnJpZGVIZWlnaHQoKSk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggOGE0ZjcxMi4uZmFkYWNiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtMTIyLDYgKzEyMiwxMCBAQCBwdWJs
aWM6CiAgICAgfQogICAgIGJvb2wgaGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVy
biBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0OyB9CiAKKyAgICBib29sIG5lZWRzT3ZlcnJpZGVMb2dp
Y2FsQ29udGVudEhlaWdodENvbXB1dGF0aW9uKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOworCiAgICAgLy8gVGhlIHRvcCBvZiB0aGUg
bmVhcmVzdCBwYWdlIGluc2lkZSB0aGUgcmVnaW9uLiBGb3IgUmVuZGVyUmVnaW9ucywgdGhpcyBp
cyBqdXN0IHRoZSBsb2dpY2FsIHRvcCBvZiB0aGUKICAgICAvLyBmbG93IHRocmVhZCBwb3J0aW9u
IHdlIGNvbnRhaW4uIEZvciBzZXRzLCB3ZSBoYXZlIHRvIGZpZ3VyZSBvdXQgdGhlIHRvcCBvZiB0
aGUgbmVhcmVzdCBjb2x1bW4gb3IKICAgICAvLyBwYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCmluZGV4IDI1NjI1ZWQuLjFiNmFhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTY1LDYgKzY1LDcgQEAgUmVuZGVyVmlldzo6UmVu
ZGVyVmlldyhOb2RlKiBub2RlLCBGcmFtZVZpZXcqIHZpZXcpCiAgICAgLCBtX2xheW91dFN0YXRl
RGlzYWJsZUNvdW50KDApCiAgICAgLCBtX3JlbmRlclF1b3RlSGVhZCgwKQogICAgICwgbV9yZW5k
ZXJDb3VudGVyQ291bnQoMCkKKyAgICAsIG1fbGF5b3V0UGhhc2UoUmVuZGVyVmlld05vcm1hbExh
eW91dCkKIHsKICAgICAvLyBDbGVhciBvdXIgYW5vbnltb3VzIGJpdCwgc2V0IGJlY2F1c2UgUmVu
ZGVyT2JqZWN0IGFzc3VtZXMKICAgICAvLyBhbnkgcmVuZGVyZXIgd2l0aCBkb2N1bWVudCBhcyB0
aGUgbm9kZSBpcyBhbm9ueW1vdXMuCkBAIC0xMzIsNiArMTMzLDI0IEBAIGJvb2wgUmVuZGVyVmll
dzo6aXNDaGlsZEFsbG93ZWQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyU3R5bGUqKSBjb25z
dAogICAgIHJldHVybiBjaGlsZC0+aXNCb3goKTsKIH0KIAordm9pZCBSZW5kZXJWaWV3OjpsYXlv
dXRDb250ZW50KCkKK3sKKyAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CisKKyAgICBSZW5kZXJC
bG9jazo6bGF5b3V0KCk7CisgICAgaWYgKGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSkKKyAg
ICAgICAgZmxvd1RocmVhZENvbnRyb2xsZXIoKS0+bGF5b3V0UmVuZGVyTmFtZWRGbG93VGhyZWFk
cygpOworfQorCisjaWZuZGVmIE5ERUJVRwordm9pZCBSZW5kZXJWaWV3OjpjaGVja0xheW91dFN0
YXRlKGNvbnN0IExheW91dFN0YXRlJiBzdGF0ZSkKK3sKKyAgICBBU1NFUlQobGF5b3V0RGVsdGEo
KSA9PSBMYXlvdXRTaXplKCkpOworICAgIEFTU0VSVChtX2xheW91dFN0YXRlRGlzYWJsZUNvdW50
ID09IDApOworICAgIEFTU0VSVChtX2xheW91dFN0YXRlID09ICZzdGF0ZSk7Cit9CisjZW5kaWYK
Kwogdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogewogICAgIGlmICghZG9jdW1lbnQoKS0+cGFn
aW5hdGVkKCkpCkBAIC0xNjQsMTQgKzE4MywyNyBAQCB2b2lkIFJlbmRlclZpZXc6OmxheW91dCgp
CiAgICAgbV9sYXlvdXRTdGF0ZSA9ICZzdGF0ZTsKIAogICAgIGlmIChuZWVkc0xheW91dCgpKSB7
Ci0gICAgICAgIFJlbmRlckJsb2NrOjpsYXlvdXQoKTsKLSAgICAgICAgaWYgKGhhc1JlbmRlck5h
bWVkRmxvd1RocmVhZHMoKSkKLSAgICAgICAgICAgIGZsb3dUaHJlYWRDb250cm9sbGVyKCktPmxh
eW91dFJlbmRlck5hbWVkRmxvd1RocmVhZHMoKTsKKyAgICAgICAgaWYgKGhhc1JlbmRlck5hbWVk
Rmxvd1RocmVhZHMoKQorICAgICAgICAgICAgJiYgZmxvd1RocmVhZENvbnRyb2xsZXIoKS0+aGFz
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkKKyAgICAgICAgICAgICYmIGZsb3dUaHJlYWRDb250
cm9sbGVyKCktPnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKSkKKyAg
ICAgICAgICAgIG1fbGF5b3V0UGhhc2UgPSBVbmNvbnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRJ
bkF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsKKworICAgICAgICBsYXlvdXRDb250ZW50KCk7Cisj
aWZuZGVmIE5ERUJVRworICAgICAgICBjaGVja0xheW91dFN0YXRlKHN0YXRlKTsKKyNlbmRpZgog
ICAgIH0KIAotICAgIEFTU0VSVChsYXlvdXREZWx0YSgpID09IExheW91dFNpemUoKSk7Ci0gICAg
QVNTRVJUKG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQgPT0gMCk7Ci0gICAgQVNTRVJUKG1fbGF5
b3V0U3RhdGUgPT0gJnN0YXRlKTsKKyAgICBpZiAobmVlZHNTZWNvbmRQYXNzTGF5b3V0Rm9yQXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpIHsKKyAgICAgICAgbV9sYXlvdXRQaGFzZSA9IFJlbmRl
clZpZXdOb3JtYWxMYXlvdXQ7CisgICAgICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKKyAgICAg
ICAgZmxvd1RocmVhZENvbnRyb2xsZXIoKS0+bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Zv
ckxheW91dCgpOworICAgICAgICBsYXlvdXRDb250ZW50KCk7CisgICAgfQorCisjaWZuZGVmIE5E
RUJVRworICAgIGNoZWNrTGF5b3V0U3RhdGUoc3RhdGUpOworI2VuZGlmCiAgICAgbV9sYXlvdXRT
dGF0ZSA9IDA7CiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgKaW5kZXggNjIwZjI1Ni4uNGQ2ZWYxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC0xODgsNiArMTg4LDEwIEBAIHB1YmxpYzoKICAgICBi
b29sIGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSBjb25zdDsKICAgICBGbG93VGhyZWFkQ29u
dHJvbGxlciogZmxvd1RocmVhZENvbnRyb2xsZXIoKTsKIAorICAgIGVudW0gUmVuZGVyVmlld0xh
eW91dFBoYXNlIHsgUmVuZGVyVmlld05vcm1hbExheW91dCwgVW5jb25zdHJhaW5lZEZsb3dUaHJl
YWRzTGF5b3V0SW5BdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgfTsKKyAgICBib29sIG5lZWRzU2Vj
b25kUGFzc0xheW91dEZvckF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpIGNvbnN0IHsgcmV0dXJu
IG1fbGF5b3V0UGhhc2UgPT0gVW5jb25zdHJhaW5lZEZsb3dUaHJlYWRzTGF5b3V0SW5BdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnM7IH0KKyAgICBib29sIG5vcm1hbExheW91dFBoYXNlKCkgY29uc3Qg
eyByZXR1cm4gbV9sYXlvdXRQaGFzZSA9PSBSZW5kZXJWaWV3Tm9ybWFsTGF5b3V0OyB9CisKICAg
ICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlKTsKIAogICAgIEludGVydmFsQXJlbmEqIGludGVydmFsQXJlbmEoKTsKQEAgLTI0
NSw2ICsyNDksOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzYWJsZUxheW91dFN0YXRlKCkgeyBt
X2xheW91dFN0YXRlRGlzYWJsZUNvdW50Kys7IH0KICAgICB2b2lkIGVuYWJsZUxheW91dFN0YXRl
KCkgeyBBU1NFUlQobV9sYXlvdXRTdGF0ZURpc2FibGVDb3VudCA+IDApOyBtX2xheW91dFN0YXRl
RGlzYWJsZUNvdW50LS07IH0KIAorICAgIHZvaWQgbGF5b3V0Q29udGVudCgpOworICAgIHZvaWQg
Y2hlY2tMYXlvdXRTdGF0ZShjb25zdCBMYXlvdXRTdGF0ZSYpOworCiAgICAgc2l6ZV90IGdldFJl
dGFpbmVkV2lkZ2V0cyhWZWN0b3I8UmVuZGVyV2lkZ2V0Kj4mKTsKICAgICB2b2lkIHJlbGVhc2VX
aWRnZXRzKFZlY3RvcjxSZW5kZXJXaWRnZXQqPiYpOwogICAgIApAQCAtMzAzLDYgKzMxMCw3IEBA
IHByaXZhdGU6CiAKICAgICBSZW5kZXJRdW90ZSogbV9yZW5kZXJRdW90ZUhlYWQ7CiAgICAgdW5z
aWduZWQgbV9yZW5kZXJDb3VudGVyQ291bnQ7CisgICAgUmVuZGVyVmlld0xheW91dFBoYXNlIG1f
bGF5b3V0UGhhc2U7CiB9OwogCiBpbmxpbmUgUmVuZGVyVmlldyogdG9SZW5kZXJWaWV3KFJlbmRl
ck9iamVjdCogb2JqZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166835</attachid>
            <date>2012-10-03 02:42:51 -0700</date>
            <delta_ts>2012-10-08 06:54:25 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>97533-2.patch</filename>
            <type>text/plain</type>
            <size>54650</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMjU3MjExLi4xODhmMDMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMTAt
MDMgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdQWRkIHN1cHBvcnQgZm9yIGF1dG8taGVpZ2h0IHJlZ2lvbnMgKHdpdGhvdXQgcmVnaW9u
LWJyZWFrcykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk3NTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgdGVzdHMgZm9yIGF1dG8taGVpZ2h0IHJlZ2lvbnMsIHdpdGggZGlmZmVyZW50IHdyaXRp
bmcgbW9kZXMsIHdpdGggbWluL21heC1oZWlnaHQuCisgICAgICAgIFRoZSBidWcgcmVmZXJlbmNl
ZCBpbiB0aGUgdGVzdHMgaXMgdGhlIG1hc3RlciBidWcgZm9yIGF1dG8taGVpZ2h0IHN1cHBvcnQs
IDkxMDk3LgorCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJlZ2lv
bi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdo
dC1hYnNwb3MtcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWhvcml6b250YWwtYnQtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaG9yaXpvbnRh
bC1idC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxp
bmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQt
cmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LW1heGhlaWdodC1yZWdpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taW5oZWlnaHQtcmVnaW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5vcm1hbGZsb3ctcmVnaW9u
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0
LW5vcm1hbGZsb3ctcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9h
dXRvaGVpZ2h0LXZlcnRpY2FsLWxyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLWxyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1maXJzdC1lbXB0
eS1yZWdpb24taW5kZXguaHRtbDoKKwogMjAxMi0xMC0wMiAgQXJrbyBTYWhhICA8YXJrb0Btb3Rv
cm9sYS5jb20+CiAKICAgICAgICAgTWljcm9kYXRhOiBpdGVtcHJvcCBuYW1lcyBtdXN0IG5vdCBv
dmVycmlkZSBidWlsdGluIHByb3BlcnRpZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvYXV0b2hlaWdodC1hYnNwb3MtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1hYnNwb3MtcmVnaW9uLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTcxMzliMWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1hYnNwb3MtcmVnaW9u
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmV4cGVjdGVkUmVnaW9u
U2l6ZSAgeyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjZ3JlZW4g
eyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwMHB4
OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8
cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9w
PgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgYWJzb2x1dGVseSBw
b3NpdGlvbmVkLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBub3Qgc2Vl
IGEgcmVkIHJlY3RhbmdsZSBiZWxvdy48L3A+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuIiBjbGFz
cz0iZXhwZWN0ZWRSZWdpb25TaXplIj48L2Rpdj4KKyAgICA8Ym9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWFic3Bvcy1yZWdpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWFic3Bvcy1yZWdpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmQ5MWI0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJl
Z2lvbi5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5mbG93Q29udGVudFNpemUgIHsg
d2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Vi
a2l0LWZsb3ctaW50bzogZmxvdzsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKworICAgICAg
ICAgICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSAgeyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyB9
CisgICAgICAgICAgICAjcmVkIHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBwb3NpdGlvbjogYWJz
b2x1dGU7IHRvcDogMTAwcHg7IH0KKworICAgICAgICAgICAgLnJlZ2lvblNpemUgeyB3aWR0aDog
NTBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyBw
b3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTAwcHg7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5v
dCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMg
YSBibG9jayBlbGVtZW50LCBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuPC9wPgorICAgICAgICA8cD5P
biBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4K
KyAgICAgICAgPGRpdiBpZD0icmVkIiBjbGFzcz0iZXhwZWN0ZWRSZWdpb25TaXplIj48L2Rpdj4K
KyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSIgY2xhc3M9ImZsb3dDb250ZW50U2l6ZSI+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvblNpemUiPjwvZGl2PgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9h
dXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1mbG9hdHJpZ2h0LXJlZ2lvbi1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3Y2ZjZDQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1mbG9hdHJpZ2h0LXJlZ2lv
bi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46
IDEwcHg7IH0KKyAgICAgICAgICAgIC5leHBlY3RlZFJlZ2lvblNpemUgeyB3aWR0aDogNTBweDsg
aGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjZ3JlZW4geyBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1MHB4OyBsZWZ0OiA2MHB4OyB9CisgICAg
ICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZv
ciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTci
PiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAg
ICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgcmlnaHQgZmxvYXRpbmcuPC9wPgor
ICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xl
IGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4iIGNsYXNzPSJleHBlY3RlZFJlZ2lv
blNpemUiPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1mbG9hdHJpZ2h0LXJlZ2lvbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3ZjhhNGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1mbG9hdHJpZ2h0LXJlZ2lv
bi5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46IDEwcHg7IH0K
KworICAgICAgICAgICAgLmZsb3dDb250ZW50U2l6ZSB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUw
cHg7IH0KKyAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7ICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQorCisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25T
aXplIHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI3JlZCB7IGJh
Y2tncm91bmQtY29sb3I6IHJlZDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1MHB4OyBsZWZ0
OiA2MHB4OyB9CisKKyAgICAgICAgICAgIC5yZWdpb25Db250YWluZXJTaXplIHsgd2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDEwMHB4OyB9CisgICAgICAgICAgICAjY29udGFpbmVyIHsgcG9zaXRpb246
IGFic29sdXRlOyAgdG9wOiAxNTBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQt
Zmxvdy1mcm9tOiBmbG93OyB3aWR0aDogNTBweDsgZmxvYXQ6IHJpZ2h0OyB9CisgICAgICAgIDwv
c3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRv
IGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5U
aGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgcmlnaHQgZmxvYXRpbmcuPC9wPgorICAgICAg
ICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93
LjwvcD4KKyAgICAgICAgPGRpdiBpZD0icmVkIiBjbGFzcz0iZXhwZWN0ZWRSZWdpb25TaXplIj48
L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSIgY2xhc3M9ImZsb3dDb250ZW50U2l6ZSI+
PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciIgY2xhc3M9InJlZ2lvbkNvbnRhaW5l
clNpemUiPgorICAgICAgICAgICAgPGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2F1dG9oZWlnaHQtaG9yaXpvbnRhbC1idC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaG9yaXpvbnRhbC1idC1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZjU1MTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ob3Jpem9udGFsLWJ0LWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBzdHls
ZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7Ij4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmdyZWVuQm94IHsgcG9zaXRpb246IGFic29sdXRl
OyB3aWR0aDogMjAwcHg7IGhlaWdodDogNTBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0K
KyAgICAgICAgICAgICNncmVlbiB7IGJvdHRvbTogMTI1cHg7IH0KKyAgICAgICAgICAgICNncmVl
bjEgeyBib3R0b206IDIyNXB4OyB9CisgICAgICAgICAgICAjZ3JlZW4yIHsgYm90dG9tOiAzMjVw
eDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAg
PHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+Ljwv
cD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQsIHdyaXRpbmcgbW9k
ZSBob3Jpem9udGFsLWJ0LjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBz
ZWUgMyBncmVlbiByZWN0YW5nbGVzLjwvcD4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4iIGNsYXNz
PSJncmVlbkJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuMSIgY2xhc3M9ImdyZWVu
Qm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4yIiBjbGFzcz0iZ3JlZW5Cb3giPjwv
ZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9hdXRvaGVpZ2h0LWhvcml6b250YWwtYnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9hdXRvaGVpZ2h0LWhvcml6b250YWwtYnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jYjUwODkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaG9yaXpvbnRhbC1idC5odG1sCkBAIC0wLDAgKzEsMzEg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWwgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiBo
b3Jpem9udGFsLWJ0OyI+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAg
IC5mbG93Q29udGVudCB7IGZvbnQtc2l6ZTogNTBweDsgZm9udC1mYW1pbHk6IEFoZW07IHRleHQt
YWxpZ246IGp1c3RpZnk7IGxpbmUtaGVpZ2h0OiAyOyBjb2xvcjogZ3JlZW47IH0KKyAgICAgICAg
ICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IH0KKworICAgICAgICAgICAg
LnJlZ2lvblNpemUgeyB3aWR0aDogMjAwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24geyAtd2Vi
a2l0LWZsb3ctZnJvbTogZmxvdzsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDEwMHB4OyB9
CisKKyAgICAgICAgICAgIC5yZWRCb3ggeyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAyMDBw
eDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAgICAgICNy
ZWQgeyBib3R0b206IDEyNXB4OyB9CisgICAgICAgICAgICAjcmVkMSB7IGJvdHRvbTogMjI1cHg7
IH0KKyAgICAgICAgICAgICNyZWQyIHsgYm90dG9tOiAzMjVweDsgfQorICAgICAgICA8L3N0eWxl
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWln
aHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJl
Z2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQsIHdyaXRpbmcgbW9kZSBob3Jpem9udGFsLWJ0LjwvcD4K
KyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgMyBncmVlbiByZWN0YW5nbGVz
LjwvcD4KKyAgICAgICAgPGRpdiBpZD0icmVkIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4KKyAgICAg
ICAgPGRpdiBpZD0icmVkMSIgY2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9
InJlZDIiIGNsYXNzPSJyZWRCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBj
bGFzcz0iZmxvd0NvbnRlbnQiPgorICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImJhY2tncm91bmQt
Y29sb3I6IGdyZWVuIj4KKyAgICAgICAgICAgICAgICBhYWFhIGFhYWEgYWFhYQorICAgICAgICAg
ICAgPC9zcGFuPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFz
cz0icmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaW5saW5lYmxvY2stbm9ybWFsZmxv
dy1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVp
Z2h0LWlubGluZWJsb2NrLW5vcm1hbGZsb3ctcmVnaW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUzODI4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWlubGluZWJsb2NrLW5vcm1hbGZsb3ct
cmVnaW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmV4cGVjdGVk
UmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNn
cmVlbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAg
PC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBu
b3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlz
IGFuIGlubGluZS1ibG9jayBlbGVtZW50IGluIG5vcm1hbCBmbG93PC9wPgorICAgICAgICA8cD5P
biBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4K
KyAgICAgICAgPGRpdiBpZD0iZ3JlZW4iIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2
PgorICAgIDxib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtaW5saW5lYmxvY2stbm9ybWFsZmxvdy1yZWdpb24uaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWlubGluZWJsb2NrLW5vcm1hbGZsb3ctcmVn
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjUwMjlhYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWlubGlu
ZWJsb2NrLW5vcm1hbGZsb3ctcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAg
LmZsb3dDb250ZW50U2l6ZSB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAg
ICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOyB9CisKKyAgICAgICAgICAgIC5leHBjdGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4
OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7IH0KKworICAgICAgICAgICAgLnJlZ2lvblNpemUgeyB3aWR0aDogNTBweDsgfQorICAgICAg
ICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyBwb3NpdGlvbjogcmVsYXRp
dmU7IHRvcDogLTUwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQorICAgICAgICA8L3N0eWxl
PgorICAgIDwvaGVhZD4KKyAgICAgPGJvZHk+CisgICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhl
aWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICAgPHA+VGhl
IHJlZ2lvbiBpcyBhbiBpbmxpbmUtYmxvY2sgZWxlbWVudCBpbiBub3JtYWwgZmxvdzwvcD4KKyAg
ICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBub3Qgc2VlIGEgcmVkIHJlY3RhbmdsZSBi
ZWxvdy48L3A+CisgICAgICAgIDxkaXYgaWQ9InJlZCIgY2xhc3M9ImV4cGN0ZWRSZWdpb25TaXpl
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSIgY2xhc3M9ImZsb3dDb250ZW50U2l6
ZSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvblNpemUiPjwv
ZGl2PgorICAgIDxib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2F1dG9oZWlnaHQtbWF4aGVpZ2h0LXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWF4aGVpZ2h0LXJlZ2lvbi1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkNTc2MTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQt
cmVnaW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAuZXhwZWN0ZWRSZWdp
b25TaXplIHsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgI2dyZWVuIHsg
cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuOyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5U
ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgor
ICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCBpbiBub3JtYWwgZmxvdywg
aGF2aW5nIG1heC1oZWlnaHQgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2Vzcywg
eW91IHNob3VsZCBzZWUgMSBncmVlbiBsaW5lLjwvcD4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4i
IGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1heGhlaWdo
dC1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1heGhl
aWdodC1yZWdpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWRj
ZGQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWln
aHQtbWF4aGVpZ2h0LXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5mbG93
Q29udGVudCB7IGZvbnQtc2l6ZTogNTBweDsgZm9udC1mYW1pbHk6IEFoZW07IHRleHQtYWxpZ246
IGp1c3RpZnk7IGxpbmUtaGVpZ2h0OiAyOyBjb2xvcjogZ3JlZW47IH0KKyAgICAgICAgICAgICNh
cnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IHBhZGRpbmctdG9wOiAyNXB4OyB9CisK
KyAgICAgICAgICAgIC5yZWdpb25TaXplIHsgd2lkdGg6IDIwMHB4OyBtYXgtaGVpZ2h0OiAxMDBw
eDsgfQorICAgICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyBvdmVy
ZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTAwcHg7IH0KKworICAgICAg
ICAgICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiA1MHB4OyAg
fQorICAgICAgICAgICAgI3JlZCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNTBweDsgYmFj
a2dyb3VuZC1jb2xvcjpyZWQ7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZv
ciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVt
ZW50IGluIG5vcm1hbCBmbG93LCBoYXZpbmcgbWF4LWhlaWdodCBzcGVjaWZpZWQuPC9wPgorICAg
ICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAxIGdyZWVuIGxpbmUuPC9wPgorICAg
ICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnQiPgorICAgICAgICAgICAg
PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVuIj4KKyAgICAgICAgICAgICAgICBh
YWFhIGFhYWEgYWFhYQorICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWln
aHQtbWluaGVpZ2h0LXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMjcwMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taW5oZWlnaHQtcmVnaW9uLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSB7IHdp
ZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgfQorICAgICAgICAgICAgI2dyZWVuIHsgcG9zaXRp
b246IGFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgdG9wOiAxNTBweDsgfQorICAg
ICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBm
b3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3
Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAg
ICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQsIGhhdmluZyBtaW4taGVpZ2h0IHNw
ZWNpZmllZC48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIDEgZ3Jl
ZW4gcmVjdGFuZ2xlLjwvcD4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4iIGNsYXNzPSJleHBlY3Rl
ZFJlZ2lvblNpemUiPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1pbmhlaWdodC1yZWdpb24uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1pbmhlaWdodC1yZWdpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmU0OWQyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJl
Z2lvbi5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5mbG93Q29udGVudCB7IGZvbnQt
c2l6ZTogNTBweDsgZm9udC1mYW1pbHk6IEFoZW07IHRleHQtYWxpZ246IGp1c3RpZnk7IGxpbmUt
aGVpZ2h0OiAyOyBjb2xvcjogZ3JlZW47IH0KKyAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtp
dC1mbG93LWludG86IGZsb3c7IHBhZGRpbmctdG9wOiAyNXB4OyB9CisKKyAgICAgICAgICAgIC5y
ZWdpb25TaXplIHsgd2lkdGg6IDIwMHB4OyBtaW4taGVpZ2h0OiAyMDBweDsgfQorICAgICAgICAg
ICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyBwb3NpdGlvbjogYWJzb2x1dGU7
IHRvcDogMTUwcHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisKKyAgICAgICAgICAgIC5l
eHBlY3RlZFJlZ2lvblNpemUgeyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IH0KKyAgICAg
ICAgICAgICNyZWQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6IHJlZDsg
dG9wOiAxNTBweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4K
KyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lv
bnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQsIGhh
dmluZyBtaW4taGVpZ2h0IHNwZWNpZmllZC48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlv
dSBzaG91bGQgc2VlIDEgZ3JlZW4gcmVjdGFuZ2xlLjwvcD4KKyAgICAgICAgPGRpdiBpZD0icmVk
IiBjbGFzcz0iZXhwZWN0ZWRSZWdpb25TaXplIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iYXJ0
aWNsZSIgY2xhc3M9ImZsb3dDb250ZW50Ij4KKyAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbiI+CisgICAgICAgICAgICAgICAgYWFhYQorICAgICAgICAgICAg
PC9zcGFuPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0i
cmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdpb24tZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5vcm1hbGZsb3ct
cmVnaW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZWRhMTcyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LW5vcm1hbGZsb3ctcmVnaW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAg
ICAgICAgICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSAgeyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4
OyB9CisgICAgICAgICAgICAjZ3JlZW4geyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAg
ICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcg
Zm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVs
ZW1lbnQgaW4gbm9ybWFsIGZsb3cgd2l0aCBoZWlnaHQgYXV0by48L3A+CisgICAgICAgIDxwPk9u
IHN1Y2Nlc3MsIHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgor
ICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+
CisgICAgPGJvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvYXV0b2hlaWdodC1ub3JtYWxmbG93LXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2F1dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lZWZiZDk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdpb24uaHRtbApAQCAtMCww
ICsxLDIzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
c3R5bGU+CisgICAgICAgICAgICAuZmxvd0NvbnRlbnRTaXplICB7IHdpZHRoOiA1MHB4OyBoZWln
aHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNhcnRpY2xlICAgIHsgLXdlYmtpdC1mbG93LWludG86
IGZsb3c7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisKKyAgICAgICAgICAgIC5leHBlY3Rl
ZFJlZ2lvblNpemUgeyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAj
cmVkICAgICAgICB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQorCisgICAgICAgICAgICAucmVn
aW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uICAgICB7IC13ZWJr
aXQtZmxvdy1mcm9tOiBmbG93OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTUwcHg7IH0KKyAg
ICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3Qg
Zm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5
NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAg
ICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50IGluIG5vcm1hbCBmbG93IHdpdGgg
aGVpZ2h0IGF1dG8uPC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5vdCBz
ZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0icmVkIiBjbGFz
cz0iZXhwZWN0ZWRSZWdpb25TaXplIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSIg
Y2xhc3M9ImZsb3dDb250ZW50U2l6ZSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIg
Y2xhc3M9InJlZ2lvblNpemUiPjwvZGl2PgorICAgIDxib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtbHItZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLWxy
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUxOWYw
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0
LXZlcnRpY2FsLWxyLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbCBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyI+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5ncmVlbkJveCB7IHBvc2l0
aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IHdpZHRoOiA1MHB4OyBoZWln
aHQ6IDIwMHB4OyB9CisgICAgICAgICAgICAjZ3JlZW4geyBsZWZ0OiAxMjVweDsgfQorICAgICAg
ICAgICAgI2dyZWVuMSB7IGxlZnQ6IDIyNXB4OyB9CisgICAgICAgICAgICAjZ3JlZW4yIHsgbGVm
dDogMzI1cHg7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+Cisg
ICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25z
PC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50LCB3cml0
aW5nIG1vZGUgdmVydGljYWwtbHIuPC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hv
dWxkIHNlZSAzIGdyZWVuIHJlY3RhbmdsZXMuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIg
Y2xhc3M9ImdyZWVuQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4xIiBjbGFzcz0i
Z3JlZW5Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJncmVlbjIiIGNsYXNzPSJncmVlbkJv
eCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtbHIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLWxyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjY0ZWFjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLWxyLmh0bWwKQEAgLTAsMCArMSwzMSBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZl
cnRpY2FsLWxyOyI+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5m
bG93Q29udGVudCB7IGZvbnQtc2l6ZTogNTBweDsgZm9udC1mYW1pbHk6IEFoZW07IHRleHQtYWxp
Z246IGp1c3RpZnk7IGxpbmUtaGVpZ2h0OiAyOyBjb2xvcjogZ3JlZW47IH0KKyAgICAgICAgICAg
ICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c7IH0KKworICAgICAgICAgICAgLnJl
Z2lvblNpemUgeyBoZWlnaHQ6IDIwMHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtp
dC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTAwcHg7IH0KKwor
ICAgICAgICAgICAgLnJlZEJveCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xv
cjogcmVkOyB3aWR0aDogNTBweDsgaGVpZ2h0OiAyMDBweDsgfQorICAgICAgICAgICAgI3JlZCB7
IGxlZnQ6IDEyNXB4OyB9CisgICAgICAgICAgICAjcmVkMSB7IGxlZnQ6IDIyNXB4OyB9CisgICAg
ICAgICAgICAjcmVkMiB7IGxlZnQ6IDMyNXB4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qg
d29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEg
YmxvY2sgZWxlbWVudCwgd3JpdGluZyBtb2RlIHZlcnRpY2FsLWxyLjwvcD4KKyAgICAgICAgPHA+
T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgMyBncmVlbiByZWN0YW5nbGVzLjwvcD4KKyAgICAg
ICAgPGRpdiBpZD0icmVkIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0i
cmVkMSIgY2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZDIiIGNsYXNz
PSJyZWRCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0Nv
bnRlbnQiPgorICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVu
Ij4KKyAgICAgICAgICAgICAgICBhYWFhIGFhYWEgYWFhYQorICAgICAgICAgICAgPC9zcGFuPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6
ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtcmwtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyOWU3YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBzdHls
ZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyI+CisgICAgPGhlYWQ+CisgICAg
ICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5ncmVlbkJveCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDIwMHB4OyB9Cisg
ICAgICAgICAgICAjZ3JlZW4geyByaWdodDogMTI1cHg7IH0KKyAgICAgICAgICAgICNncmVlbjEg
eyByaWdodDogMjI1cHg7IH0KKyAgICAgICAgICAgICNncmVlbjIgeyByaWdodDogMzI1cHg7IH0K
KyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRl
c3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+Cisg
ICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50LCB3cml0aW5nIG1vZGUgdmVy
dGljYWwtcmwuPC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAzIGdy
ZWVuIHJlY3RhbmdsZXMuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImdyZWVu
Qm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4xIiBjbGFzcz0iZ3JlZW5Cb3giPjwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJncmVlbjIiIGNsYXNzPSJncmVlbkJveCI+PC9kaXY+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2F1dG9oZWlnaHQtdmVydGljYWwtcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9h
dXRvaGVpZ2h0LXZlcnRpY2FsLXJsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYWZkYTAyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbCBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyI+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5mbG93Q29udGVudCB7
IGZvbnQtc2l6ZTogNTBweDsgZm9udC1mYW1pbHk6IEFoZW07IHRleHQtYWxpZ246IGp1c3RpZnk7
IGxpbmUtaGVpZ2h0OiAyOyBjb2xvcjogZ3JlZW47IH0KKyAgICAgICAgICAgICNhcnRpY2xlIHsg
LXdlYmtpdC1mbG93LWludG86IGZsb3c7IH0KKworICAgICAgICAgICAgLnJlZ2lvblNpemUgeyBo
ZWlnaHQ6IDIwMHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206
IGZsb3c7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDEwMHB4OyB9CisKKyAgICAgICAgICAg
IC5yZWRCb3ggeyBwb3NpdGlvbjogYWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lk
dGg6IDUwcHg7IGhlaWdodDogMjAwcHg7IH0KKyAgICAgICAgICAgICNyZWQgeyByaWdodDogMTI1
cHg7IH0KKyAgICAgICAgICAgICNyZWQxIHsgcmlnaHQ6IDIyNXB4OyB9CisgICAgICAgICAgICAj
cmVkMiB7IHJpZ2h0OiAzMjVweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAg
ICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcg
Zm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVs
ZW1lbnQsIHdyaXRpbmcgbW9kZSB2ZXJ0aWNhbC1ybC48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nl
c3MsIHlvdSBzaG91bGQgc2VlIDMgZ3JlZW4gcmVjdGFuZ2xlcy48L3A+CisgICAgICAgIDxkaXYg
aWQ9InJlZCIgY2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZDEiIGNs
YXNzPSJyZWRCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWQyIiBjbGFzcz0icmVkQm94
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSIgY2xhc3M9ImZsb3dDb250ZW50Ij4K
KyAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbiI+CisgICAg
ICAgICAgICAgICAgYWFhYSBhYWFhIGFhYWEKKyAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvblNpemUiPjwvZGl2
PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy93ZWJraXQtbmFtZWQtZmxvdy1maXJzdC1lbXB0eS1yZWdpb24taW5kZXguaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1maXJzdC1lbXB0eS1yZWdp
b24taW5kZXguaHRtbAppbmRleCBmY2Q1N2M1Li44ZjEwMzg5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctZmlyc3QtZW1wdHktcmVnaW9uLWlu
ZGV4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93
LWZpcnN0LWVtcHR5LXJlZ2lvbi1pbmRleC5odG1sCkBAIC04LDcgKzgsNyBAQAogICAgIGJvZHkg
eyBmb250LWZhbWlseTogbW9ub3NwYWNlIH0KICAgICAuY29udGVudCB7IC13ZWJraXQtZmxvdy1p
bnRvOiBmbG93IH0KICAgICAucmVnaW9uIHsgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93fQotICAg
ICNyZWdpb24sICNyZWdpb24yLCByZWdpb24zIHt3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweH0K
KyAgICAjcmVnaW9uLCAjcmVnaW9uMiwgI3JlZ2lvbjMge3dpZHRoOiAyNTBweDsgaGVpZ2h0OiA1
MHB4OyB9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlY2M2Yy4u
ZjU3YWExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTEwLTAzICBNaWhuZWEg
T3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUFkZCBz
dXBwb3J0IGZvciBhdXRvLWhlaWdodCByZWdpb25zICh3aXRob3V0IHJlZ2lvbi1icmVha3MpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzUzMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0
aGUgMnBhc3MgbGF5b3V0IGFsZ29yaXRobSBmb3IgY29tcHV0aW5nIHRoZSBoZWlnaHQgb2YgcmVn
aW9ucyB3aXRoIGF1dG8gbG9naWNhbCBoZWlnaHQsIHdpdGhvdXQgdGFraW5nIHJlZ2lvbiBicmVh
a3MgaW50byBhY2NvdW50LgorICAgICAgICBUaGUgYWxnb3JpdGhtIGlzIGRlc2NyaWJlZCBpbiB0
aGUgQ1NTUmVnaW9ucyBzcGVjOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXJlZ2lvbnMv
I3JlZ2lvbnMtdmlzdWFsLWZvcm1hdHRpbmctc3RlcHMKKworICAgICAgICBXaGVuIHRoZSBmbG93
IHRocmVhZCBjb250YWlucyByZWdpb25zIHdpdGggYXV0byBsb2dpY2FsIGhlaWdodCwgYSAycGFz
cyBsYXlvdXQgYWxnb3JpdGhtIGlzIG5lZWRlZCB0byBkZXRlcm1pbmUgdGhlIGhlaWdodCBvZiBh
dXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbnMuCisgICAgICAgIEluIGVhY2ggc3RlcCBvZiB0aGUg
bGF5b3V0LCB0aGUgcmVnaW9ucyBhcmUgbGFpZCBvdXQgYmVmb3JlIHRoZSBmbG93IHRocmVhZCBp
cyBsYWlkIG91dC4KKworICAgICAgICBJbiB0aGUgZmlyc3QgcGFzcyBvZiBsYXlvdXQgKG5vcm1h
bCBsYXlvdXQgcGhhc2UpLCB0aGUgY29udGVudCBvZiB0aGUgZmxvdyB0aHJlYWQgaXMgbGFpZCBv
dXQgdW5jb25zdHJhaW5lZCBpbiB0aGUgcmVnaW9ucy4gVGhlIHJlZ2lvbiBtYXJrZWQgYXMgaGF2
aW5nIGF1dG8gbG9naWNhbCBoZWlnaHQKKyAgICAgICAgZGlzcGxheXMgYWxsIHRoZSBjb3JyZXNw
b25kaW5nIGNvbnRlbnQgZnJvbSB0aGUgZmxvdyB0aHJlYWQgKHRha2luZyBtaW4taGVpZ2h0IGFu
ZCBtYXgtaGVpZ2h0IGludG8gYWNjb3VudCksIGFuZCB0aGUgaGVpZ2h0IG9mIHRoZSBjb250ZW50
IGRpc3BsYXllZAorICAgICAgICBkZXRlcm1pbmVzIHRoZSBvdmVycmlkZGVuIGxvZ2ljYWwgY29u
dGVudCBoZWlnaHQuIFRodXMsIGFmdGVyIHRoZSBmaXJzdCBwYXNzIG9mIGxheW91dCwgZWFjaCBh
dXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiB3aWxsIHN0b3JlIHRoZSBsb2dpY2FsIGhlaWdodAor
ICAgICAgICB2YWx1ZSBmb3IgdGhlIHNlY29uZCBwYXNzIGluIGl0cyBvdmVycmlkZGVuIGxvZ2lj
YWwgY29udGVudCBoZWlnaHQgcHJvcGVydHkuCisKKyAgICAgICAgSW4gdGhlIHNlY29uZCBwYXNz
IG9mIGxheW91dCAoY29uc3RyYWluZWQgZmxvdyB0aHJlYWRzIGxheW91dCBwaGFzZSksIHdoZW4g
dGhlIGNvbnRlbnQgb2YgdGhlIGZsb3cgdGhyZWFkIGlzIGxhaWQgb3V0IGNvbnN0cmFpbmVkIGlu
IHRoZSByZWdpb25zLCB0aGUgcmVnaW9ucyBhcmUgbGFpZCBvdXQgYWdhaW4gYW5kIHRoZXkgYXJl
IHVzaW5nCisgICAgICAgIHRoZSBvdmVycmlkZGVuIGxvZ2ljYWwgY29udGVudCBoZWlnaHQgZnJv
bSB0aGUgZmlyc3QgcGFzcyB0byB1cGRhdGUgdGhlaXIgbG9naWNhbCBoZWlnaHQuIFRoZW4sIHRo
ZSBmbG93IHRocmVhZCBjb250ZW50IGlzIGxhaWQgb3V0IGluIHRoZSBhc3NvY2lhdGVkIHJlZ2lv
biBjaGFpbiwKKyAgICAgICAgZm9yIHdoaWNoIHRoZSBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lv
bnMgaGF2ZSBwcm9wZXIgbG9naWNhbCBoZWlnaHQuCisKKyAgICAgICAgQSBmdXR1cmUgcGF0Y2gg
d2lsbCBwcm9wZXJseSB0YWtlIHJlZ2lvbiBicmVha3MgaW50byBhY2NvdW50IGZvciB0aGUgZmly
c3QgcGFzcyBvZiBsYXlvdXQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvcmVnaW9ucy9hdXRvaGVp
Z2h0LWFic3Bvcy1yZWdpb24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9o
ZWlnaHQtZmxvYXRyaWdodC1yZWdpb24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25z
L2F1dG9oZWlnaHQtaG9yaXpvbnRhbC1idC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lv
bnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1pbmhlaWdodC1yZWdpb24uaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdp
b24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwt
bHIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwt
cmwuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpyZXNldFJlZ2lvbnNPdmVy
cmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KTogRm9yIGFsbCB0aGUgYXV0byBsb2dpY2FsIGhlaWdo
dCByZWdpb25zLCByZXNldHMgdGhlaXIgYXNzb2NpYXRlZAorICAgICAgICBvdmVycmlkZUxvZ2lj
YWxDb250ZW50SGVpZ2h0LiBUaG9zZSByZWdpb25zIGFyZSBtYXJrZWQgYXMgbmVlZGluZyBsYXlv
dXQgKGFsb25nIHdpdGggdGhlaXIgYW5jZXN0b3JzKS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6Om1hcmtBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnNGb3JMYXlvdXQpOiBNYXJrIGFsbCB0aGUgYXV0byBsb2dpY2FsIGhlaWdodCByZWdp
b25zIGFuZCB0aGVpciBhc3NvY2lhdGVkIGZsb3cgdGhyZWFkCisgICAgICAgIGFzIG5lZWRpbmcg
bGF5b3V0IChhbG9uZyB3aXRoIHRoZWlyIGFuY2VzdG9ycykuCisgICAgICAgICogcmVuZGVyaW5n
L0Zsb3dUaHJlYWRDb250cm9sbGVyLmg6CisgICAgICAgIChGbG93VGhyZWFkQ29udHJvbGxlcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZsb3dUaHJlYWQ6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgSWYgdGhlIGZsb3cg
dGhyZWFkIGhhcyBhbiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiBmb3Igd2hpY2ggd2UgZGlk
IG5vdCB5ZXQgY29tcHV0ZSB0aGUgb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCB2YWx1ZSwg
YmFpbCBvdXQgZWFybHkgc2luY2Ugd2UgY2Fubm90IGNvbXB1dGUgdGhlCisgICAgICAgIGZsb3cg
dGhyZWFkIGxvZ2ljYWwgaGVpZ2h0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVh
ZDo6cmVnaW9uQXRCbG9ja09mZnNldCk6CisgICAgICAgIElmIHRoZSBvZmZzZXQgaXMgaW5zaWRl
IGFuIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9uIGZvciB3aGljaCB3ZSBkaWQgbm90IGNvbXB1
dGUgdGhlIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQsIHRoZW4gd2UgY29uc2lkZXIgdGhp
cyByZWdpb24gdGFsbCBlbm91Z2ggdG8gYWNjb21tb2RhdGUgYWxsCisgICAgICAgIHRoZSBjb250
ZW50IGFuZCB3ZSByZXR1cm4gdGhpcyByZWdpb24uIE90aGVyd2lzZSwgZm9yIGFuIGF1dG8gbG9n
aWNhbCBoZWlnaHQgcmVnaW9uLCB3ZSB1c2UgZWl0aGVyIHRoZSBvdmVycmlkZUxvZ2ljYWxDb250
ZW50SGVpZ2h0IChpZiB3ZSBhcmUgaW4gdGhlIGZpcnN0IGxheW91dCBwaGFzZSkgb3IKKyAgICAg
ICAgdGhlIGxvZ2ljYWxIZWlnaHQgaWYgd2UgYXJlIGluIHRoZSBzZWNvbmQgbGF5b3V0IHBoYXNl
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6cGFnZUxvZ2ljYWxIZWlnaHRG
b3JPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6cGFnZVJlbWFp
bmluZ0xvZ2ljYWxIZWlnaHRGb3JPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxv
d1RocmVhZDo6Y29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKToKKyAgICAgICAgU2ltdWxh
dGUgYSBmb3JjZWQgcmVnaW9uIGJyZWFrIHNvIHRoYXQgaWYgaXQgZml0cyBpbnNpZGUgYW4gYXV0
byBsb2dpY2FsIGhlaWdodCByZWdpb24sIGl0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSByZWdp
b24gb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZsb3dUaHJlYWQ6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpt
YXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZVJlZ2lvbnNGbG93VGhyZWFkUG9ydGlvblJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6YWRkRm9yY2VkUmVnaW9uQnJlYWsp
OgorICAgICAgICBTaW11bGF0ZSBhIHJlZ2lvbiBicmVhayBhdCB0aGUgc3BlY2lmaWVkIG9mZnNl
dC4gSXQgd2lsbCBiZSBleHRlbmRlZCB0byBwcm9wZXJseSBwcm9jZXNzIHRoZSByZWdpb24gYnJl
YWtzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdp
b246OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6dXBkYXRlTG9naWNhbEhlaWdodCk6
CisgICAgICAgIElmIHRoZSBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiBoYXMgYW4gb3ZlcnJp
ZGVMb2dpY2FsQ29udGVudEhlaWdodCBhbmQgd2UgYXJlIGluIHRoZSBzZWNvbmQgcGFzcyBvZiBs
YXlvdXQsIHdlIHVzZSB0aGUgb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCB0bworICAgICAg
ICB1cGRhdGUgdGhlIHJlZ2lvbiBsb2dpY2FsIGhlaWdodC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclJlZ2lvbjo6bmVlZHNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0YXRpb24p
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uaDoKKyAgICAgICAgKFJlbmRlclJl
Z2lvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6UmVuZGVyVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJW
aWV3OjpsYXlvdXRDb250ZW50KToKKyAgICAgICAgQWRkZWQgYSBuZXcgZnVuY3Rpb24gdG8gY29u
dGFpbiB0aGUgUmVuZGVyVmlldyBibG9jayBsYXlvdXQgYW5kIGZsb3cgdGhyZWFkcyBsYXlvdXQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmNoZWNr
TGF5b3V0U3RhdGUpOgorICAgICAgICBIZWxwZXIgZnVuY3Rpb24ga2VlcGluZyB0aGUgb3JpZ2lu
YWwgYXNzZXJ0cyBmcm9tIFJlbmRlclZpZXcsIHVzZWQgaW4gbW9yZSB0aGFuIG9uZSBwbGFjZS4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmxheW91dCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om5vcm1hbExh
eW91dFBoYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmNvbnN0cmFpbmVkRmxv
d1RocmVhZHNMYXlvdXRQaGFzZSk6CisgICAgICAgIChSZW5kZXJWaWV3KToKKwogMjAxMi0xMC0w
MyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW50cm9kdWNl
IERhdGVDb21wb25lbnRzOjptaW5pbXVtWWVhciBhbmQgbWF4aW11bVllYXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCmluZGV4IGNiNGJk
YjEuLjNjZTNlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJl
YWRDb250cm9sbGVyLmNwcApAQCAtMTc2LDQgKzE3NiwyMCBAQCBib29sIEZsb3dUaHJlYWRDb250
cm9sbGVyOjppc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkgY29uc3QK
IH0KICNlbmRpZgogCit2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjpyZXNldFJlZ2lvbnNPdmVy
cmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCkKK3sKKyAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1Ro
cmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJl
Z2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVy
KSB7CisgICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZmxvd1JlbmRlcmVyID0gKml0ZXI7
CisgICAgICAgIGZsb3dSZW5kZXJlci0+cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVu
dEhlaWdodCgpOworICAgIH0KK30KKwordm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6bWFya0F1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpCit7CisgICAgZm9yIChSZW5kZXJOYW1l
ZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRM
aXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7
ICsraXRlcikgeworICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9
ICppdGVyOworICAgICAgICBmbG93UmVuZGVyZXItPm1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lv
bnNGb3JMYXlvdXQoKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmgKaW5kZXggODQ0
ODZmNC4uODY3ODBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dU
aHJlYWRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJl
YWRDb250cm9sbGVyLmgKQEAgLTc1LDYgKzc1LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNBdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29uc2lzdGVudCgpIGNvbnN0OwogI2VuZGlmCiAKKyAg
ICB2b2lkIHJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKKyAgICB2
b2lkIG1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKTsKKwogcHJvdGVjdGVk
OgogICAgIEZsb3dUaHJlYWRDb250cm9sbGVyKFJlbmRlclZpZXcqKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IGU5NDIyNDIuLmZjZjBk
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAK
QEAgLTE2NywyMCArMTY3LDcgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICB1cGRhdGVMb2dpY2FsV2lkdGgo
KTsgLy8gQ2FsbGVkIHRvIGdldCB0aGUgbWF4aW11bSBsb2dpY2FsIHdpZHRoIGZvciB0aGUgcmVn
aW9uLgotICAgICAgICAgICAgCi0gICAgICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQg
PSAwOwotICAgICAgICAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0OjppdGVyYXRvciBpdGVyID0g
bV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIp
IHsKLSAgICAgICAgICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwotICAgICAg
ICAgICAgICAgIGlmICghcmVnaW9uLT5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBMYXlvdXRVbml0
IHJlZ2lvbkxvZ2ljYWxXaWR0aCA9IHJlZ2lvbi0+cGFnZUxvZ2ljYWxXaWR0aCgpOwotICAgICAg
ICAgICAgICAgIExheW91dFVuaXQgcmVnaW9uTG9naWNhbEhlaWdodCA9IHJlZ2lvbi0+bG9naWNh
bEhlaWdodE9mQWxsRmxvd1RocmVhZENvbnRlbnQoKTsKLSAgICAKLSAgICAgICAgICAgICAgICBM
YXlvdXRSZWN0IHJlZ2lvblJlY3Qoc3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSID8gWkVST19M
QVlPVVRfVU5JVCA6IGxvZ2ljYWxXaWR0aCgpIC0gcmVnaW9uTG9naWNhbFdpZHRoLCBsb2dpY2Fs
SGVpZ2h0LCByZWdpb25Mb2dpY2FsV2lkdGgsIHJlZ2lvbkxvZ2ljYWxIZWlnaHQpOwotICAgICAg
ICAgICAgICAgIHJlZ2lvbi0+c2V0Rmxvd1RocmVhZFBvcnRpb25SZWN0KGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgPyByZWdpb25SZWN0IDogcmVnaW9uUmVjdC50cmFuc3Bvc2VkUmVjdCgpKTsK
LSAgICAgICAgICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IHJlZ2lvbkxvZ2ljYWxIZWlnaHQ7Ci0g
ICAgICAgICAgICB9CisgICAgICAgICAgICB1cGRhdGVSZWdpb25zRmxvd1RocmVhZFBvcnRpb25S
ZWN0KCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTIzMiw2ICsyMTksMTMgQEAgdm9pZCBSZW5k
ZXJGbG93VGhyZWFkOjpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0LCBMYXlvdXRVbml0
IGxvZ2ljYWxUb3AsIEwKICAgICAgICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICBBU1NFUlQoIXJlZ2lvbi0+bmVlZHNMYXlvdXQoKSk7CisK
KyAgICAgICAgaWYgKHJlZ2lvbi0+bmVlZHNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29t
cHV0YXRpb24oKSkgeworICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhbiBhdXRvIGxvZ2ljYWwg
aGVpZ2h0IHJlZ2lvbiBmb3Igd2hpY2ggd2UgZGlkIG5vdCBjb21wdXRlIGEgaGVpZ2h0IHlldCwK
KyAgICAgICAgICAgIC8vIHRoZW4gd2UgY2Fubm90IGNvbXB1dGUgYW5kIHVwZGF0ZSB0aGUgaGVp
Z2h0IG9mIHRoaXMgZmxvdy4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAg
ICAgIGNvbXB1dGVkVmFsdWVzLm1fZXh0ZW50ICs9IHJlZ2lvbi0+bG9naWNhbEhlaWdodE9mQWxs
Rmxvd1RocmVhZENvbnRlbnQoKTsKICAgICB9CiB9CkBAIC0zMzgsNiArMzMyLDggQEAgUmVuZGVy
UmVnaW9uKiBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25BdEJsb2NrT2Zmc2V0KExheW91dFVuaXQg
b2Zmc2V0LCBib29sIGV4dGUKICAgICAvLyBJZiBubyByZWdpb24gbWF0Y2hlcyB0aGUgcG9zaXRp
b24gYW5kIGV4dGVuZExhc3RSZWdpb24gaXMgdHJ1ZSwgaXQgd2lsbCByZXR1cm4KICAgICAvLyB0
aGUgbGFzdCB2YWxpZCByZWdpb24uIEl0IGlzIHNpbWlsYXIgdG8gYXV0byBleHRlbmRpbmcgdGhl
IHNpemUgb2YgdGhlIGxhc3QgcmVnaW9uLiAKICAgICBSZW5kZXJSZWdpb24qIGxhc3RWYWxpZFJl
Z2lvbiA9IDA7CisKKyAgICBMYXlvdXRVbml0IGFjY3VtdWxhdGVkTG9naWNhbEhlaWdodCA9IFpF
Uk9fTEFZT1VUX1VOSVQ7CiAgICAgCiAgICAgLy8gRklYTUU6IFRoZSByZWdpb25zIGFyZSBhbHdh
eXMgaW4gb3JkZXIsIG9wdGltaXplIHRoaXMgc2VhcmNoLgogICAgIGJvb2wgdXNlSG9yaXpvbnRh
bFdyaXRpbmdNb2RlID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKQEAgLTM0OSwxMiArMzQ1
LDI1IEBAIFJlbmRlclJlZ2lvbiogUmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uQXRCbG9ja09mZnNl
dChMYXlvdXRVbml0IG9mZnNldCwgYm9vbCBleHRlCiAgICAgICAgIGlmIChvZmZzZXQgPD0gMCkK
ICAgICAgICAgICAgIHJldHVybiByZWdpb247CiAKLSAgICAgICAgTGF5b3V0UmVjdCByZWdpb25S
ZWN0ID0gcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKTsKLSAgICAgICAgaWYgKCh1c2VI
b3Jpem9udGFsV3JpdGluZ01vZGUgJiYgb2Zmc2V0IDwgcmVnaW9uUmVjdC5tYXhZKCkpIHx8ICgh
dXNlSG9yaXpvbnRhbFdyaXRpbmdNb2RlICYmIG9mZnNldCA8IHJlZ2lvblJlY3QubWF4WCgpKSkK
LSAgICAgICAgICAgIHJldHVybiByZWdpb247Ci0KICAgICAgICAgaWYgKGV4dGVuZExhc3RSZWdp
b24gfHwgcmVnaW9uLT5pc1JlbmRlclJlZ2lvblNldCgpKQogICAgICAgICAgICAgbGFzdFZhbGlk
UmVnaW9uID0gcmVnaW9uOworCisgICAgICAgIC8vIElmIHdlIGRpZCBub3QgY29tcHV0ZSB0aGUg
cmVnaW9uJ3MgaGVpZ2h0LCB3ZSBzaG91bGQgY29uc2lkZXIgdGhpcyByZWdpb24KKyAgICAgICAg
Ly8gdGFsbCBlbm91Z2ggdG8gYWNjb21vZGF0ZSBhbGwgY29udGVudC4KKyAgICAgICAgaWYgKHJl
Z2lvbi0+bmVlZHNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0YXRpb24oKSkKKyAg
ICAgICAgICAgIHJldHVybiByZWdpb247CisKKyAgICAgICAgaWYgKHJlZ2lvbi0+aGFzQXV0b0xv
Z2ljYWxIZWlnaHQoKSAmJiB2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpIHsKKyAgICAgICAg
ICAgIGFjY3VtdWxhdGVkTG9naWNhbEhlaWdodCArPSByZWdpb24tPm92ZXJyaWRlTG9naWNhbENv
bnRlbnRIZWlnaHQoKTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPCBhY2N1bXVsYXRlZExvZ2lj
YWxIZWlnaHQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgTGF5b3V0UmVjdCByZWdpb25SZWN0ID0gcmVn
aW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKTsKKyAgICAgICAgYWNjdW11bGF0ZWRMb2dpY2Fs
SGVpZ2h0ICs9IHVzZUhvcml6b250YWxXcml0aW5nTW9kZSA/IHJlZ2lvblJlY3QuaGVpZ2h0KCkg
OiByZWdpb25SZWN0LndpZHRoKCk7CisgICAgICAgIGlmIChvZmZzZXQgPCBhY2N1bXVsYXRlZExv
Z2ljYWxIZWlnaHQpCisgICAgICAgICAgICByZXR1cm4gcmVnaW9uOwogICAgIH0KIAogICAgIHJl
dHVybiBsYXN0VmFsaWRSZWdpb247CkBAIC0zNzUsNyArMzg0LDExIEBAIExheW91dFVuaXQgUmVu
ZGVyRmxvd1RocmVhZDo6cGFnZUxvZ2ljYWxXaWR0aEZvck9mZnNldChMYXlvdXRVbml0IG9mZnNl
dCkgY29uc3QKIExheW91dFVuaXQgUmVuZGVyRmxvd1RocmVhZDo6cGFnZUxvZ2ljYWxIZWlnaHRG
b3JPZmZzZXQoTGF5b3V0VW5pdCBvZmZzZXQpIGNvbnN0CiB7CiAgICAgUmVuZGVyUmVnaW9uKiBy
ZWdpb24gPSByZWdpb25BdEJsb2NrT2Zmc2V0KG9mZnNldCk7Ci0gICAgcmV0dXJuIHJlZ2lvbiA/
IHJlZ2lvbi0+cGFnZUxvZ2ljYWxIZWlnaHQoKSA6IFpFUk9fTEFZT1VUX1VOSVQ7CisgICAgaWYg
KCFyZWdpb24pCisgICAgICAgIHJldHVybiBaRVJPX0xBWU9VVF9VTklUOworICAgIGlmIChyZWdp
b24tPm5lZWRzT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodENvbXB1dGF0aW9uKCkpCisgICAg
ICAgIHJldHVybiBNQVhfTEFZT1VUX1VOSVQgLyAyOworICAgIHJldHVybiByZWdpb24tPnBhZ2VM
b2dpY2FsSGVpZ2h0KCk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyRmxvd1RocmVhZDo6cGFnZVJl
bWFpbmluZ0xvZ2ljYWxIZWlnaHRGb3JPZmZzZXQoTGF5b3V0VW5pdCBvZmZzZXQsIFBhZ2VCb3Vu
ZGFyeVJ1bGUgcGFnZUJvdW5kYXJ5UnVsZSkgY29uc3QKQEAgLTM4Myw3ICszOTYsOSBAQCBMYXlv
dXRVbml0IFJlbmRlckZsb3dUaHJlYWQ6OnBhZ2VSZW1haW5pbmdMb2dpY2FsSGVpZ2h0Rm9yT2Zm
c2V0KExheW91dFVuaXQgb2ZmcwogICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gcmVnaW9uQXRC
bG9ja09mZnNldChvZmZzZXQpOwogICAgIGlmICghcmVnaW9uKQogICAgICAgICByZXR1cm4gWkVS
T19MQVlPVVRfVU5JVDsKLSAgICAKKyAgICBpZiAocmVnaW9uLT5uZWVkc092ZXJyaWRlTG9naWNh
bENvbnRlbnRIZWlnaHRDb21wdXRhdGlvbigpKQorICAgICAgICByZXR1cm4gTUFYX0xBWU9VVF9V
TklUIC8gMjsKKwogICAgIExheW91dFVuaXQgcGFnZUxvZ2ljYWxUb3AgPSByZWdpb24tPnBhZ2VM
b2dpY2FsVG9wRm9yT2Zmc2V0KG9mZnNldCk7CiAgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhl
aWdodCA9IHJlZ2lvbi0+cGFnZUxvZ2ljYWxIZWlnaHQoKTsKICAgICBMYXlvdXRVbml0IHBhZ2VM
b2dpY2FsQm90dG9tID0gcGFnZUxvZ2ljYWxUb3AgKyBwYWdlTG9naWNhbEhlaWdodDsKQEAgLTYx
OCwxNCArNjMzLDIxIEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6Z2V0UmVnaW9uUmFuZ2VGb3JC
b3goY29uc3QgUmVuZGVyQm94KiBib3gsIFJlbmRlclJlZ2lvbiomCiB2b2lkIFJlbmRlckZsb3dU
aHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENsaWVu
dEFmdGVyRWRnZSkKIHsKICAgICBMYXlvdXRVbml0IGhlaWdodCA9IG9sZENsaWVudEFmdGVyRWRn
ZTsKKworICAgIGJvb2wgdXNlSG9yaXpvbnRhbFdyaXRpbmdNb2RlID0gaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKTsKKworICAgIC8vIFNpbXVsYXRlIGEgcmVnaW9uIGJyZWFrIGF0IGhlaWdodC4g
SWYgaXQgcG9pbnRzIGluc2lkZSBhbiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiwKKyAgICAv
LyB0aGVuIGl0IGRldGVybWluZXMgdGhlIHJlZ2lvbiBvdmVycmlkZSBsb2dpY2FsIGNvbnRlbnQg
aGVpZ2h0LgorICAgIGFkZEZvcmNlZFJlZ2lvbkJyZWFrKGhlaWdodCk7CisKICAgICAvLyBGSVhN
RTogdGhlIHZpc3VhbCBvdmVyZmxvdyBvZiBtaWRkbGUgcmVnaW9uIChpZiBpdCBpcyB0aGUgbGFz
dCBvbmUgdG8gY29udGFpbiBhbnkgY29udGVudCBpbiBhIHJlbmRlciBmbG93IHRocmVhZCkKICAg
ICAvLyBtaWdodCBub3QgYmUgdGFrZW4gaW50byBhY2NvdW50IGJlY2F1c2UgdGhlIHJlbmRlciBm
bG93IHRocmVhZCBoZWlnaHQgaXMgZ3JlYXRlciB0aGF0IHRoYXQgcmVnaW9ucyBoZWlnaHQgKyBp
dHMgdmlzdWFsIG92ZXJmbG93CiAgICAgLy8gYmVjYXVzZSBvZiBob3cgY29tcHV0ZUxvZ2ljYWxI
ZWlnaHQgaXMgaW1wbGVtZW50ZWQgZm9yIFJlbmRlckZsb3dUaHJlYWQgKGFzIGEgc3VtIG9mIGFs
bCByZWdpb25zIGhlaWdodCkuCiAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHRoZSBtaWRkbGUgcmVn
aW9uIHdpbGwgYmUgbWFya2VkIGFzIGZpdCAoZXZlbiBpZiBpdCBoYXMgdmlzdWFsIG92ZXJmbG93
IGZsb3dpbmcgaW50byB0aGUgbmV4dCByZWdpb24pCiAgICAgaWYgKGhhc1JlbmRlck92ZXJmbG93
KCkKLSAgICAgICAgJiYgKCAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiB2aXN1YWxPdmVy
Zmxvd1JlY3QoKS5tYXhZKCkgPiBjbGllbnRCb3hSZWN0KCkubWF4WSgpKQotICAgICAgICAgICAg
fHwgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpICYmIHZpc3VhbE92ZXJmbG93UmVjdCgpLm1h
eFgoKSA+IGNsaWVudEJveFJlY3QoKS5tYXhYKCkpKSkKLSAgICAgICAgaGVpZ2h0ID0gaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSA/IHZpc3VhbE92ZXJmbG93UmVjdCgpLm1heFkoKSA6IHZpc3Vh
bE92ZXJmbG93UmVjdCgpLm1heFgoKTsKKyAgICAgICAgJiYgKCAodXNlSG9yaXpvbnRhbFdyaXRp
bmdNb2RlICYmIHZpc3VhbE92ZXJmbG93UmVjdCgpLm1heFkoKSA+IGNsaWVudEJveFJlY3QoKS5t
YXhZKCkpCisgICAgICAgICAgICB8fCAoIXVzZUhvcml6b250YWxXcml0aW5nTW9kZSAmJiB2aXN1
YWxPdmVyZmxvd1JlY3QoKS5tYXhYKCkgPiBjbGllbnRCb3hSZWN0KCkubWF4WCgpKSkpCisgICAg
ICAgIGhlaWdodCA9IHVzZUhvcml6b250YWxXcml0aW5nTW9kZSA/IHZpc3VhbE92ZXJmbG93UmVj
dCgpLm1heFkoKSA6IHZpc3VhbE92ZXJmbG93UmVjdCgpLm1heFgoKTsKIAogICAgIFJlbmRlclJl
Z2lvbiogbGFzdFJlZyA9IGxhc3RSZWdpb24oKTsKICAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6
Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxp
c3QuZW5kKCk7ICsraXRlcikgewpAQCAtNjM0LDggKzY1Niw4IEBAIHZvaWQgUmVuZGVyRmxvd1Ro
cmVhZDo6Y29tcHV0ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQgb2xkQ2xpZW50
QWZ0ZXJFCiAgICAgICAgICAgICByZWdpb24tPnNldFJlZ2lvblN0YXRlKFJlbmRlclJlZ2lvbjo6
UmVnaW9uVW5kZWZpbmVkKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAg
ICAgIExheW91dFVuaXQgZmxvd01pbiA9IGhlaWdodCAtIChpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS55KCkgOiByZWdpb24tPmZsb3dU
aHJlYWRQb3J0aW9uUmVjdCgpLngoKSk7Ci0gICAgICAgIExheW91dFVuaXQgZmxvd01heCA9IGhl
aWdodCAtIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcmVnaW9uLT5mbG93VGhyZWFkUG9y
dGlvblJlY3QoKS5tYXhZKCkgOiByZWdpb24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLm1heFgo
KSk7CisgICAgICAgIExheW91dFVuaXQgZmxvd01pbiA9IGhlaWdodCAtICh1c2VIb3Jpem9udGFs
V3JpdGluZ01vZGUgPyByZWdpb24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLnkoKSA6IHJlZ2lv
bi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkueCgpKTsKKyAgICAgICAgTGF5b3V0VW5pdCBmbG93
TWF4ID0gaGVpZ2h0IC0gKHVzZUhvcml6b250YWxXcml0aW5nTW9kZSA/IHJlZ2lvbi0+Zmxvd1Ro
cmVhZFBvcnRpb25SZWN0KCkubWF4WSgpIDogcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3Qo
KS5tYXhYKCkpOwogICAgICAgICBSZW5kZXJSZWdpb246OlJlZ2lvblN0YXRlIHByZXZpb3VzU3Rh
dGUgPSByZWdpb24tPnJlZ2lvblN0YXRlKCk7CiAgICAgICAgIFJlbmRlclJlZ2lvbjo6UmVnaW9u
U3RhdGUgc3RhdGUgPSBSZW5kZXJSZWdpb246OlJlZ2lvbkZpdDsKICAgICAgICAgaWYgKGZsb3dN
aW4gPD0gMCkKQEAgLTc1Nyw2ICs3NzksMTExIEBAIHVuc2lnbmVkIFJlbmRlckZsb3dUaHJlYWQ6
OmF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KCkgY29uc3QKIH0KICNlbmRpZgogCit2b2lk
IFJlbmRlckZsb3dUaHJlYWQ6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWln
aHQoKQoreworICAgIEFTU0VSVCh2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpOworICAgIEFT
U0VSVCh2aWV3KCktPmxheW91dFN0YXRlKCkpOworCisgICAgLy8gV2UgbmVlZCB0byByZXNldCB0
aGUgb3ZlcnJpZGUgbG9naWNhbCBjb250ZW50IGhlaWdodCBmb3IgcmVnaW9ucyB3aXRoIGF1dG8g
bG9naWNhbCBoZWlnaHQKKyAgICAvLyBvbmx5IGlmIHRoZSBmbG93IGl0c2VsZiBuZWVkcyBsYXlv
dXQuCisgICAgaWYgKCFzZWxmTmVlZHNMYXlvdXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Zm9yIChSZW5kZXJSZWdpb25MaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2lu
KCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgUmVuZGVy
UmVnaW9uKiByZWdpb24gPSAqaXRlcjsKKyAgICAgICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSB8
fCAhcmVnaW9uLT5oYXNBdXRvTG9naWNhbEhlaWdodCgpKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgcmVnaW9uLT5jbGVhck92ZXJyaWRlU2l6ZSgpOworICAgICAgICAvLyBGSVhN
RTogV2UgbmVlZCB0byBmaW5kIGEgd2F5IHRvIGF2b2lkIG1hcmtpbmcgYWxsIHRoZSByZWdpb25z
IGFuY2VzdG9ycyBmb3IgbGF5b3V0CisgICAgICAgIC8vIGFzIHdlIGFyZSBhbHJlYWR5IGluc2lk
ZSBsYXlvdXQuCisgICAgICAgIHJlZ2lvbi0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CisgICAgfQor
fQorCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6Om1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNG
b3JMYXlvdXQoKQoreworICAgIEFTU0VSVCh2aWV3KCktPmNvbnN0cmFpbmVkRmxvd1RocmVhZHNM
YXlvdXRQaGFzZSgpKTsKKyAgICBBU1NFUlQodmlldygpLT5sYXlvdXRTdGF0ZSgpKTsKKworICAg
IGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdp
bigpOyBpdGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIFJlbmRl
clJlZ2lvbiogcmVnaW9uID0gKml0ZXI7CisgICAgICAgIGlmICghcmVnaW9uLT5pc1ZhbGlkKCkg
fHwgIXJlZ2lvbi0+aGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGZpbmQgYSB3YXkgdG8gYXZvaWQgbWFy
a2luZyBhbGwgdGhlIHJlZ2lvbnMgYW5jZXN0b3JzIGZvciBsYXlvdXQKKyAgICAgICAgLy8gYXMg
d2UgYXJlIGFscmVhZHkgaW5zaWRlIGxheW91dC4KKyAgICAgICAgcmVnaW9uLT5zZXROZWVkc0xh
eW91dCh0cnVlKTsKKyAgICB9CisKKyAgICBtX3JlZ2lvbnNJbnZhbGlkYXRlZCA9IHRydWU7Cisg
ICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7Cit9CisKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6dXBk
YXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdCgpCit7CisgICAgTGF5b3V0VW5pdCBsb2dp
Y2FsSGVpZ2h0ID0gMDsKKyAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIg
PSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRl
cikgeworICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOworICAgICAgICBpZiAo
IXJlZ2lvbi0+aXNWYWxpZCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgTGF5
b3V0VW5pdCByZWdpb25Mb2dpY2FsV2lkdGggPSByZWdpb24tPnBhZ2VMb2dpY2FsV2lkdGgoKTsK
KyAgICAgICAgTGF5b3V0VW5pdCByZWdpb25Mb2dpY2FsSGVpZ2h0ID0gcmVnaW9uLT5sb2dpY2Fs
SGVpZ2h0T2ZBbGxGbG93VGhyZWFkQ29udGVudCgpOworCisgICAgICAgIExheW91dFJlY3QgcmVn
aW9uUmVjdChzdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBMVFIgPyBaRVJPX0xBWU9VVF9VTklUIDog
bG9naWNhbFdpZHRoKCkgLSByZWdpb25Mb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQsIHJlZ2lv
bkxvZ2ljYWxXaWR0aCwgcmVnaW9uTG9naWNhbEhlaWdodCk7CisKKyAgICAgICAgaWYgKHJlZ2lv
bi0+aGFzT3ZlcnJpZGVIZWlnaHQoKSAmJiB2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpIHsK
KyAgICAgICAgICAgIHJlZ2lvbkxvZ2ljYWxIZWlnaHQgPSByZWdpb24tPm92ZXJyaWRlTG9naWNh
bENvbnRlbnRIZWlnaHQoKTsKKyAgICAgICAgICAgIHJlZ2lvblJlY3Quc2V0SGVpZ2h0KHJlZ2lv
bkxvZ2ljYWxIZWlnaHQpOworICAgICAgICB9CisKKyAgICAgICAgcmVnaW9uLT5zZXRGbG93VGhy
ZWFkUG9ydGlvblJlY3QoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvblJlY3QgOiBy
ZWdpb25SZWN0LnRyYW5zcG9zZWRSZWN0KCkpOworICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IHJl
Z2lvbkxvZ2ljYWxIZWlnaHQ7CisgICAgfQorfQorCisvLyBGSVhNRTogRXh0ZW5kIGl0IHRvIGFj
Y291bnQgZm9yIHJlZ2lvbiBicmVhawordm9pZCBSZW5kZXJGbG93VGhyZWFkOjphZGRGb3JjZWRS
ZWdpb25CcmVhayhMYXlvdXRVbml0IG9mZnNldEJyZWFrSW5GbG93VGhyZWFkKQoreworICAgIC8v
IFdlIHRha2UgYnJlYWtzIGludG8gYWNjb3VudCBmb3IgaGVpZ2h0IGNvbXB1dGF0aW9uIGZvciBh
dXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbnMKKyAgICAvLyBvbmx5IGluIHRoZSBsYXlvdXQgcGhh
c2UgaW4gd2hpY2ggd2UgbGF5IG91dCB0aGUgZmxvd3MgdGhyZWFkcyB1bmNvbnN0cmFpbmVkICh3
ZSBhcmUgbm90CisgICAgLy8gYnJlYWtpbmcgZmxvdyB0aHJlYWRzIGNvbnRlbnQgaW4gcmVnaW9u
cykuCisgICAgaWYgKHZpZXcoKS0+Y29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dFBoYXNlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIFNpbXVsYXRlIGEgcmVnaW9uIGJyZWFrIGF0IGhl
aWdodC4gSWYgaXQgcG9pbnRzIGluc2lkZSBhbiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiwK
KyAgICAvLyB0aGVuIGl0IGRldGVybWluZXMgdGhlIHJlZ2lvbiBvdmVycmlkZSBsb2dpY2FsIGNv
bnRlbnQgaGVpZ2h0LgorICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gcmVnaW9uQXRCbG9ja09m
ZnNldChvZmZzZXRCcmVha0luRmxvd1RocmVhZCk7CisgICAgaWYgKCFyZWdpb24pCisgICAgICAg
IHJldHVybjsKKworICAgIGlmICghcmVnaW9uLT5uZWVkc092ZXJyaWRlTG9naWNhbENvbnRlbnRI
ZWlnaHRDb21wdXRhdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIHVzZUhvcml6
b250YWxXcml0aW5nTW9kZSA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CisgICAgTGF5b3V0
VW5pdCBjdXJyZW50UmVnaW9uT2Zmc2V0SW5GbG93VGhyZWFkID0gdXNlSG9yaXpvbnRhbFdyaXRp
bmdNb2RlID8gcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS55KCkgOiByZWdpb24tPmZs
b3dUaHJlYWRQb3J0aW9uUmVjdCgpLngoKTsKKyAgICBMYXlvdXRVbml0IG9mZnNldEJyZWFrSW5D
dXJyZW50UmVnaW9uID0gb2Zmc2V0QnJlYWtJbkZsb3dUaHJlYWQgLSBjdXJyZW50UmVnaW9uT2Zm
c2V0SW5GbG93VGhyZWFkOworICAgIExheW91dFVuaXQgcmVnaW9uT3ZlcnJpZGVMb2dpY2FsQ29u
dGVudEhlaWdodCA9IHJlZ2lvbi0+Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFJlc3BlY3Rp
bmdNaW5NYXhIZWlnaHQob2Zmc2V0QnJlYWtJbkN1cnJlbnRSZWdpb24pOworICAgIHJlZ2lvbi0+
c2V0T3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChyZWdpb25PdmVycmlkZUxvZ2ljYWxDb250
ZW50SGVpZ2h0KTsKKworICAgIC8vIEZJWE1FOiBFeHRlbmQgaXQgdG8gdGFrZSBpbnRvIGFjY291
bnQgdGhhdCB3ZSBtYXkgaGF2ZSBtb3JlIHRoYW4gb25lIGF1dG8taGVpZ2h0IHJlZ2lvbiBpbiBm
bG93LgorICAgIC8vIEZvciBub3csIHNldCB0aGUgbG9naWNhbCBjb250ZW50IGhlaWdodCBmb3Ig
cmVtYWluaW5nIHJlZ2lvbnMgaW4gdGhlIGZsb3cgdG8gMC4KKyAgICAvLyBBIGZvbGxvdy11cCBw
YXRjaCB3aWxsIHByb3Blcmx5IGRpc3RyaWJ1dGUgdGhlIHJlbWFpbmluZyBoZWlnaHQgaW50byB0
aGUgZm9sbG93aW5nIHJlZ2lvbnMuCisgICAgUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgcmVn
aW9uSXRlciA9IG1fcmVnaW9uTGlzdC5maW5kKHJlZ2lvbik7CisgICAgQVNTRVJUKHJlZ2lvbkl0
ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpKTsKKworICAgIC8vIE1hcmsgYWxsIHRoZSByZW1haW5p
bmcgYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb25zIHdpdGggMCBvdmVycmlkZSBjb21wdXRlZCBo
ZWlnaHQKKyAgICBmb3IgKDsgcmVnaW9uSXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsrcmVn
aW9uSXRlcikgeworICAgICAgICBSZW5kZXJSZWdpb24qIGN1cnJSZWdpb24gPSAqcmVnaW9uSXRl
cjsKKyAgICAgICAgaWYgKCFjdXJyUmVnaW9uLT5pc1ZhbGlkKCkgfHwgKGN1cnJSZWdpb24gPT0g
cmVnaW9uKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJyUmVnaW9uLT5zZXRP
dmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KFpFUk9fTEFZT1VUX1VOSVQpOworICAgIH0KKwor
ICAgIHVwZGF0ZVJlZ2lvbnNGbG93VGhyZWFkUG9ydGlvblJlY3QoKTsKK30KKwogQ3VycmVudFJl
bmRlckZsb3dUaHJlYWRNYWludGFpbmVyOjpDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWlu
ZXIoUmVuZGVyRmxvd1RocmVhZCogcmVuZGVyRmxvd1RocmVhZCkKICAgICA6IG1fcmVuZGVyRmxv
d1RocmVhZChyZW5kZXJGbG93VGhyZWFkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmgKaW5kZXggYjk0MmVlZS4uNGQ2MDRmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC0xMTksOCArMTE5LDggQEAgcHVi
bGljOgogICAgIHZvaWQgZ2V0UmVnaW9uUmFuZ2VGb3JCb3goY29uc3QgUmVuZGVyQm94KiwgUmVu
ZGVyUmVnaW9uKiYgc3RhcnRSZWdpb24sIFJlbmRlclJlZ2lvbiomIGVuZFJlZ2lvbikgY29uc3Q7
CiAKICAgICB2b2lkIGNsZWFyUmVuZGVyT2JqZWN0Q3VzdG9tU3R5bGUoY29uc3QgUmVuZGVyT2Jq
ZWN0KiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVuZGVy
UmVnaW9uKiBvbGRTdGFydFJlZ2lvbiA9IDAsIGNvbnN0IFJlbmRlclJlZ2lvbiogb2xkRW5kUmVn
aW9uID0gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVu
ZGVyUmVnaW9uKiBuZXdTdGFydFJlZ2lvbiA9IDAsIGNvbnN0IFJlbmRlclJlZ2lvbiogbmV3RW5k
UmVnaW9uID0gMCk7CisgICAgICAgIGNvbnN0IFJlbmRlclJlZ2lvbiogb2xkU3RhcnRSZWdpb24g
PSAwLCBjb25zdCBSZW5kZXJSZWdpb24qIG9sZEVuZFJlZ2lvbiA9IDAsCisgICAgICAgIGNvbnN0
IFJlbmRlclJlZ2lvbiogbmV3U3RhcnRSZWdpb24gPSAwLCBjb25zdCBSZW5kZXJSZWdpb24qIG5l
d0VuZFJlZ2lvbiA9IDApOwogICAgIAogICAgIHZvaWQgY29tcHV0ZU92ZXJmbG93U3RhdGVGb3JS
ZWdpb25zKExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlKTsKIApAQCAtMTI5LDYgKzEyOSwx
MSBAQCBwdWJsaWM6CiAgICAgLy8gQ2hlY2sgaWYgdGhlIG9iamVjdCBpcyBpbiByZWdpb24gYW5k
IHRoZSByZWdpb24gaXMgcGFydCBvZiB0aGlzIGZsb3cgdGhyZWFkLgogICAgIGJvb2wgb2JqZWN0
SW5GbG93UmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclJlZ2lvbiopIGNv
bnN0OwogCisgICAgdm9pZCByZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0
KCk7CisgICAgdm9pZCBtYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCk7CisK
KyAgICB2b2lkIGFkZEZvcmNlZFJlZ2lvbkJyZWFrKExheW91dFVuaXQpOworCiAgICAgYm9vbCBw
YWdlTG9naWNhbEhlaWdodENoYW5nZWQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VMb2dpY2FsSGVp
Z2h0Q2hhbmdlZDsgfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMTM4LDYgKzE0Myw3IEBAIHB1Ymxp
YzoKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25z
dCA9IDA7CiAKKyAgICB2b2lkIHVwZGF0ZVJlZ2lvbnNGbG93VGhyZWFkUG9ydGlvblJlY3QoKTsK
ICAgICBib29sIHNob3VsZFJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0OwogICAgIGJv
b2wgcmVnaW9uSW5SYW5nZShjb25zdCBSZW5kZXJSZWdpb24qIHRhcmdldFJlZ2lvbiwgY29uc3Qg
UmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBlbmRSZWdpb24p
IGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApp
bmRleCA4YTc0ODdkLi40MDVmYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVnaW9uLmNwcApAQCAtMjM0LDcgKzIzNCw4IEBAIHZvaWQgUmVuZGVyUmVnaW9uOjpyZXBhaW50
Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wKICAg
ICByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUocmVwYWludFJlY3QsIGltbWVkaWF0
ZSwgZmxvd1RocmVhZFBvcnRpb25SZWN0KCksIGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0
KCksIGNvbnRlbnRCb3hSZWN0KCkubG9jYXRpb24oKSk7CiB9CiAKLXZvaWQgUmVuZGVyUmVnaW9u
OjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVw
YWludFJlY3QsIGJvb2wgaW1tZWRpYXRlLCBjb25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9y
dGlvblJlY3QsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0
LCBjb25zdCBMYXlvdXRQb2ludCYgcmVnaW9uTG9jYXRpb24pIGNvbnN0Cit2b2lkIFJlbmRlclJl
Z2lvbjo6cmVwYWludEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3Qm
IHJlcGFpbnRSZWN0LCBib29sIGltbWVkaWF0ZSwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVh
ZFBvcnRpb25SZWN0LAorICAgIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uT3Zl
cmZsb3dSZWN0LCBjb25zdCBMYXlvdXRQb2ludCYgcmVnaW9uTG9jYXRpb24pIGNvbnN0CiB7CiAg
ICAgLy8gV2Ugb25seSBoYXZlIHRvIGlzc3VlIGEgcmVwYWludCBpbiB0aGlzIHJlZ2lvbiBpZiB0
aGUgcmVnaW9uIHJlY3QgaW50ZXJzZWN0cyB0aGUgcmVwYWludCByZWN0LgogICAgIExheW91dFJl
Y3QgZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9uUmVjdChmbG93VGhyZWFkUG9ydGlvblJlY3QpOwpA
QCAtNDcyLDcgKzQ3Myw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlclJlZ2lvbjo6
Y29tcHV0ZVN0eWxlSW5SZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBvCiAKICAgICByZXR1cm4g
cmVuZGVyT2JqZWN0UmVnaW9uU3R5bGUucmVsZWFzZSgpOwogfQotIAorCiB2b2lkIFJlbmRlclJl
Z2lvbjo6Y29tcHV0ZUNoaWxkcmVuU3R5bGVJblJlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKIHsKICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBvYmplY3QtPmZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKQEAgLTQ5OCw3ICs0
OTksNyBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6Y29tcHV0ZUNoaWxkcmVuU3R5bGVJblJlZ2lvbihj
b25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKICAgICAgICAgY29tcHV0ZUNoaWxkcmVuU3R5bGVJ
blJlZ2lvbihjaGlsZCk7CiAgICAgfQogfQotIAorCiB2b2lkIFJlbmRlclJlZ2lvbjo6c2V0T2Jq
ZWN0U3R5bGVJblJlZ2lvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gc3R5bGVJblJlZ2lvbiwgYm9vbCBvYmplY3RSZWdpb25TdHlsZUNhY2hlZCkKIHsKICAg
ICBBU1NFUlQob2JqZWN0LT5pblJlbmRlckZsb3dUaHJlYWQoKSk7CkBAIC01MjIsNyArNTIzLDcg
QEAgdm9pZCBSZW5kZXJSZWdpb246OnNldE9iamVjdFN0eWxlSW5SZWdpb24oUmVuZGVyT2JqZWN0
KiBvYmplY3QsIFBhc3NSZWZQdHI8UmVuZGUKICAgICBzdHlsZUluZm8uY2FjaGVkID0gb2JqZWN0
UmVnaW9uU3R5bGVDYWNoZWQ7CiAgICAgbV9yZW5kZXJPYmplY3RSZWdpb25TdHlsZS5zZXQob2Jq
ZWN0LCBzdHlsZUluZm8pOwogfQotIAorCiB2b2lkIFJlbmRlclJlZ2lvbjo6Y2xlYXJPYmplY3RT
dHlsZUluUmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewogICAgIEFTU0VSVChv
YmplY3QpOwpAQCAtNTc5LDQgKzU4MCwzNiBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6Z2V0UmFuZ2Vz
KFZlY3RvcjxSZWZQdHI8UmFuZ2U+ID4mIHJhbmdlT2JqZWN0cykgY29uc3QKICAgICBuYW1lZEZs
b3ctPmdldFJhbmdlcyhyYW5nZU9iamVjdHMsIHRoaXMpOwogfQogCit2b2lkIFJlbmRlclJlZ2lv
bjo6dXBkYXRlTG9naWNhbEhlaWdodCgpCit7CisgICAgUmVuZGVyUmVwbGFjZWQ6OnVwZGF0ZUxv
Z2ljYWxIZWlnaHQoKTsKKworICAgIC8vIFdlIHdhbnQgdG8gdXBkYXRlIHRoZSBsb2dpY2FsIGhl
aWdodCBiYXNlZCBvbiB0aGUgY29tcHV0ZWQgb3ZlcnJpZGUgbG9naWNhbAorICAgIC8vIGNvbnRl
bnQgaGVpZ2h0IG9ubHkgaWYgdGhlIHZpZXcgaXMgaW4gdGhlIHNlY29uZCBsYXlvdXQgcGhhc2Ug
b2YgdGhlIGxheW91dCwKKyAgICAvLyBpbiB3aGljaCBhbGwgdGhlIGF1dG8gbG9naWNhbCBoZWln
aHQgcmVnaW9ucyBoYXZlIHRoZWlyIG92ZXJyaWRlIGxvZ2ljYWwgaGVpZ2h0IHNldC4KKyAgICBp
ZiAodmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoaGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSAmJiBoYXNPdmVycmlkZUhlaWdodCgpKSB7CisgICAg
ICAgIExheW91dFVuaXQgbmV3TG9naWNhbEhlaWdodCA9IG92ZXJyaWRlTG9naWNhbENvbnRlbnRI
ZWlnaHQoKSArIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIGlmIChu
ZXdMb2dpY2FsSGVpZ2h0ID4gbG9naWNhbEhlaWdodCgpKQorICAgICAgICAgICAgc2V0TG9naWNh
bEhlaWdodChuZXdMb2dpY2FsSGVpZ2h0KTsKKyAgICB9Cit9CisKK2Jvb2wgUmVuZGVyUmVnaW9u
OjpuZWVkc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHRDb21wdXRhdGlvbigpIGNvbnN0Cit7
CisgICAgaWYgKCFoYXNBdXRvTG9naWNhbEhlaWdodCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAodmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKQorICAgICAgICByZXR1cm4g
IWhhc092ZXJyaWRlSGVpZ2h0KCk7CisKKyAgICAvLyBUaGUgcmVnaW9ucyBhcmUgYWx3YXlzIGxh
aWQgb3V0IGJlZm9yZSB0aGUgYXNzb2NpYXRlZCBmbG93IHRocmVhZCBjb250ZW50LgorICAgIC8v
IEJlY2F1c2Ugb2YgdGhhdCwgaWYgd2UgYXJlIGluIHRoZSBzZWNvbmQgcGhhc2Ugb2YgbGF5b3V0
IGZvciBhdXRvaGVpZ2h0IHJlZ2lvbnMsCisgICAgLy8gdGhlIHJlZ2lvbnMgc2hvdWxkIGhhdmUg
dGhlaXIgaGVpZ2h0IGNvbXB1dGVkLgorICAgIEFTU0VSVChoYXNPdmVycmlkZUhlaWdodCgpKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCA4YTRmNzEyLi5mNzJiOTI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC0xMjIsNiArMTIyLDEwIEBA
IHB1YmxpYzoKICAgICB9CiAgICAgYm9vbCBoYXNBdXRvTG9naWNhbEhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQ7IH0KIAorICAgIGJvb2wgbmVlZHNPdmVycmlk
ZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0YXRpb24oKSBjb25zdDsKKworICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisKICAgICAvLyBUaGUgdG9wIG9m
IHRoZSBuZWFyZXN0IHBhZ2UgaW5zaWRlIHRoZSByZWdpb24uIEZvciBSZW5kZXJSZWdpb25zLCB0
aGlzIGlzIGp1c3QgdGhlIGxvZ2ljYWwgdG9wIG9mIHRoZQogICAgIC8vIGZsb3cgdGhyZWFkIHBv
cnRpb24gd2UgY29udGFpbi4gRm9yIHNldHMsIHdlIGhhdmUgdG8gZmlndXJlIG91dCB0aGUgdG9w
IG9mIHRoZSBuZWFyZXN0IGNvbHVtbiBvcgogICAgIC8vIHBhZ2UuCkBAIC0xNDAsNyArMTQ0LDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgTGF5b3V0UmVjdCBvdmVyZmxvd1JlY3RGb3JGbG93VGhyZWFk
UG9ydGlvbihMYXlvdXRSZWN0IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwgYm9vbCBpc0ZpcnN0UG9y
dGlvbiwgYm9vbCBpc0xhc3RQb3J0aW9uKSBjb25zdDsKICAgICB2b2lkIHJlcGFpbnRGbG93VGhy
ZWFkQ29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBp
bW1lZGlhdGUsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiBm
bG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCwgY29uc3QgTGF5b3V0UG9pbnQmIHJlZ2lvbkxv
Y2F0aW9uKSBjb25zdDsKKyAgICAgICAgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRp
b25PdmVyZmxvd1JlY3QsIGNvbnN0IExheW91dFBvaW50JiByZWdpb25Mb2NhdGlvbikgY29uc3Q7
CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qg
eyByZXR1cm4gIlJlbmRlclJlZ2lvbiI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcAppbmRleCA2NjFiYzk0Li45NzE0NTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCkBAIC02NSw2ICs2NSw3IEBAIFJlbmRlclZpZXc6OlJlbmRlclZpZXco
Tm9kZSogbm9kZSwgRnJhbWVWaWV3KiB2aWV3KQogICAgICwgbV9sYXlvdXRTdGF0ZURpc2FibGVD
b3VudCgwKQogICAgICwgbV9yZW5kZXJRdW90ZUhlYWQoMCkKICAgICAsIG1fcmVuZGVyQ291bnRl
ckNvdW50KDApCisgICAgLCBtX2xheW91dFBoYXNlKFJlbmRlclZpZXdOb3JtYWxMYXlvdXQpCiB7
CiAgICAgLy8gQ2xlYXIgb3VyIGFub255bW91cyBiaXQsIHNldCBiZWNhdXNlIFJlbmRlck9iamVj
dCBhc3N1bWVzCiAgICAgLy8gYW55IHJlbmRlcmVyIHdpdGggZG9jdW1lbnQgYXMgdGhlIG5vZGUg
aXMgYW5vbnltb3VzLgpAQCAtMTMyLDYgKzEzMywyNSBAQCBib29sIFJlbmRlclZpZXc6OmlzQ2hp
bGRBbGxvd2VkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlclN0eWxlKikgY29uc3QKICAgICBy
ZXR1cm4gY2hpbGQtPmlzQm94KCk7CiB9CiAKK3ZvaWQgUmVuZGVyVmlldzo6bGF5b3V0Q29udGVu
dCgpCit7CisgICAgQVNTRVJUKG5lZWRzTGF5b3V0KCkpOworCisgICAgUmVuZGVyQmxvY2s6Omxh
eW91dCgpOworICAgIGlmIChoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkpCisgICAgICAgIGZs
b3dUaHJlYWRDb250cm9sbGVyKCktPmxheW91dFJlbmRlck5hbWVkRmxvd1RocmVhZHMoKTsKK30K
KworI2lmbmRlZiBOREVCVUcKK3ZvaWQgUmVuZGVyVmlldzo6Y2hlY2tMYXlvdXRTdGF0ZShjb25z
dCBMYXlvdXRTdGF0ZSYgc3RhdGUpCit7CisgICAgQVNTRVJUKGxheW91dERlbHRhKCkgPT0gTGF5
b3V0U2l6ZSgpKTsKKyAgICBBU1NFUlQoIW1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQpOworICAg
IEFTU0VSVChtX2xheW91dFN0YXRlID09ICZzdGF0ZSk7CisgICAgQVNTRVJUKG5vcm1hbExheW91
dFBoYXNlKCkpOworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKIHsKICAg
ICBpZiAoIWRvY3VtZW50KCktPnBhZ2luYXRlZCgpKQpAQCAtMTU0LDYgKzE3NCw5IEBAIHZvaWQg
UmVuZGVyVmlldzo6bGF5b3V0KCkKICAgICB9CiAKICAgICBBU1NFUlQoIW1fbGF5b3V0U3RhdGUp
OworICAgIGlmICghbmVlZHNMYXlvdXQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgTGF5b3V0
U3RhdGUgc3RhdGU7CiAgICAgLy8gRklYTUU6IE1heSBiZSBiZXR0ZXIgdG8gcHVzaCBhIGNsaXAg
YW5kIGF2b2lkIGlzc3Vpbmcgb2Zmc2NyZWVuIHJlcGFpbnRzLgogICAgIHN0YXRlLm1fY2xpcHBl
ZCA9IGZhbHNlOwpAQCAtMTYzLDE1ICsxODYsMjUgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQo
KQogICAgIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkID0gZmFsc2U7CiAgICAgbV9sYXlvdXRT
dGF0ZSA9ICZzdGF0ZTsKIAotICAgIGlmIChuZWVkc0xheW91dCgpKSB7Ci0gICAgICAgIFJlbmRl
ckJsb2NrOjpsYXlvdXQoKTsKLSAgICAgICAgaWYgKGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMo
KSkKLSAgICAgICAgICAgIGZsb3dUaHJlYWRDb250cm9sbGVyKCktPmxheW91dFJlbmRlck5hbWVk
Rmxvd1RocmVhZHMoKTsKKyAgICBib29sIG5lZWRzVHdvUGFzc0xheW91dCA9IGhhc1JlbmRlck5h
bWVkRmxvd1RocmVhZHMoKSAmJiBmbG93VGhyZWFkQ29udHJvbGxlcigpLT5oYXNBdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnMoKTsKKyAgICBpZiAobmVlZHNUd29QYXNzTGF5b3V0KQorICAgICAgICBm
bG93VGhyZWFkQ29udHJvbGxlcigpLT5yZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50
SGVpZ2h0KCk7CisKKyAgICBsYXlvdXRDb250ZW50KCk7CisjaWZuZGVmIE5ERUJVRworICAgIGNo
ZWNrTGF5b3V0U3RhdGUoc3RhdGUpOworI2VuZGlmCisKKyAgICBpZiAobmVlZHNUd29QYXNzTGF5
b3V0KSB7CisgICAgICAgIG1fbGF5b3V0UGhhc2UgPSBDb25zdHJhaW5lZEZsb3dUaHJlYWRzTGF5
b3V0SW5BdXRvTG9naWNhbEhlaWdodFJlZ2lvbnM7CisgICAgICAgIGZsb3dUaHJlYWRDb250cm9s
bGVyKCktPm1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKTsKKyAgICAgICAg
bGF5b3V0Q29udGVudCgpOworICAgICAgICBtX2xheW91dFBoYXNlID0gUmVuZGVyVmlld05vcm1h
bExheW91dDsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIGNoZWNrTGF5b3V0U3RhdGUoc3RhdGUp
OworI2VuZGlmCiAgICAgfQogCi0gICAgQVNTRVJUKGxheW91dERlbHRhKCkgPT0gTGF5b3V0U2l6
ZSgpKTsKLSAgICBBU1NFUlQobV9sYXlvdXRTdGF0ZURpc2FibGVDb3VudCA9PSAwKTsKLSAgICBB
U1NFUlQobV9sYXlvdXRTdGF0ZSA9PSAmc3RhdGUpOwogICAgIG1fbGF5b3V0U3RhdGUgPSAwOwog
ICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oCmluZGV4IDY5NjIyMWIuLmUyYjAxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaApAQCAtMTg4LDYgKzE4OCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNSZW5k
ZXJOYW1lZEZsb3dUaHJlYWRzKCkgY29uc3Q7CiAgICAgRmxvd1RocmVhZENvbnRyb2xsZXIqIGZs
b3dUaHJlYWRDb250cm9sbGVyKCk7CiAKKyAgICBlbnVtIFJlbmRlclZpZXdMYXlvdXRQaGFzZSB7
IFJlbmRlclZpZXdOb3JtYWxMYXlvdXQsIENvbnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRJbkF1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyB9OworICAgIGJvb2wgbm9ybWFsTGF5b3V0UGhhc2UoKSBj
b25zdCB7IHJldHVybiBtX2xheW91dFBoYXNlID09IFJlbmRlclZpZXdOb3JtYWxMYXlvdXQ7IH0K
KyAgICBib29sIGNvbnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRQaGFzZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbGF5b3V0UGhhc2UgPT0gQ29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dEluQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zOyB9CisKICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKIAogICAgIEludGVydmFsQXJl
bmEqIGludGVydmFsQXJlbmEoKTsKQEAgLTI0OSw2ICsyNTMsOSBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGlzYWJsZUxheW91dFN0YXRlKCkgeyBtX2xheW91dFN0YXRlRGlzYWJsZUNvdW50Kys7IH0K
ICAgICB2b2lkIGVuYWJsZUxheW91dFN0YXRlKCkgeyBBU1NFUlQobV9sYXlvdXRTdGF0ZURpc2Fi
bGVDb3VudCA+IDApOyBtX2xheW91dFN0YXRlRGlzYWJsZUNvdW50LS07IH0KIAorICAgIHZvaWQg
bGF5b3V0Q29udGVudCgpOworICAgIHZvaWQgY2hlY2tMYXlvdXRTdGF0ZShjb25zdCBMYXlvdXRT
dGF0ZSYpOworCiAgICAgc2l6ZV90IGdldFJldGFpbmVkV2lkZ2V0cyhWZWN0b3I8UmVuZGVyV2lk
Z2V0Kj4mKTsKICAgICB2b2lkIHJlbGVhc2VXaWRnZXRzKFZlY3RvcjxSZW5kZXJXaWRnZXQqPiYp
OwogICAgIApAQCAtMzA3LDYgKzMxNCw3IEBAIHByaXZhdGU6CiAKICAgICBSZW5kZXJRdW90ZSog
bV9yZW5kZXJRdW90ZUhlYWQ7CiAgICAgdW5zaWduZWQgbV9yZW5kZXJDb3VudGVyQ291bnQ7Cisg
ICAgUmVuZGVyVmlld0xheW91dFBoYXNlIG1fbGF5b3V0UGhhc2U7CiB9OwogCiBpbmxpbmUgUmVu
ZGVyVmlldyogdG9SZW5kZXJWaWV3KFJlbmRlck9iamVjdCogb2JqZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167535</attachid>
            <date>2012-10-08 06:54:25 -0700</date>
            <delta_ts>2012-10-15 05:32:33 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>97533-3.patch</filename>
            <type>text/plain</type>
            <size>55248</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZDNmYzc1Li5kYmVmMjk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMTAt
MDggIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdQWRkIHN1cHBvcnQgZm9yIGF1dG8taGVpZ2h0IHJlZ2lvbnMgKHdpdGhvdXQgcmVnaW9u
LWJyZWFrcykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk3NTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgdGVzdHMgZm9yIGF1dG8taGVpZ2h0IHJlZ2lvbnMsIHdpdGggZGlmZmVyZW50IHdyaXRp
bmcgbW9kZXMsIHdpdGggbWluL21heC1oZWlnaHQuCisgICAgICAgIFRoZSBidWcgcmVmZXJlbmNl
ZCBpbiB0aGUgdGVzdHMgaXMgdGhlIG1hc3RlciBidWcgZm9yIGF1dG8taGVpZ2h0IHN1cHBvcnQs
IDkxMDk3LgorCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJlZ2lv
bi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdo
dC1hYnNwb3MtcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWhvcml6b250YWwtYnQtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaG9yaXpvbnRh
bC1idC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxp
bmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQt
cmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LW1heGhlaWdodC1yZWdpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taW5oZWlnaHQtcmVnaW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5vcm1hbGZsb3ctcmVnaW9u
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0
LW5vcm1hbGZsb3ctcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9h
dXRvaGVpZ2h0LXZlcnRpY2FsLWxyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLWxyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1maXJzdC1lbXB0
eS1yZWdpb24taW5kZXguaHRtbDogRml4IGFuIGVsZW1lbnQgc3R5bGUgKHRob3VnaCB0aGUgdGVz
dCB3YXMgcGFzc2luZyBiZWZvcmUpLgorCiAyMDEyLTEwLTA3ICBOb2VsIEdvcmRvbiAgPG5vZWwu
Z29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBBZGQgcGFydGlhbCBsb2FkIHRlc3QgZm9yIEpQ
RUcgaW1hZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0
LWFic3Bvcy1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9h
dXRvaGVpZ2h0LWFic3Bvcy1yZWdpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hNzEzOWIxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWFic3Bvcy1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c3R5bGU+CisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXplICB7IHdpZHRoOiA1MHB4
OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNncmVlbiB7IGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTAwcHg7IH0KKyAgICAgICAgPC9zdHls
ZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVp
Z2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSBy
ZWdpb24gaXMgYSBibG9jayBlbGVtZW50LCBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuPC9wPgorICAg
ICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJl
bG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4iIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNp
emUiPjwvZGl2PgorICAgIDxib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZDkxYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1hYnNwb3MtcmVnaW9uLmh0bWwKQEAgLTAsMCAr
MSwyMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0
eWxlPgorICAgICAgICAgICAgLmZsb3dDb250ZW50U2l6ZSAgeyB3aWR0aDogNTBweDsgaGVpZ2h0
OiA1MHB4OyB9CisgICAgICAgICAgICAjYXJ0aWNsZSB7IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93
OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQorCisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdp
b25TaXplICB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWQg
eyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDBweDsg
fQorCisgICAgICAgICAgICAucmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyB9CisgICAgICAgICAg
ICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiBhYnNvbHV0ZTsg
dG9wOiAxMDBweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4K
KyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lv
bnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQsIGFi
c29sdXRlbHkgcG9zaXRpb25lZC48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91
bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IGlkPSJy
ZWQiIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJh
cnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnRTaXplIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0i
cmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtZmxvYXRyaWdo
dC1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVp
Z2h0LWZsb2F0cmlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZDdjZmNkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwxNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHN0eWxlPgorICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMTBweDsgfQorICAgICAgICAg
ICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAg
ICAgICAgICAgICNncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBwb3NpdGlvbjogYWJz
b2x1dGU7IHRvcDogMTUwcHg7IGxlZnQ6IDYwcHg7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5v
dCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMg
YSBibG9jayBlbGVtZW50LCByaWdodCBmbG9hdGluZy48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nl
c3MsIHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAg
ICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1
dG9oZWlnaHQtZmxvYXRyaWdodC1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTdmOGE0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxl
PgorICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMTBweDsgfQorCisgICAgICAgICAgICAuZmxv
d0NvbnRlbnRTaXplIHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAg
I2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgIGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOyB9CisKKyAgICAgICAgICAgIC5leHBlY3RlZFJlZ2lvblNpemUgeyB3aWR0aDogNTBweDsg
aGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjcmVkIHsgYmFja2dyb3VuZC1jb2xvcjogcmVk
OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTUwcHg7IGxlZnQ6IDYwcHg7IH0KKworICAgICAg
ICAgICAgLnJlZ2lvbkNvbnRhaW5lclNpemUgeyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7
IH0KKyAgICAgICAgICAgICNjb250YWluZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7ICB0b3A6IDE1
MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHdp
ZHRoOiA1MHB4OyBmbG9hdDogcmlnaHQ7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3Jr
aW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9j
ayBlbGVtZW50LCByaWdodCBmbG9hdGluZy48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlv
dSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2
IGlkPSJyZWQiIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnRTaXplIj48L2Rpdj4KKyAgICAgICAgPGRp
diBpZD0iY29udGFpbmVyIiBjbGFzcz0icmVnaW9uQ29udGFpbmVyU2l6ZSI+CisgICAgICAgICAg
ICA8ZGl2IGlkPSJyZWdpb24iPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1o
b3Jpem9udGFsLWJ0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0
b2hlaWdodC1ob3Jpem9udGFsLWJ0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uY2E0MmYwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWhvcml6b250YWwtYnQtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDE5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmct
bW9kZTogaG9yaXpvbnRhbC1idDsiPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAg
ICAgICAgICAuZ3JlZW5Cb3ggeyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAyNTBweDsgaGVp
Z2h0OiA1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2dyZWVu
IHsgYm90dG9tOiAxMjVweDsgfQorICAgICAgICAgICAgI2dyZWVuMSB7IGJvdHRvbTogMjI1cHg7
IH0KKyAgICAgICAgICAgICNncmVlbjIgeyBib3R0b206IDMyNXB4OyB9CisgICAgICAgIDwvc3R5
bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhl
aWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUg
cmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgd3JpdGluZyBtb2RlIGhvcml6b250YWwtYnQuPC9w
PgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAzIGdyZWVuIHJlY3Rhbmds
ZXMuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImdyZWVuQm94Ij48L2Rpdj4K
KyAgICAgICAgPGRpdiBpZD0iZ3JlZW4xIiBjbGFzcz0iZ3JlZW5Cb3giPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJncmVlbjIiIGNsYXNzPSJncmVlbkJveCI+PC9kaXY+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQt
aG9yaXpvbnRhbC1idC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQt
aG9yaXpvbnRhbC1idC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQz
MWY5NjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hl
aWdodC1ob3Jpem9udGFsLWJ0Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbCBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7Ij4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmZsb3dDb250ZW50IHsgZm9u
dC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBn
cmVlbjsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsg
fQorCisgICAgICAgICAgICAucmVnaW9uU2l6ZSB7IHdpZHRoOiAyNTBweDsgfQorICAgICAgICAg
ICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyBwb3NpdGlvbjogYWJzb2x1dGU7
IGJvdHRvbTogMTAwcHg7IH0KKworICAgICAgICAgICAgLnJlZEJveCB7IHBvc2l0aW9uOiBhYnNv
bHV0ZTsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQtY29sb3I6IHJlZDsg
fQorICAgICAgICAgICAgI3JlZCB7IGJvdHRvbTogMTI1cHg7IH0KKyAgICAgICAgICAgICNyZWQx
IHsgYm90dG9tOiAyMjVweDsgfQorICAgICAgICAgICAgI3JlZDIgeyBib3R0b206IDMyNXB4OyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5U
ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgor
ICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgd3JpdGluZyBtb2RlIGhv
cml6b250YWwtYnQuPC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAz
IGdyZWVuIHJlY3RhbmdsZXMuPC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJyZWRC
b3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWQxIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4K
KyAgICAgICAgPGRpdiBpZD0icmVkMiIgY2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9ImFydGljbGUiIGNsYXNzPSJmbG93Q29udGVudCI+CisgICAgICAgICAgICA8c3BhbiBz
dHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4iPgorICAgICAgICAgICAgICAgIGEgYSBhIGEg
YSBhIGEgYSBhCisgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25TaXplIj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1p
bmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaW5saW5lYmxvY2stbm9ybWFsZmxvdy1yZWdpb24tZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTM4MjhmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaW5s
aW5lYmxvY2stbm9ybWFsZmxvdy1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+Cisg
ICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXplIHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBw
eDsgfQorICAgICAgICAgICAgI2dyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKyAg
ICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3Qg
Zm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5
NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAg
ICAgIDxwPlRoZSByZWdpb24gaXMgYW4gaW5saW5lLWJsb2NrIGVsZW1lbnQgaW4gbm9ybWFsIGZs
b3c8L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCBy
ZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImV4cGVj
dGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPGJvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93
LXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaW5saW5l
YmxvY2stbm9ybWFsZmxvdy1yZWdpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mNTAyOWFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtaW5saW5lYmxvY2stbm9ybWFsZmxvdy1yZWdpb24uaHRtbApAQCAtMCww
ICsxLDIzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
c3R5bGU+CisgICAgICAgICAgICAuZmxvd0NvbnRlbnRTaXplIHsgd2lkdGg6IDUwcHg7IGhlaWdo
dDogNTBweDsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxv
dzsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKworICAgICAgICAgICAgLmV4cGN0ZWRSZWdp
b25TaXplIHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI3JlZCB7
IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQorCisgICAgICAgICAgICAucmVnaW9uU2l6ZSB7IHdp
ZHRoOiA1MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZs
b3c7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAtNTBweDsgZGlzcGxheTogaW5saW5lLWJsb2Nr
OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgICA8Ym9keT4KKyAgICAgICAg
IDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48
L3A+CisgICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGFuIGlubGluZS1ibG9jayBlbGVtZW50IGlu
IG5vcm1hbCBmbG93PC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5vdCBz
ZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0icmVkIiBjbGFz
cz0iZXhwY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBj
bGFzcz0iZmxvd0NvbnRlbnRTaXplIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBj
bGFzcz0icmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPGJvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWln
aHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZTcxMjNlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9h
dXRvaGVpZ2h0LW1heGhlaWdodC1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+Cisg
ICAgICAgIC5leHBlY3RlZFJlZ2lvblNpemUgeyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsg
fQorICAgICAgICAjZ3JlZW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTUwcHg7IGJhY2tn
cm91bmQtY29sb3I6Z3JlZW47IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZv
ciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVt
ZW50IGluIG5vcm1hbCBmbG93LCBoYXZpbmcgbWF4LWhlaWdodCBzcGVjaWZpZWQuPC9wPgorICAg
ICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAxIGdyZWVuIGxpbmUuPC9wPgorICAg
ICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2F1dG9oZWlnaHQtbWF4aGVpZ2h0LXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtbWF4aGVpZ2h0LXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNmMGRiMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwy
NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxl
PgorICAgICAgICAgICAgLmZsb3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWls
eTogQWhlbTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2Fy
dGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgcGFkZGluZy10b3A6IDI1cHg7IH0KKwor
ICAgICAgICAgICAgLnJlZ2lvblNpemUgeyB3aWR0aDogMjUwcHg7IG1heC1oZWlnaHQ6IDEwMHB4
OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IG92ZXJm
bG93OiBoaWRkZW47IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDBweDsgfQorCisgICAgICAg
ICAgICAuZXhwZWN0ZWRSZWdpb25TaXplIHsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7ICB9
CisgICAgICAgICAgICAjcmVkIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1MHB4OyBiYWNr
Z3JvdW5kLWNvbG9yOnJlZDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9y
IHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1l
bnQgaW4gbm9ybWFsIGZsb3csIGhhdmluZyBtYXgtaGVpZ2h0IHNwZWNpZmllZC48L3A+CisgICAg
ICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIDEgZ3JlZW4gbGluZS48L3A+CisgICAg
ICAgIDxkaXYgaWQ9InJlZCIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9ImFydGljbGUiIGNsYXNzPSJmbG93Q29udGVudCI+CisgICAgICAgICAgICA8
c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4iPgorICAgICAgICAgICAgICAgIGEg
YSBhIGEgYSBhIGEgYSBhCisgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25TaXplIj48L2Rpdj4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hl
aWdodC1taW5oZWlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvYXV0b2hlaWdodC1taW5oZWlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzIyNzAxOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1pbmhlaWdodC1yZWdpb24tZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXplIHsg
d2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyB9CisgICAgICAgICAgICAjZ3JlZW4geyBwb3Np
dGlvbjogYWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB0b3A6IDE1MHB4OyB9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0
IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEw
OTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAg
ICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgaGF2aW5nIG1pbi1oZWlnaHQg
c3BlY2lmaWVkLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgMSBn
cmVlbiByZWN0YW5nbGUuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImV4cGVj
dGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiYWQ2ZWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taW5oZWlnaHQt
cmVnaW9uLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmZsb3dDb250ZW50IHsgZm9u
dC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBn
cmVlbjsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsg
cGFkZGluZy10b3A6IDI1cHg7IH0KKworICAgICAgICAgICAgLnJlZ2lvblNpemUgeyB3aWR0aDog
MjAwcHg7IG1pbi1oZWlnaHQ6IDIwMHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtp
dC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNTBweDsgYmFja2dy
b3VuZC1jb2xvcjogZ3JlZW47IH0KKworICAgICAgICAgICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSB7
IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgfQorICAgICAgICAgICAgI3JlZCB7IHBvc2l0
aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB0b3A6IDE1MHB4OyB9CisgICAg
ICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZv
ciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTci
PiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAg
ICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgaGF2aW5nIG1pbi1oZWlnaHQgc3Bl
Y2lmaWVkLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgMSBncmVl
biByZWN0YW5nbGUuPC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJleHBlY3RlZFJl
Z2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0Nv
bnRlbnQiPgorICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVu
Ij4KKyAgICAgICAgICAgICAgICBhCisgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25TaXplIj48L2Rpdj4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
YXV0b2hlaWdodC1ub3JtYWxmbG93LXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdpb24tZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGExNzJkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdp
b24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdp
b25TaXplICB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNncmVl
biB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5U
ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgor
ICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCBpbiBub3JtYWwgZmxvdyB3
aXRoIGhlaWdodCBhdXRvLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBu
b3Qgc2VlIGEgcmVkIHJlY3RhbmdsZSBiZWxvdy48L3A+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVu
IiBjbGFzcz0iZXhwZWN0ZWRSZWdpb25TaXplIj48L2Rpdj4KKyAgICA8Ym9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5vcm1hbGZs
b3ctcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ub3Jt
YWxmbG93LXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVl
ZmJkOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hl
aWdodC1ub3JtYWxmbG93LXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5m
bG93Q29udGVudFNpemUgIHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAg
ICAgI2FydGljbGUgICAgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47IH0KKworICAgICAgICAgICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiA1
MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWQgICAgICAgIHsgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOyB9CisKKyAgICAgICAgICAgIC5yZWdpb25TaXplIHsgd2lkdGg6IDUwcHg7
IH0KKyAgICAgICAgICAgICNyZWdpb24gICAgIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHBv
c2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAtNTBweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwv
aGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90
IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBh
IGJsb2NrIGVsZW1lbnQgaW4gbm9ybWFsIGZsb3cgd2l0aCBoZWlnaHQgYXV0by48L3A+CisgICAg
ICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVs
b3cuPC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUi
PjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnRTaXpl
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6ZSI+PC9k
aXY+CisgICAgPGJvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1sci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtbHItZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWYwYjU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtbHItZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDE5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Vi
a2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0
eWxlPgorICAgICAgICAgICAgLmdyZWVuQm94IHsgcG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjUwcHg7IH0KKyAgICAgICAg
ICAgICNncmVlbiB7IGxlZnQ6IDEyNXB4OyB9CisgICAgICAgICAgICAjZ3JlZW4xIHsgbGVmdDog
MjI1cHg7IH0KKyAgICAgICAgICAgICNncmVlbjIgeyBsZWZ0OiAzMjVweDsgfQorICAgICAgICA8
L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0
byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+
VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQsIHdyaXRpbmcgbW9kZSB2ZXJ0aWNhbC1sci48
L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIDMgZ3JlZW4gcmVjdGFu
Z2xlcy48L3A+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuIiBjbGFzcz0iZ3JlZW5Cb3giPjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJncmVlbjEiIGNsYXNzPSJncmVlbkJveCI+PC9kaXY+CisgICAg
ICAgIDxkaXYgaWQ9ImdyZWVuMiIgY2xhc3M9ImdyZWVuQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdo
dC12ZXJ0aWNhbC1sci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQt
dmVydGljYWwtbHIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWFh
MzMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWln
aHQtdmVydGljYWwtbHIuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Ij4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmZsb3dDb250ZW50IHsgZm9udC1zaXpl
OiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsg
fQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorCisg
ICAgICAgICAgICAucmVnaW9uU2l6ZSB7IGhlaWdodDogMjUwcHg7IH0KKyAgICAgICAgICAgICNy
ZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OiAxMDBweDsgfQorCisgICAgICAgICAgICAucmVkQm94IHsgcG9zaXRpb246IGFic29sdXRlOyBi
YWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDI1MHB4OyB9CisgICAg
ICAgICAgICAjcmVkIHsgbGVmdDogMTI1cHg7IH0KKyAgICAgICAgICAgICNyZWQxIHsgbGVmdDog
MjI1cHg7IH0KKyAgICAgICAgICAgICNyZWQyIHsgbGVmdDogMzI1cHg7IH0KKyAgICAgICAgPC9z
dHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8g
aGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRo
ZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50LCB3cml0aW5nIG1vZGUgdmVydGljYWwtbHIuPC9w
PgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAzIGdyZWVuIHJlY3Rhbmds
ZXMuPC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJyZWRCb3giPjwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJyZWQxIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0icmVkMiIgY2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUi
IGNsYXNzPSJmbG93Q29udGVudCI+CisgICAgICAgICAgICA8c3BhbiBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW4iPgorICAgICAgICAgICAgICAgIGEgYSBhIGEgYSBhIGEgYSBhCisgICAg
ICAgICAgICA8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24i
IGNsYXNzPSJyZWdpb25TaXplIj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1ybC1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwt
cmwtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjQz
MGQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWln
aHQtdmVydGljYWwtcmwtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7Ij4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmdyZWVuQm94IHsgcG9z
aXRpb246IGFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6IDUwcHg7IGhl
aWdodDogMjUwcHg7IH0KKyAgICAgICAgICAgICNncmVlbiB7IHJpZ2h0OiAxMjVweDsgfQorICAg
ICAgICAgICAgI2dyZWVuMSB7IHJpZ2h0OiAyMjVweDsgfQorICAgICAgICAgICAgI2dyZWVuMiB7
IHJpZ2h0OiAzMjVweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJl
Z2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQs
IHdyaXRpbmcgbW9kZSB2ZXJ0aWNhbC1ybC48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlv
dSBzaG91bGQgc2VlIDMgZ3JlZW4gcmVjdGFuZ2xlcy48L3A+CisgICAgICAgIDxkaXYgaWQ9Imdy
ZWVuIiBjbGFzcz0iZ3JlZW5Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJncmVlbjEiIGNs
YXNzPSJncmVlbkJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuMiIgY2xhc3M9Imdy
ZWVuQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1ybC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtcmwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDk2N2EzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtcmwuaHRtbApAQCAtMCwwICsx
LDMxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmw7Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAg
ICAgLmZsb3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgbGlu
ZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Vi
a2l0LWZsb3ctaW50bzogZmxvdzsgfQorCisgICAgICAgICAgICAucmVnaW9uU2l6ZSB7IGhlaWdo
dDogMjUwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogZmxv
dzsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMTAwcHg7IH0KKworICAgICAgICAgICAgLnJl
ZEJveCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDog
NTBweDsgaGVpZ2h0OiAyNTBweDsgfQorICAgICAgICAgICAgI3JlZCB7IHJpZ2h0OiAxMjVweDsg
fQorICAgICAgICAgICAgI3JlZDEgeyByaWdodDogMjI1cHg7IH0KKyAgICAgICAgICAgICNyZWQy
IHsgcmlnaHQ6IDMyNXB4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3Ig
cmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVu
dCwgd3JpdGluZyBtb2RlIHZlcnRpY2FsLXJsLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2Vzcywg
eW91IHNob3VsZCBzZWUgMyBncmVlbiByZWN0YW5nbGVzLjwvcD4KKyAgICAgICAgPGRpdiBpZD0i
cmVkIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVkMSIgY2xhc3M9
InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZDIiIGNsYXNzPSJyZWRCb3giPjwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnQiPgorICAg
ICAgICAgICAgPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVuIj4KKyAgICAgICAg
ICAgICAgICBhIGEgYSBhIGEgYSBhIGEgYQorICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6ZSI+PC9kaXY+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL3dlYmtpdC1uYW1lZC1mbG93LWZpcnN0LWVtcHR5LXJlZ2lvbi1pbmRleC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWZpcnN0LWVtcHR5LXJlZ2lv
bi1pbmRleC5odG1sCmluZGV4IGZjZDU3YzUuLjcxY2IxOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1maXJzdC1lbXB0eS1yZWdpb24taW5k
ZXguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ct
Zmlyc3QtZW1wdHktcmVnaW9uLWluZGV4Lmh0bWwKQEAgLTgsNyArOCw3IEBACiAgICAgYm9keSB7
IGZvbnQtZmFtaWx5OiBtb25vc3BhY2UgfQogICAgIC5jb250ZW50IHsgLXdlYmtpdC1mbG93LWlu
dG86IGZsb3cgfQogICAgIC5yZWdpb24geyAgLXdlYmtpdC1mbG93LWZyb206IGZsb3d9Ci0gICAg
I3JlZ2lvbiwgI3JlZ2lvbjIsIHJlZ2lvbjMge3dpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4fQor
ICAgICNyZWdpb24sICNyZWdpb24yLCAjcmVnaW9uMyB7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1
MHB4OyB9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBhMDY2MS4u
YTMxMGJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEyLTEwLTA4ICBNaWhuZWEg
T3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUFkZCBz
dXBwb3J0IGZvciBhdXRvLWhlaWdodCByZWdpb25zICh3aXRob3V0IHJlZ2lvbi1icmVha3MpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzUzMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0
aGUgMnBhc3MgbGF5b3V0IGFsZ29yaXRobSBmb3IgY29tcHV0aW5nIHRoZSBoZWlnaHQgb2YgcmVn
aW9ucyB3aXRoIGF1dG8gbG9naWNhbCBoZWlnaHQsIHdpdGhvdXQgdGFraW5nIHJlZ2lvbiBicmVh
a3MgaW50byBhY2NvdW50LgorICAgICAgICBUaGUgYWxnb3JpdGhtIGlzIGRlc2NyaWJlZCBpbiB0
aGUgQ1NTUmVnaW9ucyBzcGVjOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXJlZ2lvbnMv
I3JlZ2lvbnMtdmlzdWFsLWZvcm1hdHRpbmctc3RlcHMKKworICAgICAgICBXaGVuIHRoZSBmbG93
IHRocmVhZCBjb250YWlucyByZWdpb25zIHdpdGggYXV0byBsb2dpY2FsIGhlaWdodCwgYSAycGFz
cyBsYXlvdXQgYWxnb3JpdGhtIGlzIG5lZWRlZCB0byBkZXRlcm1pbmUgdGhlIGhlaWdodCBvZiBh
dXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbnMuCisgICAgICAgIEluIGVhY2ggc3RlcCBvZiB0aGUg
bGF5b3V0LCB0aGUgcmVnaW9ucyBhcmUgbGFpZCBvdXQgYmVmb3JlIHRoZSBmbG93IHRocmVhZCBp
cyBsYWlkIG91dC4KKworICAgICAgICBJbiB0aGUgZmlyc3QgcGFzcyBvZiBsYXlvdXQgKG5vcm1h
bCBsYXlvdXQgcGhhc2UpLCB0aGUgY29udGVudCBvZiB0aGUgZmxvdyB0aHJlYWQgaXMgbGFpZCBv
dXQgdW5jb25zdHJhaW5lZCBpbiB0aGUgcmVnaW9ucy4gVGhlIHJlZ2lvbiBtYXJrZWQgYXMgaGF2
aW5nIGF1dG8gbG9naWNhbCBoZWlnaHQKKyAgICAgICAgZGlzcGxheXMgYWxsIHRoZSBjb3JyZXNw
b25kaW5nIGNvbnRlbnQgZnJvbSB0aGUgZmxvdyB0aHJlYWQgKHRha2luZyBtaW4taGVpZ2h0IGFu
ZCBtYXgtaGVpZ2h0IGludG8gYWNjb3VudCksIGFuZCB0aGUgaGVpZ2h0IG9mIHRoZSBjb250ZW50
IGRpc3BsYXllZAorICAgICAgICBkZXRlcm1pbmVzIHRoZSBvdmVycmlkZGVuIGxvZ2ljYWwgY29u
dGVudCBoZWlnaHQuIFRodXMsIGFmdGVyIHRoZSBmaXJzdCBwYXNzIG9mIGxheW91dCwgZWFjaCBh
dXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiB3aWxsIHN0b3JlIHRoZSBsb2dpY2FsIGhlaWdodAor
ICAgICAgICB2YWx1ZSBmb3IgdGhlIHNlY29uZCBwYXNzIGluIGl0cyBvdmVycmlkZGVuIGxvZ2lj
YWwgY29udGVudCBoZWlnaHQgcHJvcGVydHkuCisKKyAgICAgICAgSW4gdGhlIHNlY29uZCBwYXNz
IG9mIGxheW91dCAoY29uc3RyYWluZWQgZmxvdyB0aHJlYWRzIGxheW91dCBwaGFzZSksIHdoZW4g
dGhlIGNvbnRlbnQgb2YgdGhlIGZsb3cgdGhyZWFkIGlzIGxhaWQgb3V0IGNvbnN0cmFpbmVkIGlu
IHRoZSByZWdpb25zLCB0aGUgcmVnaW9ucyBhcmUgbGFpZCBvdXQgYWdhaW4gYW5kIHRoZXkgYXJl
IHVzaW5nCisgICAgICAgIHRoZSBvdmVycmlkZGVuIGxvZ2ljYWwgY29udGVudCBoZWlnaHQgZnJv
bSB0aGUgZmlyc3QgcGFzcyB0byB1cGRhdGUgdGhlaXIgbG9naWNhbCBoZWlnaHQuIFRoZW4sIHRo
ZSBmbG93IHRocmVhZCBjb250ZW50IGlzIGxhaWQgb3V0IGluIHRoZSBhc3NvY2lhdGVkIHJlZ2lv
biBjaGFpbiwKKyAgICAgICAgZm9yIHdoaWNoIHRoZSBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lv
bnMgaGF2ZSBwcm9wZXIgbG9naWNhbCBoZWlnaHQuCisKKyAgICAgICAgQSBmdXR1cmUgcGF0Y2gg
d2lsbCBwcm9wZXJseSB0YWtlIHJlZ2lvbiBicmVha3MgaW50byBhY2NvdW50IGZvciB0aGUgZmly
c3QgcGFzcyBvZiBsYXlvdXQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvcmVnaW9ucy9hdXRvaGVp
Z2h0LWFic3Bvcy1yZWdpb24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9o
ZWlnaHQtZmxvYXRyaWdodC1yZWdpb24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25z
L2F1dG9oZWlnaHQtaG9yaXpvbnRhbC1idC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lv
bnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1pbmhlaWdodC1yZWdpb24uaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdp
b24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwt
bHIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwt
cmwuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpyZXNldFJlZ2lvbnNPdmVy
cmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KToKKyAgICAgICAgRm9yIGFsbCB0aGUgYXV0byBsb2dp
Y2FsIGhlaWdodCByZWdpb25zLCByZXNldHMgdGhlaXIgYXNzb2NpYXRlZCBvdmVycmlkZUxvZ2lj
YWxDb250ZW50SGVpZ2h0LgorICAgICAgICBUaG9zZSByZWdpb25zIGFyZSBtYXJrZWQgYXMgbmVl
ZGluZyBsYXlvdXQgKGFsb25nIHdpdGggdGhlaXIgYW5jZXN0b3JzKS4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6Om1hcmtBdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQpOgorICAgICAgICBNYXJrIGFsbCB0aGUgYXV0byBs
b2dpY2FsIGhlaWdodCByZWdpb25zIGFuZCB0aGVpciBhc3NvY2lhdGVkIGZsb3cgdGhyZWFkIGFz
IG5lZWRpbmcgbGF5b3V0IChhbG9uZyB3aXRoIHRoZWlyIGFuY2VzdG9ycykuCisgICAgICAgICog
cmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmg6CisgICAgICAgIChGbG93VGhyZWFkQ29u
dHJvbGxlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIEFk
ZCBoZWxwZXIgZnVuY3Rpb25zIHRvIGNsZWFyIG91dCBpbmRpdmlkdWFsIGxvZ2ljYWwgY29udGVu
dCB3aWR0aC9oZWlnaHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNsZWFyT3ZlcnJp
ZGVMb2dpY2FsQ29udGVudEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6Y2xlYXJPdmVycmlkZUxvZ2ljYWxDb250ZW50V2lkdGgpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjbGVhck92ZXJyaWRlU2l6ZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bG93VGhyZWFkOjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6
Y29tcHV0ZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICBJZiB0aGUgZmxvdyB0aHJlYWQgaGFzIGFu
IGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9uIGZvciB3aGljaCB3ZSBkaWQgbm90IHlldCBjb21w
dXRlIHRoZSBvdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0IHZhbHVlLAorICAgICAgICBiYWls
IG91dCBlYXJseSBzaW5jZSB3ZSBjYW5ub3QgY29tcHV0ZSB0aGUgZmxvdyB0aHJlYWQgbG9naWNh
bCBoZWlnaHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25BdEJs
b2NrT2Zmc2V0KToKKyAgICAgICAgSWYgdGhlIG9mZnNldCBpcyBpbnNpZGUgYW4gYXV0byBsb2dp
Y2FsIGhlaWdodCByZWdpb24gZm9yIHdoaWNoIHdlIGRpZCBub3QgY29tcHV0ZSB0aGUgb3ZlcnJp
ZGVMb2dpY2FsQ29udGVudEhlaWdodCwgdGhlbiB3ZSBjb25zaWRlciB0aGlzIHJlZ2lvbiB0YWxs
IGVub3VnaCB0byBhY2NvbW1vZGF0ZSBhbGwKKyAgICAgICAgdGhlIGNvbnRlbnQgYW5kIHdlIHJl
dHVybiB0aGlzIHJlZ2lvbi4gT3RoZXJ3aXNlLCBmb3IgYW4gYXV0byBsb2dpY2FsIGhlaWdodCBy
ZWdpb24sIHdlIHVzZSBlaXRoZXIgdGhlIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQgKGlm
IHdlIGFyZSBpbiB0aGUgZmlyc3QgbGF5b3V0IHBoYXNlKSBvcgorICAgICAgICB0aGUgbG9naWNh
bEhlaWdodCBpZiB3ZSBhcmUgaW4gdGhlIHNlY29uZCBsYXlvdXQgcGhhc2UgKGJlY2F1c2UgdGhl
IG92ZXJyaWRlckxvZ2ljYWxDb250ZW50SGVpZ2h0IHdhcyBhbHJlYWR5IHRyYW5zZmVycmVkIGlu
dG8gcmVnaW9uIGxvZ2ljYWwgaGVpZ2h0KS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6OnBhZ2VMb2dpY2FsSGVpZ2h0Rm9yT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckZsb3dUaHJlYWQ6OnBhZ2VSZW1haW5pbmdMb2dpY2FsSGVpZ2h0Rm9yT2Zmc2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9y
UmVnaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpyZXNldFJlZ2lv
bnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9uc0ZvckxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjp1cGRh
dGVSZWdpb25zRmxvd1RocmVhZFBvcnRpb25SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZsb3dUaHJlYWQ6OmFkZEZvcmNlZFJlZ2lvbkJyZWFrKToKKyAgICAgICAgU2ltdWxhdGUgYSBy
ZWdpb24gYnJlYWsgYXQgdGhlIHNwZWNpZmllZCBvZmZzZXQuIEl0IHdpbGwgYmUgZXh0ZW5kZWQg
dG8gcHJvcGVybHkgcHJvY2VzcyB0aGUgcmVnaW9uIGJyZWFrcy4gQXQgdGhpcyBtb21lbnQsIG9u
bHkgb25lIGF1dG8gaGVpZ2h0IHJlZ2lvbiBmb3IgYSB0aHJlYWQKKyAgICAgICAgY2FuIGhhdmUg
aXRzIGhlaWdodCBwcm9wZXJseSBjb21wdXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0
YW5nbGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdp
b246OnVwZGF0ZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICBJZiB0aGUgYXV0byBsb2dpY2FsIGhl
aWdodCByZWdpb24gaGFzIGFuIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQgYW5kIHdlIGFy
ZSBpbiB0aGUgc2Vjb25kIHBhc3Mgb2YgbGF5b3V0LAorICAgICAgICB3ZSB1c2UgdGhlIG92ZXJy
aWRlTG9naWNhbENvbnRlbnRIZWlnaHQgdG8gdXBkYXRlIHRoZSByZWdpb24gbG9naWNhbCBoZWln
aHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246Om5lZWRzT3ZlcnJpZGVMb2dpY2Fs
Q29udGVudEhlaWdodENvbXB1dGF0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmg6CisgICAgICAgIChSZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OlJlbmRlclZpZXcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bGF5b3V0Q29udGVudCk6CisgICAgICAgIEFk
ZGVkIGEgbmV3IGZ1bmN0aW9uIHRvIGNvbnRhaW4gdGhlIFJlbmRlclZpZXcgYmxvY2sgbGF5b3V0
IGFuZCBmbG93IHRocmVhZHMgbGF5b3V0LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjpjaGVja0xheW91dFN0YXRlKToKKyAgICAgICAgSGVscGVyIGZ1
bmN0aW9uIGtlZXBpbmcgdGhlIG9yaWdpbmFsIGFzc2VydHMgZnJvbSBSZW5kZXJWaWV3LCB1c2Vk
IGluIG1vcmUgdGhhbiBvbmUgcGxhY2UuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojps
YXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJWaWV3Ojpub3JtYWxMYXlvdXRQaGFzZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJWaWV3Ojpjb25zdHJhaW5lZEZsb3dUaHJlYWRzTGF5b3V0UGhhc2UpOgorICAgICAgICAo
UmVuZGVyVmlldyk6CisKIDIwMTItMTAtMDggIEJ5dW5nd29vIExlZSAgPGJ3ODAubGVlQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFVzZSBlY29yZV9tYWluX2xvb3BfdGhyZWFkX3NhZmVf
Y2FsbF9hc3luYygpIHRvIHdha2V1cCBtYWluIGxvb3AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAppbmRleCBlN2NlYzQwYS4uMzc1OWE0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xs
ZXIuY3BwCkBAIC0xNzYsNCArMTc2LDE4IEBAIGJvb2wgRmxvd1RocmVhZENvbnRyb2xsZXI6Omlz
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRmxhZ0NvbnNpc3RlbnQoKSBjb25zdAogfQogI2VuZGlm
CiAKK3ZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNh
bENvbnRlbnRIZWlnaHQoKQoreworICAgIEFTU0VSVChtX3ZpZXctPm5vcm1hbExheW91dFBoYXNl
KCkpOworICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRlciA9
IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5h
bWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpCisgICAgICAgICgqaXRlciktPnJlc2V0
UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKK30KKwordm9pZCBGbG93VGhy
ZWFkQ29udHJvbGxlcjo6bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpCit7
CisgICAgQVNTRVJUKG1fdmlldy0+Y29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dFBoYXNlKCkp
OworICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1f
cmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVk
Rmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpCisgICAgICAgICgqaXRlciktPm1hcmtBdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIu
aAppbmRleCA4NDQ4NmY0Li44Njc4MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaApAQCAtNzUsNiArNzUsOSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkgY29uc3Q7CiAj
ZW5kaWYKIAorICAgIHZvaWQgcmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdo
dCgpOworICAgIHZvaWQgbWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpOwor
CiBwcm90ZWN0ZWQ6CiAgICAgRmxvd1RocmVhZENvbnRyb2xsZXIoUmVuZGVyVmlldyopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDA5ZjU1NTkuLjhhMWRiNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC02OTgsMTQgKzY5OCwy
NCBAQCB2b2lkIFJlbmRlckJveDo6c2V0T3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRoKExheW91
dFVuaXQgd2lkdGgpCiAgICAgZ092ZXJyaWRlV2lkdGhNYXAtPnNldCh0aGlzLCB3aWR0aCk7CiB9
CiAKLXZvaWQgUmVuZGVyQm94OjpjbGVhck92ZXJyaWRlU2l6ZSgpCit2b2lkIFJlbmRlckJveDo6
Y2xlYXJPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCkKIHsKICAgICBpZiAoZ092ZXJyaWRl
SGVpZ2h0TWFwKQogICAgICAgICBnT3ZlcnJpZGVIZWlnaHRNYXAtPnJlbW92ZSh0aGlzKTsKK30K
Kwordm9pZCBSZW5kZXJCb3g6OmNsZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRoKCkKK3sK
ICAgICBpZiAoZ092ZXJyaWRlV2lkdGhNYXApCiAgICAgICAgIGdPdmVycmlkZVdpZHRoTWFwLT5y
ZW1vdmUodGhpcyk7CiB9CiAKK3ZvaWQgUmVuZGVyQm94OjpjbGVhck92ZXJyaWRlU2l6ZSgpCit7
CisgICAgY2xlYXJPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CisgICAgY2xlYXJPdmVy
cmlkZUxvZ2ljYWxDb250ZW50V2lkdGgoKTsKK30KKwogTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om92
ZXJyaWRlTG9naWNhbENvbnRlbnRXaWR0aCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGhhc092ZXJy
aWRlV2lkdGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggZjY1Y2Q3
MS4uMjUyNTcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtMzAwLDYg
KzMwMCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWln
aHQoTGF5b3V0VW5pdCk7CiAgICAgdm9pZCBzZXRPdmVycmlkZUxvZ2ljYWxDb250ZW50V2lkdGgo
TGF5b3V0VW5pdCk7CiAgICAgdm9pZCBjbGVhck92ZXJyaWRlU2l6ZSgpOworICAgIHZvaWQgY2xl
YXJPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CisgICAgdm9pZCBjbGVhck92ZXJyaWRl
TG9naWNhbENvbnRlbnRXaWR0aCgpOwogCiAgICAgdmlydHVhbCBMYXlvdXRTaXplIG9mZnNldEZy
b21Db250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgTGF5b3V0UG9pbnQmLCBib29sKiBvZmZz
ZXREZXBlbmRzT25Qb2ludCA9IDApIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IDUxMjI4ZGIuLmFiYzViMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTE2Nywy
MCArMTY3LDcgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCiAgICAgICAgICAgICB1cGRhdGVMb2dpY2FsV2lkdGgoKTsgLy8gQ2Fs
bGVkIHRvIGdldCB0aGUgbWF4aW11bSBsb2dpY2FsIHdpZHRoIGZvciB0aGUgcmVnaW9uLgotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwOwotICAg
ICAgICAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZWdpb25M
aXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKLSAgICAg
ICAgICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwotICAgICAgICAgICAgICAg
IGlmICghcmVnaW9uLT5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBMYXlvdXRVbml0IHJlZ2lvbkxv
Z2ljYWxXaWR0aCA9IHJlZ2lvbi0+cGFnZUxvZ2ljYWxXaWR0aCgpOwotICAgICAgICAgICAgICAg
IExheW91dFVuaXQgcmVnaW9uTG9naWNhbEhlaWdodCA9IHJlZ2lvbi0+bG9naWNhbEhlaWdodE9m
QWxsRmxvd1RocmVhZENvbnRlbnQoKTsKLSAgICAKLSAgICAgICAgICAgICAgICBMYXlvdXRSZWN0
IHJlZ2lvblJlY3Qoc3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSID8gWkVST19MQVlPVVRfVU5J
VCA6IGxvZ2ljYWxXaWR0aCgpIC0gcmVnaW9uTG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0LCBy
ZWdpb25Mb2dpY2FsV2lkdGgsIHJlZ2lvbkxvZ2ljYWxIZWlnaHQpOwotICAgICAgICAgICAgICAg
IHJlZ2lvbi0+c2V0Rmxvd1RocmVhZFBvcnRpb25SZWN0KGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyByZWdpb25SZWN0IDogcmVnaW9uUmVjdC50cmFuc3Bvc2VkUmVjdCgpKTsKLSAgICAgICAg
ICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IHJlZ2lvbkxvZ2ljYWxIZWlnaHQ7Ci0gICAgICAgICAg
ICB9CisgICAgICAgICAgICB1cGRhdGVSZWdpb25zRmxvd1RocmVhZFBvcnRpb25SZWN0KCk7CiAg
ICAgICAgIH0KICAgICB9CiAKQEAgLTIzMiw2ICsyMTksMTMgQEAgdm9pZCBSZW5kZXJGbG93VGhy
ZWFkOjpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0LCBMYXlvdXRVbml0IGxvZ2ljYWxU
b3AsIEwKICAgICAgICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICBBU1NFUlQoIXJlZ2lvbi0+bmVlZHNMYXlvdXQoKSk7CisKKyAgICAgICAg
aWYgKHJlZ2lvbi0+bmVlZHNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0YXRpb24o
KSkgeworICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhbiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJl
Z2lvbiBmb3Igd2hpY2ggd2UgZGlkIG5vdCBjb21wdXRlIGEgaGVpZ2h0IHlldCwKKyAgICAgICAg
ICAgIC8vIHRoZW4gd2UgY2Fubm90IGNvbXB1dGUgYW5kIHVwZGF0ZSB0aGUgaGVpZ2h0IG9mIHRo
aXMgZmxvdy4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGNvbXB1
dGVkVmFsdWVzLm1fZXh0ZW50ICs9IHJlZ2lvbi0+bG9naWNhbEhlaWdodE9mQWxsRmxvd1RocmVh
ZENvbnRlbnQoKTsKICAgICB9CiB9CkBAIC0zMzgsNiArMzMyLDggQEAgUmVuZGVyUmVnaW9uKiBS
ZW5kZXJGbG93VGhyZWFkOjpyZWdpb25BdEJsb2NrT2Zmc2V0KExheW91dFVuaXQgb2Zmc2V0LCBi
b29sIGV4dGUKICAgICAvLyBJZiBubyByZWdpb24gbWF0Y2hlcyB0aGUgcG9zaXRpb24gYW5kIGV4
dGVuZExhc3RSZWdpb24gaXMgdHJ1ZSwgaXQgd2lsbCByZXR1cm4KICAgICAvLyB0aGUgbGFzdCB2
YWxpZCByZWdpb24uIEl0IGlzIHNpbWlsYXIgdG8gYXV0byBleHRlbmRpbmcgdGhlIHNpemUgb2Yg
dGhlIGxhc3QgcmVnaW9uLiAKICAgICBSZW5kZXJSZWdpb24qIGxhc3RWYWxpZFJlZ2lvbiA9IDA7
CisKKyAgICBMYXlvdXRVbml0IGFjY3VtdWxhdGVkTG9naWNhbEhlaWdodCA9IFpFUk9fTEFZT1VU
X1VOSVQ7CiAgICAgCiAgICAgLy8gRklYTUU6IFRoZSByZWdpb25zIGFyZSBhbHdheXMgaW4gb3Jk
ZXIsIG9wdGltaXplIHRoaXMgc2VhcmNoLgogICAgIGJvb2wgdXNlSG9yaXpvbnRhbFdyaXRpbmdN
b2RlID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKQEAgLTM0OSwxMiArMzQ1LDI1IEBAIFJl
bmRlclJlZ2lvbiogUmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uQXRCbG9ja09mZnNldChMYXlvdXRV
bml0IG9mZnNldCwgYm9vbCBleHRlCiAgICAgICAgIGlmIChvZmZzZXQgPD0gMCkKICAgICAgICAg
ICAgIHJldHVybiByZWdpb247CiAKLSAgICAgICAgTGF5b3V0UmVjdCByZWdpb25SZWN0ID0gcmVn
aW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKTsKLSAgICAgICAgaWYgKCh1c2VIb3Jpem9udGFs
V3JpdGluZ01vZGUgJiYgb2Zmc2V0IDwgcmVnaW9uUmVjdC5tYXhZKCkpIHx8ICghdXNlSG9yaXpv
bnRhbFdyaXRpbmdNb2RlICYmIG9mZnNldCA8IHJlZ2lvblJlY3QubWF4WCgpKSkKLSAgICAgICAg
ICAgIHJldHVybiByZWdpb247Ci0KICAgICAgICAgaWYgKGV4dGVuZExhc3RSZWdpb24gfHwgcmVn
aW9uLT5pc1JlbmRlclJlZ2lvblNldCgpKQogICAgICAgICAgICAgbGFzdFZhbGlkUmVnaW9uID0g
cmVnaW9uOworCisgICAgICAgIC8vIElmIHdlIGRpZCBub3QgY29tcHV0ZSB0aGUgcmVnaW9uJ3Mg
aGVpZ2h0LCB3ZSBzaG91bGQgY29uc2lkZXIgdGhpcyByZWdpb24KKyAgICAgICAgLy8gdGFsbCBl
bm91Z2ggdG8gYWNjb21vZGF0ZSBhbGwgY29udGVudC4KKyAgICAgICAgaWYgKHJlZ2lvbi0+bmVl
ZHNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0YXRpb24oKSkKKyAgICAgICAgICAg
IHJldHVybiByZWdpb247CisKKyAgICAgICAgaWYgKHJlZ2lvbi0+aGFzT3ZlcnJpZGVIZWlnaHQo
KSAmJiB2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpIHsKKyAgICAgICAgICAgIGFjY3VtdWxh
dGVkTG9naWNhbEhlaWdodCArPSByZWdpb24tPm92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQo
KTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPCBhY2N1bXVsYXRlZExvZ2ljYWxIZWlnaHQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbjsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB9CisKKyAgICAgICAgTGF5b3V0UmVjdCByZWdpb25SZWN0ID0gcmVnaW9uLT5mbG93VGhy
ZWFkUG9ydGlvblJlY3QoKTsKKyAgICAgICAgYWNjdW11bGF0ZWRMb2dpY2FsSGVpZ2h0ICs9IHVz
ZUhvcml6b250YWxXcml0aW5nTW9kZSA/IHJlZ2lvblJlY3QuaGVpZ2h0KCkgOiByZWdpb25SZWN0
LndpZHRoKCk7CisgICAgICAgIGlmIChvZmZzZXQgPCBhY2N1bXVsYXRlZExvZ2ljYWxIZWlnaHQp
CisgICAgICAgICAgICByZXR1cm4gcmVnaW9uOwogICAgIH0KIAogICAgIHJldHVybiBsYXN0VmFs
aWRSZWdpb247CkBAIC0zNzUsNyArMzg0LDExIEBAIExheW91dFVuaXQgUmVuZGVyRmxvd1RocmVh
ZDo6cGFnZUxvZ2ljYWxXaWR0aEZvck9mZnNldChMYXlvdXRVbml0IG9mZnNldCkgY29uc3QKIExh
eW91dFVuaXQgUmVuZGVyRmxvd1RocmVhZDo6cGFnZUxvZ2ljYWxIZWlnaHRGb3JPZmZzZXQoTGF5
b3V0VW5pdCBvZmZzZXQpIGNvbnN0CiB7CiAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSByZWdp
b25BdEJsb2NrT2Zmc2V0KG9mZnNldCk7Ci0gICAgcmV0dXJuIHJlZ2lvbiA/IHJlZ2lvbi0+cGFn
ZUxvZ2ljYWxIZWlnaHQoKSA6IFpFUk9fTEFZT1VUX1VOSVQ7CisgICAgaWYgKCFyZWdpb24pCisg
ICAgICAgIHJldHVybiBaRVJPX0xBWU9VVF9VTklUOworICAgIGlmIChyZWdpb24tPm5lZWRzT3Zl
cnJpZGVMb2dpY2FsQ29udGVudEhlaWdodENvbXB1dGF0aW9uKCkpCisgICAgICAgIHJldHVybiBN
QVhfTEFZT1VUX1VOSVQgLyAyOworICAgIHJldHVybiByZWdpb24tPnBhZ2VMb2dpY2FsSGVpZ2h0
KCk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyRmxvd1RocmVhZDo6cGFnZVJlbWFpbmluZ0xvZ2lj
YWxIZWlnaHRGb3JPZmZzZXQoTGF5b3V0VW5pdCBvZmZzZXQsIFBhZ2VCb3VuZGFyeVJ1bGUgcGFn
ZUJvdW5kYXJ5UnVsZSkgY29uc3QKQEAgLTM4Myw3ICszOTYsOSBAQCBMYXlvdXRVbml0IFJlbmRl
ckZsb3dUaHJlYWQ6OnBhZ2VSZW1haW5pbmdMb2dpY2FsSGVpZ2h0Rm9yT2Zmc2V0KExheW91dFVu
aXQgb2ZmcwogICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gcmVnaW9uQXRCbG9ja09mZnNldChv
ZmZzZXQpOwogICAgIGlmICghcmVnaW9uKQogICAgICAgICByZXR1cm4gWkVST19MQVlPVVRfVU5J
VDsKLSAgICAKKyAgICBpZiAocmVnaW9uLT5uZWVkc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWln
aHRDb21wdXRhdGlvbigpKQorICAgICAgICByZXR1cm4gTUFYX0xBWU9VVF9VTklUIC8gMjsKKwog
ICAgIExheW91dFVuaXQgcGFnZUxvZ2ljYWxUb3AgPSByZWdpb24tPnBhZ2VMb2dpY2FsVG9wRm9y
T2Zmc2V0KG9mZnNldCk7CiAgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IHJlZ2lv
bi0+cGFnZUxvZ2ljYWxIZWlnaHQoKTsKICAgICBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsQm90dG9t
ID0gcGFnZUxvZ2ljYWxUb3AgKyBwYWdlTG9naWNhbEhlaWdodDsKQEAgLTYxOCw2ICs2MzMsMTEg
QEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpnZXRSZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5k
ZXJCb3gqIGJveCwgUmVuZGVyUmVnaW9uKiYKIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6Y29tcHV0
ZU92ZXJmbG93U3RhdGVGb3JSZWdpb25zKExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlKQog
ewogICAgIExheW91dFVuaXQgaGVpZ2h0ID0gb2xkQ2xpZW50QWZ0ZXJFZGdlOworCisgICAgLy8g
U2ltdWxhdGUgYSByZWdpb24gYnJlYWsgYXQgaGVpZ2h0LiBJZiBpdCBwb2ludHMgaW5zaWRlIGFu
IGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9uLAorICAgIC8vIHRoZW4gaXQgZGV0ZXJtaW5lcyB0
aGUgcmVnaW9uIG92ZXJyaWRlIGxvZ2ljYWwgY29udGVudCBoZWlnaHQuCisgICAgYWRkRm9yY2Vk
UmVnaW9uQnJlYWsoaGVpZ2h0KTsKKwogICAgIC8vIEZJWE1FOiB0aGUgdmlzdWFsIG92ZXJmbG93
IG9mIG1pZGRsZSByZWdpb24gKGlmIGl0IGlzIHRoZSBsYXN0IG9uZSB0byBjb250YWluIGFueSBj
b250ZW50IGluIGEgcmVuZGVyIGZsb3cgdGhyZWFkKQogICAgIC8vIG1pZ2h0IG5vdCBiZSB0YWtl
biBpbnRvIGFjY291bnQgYmVjYXVzZSB0aGUgcmVuZGVyIGZsb3cgdGhyZWFkIGhlaWdodCBpcyBn
cmVhdGVyIHRoYXQgdGhhdCByZWdpb25zIGhlaWdodCArIGl0cyB2aXN1YWwgb3ZlcmZsb3cKICAg
ICAvLyBiZWNhdXNlIG9mIGhvdyBjb21wdXRlTG9naWNhbEhlaWdodCBpcyBpbXBsZW1lbnRlZCBm
b3IgUmVuZGVyRmxvd1RocmVhZCAoYXMgYSBzdW0gb2YgYWxsIHJlZ2lvbnMgaGVpZ2h0KS4KQEAg
LTc1Nyw2ICs3NzcsMTE5IEBAIHVuc2lnbmVkIFJlbmRlckZsb3dUaHJlYWQ6OmF1dG9Mb2dpY2Fs
SGVpZ2h0UmVnaW9uc0NvdW50KCkgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIFJlbmRlckZsb3dU
aHJlYWQ6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKQoreworICAg
IEFTU0VSVCh2aWV3KCktPmxheW91dFN0YXRlKCkpOworICAgIEFTU0VSVCh2aWV3KCktPm5vcm1h
bExheW91dFBoYXNlKCkpOworCisgICAgLy8gV2UgbmVlZCB0byByZXNldCB0aGUgb3ZlcnJpZGUg
bG9naWNhbCBjb250ZW50IGhlaWdodCBmb3IgcmVnaW9ucyB3aXRoIGF1dG8gbG9naWNhbCBoZWln
aHQKKyAgICAvLyBvbmx5IGlmIHRoZSBmbG93IHRocmVhZCBjb250ZW50IG5lZWRzIGxheW91dC4K
KyAgICBpZiAoIXNlbGZOZWVkc0xheW91dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBG
SVhNRTogb3B0aW1pemUgdGhpcyB0byBpdGVyYXRlIHRoZSByZWdpb24gY2hhaW4gb25seSBpZiB0
aGUgZmxvdyB0aHJlYWQgaGFzIGF1dG8gbG9naWNhbCBoZWlnaHQKKyAgICAvLyByZWdpb24uCisK
KyAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3Qu
YmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgeworICAgICAgICBS
ZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOworICAgICAgICBpZiAoIXJlZ2lvbi0+aXNWYWxp
ZCgpIHx8ICFyZWdpb24tPmhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICByZWdpb24tPmNsZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdo
dCgpOworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBmaW5kIGEgd2F5IHRvIGF2b2lkIG1h
cmtpbmcgYWxsIHRoZSByZWdpb25zIGFuY2VzdG9ycyBmb3IgbGF5b3V0CisgICAgICAgIC8vIGFz
IHdlIGFyZSBhbHJlYWR5IGluc2lkZSBsYXlvdXQuCisgICAgICAgIHJlZ2lvbi0+c2V0TmVlZHNM
YXlvdXQodHJ1ZSk7CisgICAgfQorfQorCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6Om1hcmtBdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKQoreworICAgIEFTU0VSVCh2aWV3KCktPmxh
eW91dFN0YXRlKCkpOworICAgIEFTU0VSVCh2aWV3KCktPmNvbnN0cmFpbmVkRmxvd1RocmVhZHNM
YXlvdXRQaGFzZSgpKTsKKworICAgIC8vIEZJWE1FOiBvcHRpbWl6ZSB0aGlzIHRvIGl0ZXJhdGUg
dGhlIHJlZ2lvbiBjaGFpbiBvbmx5IGlmIHRoZSBmbG93IHRocmVhZCBoYXMgYXV0byBsb2dpY2Fs
IGhlaWdodAorICAgIC8vIHJlZ2lvbi4KKworICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6aXRl
cmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlzdC5l
bmQoKTsgKytpdGVyKSB7CisgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gKml0ZXI7Cisg
ICAgICAgIGlmICghcmVnaW9uLT5pc1ZhbGlkKCkgfHwgIXJlZ2lvbi0+aGFzQXV0b0xvZ2ljYWxI
ZWlnaHQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIEZJWE1FOiBXZSBu
ZWVkIHRvIGZpbmQgYSB3YXkgdG8gYXZvaWQgbWFya2luZyBhbGwgdGhlIHJlZ2lvbnMgYW5jZXN0
b3JzIGZvciBsYXlvdXQKKyAgICAgICAgLy8gYXMgd2UgYXJlIGFscmVhZHkgaW5zaWRlIGxheW91
dC4KKyAgICAgICAgcmVnaW9uLT5zZXROZWVkc0xheW91dCh0cnVlKTsKKyAgICB9CisKKyAgICBt
X3JlZ2lvbnNJbnZhbGlkYXRlZCA9IHRydWU7CisgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7Cit9
CisKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9u
UmVjdCgpCit7CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMDsKKyAgICBmb3IgKFJl
bmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRl
ciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgeworICAgICAgICBSZW5kZXJSZWdpb24q
IHJlZ2lvbiA9ICppdGVyOworICAgICAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpKQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgTGF5b3V0VW5pdCByZWdpb25Mb2dpY2FsV2lkdGgg
PSByZWdpb24tPnBhZ2VMb2dpY2FsV2lkdGgoKTsKKyAgICAgICAgTGF5b3V0VW5pdCByZWdpb25M
b2dpY2FsSGVpZ2h0ID0gcmVnaW9uLT5sb2dpY2FsSGVpZ2h0T2ZBbGxGbG93VGhyZWFkQ29udGVu
dCgpOworCisgICAgICAgIExheW91dFJlY3QgcmVnaW9uUmVjdChzdHlsZSgpLT5kaXJlY3Rpb24o
KSA9PSBMVFIgPyBaRVJPX0xBWU9VVF9VTklUIDogbG9naWNhbFdpZHRoKCkgLSByZWdpb25Mb2dp
Y2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQsIHJlZ2lvbkxvZ2ljYWxXaWR0aCwgcmVnaW9uTG9naWNh
bEhlaWdodCk7CisKKyAgICAgICAgLy8gRklYTUU6IHdoZW4gYSBmbG93IHRocmVhZCBoYXMgbW9y
ZSB0aGFuIG9uZSBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiwKKyAgICAgICAgLy8gd2UgaGF2
ZSB0byB0YWtlIGludG8gYWNjb3VudCB0aGUgb3ZlcnJpZGUgbG9naWNhbCBjb250ZW50IGhlaWdo
dCB2YWx1ZSwKKyAgICAgICAgLy8gaWYgY29tcHV0ZWQgZm9yIGFuIGF1dG8gbG9naWNhbCBoZWln
aHQgcmVnaW9uLCBhbmQgdXNlIGl0IHRvIHNldCB0aGUgaGVpZ2h0CisgICAgICAgIC8vIGZvciB0
aGUgcmVnaW9uIHJlY3QuIFRoaXMgd2F5LCB0aGUgcmVnaW9ucyBpbiB0aGUgY2hhaW4gZm9sbG93
aW5nIHRoZSBhdXRvCisgICAgICAgIC8vIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiwgd2lsbCBiZSBh
YmxlIHRvIGZyYWdtZW50IHRoZSByaWdodCBwYXJ0IG9mIHRoZWlyCisgICAgICAgIC8vIGFzc29j
aWF0ZWQgZmxvdyB0aHJlYWQgY29udGVudCAoYW5kIGNvbXB1dGUgdGhlaXIgb3ZlcnJpZGVDb21w
dXRlZExvZ2ljYWxIZWlnaHQgcHJvcGVybHkpLgorCisgICAgICAgIHJlZ2lvbi0+c2V0Rmxvd1Ro
cmVhZFBvcnRpb25SZWN0KGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyByZWdpb25SZWN0IDog
cmVnaW9uUmVjdC50cmFuc3Bvc2VkUmVjdCgpKTsKKyAgICAgICAgbG9naWNhbEhlaWdodCArPSBy
ZWdpb25Mb2dpY2FsSGVpZ2h0OworICAgIH0KK30KKworLy8gRklYTUU6IEV4dGVuZCBpdCB0byBh
Y2NvdW50IGZvciByZWdpb24gYnJlYWsKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6YWRkRm9yY2Vk
UmVnaW9uQnJlYWsoTGF5b3V0VW5pdCBvZmZzZXRCcmVha0luRmxvd1RocmVhZCkKK3sKKyAgICAv
LyBXZSB0YWtlIGJyZWFrcyBpbnRvIGFjY291bnQgZm9yIGhlaWdodCBjb21wdXRhdGlvbiBmb3Ig
YXV0byBsb2dpY2FsIGhlaWdodCByZWdpb25zCisgICAgLy8gb25seSBpbiB0aGUgbGF5b3V0IHBo
YXNlIGluIHdoaWNoIHdlIGxheSBvdXQgdGhlIGZsb3dzIHRocmVhZHMgdW5jb25zdHJhaW5lZAor
ICAgIC8vIGFuZCB3ZSB1c2UgdGhlIGNvbnRlbnQgYnJlYWtzIHRvIGRldGVybWluZSB0aGUgb3Zl
cnJpZGVDb250ZW50TG9naWNhbEhlaWdodCBmb3IKKyAgICAvLyBhdXRvIGxvZ2ljYWwgaGVpZ2h0
IHJlZ2lvbnMuCisgICAgaWYgKHZpZXcoKS0+Y29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dFBo
YXNlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFNpbXVsYXRlIGEgcmVnaW9uIGJyZWFr
IGF0IGhlaWdodC4gSWYgaXQgcG9pbnRzIGluc2lkZSBhbiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJl
Z2lvbiwKKyAgICAvLyB0aGVuIGl0IGRldGVybWluZXMgdGhlIHJlZ2lvbiBvdmVycmlkZSBsb2dp
Y2FsIGNvbnRlbnQgaGVpZ2h0LgorICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gcmVnaW9uQXRC
bG9ja09mZnNldChvZmZzZXRCcmVha0luRmxvd1RocmVhZCk7CisgICAgaWYgKCFyZWdpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghcmVnaW9uLT5uZWVkc092ZXJyaWRlTG9naWNhbENv
bnRlbnRIZWlnaHRDb21wdXRhdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIHVz
ZUhvcml6b250YWxXcml0aW5nTW9kZSA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CisgICAg
TGF5b3V0VW5pdCBjdXJyZW50UmVnaW9uT2Zmc2V0SW5GbG93VGhyZWFkID0gdXNlSG9yaXpvbnRh
bFdyaXRpbmdNb2RlID8gcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS55KCkgOiByZWdp
b24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLngoKTsKKyAgICBMYXlvdXRVbml0IG9mZnNldEJy
ZWFrSW5DdXJyZW50UmVnaW9uID0gb2Zmc2V0QnJlYWtJbkZsb3dUaHJlYWQgLSBjdXJyZW50UmVn
aW9uT2Zmc2V0SW5GbG93VGhyZWFkOworICAgIExheW91dFVuaXQgcmVnaW9uT3ZlcnJpZGVMb2dp
Y2FsQ29udGVudEhlaWdodCA9IHJlZ2lvbi0+Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFJl
c3BlY3RpbmdNaW5NYXhIZWlnaHQob2Zmc2V0QnJlYWtJbkN1cnJlbnRSZWdpb24pOworICAgIHJl
Z2lvbi0+c2V0T3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChyZWdpb25PdmVycmlkZUxvZ2lj
YWxDb250ZW50SGVpZ2h0KTsKKworICAgIC8vIEZJWE1FOiBFeHRlbmQgaXQgdG8gdGFrZSBpbnRv
IGFjY291bnQgdGhhdCB3ZSBtYXkgaGF2ZSBtb3JlIHRoYW4gb25lIGF1dG8taGVpZ2h0IHJlZ2lv
biBpbiBmbG93LgorICAgIC8vIEZvciBub3csIGNsZWFyIHRoZSBvdmVycmlkZSBsb2dpY2FsIGNv
bnRlbnQgaGVpZ2h0IGZvciByZW1haW5pbmcgYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb25zIGlu
IHRoZSBmbG93LgorICAgIC8vIEEgZm9sbG93LXVwIHBhdGNoIHdpbGwgcHJvcGVybHkgZGlzdHJp
YnV0ZSB0aGUgcmVtYWluaW5nIGhlaWdodCBpbnRvIHRoZSBmb2xsb3dpbmcgcmVnaW9ucy4KKyAg
ICBSZW5kZXJSZWdpb25MaXN0OjppdGVyYXRvciByZWdpb25JdGVyID0gbV9yZWdpb25MaXN0LmZp
bmQocmVnaW9uKTsKKyAgICBBU1NFUlQocmVnaW9uSXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCkp
OworCisgICAgZm9yICg7IHJlZ2lvbkl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK3JlZ2lv
bkl0ZXIpIHsKKyAgICAgICAgUmVuZGVyUmVnaW9uKiBjdXJyUmVnaW9uID0gKnJlZ2lvbkl0ZXI7
CisgICAgICAgIGlmICghY3VyclJlZ2lvbi0+aXNWYWxpZCgpIHx8IChjdXJyUmVnaW9uID09IHJl
Z2lvbikgfHwgIWN1cnJSZWdpb24tPmhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgY3VyclJlZ2lvbi0+Y2xlYXJPdmVycmlkZUxvZ2ljYWxDb250
ZW50SGVpZ2h0KCk7CisgICAgfQorCisgICAgdXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9u
UmVjdCgpOworfQorCiBDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXI6OkN1cnJlbnRS
ZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lcihSZW5kZXJGbG93VGhyZWFkKiByZW5kZXJGbG93VGhy
ZWFkKQogICAgIDogbV9yZW5kZXJGbG93VGhyZWFkKHJlbmRlckZsb3dUaHJlYWQpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRleCBiOTQyZWVlLi40
ZDYwNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgK
QEAgLTExOSw4ICsxMTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRSZWdpb25SYW5nZUZvckJv
eChjb25zdCBSZW5kZXJCb3gqLCBSZW5kZXJSZWdpb24qJiBzdGFydFJlZ2lvbiwgUmVuZGVyUmVn
aW9uKiYgZW5kUmVnaW9uKSBjb25zdDsKIAogICAgIHZvaWQgY2xlYXJSZW5kZXJPYmplY3RDdXN0
b21TdHlsZShjb25zdCBSZW5kZXJPYmplY3QqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBSZW5kZXJSZWdpb24qIG9sZFN0YXJ0UmVnaW9uID0gMCwgY29uc3Qg
UmVuZGVyUmVnaW9uKiBvbGRFbmRSZWdpb24gPSAwLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBSZW5kZXJSZWdpb24qIG5ld1N0YXJ0UmVnaW9uID0gMCwgY29u
c3QgUmVuZGVyUmVnaW9uKiBuZXdFbmRSZWdpb24gPSAwKTsKKyAgICAgICAgY29uc3QgUmVuZGVy
UmVnaW9uKiBvbGRTdGFydFJlZ2lvbiA9IDAsIGNvbnN0IFJlbmRlclJlZ2lvbiogb2xkRW5kUmVn
aW9uID0gMCwKKyAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBuZXdTdGFydFJlZ2lvbiA9IDAs
IGNvbnN0IFJlbmRlclJlZ2lvbiogbmV3RW5kUmVnaW9uID0gMCk7CiAgICAgCiAgICAgdm9pZCBj
b21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVk
Z2UpOwogCkBAIC0xMjksNiArMTI5LDExIEBAIHB1YmxpYzoKICAgICAvLyBDaGVjayBpZiB0aGUg
b2JqZWN0IGlzIGluIHJlZ2lvbiBhbmQgdGhlIHJlZ2lvbiBpcyBwYXJ0IG9mIHRoaXMgZmxvdyB0
aHJlYWQuCiAgICAgYm9vbCBvYmplY3RJbkZsb3dSZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgUmVuZGVyUmVnaW9uKikgY29uc3Q7CiAKKyAgICB2b2lkIHJlc2V0UmVnaW9uc092ZXJy
aWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKKyAgICB2b2lkIG1hcmtBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnNGb3JMYXlvdXQoKTsKKworICAgIHZvaWQgYWRkRm9yY2VkUmVnaW9uQnJlYWsoTGF5
b3V0VW5pdCk7CisKICAgICBib29sIHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkOyB9CiAKICNpZm5kZWYgTkRFQlVHCkBA
IC0xMzgsNiArMTQzLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciogcmVuZGVyTmFtZSgpIGNvbnN0ID0gMDsKIAorICAgIHZvaWQgdXBkYXRlUmVnaW9uc0Zs
b3dUaHJlYWRQb3J0aW9uUmVjdCgpOwogICAgIGJvb2wgc2hvdWxkUmVwYWludChjb25zdCBMYXlv
dXRSZWN0JikgY29uc3Q7CiAgICAgYm9vbCByZWdpb25JblJhbmdlKGNvbnN0IFJlbmRlclJlZ2lv
biogdGFyZ2V0UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9uLCBjb25zdCBS
ZW5kZXJSZWdpb24qIGVuZFJlZ2lvbikgY29uc3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4IDFjNWRkYmUuLjdmNGQ3OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCkBAIC0yMzQsNyArMjM0LDggQEAgdm9p
ZCBSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudChjb25zdCBMYXlvdXRSZWN0
JiByZXBhaW50UmVjdCwgYm9vbAogICAgIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3Rhbmds
ZShyZXBhaW50UmVjdCwgaW1tZWRpYXRlLCBmbG93VGhyZWFkUG9ydGlvblJlY3QoKSwgZmxvd1Ro
cmVhZFBvcnRpb25PdmVyZmxvd1JlY3QoKSwgY29udGVudEJveFJlY3QoKS5sb2NhdGlvbigpKTsK
IH0KIAotdm9pZCBSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3Rhbmds
ZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUsIGNvbnN0IExh
eW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1Ro
cmVhZFBvcnRpb25PdmVyZmxvd1JlY3QsIGNvbnN0IExheW91dFBvaW50JiByZWdpb25Mb2NhdGlv
bikgY29uc3QKK3ZvaWQgUmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0
YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlLCBjb25z
dCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvblJlY3QsCisgICAgY29uc3QgTGF5b3V0UmVj
dCYgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1JlY3QsIGNvbnN0IExheW91dFBvaW50JiByZWdp
b25Mb2NhdGlvbikgY29uc3QKIHsKICAgICAvLyBXZSBvbmx5IGhhdmUgdG8gaXNzdWUgYSByZXBh
aW50IGluIHRoaXMgcmVnaW9uIGlmIHRoZSByZWdpb24gcmVjdCBpbnRlcnNlY3RzIHRoZSByZXBh
aW50IHJlY3QuCiAgICAgTGF5b3V0UmVjdCBmbGlwcGVkRmxvd1RocmVhZFBvcnRpb25SZWN0KGZs
b3dUaHJlYWRQb3J0aW9uUmVjdCk7CkBAIC00NzIsNyArNDczLDcgQEAgUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gUmVuZGVyUmVnaW9uOjpjb21wdXRlU3R5bGVJblJlZ2lvbihjb25zdCBSZW5kZXJP
YmplY3QqIG8KIAogICAgIHJldHVybiByZW5kZXJPYmplY3RSZWdpb25TdHlsZS5yZWxlYXNlKCk7
CiB9Ci0gCisKIHZvaWQgUmVuZGVyUmVnaW9uOjpjb21wdXRlQ2hpbGRyZW5TdHlsZUluUmVnaW9u
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewogICAgIGZvciAoUmVuZGVyT2JqZWN0KiBj
aGlsZCA9IG9iamVjdC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkgewpAQCAtNDk4LDcgKzQ5OSw3IEBAIHZvaWQgUmVuZGVyUmVnaW9uOjpjb21wdXRl
Q2hpbGRyZW5TdHlsZUluUmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogICAgICAg
ICBjb21wdXRlQ2hpbGRyZW5TdHlsZUluUmVnaW9uKGNoaWxkKTsKICAgICB9CiB9Ci0gCisKIHZv
aWQgUmVuZGVyUmVnaW9uOjpzZXRPYmplY3RTdHlsZUluUmVnaW9uKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUluUmVnaW9uLCBib29sIG9iamVjdFJl
Z2lvblN0eWxlQ2FjaGVkKQogewogICAgIEFTU0VSVChvYmplY3QtPmluUmVuZGVyRmxvd1RocmVh
ZCgpKTsKQEAgLTUyMiw3ICs1MjMsNyBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6c2V0T2JqZWN0U3R5
bGVJblJlZ2lvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgUGFzc1JlZlB0cjxSZW5kZQogICAgIHN0
eWxlSW5mby5jYWNoZWQgPSBvYmplY3RSZWdpb25TdHlsZUNhY2hlZDsKICAgICBtX3JlbmRlck9i
amVjdFJlZ2lvblN0eWxlLnNldChvYmplY3QsIHN0eWxlSW5mbyk7CiB9Ci0gCisKIHZvaWQgUmVu
ZGVyUmVnaW9uOjpjbGVhck9iamVjdFN0eWxlSW5SZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QpCiB7CiAgICAgQVNTRVJUKG9iamVjdCk7CkBAIC01NzksNCArNTgwLDQwIEBAIHZvaWQg
UmVuZGVyUmVnaW9uOjpnZXRSYW5nZXMoVmVjdG9yPFJlZlB0cjxSYW5nZT4gPiYgcmFuZ2VPYmpl
Y3RzKSBjb25zdAogICAgIG5hbWVkRmxvdy0+Z2V0UmFuZ2VzKHJhbmdlT2JqZWN0cywgdGhpcyk7
CiB9CiAKK3ZvaWQgUmVuZGVyUmVnaW9uOjp1cGRhdGVMb2dpY2FsSGVpZ2h0KCkKK3sKKyAgICBS
ZW5kZXJSZXBsYWNlZDo6dXBkYXRlTG9naWNhbEhlaWdodCgpOworCisgICAgaWYgKCFoYXNBdXRv
TG9naWNhbEhlaWdodCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSB3YW50IHRvIHVw
ZGF0ZSB0aGUgbG9naWNhbCBoZWlnaHQgYmFzZWQgb24gdGhlIGNvbXB1dGVkIG92ZXJyaWRlIGxv
Z2ljYWwKKyAgICAvLyBjb250ZW50IGhlaWdodCBvbmx5IGlmIHRoZSB2aWV3IGlzIGluIHRoZSBs
YXlvdXQgcGhhc2UKKyAgICAvLyBpbiB3aGljaCBhbGwgdGhlIGF1dG8gbG9naWNhbCBoZWlnaHQg
cmVnaW9ucyBoYXZlIHRoZWlyIG92ZXJyaWRlIGxvZ2ljYWwgaGVpZ2h0IHNldC4KKyAgICBpZiAo
dmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBU
aGVyZSBtYXkgYmUgcmVnaW9ucyB3aXRoIGF1dG8gbG9naWNhbCBoZWlnaHQgdGhhdCBkdXJpbmcg
dGhlIHByZXJlcXVpc2l0ZSBsYXlvdXQgcGhhc2UKKyAgICAvLyBkaWQgbm90IGhhdmUgdGhlIGNo
YW5jZSB0byBsYXlvdXQgZmxvdyB0aHJlYWQgY29udGVudC4gQmVjYXVzZSBvZiB0aGF0LCB0aGVz
ZSByZWdpb25zIGRvIG5vdAorICAgIC8vIGhhdmUgYW4gb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhl
aWdodCBjb21wdXRlZCBhbmQgdGhleSB3aWxsIG5vdCBiZSBhYmxlIHRvIGZyYWdtZW50IGFueSBm
bG93CisgICAgLy8gdGhyZWFkIGNvbnRlbnQuCisgICAgaWYgKCFoYXNPdmVycmlkZUhlaWdodCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBMYXlvdXRVbml0IG5ld0xvZ2ljYWxIZWlnaHQgPSBv
dmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCkgKyBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhl
aWdodCgpOworICAgIGlmIChuZXdMb2dpY2FsSGVpZ2h0ID4gbG9naWNhbEhlaWdodCgpKQorICAg
ICAgICBzZXRMb2dpY2FsSGVpZ2h0KG5ld0xvZ2ljYWxIZWlnaHQpOworfQorCitib29sIFJlbmRl
clJlZ2lvbjo6bmVlZHNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0YXRpb24oKSBj
b25zdAoreworICAgIGlmICghaGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKHZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2UoKSkKKyAgICAgICAg
cmV0dXJuICFoYXNPdmVycmlkZUhlaWdodCgpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmgKaW5kZXggOGE0ZjcxMi4uZjcyYjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZWdpb24uaApAQCAtMTIyLDYgKzEyMiwxMCBAQCBwdWJsaWM6CiAgICAgfQogICAgIGJvb2wg
aGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hhc0F1dG9Mb2dpY2FsSGVp
Z2h0OyB9CiAKKyAgICBib29sIG5lZWRzT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodENvbXB1
dGF0aW9uKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgp
IE9WRVJSSURFOworCiAgICAgLy8gVGhlIHRvcCBvZiB0aGUgbmVhcmVzdCBwYWdlIGluc2lkZSB0
aGUgcmVnaW9uLiBGb3IgUmVuZGVyUmVnaW9ucywgdGhpcyBpcyBqdXN0IHRoZSBsb2dpY2FsIHRv
cCBvZiB0aGUKICAgICAvLyBmbG93IHRocmVhZCBwb3J0aW9uIHdlIGNvbnRhaW4uIEZvciBzZXRz
LCB3ZSBoYXZlIHRvIGZpZ3VyZSBvdXQgdGhlIHRvcCBvZiB0aGUgbmVhcmVzdCBjb2x1bW4gb3IK
ICAgICAvLyBwYWdlLgpAQCAtMTQwLDcgKzE0NCw3IEBAIHByb3RlY3RlZDoKIAogICAgIExheW91
dFJlY3Qgb3ZlcmZsb3dSZWN0Rm9yRmxvd1RocmVhZFBvcnRpb24oTGF5b3V0UmVjdCBmbG93VGhy
ZWFkUG9ydGlvblJlY3QsIGJvb2wgaXNGaXJzdFBvcnRpb24sIGJvb2wgaXNMYXN0UG9ydGlvbikg
Y29uc3Q7CiAgICAgdm9pZCByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUoY29uc3Qg
TGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlLCBjb25zdCBMYXlvdXRSZWN0
JiBmbG93VGhyZWFkUG9ydGlvblJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1Jl
Y3QsIGNvbnN0IExheW91dFBvaW50JiByZWdpb25Mb2NhdGlvbikgY29uc3Q7CisgICAgICAgIGNv
bnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0LCBjb25zdCBMYXlv
dXRQb2ludCYgcmVnaW9uTG9jYXRpb24pIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJSZWdpb24iOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggM2E1MGI3MS4uZmJk
N2I1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNjUsNiAr
NjUsNyBAQCBSZW5kZXJWaWV3OjpSZW5kZXJWaWV3KE5vZGUqIG5vZGUsIEZyYW1lVmlldyogdmll
dykKICAgICAsIG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQoMCkKICAgICAsIG1fcmVuZGVyUXVv
dGVIZWFkKDApCiAgICAgLCBtX3JlbmRlckNvdW50ZXJDb3VudCgwKQorICAgICwgbV9sYXlvdXRQ
aGFzZShSZW5kZXJWaWV3Tm9ybWFsTGF5b3V0KQogewogICAgIC8vIENsZWFyIG91ciBhbm9ueW1v
dXMgYml0LCBzZXQgYmVjYXVzZSBSZW5kZXJPYmplY3QgYXNzdW1lcwogICAgIC8vIGFueSByZW5k
ZXJlciB3aXRoIGRvY3VtZW50IGFzIHRoZSBub2RlIGlzIGFub255bW91cy4KQEAgLTEzMiw2ICsx
MzMsMjQgQEAgYm9vbCBSZW5kZXJWaWV3Ojppc0NoaWxkQWxsb3dlZChSZW5kZXJPYmplY3QqIGNo
aWxkLCBSZW5kZXJTdHlsZSopIGNvbnN0CiAgICAgcmV0dXJuIGNoaWxkLT5pc0JveCgpOwogfQog
Cit2b2lkIFJlbmRlclZpZXc6OmxheW91dENvbnRlbnQoKQoreworICAgIEFTU0VSVChuZWVkc0xh
eW91dCgpKTsKKworICAgIFJlbmRlckJsb2NrOjpsYXlvdXQoKTsKKyAgICBpZiAoaGFzUmVuZGVy
TmFtZWRGbG93VGhyZWFkcygpKQorICAgICAgICBmbG93VGhyZWFkQ29udHJvbGxlcigpLT5sYXlv
dXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCk7Cit9CisKKyNpZm5kZWYgTkRFQlVHCit2b2lkIFJl
bmRlclZpZXc6OmNoZWNrTGF5b3V0U3RhdGUoY29uc3QgTGF5b3V0U3RhdGUmIHN0YXRlKQorewor
ICAgIEFTU0VSVChsYXlvdXREZWx0YSgpID09IExheW91dFNpemUoKSk7CisgICAgQVNTRVJUKCFt
X2xheW91dFN0YXRlRGlzYWJsZUNvdW50KTsKKyAgICBBU1NFUlQobV9sYXlvdXRTdGF0ZSA9PSAm
c3RhdGUpOworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKIHsKICAgICBp
ZiAoIWRvY3VtZW50KCktPnBhZ2luYXRlZCgpKQpAQCAtMTU0LDYgKzE3Myw5IEBAIHZvaWQgUmVu
ZGVyVmlldzo6bGF5b3V0KCkKICAgICB9CiAKICAgICBBU1NFUlQoIW1fbGF5b3V0U3RhdGUpOwor
ICAgIGlmICghbmVlZHNMYXlvdXQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgTGF5b3V0U3Rh
dGUgc3RhdGU7CiAgICAgLy8gRklYTUU6IE1heSBiZSBiZXR0ZXIgdG8gcHVzaCBhIGNsaXAgYW5k
IGF2b2lkIGlzc3Vpbmcgb2Zmc2NyZWVuIHJlcGFpbnRzLgogICAgIHN0YXRlLm1fY2xpcHBlZCA9
IGZhbHNlOwpAQCAtMTYzLDE1ICsxODUsMjcgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQog
ICAgIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkID0gZmFsc2U7CiAgICAgbV9sYXlvdXRTdGF0
ZSA9ICZzdGF0ZTsKIAotICAgIGlmIChuZWVkc0xheW91dCgpKSB7Ci0gICAgICAgIFJlbmRlckJs
b2NrOjpsYXlvdXQoKTsKLSAgICAgICAgaWYgKGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSkK
LSAgICAgICAgICAgIGZsb3dUaHJlYWRDb250cm9sbGVyKCktPmxheW91dFJlbmRlck5hbWVkRmxv
d1RocmVhZHMoKTsKKyAgICBtX2xheW91dFBoYXNlID0gUmVuZGVyVmlld05vcm1hbExheW91dDsK
KyAgICBib29sIG5lZWRzVHdvUGFzc0xheW91dEZvckF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA9
IGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKQorICAgICAgICAmJiBmbG93VGhyZWFkQ29udHJv
bGxlcigpLT5oYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKKworICAgIGlmIChuZWVkc1R3
b1Bhc3NMYXlvdXRGb3JBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMpCisgICAgICAgIGZsb3dUaHJl
YWRDb250cm9sbGVyKCktPnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQo
KTsKKworICAgIGxheW91dENvbnRlbnQoKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgY2hlY2tMYXlv
dXRTdGF0ZShzdGF0ZSk7CisjZW5kaWYKKworICAgIGlmIChuZWVkc1R3b1Bhc3NMYXlvdXRGb3JB
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnMpIHsKKyAgICAgICAgbV9sYXlvdXRQaGFzZSA9IENvbnN0
cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRJbkF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsKKyAgICAg
ICAgZmxvd1RocmVhZENvbnRyb2xsZXIoKS0+bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Zv
ckxheW91dCgpOworICAgICAgICBsYXlvdXRDb250ZW50KCk7CisjaWZuZGVmIE5ERUJVRworICAg
ICAgICBjaGVja0xheW91dFN0YXRlKHN0YXRlKTsKKyNlbmRpZgogICAgIH0KIAotICAgIEFTU0VS
VChsYXlvdXREZWx0YSgpID09IExheW91dFNpemUoKSk7Ci0gICAgQVNTRVJUKG1fbGF5b3V0U3Rh
dGVEaXNhYmxlQ291bnQgPT0gMCk7Ci0gICAgQVNTRVJUKG1fbGF5b3V0U3RhdGUgPT0gJnN0YXRl
KTsKICAgICBtX2xheW91dFN0YXRlID0gMDsKICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA2OTYyMjFiLi5lMmIwMTRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTE4OCw2ICsxODgsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkcygpIGNvbnN0Owog
ICAgIEZsb3dUaHJlYWRDb250cm9sbGVyKiBmbG93VGhyZWFkQ29udHJvbGxlcigpOwogCisgICAg
ZW51bSBSZW5kZXJWaWV3TGF5b3V0UGhhc2UgeyBSZW5kZXJWaWV3Tm9ybWFsTGF5b3V0LCBDb25z
dHJhaW5lZEZsb3dUaHJlYWRzTGF5b3V0SW5BdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgfTsKKyAg
ICBib29sIG5vcm1hbExheW91dFBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRQaGFzZSA9
PSBSZW5kZXJWaWV3Tm9ybWFsTGF5b3V0OyB9CisgICAgYm9vbCBjb25zdHJhaW5lZEZsb3dUaHJl
YWRzTGF5b3V0UGhhc2UoKSBjb25zdCB7IHJldHVybiBtX2xheW91dFBoYXNlID09IENvbnN0cmFp
bmVkRmxvd1RocmVhZHNMYXlvdXRJbkF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsgfQorCiAgICAg
dm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSk7CiAKICAgICBJbnRlcnZhbEFyZW5hKiBpbnRlcnZhbEFyZW5hKCk7CkBAIC0yNDks
NiArMjUzLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc2FibGVMYXlvdXRTdGF0ZSgpIHsgbV9s
YXlvdXRTdGF0ZURpc2FibGVDb3VudCsrOyB9CiAgICAgdm9pZCBlbmFibGVMYXlvdXRTdGF0ZSgp
IHsgQVNTRVJUKG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQgPiAwKTsgbV9sYXlvdXRTdGF0ZURp
c2FibGVDb3VudC0tOyB9CiAKKyAgICB2b2lkIGxheW91dENvbnRlbnQoKTsKKyAgICB2b2lkIGNo
ZWNrTGF5b3V0U3RhdGUoY29uc3QgTGF5b3V0U3RhdGUmKTsKKwogICAgIHNpemVfdCBnZXRSZXRh
aW5lZFdpZGdldHMoVmVjdG9yPFJlbmRlcldpZGdldCo+Jik7CiAgICAgdm9pZCByZWxlYXNlV2lk
Z2V0cyhWZWN0b3I8UmVuZGVyV2lkZ2V0Kj4mKTsKICAgICAKQEAgLTMwNyw2ICszMTQsNyBAQCBw
cml2YXRlOgogCiAgICAgUmVuZGVyUXVvdGUqIG1fcmVuZGVyUXVvdGVIZWFkOwogICAgIHVuc2ln
bmVkIG1fcmVuZGVyQ291bnRlckNvdW50OworICAgIFJlbmRlclZpZXdMYXlvdXRQaGFzZSBtX2xh
eW91dFBoYXNlOwogfTsKIAogaW5saW5lIFJlbmRlclZpZXcqIHRvUmVuZGVyVmlldyhSZW5kZXJP
YmplY3QqIG9iamVjdCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168687</attachid>
            <date>2012-10-15 05:32:41 -0700</date>
            <delta_ts>2012-10-15 13:31:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-97533-20121015153130.patch</filename>
            <type>text/plain</type>
            <size>57454</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEyN2MzNWI4NTgxYTlh
MWFkZmFhOGRmOTU1YTE4ZDc1YWRkY2QzYS4uYzY0MzYwOWZkNGQ0MTY5ODI0YTliMzA3MzFiNDRk
Yzc2ZWUzMzRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEyLTEwLTE1ICBNaWhu
ZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUFk
ZCBzdXBwb3J0IGZvciBhdXRvLWhlaWdodCByZWdpb25zICh3aXRob3V0IHJlZ2lvbi1icmVha3Mp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzUzMwor
CisgICAgICAgIFJldmlld2VkIGJ5IEp1bGllbiBDaGFmZnJhaXguCisKKyAgICAgICAgSW1wbGVt
ZW50IHRoZSAycGFzcyBsYXlvdXQgYWxnb3JpdGhtIGZvciBjb21wdXRpbmcgdGhlIGhlaWdodCBv
ZiByZWdpb25zIHdpdGggYXV0byBsb2dpY2FsIGhlaWdodCwgd2l0aG91dCB0YWtpbmcgcmVnaW9u
IGJyZWFrcyBpbnRvIGFjY291bnQuCisgICAgICAgIFRoZSBhbGdvcml0aG0gaXMgZGVzY3JpYmVk
IGluIHRoZSBDU1NSZWdpb25zIHNwZWM6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtcmVn
aW9ucy8jcmVnaW9ucy12aXN1YWwtZm9ybWF0dGluZy1zdGVwcworCisgICAgICAgIFdoZW4gdGhl
IGZsb3cgdGhyZWFkIGNvbnRhaW5zIHJlZ2lvbnMgd2l0aCBhdXRvIGxvZ2ljYWwgaGVpZ2h0LCBh
IDJwYXNzIGxheW91dCBhbGdvcml0aG0gaXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgaGVpZ2h0
IG9mIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9ucy4KKyAgICAgICAgSW4gZWFjaCBzdGVwIG9m
IHRoZSBsYXlvdXQsIHRoZSByZWdpb25zIGFyZSBsYWlkIG91dCBiZWZvcmUgdGhlIGZsb3cgdGhy
ZWFkIGlzIGxhaWQgb3V0LgorCisgICAgICAgIEluIHRoZSBmaXJzdCBwYXNzIG9mIGxheW91dCAo
bm9ybWFsIGxheW91dCBwaGFzZSksIHRoZSBjb250ZW50IG9mIHRoZSBmbG93IHRocmVhZCBpcyBs
YWlkIG91dCB1bmNvbnN0cmFpbmVkIGluIHRoZSByZWdpb25zLiBUaGUgcmVnaW9uIG1hcmtlZCBh
cyBoYXZpbmcgYXV0byBsb2dpY2FsIGhlaWdodAorICAgICAgICBkaXNwbGF5cyBhbGwgdGhlIGNv
cnJlc3BvbmRpbmcgY29udGVudCBmcm9tIHRoZSBmbG93IHRocmVhZCAodGFraW5nIG1pbi1oZWln
aHQgYW5kIG1heC1oZWlnaHQgaW50byBhY2NvdW50KSwgYW5kIHRoZSBoZWlnaHQgb2YgdGhlIGNv
bnRlbnQgZGlzcGxheWVkCisgICAgICAgIGRldGVybWluZXMgdGhlIG92ZXJyaWRkZW4gbG9naWNh
bCBjb250ZW50IGhlaWdodC4gVGh1cywgYWZ0ZXIgdGhlIGZpcnN0IHBhc3Mgb2YgbGF5b3V0LCBl
YWNoIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9uIHdpbGwgc3RvcmUgdGhlIGxvZ2ljYWwgaGVp
Z2h0CisgICAgICAgIHZhbHVlIGZvciB0aGUgc2Vjb25kIHBhc3MgaW4gaXRzIG92ZXJyaWRkZW4g
bG9naWNhbCBjb250ZW50IGhlaWdodCBwcm9wZXJ0eS4KKworICAgICAgICBJbiB0aGUgc2Vjb25k
IHBhc3Mgb2YgbGF5b3V0IChjb25zdHJhaW5lZCBmbG93IHRocmVhZHMgbGF5b3V0IHBoYXNlKSwg
d2hlbiB0aGUgY29udGVudCBvZiB0aGUgZmxvdyB0aHJlYWQgaXMgbGFpZCBvdXQgY29uc3RyYWlu
ZWQgaW4gdGhlIHJlZ2lvbnMsIHRoZSByZWdpb25zIGFyZSBsYWlkIG91dCBhZ2FpbiBhbmQgdGhl
eSBhcmUgdXNpbmcKKyAgICAgICAgdGhlIG92ZXJyaWRkZW4gbG9naWNhbCBjb250ZW50IGhlaWdo
dCBmcm9tIHRoZSBmaXJzdCBwYXNzIHRvIHVwZGF0ZSB0aGVpciBsb2dpY2FsIGhlaWdodC4gVGhl
biwgdGhlIGZsb3cgdGhyZWFkIGNvbnRlbnQgaXMgbGFpZCBvdXQgaW4gdGhlIGFzc29jaWF0ZWQg
cmVnaW9uIGNoYWluLAorICAgICAgICBmb3Igd2hpY2ggdGhlIGF1dG8gbG9naWNhbCBoZWlnaHQg
cmVnaW9ucyBoYXZlIHByb3BlciBsb2dpY2FsIGhlaWdodC4KKworICAgICAgICBBIGZ1dHVyZSBw
YXRjaCB3aWxsIHByb3Blcmx5IHRha2UgcmVnaW9uIGJyZWFrcyBpbnRvIGFjY291bnQgZm9yIHRo
ZSBmaXJzdCBwYXNzIG9mIGxheW91dC4KKworICAgICAgICBUZXN0czogZmFzdC9yZWdpb25zL2F1
dG9oZWlnaHQtYWJzcG9zLXJlZ2lvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMv
YXV0b2hlaWdodC1mbG9hdHJpZ2h0LXJlZ2lvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Jl
Z2lvbnMvYXV0b2hlaWdodC1ob3Jpem9udGFsLWJ0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
cmVnaW9ucy9hdXRvaGVpZ2h0LWlubGluZWJsb2NrLW5vcm1hbGZsb3ctcmVnaW9uLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1heGhlaWdodC1yZWdpb24uaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lv
bi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ub3JtYWxmbG93
LXJlZ2lvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0
aWNhbC1sci5odG1sCisgICAgICAgICAgICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0
aWNhbC1ybC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OnJlc2V0UmVnaW9u
c092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQpOgorICAgICAgICBGb3IgYWxsIHRoZSBhdXRv
IGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbnMsIHJlc2V0cyB0aGVpciBhc3NvY2lhdGVkIG92ZXJyaWRl
TG9naWNhbENvbnRlbnRIZWlnaHQuCisgICAgICAgIFRob3NlIHJlZ2lvbnMgYXJlIG1hcmtlZCBh
cyBuZWVkaW5nIGxheW91dCAoYWxvbmcgd2l0aCB0aGVpciBhbmNlc3RvcnMpLgorICAgICAgICAo
V2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6Om1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lv
bnNGb3JMYXlvdXQpOgorICAgICAgICBNYXJrIGFsbCB0aGUgYXV0byBsb2dpY2FsIGhlaWdodCBy
ZWdpb25zIGFuZCB0aGVpciBhc3NvY2lhdGVkIGZsb3cgdGhyZWFkIGFzIG5lZWRpbmcgbGF5b3V0
IChhbG9uZyB3aXRoIHRoZWlyIGFuY2VzdG9ycykuCisgICAgICAgICogcmVuZGVyaW5nL0Zsb3dU
aHJlYWRDb250cm9sbGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6Cisg
ICAgICAgIEFkZCBoZWxwZXIgZnVuY3Rpb25zIHRvIGNsZWFyIG91dCBpbmRpdmlkdWFsIGxvZ2lj
YWwgY29udGVudCB3aWR0aC9oZWlnaHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNs
ZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmNsZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6Y2xlYXJPdmVycmlkZVNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxvd1RocmVhZDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICBJ
ZiB0aGUgZmxvdyB0aHJlYWQgaGFzIGFuIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9uIGZvciB3
aGljaCB3ZSBkaWQgbm90IHlldCBjb21wdXRlIHRoZSBvdmVycmlkZUxvZ2ljYWxDb250ZW50SGVp
Z2h0IHZhbHVlLAorICAgICAgICBiYWlsIG91dCBlYXJseSBzaW5jZSB3ZSBjYW5ub3QgY29tcHV0
ZSB0aGUgZmxvdyB0aHJlYWQgbG9naWNhbCBoZWlnaHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjpyZWdpb25BdEJsb2NrT2Zmc2V0KToKKyAgICAgICAgSWYgdGhlIG9mZnNl
dCBpcyBpbnNpZGUgYW4gYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb24gZm9yIHdoaWNoIHdlIGRp
ZCBub3QgY29tcHV0ZSB0aGUgb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCwgdGhlbiB3ZSBj
b25zaWRlciB0aGlzIHJlZ2lvbiB0YWxsIGVub3VnaCB0byBhY2NvbW1vZGF0ZSBhbGwKKyAgICAg
ICAgdGhlIGNvbnRlbnQgYW5kIHdlIHJldHVybiB0aGlzIHJlZ2lvbi4gT3RoZXJ3aXNlLCBmb3Ig
YW4gYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb24sIHdlIHVzZSBlaXRoZXIgdGhlIG92ZXJyaWRl
TG9naWNhbENvbnRlbnRIZWlnaHQgKGlmIHdlIGFyZSBpbiB0aGUgZmlyc3QgbGF5b3V0IHBoYXNl
KSBvcgorICAgICAgICB0aGUgbG9naWNhbEhlaWdodCBpZiB3ZSBhcmUgaW4gdGhlIHNlY29uZCBs
YXlvdXQgcGhhc2UgKGJlY2F1c2UgdGhlIG92ZXJyaWRlckxvZ2ljYWxDb250ZW50SGVpZ2h0IHdh
cyBhbHJlYWR5IHRyYW5zZmVycmVkIGludG8gcmVnaW9uIGxvZ2ljYWwgaGVpZ2h0KS4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnBhZ2VMb2dpY2FsSGVpZ2h0Rm9yT2Zmc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnBhZ2VSZW1haW5pbmdMb2dp
Y2FsSGVpZ2h0Rm9yT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6
OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjpyZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6Om1hcmtBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnNGb3JMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6
dXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJGbG93VGhyZWFkOjphZGRGb3JjZWRSZWdpb25CcmVhayk6CisgICAgICAgIFNpbXVsYXRl
IGEgcmVnaW9uIGJyZWFrIGF0IHRoZSBzcGVjaWZpZWQgb2Zmc2V0LiBJdCB3aWxsIGJlIGV4dGVu
ZGVkIHRvIHByb3Blcmx5IHByb2Nlc3MgdGhlIHJlZ2lvbiBicmVha3MuIEF0IHRoaXMgbW9tZW50
LCBvbmx5IG9uZSBhdXRvIGhlaWdodCByZWdpb24gZm9yIGEgdGhyZWFkCisgICAgICAgIGNhbiBo
YXZlIGl0cyBoZWlnaHQgcHJvcGVybHkgY29tcHV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhy
ZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJveEludGVyc2VjdHNSZWdpb24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
UmVnaW9uOjp1cGRhdGVMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgSWYgdGhlIGF1dG8gbG9naWNh
bCBoZWlnaHQgcmVnaW9uIGhhcyBhbiBvdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0IGFuZCB3
ZSBhcmUgaW4gdGhlIHNlY29uZCBwYXNzIG9mIGxheW91dCwKKyAgICAgICAgd2UgdXNlIHRoZSBv
dmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0IHRvIHVwZGF0ZSB0aGUgcmVnaW9uIGxvZ2ljYWwg
aGVpZ2h0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpuZWVkc092ZXJyaWRlTG9n
aWNhbENvbnRlbnRIZWlnaHRDb21wdXRhdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZXc6OlJlbmRlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVmlldzo6bGF5b3V0Q29udGVudCk6CisgICAgICAgIEFkZGVkIGEgbmV3IGZ1bmN0aW9uIHRv
IGNvbnRhaW4gdGhlIFJlbmRlclZpZXcgYmxvY2sgbGF5b3V0IGFuZCBmbG93IHRocmVhZHMgbGF5
b3V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6Y2hlY2tMYXlvdXRTdGF0ZSk6Cisg
ICAgICAgIEhlbHBlciBmdW5jdGlvbiBrZWVwaW5nIHRoZSBvcmlnaW5hbCBhc3NlcnRzIGZyb20g
UmVuZGVyVmlldywgdXNlZCBpbiBtb3JlIHRoYW4gb25lIHBsYWNlLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bm9ybWFsTGF5b3V0UGhhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6Y29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dFBo
YXNlKToKKwogMjAxMi0xMC0xMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JIHJlbW92ZSBoYW5kIG1hZGUgb2JqZWN0
IGJ1aWxkZXJzIHdpdGggYXV0b21hdGljIGJ1aWxkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAppbmRleCBlN2NlYzQwYTI1ZTBjMTNm
ODY1MTEyNTQ3NjkzZjdjNmEwOWRiMDRjLi4zNzU5YTQzZTEzMDA2ZDRjZmMzMGM5MGI5MmZiZjZj
Mjc0NjBkZmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVh
ZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFk
Q29udHJvbGxlci5jcHAKQEAgLTE3Niw0ICsxNzYsMTggQEAgYm9vbCBGbG93VGhyZWFkQ29udHJv
bGxlcjo6aXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29uc2lzdGVudCgpIGNvbnN0CiB9
CiAjZW5kaWYKIAordm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6cmVzZXRSZWdpb25zT3ZlcnJp
ZGVMb2dpY2FsQ29udGVudEhlaWdodCgpCit7CisgICAgQVNTRVJUKG1fdmlldy0+bm9ybWFsTGF5
b3V0UGhhc2UoKSk7CisgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRv
ciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1f
cmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikKKyAgICAgICAgKCppdGVy
KS0+cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpOworfQorCit2b2lk
IEZsb3dUaHJlYWRDb250cm9sbGVyOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5
b3V0KCkKK3sKKyAgICBBU1NFUlQobV92aWV3LT5jb25zdHJhaW5lZEZsb3dUaHJlYWRzTGF5b3V0
UGhhc2UoKSk7CisgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBp
dGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikKKyAgICAgICAgKCppdGVyKS0+
bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1Ro
cmVhZENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29u
dHJvbGxlci5oCmluZGV4IDg0NDg2ZjRiMjk5MTY5ZmFjZGM3NzAzMDFhM2ExMzFjNTc5NWU2NDcu
Ljg2NzgwZDRiMWEwYTMwOWJhODdkZTIxMzYyNDBkN2FmZGIwYmM2OGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCkBAIC03NSw2ICs3NSw5
IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRmxhZ0NvbnNp
c3RlbnQoKSBjb25zdDsKICNlbmRpZgogCisgICAgdm9pZCByZXNldFJlZ2lvbnNPdmVycmlkZUxv
Z2ljYWxDb250ZW50SGVpZ2h0KCk7CisgICAgdm9pZCBtYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zRm9yTGF5b3V0KCk7CisKIHByb3RlY3RlZDoKICAgICBGbG93VGhyZWFkQ29udHJvbGxlcihS
ZW5kZXJWaWV3Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXgg
NzUwZWM3MDRhNzhmNmE0YjJhYjg0MjJlNTRiYTdmNjNjNGRhZjQ5Mi4uNTQzMGJmNGE1NzU3Mzdl
M2JiM2U3MDJlMjZmYjY4M2ViMTllMGFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKQEAgLTY5OCwxNCArNjk4LDI0IEBAIHZvaWQgUmVuZGVyQm94OjpzZXRPdmVycmlk
ZUxvZ2ljYWxDb250ZW50V2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkKICAgICBnT3ZlcnJpZGVXaWR0
aE1hcC0+c2V0KHRoaXMsIHdpZHRoKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OmNsZWFyT3ZlcnJp
ZGVTaXplKCkKK3ZvaWQgUmVuZGVyQm94OjpjbGVhck92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWln
aHQoKQogewogICAgIGlmIChnT3ZlcnJpZGVIZWlnaHRNYXApCiAgICAgICAgIGdPdmVycmlkZUhl
aWdodE1hcC0+cmVtb3ZlKHRoaXMpOworfQorCit2b2lkIFJlbmRlckJveDo6Y2xlYXJPdmVycmlk
ZUxvZ2ljYWxDb250ZW50V2lkdGgoKQorewogICAgIGlmIChnT3ZlcnJpZGVXaWR0aE1hcCkKICAg
ICAgICAgZ092ZXJyaWRlV2lkdGhNYXAtPnJlbW92ZSh0aGlzKTsKIH0KIAordm9pZCBSZW5kZXJC
b3g6OmNsZWFyT3ZlcnJpZGVTaXplKCkKK3sKKyAgICBjbGVhck92ZXJyaWRlTG9naWNhbENvbnRl
bnRIZWlnaHQoKTsKKyAgICBjbGVhck92ZXJyaWRlTG9naWNhbENvbnRlbnRXaWR0aCgpOworfQor
CiBMYXlvdXRVbml0IFJlbmRlckJveDo6b3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRoKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaGFzT3ZlcnJpZGVXaWR0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaAppbmRleCA1NjNiYmVmZGM2ZWJkZGYzY2Y0Y2EyMjM4MjExNThlMjkzYmIz
MDBmLi41MDE1MGJkNjYzM2E5MjBkZjMzNjMwMzkxNzUxYjVlNDU4ZDIyNzg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0zMDAsNiArMzAwLDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0T3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChMYXlvdXRVbml0KTsKICAgICB2
b2lkIHNldE92ZXJyaWRlTG9naWNhbENvbnRlbnRXaWR0aChMYXlvdXRVbml0KTsKICAgICB2b2lk
IGNsZWFyT3ZlcnJpZGVTaXplKCk7CisgICAgdm9pZCBjbGVhck92ZXJyaWRlTG9naWNhbENvbnRl
bnRIZWlnaHQoKTsKKyAgICB2b2lkIGNsZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudFdpZHRoKCk7
CiAKICAgICB2aXJ0dWFsIExheW91dFNpemUgb2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBMYXlvdXRQb2ludCYsIGJvb2wqIG9mZnNldERlcGVuZHNPblBvaW50ID0gMCkg
Y29uc3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5jcHAKaW5kZXggMzc5NDQzYjRhYjYwZWRkYTExYTI1NWU4MzU0NjFhM2M4MGQzYjVmZS4uOTRm
OGJhNjk0OGEzZjUzN2QwNTRmYzJlNDNiN2Y1ZDc3YmZhYTMzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtMTY0LDE4ICsxNjQsNyBAQCB2
b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmxheW91dCgpCiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOyAvLyBDYWxsZWQgdG8gZ2V0IHRo
ZSBtYXhpbXVtIGxvZ2ljYWwgd2lkdGggZm9yIHRoZSByZWdpb24uCi0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDA7Ci0gICAgICAgICAgICBmb3Ig
KFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsg
aXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewotICAgICAgICAgICAgICAgIFJl
bmRlclJlZ2lvbiogcmVnaW9uID0gKml0ZXI7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIExheW91dFVuaXQgcmVnaW9uTG9naWNhbFdpZHRoID0gcmVnaW9uLT5wYWdlTG9n
aWNhbFdpZHRoKCk7Ci0gICAgICAgICAgICAgICAgTGF5b3V0VW5pdCByZWdpb25Mb2dpY2FsSGVp
Z2h0ID0gcmVnaW9uLT5sb2dpY2FsSGVpZ2h0T2ZBbGxGbG93VGhyZWFkQ29udGVudCgpOwotICAg
IAotICAgICAgICAgICAgICAgIExheW91dFJlY3QgcmVnaW9uUmVjdChzdHlsZSgpLT5kaXJlY3Rp
b24oKSA9PSBMVFIgPyBaRVJPX0xBWU9VVF9VTklUIDogbG9naWNhbFdpZHRoKCkgLSByZWdpb25M
b2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQsIHJlZ2lvbkxvZ2ljYWxXaWR0aCwgcmVnaW9uTG9n
aWNhbEhlaWdodCk7Ci0gICAgICAgICAgICAgICAgcmVnaW9uLT5zZXRGbG93VGhyZWFkUG9ydGlv
blJlY3QoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvblJlY3QgOiByZWdpb25SZWN0
LnRyYW5zcG9zZWRSZWN0KCkpOwotICAgICAgICAgICAgICAgIGxvZ2ljYWxIZWlnaHQgKz0gcmVn
aW9uTG9naWNhbEhlaWdodDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVwZGF0ZVJlZ2lv
bnNGbG93VGhyZWFkUG9ydGlvblJlY3QoKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjIwLDYg
KzIwOSwxMyBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KExh
eW91dFVuaXQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTAogICAgIGZvciAoUmVuZGVyUmVnaW9u
TGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBpdGVyICE9
IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVn
aW9uID0gKml0ZXI7CiAgICAgICAgIEFTU0VSVCghcmVnaW9uLT5uZWVkc0xheW91dCgpKTsKKwor
ICAgICAgICBpZiAocmVnaW9uLT5uZWVkc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHRDb21w
dXRhdGlvbigpKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIGF1dG8gbG9naWNhbCBo
ZWlnaHQgcmVnaW9uIGZvciB3aGljaCB3ZSBkaWQgbm90IGNvbXB1dGUgYSBoZWlnaHQgeWV0LAor
ICAgICAgICAgICAgLy8gdGhlbiB3ZSBjYW5ub3QgY29tcHV0ZSBhbmQgdXBkYXRlIHRoZSBoZWln
aHQgb2YgdGhpcyBmbG93LgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAg
ICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgKz0gcmVnaW9uLT5sb2dpY2FsSGVpZ2h0T2ZBbGxG
bG93VGhyZWFkQ29udGVudCgpOwogICAgIH0KIH0KQEAgLTMyNCwyMSArMzIwLDM1IEBAIFJlbmRl
clJlZ2lvbiogUmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uQXRCbG9ja09mZnNldChMYXlvdXRVbml0
IG9mZnNldCwgYm9vbCBleHRlCiAgICAgLy8gSWYgbm8gcmVnaW9uIG1hdGNoZXMgdGhlIHBvc2l0
aW9uIGFuZCBleHRlbmRMYXN0UmVnaW9uIGlzIHRydWUsIGl0IHdpbGwgcmV0dXJuCiAgICAgLy8g
dGhlIGxhc3QgdmFsaWQgcmVnaW9uLiBJdCBpcyBzaW1pbGFyIHRvIGF1dG8gZXh0ZW5kaW5nIHRo
ZSBzaXplIG9mIHRoZSBsYXN0IHJlZ2lvbi4gCiAgICAgUmVuZGVyUmVnaW9uKiBsYXN0VmFsaWRS
ZWdpb24gPSAwOworCisgICAgTGF5b3V0VW5pdCBhY2N1bXVsYXRlZExvZ2ljYWxIZWlnaHQgPSBa
RVJPX0xBWU9VVF9VTklUOwogICAgIAogICAgIC8vIEZJWE1FOiBUaGUgcmVnaW9ucyBhcmUgYWx3
YXlzIGluIG9yZGVyLCBvcHRpbWl6ZSB0aGlzIHNlYXJjaC4KLSAgICBib29sIHVzZUhvcml6b250
YWxXcml0aW5nTW9kZSA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CiAgICAgZm9yIChSZW5k
ZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7
IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgUmVuZGVyUmVn
aW9uKiByZWdpb24gPSAqaXRlcjsKIAogICAgICAgICBpZiAob2Zmc2V0IDw9IDApCiAgICAgICAg
ICAgICByZXR1cm4gcmVnaW9uOwogCi0gICAgICAgIExheW91dFJlY3QgcmVnaW9uUmVjdCA9IHJl
Z2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCk7Ci0gICAgICAgIGlmICgodXNlSG9yaXpvbnRh
bFdyaXRpbmdNb2RlICYmIG9mZnNldCA8IHJlZ2lvblJlY3QubWF4WSgpKSB8fCAoIXVzZUhvcml6
b250YWxXcml0aW5nTW9kZSAmJiBvZmZzZXQgPCByZWdpb25SZWN0Lm1heFgoKSkpCi0gICAgICAg
ICAgICByZXR1cm4gcmVnaW9uOwotCiAgICAgICAgIGlmIChleHRlbmRMYXN0UmVnaW9uIHx8IHJl
Z2lvbi0+aXNSZW5kZXJSZWdpb25TZXQoKSkKICAgICAgICAgICAgIGxhc3RWYWxpZFJlZ2lvbiA9
IHJlZ2lvbjsKKworICAgICAgICAvLyBJZiB3ZSBkaWQgbm90IGNvbXB1dGUgdGhlIHJlZ2lvbidz
IGhlaWdodCwgd2Ugc2hvdWxkIGNvbnNpZGVyIHRoaXMgcmVnaW9uCisgICAgICAgIC8vIHRhbGwg
ZW5vdWdoIHRvIGFjY29tb2RhdGUgYWxsIGNvbnRlbnQuCisgICAgICAgIGlmIChyZWdpb24tPm5l
ZWRzT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodENvbXB1dGF0aW9uKCkpCisgICAgICAgICAg
ICByZXR1cm4gcmVnaW9uOworCisgICAgICAgIGlmIChyZWdpb24tPmhhc092ZXJyaWRlSGVpZ2h0
KCkgJiYgdmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKSB7CisgICAgICAgICAgICBhY2N1bXVs
YXRlZExvZ2ljYWxIZWlnaHQgKz0gcmVnaW9uLT5vdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0
KCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0IDwgYWNjdW11bGF0ZWRMb2dpY2FsSGVpZ2h0KQor
ICAgICAgICAgICAgICAgIHJldHVybiByZWdpb247CisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIExheW91dFJlY3QgcmVnaW9uUmVjdCA9IHJlZ2lvbi0+Zmxvd1Ro
cmVhZFBvcnRpb25SZWN0KCk7CisgICAgICAgIGFjY3VtdWxhdGVkTG9naWNhbEhlaWdodCArPSBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcmVnaW9uUmVjdC5oZWlnaHQoKSA6IHJlZ2lvblJl
Y3Qud2lkdGgoKTsKKyAgICAgICAgaWYgKG9mZnNldCA8IGFjY3VtdWxhdGVkTG9naWNhbEhlaWdo
dCkKKyAgICAgICAgICAgIHJldHVybiByZWdpb247CiAgICAgfQogCiAgICAgcmV0dXJuIGxhc3RW
YWxpZFJlZ2lvbjsKQEAgLTM1OSw3ICszNjksMTEgQEAgTGF5b3V0VW5pdCBSZW5kZXJGbG93VGhy
ZWFkOjpwYWdlTG9naWNhbFdpZHRoRm9yT2Zmc2V0KExheW91dFVuaXQgb2Zmc2V0KSBjb25zdAog
TGF5b3V0VW5pdCBSZW5kZXJGbG93VGhyZWFkOjpwYWdlTG9naWNhbEhlaWdodEZvck9mZnNldChM
YXlvdXRVbml0IG9mZnNldCkgY29uc3QKIHsKICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHJl
Z2lvbkF0QmxvY2tPZmZzZXQob2Zmc2V0KTsKLSAgICByZXR1cm4gcmVnaW9uID8gcmVnaW9uLT5w
YWdlTG9naWNhbEhlaWdodCgpIDogWkVST19MQVlPVVRfVU5JVDsKKyAgICBpZiAoIXJlZ2lvbikK
KyAgICAgICAgcmV0dXJuIFpFUk9fTEFZT1VUX1VOSVQ7CisgICAgaWYgKHJlZ2lvbi0+bmVlZHNP
dmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0YXRpb24oKSkKKyAgICAgICAgcmV0dXJu
IE1BWF9MQVlPVVRfVU5JVCAvIDI7CisgICAgcmV0dXJuIHJlZ2lvbi0+cGFnZUxvZ2ljYWxIZWln
aHQoKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJGbG93VGhyZWFkOjpwYWdlUmVtYWluaW5nTG9n
aWNhbEhlaWdodEZvck9mZnNldChMYXlvdXRVbml0IG9mZnNldCwgUGFnZUJvdW5kYXJ5UnVsZSBw
YWdlQm91bmRhcnlSdWxlKSBjb25zdApAQCAtMzY3LDcgKzM4MSw5IEBAIExheW91dFVuaXQgUmVu
ZGVyRmxvd1RocmVhZDo6cGFnZVJlbWFpbmluZ0xvZ2ljYWxIZWlnaHRGb3JPZmZzZXQoTGF5b3V0
VW5pdCBvZmZzCiAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSByZWdpb25BdEJsb2NrT2Zmc2V0
KG9mZnNldCk7CiAgICAgaWYgKCFyZWdpb24pCiAgICAgICAgIHJldHVybiBaRVJPX0xBWU9VVF9V
TklUOwotICAgIAorICAgIGlmIChyZWdpb24tPm5lZWRzT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhl
aWdodENvbXB1dGF0aW9uKCkpCisgICAgICAgIHJldHVybiBNQVhfTEFZT1VUX1VOSVQgLyAyOwor
CiAgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbFRvcCA9IHJlZ2lvbi0+cGFnZUxvZ2ljYWxUb3BG
b3JPZmZzZXQob2Zmc2V0KTsKICAgICBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gcmVn
aW9uLT5wYWdlTG9naWNhbEhlaWdodCgpOwogICAgIExheW91dFVuaXQgcGFnZUxvZ2ljYWxCb3R0
b20gPSBwYWdlTG9naWNhbFRvcCArIHBhZ2VMb2dpY2FsSGVpZ2h0OwpAQCAtNTgwLDYgKzU5Niwx
MSBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmdldFJlZ2lvblJhbmdlRm9yQm94KGNvbnN0IFJl
bmRlckJveCogYm94LCBSZW5kZXJSZWdpb24qJgogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21w
dXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2Up
CiB7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBvbGRDbGllbnRBZnRlckVkZ2U7CisKKyAgICAv
LyBTaW11bGF0ZSBhIHJlZ2lvbiBicmVhayBhdCBoZWlnaHQuIElmIGl0IHBvaW50cyBpbnNpZGUg
YW4gYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb24sCisgICAgLy8gdGhlbiBpdCBkZXRlcm1pbmVz
IHRoZSByZWdpb24gb3ZlcnJpZGUgbG9naWNhbCBjb250ZW50IGhlaWdodC4KKyAgICBhZGRGb3Jj
ZWRSZWdpb25CcmVhayhoZWlnaHQpOworCiAgICAgLy8gRklYTUU6IHRoZSB2aXN1YWwgb3ZlcmZs
b3cgb2YgbWlkZGxlIHJlZ2lvbiAoaWYgaXQgaXMgdGhlIGxhc3Qgb25lIHRvIGNvbnRhaW4gYW55
IGNvbnRlbnQgaW4gYSByZW5kZXIgZmxvdyB0aHJlYWQpCiAgICAgLy8gbWlnaHQgbm90IGJlIHRh
a2VuIGludG8gYWNjb3VudCBiZWNhdXNlIHRoZSByZW5kZXIgZmxvdyB0aHJlYWQgaGVpZ2h0IGlz
IGdyZWF0ZXIgdGhhdCB0aGF0IHJlZ2lvbnMgaGVpZ2h0ICsgaXRzIHZpc3VhbCBvdmVyZmxvdwog
ICAgIC8vIGJlY2F1c2Ugb2YgaG93IGNvbXB1dGVMb2dpY2FsSGVpZ2h0IGlzIGltcGxlbWVudGVk
IGZvciBSZW5kZXJGbG93VGhyZWFkIChhcyBhIHN1bSBvZiBhbGwgcmVnaW9ucyBoZWlnaHQpLgpA
QCAtNzA0LDYgKzcyNSwxMTkgQEAgdW5zaWduZWQgUmVuZGVyRmxvd1RocmVhZDo6YXV0b0xvZ2lj
YWxIZWlnaHRSZWdpb25zQ291bnQoKSBjb25zdAogfQogI2VuZGlmCiAKK3ZvaWQgUmVuZGVyRmxv
d1RocmVhZDo6cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpCit7Cisg
ICAgQVNTRVJUKHZpZXcoKS0+bGF5b3V0U3RhdGUoKSk7CisgICAgQVNTRVJUKHZpZXcoKS0+bm9y
bWFsTGF5b3V0UGhhc2UoKSk7CisKKyAgICAvLyBXZSBuZWVkIHRvIHJlc2V0IHRoZSBvdmVycmlk
ZSBsb2dpY2FsIGNvbnRlbnQgaGVpZ2h0IGZvciByZWdpb25zIHdpdGggYXV0byBsb2dpY2FsIGhl
aWdodAorICAgIC8vIG9ubHkgaWYgdGhlIGZsb3cgdGhyZWFkIGNvbnRlbnQgbmVlZHMgbGF5b3V0
LgorICAgIGlmICghc2VsZk5lZWRzTGF5b3V0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IEZJWE1FOiBvcHRpbWl6ZSB0aGlzIHRvIGl0ZXJhdGUgdGhlIHJlZ2lvbiBjaGFpbiBvbmx5IGlm
IHRoZSBmbG93IHRocmVhZCBoYXMgYXV0byBsb2dpY2FsIGhlaWdodAorICAgIC8vIHJlZ2lvbi4K
KworICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlz
dC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7CisgICAgICAg
IFJlbmRlclJlZ2lvbiogcmVnaW9uID0gKml0ZXI7CisgICAgICAgIGlmICghcmVnaW9uLT5oYXNB
dXRvTG9naWNhbEhlaWdodCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgcmVn
aW9uLT5jbGVhck92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKKyAgICAgICAgLy8gRklY
TUU6IFdlIG5lZWQgdG8gZmluZCBhIHdheSB0byBhdm9pZCBtYXJraW5nIGFsbCB0aGUgcmVnaW9u
cyBhbmNlc3RvcnMgZm9yIGxheW91dAorICAgICAgICAvLyBhcyB3ZSBhcmUgYWxyZWFkeSBpbnNp
ZGUgbGF5b3V0LgorICAgICAgICByZWdpb24tPnNldE5lZWRzTGF5b3V0KHRydWUpOworICAgIH0K
K30KKwordm9pZCBSZW5kZXJGbG93VGhyZWFkOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25z
Rm9yTGF5b3V0KCkKK3sKKyAgICBBU1NFUlQodmlldygpLT5sYXlvdXRTdGF0ZSgpKTsKKyAgICBB
U1NFUlQodmlldygpLT5jb25zdHJhaW5lZEZsb3dUaHJlYWRzTGF5b3V0UGhhc2UoKSk7CisKKyAg
ICAvLyBGSVhNRTogb3B0aW1pemUgdGhpcyB0byBpdGVyYXRlIHRoZSByZWdpb24gY2hhaW4gb25s
eSBpZiB0aGUgZmxvdyB0aHJlYWQgaGFzIGF1dG8gbG9naWNhbCBoZWlnaHQKKyAgICAvLyByZWdp
b24uCisKKyAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lv
bkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgeworICAg
ICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOworICAgICAgICBpZiAoIXJlZ2lvbi0+
aGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IC8vIEZJWE1FOiBXZSBuZWVkIHRvIGZpbmQgYSB3YXkgdG8gYXZvaWQgbWFya2luZyBhbGwgdGhl
IHJlZ2lvbnMgYW5jZXN0b3JzIGZvciBsYXlvdXQKKyAgICAgICAgLy8gYXMgd2UgYXJlIGFscmVh
ZHkgaW5zaWRlIGxheW91dC4KKyAgICAgICAgcmVnaW9uLT5zZXROZWVkc0xheW91dCh0cnVlKTsK
KyAgICB9CisKKyAgICBtX3JlZ2lvbnNJbnZhbGlkYXRlZCA9IHRydWU7CisgICAgc2V0TmVlZHNM
YXlvdXQodHJ1ZSk7Cit9CisKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlUmVnaW9uc0Zs
b3dUaHJlYWRQb3J0aW9uUmVjdCgpCit7CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0g
MDsKKyAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxp
c3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgeworICAgICAg
ICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOworCisgICAgICAgIExheW91dFVuaXQgcmVn
aW9uTG9naWNhbFdpZHRoID0gcmVnaW9uLT5wYWdlTG9naWNhbFdpZHRoKCk7CisgICAgICAgIExh
eW91dFVuaXQgcmVnaW9uTG9naWNhbEhlaWdodCA9IHJlZ2lvbi0+bG9naWNhbEhlaWdodE9mQWxs
Rmxvd1RocmVhZENvbnRlbnQoKTsKKworICAgICAgICBMYXlvdXRSZWN0IHJlZ2lvblJlY3Qoc3R5
bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSID8gWkVST19MQVlPVVRfVU5JVCA6IGxvZ2ljYWxXaWR0
aCgpIC0gcmVnaW9uTG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0LCByZWdpb25Mb2dpY2FsV2lk
dGgsIHJlZ2lvbkxvZ2ljYWxIZWlnaHQpOworCisgICAgICAgIC8vIEZJWE1FOiB3aGVuIGEgZmxv
dyB0aHJlYWQgaGFzIG1vcmUgdGhhbiBvbmUgYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb24sCisg
ICAgICAgIC8vIHdlIGhhdmUgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlIG92ZXJyaWRlIGxvZ2lj
YWwgY29udGVudCBoZWlnaHQgdmFsdWUsCisgICAgICAgIC8vIGlmIGNvbXB1dGVkIGZvciBhbiBh
dXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbiwgYW5kIHVzZSBpdCB0byBzZXQgdGhlIGhlaWdodAor
ICAgICAgICAvLyBmb3IgdGhlIHJlZ2lvbiByZWN0LiBUaGlzIHdheSwgdGhlIHJlZ2lvbnMgaW4g
dGhlIGNoYWluIGZvbGxvd2luZyB0aGUgYXV0bworICAgICAgICAvLyBsb2dpY2FsIGhlaWdodCBy
ZWdpb24sIHdpbGwgYmUgYWJsZSB0byBmcmFnbWVudCB0aGUgcmlnaHQgcGFydCBvZiB0aGVpcgor
ICAgICAgICAvLyBhc3NvY2lhdGVkIGZsb3cgdGhyZWFkIGNvbnRlbnQgKGFuZCBjb21wdXRlIHRo
ZWlyIG92ZXJyaWRlQ29tcHV0ZWRMb2dpY2FsSGVpZ2h0IHByb3Blcmx5KS4KKworICAgICAgICBy
ZWdpb24tPnNldEZsb3dUaHJlYWRQb3J0aW9uUmVjdChpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gcmVnaW9uUmVjdCA6IHJlZ2lvblJlY3QudHJhbnNwb3NlZFJlY3QoKSk7CisgICAgICAgIGxv
Z2ljYWxIZWlnaHQgKz0gcmVnaW9uTG9naWNhbEhlaWdodDsKKyAgICB9Cit9CisKKy8vIEZJWE1F
OiBFeHRlbmQgaXQgdG8gYWNjb3VudCBmb3IgcmVnaW9uIGJyZWFrCit2b2lkIFJlbmRlckZsb3dU
aHJlYWQ6OmFkZEZvcmNlZFJlZ2lvbkJyZWFrKExheW91dFVuaXQgb2Zmc2V0QnJlYWtJbkZsb3dU
aHJlYWQpCit7CisgICAgLy8gV2UgdGFrZSBicmVha3MgaW50byBhY2NvdW50IGZvciBoZWlnaHQg
Y29tcHV0YXRpb24gZm9yIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9ucworICAgIC8vIG9ubHkg
aW4gdGhlIGxheW91dCBwaGFzZSBpbiB3aGljaCB3ZSBsYXkgb3V0IHRoZSBmbG93cyB0aHJlYWRz
IHVuY29uc3RyYWluZWQKKyAgICAvLyBhbmQgd2UgdXNlIHRoZSBjb250ZW50IGJyZWFrcyB0byBk
ZXRlcm1pbmUgdGhlIG92ZXJyaWRlQ29udGVudExvZ2ljYWxIZWlnaHQgZm9yCisgICAgLy8gYXV0
byBsb2dpY2FsIGhlaWdodCByZWdpb25zLgorICAgIGlmICh2aWV3KCktPmNvbnN0cmFpbmVkRmxv
d1RocmVhZHNMYXlvdXRQaGFzZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBTaW11bGF0
ZSBhIHJlZ2lvbiBicmVhayBhdCBoZWlnaHQuIElmIGl0IHBvaW50cyBpbnNpZGUgYW4gYXV0byBs
b2dpY2FsIGhlaWdodCByZWdpb24sCisgICAgLy8gdGhlbiBpdCBkZXRlcm1pbmVzIHRoZSByZWdp
b24gb3ZlcnJpZGUgbG9naWNhbCBjb250ZW50IGhlaWdodC4KKyAgICBSZW5kZXJSZWdpb24qIHJl
Z2lvbiA9IHJlZ2lvbkF0QmxvY2tPZmZzZXQob2Zmc2V0QnJlYWtJbkZsb3dUaHJlYWQpOworICAg
IGlmICghcmVnaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXJlZ2lvbi0+bmVlZHNP
dmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0YXRpb24oKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgTGF5b3V0VW5pdCBjdXJyZW50UmVnaW9uT2Zmc2V0SW5GbG93VGhyZWFkID0gaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCku
eSgpIDogcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS54KCk7CisgICAgTGF5b3V0VW5p
dCBvZmZzZXRCcmVha0luQ3VycmVudFJlZ2lvbiA9IG9mZnNldEJyZWFrSW5GbG93VGhyZWFkIC0g
Y3VycmVudFJlZ2lvbk9mZnNldEluRmxvd1RocmVhZDsKKyAgICBMYXlvdXRVbml0IHJlZ2lvbk92
ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQgPSByZWdpb24tPmNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxIZWlnaHRSZXNwZWN0aW5nTWluTWF4SGVpZ2h0KG9mZnNldEJyZWFrSW5DdXJyZW50UmVnaW9u
KTsKKyAgICByZWdpb24tPnNldE92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQocmVnaW9uT3Zl
cnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCk7CisKKyAgICAvLyBGSVhNRTogRXh0ZW5kIGl0IHRv
IHRha2UgaW50byBhY2NvdW50IHRoYXQgd2UgbWF5IGhhdmUgbW9yZSB0aGFuIG9uZSBhdXRvLWhl
aWdodCByZWdpb24gaW4gZmxvdy4KKyAgICAvLyBGb3Igbm93LCBjbGVhciB0aGUgb3ZlcnJpZGUg
bG9naWNhbCBjb250ZW50IGhlaWdodCBmb3IgcmVtYWluaW5nIGF1dG8gbG9naWNhbCBoZWlnaHQg
cmVnaW9ucyBpbiB0aGUgZmxvdy4KKyAgICAvLyBBIGZvbGxvdy11cCBwYXRjaCB3aWxsIHByb3Bl
cmx5IGRpc3RyaWJ1dGUgdGhlIHJlbWFpbmluZyBoZWlnaHQgaW50byB0aGUgZm9sbG93aW5nIHJl
Z2lvbnMuCisgICAgUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgcmVnaW9uSXRlciA9IG1fcmVn
aW9uTGlzdC5maW5kKHJlZ2lvbik7CisgICAgQVNTRVJUKHJlZ2lvbkl0ZXIgIT0gbV9yZWdpb25M
aXN0LmVuZCgpKTsKKworICAgIC8vIFNraXAgdGhlIGN1cnJlbnQgcmVnaW9uLgorICAgICsrcmVn
aW9uSXRlcjsKKworICAgIGZvciAoOyByZWdpb25JdGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsg
KytyZWdpb25JdGVyKSB7CisgICAgICAgIFJlbmRlclJlZ2lvbiogY3VyclJlZ2lvbiA9ICpyZWdp
b25JdGVyOworICAgICAgICBpZiAoIWN1cnJSZWdpb24tPmhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkp
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY3VyclJlZ2lvbi0+Y2xlYXJPdmVycmlk
ZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CisgICAgfQorCisgICAgdXBkYXRlUmVnaW9uc0Zsb3dU
aHJlYWRQb3J0aW9uUmVjdCgpOworfQorCiBDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWlu
ZXI6OkN1cnJlbnRSZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lcihSZW5kZXJGbG93VGhyZWFkKiBy
ZW5kZXJGbG93VGhyZWFkKQogICAgIDogbV9yZW5kZXJGbG93VGhyZWFkKHJlbmRlckZsb3dUaHJl
YWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRl
eCA5M2U5MTM3ZjA5OGQwYTU1YjA3MWI2NjVlMDYxZDNkZmY0ZGM2ODdiLi4xZmI3NjEwMTZjMTkw
MDcxNmRlZDQ2MGQwOTgyYzNiZTNiOGQ3ODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTExOCw4ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBnZXRSZWdpb25SYW5nZUZvckJveChjb25zdCBSZW5kZXJCb3gqLCBSZW5kZXJSZWdpb24qJiBz
dGFydFJlZ2lvbiwgUmVuZGVyUmVnaW9uKiYgZW5kUmVnaW9uKSBjb25zdDsKIAogICAgIHZvaWQg
Y2xlYXJSZW5kZXJPYmplY3RDdXN0b21TdHlsZShjb25zdCBSZW5kZXJPYmplY3QqLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5kZXJSZWdpb24qIG9sZFN0
YXJ0UmVnaW9uID0gMCwgY29uc3QgUmVuZGVyUmVnaW9uKiBvbGRFbmRSZWdpb24gPSAwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZW5kZXJSZWdpb24qIG5l
d1N0YXJ0UmVnaW9uID0gMCwgY29uc3QgUmVuZGVyUmVnaW9uKiBuZXdFbmRSZWdpb24gPSAwKTsK
KyAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9uKiBvbGRTdGFydFJlZ2lvbiA9IDAsIGNvbnN0IFJl
bmRlclJlZ2lvbiogb2xkRW5kUmVnaW9uID0gMCwKKyAgICAgICAgY29uc3QgUmVuZGVyUmVnaW9u
KiBuZXdTdGFydFJlZ2lvbiA9IDAsIGNvbnN0IFJlbmRlclJlZ2lvbiogbmV3RW5kUmVnaW9uID0g
MCk7CiAgICAgCiAgICAgdm9pZCBjb21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0
VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UpOwogCkBAIC0xMjgsNiArMTI4LDExIEBAIHB1YmxpYzoK
ICAgICAvLyBDaGVjayBpZiB0aGUgb2JqZWN0IGlzIGluIHJlZ2lvbiBhbmQgdGhlIHJlZ2lvbiBp
cyBwYXJ0IG9mIHRoaXMgZmxvdyB0aHJlYWQuCiAgICAgYm9vbCBvYmplY3RJbkZsb3dSZWdpb24o
Y29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyUmVnaW9uKikgY29uc3Q7CiAKKyAgICB2
b2lkIHJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKKyAgICB2b2lk
IG1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKTsKKworICAgIHZvaWQgYWRk
Rm9yY2VkUmVnaW9uQnJlYWsoTGF5b3V0VW5pdCk7CisKICAgICBib29sIHBhZ2VMb2dpY2FsSGVp
Z2h0Q2hhbmdlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkOyB9
CiAKICNpZm5kZWYgTkRFQlVHCkBAIC0xMzcsNiArMTQyLDcgQEAgcHVibGljOgogcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0ID0gMDsKIAorICAg
IHZvaWQgdXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdCgpOwogICAgIGJvb2wgc2hv
dWxkUmVwYWludChjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAgICAgYm9vbCByZWdpb25JblJh
bmdlKGNvbnN0IFJlbmRlclJlZ2lvbiogdGFyZ2V0UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdpb24q
IHN0YXJ0UmVnaW9uLCBjb25zdCBSZW5kZXJSZWdpb24qIGVuZFJlZ2lvbikgY29uc3Q7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQu
Y3BwCmluZGV4IDU2MjQ3YzhmODE0MTBmZTYzYzU1ZjAxYjY3NmQzOWY3ZTBjNWM2ZjcuLjI2Y2Fk
M2RiYzYxNzQ1ZjIzMWRkMzU2MmZhM2Q4MTFmOTliNmUxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCkBAIC00MzUsMTAgKzQz
NSwxMCBAQCBzdGF0aWMgYm9vbCBpc0NvbnRhaW5lZEluTm9kZXMoVmVjdG9yPE5vZGUqPiBvdGhl
cnMsIE5vZGUqIG5vZGUpCiBzdGF0aWMgYm9vbCBib3hJbnRlcnNlY3RzUmVnaW9uKExheW91dFVu
aXQgbG9naWNhbFRvcEZvckJveCwgTGF5b3V0VW5pdCBsb2dpY2FsQm90dG9tRm9yQm94LCBMYXlv
dXRVbml0IGxvZ2ljYWxUb3BGb3JSZWdpb24sIExheW91dFVuaXQgbG9naWNhbEJvdHRvbUZvclJl
Z2lvbikKIHsKICAgICBib29sIHJlZ2lvbklzRW1wdHkgPSBsb2dpY2FsQm90dG9tRm9yUmVnaW9u
ICE9IE1BWF9MQVlPVVRfVU5JVCAmJiBsb2dpY2FsVG9wRm9yUmVnaW9uICE9IE1JTl9MQVlPVVRf
VU5JVAotICAgICAgICAgICAgICAgICAgICAgICAgICYmIChsb2dpY2FsQm90dG9tRm9yUmVnaW9u
IC0gbG9naWNhbFRvcEZvclJlZ2lvbikgPD0gMDsKKyAgICAgICAgJiYgKGxvZ2ljYWxCb3R0b21G
b3JSZWdpb24gLSBsb2dpY2FsVG9wRm9yUmVnaW9uKSA8PSAwOwogICAgIHJldHVybiAgKGxvZ2lj
YWxCb3R0b21Gb3JCb3ggLSBsb2dpY2FsVG9wRm9yQm94KSA+IDAKLSAgICAgICAgICAgICYmICFy
ZWdpb25Jc0VtcHR5Ci0gICAgICAgICAgICAmJiBsb2dpY2FsVG9wRm9yQm94IDwgbG9naWNhbEJv
dHRvbUZvclJlZ2lvbiAmJiBsb2dpY2FsVG9wRm9yUmVnaW9uIDwgbG9naWNhbEJvdHRvbUZvckJv
eDsKKyAgICAgICAgJiYgIXJlZ2lvbklzRW1wdHkKKyAgICAgICAgJiYgbG9naWNhbFRvcEZvckJv
eCA8IGxvZ2ljYWxCb3R0b21Gb3JSZWdpb24gJiYgbG9naWNhbFRvcEZvclJlZ2lvbiA8IGxvZ2lj
YWxCb3R0b21Gb3JCb3g7CiB9CiAKIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpnZXRSYW5n
ZXMoVmVjdG9yPFJlZlB0cjxSYW5nZT4gPiYgcmFuZ2VPYmplY3RzLCBjb25zdCBSZW5kZXJSZWdp
b24qIHJlZ2lvbikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5j
cHAKaW5kZXggMWM1ZGRiZWViNjFlMmE4MDZlMjljOTg0NTRiZjRhZTVkMmU0OGI3OS4uMTFkNWFm
Zjc0YWJhNjI4ZGFiMDY0ZmY0YTllNjc3MWVmMGM1NDU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKQEAgLTQ3Miw3ICs0NzIsNyBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBSZW5kZXJSZWdpb246OmNvbXB1dGVTdHlsZUluUmVnaW9uKGNvbnN0IFJlbmRl
ck9iamVjdCogbwogCiAgICAgcmV0dXJuIHJlbmRlck9iamVjdFJlZ2lvblN0eWxlLnJlbGVhc2Uo
KTsKIH0KLSAKKwogdm9pZCBSZW5kZXJSZWdpb246OmNvbXB1dGVDaGlsZHJlblN0eWxlSW5SZWdp
b24oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgZm9yIChSZW5kZXJPYmplY3Qq
IGNoaWxkID0gb2JqZWN0LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKSB7CkBAIC00OTgsNyArNDk4LDcgQEAgdm9pZCBSZW5kZXJSZWdpb246OmNvbXB1
dGVDaGlsZHJlblN0eWxlSW5SZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAgICAg
ICAgIGNvbXB1dGVDaGlsZHJlblN0eWxlSW5SZWdpb24oY2hpbGQpOwogICAgIH0KIH0KLSAKKwog
dm9pZCBSZW5kZXJSZWdpb246OnNldE9iamVjdFN0eWxlSW5SZWdpb24oUmVuZGVyT2JqZWN0KiBv
YmplY3QsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlSW5SZWdpb24sIGJvb2wgb2JqZWN0
UmVnaW9uU3R5bGVDYWNoZWQpCiB7CiAgICAgQVNTRVJUKG9iamVjdC0+aW5SZW5kZXJGbG93VGhy
ZWFkKCkpOwpAQCAtNTIyLDcgKzUyMiw3IEBAIHZvaWQgUmVuZGVyUmVnaW9uOjpzZXRPYmplY3RT
dHlsZUluUmVnaW9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBQYXNzUmVmUHRyPFJlbmRlCiAgICAg
c3R5bGVJbmZvLmNhY2hlZCA9IG9iamVjdFJlZ2lvblN0eWxlQ2FjaGVkOwogICAgIG1fcmVuZGVy
T2JqZWN0UmVnaW9uU3R5bGUuc2V0KG9iamVjdCwgc3R5bGVJbmZvKTsKIH0KLSAKKwogdm9pZCBS
ZW5kZXJSZWdpb246OmNsZWFyT2JqZWN0U3R5bGVJblJlZ2lvbihjb25zdCBSZW5kZXJPYmplY3Qq
IG9iamVjdCkKIHsKICAgICBBU1NFUlQob2JqZWN0KTsKQEAgLTU3OSw0ICs1NzksMzQgQEAgdm9p
ZCBSZW5kZXJSZWdpb246OmdldFJhbmdlcyhWZWN0b3I8UmVmUHRyPFJhbmdlPiA+JiByYW5nZU9i
amVjdHMpIGNvbnN0CiAgICAgbmFtZWRGbG93LT5nZXRSYW5nZXMocmFuZ2VPYmplY3RzLCB0aGlz
KTsKIH0KIAordm9pZCBSZW5kZXJSZWdpb246OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKQoreworICAg
IFJlbmRlclJlcGxhY2VkOjp1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CisKKyAgICBpZiAoIWhhc0F1
dG9Mb2dpY2FsSGVpZ2h0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHdhbnQgdG8g
dXBkYXRlIHRoZSBsb2dpY2FsIGhlaWdodCBiYXNlZCBvbiB0aGUgY29tcHV0ZWQgb3ZlcnJpZGUg
bG9naWNhbAorICAgIC8vIGNvbnRlbnQgaGVpZ2h0IG9ubHkgaWYgdGhlIHZpZXcgaXMgaW4gdGhl
IGxheW91dCBwaGFzZQorICAgIC8vIGluIHdoaWNoIGFsbCB0aGUgYXV0byBsb2dpY2FsIGhlaWdo
dCByZWdpb25zIGhhdmUgdGhlaXIgb3ZlcnJpZGUgbG9naWNhbCBoZWlnaHQgc2V0LgorICAgIGlm
ICh2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IFRoZXJlIG1heSBiZSByZWdpb25zIHdpdGggYXV0byBsb2dpY2FsIGhlaWdodCB0aGF0IGR1cmlu
ZyB0aGUgcHJlcmVxdWlzaXRlIGxheW91dCBwaGFzZQorICAgIC8vIGRpZCBub3QgaGF2ZSB0aGUg
Y2hhbmNlIHRvIGxheW91dCBmbG93IHRocmVhZCBjb250ZW50LiBCZWNhdXNlIG9mIHRoYXQsIHRo
ZXNlIHJlZ2lvbnMgZG8gbm90CisgICAgLy8gaGF2ZSBhbiBvdmVycmlkZUxvZ2ljYWxDb250ZW50
SGVpZ2h0IGNvbXB1dGVkIGFuZCB0aGV5IHdpbGwgbm90IGJlIGFibGUgdG8gZnJhZ21lbnQgYW55
IGZsb3cKKyAgICAvLyB0aHJlYWQgY29udGVudC4KKyAgICBpZiAoIWhhc092ZXJyaWRlSGVpZ2h0
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIExheW91dFVuaXQgbmV3TG9naWNhbEhlaWdodCA9
IG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKSArIGJvcmRlckFuZFBhZGRpbmdMb2dpY2Fs
SGVpZ2h0KCk7CisgICAgaWYgKG5ld0xvZ2ljYWxIZWlnaHQgPiBsb2dpY2FsSGVpZ2h0KCkpCisg
ICAgICAgIHNldExvZ2ljYWxIZWlnaHQobmV3TG9naWNhbEhlaWdodCk7Cit9CisKK2Jvb2wgUmVu
ZGVyUmVnaW9uOjpuZWVkc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHRDb21wdXRhdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkgJiYgdmlldygpLT5u
b3JtYWxMYXlvdXRQaGFzZSgpICYmICFoYXNPdmVycmlkZUhlaWdodCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKaW5k
ZXggOGE0ZjcxMjA2MWYyM2MxYWRlODMyNTVlZjE5MGJlODAxYWM2ZDQxOC4uZjcyYjkyODlkMGM1
NTZjOTIwZWNmZjE4YzkyZmU3NTI0NTA2NGY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb24uaApAQCAtMTIyLDYgKzEyMiwxMCBAQCBwdWJsaWM6CiAgICAgfQogICAgIGJv
b2wgaGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hhc0F1dG9Mb2dpY2Fs
SGVpZ2h0OyB9CiAKKyAgICBib29sIG5lZWRzT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodENv
bXB1dGF0aW9uKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdo
dCgpIE9WRVJSSURFOworCiAgICAgLy8gVGhlIHRvcCBvZiB0aGUgbmVhcmVzdCBwYWdlIGluc2lk
ZSB0aGUgcmVnaW9uLiBGb3IgUmVuZGVyUmVnaW9ucywgdGhpcyBpcyBqdXN0IHRoZSBsb2dpY2Fs
IHRvcCBvZiB0aGUKICAgICAvLyBmbG93IHRocmVhZCBwb3J0aW9uIHdlIGNvbnRhaW4uIEZvciBz
ZXRzLCB3ZSBoYXZlIHRvIGZpZ3VyZSBvdXQgdGhlIHRvcCBvZiB0aGUgbmVhcmVzdCBjb2x1bW4g
b3IKICAgICAvLyBwYWdlLgpAQCAtMTQwLDcgKzE0NCw3IEBAIHByb3RlY3RlZDoKIAogICAgIExh
eW91dFJlY3Qgb3ZlcmZsb3dSZWN0Rm9yRmxvd1RocmVhZFBvcnRpb24oTGF5b3V0UmVjdCBmbG93
VGhyZWFkUG9ydGlvblJlY3QsIGJvb2wgaXNGaXJzdFBvcnRpb24sIGJvb2wgaXNMYXN0UG9ydGlv
bikgY29uc3Q7CiAgICAgdm9pZCByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUoY29u
c3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlLCBjb25zdCBMYXlvdXRS
ZWN0JiBmbG93VGhyZWFkUG9ydGlvblJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxv
d1JlY3QsIGNvbnN0IExheW91dFBvaW50JiByZWdpb25Mb2NhdGlvbikgY29uc3Q7CisgICAgICAg
IGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0LCBjb25zdCBM
YXlvdXRQb2ludCYgcmVnaW9uTG9jYXRpb24pIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJSZWdpb24i
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggMjdiYzE0YWJk
YTZkM2Q5ZmIwNjNhZmY3Mzg3YjUzNTNmOWQxYWUyYy4uNzQ1MDZlZGMxMmUxZmJkN2M0NDA3Y2U0
ZWZkZGMwMmQ2ZGJkYzBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cApAQCAtNjUsNiArNjUsNyBAQCBSZW5kZXJWaWV3OjpSZW5kZXJWaWV3KE5vZGUqIG5vZGUsIEZy
YW1lVmlldyogdmlldykKICAgICAsIG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQoMCkKICAgICAs
IG1fcmVuZGVyUXVvdGVIZWFkKDApCiAgICAgLCBtX3JlbmRlckNvdW50ZXJDb3VudCgwKQorICAg
ICwgbV9sYXlvdXRQaGFzZShSZW5kZXJWaWV3Tm9ybWFsTGF5b3V0KQogewogICAgIC8vIENsZWFy
IG91ciBhbm9ueW1vdXMgYml0LCBzZXQgYmVjYXVzZSBSZW5kZXJPYmplY3QgYXNzdW1lcwogICAg
IC8vIGFueSByZW5kZXJlciB3aXRoIGRvY3VtZW50IGFzIHRoZSBub2RlIGlzIGFub255bW91cy4K
QEAgLTEzMiw2ICsxMzMsMjcgQEAgYm9vbCBSZW5kZXJWaWV3Ojppc0NoaWxkQWxsb3dlZChSZW5k
ZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJTdHlsZSopIGNvbnN0CiAgICAgcmV0dXJuIGNoaWxkLT5p
c0JveCgpOwogfQogCit2b2lkIFJlbmRlclZpZXc6OmxheW91dENvbnRlbnQoY29uc3QgTGF5b3V0
U3RhdGUmIHN0YXRlKQoreworICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKKworICAgIFJlbmRl
ckJsb2NrOjpsYXlvdXQoKTsKKyAgICBpZiAoaGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkcygpKQor
ICAgICAgICBmbG93VGhyZWFkQ29udHJvbGxlcigpLT5sYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJl
YWRzKCk7CisjaWZuZGVmIE5ERUJVRworICAgIGNoZWNrTGF5b3V0U3RhdGUoc3RhdGUpOworI2Vu
ZGlmCit9CisKKyNpZm5kZWYgTkRFQlVHCit2b2lkIFJlbmRlclZpZXc6OmNoZWNrTGF5b3V0U3Rh
dGUoY29uc3QgTGF5b3V0U3RhdGUmIHN0YXRlKQoreworICAgIEFTU0VSVChsYXlvdXREZWx0YSgp
ID09IExheW91dFNpemUoKSk7CisgICAgQVNTRVJUKCFtX2xheW91dFN0YXRlRGlzYWJsZUNvdW50
KTsKKyAgICBBU1NFUlQobV9sYXlvdXRTdGF0ZSA9PSAmc3RhdGUpOworfQorI2VuZGlmCisKIHZv
aWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKIHsKICAgICBpZiAoIWRvY3VtZW50KCktPnBhZ2luYXRl
ZCgpKQpAQCAtMTU0LDYgKzE3Niw5IEBAIHZvaWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKICAgICB9
CiAKICAgICBBU1NFUlQoIW1fbGF5b3V0U3RhdGUpOworICAgIGlmICghbmVlZHNMYXlvdXQoKSkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgTGF5b3V0U3RhdGUgc3RhdGU7CiAgICAgLy8gRklYTUU6
IE1heSBiZSBiZXR0ZXIgdG8gcHVzaCBhIGNsaXAgYW5kIGF2b2lkIGlzc3Vpbmcgb2Zmc2NyZWVu
IHJlcGFpbnRzLgogICAgIHN0YXRlLm1fY2xpcHBlZCA9IGZhbHNlOwpAQCAtMTYzLDE1ICsxODgs
MjMgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIG1fcGFnZUxvZ2ljYWxIZWlnaHRD
aGFuZ2VkID0gZmFsc2U7CiAgICAgbV9sYXlvdXRTdGF0ZSA9ICZzdGF0ZTsKIAotICAgIGlmIChu
ZWVkc0xheW91dCgpKSB7Ci0gICAgICAgIFJlbmRlckJsb2NrOjpsYXlvdXQoKTsKLSAgICAgICAg
aWYgKGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSkKLSAgICAgICAgICAgIGZsb3dUaHJlYWRD
b250cm9sbGVyKCktPmxheW91dFJlbmRlck5hbWVkRmxvd1RocmVhZHMoKTsKKyAgICBtX2xheW91
dFBoYXNlID0gUmVuZGVyVmlld05vcm1hbExheW91dDsKKyAgICBib29sIG5lZWRzVHdvUGFzc0xh
eW91dEZvckF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA9IGhhc1JlbmRlck5hbWVkRmxvd1RocmVh
ZHMoKSAmJiBmbG93VGhyZWFkQ29udHJvbGxlcigpLT5oYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lv
bnMoKTsKKworICAgIGlmIChuZWVkc1R3b1Bhc3NMYXlvdXRGb3JBdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnMpCisgICAgICAgIGZsb3dUaHJlYWRDb250cm9sbGVyKCktPnJlc2V0UmVnaW9uc092ZXJy
aWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKKworICAgIGxheW91dENvbnRlbnQoc3RhdGUpOwor
CisgICAgaWYgKG5lZWRzVHdvUGFzc0xheW91dEZvckF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucykg
eworICAgICAgICBtX2xheW91dFBoYXNlID0gQ29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dElu
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zOworICAgICAgICBmbG93VGhyZWFkQ29udHJvbGxlcigp
LT5tYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCk7CisgICAgICAgIGxheW91
dENvbnRlbnQoc3RhdGUpOwogICAgIH0KIAotICAgIEFTU0VSVChsYXlvdXREZWx0YSgpID09IExh
eW91dFNpemUoKSk7Ci0gICAgQVNTRVJUKG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQgPT0gMCk7
Ci0gICAgQVNTRVJUKG1fbGF5b3V0U3RhdGUgPT0gJnN0YXRlKTsKKyNpZm5kZWYgTkRFQlVHCisg
ICAgY2hlY2tMYXlvdXRTdGF0ZShzdGF0ZSk7CisjZW5kaWYKICAgICBtX2xheW91dFN0YXRlID0g
MDsKICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaAppbmRleCA1YWYxN2ExMTYyNDQ1MDBhNDBmNzJmNmUwMWFiN2Y4MTMxYmI2MTNm
Li5jNjRjYWZmODlmZTIxZTQzOTIwMDkxZDM5NTM0OTk1YWExZGY2MmU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTE4OCw2ICsxODgsMTAgQEAgcHVibGljOgogICAg
IGJvb2wgaGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkcygpIGNvbnN0OwogICAgIEZsb3dUaHJlYWRD
b250cm9sbGVyKiBmbG93VGhyZWFkQ29udHJvbGxlcigpOwogCisgICAgZW51bSBSZW5kZXJWaWV3
TGF5b3V0UGhhc2UgeyBSZW5kZXJWaWV3Tm9ybWFsTGF5b3V0LCBDb25zdHJhaW5lZEZsb3dUaHJl
YWRzTGF5b3V0SW5BdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgfTsKKyAgICBib29sIG5vcm1hbExh
eW91dFBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRQaGFzZSA9PSBSZW5kZXJWaWV3Tm9y
bWFsTGF5b3V0OyB9CisgICAgYm9vbCBjb25zdHJhaW5lZEZsb3dUaHJlYWRzTGF5b3V0UGhhc2Uo
KSBjb25zdCB7IHJldHVybiBtX2xheW91dFBoYXNlID09IENvbnN0cmFpbmVkRmxvd1RocmVhZHNM
YXlvdXRJbkF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsgfQorCiAgICAgdm9pZCBzdHlsZURpZENo
YW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKICAg
ICBJbnRlcnZhbEFyZW5hKiBpbnRlcnZhbEFyZW5hKCk7CkBAIC0yNDksNiArMjUzLDExIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaXNhYmxlTGF5b3V0U3RhdGUoKSB7IG1fbGF5b3V0U3RhdGVEaXNh
YmxlQ291bnQrKzsgfQogICAgIHZvaWQgZW5hYmxlTGF5b3V0U3RhdGUoKSB7IEFTU0VSVChtX2xh
eW91dFN0YXRlRGlzYWJsZUNvdW50ID4gMCk7IG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQtLTsg
fQogCisgICAgdm9pZCBsYXlvdXRDb250ZW50KGNvbnN0IExheW91dFN0YXRlJik7CisjaWZuZGVm
IE5ERUJVRworICAgIHZvaWQgY2hlY2tMYXlvdXRTdGF0ZShjb25zdCBMYXlvdXRTdGF0ZSYpOwor
I2VuZGlmCisKICAgICBzaXplX3QgZ2V0UmV0YWluZWRXaWRnZXRzKFZlY3RvcjxSZW5kZXJXaWRn
ZXQqPiYpOwogICAgIHZvaWQgcmVsZWFzZVdpZGdldHMoVmVjdG9yPFJlbmRlcldpZGdldCo+Jik7
CiAgICAgCkBAIC0zMDcsNiArMzE2LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlbmRlclF1b3RlKiBt
X3JlbmRlclF1b3RlSGVhZDsKICAgICB1bnNpZ25lZCBtX3JlbmRlckNvdW50ZXJDb3VudDsKKyAg
ICBSZW5kZXJWaWV3TGF5b3V0UGhhc2UgbV9sYXlvdXRQaGFzZTsKIH07CiAKIGlubGluZSBSZW5k
ZXJWaWV3KiB0b1JlbmRlclZpZXcoUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTc4Y2E5
ZDhlNTg4MDE5ZGU5ZDMzYjkyMTBmOTY0YTRiMzNlYTQ3ZS4uOWU5YWQyNThmMzNkMDgwYTRiM2Vk
OWRlZTU5MDg2MGIwNTgxMWZmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTEwLTE1ICBN
aWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25z
XUFkZCBzdXBwb3J0IGZvciBhdXRvLWhlaWdodCByZWdpb25zICh3aXRob3V0IHJlZ2lvbi1icmVh
a3MpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzUz
MworCisgICAgICAgIFJldmlld2VkIGJ5IEp1bGllbiBDaGFmZnJhaXguCisKKyAgICAgICAgQWRk
ZWQgdGVzdHMgZm9yIGF1dG8taGVpZ2h0IHJlZ2lvbnMsIHdpdGggZGlmZmVyZW50IHdyaXRpbmcg
bW9kZXMsIHdpdGggbWluL21heC1oZWlnaHQuCisgICAgICAgIFRoZSBidWcgcmVmZXJlbmNlZCBp
biB0aGUgdGVzdHMgaXMgdGhlIG1hc3RlciBidWcgZm9yIGF1dG8taGVpZ2h0IHN1cHBvcnQsIDkx
MDk3LgorCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJzcG9zLXJlZ2lvbi1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1h
YnNwb3MtcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVp
Z2h0LWZsb2F0cmlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWhvcml6b250YWwtYnQtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaG9yaXpvbnRhbC1i
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxpbmVi
bG9jay1ub3JtYWxmbG93LXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVn
aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVp
Z2h0LW1heGhlaWdodC1yZWdpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25z
L2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taW5oZWlnaHQtcmVnaW9uLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5vcm1hbGZsb3ctcmVnaW9uLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5v
cm1hbGZsb3ctcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LXZlcnRpY2FsLWxyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
cmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLWxyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXZlcnRpY2FsLXJsLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1maXJzdC1lbXB0eS1y
ZWdpb24taW5kZXguaHRtbDogRml4IGFuIGVsZW1lbnQgc3R5bGUgKHRob3VnaCB0aGUgdGVzdCB3
YXMgcGFzc2luZyBiZWZvcmUpLgorCiAyMDEyLTEwLTE0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlu
eWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVu
aW5nLCBUZXN0RXhwZWN0YXRpb25zIHVwZGF0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1hYnNwb3MtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1hYnNwb3MtcmVnaW9uLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTcxMzliMWMyZmM1MjgwMDhhYzdhMjY1YTY1NWU1NzdjODJjYzA4MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWFi
c3Bvcy1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuZXhw
ZWN0ZWRSZWdpb25TaXplICB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAg
ICAgICNncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBwb3NpdGlvbjogYWJzb2x1dGU7
IHRvcDogMTAwcHg7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdp
b25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50LCBh
YnNvbHV0ZWx5IHBvc2l0aW9uZWQuPC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hv
dWxkIG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0i
Z3JlZW4iIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgIDxib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJz
cG9zLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtYWJz
cG9zLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZDkxYjRlOGEwMmU3YjZkODZkODk3NWNiMDdh
YTU1NTM2MWVjNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
YXV0b2hlaWdodC1hYnNwb3MtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAg
LmZsb3dDb250ZW50U2l6ZSAgeyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyB9CisgICAgICAg
ICAgICAjYXJ0aWNsZSB7IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93OyBiYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbjsgfQorCisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXplICB7IHdpZHRoOiA1
MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWQgeyBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDBweDsgfQorCisgICAgICAgICAgICAu
cmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtp
dC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDBweDsgfQorICAg
ICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBm
b3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3
Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAg
ICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQsIGFic29sdXRlbHkgcG9zaXRpb25l
ZC48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCBy
ZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJleHBlY3Rl
ZFJlZ2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxv
d0NvbnRlbnRTaXplIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVn
aW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtZmxvYXRyaWdodC1yZWdpb24tZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVn
aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjZmNkNGMzZTY2YzE3NjEyOGNhZjQ4MzEw
NjYyYzYzODlkMzE3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwx
NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxl
PgorICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMTBweDsgfQorICAgICAgICAgICAgLmV4cGVj
dGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAg
ICNncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRv
cDogMTUwcHg7IGxlZnQ6IDYwcHg7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5n
IGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBl
bGVtZW50LCByaWdodCBmbG9hdGluZy48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBz
aG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IGlk
PSJncmVlbiIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQt
ZmxvYXRyaWdodC1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVp
Z2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdmOGE0ZGIyYTJiNmNkZDVl
MGIzZTRmN2JlNTllYTdmNjNjMzc3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWZsb2F0cmlnaHQtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxl
PgorICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMTBweDsgfQorCisgICAgICAgICAgICAuZmxv
d0NvbnRlbnRTaXplIHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAg
I2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgIGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOyB9CisKKyAgICAgICAgICAgIC5leHBlY3RlZFJlZ2lvblNpemUgeyB3aWR0aDogNTBweDsg
aGVpZ2h0OiA1MHB4OyB9CisgICAgICAgICAgICAjcmVkIHsgYmFja2dyb3VuZC1jb2xvcjogcmVk
OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTUwcHg7IGxlZnQ6IDYwcHg7IH0KKworICAgICAg
ICAgICAgLnJlZ2lvbkNvbnRhaW5lclNpemUgeyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7
IH0KKyAgICAgICAgICAgICNjb250YWluZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7ICB0b3A6IDE1
MHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHdp
ZHRoOiA1MHB4OyBmbG9hdDogcmlnaHQ7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3Jr
aW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9j
ayBlbGVtZW50LCByaWdodCBmbG9hdGluZy48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlv
dSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2
IGlkPSJyZWQiIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnRTaXplIj48L2Rpdj4KKyAgICAgICAgPGRp
diBpZD0iY29udGFpbmVyIiBjbGFzcz0icmVnaW9uQ29udGFpbmVyU2l6ZSI+CisgICAgICAgICAg
ICA8ZGl2IGlkPSJyZWdpb24iPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1o
b3Jpem9udGFsLWJ0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0
b2hlaWdodC1ob3Jpem9udGFsLWJ0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E0MmYwYjFi
ZTJiZGIwZWI4NjYyZTYwYWJkMGE5ZTNiYWYxZTRmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LWhvcml6b250YWwtYnQtZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDE5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0
LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsiPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5
bGU+CisgICAgICAgICAgICAuZ3JlZW5Cb3ggeyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAy
NTBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQorICAgICAgICAg
ICAgI2dyZWVuIHsgYm90dG9tOiAxMjVweDsgfQorICAgICAgICAgICAgI2dyZWVuMSB7IGJvdHRv
bTogMjI1cHg7IH0KKyAgICAgICAgICAgICNncmVlbjIgeyBib3R0b206IDMyNXB4OyB9CisgICAg
ICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZv
ciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTci
PiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAg
ICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgd3JpdGluZyBtb2RlIGhvcml6b250
YWwtYnQuPC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAzIGdyZWVu
IHJlY3RhbmdsZXMuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImdyZWVuQm94
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iZ3JlZW4xIiBjbGFzcz0iZ3JlZW5Cb3giPjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJncmVlbjIiIGNsYXNzPSJncmVlbkJveCI+PC9kaXY+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1
dG9oZWlnaHQtaG9yaXpvbnRhbC1idC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1
dG9oZWlnaHQtaG9yaXpvbnRhbC1idC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMWY5NjA3M2E2MTViZTc2
MjRhYWY0YzIxNTc2Nzc3NGUyM2NjNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ob3Jpem9udGFsLWJ0Lmh0bWwKQEAgLTAsMCArMSwzMSBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IGhv
cml6b250YWwtYnQ7Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAg
LmZsb3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgbGluZS1o
ZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0
LWZsb3ctaW50bzogZmxvdzsgfQorCisgICAgICAgICAgICAucmVnaW9uU2l6ZSB7IHdpZHRoOiAy
NTBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyBw
b3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMTAwcHg7IH0KKworICAgICAgICAgICAgLnJlZEJv
eCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tn
cm91bmQtY29sb3I6IHJlZDsgfQorICAgICAgICAgICAgI3JlZCB7IGJvdHRvbTogMTI1cHg7IH0K
KyAgICAgICAgICAgICNyZWQxIHsgYm90dG9tOiAyMjVweDsgfQorICAgICAgICAgICAgI3JlZDIg
eyBib3R0b206IDMyNXB4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3Ig
cmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVu
dCwgd3JpdGluZyBtb2RlIGhvcml6b250YWwtYnQuPC9wPgorICAgICAgICA8cD5PbiBzdWNjZXNz
LCB5b3Ugc2hvdWxkIHNlZSAzIGdyZWVuIHJlY3RhbmdsZXMuPC9wPgorICAgICAgICA8ZGl2IGlk
PSJyZWQiIGNsYXNzPSJyZWRCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWQxIiBjbGFz
cz0icmVkQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVkMiIgY2xhc3M9InJlZEJveCI+
PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUiIGNsYXNzPSJmbG93Q29udGVudCI+Cisg
ICAgICAgICAgICA8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4iPgorICAgICAg
ICAgICAgICAgIGEgYSBhIGEgYSBhIGEgYSBhCisgICAgICAgICAgICA8L3NwYW4+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25TaXplIj48L2Rp
dj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvYXV0b2hlaWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaW5saW5lYmxvY2stbm9y
bWFsZmxvdy1yZWdpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTM4MjhmOGMwNjhiYzEx
ODM5ZjBmM2U3OWE2YTZjOWNjMGM2ODA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaW5saW5lYmxvY2stbm9ybWFsZmxvdy1yZWdpb24tZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXpl
IHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI2dyZWVuIHsgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5n
IGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYW4gaW5saW5l
LWJsb2NrIGVsZW1lbnQgaW4gbm9ybWFsIGZsb3c8L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3Ms
IHlvdSBzaG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8
ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPGJv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hl
aWdodC1pbmxpbmVibG9jay1ub3JtYWxmbG93LXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2F1dG9oZWlnaHQtaW5saW5lYmxvY2stbm9ybWFsZmxvdy1yZWdpb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNTAyOWFhNzJlMjA3ZDcyYzE2NjZhZmM5ODEwNDRkYmM3N2ZjY2I0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtaW5saW5l
YmxvY2stbm9ybWFsZmxvdy1yZWdpb24uaHRtbApAQCAtMCwwICsxLDIzIEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAu
Zmxvd0NvbnRlbnRTaXplIHsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAg
ICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW47IH0KKworICAgICAgICAgICAgLmV4cGN0ZWRSZWdpb25TaXplIHsgd2lkdGg6IDUwcHg7
IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI3JlZCB7IGJhY2tncm91bmQtY29sb3I6IHJl
ZDsgfQorCisgICAgICAgICAgICAucmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyB9CisgICAgICAg
ICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiByZWxhdGl2
ZTsgdG9wOiAtNTBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9CisgICAgICAgIDwvc3R5bGU+
CisgICAgPC9oZWFkPgorICAgICA8Ym9keT4KKyAgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVp
Z2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgICA8cD5UaGUg
cmVnaW9uIGlzIGFuIGlubGluZS1ibG9jayBlbGVtZW50IGluIG5vcm1hbCBmbG93PC9wPgorICAg
ICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIG5vdCBzZWUgYSByZWQgcmVjdGFuZ2xlIGJl
bG93LjwvcD4KKyAgICAgICAgPGRpdiBpZD0icmVkIiBjbGFzcz0iZXhwY3RlZFJlZ2lvblNpemUi
PjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnRTaXpl
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6ZSI+PC9k
aXY+CisgICAgPGJvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTcxMjNlODkzYjZlYThiNzk0MzEwYzFiYjQ3MzE3YTFhMzFkZjU2OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1h
eGhlaWdodC1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIC5leHBl
Y3RlZFJlZ2lvblNpemUgeyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAj
Z3JlZW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTUwcHg7IGJhY2tncm91bmQtY29sb3I6
Z3JlZW47IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9h
Pi48L3A+CisgICAgICAgIDxwPlRoZSByZWdpb24gaXMgYSBibG9jayBlbGVtZW50IGluIG5vcm1h
bCBmbG93LCBoYXZpbmcgbWF4LWhlaWdodCBzcGVjaWZpZWQuPC9wPgorICAgICAgICA8cD5PbiBz
dWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAxIGdyZWVuIGxpbmUuPC9wPgorICAgICAgICA8ZGl2IGlk
PSJncmVlbiIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQt
bWF4aGVpZ2h0LXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWln
aHQtbWF4aGVpZ2h0LXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMGRiMDA3ODdhZDliMzEwMDU4
MmQ2OGJjZjQ1MDA4MmUzM2Y4ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvYXV0b2hlaWdodC1tYXhoZWlnaHQtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwyNyBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgor
ICAgICAgICAgICAgLmZsb3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTog
QWhlbTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2FydGlj
bGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgcGFkZGluZy10b3A6IDI1cHg7IH0KKworICAg
ICAgICAgICAgLnJlZ2lvblNpemUgeyB3aWR0aDogMjUwcHg7IG1heC1oZWlnaHQ6IDEwMHB4OyB9
CisgICAgICAgICAgICAjcmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IG92ZXJmbG93
OiBoaWRkZW47IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDBweDsgfQorCisgICAgICAgICAg
ICAuZXhwZWN0ZWRSZWdpb25TaXplIHsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7ICB9Cisg
ICAgICAgICAgICAjcmVkIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1MHB4OyBiYWNrZ3Jv
dW5kLWNvbG9yOnJlZDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJl
Z2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQg
aW4gbm9ybWFsIGZsb3csIGhhdmluZyBtYXgtaGVpZ2h0IHNwZWNpZmllZC48L3A+CisgICAgICAg
IDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIDEgZ3JlZW4gbGluZS48L3A+CisgICAgICAg
IDxkaXYgaWQ9InJlZCIgY2xhc3M9ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgICAg
IDxkaXYgaWQ9ImFydGljbGUiIGNsYXNzPSJmbG93Q29udGVudCI+CisgICAgICAgICAgICA8c3Bh
biBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4iPgorICAgICAgICAgICAgICAgIGEgYSBh
IGEgYSBhIGEgYSBhCisgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25TaXplIj48L2Rpdj4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdo
dC1taW5oZWlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvYXV0b2hlaWdodC1taW5oZWlnaHQtcmVnaW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzIyNzAxOWQ5OTA3NTlkMTBkM2QwZjcyMjNhZjg2NWUxNzliMDQ1MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1pbmhlaWdodC1yZWdpb24t
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25T
aXplIHsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyB9CisgICAgICAgICAgICAjZ3JlZW4g
eyBwb3NpdGlvbjogYWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB0b3A6IDE1MHB4
OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8
cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9w
PgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgaGF2aW5nIG1pbi1o
ZWlnaHQgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBz
ZWUgMSBncmVlbiByZWN0YW5nbGUuPC9wPgorICAgICAgICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9
ImV4cGVjdGVkUmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJlZ2lv
bi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWluaGVpZ2h0LXJl
Z2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYWQ2ZWY1MzAxNmQ2ZTYwYjRhOTVmNTFjOGM0ZGY2YzUy
NGQzMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hl
aWdodC1taW5oZWlnaHQtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmZs
b3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWlseTogQWhlbTsgbGluZS1oZWln
aHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZs
b3ctaW50bzogZmxvdzsgcGFkZGluZy10b3A6IDI1cHg7IH0KKworICAgICAgICAgICAgLnJlZ2lv
blNpemUgeyB3aWR0aDogMjAwcHg7IG1pbi1oZWlnaHQ6IDIwMHB4OyB9CisgICAgICAgICAgICAj
cmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9w
OiAxNTBweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKworICAgICAgICAgICAgLmV4cGVj
dGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgfQorICAgICAgICAg
ICAgI3JlZCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB0b3A6
IDE1MHB4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2luZyBmb3IgcmVnaW9uczwv
YT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sgZWxlbWVudCwgaGF2aW5n
IG1pbi1oZWlnaHQgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNo
b3VsZCBzZWUgMSBncmVlbiByZWN0YW5nbGUuPC9wPgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNs
YXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xl
IiBjbGFzcz0iZmxvd0NvbnRlbnQiPgorICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImJhY2tncm91
bmQtY29sb3I6IGdyZWVuIj4KKyAgICAgICAgICAgICAgICBhCisgICAgICAgICAgICA8L3NwYW4+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25T
aXplIj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ub3JtYWxmbG93LXJlZ2lvbi1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdpb24t
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGExNzJkMGMxOTI1Y2JkMTg1YjU3Zjk5OWFhNGUx
MDYyNzZiZGJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1
dG9oZWlnaHQtbm9ybWFsZmxvdy1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+Cisg
ICAgICAgICAgICAuZXhwZWN0ZWRSZWdpb25TaXplICB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUw
cHg7IH0KKyAgICAgICAgICAgICNncmVlbiB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgor
ICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qgd29ya2lu
ZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEgYmxvY2sg
ZWxlbWVudCBpbiBub3JtYWwgZmxvdyB3aXRoIGhlaWdodCBhdXRvLjwvcD4KKyAgICAgICAgPHA+
T24gc3VjY2VzcywgeW91IHNob3VsZCBub3Qgc2VlIGEgcmVkIHJlY3RhbmdsZSBiZWxvdy48L3A+
CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuIiBjbGFzcz0iZXhwZWN0ZWRSZWdpb25TaXplIj48L2Rp
dj4KKyAgICA8Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9hdXRvaGVpZ2h0LW5vcm1hbGZsb3ctcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvYXV0b2hlaWdodC1ub3JtYWxmbG93LXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVl
ZmJkOTViNzllMTBiMGQwZDM0ZjU4Zjc3MGEzOTJkZmFmODBjYTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1ub3JtYWxmbG93LXJlZ2lvbi5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5mbG93Q29udGVudFNpemUgIHsgd2lkdGg6
IDUwcHg7IGhlaWdodDogNTBweDsgfQorICAgICAgICAgICAgI2FydGljbGUgICAgeyAtd2Via2l0
LWZsb3ctaW50bzogZmxvdzsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KKworICAgICAgICAg
ICAgLmV4cGVjdGVkUmVnaW9uU2l6ZSB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IH0KKyAg
ICAgICAgICAgICNyZWQgICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9CisKKyAgICAg
ICAgICAgIC5yZWdpb25TaXplIHsgd2lkdGg6IDUwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24g
ICAgIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAt
NTBweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAg
ICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+
LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1lbnQgaW4gbm9ybWFs
IGZsb3cgd2l0aCBoZWlnaHQgYXV0by48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBz
aG91bGQgbm90IHNlZSBhIHJlZCByZWN0YW5nbGUgYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IGlk
PSJyZWQiIGNsYXNzPSJleHBlY3RlZFJlZ2lvblNpemUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlk
PSJhcnRpY2xlIiBjbGFzcz0iZmxvd0NvbnRlbnRTaXplIj48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uU2l6ZSI+PC9kaXY+CisgICAgPGJvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNh
bC1sci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQt
dmVydGljYWwtbHItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWYwYjU5MDU4NmQwZDRiZWM3
ODllYzcxY2JhNTBlZGY5OGFmYjlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtbHItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsx
LDE5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9k
ZTogdmVydGljYWwtbHI7Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAg
ICAgLmdyZWVuQm94IHsgcG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsgd2lkdGg6IDUwcHg7IGhlaWdodDogMjUwcHg7IH0KKyAgICAgICAgICAgICNncmVlbiB7IGxl
ZnQ6IDEyNXB4OyB9CisgICAgICAgICAgICAjZ3JlZW4xIHsgbGVmdDogMjI1cHg7IH0KKyAgICAg
ICAgICAgICNncmVlbjIgeyBsZWZ0OiAzMjVweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwv
aGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90
IHdvcmtpbmcgZm9yIHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBh
IGJsb2NrIGVsZW1lbnQsIHdyaXRpbmcgbW9kZSB2ZXJ0aWNhbC1sci48L3A+CisgICAgICAgIDxw
Pk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIDMgZ3JlZW4gcmVjdGFuZ2xlcy48L3A+CisgICAg
ICAgIDxkaXYgaWQ9ImdyZWVuIiBjbGFzcz0iZ3JlZW5Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJncmVlbjEiIGNsYXNzPSJncmVlbkJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Imdy
ZWVuMiIgY2xhc3M9ImdyZWVuQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1sci5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtbHIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wOWFhMzMyMzYyMDIyN2RiMzExZDBjNGU3NzJlYjZhNWUzOGI5ZjhjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVy
dGljYWwtbHIuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIHN0
eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7Ij4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmZsb3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4
OyBmb250LWZhbWlseTogQWhlbTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAg
ICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorCisgICAgICAg
ICAgICAucmVnaW9uU2l6ZSB7IGhlaWdodDogMjUwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24g
eyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMDBw
eDsgfQorCisgICAgICAgICAgICAucmVkQm94IHsgcG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDI1MHB4OyB9CisgICAgICAgICAg
ICAjcmVkIHsgbGVmdDogMTI1cHg7IH0KKyAgICAgICAgICAgICNyZWQxIHsgbGVmdDogMjI1cHg7
IH0KKyAgICAgICAgICAgICNyZWQyIHsgbGVmdDogMzI1cHg7IH0KKyAgICAgICAgPC9zdHlsZT4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTA5NyI+IEF1dG8gaGVpZ2h0
IGlzIG5vdCB3b3JraW5nIGZvciByZWdpb25zPC9hPi48L3A+CisgICAgICAgIDxwPlRoZSByZWdp
b24gaXMgYSBibG9jayBlbGVtZW50LCB3cml0aW5nIG1vZGUgdmVydGljYWwtbHIuPC9wPgorICAg
ICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSAzIGdyZWVuIHJlY3RhbmdsZXMuPC9w
PgorICAgICAgICA8ZGl2IGlkPSJyZWQiIGNsYXNzPSJyZWRCb3giPjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJyZWQxIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVk
MiIgY2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGUiIGNsYXNz
PSJmbG93Q29udGVudCI+CisgICAgICAgICAgICA8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW4iPgorICAgICAgICAgICAgICAgIGEgYSBhIGEgYSBhIGEgYSBhCisgICAgICAgICAg
ICA8L3NwYW4+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNz
PSJyZWdpb25TaXplIj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1ybC1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtcmwtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjQzMGQzZjhiMjMzYmY3ZjliNWNjYjA3OWI2NjcxMmM3
YzM5ZjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9o
ZWlnaHQtdmVydGljYWwtcmwtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7
Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLmdyZWVuQm94IHsg
cG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6IDUwcHg7
IGhlaWdodDogMjUwcHg7IH0KKyAgICAgICAgICAgICNncmVlbiB7IHJpZ2h0OiAxMjVweDsgfQor
ICAgICAgICAgICAgI2dyZWVuMSB7IHJpZ2h0OiAyMjVweDsgfQorICAgICAgICAgICAgI2dyZWVu
MiB7IHJpZ2h0OiAzMjVweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkxMDk3Ij4gQXV0byBoZWlnaHQgaXMgbm90IHdvcmtpbmcgZm9y
IHJlZ2lvbnM8L2E+LjwvcD4KKyAgICAgICAgPHA+VGhlIHJlZ2lvbiBpcyBhIGJsb2NrIGVsZW1l
bnQsIHdyaXRpbmcgbW9kZSB2ZXJ0aWNhbC1ybC48L3A+CisgICAgICAgIDxwPk9uIHN1Y2Nlc3Ms
IHlvdSBzaG91bGQgc2VlIDMgZ3JlZW4gcmVjdGFuZ2xlcy48L3A+CisgICAgICAgIDxkaXYgaWQ9
ImdyZWVuIiBjbGFzcz0iZ3JlZW5Cb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJncmVlbjEi
IGNsYXNzPSJncmVlbkJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImdyZWVuMiIgY2xhc3M9
ImdyZWVuQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC12ZXJ0aWNhbC1ybC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtcmwuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNDk2N2EzZGNiNzVmMmJiMTM5NzM3OGVjNGMxZmE4YzY1NGE0ZmQ2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtdmVydGljYWwtcmwuaHRt
bApAQCAtMCwwICsxLDMxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIHN0eWxlPSItd2Via2l0
LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxl
PgorICAgICAgICAgICAgLmZsb3dDb250ZW50IHsgZm9udC1zaXplOiA1MHB4OyBmb250LWZhbWls
eTogQWhlbTsgbGluZS1oZWlnaHQ6IDI7IGNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2Fy
dGljbGUgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQorCisgICAgICAgICAgICAucmVnaW9u
U2l6ZSB7IGhlaWdodDogMjUwcHg7IH0KKyAgICAgICAgICAgICNyZWdpb24geyAtd2Via2l0LWZs
b3ctZnJvbTogZmxvdzsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMTAwcHg7IH0KKworICAg
ICAgICAgICAgLnJlZEJveCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjog
cmVkOyB3aWR0aDogNTBweDsgaGVpZ2h0OiAyNTBweDsgfQorICAgICAgICAgICAgI3JlZCB7IHJp
Z2h0OiAxMjVweDsgfQorICAgICAgICAgICAgI3JlZDEgeyByaWdodDogMjI1cHg7IH0KKyAgICAg
ICAgICAgICNyZWQyIHsgcmlnaHQ6IDMyNXB4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwOTciPiBBdXRvIGhlaWdodCBpcyBub3Qg
d29ya2luZyBmb3IgcmVnaW9uczwvYT4uPC9wPgorICAgICAgICA8cD5UaGUgcmVnaW9uIGlzIGEg
YmxvY2sgZWxlbWVudCwgd3JpdGluZyBtb2RlIHZlcnRpY2FsLXJsLjwvcD4KKyAgICAgICAgPHA+
T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgMyBncmVlbiByZWN0YW5nbGVzLjwvcD4KKyAgICAg
ICAgPGRpdiBpZD0icmVkIiBjbGFzcz0icmVkQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0i
cmVkMSIgY2xhc3M9InJlZEJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZDIiIGNsYXNz
PSJyZWRCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlIiBjbGFzcz0iZmxvd0Nv
bnRlbnQiPgorICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVu
Ij4KKyAgICAgICAgICAgICAgICBhIGEgYSBhIGEgYSBhIGEgYQorICAgICAgICAgICAgPC9zcGFu
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9u
U2l6ZSI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWZpcnN0LWVtcHR5LXJlZ2lvbi1pbmRl
eC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3dlYmtpdC1uYW1lZC1mbG93LWZpcnN0
LWVtcHR5LXJlZ2lvbi1pbmRleC5odG1sCmluZGV4IGZjZDU3YzU1M2Q3MzIwMzRkYzkyYjJmNzgx
OWM3ZWFmMWU5ODk2NDIuLjcxY2IxOTU2ZmJiZDJlNjZjYWExZWM5ZDkwMTc0MjA2OWFhNTk2ZDAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy93ZWJraXQtbmFtZWQtZmxvdy1m
aXJzdC1lbXB0eS1yZWdpb24taW5kZXguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvd2Via2l0LW5hbWVkLWZsb3ctZmlyc3QtZW1wdHktcmVnaW9uLWluZGV4Lmh0bWwKQEAgLTgs
NyArOCw3IEBACiAgICAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2UgfQogICAgIC5jb250
ZW50IHsgLXdlYmtpdC1mbG93LWludG86IGZsb3cgfQogICAgIC5yZWdpb24geyAgLXdlYmtpdC1m
bG93LWZyb206IGZsb3d9Ci0gICAgI3JlZ2lvbiwgI3JlZ2lvbjIsIHJlZ2lvbjMge3dpZHRoOiAy
NTBweDsgaGVpZ2h0OiA1MHB4fQorICAgICNyZWdpb24sICNyZWdpb24yLCAjcmVnaW9uMyB7IHdp
ZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>