<?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>213659</bug_id>
          
          <creation_ts>2020-06-26 13:54:49 -0700</creation_ts>
          <short_desc>[iOS] Editable regions causes ~1% slowdown in PLT5</short_desc>
          <delta_ts>2020-06-30 12:05:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1666591</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-26 13:54:49 -0700</bug_when>
    <thetext>There is a bit of cost to compute the editable region that shows up as a ~1% slowdown in PLT5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666592</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-26 13:55:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/64361390&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666632</commentid>
    <comment_count>2</comment_count>
      <attachid>402909</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-26 15:03:40 -0700</bug_when>
    <thetext>Created attachment 402909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666634</commentid>
    <comment_count>3</comment_count>
      <attachid>402909</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-06-26 15:08:28 -0700</bug_when>
    <thetext>Comment on attachment 402909
Patch

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

&gt; Source/WebCore/page/Page.cpp:933
&gt; +        ASSERT(renderView-&gt;layer()); // Main frame render view always has a layer.
&gt; +        renderView-&gt;layer()-&gt;invalidateEventRegion(RenderLayer::EventRegionInvalidationReason::SettingDidChange);

Just invalidating the event region in the root layer seems wrong. We need to invalidate it on all layers.

&gt; Source/WebCore/page/SettingsBase.cpp:322
&gt; +    if (m_page)
&gt; +        m_page-&gt;setEditableRegionEnabled(m_page-&gt;settings().visibleDebugOverlayRegions() &amp; EditableElementRegion);

Why is visibleDebugOverlayRegionsChanged calling setEditableRegionEnabled ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666640</commentid>
    <comment_count>4</comment_count>
      <attachid>402909</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-26 15:15:47 -0700</bug_when>
    <thetext>Comment on attachment 402909
Patch

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

&gt;&gt; Source/WebCore/page/Page.cpp:933
&gt;&gt; +        renderView-&gt;layer()-&gt;invalidateEventRegion(RenderLayer::EventRegionInvalidationReason::SettingDidChange);
&gt; 
&gt; Just invalidating the event region in the root layer seems wrong. We need to invalidate it on all layers.

of course, that&apos;s what I want to do....I assumed just touching the main frame would invalidate all other layers, but I didn&apos;t check...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666686</commentid>
    <comment_count>5</comment_count>
      <attachid>402929</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-26 16:40:56 -0700</bug_when>
    <thetext>Created attachment 402929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666697</commentid>
    <comment_count>6</comment_count>
      <attachid>402929</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-26 17:12:43 -0700</bug_when>
    <thetext>Comment on attachment 402929
Patch

Got to invalidate all layers...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666800</commentid>
    <comment_count>7</comment_count>
      <attachid>402967</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-27 11:18:31 -0700</bug_when>
    <thetext>Created attachment 402967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666807</commentid>
    <comment_count>8</comment_count>
      <attachid>402971</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-27 13:34:08 -0700</bug_when>
    <thetext>Created attachment 402971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666915</commentid>
    <comment_count>9</comment_count>
      <attachid>402971</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-28 13:56:10 -0700</bug_when>
    <thetext>Comment on attachment 402971
Patch

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

I am confused about the lifetime of this setting. If WebCore::Page makes the setting persist forever, then why does the UI process keep setting state back to NO? What sets it to true on a new page if the web process crashes?

Generally a bit puzzled.

General idea seems fine, but the details seem to not be 100% solid. What is the invariant here about how this gets set? When it does get set, what guarantees everything is regenerated? How long does the flag last once it’s true? What can set it back to false?

&gt; Source/WebCore/page/Page.cpp:930
&gt; +    auto frameView = makeRefPtr(mainFrame().view());

Seems strange that we are putting FrameView into a local variable if we are not null checking it.

Also not sure why doing a ref/deref on it is particularly valuable here.

&gt; Source/WebCore/page/SettingsBase.cpp:322
&gt; +        m_page-&gt;setEditableRegionEnabled(m_page-&gt;settings().visibleDebugOverlayRegions() &amp; EditableElementRegion);

This seems wrong. We don’t want to set this back to false if it was set to true by _requestTextInputContextsInRect just because the debug overlay regions switch was flipped.

&gt; Source/WebCore/rendering/EventRegion.h:90
&gt; +    void ensureEditableRegion() { m_editableRegion = Region { }; }

This implementation does not match the name. The name implies this function will leave the editable region alone unless it doesn’t exist at all, in which case it will create one. But the implementation will overwrite an existing editable region with an empty one.

Is that what the caller wants? Can we name this more appropriately?

&gt; Source/WebCore/rendering/RenderBlock.cpp:1267
&gt; -        if (!isTextControl())
&gt; +        if (page().isEditableRegionEnabled() &amp;&amp; !isTextControl())
&gt;              needsTraverseDescendants |= document().mayHaveEditableElements();

Must admit I don’t understand this one.

&gt; Source/WebCore/rendering/RenderElement.cpp:749
&gt; +            if (page().isEditableRegionEnabled()) {

Maybe we can do the page() checking after the userModify checking? Should be decided based on which is faster. Do the faster check first.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1711
&gt; -    if (renderer().document().mayHaveEditableElements())
&gt; +    if (renderer().page().isEditableRegionEnabled() &amp;&amp; renderer().document().mayHaveEditableElements())

Are these correctly ordered with the faster check first?

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1743
&gt; +        // The existence of the editable region, even if the document has 0 editable elements, is the
&gt; +        // performance optimization. It allows the UI process to avoid messaging the web process to
&gt; +        // ask for editable elements when there are none. If there is no editable region then the UI
&gt; +        // process must always message the web process because it does not know whether or not the
&gt; +        // page has editable elements.

This long comment still doesn’t explain to me why the code below is correct or needed. Maybe a shorter comment that focuses on why this code is beneficial rather than trying to thoroughly describe the background.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:2361
&gt; +inline void RenderLayerCompositor::applyToCompositedLayerIncludingDescendants(RenderLayer&amp; layer, const ApplyFunctionType&amp; function)

The &quot;inline&quot; here is not needed. Won’t even make it more likely that it gets inlined. Please omit.

&gt; Source/WebCore/testing/InternalSettings.cpp:290
&gt; +    m_page-&gt;setEditableRegionEnabled(true);

Seems an unfortunate default if it makes all tests slightly slower and also tests the less common mode.

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:123
&gt; +    bool seenAnEditableRegion = false;

Grammatically questionable to name this &quot;seen&quot;. Maybe &quot;saw&quot;?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:938
&gt; +    _editableRegionEnabled = NO;

I don’t understand why this is helpful. Why do we want to forget whether we have told the page to enable editable regions?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4303
&gt; +    _editableRegionEnabled = NO;

Ditto.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5232
&gt; +    if (!_editableRegionEnabled)

Is this if statement an important optimization? I suggest omitting the &quot;if&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666937</commentid>
    <comment_count>10</comment_count>
      <attachid>402971</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 16:09:24 -0700</bug_when>
    <thetext>Comment on attachment 402971
Patch

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

&gt;&gt; Source/WebCore/page/Page.cpp:930
&gt;&gt; +    auto frameView = makeRefPtr(mainFrame().view());
&gt; 
&gt; Seems strange that we are putting FrameView into a local variable if we are not null checking it.
&gt; 
&gt; Also not sure why doing a ref/deref on it is particularly valuable here.

yeah, not needed or useful.

&gt;&gt; Source/WebCore/page/SettingsBase.cpp:322
&gt;&gt; +        m_page-&gt;setEditableRegionEnabled(m_page-&gt;settings().visibleDebugOverlayRegions() &amp; EditableElementRegion);
&gt; 
&gt; This seems wrong. We don’t want to set this back to false if it was set to true by _requestTextInputContextsInRect just because the debug overlay regions switch was flipped.

yep, this is wrong..oops

&gt;&gt; Source/WebCore/rendering/EventRegion.h:90
&gt;&gt; +    void ensureEditableRegion() { m_editableRegion = Region { }; }
&gt; 
&gt; This implementation does not match the name. The name implies this function will leave the editable region alone unless it doesn’t exist at all, in which case it will create one. But the implementation will overwrite an existing editable region with an empty one.
&gt; 
&gt; Is that what the caller wants? Can we name this more appropriately?

yep, this is a foot-gun. I&apos;ll fix it up to actually ensure not overwrite.

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:1267
&gt;&gt;              needsTraverseDescendants |= document().mayHaveEditableElements();
&gt; 
&gt; Must admit I don’t understand this one.

This prevents (1) in the WebCore ChangeLog.

&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:749
&gt;&gt; +            if (page().isEditableRegionEnabled()) {
&gt; 
&gt; Maybe we can do the page() checking after the userModify checking? Should be decided based on which is faster. Do the faster check first.

I think this is the faster check and it will take me 4-8 hours for PLT5 to run to know for sure though maybe micro-benchmarking will be enough 🤷‍♂️.

&gt;&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1711
&gt;&gt; +    if (renderer().page().isEditableRegionEnabled() &amp;&amp; renderer().document().mayHaveEditableElements())
&gt; 
&gt; Are these correctly ordered with the faster check first?

I think so. 🤷‍♂️I actually had them in the opposite order in earlier iterations, but it takes 4-8 hours to run PLT5 and I got good enough results with this patch. Editable region will ONLY be used on iPad and only when the requestTextInputContext IPI is invoked. So, I figured that&apos;s a smaller audience than all iOS devices.

&gt;&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1743
&gt;&gt; +        // page has editable elements.
&gt; 
&gt; This long comment still doesn’t explain to me why the code below is correct or needed. Maybe a shorter comment that focuses on why this code is beneficial rather than trying to thoroughly describe the background.

Then maybe no comment is needed. I&apos;ll just remove.

&gt;&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:2361
&gt;&gt; +inline void RenderLayerCompositor::applyToCompositedLayerIncludingDescendants(RenderLayer&amp; layer, const ApplyFunctionType&amp; function)
&gt; 
&gt; The &quot;inline&quot; here is not needed. Won’t even make it more likely that it gets inlined. Please omit.

OK.

&gt;&gt; Source/WebCore/testing/InternalSettings.cpp:290
&gt;&gt; +    m_page-&gt;setEditableRegionEnabled(true);
&gt; 
&gt; Seems an unfortunate default if it makes all tests slightly slower and also tests the less common mode.

I&apos;ll think about flipping it.

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:938
&gt;&gt; +    _editableRegionEnabled = NO;
&gt; 
&gt; I don’t understand why this is helpful. Why do we want to forget whether we have told the page to enable editable regions?

I put it here because this function is called if the web process crashes via processDidExit. When that happens then UI process needs to know it has to tell the web process to activate the future again. I could move it to processDidExit, but I thought it fit with the clean up interaction concept more generally. So, I put it here.

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5232
&gt;&gt; +    if (!_editableRegionEnabled)
&gt; 
&gt; Is this if statement an important optimization? I suggest omitting the &quot;if&quot;.

haha, I actually added this if statement just for you! Because you&apos;ve called me out in other patches for invoking a function that I know a priori would early return. Now you got me curious, when should you check before calling a function and when shouldn&apos;t you. Maybe I&apos;m misremembering, but could the deciding factor be whether that function performs an early bail out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666938</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 16:09:39 -0700</bug_when>
    <thetext>BTW thanks for the review Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666939</commentid>
    <comment_count>12</comment_count>
      <attachid>402971</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 16:15:52 -0700</bug_when>
    <thetext>Comment on attachment 402971
Patch

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

&gt;&gt;&gt; Source/WebCore/page/Page.cpp:930
&gt;&gt;&gt; +    auto frameView = makeRefPtr(mainFrame().view());
&gt;&gt; 
&gt;&gt; Seems strange that we are putting FrameView into a local variable if we are not null checking it.
&gt;&gt; 
&gt;&gt; Also not sure why doing a ref/deref on it is particularly valuable here.
&gt; 
&gt; yeah, not needed or useful.

Actually I&apos;ll null check it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666942</commentid>
    <comment_count>13</comment_count>
      <attachid>402971</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 16:38:51 -0700</bug_when>
    <thetext>Comment on attachment 402971
Patch

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

&gt;&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:123
&gt;&gt; +    bool seenAnEditableRegion = false;
&gt; 
&gt; Grammatically questionable to name this &quot;seen&quot;. Maybe &quot;saw&quot;?

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666944</commentid>
    <comment_count>14</comment_count>
      <attachid>403015</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 16:46:55 -0700</bug_when>
    <thetext>Created attachment 403015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666952</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 17:27:10 -0700</bug_when>
    <thetext>Just for me: If the web process crashes maybe the ui process should tell the web process to enable editable region if it was previously enabled. It would make a -request a bit faster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666955</commentid>
    <comment_count>16</comment_count>
      <attachid>403015</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 17:54:10 -0700</bug_when>
    <thetext>Comment on attachment 403015
Patch

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

&gt; Source/WebCore/page/SettingsBase.cpp:324
&gt; +#if ENABLE(EDITABLE_REGION)
&gt; +    if (m_page &amp;&amp; !m_page-&gt;isEditableRegionEnabled() &amp;&amp; m_page-&gt;settings().visibleDebugOverlayRegions() &amp; EditableElementRegion)
&gt; +        m_page-&gt;setEditableRegionEnabled(true);
&gt; +#endif
&gt; +}

r-; this is not good enough: the setting will not ensure editable regions are still enabled between page loads. I may just remove this change handler....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666956</commentid>
    <comment_count>17</comment_count>
      <attachid>403018</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 18:01:51 -0700</bug_when>
    <thetext>Created attachment 403018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666959</commentid>
    <comment_count>18</comment_count>
      <attachid>403021</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 18:06:31 -0700</bug_when>
    <thetext>Created attachment 403021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666960</commentid>
    <comment_count>19</comment_count>
      <attachid>403021</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 18:11:13 -0700</bug_when>
    <thetext>Comment on attachment 403021
Patch

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

&gt; Source/WebCore/page/Page.cpp:934
&gt; +    if (m_isEditableRegionEnabled == enabled)
&gt; +        return;
&gt; +    m_isEditableRegionEnabled = enabled;
&gt; +    auto frameView = makeRefPtr(mainFrame().view());
&gt; +    if (!frameView)
&gt; +        return;
&gt; +    if (auto* renderView = frameView-&gt;renderView())
&gt; +        renderView-&gt;compositor().invalidateEventRegionForAllLayers();

This should be pushed to FrameView or RenderView because a Page sticks around and is repurposed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666961</commentid>
    <comment_count>20</comment_count>
      <attachid>403021</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 18:13:44 -0700</bug_when>
    <thetext>Comment on attachment 403021
Patch

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

&gt;&gt; Source/WebCore/page/Page.cpp:934
&gt;&gt; +        renderView-&gt;compositor().invalidateEventRegionForAllLayers();
&gt; 
&gt; This should be pushed to FrameView or RenderView because a Page sticks around and is repurposed.

Probably ^^^ are still not the right place. Just need a bit per top-level document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666963</commentid>
    <comment_count>21</comment_count>
      <attachid>403021</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 18:18:53 -0700</bug_when>
    <thetext>Comment on attachment 403021
Patch

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

&gt;&gt;&gt; Source/WebCore/page/Page.cpp:934
&gt;&gt;&gt; +        renderView-&gt;compositor().invalidateEventRegionForAllLayers();
&gt;&gt; 
&gt;&gt; This should be pushed to FrameView or RenderView because a Page sticks around and is repurposed.
&gt; 
&gt; Probably ^^^ are still not the right place. Just need a bit per top-level document.

oh, I know what happened here. I was wavering between making this a forever setting triggered by UI process or making this setting stick only for the current page. Basically the idea behind the former is that once a user uses the feature I&apos;m betting they will use it across pages forever after. The later is more pessimistic. I ultimately decided on the later and forgot to stage my change to Page::didFinishLoad() to clear out m_isEditableRegionEnabled....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667286</commentid>
    <comment_count>22</comment_count>
      <attachid>403118</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-29 15:01:52 -0700</bug_when>
    <thetext>Created attachment 403118
Patch

Simplified the approach: no messaging to enable editable region from UI process. Now editable region will only be built if either WebPage::textInputContextsInRect() is invoked for the current page  or editable element region debug overlay is enabled (or both). FYI WebPage::textInputContextsInRect() is what is called by -_requestTextInputContextsInRect in the UI process. Because legacy WebKit does not use event region (and hence does not use editable region) I put the logic WebPage::textInputContextsInRect() instead of pushing it down into Page::editableElementsInRect(). I moved the checks for whether to build the editable region to be after checking if there are editable elements based on feedback from Darin though I do not know if improves perf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667297</commentid>
    <comment_count>23</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-29 15:16:05 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Comment on attachment 402971 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402971&amp;action=review
&gt; 
&gt; I am confused about the lifetime of this setting. If WebCore::Page makes the
&gt; setting persist forever, then why does the UI process keep setting state
&gt; back to NO? 

Updated patch. UI process no longer maintains setting state.

&gt; What sets it to true on a new page if the web process crashes?
&gt; 

In new patch it is now set to true if either:
    1. Editable element region debug overlay is enabled
    Or
    2. -_requestTextInputContextsInRect IPI is invoked (more precisely when WebPage::textInputContextsInRect() is invoked, but only the IPI calls it)

When web process crashes then if it was enabled via (1) it will be automatically be re-enabled by virtue of the process reading its settings. Otherwise, it won&apos;t be and this gives up a tiny bit of performance for the first -_requestTextInputContextsInRect invocation in the new process, but think that&apos;s OK for now.

&gt; Generally a bit puzzled.
&gt; 
&gt; General idea seems fine, but the details seem to not be 100% solid. What is
&gt; the invariant here about how this gets set? When it does get set, what
&gt; guarantees everything is regenerated? 

^^^ answers all of this

&gt; How long does the flag last once it’s true? What can set it back to false?

If enabled via (1) then stays true until the setting is disabled. If enabled via (2) then until the next page is committed or the web processes crashes (whichever comes first).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667300</commentid>
    <comment_count>24</comment_count>
      <attachid>403118</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-29 15:17:48 -0700</bug_when>
    <thetext>Comment on attachment 403118
Patch

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

&gt; Source/WebCore/page/Page.cpp:941
&gt; +void Page::shouldBuildEditableRegion() const

This is wrong. Should return bool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667301</commentid>
    <comment_count>25</comment_count>
      <attachid>403122</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-29 15:18:13 -0700</bug_when>
    <thetext>Created attachment 403122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667627</commentid>
    <comment_count>26</comment_count>
      <attachid>403122</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-06-30 11:02:36 -0700</bug_when>
    <thetext>Comment on attachment 403122
Patch

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

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:142
&gt; +    // If we didn&apos;t see an editable region then we don&apos;t know whether or not there are
&gt; +    // editable elements in the rect. We only know that the web process did not do an
&gt; +    // event region paint to find them. The caller will have to ask the web process to
&gt; +    // know for sure.
&gt; +    return !sawAnEditableRegion;

Rather than this long-winded comment, you could return an Optional&lt;bool&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667631</commentid>
    <comment_count>27</comment_count>
      <attachid>403122</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 11:13:26 -0700</bug_when>
    <thetext>Comment on attachment 403122
Patch

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

Thanks for the review Simon

&gt;&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:142
&gt;&gt; +    return !sawAnEditableRegion;
&gt; 
&gt; Rather than this long-winded comment, you could return an Optional&lt;bool&gt;

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667636</commentid>
    <comment_count>28</comment_count>
      <attachid>403122</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 11:24:04 -0700</bug_when>
    <thetext>Comment on attachment 403122
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:142
&gt;&gt;&gt; +    return !sawAnEditableRegion;
&gt;&gt; 
&gt;&gt; Rather than this long-winded comment, you could return an Optional&lt;bool&gt;
&gt; 
&gt; OK

Just for me: 0 callers today benefit from having a differentiation between Nullopt and false...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667650</commentid>
    <comment_count>29</comment_count>
      <attachid>403122</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 11:56:09 -0700</bug_when>
    <thetext>Comment on attachment 403122
Patch

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

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:123
&gt; +    bool sawAnEditableRegion = false;

Actually, I&apos;m not going to change the return type to Optional&lt;&gt;, but to make things a tiny bit clearer I&apos;m going to change this to:

bool possiblyHasEditableElements = true;

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:136
&gt; +        sawAnEditableRegion |= hasEditableRegion;

Then change this to:

if (hasEditableRegion)
    possiblyHasEditableElements = false;

&gt;&gt;&gt;&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:142
&gt;&gt;&gt;&gt; +    return !sawAnEditableRegion;
&gt;&gt;&gt; 
&gt;&gt;&gt; Rather than this long-winded comment, you could return an Optional&lt;bool&gt;
&gt;&gt; 
&gt;&gt; OK
&gt; 
&gt; Just for me: 0 callers today benefit from having a differentiation between Nullopt and false...

And lastly change this to:

return possiblyHasEditableElements;

I will delete the comment as well as I think the name of this local explains what the comment saids.

This function is named mayContain because it can return false positives - saids rect contains an editable element when it does not, but it never returns a false negative - if it saids the rects does not contain an editable element then it 100% doesn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667653</commentid>
    <comment_count>30</comment_count>
      <attachid>403217</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 12:02:42 -0700</bug_when>
    <thetext>Created attachment 403217
To Land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667657</commentid>
    <comment_count>31</comment_count>
      <attachid>403217</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 12:05:45 -0700</bug_when>
    <thetext>Comment on attachment 403217
To Land

Clearing flags on attachment: 403217

Committed r263762: &lt;https://trac.webkit.org/changeset/263762&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667658</commentid>
    <comment_count>32</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 12:05:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402909</attachid>
            <date>2020-06-26 15:03:40 -0700</date>
            <delta_ts>2020-06-26 16:40:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213659-20200626150339.patch</filename>
            <type>text/plain</type>
            <size>40235</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU5M2Q4ODRhM2VjOWQ1
NDk1NDAzNTEyY2EyNDJlY2Q5ZmEzNTZlYi4uMTEzYjZiZGEwNDZiNWZmNzk1ZjUzMTAzODBiOGEx
MWI3YjgwNDYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIwLTA2LTI2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIHNsb3dkb3duIGJ5IGFkZGluZyBhIHJ1bnRpbWUgc3dpdGNoIHRvIGVuYWJs
ZSBlZGl0YWJsZSByZWdpb24gY29tcHV0YXRpb24gYW5kCisgICAgICAgIGRpc2FibGUgaXQgYnkg
ZGVmYXVsdC4gVGhlIFVJIHByb2Nlc3Mgd2lsbCBmbGlwIHRoZSBzd2l0Y2ggb24gdGhlIGZpcnN0
IGludm9jYXRpb24gb2YKKyAgICAgICAgLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Qu
CisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwYXJ0cyB0aGF0IG1ha2UgY29tcHV0aW5nIHRoZSBl
ZGl0YWJsZSByZWdpb24gZXhwZW5zaXZlOgorICAgICAgICAgICAgICAgIDEuIFJlcXVpcmVzIHRy
YXZlcnNpbmcgZGVzY2VuZGVudHMgZHVyaW5nIHBhaW50aW5nIHdoZW4gYSBub3JtYWwgcGFpbnQg
bWF5IGJlCisgICAgICAgICAgICAgICAgICAgYWJsZSB0byBhdm9pZCB0aGlzLgorICAgICAgICAg
ICAgICAgIDIuIENhbiBjYXVzZSBtb3JlIGV2ZW50IHJlZ2lvbiBpbnZhbGlkYXRpb25zIGJlY2F1
c2UgaXQgZXh0ZW5kcyB0aGUgaW52YWxpZGF0aW9uCisgICAgICAgICAgICAgICAgICAgY3JpdGVy
aW9uIHRvIGluY2x1ZGUgY2hhbmdlcyB0byBlbGVtZW50IGVkaXRhYmlsaXR5LgorCisgICAgICAg
IFVzaW5nIGEgcnVudGltZSBzd2l0Y2ggYXZvaWRzIHBheWluZyB0aGVzZSBjb3N0cyB1bnRpbCB0
aGUgZmVhdHVyZSBpcyBuZWVkZWQuIFRvIG1ha2UKKyAgICAgICAgZGVidWdnaW5nIGVhc2llciBm
b3IgbWUsIGVuYWJsaW5nIHRoZSBlZGl0YWJsZSByZWdpb24gZGVidWcgb3ZlcmxheSB3aWxsIGFs
c28gZW5hYmxlCisgICAgICAgIGVkaXRhYmxlIHJlZ2lvbi4KKworICAgICAgICBUZXN0czogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdp
b24uaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdp
dGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbAor
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW52
YWxpZGF0ZUNvbnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZCk6IENoZWNrIGlmIGVkaXRhYmxlIHJl
Z2lvbiBpcyBlbmFibGVkLgorICAgICAgICBJZiBpdCBpcyB0aGVuIGRvIHdoYXQgd2UgZG8gbm93
LiBPdGhlcndpc2UsIGRvbid0IGludmFsaWRhdGUgdGhlIHJlZ2lvbiB1bmxlc3Mgd2Ugd2VyZSBn
b2luZworICAgICAgICB0byBkbyBzbyBhbnl3YXkuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVk
LiBVcGRhdGUgc3RhdGUgYW5kIHRoZW4gaW52YWxpZGF0ZQorICAgICAgICB0aGUgZXZlbnQgcmVn
aW9uIGZvciB0aGUgbWFpbiBmcmFtZS4gTm90ZSB0aGF0IHRoZSBtYWluIGZyYW1lIGFsd2F5cyBo
YXMgYSBsYXllci4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmlzRWRpdGFibGVSZWdpb25FbmFibGVkIGNvbnN0KTogQWRkZWQuCisKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwOgorICAg
ICAgICBBZGQgYSBjaGFuZ2UgaGFuZGxlciB0aGF0IGlzIGludm9rZWQgd2hlbmV2ZXIgdmlzaWJs
ZURlYnVnT3ZlcmxheVJlZ2lvbnMgY2hhbmdlcy4gVGhpcyBoYW5kbGVyCisgICAgICAgIGp1c3Qg
dHVybnMgYXJvdW5kIGFuZCBjYWxscyBQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSBw
YXNzaW5nIHdoZXRoZXIgdGhlIGRlYnVnIG92ZXJsYXkKKyAgICAgICAgZm9yIGVkaXRhYmxlIHJl
Z2lvbiBpcyBlbmFibGVkIG9yIG5vdC4gVGhpcyBrZWVwcyB0aGUgVUkgYmVoYXZpb3Igd2UgaGF2
ZSBub3csIGJ1dCBmb3IgYSBkaWZmZXJlbnQKKyAgICAgICAgcmVhc29uOiBJIGZpbmQgaXQgY29u
dmVuaWVudCB0byB1c2UgdGhlIG92ZXJsYXkgdG8gZXllYmFsbCB3aGV0aGVyIHRoZXJlIGFyZSBh
bnkgZWRpdGFibGUgZWxlbWVudHMKKyAgICAgICAgb24gdGhlIHBhZ2UgYXMgcGFydCBvZiBidWcg
dHJpYWdpbmcgd2l0aCBhIG5vbi1kZWJ1ZyBidWlsZC4gTm90IGRvaW5nIHRoaXMgd291bGQgaW1w
b3NlIHRoZQorICAgICAgICBpbmNvbnZlbmllbmNlIG9mIHJlcXVpcmluZyBhIGRlYnVnIHNldHVw
IG9uIGhhbmQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnVuaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
UmVnaW9uOjp0cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmNvbnRh
aW5zRWRpdGFibGVFbGVtZW50c0luUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dFJlZ2lvbjo6ZHVtcCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZW5zdXJlRWRpdGFibGVSZWdpb24pOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpoYXNFZGl0YWJsZVJlZ2lvbiBj
b25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnJlY3RzRm9yRWRp
dGFibGVFbGVtZW50cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZGVj
b2RlKToKKyAgICAgICAgVGhlIGVkaXRhYmxlIHJlZ2lvbiBpcyBub3cgYW4gT3B0aW9uYWw8Pi4g
VGhlcmUgd2lsbCBvbmx5IGJlIG9uZSBpZiBlbnN1cmVFZGl0YWJsZVJlZ2lvbgorICAgICAgICB3
YXMgY2FsbGVkLCB3aGljaCBpcyBvbmx5IHdoZW4gUGFnZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQoKSByZXR1cm5zIHRydWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJF
bGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjptYWludGFpbnNFdmVudFJlZ2lvbiBjb25z
dCk6CisgICAgICAgIE9ubHkgZG8gd2hhdCB3ZSBkbyBub3cgaWYgUGFnZTo6aXNFZGl0YWJsZVJl
Z2lvbkVuYWJsZWQoKSByZXR1cm5zIHRydWUuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlRXZlbnRSZWdpb24pOiBDYWxsIGVuc3VyZUVkaXRhYmxlUmVnaW9u
IGlmIFBhZ2U6OmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgcmV0dXJucyB0cnVlLgorCisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsU2V0dGluZ3M6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsOgorICAgICAgICBBZGQgYSBuZXcgaW50ZXJuYWwgc2V0dGluZyBmb3IgdGVz
dGluZyBwdXJwb3NlcyB0byB0b2dnbGUgZW5hYmxpbmcvZGlzYWJsaW5nIGVkaXRhYmxlIHJlZ2lv
bi4KKyAgICAgICAgS2VlcCB0aGUgY3VycmVudCBiZWhhdmlvciB3ZSBoYXZlIGluIHRlc3Rpbmcg
bm93IGJ5IGVuYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbiBieSBkZWZhdWx0LgorCiAyMDIwLTA2LTI2
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnRl
bnQgc29tZXRpbWVzIG1pc3NpbmcgaW4gbmVzdGVkIHNjcm9sbGVycyB3aXRoIGJvcmRlci1yYWRp
dXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNzdiMTkwNDgxYWJhZWNmMjM2MjA4NTQ3ZTlhODE5Y2NiYjUzNDM4MC4u
MmI5ZGQ0ZmVkNmMxMDY5ZGMzM2E5MmNkYzBiYjFhYjVkMTYxZTkwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAyMC0wNi0yNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPU10gRWRpdGFibGUgcmVnaW9ucyBjYXVzZXMgfjElIHNsb3dkb3duIGlu
IFBMVDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MzY1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNjEzOTA+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHVwIFJlbW90ZUxheWVyVHJlZVZp
ZXdzIG5vdyB0aGF0IHRoZSBlZGl0YWJsZSByZWdpb24gaXMgYW4gT3B0aW9uYWw8Pi4gSGF2ZQor
ICAgICAgICB0aGUgVUkgcHJvY2VzcyBtZXNzYWdlIHRoZSB3ZWIgcHJvY2VzcyB0byBlbmFibGUg
ZWRpdGFibGUgcmVnaW9uIG9uIHRoZSBmaXJzdAorICAgICAgICBpbnZvY2F0aW9uIG9mIF9yZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3QsIHdoaWNoIGlzIGdvb2QgaW5kaWNhdG9yIHRoYXQg
dGhlcmUKKyAgICAgICAgd291bGQgYmUgYmVuZWZpdCB0byBjb21wdXRpbmcgaXQgYXMgYSB0eXBp
Y2FsIGNsaWVudCB0aGF0IGNhbGxzIGl0IHdpbGwgY2FsbCBpdAorICAgICAgICBtYW55IHRpbWVz
LgorCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJU
cmVlVmlld3MubW06CisgICAgICAgIChXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KTogRml4IHVwIHRoZSBsb2dpYyBub3cgdGhhdCB0aGVyZSBtYXkKKyAgICAgICAgYmUg
bm90IGJlIGFuIGVkaXRhYmxlIHJlZ2lvbiBzZW50IG92ZXIgaW4gdGhlIGxhc3QgZXZlbnQgcmVn
aW9uIHVwZGF0ZS4gSWYgdGhlcmUKKyAgICAgICAgaXNuJ3Qgb25lIHRoZW4gd2UgZG9uJ3Qga25v
dyBpZiB0aGVyZSBhcmUgZWRpdGFibGUgZWxlbWVudHMgaXMgaW4gdGhlIHJlY3Qgb2Ygbm90Lgor
ICAgICAgICBTbywganVzdCByZXR1cm4gdHJ1ZTogdGhlcmUgbWF5IGJlIGVkaXRhYmxlIGVsZW1l
bnRzIGluIHRoZSByZWN0LiBUaGUgY2FsbGVyIHdpbGwKKyAgICAgICAgaGF2ZSB0byBtZXNzYWdl
IHRoZSB3ZWIgcHJvY2VzcyB0byBmaW5kIG91dCB0aGUgcmVhbCBhbnN3ZXIuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVy
YWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZENvbW1pdExvYWRGb3JNYWlu
RnJhbWVdKToKKyAgICAgICAgQWRkZWQgYSBuZXcgaXZhciB0byB0cmFjayBpbiB0aGUgVUkgcHJv
Y2VzcyB3aGV0aGVyIGl0IGFscmVhZHkgcmVxdWVzdGVkIHRoZSB3ZWIKKyAgICAgICAgcHJvY2Vz
cyB0byBlbmFibGUgdGhlIGVkaXRhYmxlIHJlZ2lvbi4gVGhlIHdlYiBwcm9jZXNzIGNhbm5vdCBk
ZW55IHRoZSByZXF1ZXN0IHNvCisgICAgICAgIGl0IHJlcHJlc2VudHMgd2hldGhlciB0aGUgZmVh
dHVyZSB3YXMgZW5hYmxlZCBvciBub3QgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBJZiBlZGl0YWJsZQorICAgICAgICByZWdpb24gaXMgbm90IGVuYWJsZSB0aGVu
IGRvIHNvIG5vdy4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBBZGQgYSBuZXcgbWVz
c2FnZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVk
LgorCiAyMDIwLTA2LTI2ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW5pdGlhbGl6aW5nIHRoZSBtYWluIHRocmVhZCBzaG91bGQgaW5pdGlhbGl6ZSB0aGUg
bWFpbiBydW4gbG9vcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBkMDRmYTBjMzllMGViOWE4M2Nj
ZDg2NGU0MmFlMzA0MmI5OTI4MzA4Li40MTgxMjQ5ZTdjMjlkN2U1NzhkZmJjZGY4YzZmOTljMDU2
OWQ0YmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgRnJh
bWU6OmludmFsaWRhdGVDb250ZW50RXZlbnRSZWdpb25zSWZOZWVkZWQoKQogICAgIGhhc1RvdWNo
QWN0aW9uRWxlbWVudHMgPSBtX2RvYy0+bWF5SGF2ZUVsZW1lbnRzV2l0aE5vbkF1dG9Ub3VjaEFj
dGlvbigpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBoYXNFZGl0
YWJsZUVsZW1lbnRzID0gbV9kb2MtPm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CisgICAgaGFz
RWRpdGFibGVFbGVtZW50cyA9IG1fcGFnZS0+aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSAmJiBt
X2RvYy0+bWF5SGF2ZUVkaXRhYmxlRWxlbWVudHMoKTsKICNlbmRpZgogICAgIC8vIEZJWE1FOiBU
aGlzIG5lZWRzIHRvIGxvb2sgYXQgd2hlZWwgZXZlbnQgaGFuZGxlcnMgdG9vLgogICAgIGlmICgh
aGFzVG91Y2hBY3Rpb25FbGVtZW50cyAmJiAhaGFzRWRpdGFibGVFbGVtZW50cykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCmluZGV4IDE0Njc5MTZiMGIxOWVjNzI2N2M3ZDhiZDg1ZGJkZmQwZmQyZGJkYTUuLjFk
NTI2YTEzYWQxYzA4OTU4YTJhZmY1MzJiNTIyODA4NzJkNmM0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtOTIwLDYgKzkyMCwyMiBAQCB2b2lkIFBhZ2U6OnVubWFya0FsbFRleHRNYXRjaGVzKCkK
ICAgICB9KTsKIH0KIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKK3ZvaWQgUGFnZTo6
c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAobV9pc0Vk
aXRhYmxlUmVnaW9uRW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisgICAgbV9p
c0VkaXRhYmxlUmVnaW9uRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgYXV0byBmcmFtZVZpZXcgPSBt
YWtlUmVmUHRyKG1haW5GcmFtZSgpLnZpZXcoKSk7CisgICAgaWYgKGF1dG8qIHJlbmRlclZpZXcg
PSBmcmFtZVZpZXctPnJlbmRlclZpZXcoKSkgeworICAgICAgICBBU1NFUlQocmVuZGVyVmlldy0+
bGF5ZXIoKSk7IC8vIE1haW4gZnJhbWUgcmVuZGVyIHZpZXcgYWx3YXlzIGhhcyBhIGxheWVyLgor
ICAgICAgICByZW5kZXJWaWV3LT5sYXllcigpLT5pbnZhbGlkYXRlRXZlbnRSZWdpb24oUmVuZGVy
TGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5nRGlkQ2hhbmdlKTsK
KyAgICB9Cit9CisKKyNlbmRpZgorCiBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBQYWdlOjplZGl0YWJs
ZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2VhcmNoUmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcykgY29uc3QKIHsKICAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIobWFpbkZy
YW1lKCkudmlldygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYWMyMDY0NGJlMzkyNThkOTYwZTRjNDUz
OGY1MzJmNzZiNTI3MmY1My4uMGFmY2NlZmJjMGNjN2ZmMjRjMTdhNWQ4YzhiMDg1MTA5ZTlmMjRj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTc0Miw2ICs3NDIsMTEgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmLCBXVEZMb2dDaGFubmVsU3Rh
dGUsIFdURkxvZ0xldmVsKTsKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgYm9v
bCBpc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFZGl0YWJsZVJl
Z2lvbkVuYWJsZWQ7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVkaXRhYmxlUmVnaW9u
RW5hYmxlZChib29sKTsKKyNlbmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxF
bGVtZW50Pj4gZWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsK
IAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkp
CkBAIC0xMDAzLDYgKzEwMDgsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzUmVzb3VyY2VM
b2FkQ2xpZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1fZGVsZWdhdGVzU2NhbGluZyB7IGZhbHNl
IH07CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIGJvb2wgbV9pc0VkaXRhYmxl
UmVnaW9uRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIFVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24gbV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHsgVXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbjo6TFRSIH07CiAgICAgCiAgICAgLy8gRm9yIHRlc3RpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMDZjZWRkMzllY2NmYjkwOGVkMzUyMTliODliMGUx
MTIzYzVhMDc4NS4uMjEzOTE3NzNjN2I1NGUxYzgwMWYyYTYxY2QxNzc4ZGRiODIxODZkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMTU2LDYgKzE1Niw3IEBAIHNob3dSZXBhaW50
Q291bnRlcjoKIHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOgogICB0eXBlOiBEZWJ1Z092ZXJs
YXlSZWdpb25zCiAgIGluaXRpYWw6IDAKKyAgb25DaGFuZ2U6IHZpc2libGVEZWJ1Z092ZXJsYXlS
ZWdpb25zQ2hhbmdlZAogc2hvd1RpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yOgogICBpbml0aWFsOiBm
YWxzZQogcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
c0Jhc2UuY3BwCmluZGV4IDc4NDc3YTliOTI4NjFhNWI5NjE2MjNiYjFmNTAxMTQxNmJjYjQwYjUu
LjAxZDk4OTliZDFiNzhiMWEzOTlkZWY1NWViMzhlZTlkYWVhNWQ0MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzQmFzZS5jcHAKQEAgLTMxNSw2ICszMTUsMTQgQEAgdm9pZCBTZXR0aW5nc0Jh
c2U6OmljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWRDaGFuZ2VkKCkKICAgICAgICAgbV9wYWdl
LT5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiB9CiAKK3ZvaWQgU2V0dGluZ3NCYXNl
Ojp2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9uc0NoYW5nZWQoKQoreworI2lmIEVOQUJMRShFRElU
QUJMRV9SRUdJT04pCisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5zZXRFZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQobV9wYWdlLT5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdp
b25zKCkgJiBFZGl0YWJsZUVsZW1lbnRSZWdpb24pOworI2VuZGlmCit9CisKICNpZiBFTkFCTEUo
VEVYVF9BVVRPU0laSU5HKQogCiB2b2lkIFNldHRpbmdzQmFzZTo6c2hvdWxkRW5hYmxlVGV4dEF1
dG9zaXppbmdCb29zdENoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5nc0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKaW5kZXgg
YWYyMjQ5ZGIzMGMyY2NlNmRkZDJlYzEyOTUwMmRhOWZkMGU3ZmU0NS4uNjc4ZWRkYjcyMDg2ODVk
M2Y1YjM4OGYzY2VkYTI5N2Q5NTNjNGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5nc0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5o
CkBAIC0xOTMsNiArMTkzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgaGlkZGVuUGFnZUNTU0Fu
aW1hdGlvblN1c3BlbnNpb25FbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVzb3VyY2VVc2Fn
ZU92ZXJsYXlWaXNpYmxlQ2hhbmdlZCgpOwogICAgIHZvaWQgaWNlQ2FuZGlkYXRlRmlsdGVyaW5n
RW5hYmxlZENoYW5nZWQoKTsKKyAgICB2b2lkIHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zQ2hh
bmdlZCgpOwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgdm9pZCBzaG91bGRFbmFi
bGVUZXh0QXV0b3NpemluZ0Jvb3N0Q2hhbmdlZCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V2ZW50UmVnaW9uLmNwcAppbmRleCA2M2NiMjNkN2ZlOWQwN2Q0Yjg0ZWQ0YTE4MmY4
ZGMxZTJiOWY0MzMxLi44NzM5NGVkNjM5OTAzZTIyZmJlM2JlNjc4MmM0N2NiZWQ1OWIzNmJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKQEAgLTEzMCw4ICsxMzAs
OCBAQCB2b2lkIEV2ZW50UmVnaW9uOjp1bml0ZShjb25zdCBSZWdpb24mIHJlZ2lvbiwgY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBib29sIG92ZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQotICAgIGlmIChvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxl
LnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25seSkKLSAgICAgICAgbV9lZGl0YWJs
ZVJlZ2lvbi51bml0ZShyZWdpb24pOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uICYmIChvdmVy
cmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxlLnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9k
aWZ5OjpSZWFkT25seSkpCisgICAgICAgIG1fZWRpdGFibGVSZWdpb24tPnVuaXRlKHJlZ2lvbik7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlKTsK
ICNlbmRpZgpAQCAtMTU2LDcgKzE1Niw4IEBAIHZvaWQgRXZlbnRSZWdpb246OnRyYW5zbGF0ZShj
b25zdCBJbnRTaXplJiBvZmZzZXQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJ
T04pCi0gICAgbV9lZGl0YWJsZVJlZ2lvbi50cmFuc2xhdGUob2Zmc2V0KTsKKyAgICBpZiAobV9l
ZGl0YWJsZVJlZ2lvbikKKyAgICAgICAgbV9lZGl0YWJsZVJlZ2lvbi0+dHJhbnNsYXRlKG9mZnNl
dCk7CiAjZW5kaWYKIH0KIApAQCAtMjgzLDEwICsyODQsMTIgQEAgY29uc3QgUmVnaW9uJiBFdmVu
dFJlZ2lvbjo6ZXZlbnRMaXN0ZW5lclJlZ2lvbkZvclR5cGUoRXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGUgdHkKICNlbmRpZiAvLyBFTkFCTEUoV0hFRUxfRVZFTlRfUkVHSU9OUykKIAogI2lmIEVOQUJM
RShFRElUQUJMRV9SRUdJT04pCisKIGJvb2wgRXZlbnRSZWdpb246OmNvbnRhaW5zRWRpdGFibGVF
bGVtZW50c0luUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogewotICAgIHJldHVybiBt
X2VkaXRhYmxlUmVnaW9uLmludGVyc2VjdHMocmVjdCk7CisgICAgcmV0dXJuIG1fZWRpdGFibGVS
ZWdpb24gJiYgbV9lZGl0YWJsZVJlZ2lvbi0+aW50ZXJzZWN0cyhyZWN0KTsKIH0KKwogI2VuZGlm
CiAKIHZvaWQgRXZlbnRSZWdpb246OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNvbnN0CkBAIC0zMjIs
OCArMzI1LDggQEAgdm9pZCBFdmVudFJlZ2lvbjo6ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBpZiAoIW1fZWRpdGFi
bGVSZWdpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGVkaXRhYmxl
IHJlZ2lvbiIgPDwgbV9lZGl0YWJsZVJlZ2lvbjsKKyAgICBpZiAobV9lZGl0YWJsZVJlZ2lvbiAm
JiAhbV9lZGl0YWJsZVJlZ2lvbi0+aXNFbXB0eSgpKSB7CisgICAgICAgIHRzIDw8IGluZGVudCA8
PCAiKGVkaXRhYmxlIHJlZ2lvbiIgPDwgKm1fZWRpdGFibGVSZWdpb247CiAgICAgICAgIHRzIDw8
IGluZGVudCA8PCAiKVxuIjsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2
ZW50UmVnaW9uLmgKaW5kZXggNTAxMjQzZTA0OGI5ODRlNmIwNjZkYTk0YjU4MjUyOGZkNWRkZWU4
Mi4uMGJjMDUxMmZlZDQxZGMxYzlkZDFlYWY0YzJkYjFkZWJhY2M5ZmY2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKQEAgLTg3LDggKzg3LDEwIEBAIHB1YmxpYzoKICNl
bmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICB2b2lkIGVuc3VyZUVkaXRh
YmxlUmVnaW9uKCkgeyBtX2VkaXRhYmxlUmVnaW9uID0gUmVnaW9uIHsgfTsgfQorICAgIGJvb2wg
aGFzRWRpdGFibGVSZWdpb24oKSBjb25zdCB7IHJldHVybiBtX2VkaXRhYmxlUmVnaW9uLmhhc1Zh
bHVlKCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbnRhaW5zRWRpdGFibGVFbGVtZW50
c0luUmVjdChjb25zdCBJbnRSZWN0JikgY29uc3Q7Ci0gICAgVmVjdG9yPEludFJlY3QsIDE+IHJl
Y3RzRm9yRWRpdGFibGVFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24u
cmVjdHMoKTsgfQorICAgIFZlY3RvcjxJbnRSZWN0LCAxPiByZWN0c0ZvckVkaXRhYmxlRWxlbWVu
dHMoKSBjb25zdCB7IHJldHVybiBtX2VkaXRhYmxlUmVnaW9uID8gbV9lZGl0YWJsZVJlZ2lvbi0+
cmVjdHMoKSA6IFZlY3RvcjxJbnRSZWN0LCAxPiB7IH07IH0KICNlbmRpZgogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpAQCAtMTEzLDcg
KzExNSw3IEBAIHByaXZhdGU6CiAgICAgUmVnaW9uIG1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRMaXN0
ZW5lclJlZ2lvbjsKICNlbmRpZgogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgUmVn
aW9uIG1fZWRpdGFibGVSZWdpb247CisgICAgT3B0aW9uYWw8UmVnaW9uPiBtX2VkaXRhYmxlUmVn
aW9uOwogI2VuZGlmCiB9OwogCkBAIC0xNTIsNyArMTU0LDcgQEAgT3B0aW9uYWw8RXZlbnRSZWdp
b24+IEV2ZW50UmVnaW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICNlbmRpZgogCiAjaWYg
RU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBPcHRpb25hbDxSZWdpb24+IGVkaXRhYmxlUmVn
aW9uOworICAgIE9wdGlvbmFsPE9wdGlvbmFsPFJlZ2lvbj4+IGVkaXRhYmxlUmVnaW9uOwogICAg
IGRlY29kZXIgPj4gZWRpdGFibGVSZWdpb247CiAgICAgaWYgKCFlZGl0YWJsZVJlZ2lvbikKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCmluZGV4IGY1ZjRlMzZhZDNlZDZlY2M2ZDBmYjc4YjRhNzE2ZWFlODNjODQ3ZGYu
Ljk2ZGRlM2ExNGQ5NmZhYWU4N2NmYTgxNGQzN2RmZTljMDAwZDIxNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTI2Myw3ICsxMjYzLDcgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnMKICAgICAgICAgLy8gV2UgdHJlYXQgdGhlIGVudGlyZSB0ZXh0IGNv
bnRyb2wgYXMgZWRpdGFibGUgdG8gbWF0Y2ggdXNlcnMnIGV4cGVjdGF0aW9uIGV2ZW4KICAgICAg
ICAgLy8gdGhvdWdoIGl0J3MgYWN0dWFsbHkgdGhlIGlubmVyIHRleHQgZWxlbWVudCBvZiB0aGUg
Y29udHJvbCB0aGF0IGlzIGVkaXRhYmxlLgogICAgICAgICAvLyBTbywgbm8gbmVlZCB0byB0cmF2
ZXJzZSB0byBmaW5kIHRoZSBpbm5lciB0ZXh0IGVsZW1lbnQgaW4gdGhpcyBjYXNlLgotICAgICAg
ICBpZiAoIWlzVGV4dENvbnRyb2woKSkKKyAgICAgICAgaWYgKHBhZ2UoKS5pc0VkaXRhYmxlUmVn
aW9uRW5hYmxlZCgpICYmICFpc1RleHRDb250cm9sKCkpCiAgICAgICAgICAgICBuZWVkc1RyYXZl
cnNlRGVzY2VuZGFudHMgfD0gZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygpOwog
I2VuZGlmCiAgICAgICAgIGlmICghbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDdkNjhjZGIzMTkxMjE2ZTM2
N2Y5ODY2Zjc5YzhkOGIxODgwMjQ0YWEuLjM4YmMxMTczYTM3NjZmN2Q5MTQ3N2U2OTA3M2U0MWJi
YjczNjcyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAK
QEAgLTc0NiwxMCArNzQ2LDEyIEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgICAg
ICBpZiAobV9zdHlsZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSAhPSBuZXdTdHlsZS5ldmVu
dExpc3RlbmVyUmVnaW9uVHlwZXMoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNp
ZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgICAgICAgICAgYm9vbCB3YXNFZGl0YWJsZSA9
IG1fc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5OwotICAgICAgICAg
ICAgYm9vbCBpc0VkaXRhYmxlID0gbmV3U3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6
OlJlYWRPbmx5OwotICAgICAgICAgICAgaWYgKHdhc0VkaXRhYmxlICE9IGlzRWRpdGFibGUpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBpZiAocGFnZSgpLmlzRWRp
dGFibGVSZWdpb25FbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBib29sIHdhc0VkaXRhYmxl
ID0gbV9zdHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7CisgICAgICAg
ICAgICAgICAgYm9vbCBpc0VkaXRhYmxlID0gbmV3U3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJN
b2RpZnk6OlJlYWRPbmx5OworICAgICAgICAgICAgICAgIGlmICh3YXNFZGl0YWJsZSAhPSBpc0Vk
aXRhYmxlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0K
ICNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAwM2ViNjFkZGIxMWJlODRiMGZhOTVhZjBi
MTBhNWVkOTBmMDllM2E5Li40NzM1ZGFiODMwZDE5MmE0ZDAzNzM1NDE5ZWFhODlkOWFiMTdjNWZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtOTI3LDcgKzkyNyw3
IEBAIHB1YmxpYzoKIAogICAgIC8vIEludmFsaWRhdGlvbiBjYW4gZmFpbCBpZiB0aGVyZSBpcyBu
byBlbmNsb3NpbmcgY29tcG9zaXRpbmcgbGF5ZXIgKGUuZy4gbmVzdGVkIGlmcmFtZSkKICAgICAv
LyBvciB0aGUgbGF5ZXIgZG9lcyBub3QgbWFpbnRhaW4gYW4gZXZlbnQgcmVnaW9uLgotICAgIGVu
dW0gY2xhc3MgRXZlbnRSZWdpb25JbnZhbGlkYXRpb25SZWFzb24geyBQYWludCwgU3R5bGUsIE5v
bkNvbXBvc2l0ZWRGcmFtZSB9OworICAgIGVudW0gY2xhc3MgRXZlbnRSZWdpb25JbnZhbGlkYXRp
b25SZWFzb24geyBQYWludCwgU2V0dGluZ0RpZENoYW5nZSwgU3R5bGUsIE5vbkNvbXBvc2l0ZWRG
cmFtZSB9OwogICAgIGJvb2wgaW52YWxpZGF0ZUV2ZW50UmVnaW9uKEV2ZW50UmVnaW9uSW52YWxp
ZGF0aW9uUmVhc29uKTsKIAogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CmluZGV4IDIzNzZiNjIwZTE3NWZiYTk4ZWFlZjY0MmJkYTVlZjlhYTJmNzNkOTkuLjU0ZWU5NzBm
YTMzYzU2ZWEzZjI0YWM3NzJkODNjZjE2OGExYjQwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNzA4LDcgKzE3MDgsNyBAQCBi
b29sIFJlbmRlckxheWVyQmFja2luZzo6bWFpbnRhaW5zRXZlbnRSZWdpb24oKSBjb25zdAogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0g
ICAgaWYgKHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygpKQor
ICAgIGlmIChyZW5kZXJlcigpLnBhZ2UoKS5pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpICYmIHJl
bmRlcmVyKCkuZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTczNSw2
ICsxNzM1LDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbigp
CiAgICAgYXV0byB1cGRhdGVFdmVudFJlZ2lvbkZvckxheWVyID0gWyZdKEdyYXBoaWNzTGF5ZXIm
IGdyYXBoaWNzTGF5ZXIpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0IG51bGxDb250ZXh0KG51
bGxwdHIpOwogICAgICAgICBFdmVudFJlZ2lvbiBldmVudFJlZ2lvbjsKKyAgICAgICAgLy8gVGhl
IGV4aXN0ZW5jZSBvZiB0aGUgZWRpdGFibGUgcmVnaW9uLCBldmVuIGlmIHRoZSBkb2N1bWVudCBo
YXMgMCBlZGl0YWJsZSBlbGVtZW50cywgaXMgdGhlCisgICAgICAgIC8vIHBlcmZvcm1hbmNlIG9w
dGltaXphdGlvbi4gSXQgYWxsb3dzIHRoZSBVSSBwcm9jZXNzIHRvIGF2b2lkIG1lc3NhZ2luZyB0
aGUgd2ViIHByb2Nlc3MgdG8KKyAgICAgICAgLy8gYXNrIGZvciBlZGl0YWJsZSBlbGVtZW50cyB3
aGVuIHRoZXJlIGFyZSBub25lLiBJZiB0aGVyZSBpcyBubyBlZGl0YWJsZSByZWdpb24gdGhlbiB0
aGUgVUkKKyAgICAgICAgLy8gcHJvY2VzcyBtdXN0IGFsd2F5cyBtZXNzYWdlIHRoZSB3ZWIgcHJv
Y2VzcyBiZWNhdXNlIGl0IGRvZXMgbm90IGtub3cgd2hldGhlciBvciBub3QgdGhlCisgICAgICAg
IC8vIHBhZ2UgaGFzIGVkaXRhYmxlIGVsZW1lbnRzLgorICAgICAgICBpZiAocmVuZGVyZXIoKS5w
YWdlKCkuaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSkKKyAgICAgICAgICAgIGV2ZW50UmVnaW9u
LmVuc3VyZUVkaXRhYmxlUmVnaW9uKCk7CiAgICAgICAgIGF1dG8gZXZlbnRSZWdpb25Db250ZXh0
ID0gZXZlbnRSZWdpb24ubWFrZUNvbnRleHQoKTsKICAgICAgICAgYXV0byBsYXllck9mZnNldCA9
IGdyYXBoaWNzTGF5ZXIuc2Nyb2xsT2Zmc2V0KCkgLSByb3VuZGVkSW50U2l6ZShncmFwaGljc0xh
eWVyLm9mZnNldEZyb21SZW5kZXJlcigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggYmJiYjRhNDAwYjI3ZmQ5OTlmYjdhZjBmMzkxOTg2Mjcz
ZGE0YTdmYS4uOGU1MjlmMTkyNGY3NjkzMTBiOWQ3ZmI0NDcwZDdjNDdlNzE2MzgyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0yODYsNiArMjg2
LDkgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKICAg
ICBtX3BhZ2UtPnNldFBhZ2VTY2FsZUZhY3RvcigxLCB7IDAsIDAgfSk7CiAgICAgbV9wYWdlLT5t
YWluRnJhbWUoKS5zZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKDEsIDEpOwogICAgIG1fcGFnZS0+
c2V0Q2FuU3RhcnRNZWRpYSh0cnVlKTsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAg
IG1fcGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOworI2VuZGlmCiAgICAgc2V0
VXNlRGFya0FwcGVhcmFuY2VJbnRlcm5hbChmYWxzZSk7CiAKICAgICBzZXR0aW5ncygpLnNldEZv
cmNlUGVuZGluZ1dlYkdMUG9saWN5KGZhbHNlKTsKQEAgLTQ0MSw2ICs0NDQsMTggQEAgRXhjZXB0
aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdVc2VzSWRlbXBv
dGVudE1vZGUoYm9vbCBlbmEKICAgICByZXR1cm4geyB9OwogfQogCitFeGNlcHRpb25Pcjx2b2lk
PiBJbnRlcm5hbFNldHRpbmdzOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCBlbmFibGVk
KQoreworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yIH07CisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICBtX3BhZ2Ut
PnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChlbmFibGVkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGVuYWJsZWQpOworI2VuZGlmCisgICAgcmV0dXJuIHsgfTsKK30KKwogRXhjZXB0aW9uT3I8
dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0TWVkaWFUeXBlT3ZlcnJpZGUoY29uc3QgU3RyaW5n
JiBtZWRpYVR5cGUpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGExYjk3MDk0YjdlMGIxZTRkYTY0Mjg3MDliMWVjYWRl
MGRjNTQ3NGEuLjQ3ODVlNjgxNGExZjg1ZGFmMTg0ZmFjMTIwMTAwNGNmM2IyMzdlYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xMDksNiArMTA5LDgg
QEAgcHVibGljOgogCiAgICAgdXNpbmcgRnJhbWVGbGF0dGVuaW5nVmFsdWUgPSBGcmFtZUZsYXR0
ZW5pbmc7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RnJhbWVGbGF0dGVuaW5nKEZyYW1lRmxh
dHRlbmluZ1ZhbHVlKTsKKworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEVkaXRhYmxlUmVnaW9u
RW5hYmxlZChib29sKTsKICAgICAKICAgICBzdGF0aWMgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZShib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5pZGwKaW5kZXggMzY4ODdmYzYxNTY1YTA0ODlhNmU1MGI2MDZlZjg0ZGExNjAwZTZlNi4uYzE1
ZjNiZTQ3MDkxNzY4NmZmMmQ0YzQ0YTI0YjU4Y2Y5OGNhZTlmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0xMjIsNSArMTIyLDcgQEAgZW51bSBG
b250TG9hZFRpbWluZ092ZXJyaWRlIHsgIkJsb2NrIiwgIlN3YXAiLCAiRmFpbHVyZSIgfTsKICAg
ICB2b2lkIHNldFNob3VsZERlYWN0aXZhdGVBdWRpb1Nlc3Npb24oYm9vbGVhbiBzaG91bGREZWFj
dGl2YXRlKTsKICAgICAKICAgICB2b2lkIHNldFN0b3JhZ2VBY2Nlc3NBUElQZXJQYWdlU2NvcGVF
bmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CisKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQg
c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxh
eWVyVHJlZVZpZXdzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbQppbmRleCA1MmE4YTc1NmJiNDlkYmRhNjQxNzg0
NGJhZTFhNjRhZWM0NDY4MjM1Li5mNWFjMjg0YjY4YzM0NDdlN2M3NWNkZjU5NjE5ZjJjM2UzMGFi
YjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KQEAgLTEyMCw2ICsx
MjAsNyBAQCBib29sIG1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0KFVJVmlldyAqcm9v
dFZpZXcsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdAogICAgIGNvbGxlY3REZXNjZW5kYW50Vmll
d3NJblJlY3Qodmlld3NJblJlY3QsIHJvb3RWaWV3LCByZWN0KTsKICAgICBpZiAodmlld3NJblJl
Y3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBzZWVuQW5FZGl0
YWJsZVJlZ2lvbiA9IGZhbHNlOwogICAgIGZvciAoYXV0byAqdmlldyA6IFdURjo6bWFrZVJldmVy
c2VkUmFuZ2Uodmlld3NJblJlY3QpKSB7CiAgICAgICAgIGlmICghW3ZpZXcgaXNLaW5kT2ZDbGFz
czpXS0NvbXBvc2l0aW5nVmlldy5jbGFzc10pCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTEy
OSwxMCArMTMwLDE2IEBAIGJvb2wgbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3QoVUlW
aWV3ICpyb290VmlldywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0CiAgICAgICAgIFdlYkNvcmU6
OkludFJlY3QgcmVjdFRvVGVzdCB7IFt2aWV3IGNvbnZlcnRSZWN0OnJlY3QgZnJvbVZpZXc6cm9v
dFZpZXddIH07CiAgICAgICAgIGlmIChub2RlLT5ldmVudFJlZ2lvbigpLmNvbnRhaW5zRWRpdGFi
bGVFbGVtZW50c0luUmVjdChyZWN0VG9UZXN0KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICBpZiAobm9kZS0+ZXZlbnRSZWdpb24oKS5jb250YWlucyhyZWN0VG9UZXN0KSkKKyAg
ICAgICAgYm9vbCBoYXNFZGl0YWJsZVJlZ2lvbiA9IG5vZGUtPmV2ZW50UmVnaW9uKCkuaGFzRWRp
dGFibGVSZWdpb24oKTsKKyAgICAgICAgaWYgKGhhc0VkaXRhYmxlUmVnaW9uICYmIG5vZGUtPmV2
ZW50UmVnaW9uKCkuY29udGFpbnMocmVjdFRvVGVzdCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHNlZW5BbkVkaXRhYmxlUmVnaW9uIHw9IGhhc0VkaXRhYmxlUmVnaW9uOwog
ICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gSWYgd2UgZGlkbid0IHNlZSBhbiBlZGl0
YWJsZSByZWdpb24gdGhlbiB3ZSBkb24ndCBrbm93IHdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZQor
ICAgIC8vIGVkaXRhYmxlIGVsZW1lbnRzIGluIHRoZSByZWN0LiBXZSBvbmx5IGtub3cgdGhhdCB0
aGUgd2ViIHByb2Nlc3MgZGlkIG5vdCBkbyBhbgorICAgIC8vIGV2ZW50IHJlZ2lvbiBwYWludCB0
byBmaW5kIHRoZW0uIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGFzayB0aGUgd2ViIHByb2Nlc3Mg
dG8KKyAgICAvLyBrbm93IGZvciBzdXJlLgorICAgIHJldHVybiAhc2VlbkFuRWRpdGFibGVSZWdp
b247CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhZTE5NWJkN2UyZjgyNDBkMWU3ZDg4YzdiN2Rl
MTQyMmE0ZGI5Mjk2Li5lMGE1NWRlOGM5ZGI0MTA3ODg1M2Y5NDdiYjM5NzM4ODBlMmNmMDBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzI1LDYgKzcyNSwxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCB0ZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9h
dFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0PiYpPiYmKTsKICAgICB2b2lkIGZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNl
Q2FyZXQoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCisjaWYgRU5BQkxFKEVE
SVRBQkxFX1JFR0lPTikKKyAgICB2b2lkIHNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sKTsK
KyNlbmRpZgorCiAgICAgdm9pZCBzZXRTaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJ
bnNlcnRpb24oYm9vbCk7CiAgICAgICAgIAogICAgIHZvaWQgc2V0U2NyZWVuSXNCZWluZ0NhcHR1
cmVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDgwODAyNGJhOWU5ZDlhNGQ4NWUwNDQ3MTcxMzBm
MjMwNzg5NWZkYjQuLmZhYzg4MDdmNTI4ZTFkYTQyNWQ2MTkyMmVhNjQ0MzMyNDdkZTNkMjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKQEAgLTM2MSw2ICszNjEsOSBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRh
dGEgewogICAgIEJPT0wgX3RleHRJbnRlcmFjdGlvbkRpZENoYW5nZUZvY3VzZWRFbGVtZW50Owog
ICAgIEJPT0wgX3RleHRJbnRlcmFjdGlvbklzSGFwcGVuaW5nOwogICAgIGJvb2wgX2lzV2FpdGlu
Z09uUG9zaXRpb25JbmZvcm1hdGlvbjsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAg
IGJvb2wgX2VkaXRhYmxlUmVnaW9uRW5hYmxlZDsKKyNlbmRpZgogCiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6SW50UG9pbnQ+IF9wb2ludEluc2lkZUxhc3RGb2N1c2VkVGV4dElucHV0Q29udGV4dDsK
IApAQCAtNDUyLDYgKzQ1NSwxMCBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogQHBy
b3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNBcnJheTxVSVRleHRTdWdnZXN0aW9uICo+ICpk
YXRhTGlzdFRleHRTdWdnZXN0aW9uczsKICNlbmRpZgogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JF
R0lPTikKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzRWRpdGFibGVS
ZWdpb25FbmFibGVkKSBCT09MIGVkaXRhYmxlUmVnaW9uRW5hYmxlZDsKKyNlbmRpZgorCiAtICh2
b2lkKXNldFVwSW50ZXJhY3Rpb247CiAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KaW5kZXggOTcxODIwNGM1ZDYwOWJlNmVkM2JmY2Q4MmFjYTlhOWM1MWM3ZWViOS4u
YjI1MThlZDU1ZTI4Y2E5M2ZhZGY1ZTg4ODQ3ZGRhZmU2ODUxMzk3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CkBAIC05MzQsNiArOTM0LDEwIEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0aW9uCiAgICAgX3Nl
ZW5IYXJkd2FyZUtleURvd25Jbk5vbkVkaXRhYmxlRWxlbWVudCA9IE5POwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIF9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPSBO
TzsKKyNlbmRpZgorCiAgICAgX3RleHRJbnRlcmFjdGlvbkRpZENoYW5nZUZvY3VzZWRFbGVtZW50
ID0gTk87CiAgICAgX3RleHRJbnRlcmFjdGlvbklzSGFwcGVuaW5nID0gTk87CiAgICAgX3BvaW50
SW5zaWRlTGFzdEZvY3VzZWRUZXh0SW5wdXRDb250ZXh0ID0gV1RGOjpudWxsb3B0OwpAQCAtNDI5
NCw2ICs0Mjk4LDkgQEAgLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZQogewogI2lm
IFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAgX3NlZW5IYXJkd2FyZUtleURvd25J
bk5vbkVkaXRhYmxlRWxlbWVudCA9IE5POworI2VuZGlmCisjaWYgRU5BQkxFKEVESVRBQkxFX1JF
R0lPTikKKyAgICBfZWRpdGFibGVSZWdpb25FbmFibGVkID0gTk87CiAjZW5kaWYKICAgICBbc2Vs
ZiBfZWxlbWVudERpZEJsdXJdOwogICAgIFtzZWxmIF9jYW5jZWxMb25nUHJlc3NHZXN0dXJlUmVj
b2duaXplcl07CkBAIC01MTk2LDEwICs1MjAzLDM1IEBAIC0gKHZvaWQpX2ZvY3VzVGV4dElucHV0
Q29udGV4dDooX1dLVGV4dElucHV0Q29udGV4dCAqKWNvbnRleHQgcGxhY2VDYXJldEF0OihDR1Bv
CiAgICAgX3BhZ2UtPmZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29udGV4dC5f
dGV4dElucHV0Q29udGV4dCwgcG9pbnRJbnNpZGVUZXh0SW5wdXRDb250ZXh0LCBXVEZNb3ZlKGNo
ZWNrRm9jdXNlZEVsZW1lbnQpKTsKIH0KIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisK
Ky0gKEJPT0wpaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQKK3sKKyAgICByZXR1cm4gX2VkaXRhYmxl
UmVnaW9uRW5hYmxlZDsKK30KKworLSAodm9pZClzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQ6KEJP
T0wpZW5hYmxlZAoreworICAgIGlmIChfZWRpdGFibGVSZWdpb25FbmFibGVkID09IGVuYWJsZWQp
CisgICAgICAgIHJldHVybjsKKyAgICBfZWRpdGFibGVSZWdpb25FbmFibGVkID0gZW5hYmxlZDsK
KyAgICBfcGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQpOworfQorCisjZW5k
aWYKKwogLSAodm9pZClfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OihDR1JlY3QpcmVj
dCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0
ICo+ICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHNlYXJj
aFJlY3QgeyByZWN0IH07CiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICAvLyBDb21w
dXRpbmcgdGhlIGVkaXRhYmxlIHJlZ2lvbiBpcyBiaXQgZXhwZW5zaXZlIGFuZCBjYW4gc2xvdyBk
b3duIGluaXRpYWwgcGFnZSBsb2FkIHNvIGl0J3MKKyAgICAvLyBkb25lIGJ5IHRoZSB3ZWIgcHJv
Y2VzcyBsYXppbHkuIFdlIHRlbGwgaXQgZG8gc28gbm93IGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBk
b25lIHNvLiBOb3RlIHRoYXQKKyAgICAvLyB1bnRpbCB0aGUgVUkgcHJvY2VzcyByZWNlaXZlcyBp
dCBtYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdCB3aWxsIHJldHVybiB0cnVlLiBUaGlz
IGlzIE9LCisgICAgLy8gYW5kIGp1c3QgbWVhbnMgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgYmUg
bGVzcyBlZmZpY2llbnQgdGhhbiBpdCBjb3VsZCBiZSBpZiB0aGUgcmVjdCBpbnRlcnNlY3RzCisg
ICAgLy8gbm90aGluZyBpbiB0aGUgbWVhbnRpbWUuCisgICAgaWYgKCFfZWRpdGFibGVSZWdpb25F
bmFibGVkKQorICAgICAgICBzZWxmLmVkaXRhYmxlUmVnaW9uRW5hYmxlZCA9IFlFUzsKKwogICAg
IGJvb2wgaGl0SW50ZXJhY3Rpb25SZWN0ID0gc2VsZi5faGFzRm9jdXNlZEVsZW1lbnQgJiYgc2Vh
cmNoUmVjdC5pbmNsdXNpdmVseUludGVyc2VjdHMoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24u
aW50ZXJhY3Rpb25SZWN0KTsKICAgICBpZiAoIXNlbGYud2ViVmlldy5fZWRpdGFibGUgJiYgIWhp
dEludGVyYWN0aW9uUmVjdCAmJiAhV2ViS2l0OjptYXlDb250YWluRWRpdGFibGVFbGVtZW50c0lu
UmVjdChzZWxmLCByZWN0KSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihAWyBdKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDA1
MDljZWNkZTUyNDU3Y2U3NmE1ODdjOGI2YjVmODUwZDc1MTFmMWQuLmI4NWJmNTdhNjIwNWUxOWFk
YWZlMWI1OTY1YWYxYWIxMWQ3MGUwOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTU3Miw2ICsxNTcyLDE3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojpmb2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnN0IEVsZW1lbnRD
b250ZXh0JiBjb250CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpG
b2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnRleHQsIHBvaW50KSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikK
Kwordm9pZCBXZWJQYWdlUHJveHk6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sIGVuYWJs
ZWQpCit7CisgICAgaWYgKGhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChlbmFibGVkKSk7Cit9CisKKyNl
bmRpZgorCisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRTaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0
aW9uQWZ0ZXJJbnNlcnRpb24oYm9vbCBzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJ
bnNlcnRpb24pCiB7CiAgICAgaWYgKGhhc1J1bm5pbmdQcm9jZXNzKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjk0YWNhYWYxODU1Mzg3ZjVlYzA4
OGJmM2YzNzZiYjFlYTFjZWFlZC4uZDEwOGI5MTYyNGVhYzVjOWUxMzEzNWI2OWNjMDcyYTljY2Jl
NTljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
NjU1LDYgKzY1NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXh0SW5wdXRDb250ZXh0c0luUmVj
dChXZWJDb3JlOjpGbG9hdFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiYpPiYmKTsKICAgICB2b2lkIGZvY3VzVGV4dElucHV0
Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
CisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICB2b2lkIHNldEVkaXRhYmxlUmVnaW9u
RW5hYmxlZChib29sKTsKKyNlbmRpZgorCiAgICAgYm9vbCBzaG91bGRSZXZlYWxDdXJyZW50U2Vs
ZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFJldmVhbEN1cnJl
bnRTZWxlY3Rpb25BZnRlckluc2VydGlvbjsgfQogICAgIHZvaWQgc2V0U2hvdWxkUmV2ZWFsQ3Vy
cmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA2ODg5ZDYy
MzJiOWZlNTU3YTE5YTM5MGEzYWZlNDRkODczZjY5ZTA5Li5iOTE4ZTM3YTYwZjE0MWEzYTBjMzI0
YThlMTQzYzBjYzNjOTllMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTEyNiw2ICsxMjYsOSBAQCBHZW5lcmF0
ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZQogICAgIFRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNvcmU6OkZs
b2F0UmVjdCByZWN0KSAtPiAoVmVjdG9yPHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4g
Y29udGV4dHMpIEFzeW5jCiAgICAgRm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChz
dHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgY29udGV4dCwgV2ViQ29yZTo6SW50UG9pbnQg
cG9pbnQpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCiAgICAgQ2xlYXJTZXJ2aWNlV29ya2VyRW50
aXRsZW1lbnRPdmVycmlkZSgpIC0+ICgpIEFzeW5jCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lP
TikKKyAgICBTZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQorI2VuZGlmCiAj
ZW5kaWYKIAogICAgIFNldENvbnRyb2xsZWRCeUF1dG9tYXRpb24oYm9vbCBjb250cm9sbGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQppbmRleCBkZGIyMzZiODdkZDcwMDgxMTQ5M2QxMWQyOTFkMWFiNDU0ODk0YzdmLi5lZmQ5OWFm
ZDJmYjA5ODhkODRjZGY5YTIwYjBiZjI0NDYzMjZlYzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDM2MCw2ICs0MzYw
LDE1IEBAIHZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChj
b25zdCBFbGVtZW50Q29udGV4dCYgZWxlbWVudENvCiAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1
ZSk7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCit2b2lkIFdlYlBhZ2U6OnNl
dEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV9wYWdlLT5zZXRF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZW5hYmxlZCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIFdlYlBh
Z2U6OnBsYXRmb3JtRGlkU2NhbGVQYWdlKCkKIHsKICAgICBhdXRvIHRyYW5zYWN0aW9uSUQgPSBk
b3duY2FzdDxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4oKm1fZHJhd2luZ0FyZWEpLmxhc3RD
b21taXR0ZWRUcmFuc2FjdGlvbklEKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjVlNzFjYWYzNDA3NjY4Yzg0ZGI2OGY2
Njg0YTg2NzY0OWNlYzZhYS4uZTNlMDdhOTgyOGI5MDY2YWRhMTBjYjE2NWY4YmEyM2I3MGI3NTE0
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA2LTI2ICBEYW5pZWwgQmF0ZXMgIDxkYWJh
dGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSByZWdpb25zIGNhdXNlcyB+
MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDM2MTM5MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc29tZSB0
ZXN0cyB0byBlbnN1cmUgdGhlIG5ldyBzZXR0aW5nIHdvcmtzIGFuZCB0aGUgZmVhdHVyZSBjYW4g
YmUgZGlzYWJsZWQuIE5vdGUKKyAgICAgICAgdGhhdCB0aGUgc2V0dGluZyBpcyBlbmFibGVkIGJ5
IGRlZmF1bHQgdG8ga2VlcCB0aGUgY3VycmVudCBiZWhhdmlvci4gU2VlIHRoZSBXZWJDb3JlCisg
ICAgICAgIENoYW5nZUxvZyBlbnRyeSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1y
ZWdpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRh
YmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDog
QWRkZWQuCisKIDIwMjAtMDYtMjYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQ29udGVudCBzb21ldGltZXMgbWlzc2luZyBpbiBuZXN0ZWQgc2Nyb2xs
ZXJzIHdpdGggYm9yZGVyLXJhZGl1cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3Qt
YmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhl
NjZmNWQ4MWZjODU1NzAxMjJhNjIxY2NiY2MwMzZhOGM0MmUyYTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRo
b3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorSGl0IHRl
c3RzIGZvciBlZGl0YWJsZSBlbGVtZW50cyBpbnNpZGUgdGhlIGJsYWNrIG91dGxpbmVkIHJlY3Rh
bmdsZSB3aGVuIHRoZSBlZGl0YWJsZSByZWdpb24gaXMgZGlzYWJsZWQuIFRoZXJlIHNob3VsZCBi
ZSBtb3JlIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRpc2FibGVkLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyAoeCA9IDEwMCwgeSA9IDEwMCwgd2lkdGggPSAyMDIsIGhlaWdo
dCA9IDIwMikgY29udGFpbnMgZWRpdGFibGUgZWxlbWVudHMuCitQQVNTICh4ID0gMCwgeSA9IDAs
IHdpZHRoID0gNTAsIGhlaWdodCA9IDUwKSBjb250YWlucyBlZGl0YWJsZSBlbGVtZW50cy4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13
aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jYzM0YmZiOGNjOWE3YWZlM2MyOTk4N2ZlMDEyNWVjY2YxMzFkNzZhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3Qt
YmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9oaXQtdGVzdC11dGls
aXRpZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3Rlc3QtY29udGFpbmVyIHsKKyAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAxMDBweDsKKyAgICBsZWZ0OiAxMDBweDsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0OiAy
MDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRlc3QtY29udGFp
bmVyIj4KKyAgICA8aW5wdXQ+Cis8L2Rpdj4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChmYWxzZSk7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRl
c3QoKQoreworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgiTXVzdCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGxldCB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3QtY29udGFpbmVyIik7CisgICAgYXdhaXQgc2hvdWxkSGF2ZUVkaXRhYmxlRWxlbWVudHNJ
blJlY3RGb3JFbGVtZW50KHRlc3RDb250YWluZXIpOworCisgICAgLy8gV2l0aG91dCBlZGl0YWJs
ZSByZWdpb24gZW5hYmxlZCB0aGlzIHJlY3QgaXMgdGhvdWdodCB0byBjb250YWluIHNvbWV0aGlu
ZyBlZGl0YWJsZSBldmVuIHRob3VnaCBpdCBkb2Vzbid0LgorICAgIGF3YWl0IHNob3VsZEhhdmVF
ZGl0YWJsZUVsZW1lbnRzSW5SZWN0KDAsIDAsIDUwLCA1MCk7CisKKyAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitk
ZXNjcmlwdGlvbigiSGl0IHRlc3RzIGZvciBlZGl0YWJsZSBlbGVtZW50cyBpbnNpZGUgdGhlIGJs
YWNrIG91dGxpbmVkIHJlY3RhbmdsZSB3aGVuIHRoZSBlZGl0YWJsZSByZWdpb24gaXMgZGlzYWJs
ZWQuIFRoZXJlIHNob3VsZCBiZSBtb3JlIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRpc2FibGVkLiIp
OworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJs
ZS1yZWdpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNDBmYWZhMjdmNTE5YjBlYzY5NDhhYzc5YzMyYWI2Y2UyOTQ1M2M4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQt
ZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU0IEBACisKKyhHcmFwaGlj
c0xheWVyCisgIChhbmNob3IgMC4wMCAwLjAwKQorICAoYm91bmRzIDgwMC4wMCA0MTEyLjAwKQor
ICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA0
MTEyLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAoYmFja2dyb3VuZENvbG9yICNGRkZGRkYpCisgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDguMDApCisgICAg
ICAgICAgKGJvdW5kcyAzMDQuMDAgMzA0LjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDIuMDAgMi4wMCkKKyAgICAgICAgICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgKGJvdW5k
cyBvcmlnaW4gMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4w
MCkKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMzAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAgICAgICAgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYm91bmRzIDMxMC4wMCA2NzAuMDApCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgMzEwLjAwIDY3
MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAg
ICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMjYzYjlkNjIxZjZjY2QxZTBkYTFhZWM1ZmU0ODJlZGUwOTQ4NWEzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZy
YW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5IHN0eWxlPSJoZWlnaHQ6IDQwOTZweCI+Cis8aWZyYW1l
IGlkPSJ0ZXN0RnJhbWUiIGhlaWdodD0iMzAwIiBzcmNkb2M9IgorPHN0eWxlPgorLnNjcm9sbGVy
IHsKKyAgICBtYXJnaW4tdG9wOiA0MDBweDsKKyAgICB3aWR0aDogMzAwcHg7CisgICAgaGVpZ2h0
OiAzMDBweDsKKyAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworfQorLmNvbnRlbnRzIHsKKyAgICB3aWR0aDogNTAwcHg7CisgICAgaGVpZ2h0OiA1MDBw
eDsKK30KKy5lZGl0YWJsZSB7CisgICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC13cml0ZTsK
KyAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworfSAgIAorPC9zdHlsZT4KKzxwPmlmcmFtZTwv
cD4KKzxkaXYgY2xhc3M9J2VkaXRhYmxlIGJveCcgc3R5bGU9J21hcmdpbi10b3A6IDI1MHB4Oyc+
Cis8L2Rpdj4KKzxkaXYgY2xhc3M9J3Njcm9sbGVyJyBzdHlsZT0nbWFyZ2luLXRvcDogNTBweDsn
PgorICAgIDxkaXYgY2xhc3M9J2NvbnRlbnRzJz4KKyAgICAgICAgT3ZlcmZsb3cgc2Nyb2xsIGlu
IGlmcmFtZQorICAgICAgICA8ZGl2IGNsYXNzPSdlZGl0YWJsZSBib3gnIHN0eWxlPSdtYXJnaW4t
dG9wOiA1MHB4Oyc+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0
Pgord2luZG93LnBhcmVudC5zY3JvbGxJRnJhbWVBbmREdW1wUmVnaW9ucygpOworPC9zY3JpcHQ+
CisiPgorPC9pZnJhbWU+Cis8cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQodHJ1
ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChmYWxz
ZSk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbElGcmFtZUFuZER1bXBSZWdpb25zKCkKK3sKKyAgICB0
ZXN0RnJhbWUuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAyMDApOworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJU
cmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9S
RUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJ
RVMpOworICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0
LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ODFmZTVkOTBmNjVmNTA4NWQxNDNkOTE2Zjk4NDUxNGM0MzJh
ZjIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNCBAQAorCisoR3JhcGhpY3NMYXllcgorICAoYW5jaG9yIDAuMDAgMC4wMCkK
KyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY29udGVudHNPcGFxdWUg
MSkKKyAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgIChiYWNrZ3JvdW5kQ29sb3IgI0ZGRkZG
RikKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13
aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjYzgzZDIzODZhZjliMWU3
NWQxMzU5YzQ5Mzc0MmVjZjRkOGNhZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUt
cmVnaW9uLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPGlucHV0IHR5cGU9InRleHQiPgorPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGFibGVSZWdpb25FbmFibGVkKGZhbHNlKTsKKyAgICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50
ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5D
TFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9M
QVlFUl9QUk9QRVJUSUVTKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402929</attachid>
            <date>2020-06-26 16:40:56 -0700</date>
            <delta_ts>2020-06-27 11:18:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213659-20200626164055.patch</filename>
            <type>text/plain</type>
            <size>40272</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU5M2Q4ODRhM2VjOWQ1
NDk1NDAzNTEyY2EyNDJlY2Q5ZmEzNTZlYi4uMTEzYjZiZGEwNDZiNWZmNzk1ZjUzMTAzODBiOGEx
MWI3YjgwNDYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIwLTA2LTI2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIHNsb3dkb3duIGJ5IGFkZGluZyBhIHJ1bnRpbWUgc3dpdGNoIHRvIGVuYWJs
ZSBlZGl0YWJsZSByZWdpb24gY29tcHV0YXRpb24gYW5kCisgICAgICAgIGRpc2FibGUgaXQgYnkg
ZGVmYXVsdC4gVGhlIFVJIHByb2Nlc3Mgd2lsbCBmbGlwIHRoZSBzd2l0Y2ggb24gdGhlIGZpcnN0
IGludm9jYXRpb24gb2YKKyAgICAgICAgLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Qu
CisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwYXJ0cyB0aGF0IG1ha2UgY29tcHV0aW5nIHRoZSBl
ZGl0YWJsZSByZWdpb24gZXhwZW5zaXZlOgorICAgICAgICAgICAgICAgIDEuIFJlcXVpcmVzIHRy
YXZlcnNpbmcgZGVzY2VuZGVudHMgZHVyaW5nIHBhaW50aW5nIHdoZW4gYSBub3JtYWwgcGFpbnQg
bWF5IGJlCisgICAgICAgICAgICAgICAgICAgYWJsZSB0byBhdm9pZCB0aGlzLgorICAgICAgICAg
ICAgICAgIDIuIENhbiBjYXVzZSBtb3JlIGV2ZW50IHJlZ2lvbiBpbnZhbGlkYXRpb25zIGJlY2F1
c2UgaXQgZXh0ZW5kcyB0aGUgaW52YWxpZGF0aW9uCisgICAgICAgICAgICAgICAgICAgY3JpdGVy
aW9uIHRvIGluY2x1ZGUgY2hhbmdlcyB0byBlbGVtZW50IGVkaXRhYmlsaXR5LgorCisgICAgICAg
IFVzaW5nIGEgcnVudGltZSBzd2l0Y2ggYXZvaWRzIHBheWluZyB0aGVzZSBjb3N0cyB1bnRpbCB0
aGUgZmVhdHVyZSBpcyBuZWVkZWQuIFRvIG1ha2UKKyAgICAgICAgZGVidWdnaW5nIGVhc2llciBm
b3IgbWUsIGVuYWJsaW5nIHRoZSBlZGl0YWJsZSByZWdpb24gZGVidWcgb3ZlcmxheSB3aWxsIGFs
c28gZW5hYmxlCisgICAgICAgIGVkaXRhYmxlIHJlZ2lvbi4KKworICAgICAgICBUZXN0czogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdp
b24uaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdp
dGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbAor
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW52
YWxpZGF0ZUNvbnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZCk6IENoZWNrIGlmIGVkaXRhYmxlIHJl
Z2lvbiBpcyBlbmFibGVkLgorICAgICAgICBJZiBpdCBpcyB0aGVuIGRvIHdoYXQgd2UgZG8gbm93
LiBPdGhlcndpc2UsIGRvbid0IGludmFsaWRhdGUgdGhlIHJlZ2lvbiB1bmxlc3Mgd2Ugd2VyZSBn
b2luZworICAgICAgICB0byBkbyBzbyBhbnl3YXkuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVk
LiBVcGRhdGUgc3RhdGUgYW5kIHRoZW4gaW52YWxpZGF0ZQorICAgICAgICB0aGUgZXZlbnQgcmVn
aW9uIGZvciB0aGUgbWFpbiBmcmFtZS4gTm90ZSB0aGF0IHRoZSBtYWluIGZyYW1lIGFsd2F5cyBo
YXMgYSBsYXllci4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmlzRWRpdGFibGVSZWdpb25FbmFibGVkIGNvbnN0KTogQWRkZWQuCisKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwOgorICAg
ICAgICBBZGQgYSBjaGFuZ2UgaGFuZGxlciB0aGF0IGlzIGludm9rZWQgd2hlbmV2ZXIgdmlzaWJs
ZURlYnVnT3ZlcmxheVJlZ2lvbnMgY2hhbmdlcy4gVGhpcyBoYW5kbGVyCisgICAgICAgIGp1c3Qg
dHVybnMgYXJvdW5kIGFuZCBjYWxscyBQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSBw
YXNzaW5nIHdoZXRoZXIgdGhlIGRlYnVnIG92ZXJsYXkKKyAgICAgICAgZm9yIGVkaXRhYmxlIHJl
Z2lvbiBpcyBlbmFibGVkIG9yIG5vdC4gVGhpcyBrZWVwcyB0aGUgVUkgYmVoYXZpb3Igd2UgaGF2
ZSBub3csIGJ1dCBmb3IgYSBkaWZmZXJlbnQKKyAgICAgICAgcmVhc29uOiBJIGZpbmQgaXQgY29u
dmVuaWVudCB0byB1c2UgdGhlIG92ZXJsYXkgdG8gZXllYmFsbCB3aGV0aGVyIHRoZXJlIGFyZSBh
bnkgZWRpdGFibGUgZWxlbWVudHMKKyAgICAgICAgb24gdGhlIHBhZ2UgYXMgcGFydCBvZiBidWcg
dHJpYWdpbmcgd2l0aCBhIG5vbi1kZWJ1ZyBidWlsZC4gTm90IGRvaW5nIHRoaXMgd291bGQgaW1w
b3NlIHRoZQorICAgICAgICBpbmNvbnZlbmllbmNlIG9mIHJlcXVpcmluZyBhIGRlYnVnIHNldHVw
IG9uIGhhbmQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnVuaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
UmVnaW9uOjp0cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmNvbnRh
aW5zRWRpdGFibGVFbGVtZW50c0luUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dFJlZ2lvbjo6ZHVtcCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZW5zdXJlRWRpdGFibGVSZWdpb24pOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpoYXNFZGl0YWJsZVJlZ2lvbiBj
b25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnJlY3RzRm9yRWRp
dGFibGVFbGVtZW50cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZGVj
b2RlKToKKyAgICAgICAgVGhlIGVkaXRhYmxlIHJlZ2lvbiBpcyBub3cgYW4gT3B0aW9uYWw8Pi4g
VGhlcmUgd2lsbCBvbmx5IGJlIG9uZSBpZiBlbnN1cmVFZGl0YWJsZVJlZ2lvbgorICAgICAgICB3
YXMgY2FsbGVkLCB3aGljaCBpcyBvbmx5IHdoZW4gUGFnZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQoKSByZXR1cm5zIHRydWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJF
bGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjptYWludGFpbnNFdmVudFJlZ2lvbiBjb25z
dCk6CisgICAgICAgIE9ubHkgZG8gd2hhdCB3ZSBkbyBub3cgaWYgUGFnZTo6aXNFZGl0YWJsZVJl
Z2lvbkVuYWJsZWQoKSByZXR1cm5zIHRydWUuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlRXZlbnRSZWdpb24pOiBDYWxsIGVuc3VyZUVkaXRhYmxlUmVnaW9u
IGlmIFBhZ2U6OmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgcmV0dXJucyB0cnVlLgorCisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsU2V0dGluZ3M6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsOgorICAgICAgICBBZGQgYSBuZXcgaW50ZXJuYWwgc2V0dGluZyBmb3IgdGVz
dGluZyBwdXJwb3NlcyB0byB0b2dnbGUgZW5hYmxpbmcvZGlzYWJsaW5nIGVkaXRhYmxlIHJlZ2lv
bi4KKyAgICAgICAgS2VlcCB0aGUgY3VycmVudCBiZWhhdmlvciB3ZSBoYXZlIGluIHRlc3Rpbmcg
bm93IGJ5IGVuYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbiBieSBkZWZhdWx0LgorCiAyMDIwLTA2LTI2
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnRl
bnQgc29tZXRpbWVzIG1pc3NpbmcgaW4gbmVzdGVkIHNjcm9sbGVycyB3aXRoIGJvcmRlci1yYWRp
dXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNzdiMTkwNDgxYWJhZWNmMjM2MjA4NTQ3ZTlhODE5Y2NiYjUzNDM4MC4u
MmI5ZGQ0ZmVkNmMxMDY5ZGMzM2E5MmNkYzBiYjFhYjVkMTYxZTkwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAyMC0wNi0yNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPU10gRWRpdGFibGUgcmVnaW9ucyBjYXVzZXMgfjElIHNsb3dkb3duIGlu
IFBMVDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MzY1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNjEzOTA+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHVwIFJlbW90ZUxheWVyVHJlZVZp
ZXdzIG5vdyB0aGF0IHRoZSBlZGl0YWJsZSByZWdpb24gaXMgYW4gT3B0aW9uYWw8Pi4gSGF2ZQor
ICAgICAgICB0aGUgVUkgcHJvY2VzcyBtZXNzYWdlIHRoZSB3ZWIgcHJvY2VzcyB0byBlbmFibGUg
ZWRpdGFibGUgcmVnaW9uIG9uIHRoZSBmaXJzdAorICAgICAgICBpbnZvY2F0aW9uIG9mIF9yZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3QsIHdoaWNoIGlzIGdvb2QgaW5kaWNhdG9yIHRoYXQg
dGhlcmUKKyAgICAgICAgd291bGQgYmUgYmVuZWZpdCB0byBjb21wdXRpbmcgaXQgYXMgYSB0eXBp
Y2FsIGNsaWVudCB0aGF0IGNhbGxzIGl0IHdpbGwgY2FsbCBpdAorICAgICAgICBtYW55IHRpbWVz
LgorCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJU
cmVlVmlld3MubW06CisgICAgICAgIChXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KTogRml4IHVwIHRoZSBsb2dpYyBub3cgdGhhdCB0aGVyZSBtYXkKKyAgICAgICAgYmUg
bm90IGJlIGFuIGVkaXRhYmxlIHJlZ2lvbiBzZW50IG92ZXIgaW4gdGhlIGxhc3QgZXZlbnQgcmVn
aW9uIHVwZGF0ZS4gSWYgdGhlcmUKKyAgICAgICAgaXNuJ3Qgb25lIHRoZW4gd2UgZG9uJ3Qga25v
dyBpZiB0aGVyZSBhcmUgZWRpdGFibGUgZWxlbWVudHMgaXMgaW4gdGhlIHJlY3Qgb2Ygbm90Lgor
ICAgICAgICBTbywganVzdCByZXR1cm4gdHJ1ZTogdGhlcmUgbWF5IGJlIGVkaXRhYmxlIGVsZW1l
bnRzIGluIHRoZSByZWN0LiBUaGUgY2FsbGVyIHdpbGwKKyAgICAgICAgaGF2ZSB0byBtZXNzYWdl
IHRoZSB3ZWIgcHJvY2VzcyB0byBmaW5kIG91dCB0aGUgcmVhbCBhbnN3ZXIuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVy
YWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZENvbW1pdExvYWRGb3JNYWlu
RnJhbWVdKToKKyAgICAgICAgQWRkZWQgYSBuZXcgaXZhciB0byB0cmFjayBpbiB0aGUgVUkgcHJv
Y2VzcyB3aGV0aGVyIGl0IGFscmVhZHkgcmVxdWVzdGVkIHRoZSB3ZWIKKyAgICAgICAgcHJvY2Vz
cyB0byBlbmFibGUgdGhlIGVkaXRhYmxlIHJlZ2lvbi4gVGhlIHdlYiBwcm9jZXNzIGNhbm5vdCBk
ZW55IHRoZSByZXF1ZXN0IHNvCisgICAgICAgIGl0IHJlcHJlc2VudHMgd2hldGhlciB0aGUgZmVh
dHVyZSB3YXMgZW5hYmxlZCBvciBub3QgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBJZiBlZGl0YWJsZQorICAgICAgICByZWdpb24gaXMgbm90IGVuYWJsZSB0aGVu
IGRvIHNvIG5vdy4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBBZGQgYSBuZXcgbWVz
c2FnZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVk
LgorCiAyMDIwLTA2LTI2ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW5pdGlhbGl6aW5nIHRoZSBtYWluIHRocmVhZCBzaG91bGQgaW5pdGlhbGl6ZSB0aGUg
bWFpbiBydW4gbG9vcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBkMDRmYTBjMzllMGViOWE4M2Nj
ZDg2NGU0MmFlMzA0MmI5OTI4MzA4Li40MTgxMjQ5ZTdjMjlkN2U1NzhkZmJjZGY4YzZmOTljMDU2
OWQ0YmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgRnJh
bWU6OmludmFsaWRhdGVDb250ZW50RXZlbnRSZWdpb25zSWZOZWVkZWQoKQogICAgIGhhc1RvdWNo
QWN0aW9uRWxlbWVudHMgPSBtX2RvYy0+bWF5SGF2ZUVsZW1lbnRzV2l0aE5vbkF1dG9Ub3VjaEFj
dGlvbigpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBoYXNFZGl0
YWJsZUVsZW1lbnRzID0gbV9kb2MtPm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CisgICAgaGFz
RWRpdGFibGVFbGVtZW50cyA9IG1fcGFnZS0+aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSAmJiBt
X2RvYy0+bWF5SGF2ZUVkaXRhYmxlRWxlbWVudHMoKTsKICNlbmRpZgogICAgIC8vIEZJWE1FOiBU
aGlzIG5lZWRzIHRvIGxvb2sgYXQgd2hlZWwgZXZlbnQgaGFuZGxlcnMgdG9vLgogICAgIGlmICgh
aGFzVG91Y2hBY3Rpb25FbGVtZW50cyAmJiAhaGFzRWRpdGFibGVFbGVtZW50cykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCmluZGV4IDE0Njc5MTZiMGIxOWVjNzI2N2M3ZDhiZDg1ZGJkZmQwZmQyZGJkYTUuLjFk
NTI2YTEzYWQxYzA4OTU4YTJhZmY1MzJiNTIyODA4NzJkNmM0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtOTIwLDYgKzkyMCwyMiBAQCB2b2lkIFBhZ2U6OnVubWFya0FsbFRleHRNYXRjaGVzKCkK
ICAgICB9KTsKIH0KIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKK3ZvaWQgUGFnZTo6
c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAobV9pc0Vk
aXRhYmxlUmVnaW9uRW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisgICAgbV9p
c0VkaXRhYmxlUmVnaW9uRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgYXV0byBmcmFtZVZpZXcgPSBt
YWtlUmVmUHRyKG1haW5GcmFtZSgpLnZpZXcoKSk7CisgICAgaWYgKGF1dG8qIHJlbmRlclZpZXcg
PSBmcmFtZVZpZXctPnJlbmRlclZpZXcoKSkgeworICAgICAgICBBU1NFUlQocmVuZGVyVmlldy0+
bGF5ZXIoKSk7IC8vIE1haW4gZnJhbWUgcmVuZGVyIHZpZXcgYWx3YXlzIGhhcyBhIGxheWVyLgor
ICAgICAgICByZW5kZXJWaWV3LT5sYXllcigpLT5pbnZhbGlkYXRlRXZlbnRSZWdpb24oUmVuZGVy
TGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5nRGlkQ2hhbmdlKTsK
KyAgICB9Cit9CisKKyNlbmRpZgorCiBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBQYWdlOjplZGl0YWJs
ZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2VhcmNoUmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcykgY29uc3QKIHsKICAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIobWFpbkZy
YW1lKCkudmlldygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYWMyMDY0NGJlMzkyNThkOTYwZTRjNDUz
OGY1MzJmNzZiNTI3MmY1My4uMGFmY2NlZmJjMGNjN2ZmMjRjMTdhNWQ4YzhiMDg1MTA5ZTlmMjRj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTc0Miw2ICs3NDIsMTEgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmLCBXVEZMb2dDaGFubmVsU3Rh
dGUsIFdURkxvZ0xldmVsKTsKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgYm9v
bCBpc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFZGl0YWJsZVJl
Z2lvbkVuYWJsZWQ7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVkaXRhYmxlUmVnaW9u
RW5hYmxlZChib29sKTsKKyNlbmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxF
bGVtZW50Pj4gZWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsK
IAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkp
CkBAIC0xMDAzLDYgKzEwMDgsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzUmVzb3VyY2VM
b2FkQ2xpZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1fZGVsZWdhdGVzU2NhbGluZyB7IGZhbHNl
IH07CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIGJvb2wgbV9pc0VkaXRhYmxl
UmVnaW9uRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIFVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24gbV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHsgVXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbjo6TFRSIH07CiAgICAgCiAgICAgLy8gRm9yIHRlc3RpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMDZjZWRkMzllY2NmYjkwOGVkMzUyMTliODliMGUx
MTIzYzVhMDc4NS4uMjEzOTE3NzNjN2I1NGUxYzgwMWYyYTYxY2QxNzc4ZGRiODIxODZkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMTU2LDYgKzE1Niw3IEBAIHNob3dSZXBhaW50
Q291bnRlcjoKIHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOgogICB0eXBlOiBEZWJ1Z092ZXJs
YXlSZWdpb25zCiAgIGluaXRpYWw6IDAKKyAgb25DaGFuZ2U6IHZpc2libGVEZWJ1Z092ZXJsYXlS
ZWdpb25zQ2hhbmdlZAogc2hvd1RpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yOgogICBpbml0aWFsOiBm
YWxzZQogcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
c0Jhc2UuY3BwCmluZGV4IDc4NDc3YTliOTI4NjFhNWI5NjE2MjNiYjFmNTAxMTQxNmJjYjQwYjUu
LjAxZDk4OTliZDFiNzhiMWEzOTlkZWY1NWViMzhlZTlkYWVhNWQ0MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzQmFzZS5jcHAKQEAgLTMxNSw2ICszMTUsMTQgQEAgdm9pZCBTZXR0aW5nc0Jh
c2U6OmljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWRDaGFuZ2VkKCkKICAgICAgICAgbV9wYWdl
LT5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiB9CiAKK3ZvaWQgU2V0dGluZ3NCYXNl
Ojp2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9uc0NoYW5nZWQoKQoreworI2lmIEVOQUJMRShFRElU
QUJMRV9SRUdJT04pCisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5zZXRFZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQobV9wYWdlLT5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlSZWdp
b25zKCkgJiBFZGl0YWJsZUVsZW1lbnRSZWdpb24pOworI2VuZGlmCit9CisKICNpZiBFTkFCTEUo
VEVYVF9BVVRPU0laSU5HKQogCiB2b2lkIFNldHRpbmdzQmFzZTo6c2hvdWxkRW5hYmxlVGV4dEF1
dG9zaXppbmdCb29zdENoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5nc0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKaW5kZXgg
YWYyMjQ5ZGIzMGMyY2NlNmRkZDJlYzEyOTUwMmRhOWZkMGU3ZmU0NS4uNjc4ZWRkYjcyMDg2ODVk
M2Y1YjM4OGYzY2VkYTI5N2Q5NTNjNGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5nc0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5o
CkBAIC0xOTMsNiArMTkzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgaGlkZGVuUGFnZUNTU0Fu
aW1hdGlvblN1c3BlbnNpb25FbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVzb3VyY2VVc2Fn
ZU92ZXJsYXlWaXNpYmxlQ2hhbmdlZCgpOwogICAgIHZvaWQgaWNlQ2FuZGlkYXRlRmlsdGVyaW5n
RW5hYmxlZENoYW5nZWQoKTsKKyAgICB2b2lkIHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zQ2hh
bmdlZCgpOwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgdm9pZCBzaG91bGRFbmFi
bGVUZXh0QXV0b3NpemluZ0Jvb3N0Q2hhbmdlZCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V2ZW50UmVnaW9uLmNwcAppbmRleCA2M2NiMjNkN2ZlOWQwN2Q0Yjg0ZWQ0YTE4MmY4
ZGMxZTJiOWY0MzMxLi44NzM5NGVkNjM5OTAzZTIyZmJlM2JlNjc4MmM0N2NiZWQ1OWIzNmJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKQEAgLTEzMCw4ICsxMzAs
OCBAQCB2b2lkIEV2ZW50UmVnaW9uOjp1bml0ZShjb25zdCBSZWdpb24mIHJlZ2lvbiwgY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBib29sIG92ZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQotICAgIGlmIChvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxl
LnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25seSkKLSAgICAgICAgbV9lZGl0YWJs
ZVJlZ2lvbi51bml0ZShyZWdpb24pOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uICYmIChvdmVy
cmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxlLnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9k
aWZ5OjpSZWFkT25seSkpCisgICAgICAgIG1fZWRpdGFibGVSZWdpb24tPnVuaXRlKHJlZ2lvbik7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlKTsK
ICNlbmRpZgpAQCAtMTU2LDcgKzE1Niw4IEBAIHZvaWQgRXZlbnRSZWdpb246OnRyYW5zbGF0ZShj
b25zdCBJbnRTaXplJiBvZmZzZXQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJ
T04pCi0gICAgbV9lZGl0YWJsZVJlZ2lvbi50cmFuc2xhdGUob2Zmc2V0KTsKKyAgICBpZiAobV9l
ZGl0YWJsZVJlZ2lvbikKKyAgICAgICAgbV9lZGl0YWJsZVJlZ2lvbi0+dHJhbnNsYXRlKG9mZnNl
dCk7CiAjZW5kaWYKIH0KIApAQCAtMjgzLDEwICsyODQsMTIgQEAgY29uc3QgUmVnaW9uJiBFdmVu
dFJlZ2lvbjo6ZXZlbnRMaXN0ZW5lclJlZ2lvbkZvclR5cGUoRXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGUgdHkKICNlbmRpZiAvLyBFTkFCTEUoV0hFRUxfRVZFTlRfUkVHSU9OUykKIAogI2lmIEVOQUJM
RShFRElUQUJMRV9SRUdJT04pCisKIGJvb2wgRXZlbnRSZWdpb246OmNvbnRhaW5zRWRpdGFibGVF
bGVtZW50c0luUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogewotICAgIHJldHVybiBt
X2VkaXRhYmxlUmVnaW9uLmludGVyc2VjdHMocmVjdCk7CisgICAgcmV0dXJuIG1fZWRpdGFibGVS
ZWdpb24gJiYgbV9lZGl0YWJsZVJlZ2lvbi0+aW50ZXJzZWN0cyhyZWN0KTsKIH0KKwogI2VuZGlm
CiAKIHZvaWQgRXZlbnRSZWdpb246OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNvbnN0CkBAIC0zMjIs
OCArMzI1LDggQEAgdm9pZCBFdmVudFJlZ2lvbjo6ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBpZiAoIW1fZWRpdGFi
bGVSZWdpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGVkaXRhYmxl
IHJlZ2lvbiIgPDwgbV9lZGl0YWJsZVJlZ2lvbjsKKyAgICBpZiAobV9lZGl0YWJsZVJlZ2lvbiAm
JiAhbV9lZGl0YWJsZVJlZ2lvbi0+aXNFbXB0eSgpKSB7CisgICAgICAgIHRzIDw8IGluZGVudCA8
PCAiKGVkaXRhYmxlIHJlZ2lvbiIgPDwgKm1fZWRpdGFibGVSZWdpb247CiAgICAgICAgIHRzIDw8
IGluZGVudCA8PCAiKVxuIjsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2
ZW50UmVnaW9uLmgKaW5kZXggNTAxMjQzZTA0OGI5ODRlNmIwNjZkYTk0YjU4MjUyOGZkNWRkZWU4
Mi4uMGJjMDUxMmZlZDQxZGMxYzlkZDFlYWY0YzJkYjFkZWJhY2M5ZmY2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKQEAgLTg3LDggKzg3LDEwIEBAIHB1YmxpYzoKICNl
bmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICB2b2lkIGVuc3VyZUVkaXRh
YmxlUmVnaW9uKCkgeyBtX2VkaXRhYmxlUmVnaW9uID0gUmVnaW9uIHsgfTsgfQorICAgIGJvb2wg
aGFzRWRpdGFibGVSZWdpb24oKSBjb25zdCB7IHJldHVybiBtX2VkaXRhYmxlUmVnaW9uLmhhc1Zh
bHVlKCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbnRhaW5zRWRpdGFibGVFbGVtZW50
c0luUmVjdChjb25zdCBJbnRSZWN0JikgY29uc3Q7Ci0gICAgVmVjdG9yPEludFJlY3QsIDE+IHJl
Y3RzRm9yRWRpdGFibGVFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24u
cmVjdHMoKTsgfQorICAgIFZlY3RvcjxJbnRSZWN0LCAxPiByZWN0c0ZvckVkaXRhYmxlRWxlbWVu
dHMoKSBjb25zdCB7IHJldHVybiBtX2VkaXRhYmxlUmVnaW9uID8gbV9lZGl0YWJsZVJlZ2lvbi0+
cmVjdHMoKSA6IFZlY3RvcjxJbnRSZWN0LCAxPiB7IH07IH0KICNlbmRpZgogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpAQCAtMTEzLDcg
KzExNSw3IEBAIHByaXZhdGU6CiAgICAgUmVnaW9uIG1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRMaXN0
ZW5lclJlZ2lvbjsKICNlbmRpZgogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgUmVn
aW9uIG1fZWRpdGFibGVSZWdpb247CisgICAgT3B0aW9uYWw8UmVnaW9uPiBtX2VkaXRhYmxlUmVn
aW9uOwogI2VuZGlmCiB9OwogCkBAIC0xNTIsNyArMTU0LDcgQEAgT3B0aW9uYWw8RXZlbnRSZWdp
b24+IEV2ZW50UmVnaW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICNlbmRpZgogCiAjaWYg
RU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBPcHRpb25hbDxSZWdpb24+IGVkaXRhYmxlUmVn
aW9uOworICAgIE9wdGlvbmFsPE9wdGlvbmFsPFJlZ2lvbj4+IGVkaXRhYmxlUmVnaW9uOwogICAg
IGRlY29kZXIgPj4gZWRpdGFibGVSZWdpb247CiAgICAgaWYgKCFlZGl0YWJsZVJlZ2lvbikKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCmluZGV4IGY1ZjRlMzZhZDNlZDZlY2M2ZDBmYjc4YjRhNzE2ZWFlODNjODQ3ZGYu
Ljk2ZGRlM2ExNGQ5NmZhYWU4N2NmYTgxNGQzN2RmZTljMDAwZDIxNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTI2Myw3ICsxMjYzLDcgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnMKICAgICAgICAgLy8gV2UgdHJlYXQgdGhlIGVudGlyZSB0ZXh0IGNv
bnRyb2wgYXMgZWRpdGFibGUgdG8gbWF0Y2ggdXNlcnMnIGV4cGVjdGF0aW9uIGV2ZW4KICAgICAg
ICAgLy8gdGhvdWdoIGl0J3MgYWN0dWFsbHkgdGhlIGlubmVyIHRleHQgZWxlbWVudCBvZiB0aGUg
Y29udHJvbCB0aGF0IGlzIGVkaXRhYmxlLgogICAgICAgICAvLyBTbywgbm8gbmVlZCB0byB0cmF2
ZXJzZSB0byBmaW5kIHRoZSBpbm5lciB0ZXh0IGVsZW1lbnQgaW4gdGhpcyBjYXNlLgotICAgICAg
ICBpZiAoIWlzVGV4dENvbnRyb2woKSkKKyAgICAgICAgaWYgKHBhZ2UoKS5pc0VkaXRhYmxlUmVn
aW9uRW5hYmxlZCgpICYmICFpc1RleHRDb250cm9sKCkpCiAgICAgICAgICAgICBuZWVkc1RyYXZl
cnNlRGVzY2VuZGFudHMgfD0gZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygpOwog
I2VuZGlmCiAgICAgICAgIGlmICghbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDdkNjhjZGIzMTkxMjE2ZTM2
N2Y5ODY2Zjc5YzhkOGIxODgwMjQ0YWEuLjM4YmMxMTczYTM3NjZmN2Q5MTQ3N2U2OTA3M2U0MWJi
YjczNjcyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAK
QEAgLTc0NiwxMCArNzQ2LDEyIEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgICAg
ICBpZiAobV9zdHlsZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSAhPSBuZXdTdHlsZS5ldmVu
dExpc3RlbmVyUmVnaW9uVHlwZXMoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNp
ZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgICAgICAgICAgYm9vbCB3YXNFZGl0YWJsZSA9
IG1fc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5OwotICAgICAgICAg
ICAgYm9vbCBpc0VkaXRhYmxlID0gbmV3U3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6
OlJlYWRPbmx5OwotICAgICAgICAgICAgaWYgKHdhc0VkaXRhYmxlICE9IGlzRWRpdGFibGUpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBpZiAocGFnZSgpLmlzRWRp
dGFibGVSZWdpb25FbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBib29sIHdhc0VkaXRhYmxl
ID0gbV9zdHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7CisgICAgICAg
ICAgICAgICAgYm9vbCBpc0VkaXRhYmxlID0gbmV3U3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJN
b2RpZnk6OlJlYWRPbmx5OworICAgICAgICAgICAgICAgIGlmICh3YXNFZGl0YWJsZSAhPSBpc0Vk
aXRhYmxlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0K
ICNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAwM2ViNjFkZGIxMWJlODRiMGZhOTVhZjBi
MTBhNWVkOTBmMDllM2E5Li40NzM1ZGFiODMwZDE5MmE0ZDAzNzM1NDE5ZWFhODlkOWFiMTdjNWZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtOTI3LDcgKzkyNyw3
IEBAIHB1YmxpYzoKIAogICAgIC8vIEludmFsaWRhdGlvbiBjYW4gZmFpbCBpZiB0aGVyZSBpcyBu
byBlbmNsb3NpbmcgY29tcG9zaXRpbmcgbGF5ZXIgKGUuZy4gbmVzdGVkIGlmcmFtZSkKICAgICAv
LyBvciB0aGUgbGF5ZXIgZG9lcyBub3QgbWFpbnRhaW4gYW4gZXZlbnQgcmVnaW9uLgotICAgIGVu
dW0gY2xhc3MgRXZlbnRSZWdpb25JbnZhbGlkYXRpb25SZWFzb24geyBQYWludCwgU3R5bGUsIE5v
bkNvbXBvc2l0ZWRGcmFtZSB9OworICAgIGVudW0gY2xhc3MgRXZlbnRSZWdpb25JbnZhbGlkYXRp
b25SZWFzb24geyBQYWludCwgU2V0dGluZ0RpZENoYW5nZSwgU3R5bGUsIE5vbkNvbXBvc2l0ZWRG
cmFtZSB9OwogICAgIGJvb2wgaW52YWxpZGF0ZUV2ZW50UmVnaW9uKEV2ZW50UmVnaW9uSW52YWxp
ZGF0aW9uUmVhc29uKTsKIAogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CmluZGV4IDIzNzZiNjIwZTE3NWZiYTk4ZWFlZjY0MmJkYTVlZjlhYTJmNzNkOTkuLjA3NjQ3OGE2
NjE3ZDhlNzZhZjFkYzIyMWY4NjE2ZGU3NDBiMTYwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNzA4LDcgKzE3MDgsNyBAQCBi
b29sIFJlbmRlckxheWVyQmFja2luZzo6bWFpbnRhaW5zRXZlbnRSZWdpb24oKSBjb25zdAogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0g
ICAgaWYgKHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygpKQor
ICAgIGlmIChyZW5kZXJlcigpLnBhZ2UoKS5pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpICYmIHJl
bmRlcmVyKCkuZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTczNSw2
ICsxNzM1LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbigp
CiAgICAgYXV0byB1cGRhdGVFdmVudFJlZ2lvbkZvckxheWVyID0gWyZdKEdyYXBoaWNzTGF5ZXIm
IGdyYXBoaWNzTGF5ZXIpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0IG51bGxDb250ZXh0KG51
bGxwdHIpOwogICAgICAgICBFdmVudFJlZ2lvbiBldmVudFJlZ2lvbjsKKyNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQorICAgICAgICAvLyBUaGUgZXhpc3RlbmNlIG9mIHRoZSBlZGl0YWJsZSBy
ZWdpb24sIGV2ZW4gaWYgdGhlIGRvY3VtZW50IGhhcyAwIGVkaXRhYmxlIGVsZW1lbnRzLCBpcyB0
aGUKKyAgICAgICAgLy8gcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLiBJdCBhbGxvd3MgdGhlIFVJ
IHByb2Nlc3MgdG8gYXZvaWQgbWVzc2FnaW5nIHRoZSB3ZWIgcHJvY2VzcyB0bworICAgICAgICAv
LyBhc2sgZm9yIGVkaXRhYmxlIGVsZW1lbnRzIHdoZW4gdGhlcmUgYXJlIG5vbmUuIElmIHRoZXJl
IGlzIG5vIGVkaXRhYmxlIHJlZ2lvbiB0aGVuIHRoZSBVSQorICAgICAgICAvLyBwcm9jZXNzIG11
c3QgYWx3YXlzIG1lc3NhZ2UgdGhlIHdlYiBwcm9jZXNzIGJlY2F1c2UgaXQgZG9lcyBub3Qga25v
dyB3aGV0aGVyIG9yIG5vdCB0aGUKKyAgICAgICAgLy8gcGFnZSBoYXMgZWRpdGFibGUgZWxlbWVu
dHMuCisgICAgICAgIGlmIChyZW5kZXJlcigpLnBhZ2UoKS5pc0VkaXRhYmxlUmVnaW9uRW5hYmxl
ZCgpKQorICAgICAgICAgICAgZXZlbnRSZWdpb24uZW5zdXJlRWRpdGFibGVSZWdpb24oKTsKKyNl
bmRpZgogICAgICAgICBhdXRvIGV2ZW50UmVnaW9uQ29udGV4dCA9IGV2ZW50UmVnaW9uLm1ha2VD
b250ZXh0KCk7CiAgICAgICAgIGF1dG8gbGF5ZXJPZmZzZXQgPSBncmFwaGljc0xheWVyLnNjcm9s
bE9mZnNldCgpIC0gcm91bmRlZEludFNpemUoZ3JhcGhpY3NMYXllci5vZmZzZXRGcm9tUmVuZGVy
ZXIoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmlu
ZGV4IGJiYmI0YTQwMGIyN2ZkOTk5ZmI3YWYwZjM5MTk4NjI3M2RhNGE3ZmEuLjhlNTI5ZjE5MjRm
NzY5MzEwYjlkN2ZiNDQ3MGQ3YzQ3ZTcxNjM4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMjg2LDYgKzI4Niw5IEBAIHZvaWQgSW50ZXJuYWxT
ZXR0aW5nczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCiAgICAgbV9wYWdlLT5zZXRQYWdlU2Nh
bGVGYWN0b3IoMSwgeyAwLCAwIH0pOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuc2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycygxLCAxKTsKICAgICBtX3BhZ2UtPnNldENhblN0YXJ0TWVkaWEodHJ1
ZSk7CisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICBtX3BhZ2UtPnNldEVkaXRhYmxl
UmVnaW9uRW5hYmxlZCh0cnVlKTsKKyNlbmRpZgogICAgIHNldFVzZURhcmtBcHBlYXJhbmNlSW50
ZXJuYWwoZmFsc2UpOwogCiAgICAgc2V0dGluZ3MoKS5zZXRGb3JjZVBlbmRpbmdXZWJHTFBvbGlj
eShmYWxzZSk7CkBAIC00NDEsNiArNDQ0LDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFs
U2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKGJvb2wgZW5hCiAg
ICAgcmV0dXJuIHsgfTsKIH0KIAorRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6
c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAoIW1fcGFn
ZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworI2lm
IEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgbV9wYWdlLT5zZXRFZGl0YWJsZVJlZ2lvbkVu
YWJsZWQoZW5hYmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKKyNlbmRp
ZgorICAgIHJldHVybiB7IH07Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGlu
Z3M6OnNldE1lZGlhVHlwZU92ZXJyaWRlKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlKQogewogICAg
IGlmICghbV9wYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApp
bmRleCBhMWI5NzA5NGI3ZTBiMWU0ZGE2NDI4NzA5YjFlY2FkZTBkYzU0NzRhLi40Nzg1ZTY4MTRh
MWY4NWRhZjE4NGZhYzEyMDEwMDRjZjNiMjM3ZWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaApAQCAtMTA5LDYgKzEwOSw4IEBAIHB1YmxpYzoKIAogICAgIHVz
aW5nIEZyYW1lRmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOwogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSk7CisKKyAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCk7CiAgICAg
CiAgICAgc3RhdGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IDM2ODg3ZmM2
MTU2NWEwNDg5YTZlNTBiNjA2ZWY4NGRhMTYwMGU2ZTYuLmMxNWYzYmU0NzA5MTc2ODZmZjJkNGM0
NGEyNGI1OGNmOThjYWU5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmlkbApAQCAtMTIyLDUgKzEyMiw3IEBAIGVudW0gRm9udExvYWRUaW1pbmdPdmVycmlk
ZSB7ICJCbG9jayIsICJTd2FwIiwgIkZhaWx1cmUiIH07CiAgICAgdm9pZCBzZXRTaG91bGREZWFj
dGl2YXRlQXVkaW9TZXNzaW9uKGJvb2xlYW4gc2hvdWxkRGVhY3RpdmF0ZSk7CiAgICAgCiAgICAg
dm9pZCBzZXRTdG9yYWdlQWNjZXNzQVBJUGVyUGFnZVNjb3BlRW5hYmxlZChib29sZWFuIGVuYWJs
ZWQpOworCisgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldEVkaXRhYmxlUmVnaW9uRW5h
YmxlZChib29sZWFuIGVuYWJsZWQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVl
Vmlld3MubW0KaW5kZXggNTJhOGE3NTZiYjQ5ZGJkYTY0MTc4NDRiYWUxYTY0YWVjNDQ2ODIzNS4u
ZjVhYzI4NGI2OGMzNDQ3ZTdjNzVjZGY1OTYxOWYyYzNlMzBhYmIzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVW
aWV3cy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCkBAIC0xMjAsNiArMTIwLDcgQEAgYm9vbCBtYXlDb250
YWluRWRpdGFibGVFbGVtZW50c0luUmVjdChVSVZpZXcgKnJvb3RWaWV3LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QKICAgICBjb2xsZWN0RGVzY2VuZGFudFZpZXdzSW5SZWN0KHZpZXdzSW5SZWN0
LCByb290VmlldywgcmVjdCk7CiAgICAgaWYgKHZpZXdzSW5SZWN0LmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgc2VlbkFuRWRpdGFibGVSZWdpb24gPSBmYWxzZTsK
ICAgICBmb3IgKGF1dG8gKnZpZXcgOiBXVEY6Om1ha2VSZXZlcnNlZFJhbmdlKHZpZXdzSW5SZWN0
KSkgewogICAgICAgICBpZiAoIVt2aWV3IGlzS2luZE9mQ2xhc3M6V0tDb21wb3NpdGluZ1ZpZXcu
Y2xhc3NdKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xMjksMTAgKzEzMCwxNiBAQCBib29s
IG1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0KFVJVmlldyAqcm9vdFZpZXcsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdAogICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IHJlY3RUb1Rlc3Qg
eyBbdmlldyBjb252ZXJ0UmVjdDpyZWN0IGZyb21WaWV3OnJvb3RWaWV3XSB9OwogICAgICAgICBp
ZiAobm9kZS0+ZXZlbnRSZWdpb24oKS5jb250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QocmVj
dFRvVGVzdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG5vZGUtPmV2
ZW50UmVnaW9uKCkuY29udGFpbnMocmVjdFRvVGVzdCkpCisgICAgICAgIGJvb2wgaGFzRWRpdGFi
bGVSZWdpb24gPSBub2RlLT5ldmVudFJlZ2lvbigpLmhhc0VkaXRhYmxlUmVnaW9uKCk7CisgICAg
ICAgIGlmIChoYXNFZGl0YWJsZVJlZ2lvbiAmJiBub2RlLT5ldmVudFJlZ2lvbigpLmNvbnRhaW5z
KHJlY3RUb1Rlc3QpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzZWVuQW5F
ZGl0YWJsZVJlZ2lvbiB8PSBoYXNFZGl0YWJsZVJlZ2lvbjsKICAgICB9Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIC8vIElmIHdlIGRpZG4ndCBzZWUgYW4gZWRpdGFibGUgcmVnaW9uIHRoZW4gd2Ug
ZG9uJ3Qga25vdyB3aGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUKKyAgICAvLyBlZGl0YWJsZSBlbGVt
ZW50cyBpbiB0aGUgcmVjdC4gV2Ugb25seSBrbm93IHRoYXQgdGhlIHdlYiBwcm9jZXNzIGRpZCBu
b3QgZG8gYW4KKyAgICAvLyBldmVudCByZWdpb24gcGFpbnQgdG8gZmluZCB0aGVtLiBUaGUgY2Fs
bGVyIHdpbGwgaGF2ZSB0byBhc2sgdGhlIHdlYiBwcm9jZXNzIHRvCisgICAgLy8ga25vdyBmb3Ig
c3VyZS4KKyAgICByZXR1cm4gIXNlZW5BbkVkaXRhYmxlUmVnaW9uOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKEVESVRBQkxFX1JFR0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggYWUxOTViZDdlMmY4MjQwZDFlN2Q4OGM3YjdkZTE0MjJhNGRiOTI5Ni4uZTBhNTVk
ZThjOWRiNDEwNzg4NTNmOTQ3YmIzOTczODgwZTJjZjAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTcyNSw2ICs3MjUsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
dGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4mKT4mJik7CiAg
ICAgdm9pZCBmb2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnN0IFdlYkNvcmU6
OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAg
dm9pZCBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCk7CisjZW5kaWYKKwogICAgIHZvaWQg
c2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKGJvb2wpOwogICAg
ICAgICAKICAgICB2b2lkIHNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChib29sKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAppbmRleCA4MDgwMjRiYTllOWQ5YTRkODVlMDQ0NzE3MTMwZjIzMDc4OTVmZGI0Li5mYWM4ODA3
ZjUyOGUxZGE0MjVkNjE5MjJlYTY0NDMzMjQ3ZGUzZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zNjEs
NiArMzYxLDkgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBCT09MIF90ZXh0
SW50ZXJhY3Rpb25EaWRDaGFuZ2VGb2N1c2VkRWxlbWVudDsKICAgICBCT09MIF90ZXh0SW50ZXJh
Y3Rpb25Jc0hhcHBlbmluZzsKICAgICBib29sIF9pc1dhaXRpbmdPblBvc2l0aW9uSW5mb3JtYXRp
b247CisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICBib29sIF9lZGl0YWJsZVJlZ2lv
bkVuYWJsZWQ7CisjZW5kaWYKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBfcG9p
bnRJbnNpZGVMYXN0Rm9jdXNlZFRleHRJbnB1dENvbnRleHQ7CiAKQEAgLTQ1Miw2ICs0NTUsMTAg
QEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcpIE5TQXJyYXk8VUlUZXh0U3VnZ2VzdGlvbiAqPiAqZGF0YUxpc3RUZXh0U3VnZ2VzdGlv
bnM7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCkgQk9PTCBl
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQ7CisjZW5kaWYKKwogLSAodm9pZClzZXRVcEludGVyYWN0aW9u
OwogLSAodm9pZCljbGVhblVwSW50ZXJhY3Rpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDk3MTgy
MDRjNWQ2MDliZTZlZDNiZmNkODJhY2E5YTljNTFjN2VlYjkuLmIyNTE4ZWQ1NWUyOGNhOTNmYWRm
NWU4ODg0N2RkYWZlNjg1MTM5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTM0LDYgKzkzNCwxMCBA
QCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIF9zZWVuSGFyZHdhcmVLZXlEb3duSW5O
b25FZGl0YWJsZUVsZW1lbnQgPSBOTzsKICNlbmRpZgogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JF
R0lPTikKKyAgICBfZWRpdGFibGVSZWdpb25FbmFibGVkID0gTk87CisjZW5kaWYKKwogICAgIF90
ZXh0SW50ZXJhY3Rpb25EaWRDaGFuZ2VGb2N1c2VkRWxlbWVudCA9IE5POwogICAgIF90ZXh0SW50
ZXJhY3Rpb25Jc0hhcHBlbmluZyA9IE5POwogICAgIF9wb2ludEluc2lkZUxhc3RGb2N1c2VkVGV4
dElucHV0Q29udGV4dCA9IFdURjo6bnVsbG9wdDsKQEAgLTQyOTQsNiArNDI5OCw5IEBAIC0gKHZv
aWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWUKIHsKICNpZiBVU0UoVUlLSVRfS0VZQk9BUkRf
QURESVRJT05TKQogICAgIF9zZWVuSGFyZHdhcmVLZXlEb3duSW5Ob25FZGl0YWJsZUVsZW1lbnQg
PSBOTzsKKyNlbmRpZgorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgX2VkaXRhYmxl
UmVnaW9uRW5hYmxlZCA9IE5POwogI2VuZGlmCiAgICAgW3NlbGYgX2VsZW1lbnREaWRCbHVyXTsK
ICAgICBbc2VsZiBfY2FuY2VsTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXJdOwpAQCAtNTE5Niwx
MCArNTIwMywzNSBAQCAtICh2b2lkKV9mb2N1c1RleHRJbnB1dENvbnRleHQ6KF9XS1RleHRJbnB1
dENvbnRleHQgKiljb250ZXh0IHBsYWNlQ2FyZXRBdDooQ0dQbwogICAgIF9wYWdlLT5mb2N1c1Rl
eHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnRleHQuX3RleHRJbnB1dENvbnRleHQsIHBv
aW50SW5zaWRlVGV4dElucHV0Q29udGV4dCwgV1RGTW92ZShjaGVja0ZvY3VzZWRFbGVtZW50KSk7
CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCistIChCT09MKWlzRWRpdGFibGVS
ZWdpb25FbmFibGVkCit7CisgICAgcmV0dXJuIF9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQ7Cit9CisK
Ky0gKHZvaWQpc2V0RWRpdGFibGVSZWdpb25FbmFibGVkOihCT09MKWVuYWJsZWQKK3sKKyAgICBp
ZiAoX2VkaXRhYmxlUmVnaW9uRW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47Cisg
ICAgX2VkaXRhYmxlUmVnaW9uRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgX3BhZ2UtPnNldEVkaXRh
YmxlUmVnaW9uRW5hYmxlZChlbmFibGVkKTsKK30KKworI2VuZGlmCisKIC0gKHZvaWQpX3JlcXVl
c3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDooQ0dSZWN0KXJlY3QgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKSljb21wbGV0aW9uSGFu
ZGxlcgogewogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzZWFyY2hSZWN0IHsgcmVjdCB9OwogI2lm
IEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgLy8gQ29tcHV0aW5nIHRoZSBlZGl0YWJsZSBy
ZWdpb24gaXMgYml0IGV4cGVuc2l2ZSBhbmQgY2FuIHNsb3cgZG93biBpbml0aWFsIHBhZ2UgbG9h
ZCBzbyBpdCdzCisgICAgLy8gZG9uZSBieSB0aGUgd2ViIHByb2Nlc3MgbGF6aWx5LiBXZSB0ZWxs
IGl0IGRvIHNvIG5vdyBpZiB3ZSBoYXZlbid0IGFscmVhZHkgZG9uZSBzby4gTm90ZSB0aGF0Cisg
ICAgLy8gdW50aWwgdGhlIFVJIHByb2Nlc3MgcmVjZWl2ZXMgaXQgbWF5Q29udGFpbkVkaXRhYmxl
RWxlbWVudHNJblJlY3Qgd2lsbCByZXR1cm4gdHJ1ZS4gVGhpcyBpcyBPSworICAgIC8vIGFuZCBq
dXN0IG1lYW5zIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGxlc3MgZWZmaWNpZW50IHRoYW4g
aXQgY291bGQgYmUgaWYgdGhlIHJlY3QgaW50ZXJzZWN0cworICAgIC8vIG5vdGhpbmcgaW4gdGhl
IG1lYW50aW1lLgorICAgIGlmICghX2VkaXRhYmxlUmVnaW9uRW5hYmxlZCkKKyAgICAgICAgc2Vs
Zi5lZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPSBZRVM7CisKICAgICBib29sIGhpdEludGVyYWN0aW9u
UmVjdCA9IHNlbGYuX2hhc0ZvY3VzZWRFbGVtZW50ICYmIHNlYXJjaFJlY3QuaW5jbHVzaXZlbHlJ
bnRlcnNlY3RzKF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmludGVyYWN0aW9uUmVjdCk7CiAg
ICAgaWYgKCFzZWxmLndlYlZpZXcuX2VkaXRhYmxlICYmICFoaXRJbnRlcmFjdGlvblJlY3QgJiYg
IVdlYktpdDo6bWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3Qoc2VsZiwgcmVjdCkpIHsK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQFsgXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAwNTA5Y2VjZGU1MjQ1N2NlNzZhNTg3
YzhiNmI1Zjg1MGQ3NTExZjFkLi5iODViZjU3YTYyMDVlMTlhZGFmZTFiNTk2NWFmMWFiMTFkNzBl
MDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KQEAgLTE1NzIsNiArMTU3MiwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNUZXh0SW5w
dXRDb250ZXh0QW5kUGxhY2VDYXJldChjb25zdCBFbGVtZW50Q29udGV4dCYgY29udAogICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6Rm9jdXNUZXh0SW5wdXRDb250ZXh0
QW5kUGxhY2VDYXJldChjb250ZXh0LCBwb2ludCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIGlmIChoYXNS
dW5uaW5nUHJvY2VzcygpKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRFZGl0
YWJsZVJlZ2lvbkVuYWJsZWQoZW5hYmxlZCkpOworfQorCisjZW5kaWYKKworCiB2b2lkIFdlYlBh
Z2VQcm94eTo6c2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKGJv
b2wgc2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKQogewogICAgIGlm
IChoYXNSdW5uaW5nUHJvY2VzcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IGY5NGFjYWFmMTg1NTM4N2Y1ZWMwODhiZjNmMzc2YmIxZWExY2VhZWQu
LmQxMDhiOTE2MjRlYWM1YzllMTMxMzViNjljYzA3MmE5Y2NiZTU5YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY1NSw2ICs2NTUsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgdGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dD4mKT4mJik7CiAgICAgdm9pZCBmb2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorI2lmIEVOQUJMRShFRElUQUJM
RV9SRUdJT04pCisgICAgdm9pZCBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCk7CisjZW5k
aWYKKwogICAgIGJvb2wgc2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNl
cnRpb247IH0KICAgICB2b2lkIHNldFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlcklu
c2VydGlvbihib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNjg4OWQ2MjMyYjlmZTU1N2ExOWEzOTBhM2Fm
ZTQ0ZDg3M2Y2OWUwOS4uYjkxOGUzN2E2MGYxNDFhM2EwYzMyNGE4ZTE0M2MwY2MzYzk5ZTI2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC0xMjYsNiArMTI2LDkgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAg
ICBUZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkgLT4gKFZl
Y3RvcjxzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGNvbnRleHRzKSBBc3luYwogICAg
IEZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoc3RydWN0IFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0IGNvbnRleHQsIFdlYkNvcmU6OkludFBvaW50IHBvaW50KSAtPiAoYm9vbCBzdWNj
ZXNzKSBBc3luYwogICAgIENsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJpZGUoKSAt
PiAoKSBBc3luYworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgU2V0RWRpdGFibGVS
ZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKKyNlbmRpZgogI2VuZGlmCiAKICAgICBTZXRDb250
cm9sbGVkQnlBdXRvbWF0aW9uKGJvb2wgY29udHJvbGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZGRiMjM2Yjg3ZGQ3
MDA4MTE0OTNkMTFkMjkxZDFhYjQ1NDg5NGM3Zi4uZWZkOTlhZmQyZmIwOTg4ZDg0Y2RmOWEyMGIw
YmYyNDQ2MzI2ZWM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTQzNjAsNiArNDM2MCwxNSBAQCB2b2lkIFdlYlBhZ2U6
OmZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29uc3QgRWxlbWVudENvbnRleHQm
IGVsZW1lbnRDbwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQogCisjaWYgRU5BQkxF
KEVESVRBQkxFX1JFR0lPTikKKwordm9pZCBXZWJQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fcGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVk
KGVuYWJsZWQpOworfQorCisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybURpZFNjYWxl
UGFnZSgpCiB7CiAgICAgYXV0byB0cmFuc2FjdGlvbklEID0gZG93bmNhc3Q8UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE+KCptX2RyYXdpbmdBcmVhKS5sYXN0Q29tbWl0dGVkVHJhbnNhY3Rpb25J
RCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDI1ZTcxY2FmMzQwNzY2OGM4NGRiNjhmNjY4NGE4Njc2NDljZWM2YWEuLmUz
ZTA3YTk4MjhiOTA2NmFkYTEwY2IxNjVmOGJhMjNiNzBiNzUxNGUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAyMC0wNi0yNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gRWRpdGFibGUgcmVnaW9ucyBjYXVzZXMgfjElIHNsb3dkb3duIGluIFBMVDUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzY1OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNjEzOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNvbWUgdGVzdHMgdG8gZW5zdXJlIHRoZSBu
ZXcgc2V0dGluZyB3b3JrcyBhbmQgdGhlIGZlYXR1cmUgY2FuIGJlIGRpc2FibGVkLiBOb3RlCisg
ICAgICAgIHRoYXQgdGhlIHNldHRpbmcgaXMgZW5hYmxlZCBieSBkZWZhdWx0IHRvIGtlZXAgdGhl
IGN1cnJlbnQgYmVoYXZpb3IuIFNlZSB0aGUgV2ViQ29yZQorICAgICAgICBDaGFuZ2VMb2cgZW50
cnkgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0
aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQt
ZWRpdGFibGUtcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxk
LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTI2
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnRl
bnQgc29tZXRpbWVzIG1pc3NpbmcgaW4gbmVzdGVkIHNjcm9sbGVycyB3aXRoIGJvcmRlci1yYWRp
dXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10
ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTY2ZjVkODFmYzg1NTcwMTIyYTYy
MWNjYmNjMDM2YThjNDJlMmE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0hpdCB0ZXN0cyBmb3IgZWRpdGFibGUgZWxl
bWVudHMgaW5zaWRlIHRoZSBibGFjayBvdXRsaW5lZCByZWN0YW5nbGUgd2hlbiB0aGUgZWRpdGFi
bGUgcmVnaW9uIGlzIGRpc2FibGVkLiBUaGVyZSBzaG91bGQgYmUgbW9yZSBmYWxzZSBwb3NpdGl2
ZXMgd2hlbiBkaXNhYmxlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
KHggPSAxMDAsIHkgPSAxMDAsIHdpZHRoID0gMjAyLCBoZWlnaHQgPSAyMDIpIGNvbnRhaW5zIGVk
aXRhYmxlIGVsZW1lbnRzLgorUEFTUyAoeCA9IDAsIHkgPSAwLCB3aWR0aCA9IDUwLCBoZWlnaHQg
PSA1MCkgY29udGFpbnMgZWRpdGFibGUgZWxlbWVudHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdp
b24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJh
c2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MzNGJmYjhjYzlh
N2FmZTNjMjk5ODdmZTAxMjVlY2NmMTMxZDc2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGl0LXRlc3QtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KzxzdHlsZT4KKyN0ZXN0LWNvbnRhaW5lciB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
IHRvcDogMTAwcHg7CisgICAgbGVmdDogMTAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogMjAwcHg7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+CisgICAgPGlucHV0Pgor
PC9kaXY+Cis8c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVu
YWJsZWQoZmFsc2UpOworCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAoIXdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIk11c3QgYmUgcnVuIGluIFdl
YktpdFRlc3RSdW5uZXIuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBsZXQgdGVz
dENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWNvbnRhaW5lciIpOwor
ICAgIGF3YWl0IHNob3VsZEhhdmVFZGl0YWJsZUVsZW1lbnRzSW5SZWN0Rm9yRWxlbWVudCh0ZXN0
Q29udGFpbmVyKTsKKworICAgIC8vIFdpdGhvdXQgZWRpdGFibGUgcmVnaW9uIGVuYWJsZWQgdGhp
cyByZWN0IGlzIHRob3VnaHQgdG8gY29udGFpbiBzb21ldGhpbmcgZWRpdGFibGUgZXZlbiB0aG91
Z2ggaXQgZG9lc24ndC4KKyAgICBhd2FpdCBzaG91bGRIYXZlRWRpdGFibGVFbGVtZW50c0luUmVj
dCgwLCAwLCA1MCwgNTApOworCisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXN0Q29u
dGFpbmVyKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZGVzY3JpcHRpb24oIkhpdCB0ZXN0
cyBmb3IgZWRpdGFibGUgZWxlbWVudHMgaW5zaWRlIHRoZSBibGFjayBvdXRsaW5lZCByZWN0YW5n
bGUgd2hlbiB0aGUgZWRpdGFibGUgcmVnaW9uIGlzIGRpc2FibGVkLiBUaGVyZSBzaG91bGQgYmUg
bW9yZSBmYWxzZSBwb3NpdGl2ZXMgd2hlbiBkaXNhYmxlZC4iKTsKK3J1blRlc3QoKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVk
aXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQwZmFmYTI3ZjUxOWIwZWM2
OTQ4YWM3OWMzMmFiNmNlMjk0NTNjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1NCBAQAorCisoR3JhcGhpY3NMYXllcgorICAoYW5jaG9yIDAu
MDAgMC4wMCkKKyAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAgICAgIChjb250
ZW50c09wYXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJhY2tncm91bmRD
b2xvciAjRkZGRkZGKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQorICAgICAgICAgIChib3VuZHMgMzA0LjAw
IDMwNC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAy
LjAwIDIuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgb3JpZ2luIDAuMDAgMjAwLjAw
KQorICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAg
IChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJv
dW5kcyAzMTAuMDAgNjcwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4g
MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMxMC4wMCA2NzAuMDApCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAg
ICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg
ICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICAp
CisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0
LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI2M2I5
ZDYyMWY2Y2NkMWUwZGExYWVjNWZlNDgyZWRlMDk0ODVhMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxl
LXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keSBzdHlsZT0iaGVpZ2h0OiA0MDk2cHgiPgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBoZWln
aHQ9IjMwMCIgc3JjZG9jPSIKKzxzdHlsZT4KKy5zY3JvbGxlciB7CisgICAgbWFyZ2luLXRvcDog
NDAwcHg7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDogMzAwcHg7CisgICAgb3ZlcmZs
b3c6IHNjcm9sbDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKy5jb250ZW50cyB7
CisgICAgd2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogNTAwcHg7Cit9CisuZWRpdGFibGUgewor
ICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGU7CisgICAgYm9yZGVyOiAycHggc29s
aWQgYmx1ZTsKK30gICAKKzwvc3R5bGU+Cis8cD5pZnJhbWU8L3A+Cis8ZGl2IGNsYXNzPSdlZGl0
YWJsZSBib3gnIHN0eWxlPSdtYXJnaW4tdG9wOiAyNTBweDsnPgorPC9kaXY+Cis8ZGl2IGNsYXNz
PSdzY3JvbGxlcicgc3R5bGU9J21hcmdpbi10b3A6IDUwcHg7Jz4KKyAgICA8ZGl2IGNsYXNzPSdj
b250ZW50cyc+CisgICAgICAgIE92ZXJmbG93IHNjcm9sbCBpbiBpZnJhbWUKKyAgICAgICAgPGRp
diBjbGFzcz0nZWRpdGFibGUgYm94JyBzdHlsZT0nbWFyZ2luLXRvcDogNTBweDsnPgorICAgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK3dpbmRvdy5wYXJlbnQuc2Ny
b2xsSUZyYW1lQW5kRHVtcFJlZ2lvbnMoKTsKKzwvc2NyaXB0PgorIj4KKzwvaWZyYW1lPgorPHBy
ZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZmFsc2UpOworfQorCitmdW5jdGlvbiBz
Y3JvbGxJRnJhbWVBbmREdW1wUmVnaW9ucygpCit7CisgICAgdGVzdEZyYW1lLmNvbnRlbnRXaW5k
b3cuc2Nyb2xsVG8oMCwgMjAwKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICBy
ZXN1bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwg
aW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxB
WUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKKyAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRp
dGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVs
ZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODgxZmU1ZDkwZjY1ZjUwODVkMTQzZDkxNmY5ODQ1MTRjNDMyYWYyMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMt
d2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKwor
KEdyYXBoaWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAuMDApCisgIChib3VuZHMgODAwLjAwIDYw
MC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4
MDAuMDAgNjAwLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAoZHJhd3NDb250
ZW50IDEpCisgICAgICAoYmFja2dyb3VuZENvbG9yICNGRkZGRkYpCisgICAgKQorICApCispCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmll
bGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42Y2M4M2QyMzg2YWY5YjFlNzVkMTM1OWM0OTM3NDJlY2Y0ZDhj
YWRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCkBAIC0wLDAg
KzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxpbnB1dCB0eXBlPSJ0
ZXh0Ij4KKzxwcmUgaWQ9InJlc3VsdHMiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChm
YWxzZSk7CisgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1Rl
eHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8
IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7Cit9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402967</attachid>
            <date>2020-06-27 11:18:31 -0700</date>
            <delta_ts>2020-06-27 13:34:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213659-20200627111830.patch</filename>
            <type>text/plain</type>
            <size>43624</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU5M2Q4ODRhM2VjOWQ1
NDk1NDAzNTEyY2EyNDJlY2Q5ZmEzNTZlYi4uODBlNjRmZmM3YWI0NWZhZDg3YWVlZjEyYjQ1ZTE2
YjZkZjk3YjVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIwLTA2LTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIHNsb3dkb3duIGJ5IGFkZGluZyBhIHJ1bnRpbWUgc3dpdGNoIHRvIGVuYWJs
ZSBlZGl0YWJsZSByZWdpb24gY29tcHV0YXRpb24gYW5kCisgICAgICAgIGRpc2FibGUgaXQgYnkg
ZGVmYXVsdC4gVGhlIFVJIHByb2Nlc3Mgd2lsbCBmbGlwIHRoZSBzd2l0Y2ggb24gdGhlIGZpcnN0
IGludm9jYXRpb24gb2YKKyAgICAgICAgLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Qu
CisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwYXJ0cyB0aGF0IG1ha2UgY29tcHV0aW5nIHRoZSBl
ZGl0YWJsZSByZWdpb24gZXhwZW5zaXZlOgorICAgICAgICAgICAgICAgIDEuIFJlcXVpcmVzIHRy
YXZlcnNpbmcgZGVzY2VuZGVudHMgZHVyaW5nIHBhaW50aW5nIHdoZW4gYSBub3JtYWwgcGFpbnQg
bWF5IGJlCisgICAgICAgICAgICAgICAgICAgYWJsZSB0byBhdm9pZCB0aGlzLgorICAgICAgICAg
ICAgICAgIDIuIENhbiBjYXVzZSBtb3JlIGV2ZW50IHJlZ2lvbiBpbnZhbGlkYXRpb25zIGJlY2F1
c2UgaXQgZXh0ZW5kcyB0aGUgaW52YWxpZGF0aW9uCisgICAgICAgICAgICAgICAgICAgY3JpdGVy
aW9uIHRvIGluY2x1ZGUgY2hhbmdlcyB0byBlbGVtZW50IGVkaXRhYmlsaXR5LgorCisgICAgICAg
IFVzaW5nIGEgcnVudGltZSBzd2l0Y2ggYXZvaWRzIHBheWluZyB0aGVzZSBjb3N0cyB1bnRpbCB0
aGUgZmVhdHVyZSBpcyBuZWVkZWQuIFRvIG1ha2UKKyAgICAgICAgZGVidWdnaW5nIGVhc2llciBm
b3IgbWUsIGVuYWJsaW5nIHRoZSBlZGl0YWJsZSByZWdpb24gZGVidWcgb3ZlcmxheSB3aWxsIGFs
c28gZW5hYmxlCisgICAgICAgIGVkaXRhYmxlIHJlZ2lvbi4KKworICAgICAgICBUZXN0czogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdp
b24uaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdp
dGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbAor
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW52
YWxpZGF0ZUNvbnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZCk6IENoZWNrIGlmIGVkaXRhYmxlIHJl
Z2lvbiBpcyBlbmFibGVkLgorICAgICAgICBJZiBpdCBpcyB0aGVuIGRvIHdoYXQgd2UgZG8gbm93
LiBPdGhlcndpc2UsIGRvbid0IGludmFsaWRhdGUgdGhlIHJlZ2lvbiB1bmxlc3Mgd2Ugd2VyZSBn
b2luZworICAgICAgICB0byBkbyBzbyBhbnl3YXkuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVk
LiBVcGRhdGUgc3RhdGUgYW5kIHRoZW4gaW52YWxpZGF0ZQorICAgICAgICB0aGUgZXZlbnQgcmVn
aW9uIGluIGFsbCBsYXllcnMuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCBjb25zdCk6IEFkZGVkLgorCisgICAg
ICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3NCYXNlLmNw
cDoKKyAgICAgICAgQWRkIGEgY2hhbmdlIGhhbmRsZXIgdGhhdCBpcyBpbnZva2VkIHdoZW5ldmVy
IHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zIGNoYW5nZXMuIFRoaXMgaGFuZGxlcgorICAgICAg
ICBqdXN0IHR1cm5zIGFyb3VuZCBhbmQgY2FsbHMgUGFnZTo6c2V0RWRpdGFibGVSZWdpb25FbmFi
bGVkKCkgcGFzc2luZyB3aGV0aGVyIHRoZSBkZWJ1ZyBvdmVybGF5CisgICAgICAgIGZvciBlZGl0
YWJsZSByZWdpb24gaXMgZW5hYmxlZCBvciBub3QuIFRoaXMga2VlcHMgdGhlIFVJIGJlaGF2aW9y
IHdlIGhhdmUgbm93LCBidXQgZm9yIGEgZGlmZmVyZW50CisgICAgICAgIHJlYXNvbjogSSBmaW5k
IGl0IGNvbnZlbmllbnQgdG8gdXNlIHRoZSBvdmVybGF5IHRvIGV5ZWJhbGwgd2hldGhlciB0aGVy
ZSBhcmUgYW55IGVkaXRhYmxlIGVsZW1lbnRzCisgICAgICAgIG9uIHRoZSBwYWdlIGFzIHBhcnQg
b2YgYnVnIHRyaWFnaW5nIHdpdGggYSBub24tZGVidWcgYnVpbGQuIE5vdCBkb2luZyB0aGlzIHdv
dWxkIGltcG9zZSB0aGUKKyAgICAgICAgaW5jb252ZW5pZW5jZSBvZiByZXF1aXJpbmcgYSBkZWJ1
ZyBzZXR1cCBvbiBoYW5kLgorCisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp1bml0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFJlZ2lvbjo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9u
Ojpjb250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRSZWdpb246OmR1bXAgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9FdmVudFJl
Z2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmVuc3VyZUVkaXRhYmxlUmVn
aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6aGFzRWRpdGFibGVS
ZWdpb24gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpyZWN0
c0ZvckVkaXRhYmxlRWxlbWVudHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdp
b246OmRlY29kZSk6CisgICAgICAgIFRoZSBlZGl0YWJsZSByZWdpb24gaXMgbm93IGFuIE9wdGlv
bmFsPD4uIFRoZXJlIHdpbGwgb25seSBiZSBvbmUgaWYgZW5zdXJlRWRpdGFibGVSZWdpb24KKyAg
ICAgICAgd2FzIGNhbGxlZCwgd2hpY2ggaXMgb25seSB3aGVuIFBhZ2U6OmlzRWRpdGFibGVSZWdp
b25FbmFibGVkKCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9iamVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bWFpbnRhaW5zRXZlbnRSZWdp
b24gY29uc3QpOgorICAgICAgICBPbmx5IGRvIHdoYXQgd2UgZG8gbm93IGlmIFBhZ2U6OmlzRWRp
dGFibGVSZWdpb25FbmFibGVkKCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKTogQ2FsbCBlbnN1cmVFZGl0YWJs
ZVJlZ2lvbiBpZiBQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpIHJldHVybnMgdHJ1ZS4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphcHBseVRvQ29tcG9zaXRlZExheWVy
SW5jbHVkaW5nRGVzY2VuZGFudHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFyQmFja2luZ0Zv
ckFsbExheWVycyk6IFdyb3RlIGluIHRlcm1zIG9mIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNs
dWRpbmdEZXNjZW5kYW50cy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpjbGVhckJhY2tpbmdGb3JMYXllckluY2x1ZGluZ0Rlc2NlbmRhbnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
U2V0dGluZ3M6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsOgorICAgICAgICBBZGQgYSBuZXcgaW50ZXJuYWwgc2V0dGluZyBmb3IgdGVzdGluZyBw
dXJwb3NlcyB0byB0b2dnbGUgZW5hYmxpbmcvZGlzYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbi4KKyAg
ICAgICAgS2VlcCB0aGUgY3VycmVudCBiZWhhdmlvciB3ZSBoYXZlIGluIHRlc3Rpbmcgbm93IGJ5
IGVuYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbiBieSBkZWZhdWx0LgorCiAyMDIwLTA2LTI2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnRlbnQgc29t
ZXRpbWVzIG1pc3NpbmcgaW4gbmVzdGVkIHNjcm9sbGVycyB3aXRoIGJvcmRlci1yYWRpdXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNzdiMTkwNDgxYWJhZWNmMjM2MjA4NTQ3ZTlhODE5Y2NiYjUzNDM4MC4uNzU1Zjkz
MDUwYmVlOTA0NmU2YmY3NTUxNTA5ZmJhYzAzNjhiYWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
MiBAQAorMjAyMC0wNi0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gRWRpdGFibGUgcmVnaW9ucyBjYXVzZXMgfjElIHNsb3dkb3duIGluIFBMVDUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzY1OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNjEzOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHVwIFJlbW90ZUxheWVyVHJlZVZpZXdzIG5v
dyB0aGF0IHRoZSBlZGl0YWJsZSByZWdpb24gaXMgYW4gT3B0aW9uYWw8Pi4gSGF2ZQorICAgICAg
ICB0aGUgVUkgcHJvY2VzcyBtZXNzYWdlIHRoZSB3ZWIgcHJvY2VzcyB0byBlbmFibGUgZWRpdGFi
bGUgcmVnaW9uIG9uIHRoZSBmaXJzdAorICAgICAgICBpbnZvY2F0aW9uIG9mIF9yZXF1ZXN0VGV4
dElucHV0Q29udGV4dHNJblJlY3QsIHdoaWNoIGlzIGdvb2QgaW5kaWNhdG9yIHRoYXQgdGhlcmUK
KyAgICAgICAgd291bGQgYmUgYmVuZWZpdCB0byBjb21wdXRpbmcgaXQgYXMgYSB0eXBpY2FsIGNs
aWVudCB0aGF0IGNhbGxzIGl0IHdpbGwgY2FsbCBpdAorICAgICAgICBtYW55IHRpbWVzLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmll
d3MubW06CisgICAgICAgIChXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0
KTogRml4IHVwIHRoZSBsb2dpYyBub3cgdGhhdCB0aGVyZSBtYXkKKyAgICAgICAgYmUgbm90IGJl
IGFuIGVkaXRhYmxlIHJlZ2lvbiBzZW50IG92ZXIgaW4gdGhlIGxhc3QgZXZlbnQgcmVnaW9uIHVw
ZGF0ZS4gSWYgdGhlcmUKKyAgICAgICAgaXNuJ3Qgb25lIHRoZW4gd2UgZG9uJ3Qga25vdyBpZiB0
aGVyZSBhcmUgZWRpdGFibGUgZWxlbWVudHMgaXMgaW4gdGhlIHJlY3Qgb2Ygbm90LgorICAgICAg
ICBTbywganVzdCByZXR1cm4gdHJ1ZTogdGhlcmUgbWF5IGJlIGVkaXRhYmxlIGVsZW1lbnRzIGlu
IHRoZSByZWN0LiBUaGUgY2FsbGVyIHdpbGwKKyAgICAgICAgaGF2ZSB0byBtZXNzYWdlIHRoZSB3
ZWIgcHJvY2VzcyB0byBmaW5kIG91dCB0aGUgcmVhbCBhbnN3ZXIuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rp
b25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFt
ZV0pOgorICAgICAgICBBZGRlZCBhIG5ldyBpdmFyIHRvIHRyYWNrIGluIHRoZSBVSSBwcm9jZXNz
IHdoZXRoZXIgaXQgYWxyZWFkeSByZXF1ZXN0ZWQgdGhlIHdlYgorICAgICAgICBwcm9jZXNzIHRv
IGVuYWJsZSB0aGUgZWRpdGFibGUgcmVnaW9uLiBUaGUgd2ViIHByb2Nlc3MgY2Fubm90IGRlbnkg
dGhlIHJlcXVlc3Qgc28KKyAgICAgICAgaXQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBmZWF0dXJl
IHdhcyBlbmFibGVkIG9yIG5vdCBmcm9tIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX3JlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpjb21wbGV0aW9uSGFu
ZGxlcjpdKTogSWYgZWRpdGFibGUKKyAgICAgICAgcmVnaW9uIGlzIG5vdCBlbmFibGUgdGhlbiBk
byBzbyBub3cuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKTog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkIGEgbmV3IG1lc3Nh
Z2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQpOiBBZGRlZC4K
KwogMjAyMC0wNi0yNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEluaXRpYWxpemluZyB0aGUgbWFpbiB0aHJlYWQgc2hvdWxkIGluaXRpYWxpemUgdGhlIG1h
aW4gcnVuIGxvb3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggZDA0ZmEwYzM5ZTBlYjlhODNjY2Q4
NjRlNDJhZTMwNDJiOTkyODMwOC4uNDE4MTI0OWU3YzI5ZDdlNTc4ZGZiY2RmOGM2Zjk5YzA1Njlk
NGJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIEZyYW1l
OjppbnZhbGlkYXRlQ29udGVudEV2ZW50UmVnaW9uc0lmTmVlZGVkKCkKICAgICBoYXNUb3VjaEFj
dGlvbkVsZW1lbnRzID0gbV9kb2MtPm1heUhhdmVFbGVtZW50c1dpdGhOb25BdXRvVG91Y2hBY3Rp
b24oKTsKICNlbmRpZgogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaGFzRWRpdGFi
bGVFbGVtZW50cyA9IG1fZG9jLT5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygpOworICAgIGhhc0Vk
aXRhYmxlRWxlbWVudHMgPSBtX3BhZ2UtPmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgbV9k
b2MtPm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CiAjZW5kaWYKICAgICAvLyBGSVhNRTogVGhp
cyBuZWVkcyB0byBsb29rIGF0IHdoZWVsIGV2ZW50IGhhbmRsZXJzIHRvby4KICAgICBpZiAoIWhh
c1RvdWNoQWN0aW9uRWxlbWVudHMgJiYgIWhhc0VkaXRhYmxlRWxlbWVudHMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCAxNDY3OTE2YjBiMTllYzcyNjdjN2Q4YmQ4NWRiZGZkMGZkMmRiZGE1Li4zOWQ3
ZTk3MmM4MzdkMmI5ZWRjMDZmNWVhNzk5NmYwYTBmODM3Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTkyMCw2ICs5MjAsMjAgQEAgdm9pZCBQYWdlOjp1bm1hcmtBbGxUZXh0TWF0Y2hlcygpCiAg
ICAgfSk7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCit2b2lkIFBhZ2U6OnNl
dEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgaWYgKG1faXNFZGl0
YWJsZVJlZ2lvbkVuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1faXNF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPSBlbmFibGVkOworICAgIGF1dG8gZnJhbWVWaWV3ID0gbWFr
ZVJlZlB0cihtYWluRnJhbWUoKS52aWV3KCkpOworICAgIGlmIChhdXRvKiByZW5kZXJWaWV3ID0g
ZnJhbWVWaWV3LT5yZW5kZXJWaWV3KCkpCisgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3Io
KS5pbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKK30KKworI2VuZGlmCisKIFZl
Y3RvcjxSZWY8RWxlbWVudD4+IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxv
YXRSZWN0JiBzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSBjb25zdAogewogICAgIGF1
dG8gZnJhbWVWaWV3ID0gbWFrZVJlZlB0cihtYWluRnJhbWUoKS52aWV3KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAppbmRleCBhYzIwNjQ0YmUzOTI1OGQ5NjBlNGM0NTM4ZjUzMmY3NmI1MjcyZjUzLi4wYWZjY2Vm
YmMwY2M3ZmYyNGMxN2E1ZDhjOGIwODUxMDllOWYyNGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzQy
LDYgKzc0MiwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbmZpZ3VyZUxvZ2dpbmdDaGFubmVs
KGNvbnN0IFN0cmluZyYsIFdURkxvZ0NoYW5uZWxTdGF0ZSwgV1RGTG9nTGV2ZWwpOwogCisjaWYg
RU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICBib29sIGlzRWRpdGFibGVSZWdpb25FbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZDsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wpOworI2VuZGlmCisK
ICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBlZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTEwMDMsNiArMTAwOCwxMCBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9kZWxlZ2F0ZXNTY2FsaW5nIHsgZmFsc2UgfTsKIAorI2lmIEVOQUJMRShFRElUQUJM
RV9SRUdJT04pCisgICAgYm9vbCBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkIHsgZmFsc2UgfTsK
KyNlbmRpZgorCiAgICAgVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBtX3VzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb24geyBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIgfTsK
ICAgICAKICAgICAvLyBGb3IgdGVzdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRl
eCAwNmNlZGQzOWVjY2ZiOTA4ZWQzNTIxOWI4OWIwZTExMjNjNWEwNzg1Li4yMTM5MTc3M2M3YjU0
ZTFjODAxZjJhNjFjZDE3NzhkZGI4MjE4NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CkBAIC0xNTYsNiArMTU2LDcgQEAgc2hvd1JlcGFpbnRDb3VudGVyOgogdmlzaWJsZURlYnVnT3Zl
cmxheVJlZ2lvbnM6CiAgIHR5cGU6IERlYnVnT3ZlcmxheVJlZ2lvbnMKICAgaW5pdGlhbDogMAor
ICBvbkNoYW5nZTogdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnNDaGFuZ2VkCiBzaG93VGlsZWRT
Y3JvbGxpbmdJbmRpY2F0b3I6CiAgIGluaXRpYWw6IGZhbHNlCiByZXNvdXJjZVVzYWdlT3Zlcmxh
eVZpc2libGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKaW5kZXggNzg0NzdhOWI5
Mjg2MWE1Yjk2MTYyM2JiMWY1MDExNDE2YmNiNDBiNS4uMDFkOTg5OWJkMWI3OGIxYTM5OWRlZjU1
ZWIzOGVlOWRhZWE1ZDQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
c0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcApAQCAt
MzE1LDYgKzMxNSwxNCBAQCB2b2lkIFNldHRpbmdzQmFzZTo6aWNlQ2FuZGlkYXRlRmlsdGVyaW5n
RW5hYmxlZENoYW5nZWQoKQogICAgICAgICBtX3BhZ2UtPmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmcoKTsKIH0KIAordm9pZCBTZXR0aW5nc0Jhc2U6OnZpc2libGVEZWJ1Z092ZXJsYXlSZWdp
b25zQ2hhbmdlZCgpCit7CisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICBpZiAobV9w
YWdlKQorICAgICAgICBtX3BhZ2UtPnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChtX3BhZ2UtPnNl
dHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSAmIEVkaXRhYmxlRWxlbWVudFJl
Z2lvbik7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAKIHZvaWQg
U2V0dGluZ3NCYXNlOjpzaG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jvb3N0Q2hhbmdlZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAppbmRleCBhZjIyNDlkYjMwYzJjY2U2ZGRkMmVjMTI5
NTAyZGE5ZmQwZTdmZTQ1Li42NzhlZGRiNzIwODY4NWQzZjViMzg4ZjNjZWRhMjk3ZDk1M2M0YzU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKQEAgLTE5Myw2ICsxOTMsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWRD
aGFuZ2VkKCk7CiAgICAgdm9pZCByZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGVDaGFuZ2VkKCk7
CiAgICAgdm9pZCBpY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkQ2hhbmdlZCgpOworICAgIHZv
aWQgdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnNDaGFuZ2VkKCk7CiAjaWYgRU5BQkxFKFRFWFRf
QVVUT1NJWklORykKICAgICB2b2lkIHNob3VsZEVuYWJsZVRleHRBdXRvc2l6aW5nQm9vc3RDaGFu
Z2VkKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVu
dFJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCmlu
ZGV4IDYzY2IyM2Q3ZmU5ZDA3ZDRiODRlZDRhMTgyZjhkYzFlMmI5ZjQzMzEuLjg3Mzk0ZWQ2Mzk5
MDNlMjJmYmUzYmU2NzgyYzQ3Y2JlZDU5YjM2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V2ZW50UmVnaW9uLmNwcApAQCAtMTMwLDggKzEzMCw4IEBAIHZvaWQgRXZlbnRSZWdpb246OnVu
aXRlKGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wg
b3ZlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaWYgKG92ZXJy
aWRlVXNlck1vZGlmeUlzRWRpdGFibGUgfHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2Rp
Znk6OlJlYWRPbmx5KQotICAgICAgICBtX2VkaXRhYmxlUmVnaW9uLnVuaXRlKHJlZ2lvbik7Cisg
ICAgaWYgKG1fZWRpdGFibGVSZWdpb24gJiYgKG92ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUg
fHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5KSkKKyAgICAgICAg
bV9lZGl0YWJsZVJlZ2lvbi0+dW5pdGUocmVnaW9uKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KG92ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUpOwogI2VuZGlmCkBAIC0xNTYsNyArMTU2LDgg
QEAgdm9pZCBFdmVudFJlZ2lvbjo6dHJhbnNsYXRlKGNvbnN0IEludFNpemUmIG9mZnNldCkKICNl
bmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBtX2VkaXRhYmxlUmVnaW9u
LnRyYW5zbGF0ZShvZmZzZXQpOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uKQorICAgICAgICBt
X2VkaXRhYmxlUmVnaW9uLT50cmFuc2xhdGUob2Zmc2V0KTsKICNlbmRpZgogfQogCkBAIC0yODMs
MTAgKzI4NCwxMiBAQCBjb25zdCBSZWdpb24mIEV2ZW50UmVnaW9uOjpldmVudExpc3RlbmVyUmVn
aW9uRm9yVHlwZShFdmVudExpc3RlbmVyUmVnaW9uVHlwZSB0eQogI2VuZGlmIC8vIEVOQUJMRShX
SEVFTF9FVkVOVF9SRUdJT05TKQogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKwogYm9v
bCBFdmVudFJlZ2lvbjo6Y29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24uaW50ZXJzZWN0
cyhyZWN0KTsKKyAgICByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbiAmJiBtX2VkaXRhYmxlUmVnaW9u
LT5pbnRlcnNlY3RzKHJlY3QpOwogfQorCiAjZW5kaWYKIAogdm9pZCBFdmVudFJlZ2lvbjo6ZHVt
cChUZXh0U3RyZWFtJiB0cykgY29uc3QKQEAgLTMyMiw4ICszMjUsOCBAQCB2b2lkIEV2ZW50UmVn
aW9uOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQotICAgIGlmICghbV9lZGl0YWJsZVJlZ2lvbi5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCBtX2VkaXRhYmxlUmVn
aW9uOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uICYmICFtX2VkaXRhYmxlUmVnaW9uLT5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCAq
bV9lZGl0YWJsZVJlZ2lvbjsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwogICAgIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaAppbmRleCA1MDEyNDNl
MDQ4Yjk4NGU2YjA2NmRhOTRiNTgyNTI4ZmQ1ZGRlZTgyLi4wYmMwNTEyZmVkNDFkYzFjOWRkMWVh
ZjRjMmRiMWRlYmFjYzlmZjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXZlbnRSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24u
aApAQCAtODcsOCArODcsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQorICAgIHZvaWQgZW5zdXJlRWRpdGFibGVSZWdpb24oKSB7IG1fZWRpdGFibGVS
ZWdpb24gPSBSZWdpb24geyB9OyB9CisgICAgYm9vbCBoYXNFZGl0YWJsZVJlZ2lvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24uaGFzVmFsdWUoKTsgfQogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgY29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJlY3QmKSBj
b25zdDsKLSAgICBWZWN0b3I8SW50UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbi5yZWN0cygpOyB9CisgICAgVmVjdG9yPElu
dFJlY3QsIDE+IHJlY3RzRm9yRWRpdGFibGVFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZWRp
dGFibGVSZWdpb24gPyBtX2VkaXRhYmxlUmVnaW9uLT5yZWN0cygpIDogVmVjdG9yPEludFJlY3Qs
IDE+IHsgfTsgfQogI2VuZGlmCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CkBAIC0xMTMsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWdpb24gbV9ub25QYXNzaXZlV2hlZWxFdmVudExpc3RlbmVyUmVnaW9uOwogI2VuZGlmCiAjaWYg
RU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBSZWdpb24gbV9lZGl0YWJsZVJlZ2lvbjsKKyAg
ICBPcHRpb25hbDxSZWdpb24+IG1fZWRpdGFibGVSZWdpb247CiAjZW5kaWYKIH07CiAKQEAgLTE1
Miw3ICsxNTQsNyBAQCBPcHRpb25hbDxFdmVudFJlZ2lvbj4gRXZlbnRSZWdpb246OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQot
ICAgIE9wdGlvbmFsPFJlZ2lvbj4gZWRpdGFibGVSZWdpb247CisgICAgT3B0aW9uYWw8T3B0aW9u
YWw8UmVnaW9uPj4gZWRpdGFibGVSZWdpb247CiAgICAgZGVjb2RlciA+PiBlZGl0YWJsZVJlZ2lv
bjsKICAgICBpZiAoIWVkaXRhYmxlUmVnaW9uKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZjVmNGUzNmFk
M2VkNmVjYzZkMGZiNzhiNGE3MTZlYWU4M2M4NDdkZi4uOTZkZGUzYTE0ZDk2ZmFhZTg3Y2ZhODE0
ZDM3ZGZlOWMwMDBkMjE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC0xMjYzLDcgKzEyNjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgICAg
ICAvLyBXZSB0cmVhdCB0aGUgZW50aXJlIHRleHQgY29udHJvbCBhcyBlZGl0YWJsZSB0byBtYXRj
aCB1c2VycycgZXhwZWN0YXRpb24gZXZlbgogICAgICAgICAvLyB0aG91Z2ggaXQncyBhY3R1YWxs
eSB0aGUgaW5uZXIgdGV4dCBlbGVtZW50IG9mIHRoZSBjb250cm9sIHRoYXQgaXMgZWRpdGFibGUu
CiAgICAgICAgIC8vIFNvLCBubyBuZWVkIHRvIHRyYXZlcnNlIHRvIGZpbmQgdGhlIGlubmVyIHRl
eHQgZWxlbWVudCBpbiB0aGlzIGNhc2UuCi0gICAgICAgIGlmICghaXNUZXh0Q29udHJvbCgpKQor
ICAgICAgICBpZiAocGFnZSgpLmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgIWlzVGV4dENv
bnRyb2woKSkKICAgICAgICAgICAgIG5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cyB8PSBkb2N1bWVu
dCgpLm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CiAjZW5kaWYKICAgICAgICAgaWYgKCFuZWVk
c1RyYXZlcnNlRGVzY2VuZGFudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5jcHAKaW5kZXggN2Q2OGNkYjMxOTEyMTZlMzY3Zjk4NjZmNzljOGQ4YjE4ODAyNDRhYS4u
MzhiYzExNzNhMzc2NmY3ZDkxNDc3ZTY5MDczZTQxYmJiNzM2NzJlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtNzQ2LDEwICs3NDYsMTIgQEAgdm9p
ZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgICAgIGlmIChtX3N0eWxlLmV2ZW50TGlzdGVu
ZXJSZWdpb25UeXBlcygpICE9IG5ld1N0eWxlLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygpKQog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04p
Ci0gICAgICAgICAgICBib29sIHdhc0VkaXRhYmxlID0gbV9zdHlsZS51c2VyTW9kaWZ5KCkgIT0g
VXNlck1vZGlmeTo6UmVhZE9ubHk7Ci0gICAgICAgICAgICBib29sIGlzRWRpdGFibGUgPSBuZXdT
dHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7Ci0gICAgICAgICAgICBp
ZiAod2FzRWRpdGFibGUgIT0gaXNFZGl0YWJsZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIGlmIChwYWdlKCkuaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSkgewor
ICAgICAgICAgICAgICAgIGJvb2wgd2FzRWRpdGFibGUgPSBtX3N0eWxlLnVzZXJNb2RpZnkoKSAh
PSBVc2VyTW9kaWZ5OjpSZWFkT25seTsKKyAgICAgICAgICAgICAgICBib29sIGlzRWRpdGFibGUg
PSBuZXdTdHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7CisgICAgICAg
ICAgICAgICAgaWYgKHdhc0VkaXRhYmxlICE9IGlzRWRpdGFibGUpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CmluZGV4IDAzZWI2MWRkYjExYmU4NGIwZmE5NWFmMGIxMGE1ZWQ5MGYwOWUzYTkuLjQ3MzVkYWI4
MzBkMTkyYTRkMDM3MzU0MTllYWE4OWQ5YWIxN2M1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCkBAIC05MjcsNyArOTI3LDcgQEAgcHVibGljOgogCiAgICAgLy8gSW52
YWxpZGF0aW9uIGNhbiBmYWlsIGlmIHRoZXJlIGlzIG5vIGVuY2xvc2luZyBjb21wb3NpdGluZyBs
YXllciAoZS5nLiBuZXN0ZWQgaWZyYW1lKQogICAgIC8vIG9yIHRoZSBsYXllciBkb2VzIG5vdCBt
YWludGFpbiBhbiBldmVudCByZWdpb24uCi0gICAgZW51bSBjbGFzcyBFdmVudFJlZ2lvbkludmFs
aWRhdGlvblJlYXNvbiB7IFBhaW50LCBTdHlsZSwgTm9uQ29tcG9zaXRlZEZyYW1lIH07CisgICAg
ZW51bSBjbGFzcyBFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbiB7IFBhaW50LCBTZXR0aW5n
RGlkQ2hhbmdlLCBTdHlsZSwgTm9uQ29tcG9zaXRlZEZyYW1lIH07CiAgICAgYm9vbCBpbnZhbGlk
YXRlRXZlbnRSZWdpb24oRXZlbnRSZWdpb25JbnZhbGlkYXRpb25SZWFzb24pOwogCiAgICAgU3Ry
aW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMjM3NmI2MjBlMTc1ZmJhOThl
YWVmNjQyYmRhNWVmOWFhMmY3M2Q5OS4uMDc2NDc4YTY2MTdkOGU3NmFmMWRjMjIxZjg2MTZkZTc0
MGIxNjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKQEAgLTE3MDgsNyArMTcwOCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpt
YWludGFpbnNFdmVudFJlZ2lvbigpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlm
CiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVu
dCgpLm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCkpCisgICAgaWYgKHJlbmRlcmVyKCkucGFnZSgp
LmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgcmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhh
dmVFZGl0YWJsZUVsZW1lbnRzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAjaWYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xNzM1LDYgKzE3MzUsMTUgQEAgdm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKCkKICAgICBhdXRvIHVwZGF0ZUV2ZW50UmVn
aW9uRm9yTGF5ZXIgPSBbJl0oR3JhcGhpY3NMYXllciYgZ3JhcGhpY3NMYXllcikgewogICAgICAg
ICBHcmFwaGljc0NvbnRleHQgbnVsbENvbnRleHQobnVsbHB0cik7CiAgICAgICAgIEV2ZW50UmVn
aW9uIGV2ZW50UmVnaW9uOworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgICAgIC8v
IFRoZSBleGlzdGVuY2Ugb2YgdGhlIGVkaXRhYmxlIHJlZ2lvbiwgZXZlbiBpZiB0aGUgZG9jdW1l
bnQgaGFzIDAgZWRpdGFibGUgZWxlbWVudHMsIGlzIHRoZQorICAgICAgICAvLyBwZXJmb3JtYW5j
ZSBvcHRpbWl6YXRpb24uIEl0IGFsbG93cyB0aGUgVUkgcHJvY2VzcyB0byBhdm9pZCBtZXNzYWdp
bmcgdGhlIHdlYiBwcm9jZXNzIHRvCisgICAgICAgIC8vIGFzayBmb3IgZWRpdGFibGUgZWxlbWVu
dHMgd2hlbiB0aGVyZSBhcmUgbm9uZS4gSWYgdGhlcmUgaXMgbm8gZWRpdGFibGUgcmVnaW9uIHRo
ZW4gdGhlIFVJCisgICAgICAgIC8vIHByb2Nlc3MgbXVzdCBhbHdheXMgbWVzc2FnZSB0aGUgd2Vi
IHByb2Nlc3MgYmVjYXVzZSBpdCBkb2VzIG5vdCBrbm93IHdoZXRoZXIgb3Igbm90IHRoZQorICAg
ICAgICAvLyBwYWdlIGhhcyBlZGl0YWJsZSBlbGVtZW50cy4KKyAgICAgICAgaWYgKHJlbmRlcmVy
KCkucGFnZSgpLmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkpCisgICAgICAgICAgICBldmVudFJl
Z2lvbi5lbnN1cmVFZGl0YWJsZVJlZ2lvbigpOworI2VuZGlmCiAgICAgICAgIGF1dG8gZXZlbnRS
ZWdpb25Db250ZXh0ID0gZXZlbnRSZWdpb24ubWFrZUNvbnRleHQoKTsKICAgICAgICAgYXV0byBs
YXllck9mZnNldCA9IGdyYXBoaWNzTGF5ZXIuc2Nyb2xsT2Zmc2V0KCkgLSByb3VuZGVkSW50U2l6
ZShncmFwaGljc0xheWVyLm9mZnNldEZyb21SZW5kZXJlcigpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAzZWYxY2Zl
YzZhMzQyNDE0NTJhZTJhYTEzZmM0YWJmMjczZmZjMDIyLi4xMThkMTJlYzE5MGM5NDUyZjg0ZTNh
MTNiMzc0YzU0Yjg5YTE5OGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMzU3LDE4ICsyMzU3LDI1IEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKICAg
ICB9CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjbGVhckJhY2tpbmdGb3JMYXll
ckluY2x1ZGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyJiBsYXllcikKK3RlbXBsYXRlPHR5cGVu
YW1lIEFwcGx5RnVuY3Rpb24+CitpbmxpbmUgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFw
cGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYgbGF5
ZXIsIGNvbnN0IEFwcGx5RnVuY3Rpb24mIGFwcGx5KQogewogICAgIGlmIChsYXllci5pc0NvbXBv
c2l0ZWQoKSkKLSAgICAgICAgbGF5ZXIuY2xlYXJCYWNraW5nKCk7Ci0KKyAgICAgICAgYXBwbHko
bGF5ZXIpOwogICAgIGZvciAoYXV0byogY2hpbGRMYXllciA9IGxheWVyLmZpcnN0Q2hpbGQoKTsg
Y2hpbGRMYXllcjsgY2hpbGRMYXllciA9IGNoaWxkTGF5ZXItPm5leHRTaWJsaW5nKCkpCi0gICAg
ICAgIGNsZWFyQmFja2luZ0ZvckxheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoKmNoaWxkTGF5ZXIp
OworICAgICAgICBhcHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoKmNo
aWxkTGF5ZXIpOworfQorCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aW52YWxpZGF0ZUV2
ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKCkKK3sKKyAgICBhcHBseVRvQ29tcG9zaXRlZExheWVySW5j
bHVkaW5nRGVzY2VuZGFudHMoKm1fcmVuZGVyVmlldy5sYXllcigpLCBbXShhdXRvJiBsYXllcikg
eworICAgICAgICBsYXllci5pbnZhbGlkYXRlRXZlbnRSZWdpb24oUmVuZGVyTGF5ZXI6OkV2ZW50
UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5nRGlkQ2hhbmdlKTsKKyAgICB9KTsKIH0K
IAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFyQmFja2luZ0ZvckFsbExheWVycygp
CiB7Ci0gICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqbV9yZW5k
ZXJWaWV3LmxheWVyKCkpOworICAgIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNj
ZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCksIFtdKGF1dG8mIGxheWVyKSB7IGxheWVyLmNs
ZWFyQmFja2luZygpOyB9KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZVJvb3RMYXllclBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0MmRlM2JlMGRiOTMzYTNmODU5NjY4NGFhYWRmYzVj
ODdkYzdhYmU4Li41MDVlOTBhMTQyMmFiMDFjMzExMzE3Y2NlZjViNTkzNGNhMjRmN2U2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBA
IC0yODIsNiArMjgyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNJbldpbmRvdyhib29sKTsK
IAogICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yQWxsTGF5ZXJzKCk7CisgICAgdm9pZCBpbnZhbGlk
YXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKICAgICAKICAgICB2b2lkIGxheWVyQmVjYW1l
Q29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYpOwogICAgIHZvaWQgbGF5ZXJCZWNhbWVOb25D
b21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJik7CkBAIC00MTcsNyArNDE4LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIHVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXImLCBSZXF1aXJlc0NvbXBvc2l0
aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3RhdGUqID0gbnVsbHB0ciwgQmFja2luZ1JlcXVpcmVk
ID0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKTsKICAgICBib29sIHVwZGF0ZUxheWVyQ29tcG9z
aXRpbmdTdGF0ZShSZW5kZXJMYXllciYsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0Fu
Y2VzdG9yLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3RhdGUmKTsK
IAotICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5k
ZXJMYXllciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFwcGx5RnVuY3Rpb24+IHZvaWQgYXBw
bHlUb0NvbXBvc2l0ZWRMYXllckluY2x1ZGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyJiwgY29u
c3QgQXBwbHlGdW5jdGlvbiYpOwogCiAgICAgLy8gUmVwYWludCB0aGlzIGFuZCBpdHMgY2hpbGQg
bGF5ZXJzLgogICAgIHZvaWQgcmVjdXJzaXZlUmVwYWludExheWVyKFJlbmRlckxheWVyJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBiYmJiNGE0
MDBiMjdmZDk5OWZiN2FmMGYzOTE5ODYyNzNkYTRhN2ZhLi44ZTUyOWYxOTI0Zjc2OTMxMGI5ZDdm
YjQ0NzBkN2M0N2U3MTYzODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAKQEAgLTI4Niw2ICsyODYsOSBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnJl
c2V0VG9Db25zaXN0ZW50U3RhdGUoKQogICAgIG1fcGFnZS0+c2V0UGFnZVNjYWxlRmFjdG9yKDEs
IHsgMCwgMCB9KTsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLnNldFBhZ2VBbmRUZXh0Wm9vbUZh
Y3RvcnMoMSwgMSk7CiAgICAgbV9wYWdlLT5zZXRDYW5TdGFydE1lZGlhKHRydWUpOworI2lmIEVO
QUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgbV9wYWdlLT5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQodHJ1ZSk7CisjZW5kaWYKICAgICBzZXRVc2VEYXJrQXBwZWFyYW5jZUludGVybmFsKGZhbHNl
KTsKIAogICAgIHNldHRpbmdzKCkuc2V0Rm9yY2VQZW5kaW5nV2ViR0xQb2xpY3koZmFsc2UpOwpA
QCAtNDQxLDYgKzQ0NCwxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRUZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZShib29sIGVuYQogICAgIHJldHVybiB7
IH07CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVkaXRhYmxl
UmVnaW9uRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQorICAgIG1fcGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJs
ZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKKyAgICByZXR1
cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRNZWRp
YVR5cGVPdmVycmlkZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBpZiAoIW1fcGFn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggYTFiOTcw
OTRiN2UwYjFlNGRhNjQyODcwOWIxZWNhZGUwZGM1NDc0YS4uNDc4NWU2ODE0YTFmODVkYWYxODRm
YWMxMjAxMDA0Y2YzYjIzN2VhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmgKQEAgLTEwOSw2ICsxMDksOCBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBGcmFtZUZs
YXR0ZW5pbmdWYWx1ZSA9IEZyYW1lRmxhdHRlbmluZzsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRGcmFtZUZsYXR0ZW5pbmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUpOworCisgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wpOwogICAgIAogICAgIHN0YXRp
YyB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCAzNjg4N2ZjNjE1NjVhMDQ4OWE2
ZTUwYjYwNmVmODRkYTE2MDBlNmU2Li5jMTVmM2JlNDcwOTE3Njg2ZmYyZDRjNDRhMjRiNThjZjk4
Y2FlOWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwK
QEAgLTEyMiw1ICsxMjIsNyBAQCBlbnVtIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2si
LCAiU3dhcCIsICJGYWlsdXJlIiB9OwogICAgIHZvaWQgc2V0U2hvdWxkRGVhY3RpdmF0ZUF1ZGlv
U2Vzc2lvbihib29sZWFuIHNob3VsZERlYWN0aXZhdGUpOwogICAgIAogICAgIHZvaWQgc2V0U3Rv
cmFnZUFjY2Vzc0FQSVBlclBhZ2VTY29wZUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKworICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbGVh
biBlbmFibGVkKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCmlu
ZGV4IDUyYThhNzU2YmI0OWRiZGE2NDE3ODQ0YmFlMWE2NGFlYzQ0NjgyMzUuLmY1YWMyODRiNjhj
MzQ0N2U3Yzc1Y2RmNTk2MTlmMmMzZTMwYWJiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXll
clRyZWVWaWV3cy5tbQpAQCAtMTIwLDYgKzEyMCw3IEBAIGJvb2wgbWF5Q29udGFpbkVkaXRhYmxl
RWxlbWVudHNJblJlY3QoVUlWaWV3ICpyb290VmlldywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
CiAgICAgY29sbGVjdERlc2NlbmRhbnRWaWV3c0luUmVjdCh2aWV3c0luUmVjdCwgcm9vdFZpZXcs
IHJlY3QpOwogICAgIGlmICh2aWV3c0luUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBib29sIHNlZW5BbkVkaXRhYmxlUmVnaW9uID0gZmFsc2U7CiAgICAgZm9yIChh
dXRvICp2aWV3IDogV1RGOjptYWtlUmV2ZXJzZWRSYW5nZSh2aWV3c0luUmVjdCkpIHsKICAgICAg
ICAgaWYgKCFbdmlldyBpc0tpbmRPZkNsYXNzOldLQ29tcG9zaXRpbmdWaWV3LmNsYXNzXSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTI5LDEwICsxMzAsMTYgQEAgYm9vbCBtYXlDb250YWlu
RWRpdGFibGVFbGVtZW50c0luUmVjdChVSVZpZXcgKnJvb3RWaWV3LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QKICAgICAgICAgV2ViQ29yZTo6SW50UmVjdCByZWN0VG9UZXN0IHsgW3ZpZXcgY29u
dmVydFJlY3Q6cmVjdCBmcm9tVmlldzpyb290Vmlld10gfTsKICAgICAgICAgaWYgKG5vZGUtPmV2
ZW50UmVnaW9uKCkuY29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KHJlY3RUb1Rlc3QpKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChub2RlLT5ldmVudFJlZ2lvbigp
LmNvbnRhaW5zKHJlY3RUb1Rlc3QpKQorICAgICAgICBib29sIGhhc0VkaXRhYmxlUmVnaW9uID0g
bm9kZS0+ZXZlbnRSZWdpb24oKS5oYXNFZGl0YWJsZVJlZ2lvbigpOworICAgICAgICBpZiAoaGFz
RWRpdGFibGVSZWdpb24gJiYgbm9kZS0+ZXZlbnRSZWdpb24oKS5jb250YWlucyhyZWN0VG9UZXN0
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc2VlbkFuRWRpdGFibGVSZWdp
b24gfD0gaGFzRWRpdGFibGVSZWdpb247CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICAv
LyBJZiB3ZSBkaWRuJ3Qgc2VlIGFuIGVkaXRhYmxlIHJlZ2lvbiB0aGVuIHdlIGRvbid0IGtub3cg
d2hldGhlciBvciBub3QgdGhlcmUgYXJlCisgICAgLy8gZWRpdGFibGUgZWxlbWVudHMgaW4gdGhl
IHJlY3QuIFdlIG9ubHkga25vdyB0aGF0IHRoZSB3ZWIgcHJvY2VzcyBkaWQgbm90IGRvIGFuCisg
ICAgLy8gZXZlbnQgcmVnaW9uIHBhaW50IHRvIGZpbmQgdGhlbS4gVGhlIGNhbGxlciB3aWxsIGhh
dmUgdG8gYXNrIHRoZSB3ZWIgcHJvY2VzcyB0bworICAgIC8vIGtub3cgZm9yIHN1cmUuCisgICAg
cmV0dXJuICFzZWVuQW5FZGl0YWJsZVJlZ2lvbjsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShFRElU
QUJMRV9SRUdJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFl
MTk1YmQ3ZTJmODI0MGQxZTdkODhjN2I3ZGUxNDIyYTRkYjkyOTYuLmUwYTU1ZGU4YzlkYjQxMDc4
ODUzZjk0N2JiMzk3Mzg4MGUyY2YwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC03MjUsNiArNzI1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHRJbnB1dENv
bnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYpOwogICAgIHZvaWQgZm9j
dXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIHZvaWQgc2V0RWRp
dGFibGVSZWdpb25FbmFibGVkKGJvb2wpOworI2VuZGlmCisKICAgICB2b2lkIHNldFNob3VsZFJl
dmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sKTsKICAgICAgICAgCiAgICAg
dm9pZCBzZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggODA4
MDI0YmE5ZTlkOWE0ZDg1ZTA0NDcxNzEzMGYyMzA3ODk1ZmRiNC4uZmFjODgwN2Y1MjhlMWRhNDI1
ZDYxOTIyZWE2NDQzMzI0N2RlM2QyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzYxLDYgKzM2MSw5IEBA
IHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgQk9PTCBfdGV4dEludGVyYWN0aW9u
RGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnQ7CiAgICAgQk9PTCBfdGV4dEludGVyYWN0aW9uSXNIYXBw
ZW5pbmc7CiAgICAgYm9vbCBfaXNXYWl0aW5nT25Qb3NpdGlvbkluZm9ybWF0aW9uOworI2lmIEVO
QUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgYm9vbCBfZWRpdGFibGVSZWdpb25FbmFibGVkOwor
I2VuZGlmCiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gX3BvaW50SW5zaWRlTGFz
dEZvY3VzZWRUZXh0SW5wdXRDb250ZXh0OwogCkBAIC00NTIsNiArNDU1LDEwIEBAIHN0cnVjdCBX
S0F1dG9Db3JyZWN0aW9uRGF0YSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU0Fy
cmF5PFVJVGV4dFN1Z2dlc3Rpb24gKj4gKmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5LCBnZXR0ZXI9aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQpIEJPT0wgZWRpdGFibGVSZWdp
b25FbmFibGVkOworI2VuZGlmCisKIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbjsKIC0gKHZvaWQp
Y2xlYW5VcEludGVyYWN0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA5NzE4MjA0YzVkNjA5YmU2
ZWQzYmZjZDgyYWNhOWE5YzUxYzdlZWI5Li5iMjUxOGVkNTVlMjhjYTkzZmFkZjVlODg4NDdkZGFm
ZTY4NTEzOTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTkzNCw2ICs5MzQsMTAgQEAgLSAodm9pZClj
bGVhblVwSW50ZXJhY3Rpb24KICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFibGVF
bGVtZW50ID0gTk87CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAg
X2VkaXRhYmxlUmVnaW9uRW5hYmxlZCA9IE5POworI2VuZGlmCisKICAgICBfdGV4dEludGVyYWN0
aW9uRGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnQgPSBOTzsKICAgICBfdGV4dEludGVyYWN0aW9uSXNI
YXBwZW5pbmcgPSBOTzsKICAgICBfcG9pbnRJbnNpZGVMYXN0Rm9jdXNlZFRleHRJbnB1dENvbnRl
eHQgPSBXVEY6Om51bGxvcHQ7CkBAIC00Mjk0LDYgKzQyOTgsOSBAQCAtICh2b2lkKV9kaWRDb21t
aXRMb2FkRm9yTWFpbkZyYW1lCiB7CiAjaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykK
ICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFibGVFbGVtZW50ID0gTk87CisjZW5k
aWYKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIF9lZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQgPSBOTzsKICNlbmRpZgogICAgIFtzZWxmIF9lbGVtZW50RGlkQmx1cl07CiAgICAgW3NlbGYg
X2NhbmNlbExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyXTsKQEAgLTUxOTYsMTAgKzUyMDMsMzUg
QEAgLSAodm9pZClfZm9jdXNUZXh0SW5wdXRDb250ZXh0OihfV0tUZXh0SW5wdXRDb250ZXh0ICop
Y29udGV4dCBwbGFjZUNhcmV0QXQ6KENHUG8KICAgICBfcGFnZS0+Zm9jdXNUZXh0SW5wdXRDb250
ZXh0QW5kUGxhY2VDYXJldChjb250ZXh0Ll90ZXh0SW5wdXRDb250ZXh0LCBwb2ludEluc2lkZVRl
eHRJbnB1dENvbnRleHQsIFdURk1vdmUoY2hlY2tGb2N1c2VkRWxlbWVudCkpOwogfQogCisjaWYg
RU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKworLSAoQk9PTClpc0VkaXRhYmxlUmVnaW9uRW5hYmxl
ZAoreworICAgIHJldHVybiBfZWRpdGFibGVSZWdpb25FbmFibGVkOworfQorCistICh2b2lkKXNl
dEVkaXRhYmxlUmVnaW9uRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgaWYgKF9lZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworICAgIF9lZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQgPSBlbmFibGVkOworICAgIF9wYWdlLT5zZXRFZGl0YWJsZVJlZ2lvbkVu
YWJsZWQoZW5hYmxlZCk7Cit9CisKKyNlbmRpZgorCiAtICh2b2lkKV9yZXF1ZXN0VGV4dElucHV0
Q29udGV4dHNJblJlY3Q6KENHUmVjdClyZWN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShO
U0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAg
ICBXZWJDb3JlOjpGbG9hdFJlY3Qgc2VhcmNoUmVjdCB7IHJlY3QgfTsKICNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQorICAgIC8vIENvbXB1dGluZyB0aGUgZWRpdGFibGUgcmVnaW9uIGlzIGJp
dCBleHBlbnNpdmUgYW5kIGNhbiBzbG93IGRvd24gaW5pdGlhbCBwYWdlIGxvYWQgc28gaXQncwor
ICAgIC8vIGRvbmUgYnkgdGhlIHdlYiBwcm9jZXNzIGxhemlseS4gV2UgdGVsbCBpdCBkbyBzbyBu
b3cgaWYgd2UgaGF2ZW4ndCBhbHJlYWR5IGRvbmUgc28uIE5vdGUgdGhhdAorICAgIC8vIHVudGls
IHRoZSBVSSBwcm9jZXNzIHJlY2VpdmVzIGl0IG1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5S
ZWN0IHdpbGwgcmV0dXJuIHRydWUuIFRoaXMgaXMgT0sKKyAgICAvLyBhbmQganVzdCBtZWFucyB0
aGF0IHRoaXMgZnVuY3Rpb24gd2lsbCBiZSBsZXNzIGVmZmljaWVudCB0aGFuIGl0IGNvdWxkIGJl
IGlmIHRoZSByZWN0IGludGVyc2VjdHMKKyAgICAvLyBub3RoaW5nIGluIHRoZSBtZWFudGltZS4K
KyAgICBpZiAoIV9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQpCisgICAgICAgIHNlbGYuZWRpdGFibGVS
ZWdpb25FbmFibGVkID0gWUVTOworCiAgICAgYm9vbCBoaXRJbnRlcmFjdGlvblJlY3QgPSBzZWxm
Ll9oYXNGb2N1c2VkRWxlbWVudCAmJiBzZWFyY2hSZWN0LmluY2x1c2l2ZWx5SW50ZXJzZWN0cyhf
Zm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3QpOwogICAgIGlmICghc2Vs
Zi53ZWJWaWV3Ll9lZGl0YWJsZSAmJiAhaGl0SW50ZXJhY3Rpb25SZWN0ICYmICFXZWJLaXQ6Om1h
eUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0KHNlbGYsIHJlY3QpKSB7CiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKEBbIF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMDUwOWNlY2RlNTI0NTdjZTc2YTU4N2M4YjZiNWY4NTBk
NzUxMWYxZC4uYjg1YmY1N2E2MjA1ZTE5YWRhZmUxYjU5NjVhZjFhYjExZDcwZTA4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xNTcy
LDYgKzE1NzIsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzVGV4dElucHV0Q29udGV4dEFu
ZFBsYWNlQ2FyZXQoY29uc3QgRWxlbWVudENvbnRleHQmIGNvbnQKICAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2Fy
ZXQoY29udGV4dCwgcG9pbnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNp
ZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0RWRpdGFi
bGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAoaGFzUnVubmluZ1Byb2Nl
c3MoKSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0RWRpdGFibGVSZWdpb25F
bmFibGVkKGVuYWJsZWQpKTsKK30KKworI2VuZGlmCisKKwogdm9pZCBXZWJQYWdlUHJveHk6OnNl
dFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sIHNob3VsZFJl
dmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbikKIHsKICAgICBpZiAoaGFzUnVubmlu
Z1Byb2Nlc3MoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCBmOTRhY2FhZjE4NTUzODdmNWVjMDg4YmYzZjM3NmJiMWVhMWNlYWVkLi5kMTA4YjkxNjI0
ZWFjNWM5ZTEzMTM1YjY5Y2MwNzJhOWNjYmU1OWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02NTUsNiArNjU1LDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYp
OwogICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb25zdCBXZWJD
b3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQor
ICAgIHZvaWQgc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wpOworI2VuZGlmCisKICAgICBi
b29sIHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uOyB9CiAg
ICAgdm9pZCBzZXRTaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oYm9v
bCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IDY4ODlkNjIzMmI5ZmU1NTdhMTlhMzkwYTNhZmU0NGQ4NzNmNjll
MDkuLmI5MThlMzdhNjBmMTQxYTNhMGMzMjRhOGUxNDNjMGNjM2M5OWUyNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtMTI2LDYgKzEyNiw5IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1
aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgVGV4dElucHV0
Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpIC0+IChWZWN0b3I8c3RydWN0
IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBjb250ZXh0cykgQXN5bmMKICAgICBGb2N1c1RleHRJ
bnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBj
b250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMK
ICAgICBDbGVhclNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudE92ZXJyaWRlKCkgLT4gKCkgQXN5bmMK
KyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIFNldEVkaXRhYmxlUmVnaW9uRW5hYmxl
ZChib29sIGVuYWJsZWQpCisjZW5kaWYKICNlbmRpZgogCiAgICAgU2V0Q29udHJvbGxlZEJ5QXV0
b21hdGlvbihib29sIGNvbnRyb2xsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGRkYjIzNmI4N2RkNzAwODExNDkzZDEx
ZDI5MWQxYWI0NTQ4OTRjN2YuLmVmZDk5YWZkMmZiMDk4OGQ4NGNkZjlhMjBiMGJmMjQ0NjMyNmVj
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCkBAIC00MzYwLDYgKzQzNjAsMTUgQEAgdm9pZCBXZWJQYWdlOjpmb2N1c1RleHRJ
bnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnN0IEVsZW1lbnRDb250ZXh0JiBlbGVtZW50Q28K
ICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIAorI2lmIEVOQUJMRShFRElUQUJMRV9S
RUdJT04pCisKK3ZvaWQgV2ViUGFnZTo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wgZW5h
YmxlZCkKK3sKKyAgICBtX3BhZ2UtPnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChlbmFibGVkKTsK
K30KKworI2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRTY2FsZVBhZ2UoKQogewog
ICAgIGF1dG8gdHJhbnNhY3Rpb25JRCA9IGRvd25jYXN0PFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhPigqbV9kcmF3aW5nQXJlYSkubGFzdENvbW1pdHRlZFRyYW5zYWN0aW9uSUQoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAyNWU3MWNhZjM0MDc2NjhjODRkYjY4ZjY2ODRhODY3NjQ5Y2VjNmFhLi40YjMxODg1NzlmYzRk
OGYyMWNkMmJhYTUxYmYwYWU0Y2MxMGRhM2YzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAt
MDYtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1Nd
IEVkaXRhYmxlIHJlZ2lvbnMgY2F1c2VzIH4xJSBzbG93ZG93biBpbiBQTFQ1CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2NTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzY0MzYxMzkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzb21lIHRlc3RzIHRvIGVuc3VyZSB0aGUgbmV3IHNldHRpbmcg
d29ya3MgYW5kIHRoZSBmZWF0dXJlIGNhbiBiZSBkaXNhYmxlZC4gTm90ZQorICAgICAgICB0aGF0
IHRoZSBzZXR0aW5nIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCB0byBrZWVwIHRoZSBjdXJyZW50IGJl
aGF2aW9yLiBTZWUgdGhlIFdlYkNvcmUKKyAgICAgICAgQ2hhbmdlTG9nIGVudHJ5IGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1i
YXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJl
Z2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0
LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRo
b3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sOiBBZGRlZC4KKwogMjAyMC0wNi0yNiAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBDb250ZW50IHNvbWV0aW1l
cyBtaXNzaW5nIGluIG5lc3RlZCBzY3JvbGxlcnMgd2l0aCBib3JkZXItcmFkaXVzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13
aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU2NmY1ZDgxZmM4NTU3MDEyMmE2MjFjY2JjYzAzNmE4
YzQyZTJhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitIaXQgdGVzdHMgZm9yIGVkaXRhYmxlIGVsZW1lbnRzIGluc2lk
ZSB0aGUgYmxhY2sgb3V0bGluZWQgcmVjdGFuZ2xlIHdoZW4gdGhlIGVkaXRhYmxlIHJlZ2lvbiBp
cyBkaXNhYmxlZC4gVGhlcmUgc2hvdWxkIGJlIG1vcmUgZmFsc2UgcG9zaXRpdmVzIHdoZW4gZGlz
YWJsZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTICh4ID0gMTAwLCB5
ID0gMTAwLCB3aWR0aCA9IDIwMiwgaGVpZ2h0ID0gMjAyKSBjb250YWlucyBlZGl0YWJsZSBlbGVt
ZW50cy4KK1BBU1MgKHggPSAwLCB5ID0gMCwgd2lkdGggPSA1MCwgaGVpZ2h0ID0gNTApIGNvbnRh
aW5zIGVkaXRhYmxlIGVsZW1lbnRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0
LWVkaXRhYmxlLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjMzRiZmI4Y2M5YTdhZmUzYzI5OTg3
ZmUwMTI1ZWNjZjEzMWQ3NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5o
dG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2hpdC10ZXN0LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Cisj
dGVzdC1jb250YWluZXIgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDEwMHB4
OworICAgIGxlZnQ6IDEwMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIHdp
ZHRoOiAyMDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0idGVzdC1jb250YWluZXIiPgorICAgIDxpbnB1dD4KKzwvZGl2PgorPHNj
cmlwdD4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitpZiAod2luZG93LmludGVybmFs
cykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGZhbHNl
KTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVu
bmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbGV0IHRlc3RDb250YWluZXIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC1jb250YWluZXIiKTsKKyAgICBhd2FpdCBz
aG91bGRIYXZlRWRpdGFibGVFbGVtZW50c0luUmVjdEZvckVsZW1lbnQodGVzdENvbnRhaW5lcik7
CisKKyAgICAvLyBXaXRob3V0IGVkaXRhYmxlIHJlZ2lvbiBlbmFibGVkIHRoaXMgcmVjdCBpcyB0
aG91Z2h0IHRvIGNvbnRhaW4gc29tZXRoaW5nIGVkaXRhYmxlIGV2ZW4gdGhvdWdoIGl0IGRvZXNu
J3QuCisgICAgYXdhaXQgc2hvdWxkSGF2ZUVkaXRhYmxlRWxlbWVudHNJblJlY3QoMCwgMCwgNTAs
IDUwKTsKKworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Rlc2NyaXB0aW9uKCJIaXQgdGVzdHMgZm9yIGVkaXRh
YmxlIGVsZW1lbnRzIGluc2lkZSB0aGUgYmxhY2sgb3V0bGluZWQgcmVjdGFuZ2xlIHdoZW4gdGhl
IGVkaXRhYmxlIHJlZ2lvbiBpcyBkaXNhYmxlZC4gVGhlcmUgc2hvdWxkIGJlIG1vcmUgZmFsc2Ug
cG9zaXRpdmVzIHdoZW4gZGlzYWJsZWQuIik7CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0MGZhZmEyN2Y1MTliMGVjNjk0OGFjNzljMzJh
YjZjZTI5NDUzYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNTQgQEAKKworKEdyYXBoaWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAuMDApCisg
IChib3VuZHMgODAwLjAwIDQxMTIuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDQxMTIuMDApCisgICAgICAoY29udGVudHNPcGFxdWUg
MSkKKyAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgIChiYWNrZ3JvdW5kQ29sb3IgI0ZGRkZG
RikKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDguMDAgOC4wMCkKKyAgICAgICAgICAoYm91bmRzIDMwNC4wMCAzMDQuMDApCisg
ICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMi4wMCAyLjAwKQor
ICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgICAgICAoYm91bmRzIG9yaWdpbiAwLjAwIDIwMC4wMCkKKyAgICAgICAg
ICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAz
MDAuMDAgMzAwLjAwKQorICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAg
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAu
MDAgMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAg
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGFu
Y2hvciAwLjAwIDAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgMzEwLjAw
IDY3MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGJvdW5kcyAzMTAuMDAgNjcwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNo
aWxkcmVuIDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgKQorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1y
ZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13
aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNjNiOWQ2MjFmNmNjZDFl
MGRhMWFlYzVmZTQ4MmVkZTA5NDg1YTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRt
bApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgc3R5bGU9
ImhlaWdodDogNDA5NnB4Ij4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgaGVpZ2h0PSIzMDAiIHNy
Y2RvYz0iCis8c3R5bGU+Cisuc2Nyb2xsZXIgeworICAgIG1hcmdpbi10b3A6IDQwMHB4OworICAg
IHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6IDMwMHB4OworICAgIG92ZXJmbG93OiBzY3JvbGw7
CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9CisuY29udGVudHMgeworICAgIHdpZHRo
OiA1MDBweDsKKyAgICBoZWlnaHQ6IDUwMHB4OworfQorLmVkaXRhYmxlIHsKKyAgICAtd2Via2l0
LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlOworICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7Cit9
ICAgCis8L3N0eWxlPgorPHA+aWZyYW1lPC9wPgorPGRpdiBjbGFzcz0nZWRpdGFibGUgYm94JyBz
dHlsZT0nbWFyZ2luLXRvcDogMjUwcHg7Jz4KKzwvZGl2PgorPGRpdiBjbGFzcz0nc2Nyb2xsZXIn
IHN0eWxlPSdtYXJnaW4tdG9wOiA1MHB4Oyc+CisgICAgPGRpdiBjbGFzcz0nY29udGVudHMnPgor
ICAgICAgICBPdmVyZmxvdyBzY3JvbGwgaW4gaWZyYW1lCisgICAgICAgIDxkaXYgY2xhc3M9J2Vk
aXRhYmxlIGJveCcgc3R5bGU9J21hcmdpbi10b3A6IDUwcHg7Jz4KKyAgICAgICAgPC9kaXY+Cisg
ICAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Cit3aW5kb3cucGFyZW50LnNjcm9sbElGcmFtZUFu
ZER1bXBSZWdpb25zKCk7Cis8L3NjcmlwdD4KKyI+Cis8L2lmcmFtZT4KKzxwcmUgaWQ9InJlc3Vs
dHMiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitpZiAod2luZG93LmludGVybmFscykgeworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBc3lu
Y0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGFibGVSZWdpb25FbmFibGVkKGZhbHNlKTsKK30KKworZnVuY3Rpb24gc2Nyb2xsSUZyYW1l
QW5kRHVtcFJlZ2lvbnMoKQoreworICAgIHRlc3RGcmFtZS5jb250ZW50V2luZG93LnNjcm9sbFRv
KDAsIDIwMCk7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgcmVzdWx0cy50ZXh0
Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5M
QVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lO
Q0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7CisgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0
aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4MWZlNWQ5MGY2
NWY1MDg1ZDE0M2Q5MTZmOTg0NTE0YzQzMmFmMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRp
dGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKKyhHcmFwaGljc0xh
eWVyCisgIChhbmNob3IgMC4wMCAwLjAwKQorICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgIChj
aGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDYwMC4w
MCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgKGJhY2tncm91bmRDb2xvciAjRkZGRkZGKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdp
dGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmNjODNkMjM4NmFmOWIxZTc1ZDEzNTljNDkzNzQyZWNmNGQ4Y2FkYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmll
bGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApAQCAtMCwwICsxLDE1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8aW5wdXQgdHlwZT0idGV4dCI+Cis8cHJl
IGlkPSJyZXN1bHRzIj48L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykgeworICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZmFsc2UpOworICAg
IHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50
LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMu
TEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOworfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402971</attachid>
            <date>2020-06-27 13:34:08 -0700</date>
            <delta_ts>2020-06-28 16:46:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213659-20200627133407.patch</filename>
            <type>text/plain</type>
            <size>43656</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU5M2Q4ODRhM2VjOWQ1
NDk1NDAzNTEyY2EyNDJlY2Q5ZmEzNTZlYi4uODBlNjRmZmM3YWI0NWZhZDg3YWVlZjEyYjQ1ZTE2
YjZkZjk3YjVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIwLTA2LTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIHNsb3dkb3duIGJ5IGFkZGluZyBhIHJ1bnRpbWUgc3dpdGNoIHRvIGVuYWJs
ZSBlZGl0YWJsZSByZWdpb24gY29tcHV0YXRpb24gYW5kCisgICAgICAgIGRpc2FibGUgaXQgYnkg
ZGVmYXVsdC4gVGhlIFVJIHByb2Nlc3Mgd2lsbCBmbGlwIHRoZSBzd2l0Y2ggb24gdGhlIGZpcnN0
IGludm9jYXRpb24gb2YKKyAgICAgICAgLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Qu
CisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwYXJ0cyB0aGF0IG1ha2UgY29tcHV0aW5nIHRoZSBl
ZGl0YWJsZSByZWdpb24gZXhwZW5zaXZlOgorICAgICAgICAgICAgICAgIDEuIFJlcXVpcmVzIHRy
YXZlcnNpbmcgZGVzY2VuZGVudHMgZHVyaW5nIHBhaW50aW5nIHdoZW4gYSBub3JtYWwgcGFpbnQg
bWF5IGJlCisgICAgICAgICAgICAgICAgICAgYWJsZSB0byBhdm9pZCB0aGlzLgorICAgICAgICAg
ICAgICAgIDIuIENhbiBjYXVzZSBtb3JlIGV2ZW50IHJlZ2lvbiBpbnZhbGlkYXRpb25zIGJlY2F1
c2UgaXQgZXh0ZW5kcyB0aGUgaW52YWxpZGF0aW9uCisgICAgICAgICAgICAgICAgICAgY3JpdGVy
aW9uIHRvIGluY2x1ZGUgY2hhbmdlcyB0byBlbGVtZW50IGVkaXRhYmlsaXR5LgorCisgICAgICAg
IFVzaW5nIGEgcnVudGltZSBzd2l0Y2ggYXZvaWRzIHBheWluZyB0aGVzZSBjb3N0cyB1bnRpbCB0
aGUgZmVhdHVyZSBpcyBuZWVkZWQuIFRvIG1ha2UKKyAgICAgICAgZGVidWdnaW5nIGVhc2llciBm
b3IgbWUsIGVuYWJsaW5nIHRoZSBlZGl0YWJsZSByZWdpb24gZGVidWcgb3ZlcmxheSB3aWxsIGFs
c28gZW5hYmxlCisgICAgICAgIGVkaXRhYmxlIHJlZ2lvbi4KKworICAgICAgICBUZXN0czogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdp
b24uaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdp
dGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbAor
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW52
YWxpZGF0ZUNvbnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZCk6IENoZWNrIGlmIGVkaXRhYmxlIHJl
Z2lvbiBpcyBlbmFibGVkLgorICAgICAgICBJZiBpdCBpcyB0aGVuIGRvIHdoYXQgd2UgZG8gbm93
LiBPdGhlcndpc2UsIGRvbid0IGludmFsaWRhdGUgdGhlIHJlZ2lvbiB1bmxlc3Mgd2Ugd2VyZSBn
b2luZworICAgICAgICB0byBkbyBzbyBhbnl3YXkuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVk
LiBVcGRhdGUgc3RhdGUgYW5kIHRoZW4gaW52YWxpZGF0ZQorICAgICAgICB0aGUgZXZlbnQgcmVn
aW9uIGluIGFsbCBsYXllcnMuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCBjb25zdCk6IEFkZGVkLgorCisgICAg
ICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3NCYXNlLmNw
cDoKKyAgICAgICAgQWRkIGEgY2hhbmdlIGhhbmRsZXIgdGhhdCBpcyBpbnZva2VkIHdoZW5ldmVy
IHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zIGNoYW5nZXMuIFRoaXMgaGFuZGxlcgorICAgICAg
ICBqdXN0IHR1cm5zIGFyb3VuZCBhbmQgY2FsbHMgUGFnZTo6c2V0RWRpdGFibGVSZWdpb25FbmFi
bGVkKCkgcGFzc2luZyB3aGV0aGVyIHRoZSBkZWJ1ZyBvdmVybGF5CisgICAgICAgIGZvciBlZGl0
YWJsZSByZWdpb24gaXMgZW5hYmxlZCBvciBub3QuIFRoaXMga2VlcHMgdGhlIFVJIGJlaGF2aW9y
IHdlIGhhdmUgbm93LCBidXQgZm9yIGEgZGlmZmVyZW50CisgICAgICAgIHJlYXNvbjogSSBmaW5k
IGl0IGNvbnZlbmllbnQgdG8gdXNlIHRoZSBvdmVybGF5IHRvIGV5ZWJhbGwgd2hldGhlciB0aGVy
ZSBhcmUgYW55IGVkaXRhYmxlIGVsZW1lbnRzCisgICAgICAgIG9uIHRoZSBwYWdlIGFzIHBhcnQg
b2YgYnVnIHRyaWFnaW5nIHdpdGggYSBub24tZGVidWcgYnVpbGQuIE5vdCBkb2luZyB0aGlzIHdv
dWxkIGltcG9zZSB0aGUKKyAgICAgICAgaW5jb252ZW5pZW5jZSBvZiByZXF1aXJpbmcgYSBkZWJ1
ZyBzZXR1cCBvbiBoYW5kLgorCisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp1bml0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFJlZ2lvbjo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9u
Ojpjb250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRSZWdpb246OmR1bXAgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9FdmVudFJl
Z2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmVuc3VyZUVkaXRhYmxlUmVn
aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6aGFzRWRpdGFibGVS
ZWdpb24gY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpyZWN0
c0ZvckVkaXRhYmxlRWxlbWVudHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdp
b246OmRlY29kZSk6CisgICAgICAgIFRoZSBlZGl0YWJsZSByZWdpb24gaXMgbm93IGFuIE9wdGlv
bmFsPD4uIFRoZXJlIHdpbGwgb25seSBiZSBvbmUgaWYgZW5zdXJlRWRpdGFibGVSZWdpb24KKyAg
ICAgICAgd2FzIGNhbGxlZCwgd2hpY2ggaXMgb25seSB3aGVuIFBhZ2U6OmlzRWRpdGFibGVSZWdp
b25FbmFibGVkKCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9iamVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bWFpbnRhaW5zRXZlbnRSZWdp
b24gY29uc3QpOgorICAgICAgICBPbmx5IGRvIHdoYXQgd2UgZG8gbm93IGlmIFBhZ2U6OmlzRWRp
dGFibGVSZWdpb25FbmFibGVkKCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKTogQ2FsbCBlbnN1cmVFZGl0YWJs
ZVJlZ2lvbiBpZiBQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpIHJldHVybnMgdHJ1ZS4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphcHBseVRvQ29tcG9zaXRlZExheWVy
SW5jbHVkaW5nRGVzY2VuZGFudHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFyQmFja2luZ0Zv
ckFsbExheWVycyk6IFdyb3RlIGluIHRlcm1zIG9mIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNs
dWRpbmdEZXNjZW5kYW50cy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpjbGVhckJhY2tpbmdGb3JMYXllckluY2x1ZGluZ0Rlc2NlbmRhbnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
U2V0dGluZ3M6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsOgorICAgICAgICBBZGQgYSBuZXcgaW50ZXJuYWwgc2V0dGluZyBmb3IgdGVzdGluZyBw
dXJwb3NlcyB0byB0b2dnbGUgZW5hYmxpbmcvZGlzYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbi4KKyAg
ICAgICAgS2VlcCB0aGUgY3VycmVudCBiZWhhdmlvciB3ZSBoYXZlIGluIHRlc3Rpbmcgbm93IGJ5
IGVuYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbiBieSBkZWZhdWx0LgorCiAyMDIwLTA2LTI2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnRlbnQgc29t
ZXRpbWVzIG1pc3NpbmcgaW4gbmVzdGVkIHNjcm9sbGVycyB3aXRoIGJvcmRlci1yYWRpdXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNzdiMTkwNDgxYWJhZWNmMjM2MjA4NTQ3ZTlhODE5Y2NiYjUzNDM4MC4uNzU1Zjkz
MDUwYmVlOTA0NmU2YmY3NTUxNTA5ZmJhYzAzNjhiYWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
MiBAQAorMjAyMC0wNi0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gRWRpdGFibGUgcmVnaW9ucyBjYXVzZXMgfjElIHNsb3dkb3duIGluIFBMVDUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzY1OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNjEzOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHVwIFJlbW90ZUxheWVyVHJlZVZpZXdzIG5v
dyB0aGF0IHRoZSBlZGl0YWJsZSByZWdpb24gaXMgYW4gT3B0aW9uYWw8Pi4gSGF2ZQorICAgICAg
ICB0aGUgVUkgcHJvY2VzcyBtZXNzYWdlIHRoZSB3ZWIgcHJvY2VzcyB0byBlbmFibGUgZWRpdGFi
bGUgcmVnaW9uIG9uIHRoZSBmaXJzdAorICAgICAgICBpbnZvY2F0aW9uIG9mIF9yZXF1ZXN0VGV4
dElucHV0Q29udGV4dHNJblJlY3QsIHdoaWNoIGlzIGdvb2QgaW5kaWNhdG9yIHRoYXQgdGhlcmUK
KyAgICAgICAgd291bGQgYmUgYmVuZWZpdCB0byBjb21wdXRpbmcgaXQgYXMgYSB0eXBpY2FsIGNs
aWVudCB0aGF0IGNhbGxzIGl0IHdpbGwgY2FsbCBpdAorICAgICAgICBtYW55IHRpbWVzLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmll
d3MubW06CisgICAgICAgIChXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0
KTogRml4IHVwIHRoZSBsb2dpYyBub3cgdGhhdCB0aGVyZSBtYXkKKyAgICAgICAgYmUgbm90IGJl
IGFuIGVkaXRhYmxlIHJlZ2lvbiBzZW50IG92ZXIgaW4gdGhlIGxhc3QgZXZlbnQgcmVnaW9uIHVw
ZGF0ZS4gSWYgdGhlcmUKKyAgICAgICAgaXNuJ3Qgb25lIHRoZW4gd2UgZG9uJ3Qga25vdyBpZiB0
aGVyZSBhcmUgZWRpdGFibGUgZWxlbWVudHMgaXMgaW4gdGhlIHJlY3Qgb2Ygbm90LgorICAgICAg
ICBTbywganVzdCByZXR1cm4gdHJ1ZTogdGhlcmUgbWF5IGJlIGVkaXRhYmxlIGVsZW1lbnRzIGlu
IHRoZSByZWN0LiBUaGUgY2FsbGVyIHdpbGwKKyAgICAgICAgaGF2ZSB0byBtZXNzYWdlIHRoZSB3
ZWIgcHJvY2VzcyB0byBmaW5kIG91dCB0aGUgcmVhbCBhbnN3ZXIuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rp
b25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFt
ZV0pOgorICAgICAgICBBZGRlZCBhIG5ldyBpdmFyIHRvIHRyYWNrIGluIHRoZSBVSSBwcm9jZXNz
IHdoZXRoZXIgaXQgYWxyZWFkeSByZXF1ZXN0ZWQgdGhlIHdlYgorICAgICAgICBwcm9jZXNzIHRv
IGVuYWJsZSB0aGUgZWRpdGFibGUgcmVnaW9uLiBUaGUgd2ViIHByb2Nlc3MgY2Fubm90IGRlbnkg
dGhlIHJlcXVlc3Qgc28KKyAgICAgICAgaXQgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBmZWF0dXJl
IHdhcyBlbmFibGVkIG9yIG5vdCBmcm9tIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX3JlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpjb21wbGV0aW9uSGFu
ZGxlcjpdKTogSWYgZWRpdGFibGUKKyAgICAgICAgcmVnaW9uIGlzIG5vdCBlbmFibGUgdGhlbiBk
byBzbyBub3cuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKTog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkIGEgbmV3IG1lc3Nh
Z2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQpOiBBZGRlZC4K
KwogMjAyMC0wNi0yNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEluaXRpYWxpemluZyB0aGUgbWFpbiB0aHJlYWQgc2hvdWxkIGluaXRpYWxpemUgdGhlIG1h
aW4gcnVuIGxvb3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggZDA0ZmEwYzM5ZTBlYjlhODNjY2Q4
NjRlNDJhZTMwNDJiOTkyODMwOC4uNDE4MTI0OWU3YzI5ZDdlNTc4ZGZiY2RmOGM2Zjk5YzA1Njlk
NGJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIEZyYW1l
OjppbnZhbGlkYXRlQ29udGVudEV2ZW50UmVnaW9uc0lmTmVlZGVkKCkKICAgICBoYXNUb3VjaEFj
dGlvbkVsZW1lbnRzID0gbV9kb2MtPm1heUhhdmVFbGVtZW50c1dpdGhOb25BdXRvVG91Y2hBY3Rp
b24oKTsKICNlbmRpZgogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaGFzRWRpdGFi
bGVFbGVtZW50cyA9IG1fZG9jLT5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygpOworICAgIGhhc0Vk
aXRhYmxlRWxlbWVudHMgPSBtX3BhZ2UtPmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgbV9k
b2MtPm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CiAjZW5kaWYKICAgICAvLyBGSVhNRTogVGhp
cyBuZWVkcyB0byBsb29rIGF0IHdoZWVsIGV2ZW50IGhhbmRsZXJzIHRvby4KICAgICBpZiAoIWhh
c1RvdWNoQWN0aW9uRWxlbWVudHMgJiYgIWhhc0VkaXRhYmxlRWxlbWVudHMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCAxNDY3OTE2YjBiMTllYzcyNjdjN2Q4YmQ4NWRiZGZkMGZkMmRiZGE1Li4zOWQ3
ZTk3MmM4MzdkMmI5ZWRjMDZmNWVhNzk5NmYwYTBmODM3Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTkyMCw2ICs5MjAsMjAgQEAgdm9pZCBQYWdlOjp1bm1hcmtBbGxUZXh0TWF0Y2hlcygpCiAg
ICAgfSk7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCit2b2lkIFBhZ2U6OnNl
dEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgaWYgKG1faXNFZGl0
YWJsZVJlZ2lvbkVuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1faXNF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPSBlbmFibGVkOworICAgIGF1dG8gZnJhbWVWaWV3ID0gbWFr
ZVJlZlB0cihtYWluRnJhbWUoKS52aWV3KCkpOworICAgIGlmIChhdXRvKiByZW5kZXJWaWV3ID0g
ZnJhbWVWaWV3LT5yZW5kZXJWaWV3KCkpCisgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3Io
KS5pbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKK30KKworI2VuZGlmCisKIFZl
Y3RvcjxSZWY8RWxlbWVudD4+IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxv
YXRSZWN0JiBzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSBjb25zdAogewogICAgIGF1
dG8gZnJhbWVWaWV3ID0gbWFrZVJlZlB0cihtYWluRnJhbWUoKS52aWV3KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAppbmRleCBhYzIwNjQ0YmUzOTI1OGQ5NjBlNGM0NTM4ZjUzMmY3NmI1MjcyZjUzLi4wYWZjY2Vm
YmMwY2M3ZmYyNGMxN2E1ZDhjOGIwODUxMDllOWYyNGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzQy
LDYgKzc0MiwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbmZpZ3VyZUxvZ2dpbmdDaGFubmVs
KGNvbnN0IFN0cmluZyYsIFdURkxvZ0NoYW5uZWxTdGF0ZSwgV1RGTG9nTGV2ZWwpOwogCisjaWYg
RU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICBib29sIGlzRWRpdGFibGVSZWdpb25FbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZDsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wpOworI2VuZGlmCisK
ICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBlZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTEwMDMsNiArMTAwOCwxMCBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9kZWxlZ2F0ZXNTY2FsaW5nIHsgZmFsc2UgfTsKIAorI2lmIEVOQUJMRShFRElUQUJM
RV9SRUdJT04pCisgICAgYm9vbCBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkIHsgZmFsc2UgfTsK
KyNlbmRpZgorCiAgICAgVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBtX3VzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb24geyBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIgfTsK
ICAgICAKICAgICAvLyBGb3IgdGVzdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRl
eCAwNmNlZGQzOWVjY2ZiOTA4ZWQzNTIxOWI4OWIwZTExMjNjNWEwNzg1Li4yMTM5MTc3M2M3YjU0
ZTFjODAxZjJhNjFjZDE3NzhkZGI4MjE4NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CkBAIC0xNTYsNiArMTU2LDcgQEAgc2hvd1JlcGFpbnRDb3VudGVyOgogdmlzaWJsZURlYnVnT3Zl
cmxheVJlZ2lvbnM6CiAgIHR5cGU6IERlYnVnT3ZlcmxheVJlZ2lvbnMKICAgaW5pdGlhbDogMAor
ICBvbkNoYW5nZTogdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnNDaGFuZ2VkCiBzaG93VGlsZWRT
Y3JvbGxpbmdJbmRpY2F0b3I6CiAgIGluaXRpYWw6IGZhbHNlCiByZXNvdXJjZVVzYWdlT3Zlcmxh
eVZpc2libGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKaW5kZXggNzg0NzdhOWI5
Mjg2MWE1Yjk2MTYyM2JiMWY1MDExNDE2YmNiNDBiNS4uMDFkOTg5OWJkMWI3OGIxYTM5OWRlZjU1
ZWIzOGVlOWRhZWE1ZDQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
c0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcApAQCAt
MzE1LDYgKzMxNSwxNCBAQCB2b2lkIFNldHRpbmdzQmFzZTo6aWNlQ2FuZGlkYXRlRmlsdGVyaW5n
RW5hYmxlZENoYW5nZWQoKQogICAgICAgICBtX3BhZ2UtPmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmcoKTsKIH0KIAordm9pZCBTZXR0aW5nc0Jhc2U6OnZpc2libGVEZWJ1Z092ZXJsYXlSZWdp
b25zQ2hhbmdlZCgpCit7CisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICBpZiAobV9w
YWdlKQorICAgICAgICBtX3BhZ2UtPnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChtX3BhZ2UtPnNl
dHRpbmdzKCkudmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMoKSAmIEVkaXRhYmxlRWxlbWVudFJl
Z2lvbik7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAKIHZvaWQg
U2V0dGluZ3NCYXNlOjpzaG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jvb3N0Q2hhbmdlZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAppbmRleCBhZjIyNDlkYjMwYzJjY2U2ZGRkMmVjMTI5
NTAyZGE5ZmQwZTdmZTQ1Li42NzhlZGRiNzIwODY4NWQzZjViMzg4ZjNjZWRhMjk3ZDk1M2M0YzU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKQEAgLTE5Myw2ICsxOTMsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWRD
aGFuZ2VkKCk7CiAgICAgdm9pZCByZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGVDaGFuZ2VkKCk7
CiAgICAgdm9pZCBpY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkQ2hhbmdlZCgpOworICAgIHZv
aWQgdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnNDaGFuZ2VkKCk7CiAjaWYgRU5BQkxFKFRFWFRf
QVVUT1NJWklORykKICAgICB2b2lkIHNob3VsZEVuYWJsZVRleHRBdXRvc2l6aW5nQm9vc3RDaGFu
Z2VkKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVu
dFJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCmlu
ZGV4IDYzY2IyM2Q3ZmU5ZDA3ZDRiODRlZDRhMTgyZjhkYzFlMmI5ZjQzMzEuLjg3Mzk0ZWQ2Mzk5
MDNlMjJmYmUzYmU2NzgyYzQ3Y2JlZDU5YjM2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V2ZW50UmVnaW9uLmNwcApAQCAtMTMwLDggKzEzMCw4IEBAIHZvaWQgRXZlbnRSZWdpb246OnVu
aXRlKGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wg
b3ZlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaWYgKG92ZXJy
aWRlVXNlck1vZGlmeUlzRWRpdGFibGUgfHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2Rp
Znk6OlJlYWRPbmx5KQotICAgICAgICBtX2VkaXRhYmxlUmVnaW9uLnVuaXRlKHJlZ2lvbik7Cisg
ICAgaWYgKG1fZWRpdGFibGVSZWdpb24gJiYgKG92ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUg
fHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5KSkKKyAgICAgICAg
bV9lZGl0YWJsZVJlZ2lvbi0+dW5pdGUocmVnaW9uKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KG92ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUpOwogI2VuZGlmCkBAIC0xNTYsNyArMTU2LDgg
QEAgdm9pZCBFdmVudFJlZ2lvbjo6dHJhbnNsYXRlKGNvbnN0IEludFNpemUmIG9mZnNldCkKICNl
bmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBtX2VkaXRhYmxlUmVnaW9u
LnRyYW5zbGF0ZShvZmZzZXQpOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uKQorICAgICAgICBt
X2VkaXRhYmxlUmVnaW9uLT50cmFuc2xhdGUob2Zmc2V0KTsKICNlbmRpZgogfQogCkBAIC0yODMs
MTAgKzI4NCwxMiBAQCBjb25zdCBSZWdpb24mIEV2ZW50UmVnaW9uOjpldmVudExpc3RlbmVyUmVn
aW9uRm9yVHlwZShFdmVudExpc3RlbmVyUmVnaW9uVHlwZSB0eQogI2VuZGlmIC8vIEVOQUJMRShX
SEVFTF9FVkVOVF9SRUdJT05TKQogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKwogYm9v
bCBFdmVudFJlZ2lvbjo6Y29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24uaW50ZXJzZWN0
cyhyZWN0KTsKKyAgICByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbiAmJiBtX2VkaXRhYmxlUmVnaW9u
LT5pbnRlcnNlY3RzKHJlY3QpOwogfQorCiAjZW5kaWYKIAogdm9pZCBFdmVudFJlZ2lvbjo6ZHVt
cChUZXh0U3RyZWFtJiB0cykgY29uc3QKQEAgLTMyMiw4ICszMjUsOCBAQCB2b2lkIEV2ZW50UmVn
aW9uOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQotICAgIGlmICghbV9lZGl0YWJsZVJlZ2lvbi5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCBtX2VkaXRhYmxlUmVn
aW9uOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uICYmICFtX2VkaXRhYmxlUmVnaW9uLT5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCAq
bV9lZGl0YWJsZVJlZ2lvbjsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwogICAgIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaAppbmRleCA1MDEyNDNl
MDQ4Yjk4NGU2YjA2NmRhOTRiNTgyNTI4ZmQ1ZGRlZTgyLi4wYmMwNTEyZmVkNDFkYzFjOWRkMWVh
ZjRjMmRiMWRlYmFjYzlmZjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXZlbnRSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24u
aApAQCAtODcsOCArODcsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQorICAgIHZvaWQgZW5zdXJlRWRpdGFibGVSZWdpb24oKSB7IG1fZWRpdGFibGVS
ZWdpb24gPSBSZWdpb24geyB9OyB9CisgICAgYm9vbCBoYXNFZGl0YWJsZVJlZ2lvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24uaGFzVmFsdWUoKTsgfQogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgY29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJlY3QmKSBj
b25zdDsKLSAgICBWZWN0b3I8SW50UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbi5yZWN0cygpOyB9CisgICAgVmVjdG9yPElu
dFJlY3QsIDE+IHJlY3RzRm9yRWRpdGFibGVFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZWRp
dGFibGVSZWdpb24gPyBtX2VkaXRhYmxlUmVnaW9uLT5yZWN0cygpIDogVmVjdG9yPEludFJlY3Qs
IDE+IHsgfTsgfQogI2VuZGlmCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CkBAIC0xMTMsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWdpb24gbV9ub25QYXNzaXZlV2hlZWxFdmVudExpc3RlbmVyUmVnaW9uOwogI2VuZGlmCiAjaWYg
RU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBSZWdpb24gbV9lZGl0YWJsZVJlZ2lvbjsKKyAg
ICBPcHRpb25hbDxSZWdpb24+IG1fZWRpdGFibGVSZWdpb247CiAjZW5kaWYKIH07CiAKQEAgLTE1
Miw3ICsxNTQsNyBAQCBPcHRpb25hbDxFdmVudFJlZ2lvbj4gRXZlbnRSZWdpb246OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQot
ICAgIE9wdGlvbmFsPFJlZ2lvbj4gZWRpdGFibGVSZWdpb247CisgICAgT3B0aW9uYWw8T3B0aW9u
YWw8UmVnaW9uPj4gZWRpdGFibGVSZWdpb247CiAgICAgZGVjb2RlciA+PiBlZGl0YWJsZVJlZ2lv
bjsKICAgICBpZiAoIWVkaXRhYmxlUmVnaW9uKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZjVmNGUzNmFk
M2VkNmVjYzZkMGZiNzhiNGE3MTZlYWU4M2M4NDdkZi4uOTZkZGUzYTE0ZDk2ZmFhZTg3Y2ZhODE0
ZDM3ZGZlOWMwMDBkMjE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC0xMjYzLDcgKzEyNjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgICAg
ICAvLyBXZSB0cmVhdCB0aGUgZW50aXJlIHRleHQgY29udHJvbCBhcyBlZGl0YWJsZSB0byBtYXRj
aCB1c2VycycgZXhwZWN0YXRpb24gZXZlbgogICAgICAgICAvLyB0aG91Z2ggaXQncyBhY3R1YWxs
eSB0aGUgaW5uZXIgdGV4dCBlbGVtZW50IG9mIHRoZSBjb250cm9sIHRoYXQgaXMgZWRpdGFibGUu
CiAgICAgICAgIC8vIFNvLCBubyBuZWVkIHRvIHRyYXZlcnNlIHRvIGZpbmQgdGhlIGlubmVyIHRl
eHQgZWxlbWVudCBpbiB0aGlzIGNhc2UuCi0gICAgICAgIGlmICghaXNUZXh0Q29udHJvbCgpKQor
ICAgICAgICBpZiAocGFnZSgpLmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgIWlzVGV4dENv
bnRyb2woKSkKICAgICAgICAgICAgIG5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cyB8PSBkb2N1bWVu
dCgpLm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CiAjZW5kaWYKICAgICAgICAgaWYgKCFuZWVk
c1RyYXZlcnNlRGVzY2VuZGFudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5jcHAKaW5kZXggN2Q2OGNkYjMxOTEyMTZlMzY3Zjk4NjZmNzljOGQ4YjE4ODAyNDRhYS4u
MzhiYzExNzNhMzc2NmY3ZDkxNDc3ZTY5MDczZTQxYmJiNzM2NzJlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtNzQ2LDEwICs3NDYsMTIgQEAgdm9p
ZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgICAgIGlmIChtX3N0eWxlLmV2ZW50TGlzdGVu
ZXJSZWdpb25UeXBlcygpICE9IG5ld1N0eWxlLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygpKQog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04p
Ci0gICAgICAgICAgICBib29sIHdhc0VkaXRhYmxlID0gbV9zdHlsZS51c2VyTW9kaWZ5KCkgIT0g
VXNlck1vZGlmeTo6UmVhZE9ubHk7Ci0gICAgICAgICAgICBib29sIGlzRWRpdGFibGUgPSBuZXdT
dHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7Ci0gICAgICAgICAgICBp
ZiAod2FzRWRpdGFibGUgIT0gaXNFZGl0YWJsZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIGlmIChwYWdlKCkuaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSkgewor
ICAgICAgICAgICAgICAgIGJvb2wgd2FzRWRpdGFibGUgPSBtX3N0eWxlLnVzZXJNb2RpZnkoKSAh
PSBVc2VyTW9kaWZ5OjpSZWFkT25seTsKKyAgICAgICAgICAgICAgICBib29sIGlzRWRpdGFibGUg
PSBuZXdTdHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7CisgICAgICAg
ICAgICAgICAgaWYgKHdhc0VkaXRhYmxlICE9IGlzRWRpdGFibGUpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CmluZGV4IDAzZWI2MWRkYjExYmU4NGIwZmE5NWFmMGIxMGE1ZWQ5MGYwOWUzYTkuLjQ3MzVkYWI4
MzBkMTkyYTRkMDM3MzU0MTllYWE4OWQ5YWIxN2M1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCkBAIC05MjcsNyArOTI3LDcgQEAgcHVibGljOgogCiAgICAgLy8gSW52
YWxpZGF0aW9uIGNhbiBmYWlsIGlmIHRoZXJlIGlzIG5vIGVuY2xvc2luZyBjb21wb3NpdGluZyBs
YXllciAoZS5nLiBuZXN0ZWQgaWZyYW1lKQogICAgIC8vIG9yIHRoZSBsYXllciBkb2VzIG5vdCBt
YWludGFpbiBhbiBldmVudCByZWdpb24uCi0gICAgZW51bSBjbGFzcyBFdmVudFJlZ2lvbkludmFs
aWRhdGlvblJlYXNvbiB7IFBhaW50LCBTdHlsZSwgTm9uQ29tcG9zaXRlZEZyYW1lIH07CisgICAg
ZW51bSBjbGFzcyBFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbiB7IFBhaW50LCBTZXR0aW5n
RGlkQ2hhbmdlLCBTdHlsZSwgTm9uQ29tcG9zaXRlZEZyYW1lIH07CiAgICAgYm9vbCBpbnZhbGlk
YXRlRXZlbnRSZWdpb24oRXZlbnRSZWdpb25JbnZhbGlkYXRpb25SZWFzb24pOwogCiAgICAgU3Ry
aW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMjM3NmI2MjBlMTc1ZmJhOThl
YWVmNjQyYmRhNWVmOWFhMmY3M2Q5OS4uMDc2NDc4YTY2MTdkOGU3NmFmMWRjMjIxZjg2MTZkZTc0
MGIxNjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKQEAgLTE3MDgsNyArMTcwOCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpt
YWludGFpbnNFdmVudFJlZ2lvbigpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlm
CiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVu
dCgpLm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCkpCisgICAgaWYgKHJlbmRlcmVyKCkucGFnZSgp
LmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgcmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhh
dmVFZGl0YWJsZUVsZW1lbnRzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAjaWYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xNzM1LDYgKzE3MzUsMTUgQEAgdm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKCkKICAgICBhdXRvIHVwZGF0ZUV2ZW50UmVn
aW9uRm9yTGF5ZXIgPSBbJl0oR3JhcGhpY3NMYXllciYgZ3JhcGhpY3NMYXllcikgewogICAgICAg
ICBHcmFwaGljc0NvbnRleHQgbnVsbENvbnRleHQobnVsbHB0cik7CiAgICAgICAgIEV2ZW50UmVn
aW9uIGV2ZW50UmVnaW9uOworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgICAgIC8v
IFRoZSBleGlzdGVuY2Ugb2YgdGhlIGVkaXRhYmxlIHJlZ2lvbiwgZXZlbiBpZiB0aGUgZG9jdW1l
bnQgaGFzIDAgZWRpdGFibGUgZWxlbWVudHMsIGlzIHRoZQorICAgICAgICAvLyBwZXJmb3JtYW5j
ZSBvcHRpbWl6YXRpb24uIEl0IGFsbG93cyB0aGUgVUkgcHJvY2VzcyB0byBhdm9pZCBtZXNzYWdp
bmcgdGhlIHdlYiBwcm9jZXNzIHRvCisgICAgICAgIC8vIGFzayBmb3IgZWRpdGFibGUgZWxlbWVu
dHMgd2hlbiB0aGVyZSBhcmUgbm9uZS4gSWYgdGhlcmUgaXMgbm8gZWRpdGFibGUgcmVnaW9uIHRo
ZW4gdGhlIFVJCisgICAgICAgIC8vIHByb2Nlc3MgbXVzdCBhbHdheXMgbWVzc2FnZSB0aGUgd2Vi
IHByb2Nlc3MgYmVjYXVzZSBpdCBkb2VzIG5vdCBrbm93IHdoZXRoZXIgb3Igbm90IHRoZQorICAg
ICAgICAvLyBwYWdlIGhhcyBlZGl0YWJsZSBlbGVtZW50cy4KKyAgICAgICAgaWYgKHJlbmRlcmVy
KCkucGFnZSgpLmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkpCisgICAgICAgICAgICBldmVudFJl
Z2lvbi5lbnN1cmVFZGl0YWJsZVJlZ2lvbigpOworI2VuZGlmCiAgICAgICAgIGF1dG8gZXZlbnRS
ZWdpb25Db250ZXh0ID0gZXZlbnRSZWdpb24ubWFrZUNvbnRleHQoKTsKICAgICAgICAgYXV0byBs
YXllck9mZnNldCA9IGdyYXBoaWNzTGF5ZXIuc2Nyb2xsT2Zmc2V0KCkgLSByb3VuZGVkSW50U2l6
ZShncmFwaGljc0xheWVyLm9mZnNldEZyb21SZW5kZXJlcigpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAzZWYxY2Zl
YzZhMzQyNDE0NTJhZTJhYTEzZmM0YWJmMjczZmZjMDIyLi5lMmM1MDhhZTA5ZTQzZTUxOWMyMGY3
YTVmZWNiYmQ3YWVhOWJlZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMzU3LDE4ICsyMzU3LDI1IEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKICAg
ICB9CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjbGVhckJhY2tpbmdGb3JMYXll
ckluY2x1ZGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyJiBsYXllcikKK3RlbXBsYXRlPHR5cGVu
YW1lIEFwcGx5RnVuY3Rpb25UeXBlPgoraW5saW5lIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjphcHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoUmVuZGVyTGF5ZXIm
IGxheWVyLCBjb25zdCBBcHBseUZ1bmN0aW9uVHlwZSYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKGxh
eWVyLmlzQ29tcG9zaXRlZCgpKQotICAgICAgICBsYXllci5jbGVhckJhY2tpbmcoKTsKLQorICAg
ICAgICBmdW5jdGlvbihsYXllcik7CiAgICAgZm9yIChhdXRvKiBjaGlsZExheWVyID0gbGF5ZXIu
Zmlyc3RDaGlsZCgpOyBjaGlsZExheWVyOyBjaGlsZExheWVyID0gY2hpbGRMYXllci0+bmV4dFNp
YmxpbmcoKSkKLSAgICAgICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50
cygqY2hpbGRMYXllcik7CisgICAgICAgIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdE
ZXNjZW5kYW50cygqY2hpbGRMYXllciwgZnVuY3Rpb24pOworfQorCit2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKCkKK3sKKyAgICBh
cHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoKm1fcmVuZGVyVmlldy5s
YXllcigpLCBbXShhdXRvJiBsYXllcikgeworICAgICAgICBsYXllci5pbnZhbGlkYXRlRXZlbnRS
ZWdpb24oUmVuZGVyTGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5n
RGlkQ2hhbmdlKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNs
ZWFyQmFja2luZ0ZvckFsbExheWVycygpCiB7Ci0gICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNs
dWRpbmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCkpOworICAgIGFwcGx5VG9Db21w
b3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCksIFtd
KGF1dG8mIGxheWVyKSB7IGxheWVyLmNsZWFyQmFja2luZygpOyB9KTsKIH0KIAogdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0MmRlM2Jl
MGRiOTMzYTNmODU5NjY4NGFhYWRmYzVjODdkYzdhYmU4Li4wMDczN2JjODI0MjQzZTc2ZTg0ZWNm
NzJiYzUzZTU4ZjFlNmUxNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yODIsNiArMjgyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0SXNJbldpbmRvdyhib29sKTsKIAogICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yQWxsTGF5
ZXJzKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKICAg
ICAKICAgICB2b2lkIGxheWVyQmVjYW1lQ29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYpOwog
ICAgIHZvaWQgbGF5ZXJCZWNhbWVOb25Db21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJik7CkBA
IC00MTcsNyArNDE4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUJhY2tpbmcoUmVuZGVy
TGF5ZXImLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3RhdGUqID0g
bnVsbHB0ciwgQmFja2luZ1JlcXVpcmVkID0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKTsKICAg
ICBib29sIHVwZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZShSZW5kZXJMYXllciYsIGNvbnN0IFJl
bmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYs
IEJhY2tpbmdTaGFyaW5nU3RhdGUmKTsKIAotICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yTGF5ZXJJ
bmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEFwcGx5RnVuY3Rpb25UeXBlPiB2b2lkIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdE
ZXNjZW5kYW50cyhSZW5kZXJMYXllciYsIGNvbnN0IEFwcGx5RnVuY3Rpb25UeXBlJik7CiAKICAg
ICAvLyBSZXBhaW50IHRoaXMgYW5kIGl0cyBjaGlsZCBsYXllcnMuCiAgICAgdm9pZCByZWN1cnNp
dmVSZXBhaW50TGF5ZXIoUmVuZGVyTGF5ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGJiYmI0YTQwMGIyN2ZkOTk5ZmI3YWYwZjM5MTk4NjI3
M2RhNGE3ZmEuLjhlNTI5ZjE5MjRmNzY5MzEwYjlkN2ZiNDQ3MGQ3YzQ3ZTcxNjM4MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMjg2LDYgKzI4
Niw5IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCiAg
ICAgbV9wYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IoMSwgeyAwLCAwIH0pOwogICAgIG1fcGFnZS0+
bWFpbkZyYW1lKCkuc2V0UGFnZUFuZFRleHRab29tRmFjdG9ycygxLCAxKTsKICAgICBtX3BhZ2Ut
PnNldENhblN0YXJ0TWVkaWEodHJ1ZSk7CisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAg
ICBtX3BhZ2UtPnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKKyNlbmRpZgogICAgIHNl
dFVzZURhcmtBcHBlYXJhbmNlSW50ZXJuYWwoZmFsc2UpOwogCiAgICAgc2V0dGluZ3MoKS5zZXRG
b3JjZVBlbmRpbmdXZWJHTFBvbGljeShmYWxzZSk7CkBAIC00NDEsNiArNDQ0LDE4IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nVXNlc0lkZW1w
b3RlbnRNb2RlKGJvb2wgZW5hCiAgICAgcmV0dXJuIHsgfTsKIH0KIAorRXhjZXB0aW9uT3I8dm9p
ZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxl
ZCkKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRBY2Nlc3NFcnJvciB9OworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgbV9wYWdl
LT5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZW5hYmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShlbmFibGVkKTsKKyNlbmRpZgorICAgIHJldHVybiB7IH07Cit9CisKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldE1lZGlhVHlwZU92ZXJyaWRlKGNvbnN0IFN0cmlu
ZyYgbWVkaWFUeXBlKQogewogICAgIGlmICghbV9wYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBhMWI5NzA5NGI3ZTBiMWU0ZGE2NDI4NzA5YjFlY2Fk
ZTBkYzU0NzRhLi40Nzg1ZTY4MTRhMWY4NWRhZjE4NGZhYzEyMDEwMDRjZjNiMjM3ZWExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtMTA5LDYgKzEwOSw4
IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIEZyYW1lRmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0
dGVuaW5nOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZs
YXR0ZW5pbmdWYWx1ZSk7CisKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQoYm9vbCk7CiAgICAgCiAgICAgc3RhdGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2Vy
dGlmaWNhdGUoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsCmluZGV4IDM2ODg3ZmM2MTU2NWEwNDg5YTZlNTBiNjA2ZWY4NGRhMTYwMGU2ZTYuLmMx
NWYzYmU0NzA5MTc2ODZmZjJkNGM0NGEyNGI1OGNmOThjYWU5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMTIyLDUgKzEyMiw3IEBAIGVudW0g
Rm9udExvYWRUaW1pbmdPdmVycmlkZSB7ICJCbG9jayIsICJTd2FwIiwgIkZhaWx1cmUiIH07CiAg
ICAgdm9pZCBzZXRTaG91bGREZWFjdGl2YXRlQXVkaW9TZXNzaW9uKGJvb2xlYW4gc2hvdWxkRGVh
Y3RpdmF0ZSk7CiAgICAgCiAgICAgdm9pZCBzZXRTdG9yYWdlQWNjZXNzQVBJUGVyUGFnZVNjb3Bl
RW5hYmxlZChib29sZWFuIGVuYWJsZWQpOworCisgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lk
IHNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVM
YXllclRyZWVWaWV3cy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KaW5kZXggNTJhOGE3NTZiYjQ5ZGJkYTY0MTc4
NDRiYWUxYTY0YWVjNDQ2ODIzNS4uZjVhYzI4NGI2OGMzNDQ3ZTdjNzVjZGY1OTYxOWYyYzNlMzBh
YmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCkBAIC0xMjAsNiAr
MTIwLDcgQEAgYm9vbCBtYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdChVSVZpZXcgKnJv
b3RWaWV3LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QKICAgICBjb2xsZWN0RGVzY2VuZGFudFZp
ZXdzSW5SZWN0KHZpZXdzSW5SZWN0LCByb290VmlldywgcmVjdCk7CiAgICAgaWYgKHZpZXdzSW5S
ZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgc2VlbkFuRWRp
dGFibGVSZWdpb24gPSBmYWxzZTsKICAgICBmb3IgKGF1dG8gKnZpZXcgOiBXVEY6Om1ha2VSZXZl
cnNlZFJhbmdlKHZpZXdzSW5SZWN0KSkgewogICAgICAgICBpZiAoIVt2aWV3IGlzS2luZE9mQ2xh
c3M6V0tDb21wb3NpdGluZ1ZpZXcuY2xhc3NdKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0x
MjksMTAgKzEzMCwxNiBAQCBib29sIG1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0KFVJ
VmlldyAqcm9vdFZpZXcsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdAogICAgICAgICBXZWJDb3Jl
OjpJbnRSZWN0IHJlY3RUb1Rlc3QgeyBbdmlldyBjb252ZXJ0UmVjdDpyZWN0IGZyb21WaWV3OnJv
b3RWaWV3XSB9OwogICAgICAgICBpZiAobm9kZS0+ZXZlbnRSZWdpb24oKS5jb250YWluc0VkaXRh
YmxlRWxlbWVudHNJblJlY3QocmVjdFRvVGVzdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgaWYgKG5vZGUtPmV2ZW50UmVnaW9uKCkuY29udGFpbnMocmVjdFRvVGVzdCkpCisg
ICAgICAgIGJvb2wgaGFzRWRpdGFibGVSZWdpb24gPSBub2RlLT5ldmVudFJlZ2lvbigpLmhhc0Vk
aXRhYmxlUmVnaW9uKCk7CisgICAgICAgIGlmIChoYXNFZGl0YWJsZVJlZ2lvbiAmJiBub2RlLT5l
dmVudFJlZ2lvbigpLmNvbnRhaW5zKHJlY3RUb1Rlc3QpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBzZWVuQW5FZGl0YWJsZVJlZ2lvbiB8PSBoYXNFZGl0YWJsZVJlZ2lvbjsK
ICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIElmIHdlIGRpZG4ndCBzZWUgYW4gZWRp
dGFibGUgcmVnaW9uIHRoZW4gd2UgZG9uJ3Qga25vdyB3aGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUK
KyAgICAvLyBlZGl0YWJsZSBlbGVtZW50cyBpbiB0aGUgcmVjdC4gV2Ugb25seSBrbm93IHRoYXQg
dGhlIHdlYiBwcm9jZXNzIGRpZCBub3QgZG8gYW4KKyAgICAvLyBldmVudCByZWdpb24gcGFpbnQg
dG8gZmluZCB0aGVtLiBUaGUgY2FsbGVyIHdpbGwgaGF2ZSB0byBhc2sgdGhlIHdlYiBwcm9jZXNz
IHRvCisgICAgLy8ga25vdyBmb3Igc3VyZS4KKyAgICByZXR1cm4gIXNlZW5BbkVkaXRhYmxlUmVn
aW9uOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYWUxOTViZDdlMmY4MjQwZDFlN2Q4OGM3Yjdk
ZTE0MjJhNGRiOTI5Ni4uZTBhNTVkZThjOWRiNDEwNzg4NTNmOTQ3YmIzOTczODgwZTJjZjAwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTcyNSw2ICs3MjUsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgdGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6Rmxv
YXRSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpFbGVt
ZW50Q29udGV4dD4mKT4mJik7CiAgICAgdm9pZCBmb2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFj
ZUNhcmV0KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorI2lmIEVOQUJMRShF
RElUQUJMRV9SRUdJT04pCisgICAgdm9pZCBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCk7
CisjZW5kaWYKKwogICAgIHZvaWQgc2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVy
SW5zZXJ0aW9uKGJvb2wpOwogICAgICAgICAKICAgICB2b2lkIHNldFNjcmVlbklzQmVpbmdDYXB0
dXJlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA4MDgwMjRiYTllOWQ5YTRkODVlMDQ0NzE3MTMw
ZjIzMDc4OTVmZGI0Li5mYWM4ODA3ZjUyOGUxZGE0MjVkNjE5MjJlYTY0NDMzMjQ3ZGUzZDI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCkBAIC0zNjEsNiArMzYxLDkgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25E
YXRhIHsKICAgICBCT09MIF90ZXh0SW50ZXJhY3Rpb25EaWRDaGFuZ2VGb2N1c2VkRWxlbWVudDsK
ICAgICBCT09MIF90ZXh0SW50ZXJhY3Rpb25Jc0hhcHBlbmluZzsKICAgICBib29sIF9pc1dhaXRp
bmdPblBvc2l0aW9uSW5mb3JtYXRpb247CisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAg
ICBib29sIF9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQ7CisjZW5kaWYKIAogICAgIE9wdGlvbmFsPFdl
YkNvcmU6OkludFBvaW50PiBfcG9pbnRJbnNpZGVMYXN0Rm9jdXNlZFRleHRJbnB1dENvbnRleHQ7
CiAKQEAgLTQ1Miw2ICs0NTUsMTAgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TQXJyYXk8VUlUZXh0U3VnZ2VzdGlvbiAqPiAq
ZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnM7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFRElUQUJMRV9S
RUdJT04pCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0VkaXRhYmxl
UmVnaW9uRW5hYmxlZCkgQk9PTCBlZGl0YWJsZVJlZ2lvbkVuYWJsZWQ7CisjZW5kaWYKKwogLSAo
dm9pZClzZXRVcEludGVyYWN0aW9uOwogLSAodm9pZCljbGVhblVwSW50ZXJhY3Rpb247CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCmluZGV4IDk3MTgyMDRjNWQ2MDliZTZlZDNiZmNkODJhY2E5YTljNTFjN2VlYjku
LmIyNTE4ZWQ1NWUyOGNhOTNmYWRmNWU4ODg0N2RkYWZlNjg1MTM5N2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtOTM0LDYgKzkzNCwxMCBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIF9z
ZWVuSGFyZHdhcmVLZXlEb3duSW5Ob25FZGl0YWJsZUVsZW1lbnQgPSBOTzsKICNlbmRpZgogCisj
aWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICBfZWRpdGFibGVSZWdpb25FbmFibGVkID0g
Tk87CisjZW5kaWYKKwogICAgIF90ZXh0SW50ZXJhY3Rpb25EaWRDaGFuZ2VGb2N1c2VkRWxlbWVu
dCA9IE5POwogICAgIF90ZXh0SW50ZXJhY3Rpb25Jc0hhcHBlbmluZyA9IE5POwogICAgIF9wb2lu
dEluc2lkZUxhc3RGb2N1c2VkVGV4dElucHV0Q29udGV4dCA9IFdURjo6bnVsbG9wdDsKQEAgLTQy
OTQsNiArNDI5OCw5IEBAIC0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWUKIHsKICNp
ZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIF9zZWVuSGFyZHdhcmVLZXlEb3du
SW5Ob25FZGl0YWJsZUVsZW1lbnQgPSBOTzsKKyNlbmRpZgorI2lmIEVOQUJMRShFRElUQUJMRV9S
RUdJT04pCisgICAgX2VkaXRhYmxlUmVnaW9uRW5hYmxlZCA9IE5POwogI2VuZGlmCiAgICAgW3Nl
bGYgX2VsZW1lbnREaWRCbHVyXTsKICAgICBbc2VsZiBfY2FuY2VsTG9uZ1ByZXNzR2VzdHVyZVJl
Y29nbml6ZXJdOwpAQCAtNTE5NiwxMCArNTIwMywzNSBAQCAtICh2b2lkKV9mb2N1c1RleHRJbnB1
dENvbnRleHQ6KF9XS1RleHRJbnB1dENvbnRleHQgKiljb250ZXh0IHBsYWNlQ2FyZXRBdDooQ0dQ
bwogICAgIF9wYWdlLT5mb2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnRleHQu
X3RleHRJbnB1dENvbnRleHQsIHBvaW50SW5zaWRlVGV4dElucHV0Q29udGV4dCwgV1RGTW92ZShj
aGVja0ZvY3VzZWRFbGVtZW50KSk7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQor
CistIChCT09MKWlzRWRpdGFibGVSZWdpb25FbmFibGVkCit7CisgICAgcmV0dXJuIF9lZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQ7Cit9CisKKy0gKHZvaWQpc2V0RWRpdGFibGVSZWdpb25FbmFibGVkOihC
T09MKWVuYWJsZWQKK3sKKyAgICBpZiAoX2VkaXRhYmxlUmVnaW9uRW5hYmxlZCA9PSBlbmFibGVk
KQorICAgICAgICByZXR1cm47CisgICAgX2VkaXRhYmxlUmVnaW9uRW5hYmxlZCA9IGVuYWJsZWQ7
CisgICAgX3BhZ2UtPnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChlbmFibGVkKTsKK30KKworI2Vu
ZGlmCisKIC0gKHZvaWQpX3JlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDooQ0dSZWN0KXJl
Y3QgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4
dCAqPiAqKSljb21wbGV0aW9uSGFuZGxlcgogewogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzZWFy
Y2hSZWN0IHsgcmVjdCB9OwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgLy8gQ29t
cHV0aW5nIHRoZSBlZGl0YWJsZSByZWdpb24gaXMgYml0IGV4cGVuc2l2ZSBhbmQgY2FuIHNsb3cg
ZG93biBpbml0aWFsIHBhZ2UgbG9hZCBzbyBpdCdzCisgICAgLy8gZG9uZSBieSB0aGUgd2ViIHBy
b2Nlc3MgbGF6aWx5LiBXZSB0ZWxsIGl0IGRvIHNvIG5vdyBpZiB3ZSBoYXZlbid0IGFscmVhZHkg
ZG9uZSBzby4gTm90ZSB0aGF0CisgICAgLy8gdW50aWwgdGhlIFVJIHByb2Nlc3MgcmVjZWl2ZXMg
aXQgbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3Qgd2lsbCByZXR1cm4gdHJ1ZS4gVGhp
cyBpcyBPSworICAgIC8vIGFuZCBqdXN0IG1lYW5zIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGJl
IGxlc3MgZWZmaWNpZW50IHRoYW4gaXQgY291bGQgYmUgaWYgdGhlIHJlY3QgaW50ZXJzZWN0cwor
ICAgIC8vIG5vdGhpbmcgaW4gdGhlIG1lYW50aW1lLgorICAgIGlmICghX2VkaXRhYmxlUmVnaW9u
RW5hYmxlZCkKKyAgICAgICAgc2VsZi5lZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPSBZRVM7CisKICAg
ICBib29sIGhpdEludGVyYWN0aW9uUmVjdCA9IHNlbGYuX2hhc0ZvY3VzZWRFbGVtZW50ICYmIHNl
YXJjaFJlY3QuaW5jbHVzaXZlbHlJbnRlcnNlY3RzKF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9u
LmludGVyYWN0aW9uUmVjdCk7CiAgICAgaWYgKCFzZWxmLndlYlZpZXcuX2VkaXRhYmxlICYmICFo
aXRJbnRlcmFjdGlvblJlY3QgJiYgIVdlYktpdDo6bWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJ
blJlY3Qoc2VsZiwgcmVjdCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQFsgXSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAw
NTA5Y2VjZGU1MjQ1N2NlNzZhNTg3YzhiNmI1Zjg1MGQ3NTExZjFkLi5iODViZjU3YTYyMDVlMTlh
ZGFmZTFiNTk2NWFmMWFiMTFkNzBlMDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE1NzIsNiArMTU3MiwxNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb25zdCBFbGVtZW50
Q29udGV4dCYgY29udAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6
Rm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb250ZXh0LCBwb2ludCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04p
CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCBlbmFi
bGVkKQoreworICAgIGlmIChoYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZW5hYmxlZCkpOworfQorCisj
ZW5kaWYKKworCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVj
dGlvbkFmdGVySW5zZXJ0aW9uKGJvb2wgc2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVy
SW5zZXJ0aW9uKQogewogICAgIGlmIChoYXNSdW5uaW5nUHJvY2VzcygpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGY5NGFjYWFmMTg1NTM4N2Y1ZWMw
ODhiZjNmMzc2YmIxZWExY2VhZWQuLmQxMDhiOTE2MjRlYWM1YzllMTMxMzViNjljYzA3MmE5Y2Ni
ZTU5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTY1NSw2ICs2NTUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdGV4dElucHV0Q29udGV4dHNJblJl
Y3QoV2ViQ29yZTo6RmxvYXRSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4mKT4mJik7CiAgICAgdm9pZCBmb2N1c1RleHRJbnB1
dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
IAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgdm9pZCBzZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQoYm9vbCk7CisjZW5kaWYKKwogICAgIGJvb2wgc2hvdWxkUmV2ZWFsQ3VycmVudFNl
bGVjdGlvbkFmdGVySW5zZXJ0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRSZXZlYWxDdXJy
ZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb247IH0KICAgICB2b2lkIHNldFNob3VsZFJldmVhbEN1
cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNjg4OWQ2
MjMyYjlmZTU1N2ExOWEzOTBhM2FmZTQ0ZDg3M2Y2OWUwOS4uYjkxOGUzN2E2MGYxNDFhM2EwYzMy
NGE4ZTE0M2MwY2MzYzk5ZTI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xMjYsNiArMTI2LDkgQEAgR2VuZXJh
dGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZFR5cGUKICAgICBUZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpG
bG9hdFJlY3QgcmVjdCkgLT4gKFZlY3RvcjxzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQ+
IGNvbnRleHRzKSBBc3luYwogICAgIEZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQo
c3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGNvbnRleHQsIFdlYkNvcmU6OkludFBvaW50
IHBvaW50KSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwogICAgIENsZWFyU2VydmljZVdvcmtlckVu
dGl0bGVtZW50T3ZlcnJpZGUoKSAtPiAoKSBBc3luYworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJ
T04pCisgICAgU2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKKyNlbmRpZgog
I2VuZGlmCiAKICAgICBTZXRDb250cm9sbGVkQnlBdXRvbWF0aW9uKGJvb2wgY29udHJvbGxlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KaW5kZXggZGRiMjM2Yjg3ZGQ3MDA4MTE0OTNkMTFkMjkxZDFhYjQ1NDg5NGM3Zi4uZWZkOTlh
ZmQyZmIwOTg4ZDg0Y2RmOWEyMGIwYmYyNDQ2MzI2ZWM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTQzNjAsNiArNDM2
MCwxNSBAQCB2b2lkIFdlYlBhZ2U6OmZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQo
Y29uc3QgRWxlbWVudENvbnRleHQmIGVsZW1lbnRDbwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRy
dWUpOwogfQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKwordm9pZCBXZWJQYWdlOjpz
ZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fcGFnZS0+c2V0
RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQpOworfQorCisjZW5kaWYKKwogdm9pZCBXZWJQ
YWdlOjpwbGF0Zm9ybURpZFNjYWxlUGFnZSgpCiB7CiAgICAgYXV0byB0cmFuc2FjdGlvbklEID0g
ZG93bmNhc3Q8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE+KCptX2RyYXdpbmdBcmVhKS5sYXN0
Q29tbWl0dGVkVHJhbnNhY3Rpb25JRCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI1ZTcxY2FmMzQwNzY2OGM4NGRiNjhm
NjY4NGE4Njc2NDljZWM2YWEuLjRiMzE4ODU3OWZjNGQ4ZjIxY2QyYmFhNTFiZjBhZTRjYzEwZGEz
ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNi0yNyAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRWRpdGFibGUgcmVnaW9ucyBjYXVzZXMg
fjElIHNsb3dkb3duIGluIFBMVDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMzY1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNjEzOTA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNvbWUg
dGVzdHMgdG8gZW5zdXJlIHRoZSBuZXcgc2V0dGluZyB3b3JrcyBhbmQgdGhlIGZlYXR1cmUgY2Fu
IGJlIGRpc2FibGVkLiBOb3RlCisgICAgICAgIHRoYXQgdGhlIHNldHRpbmcgaXMgZW5hYmxlZCBi
eSBkZWZhdWx0IHRvIGtlZXAgdGhlIGN1cnJlbnQgYmVoYXZpb3IuIFNlZSB0aGUgV2ViQ29yZQor
ICAgICAgICBDaGFuZ2VMb2cgZW50cnkgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIGVk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVn
aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQWRkZWQuCisg
ICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUt
cmVnaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0
YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWw6
IEFkZGVkLgorCiAyMDIwLTA2LTI2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIENvbnRlbnQgc29tZXRpbWVzIG1pc3NpbmcgaW4gbmVzdGVkIHNjcm9s
bGVycyB3aXRoIGJvcmRlci1yYWRpdXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0
LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZTY2ZjVkODFmYzg1NTcwMTIyYTYyMWNjYmNjMDM2YThjNDJlMmE5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0
aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0hpdCB0
ZXN0cyBmb3IgZWRpdGFibGUgZWxlbWVudHMgaW5zaWRlIHRoZSBibGFjayBvdXRsaW5lZCByZWN0
YW5nbGUgd2hlbiB0aGUgZWRpdGFibGUgcmVnaW9uIGlzIGRpc2FibGVkLiBUaGVyZSBzaG91bGQg
YmUgbW9yZSBmYWxzZSBwb3NpdGl2ZXMgd2hlbiBkaXNhYmxlZC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgKHggPSAxMDAsIHkgPSAxMDAsIHdpZHRoID0gMjAyLCBoZWln
aHQgPSAyMDIpIGNvbnRhaW5zIGVkaXRhYmxlIGVsZW1lbnRzLgorUEFTUyAoeCA9IDAsIHkgPSAw
LCB3aWR0aCA9IDUwLCBoZWlnaHQgPSA1MCkgY29udGFpbnMgZWRpdGFibGUgZWxlbWVudHMuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMt
d2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2MzNGJmYjhjYzlhN2FmZTNjMjk5ODdmZTAxMjVlY2NmMTMxZDc2YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0
LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGl0LXRlc3QtdXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0ZXN0LWNvbnRhaW5lciB7CisgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIHRvcDogMTAwcHg7CisgICAgbGVmdDogMTAwcHg7CisgICAg
Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDog
MjAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0ZXN0LWNvbnRh
aW5lciI+CisgICAgPGlucHV0PgorPC9kaXY+Cis8c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZmFsc2UpOworCithc3luYyBmdW5jdGlvbiBydW5U
ZXN0KCkKK3sKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RGYWls
ZWQoIk11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBsZXQgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0LWNvbnRhaW5lciIpOworICAgIGF3YWl0IHNob3VsZEhhdmVFZGl0YWJsZUVsZW1lbnRz
SW5SZWN0Rm9yRWxlbWVudCh0ZXN0Q29udGFpbmVyKTsKKworICAgIC8vIFdpdGhvdXQgZWRpdGFi
bGUgcmVnaW9uIGVuYWJsZWQgdGhpcyByZWN0IGlzIHRob3VnaHQgdG8gY29udGFpbiBzb21ldGhp
bmcgZWRpdGFibGUgZXZlbiB0aG91Z2ggaXQgZG9lc24ndC4KKyAgICBhd2FpdCBzaG91bGRIYXZl
RWRpdGFibGVFbGVtZW50c0luUmVjdCgwLCAwLCA1MCwgNTApOworCisgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwor
ZGVzY3JpcHRpb24oIkhpdCB0ZXN0cyBmb3IgZWRpdGFibGUgZWxlbWVudHMgaW5zaWRlIHRoZSBi
bGFjayBvdXRsaW5lZCByZWN0YW5nbGUgd2hlbiB0aGUgZWRpdGFibGUgcmVnaW9uIGlzIGRpc2Fi
bGVkLiBUaGVyZSBzaG91bGQgYmUgbW9yZSBmYWxzZSBwb3NpdGl2ZXMgd2hlbiBkaXNhYmxlZC4i
KTsKK3J1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjQwZmFmYTI3ZjUxOWIwZWM2OTQ4YWM3OWMzMmFiNmNlMjk0NTNjOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0
LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NCBAQAorCisoR3JhcGhp
Y3NMYXllcgorICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkK
KyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAg
NDExMi4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAx
KQorICAgICAgKGJhY2tncm91bmRDb2xvciAjRkZGRkZGKQorICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQorICAg
ICAgICAgIChib3VuZHMgMzA0LjAwIDMwNC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAgICAgICAgIChwb3NpdGlvbiAyLjAwIDIuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAx
CisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3Vu
ZHMgb3JpZ2luIDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAu
MDApCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAg
ICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMTAuMDAgNjcwLjAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMxMC4wMCA2
NzAuMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAg
ICAgICApCisgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisg
ICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTI2M2I5ZDYyMWY2Y2NkMWUwZGExYWVjNWZlNDgyZWRlMDk0ODVhMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lm
cmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBzdHlsZT0iaGVpZ2h0OiA0MDk2cHgiPgorPGlmcmFt
ZSBpZD0idGVzdEZyYW1lIiBoZWlnaHQ9IjMwMCIgc3JjZG9jPSIKKzxzdHlsZT4KKy5zY3JvbGxl
ciB7CisgICAgbWFyZ2luLXRvcDogNDAwcHg7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdo
dDogMzAwcHg7CisgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKK30KKy5jb250ZW50cyB7CisgICAgd2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogNTAw
cHg7Cit9CisuZWRpdGFibGUgeworICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGU7
CisgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsKK30gICAKKzwvc3R5bGU+Cis8cD5pZnJhbWU8
L3A+Cis8ZGl2IGNsYXNzPSdlZGl0YWJsZSBib3gnIHN0eWxlPSdtYXJnaW4tdG9wOiAyNTBweDsn
PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSdzY3JvbGxlcicgc3R5bGU9J21hcmdpbi10b3A6IDUwcHg7
Jz4KKyAgICA8ZGl2IGNsYXNzPSdjb250ZW50cyc+CisgICAgICAgIE92ZXJmbG93IHNjcm9sbCBp
biBpZnJhbWUKKyAgICAgICAgPGRpdiBjbGFzcz0nZWRpdGFibGUgYm94JyBzdHlsZT0nbWFyZ2lu
LXRvcDogNTBweDsnPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlw
dD4KK3dpbmRvdy5wYXJlbnQuc2Nyb2xsSUZyYW1lQW5kRHVtcFJlZ2lvbnMoKTsKKzwvc2NyaXB0
PgorIj4KKzwvaWZyYW1lPgorPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHRy
dWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZmFs
c2UpOworfQorCitmdW5jdGlvbiBzY3JvbGxJRnJhbWVBbmREdW1wUmVnaW9ucygpCit7CisgICAg
dGVzdEZyYW1lLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMjAwKTsKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVy
VHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRf
UkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJU
SUVTKTsKKyAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91
dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODgxZmU1ZDkwZjY1ZjUwODVkMTQzZDkxNmY5ODQ1MTRjNDMy
YWYyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTQgQEAKKworKEdyYXBoaWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAuMDAp
CisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVl
IDEpCisgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAoYmFja2dyb3VuZENvbG9yICNGRkZG
RkYpCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRp
dGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRt
bCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMt
d2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2M4M2QyMzg2YWY5YjFl
NzVkMTM1OWM0OTM3NDJlY2Y0ZDhjYWRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxl
LXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxpbnB1dCB0eXBlPSJ0ZXh0Ij4KKzxwcmUgaWQ9InJlc3VsdHMiPjwvcHJlPgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRhYmxlUmVnaW9uRW5hYmxlZChmYWxzZSk7CisgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGlu
dGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lO
Q0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1Rf
TEFZRVJfUFJPUEVSVElFUyk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403015</attachid>
            <date>2020-06-28 16:46:55 -0700</date>
            <delta_ts>2020-06-28 18:01:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213659-20200628164655.patch</filename>
            <type>text/plain</type>
            <size>56370</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkyZTAzNDBjZmUyMTU3
YjQyNzQ5ZWU3OWMxM2MwNjIyZmZiMmQzNC4uMmYwMDRkOTVmMmMyOGRjMWU2YTE0YzUwOGM0M2Fk
ZTliMTBlNmIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIwLTA2LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIHNsb3dkb3duIGJ5IGFkZGluZyBhIHJ1bnRpbWUgc3dpdGNoIHRvIGVuYWJs
ZSBlZGl0YWJsZSByZWdpb24gY29tcHV0YXRpb24gYW5kCisgICAgICAgIGRpc2FibGUgaXQgYnkg
ZGVmYXVsdC4gVGhlIFVJIHByb2Nlc3Mgd2lsbCBmbGlwIHRoZSBzd2l0Y2ggb24gdGhlIGZpcnN0
IGludm9jYXRpb24gb2YKKyAgICAgICAgLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Qu
CisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwYXJ0cyB0aGF0IG1ha2UgY29tcHV0aW5nIHRoZSBl
ZGl0YWJsZSByZWdpb24gZXhwZW5zaXZlOgorICAgICAgICAgICAgICAgIDEuIFJlcXVpcmVzIHRy
YXZlcnNpbmcgZGVzY2VuZGVudHMgZHVyaW5nIHBhaW50aW5nIHdoZW4gYSBub3JtYWwgcGFpbnQg
bWF5IGJlCisgICAgICAgICAgICAgICAgICAgYWJsZSB0byBhdm9pZCB0aGlzLgorICAgICAgICAg
ICAgICAgIDIuIENhbiBjYXVzZSBtb3JlIGV2ZW50IHJlZ2lvbiBpbnZhbGlkYXRpb25zIGJlY2F1
c2UgaXQgZXh0ZW5kcyB0aGUgaW52YWxpZGF0aW9uCisgICAgICAgICAgICAgICAgICAgY3JpdGVy
aW9uIHRvIGluY2x1ZGUgY2hhbmdlcyB0byBlbGVtZW50IGVkaXRhYmlsaXR5LgorCisgICAgICAg
IFVzaW5nIGEgcnVudGltZSBzd2l0Y2ggYXZvaWRzIHBheWluZyB0aGVzZSBjb3N0cyB1bnRpbCB0
aGUgZmVhdHVyZSBpcyBuZWVkZWQuIFRvIG1ha2UKKyAgICAgICAgZGVidWdnaW5nIGVhc2llciBm
b3IgbWUsIGVuYWJsaW5nIHRoZSBlZGl0YWJsZSByZWdpb24gZGVidWcgb3ZlcmxheSB3aWxsIGFs
c28gZW5hYmxlCisgICAgICAgIGVkaXRhYmxlIHJlZ2lvbi4KKworICAgICAgICBUZXN0czogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdp
b24uaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdp
dGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbAor
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW52
YWxpZGF0ZUNvbnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZCk6IENoZWNrIGlmIGVkaXRhYmxlIHJl
Z2lvbiBpcyBlbmFibGVkLgorICAgICAgICBJZiBpdCBpcyB0aGVuIGRvIHdoYXQgd2UgZG8gbm93
LiBPdGhlcndpc2UsIGRvbid0IGludmFsaWRhdGUgdGhlIHJlZ2lvbiB1bmxlc3Mgd2Ugd2VyZSBn
b2luZworICAgICAgICB0byBkbyBzbyBhbnl3YXkuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVk
LiBVcGRhdGUgc3RhdGUgYW5kIHRoZW4gaW52YWxpZGF0ZQorICAgICAgICB0aGUgZXZlbnQgcmVn
aW9uIGluIGFsbCBsYXllcnMuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCBjb25zdCk6IEFkZGVkLgorCisgICAg
ICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3NCYXNlLmNw
cDoKKyAgICAgICAgQWRkIGEgY2hhbmdlIGhhbmRsZXIgdGhhdCBpcyBpbnZva2VkIHdoZW5ldmVy
IHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zIGNoYW5nZXMuIFRoaXMgaGFuZGxlcgorICAgICAg
ICBqdXN0IHR1cm5zIGFyb3VuZCBhbmQgY2FsbHMgUGFnZTo6c2V0RWRpdGFibGVSZWdpb25FbmFi
bGVkKCkgcGFzc2luZyB3aGV0aGVyIHRoZSBkZWJ1ZyBvdmVybGF5CisgICAgICAgIGZvciBlZGl0
YWJsZSByZWdpb24gaXMgZW5hYmxlZCBvciBub3QsIGlmIHRoZSBlZGl0YWJsZSByZWdpb24gaXMg
bm90IGFscmVhZHkgZW5hYmxlZC4gVGhpcyBrZWVwcworICAgICAgICB0aGUgVUkgYmVoYXZpb3Ig
d2UgaGF2ZSBub3csIGJ1dCBmb3IgYSBkaWZmZXJlbnQgcmVhc29uOiBJIGZpbmQgaXQgY29udmVu
aWVudCB0byB1c2UgdGhlIG92ZXJsYXkKKyAgICAgICAgdG8gZXllYmFsbCB3aGV0aGVyIHRoZXJl
IGFyZSBhbnkgZWRpdGFibGUgZWxlbWVudHMgb24gdGhlIHBhZ2UgYXMgcGFydCBvZiBidWcgdHJp
YWdpbmcgd2l0aCBhIG5vbi0KKyAgICAgICAgZGVidWcgYnVpbGQuIE5vdCBkb2luZyB0aGlzIHdv
dWxkIGltcG9zZSB0aGUgaW5jb252ZW5pZW5jZSBvZiByZXF1aXJpbmcgYSBkZWJ1ZyBzZXR1cCBv
biBoYW5kLgorCisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp1bml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJl
Z2lvbjo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpjb250YWlu
c0VkaXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRS
ZWdpb246OmR1bXAgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9FdmVudFJlZ2lvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmVuc3VyZUVkaXRhYmxlUmVnaW9uKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6aGFzRWRpdGFibGVSZWdpb24gY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpyZWN0c0ZvckVkaXRh
YmxlRWxlbWVudHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmRlY29k
ZSk6CisgICAgICAgIFRoZSBlZGl0YWJsZSByZWdpb24gaXMgbm93IGFuIE9wdGlvbmFsPD4uIFRo
ZXJlIHdpbGwgb25seSBiZSBvbmUgaWYgZW5zdXJlRWRpdGFibGVSZWdpb24KKyAgICAgICAgd2Fz
IGNhbGxlZCwgd2hpY2ggaXMgb25seSB3aGVuIFBhZ2U6OmlzRWRpdGFibGVSZWdpb25FbmFibGVk
KCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9iamVjdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxl
bWVudDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bWFpbnRhaW5zRXZlbnRSZWdpb24gY29uc3Qp
OgorICAgICAgICBPbmx5IGRvIHdoYXQgd2UgZG8gbm93IGlmIFBhZ2U6OmlzRWRpdGFibGVSZWdp
b25FbmFibGVkKCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKTogQ2FsbCBlbnN1cmVFZGl0YWJsZVJlZ2lvbiBp
ZiBQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpIHJldHVybnMgdHJ1ZS4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphcHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5n
RGVzY2VuZGFudHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFyQmFja2luZ0ZvckFsbExheWVy
cyk6IFdyb3RlIGluIHRlcm1zIG9mIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNj
ZW5kYW50cy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjbGVh
ckJhY2tpbmdGb3JMYXllckluY2x1ZGluZ0Rlc2NlbmRhbnRzKTogRGVsZXRlZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6
OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0
aW5nczo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgor
ICAgICAgICBBZGQgYSBuZXcgaW50ZXJuYWwgc2V0dGluZyBmb3IgdGVzdGluZyBwdXJwb3NlcyB0
byB0b2dnbGUgZW5hYmxpbmcvZGlzYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbi4KKyAgICAgICAgS2Vl
cCB0aGUgY3VycmVudCBiZWhhdmlvciB3ZSBoYXZlIGluIHRlc3Rpbmcgbm93IGJ5IGVuYWJsaW5n
IGVkaXRhYmxlIHJlZ2lvbiBieSBkZWZhdWx0LgorCiAyMDIwLTA2LTI4ICBBbGV4ZXkgU2h2YXlr
YSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBJbXByb3ZlIGVycm9yIG1lc3Nh
Z2UgZm9yIHByaW1pdGl2ZSBjYWxsYmFjayBpbnRlcmZhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZmMTMzZmMy
Y2UyZDhmOTdiNDA2MmQ0NDMyNzlkODFlMThkMTA0ZjkuLmExN2QzMDViZjU2YzAyNzY5Nzk5MDg5
YmVmM2M5YTNiZjkxOGZiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjAtMDYtMjgg
IERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEVkaXRh
YmxlIHJlZ2lvbnMgY2F1c2VzIH4xJSBzbG93ZG93biBpbiBQTFQ1CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2NTkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzY0MzYxMzkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpeCB1cCBSZW1vdGVMYXllclRyZWVWaWV3cyBub3cgdGhhdCB0aGUgZWRpdGFi
bGUgcmVnaW9uIGlzIGFuIE9wdGlvbmFsPD4uIEhhdmUKKyAgICAgICAgdGhlIFVJIHByb2Nlc3Mg
bWVzc2FnZSB0aGUgd2ViIHByb2Nlc3MgdG8gZW5hYmxlIGVkaXRhYmxlIHJlZ2lvbiBvbiB0aGUg
Zmlyc3QKKyAgICAgICAgaW52b2NhdGlvbiBvZiBfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5S
ZWN0LCB3aGljaCBpcyBnb29kIGluZGljYXRvciB0aGF0IHRoZXJlCisgICAgICAgIHdvdWxkIGJl
IGJlbmVmaXQgdG8gY29tcHV0aW5nIGl0IGFzIGEgdHlwaWNhbCBjbGllbnQgdGhhdCBjYWxscyBp
dCB3aWxsIGNhbGwgaXQKKyAgICAgICAgbWFueSB0aW1lcy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tOgorICAgICAgICAo
V2ViS2l0OjptYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdCk6IEZpeCB1cCB0aGUgbG9n
aWMgbm93IHRoYXQgdGhlcmUgbWF5CisgICAgICAgIGJlIG5vdCBiZSBhbiBlZGl0YWJsZSByZWdp
b24gc2VudCBvdmVyIGluIHRoZSBsYXN0IGV2ZW50IHJlZ2lvbiB1cGRhdGUuIElmIHRoZXJlCisg
ICAgICAgIGlzbid0IG9uZSB0aGVuIHdlIGRvbid0IGtub3cgaWYgdGhlcmUgYXJlIGVkaXRhYmxl
IGVsZW1lbnRzIGlzIGluIHRoZSByZWN0IG9mIG5vdC4KKyAgICAgICAgU28sIGp1c3QgcmV0dXJu
IHRydWU6IHRoZXJlIG1heSBiZSBlZGl0YWJsZSBlbGVtZW50cyBpbiB0aGUgcmVjdC4gVGhlIGNh
bGxlciB3aWxsCisgICAgICAgIGhhdmUgdG8gbWVzc2FnZSB0aGUgd2ViIHByb2Nlc3MgdG8gZmlu
ZCBvdXQgdGhlIHJlYWwgYW5zd2VyLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVyYWN0aW9uXSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWVdKToKKyAgICAgICAgQWRk
ZWQgYSBuZXcgaXZhciB0byB0cmFjayBpbiB0aGUgVUkgcHJvY2VzcyB3aGV0aGVyIGl0IGFscmVh
ZHkgcmVxdWVzdGVkIHRoZSB3ZWIKKyAgICAgICAgcHJvY2VzcyB0byBlbmFibGUgdGhlIGVkaXRh
YmxlIHJlZ2lvbi4gVGhlIHdlYiBwcm9jZXNzIGNhbm5vdCBkZW55IHRoZSByZXF1ZXN0IHNvCisg
ICAgICAgIGl0IHJlcHJlc2VudHMgd2hldGhlciB0aGUgZmVhdHVyZSB3YXMgZW5hYmxlZCBvciBu
b3QgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9yZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6Y29tcGxldGlvbkhhbmRsZXI6XSk6IElmIGVkaXRh
YmxlCisgICAgICAgIHJlZ2lvbiBpcyBub3QgZW5hYmxlIHRoZW4gZG8gc28gbm93LgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IEFkZCBhIG5ldyBtZXNzYWdlLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKTogQWRkZWQuCisKIDIwMjAtMDYtMjggIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhyZWFkLXNhZmV0
eSBpc3N1ZSBpbiB3ZWJQcm9jZXNzUG9vbEhpZ2hEeW5hbWljUmFuZ2VEaWRDaGFuZ2VDYWxsYmFj
aygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGQwNGZhMGMzOWUwZWI5YTgzY2NkODY0ZTQyYWUz
MDQyYjk5MjgzMDguLjQxODEyNDllN2MyOWQ3ZTU3OGRmYmNkZjhjNmY5OWMwNTY5ZDRiYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBGcmFtZTo6aW52YWxp
ZGF0ZUNvbnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZCgpCiAgICAgaGFzVG91Y2hBY3Rpb25FbGVt
ZW50cyA9IG1fZG9jLT5tYXlIYXZlRWxlbWVudHNXaXRoTm9uQXV0b1RvdWNoQWN0aW9uKCk7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIGhhc0VkaXRhYmxlRWxlbWVu
dHMgPSBtX2RvYy0+bWF5SGF2ZUVkaXRhYmxlRWxlbWVudHMoKTsKKyAgICBoYXNFZGl0YWJsZUVs
ZW1lbnRzID0gbV9wYWdlLT5pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpICYmIG1fZG9jLT5tYXlI
YXZlRWRpdGFibGVFbGVtZW50cygpOwogI2VuZGlmCiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMg
dG8gbG9vayBhdCB3aGVlbCBldmVudCBoYW5kbGVycyB0b28uCiAgICAgaWYgKCFoYXNUb3VjaEFj
dGlvbkVsZW1lbnRzICYmICFoYXNFZGl0YWJsZUVsZW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5k
ZXggMTQ2NzkxNmIwYjE5ZWM3MjY3YzdkOGJkODVkYmRmZDBmZDJkYmRhNS4uOTcyNDVhY2MxMWU5
ZjkxMGM4NmM5YTBiODM3Mzg3MTcxMzFiMzM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05MjAs
NiArOTIwLDIyIEBAIHZvaWQgUGFnZTo6dW5tYXJrQWxsVGV4dE1hdGNoZXMoKQogICAgIH0pOwog
fQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKwordm9pZCBQYWdlOjpzZXRFZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIGlmIChtX2lzRWRpdGFibGVSZWdp
b25FbmFibGVkID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2lzRWRpdGFibGVS
ZWdpb25FbmFibGVkID0gZW5hYmxlZDsKKyAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIo
bWFpbkZyYW1lKCkudmlldygpKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJu
OworICAgIGlmIChhdXRvKiByZW5kZXJWaWV3ID0gZnJhbWVWaWV3LT5yZW5kZXJWaWV3KCkpCisg
ICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5pbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JB
bGxMYXllcnMoKTsKK30KKworI2VuZGlmCisKIFZlY3RvcjxSZWY8RWxlbWVudD4+IFBhZ2U6OmVk
aXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxvYXRSZWN0JiBzZWFyY2hSZWN0SW5Sb290Vmll
d0Nvb3JkaW5hdGVzKSBjb25zdAogewogICAgIGF1dG8gZnJhbWVWaWV3ID0gbWFrZVJlZlB0ciht
YWluRnJhbWUoKS52aWV3KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBhYzIwNjQ0YmUzOTI1OGQ5NjBl
NGM0NTM4ZjUzMmY3NmI1MjcyZjUzLi4wYWZjY2VmYmMwY2M3ZmYyNGMxN2E1ZDhjOGIwODUxMDll
OWYyNGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzQyLDYgKzc0MiwxMSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNvbmZpZ3VyZUxvZ2dpbmdDaGFubmVsKGNvbnN0IFN0cmluZyYsIFdURkxvZ0NoYW5u
ZWxTdGF0ZSwgV1RGTG9nTGV2ZWwpOwogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAg
ICBib29sIGlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VkaXRh
YmxlUmVnaW9uRW5hYmxlZDsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RWRpdGFibGVS
ZWdpb25FbmFibGVkKGJvb2wpOworI2VuZGlmCisKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8
UmVmPEVsZW1lbnQ+PiBlZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNv
bnN0OwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKQEAgLTEwMDMsNiArMTAwOCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNSZXNv
dXJjZUxvYWRDbGllbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kZWxlZ2F0ZXNTY2FsaW5nIHsg
ZmFsc2UgfTsKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgYm9vbCBtX2lzRWRp
dGFibGVSZWdpb25FbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgVXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbiBtX3VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24geyBVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIgfTsKICAgICAKICAgICAvLyBGb3IgdGVzdGluZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAwNmNlZGQzOWVjY2ZiOTA4ZWQzNTIxOWI4
OWIwZTExMjNjNWEwNzg1Li4yMTM5MTc3M2M3YjU0ZTFjODAxZjJhNjFjZDE3NzhkZGI4MjE4NmRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC0xNTYsNiArMTU2LDcgQEAgc2hvd1Jl
cGFpbnRDb3VudGVyOgogdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnM6CiAgIHR5cGU6IERlYnVn
T3ZlcmxheVJlZ2lvbnMKICAgaW5pdGlhbDogMAorICBvbkNoYW5nZTogdmlzaWJsZURlYnVnT3Zl
cmxheVJlZ2lvbnNDaGFuZ2VkCiBzaG93VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3I6CiAgIGluaXRp
YWw6IGZhbHNlCiByZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzQmFzZS5jcHAKaW5kZXggNzg0NzdhOWI5Mjg2MWE1Yjk2MTYyM2JiMWY1MDExNDE2YmNi
NDBiNS4uODNhM2ZjMjI3NDYxM2VkOTE0MTRiNjM5N2JmMWU1ZDYxYTU1MTkwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcApAQCAtMzE1LDYgKzMxNSwxNCBAQCB2b2lkIFNldHRp
bmdzQmFzZTo6aWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZENoYW5nZWQoKQogICAgICAgICBt
X3BhZ2UtPmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKIH0KIAordm9pZCBTZXR0aW5n
c0Jhc2U6OnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zQ2hhbmdlZCgpCit7CisjaWYgRU5BQkxF
KEVESVRBQkxFX1JFR0lPTikKKyAgICBpZiAobV9wYWdlICYmICFtX3BhZ2UtPmlzRWRpdGFibGVS
ZWdpb25FbmFibGVkKCkgJiYgbV9wYWdlLT5zZXR0aW5ncygpLnZpc2libGVEZWJ1Z092ZXJsYXlS
ZWdpb25zKCkgJiBFZGl0YWJsZUVsZW1lbnRSZWdpb24pCisgICAgICAgIG1fcGFnZS0+c2V0RWRp
dGFibGVSZWdpb25FbmFibGVkKHRydWUpOworI2VuZGlmCit9CisKICNpZiBFTkFCTEUoVEVYVF9B
VVRPU0laSU5HKQogCiB2b2lkIFNldHRpbmdzQmFzZTo6c2hvdWxkRW5hYmxlVGV4dEF1dG9zaXpp
bmdCb29zdENoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
c0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKaW5kZXggYWYyMjQ5
ZGIzMGMyY2NlNmRkZDJlYzEyOTUwMmRhOWZkMGU3ZmU0NS4uNjc4ZWRkYjcyMDg2ODVkM2Y1YjM4
OGYzY2VkYTI5N2Q5NTNjNGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5nc0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCkBAIC0x
OTMsNiArMTkzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgaGlkZGVuUGFnZUNTU0FuaW1hdGlv
blN1c3BlbnNpb25FbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVzb3VyY2VVc2FnZU92ZXJs
YXlWaXNpYmxlQ2hhbmdlZCgpOwogICAgIHZvaWQgaWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxl
ZENoYW5nZWQoKTsKKyAgICB2b2lkIHZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zQ2hhbmdlZCgp
OwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgdm9pZCBzaG91bGRFbmFibGVUZXh0
QXV0b3NpemluZ0Jvb3N0Q2hhbmdlZCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V2ZW50UmVnaW9uLmNwcAppbmRleCA2M2NiMjNkN2ZlOWQwN2Q0Yjg0ZWQ0YTE4MmY4ZGMxZTJi
OWY0MzMxLi44NzM5NGVkNjM5OTAzZTIyZmJlM2JlNjc4MmM0N2NiZWQ1OWIzNmJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKQEAgLTEzMCw4ICsxMzAsOCBAQCB2
b2lkIEV2ZW50UmVnaW9uOjp1bml0ZShjb25zdCBSZWdpb24mIHJlZ2lvbiwgY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlLCBib29sIG92ZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVH
SU9OKQotICAgIGlmIChvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxlLnVzZXJN
b2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25seSkKLSAgICAgICAgbV9lZGl0YWJsZVJlZ2lv
bi51bml0ZShyZWdpb24pOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uICYmIChvdmVycmlkZVVz
ZXJNb2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxlLnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpS
ZWFkT25seSkpCisgICAgICAgIG1fZWRpdGFibGVSZWdpb24tPnVuaXRlKHJlZ2lvbik7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlKTsKICNlbmRp
ZgpAQCAtMTU2LDcgKzE1Niw4IEBAIHZvaWQgRXZlbnRSZWdpb246OnRyYW5zbGF0ZShjb25zdCBJ
bnRTaXplJiBvZmZzZXQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0g
ICAgbV9lZGl0YWJsZVJlZ2lvbi50cmFuc2xhdGUob2Zmc2V0KTsKKyAgICBpZiAobV9lZGl0YWJs
ZVJlZ2lvbikKKyAgICAgICAgbV9lZGl0YWJsZVJlZ2lvbi0+dHJhbnNsYXRlKG9mZnNldCk7CiAj
ZW5kaWYKIH0KIApAQCAtMjgzLDEwICsyODQsMTIgQEAgY29uc3QgUmVnaW9uJiBFdmVudFJlZ2lv
bjo6ZXZlbnRMaXN0ZW5lclJlZ2lvbkZvclR5cGUoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGUgdHkK
ICNlbmRpZiAvLyBFTkFCTEUoV0hFRUxfRVZFTlRfUkVHSU9OUykKIAogI2lmIEVOQUJMRShFRElU
QUJMRV9SRUdJT04pCisKIGJvb2wgRXZlbnRSZWdpb246OmNvbnRhaW5zRWRpdGFibGVFbGVtZW50
c0luUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogewotICAgIHJldHVybiBtX2VkaXRh
YmxlUmVnaW9uLmludGVyc2VjdHMocmVjdCk7CisgICAgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24g
JiYgbV9lZGl0YWJsZVJlZ2lvbi0+aW50ZXJzZWN0cyhyZWN0KTsKIH0KKwogI2VuZGlmCiAKIHZv
aWQgRXZlbnRSZWdpb246OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNvbnN0CkBAIC0zMjIsOCArMzI1
LDggQEAgdm9pZCBFdmVudFJlZ2lvbjo6ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBpZiAoIW1fZWRpdGFibGVSZWdp
b24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGVkaXRhYmxlIHJlZ2lv
biIgPDwgbV9lZGl0YWJsZVJlZ2lvbjsKKyAgICBpZiAobV9lZGl0YWJsZVJlZ2lvbiAmJiAhbV9l
ZGl0YWJsZVJlZ2lvbi0+aXNFbXB0eSgpKSB7CisgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKGVk
aXRhYmxlIHJlZ2lvbiIgPDwgKm1fZWRpdGFibGVSZWdpb247CiAgICAgICAgIHRzIDw8IGluZGVu
dCA8PCAiKVxuIjsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9FdmVudFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVn
aW9uLmgKaW5kZXggNTAxMjQzZTA0OGI5ODRlNmIwNjZkYTk0YjU4MjUyOGZkNWRkZWU4Mi4uNmM0
ZmFlNjMzNzI1YjdlNmU4YmZkOWRlYTk4NTkxNWM4MTBjOTVmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V2ZW50UmVnaW9uLmgKQEAgLTg3LDggKzg3LDEwIEBAIHB1YmxpYzoKICNlbmRpZgog
CiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICB2b2lkIGVuc3VyZUVkaXRhYmxlUmVn
aW9uKCk7CisgICAgYm9vbCBoYXNFZGl0YWJsZVJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZWRp
dGFibGVSZWdpb24uaGFzVmFsdWUoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29udGFp
bnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJlY3QmKSBjb25zdDsKLSAgICBWZWN0
b3I8SW50UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4g
bV9lZGl0YWJsZVJlZ2lvbi5yZWN0cygpOyB9CisgICAgVmVjdG9yPEludFJlY3QsIDE+IHJlY3Rz
Rm9yRWRpdGFibGVFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24gPyBt
X2VkaXRhYmxlUmVnaW9uLT5yZWN0cygpIDogVmVjdG9yPEludFJlY3QsIDE+IHsgfTsgfQogI2Vu
ZGlmCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CkBAIC0xMTMsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICBSZWdpb24gbV9ub25QYXNz
aXZlV2hlZWxFdmVudExpc3RlbmVyUmVnaW9uOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVESVRBQkxF
X1JFR0lPTikKLSAgICBSZWdpb24gbV9lZGl0YWJsZVJlZ2lvbjsKKyAgICBPcHRpb25hbDxSZWdp
b24+IG1fZWRpdGFibGVSZWdpb247CiAjZW5kaWYKIH07CiAKQEAgLTE1Miw3ICsxNTQsNyBAQCBP
cHRpb25hbDxFdmVudFJlZ2lvbj4gRXZlbnRSZWdpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIE9wdGlvbmFsPFJl
Z2lvbj4gZWRpdGFibGVSZWdpb247CisgICAgT3B0aW9uYWw8T3B0aW9uYWw8UmVnaW9uPj4gZWRp
dGFibGVSZWdpb247CiAgICAgZGVjb2RlciA+PiBlZGl0YWJsZVJlZ2lvbjsKICAgICBpZiAoIWVk
aXRhYmxlUmVnaW9uKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMTczLDQgKzE3
NSwxNCBAQCBib29sIEV2ZW50UmVnaW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZlbnRS
ZWdpb24mIGV2ZW50UmVnaW9uKQogICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgRU5BQkxFKEVE
SVRBQkxFX1JFR0lPTikKKworaW5saW5lIHZvaWQgRXZlbnRSZWdpb246OmVuc3VyZUVkaXRhYmxl
UmVnaW9uKCkKK3sKKyAgICBpZiAoIW1fZWRpdGFibGVSZWdpb24pCisgICAgICAgIG1fZWRpdGFi
bGVSZWdpb24uZW1wbGFjZSgpOworfQorCisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZjVmNGUzNmFkM2VkNmVjYzZkMGZiNzhiNGE3MTZl
YWU4M2M4NDdkZi4uOTZkZGUzYTE0ZDk2ZmFhZTg3Y2ZhODE0ZDM3ZGZlOWMwMDBkMjE2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xMjYzLDcgKzEyNjMs
NyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgICAgICAvLyBXZSB0cmVhdCB0aGUgZW50
aXJlIHRleHQgY29udHJvbCBhcyBlZGl0YWJsZSB0byBtYXRjaCB1c2VycycgZXhwZWN0YXRpb24g
ZXZlbgogICAgICAgICAvLyB0aG91Z2ggaXQncyBhY3R1YWxseSB0aGUgaW5uZXIgdGV4dCBlbGVt
ZW50IG9mIHRoZSBjb250cm9sIHRoYXQgaXMgZWRpdGFibGUuCiAgICAgICAgIC8vIFNvLCBubyBu
ZWVkIHRvIHRyYXZlcnNlIHRvIGZpbmQgdGhlIGlubmVyIHRleHQgZWxlbWVudCBpbiB0aGlzIGNh
c2UuCi0gICAgICAgIGlmICghaXNUZXh0Q29udHJvbCgpKQorICAgICAgICBpZiAocGFnZSgpLmlz
RWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgIWlzVGV4dENvbnRyb2woKSkKICAgICAgICAgICAg
IG5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cyB8PSBkb2N1bWVudCgpLm1heUhhdmVFZGl0YWJsZUVs
ZW1lbnRzKCk7CiAjZW5kaWYKICAgICAgICAgaWYgKCFuZWVkc1RyYXZlcnNlRGVzY2VuZGFudHMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggN2Q2OGNk
YjMxOTEyMTZlMzY3Zjk4NjZmNzljOGQ4YjE4ODAyNDRhYS4uMzhiYzExNzNhMzc2NmY3ZDkxNDc3
ZTY5MDczZTQxYmJiNzM2NzJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcApAQCAtNzQ2LDEwICs3NDYsMTIgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzdHls
ZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXcK
ICAgICAgICAgICAgIGlmIChtX3N0eWxlLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygpICE9IG5l
d1N0eWxlLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygpKQogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgICAgICAgICBib29sIHdh
c0VkaXRhYmxlID0gbV9zdHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7
Ci0gICAgICAgICAgICBib29sIGlzRWRpdGFibGUgPSBuZXdTdHlsZS51c2VyTW9kaWZ5KCkgIT0g
VXNlck1vZGlmeTo6UmVhZE9ubHk7Ci0gICAgICAgICAgICBpZiAod2FzRWRpdGFibGUgIT0gaXNF
ZGl0YWJsZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChw
YWdlKCkuaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIGJvb2wg
d2FzRWRpdGFibGUgPSBtX3N0eWxlLnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25s
eTsKKyAgICAgICAgICAgICAgICBib29sIGlzRWRpdGFibGUgPSBuZXdTdHlsZS51c2VyTW9kaWZ5
KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7CisgICAgICAgICAgICAgICAgaWYgKHdhc0VkaXRh
YmxlICE9IGlzRWRpdGFibGUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDAzZWI2MWRkYjExYmU4
NGIwZmE5NWFmMGIxMGE1ZWQ5MGYwOWUzYTkuLjQ3MzVkYWI4MzBkMTkyYTRkMDM3MzU0MTllYWE4
OWQ5YWIxN2M1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC05
MjcsNyArOTI3LDcgQEAgcHVibGljOgogCiAgICAgLy8gSW52YWxpZGF0aW9uIGNhbiBmYWlsIGlm
IHRoZXJlIGlzIG5vIGVuY2xvc2luZyBjb21wb3NpdGluZyBsYXllciAoZS5nLiBuZXN0ZWQgaWZy
YW1lKQogICAgIC8vIG9yIHRoZSBsYXllciBkb2VzIG5vdCBtYWludGFpbiBhbiBldmVudCByZWdp
b24uCi0gICAgZW51bSBjbGFzcyBFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbiB7IFBhaW50
LCBTdHlsZSwgTm9uQ29tcG9zaXRlZEZyYW1lIH07CisgICAgZW51bSBjbGFzcyBFdmVudFJlZ2lv
bkludmFsaWRhdGlvblJlYXNvbiB7IFBhaW50LCBTZXR0aW5nRGlkQ2hhbmdlLCBTdHlsZSwgTm9u
Q29tcG9zaXRlZEZyYW1lIH07CiAgICAgYm9vbCBpbnZhbGlkYXRlRXZlbnRSZWdpb24oRXZlbnRS
ZWdpb25JbnZhbGlkYXRpb25SZWFzb24pOwogCiAgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24o
KSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggMjM3NmI2MjBlMTc1ZmJhOThlYWVmNjQyYmRhNWVmOWFhMmY3M2Q5
OS4uMzZjMTIyOWMwZGJlMjkwNGJmMTYxNTBhNzk0Y2U5NTJkOGMzYTFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE3MDgsNyAr
MTcwOCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjptYWludGFpbnNFdmVudFJlZ2lvbigp
IGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVESVRBQkxF
X1JFR0lPTikKLSAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhhdmVFZGl0YWJsZUVs
ZW1lbnRzKCkpCisgICAgaWYgKHJlbmRlcmVyKCkucGFnZSgpLmlzRWRpdGFibGVSZWdpb25FbmFi
bGVkKCkgJiYgcmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkp
CkBAIC0xNzM1LDYgKzE3MzUsMTAgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUV2
ZW50UmVnaW9uKCkKICAgICBhdXRvIHVwZGF0ZUV2ZW50UmVnaW9uRm9yTGF5ZXIgPSBbJl0oR3Jh
cGhpY3NMYXllciYgZ3JhcGhpY3NMYXllcikgewogICAgICAgICBHcmFwaGljc0NvbnRleHQgbnVs
bENvbnRleHQobnVsbHB0cik7CiAgICAgICAgIEV2ZW50UmVnaW9uIGV2ZW50UmVnaW9uOworI2lm
IEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgICAgIGlmIChyZW5kZXJlcigpLnBhZ2UoKS5p
c0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpKQorICAgICAgICAgICAgZXZlbnRSZWdpb24uZW5zdXJl
RWRpdGFibGVSZWdpb24oKTsKKyNlbmRpZgogICAgICAgICBhdXRvIGV2ZW50UmVnaW9uQ29udGV4
dCA9IGV2ZW50UmVnaW9uLm1ha2VDb250ZXh0KCk7CiAgICAgICAgIGF1dG8gbGF5ZXJPZmZzZXQg
PSBncmFwaGljc0xheWVyLnNjcm9sbE9mZnNldCgpIC0gcm91bmRlZEludFNpemUoZ3JhcGhpY3NM
YXllci5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggM2VmMWNmZWM2YTM0MjQxNDUy
YWUyYWExM2ZjNGFiZjI3M2ZmYzAyMi4uZTU4ZTFmNjJlYmU4YmY2MGNkZTdmYmVhYzg2NjU2NWE1
MjAzZThjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjM1NywxOCArMjM1NywyNSBAQCB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiAgICAgfQogfQogCi12
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdE
ZXNjZW5kYW50cyhSZW5kZXJMYXllciYgbGF5ZXIpCit0ZW1wbGF0ZTx0eXBlbmFtZSBBcHBseUZ1
bmN0aW9uVHlwZT4KK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphcHBseVRvQ29tcG9zaXRl
ZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoUmVuZGVyTGF5ZXImIGxheWVyLCBjb25zdCBBcHBs
eUZ1bmN0aW9uVHlwZSYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKGxheWVyLmlzQ29tcG9zaXRlZCgp
KQotICAgICAgICBsYXllci5jbGVhckJhY2tpbmcoKTsKLQorICAgICAgICBmdW5jdGlvbihsYXll
cik7CiAgICAgZm9yIChhdXRvKiBjaGlsZExheWVyID0gbGF5ZXIuZmlyc3RDaGlsZCgpOyBjaGls
ZExheWVyOyBjaGlsZExheWVyID0gY2hpbGRMYXllci0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAg
Y2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqY2hpbGRMYXllcik7Cisg
ICAgICAgIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqY2hpbGRM
YXllciwgZnVuY3Rpb24pOworfQorCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aW52YWxp
ZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKCkKK3sKKyAgICBhcHBseVRvQ29tcG9zaXRlZExh
eWVySW5jbHVkaW5nRGVzY2VuZGFudHMoKm1fcmVuZGVyVmlldy5sYXllcigpLCBbXShhdXRvJiBs
YXllcikgeworICAgICAgICBsYXllci5pbnZhbGlkYXRlRXZlbnRSZWdpb24oUmVuZGVyTGF5ZXI6
OkV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5nRGlkQ2hhbmdlKTsKKyAgICB9
KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFyQmFja2luZ0ZvckFsbExh
eWVycygpCiB7Ci0gICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygq
bV9yZW5kZXJWaWV3LmxheWVyKCkpOworICAgIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRp
bmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCksIFtdKGF1dG8mIGxheWVyKSB7IGxh
eWVyLmNsZWFyQmFja2luZygpOyB9KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0MmRlM2JlMGRiOTMzYTNmODU5NjY4NGFh
YWRmYzVjODdkYzdhYmU4Li4wMDczN2JjODI0MjQzZTc2ZTg0ZWNmNzJiYzUzZTU4ZjFlNmUxNzMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oCkBAIC0yODIsNiArMjgyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNJbldpbmRvdyhi
b29sKTsKIAogICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yQWxsTGF5ZXJzKCk7CisgICAgdm9pZCBp
bnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKICAgICAKICAgICB2b2lkIGxheWVy
QmVjYW1lQ29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYpOwogICAgIHZvaWQgbGF5ZXJCZWNh
bWVOb25Db21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJik7CkBAIC00MTcsNyArNDE4LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXImLCBSZXF1aXJlc0Nv
bXBvc2l0aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3RhdGUqID0gbnVsbHB0ciwgQmFja2luZ1Jl
cXVpcmVkID0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKTsKICAgICBib29sIHVwZGF0ZUxheWVy
Q29tcG9zaXRpbmdTdGF0ZShSZW5kZXJMYXllciYsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3Np
dGluZ0FuY2VzdG9yLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3Rh
dGUmKTsKIAotICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50
cyhSZW5kZXJMYXllciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFwcGx5RnVuY3Rpb25UeXBl
PiB2b2lkIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJM
YXllciYsIGNvbnN0IEFwcGx5RnVuY3Rpb25UeXBlJik7CiAKICAgICAvLyBSZXBhaW50IHRoaXMg
YW5kIGl0cyBjaGlsZCBsYXllcnMuCiAgICAgdm9pZCByZWN1cnNpdmVSZXBhaW50TGF5ZXIoUmVu
ZGVyTGF5ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
CmluZGV4IGJiYmI0YTQwMGIyN2ZkOTk5ZmI3YWYwZjM5MTk4NjI3M2RhNGE3ZmEuLjQ2MTUxNjM0
YmViMDQwZmFiMTM0MGFmYjBmM2RmZGJjMzgxMjZhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNDQxLDYgKzQ0MSwxOCBAQCBFeGNlcHRpb25P
cjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50
TW9kZShib29sIGVuYQogICAgIHJldHVybiB7IH07CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IElu
dGVybmFsU2V0dGluZ3M6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sIGVuYWJsZWQpCit7
CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IgfTsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIG1fcGFnZS0+c2V0
RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
ZW5hYmxlZCk7CisjZW5kaWYKKyAgICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lk
PiBJbnRlcm5hbFNldHRpbmdzOjpzZXRNZWRpYVR5cGVPdmVycmlkZShjb25zdCBTdHJpbmcmIG1l
ZGlhVHlwZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmgKaW5kZXggYTFiOTcwOTRiN2UwYjFlNGRhNjQyODcwOWIxZWNhZGUwZGM1
NDc0YS4uNDc4NWU2ODE0YTFmODVkYWYxODRmYWMxMjAxMDA0Y2YzYjIzN2VhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEwOSw2ICsxMDksOCBAQCBw
dWJsaWM6CiAKICAgICB1c2luZyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSA9IEZyYW1lRmxhdHRlbmlu
ZzsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGcmFtZUZsYXR0ZW5pbmcoRnJhbWVGbGF0dGVu
aW5nVmFsdWUpOworCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRpdGFibGVSZWdpb25FbmFi
bGVkKGJvb2wpOwogICAgIAogICAgIHN0YXRpYyB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmlj
YXRlKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlk
bAppbmRleCAzNjg4N2ZjNjE1NjVhMDQ4OWE2ZTUwYjYwNmVmODRkYTE2MDBlNmU2Li5jMTVmM2Jl
NDcwOTE3Njg2ZmYyZDRjNDRhMjRiNThjZjk4Y2FlOWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTEyMiw1ICsxMjIsNyBAQCBlbnVtIEZvbnRM
b2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJGYWlsdXJlIiB9OwogICAgIHZv
aWQgc2V0U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29sZWFuIHNob3VsZERlYWN0aXZh
dGUpOwogICAgIAogICAgIHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQSVBlclBhZ2VTY29wZUVuYWJs
ZWQoYm9vbGVhbiBlbmFibGVkKTsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJU
cmVlVmlld3MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCmluZGV4IDUyYThhNzU2YmI0OWRiZGE2NDE3ODQ0YmFl
MWE2NGFlYzQ0NjgyMzUuLjY4YzBmYjBiNjUyZWI5NWRkZDkzOTZhYThlMTliYzlkNjEwMTBlMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
UmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbQpAQCAtMTIwLDYgKzEyMCw3
IEBAIGJvb2wgbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3QoVUlWaWV3ICpyb290Vmll
dywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0CiAgICAgY29sbGVjdERlc2NlbmRhbnRWaWV3c0lu
UmVjdCh2aWV3c0luUmVjdCwgcm9vdFZpZXcsIHJlY3QpOwogICAgIGlmICh2aWV3c0luUmVjdC5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBib29sIHNhd0FuRWRpdGFibGVS
ZWdpb24gPSBmYWxzZTsKICAgICBmb3IgKGF1dG8gKnZpZXcgOiBXVEY6Om1ha2VSZXZlcnNlZFJh
bmdlKHZpZXdzSW5SZWN0KSkgewogICAgICAgICBpZiAoIVt2aWV3IGlzS2luZE9mQ2xhc3M6V0tD
b21wb3NpdGluZ1ZpZXcuY2xhc3NdKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xMjksMTAg
KzEzMCwxNiBAQCBib29sIG1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0KFVJVmlldyAq
cm9vdFZpZXcsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdAogICAgICAgICBXZWJDb3JlOjpJbnRS
ZWN0IHJlY3RUb1Rlc3QgeyBbdmlldyBjb252ZXJ0UmVjdDpyZWN0IGZyb21WaWV3OnJvb3RWaWV3
XSB9OwogICAgICAgICBpZiAobm9kZS0+ZXZlbnRSZWdpb24oKS5jb250YWluc0VkaXRhYmxlRWxl
bWVudHNJblJlY3QocmVjdFRvVGVzdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgaWYgKG5vZGUtPmV2ZW50UmVnaW9uKCkuY29udGFpbnMocmVjdFRvVGVzdCkpCisgICAgICAg
IGJvb2wgaGFzRWRpdGFibGVSZWdpb24gPSBub2RlLT5ldmVudFJlZ2lvbigpLmhhc0VkaXRhYmxl
UmVnaW9uKCk7CisgICAgICAgIGlmIChoYXNFZGl0YWJsZVJlZ2lvbiAmJiBub2RlLT5ldmVudFJl
Z2lvbigpLmNvbnRhaW5zKHJlY3RUb1Rlc3QpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBzYXdBbkVkaXRhYmxlUmVnaW9uIHw9IGhhc0VkaXRhYmxlUmVnaW9uOwogICAgIH0K
LSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gSWYgd2UgZGlkbid0IHNlZSBhbiBlZGl0YWJsZSBy
ZWdpb24gdGhlbiB3ZSBkb24ndCBrbm93IHdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZQorICAgIC8v
IGVkaXRhYmxlIGVsZW1lbnRzIGluIHRoZSByZWN0LiBXZSBvbmx5IGtub3cgdGhhdCB0aGUgd2Vi
IHByb2Nlc3MgZGlkIG5vdCBkbyBhbgorICAgIC8vIGV2ZW50IHJlZ2lvbiBwYWludCB0byBmaW5k
IHRoZW0uIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGFzayB0aGUgd2ViIHByb2Nlc3MgdG8KKyAg
ICAvLyBrbm93IGZvciBzdXJlLgorICAgIHJldHVybiAhc2F3QW5FZGl0YWJsZVJlZ2lvbjsKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGFlMTk1YmQ3ZTJmODI0MGQxZTdkODhjN2I3ZGUxNDIyYTRk
YjkyOTYuLmUwYTU1ZGU4YzlkYjQxMDc4ODUzZjk0N2JiMzk3Mzg4MGUyY2YwMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03MjUsNiArNzI1LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRl
eHQ+Jik+JiYpOwogICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChj
b25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVf
UkVHSU9OKQorICAgIHZvaWQgc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wpOworI2VuZGlm
CisKICAgICB2b2lkIHNldFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlv
bihib29sKTsKICAgICAgICAgCiAgICAgdm9pZCBzZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoYm9v
bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKaW5kZXggYmVlM2JlMDUyMGZjNmRkZDAzMTg1OTE2ZTI1MDZmNmNiOTBl
ZTczMC4uYzY1NzZiZjFhNDljZjY2MTcyNWQ0OTY4YmNiNmJhMTQwOWQzN2ZjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaApAQCAtMzYxLDYgKzM2MSw5IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAg
ICAgQk9PTCBfdGV4dEludGVyYWN0aW9uRGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnQ7CiAgICAgQk9P
TCBfdGV4dEludGVyYWN0aW9uSXNIYXBwZW5pbmc7CiAgICAgYm9vbCBfaXNXYWl0aW5nT25Qb3Np
dGlvbkluZm9ybWF0aW9uOworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgYm9vbCBf
ZWRpdGFibGVSZWdpb25FbmFibGVkOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpQb2ludGVySUQg
bV9jb21taXRQb3RlbnRpYWxUYXBQb2ludGVySWQ7CiAKQEAgLTQ1MCw2ICs0NTMsMTAgQEAgc3Ry
dWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcp
IE5TQXJyYXk8VUlUZXh0U3VnZ2VzdGlvbiAqPiAqZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnM7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGdldHRlcj1pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCkgQk9PTCBlZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQ7CisjZW5kaWYKKwogLSAodm9pZClzZXRVcEludGVyYWN0aW9uOwogLSAo
dm9pZCljbGVhblVwSW50ZXJhY3Rpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDRhMzNjYzgxOThh
ZDg0M2Y3YTg3NjdhMDE0OTY5OGI4ZDdiZDdmNzguLmE3YjFmODkxZGNjNzU2OTM0M2RkZTBlNjNj
M2Q3ZDc5NzEwMmJjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTM0LDYgKzkzNCwxMCBAQCAtICh2
b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIF9zZWVuSGFyZHdhcmVLZXlEb3duSW5Ob25FZGl0
YWJsZUVsZW1lbnQgPSBOTzsKICNlbmRpZgogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikK
KyAgICBfZWRpdGFibGVSZWdpb25FbmFibGVkID0gTk87CisjZW5kaWYKKwogICAgIF90ZXh0SW50
ZXJhY3Rpb25EaWRDaGFuZ2VGb2N1c2VkRWxlbWVudCA9IE5POwogICAgIF90ZXh0SW50ZXJhY3Rp
b25Jc0hhcHBlbmluZyA9IE5POwogCkBAIC00Mjk0LDYgKzQyOTgsOSBAQCAtICh2b2lkKV9kaWRD
b21taXRMb2FkRm9yTWFpbkZyYW1lCiB7CiAjaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9O
UykKICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFibGVFbGVtZW50ID0gTk87Cisj
ZW5kaWYKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIF9lZGl0YWJsZVJlZ2lvbkVu
YWJsZWQgPSBOTzsKICNlbmRpZgogICAgIFtzZWxmIF9lbGVtZW50RGlkQmx1cl07CiAgICAgW3Nl
bGYgX2NhbmNlbExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyXTsKQEAgLTUxOTMsMTAgKzUyMDAs
MzQgQEAgLSAodm9pZClfZm9jdXNUZXh0SW5wdXRDb250ZXh0OihfV0tUZXh0SW5wdXRDb250ZXh0
ICopY29udGV4dCBwbGFjZUNhcmV0QXQ6KENHUG8KICAgICBfcGFnZS0+Zm9jdXNUZXh0SW5wdXRD
b250ZXh0QW5kUGxhY2VDYXJldChjb250ZXh0Ll90ZXh0SW5wdXRDb250ZXh0LCBXZWJDb3JlOjpJ
bnRQb2ludCB7IHBvaW50IH0sIFdURk1vdmUoY2hlY2tGb2N1c2VkRWxlbWVudCkpOwogfQogCisj
aWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKworLSAoQk9PTClpc0VkaXRhYmxlUmVnaW9uRW5h
YmxlZAoreworICAgIHJldHVybiBfZWRpdGFibGVSZWdpb25FbmFibGVkOworfQorCistICh2b2lk
KXNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgaWYgKF9lZGl0
YWJsZVJlZ2lvbkVuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworICAgIF9lZGl0
YWJsZVJlZ2lvbkVuYWJsZWQgPSBlbmFibGVkOworICAgIF9wYWdlLT5zZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQoZW5hYmxlZCk7Cit9CisKKyNlbmRpZgorCiAtICh2b2lkKV9yZXF1ZXN0VGV4dElu
cHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdClyZWN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKIHsK
ICAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc2VhcmNoUmVjdCB7IHJlY3QgfTsKICNpZiBFTkFCTEUo
RURJVEFCTEVfUkVHSU9OKQorICAgIC8vIENvbXB1dGluZyB0aGUgZWRpdGFibGUgcmVnaW9uIGlz
IGEgYml0IGV4cGVuc2l2ZSBhbmQgY2FuIHNsb3cgZG93biBpbml0aWFsIHBhZ2UgbG9hZCBzbyBp
dCdzCisgICAgLy8gZG9uZSBieSB0aGUgd2ViIHByb2Nlc3MgbGF6aWx5LiBXZSB0ZWxsIGl0IGRv
IHNvIG5vdyBpZiB3ZSBoYXZlbid0IGFscmVhZHkgZG9uZSBzby4gTm90ZSB0aGF0CisgICAgLy8g
dW50aWwgdGhlIFVJIHByb2Nlc3MgcmVjZWl2ZXMgaXQgbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVu
dHNJblJlY3Qgd2lsbCByZXR1cm4gdHJ1ZS4gVGhpcyBpcyBPSworICAgIC8vIGFuZCBqdXN0IG1l
YW5zIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGxlc3MgZWZmaWNpZW50IHRoYW4gaXQgY291
bGQgYmUgaWYgdGhlIHJlY3QgaW50ZXJzZWN0cworICAgIC8vIG5vdGhpbmcgaW4gdGhlIG1lYW50
aW1lLgorICAgIHNlbGYuZWRpdGFibGVSZWdpb25FbmFibGVkID0gWUVTOworCiAgICAgYm9vbCBo
aXRJbnRlcmFjdGlvblJlY3QgPSBzZWxmLl9oYXNGb2N1c2VkRWxlbWVudCAmJiBzZWFyY2hSZWN0
LmluY2x1c2l2ZWx5SW50ZXJzZWN0cyhfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnRlcmFj
dGlvblJlY3QpOwogICAgIGlmICghc2VsZi53ZWJWaWV3Ll9lZGl0YWJsZSAmJiAhaGl0SW50ZXJh
Y3Rpb25SZWN0ICYmICFXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0KHNl
bGYsIHJlY3QpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEBbIF0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMDUwOWNlY2Rl
NTI0NTdjZTc2YTU4N2M4YjZiNWY4NTBkNzUxMWYxZC4uYjg1YmY1N2E2MjA1ZTE5YWRhZmUxYjU5
NjVhZjFhYjExZDcwZTA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tCkBAIC0xNTcyLDYgKzE1NzIsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29uc3QgRWxlbWVudENvbnRleHQm
IGNvbnQKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkZvY3VzVGV4
dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29udGV4dCwgcG9pbnQpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCit2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sK
KyAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6U2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQpKTsKK30KKworI2VuZGlmCisK
Kwogdm9pZCBXZWJQYWdlUHJveHk6OnNldFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRl
ckluc2VydGlvbihib29sIHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlv
bikKIHsKICAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmOTRhY2FhZjE4NTUzODdmNWVjMDg4YmYzZjM3
NmJiMWVhMWNlYWVkLi5kMTA4YjkxNjI0ZWFjNWM5ZTEzMTM1YjY5Y2MwNzJhOWNjYmU1OWM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02NTUsNiAr
NjU1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNv
cmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6RWxlbWVudENvbnRleHQ+Jik+JiYpOwogICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250ZXh0
QW5kUGxhY2VDYXJldChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyNpZiBF
TkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIHZvaWQgc2V0RWRpdGFibGVSZWdpb25FbmFibGVk
KGJvb2wpOworI2VuZGlmCisKICAgICBib29sIHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25B
ZnRlckluc2VydGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVj
dGlvbkFmdGVySW5zZXJ0aW9uOyB9CiAgICAgdm9pZCBzZXRTaG91bGRSZXZlYWxDdXJyZW50U2Vs
ZWN0aW9uQWZ0ZXJJbnNlcnRpb24oYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDY4ODlkNjIzMmI5ZmU1
NTdhMTlhMzkwYTNhZmU0NGQ4NzNmNjllMDkuLmI5MThlMzdhNjBmMTQxYTNhMGMzMjRhOGUxNDNj
MGNjM2M5OWUyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTI2LDYgKzEyNiw5IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRUeXBlCiAgICAgVGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0
IHJlY3QpIC0+IChWZWN0b3I8c3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBjb250ZXh0
cykgQXN5bmMKICAgICBGb2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KHN0cnVjdCBX
ZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkg
LT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKICAgICBDbGVhclNlcnZpY2VXb3JrZXJFbnRpdGxlbWVu
dE92ZXJyaWRlKCkgLT4gKCkgQXN5bmMKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAg
IFNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sIGVuYWJsZWQpCisjZW5kaWYKICNlbmRpZgog
CiAgICAgU2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbihib29sIGNvbnRyb2xsZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IGQ4ZTlhMmYxMmQwZDVmMTA0NTM3YTRlY2QxZWEyYjQ5MjNhYTdlNGUuLjgyNTAxYTIzOTZkMDBl
MWVlOTg0MTdjOTQ2ZGRiOGZmMzBlYmZkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00MzYyLDYgKzQzNjIsMTUgQEAg
dm9pZCBXZWJQYWdlOjpmb2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnN0IEVs
ZW1lbnRDb250ZXh0JiBlbGVtZW50Q28KICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0K
IAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKK3ZvaWQgV2ViUGFnZTo6c2V0RWRpdGFi
bGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX3BhZ2UtPnNldEVkaXRhYmxl
UmVnaW9uRW5hYmxlZChlbmFibGVkKTsKK30KKworI2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6cGxh
dGZvcm1EaWRTY2FsZVBhZ2UoKQogewogICAgIGF1dG8gdHJhbnNhY3Rpb25JRCA9IGRvd25jYXN0
PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPigqbV9kcmF3aW5nQXJlYSkubGFzdENvbW1pdHRl
ZFRyYW5zYWN0aW9uSUQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2OWE3MDViZTc0YjI4ZTc1NDdjOGZmNzIwODI2ZTMz
YmY0OGFkNTc1Li42M2RmZDBiOGUyYTE4ZWM5NGYzOThiYjZjMjNhY2I4MDAwNjY3YmE0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDYtMjggIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgorCisgICAgICAgIFtpT1NdIEVkaXRhYmxlIHJlZ2lvbnMgY2F1c2VzIH4xJSBzbG93
ZG93biBpbiBQTFQ1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTM2NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MzYxMzkwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzb21lIHRlc3RzIHRv
IGVuc3VyZSB0aGUgbmV3IHNldHRpbmcgd29ya3MgYW5kIHRoZSBmZWF0dXJlIGNhbiBiZSBkaXNh
YmxlZC4gTm90ZQorICAgICAgICB0aGF0IHRoZSBzZXR0aW5nIGlzIGVuYWJsZWQgYnkgZGVmYXVs
dCB0byBrZWVwIHRoZSBjdXJyZW50IGJlaGF2aW9yLiBTZWUgdGhlIFdlYkNvcmUKKyAgICAgICAg
Q2hhbmdlTG9nIGVudHJ5IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0
aW5ncyB0ZXN0cyB0aGF0IG5lZWQgdGhlIGVkaXRhYmxlIHJlZ2lvbiBlbmFibGVkIHRvIGVuYWJs
ZSBpdCBub3cgdGhhdCBpdCBtdXN0CisgICAgICAgIGJlIGV4cGxpY2l0bHkgZW5hYmxlZC4KKwor
ICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2ZpeGVkLWFuZC1hYnNvbHV0ZS1jb250
ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9mbG9hdC1jb250ZW50ZWRpdGFibGUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0
LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLmh0bWwuCisgICAgICAg
ICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMuaHRtbDoKKyAgICAgICAg
KiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVt
ZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZml4
ZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1vdmVy
bGFwLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtdGV4
dGFyZWEtZW1wdHktc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1y
ZWdpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3V0
LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xsLXRleHQtZmllbGQtYW5kLWNvbnRlbnRl
ZGl0YWJsZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZl
LWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtdHJhbnNmb3JtZWQtY29udGVu
dGVkaXRhYmxlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2VhcmNo
LWZpZWxkLWJhc2ljLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4
dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0
aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy5odG1sLgorICAgICAgICAqIGVkaXRp
bmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1jb21wb3NpdGVkLW5lZ2F0aXZl
LXotaW5kZXgtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90
ZXh0YXJlYS1iYXNpYy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3Ry
YW5zZm9ybWVkLXNjcm9sbGVkLW9uLXRvcC1vZi1maXhlZC1jb250ZW50ZWRpdGFibGVzLmh0bWw6
CisKIDIwMjAtMDYtMjggIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgog
CiAgICAgICAgIEltcHJvdmUgZXJyb3IgbWVzc2FnZSBmb3IgcHJpbWl0aXZlIGNhbGxiYWNrIGlu
dGVyZmFjZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L2ZpeGVkLWFuZC1hYnNvbHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2ZpeGVkLWFuZC1hYnNvbHV0ZS1jb250ZW50
ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbAppbmRleCAzYjM1ZGJkOTA1ZjgyOGI2Yzc5OTY2YTAzMDMx
YjcxZjliNzgyODBlLi4wNDRhN2E1ZTJkZWY5MTVmMWJhOTUyNjZkMmU5ZDBiNmQ1MTY5Y2U1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9maXhlZC1hbmQt
YWJzb2x1dGUtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZml4ZWQtYW5kLWFic29sdXRlLWNvbnRlbnRlZGl0YWJs
ZS1zY3JvbGxlZC5odG1sCkBAIC0xLDUgKzEsMTEgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOworPC9zY3JpcHQ+Cis8L2hl
YWQ+CiA8Ym9keSBzdHlsZT0iaGVpZ2h0OiA0MDk2cHgiPgogPGRpdiBzdHlsZT0icG9zaXRpb246
IGZpeGVkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgd2lkdGg6IDEwMCU7IGhlaWdodDogNDBw
eCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IGhlaWdodDogMjU2cHg7IHdpZHRoOiAy
NTZweDsgdG9wOiAxMDAwcHg7IGxlZnQ6IDIwMHB4IiBjb250ZW50ZWRpdGFibGU9InRydWUiPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxv
YXQtY29udGVudGVkaXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9mbG9hdC1jb250ZW50ZWRpdGFibGUuaHRtbAppbmRleCBkMzczMzRkNjVjZGI2MTc1ZWM3
OTU2OGYzMWI1MDhhMjY3NzcwNzNhLi4zZjRiMmM3YmNmNDYxNjU2NjNhNGExNjA2ZTMwNThhZDk2
OWQxOWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9m
bG9hdC1jb250ZW50ZWRpdGFibGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9mbG9hdC1jb250ZW50ZWRpdGFibGUuaHRtbApAQCAtMSw1ICsxLDExIEBACiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0
cnVlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgogPGJvZHk+CiA8ZGl2IHN0eWxlPSJmbG9hdDogcmln
aHQ7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB3aWR0aDogNTBweDsgaGVpZ2h0OiA0MHB4IiBj
b250ZW50ZWRpdGFibGU9InRydWUiPjwvZGl2PgogPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1i
YXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJl
Z2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU2NmY1ZDgxZmM4NTU3MDEyMmE2MjFjY2Jj
YzAzNmE4YzQyZTJhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRp
dGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitIaXQgdGVzdHMgZm9yIGVkaXRhYmxlIGVsZW1lbnRz
IGluc2lkZSB0aGUgYmxhY2sgb3V0bGluZWQgcmVjdGFuZ2xlIHdoZW4gdGhlIGVkaXRhYmxlIHJl
Z2lvbiBpcyBkaXNhYmxlZC4gVGhlcmUgc2hvdWxkIGJlIG1vcmUgZmFsc2UgcG9zaXRpdmVzIHdo
ZW4gZGlzYWJsZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTICh4ID0g
MTAwLCB5ID0gMTAwLCB3aWR0aCA9IDIwMiwgaGVpZ2h0ID0gMjAyKSBjb250YWlucyBlZGl0YWJs
ZSBlbGVtZW50cy4KK1BBU1MgKHggPSAwLCB5ID0gMCwgd2lkdGggPSA1MCwgaGVpZ2h0ID0gNTAp
IGNvbnRhaW5zIGVkaXRhYmxlIGVsZW1lbnRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13
aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjMzRiZmI4Y2M5YTdhZmUz
YzI5OTg3ZmUwMTI1ZWNjZjEzMWQ3NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJl
Z2lvbi5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2hpdC10ZXN0LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CisjdGVzdC1jb250YWluZXIgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6
IDEwMHB4OworICAgIGxlZnQ6IDEwMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwor
ICAgIHdpZHRoOiAyMDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0idGVzdC1jb250YWluZXIiPgorICAgIDxpbnB1dD4KKzwvZGl2
PgorPHNjcmlwdD4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVk
KGZhbHNlKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRU
ZXN0UnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbGV0IHRlc3RDb250
YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC1jb250YWluZXIiKTsKKyAgICBh
d2FpdCBzaG91bGRIYXZlRWRpdGFibGVFbGVtZW50c0luUmVjdEZvckVsZW1lbnQodGVzdENvbnRh
aW5lcik7CisKKyAgICAvLyBXaXRob3V0IGVkaXRhYmxlIHJlZ2lvbiBlbmFibGVkIHRoaXMgcmVj
dCBpcyB0aG91Z2h0IHRvIGNvbnRhaW4gc29tZXRoaW5nIGVkaXRhYmxlIGV2ZW4gdGhvdWdoIGl0
IGRvZXNuJ3QuCisgICAgYXdhaXQgc2hvdWxkSGF2ZUVkaXRhYmxlRWxlbWVudHNJblJlY3QoMCwg
MCwgNTAsIDUwKTsKKworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5l
cik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Rlc2NyaXB0aW9uKCJIaXQgdGVzdHMgZm9y
IGVkaXRhYmxlIGVsZW1lbnRzIGluc2lkZSB0aGUgYmxhY2sgb3V0bGluZWQgcmVjdGFuZ2xlIHdo
ZW4gdGhlIGVkaXRhYmxlIHJlZ2lvbiBpcyBkaXNhYmxlZC4gVGhlcmUgc2hvdWxkIGJlIG1vcmUg
ZmFsc2UgcG9zaXRpdmVzIHdoZW4gZGlzYWJsZWQuIik7CitydW5UZXN0KCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy5odG1sCmluZGV4IDgyM2U3Y2YzZTY1MWE4NGYzOTg1
YTA0NDM5NzgzMGRjZjM1ODFlY2QuLjEwZTY2YzQxZTA1NmI3NzM3MmEwNWE5NWIxM2Y2YzZjZDZj
YmFlMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hp
dC10ZXN0LWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vaGl0LXRlc3QtYmFzaWMuaHRtbApAQCAtMjUsNiArMjUsOSBAQCB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1blRl
c3QoKQogewogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWVkaXRhYmxlLWRvY3VtZW50
LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10
ZXN0LWVkaXRhYmxlLWRvY3VtZW50LWVsZW1lbnQuaHRtbAppbmRleCA2YzZiNjBhMGRhNTRmMGY2
NjBhZmIyYTI1YWVhMDViMWI4YjdiNzJlLi4wYjVhODFhMTQ4ZjNmYzMwYTExMjhkZjY1ZmM1ZmFk
MjUzY2VlOTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZWRpdGFibGUtZG9jdW1lbnQtZWxl
bWVudC5odG1sCkBAIC05LDYgKzksOSBAQAogPHNjcmlwdD4KIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKKwogYXN5bmMgZnVuY3Rpb24gcnVuVGVz
dCgpCiB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZml4ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWZpeGVkLmh0bWwKaW5kZXgg
ZDJiNDQzNDdmN2NkYjljYWRkNDgxOTNiZGI4MGY2NWFmMDc0N2RjNi4uOWE1MWE5Y2ZkMzkyMzMz
MzUxY2Q0MjU1OGM4MmQyYTZkZjk4MjQ4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZml4ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1maXhlZC5odG1sCkBAIC0yMiw2ICsyMiw5
IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKKwog
YXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRl
c3Qtb3ZlcmxhcC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0
LXRlc3Qtb3ZlcmxhcC5odG1sCmluZGV4IDMxMGIyNWZhMDZmYjhhYjMwNWRiMGQ1MWZmYTE4Nzkz
Nzc2YjE1NWEuLmM3ZWQ4NGUxNTg4OTcyMGUxZjY4MzE2ZjdiNjAzZGE5ZDhmMWQ0ZjQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJs
YXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVz
dC1vdmVybGFwLmh0bWwKQEAgLTY5LDYgKzY5LDkgQEAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGFibGVSZWdpb25FbmFibGVkKHRydWUpOworCiBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKIHsK
ICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC10ZXh0YXJlYS1lbXB0eS1zcGFjZS5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtdGV4dGFyZWEt
ZW1wdHktc3BhY2UuaHRtbAppbmRleCA5ZGY1MWE3MjA4NzhiNTIyNjE0NGNkNzg4YmNiZmY5ZmZi
OTYzMjAxLi5jZmQ0MDRlMGE0YzQyOWVhMDAwNjUxZDQ5MzkwNzhhY2FiZjY3NzAwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC10ZXh0YXJl
YS1lbXB0eS1zcGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL2hpdC10ZXN0LXRleHRhcmVhLWVtcHR5LXNwYWNlLmh0bWwKQEAgLTI1LDYgKzI1LDkgQEAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOworCiBhc3lu
YyBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0
aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iNDBmYWZhMjdmNTE5YjBlYzY5NDhhYzc5YzMyYWI2Y2UyOTQ1M2M4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZy
YW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU0IEBA
CisKKyhHcmFwaGljc0xheWVyCisgIChhbmNob3IgMC4wMCAwLjAwKQorICAoYm91bmRzIDgwMC4w
MCA0MTEyLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91
bmRzIDgwMC4wMCA0MTEyLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAoYmFja2dyb3VuZENvbG9yICNGRkZGRkYpCisgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA4LjAw
IDguMDApCisgICAgICAgICAgKGJvdW5kcyAzMDQuMDAgMzA0LjAwKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDIuMDAgMi4wMCkKKyAgICAgICAgICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyBvcmlnaW4gMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgICAgICAoYW5j
aG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMzAwLjAwIDMwMC4wMCkK
KyAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAg
ICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAw
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMxMC4wMCA2NzAuMDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChib3Vu
ZHMgMzEwLjAwIDY3MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICApCisgICAg
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAp
CisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkK
KyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJs
ZS1yZWdpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjYzYjlkNjIxZjZjY2QxZTBkYTFhZWM1ZmU0ODJl
ZGUwOTQ4NWEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSw1
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5IHN0eWxlPSJoZWlnaHQ6IDQwOTZw
eCI+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIGhlaWdodD0iMzAwIiBzcmNkb2M9IgorPHN0eWxl
PgorLnNjcm9sbGVyIHsKKyAgICBtYXJnaW4tdG9wOiA0MDBweDsKKyAgICB3aWR0aDogMzAwcHg7
CisgICAgaGVpZ2h0OiAzMDBweDsKKyAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgIGJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOworfQorLmNvbnRlbnRzIHsKKyAgICB3aWR0aDogNTAwcHg7CisgICAg
aGVpZ2h0OiA1MDBweDsKK30KKy5lZGl0YWJsZSB7CisgICAgLXdlYmtpdC11c2VyLW1vZGlmeTog
cmVhZC13cml0ZTsKKyAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworfSAgIAorPC9zdHlsZT4K
KzxwPmlmcmFtZTwvcD4KKzxkaXYgY2xhc3M9J2VkaXRhYmxlIGJveCcgc3R5bGU9J21hcmdpbi10
b3A6IDI1MHB4Oyc+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9J3Njcm9sbGVyJyBzdHlsZT0nbWFyZ2lu
LXRvcDogNTBweDsnPgorICAgIDxkaXYgY2xhc3M9J2NvbnRlbnRzJz4KKyAgICAgICAgT3ZlcmZs
b3cgc2Nyb2xsIGluIGlmcmFtZQorICAgICAgICA8ZGl2IGNsYXNzPSdlZGl0YWJsZSBib3gnIHN0
eWxlPSdtYXJnaW4tdG9wOiA1MHB4Oyc+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9k
aXY+Cis8c2NyaXB0Pgord2luZG93LnBhcmVudC5zY3JvbGxJRnJhbWVBbmREdW1wUmVnaW9ucygp
OworPC9zY3JpcHQ+CisiPgorPC9pZnJhbWU+Cis8cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXN5bmNGcmFtZVNjcm9sbGlu
Z0VuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9u
RW5hYmxlZChmYWxzZSk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbElGcmFtZUFuZER1bXBSZWdpb25z
KCkKK3sKKyAgICB0ZXN0RnJhbWUuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAyMDApOworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRl
cm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNM
VURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xB
WUVSX1BST1BFUlRJRVMpOworICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmct
Y2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9vdXQtaGFuZ2luZy1jaGlsZC1vZi1jb250ZW50ZWRpdGFibGUuaHRtbAppbmRl
eCA5MmMzNTc5MjZlY2MwZjVkYTdmZWE5YWQ0NjNkYjM0OTc0Nzk5NmZhLi5kYzg1NzNkNjEwNDll
ZDJmZjVlM2Y1OTI4MDcyOGZkMmIyNGM2OWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL2VkaXRhYmxlLXJlZ2lvbi9vdXQtaGFuZ2luZy1jaGlsZC1vZi1jb250ZW50ZWRpdGFibGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9vdXQtaGFuZ2lu
Zy1jaGlsZC1vZi1jb250ZW50ZWRpdGFibGUuaHRtbApAQCAtMzQsNiArMzQsOCBAQAogPHNjcmlw
dD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
K2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykKICAgICByZXN1bHRz
LnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJu
YWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RS
RUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xsLXRl
eHQtZmllbGQtYW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xsLXRleHQtZmllbGQtYW5kLWNvbnRlbnRlZGl0
YWJsZS5odG1sCmluZGV4IGFkMjk0NTg1MTIxNzRmOTE0NDUxMWNmM2FlZTViY2M0YzhlYzE2OWEu
LjQ1OTY3MDBjMzA3NTBmYWNkNmQ3MzliYzM4ODRjZGFkM2QwM2IxZTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL292ZXJmbG93LXNjcm9sbC10ZXh0LWZp
ZWxkLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2Vk
aXRhYmxlLXJlZ2lvbi9vdmVyZmxvdy1zY3JvbGwtdGV4dC1maWVsZC1hbmQtY29udGVudGVkaXRh
YmxlLmh0bWwKQEAgLTI2LDYgKzI2LDggQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwog
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFs
cy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVT
X0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJf
UFJPUEVSVElFUyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Ny
b2xsZWQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZl
LWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbAppbmRleCAxOTdhZjMy
ZTlmYmQ1YWQyMmI1NjdjMGU2MWJmOTIyZmEwMzgzYjYxLi4wYjhhNjBiOTBhZTlkNDkyOGU0MmUw
NDU2MzFkOWUzM2U1ZGY2ZjhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtZml4ZWQtY29udGVudGVkaXRhYmxlLXNjcm9sbGVk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUt
aW5zaWRlLWZpeGVkLWNvbnRlbnRlZGl0YWJsZS1zY3JvbGxlZC5odG1sCkBAIC0xMCw2ICsxMCw4
IEBAIHdpbmRvdy5zY3JvbGxUbygwLCAxMDI0KTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5
ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVO
VF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BF
UlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtdHJhbnNmb3JtZWQtY29udGVudGVkaXRhYmxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUt
dHJhbnNmb3JtZWQtY29udGVudGVkaXRhYmxlLmh0bWwKaW5kZXggNTE5ZjI5OTk2YjA1MDE1OTg3
ZjYzMTcyMWE3NWZlZTVhNzEyZTBjMy4uNDdlNzFjZDc2MDAwZTEwNGVhZGY2OWY0OTQwZmNlNTc5
N2UxNmEzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
cmVsYXRpdmUtaW5zaWRlLXRyYW5zZm9ybWVkLWNvbnRlbnRlZGl0YWJsZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS10cmFuc2Zv
cm1lZC1jb250ZW50ZWRpdGFibGUuaHRtbApAQCAtMTksNiArMTksOCBAQAogPHNjcmlwdD4KIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykKICAgICByZXN1bHRzLnRleHRD
b250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxB
WUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5D
TFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2VhcmNoLWZpZWxkLWJhc2ljLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9zZWFyY2gtZmllbGQtYmFzaWMu
aHRtbAppbmRleCA2OTIzMTM3NDI0YTlmZjg0ZjA2NzA4OTNjYWViZTI0ZTQ1YTFjNjQxLi5lYjNk
ZmI5M2Q0Mzc0MGM2MjZkM2MwMmVmOTQ3OWM5YjU3MzNiOWM0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9zZWFyY2gtZmllbGQtYmFzaWMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9zZWFyY2gtZmllbGQtYmFzaWMu
aHRtbApAQCAtNiw2ICs2LDggQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCiAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXll
clRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5U
X1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVS
VElFUyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1i
YXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODgx
ZmU1ZDkwZjY1ZjUwODVkMTQzZDkxNmY5ODQ1MTRjNDMyYWYyMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0
aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKworKEdy
YXBoaWNzTGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAuMDApCisgIChib3VuZHMgODAwLjAwIDYwMC4w
MCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAu
MDAgNjAwLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAoYmFja2dyb3VuZENvbG9yICNGRkZGRkYpCisgICAgKQorICApCispCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQt
YmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zYmJiMDFlN2ZmNWE1OGNlZDRmMmI1NGQ0OGNjZWNmYzcwNDNhNTI3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
dGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEs
MTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxpbnB1dCB0eXBlPSJ0ZXh0
Ij4KKzxwcmUgaWQ9InJlc3VsdHMiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7
CitpZiAod2luZG93LmludGVybmFscykgeworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
YWJsZVJlZ2lvbkVuYWJsZWQoZmFsc2UpOworICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRl
cm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNM
VURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xB
WUVSX1BST1BFUlRJRVMpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2lj
Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJh
c2ljLmh0bWwKaW5kZXggODRhODAxOWUyNWIyZTI0MzQxZDljYWFkYmY0OTdiOTcyNzBlMjg2YS4u
YjJjMDNjZDkxNDA5ODU1NzU3NDkyYmYzNzQ5NGNjNTBmYzQyNmQxNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMu
aHRtbApAQCAtNiw2ICs2LDggQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCiAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXll
clRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5U
X1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVS
VElFUyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUtei1pbmRleC1s
YXllci5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVs
ZC1pbnNpZGUtY29tcG9zaXRlZC1uZWdhdGl2ZS16LWluZGV4LWxheWVyLmh0bWwKaW5kZXggYjRl
NGQ4ZDdlNGU3NDVjZjM5NmE0ODMwNGM2MDEzZDkxZDA5NGQyMy4uMDFlMWUzYTY0MjM4YjgwNDky
MmUxZDc2MDU2MTRjYjBjNGZiM2QwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1pbnNpZGUtY29tcG9zaXRlZC1uZWdhdGl2ZS16LWlu
ZGV4LWxheWVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
dGV4dC1maWVsZC1pbnNpZGUtY29tcG9zaXRlZC1uZWdhdGl2ZS16LWluZGV4LWxheWVyLmh0bWwK
QEAgLTE4LDYgKzE4LDggQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCiAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JF
R0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElF
Uyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL3RleHRhcmVhLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sCmluZGV4IDFhMTg5YTk2YWQwMTcwYjczMmI4MDk2
OTA3Y2Y5OGExZjJhNmE1ZDEuLjY5ZmU3NjI1N2RhYzIyMTBmZjU3YjJlZDljMzAwMzMyNTc0Zjc4
NTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHRh
cmVhLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
dGV4dGFyZWEtYmFzaWMuaHRtbApAQCAtNiw2ICs2LDggQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93
LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVk
KHRydWUpOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9
IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVF
X0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JP
T1RfTEFZRVJfUFJPUEVSVElFUyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVkLW9uLXRvcC1vZi1m
aXhlZC1jb250ZW50ZWRpdGFibGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi90cmFuc2Zvcm1lZC1zY3JvbGxlZC1vbi10b3Atb2YtZml4ZWQtY29udGVudGVkaXRh
Ymxlcy5odG1sCmluZGV4IGJiYzdmZjk5ZGVmMTMxZjEzZWRjMzJlM2IyY2I2NzcxYWE5NDE2ZGIu
LmZjM2FhZDlmZDljMmY2YzEzZWQxNDg3ZWJlY2JjZmIxNWVmMjIwYzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVkLW9u
LXRvcC1vZi1maXhlZC1jb250ZW50ZWRpdGFibGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vdHJhbnNmb3JtZWQtc2Nyb2xsZWQtb24tdG9wLW9mLWZpeGVk
LWNvbnRlbnRlZGl0YWJsZXMuaHRtbApAQCAtMjEsNiArMjEsOCBAQAogd2luZG93LnNjcm9sbFRv
KDAsIDEyMCk7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAg
cmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQs
IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5M
QVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7CiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403018</attachid>
            <date>2020-06-28 18:01:51 -0700</date>
            <delta_ts>2020-06-28 18:06:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213659-20200628180151.patch</filename>
            <type>text/plain</type>
            <size>53605</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZlYzIxNjc5Y2U3OTAz
NTgwNWI4MmZkNjhhNTQzMzFiOWVlNWVlZS4uYTIxNDdiNGMwMjYwNzIxNzJhMjA4NDJjOWM4NjVi
ZmU1Zjg5YjVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIwLTA2LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIHNsb3dkb3duIGJ5IGFkZGluZyBhIHJ1bnRpbWUgc3dpdGNoIHRvIGVuYWJs
ZSBlZGl0YWJsZSByZWdpb24gY29tcHV0YXRpb24gYW5kCisgICAgICAgIGRpc2FibGUgaXQgYnkg
ZGVmYXVsdC4gVGhlIFVJIHByb2Nlc3Mgd2lsbCBmbGlwIHRoZSBzd2l0Y2ggb24gdGhlIGZpcnN0
IGludm9jYXRpb24gb2YKKyAgICAgICAgLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Qu
CisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwYXJ0cyB0aGF0IG1ha2UgY29tcHV0aW5nIHRoZSBl
ZGl0YWJsZSByZWdpb24gZXhwZW5zaXZlOgorICAgICAgICAgICAgICAgIDEuIFJlcXVpcmVzIHRy
YXZlcnNpbmcgZGVzY2VuZGVudHMgZHVyaW5nIHBhaW50aW5nIHdoZW4gYSBub3JtYWwgcGFpbnQg
bWF5IGJlCisgICAgICAgICAgICAgICAgICAgYWJsZSB0byBhdm9pZCB0aGlzLgorICAgICAgICAg
ICAgICAgIDIuIENhbiBjYXVzZSBtb3JlIGV2ZW50IHJlZ2lvbiBpbnZhbGlkYXRpb25zIGJlY2F1
c2UgaXQgZXh0ZW5kcyB0aGUgaW52YWxpZGF0aW9uCisgICAgICAgICAgICAgICAgICAgY3JpdGVy
aW9uIHRvIGluY2x1ZGUgY2hhbmdlcyB0byBlbGVtZW50IGVkaXRhYmlsaXR5LgorCisgICAgICAg
IFVzaW5nIGEgcnVudGltZSBzd2l0Y2ggYXZvaWRzIHBheWluZyB0aGVzZSBjb3N0cyB1bnRpbCB0
aGUgZmVhdHVyZSBpcyBuZWVkZWQuCisKKyAgICAgICAgVGVzdHM6IGVkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAg
ICAgICAgICAgIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxl
LXJlZ2lvbi5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0
LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKworICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmludmFsaWRhdGVDb250ZW50
RXZlbnRSZWdpb25zSWZOZWVkZWQpOiBDaGVjayBpZiBlZGl0YWJsZSByZWdpb24gaXMgZW5hYmxl
ZC4KKyAgICAgICAgSWYgaXQgaXMgdGhlbiBkbyB3aGF0IHdlIGRvIG5vdy4gT3RoZXJ3aXNlLCBk
b24ndCBpbnZhbGlkYXRlIHRoZSByZWdpb24gdW5sZXNzIHdlIHdlcmUgZ29pbmcKKyAgICAgICAg
dG8gZG8gc28gYW55d2F5LgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQpOiBBZGRlZC4gVXBkYXRlIHN0YXRl
IGFuZCB0aGVuIGludmFsaWRhdGUKKyAgICAgICAgdGhlIGV2ZW50IHJlZ2lvbiBpbiBhbGwgbGF5
ZXJzLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
RXZlbnRSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnVuaXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp0cmFuc2xhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRSZWdpb246OmNvbnRhaW5zRWRpdGFibGVFbGVtZW50c0luUmVjdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZHVtcCBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL0V2ZW50UmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6
ZW5zdXJlRWRpdGFibGVSZWdpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVn
aW9uOjpoYXNFZGl0YWJsZVJlZ2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRSZWdpb246OnJlY3RzRm9yRWRpdGFibGVFbGVtZW50cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZGVjb2RlKToKKyAgICAgICAgVGhlIGVkaXRhYmxlIHJlZ2lv
biBpcyBub3cgYW4gT3B0aW9uYWw8Pi4gVGhlcmUgd2lsbCBvbmx5IGJlIG9uZSBpZiBlbnN1cmVF
ZGl0YWJsZVJlZ2lvbgorICAgICAgICB3YXMgY2FsbGVkLCB3aGljaCBpcyBvbmx5IHdoZW4gUGFn
ZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSByZXR1cm5zIHRydWUuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpt
YWludGFpbnNFdmVudFJlZ2lvbiBjb25zdCk6CisgICAgICAgIE9ubHkgZG8gd2hhdCB3ZSBkbyBu
b3cgaWYgUGFnZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSByZXR1cm5zIHRydWUuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRXZlbnRSZWdpb24pOiBD
YWxsIGVuc3VyZUVkaXRhYmxlUmVnaW9uIGlmIFBhZ2U6OmlzRWRpdGFibGVSZWdpb25FbmFibGVk
KCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFwcGx5
VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JB
bGxMYXllcnMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6Y2xlYXJCYWNraW5nRm9yQWxsTGF5ZXJzKTogV3JvdGUgaW4gdGVybXMgb2YgYXBwbHlUb0Nv
bXBvc2l0ZWRMYXllckluY2x1ZGluZ0Rlc2NlbmRhbnRzLgorCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFyQmFja2luZ0ZvckxheWVySW5jbHVkaW5nRGVzY2Vu
ZGFudHMpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgIEFkZCBhIG5ldyBpbnRlcm5hbCBzZXR0
aW5nIGZvciB0ZXN0aW5nIHB1cnBvc2VzIHRvIHRvZ2dsZSBlbmFibGluZy9kaXNhYmxpbmcgZWRp
dGFibGUgcmVnaW9uLgorCiAyMDIwLTA2LTI4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBBZGp1c3QgdGFibGUgY29udGVudCB2ZXJ0aWNhbCBw
b3NpdGlvbiB0byBtYXRjaCB2ZXJ0aWNhbC1hbGlnbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZjEzM2ZjMmNlMmQ4
Zjk3YjQwNjJkNDQzMjc5ZDgxZTE4ZDEwNGY5Li5hMTdkMzA1YmY1NmMwMjc2OTc5OTA4OWJlZjNj
OWEzYmY5MThmYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA2LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdXAgUmVtb3RlTGF5ZXJUcmVlVmlld3Mgbm93IHRoYXQgdGhlIGVkaXRhYmxlIHJl
Z2lvbiBpcyBhbiBPcHRpb25hbDw+LiBIYXZlCisgICAgICAgIHRoZSBVSSBwcm9jZXNzIG1lc3Nh
Z2UgdGhlIHdlYiBwcm9jZXNzIHRvIGVuYWJsZSBlZGl0YWJsZSByZWdpb24gb24gdGhlIGZpcnN0
CisgICAgICAgIGludm9jYXRpb24gb2YgX3JlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdCwg
d2hpY2ggaXMgZ29vZCBpbmRpY2F0b3IgdGhhdCB0aGVyZQorICAgICAgICB3b3VsZCBiZSBiZW5l
Zml0IHRvIGNvbXB1dGluZyBpdCBhcyBhIHR5cGljYWwgY2xpZW50IHRoYXQgY2FsbHMgaXQgd2ls
bCBjYWxsIGl0CisgICAgICAgIG1hbnkgdGltZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbToKKyAgICAgICAgKFdlYktp
dDo6bWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3QpOiBGaXggdXAgdGhlIGxvZ2ljIG5v
dyB0aGF0IHRoZXJlIG1heQorICAgICAgICBiZSBub3QgYmUgYW4gZWRpdGFibGUgcmVnaW9uIHNl
bnQgb3ZlciBpbiB0aGUgbGFzdCBldmVudCByZWdpb24gdXBkYXRlLiBJZiB0aGVyZQorICAgICAg
ICBpc24ndCBvbmUgdGhlbiB3ZSBkb24ndCBrbm93IGlmIHRoZXJlIGFyZSBlZGl0YWJsZSBlbGVt
ZW50cyBpcyBpbiB0aGUgcmVjdCBvZiBub3QuCisgICAgICAgIFNvLCBqdXN0IHJldHVybiB0cnVl
OiB0aGVyZSBtYXkgYmUgZWRpdGFibGUgZWxlbWVudHMgaW4gdGhlIHJlY3QuIFRoZSBjYWxsZXIg
d2lsbAorICAgICAgICBoYXZlIHRvIG1lc3NhZ2UgdGhlIHdlYiBwcm9jZXNzIHRvIGZpbmQgb3V0
IHRoZSByZWFsIGFuc3dlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lXSk6CisgICAgICAgIEFkZGVkIGEg
bmV3IGl2YXIgdG8gdHJhY2sgaW4gdGhlIFVJIHByb2Nlc3Mgd2hldGhlciBpdCBhbHJlYWR5IHJl
cXVlc3RlZCB0aGUgd2ViCisgICAgICAgIHByb2Nlc3MgdG8gZW5hYmxlIHRoZSBlZGl0YWJsZSBy
ZWdpb24uIFRoZSB3ZWIgcHJvY2VzcyBjYW5ub3QgZGVueSB0aGUgcmVxdWVzdCBzbworICAgICAg
ICBpdCByZXByZXNlbnRzIHdoZXRoZXIgdGhlIGZlYXR1cmUgd2FzIGVuYWJsZWQgb3Igbm90IGZy
b20gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVxdWVzdFRl
eHRJbnB1dENvbnRleHRzSW5SZWN0OmNvbXBsZXRpb25IYW5kbGVyOl0pOiBJZiBlZGl0YWJsZQor
ICAgICAgICByZWdpb24gaXMgbm90IGVuYWJsZSB0aGVuIGRvIHNvIG5vdy4KKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOiBBZGQgYSBuZXcgbWVzc2FnZS4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVkLgorCiAyMDIwLTA2LTI4ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRocmVhZC1zYWZldHkgaXNz
dWUgaW4gd2ViUHJvY2Vzc1Bvb2xIaWdoRHluYW1pY1JhbmdlRGlkQ2hhbmdlQ2FsbGJhY2soKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBkMDRmYTBjMzllMGViOWE4M2NjZDg2NGU0MmFlMzA0MmI5
OTI4MzA4Li40MTgxMjQ5ZTdjMjlkN2U1NzhkZmJjZGY4YzZmOTljMDU2OWQ0YmI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgRnJhbWU6OmludmFsaWRhdGVD
b250ZW50RXZlbnRSZWdpb25zSWZOZWVkZWQoKQogICAgIGhhc1RvdWNoQWN0aW9uRWxlbWVudHMg
PSBtX2RvYy0+bWF5SGF2ZUVsZW1lbnRzV2l0aE5vbkF1dG9Ub3VjaEFjdGlvbigpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBoYXNFZGl0YWJsZUVsZW1lbnRzID0g
bV9kb2MtPm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CisgICAgaGFzRWRpdGFibGVFbGVtZW50
cyA9IG1fcGFnZS0+aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSAmJiBtX2RvYy0+bWF5SGF2ZUVk
aXRhYmxlRWxlbWVudHMoKTsKICNlbmRpZgogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGxv
b2sgYXQgd2hlZWwgZXZlbnQgaGFuZGxlcnMgdG9vLgogICAgIGlmICghaGFzVG91Y2hBY3Rpb25F
bGVtZW50cyAmJiAhaGFzRWRpdGFibGVFbGVtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDE0
Njc5MTZiMGIxOWVjNzI2N2M3ZDhiZDg1ZGJkZmQwZmQyZGJkYTUuLjk3MjQ1YWNjMTFlOWY5MTBj
ODZjOWEwYjgzNzM4NzE3MTMxYjMzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTIwLDYgKzky
MCwyMiBAQCB2b2lkIFBhZ2U6OnVubWFya0FsbFRleHRNYXRjaGVzKCkKICAgICB9KTsKIH0KIAor
I2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKK3ZvaWQgUGFnZTo6c2V0RWRpdGFibGVSZWdp
b25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAobV9pc0VkaXRhYmxlUmVnaW9uRW5h
YmxlZCA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisgICAgbV9pc0VkaXRhYmxlUmVnaW9u
RW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgYXV0byBmcmFtZVZpZXcgPSBtYWtlUmVmUHRyKG1haW5G
cmFtZSgpLnZpZXcoKSk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsKKyAg
ICBpZiAoYXV0byogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVyVmlldygpKQorICAgICAg
ICByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuaW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5
ZXJzKCk7Cit9CisKKyNlbmRpZgorCiBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBQYWdlOjplZGl0YWJs
ZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2VhcmNoUmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcykgY29uc3QKIHsKICAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIobWFpbkZy
YW1lKCkudmlldygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYWMyMDY0NGJlMzkyNThkOTYwZTRjNDUz
OGY1MzJmNzZiNTI3MmY1My4uMGFmY2NlZmJjMGNjN2ZmMjRjMTdhNWQ4YzhiMDg1MTA5ZTlmMjRj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTc0Miw2ICs3NDIsMTEgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmLCBXVEZMb2dDaGFubmVsU3Rh
dGUsIFdURkxvZ0xldmVsKTsKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgYm9v
bCBpc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFZGl0YWJsZVJl
Z2lvbkVuYWJsZWQ7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVkaXRhYmxlUmVnaW9u
RW5hYmxlZChib29sKTsKKyNlbmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxF
bGVtZW50Pj4gZWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsK
IAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkp
CkBAIC0xMDAzLDYgKzEwMDgsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzUmVzb3VyY2VM
b2FkQ2xpZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1fZGVsZWdhdGVzU2NhbGluZyB7IGZhbHNl
IH07CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIGJvb2wgbV9pc0VkaXRhYmxl
UmVnaW9uRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIFVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24gbV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHsgVXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbjo6TFRSIH07CiAgICAgCiAgICAgLy8gRm9yIHRlc3RpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcAppbmRleCA2M2NiMjNkN2ZlOWQwN2Q0
Yjg0ZWQ0YTE4MmY4ZGMxZTJiOWY0MzMxLi44NzM5NGVkNjM5OTAzZTIyZmJlM2JlNjc4MmM0N2Ni
ZWQ1OWIzNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKQEAg
LTEzMCw4ICsxMzAsOCBAQCB2b2lkIEV2ZW50UmVnaW9uOjp1bml0ZShjb25zdCBSZWdpb24mIHJl
Z2lvbiwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBib29sIG92ZQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIGlmIChvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRh
YmxlIHx8IHN0eWxlLnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25seSkKLSAgICAg
ICAgbV9lZGl0YWJsZVJlZ2lvbi51bml0ZShyZWdpb24pOworICAgIGlmIChtX2VkaXRhYmxlUmVn
aW9uICYmIChvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxlLnVzZXJNb2RpZnko
KSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25seSkpCisgICAgICAgIG1fZWRpdGFibGVSZWdpb24tPnVu
aXRlKHJlZ2lvbik7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvdmVycmlkZVVzZXJNb2RpZnlJ
c0VkaXRhYmxlKTsKICNlbmRpZgpAQCAtMTU2LDcgKzE1Niw4IEBAIHZvaWQgRXZlbnRSZWdpb246
OnRyYW5zbGF0ZShjb25zdCBJbnRTaXplJiBvZmZzZXQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShF
RElUQUJMRV9SRUdJT04pCi0gICAgbV9lZGl0YWJsZVJlZ2lvbi50cmFuc2xhdGUob2Zmc2V0KTsK
KyAgICBpZiAobV9lZGl0YWJsZVJlZ2lvbikKKyAgICAgICAgbV9lZGl0YWJsZVJlZ2lvbi0+dHJh
bnNsYXRlKG9mZnNldCk7CiAjZW5kaWYKIH0KIApAQCAtMjgzLDEwICsyODQsMTIgQEAgY29uc3Qg
UmVnaW9uJiBFdmVudFJlZ2lvbjo6ZXZlbnRMaXN0ZW5lclJlZ2lvbkZvclR5cGUoRXZlbnRMaXN0
ZW5lclJlZ2lvblR5cGUgdHkKICNlbmRpZiAvLyBFTkFCTEUoV0hFRUxfRVZFTlRfUkVHSU9OUykK
IAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKIGJvb2wgRXZlbnRSZWdpb246OmNvbnRh
aW5zRWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogewot
ICAgIHJldHVybiBtX2VkaXRhYmxlUmVnaW9uLmludGVyc2VjdHMocmVjdCk7CisgICAgcmV0dXJu
IG1fZWRpdGFibGVSZWdpb24gJiYgbV9lZGl0YWJsZVJlZ2lvbi0+aW50ZXJzZWN0cyhyZWN0KTsK
IH0KKwogI2VuZGlmCiAKIHZvaWQgRXZlbnRSZWdpb246OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNv
bnN0CkBAIC0zMjIsOCArMzI1LDggQEAgdm9pZCBFdmVudFJlZ2lvbjo6ZHVtcChUZXh0U3RyZWFt
JiB0cykgY29uc3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBp
ZiAoIW1fZWRpdGFibGVSZWdpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRzIDw8IGluZGVudCA8
PCAiKGVkaXRhYmxlIHJlZ2lvbiIgPDwgbV9lZGl0YWJsZVJlZ2lvbjsKKyAgICBpZiAobV9lZGl0
YWJsZVJlZ2lvbiAmJiAhbV9lZGl0YWJsZVJlZ2lvbi0+aXNFbXB0eSgpKSB7CisgICAgICAgIHRz
IDw8IGluZGVudCA8PCAiKGVkaXRhYmxlIHJlZ2lvbiIgPDwgKm1fZWRpdGFibGVSZWdpb247CiAg
ICAgICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKaW5kZXggNTAxMjQzZTA0OGI5ODRlNmIwNjZkYTk0YjU4
MjUyOGZkNWRkZWU4Mi4uNmM0ZmFlNjMzNzI1YjdlNmU4YmZkOWRlYTk4NTkxNWM4MTBjOTVmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKQEAgLTg3LDggKzg3LDEwIEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICB2b2lk
IGVuc3VyZUVkaXRhYmxlUmVnaW9uKCk7CisgICAgYm9vbCBoYXNFZGl0YWJsZVJlZ2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24uaGFzVmFsdWUoKTsgfQogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgY29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJlY3Qm
KSBjb25zdDsKLSAgICBWZWN0b3I8SW50UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRz
KCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbi5yZWN0cygpOyB9CisgICAgVmVjdG9y
PEludFJlY3QsIDE+IHJlY3RzRm9yRWRpdGFibGVFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1f
ZWRpdGFibGVSZWdpb24gPyBtX2VkaXRhYmxlUmVnaW9uLT5yZWN0cygpIDogVmVjdG9yPEludFJl
Y3QsIDE+IHsgfTsgfQogI2VuZGlmCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CkBAIC0xMTMsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWdpb24gbV9ub25QYXNzaXZlV2hlZWxFdmVudExpc3RlbmVyUmVnaW9uOwogI2VuZGlmCiAj
aWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBSZWdpb24gbV9lZGl0YWJsZVJlZ2lvbjsK
KyAgICBPcHRpb25hbDxSZWdpb24+IG1fZWRpdGFibGVSZWdpb247CiAjZW5kaWYKIH07CiAKQEAg
LTE1Miw3ICsxNTQsNyBAQCBPcHRpb25hbDxFdmVudFJlZ2lvbj4gRXZlbnRSZWdpb246OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9O
KQotICAgIE9wdGlvbmFsPFJlZ2lvbj4gZWRpdGFibGVSZWdpb247CisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8UmVnaW9uPj4gZWRpdGFibGVSZWdpb247CiAgICAgZGVjb2RlciA+PiBlZGl0YWJsZVJl
Z2lvbjsKICAgICBpZiAoIWVkaXRhYmxlUmVnaW9uKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwpAQCAtMTczLDQgKzE3NSwxNCBAQCBib29sIEV2ZW50UmVnaW9uOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgRXZlbnRSZWdpb24mIGV2ZW50UmVnaW9uKQogICAgIHJldHVybiB0cnVlOwog
fQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKworaW5saW5lIHZvaWQgRXZlbnRSZWdp
b246OmVuc3VyZUVkaXRhYmxlUmVnaW9uKCkKK3sKKyAgICBpZiAoIW1fZWRpdGFibGVSZWdpb24p
CisgICAgICAgIG1fZWRpdGFibGVSZWdpb24uZW1wbGFjZSgpOworfQorCisjZW5kaWYKKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZjVmNGUzNmFkM2Vk
NmVjYzZkMGZiNzhiNGE3MTZlYWU4M2M4NDdkZi4uOTZkZGUzYTE0ZDk2ZmFhZTg3Y2ZhODE0ZDM3
ZGZlOWMwMDBkMjE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CkBAIC0xMjYzLDcgKzEyNjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgICAgICAv
LyBXZSB0cmVhdCB0aGUgZW50aXJlIHRleHQgY29udHJvbCBhcyBlZGl0YWJsZSB0byBtYXRjaCB1
c2VycycgZXhwZWN0YXRpb24gZXZlbgogICAgICAgICAvLyB0aG91Z2ggaXQncyBhY3R1YWxseSB0
aGUgaW5uZXIgdGV4dCBlbGVtZW50IG9mIHRoZSBjb250cm9sIHRoYXQgaXMgZWRpdGFibGUuCiAg
ICAgICAgIC8vIFNvLCBubyBuZWVkIHRvIHRyYXZlcnNlIHRvIGZpbmQgdGhlIGlubmVyIHRleHQg
ZWxlbWVudCBpbiB0aGlzIGNhc2UuCi0gICAgICAgIGlmICghaXNUZXh0Q29udHJvbCgpKQorICAg
ICAgICBpZiAocGFnZSgpLmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgIWlzVGV4dENvbnRy
b2woKSkKICAgICAgICAgICAgIG5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cyB8PSBkb2N1bWVudCgp
Lm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CiAjZW5kaWYKICAgICAgICAgaWYgKCFuZWVkc1Ry
YXZlcnNlRGVzY2VuZGFudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAKaW5kZXggN2Q2OGNkYjMxOTEyMTZlMzY3Zjk4NjZmNzljOGQ4YjE4ODAyNDRhYS4uMzhi
YzExNzNhMzc2NmY3ZDkxNDc3ZTY5MDczZTQxYmJiNzM2NzJlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtNzQ2LDEwICs3NDYsMTIgQEAgdm9pZCBS
ZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgICAgIGlmIChtX3N0eWxlLmV2ZW50TGlzdGVuZXJS
ZWdpb25UeXBlcygpICE9IG5ld1N0eWxlLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygpKQogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0g
ICAgICAgICAgICBib29sIHdhc0VkaXRhYmxlID0gbV9zdHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNl
ck1vZGlmeTo6UmVhZE9ubHk7Ci0gICAgICAgICAgICBib29sIGlzRWRpdGFibGUgPSBuZXdTdHls
ZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7Ci0gICAgICAgICAgICBpZiAo
d2FzRWRpdGFibGUgIT0gaXNFZGl0YWJsZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgIGlmIChwYWdlKCkuaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSkgeworICAg
ICAgICAgICAgICAgIGJvb2wgd2FzRWRpdGFibGUgPSBtX3N0eWxlLnVzZXJNb2RpZnkoKSAhPSBV
c2VyTW9kaWZ5OjpSZWFkT25seTsKKyAgICAgICAgICAgICAgICBib29sIGlzRWRpdGFibGUgPSBu
ZXdTdHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7CisgICAgICAgICAg
ICAgICAgaWYgKHdhc0VkaXRhYmxlICE9IGlzRWRpdGFibGUpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmlu
ZGV4IDAzZWI2MWRkYjExYmU4NGIwZmE5NWFmMGIxMGE1ZWQ5MGYwOWUzYTkuLjQ3MzVkYWI4MzBk
MTkyYTRkMDM3MzU0MTllYWE4OWQ5YWIxN2M1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCkBAIC05MjcsNyArOTI3LDcgQEAgcHVibGljOgogCiAgICAgLy8gSW52YWxp
ZGF0aW9uIGNhbiBmYWlsIGlmIHRoZXJlIGlzIG5vIGVuY2xvc2luZyBjb21wb3NpdGluZyBsYXll
ciAoZS5nLiBuZXN0ZWQgaWZyYW1lKQogICAgIC8vIG9yIHRoZSBsYXllciBkb2VzIG5vdCBtYWlu
dGFpbiBhbiBldmVudCByZWdpb24uCi0gICAgZW51bSBjbGFzcyBFdmVudFJlZ2lvbkludmFsaWRh
dGlvblJlYXNvbiB7IFBhaW50LCBTdHlsZSwgTm9uQ29tcG9zaXRlZEZyYW1lIH07CisgICAgZW51
bSBjbGFzcyBFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbiB7IFBhaW50LCBTZXR0aW5nRGlk
Q2hhbmdlLCBTdHlsZSwgTm9uQ29tcG9zaXRlZEZyYW1lIH07CiAgICAgYm9vbCBpbnZhbGlkYXRl
RXZlbnRSZWdpb24oRXZlbnRSZWdpb25JbnZhbGlkYXRpb25SZWFzb24pOwogCiAgICAgU3RyaW5n
IGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMjM3NmI2MjBlMTc1ZmJhOThlYWVm
NjQyYmRhNWVmOWFhMmY3M2Q5OS4uMzZjMTIyOWMwZGJlMjkwNGJmMTYxNTBhNzk0Y2U5NTJkOGMz
YTFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKQEAgLTE3MDgsNyArMTcwOCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjptYWlu
dGFpbnNFdmVudFJlZ2lvbigpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAj
aWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgp
Lm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCkpCisgICAgaWYgKHJlbmRlcmVyKCkucGFnZSgpLmlz
RWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgcmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhhdmVF
ZGl0YWJsZUVsZW1lbnRzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAjaWYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCkBAIC0xNzM1LDYgKzE3MzUsMTAgQEAgdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKCkKICAgICBhdXRvIHVwZGF0ZUV2ZW50UmVnaW9u
Rm9yTGF5ZXIgPSBbJl0oR3JhcGhpY3NMYXllciYgZ3JhcGhpY3NMYXllcikgewogICAgICAgICBH
cmFwaGljc0NvbnRleHQgbnVsbENvbnRleHQobnVsbHB0cik7CiAgICAgICAgIEV2ZW50UmVnaW9u
IGV2ZW50UmVnaW9uOworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgICAgIGlmIChy
ZW5kZXJlcigpLnBhZ2UoKS5pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpKQorICAgICAgICAgICAg
ZXZlbnRSZWdpb24uZW5zdXJlRWRpdGFibGVSZWdpb24oKTsKKyNlbmRpZgogICAgICAgICBhdXRv
IGV2ZW50UmVnaW9uQ29udGV4dCA9IGV2ZW50UmVnaW9uLm1ha2VDb250ZXh0KCk7CiAgICAgICAg
IGF1dG8gbGF5ZXJPZmZzZXQgPSBncmFwaGljc0xheWVyLnNjcm9sbE9mZnNldCgpIC0gcm91bmRl
ZEludFNpemUoZ3JhcGhpY3NMYXllci5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXgg
M2VmMWNmZWM2YTM0MjQxNDUyYWUyYWExM2ZjNGFiZjI3M2ZmYzAyMi4uZTU4ZTFmNjJlYmU4YmY2
MGNkZTdmYmVhYzg2NjU2NWE1MjAzZThjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjM1NywxOCArMjM1NywyNSBA
QCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5k
b3cpCiAgICAgfQogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2xlYXJCYWNraW5n
Rm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYgbGF5ZXIpCit0ZW1wbGF0
ZTx0eXBlbmFtZSBBcHBseUZ1bmN0aW9uVHlwZT4KK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjphcHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoUmVuZGVyTGF5ZXIm
IGxheWVyLCBjb25zdCBBcHBseUZ1bmN0aW9uVHlwZSYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKGxh
eWVyLmlzQ29tcG9zaXRlZCgpKQotICAgICAgICBsYXllci5jbGVhckJhY2tpbmcoKTsKLQorICAg
ICAgICBmdW5jdGlvbihsYXllcik7CiAgICAgZm9yIChhdXRvKiBjaGlsZExheWVyID0gbGF5ZXIu
Zmlyc3RDaGlsZCgpOyBjaGlsZExheWVyOyBjaGlsZExheWVyID0gY2hpbGRMYXllci0+bmV4dFNp
YmxpbmcoKSkKLSAgICAgICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50
cygqY2hpbGRMYXllcik7CisgICAgICAgIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdE
ZXNjZW5kYW50cygqY2hpbGRMYXllciwgZnVuY3Rpb24pOworfQorCit2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKCkKK3sKKyAgICBh
cHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoKm1fcmVuZGVyVmlldy5s
YXllcigpLCBbXShhdXRvJiBsYXllcikgeworICAgICAgICBsYXllci5pbnZhbGlkYXRlRXZlbnRS
ZWdpb24oUmVuZGVyTGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5n
RGlkQ2hhbmdlKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNs
ZWFyQmFja2luZ0ZvckFsbExheWVycygpCiB7Ci0gICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNs
dWRpbmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCkpOworICAgIGFwcGx5VG9Db21w
b3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCksIFtd
KGF1dG8mIGxheWVyKSB7IGxheWVyLmNsZWFyQmFja2luZygpOyB9KTsKIH0KIAogdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0MmRlM2Jl
MGRiOTMzYTNmODU5NjY4NGFhYWRmYzVjODdkYzdhYmU4Li4wMDczN2JjODI0MjQzZTc2ZTg0ZWNm
NzJiYzUzZTU4ZjFlNmUxNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yODIsNiArMjgyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0SXNJbldpbmRvdyhib29sKTsKIAogICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yQWxsTGF5
ZXJzKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKICAg
ICAKICAgICB2b2lkIGxheWVyQmVjYW1lQ29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYpOwog
ICAgIHZvaWQgbGF5ZXJCZWNhbWVOb25Db21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJik7CkBA
IC00MTcsNyArNDE4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUJhY2tpbmcoUmVuZGVy
TGF5ZXImLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3RhdGUqID0g
bnVsbHB0ciwgQmFja2luZ1JlcXVpcmVkID0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKTsKICAg
ICBib29sIHVwZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZShSZW5kZXJMYXllciYsIGNvbnN0IFJl
bmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYs
IEJhY2tpbmdTaGFyaW5nU3RhdGUmKTsKIAotICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yTGF5ZXJJ
bmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEFwcGx5RnVuY3Rpb25UeXBlPiB2b2lkIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdE
ZXNjZW5kYW50cyhSZW5kZXJMYXllciYsIGNvbnN0IEFwcGx5RnVuY3Rpb25UeXBlJik7CiAKICAg
ICAvLyBSZXBhaW50IHRoaXMgYW5kIGl0cyBjaGlsZCBsYXllcnMuCiAgICAgdm9pZCByZWN1cnNp
dmVSZXBhaW50TGF5ZXIoUmVuZGVyTGF5ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGJiYmI0YTQwMGIyN2ZkOTk5ZmI3YWYwZjM5MTk4NjI3
M2RhNGE3ZmEuLjQ2MTUxNjM0YmViMDQwZmFiMTM0MGFmYjBmM2RmZGJjMzgxMjZhNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNDQxLDYgKzQ0
MSwxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3Np
emluZ1VzZXNJZGVtcG90ZW50TW9kZShib29sIGVuYQogICAgIHJldHVybiB7IH07CiB9CiAKK0V4
Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxl
ZChib29sIGVuYWJsZWQpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9O
KQorICAgIG1fcGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKKyAgICByZXR1cm4geyB9OworfQor
CiBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRNZWRpYVR5cGVPdmVycmlk
ZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggYTFiOTcwOTRiN2UwYjFlNGRh
NjQyODcwOWIxZWNhZGUwZGM1NDc0YS4uNDc4NWU2ODE0YTFmODVkYWYxODRmYWMxMjAxMDA0Y2Yz
YjIzN2VhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAg
LTEwOSw2ICsxMDksOCBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBGcmFtZUZsYXR0ZW5pbmdWYWx1
ZSA9IEZyYW1lRmxhdHRlbmluZzsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGcmFtZUZsYXR0
ZW5pbmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUpOworCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wpOwogICAgIAogICAgIHN0YXRpYyB2b2lkIHNldEFs
bG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCAzNjg4N2ZjNjE1NjVhMDQ4OWE2ZTUwYjYwNmVmODRk
YTE2MDBlNmU2Li5jMTVmM2JlNDcwOTE3Njg2ZmYyZDRjNDRhMjRiNThjZjk4Y2FlOWZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTEyMiw1ICsx
MjIsNyBAQCBlbnVtIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJG
YWlsdXJlIiB9OwogICAgIHZvaWQgc2V0U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29s
ZWFuIHNob3VsZERlYWN0aXZhdGUpOwogICAgIAogICAgIHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQ
SVBlclBhZ2VTY29wZUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKworICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gdm9pZCBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCmluZGV4IDUyYThhNzU2
YmI0OWRiZGE2NDE3ODQ0YmFlMWE2NGFlYzQ0NjgyMzUuLjY4YzBmYjBiNjUyZWI5NWRkZDkzOTZh
YThlMTliYzlkNjEwMTBlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5t
bQpAQCAtMTIwLDYgKzEyMCw3IEBAIGJvb2wgbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJl
Y3QoVUlWaWV3ICpyb290VmlldywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0CiAgICAgY29sbGVj
dERlc2NlbmRhbnRWaWV3c0luUmVjdCh2aWV3c0luUmVjdCwgcm9vdFZpZXcsIHJlY3QpOwogICAg
IGlmICh2aWV3c0luUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBi
b29sIHNhd0FuRWRpdGFibGVSZWdpb24gPSBmYWxzZTsKICAgICBmb3IgKGF1dG8gKnZpZXcgOiBX
VEY6Om1ha2VSZXZlcnNlZFJhbmdlKHZpZXdzSW5SZWN0KSkgewogICAgICAgICBpZiAoIVt2aWV3
IGlzS2luZE9mQ2xhc3M6V0tDb21wb3NpdGluZ1ZpZXcuY2xhc3NdKQogICAgICAgICAgICAgY29u
dGludWU7CkBAIC0xMjksMTAgKzEzMCwxNiBAQCBib29sIG1heUNvbnRhaW5FZGl0YWJsZUVsZW1l
bnRzSW5SZWN0KFVJVmlldyAqcm9vdFZpZXcsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdAogICAg
ICAgICBXZWJDb3JlOjpJbnRSZWN0IHJlY3RUb1Rlc3QgeyBbdmlldyBjb252ZXJ0UmVjdDpyZWN0
IGZyb21WaWV3OnJvb3RWaWV3XSB9OwogICAgICAgICBpZiAobm9kZS0+ZXZlbnRSZWdpb24oKS5j
b250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QocmVjdFRvVGVzdCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG5vZGUtPmV2ZW50UmVnaW9uKCkuY29udGFpbnMocmVj
dFRvVGVzdCkpCisgICAgICAgIGJvb2wgaGFzRWRpdGFibGVSZWdpb24gPSBub2RlLT5ldmVudFJl
Z2lvbigpLmhhc0VkaXRhYmxlUmVnaW9uKCk7CisgICAgICAgIGlmIChoYXNFZGl0YWJsZVJlZ2lv
biAmJiBub2RlLT5ldmVudFJlZ2lvbigpLmNvbnRhaW5zKHJlY3RUb1Rlc3QpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzYXdBbkVkaXRhYmxlUmVnaW9uIHw9IGhhc0VkaXRh
YmxlUmVnaW9uOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gSWYgd2UgZGlkbid0
IHNlZSBhbiBlZGl0YWJsZSByZWdpb24gdGhlbiB3ZSBkb24ndCBrbm93IHdoZXRoZXIgb3Igbm90
IHRoZXJlIGFyZQorICAgIC8vIGVkaXRhYmxlIGVsZW1lbnRzIGluIHRoZSByZWN0LiBXZSBvbmx5
IGtub3cgdGhhdCB0aGUgd2ViIHByb2Nlc3MgZGlkIG5vdCBkbyBhbgorICAgIC8vIGV2ZW50IHJl
Z2lvbiBwYWludCB0byBmaW5kIHRoZW0uIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGFzayB0aGUg
d2ViIHByb2Nlc3MgdG8KKyAgICAvLyBrbm93IGZvciBzdXJlLgorICAgIHJldHVybiAhc2F3QW5F
ZGl0YWJsZVJlZ2lvbjsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFlMTk1YmQ3ZTJmODI0MGQx
ZTdkODhjN2I3ZGUxNDIyYTRkYjkyOTYuLmUwYTU1ZGU4YzlkYjQxMDc4ODUzZjk0N2JiMzk3Mzg4
MGUyY2YwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03MjUs
NiArNzI1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdl
YkNvcmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYpOwogICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250
ZXh0QW5kUGxhY2VDYXJldChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyNp
ZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIHZvaWQgc2V0RWRpdGFibGVSZWdpb25FbmFi
bGVkKGJvb2wpOworI2VuZGlmCisKICAgICB2b2lkIHNldFNob3VsZFJldmVhbEN1cnJlbnRTZWxl
Y3Rpb25BZnRlckluc2VydGlvbihib29sKTsKICAgICAgICAgCiAgICAgdm9pZCBzZXRTY3JlZW5J
c0JlaW5nQ2FwdHVyZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggYmVlM2JlMDUyMGZjNmRkZDAz
MTg1OTE2ZTI1MDZmNmNiOTBlZTczMC4uYzY1NzZiZjFhNDljZjY2MTcyNWQ0OTY4YmNiNmJhMTQw
OWQzN2ZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzYxLDYgKzM2MSw5IEBAIHN0cnVjdCBXS0F1dG9D
b3JyZWN0aW9uRGF0YSB7CiAgICAgQk9PTCBfdGV4dEludGVyYWN0aW9uRGlkQ2hhbmdlRm9jdXNl
ZEVsZW1lbnQ7CiAgICAgQk9PTCBfdGV4dEludGVyYWN0aW9uSXNIYXBwZW5pbmc7CiAgICAgYm9v
bCBfaXNXYWl0aW5nT25Qb3NpdGlvbkluZm9ybWF0aW9uOworI2lmIEVOQUJMRShFRElUQUJMRV9S
RUdJT04pCisgICAgYm9vbCBfZWRpdGFibGVSZWdpb25FbmFibGVkOworI2VuZGlmCiAKICAgICBX
ZWJDb3JlOjpQb2ludGVySUQgbV9jb21taXRQb3RlbnRpYWxUYXBQb2ludGVySWQ7CiAKQEAgLTQ1
MCw2ICs0NTMsMTAgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzdHJvbmcpIE5TQXJyYXk8VUlUZXh0U3VnZ2VzdGlvbiAqPiAqZGF0YUxpc3RU
ZXh0U3VnZ2VzdGlvbnM7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0VkaXRhYmxlUmVnaW9uRW5h
YmxlZCkgQk9PTCBlZGl0YWJsZVJlZ2lvbkVuYWJsZWQ7CisjZW5kaWYKKwogLSAodm9pZClzZXRV
cEludGVyYWN0aW9uOwogLSAodm9pZCljbGVhblVwSW50ZXJhY3Rpb247CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDRhMzNjYzgxOThhZDg0M2Y3YTg3NjdhMDE0OTY5OGI4ZDdiZDdmNzguLmE3YjFmODkx
ZGNjNzU2OTM0M2RkZTBlNjNjM2Q3ZDc5NzEwMmJjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTM0
LDYgKzkzNCwxMCBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIF9zZWVuSGFyZHdh
cmVLZXlEb3duSW5Ob25FZGl0YWJsZUVsZW1lbnQgPSBOTzsKICNlbmRpZgogCisjaWYgRU5BQkxF
KEVESVRBQkxFX1JFR0lPTikKKyAgICBfZWRpdGFibGVSZWdpb25FbmFibGVkID0gTk87CisjZW5k
aWYKKwogICAgIF90ZXh0SW50ZXJhY3Rpb25EaWRDaGFuZ2VGb2N1c2VkRWxlbWVudCA9IE5POwog
ICAgIF90ZXh0SW50ZXJhY3Rpb25Jc0hhcHBlbmluZyA9IE5POwogCkBAIC00Mjk0LDYgKzQyOTgs
OSBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCiB7CiAjaWYgVVNFKFVJS0lU
X0tFWUJPQVJEX0FERElUSU9OUykKICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFi
bGVFbGVtZW50ID0gTk87CisjZW5kaWYKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAg
IF9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPSBOTzsKICNlbmRpZgogICAgIFtzZWxmIF9lbGVtZW50
RGlkQmx1cl07CiAgICAgW3NlbGYgX2NhbmNlbExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyXTsK
QEAgLTUxOTMsMTAgKzUyMDAsMzQgQEAgLSAodm9pZClfZm9jdXNUZXh0SW5wdXRDb250ZXh0Oihf
V0tUZXh0SW5wdXRDb250ZXh0ICopY29udGV4dCBwbGFjZUNhcmV0QXQ6KENHUG8KICAgICBfcGFn
ZS0+Zm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb250ZXh0Ll90ZXh0SW5wdXRD
b250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCB7IHBvaW50IH0sIFdURk1vdmUoY2hlY2tGb2N1c2Vk
RWxlbWVudCkpOwogfQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKworLSAoQk9PTClp
c0VkaXRhYmxlUmVnaW9uRW5hYmxlZAoreworICAgIHJldHVybiBfZWRpdGFibGVSZWdpb25FbmFi
bGVkOworfQorCistICh2b2lkKXNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZDooQk9PTCllbmFibGVk
Cit7CisgICAgaWYgKF9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICAgICAg
cmV0dXJuOworICAgIF9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPSBlbmFibGVkOworICAgIF9wYWdl
LT5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZW5hYmxlZCk7Cit9CisKKyNlbmRpZgorCiAtICh2
b2lkKV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdClyZWN0IGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKikpY29t
cGxldGlvbkhhbmRsZXIKIHsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc2VhcmNoUmVjdCB7IHJl
Y3QgfTsKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIC8vIENvbXB1dGluZyB0aGUg
ZWRpdGFibGUgcmVnaW9uIGlzIGEgYml0IGV4cGVuc2l2ZSBhbmQgY2FuIHNsb3cgZG93biBpbml0
aWFsIHBhZ2UgbG9hZCBzbyBpdCdzCisgICAgLy8gZG9uZSBieSB0aGUgd2ViIHByb2Nlc3MgbGF6
aWx5LiBXZSB0ZWxsIGl0IGRvIHNvIG5vdyBpZiB3ZSBoYXZlbid0IGFscmVhZHkgZG9uZSBzby4g
Tm90ZSB0aGF0CisgICAgLy8gdW50aWwgdGhlIFVJIHByb2Nlc3MgcmVjZWl2ZXMgaXQgbWF5Q29u
dGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3Qgd2lsbCByZXR1cm4gdHJ1ZS4gVGhpcyBpcyBPSwor
ICAgIC8vIGFuZCBqdXN0IG1lYW5zIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGxlc3MgZWZm
aWNpZW50IHRoYW4gaXQgY291bGQgYmUgaWYgdGhlIHJlY3QgaW50ZXJzZWN0cworICAgIC8vIG5v
dGhpbmcgaW4gdGhlIG1lYW50aW1lLgorICAgIHNlbGYuZWRpdGFibGVSZWdpb25FbmFibGVkID0g
WUVTOworCiAgICAgYm9vbCBoaXRJbnRlcmFjdGlvblJlY3QgPSBzZWxmLl9oYXNGb2N1c2VkRWxl
bWVudCAmJiBzZWFyY2hSZWN0LmluY2x1c2l2ZWx5SW50ZXJzZWN0cyhfZm9jdXNlZEVsZW1lbnRJ
bmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3QpOwogICAgIGlmICghc2VsZi53ZWJWaWV3Ll9lZGl0
YWJsZSAmJiAhaGl0SW50ZXJhY3Rpb25SZWN0ICYmICFXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJs
ZUVsZW1lbnRzSW5SZWN0KHNlbGYsIHJlY3QpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KEBbIF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KaW5kZXggMDUwOWNlY2RlNTI0NTdjZTc2YTU4N2M4YjZiNWY4NTBkNzUxMWYxZC4uYjg1YmY1
N2E2MjA1ZTE5YWRhZmUxYjU5NjVhZjFhYjExZDcwZTA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xNTcyLDYgKzE1NzIsMTcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29u
c3QgRWxlbWVudENvbnRleHQmIGNvbnQKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2U6OkZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29udGV4dCwgcG9p
bnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVk
KGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQp
KTsKK30KKworI2VuZGlmCisKKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldFNob3VsZFJldmVhbEN1
cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sIHNob3VsZFJldmVhbEN1cnJlbnRTZWxl
Y3Rpb25BZnRlckluc2VydGlvbikKIHsKICAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmOTRhY2FhZjE4
NTUzODdmNWVjMDg4YmYzZjM3NmJiMWVhMWNlYWVkLi5kMTA4YjkxNjI0ZWFjNWM5ZTEzMTM1YjY5
Y2MwNzJhOWNjYmU1OWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC02NTUsNiArNjU1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHRJbnB1dENv
bnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYpOwogICAgIHZvaWQgZm9j
dXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIHZvaWQgc2V0RWRp
dGFibGVSZWdpb25FbmFibGVkKGJvb2wpOworI2VuZGlmCisKICAgICBib29sIHNob3VsZFJldmVh
bEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxk
UmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uOyB9CiAgICAgdm9pZCBzZXRTaG91
bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oYm9vbCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IDY4ODlkNjIzMmI5ZmU1NTdhMTlhMzkwYTNhZmU0NGQ4NzNmNjllMDkuLmI5MThlMzdhNjBm
MTQxYTNhMGMzMjRhOGUxNDNjMGNjM2M5OWUyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTI2LDYgKzEyNiw5
IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgVGV4dElucHV0Q29udGV4dHNJblJlY3Qo
V2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpIC0+IChWZWN0b3I8c3RydWN0IFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0PiBjb250ZXh0cykgQXN5bmMKICAgICBGb2N1c1RleHRJbnB1dENvbnRleHRBbmRQ
bGFjZUNhcmV0KHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCBXZWJDb3Jl
OjpJbnRQb2ludCBwb2ludCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKICAgICBDbGVhclNlcnZp
Y2VXb3JrZXJFbnRpdGxlbWVudE92ZXJyaWRlKCkgLT4gKCkgQXN5bmMKKyNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQorICAgIFNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sIGVuYWJsZWQp
CisjZW5kaWYKICNlbmRpZgogCiAgICAgU2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbihib29sIGNv
bnRyb2xsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IGQ4ZTlhMmYxMmQwZDVmMTA0NTM3YTRlY2QxZWEyYjQ5MjNhYTdl
NGUuLjgyNTAxYTIzOTZkMDBlMWVlOTg0MTdjOTQ2ZGRiOGZmMzBlYmZkOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00
MzYyLDYgKzQzNjIsMTUgQEAgdm9pZCBXZWJQYWdlOjpmb2N1c1RleHRJbnB1dENvbnRleHRBbmRQ
bGFjZUNhcmV0KGNvbnN0IEVsZW1lbnRDb250ZXh0JiBlbGVtZW50Q28KICAgICBjb21wbGV0aW9u
SGFuZGxlcih0cnVlKTsKIH0KIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKK3ZvaWQg
V2ViUGFnZTo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBt
X3BhZ2UtPnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChlbmFibGVkKTsKK30KKworI2VuZGlmCisK
IHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRTY2FsZVBhZ2UoKQogewogICAgIGF1dG8gdHJhbnNh
Y3Rpb25JRCA9IGRvd25jYXN0PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPigqbV9kcmF3aW5n
QXJlYSkubGFzdENvbW1pdHRlZFRyYW5zYWN0aW9uSUQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MDMxMWI5ZTdkYjky
NzVkMjZjMjBjNGJlZjFlOThiODllZmM4YTU4Li4zNTc0MjM2OWVjNzg0OWExYTM0NGViNmE3OWVi
MTMzYWM1ZDIyM2QwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDYtMjggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEVkaXRhYmxlIHJlZ2lv
bnMgY2F1c2VzIH4xJSBzbG93ZG93biBpbiBQTFQ1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0
MzYxMzkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBzb21lIHRlc3RzIHRvIGVuc3VyZSB0aGUgbmV3IHNldHRpbmcgd29ya3MgYW5kIHRoZSBm
ZWF0dXJlIGNhbiBiZSBkaXNhYmxlZC4gTm90ZQorICAgICAgICB0aGF0IHRoZSBzZXR0aW5nIGlz
IGVuYWJsZWQgYnkgZGVmYXVsdCB0byBrZWVwIHRoZSBjdXJyZW50IGJlaGF2aW9yLiBTZWUgdGhl
IFdlYkNvcmUKKyAgICAgICAgQ2hhbmdlTG9nIGVudHJ5IGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICAgICAgVXBkYXRlIGV4aXN0aW5ncyB0ZXN0cyB0aGF0IG5lZWQgdGhlIGVkaXRhYmxlIHJlZ2lv
biBlbmFibGVkIHRvIGVuYWJsZSBpdCBub3cgdGhhdCBpdCBtdXN0CisgICAgICAgIGJlIGV4cGxp
Y2l0bHkgZW5hYmxlZC4KKworICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2ZpeGVk
LWFuZC1hYnNvbHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9mbG9hdC1jb250ZW50ZWRpdGFibGUuaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRh
YmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJh
c2ljLmh0bWwuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFz
aWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1lZGl0
YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaGl0LXRlc3QtZml4ZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUt
d2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWw6
CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xsLXRleHQt
ZmllbGQtYW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUt
dHJhbnNmb3JtZWQtY29udGVudGVkaXRhYmxlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vc2VhcmNoLWZpZWxkLWJhc2ljLmh0bWw6CisgICAgICAgICogZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3Rl
eHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy5odG1s
LgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMuaHRt
bDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1j
b21wb3NpdGVkLW5lZ2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVkLW9uLXRvcC1vZi1maXhlZC1jb250
ZW50ZWRpdGFibGVzLmh0bWw6CisKIDIwMjAtMDYtMjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtURkNdIEFkanVzdCB0YWJsZSBjb250ZW50IHZlcnRp
Y2FsIHBvc2l0aW9uIHRvIG1hdGNoIHZlcnRpY2FsLWFsaWduCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9maXhlZC1hbmQtYWJzb2x1dGUtY29udGVudGVk
aXRhYmxlLXNjcm9sbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi9maXhlZC1hbmQtYWJzb2x1dGUtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwKaW5kZXgg
M2IzNWRiZDkwNWY4MjhiNmM3OTk2NmEwMzAzMWI3MWY5Yjc4MjgwZS4uMDQ0YTdhNWUyZGVmOTE1
ZjFiYTk1MjY2ZDJlOWQwYjZkNTE2OWNlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vZml4ZWQtYW5kLWFic29sdXRlLWNvbnRlbnRlZGl0YWJsZS1zY3Jv
bGxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2ZpeGVk
LWFuZC1hYnNvbHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbApAQCAtMSw1ICsxLDEx
IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5h
YmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgogPGJvZHkgc3R5bGU9ImhlaWdodDogNDA5
NnB4Ij4KIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwcHgiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC9k
aXY+CiA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOyBoZWlnaHQ6IDI1NnB4OyB3aWR0aDogMjU2cHg7IHRvcDogMTAwMHB4OyBsZWZ0OiAyMDBw
eCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2Zsb2F0LWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRhYmxlLmh0
bWwKaW5kZXggZDM3MzM0ZDY1Y2RiNjE3NWVjNzk1NjhmMzFiNTA4YTI2Nzc3MDczYS4uM2Y0YjJj
N2JjZjQ2MTY1NjYzYTRhMTYwNmUzMDU4YWQ5NjlkMTlkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRhYmxlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRh
YmxlLmh0bWwKQEAgLTEsNSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KIDxi
b2R5PgogPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsg
d2lkdGg6IDUwcHg7IGhlaWdodDogNDBweCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4K
IDxwcmUgaWQ9InJlc3VsdHMiPjwvcHJlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRl
c3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhlNjZmNWQ4MWZjODU1NzAxMjJhNjIxY2NiY2MwMzZhOGM0MmUyYTkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13
aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorSGl0
IHRlc3RzIGZvciBlZGl0YWJsZSBlbGVtZW50cyBpbnNpZGUgdGhlIGJsYWNrIG91dGxpbmVkIHJl
Y3RhbmdsZSB3aGVuIHRoZSBlZGl0YWJsZSByZWdpb24gaXMgZGlzYWJsZWQuIFRoZXJlIHNob3Vs
ZCBiZSBtb3JlIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRpc2FibGVkLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyAoeCA9IDEwMCwgeSA9IDEwMCwgd2lkdGggPSAyMDIsIGhl
aWdodCA9IDIwMikgY29udGFpbnMgZWRpdGFibGUgZWxlbWVudHMuCitQQVNTICh4ID0gMCwgeSA9
IDAsIHdpZHRoID0gNTAsIGhlaWdodCA9IDUwKSBjb250YWlucyBlZGl0YWJsZSBlbGVtZW50cy4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNp
Yy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYzM0YmZiOGNjOWE3YWZlM2MyOTk4N2ZlMDEyNWVjY2YxMzFkNzZhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRl
c3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApAQCAtMCwwICsxLDUyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9oaXQtdGVzdC11
dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3Rlc3QtY29udGFpbmVyIHsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAxMDBweDsKKyAgICBsZWZ0OiAxMDBweDsKKyAg
ICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0
OiAyMDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRlc3QtY29u
dGFpbmVyIj4KKyAgICA8aW5wdXQ+Cis8L2Rpdj4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChmYWxzZSk7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKQoreworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdEZh
aWxlZCgiTXVzdCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGxldCB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRlc3QtY29udGFpbmVyIik7CisgICAgYXdhaXQgc2hvdWxkSGF2ZUVkaXRhYmxlRWxlbWVu
dHNJblJlY3RGb3JFbGVtZW50KHRlc3RDb250YWluZXIpOworCisgICAgLy8gV2l0aG91dCBlZGl0
YWJsZSByZWdpb24gZW5hYmxlZCB0aGlzIHJlY3QgaXMgdGhvdWdodCB0byBjb250YWluIHNvbWV0
aGluZyBlZGl0YWJsZSBldmVuIHRob3VnaCBpdCBkb2Vzbid0LgorICAgIGF3YWl0IHNob3VsZEhh
dmVFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KDAsIDAsIDUwLCA1MCk7CisKKyAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQor
CitkZXNjcmlwdGlvbigiSGl0IHRlc3RzIGZvciBlZGl0YWJsZSBlbGVtZW50cyBpbnNpZGUgdGhl
IGJsYWNrIG91dGxpbmVkIHJlY3RhbmdsZSB3aGVuIHRoZSBlZGl0YWJsZSByZWdpb24gaXMgZGlz
YWJsZWQuIFRoZXJlIHNob3VsZCBiZSBtb3JlIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRpc2FibGVk
LiIpOworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMuaHRt
bAppbmRleCA4MjNlN2NmM2U2NTFhODRmMzk4NWEwNDQzOTc4MzBkY2YzNTgxZWNkLi4xMGU2NmM0
MWUwNTZiNzczNzJhMDVhOTViMTNmNmM2Y2Q2Y2JhZTI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLmh0bWwKQEAgLTI1
LDYgKzI1LDkgQEAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRy
dWUpOworCiBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBpZiAoIXdpbmRvdy50ZXN0
UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50
Lmh0bWwKaW5kZXggNmM2YjYwYTBkYTU0ZjBmNjYwYWZiMmEyNWFlYTA1YjFiOGI3YjcyZS4uMGI1
YTgxYTE0OGYzZmMzMGExMTI4ZGY2NWZjNWZhZDI1M2NlZTk3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZWRpdGFibGUtZG9jdW1lbnQt
ZWxlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hp
dC10ZXN0LWVkaXRhYmxlLWRvY3VtZW50LWVsZW1lbnQuaHRtbApAQCAtOSw2ICs5LDkgQEAKIDxz
Y3JpcHQ+CiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1
ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGlmICghd2luZG93LnRlc3RS
dW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L2hpdC10ZXN0LWZpeGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi9oaXQtdGVzdC1maXhlZC5odG1sCmluZGV4IGQyYjQ0MzQ3ZjdjZGI5Y2FkZDQ4MTkzYmRiODBm
NjVhZjA3NDdkYzYuLjlhNTFhOWNmZDM5MjMzMzM1MWNkNDI1NThjODJkMmE2ZGY5ODI0ODAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWZp
eGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRl
c3QtZml4ZWQuaHRtbApAQCAtMjIsNiArMjIsOSBAQCB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQogewog
ICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbAppbmRleCAzMTBi
MjVmYTA2ZmI4YWIzMDVkYjBkNTFmZmExODc5Mzc3NmIxNTVhLi5jN2VkODRlMTU4ODk3MjBlMWY2
ODMxNmY3YjYwM2RhOWQ4ZjFkNGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2Vk
aXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3Qtb3ZlcmxhcC5odG1sCkBAIC02OSw2ICs2OSw5
IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKKwog
YXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRl
c3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LXRleHRhcmVhLWVtcHR5LXNwYWNlLmh0bWwKaW5kZXggOWRmNTFh
NzIwODc4YjUyMjYxNDRjZDc4OGJjYmZmOWZmYjk2MzIwMS4uY2ZkNDA0ZTBhNGM0MjllYTAwMDY1
MWQ0OTM5MDc4YWNhYmY2NzcwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vaGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC10ZXh0YXJlYS1lbXB0eS1z
cGFjZS5odG1sCkBAIC0yNSw2ICsyNSw5IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxl
UmVnaW9uRW5hYmxlZCh0cnVlKTsKKwogYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAg
aWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0
LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQwZmFmYTI3ZjUxOWIw
ZWM2OTQ4YWM3OWMzMmFiNmNlMjk0NTNjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NCBAQAorCisoR3JhcGhpY3NMYXllcgorICAoYW5jaG9y
IDAuMDAgMC4wMCkKKyAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAgKGNoaWxkcmVuIDEKKyAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAgICAgIChj
b250ZW50c09wYXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJhY2tncm91
bmRDb2xvciAjRkZGRkZGKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQorICAgICAgICAgIChib3VuZHMgMzA0
LjAwIDMwNC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxk
cmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlv
biAyLjAwIDIuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgb3JpZ2luIDAuMDAgMjAw
LjAwKQorICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAgICAgICAg
ICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4g
MQorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAg
ICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAx
CisgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
KGJvdW5kcyAzMTAuMDAgNjcwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRy
ZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMxMC4wMCA2NzAuMDApCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAg
ICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRo
b3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI2
M2I5ZDYyMWY2Y2NkMWUwZGExYWVjNWZlNDgyZWRlMDk0ODVhMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRh
YmxlLXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keSBzdHlsZT0iaGVpZ2h0OiA0MDk2cHgiPgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBo
ZWlnaHQ9IjMwMCIgc3JjZG9jPSIKKzxzdHlsZT4KKy5zY3JvbGxlciB7CisgICAgbWFyZ2luLXRv
cDogNDAwcHg7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDogMzAwcHg7CisgICAgb3Zl
cmZsb3c6IHNjcm9sbDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKy5jb250ZW50
cyB7CisgICAgd2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogNTAwcHg7Cit9CisuZWRpdGFibGUg
eworICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGU7CisgICAgYm9yZGVyOiAycHgg
c29saWQgYmx1ZTsKK30gICAKKzwvc3R5bGU+Cis8cD5pZnJhbWU8L3A+Cis8ZGl2IGNsYXNzPSdl
ZGl0YWJsZSBib3gnIHN0eWxlPSdtYXJnaW4tdG9wOiAyNTBweDsnPgorPC9kaXY+Cis8ZGl2IGNs
YXNzPSdzY3JvbGxlcicgc3R5bGU9J21hcmdpbi10b3A6IDUwcHg7Jz4KKyAgICA8ZGl2IGNsYXNz
PSdjb250ZW50cyc+CisgICAgICAgIE92ZXJmbG93IHNjcm9sbCBpbiBpZnJhbWUKKyAgICAgICAg
PGRpdiBjbGFzcz0nZWRpdGFibGUgYm94JyBzdHlsZT0nbWFyZ2luLXRvcDogNTBweDsnPgorICAg
ICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK3dpbmRvdy5wYXJlbnQu
c2Nyb2xsSUZyYW1lQW5kRHVtcFJlZ2lvbnMoKTsKKzwvc2NyaXB0PgorIj4KKzwvaWZyYW1lPgor
PHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZmFsc2UpOworfQorCitmdW5jdGlv
biBzY3JvbGxJRnJhbWVBbmREdW1wUmVnaW9ucygpCit7CisgICAgdGVzdEZyYW1lLmNvbnRlbnRX
aW5kb3cuc2Nyb2xsVG8oMCwgMjAwKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVu
dCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxz
LkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKKyAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL291dC1oYW5naW5nLWNoaWxkLW9mLWNvbnRlbnRlZGl0YWJsZS5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQt
b2YtY29udGVudGVkaXRhYmxlLmh0bWwKaW5kZXggOTJjMzU3OTI2ZWNjMGY1ZGE3ZmVhOWFkNDYz
ZGIzNDk3NDc5OTZmYS4uZGM4NTczZDYxMDQ5ZWQyZmY1ZTNmNTkyODA3MjhmZDJiMjRjNjlkNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdp
bmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0
bWwKQEAgLTM0LDYgKzM0LDggQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCiAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXll
clRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5U
X1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVS
VElFUyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL292ZXJmbG93LXNjcm9sbC10ZXh0LWZpZWxkLWFuZC1jb250ZW50ZWRpdGFibGUu
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL292ZXJmbG93LXNjcm9s
bC10ZXh0LWZpZWxkLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbAppbmRleCBhZDI5NDU4NTEyMTc0
ZjkxNDQ1MTFjZjNhZWU1YmNjNGM4ZWMxNjlhLi40NTk2NzAwYzMwNzUwZmFjZDZkNzM5YmMzODg0
Y2RhZDNkMDNiMWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9vdmVyZmxvdy1zY3JvbGwtdGV4dC1maWVsZC1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xs
LXRleHQtZmllbGQtYW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0yNiw2ICsyNiw4IEBACiA8
c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJl
c3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBp
bnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZ
RVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNp
ZGUtZml4ZWQtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtZml4ZWQtY29udGVudGVkaXRhYmxl
LXNjcm9sbGVkLmh0bWwKaW5kZXggMTk3YWYzMmU5ZmJkNWFkMjJiNTY3YzBlNjFiZjkyMmZhMDM4
M2I2MS4uMGI4YTYwYjkwYWU5ZDQ5MjhlNDJlMDQ1NjMxZDllMzNlNWRmNmY4YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLWZp
eGVkLWNvbnRlbnRlZGl0YWJsZS1zY3JvbGxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUt
c2Nyb2xsZWQuaHRtbApAQCAtMTAsNiArMTAsOCBAQCB3aW5kb3cuc2Nyb2xsVG8oMCwgMTAyNCk7
CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
K2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykKICAgICByZXN1bHRz
LnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJu
YWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RS
RUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLXRy
YW5zZm9ybWVkLWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLXRyYW5zZm9ybWVkLWNvbnRlbnRlZGl0YWJsZS5o
dG1sCmluZGV4IDUxOWYyOTk5NmIwNTAxNTk4N2Y2MzE3MjFhNzVmZWU1YTcxMmUwYzMuLjQ3ZTcx
Y2Q3NjAwMGUxMDRlYWRmNjlmNDk0MGZjZTU3OTdlMTZhM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS10cmFuc2Zvcm1lZC1j
b250ZW50ZWRpdGFibGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9yZWxhdGl2ZS1pbnNpZGUtdHJhbnNmb3JtZWQtY29udGVudGVkaXRhYmxlLmh0bWwKQEAg
LTE5LDYgKzE5LDggQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCiAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVB
c1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lP
TiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL3NlYXJjaC1maWVsZC1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vc2VhcmNoLWZpZWxkLWJhc2ljLmh0bWwKaW5kZXggNjkyMzEzNzQyNGE5ZmY4NGYw
NjcwODkzY2FlYmUyNGU0NWExYzY0MS4uZWIzZGZiOTNkNDM3NDBjNjI2ZDNjMDJlZjk0NzljOWI1
NzMzYjljNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
c2VhcmNoLWZpZWxkLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vc2VhcmNoLWZpZWxkLWJhc2ljLmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2NyaXB0
PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxl
UmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMu
dGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5h
bHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJF
RV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdp
dGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4MWZlNWQ5MGY2NWY1MDg1ZDE0M2Q5MTZmOTg0NTE0
YzQzMmFmMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACisKKyhHcmFwaGljc0xheWVyCisgIChhbmNob3IgMC4wMCAw
LjAwKQorICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjb250ZW50c09w
YXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJhY2tncm91bmRDb2xvciAj
RkZGRkZGKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJh
c2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiYjAxZTdmZjVh
NThjZWQ0ZjJiNTRkNDhjY2VjZmM3MDQzYTUyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0
YWJsZS1yZWdpb24uaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8aW5wdXQgdHlwZT0idGV4dCI+Cis8cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4K
KzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGZhbHNlKTsKKyAg
ICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVu
dCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxz
LkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKK30KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy5odG1sCmluZGV4IDg0YTgwMTllMjViMmUy
NDM0MWQ5Y2FhZGJmNDk3Yjk3MjcwZTI4NmEuLmIyYzAzY2Q5MTQwOTg1NTc1NzQ5MmJmMzc0OTRj
YzUwZmM0MjZkMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL3RleHQtZmllbGQtYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2NyaXB0
PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxl
UmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMu
dGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5h
bHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJF
RV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1j
b21wb3NpdGVkLW5lZ2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUt
ei1pbmRleC1sYXllci5odG1sCmluZGV4IGI0ZTRkOGQ3ZTRlNzQ1Y2YzOTZhNDgzMDRjNjAxM2Q5
MWQwOTRkMjMuLjAxZTFlM2E2NDIzOGI4MDQ5MjJlMWQ3NjA1NjE0Y2IwYzRmYjNkMDQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtaW5z
aWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUtei1pbmRleC1sYXllci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0ZWQt
bmVnYXRpdmUtei1pbmRleC1sYXllci5odG1sCkBAIC0xOCw2ICsxOCw4IEBACiA8c2NyaXB0Pgog
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVn
aW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4
dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMu
TEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9J
TkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dGFyZWEtYmFzaWMuaHRtbApp
bmRleCAxYTE4OWE5NmFkMDE3MGI3MzJiODA5NjkwN2NmOThhMWYyYTZhNWQxLi42OWZlNzYyNTdk
YWMyMjEwZmY1N2IyZWQ5YzMwMDMzMjU3NGY3ODU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHRhcmVhLWJhc2ljLmh0bWwKQEAgLTYsNiAr
Niw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRv
Y3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRl
cm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90cmFu
c2Zvcm1lZC1zY3JvbGxlZC1vbi10b3Atb2YtZml4ZWQtY29udGVudGVkaXRhYmxlcy5odG1sIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdHJhbnNmb3JtZWQtc2Nyb2xsZWQt
b24tdG9wLW9mLWZpeGVkLWNvbnRlbnRlZGl0YWJsZXMuaHRtbAppbmRleCBiYmM3ZmY5OWRlZjEz
MWYxM2VkYzMyZTNiMmNiNjc3MWFhOTQxNmRiLi5mYzNhYWQ5ZmQ5YzJmNmMxM2VkMTQ4N2ViZWNi
Y2ZiMTVlZjIyMGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi90cmFuc2Zvcm1lZC1zY3JvbGxlZC1vbi10b3Atb2YtZml4ZWQtY29udGVudGVkaXRhYmxl
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9y
bWVkLXNjcm9sbGVkLW9uLXRvcC1vZi1maXhlZC1jb250ZW50ZWRpdGFibGVzLmh0bWwKQEAgLTIx
LDYgKzIxLDggQEAKIHdpbmRvdy5zY3JvbGxUbygwLCAxMjApOwogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsK
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5h
bHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURF
U19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVS
X1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403021</attachid>
            <date>2020-06-28 18:06:31 -0700</date>
            <delta_ts>2020-06-29 15:01:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213659-20200628180630.patch</filename>
            <type>text/plain</type>
            <size>54262</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZlYzIxNjc5Y2U3OTAz
NTgwNWI4MmZkNjhhNTQzMzFiOWVlNWVlZS4uYTIxNDdiNGMwMjYwNzIxNzJhMjA4NDJjOWM4NjVi
ZmU1Zjg5YjVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIwLTA2LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIHNsb3dkb3duIGJ5IGFkZGluZyBhIHJ1bnRpbWUgc3dpdGNoIHRvIGVuYWJs
ZSBlZGl0YWJsZSByZWdpb24gY29tcHV0YXRpb24gYW5kCisgICAgICAgIGRpc2FibGUgaXQgYnkg
ZGVmYXVsdC4gVGhlIFVJIHByb2Nlc3Mgd2lsbCBmbGlwIHRoZSBzd2l0Y2ggb24gdGhlIGZpcnN0
IGludm9jYXRpb24gb2YKKyAgICAgICAgLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Qu
CisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwYXJ0cyB0aGF0IG1ha2UgY29tcHV0aW5nIHRoZSBl
ZGl0YWJsZSByZWdpb24gZXhwZW5zaXZlOgorICAgICAgICAgICAgICAgIDEuIFJlcXVpcmVzIHRy
YXZlcnNpbmcgZGVzY2VuZGVudHMgZHVyaW5nIHBhaW50aW5nIHdoZW4gYSBub3JtYWwgcGFpbnQg
bWF5IGJlCisgICAgICAgICAgICAgICAgICAgYWJsZSB0byBhdm9pZCB0aGlzLgorICAgICAgICAg
ICAgICAgIDIuIENhbiBjYXVzZSBtb3JlIGV2ZW50IHJlZ2lvbiBpbnZhbGlkYXRpb25zIGJlY2F1
c2UgaXQgZXh0ZW5kcyB0aGUgaW52YWxpZGF0aW9uCisgICAgICAgICAgICAgICAgICAgY3JpdGVy
aW9uIHRvIGluY2x1ZGUgY2hhbmdlcyB0byBlbGVtZW50IGVkaXRhYmlsaXR5LgorCisgICAgICAg
IFVzaW5nIGEgcnVudGltZSBzd2l0Y2ggYXZvaWRzIHBheWluZyB0aGVzZSBjb3N0cyB1bnRpbCB0
aGUgZmVhdHVyZSBpcyBuZWVkZWQuCisKKyAgICAgICAgVGVzdHM6IGVkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAg
ICAgICAgICAgIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxl
LXJlZ2lvbi5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0
LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKworICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmludmFsaWRhdGVDb250ZW50
RXZlbnRSZWdpb25zSWZOZWVkZWQpOiBDaGVjayBpZiBlZGl0YWJsZSByZWdpb24gaXMgZW5hYmxl
ZC4KKyAgICAgICAgSWYgaXQgaXMgdGhlbiBkbyB3aGF0IHdlIGRvIG5vdy4gT3RoZXJ3aXNlLCBk
b24ndCBpbnZhbGlkYXRlIHRoZSByZWdpb24gdW5sZXNzIHdlIHdlcmUgZ29pbmcKKyAgICAgICAg
dG8gZG8gc28gYW55d2F5LgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQpOiBBZGRlZC4gVXBkYXRlIHN0YXRl
IGFuZCB0aGVuIGludmFsaWRhdGUKKyAgICAgICAgdGhlIGV2ZW50IHJlZ2lvbiBpbiBhbGwgbGF5
ZXJzLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
RXZlbnRSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnVuaXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp0cmFuc2xhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRSZWdpb246OmNvbnRhaW5zRWRpdGFibGVFbGVtZW50c0luUmVjdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZHVtcCBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL0V2ZW50UmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6
ZW5zdXJlRWRpdGFibGVSZWdpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVn
aW9uOjpoYXNFZGl0YWJsZVJlZ2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRSZWdpb246OnJlY3RzRm9yRWRpdGFibGVFbGVtZW50cyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZGVjb2RlKToKKyAgICAgICAgVGhlIGVkaXRhYmxlIHJlZ2lv
biBpcyBub3cgYW4gT3B0aW9uYWw8Pi4gVGhlcmUgd2lsbCBvbmx5IGJlIG9uZSBpZiBlbnN1cmVF
ZGl0YWJsZVJlZ2lvbgorICAgICAgICB3YXMgY2FsbGVkLCB3aGljaCBpcyBvbmx5IHdoZW4gUGFn
ZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSByZXR1cm5zIHRydWUuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpt
YWludGFpbnNFdmVudFJlZ2lvbiBjb25zdCk6CisgICAgICAgIE9ubHkgZG8gd2hhdCB3ZSBkbyBu
b3cgaWYgUGFnZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSByZXR1cm5zIHRydWUuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRXZlbnRSZWdpb24pOiBD
YWxsIGVuc3VyZUVkaXRhYmxlUmVnaW9uIGlmIFBhZ2U6OmlzRWRpdGFibGVSZWdpb25FbmFibGVk
KCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFwcGx5
VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JB
bGxMYXllcnMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6Y2xlYXJCYWNraW5nRm9yQWxsTGF5ZXJzKTogV3JvdGUgaW4gdGVybXMgb2YgYXBwbHlUb0Nv
bXBvc2l0ZWRMYXllckluY2x1ZGluZ0Rlc2NlbmRhbnRzLgorCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFyQmFja2luZ0ZvckxheWVySW5jbHVkaW5nRGVzY2Vu
ZGFudHMpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgIEFkZCBhIG5ldyBpbnRlcm5hbCBzZXR0
aW5nIGZvciB0ZXN0aW5nIHB1cnBvc2VzIHRvIHRvZ2dsZSBlbmFibGluZy9kaXNhYmxpbmcgZWRp
dGFibGUgcmVnaW9uLgorCiAyMDIwLTA2LTI4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBBZGp1c3QgdGFibGUgY29udGVudCB2ZXJ0aWNhbCBw
b3NpdGlvbiB0byBtYXRjaCB2ZXJ0aWNhbC1hbGlnbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZjEzM2ZjMmNlMmQ4
Zjk3YjQwNjJkNDQzMjc5ZDgxZTE4ZDEwNGY5Li5hMTdkMzA1YmY1NmMwMjc2OTc5OTA4OWJlZjNj
OWEzYmY5MThmYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA2LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdXAgUmVtb3RlTGF5ZXJUcmVlVmlld3Mgbm93IHRoYXQgdGhlIGVkaXRhYmxlIHJl
Z2lvbiBpcyBhbiBPcHRpb25hbDw+LiBIYXZlCisgICAgICAgIHRoZSBVSSBwcm9jZXNzIG1lc3Nh
Z2UgdGhlIHdlYiBwcm9jZXNzIHRvIGVuYWJsZSBlZGl0YWJsZSByZWdpb24gb24gdGhlIGZpcnN0
CisgICAgICAgIGludm9jYXRpb24gb2YgX3JlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdCwg
d2hpY2ggaXMgZ29vZCBpbmRpY2F0b3IgdGhhdCB0aGVyZQorICAgICAgICB3b3VsZCBiZSBiZW5l
Zml0IHRvIGNvbXB1dGluZyBpdCBhcyBhIHR5cGljYWwgY2xpZW50IHRoYXQgY2FsbHMgaXQgd2ls
bCBjYWxsIGl0CisgICAgICAgIG1hbnkgdGltZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbToKKyAgICAgICAgKFdlYktp
dDo6bWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3QpOiBGaXggdXAgdGhlIGxvZ2ljIG5v
dyB0aGF0IHRoZXJlIG1heQorICAgICAgICBiZSBub3QgYmUgYW4gZWRpdGFibGUgcmVnaW9uIHNl
bnQgb3ZlciBpbiB0aGUgbGFzdCBldmVudCByZWdpb24gdXBkYXRlLiBJZiB0aGVyZQorICAgICAg
ICBpc24ndCBvbmUgdGhlbiB3ZSBkb24ndCBrbm93IGlmIHRoZXJlIGFyZSBlZGl0YWJsZSBlbGVt
ZW50cyBpcyBpbiB0aGUgcmVjdCBvZiBub3QuCisgICAgICAgIFNvLCBqdXN0IHJldHVybiB0cnVl
OiB0aGVyZSBtYXkgYmUgZWRpdGFibGUgZWxlbWVudHMgaW4gdGhlIHJlY3QuIFRoZSBjYWxsZXIg
d2lsbAorICAgICAgICBoYXZlIHRvIG1lc3NhZ2UgdGhlIHdlYiBwcm9jZXNzIHRvIGZpbmQgb3V0
IHRoZSByZWFsIGFuc3dlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lXSk6CisgICAgICAgIEFkZGVkIGEg
bmV3IGl2YXIgdG8gdHJhY2sgaW4gdGhlIFVJIHByb2Nlc3Mgd2hldGhlciBpdCBhbHJlYWR5IHJl
cXVlc3RlZCB0aGUgd2ViCisgICAgICAgIHByb2Nlc3MgdG8gZW5hYmxlIHRoZSBlZGl0YWJsZSBy
ZWdpb24uIFRoZSB3ZWIgcHJvY2VzcyBjYW5ub3QgZGVueSB0aGUgcmVxdWVzdCBzbworICAgICAg
ICBpdCByZXByZXNlbnRzIHdoZXRoZXIgdGhlIGZlYXR1cmUgd2FzIGVuYWJsZWQgb3Igbm90IGZy
b20gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVxdWVzdFRl
eHRJbnB1dENvbnRleHRzSW5SZWN0OmNvbXBsZXRpb25IYW5kbGVyOl0pOiBJZiBlZGl0YWJsZQor
ICAgICAgICByZWdpb24gaXMgbm90IGVuYWJsZSB0aGVuIGRvIHNvIG5vdy4KKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOiBBZGQgYSBuZXcgbWVzc2FnZS4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6IEFkZGVkLgorCiAyMDIwLTA2LTI4ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRocmVhZC1zYWZldHkgaXNz
dWUgaW4gd2ViUHJvY2Vzc1Bvb2xIaWdoRHluYW1pY1JhbmdlRGlkQ2hhbmdlQ2FsbGJhY2soKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBkMDRmYTBjMzllMGViOWE4M2NjZDg2NGU0MmFlMzA0MmI5
OTI4MzA4Li40MTgxMjQ5ZTdjMjlkN2U1NzhkZmJjZGY4YzZmOTljMDU2OWQ0YmI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgRnJhbWU6OmludmFsaWRhdGVD
b250ZW50RXZlbnRSZWdpb25zSWZOZWVkZWQoKQogICAgIGhhc1RvdWNoQWN0aW9uRWxlbWVudHMg
PSBtX2RvYy0+bWF5SGF2ZUVsZW1lbnRzV2l0aE5vbkF1dG9Ub3VjaEFjdGlvbigpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBoYXNFZGl0YWJsZUVsZW1lbnRzID0g
bV9kb2MtPm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CisgICAgaGFzRWRpdGFibGVFbGVtZW50
cyA9IG1fcGFnZS0+aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSAmJiBtX2RvYy0+bWF5SGF2ZUVk
aXRhYmxlRWxlbWVudHMoKTsKICNlbmRpZgogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGxv
b2sgYXQgd2hlZWwgZXZlbnQgaGFuZGxlcnMgdG9vLgogICAgIGlmICghaGFzVG91Y2hBY3Rpb25F
bGVtZW50cyAmJiAhaGFzRWRpdGFibGVFbGVtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDE0
Njc5MTZiMGIxOWVjNzI2N2M3ZDhiZDg1ZGJkZmQwZmQyZGJkYTUuLjk3MjQ1YWNjMTFlOWY5MTBj
ODZjOWEwYjgzNzM4NzE3MTMxYjMzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTIwLDYgKzky
MCwyMiBAQCB2b2lkIFBhZ2U6OnVubWFya0FsbFRleHRNYXRjaGVzKCkKICAgICB9KTsKIH0KIAor
I2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKK3ZvaWQgUGFnZTo6c2V0RWRpdGFibGVSZWdp
b25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAobV9pc0VkaXRhYmxlUmVnaW9uRW5h
YmxlZCA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisgICAgbV9pc0VkaXRhYmxlUmVnaW9u
RW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgYXV0byBmcmFtZVZpZXcgPSBtYWtlUmVmUHRyKG1haW5G
cmFtZSgpLnZpZXcoKSk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsKKyAg
ICBpZiAoYXV0byogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVyVmlldygpKQorICAgICAg
ICByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuaW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5
ZXJzKCk7Cit9CisKKyNlbmRpZgorCiBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBQYWdlOjplZGl0YWJs
ZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2VhcmNoUmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcykgY29uc3QKIHsKICAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIobWFpbkZy
YW1lKCkudmlldygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYWMyMDY0NGJlMzkyNThkOTYwZTRjNDUz
OGY1MzJmNzZiNTI3MmY1My4uMGFmY2NlZmJjMGNjN2ZmMjRjMTdhNWQ4YzhiMDg1MTA5ZTlmMjRj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTc0Miw2ICs3NDIsMTEgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmLCBXVEZMb2dDaGFubmVsU3Rh
dGUsIFdURkxvZ0xldmVsKTsKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgYm9v
bCBpc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFZGl0YWJsZVJl
Z2lvbkVuYWJsZWQ7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVkaXRhYmxlUmVnaW9u
RW5hYmxlZChib29sKTsKKyNlbmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxF
bGVtZW50Pj4gZWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsK
IAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkp
CkBAIC0xMDAzLDYgKzEwMDgsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzUmVzb3VyY2VM
b2FkQ2xpZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1fZGVsZWdhdGVzU2NhbGluZyB7IGZhbHNl
IH07CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIGJvb2wgbV9pc0VkaXRhYmxl
UmVnaW9uRW5hYmxlZCB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIFVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24gbV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHsgVXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbjo6TFRSIH07CiAgICAgCiAgICAgLy8gRm9yIHRlc3RpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcAppbmRleCA2M2NiMjNkN2ZlOWQwN2Q0
Yjg0ZWQ0YTE4MmY4ZGMxZTJiOWY0MzMxLi44NzM5NGVkNjM5OTAzZTIyZmJlM2JlNjc4MmM0N2Ni
ZWQ1OWIzNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKQEAg
LTEzMCw4ICsxMzAsOCBAQCB2b2lkIEV2ZW50UmVnaW9uOjp1bml0ZShjb25zdCBSZWdpb24mIHJl
Z2lvbiwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBib29sIG92ZQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIGlmIChvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRh
YmxlIHx8IHN0eWxlLnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25seSkKLSAgICAg
ICAgbV9lZGl0YWJsZVJlZ2lvbi51bml0ZShyZWdpb24pOworICAgIGlmIChtX2VkaXRhYmxlUmVn
aW9uICYmIChvdmVycmlkZVVzZXJNb2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxlLnVzZXJNb2RpZnko
KSAhPSBVc2VyTW9kaWZ5OjpSZWFkT25seSkpCisgICAgICAgIG1fZWRpdGFibGVSZWdpb24tPnVu
aXRlKHJlZ2lvbik7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvdmVycmlkZVVzZXJNb2RpZnlJ
c0VkaXRhYmxlKTsKICNlbmRpZgpAQCAtMTU2LDcgKzE1Niw4IEBAIHZvaWQgRXZlbnRSZWdpb246
OnRyYW5zbGF0ZShjb25zdCBJbnRTaXplJiBvZmZzZXQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShF
RElUQUJMRV9SRUdJT04pCi0gICAgbV9lZGl0YWJsZVJlZ2lvbi50cmFuc2xhdGUob2Zmc2V0KTsK
KyAgICBpZiAobV9lZGl0YWJsZVJlZ2lvbikKKyAgICAgICAgbV9lZGl0YWJsZVJlZ2lvbi0+dHJh
bnNsYXRlKG9mZnNldCk7CiAjZW5kaWYKIH0KIApAQCAtMjgzLDEwICsyODQsMTIgQEAgY29uc3Qg
UmVnaW9uJiBFdmVudFJlZ2lvbjo6ZXZlbnRMaXN0ZW5lclJlZ2lvbkZvclR5cGUoRXZlbnRMaXN0
ZW5lclJlZ2lvblR5cGUgdHkKICNlbmRpZiAvLyBFTkFCTEUoV0hFRUxfRVZFTlRfUkVHSU9OUykK
IAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKIGJvb2wgRXZlbnRSZWdpb246OmNvbnRh
aW5zRWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogewot
ICAgIHJldHVybiBtX2VkaXRhYmxlUmVnaW9uLmludGVyc2VjdHMocmVjdCk7CisgICAgcmV0dXJu
IG1fZWRpdGFibGVSZWdpb24gJiYgbV9lZGl0YWJsZVJlZ2lvbi0+aW50ZXJzZWN0cyhyZWN0KTsK
IH0KKwogI2VuZGlmCiAKIHZvaWQgRXZlbnRSZWdpb246OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNv
bnN0CkBAIC0zMjIsOCArMzI1LDggQEAgdm9pZCBFdmVudFJlZ2lvbjo6ZHVtcChUZXh0U3RyZWFt
JiB0cykgY29uc3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBp
ZiAoIW1fZWRpdGFibGVSZWdpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRzIDw8IGluZGVudCA8
PCAiKGVkaXRhYmxlIHJlZ2lvbiIgPDwgbV9lZGl0YWJsZVJlZ2lvbjsKKyAgICBpZiAobV9lZGl0
YWJsZVJlZ2lvbiAmJiAhbV9lZGl0YWJsZVJlZ2lvbi0+aXNFbXB0eSgpKSB7CisgICAgICAgIHRz
IDw8IGluZGVudCA8PCAiKGVkaXRhYmxlIHJlZ2lvbiIgPDwgKm1fZWRpdGFibGVSZWdpb247CiAg
ICAgICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKaW5kZXggNTAxMjQzZTA0OGI5ODRlNmIwNjZkYTk0YjU4
MjUyOGZkNWRkZWU4Mi4uNmM0ZmFlNjMzNzI1YjdlNmU4YmZkOWRlYTk4NTkxNWM4MTBjOTVmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKQEAgLTg3LDggKzg3LDEwIEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKyAgICB2b2lk
IGVuc3VyZUVkaXRhYmxlUmVnaW9uKCk7CisgICAgYm9vbCBoYXNFZGl0YWJsZVJlZ2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24uaGFzVmFsdWUoKTsgfQogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgY29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJlY3Qm
KSBjb25zdDsKLSAgICBWZWN0b3I8SW50UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRz
KCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbi5yZWN0cygpOyB9CisgICAgVmVjdG9y
PEludFJlY3QsIDE+IHJlY3RzRm9yRWRpdGFibGVFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1f
ZWRpdGFibGVSZWdpb24gPyBtX2VkaXRhYmxlUmVnaW9uLT5yZWN0cygpIDogVmVjdG9yPEludFJl
Y3QsIDE+IHsgfTsgfQogI2VuZGlmCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CkBAIC0xMTMsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWdpb24gbV9ub25QYXNzaXZlV2hlZWxFdmVudExpc3RlbmVyUmVnaW9uOwogI2VuZGlmCiAj
aWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBSZWdpb24gbV9lZGl0YWJsZVJlZ2lvbjsK
KyAgICBPcHRpb25hbDxSZWdpb24+IG1fZWRpdGFibGVSZWdpb247CiAjZW5kaWYKIH07CiAKQEAg
LTE1Miw3ICsxNTQsNyBAQCBPcHRpb25hbDxFdmVudFJlZ2lvbj4gRXZlbnRSZWdpb246OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9O
KQotICAgIE9wdGlvbmFsPFJlZ2lvbj4gZWRpdGFibGVSZWdpb247CisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8UmVnaW9uPj4gZWRpdGFibGVSZWdpb247CiAgICAgZGVjb2RlciA+PiBlZGl0YWJsZVJl
Z2lvbjsKICAgICBpZiAoIWVkaXRhYmxlUmVnaW9uKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwpAQCAtMTczLDQgKzE3NSwxNCBAQCBib29sIEV2ZW50UmVnaW9uOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgRXZlbnRSZWdpb24mIGV2ZW50UmVnaW9uKQogICAgIHJldHVybiB0cnVlOwog
fQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKworaW5saW5lIHZvaWQgRXZlbnRSZWdp
b246OmVuc3VyZUVkaXRhYmxlUmVnaW9uKCkKK3sKKyAgICBpZiAoIW1fZWRpdGFibGVSZWdpb24p
CisgICAgICAgIG1fZWRpdGFibGVSZWdpb24uZW1wbGFjZSgpOworfQorCisjZW5kaWYKKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZjVmNGUzNmFkM2Vk
NmVjYzZkMGZiNzhiNGE3MTZlYWU4M2M4NDdkZi4uOTZkZGUzYTE0ZDk2ZmFhZTg3Y2ZhODE0ZDM3
ZGZlOWMwMDBkMjE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CkBAIC0xMjYzLDcgKzEyNjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgICAgICAv
LyBXZSB0cmVhdCB0aGUgZW50aXJlIHRleHQgY29udHJvbCBhcyBlZGl0YWJsZSB0byBtYXRjaCB1
c2VycycgZXhwZWN0YXRpb24gZXZlbgogICAgICAgICAvLyB0aG91Z2ggaXQncyBhY3R1YWxseSB0
aGUgaW5uZXIgdGV4dCBlbGVtZW50IG9mIHRoZSBjb250cm9sIHRoYXQgaXMgZWRpdGFibGUuCiAg
ICAgICAgIC8vIFNvLCBubyBuZWVkIHRvIHRyYXZlcnNlIHRvIGZpbmQgdGhlIGlubmVyIHRleHQg
ZWxlbWVudCBpbiB0aGlzIGNhc2UuCi0gICAgICAgIGlmICghaXNUZXh0Q29udHJvbCgpKQorICAg
ICAgICBpZiAocGFnZSgpLmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgIWlzVGV4dENvbnRy
b2woKSkKICAgICAgICAgICAgIG5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cyB8PSBkb2N1bWVudCgp
Lm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCk7CiAjZW5kaWYKICAgICAgICAgaWYgKCFuZWVkc1Ry
YXZlcnNlRGVzY2VuZGFudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAKaW5kZXggN2Q2OGNkYjMxOTEyMTZlMzY3Zjk4NjZmNzljOGQ4YjE4ODAyNDRhYS4uMzhi
YzExNzNhMzc2NmY3ZDkxNDc3ZTY5MDczZTQxYmJiNzM2NzJlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtNzQ2LDEwICs3NDYsMTIgQEAgdm9pZCBS
ZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgICAgIGlmIChtX3N0eWxlLmV2ZW50TGlzdGVuZXJS
ZWdpb25UeXBlcygpICE9IG5ld1N0eWxlLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygpKQogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0g
ICAgICAgICAgICBib29sIHdhc0VkaXRhYmxlID0gbV9zdHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNl
ck1vZGlmeTo6UmVhZE9ubHk7Ci0gICAgICAgICAgICBib29sIGlzRWRpdGFibGUgPSBuZXdTdHls
ZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7Ci0gICAgICAgICAgICBpZiAo
d2FzRWRpdGFibGUgIT0gaXNFZGl0YWJsZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgIGlmIChwYWdlKCkuaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSkgeworICAg
ICAgICAgICAgICAgIGJvb2wgd2FzRWRpdGFibGUgPSBtX3N0eWxlLnVzZXJNb2RpZnkoKSAhPSBV
c2VyTW9kaWZ5OjpSZWFkT25seTsKKyAgICAgICAgICAgICAgICBib29sIGlzRWRpdGFibGUgPSBu
ZXdTdHlsZS51c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHk7CisgICAgICAgICAg
ICAgICAgaWYgKHdhc0VkaXRhYmxlICE9IGlzRWRpdGFibGUpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmlu
ZGV4IDAzZWI2MWRkYjExYmU4NGIwZmE5NWFmMGIxMGE1ZWQ5MGYwOWUzYTkuLjQ3MzVkYWI4MzBk
MTkyYTRkMDM3MzU0MTllYWE4OWQ5YWIxN2M1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCkBAIC05MjcsNyArOTI3LDcgQEAgcHVibGljOgogCiAgICAgLy8gSW52YWxp
ZGF0aW9uIGNhbiBmYWlsIGlmIHRoZXJlIGlzIG5vIGVuY2xvc2luZyBjb21wb3NpdGluZyBsYXll
ciAoZS5nLiBuZXN0ZWQgaWZyYW1lKQogICAgIC8vIG9yIHRoZSBsYXllciBkb2VzIG5vdCBtYWlu
dGFpbiBhbiBldmVudCByZWdpb24uCi0gICAgZW51bSBjbGFzcyBFdmVudFJlZ2lvbkludmFsaWRh
dGlvblJlYXNvbiB7IFBhaW50LCBTdHlsZSwgTm9uQ29tcG9zaXRlZEZyYW1lIH07CisgICAgZW51
bSBjbGFzcyBFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbiB7IFBhaW50LCBTZXR0aW5nRGlk
Q2hhbmdlLCBTdHlsZSwgTm9uQ29tcG9zaXRlZEZyYW1lIH07CiAgICAgYm9vbCBpbnZhbGlkYXRl
RXZlbnRSZWdpb24oRXZlbnRSZWdpb25JbnZhbGlkYXRpb25SZWFzb24pOwogCiAgICAgU3RyaW5n
IGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMjM3NmI2MjBlMTc1ZmJhOThlYWVm
NjQyYmRhNWVmOWFhMmY3M2Q5OS4uMzZjMTIyOWMwZGJlMjkwNGJmMTYxNTBhNzk0Y2U5NTJkOGMz
YTFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKQEAgLTE3MDgsNyArMTcwOCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjptYWlu
dGFpbnNFdmVudFJlZ2lvbigpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAj
aWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgp
Lm1heUhhdmVFZGl0YWJsZUVsZW1lbnRzKCkpCisgICAgaWYgKHJlbmRlcmVyKCkucGFnZSgpLmlz
RWRpdGFibGVSZWdpb25FbmFibGVkKCkgJiYgcmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhhdmVF
ZGl0YWJsZUVsZW1lbnRzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAjaWYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCkBAIC0xNzM1LDYgKzE3MzUsMTAgQEAgdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKCkKICAgICBhdXRvIHVwZGF0ZUV2ZW50UmVnaW9u
Rm9yTGF5ZXIgPSBbJl0oR3JhcGhpY3NMYXllciYgZ3JhcGhpY3NMYXllcikgewogICAgICAgICBH
cmFwaGljc0NvbnRleHQgbnVsbENvbnRleHQobnVsbHB0cik7CiAgICAgICAgIEV2ZW50UmVnaW9u
IGV2ZW50UmVnaW9uOworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgICAgIGlmIChy
ZW5kZXJlcigpLnBhZ2UoKS5pc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpKQorICAgICAgICAgICAg
ZXZlbnRSZWdpb24uZW5zdXJlRWRpdGFibGVSZWdpb24oKTsKKyNlbmRpZgogICAgICAgICBhdXRv
IGV2ZW50UmVnaW9uQ29udGV4dCA9IGV2ZW50UmVnaW9uLm1ha2VDb250ZXh0KCk7CiAgICAgICAg
IGF1dG8gbGF5ZXJPZmZzZXQgPSBncmFwaGljc0xheWVyLnNjcm9sbE9mZnNldCgpIC0gcm91bmRl
ZEludFNpemUoZ3JhcGhpY3NMYXllci5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXgg
M2VmMWNmZWM2YTM0MjQxNDUyYWUyYWExM2ZjNGFiZjI3M2ZmYzAyMi4uZTU4ZTFmNjJlYmU4YmY2
MGNkZTdmYmVhYzg2NjU2NWE1MjAzZThjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjM1NywxOCArMjM1NywyNSBA
QCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5k
b3cpCiAgICAgfQogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2xlYXJCYWNraW5n
Rm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYgbGF5ZXIpCit0ZW1wbGF0
ZTx0eXBlbmFtZSBBcHBseUZ1bmN0aW9uVHlwZT4KK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjphcHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoUmVuZGVyTGF5ZXIm
IGxheWVyLCBjb25zdCBBcHBseUZ1bmN0aW9uVHlwZSYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKGxh
eWVyLmlzQ29tcG9zaXRlZCgpKQotICAgICAgICBsYXllci5jbGVhckJhY2tpbmcoKTsKLQorICAg
ICAgICBmdW5jdGlvbihsYXllcik7CiAgICAgZm9yIChhdXRvKiBjaGlsZExheWVyID0gbGF5ZXIu
Zmlyc3RDaGlsZCgpOyBjaGlsZExheWVyOyBjaGlsZExheWVyID0gY2hpbGRMYXllci0+bmV4dFNp
YmxpbmcoKSkKLSAgICAgICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50
cygqY2hpbGRMYXllcik7CisgICAgICAgIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdE
ZXNjZW5kYW50cygqY2hpbGRMYXllciwgZnVuY3Rpb24pOworfQorCit2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKCkKK3sKKyAgICBh
cHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoKm1fcmVuZGVyVmlldy5s
YXllcigpLCBbXShhdXRvJiBsYXllcikgeworICAgICAgICBsYXllci5pbnZhbGlkYXRlRXZlbnRS
ZWdpb24oUmVuZGVyTGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5n
RGlkQ2hhbmdlKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNs
ZWFyQmFja2luZ0ZvckFsbExheWVycygpCiB7Ci0gICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNs
dWRpbmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCkpOworICAgIGFwcGx5VG9Db21w
b3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCksIFtd
KGF1dG8mIGxheWVyKSB7IGxheWVyLmNsZWFyQmFja2luZygpOyB9KTsKIH0KIAogdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0MmRlM2Jl
MGRiOTMzYTNmODU5NjY4NGFhYWRmYzVjODdkYzdhYmU4Li4wMDczN2JjODI0MjQzZTc2ZTg0ZWNm
NzJiYzUzZTU4ZjFlNmUxNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yODIsNiArMjgyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0SXNJbldpbmRvdyhib29sKTsKIAogICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yQWxsTGF5
ZXJzKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKICAg
ICAKICAgICB2b2lkIGxheWVyQmVjYW1lQ29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYpOwog
ICAgIHZvaWQgbGF5ZXJCZWNhbWVOb25Db21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJik7CkBA
IC00MTcsNyArNDE4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUJhY2tpbmcoUmVuZGVy
TGF5ZXImLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3RhdGUqID0g
bnVsbHB0ciwgQmFja2luZ1JlcXVpcmVkID0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKTsKICAg
ICBib29sIHVwZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZShSZW5kZXJMYXllciYsIGNvbnN0IFJl
bmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYs
IEJhY2tpbmdTaGFyaW5nU3RhdGUmKTsKIAotICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yTGF5ZXJJ
bmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEFwcGx5RnVuY3Rpb25UeXBlPiB2b2lkIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdE
ZXNjZW5kYW50cyhSZW5kZXJMYXllciYsIGNvbnN0IEFwcGx5RnVuY3Rpb25UeXBlJik7CiAKICAg
ICAvLyBSZXBhaW50IHRoaXMgYW5kIGl0cyBjaGlsZCBsYXllcnMuCiAgICAgdm9pZCByZWN1cnNp
dmVSZXBhaW50TGF5ZXIoUmVuZGVyTGF5ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGJiYmI0YTQwMGIyN2ZkOTk5ZmI3YWYwZjM5MTk4NjI3
M2RhNGE3ZmEuLjQ2MTUxNjM0YmViMDQwZmFiMTM0MGFmYjBmM2RmZGJjMzgxMjZhNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNDQxLDYgKzQ0
MSwxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3Np
emluZ1VzZXNJZGVtcG90ZW50TW9kZShib29sIGVuYQogICAgIHJldHVybiB7IH07CiB9CiAKK0V4
Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxl
ZChib29sIGVuYWJsZWQpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9O
KQorICAgIG1fcGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKKyAgICByZXR1cm4geyB9OworfQor
CiBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRNZWRpYVR5cGVPdmVycmlk
ZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggYTFiOTcwOTRiN2UwYjFlNGRh
NjQyODcwOWIxZWNhZGUwZGM1NDc0YS4uNDc4NWU2ODE0YTFmODVkYWYxODRmYWMxMjAxMDA0Y2Yz
YjIzN2VhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAg
LTEwOSw2ICsxMDksOCBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBGcmFtZUZsYXR0ZW5pbmdWYWx1
ZSA9IEZyYW1lRmxhdHRlbmluZzsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGcmFtZUZsYXR0
ZW5pbmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUpOworCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wpOwogICAgIAogICAgIHN0YXRpYyB2b2lkIHNldEFs
bG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCAzNjg4N2ZjNjE1NjVhMDQ4OWE2ZTUwYjYwNmVmODRk
YTE2MDBlNmU2Li5jMTVmM2JlNDcwOTE3Njg2ZmYyZDRjNDRhMjRiNThjZjk4Y2FlOWZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTEyMiw1ICsx
MjIsNyBAQCBlbnVtIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJG
YWlsdXJlIiB9OwogICAgIHZvaWQgc2V0U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29s
ZWFuIHNob3VsZERlYWN0aXZhdGUpOwogICAgIAogICAgIHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQ
SVBlclBhZ2VTY29wZUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKworICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gdm9pZCBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCmluZGV4IDUyYThhNzU2
YmI0OWRiZGE2NDE3ODQ0YmFlMWE2NGFlYzQ0NjgyMzUuLjY4YzBmYjBiNjUyZWI5NWRkZDkzOTZh
YThlMTliYzlkNjEwMTBlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5t
bQpAQCAtMTIwLDYgKzEyMCw3IEBAIGJvb2wgbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJl
Y3QoVUlWaWV3ICpyb290VmlldywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0CiAgICAgY29sbGVj
dERlc2NlbmRhbnRWaWV3c0luUmVjdCh2aWV3c0luUmVjdCwgcm9vdFZpZXcsIHJlY3QpOwogICAg
IGlmICh2aWV3c0luUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBi
b29sIHNhd0FuRWRpdGFibGVSZWdpb24gPSBmYWxzZTsKICAgICBmb3IgKGF1dG8gKnZpZXcgOiBX
VEY6Om1ha2VSZXZlcnNlZFJhbmdlKHZpZXdzSW5SZWN0KSkgewogICAgICAgICBpZiAoIVt2aWV3
IGlzS2luZE9mQ2xhc3M6V0tDb21wb3NpdGluZ1ZpZXcuY2xhc3NdKQogICAgICAgICAgICAgY29u
dGludWU7CkBAIC0xMjksMTAgKzEzMCwxNiBAQCBib29sIG1heUNvbnRhaW5FZGl0YWJsZUVsZW1l
bnRzSW5SZWN0KFVJVmlldyAqcm9vdFZpZXcsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdAogICAg
ICAgICBXZWJDb3JlOjpJbnRSZWN0IHJlY3RUb1Rlc3QgeyBbdmlldyBjb252ZXJ0UmVjdDpyZWN0
IGZyb21WaWV3OnJvb3RWaWV3XSB9OwogICAgICAgICBpZiAobm9kZS0+ZXZlbnRSZWdpb24oKS5j
b250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QocmVjdFRvVGVzdCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG5vZGUtPmV2ZW50UmVnaW9uKCkuY29udGFpbnMocmVj
dFRvVGVzdCkpCisgICAgICAgIGJvb2wgaGFzRWRpdGFibGVSZWdpb24gPSBub2RlLT5ldmVudFJl
Z2lvbigpLmhhc0VkaXRhYmxlUmVnaW9uKCk7CisgICAgICAgIGlmIChoYXNFZGl0YWJsZVJlZ2lv
biAmJiBub2RlLT5ldmVudFJlZ2lvbigpLmNvbnRhaW5zKHJlY3RUb1Rlc3QpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzYXdBbkVkaXRhYmxlUmVnaW9uIHw9IGhhc0VkaXRh
YmxlUmVnaW9uOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gSWYgd2UgZGlkbid0
IHNlZSBhbiBlZGl0YWJsZSByZWdpb24gdGhlbiB3ZSBkb24ndCBrbm93IHdoZXRoZXIgb3Igbm90
IHRoZXJlIGFyZQorICAgIC8vIGVkaXRhYmxlIGVsZW1lbnRzIGluIHRoZSByZWN0LiBXZSBvbmx5
IGtub3cgdGhhdCB0aGUgd2ViIHByb2Nlc3MgZGlkIG5vdCBkbyBhbgorICAgIC8vIGV2ZW50IHJl
Z2lvbiBwYWludCB0byBmaW5kIHRoZW0uIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGFzayB0aGUg
d2ViIHByb2Nlc3MgdG8KKyAgICAvLyBrbm93IGZvciBzdXJlLgorICAgIHJldHVybiAhc2F3QW5F
ZGl0YWJsZVJlZ2lvbjsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFlMTk1YmQ3ZTJmODI0MGQx
ZTdkODhjN2I3ZGUxNDIyYTRkYjkyOTYuLmUwYTU1ZGU4YzlkYjQxMDc4ODUzZjk0N2JiMzk3Mzg4
MGUyY2YwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03MjUs
NiArNzI1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdl
YkNvcmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYpOwogICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250
ZXh0QW5kUGxhY2VDYXJldChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyNp
ZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIHZvaWQgc2V0RWRpdGFibGVSZWdpb25FbmFi
bGVkKGJvb2wpOworI2VuZGlmCisKICAgICB2b2lkIHNldFNob3VsZFJldmVhbEN1cnJlbnRTZWxl
Y3Rpb25BZnRlckluc2VydGlvbihib29sKTsKICAgICAgICAgCiAgICAgdm9pZCBzZXRTY3JlZW5J
c0JlaW5nQ2FwdHVyZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggYmVlM2JlMDUyMGZjNmRkZDAz
MTg1OTE2ZTI1MDZmNmNiOTBlZTczMC4uYzY1NzZiZjFhNDljZjY2MTcyNWQ0OTY4YmNiNmJhMTQw
OWQzN2ZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzYxLDYgKzM2MSw5IEBAIHN0cnVjdCBXS0F1dG9D
b3JyZWN0aW9uRGF0YSB7CiAgICAgQk9PTCBfdGV4dEludGVyYWN0aW9uRGlkQ2hhbmdlRm9jdXNl
ZEVsZW1lbnQ7CiAgICAgQk9PTCBfdGV4dEludGVyYWN0aW9uSXNIYXBwZW5pbmc7CiAgICAgYm9v
bCBfaXNXYWl0aW5nT25Qb3NpdGlvbkluZm9ybWF0aW9uOworI2lmIEVOQUJMRShFRElUQUJMRV9S
RUdJT04pCisgICAgYm9vbCBfZWRpdGFibGVSZWdpb25FbmFibGVkOworI2VuZGlmCiAKICAgICBX
ZWJDb3JlOjpQb2ludGVySUQgbV9jb21taXRQb3RlbnRpYWxUYXBQb2ludGVySWQ7CiAKQEAgLTQ1
MCw2ICs0NTMsMTAgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzdHJvbmcpIE5TQXJyYXk8VUlUZXh0U3VnZ2VzdGlvbiAqPiAqZGF0YUxpc3RU
ZXh0U3VnZ2VzdGlvbnM7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0VkaXRhYmxlUmVnaW9uRW5h
YmxlZCkgQk9PTCBlZGl0YWJsZVJlZ2lvbkVuYWJsZWQ7CisjZW5kaWYKKwogLSAodm9pZClzZXRV
cEludGVyYWN0aW9uOwogLSAodm9pZCljbGVhblVwSW50ZXJhY3Rpb247CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDRhMzNjYzgxOThhZDg0M2Y3YTg3NjdhMDE0OTY5OGI4ZDdiZDdmNzguLmE3YjFmODkx
ZGNjNzU2OTM0M2RkZTBlNjNjM2Q3ZDc5NzEwMmJjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTM0
LDYgKzkzNCwxMCBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIF9zZWVuSGFyZHdh
cmVLZXlEb3duSW5Ob25FZGl0YWJsZUVsZW1lbnQgPSBOTzsKICNlbmRpZgogCisjaWYgRU5BQkxF
KEVESVRBQkxFX1JFR0lPTikKKyAgICBfZWRpdGFibGVSZWdpb25FbmFibGVkID0gTk87CisjZW5k
aWYKKwogICAgIF90ZXh0SW50ZXJhY3Rpb25EaWRDaGFuZ2VGb2N1c2VkRWxlbWVudCA9IE5POwog
ICAgIF90ZXh0SW50ZXJhY3Rpb25Jc0hhcHBlbmluZyA9IE5POwogCkBAIC00Mjk0LDYgKzQyOTgs
OSBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCiB7CiAjaWYgVVNFKFVJS0lU
X0tFWUJPQVJEX0FERElUSU9OUykKICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFi
bGVFbGVtZW50ID0gTk87CisjZW5kaWYKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAg
IF9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPSBOTzsKICNlbmRpZgogICAgIFtzZWxmIF9lbGVtZW50
RGlkQmx1cl07CiAgICAgW3NlbGYgX2NhbmNlbExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyXTsK
QEAgLTUxOTMsMTAgKzUyMDAsMzQgQEAgLSAodm9pZClfZm9jdXNUZXh0SW5wdXRDb250ZXh0Oihf
V0tUZXh0SW5wdXRDb250ZXh0ICopY29udGV4dCBwbGFjZUNhcmV0QXQ6KENHUG8KICAgICBfcGFn
ZS0+Zm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb250ZXh0Ll90ZXh0SW5wdXRD
b250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCB7IHBvaW50IH0sIFdURk1vdmUoY2hlY2tGb2N1c2Vk
RWxlbWVudCkpOwogfQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKworLSAoQk9PTClp
c0VkaXRhYmxlUmVnaW9uRW5hYmxlZAoreworICAgIHJldHVybiBfZWRpdGFibGVSZWdpb25FbmFi
bGVkOworfQorCistICh2b2lkKXNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZDooQk9PTCllbmFibGVk
Cit7CisgICAgaWYgKF9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICAgICAg
cmV0dXJuOworICAgIF9lZGl0YWJsZVJlZ2lvbkVuYWJsZWQgPSBlbmFibGVkOworICAgIF9wYWdl
LT5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZW5hYmxlZCk7Cit9CisKKyNlbmRpZgorCiAtICh2
b2lkKV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdClyZWN0IGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKikpY29t
cGxldGlvbkhhbmRsZXIKIHsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc2VhcmNoUmVjdCB7IHJl
Y3QgfTsKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIC8vIENvbXB1dGluZyB0aGUg
ZWRpdGFibGUgcmVnaW9uIGlzIGEgYml0IGV4cGVuc2l2ZSBhbmQgY2FuIHNsb3cgZG93biBpbml0
aWFsIHBhZ2UgbG9hZCBzbyBpdCdzCisgICAgLy8gZG9uZSBieSB0aGUgd2ViIHByb2Nlc3MgbGF6
aWx5LiBXZSB0ZWxsIGl0IGRvIHNvIG5vdyBpZiB3ZSBoYXZlbid0IGFscmVhZHkgZG9uZSBzby4g
Tm90ZSB0aGF0CisgICAgLy8gdW50aWwgdGhlIFVJIHByb2Nlc3MgcmVjZWl2ZXMgaXQgbWF5Q29u
dGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3Qgd2lsbCByZXR1cm4gdHJ1ZS4gVGhpcyBpcyBPSwor
ICAgIC8vIGFuZCBqdXN0IG1lYW5zIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGxlc3MgZWZm
aWNpZW50IHRoYW4gaXQgY291bGQgYmUgaWYgdGhlIHJlY3QgaW50ZXJzZWN0cworICAgIC8vIG5v
dGhpbmcgaW4gdGhlIG1lYW50aW1lLgorICAgIHNlbGYuZWRpdGFibGVSZWdpb25FbmFibGVkID0g
WUVTOworCiAgICAgYm9vbCBoaXRJbnRlcmFjdGlvblJlY3QgPSBzZWxmLl9oYXNGb2N1c2VkRWxl
bWVudCAmJiBzZWFyY2hSZWN0LmluY2x1c2l2ZWx5SW50ZXJzZWN0cyhfZm9jdXNlZEVsZW1lbnRJ
bmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3QpOwogICAgIGlmICghc2VsZi53ZWJWaWV3Ll9lZGl0
YWJsZSAmJiAhaGl0SW50ZXJhY3Rpb25SZWN0ICYmICFXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJs
ZUVsZW1lbnRzSW5SZWN0KHNlbGYsIHJlY3QpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KEBbIF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KaW5kZXggMDUwOWNlY2RlNTI0NTdjZTc2YTU4N2M4YjZiNWY4NTBkNzUxMWYxZC4uYjg1YmY1
N2E2MjA1ZTE5YWRhZmUxYjU5NjVhZjFhYjExZDcwZTA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xNTcyLDYgKzE1NzIsMTcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29u
c3QgRWxlbWVudENvbnRleHQmIGNvbnQKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2U6OkZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29udGV4dCwgcG9p
bnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVk
KGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQp
KTsKK30KKworI2VuZGlmCisKKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldFNob3VsZFJldmVhbEN1
cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sIHNob3VsZFJldmVhbEN1cnJlbnRTZWxl
Y3Rpb25BZnRlckluc2VydGlvbikKIHsKICAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmOTRhY2FhZjE4
NTUzODdmNWVjMDg4YmYzZjM3NmJiMWVhMWNlYWVkLi5kMTA4YjkxNjI0ZWFjNWM5ZTEzMTM1YjY5
Y2MwNzJhOWNjYmU1OWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC02NTUsNiArNjU1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHRJbnB1dENv
bnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYpOwogICAgIHZvaWQgZm9j
dXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIHZvaWQgc2V0RWRp
dGFibGVSZWdpb25FbmFibGVkKGJvb2wpOworI2VuZGlmCisKICAgICBib29sIHNob3VsZFJldmVh
bEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxk
UmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uOyB9CiAgICAgdm9pZCBzZXRTaG91
bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oYm9vbCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IDY4ODlkNjIzMmI5ZmU1NTdhMTlhMzkwYTNhZmU0NGQ4NzNmNjllMDkuLmI5MThlMzdhNjBm
MTQxYTNhMGMzMjRhOGUxNDNjMGNjM2M5OWUyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTI2LDYgKzEyNiw5
IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgVGV4dElucHV0Q29udGV4dHNJblJlY3Qo
V2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpIC0+IChWZWN0b3I8c3RydWN0IFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0PiBjb250ZXh0cykgQXN5bmMKICAgICBGb2N1c1RleHRJbnB1dENvbnRleHRBbmRQ
bGFjZUNhcmV0KHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCBXZWJDb3Jl
OjpJbnRQb2ludCBwb2ludCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKICAgICBDbGVhclNlcnZp
Y2VXb3JrZXJFbnRpdGxlbWVudE92ZXJyaWRlKCkgLT4gKCkgQXN5bmMKKyNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQorICAgIFNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29sIGVuYWJsZWQp
CisjZW5kaWYKICNlbmRpZgogCiAgICAgU2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbihib29sIGNv
bnRyb2xsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IGQ4ZTlhMmYxMmQwZDVmMTA0NTM3YTRlY2QxZWEyYjQ5MjNhYTdl
NGUuLjgyNTAxYTIzOTZkMDBlMWVlOTg0MTdjOTQ2ZGRiOGZmMzBlYmZkOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00
MzYyLDYgKzQzNjIsMTUgQEAgdm9pZCBXZWJQYWdlOjpmb2N1c1RleHRJbnB1dENvbnRleHRBbmRQ
bGFjZUNhcmV0KGNvbnN0IEVsZW1lbnRDb250ZXh0JiBlbGVtZW50Q28KICAgICBjb21wbGV0aW9u
SGFuZGxlcih0cnVlKTsKIH0KIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisKK3ZvaWQg
V2ViUGFnZTo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBt
X3BhZ2UtPnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChlbmFibGVkKTsKK30KKworI2VuZGlmCisK
IHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRTY2FsZVBhZ2UoKQogewogICAgIGF1dG8gdHJhbnNh
Y3Rpb25JRCA9IGRvd25jYXN0PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPigqbV9kcmF3aW5n
QXJlYSkubGFzdENvbW1pdHRlZFRyYW5zYWN0aW9uSUQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MDMxMWI5ZTdkYjky
NzVkMjZjMjBjNGJlZjFlOThiODllZmM4YTU4Li43MzhmZDE3NTJkOTU1Mzg5ZWIxMDMxYjRlNzM5
ZWM3ZjBjZjY1ZjU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjAtMDYtMjggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEVkaXRhYmxlIHJlZ2lv
bnMgY2F1c2VzIH4xJSBzbG93ZG93biBpbiBQTFQ1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0
MzYxMzkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBzb21lIHRlc3RzIHRvIGVuc3VyZSB0aGUgbmV3IHNldHRpbmcgd29ya3MgYW5kIHRoZSBm
ZWF0dXJlIGNhbiBiZSBkaXNhYmxlZC4gTm90ZQorICAgICAgICB0aGF0IHRoZSBzZXR0aW5nIGlz
IGVuYWJsZWQgYnkgZGVmYXVsdCB0byBrZWVwIHRoZSBjdXJyZW50IGJlaGF2aW9yLiBTZWUgdGhl
IFdlYkNvcmUKKyAgICAgICAgQ2hhbmdlTG9nIGVudHJ5IGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICAgICAgVXBkYXRlIGV4aXN0aW5ncyB0ZXN0cyB0aGF0IG5lZWQgdGhlIGVkaXRhYmxlIHJlZ2lv
biBlbmFibGVkIHRvIGVuYWJsZSBpdCBub3cgdGhhdCBpdCBtdXN0CisgICAgICAgIGJlIGV4cGxp
Y2l0bHkgZW5hYmxlZC4KKworICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2ZpeGVk
LWFuZC1hYnNvbHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9mbG9hdC1jb250ZW50ZWRpdGFibGUuaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRh
YmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJh
c2ljLmh0bWwuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFz
aWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1lZGl0
YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaGl0LXRlc3QtZml4ZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1l
ZGl0YWJsZS1yZWdpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xsLXRleHQtZmllbGQtYW5k
LWNvbnRlbnRlZGl0YWJsZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L3JlbGF0aXZlLWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtdHJhbnNmb3Jt
ZWQtY29udGVudGVkaXRhYmxlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vc2VhcmNoLWZpZWxkLWJhc2ljLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQt
YmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy5odG1sLgorICAgICAg
ICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMuaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1jb21wb3NpdGVk
LW5lZ2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVkLW9uLXRvcC1vZi1maXhlZC1jb250ZW50ZWRpdGFi
bGVzLmh0bWw6CisKIDIwMjAtMDYtMjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtURkNdIEFkanVzdCB0YWJsZSBjb250ZW50IHZlcnRpY2FsIHBvc2l0
aW9uIHRvIG1hdGNoIHZlcnRpY2FsLWFsaWduCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL2VkaXRhYmxlLXJlZ2lvbi9maXhlZC1hbmQtYWJzb2x1dGUtY29udGVudGVkaXRhYmxlLXNj
cm9sbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9maXhlZC1h
bmQtYWJzb2x1dGUtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwKaW5kZXggM2IzNWRiZDkw
NWY4MjhiNmM3OTk2NmEwMzAzMWI3MWY5Yjc4MjgwZS4uMDQ0YTdhNWUyZGVmOTE1ZjFiYTk1MjY2
ZDJlOWQwYjZkNTE2OWNlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vZml4ZWQtYW5kLWFic29sdXRlLWNvbnRlbnRlZGl0YWJsZS1zY3JvbGxlZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2ZpeGVkLWFuZC1hYnNv
bHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbApAQCAtMSw1ICsxLDExIEBACiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVl
KTsKKzwvc2NyaXB0PgorPC9oZWFkPgogPGJvZHkgc3R5bGU9ImhlaWdodDogNDA5NnB4Ij4KIDxk
aXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IHdpZHRo
OiAxMDAlOyBoZWlnaHQ6IDQwcHgiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC9kaXY+CiA8ZGl2
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyBoZWln
aHQ6IDI1NnB4OyB3aWR0aDogMjU2cHg7IHRvcDogMTAwMHB4OyBsZWZ0OiAyMDBweCIgY29udGVu
dGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL2Zsb2F0LWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRhYmxlLmh0bWwKaW5kZXgg
ZDM3MzM0ZDY1Y2RiNjE3NWVjNzk1NjhmMzFiNTA4YTI2Nzc3MDczYS4uM2Y0YjJjN2JjZjQ2MTY1
NjYzYTRhMTYwNmUzMDU4YWQ5NjlkMTlkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRhYmxlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRhYmxlLmh0bWwK
QEAgLTEsNSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KIDxib2R5PgogPGRp
diBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgd2lkdGg6IDUw
cHg7IGhlaWdodDogNDBweCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KIDxwcmUgaWQ9
InJlc3VsdHMiPjwvcHJlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMt
d2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlNjZmNWQ4
MWZjODU1NzAxMjJhNjIxY2NiY2MwMzZhOGM0MmUyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVk
aXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorSGl0IHRlc3RzIGZv
ciBlZGl0YWJsZSBlbGVtZW50cyBpbnNpZGUgdGhlIGJsYWNrIG91dGxpbmVkIHJlY3RhbmdsZSB3
aGVuIHRoZSBlZGl0YWJsZSByZWdpb24gaXMgZGlzYWJsZWQuIFRoZXJlIHNob3VsZCBiZSBtb3Jl
IGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRpc2FibGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyAoeCA9IDEwMCwgeSA9IDEwMCwgd2lkdGggPSAyMDIsIGhlaWdodCA9IDIw
MikgY29udGFpbnMgZWRpdGFibGUgZWxlbWVudHMuCitQQVNTICh4ID0gMCwgeSA9IDAsIHdpZHRo
ID0gNTAsIGhlaWdodCA9IDUwKSBjb250YWlucyBlZGl0YWJsZSBlbGVtZW50cy4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0
LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jYzM0YmZiOGNjOWE3YWZlM2MyOTk4N2ZlMDEyNWVjY2YxMzFkNzZhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMt
d2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9oaXQtdGVzdC11dGlsaXRpZXMu
anMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3Rlc3QtY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgdG9wOiAxMDBweDsKKyAgICBsZWZ0OiAxMDBweDsKKyAgICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRlc3QtY29udGFpbmVyIj4K
KyAgICA8aW5wdXQ+Cis8L2Rpdj4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRhYmxlUmVnaW9uRW5hYmxlZChmYWxzZSk7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQor
eworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiTXVz
dCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGxldCB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qt
Y29udGFpbmVyIik7CisgICAgYXdhaXQgc2hvdWxkSGF2ZUVkaXRhYmxlRWxlbWVudHNJblJlY3RG
b3JFbGVtZW50KHRlc3RDb250YWluZXIpOworCisgICAgLy8gV2l0aG91dCBlZGl0YWJsZSByZWdp
b24gZW5hYmxlZCB0aGlzIHJlY3QgaXMgdGhvdWdodCB0byBjb250YWluIHNvbWV0aGluZyBlZGl0
YWJsZSBldmVuIHRob3VnaCBpdCBkb2Vzbid0LgorICAgIGF3YWl0IHNob3VsZEhhdmVFZGl0YWJs
ZUVsZW1lbnRzSW5SZWN0KDAsIDAsIDUwLCA1MCk7CisKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKHRlc3RDb250YWluZXIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitkZXNjcmlw
dGlvbigiSGl0IHRlc3RzIGZvciBlZGl0YWJsZSBlbGVtZW50cyBpbnNpZGUgdGhlIGJsYWNrIG91
dGxpbmVkIHJlY3RhbmdsZSB3aGVuIHRoZSBlZGl0YWJsZSByZWdpb24gaXMgZGlzYWJsZWQuIFRo
ZXJlIHNob3VsZCBiZSBtb3JlIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRpc2FibGVkLiIpOworcnVu
VGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy5odG1sIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMuaHRtbAppbmRleCA4
MjNlN2NmM2U2NTFhODRmMzk4NWEwNDQzOTc4MzBkY2YzNTgxZWNkLi4xMGU2NmM0MWUwNTZiNzcz
NzJhMDVhOTViMTNmNmM2Y2Q2Y2JhZTI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLmh0bWwKQEAgLTI1LDYgKzI1LDkg
QEAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCitpZiAod2luZG93LmludGVybmFscykKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOworCiBh
c3luYyBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVz
dC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2Vk
aXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwKaW5k
ZXggNmM2YjYwYTBkYTU0ZjBmNjYwYWZiMmEyNWFlYTA1YjFiOGI3YjcyZS4uMGI1YTgxYTE0OGYz
ZmMzMGExMTI4ZGY2NWZjNWZhZDI1M2NlZTk3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZWRpdGFibGUtZG9jdW1lbnQtZWxlbWVudC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWVk
aXRhYmxlLWRvY3VtZW50LWVsZW1lbnQuaHRtbApAQCAtOSw2ICs5LDkgQEAKIDxzY3JpcHQ+CiB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CisKIGFz
eW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0
LWZpeGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVz
dC1maXhlZC5odG1sCmluZGV4IGQyYjQ0MzQ3ZjdjZGI5Y2FkZDQ4MTkzYmRiODBmNjVhZjA3NDdk
YzYuLjlhNTFhOWNmZDM5MjMzMzM1MWNkNDI1NThjODJkMmE2ZGY5ODI0ODAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWZpeGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZml4ZWQu
aHRtbApAQCAtMjIsNiArMjIsOSBAQCB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKK2lmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQodHJ1ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGlmICgh
d2luZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRp
dGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbAppbmRleCAzMTBiMjVmYTA2ZmI4
YWIzMDVkYjBkNTFmZmExODc5Mzc3NmIxNTVhLi5jN2VkODRlMTU4ODk3MjBlMWY2ODMxNmY3YjYw
M2RhOWQ4ZjFkNGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vaGl0LXRlc3Qtb3ZlcmxhcC5odG1sCkBAIC02OSw2ICs2OSw5IEBAIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKKwogYXN5bmMgZnVu
Y3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtdGV4dGFy
ZWEtZW1wdHktc3BhY2UuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L2hpdC10ZXN0LXRleHRhcmVhLWVtcHR5LXNwYWNlLmh0bWwKaW5kZXggOWRmNTFhNzIwODc4YjUy
MjYxNDRjZDc4OGJjYmZmOWZmYjk2MzIwMS4uY2ZkNDA0ZTBhNGM0MjllYTAwMDY1MWQ0OTM5MDc4
YWNhYmY2NzcwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vaGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC10ZXh0YXJlYS1lbXB0eS1zcGFjZS5odG1s
CkBAIC0yNSw2ICsyNSw5IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5h
YmxlZCh0cnVlKTsKKwogYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCF3aW5k
b3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxl
LXJlZ2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQwZmFmYTI3ZjUxOWIwZWM2OTQ4YWM3
OWMzMmFiNmNlMjk0NTNjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1NCBAQAorCisoR3JhcGhpY3NMYXllcgorICAoYW5jaG9yIDAuMDAgMC4w
MCkKKyAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAgICAgIChjb250ZW50c09w
YXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJhY2tncm91bmRDb2xvciAj
RkZGRkZGKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQorICAgICAgICAgIChib3VuZHMgMzA0LjAwIDMwNC4w
MCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgKGNoaWxkcmVuIDEKKyAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAyLjAwIDIu
MDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgb3JpZ2luIDAuMDAgMjAwLjAwKQorICAg
ICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAgICAgICAgICAgICAoYm91
bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAg
ICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgIChhbmNo
b3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAg
ICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyAz
MTAuMDAgNjcwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoYm91bmRzIDMxMC4wMCA2NzAuMDApCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAp
CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAg
ICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRh
YmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZy
YW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI2M2I5ZDYyMWY2
Y2NkMWUwZGExYWVjNWZlNDgyZWRlMDk0ODVhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lv
bi5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBz
dHlsZT0iaGVpZ2h0OiA0MDk2cHgiPgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBoZWlnaHQ9IjMw
MCIgc3JjZG9jPSIKKzxzdHlsZT4KKy5zY3JvbGxlciB7CisgICAgbWFyZ2luLXRvcDogNDAwcHg7
CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDogMzAwcHg7CisgICAgb3ZlcmZsb3c6IHNj
cm9sbDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKy5jb250ZW50cyB7CisgICAg
d2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogNTAwcHg7Cit9CisuZWRpdGFibGUgeworICAgIC13
ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGU7CisgICAgYm9yZGVyOiAycHggc29saWQgYmx1
ZTsKK30gICAKKzwvc3R5bGU+Cis8cD5pZnJhbWU8L3A+Cis8ZGl2IGNsYXNzPSdlZGl0YWJsZSBi
b3gnIHN0eWxlPSdtYXJnaW4tdG9wOiAyNTBweDsnPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSdzY3Jv
bGxlcicgc3R5bGU9J21hcmdpbi10b3A6IDUwcHg7Jz4KKyAgICA8ZGl2IGNsYXNzPSdjb250ZW50
cyc+CisgICAgICAgIE92ZXJmbG93IHNjcm9sbCBpbiBpZnJhbWUKKyAgICAgICAgPGRpdiBjbGFz
cz0nZWRpdGFibGUgYm94JyBzdHlsZT0nbWFyZ2luLXRvcDogNTBweDsnPgorICAgICAgICA8L2Rp
dj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK3dpbmRvdy5wYXJlbnQuc2Nyb2xsSUZy
YW1lQW5kRHVtcFJlZ2lvbnMoKTsKKzwvc2NyaXB0PgorIj4KKzwvaWZyYW1lPgorPHByZSBpZD0i
cmVzdWx0cyI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZmFsc2UpOworfQorCitmdW5jdGlvbiBzY3JvbGxJ
RnJhbWVBbmREdW1wUmVnaW9ucygpCit7CisgICAgdGVzdEZyYW1lLmNvbnRlbnRXaW5kb3cuc2Ny
b2xsVG8oMCwgMjAwKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICByZXN1bHRz
LnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJu
YWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RS
RUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKKyAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aWZyYW1lLmh0bWwKaW5kZXggODcwODQ5MTM5ZmE4NGM4NjE3MDQxYjAzZmEzNDVlMGFjZmJjNGZl
MC4uYTdlZTRlODllZTA0YTVkYjUzMDNhNzMxYjljZTRjNDBjNGYwZjdhYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0bWwKQEAgLTQxLDggKzQx
LDEwIEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwogfQogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVk
KHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQo
dHJ1ZSk7Cit9CiAKIGZ1bmN0aW9uIHNjcm9sbElGcmFtZUFuZER1bXBSZWdpb25zKCkKIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL291dC1oYW5naW5n
LWNoaWxkLW9mLWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWwKaW5k
ZXggOTJjMzU3OTI2ZWNjMGY1ZGE3ZmVhOWFkNDYzZGIzNDk3NDc5OTZmYS4uZGM4NTczZDYxMDQ5
ZWQyZmY1ZTNmNTkyODA3MjhmZDJiMjRjNjlkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdp
bmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTM0LDYgKzM0LDggQEAKIDxzY3Jp
cHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFi
bGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgcmVzdWx0
cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVy
bmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9U
UkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL292ZXJmbG93LXNjcm9sbC10
ZXh0LWZpZWxkLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL292ZXJmbG93LXNjcm9sbC10ZXh0LWZpZWxkLWFuZC1jb250ZW50ZWRp
dGFibGUuaHRtbAppbmRleCBhZDI5NDU4NTEyMTc0ZjkxNDQ1MTFjZjNhZWU1YmNjNGM4ZWMxNjlh
Li40NTk2NzAwYzMwNzUwZmFjZDZkNzM5YmMzODg0Y2RhZDNkMDNiMWU4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9vdmVyZmxvdy1zY3JvbGwtdGV4dC1m
aWVsZC1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xsLXRleHQtZmllbGQtYW5kLWNvbnRlbnRlZGl0
YWJsZS5odG1sCkBAIC0yNiw2ICsyNiw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsK
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5h
bHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURF
U19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVS
X1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtZml4ZWQtY29udGVudGVkaXRhYmxlLXNj
cm9sbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2
ZS1pbnNpZGUtZml4ZWQtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwKaW5kZXggMTk3YWYz
MmU5ZmJkNWFkMjJiNTY3YzBlNjFiZjkyMmZhMDM4M2I2MS4uMGI4YTYwYjkwYWU5ZDQ5MjhlNDJl
MDQ1NjMxZDllMzNlNWRmNmY4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLWZpeGVkLWNvbnRlbnRlZGl0YWJsZS1zY3JvbGxl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZl
LWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbApAQCAtMTAsNiArMTAs
OCBAQCB3aW5kb3cuc2Nyb2xsVG8oMCwgMTAyNCk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CiBpZiAo
d2luZG93LmludGVybmFscykKICAgICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxh
eWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZF
TlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9Q
RVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLXRyYW5zZm9ybWVkLWNvbnRlbnRlZGl0YWJsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRl
LXRyYW5zZm9ybWVkLWNvbnRlbnRlZGl0YWJsZS5odG1sCmluZGV4IDUxOWYyOTk5NmIwNTAxNTk4
N2Y2MzE3MjFhNzVmZWU1YTcxMmUwYzMuLjQ3ZTcxY2Q3NjAwMGUxMDRlYWRmNjlmNDk0MGZjZTU3
OTdlMTZhM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L3JlbGF0aXZlLWluc2lkZS10cmFuc2Zvcm1lZC1jb250ZW50ZWRpdGFibGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtdHJhbnNm
b3JtZWQtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTE5LDYgKzE5LDggQEAKIDxzY3JpcHQ+CiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdp
b25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgcmVzdWx0cy50ZXh0
Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5M
QVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lO
Q0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3NlYXJjaC1maWVsZC1iYXNpYy5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2VhcmNoLWZpZWxkLWJhc2lj
Lmh0bWwKaW5kZXggNjkyMzEzNzQyNGE5ZmY4NGYwNjcwODkzY2FlYmUyNGU0NWExYzY0MS4uZWIz
ZGZiOTNkNDM3NDBjNjI2ZDNjMDJlZjk0NzljOWI1NzMzYjljNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2VhcmNoLWZpZWxkLWJhc2ljLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2VhcmNoLWZpZWxkLWJhc2lj
Lmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5
ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVO
VF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BF
UlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQt
YmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4
MWZlNWQ5MGY2NWY1MDg1ZDE0M2Q5MTZmOTg0NTE0YzQzMmFmMjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdp
dGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKKyhH
cmFwaGljc0xheWVyCisgIChhbmNob3IgMC4wMCAwLjAwKQorICAoYm91bmRzIDgwMC4wMCA2MDAu
MDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAw
LjAwIDYwMC4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVu
dCAxKQorICAgICAgKGJhY2tncm91bmRDb2xvciAjRkZGRkZGKQorICAgICkKKyAgKQorKQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxk
LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9u
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2JiYjAxZTdmZjVhNThjZWQ0ZjJiNTRkNDhjY2VjZmM3MDQzYTUy
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApAQCAtMCwwICsx
LDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8aW5wdXQgdHlwZT0idGV4
dCI+Cis8cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFs
cykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUp
OworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRp
dGFibGVSZWdpb25FbmFibGVkKGZhbHNlKTsKKyAgICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50
ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5D
TFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9M
QVlFUl9QUk9QRVJUSUVTKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNp
Yy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1i
YXNpYy5odG1sCmluZGV4IDg0YTgwMTllMjViMmUyNDM0MWQ5Y2FhZGJmNDk3Yjk3MjcwZTI4NmEu
LmIyYzAzY2Q5MTQwOTg1NTc1NzQ5MmJmMzc0OTRjYzUwZmM0MjZkMTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2lj
Lmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5
ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVO
VF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BF
UlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1jb21wb3NpdGVkLW5lZ2F0aXZlLXotaW5kZXgt
bGF5ZXIuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmll
bGQtaW5zaWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUtei1pbmRleC1sYXllci5odG1sCmluZGV4IGI0
ZTRkOGQ3ZTRlNzQ1Y2YzOTZhNDgzMDRjNjAxM2Q5MWQwOTRkMjMuLjAxZTFlM2E2NDIzOGI4MDQ5
MjJlMWQ3NjA1NjE0Y2IwYzRmYjNkMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUtei1p
bmRleC1sYXllci5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUtei1pbmRleC1sYXllci5odG1s
CkBAIC0xOCw2ICsxOCw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJU
cmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9S
RUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJ
RVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vdGV4dGFyZWEtYmFzaWMuaHRtbAppbmRleCAxYTE4OWE5NmFkMDE3MGI3MzJiODA5
NjkwN2NmOThhMWYyYTZhNWQxLi42OWZlNzYyNTdkYWMyMjEwZmY1N2IyZWQ5YzMwMDMzMjU3NGY3
ODU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0
YXJlYS1iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L3RleHRhcmVhLWJhc2ljLmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxl
ZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQg
PSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJF
RV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19S
T09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90cmFuc2Zvcm1lZC1zY3JvbGxlZC1vbi10b3Atb2Yt
Zml4ZWQtY29udGVudGVkaXRhYmxlcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vdHJhbnNmb3JtZWQtc2Nyb2xsZWQtb24tdG9wLW9mLWZpeGVkLWNvbnRlbnRlZGl0
YWJsZXMuaHRtbAppbmRleCBiYmM3ZmY5OWRlZjEzMWYxM2VkYzMyZTNiMmNiNjc3MWFhOTQxNmRi
Li5mYzNhYWQ5ZmQ5YzJmNmMxM2VkMTQ4N2ViZWNiY2ZiMTVlZjIyMGMwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90cmFuc2Zvcm1lZC1zY3JvbGxlZC1v
bi10b3Atb2YtZml4ZWQtY29udGVudGVkaXRhYmxlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVkLW9uLXRvcC1vZi1maXhl
ZC1jb250ZW50ZWRpdGFibGVzLmh0bWwKQEAgLTIxLDYgKzIxLDggQEAKIHdpbmRvdy5zY3JvbGxU
bygwLCAxMjApOwogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAg
IHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50
LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMu
TEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403118</attachid>
            <date>2020-06-29 15:01:52 -0700</date>
            <delta_ts>2020-06-29 15:18:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213659-20200629150149.patch</filename>
            <type>text/plain</type>
            <size>47038</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZlYzIxNjc5Y2U3OTAz
NTgwNWI4MmZkNjhhNTQzMzFiOWVlNWVlZS4uMTU3ODJmMzhkMjRkODI2ZDJhMmNjZGQzNzUwMzNl
NzY0ZjA4YWNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIwLTA2LTI5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIHNsb3dkb3duIGJ5IG9ubHkgZW5hYmxpbmcgZWRpdGFibGUgcmVnaW9uIHdo
ZW4gUGFnZTo6ZWRpdGFibGVFbGVtZW50c0luUmVjdCBpcyBjYWxsZWQuCisKKyAgICAgICAgVGhl
cmUgYXJlIHR3byBwYXJ0cyB0aGF0IG1ha2UgY29tcHV0aW5nIHRoZSBlZGl0YWJsZSByZWdpb24g
ZXhwZW5zaXZlOgorICAgICAgICAgICAgICAgIDEuIFJlcXVpcmVzIHRyYXZlcnNpbmcgZGVzY2Vu
ZGVudHMgZHVyaW5nIHBhaW50aW5nIHdoZW4gYSBub3JtYWwgcGFpbnQgbWF5IGJlCisgICAgICAg
ICAgICAgICAgICAgYWJsZSB0byBhdm9pZCB0aGlzLgorICAgICAgICAgICAgICAgIDIuIENhbiBj
YXVzZSBtb3JlIGV2ZW50IHJlZ2lvbiBpbnZhbGlkYXRpb25zIGJlY2F1c2UgaXQgZXh0ZW5kcyB0
aGUgaW52YWxpZGF0aW9uCisgICAgICAgICAgICAgICAgICAgY3JpdGVyaW9uIHRvIGluY2x1ZGUg
Y2hhbmdlcyB0byBlbGVtZW50IGVkaXRhYmlsaXR5LgorCisgICAgICAgIFRlc3RzOiBlZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5o
dG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91
dC1lZGl0YWJsZS1yZWdpb24uaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCisKKyAg
ICAgICAgVGVzdHM6IGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhv
dXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCisgICAgICAgICAgICAg
ICBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLmh0bWwKKworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWU6OmludmFsaWRhdGVDb250ZW50RXZlbnRSZWdpb25zSWZOZWVkZWQpOiBDaGVj
ayBpZiBlZGl0YWJsZSByZWdpb24gaXMgZW5hYmxlZC4KKyAgICAgICAgSWYgaXQgaXMgdGhlbiBk
byB3aGF0IHdlIGRvIG5vdy4gT3RoZXJ3aXNlLCBkb24ndCBpbnZhbGlkYXRlIHRoZSByZWdpb24g
dW5sZXNzIHdlIHdlcmUgZ29pbmcKKyAgICAgICAgdG8gZG8gc28gYW55d2F5LgorICAgICAgICAq
IHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQpOiBBZGRlZC4gVXBkYXRlIHN0YXRlIGFuZCB0aGVuIGludmFsaWRhdGUKKyAgICAg
ICAgdGhlIGV2ZW50IHJlZ2lvbiBpbiBhbGwgbGF5ZXJzLgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbiBjb25zdCk6IEFkZGVkLiBSZXR1cm5zIHdoZXRo
ZXIgdG8gYnVpbGQgdGhlCisgICAgICAgIGVkaXRhYmxlIHJlZ2lvbjogZWl0aGVyIHdoZW4gUGFn
ZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSBpcyB0cnVlIG9yIHRoZSBlZGl0YWJsZQorICAg
ICAgICByZWdpb24gZGVidWcgb3ZlcmxheSBpcyBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6ZGlkRmluaXNoTG9hZCk6IFR1cm4gb2ZmIGVkaXRhYmxlIHJlZ2lvbiBhcyBpdCBtYXkg
bm90IGJlIG5lZWRlZCBvbgorICAgICAgICB0aGUgbmV3IHBhZ2UuCisgICAgICAgICogcGFnZS9Q
YWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCBj
b25zdCk6IEFkZGVkLgorCisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp1bml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFJlZ2lvbjo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpj
b250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRSZWdpb246OmR1bXAgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9FdmVudFJlZ2lv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246Omhhc0VkaXRhYmxlUmVnaW9uIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpyZWN0c0ZvckVkaXRhYmxlRWxl
bWVudHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmRlY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZW5zdXJlRWRpdGFibGVSZWdpb24pOgorICAg
ICAgICBUaGUgZWRpdGFibGUgcmVnaW9uIGlzIG5vdyBhbiBPcHRpb25hbDw+LiBUaGVyZSB3aWxs
IG9ubHkgYmUgb25lIGlmIGVuc3VyZUVkaXRhYmxlUmVnaW9uCisgICAgICAgIHdhcyBjYWxsZWQs
IHdoaWNoIGlzIG9ubHkgd2hlbiBQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpIHJldHVy
bnMgdHJ1ZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0
eWxlV2lsbENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6Om1haW50YWluc0V2ZW50UmVnaW9uIGNvbnN0KToKKyAgICAg
ICAgT25seSBkbyB3aGF0IHdlIGRvIG5vdyBpZiBQYWdlOjpzaG91bGRCdWlsZEVkaXRhYmxlUmVn
aW9uKCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnVwZGF0ZUV2ZW50UmVnaW9uKTogSW5zdGFudGlhdGUgdGhlIGVkaXRhYmxlIHJlZ2lvbiwg
aWYgbmVlZGVkLgorICAgICAgICBQYWludGluZyB3aWxsIHRoZW4gcG9wdWxhdGUgaXQuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6YXBwbHlUb0NvbXBvc2l0ZWRMYXllckluY2x1
ZGluZ0Rlc2NlbmRhbnRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmludmFsaWRhdGVFdmVudFJlZ2lvbkZvckFsbExheWVycyk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjbGVhckJhY2tpbmdGb3JBbGxM
YXllcnMpOiBXcm90ZSBpbiB0ZXJtcyBvZiBhcHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5n
RGVzY2VuZGFudHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNs
ZWFyQmFja2luZ0ZvckxheWVySW5jbHVkaW5nRGVzY2VuZGFudHMpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorICAg
ICAgICBBZGQgYSBuZXcgaW50ZXJuYWwgc2V0dGluZyBmb3IgdGVzdGluZyBwdXJwb3NlcyB0byB0
b2dnbGUgZW5hYmxpbmcvZGlzYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbi4KKwogMjAyMC0wNi0yOCAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gQWRq
dXN0IHRhYmxlIGNvbnRlbnQgdmVydGljYWwgcG9zaXRpb24gdG8gbWF0Y2ggdmVydGljYWwtYWxp
Z24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNmYxMzNmYzJjZTJkOGY5N2I0MDYyZDQ0MzI3OWQ4MWUxOGQxMDRmOS4u
OTI4OGJmZWM1ZDg4ZDg4Yjc5NzRkNGY1Njg2NWRlZmJmNDdjMmQ5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMC0wNi0yOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPU10gRWRpdGFibGUgcmVnaW9ucyBjYXVzZXMgfjElIHNsb3dkb3duIGlu
IFBMVDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MzY1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNjEzOTA+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHVwIFJlbW90ZUxheWVyVHJlZVZp
ZXdzIG5vdyB0aGF0IHRoZSBlZGl0YWJsZSByZWdpb24gaXMgYW4gT3B0aW9uYWw8Pi4gSGF2ZQor
ICAgICAgICB0aGUgVUkgcHJvY2VzcyBtZXNzYWdlIHRoZSB3ZWIgcHJvY2VzcyB0byBlbmFibGUg
ZWRpdGFibGUgcmVnaW9uIG9uIHRoZSBmaXJzdAorICAgICAgICBpbnZvY2F0aW9uIG9mIF9yZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3QsIHdoaWNoIGlzIGdvb2QgaW5kaWNhdG9yIHRoYXQg
dGhlcmUKKyAgICAgICAgd291bGQgYmUgYmVuZWZpdCB0byBjb21wdXRpbmcgaXQgYXMgYSB0eXBp
Y2FsIGNsaWVudCB0aGF0IGNhbGxzIGl0IHdpbGwgY2FsbCBpdAorICAgICAgICBtYW55IHRpbWVz
LgorCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJU
cmVlVmlld3MubW06CisgICAgICAgIChXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KTogRml4IHVwIHRoZSBsb2dpYyBub3cgdGhhdCB0aGVyZSBtYXkKKyAgICAgICAgYmUg
bm90IGJlIGFuIGVkaXRhYmxlIHJlZ2lvbiBzZW50IG92ZXIgaW4gdGhlIGxhc3QgZXZlbnQgcmVn
aW9uIHVwZGF0ZS4gSWYgdGhlcmUKKyAgICAgICAgaXNuJ3Qgb25lIHRoZW4gd2UgZG9uJ3Qga25v
dyBpZiB0aGVyZSBhcmUgZWRpdGFibGUgZWxlbWVudHMgaXMgaW4gdGhlIHJlY3Qgb2Ygbm90Lgor
ICAgICAgICBTbywganVzdCByZXR1cm4gdHJ1ZTogdGhlcmUgbWF5IGJlIGVkaXRhYmxlIGVsZW1l
bnRzIGluIHRoZSByZWN0LiBUaGUgY2FsbGVyIHdpbGwKKyAgICAgICAgaGF2ZSB0byBtZXNzYWdl
IHRoZSB3ZWIgcHJvY2VzcyB0byBmaW5kIG91dCB0aGUgcmVhbCBhbnN3ZXIuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdCk6IEVuYWJsZSBlZGl0YWJsZSByZWdpb24u
IElmIGl0J3MgYWxyZWFkeQorICAgICAgICBlbmFibGVkIHRoZW4gZG9pbmcgc28gYWdhaW4gZG9l
cyBub3RoaW5nLgorCiAyMDIwLTA2LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHRocmVhZC1zYWZldHkgaXNzdWUgaW4gd2ViUHJvY2Vzc1Bvb2xIaWdo
RHluYW1pY1JhbmdlRGlkQ2hhbmdlQ2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBk
MDRmYTBjMzllMGViOWE4M2NjZDg2NGU0MmFlMzA0MmI5OTI4MzA4Li5mZjFhMjdlYmM5NWZjN2M0
YzQ2YTViNTAyMzM3OTdhZTg5OTc4ZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzEzLDcg
KzMxMyw3IEBAIHZvaWQgRnJhbWU6OmludmFsaWRhdGVDb250ZW50RXZlbnRSZWdpb25zSWZOZWVk
ZWQoKQogICAgIGhhc1RvdWNoQWN0aW9uRWxlbWVudHMgPSBtX2RvYy0+bWF5SGF2ZUVsZW1lbnRz
V2l0aE5vbkF1dG9Ub3VjaEFjdGlvbigpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JF
R0lPTikKLSAgICBoYXNFZGl0YWJsZUVsZW1lbnRzID0gbV9kb2MtPm1heUhhdmVFZGl0YWJsZUVs
ZW1lbnRzKCk7CisgICAgaGFzRWRpdGFibGVFbGVtZW50cyA9IG1fZG9jLT5tYXlIYXZlRWRpdGFi
bGVFbGVtZW50cygpICYmIG1fcGFnZS0+c2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigpOwogI2Vu
ZGlmCiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gbG9vayBhdCB3aGVlbCBldmVudCBoYW5k
bGVycyB0b28uCiAgICAgaWYgKCFoYXNUb3VjaEFjdGlvbkVsZW1lbnRzICYmICFoYXNFZGl0YWJs
ZUVsZW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMTQ2NzkxNmIwYjE5ZWM3MjY3YzdkOGJk
ODVkYmRmZDBmZDJkYmRhNS4uZGM1NWJkMWIzMGE4NWJhM2ZhYWI5MmFkZGVlNzAzMTc2NGVjY2Qy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05MjAsNiArOTIwLDMxIEBAIHZvaWQgUGFnZTo6dW5t
YXJrQWxsVGV4dE1hdGNoZXMoKQogICAgIH0pOwogfQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JF
R0lPTikKKwordm9pZCBQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCBlbmFibGVk
KQoreworICAgIGlmIChtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkID09IGVuYWJsZWQpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkID0gZW5hYmxlZDsKKyAg
ICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIobWFpbkZyYW1lKCkudmlldygpKTsKKyAgICBp
ZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChhdXRvKiByZW5kZXJWaWV3
ID0gZnJhbWVWaWV3LT5yZW5kZXJWaWV3KCkpCisgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0
b3IoKS5pbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKK30KKworI2VuZGlmCisK
KyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCit2b2lkIFBhZ2U6OnNob3VsZEJ1aWxkRWRp
dGFibGVSZWdpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2lzRWRpdGFibGVSZWdpb25FbmFi
bGVkIHx8IG1fc2V0dGluZ3MtPnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkgJiBFZGl0YWJs
ZUVsZW1lbnRSZWdpb247Cit9CisKKyNlbmRpZgorCiBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBQYWdl
OjplZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2VhcmNoUmVjdEluUm9v
dFZpZXdDb29yZGluYXRlcykgY29uc3QKIHsKICAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQ
dHIobWFpbkZyYW1lKCkudmlldygpKTsKQEAgLTExODYsNiArMTIxMSw5IEBAIHZvaWQgUGFnZTo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWQoKQogCiB2b2lkIFBhZ2U6OmRpZEZpbmlzaExvYWQoKQog
eworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgbV9pc0VkaXRhYmxlUmVnaW9uRW5h
YmxlZCA9IGZhbHNlOworI2VuZGlmCiAgICAgcmVzZXRSZWxldmFudFBhaW50ZWRPYmplY3RDb3Vu
dGVyKCk7CiAKICAgICBpZiAobV9wZXJmb3JtYW5jZU1vbml0b3IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4
IGFjMjA2NDRiZTM5MjU4ZDk2MGU0YzQ1MzhmNTMyZjc2YjUyNzJmNTMuLmY3ZDIyN2VlZDliMTEy
YmFjYmUzM2U5ZGJhZWRmZjlkNzBjYzA1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC03NDIsNiArNzQy
LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3Qg
U3RyaW5nJiwgV1RGTG9nQ2hhbm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7CiAKKyNpZiBFTkFCTEUo
RURJVEFCTEVfUkVHSU9OKQorICAgIGJvb2wgc2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigpIGNv
bnN0OworICAgIGJvb2wgaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2lzRWRpdGFibGVSZWdpb25FbmFibGVkOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCA9IHRydWUpOworI2VuZGlmCisKICAgICBXRUJDT1JF
X0VYUE9SVCBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBlZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0
IEZsb2F0UmVjdCYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTEwMDMsNiArMTAwOSwxMCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kZWxl
Z2F0ZXNTY2FsaW5nIHsgZmFsc2UgfTsKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisg
ICAgYm9vbCBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAg
ICAgVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBtX3VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24geyBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIgfTsKICAgICAKICAgICAv
LyBGb3IgdGVzdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVu
dFJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCmlu
ZGV4IDYzY2IyM2Q3ZmU5ZDA3ZDRiODRlZDRhMTgyZjhkYzFlMmI5ZjQzMzEuLjg3Mzk0ZWQ2Mzk5
MDNlMjJmYmUzYmU2NzgyYzQ3Y2JlZDU5YjM2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V2ZW50UmVnaW9uLmNwcApAQCAtMTMwLDggKzEzMCw4IEBAIHZvaWQgRXZlbnRSZWdpb246OnVu
aXRlKGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wg
b3ZlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaWYgKG92ZXJy
aWRlVXNlck1vZGlmeUlzRWRpdGFibGUgfHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2Rp
Znk6OlJlYWRPbmx5KQotICAgICAgICBtX2VkaXRhYmxlUmVnaW9uLnVuaXRlKHJlZ2lvbik7Cisg
ICAgaWYgKG1fZWRpdGFibGVSZWdpb24gJiYgKG92ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUg
fHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5KSkKKyAgICAgICAg
bV9lZGl0YWJsZVJlZ2lvbi0+dW5pdGUocmVnaW9uKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KG92ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUpOwogI2VuZGlmCkBAIC0xNTYsNyArMTU2LDgg
QEAgdm9pZCBFdmVudFJlZ2lvbjo6dHJhbnNsYXRlKGNvbnN0IEludFNpemUmIG9mZnNldCkKICNl
bmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBtX2VkaXRhYmxlUmVnaW9u
LnRyYW5zbGF0ZShvZmZzZXQpOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uKQorICAgICAgICBt
X2VkaXRhYmxlUmVnaW9uLT50cmFuc2xhdGUob2Zmc2V0KTsKICNlbmRpZgogfQogCkBAIC0yODMs
MTAgKzI4NCwxMiBAQCBjb25zdCBSZWdpb24mIEV2ZW50UmVnaW9uOjpldmVudExpc3RlbmVyUmVn
aW9uRm9yVHlwZShFdmVudExpc3RlbmVyUmVnaW9uVHlwZSB0eQogI2VuZGlmIC8vIEVOQUJMRShX
SEVFTF9FVkVOVF9SRUdJT05TKQogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKwogYm9v
bCBFdmVudFJlZ2lvbjo6Y29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24uaW50ZXJzZWN0
cyhyZWN0KTsKKyAgICByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbiAmJiBtX2VkaXRhYmxlUmVnaW9u
LT5pbnRlcnNlY3RzKHJlY3QpOwogfQorCiAjZW5kaWYKIAogdm9pZCBFdmVudFJlZ2lvbjo6ZHVt
cChUZXh0U3RyZWFtJiB0cykgY29uc3QKQEAgLTMyMiw4ICszMjUsOCBAQCB2b2lkIEV2ZW50UmVn
aW9uOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQotICAgIGlmICghbV9lZGl0YWJsZVJlZ2lvbi5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCBtX2VkaXRhYmxlUmVn
aW9uOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uICYmICFtX2VkaXRhYmxlUmVnaW9uLT5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCAq
bV9lZGl0YWJsZVJlZ2lvbjsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwogICAgIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaAppbmRleCA1MDEyNDNl
MDQ4Yjk4NGU2YjA2NmRhOTRiNTgyNTI4ZmQ1ZGRlZTgyLi42YzRmYWU2MzM3MjViN2U2ZThiZmQ5
ZGVhOTg1OTE1YzgxMGM5NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXZlbnRSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24u
aApAQCAtODcsOCArODcsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQorICAgIHZvaWQgZW5zdXJlRWRpdGFibGVSZWdpb24oKTsKKyAgICBib29sIGhh
c0VkaXRhYmxlUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbi5oYXNWYWx1
ZSgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb250YWluc0VkaXRhYmxlRWxlbWVudHNJ
blJlY3QoY29uc3QgSW50UmVjdCYpIGNvbnN0OwotICAgIFZlY3RvcjxJbnRSZWN0LCAxPiByZWN0
c0ZvckVkaXRhYmxlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX2VkaXRhYmxlUmVnaW9uLnJl
Y3RzKCk7IH0KKyAgICBWZWN0b3I8SW50UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRz
KCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbiA/IG1fZWRpdGFibGVSZWdpb24tPnJl
Y3RzKCkgOiBWZWN0b3I8SW50UmVjdCwgMT4geyB9OyB9CiAjZW5kaWYKIAogICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTExMyw3ICsx
MTUsNyBAQCBwcml2YXRlOgogICAgIFJlZ2lvbiBtX25vblBhc3NpdmVXaGVlbEV2ZW50TGlzdGVu
ZXJSZWdpb247CiAjZW5kaWYKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIFJlZ2lv
biBtX2VkaXRhYmxlUmVnaW9uOworICAgIE9wdGlvbmFsPFJlZ2lvbj4gbV9lZGl0YWJsZVJlZ2lv
bjsKICNlbmRpZgogfTsKIApAQCAtMTUyLDcgKzE1NCw3IEBAIE9wdGlvbmFsPEV2ZW50UmVnaW9u
PiBFdmVudFJlZ2lvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgT3B0aW9uYWw8UmVnaW9uPiBlZGl0YWJsZVJlZ2lv
bjsKKyAgICBPcHRpb25hbDxPcHRpb25hbDxSZWdpb24+PiBlZGl0YWJsZVJlZ2lvbjsKICAgICBk
ZWNvZGVyID4+IGVkaXRhYmxlUmVnaW9uOwogICAgIGlmICghZWRpdGFibGVSZWdpb24pCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0xNzMsNCArMTc1LDE0IEBAIGJvb2wgRXZlbnRS
ZWdpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFJlZ2lvbiYgZXZlbnRSZWdpb24p
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCitp
bmxpbmUgdm9pZCBFdmVudFJlZ2lvbjo6ZW5zdXJlRWRpdGFibGVSZWdpb24oKQoreworICAgIGlm
ICghbV9lZGl0YWJsZVJlZ2lvbikKKyAgICAgICAgbV9lZGl0YWJsZVJlZ2lvbi5lbXBsYWNlKCk7
Cit9CisKKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAppbmRleCBmNWY0ZTM2YWQzZWQ2ZWNjNmQwZmI3OGI0YTcxNmVhZTgzYzg0N2RmLi4xZWM3MjRm
ZjU5YTQ1MTJkNjIyZTJlZThkMDQ3NzdhNTZjZTAwYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTEyNjQsNyArMTI2NCw3IEBAIHZvaWQgUmVuZGVyQmxv
Y2s6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzCiAgICAgICAgIC8vIHRob3VnaCBpdCdzIGFjdHVhbGx5IHRoZSBpbm5lciB0ZXh0
IGVsZW1lbnQgb2YgdGhlIGNvbnRyb2wgdGhhdCBpcyBlZGl0YWJsZS4KICAgICAgICAgLy8gU28s
IG5vIG5lZWQgdG8gdHJhdmVyc2UgdG8gZmluZCB0aGUgaW5uZXIgdGV4dCBlbGVtZW50IGluIHRo
aXMgY2FzZS4KICAgICAgICAgaWYgKCFpc1RleHRDb250cm9sKCkpCi0gICAgICAgICAgICBuZWVk
c1RyYXZlcnNlRGVzY2VuZGFudHMgfD0gZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50
cygpOworICAgICAgICAgICAgbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzIHw9IGRvY3VtZW50KCku
bWF5SGF2ZUVkaXRhYmxlRWxlbWVudHMoKSAmJiBwYWdlKCkuc2hvdWxkQnVpbGRFZGl0YWJsZVJl
Z2lvbigpOwogI2VuZGlmCiAgICAgICAgIGlmICghbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzKQog
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwCmluZGV4IDdkNjhjZGIzMTkxMjE2ZTM2N2Y5ODY2Zjc5YzhkOGIxODgwMjQ0YWEuLjE4
MjFhMzAwMDNkYmM1OGI3MTYyOTI4MzQzY2RjNmNlOWI4NjZhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTc0OSw3ICs3NDksNyBAQCB2b2lkIFJl
bmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3Qg
UmVuZGVyU3R5bGUmIG5ldwogICAgICAgICAgICAgYm9vbCB3YXNFZGl0YWJsZSA9IG1fc3R5bGUu
dXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5OwogICAgICAgICAgICAgYm9vbCBp
c0VkaXRhYmxlID0gbmV3U3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5
OwogICAgICAgICAgICAgaWYgKHdhc0VkaXRhYmxlICE9IGlzRWRpdGFibGUpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2UoKS5zaG91bGRC
dWlsZEVkaXRhYmxlUmVnaW9uKCk7CiAjZW5kaWYKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggMDNl
YjYxZGRiMTFiZTg0YjBmYTk1YWYwYjEwYTVlZDkwZjA5ZTNhOS4uNDczNWRhYjgzMGQxOTJhNGQw
MzczNTQxOWVhYTg5ZDlhYjE3YzVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKQEAgLTkyNyw3ICs5MjcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBJbnZhbGlkYXRpb24g
Y2FuIGZhaWwgaWYgdGhlcmUgaXMgbm8gZW5jbG9zaW5nIGNvbXBvc2l0aW5nIGxheWVyIChlLmcu
IG5lc3RlZCBpZnJhbWUpCiAgICAgLy8gb3IgdGhlIGxheWVyIGRvZXMgbm90IG1haW50YWluIGFu
IGV2ZW50IHJlZ2lvbi4KLSAgICBlbnVtIGNsYXNzIEV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVh
c29uIHsgUGFpbnQsIFN0eWxlLCBOb25Db21wb3NpdGVkRnJhbWUgfTsKKyAgICBlbnVtIGNsYXNz
IEV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uIHsgUGFpbnQsIFNldHRpbmdEaWRDaGFuZ2Us
IFN0eWxlLCBOb25Db21wb3NpdGVkRnJhbWUgfTsKICAgICBib29sIGludmFsaWRhdGVFdmVudFJl
Z2lvbihFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbik7CiAKICAgICBTdHJpbmcgZGVidWdE
ZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAyMzc2YjYyMGUxNzVmYmE5OGVhZWY2NDJiZGE1
ZWY5YWEyZjczZDk5Li5hMWEzODQyODRlYzhiOGM3YzM2OTE2MjY5NWI5MjFmOTFmNTcyYWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMTcwOCw3ICsxNzA4LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6Om1haW50YWluc0V2
ZW50UmVnaW9uKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICNpZiBFTkFC
TEUoRURJVEFCTEVfUkVHSU9OKQotICAgIGlmIChyZW5kZXJlcigpLmRvY3VtZW50KCkubWF5SGF2
ZUVkaXRhYmxlRWxlbWVudHMoKSkKKyAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhh
dmVFZGl0YWJsZUVsZW1lbnRzKCkgJiYgcmVuZGVyZXIoKS5wYWdlKCkuc2hvdWxkQnVpbGRFZGl0
YWJsZVJlZ2lvbigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmICFQTEFURk9S
TShJT1NfRkFNSUxZKQpAQCAtMTczNSw2ICsxNzM1LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVFdmVudFJlZ2lvbigpCiAgICAgYXV0byB1cGRhdGVFdmVudFJlZ2lvbkZvckxh
eWVyID0gWyZdKEdyYXBoaWNzTGF5ZXImIGdyYXBoaWNzTGF5ZXIpIHsKICAgICAgICAgR3JhcGhp
Y3NDb250ZXh0IG51bGxDb250ZXh0KG51bGxwdHIpOwogICAgICAgICBFdmVudFJlZ2lvbiBldmVu
dFJlZ2lvbjsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgICAgICBpZiAocmVuZGVy
ZXIoKS5wYWdlKCkuc2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigpKQorICAgICAgICAgICAgZXZl
bnRSZWdpb24uZW5zdXJlRWRpdGFibGVSZWdpb24oKTsKKyNlbmRpZgogICAgICAgICBhdXRvIGV2
ZW50UmVnaW9uQ29udGV4dCA9IGV2ZW50UmVnaW9uLm1ha2VDb250ZXh0KCk7CiAgICAgICAgIGF1
dG8gbGF5ZXJPZmZzZXQgPSBncmFwaGljc0xheWVyLnNjcm9sbE9mZnNldCgpIC0gcm91bmRlZElu
dFNpemUoZ3JhcGhpY3NMYXllci5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggM2Vm
MWNmZWM2YTM0MjQxNDUyYWUyYWExM2ZjNGFiZjI3M2ZmYzAyMi4uZTU4ZTFmNjJlYmU4YmY2MGNk
ZTdmYmVhYzg2NjU2NWE1MjAzZThjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjM1NywxOCArMjM1NywyNSBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cp
CiAgICAgfQogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2xlYXJCYWNraW5nRm9y
TGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYgbGF5ZXIpCit0ZW1wbGF0ZTx0
eXBlbmFtZSBBcHBseUZ1bmN0aW9uVHlwZT4KK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjph
cHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoUmVuZGVyTGF5ZXImIGxh
eWVyLCBjb25zdCBBcHBseUZ1bmN0aW9uVHlwZSYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKGxheWVy
LmlzQ29tcG9zaXRlZCgpKQotICAgICAgICBsYXllci5jbGVhckJhY2tpbmcoKTsKLQorICAgICAg
ICBmdW5jdGlvbihsYXllcik7CiAgICAgZm9yIChhdXRvKiBjaGlsZExheWVyID0gbGF5ZXIuZmly
c3RDaGlsZCgpOyBjaGlsZExheWVyOyBjaGlsZExheWVyID0gY2hpbGRMYXllci0+bmV4dFNpYmxp
bmcoKSkKLSAgICAgICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygq
Y2hpbGRMYXllcik7CisgICAgICAgIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNj
ZW5kYW50cygqY2hpbGRMYXllciwgZnVuY3Rpb24pOworfQorCit2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKCkKK3sKKyAgICBhcHBs
eVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoKm1fcmVuZGVyVmlldy5sYXll
cigpLCBbXShhdXRvJiBsYXllcikgeworICAgICAgICBsYXllci5pbnZhbGlkYXRlRXZlbnRSZWdp
b24oUmVuZGVyTGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5nRGlk
Q2hhbmdlKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFy
QmFja2luZ0ZvckFsbExheWVycygpCiB7Ci0gICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRp
bmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCkpOworICAgIGFwcGx5VG9Db21wb3Np
dGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCksIFtdKGF1
dG8mIGxheWVyKSB7IGxheWVyLmNsZWFyQmFja2luZygpOyB9KTsKIH0KIAogdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0MmRlM2JlMGRi
OTMzYTNmODU5NjY4NGFhYWRmYzVjODdkYzdhYmU4Li4wMDczN2JjODI0MjQzZTc2ZTg0ZWNmNzJi
YzUzZTU4ZjFlNmUxNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCkBAIC0yODIsNiArMjgyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0SXNJbldpbmRvdyhib29sKTsKIAogICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yQWxsTGF5ZXJz
KCk7CisgICAgdm9pZCBpbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKICAgICAK
ICAgICB2b2lkIGxheWVyQmVjYW1lQ29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYpOwogICAg
IHZvaWQgbGF5ZXJCZWNhbWVOb25Db21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJik7CkBAIC00
MTcsNyArNDE4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5
ZXImLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3RhdGUqID0gbnVs
bHB0ciwgQmFja2luZ1JlcXVpcmVkID0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKTsKICAgICBi
b29sIHVwZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZShSZW5kZXJMYXllciYsIGNvbnN0IFJlbmRl
ckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJh
Y2tpbmdTaGFyaW5nU3RhdGUmKTsKIAotICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNs
dWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFw
cGx5RnVuY3Rpb25UeXBlPiB2b2lkIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNj
ZW5kYW50cyhSZW5kZXJMYXllciYsIGNvbnN0IEFwcGx5RnVuY3Rpb25UeXBlJik7CiAKICAgICAv
LyBSZXBhaW50IHRoaXMgYW5kIGl0cyBjaGlsZCBsYXllcnMuCiAgICAgdm9pZCByZWN1cnNpdmVS
ZXBhaW50TGF5ZXIoUmVuZGVyTGF5ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCmluZGV4IGJiYmI0YTQwMGIyN2ZkOTk5ZmI3YWYwZjM5MTk4NjI3M2Rh
NGE3ZmEuLjQ2MTUxNjM0YmViMDQwZmFiMTM0MGFmYjBmM2RmZGJjMzgxMjZhNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNDQxLDYgKzQ0MSwx
OCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3Npemlu
Z1VzZXNJZGVtcG90ZW50TW9kZShib29sIGVuYQogICAgIHJldHVybiB7IH07CiB9CiAKK0V4Y2Vw
dGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChi
b29sIGVuYWJsZWQpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQor
ICAgIG1fcGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKKyAgICByZXR1cm4geyB9OworfQorCiBF
eGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRNZWRpYVR5cGVPdmVycmlkZShj
b25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggYTFiOTcwOTRiN2UwYjFlNGRhNjQy
ODcwOWIxZWNhZGUwZGM1NDc0YS4uNDc4NWU2ODE0YTFmODVkYWYxODRmYWMxMjAxMDA0Y2YzYjIz
N2VhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEw
OSw2ICsxMDksOCBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSA9
IEZyYW1lRmxhdHRlbmluZzsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGcmFtZUZsYXR0ZW5p
bmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUpOworCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRp
dGFibGVSZWdpb25FbmFibGVkKGJvb2wpOwogICAgIAogICAgIHN0YXRpYyB2b2lkIHNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbAppbmRleCAzNjg4N2ZjNjE1NjVhMDQ4OWE2ZTUwYjYwNmVmODRkYTE2
MDBlNmU2Li5jMTVmM2JlNDcwOTE3Njg2ZmYyZDRjNDRhMjRiNThjZjk4Y2FlOWZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTEyMiw1ICsxMjIs
NyBAQCBlbnVtIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJGYWls
dXJlIiB9OwogICAgIHZvaWQgc2V0U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29sZWFu
IHNob3VsZERlYWN0aXZhdGUpOwogICAgIAogICAgIHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQSVBl
clBhZ2VTY29wZUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKworICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gdm9pZCBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCmluZGV4IDUyYThhNzU2YmI0
OWRiZGE2NDE3ODQ0YmFlMWE2NGFlYzQ0NjgyMzUuLjY4YzBmYjBiNjUyZWI5NWRkZDkzOTZhYThl
MTliYzlkNjEwMTBlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbQpA
QCAtMTIwLDYgKzEyMCw3IEBAIGJvb2wgbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3Qo
VUlWaWV3ICpyb290VmlldywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0CiAgICAgY29sbGVjdERl
c2NlbmRhbnRWaWV3c0luUmVjdCh2aWV3c0luUmVjdCwgcm9vdFZpZXcsIHJlY3QpOwogICAgIGlm
ICh2aWV3c0luUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBib29s
IHNhd0FuRWRpdGFibGVSZWdpb24gPSBmYWxzZTsKICAgICBmb3IgKGF1dG8gKnZpZXcgOiBXVEY6
Om1ha2VSZXZlcnNlZFJhbmdlKHZpZXdzSW5SZWN0KSkgewogICAgICAgICBpZiAoIVt2aWV3IGlz
S2luZE9mQ2xhc3M6V0tDb21wb3NpdGluZ1ZpZXcuY2xhc3NdKQogICAgICAgICAgICAgY29udGlu
dWU7CkBAIC0xMjksMTAgKzEzMCwxNiBAQCBib29sIG1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KFVJVmlldyAqcm9vdFZpZXcsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdAogICAgICAg
ICBXZWJDb3JlOjpJbnRSZWN0IHJlY3RUb1Rlc3QgeyBbdmlldyBjb252ZXJ0UmVjdDpyZWN0IGZy
b21WaWV3OnJvb3RWaWV3XSB9OwogICAgICAgICBpZiAobm9kZS0+ZXZlbnRSZWdpb24oKS5jb250
YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QocmVjdFRvVGVzdCkpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG5vZGUtPmV2ZW50UmVnaW9uKCkuY29udGFpbnMocmVjdFRv
VGVzdCkpCisgICAgICAgIGJvb2wgaGFzRWRpdGFibGVSZWdpb24gPSBub2RlLT5ldmVudFJlZ2lv
bigpLmhhc0VkaXRhYmxlUmVnaW9uKCk7CisgICAgICAgIGlmIChoYXNFZGl0YWJsZVJlZ2lvbiAm
JiBub2RlLT5ldmVudFJlZ2lvbigpLmNvbnRhaW5zKHJlY3RUb1Rlc3QpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBzYXdBbkVkaXRhYmxlUmVnaW9uIHw9IGhhc0VkaXRhYmxl
UmVnaW9uOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gSWYgd2UgZGlkbid0IHNl
ZSBhbiBlZGl0YWJsZSByZWdpb24gdGhlbiB3ZSBkb24ndCBrbm93IHdoZXRoZXIgb3Igbm90IHRo
ZXJlIGFyZQorICAgIC8vIGVkaXRhYmxlIGVsZW1lbnRzIGluIHRoZSByZWN0LiBXZSBvbmx5IGtu
b3cgdGhhdCB0aGUgd2ViIHByb2Nlc3MgZGlkIG5vdCBkbyBhbgorICAgIC8vIGV2ZW50IHJlZ2lv
biBwYWludCB0byBmaW5kIHRoZW0uIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGFzayB0aGUgd2Vi
IHByb2Nlc3MgdG8KKyAgICAvLyBrbm93IGZvciBzdXJlLgorICAgIHJldHVybiAhc2F3QW5FZGl0
YWJsZVJlZ2lvbjsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmlu
ZGV4IGQ4ZTlhMmYxMmQwZDVmMTA0NTM3YTRlY2QxZWEyYjQ5MjNhYTdlNGUuLjFiMjNlYmE3MjA0
Zjk0NDViNTk4ZTE2ODk0ZjA2OTY0MGE4MTI3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00MzE3LDYgKzQzMTcsOSBA
QCB2b2lkIFdlYlBhZ2U6OnRleHRJbnB1dENvbnRleHRzSW5SZWN0KEZsb2F0UmVjdCBzZWFyY2hS
ZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2bwogICAgICAgICByZXR1cm4gY29udGV4dDsKICAgICB9
KTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0cyk7CisjaWYgRU5BQkxFKEVESVRBQkxF
X1JFR0lPTikKKyAgICBtX3BhZ2UtPnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCgpOworI2VuZGlm
CiB9CiAKIHZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChj
b25zdCBFbGVtZW50Q29udGV4dCYgZWxlbWVudENvbnRleHQsIGNvbnN0IEludFBvaW50JiBwb2lu
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1MDMxMWI5ZTdkYjkyNzVkMjZjMjBjNGJlZjFlOThiODllZmM4YTU4Li4xMDgyMWY3NDMx
ZDAwYzk0NTQ4Nzc5NGEyMjlhMWQyOWJiODUxZTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIw
MjAtMDYtMjkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtp
T1NdIEVkaXRhYmxlIHJlZ2lvbnMgY2F1c2VzIH4xJSBzbG93ZG93biBpbiBQTFQ1CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2NTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzY0MzYxMzkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzb21lIHRlc3RzIHRvIGVuc3VyZSB0aGUgbmV3IHNldHRp
bmcgd29ya3MgYW5kIHRoZSBmZWF0dXJlIGNhbiBiZSBkaXNhYmxlZC4gTm90ZQorICAgICAgICB0
aGF0IHRoZSBzZXR0aW5nIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCB0byBrZWVwIHRoZSBjdXJyZW50
IGJlaGF2aW9yLiBTZWUgdGhlIFdlYkNvcmUKKyAgICAgICAgQ2hhbmdlTG9nIGVudHJ5IGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5ncyB0ZXN0cyB0aGF0IG5lZWQg
dGhlIGVkaXRhYmxlIHJlZ2lvbiBlbmFibGVkIHRvIGVuYWJsZSBpdCBub3cgdGhhdCBpdCBtdXN0
CisgICAgICAgIGJlIGV4cGxpY2l0bHkgZW5hYmxlZC4KKworICAgICAgICAqIGVkaXRpbmcvZWRp
dGFibGUtcmVnaW9uL2ZpeGVkLWFuZC1hYnNvbHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9mbG9hdC1jb250ZW50ZWRp
dGFibGUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1i
YXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2hpdC10ZXN0LWJhc2ljLmh0bWwuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaGl0LXRlc3QtYmFzaWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZml4ZWQuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRt
bDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0
YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0bWwuCisgICAg
ICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0bWw6CisgICAgICAgICogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxl
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xs
LXRleHQtZmllbGQtYW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Ny
b2xsZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1p
bnNpZGUtdHJhbnNmb3JtZWQtY29udGVudGVkaXRhYmxlLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vc2VhcmNoLWZpZWxkLWJhc2ljLmh0bWw6CisgICAgICAgICogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJl
Z2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNp
Yy5odG1sLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFz
aWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWlu
c2lkZS1jb21wb3NpdGVkLW5lZ2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVkLW9uLXRvcC1vZi1maXhl
ZC1jb250ZW50ZWRpdGFibGVzLmh0bWw6CisKIDIwMjAtMDYtMjggIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtURkNdIEFkanVzdCB0YWJsZSBjb250ZW50
IHZlcnRpY2FsIHBvc2l0aW9uIHRvIG1hdGNoIHZlcnRpY2FsLWFsaWduCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9maXhlZC1hbmQtYWJzb2x1dGUtY29u
dGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi9maXhlZC1hbmQtYWJzb2x1dGUtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwK
aW5kZXggM2IzNWRiZDkwNWY4MjhiNmM3OTk2NmEwMzAzMWI3MWY5Yjc4MjgwZS4uMDQ0YTdhNWUy
ZGVmOTE1ZjFiYTk1MjY2ZDJlOWQwYjZkNTE2OWNlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZml4ZWQtYW5kLWFic29sdXRlLWNvbnRlbnRlZGl0YWJs
ZS1zY3JvbGxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L2ZpeGVkLWFuZC1hYnNvbHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbApAQCAtMSw1
ICsxLDExIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVn
aW9uRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgogPGJvZHkgc3R5bGU9ImhlaWdo
dDogNDA5NnB4Ij4KIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgYm9yZGVyOiAxcHggc29s
aWQgYmxhY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwcHgiIGNvbnRlbnRlZGl0YWJsZT0idHJ1
ZSI+PC9kaXY+CiA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOyBoZWlnaHQ6IDI1NnB4OyB3aWR0aDogMjU2cHg7IHRvcDogMTAwMHB4OyBsZWZ0
OiAyMDBweCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2Zsb2F0LWNvbnRlbnRlZGl0YWJsZS5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRh
YmxlLmh0bWwKaW5kZXggZDM3MzM0ZDY1Y2RiNjE3NWVjNzk1NjhmMzFiNTA4YTI2Nzc3MDczYS4u
M2Y0YjJjN2JjZjQ2MTY1NjYzYTRhMTYwNmUzMDU4YWQ5NjlkMTlkZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRhYmxlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVu
dGVkaXRhYmxlLmh0bWwKQEAgLTEsNSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KIDxib2R5PgogPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsgd2lkdGg6IDUwcHg7IGhlaWdodDogNDBweCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48
L2Rpdj4KIDxwcmUgaWQ9InJlc3VsdHMiPjwvcHJlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1y
ZWdpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhlNjZmNWQ4MWZjODU1NzAxMjJhNjIxY2NiY2MwMzZhOGM0MmUyYTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1i
YXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorSGl0IHRlc3RzIGZvciBlZGl0YWJsZSBlbGVtZW50cyBpbnNpZGUgdGhlIGJsYWNrIG91dGxp
bmVkIHJlY3RhbmdsZSB3aGVuIHRoZSBlZGl0YWJsZSByZWdpb24gaXMgZGlzYWJsZWQuIFRoZXJl
IHNob3VsZCBiZSBtb3JlIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRpc2FibGVkLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAoeCA9IDEwMCwgeSA9IDEwMCwgd2lkdGggPSAy
MDIsIGhlaWdodCA9IDIwMikgY29udGFpbnMgZWRpdGFibGUgZWxlbWVudHMuCitQQVNTICh4ID0g
MCwgeSA9IDAsIHdpZHRoID0gNTAsIGhlaWdodCA9IDUwKSBjb250YWlucyBlZGl0YWJsZSBlbGVt
ZW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVz
dC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jYzM0YmZiOGNjOWE3YWZlM2MyOTk4N2ZlMDEyNWVjY2YxMzFkNzZh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApAQCAtMCwwICsxLDUy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9oaXQt
dGVzdC11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3Rlc3QtY29udGFpbmVyIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAxMDBweDsKKyAgICBsZWZ0OiAxMDBw
eDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB3aWR0aDogMjAwcHg7CisgICAg
aGVpZ2h0OiAyMDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRl
c3QtY29udGFpbmVyIj4KKyAgICA8aW5wdXQ+Cis8L2Rpdj4KKzxzY3JpcHQ+Cit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChmYWxzZSk7CisKK2FzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdEZhaWxlZCgiTXVzdCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGxldCB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3QtY29udGFpbmVyIik7CisgICAgYXdhaXQgc2hvdWxkSGF2ZUVkaXRhYmxl
RWxlbWVudHNJblJlY3RGb3JFbGVtZW50KHRlc3RDb250YWluZXIpOworCisgICAgLy8gV2l0aG91
dCBlZGl0YWJsZSByZWdpb24gZW5hYmxlZCB0aGlzIHJlY3QgaXMgdGhvdWdodCB0byBjb250YWlu
IHNvbWV0aGluZyBlZGl0YWJsZSBldmVuIHRob3VnaCBpdCBkb2Vzbid0LgorICAgIGF3YWl0IHNo
b3VsZEhhdmVFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KDAsIDAsIDUwLCA1MCk7CisKKyAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCitkZXNjcmlwdGlvbigiSGl0IHRlc3RzIGZvciBlZGl0YWJsZSBlbGVtZW50cyBpbnNp
ZGUgdGhlIGJsYWNrIG91dGxpbmVkIHJlY3RhbmdsZSB3aGVuIHRoZSBlZGl0YWJsZSByZWdpb24g
aXMgZGlzYWJsZWQuIFRoZXJlIHNob3VsZCBiZSBtb3JlIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRp
c2FibGVkLiIpOworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNp
Yy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFz
aWMuaHRtbAppbmRleCA4MjNlN2NmM2U2NTFhODRmMzk4NWEwNDQzOTc4MzBkY2YzNTgxZWNkLi4x
MGU2NmM0MWUwNTZiNzczNzJhMDVhOTViMTNmNmM2Y2Q2Y2JhZTI5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLmh0bWwK
QEAgLTI1LDYgKzI1LDkgQEAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFi
bGVkKHRydWUpOworCiBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBpZiAoIXdpbmRv
dy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1l
bGVtZW50Lmh0bWwKaW5kZXggNmM2YjYwYTBkYTU0ZjBmNjYwYWZiMmEyNWFlYTA1YjFiOGI3Yjcy
ZS4uMGI1YTgxYTE0OGYzZmMzMGExMTI4ZGY2NWZjNWZhZDI1M2NlZTk3ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZWRpdGFibGUtZG9j
dW1lbnQtZWxlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL2hpdC10ZXN0LWVkaXRhYmxlLWRvY3VtZW50LWVsZW1lbnQuaHRtbApAQCAtOSw2ICs5LDkg
QEAKIDxzY3JpcHQ+CiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQodHJ1ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2hpdC10ZXN0LWZpeGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi9oaXQtdGVzdC1maXhlZC5odG1sCmluZGV4IGQyYjQ0MzQ3ZjdjZGI5Y2FkZDQ4MTkz
YmRiODBmNjVhZjA3NDdkYzYuLjlhNTFhOWNmZDM5MjMzMzM1MWNkNDI1NThjODJkMmE2ZGY5ODI0
ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10
ZXN0LWZpeGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aGl0LXRlc3QtZml4ZWQuaHRtbApAQCAtMjIsNiArMjIsOSBAQCB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3Qo
KQogewogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbAppbmRl
eCAzMTBiMjVmYTA2ZmI4YWIzMDVkYjBkNTFmZmExODc5Mzc3NmIxNTVhLi5jN2VkODRlMTU4ODk3
MjBlMWY2ODMxNmY3YjYwM2RhOWQ4ZjFkNGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3Qtb3ZlcmxhcC5odG1sCkBAIC02OSw2
ICs2OSw5IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVl
KTsKKwogYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LXRleHRhcmVhLWVtcHR5LXNwYWNlLmh0bWwKaW5kZXgg
OWRmNTFhNzIwODc4YjUyMjYxNDRjZDc4OGJjYmZmOWZmYjk2MzIwMS4uY2ZkNDA0ZTBhNGM0Mjll
YTAwMDY1MWQ0OTM5MDc4YWNhYmY2NzcwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC10ZXh0YXJlYS1l
bXB0eS1zcGFjZS5odG1sCkBAIC0yNSw2ICsyNSw5IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKKwogYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiB7
CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13
aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQwZmFmYTI3
ZjUxOWIwZWM2OTQ4YWM3OWMzMmFiNmNlMjk0NTNjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJl
Z2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NCBAQAorCisoR3JhcGhpY3NMYXllcgorICAo
YW5jaG9yIDAuMDAgMC4wMCkKKyAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAgKGNoaWxkcmVu
IDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAg
ICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJh
Y2tncm91bmRDb2xvciAjRkZGRkZGKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQorICAgICAgICAgIChib3Vu
ZHMgMzA0LjAwIDMwNC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAyLjAwIDIuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgb3JpZ2luIDAu
MDAgMjAwLjAwKQorICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAg
ICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyAzMTAuMDAgNjcwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMxMC4wMCA2NzAuMDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICApCisgICAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCisp
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFt
ZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTI2M2I5ZDYyMWY2Y2NkMWUwZGExYWVjNWZlNDgyZWRlMDk0ODVhMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0
LWVkaXRhYmxlLXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keSBzdHlsZT0iaGVpZ2h0OiA0MDk2cHgiPgorPGlmcmFtZSBpZD0idGVzdEZy
YW1lIiBoZWlnaHQ9IjMwMCIgc3JjZG9jPSIKKzxzdHlsZT4KKy5zY3JvbGxlciB7CisgICAgbWFy
Z2luLXRvcDogNDAwcHg7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDogMzAwcHg7Cisg
ICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKy5j
b250ZW50cyB7CisgICAgd2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogNTAwcHg7Cit9CisuZWRp
dGFibGUgeworICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGU7CisgICAgYm9yZGVy
OiAycHggc29saWQgYmx1ZTsKK30gICAKKzwvc3R5bGU+Cis8cD5pZnJhbWU8L3A+Cis8ZGl2IGNs
YXNzPSdlZGl0YWJsZSBib3gnIHN0eWxlPSdtYXJnaW4tdG9wOiAyNTBweDsnPgorPC9kaXY+Cis8
ZGl2IGNsYXNzPSdzY3JvbGxlcicgc3R5bGU9J21hcmdpbi10b3A6IDUwcHg7Jz4KKyAgICA8ZGl2
IGNsYXNzPSdjb250ZW50cyc+CisgICAgICAgIE92ZXJmbG93IHNjcm9sbCBpbiBpZnJhbWUKKyAg
ICAgICAgPGRpdiBjbGFzcz0nZWRpdGFibGUgYm94JyBzdHlsZT0nbWFyZ2luLXRvcDogNTBweDsn
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK3dpbmRvdy5w
YXJlbnQuc2Nyb2xsSUZyYW1lQW5kRHVtcFJlZ2lvbnMoKTsKKzwvc2NyaXB0PgorIj4KKzwvaWZy
YW1lPgorPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHRydWUpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZmFsc2UpOworfQorCitm
dW5jdGlvbiBzY3JvbGxJRnJhbWVBbmREdW1wUmVnaW9ucygpCit7CisgICAgdGVzdEZyYW1lLmNv
bnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMjAwKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChk
b2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50
ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKKyAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0bWwKaW5kZXggODcwODQ5MTM5ZmE4NGM4NjE3MDQxYjAz
ZmEzNDVlMGFjZmJjNGZlMC4uYTdlZTRlODllZTA0YTVkYjUzMDNhNzMxYjljZTRjNDBjNGYwZjdh
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1l
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0
bWwKQEAgLTQxLDggKzQxLDEwIEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVT
Y3JvbGxpbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7Cit9CiAKIGZ1bmN0aW9uIHNjcm9sbElGcmFtZUFuZER1bXBS
ZWdpb25zKCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL291dC1oYW5naW5nLWNoaWxkLW9mLWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVk
aXRhYmxlLmh0bWwKaW5kZXggOTJjMzU3OTI2ZWNjMGY1ZGE3ZmVhOWFkNDYzZGIzNDk3NDc5OTZm
YS4uZGM4NTczZDYxMDQ5ZWQyZmY1ZTNmNTkyODA3MjhmZDJiMjRjNjlkNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2Yt
Y29udGVudGVkaXRhYmxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTM0LDYg
KzM0LDggQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCiAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQo
ZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGlu
dGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL292
ZXJmbG93LXNjcm9sbC10ZXh0LWZpZWxkLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL292ZXJmbG93LXNjcm9sbC10ZXh0LWZpZWxk
LWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbAppbmRleCBhZDI5NDU4NTEyMTc0ZjkxNDQ1MTFjZjNh
ZWU1YmNjNGM4ZWMxNjlhLi40NTk2NzAwYzMwNzUwZmFjZDZkNzM5YmMzODg0Y2RhZDNkMDNiMWU4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9vdmVyZmxv
dy1zY3JvbGwtdGV4dC1maWVsZC1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xsLXRleHQtZmllbGQt
YW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0yNiw2ICsyNiw4IEBACiA8c2NyaXB0PgogaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9u
RW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENv
bnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZ
RVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNM
VURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtZml4ZWQtY29u
dGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtZml4ZWQtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0
bWwKaW5kZXggMTk3YWYzMmU5ZmJkNWFkMjJiNTY3YzBlNjFiZjkyMmZhMDM4M2I2MS4uMGI4YTYw
YjkwYWU5ZDQ5MjhlNDJlMDQ1NjMxZDllMzNlNWRmNmY4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLWZpeGVkLWNvbnRlbnRl
ZGl0YWJsZS1zY3JvbGxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL3JlbGF0aXZlLWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRt
bApAQCAtMTAsNiArMTAsOCBAQCB3aW5kb3cuc2Nyb2xsVG8oMCwgMTAyNCk7CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykKICAgICByZXN1bHRzLnRleHRDb250ZW50
ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RS
RUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNf
Uk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLXRyYW5zZm9ybWVkLWNv
bnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
cmVsYXRpdmUtaW5zaWRlLXRyYW5zZm9ybWVkLWNvbnRlbnRlZGl0YWJsZS5odG1sCmluZGV4IDUx
OWYyOTk5NmIwNTAxNTk4N2Y2MzE3MjFhNzVmZWU1YTcxMmUwYzMuLjQ3ZTcxY2Q3NjAwMGUxMDRl
YWRmNjlmNDk0MGZjZTU3OTdlMTZhM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS10cmFuc2Zvcm1lZC1jb250ZW50ZWRpdGFi
bGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2
ZS1pbnNpZGUtdHJhbnNmb3JtZWQtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTE5LDYgKzE5LDgg
QEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAg
ICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1l
bnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFs
cy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3NlYXJjaC1m
aWVsZC1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2Vh
cmNoLWZpZWxkLWJhc2ljLmh0bWwKaW5kZXggNjkyMzEzNzQyNGE5ZmY4NGYwNjcwODkzY2FlYmUy
NGU0NWExYzY0MS4uZWIzZGZiOTNkNDM3NDBjNjI2ZDNjMDJlZjk0NzljOWI1NzMzYjljNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2VhcmNoLWZpZWxk
LWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2Vh
cmNoLWZpZWxkLWJhc2ljLmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxl
ZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQg
PSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJF
RV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19S
T09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg4MWZlNWQ5MGY2NWY1MDg1ZDE0M2Q5MTZmOTg0NTE0YzQzMmFmMjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0
LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE0IEBACisKKyhHcmFwaGljc0xheWVyCisgIChhbmNob3IgMC4wMCAwLjAwKQorICAoYm91
bmRzIDgwMC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJhY2tncm91bmRDb2xvciAjRkZGRkZGKQorICAg
ICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQt
ZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiYjAxZTdmZjVhNThjZWQ0ZjJiNTRk
NDhjY2VjZmM3MDQzYTUyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24u
aHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
aW5wdXQgdHlwZT0idGV4dCI+Cis8cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdp
b25FbmFibGVkKHRydWUpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGZhbHNlKTsKKyAgICByZXN1bHRzLnRl
eHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxz
LkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVf
SU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
dGV4dC1maWVsZC1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vdGV4dC1maWVsZC1iYXNpYy5odG1sCmluZGV4IDg0YTgwMTllMjViMmUyNDM0MWQ5Y2FhZGJm
NDk3Yjk3MjcwZTI4NmEuLmIyYzAzY2Q5MTQwOTg1NTc1NzQ5MmJmMzc0OTRjYzUwZmM0MjZkMTYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmll
bGQtYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90
ZXh0LWZpZWxkLWJhc2ljLmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxl
ZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQg
PSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJF
RV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19S
T09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1jb21wb3NpdGVkLW5l
Z2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUtei1pbmRleC1sYXll
ci5odG1sCmluZGV4IGI0ZTRkOGQ3ZTRlNzQ1Y2YzOTZhNDgzMDRjNjAxM2Q5MWQwOTRkMjMuLjAx
ZTFlM2E2NDIzOGI4MDQ5MjJlMWQ3NjA1NjE0Y2IwYzRmYjNkMDQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0
ZWQtbmVnYXRpdmUtei1pbmRleC1sYXllci5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUtei1p
bmRleC1sYXllci5odG1sCkBAIC0xOCw2ICsxOCw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0
cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBp
bnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9J
TkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09U
X0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dGFyZWEtYmFzaWMuaHRtbAppbmRleCAxYTE4OWE5
NmFkMDE3MGI3MzJiODA5NjkwN2NmOThhMWYyYTZhNWQxLi42OWZlNzYyNTdkYWMyMjEwZmY1N2Iy
ZWQ5YzMwMDMzMjU3NGY3ODU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RleHRhcmVhLWJhc2ljLmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2Ny
aXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRh
YmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3Vs
dHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRl
cm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJf
VFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90cmFuc2Zvcm1lZC1zY3Jv
bGxlZC1vbi10b3Atb2YtZml4ZWQtY29udGVudGVkaXRhYmxlcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdHJhbnNmb3JtZWQtc2Nyb2xsZWQtb24tdG9wLW9mLWZp
eGVkLWNvbnRlbnRlZGl0YWJsZXMuaHRtbAppbmRleCBiYmM3ZmY5OWRlZjEzMWYxM2VkYzMyZTNi
MmNiNjc3MWFhOTQxNmRiLi5mYzNhYWQ5ZmQ5YzJmNmMxM2VkMTQ4N2ViZWNiY2ZiMTVlZjIyMGMw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90cmFuc2Zv
cm1lZC1zY3JvbGxlZC1vbi10b3Atb2YtZml4ZWQtY29udGVudGVkaXRhYmxlcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVk
LW9uLXRvcC1vZi1maXhlZC1jb250ZW50ZWRpdGFibGVzLmh0bWwKQEAgLTIxLDYgKzIxLDggQEAK
IHdpbmRvdy5zY3JvbGxUbygwLCAxMjApOwogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVl
QXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJ
T04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMp
OwogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403122</attachid>
            <date>2020-06-29 15:18:13 -0700</date>
            <delta_ts>2020-06-30 12:02:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213659-20200629151810.patch</filename>
            <type>text/plain</type>
            <size>47038</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZlYzIxNjc5Y2U3OTAz
NTgwNWI4MmZkNjhhNTQzMzFiOWVlNWVlZS4uMTU3ODJmMzhkMjRkODI2ZDJhMmNjZGQzNzUwMzNl
NzY0ZjA4YWNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIwLTA2LTI5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIHNsb3dkb3duIGJ5IG9ubHkgZW5hYmxpbmcgZWRpdGFibGUgcmVnaW9uIHdo
ZW4gUGFnZTo6ZWRpdGFibGVFbGVtZW50c0luUmVjdCBpcyBjYWxsZWQuCisKKyAgICAgICAgVGhl
cmUgYXJlIHR3byBwYXJ0cyB0aGF0IG1ha2UgY29tcHV0aW5nIHRoZSBlZGl0YWJsZSByZWdpb24g
ZXhwZW5zaXZlOgorICAgICAgICAgICAgICAgIDEuIFJlcXVpcmVzIHRyYXZlcnNpbmcgZGVzY2Vu
ZGVudHMgZHVyaW5nIHBhaW50aW5nIHdoZW4gYSBub3JtYWwgcGFpbnQgbWF5IGJlCisgICAgICAg
ICAgICAgICAgICAgYWJsZSB0byBhdm9pZCB0aGlzLgorICAgICAgICAgICAgICAgIDIuIENhbiBj
YXVzZSBtb3JlIGV2ZW50IHJlZ2lvbiBpbnZhbGlkYXRpb25zIGJlY2F1c2UgaXQgZXh0ZW5kcyB0
aGUgaW52YWxpZGF0aW9uCisgICAgICAgICAgICAgICAgICAgY3JpdGVyaW9uIHRvIGluY2x1ZGUg
Y2hhbmdlcyB0byBlbGVtZW50IGVkaXRhYmlsaXR5LgorCisgICAgICAgIFRlc3RzOiBlZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5o
dG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91
dC1lZGl0YWJsZS1yZWdpb24uaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCisKKyAg
ICAgICAgVGVzdHM6IGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhv
dXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCisgICAgICAgICAgICAg
ICBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLmh0bWwKKworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWU6OmludmFsaWRhdGVDb250ZW50RXZlbnRSZWdpb25zSWZOZWVkZWQpOiBDaGVj
ayBpZiBlZGl0YWJsZSByZWdpb24gaXMgZW5hYmxlZC4KKyAgICAgICAgSWYgaXQgaXMgdGhlbiBk
byB3aGF0IHdlIGRvIG5vdy4gT3RoZXJ3aXNlLCBkb24ndCBpbnZhbGlkYXRlIHRoZSByZWdpb24g
dW5sZXNzIHdlIHdlcmUgZ29pbmcKKyAgICAgICAgdG8gZG8gc28gYW55d2F5LgorICAgICAgICAq
IHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQpOiBBZGRlZC4gVXBkYXRlIHN0YXRlIGFuZCB0aGVuIGludmFsaWRhdGUKKyAgICAg
ICAgdGhlIGV2ZW50IHJlZ2lvbiBpbiBhbGwgbGF5ZXJzLgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbiBjb25zdCk6IEFkZGVkLiBSZXR1cm5zIHdoZXRo
ZXIgdG8gYnVpbGQgdGhlCisgICAgICAgIGVkaXRhYmxlIHJlZ2lvbjogZWl0aGVyIHdoZW4gUGFn
ZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSBpcyB0cnVlIG9yIHRoZSBlZGl0YWJsZQorICAg
ICAgICByZWdpb24gZGVidWcgb3ZlcmxheSBpcyBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6ZGlkRmluaXNoTG9hZCk6IFR1cm4gb2ZmIGVkaXRhYmxlIHJlZ2lvbiBhcyBpdCBtYXkg
bm90IGJlIG5lZWRlZCBvbgorICAgICAgICB0aGUgbmV3IHBhZ2UuCisgICAgICAgICogcGFnZS9Q
YWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCBj
b25zdCk6IEFkZGVkLgorCisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp1bml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFJlZ2lvbjo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpj
b250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRSZWdpb246OmR1bXAgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9FdmVudFJlZ2lv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246Omhhc0VkaXRhYmxlUmVnaW9uIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpyZWN0c0ZvckVkaXRhYmxlRWxl
bWVudHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmRlY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZW5zdXJlRWRpdGFibGVSZWdpb24pOgorICAg
ICAgICBUaGUgZWRpdGFibGUgcmVnaW9uIGlzIG5vdyBhbiBPcHRpb25hbDw+LiBUaGVyZSB3aWxs
IG9ubHkgYmUgb25lIGlmIGVuc3VyZUVkaXRhYmxlUmVnaW9uCisgICAgICAgIHdhcyBjYWxsZWQs
IHdoaWNoIGlzIG9ubHkgd2hlbiBQYWdlOjppc0VkaXRhYmxlUmVnaW9uRW5hYmxlZCgpIHJldHVy
bnMgdHJ1ZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0
eWxlV2lsbENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6Om1haW50YWluc0V2ZW50UmVnaW9uIGNvbnN0KToKKyAgICAg
ICAgT25seSBkbyB3aGF0IHdlIGRvIG5vdyBpZiBQYWdlOjpzaG91bGRCdWlsZEVkaXRhYmxlUmVn
aW9uKCkgcmV0dXJucyB0cnVlLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnVwZGF0ZUV2ZW50UmVnaW9uKTogSW5zdGFudGlhdGUgdGhlIGVkaXRhYmxlIHJlZ2lvbiwg
aWYgbmVlZGVkLgorICAgICAgICBQYWludGluZyB3aWxsIHRoZW4gcG9wdWxhdGUgaXQuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6YXBwbHlUb0NvbXBvc2l0ZWRMYXllckluY2x1
ZGluZ0Rlc2NlbmRhbnRzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmludmFsaWRhdGVFdmVudFJlZ2lvbkZvckFsbExheWVycyk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjbGVhckJhY2tpbmdGb3JBbGxM
YXllcnMpOiBXcm90ZSBpbiB0ZXJtcyBvZiBhcHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5n
RGVzY2VuZGFudHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNs
ZWFyQmFja2luZ0ZvckxheWVySW5jbHVkaW5nRGVzY2VuZGFudHMpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorICAg
ICAgICBBZGQgYSBuZXcgaW50ZXJuYWwgc2V0dGluZyBmb3IgdGVzdGluZyBwdXJwb3NlcyB0byB0
b2dnbGUgZW5hYmxpbmcvZGlzYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbi4KKwogMjAyMC0wNi0yOCAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gQWRq
dXN0IHRhYmxlIGNvbnRlbnQgdmVydGljYWwgcG9zaXRpb24gdG8gbWF0Y2ggdmVydGljYWwtYWxp
Z24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNmYxMzNmYzJjZTJkOGY5N2I0MDYyZDQ0MzI3OWQ4MWUxOGQxMDRmOS4u
OTI4OGJmZWM1ZDg4ZDg4Yjc5NzRkNGY1Njg2NWRlZmJmNDdjMmQ5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMC0wNi0yOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPU10gRWRpdGFibGUgcmVnaW9ucyBjYXVzZXMgfjElIHNsb3dkb3duIGlu
IFBMVDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MzY1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNjEzOTA+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHVwIFJlbW90ZUxheWVyVHJlZVZp
ZXdzIG5vdyB0aGF0IHRoZSBlZGl0YWJsZSByZWdpb24gaXMgYW4gT3B0aW9uYWw8Pi4gSGF2ZQor
ICAgICAgICB0aGUgVUkgcHJvY2VzcyBtZXNzYWdlIHRoZSB3ZWIgcHJvY2VzcyB0byBlbmFibGUg
ZWRpdGFibGUgcmVnaW9uIG9uIHRoZSBmaXJzdAorICAgICAgICBpbnZvY2F0aW9uIG9mIF9yZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3QsIHdoaWNoIGlzIGdvb2QgaW5kaWNhdG9yIHRoYXQg
dGhlcmUKKyAgICAgICAgd291bGQgYmUgYmVuZWZpdCB0byBjb21wdXRpbmcgaXQgYXMgYSB0eXBp
Y2FsIGNsaWVudCB0aGF0IGNhbGxzIGl0IHdpbGwgY2FsbCBpdAorICAgICAgICBtYW55IHRpbWVz
LgorCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJU
cmVlVmlld3MubW06CisgICAgICAgIChXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KTogRml4IHVwIHRoZSBsb2dpYyBub3cgdGhhdCB0aGVyZSBtYXkKKyAgICAgICAgYmUg
bm90IGJlIGFuIGVkaXRhYmxlIHJlZ2lvbiBzZW50IG92ZXIgaW4gdGhlIGxhc3QgZXZlbnQgcmVn
aW9uIHVwZGF0ZS4gSWYgdGhlcmUKKyAgICAgICAgaXNuJ3Qgb25lIHRoZW4gd2UgZG9uJ3Qga25v
dyBpZiB0aGVyZSBhcmUgZWRpdGFibGUgZWxlbWVudHMgaXMgaW4gdGhlIHJlY3Qgb2Ygbm90Lgor
ICAgICAgICBTbywganVzdCByZXR1cm4gdHJ1ZTogdGhlcmUgbWF5IGJlIGVkaXRhYmxlIGVsZW1l
bnRzIGluIHRoZSByZWN0LiBUaGUgY2FsbGVyIHdpbGwKKyAgICAgICAgaGF2ZSB0byBtZXNzYWdl
IHRoZSB3ZWIgcHJvY2VzcyB0byBmaW5kIG91dCB0aGUgcmVhbCBhbnN3ZXIuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0c0luUmVjdCk6IEVuYWJsZSBlZGl0YWJsZSByZWdpb24u
IElmIGl0J3MgYWxyZWFkeQorICAgICAgICBlbmFibGVkIHRoZW4gZG9pbmcgc28gYWdhaW4gZG9l
cyBub3RoaW5nLgorCiAyMDIwLTA2LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHRocmVhZC1zYWZldHkgaXNzdWUgaW4gd2ViUHJvY2Vzc1Bvb2xIaWdo
RHluYW1pY1JhbmdlRGlkQ2hhbmdlQ2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBk
MDRmYTBjMzllMGViOWE4M2NjZDg2NGU0MmFlMzA0MmI5OTI4MzA4Li5mZjFhMjdlYmM5NWZjN2M0
YzQ2YTViNTAyMzM3OTdhZTg5OTc4ZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzEzLDcg
KzMxMyw3IEBAIHZvaWQgRnJhbWU6OmludmFsaWRhdGVDb250ZW50RXZlbnRSZWdpb25zSWZOZWVk
ZWQoKQogICAgIGhhc1RvdWNoQWN0aW9uRWxlbWVudHMgPSBtX2RvYy0+bWF5SGF2ZUVsZW1lbnRz
V2l0aE5vbkF1dG9Ub3VjaEFjdGlvbigpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JF
R0lPTikKLSAgICBoYXNFZGl0YWJsZUVsZW1lbnRzID0gbV9kb2MtPm1heUhhdmVFZGl0YWJsZUVs
ZW1lbnRzKCk7CisgICAgaGFzRWRpdGFibGVFbGVtZW50cyA9IG1fZG9jLT5tYXlIYXZlRWRpdGFi
bGVFbGVtZW50cygpICYmIG1fcGFnZS0+c2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigpOwogI2Vu
ZGlmCiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gbG9vayBhdCB3aGVlbCBldmVudCBoYW5k
bGVycyB0b28uCiAgICAgaWYgKCFoYXNUb3VjaEFjdGlvbkVsZW1lbnRzICYmICFoYXNFZGl0YWJs
ZUVsZW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMTQ2NzkxNmIwYjE5ZWM3MjY3YzdkOGJk
ODVkYmRmZDBmZDJkYmRhNS4uYjVkYmU5ZjBmMzAxNjkwMWY0YWI5YzYyZjFiYTFiY2VlYWNkM2Rm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05MjAsNiArOTIwLDMxIEBAIHZvaWQgUGFnZTo6dW5t
YXJrQWxsVGV4dE1hdGNoZXMoKQogICAgIH0pOwogfQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JF
R0lPTikKKwordm9pZCBQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCBlbmFibGVk
KQoreworICAgIGlmIChtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkID09IGVuYWJsZWQpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkID0gZW5hYmxlZDsKKyAg
ICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIobWFpbkZyYW1lKCkudmlldygpKTsKKyAgICBp
ZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChhdXRvKiByZW5kZXJWaWV3
ID0gZnJhbWVWaWV3LT5yZW5kZXJWaWV3KCkpCisgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0
b3IoKS5pbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKK30KKworI2VuZGlmCisK
KyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCitib29sIFBhZ2U6OnNob3VsZEJ1aWxkRWRp
dGFibGVSZWdpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2lzRWRpdGFibGVSZWdpb25FbmFi
bGVkIHx8IG1fc2V0dGluZ3MtPnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkgJiBFZGl0YWJs
ZUVsZW1lbnRSZWdpb247Cit9CisKKyNlbmRpZgorCiBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBQYWdl
OjplZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2VhcmNoUmVjdEluUm9v
dFZpZXdDb29yZGluYXRlcykgY29uc3QKIHsKICAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQ
dHIobWFpbkZyYW1lKCkudmlldygpKTsKQEAgLTExODYsNiArMTIxMSw5IEBAIHZvaWQgUGFnZTo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWQoKQogCiB2b2lkIFBhZ2U6OmRpZEZpbmlzaExvYWQoKQog
eworI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgbV9pc0VkaXRhYmxlUmVnaW9uRW5h
YmxlZCA9IGZhbHNlOworI2VuZGlmCiAgICAgcmVzZXRSZWxldmFudFBhaW50ZWRPYmplY3RDb3Vu
dGVyKCk7CiAKICAgICBpZiAobV9wZXJmb3JtYW5jZU1vbml0b3IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4
IGFjMjA2NDRiZTM5MjU4ZDk2MGU0YzQ1MzhmNTMyZjc2YjUyNzJmNTMuLmY3ZDIyN2VlZDliMTEy
YmFjYmUzM2U5ZGJhZWRmZjlkNzBjYzA1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC03NDIsNiArNzQy
LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3Qg
U3RyaW5nJiwgV1RGTG9nQ2hhbm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7CiAKKyNpZiBFTkFCTEUo
RURJVEFCTEVfUkVHSU9OKQorICAgIGJvb2wgc2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigpIGNv
bnN0OworICAgIGJvb2wgaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2lzRWRpdGFibGVSZWdpb25FbmFibGVkOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCA9IHRydWUpOworI2VuZGlmCisKICAgICBXRUJDT1JF
X0VYUE9SVCBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBlZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0
IEZsb2F0UmVjdCYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTEwMDMsNiArMTAwOSwxMCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kZWxl
Z2F0ZXNTY2FsaW5nIHsgZmFsc2UgfTsKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisg
ICAgYm9vbCBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAg
ICAgVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBtX3VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24geyBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIgfTsKICAgICAKICAgICAv
LyBGb3IgdGVzdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVu
dFJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCmlu
ZGV4IDYzY2IyM2Q3ZmU5ZDA3ZDRiODRlZDRhMTgyZjhkYzFlMmI5ZjQzMzEuLjg3Mzk0ZWQ2Mzk5
MDNlMjJmYmUzYmU2NzgyYzQ3Y2JlZDU5YjM2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V2ZW50UmVnaW9uLmNwcApAQCAtMTMwLDggKzEzMCw4IEBAIHZvaWQgRXZlbnRSZWdpb246OnVu
aXRlKGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wg
b3ZlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaWYgKG92ZXJy
aWRlVXNlck1vZGlmeUlzRWRpdGFibGUgfHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2Rp
Znk6OlJlYWRPbmx5KQotICAgICAgICBtX2VkaXRhYmxlUmVnaW9uLnVuaXRlKHJlZ2lvbik7Cisg
ICAgaWYgKG1fZWRpdGFibGVSZWdpb24gJiYgKG92ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUg
fHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5KSkKKyAgICAgICAg
bV9lZGl0YWJsZVJlZ2lvbi0+dW5pdGUocmVnaW9uKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KG92ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUpOwogI2VuZGlmCkBAIC0xNTYsNyArMTU2LDgg
QEAgdm9pZCBFdmVudFJlZ2lvbjo6dHJhbnNsYXRlKGNvbnN0IEludFNpemUmIG9mZnNldCkKICNl
bmRpZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBtX2VkaXRhYmxlUmVnaW9u
LnRyYW5zbGF0ZShvZmZzZXQpOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uKQorICAgICAgICBt
X2VkaXRhYmxlUmVnaW9uLT50cmFuc2xhdGUob2Zmc2V0KTsKICNlbmRpZgogfQogCkBAIC0yODMs
MTAgKzI4NCwxMiBAQCBjb25zdCBSZWdpb24mIEV2ZW50UmVnaW9uOjpldmVudExpc3RlbmVyUmVn
aW9uRm9yVHlwZShFdmVudExpc3RlbmVyUmVnaW9uVHlwZSB0eQogI2VuZGlmIC8vIEVOQUJMRShX
SEVFTF9FVkVOVF9SRUdJT05TKQogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKwogYm9v
bCBFdmVudFJlZ2lvbjo6Y29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24uaW50ZXJzZWN0
cyhyZWN0KTsKKyAgICByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbiAmJiBtX2VkaXRhYmxlUmVnaW9u
LT5pbnRlcnNlY3RzKHJlY3QpOwogfQorCiAjZW5kaWYKIAogdm9pZCBFdmVudFJlZ2lvbjo6ZHVt
cChUZXh0U3RyZWFtJiB0cykgY29uc3QKQEAgLTMyMiw4ICszMjUsOCBAQCB2b2lkIEV2ZW50UmVn
aW9uOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQotICAgIGlmICghbV9lZGl0YWJsZVJlZ2lvbi5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCBtX2VkaXRhYmxlUmVn
aW9uOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uICYmICFtX2VkaXRhYmxlUmVnaW9uLT5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCAq
bV9lZGl0YWJsZVJlZ2lvbjsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwogICAgIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaAppbmRleCA1MDEyNDNl
MDQ4Yjk4NGU2YjA2NmRhOTRiNTgyNTI4ZmQ1ZGRlZTgyLi42YzRmYWU2MzM3MjViN2U2ZThiZmQ5
ZGVhOTg1OTE1YzgxMGM5NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXZlbnRSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24u
aApAQCAtODcsOCArODcsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQorICAgIHZvaWQgZW5zdXJlRWRpdGFibGVSZWdpb24oKTsKKyAgICBib29sIGhh
c0VkaXRhYmxlUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbi5oYXNWYWx1
ZSgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb250YWluc0VkaXRhYmxlRWxlbWVudHNJ
blJlY3QoY29uc3QgSW50UmVjdCYpIGNvbnN0OwotICAgIFZlY3RvcjxJbnRSZWN0LCAxPiByZWN0
c0ZvckVkaXRhYmxlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX2VkaXRhYmxlUmVnaW9uLnJl
Y3RzKCk7IH0KKyAgICBWZWN0b3I8SW50UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRz
KCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbiA/IG1fZWRpdGFibGVSZWdpb24tPnJl
Y3RzKCkgOiBWZWN0b3I8SW50UmVjdCwgMT4geyB9OyB9CiAjZW5kaWYKIAogICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTExMyw3ICsx
MTUsNyBAQCBwcml2YXRlOgogICAgIFJlZ2lvbiBtX25vblBhc3NpdmVXaGVlbEV2ZW50TGlzdGVu
ZXJSZWdpb247CiAjZW5kaWYKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIFJlZ2lv
biBtX2VkaXRhYmxlUmVnaW9uOworICAgIE9wdGlvbmFsPFJlZ2lvbj4gbV9lZGl0YWJsZVJlZ2lv
bjsKICNlbmRpZgogfTsKIApAQCAtMTUyLDcgKzE1NCw3IEBAIE9wdGlvbmFsPEV2ZW50UmVnaW9u
PiBFdmVudFJlZ2lvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgT3B0aW9uYWw8UmVnaW9uPiBlZGl0YWJsZVJlZ2lv
bjsKKyAgICBPcHRpb25hbDxPcHRpb25hbDxSZWdpb24+PiBlZGl0YWJsZVJlZ2lvbjsKICAgICBk
ZWNvZGVyID4+IGVkaXRhYmxlUmVnaW9uOwogICAgIGlmICghZWRpdGFibGVSZWdpb24pCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0xNzMsNCArMTc1LDE0IEBAIGJvb2wgRXZlbnRS
ZWdpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFJlZ2lvbiYgZXZlbnRSZWdpb24p
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCitp
bmxpbmUgdm9pZCBFdmVudFJlZ2lvbjo6ZW5zdXJlRWRpdGFibGVSZWdpb24oKQoreworICAgIGlm
ICghbV9lZGl0YWJsZVJlZ2lvbikKKyAgICAgICAgbV9lZGl0YWJsZVJlZ2lvbi5lbXBsYWNlKCk7
Cit9CisKKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAppbmRleCBmNWY0ZTM2YWQzZWQ2ZWNjNmQwZmI3OGI0YTcxNmVhZTgzYzg0N2RmLi4xZWM3MjRm
ZjU5YTQ1MTJkNjIyZTJlZThkMDQ3NzdhNTZjZTAwYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTEyNjQsNyArMTI2NCw3IEBAIHZvaWQgUmVuZGVyQmxv
Y2s6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzCiAgICAgICAgIC8vIHRob3VnaCBpdCdzIGFjdHVhbGx5IHRoZSBpbm5lciB0ZXh0
IGVsZW1lbnQgb2YgdGhlIGNvbnRyb2wgdGhhdCBpcyBlZGl0YWJsZS4KICAgICAgICAgLy8gU28s
IG5vIG5lZWQgdG8gdHJhdmVyc2UgdG8gZmluZCB0aGUgaW5uZXIgdGV4dCBlbGVtZW50IGluIHRo
aXMgY2FzZS4KICAgICAgICAgaWYgKCFpc1RleHRDb250cm9sKCkpCi0gICAgICAgICAgICBuZWVk
c1RyYXZlcnNlRGVzY2VuZGFudHMgfD0gZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50
cygpOworICAgICAgICAgICAgbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzIHw9IGRvY3VtZW50KCku
bWF5SGF2ZUVkaXRhYmxlRWxlbWVudHMoKSAmJiBwYWdlKCkuc2hvdWxkQnVpbGRFZGl0YWJsZVJl
Z2lvbigpOwogI2VuZGlmCiAgICAgICAgIGlmICghbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzKQog
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwCmluZGV4IDdkNjhjZGIzMTkxMjE2ZTM2N2Y5ODY2Zjc5YzhkOGIxODgwMjQ0YWEuLjE4
MjFhMzAwMDNkYmM1OGI3MTYyOTI4MzQzY2RjNmNlOWI4NjZhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTc0OSw3ICs3NDksNyBAQCB2b2lkIFJl
bmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3Qg
UmVuZGVyU3R5bGUmIG5ldwogICAgICAgICAgICAgYm9vbCB3YXNFZGl0YWJsZSA9IG1fc3R5bGUu
dXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5OwogICAgICAgICAgICAgYm9vbCBp
c0VkaXRhYmxlID0gbmV3U3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5
OwogICAgICAgICAgICAgaWYgKHdhc0VkaXRhYmxlICE9IGlzRWRpdGFibGUpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2UoKS5zaG91bGRC
dWlsZEVkaXRhYmxlUmVnaW9uKCk7CiAjZW5kaWYKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggMDNl
YjYxZGRiMTFiZTg0YjBmYTk1YWYwYjEwYTVlZDkwZjA5ZTNhOS4uNDczNWRhYjgzMGQxOTJhNGQw
MzczNTQxOWVhYTg5ZDlhYjE3YzVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKQEAgLTkyNyw3ICs5MjcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBJbnZhbGlkYXRpb24g
Y2FuIGZhaWwgaWYgdGhlcmUgaXMgbm8gZW5jbG9zaW5nIGNvbXBvc2l0aW5nIGxheWVyIChlLmcu
IG5lc3RlZCBpZnJhbWUpCiAgICAgLy8gb3IgdGhlIGxheWVyIGRvZXMgbm90IG1haW50YWluIGFu
IGV2ZW50IHJlZ2lvbi4KLSAgICBlbnVtIGNsYXNzIEV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVh
c29uIHsgUGFpbnQsIFN0eWxlLCBOb25Db21wb3NpdGVkRnJhbWUgfTsKKyAgICBlbnVtIGNsYXNz
IEV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uIHsgUGFpbnQsIFNldHRpbmdEaWRDaGFuZ2Us
IFN0eWxlLCBOb25Db21wb3NpdGVkRnJhbWUgfTsKICAgICBib29sIGludmFsaWRhdGVFdmVudFJl
Z2lvbihFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbik7CiAKICAgICBTdHJpbmcgZGVidWdE
ZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAyMzc2YjYyMGUxNzVmYmE5OGVhZWY2NDJiZGE1
ZWY5YWEyZjczZDk5Li5hMWEzODQyODRlYzhiOGM3YzM2OTE2MjY5NWI5MjFmOTFmNTcyYWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMTcwOCw3ICsxNzA4LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6Om1haW50YWluc0V2
ZW50UmVnaW9uKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICNpZiBFTkFC
TEUoRURJVEFCTEVfUkVHSU9OKQotICAgIGlmIChyZW5kZXJlcigpLmRvY3VtZW50KCkubWF5SGF2
ZUVkaXRhYmxlRWxlbWVudHMoKSkKKyAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhh
dmVFZGl0YWJsZUVsZW1lbnRzKCkgJiYgcmVuZGVyZXIoKS5wYWdlKCkuc2hvdWxkQnVpbGRFZGl0
YWJsZVJlZ2lvbigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmICFQTEFURk9S
TShJT1NfRkFNSUxZKQpAQCAtMTczNSw2ICsxNzM1LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVFdmVudFJlZ2lvbigpCiAgICAgYXV0byB1cGRhdGVFdmVudFJlZ2lvbkZvckxh
eWVyID0gWyZdKEdyYXBoaWNzTGF5ZXImIGdyYXBoaWNzTGF5ZXIpIHsKICAgICAgICAgR3JhcGhp
Y3NDb250ZXh0IG51bGxDb250ZXh0KG51bGxwdHIpOwogICAgICAgICBFdmVudFJlZ2lvbiBldmVu
dFJlZ2lvbjsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgICAgICBpZiAocmVuZGVy
ZXIoKS5wYWdlKCkuc2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigpKQorICAgICAgICAgICAgZXZl
bnRSZWdpb24uZW5zdXJlRWRpdGFibGVSZWdpb24oKTsKKyNlbmRpZgogICAgICAgICBhdXRvIGV2
ZW50UmVnaW9uQ29udGV4dCA9IGV2ZW50UmVnaW9uLm1ha2VDb250ZXh0KCk7CiAgICAgICAgIGF1
dG8gbGF5ZXJPZmZzZXQgPSBncmFwaGljc0xheWVyLnNjcm9sbE9mZnNldCgpIC0gcm91bmRlZElu
dFNpemUoZ3JhcGhpY3NMYXllci5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggM2Vm
MWNmZWM2YTM0MjQxNDUyYWUyYWExM2ZjNGFiZjI3M2ZmYzAyMi4uZTU4ZTFmNjJlYmU4YmY2MGNk
ZTdmYmVhYzg2NjU2NWE1MjAzZThjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjM1NywxOCArMjM1NywyNSBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cp
CiAgICAgfQogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2xlYXJCYWNraW5nRm9y
TGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYgbGF5ZXIpCit0ZW1wbGF0ZTx0
eXBlbmFtZSBBcHBseUZ1bmN0aW9uVHlwZT4KK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjph
cHBseVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoUmVuZGVyTGF5ZXImIGxh
eWVyLCBjb25zdCBBcHBseUZ1bmN0aW9uVHlwZSYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKGxheWVy
LmlzQ29tcG9zaXRlZCgpKQotICAgICAgICBsYXllci5jbGVhckJhY2tpbmcoKTsKLQorICAgICAg
ICBmdW5jdGlvbihsYXllcik7CiAgICAgZm9yIChhdXRvKiBjaGlsZExheWVyID0gbGF5ZXIuZmly
c3RDaGlsZCgpOyBjaGlsZExheWVyOyBjaGlsZExheWVyID0gY2hpbGRMYXllci0+bmV4dFNpYmxp
bmcoKSkKLSAgICAgICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygq
Y2hpbGRMYXllcik7CisgICAgICAgIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNj
ZW5kYW50cygqY2hpbGRMYXllciwgZnVuY3Rpb24pOworfQorCit2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKCkKK3sKKyAgICBhcHBs
eVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoKm1fcmVuZGVyVmlldy5sYXll
cigpLCBbXShhdXRvJiBsYXllcikgeworICAgICAgICBsYXllci5pbnZhbGlkYXRlRXZlbnRSZWdp
b24oUmVuZGVyTGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5nRGlk
Q2hhbmdlKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFy
QmFja2luZ0ZvckFsbExheWVycygpCiB7Ci0gICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRp
bmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCkpOworICAgIGFwcGx5VG9Db21wb3Np
dGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCksIFtdKGF1
dG8mIGxheWVyKSB7IGxheWVyLmNsZWFyQmFja2luZygpOyB9KTsKIH0KIAogdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0MmRlM2JlMGRi
OTMzYTNmODU5NjY4NGFhYWRmYzVjODdkYzdhYmU4Li4wMDczN2JjODI0MjQzZTc2ZTg0ZWNmNzJi
YzUzZTU4ZjFlNmUxNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCkBAIC0yODIsNiArMjgyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0SXNJbldpbmRvdyhib29sKTsKIAogICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yQWxsTGF5ZXJz
KCk7CisgICAgdm9pZCBpbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKICAgICAK
ICAgICB2b2lkIGxheWVyQmVjYW1lQ29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYpOwogICAg
IHZvaWQgbGF5ZXJCZWNhbWVOb25Db21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJik7CkBAIC00
MTcsNyArNDE4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5
ZXImLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3RhdGUqID0gbnVs
bHB0ciwgQmFja2luZ1JlcXVpcmVkID0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKTsKICAgICBi
b29sIHVwZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZShSZW5kZXJMYXllciYsIGNvbnN0IFJlbmRl
ckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJh
Y2tpbmdTaGFyaW5nU3RhdGUmKTsKIAotICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNs
dWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFw
cGx5RnVuY3Rpb25UeXBlPiB2b2lkIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNj
ZW5kYW50cyhSZW5kZXJMYXllciYsIGNvbnN0IEFwcGx5RnVuY3Rpb25UeXBlJik7CiAKICAgICAv
LyBSZXBhaW50IHRoaXMgYW5kIGl0cyBjaGlsZCBsYXllcnMuCiAgICAgdm9pZCByZWN1cnNpdmVS
ZXBhaW50TGF5ZXIoUmVuZGVyTGF5ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCmluZGV4IGJiYmI0YTQwMGIyN2ZkOTk5ZmI3YWYwZjM5MTk4NjI3M2Rh
NGE3ZmEuLjQ2MTUxNjM0YmViMDQwZmFiMTM0MGFmYjBmM2RmZGJjMzgxMjZhNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNDQxLDYgKzQ0MSwx
OCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3Npemlu
Z1VzZXNJZGVtcG90ZW50TW9kZShib29sIGVuYQogICAgIHJldHVybiB7IH07CiB9CiAKK0V4Y2Vw
dGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChi
b29sIGVuYWJsZWQpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQor
ICAgIG1fcGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKKyAgICByZXR1cm4geyB9OworfQorCiBF
eGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRNZWRpYVR5cGVPdmVycmlkZShj
b25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggYTFiOTcwOTRiN2UwYjFlNGRhNjQy
ODcwOWIxZWNhZGUwZGM1NDc0YS4uNDc4NWU2ODE0YTFmODVkYWYxODRmYWMxMjAxMDA0Y2YzYjIz
N2VhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEw
OSw2ICsxMDksOCBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSA9
IEZyYW1lRmxhdHRlbmluZzsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGcmFtZUZsYXR0ZW5p
bmcoRnJhbWVGbGF0dGVuaW5nVmFsdWUpOworCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRp
dGFibGVSZWdpb25FbmFibGVkKGJvb2wpOwogICAgIAogICAgIHN0YXRpYyB2b2lkIHNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbAppbmRleCAzNjg4N2ZjNjE1NjVhMDQ4OWE2ZTUwYjYwNmVmODRkYTE2
MDBlNmU2Li5jMTVmM2JlNDcwOTE3Njg2ZmYyZDRjNDRhMjRiNThjZjk4Y2FlOWZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTEyMiw1ICsxMjIs
NyBAQCBlbnVtIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJGYWls
dXJlIiB9OwogICAgIHZvaWQgc2V0U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29sZWFu
IHNob3VsZERlYWN0aXZhdGUpOwogICAgIAogICAgIHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQSVBl
clBhZ2VTY29wZUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKworICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gdm9pZCBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCmluZGV4IDUyYThhNzU2YmI0
OWRiZGE2NDE3ODQ0YmFlMWE2NGFlYzQ0NjgyMzUuLjY4YzBmYjBiNjUyZWI5NWRkZDkzOTZhYThl
MTliYzlkNjEwMTBlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbQpA
QCAtMTIwLDYgKzEyMCw3IEBAIGJvb2wgbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3Qo
VUlWaWV3ICpyb290VmlldywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0CiAgICAgY29sbGVjdERl
c2NlbmRhbnRWaWV3c0luUmVjdCh2aWV3c0luUmVjdCwgcm9vdFZpZXcsIHJlY3QpOwogICAgIGlm
ICh2aWV3c0luUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBib29s
IHNhd0FuRWRpdGFibGVSZWdpb24gPSBmYWxzZTsKICAgICBmb3IgKGF1dG8gKnZpZXcgOiBXVEY6
Om1ha2VSZXZlcnNlZFJhbmdlKHZpZXdzSW5SZWN0KSkgewogICAgICAgICBpZiAoIVt2aWV3IGlz
S2luZE9mQ2xhc3M6V0tDb21wb3NpdGluZ1ZpZXcuY2xhc3NdKQogICAgICAgICAgICAgY29udGlu
dWU7CkBAIC0xMjksMTAgKzEzMCwxNiBAQCBib29sIG1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KFVJVmlldyAqcm9vdFZpZXcsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdAogICAgICAg
ICBXZWJDb3JlOjpJbnRSZWN0IHJlY3RUb1Rlc3QgeyBbdmlldyBjb252ZXJ0UmVjdDpyZWN0IGZy
b21WaWV3OnJvb3RWaWV3XSB9OwogICAgICAgICBpZiAobm9kZS0+ZXZlbnRSZWdpb24oKS5jb250
YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QocmVjdFRvVGVzdCkpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG5vZGUtPmV2ZW50UmVnaW9uKCkuY29udGFpbnMocmVjdFRv
VGVzdCkpCisgICAgICAgIGJvb2wgaGFzRWRpdGFibGVSZWdpb24gPSBub2RlLT5ldmVudFJlZ2lv
bigpLmhhc0VkaXRhYmxlUmVnaW9uKCk7CisgICAgICAgIGlmIChoYXNFZGl0YWJsZVJlZ2lvbiAm
JiBub2RlLT5ldmVudFJlZ2lvbigpLmNvbnRhaW5zKHJlY3RUb1Rlc3QpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBzYXdBbkVkaXRhYmxlUmVnaW9uIHw9IGhhc0VkaXRhYmxl
UmVnaW9uOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gSWYgd2UgZGlkbid0IHNl
ZSBhbiBlZGl0YWJsZSByZWdpb24gdGhlbiB3ZSBkb24ndCBrbm93IHdoZXRoZXIgb3Igbm90IHRo
ZXJlIGFyZQorICAgIC8vIGVkaXRhYmxlIGVsZW1lbnRzIGluIHRoZSByZWN0LiBXZSBvbmx5IGtu
b3cgdGhhdCB0aGUgd2ViIHByb2Nlc3MgZGlkIG5vdCBkbyBhbgorICAgIC8vIGV2ZW50IHJlZ2lv
biBwYWludCB0byBmaW5kIHRoZW0uIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIGFzayB0aGUgd2Vi
IHByb2Nlc3MgdG8KKyAgICAvLyBrbm93IGZvciBzdXJlLgorICAgIHJldHVybiAhc2F3QW5FZGl0
YWJsZVJlZ2lvbjsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmlu
ZGV4IGQ4ZTlhMmYxMmQwZDVmMTA0NTM3YTRlY2QxZWEyYjQ5MjNhYTdlNGUuLjFiMjNlYmE3MjA0
Zjk0NDViNTk4ZTE2ODk0ZjA2OTY0MGE4MTI3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00MzE3LDYgKzQzMTcsOSBA
QCB2b2lkIFdlYlBhZ2U6OnRleHRJbnB1dENvbnRleHRzSW5SZWN0KEZsb2F0UmVjdCBzZWFyY2hS
ZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2bwogICAgICAgICByZXR1cm4gY29udGV4dDsKICAgICB9
KTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0cyk7CisjaWYgRU5BQkxFKEVESVRBQkxF
X1JFR0lPTikKKyAgICBtX3BhZ2UtPnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCgpOworI2VuZGlm
CiB9CiAKIHZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChj
b25zdCBFbGVtZW50Q29udGV4dCYgZWxlbWVudENvbnRleHQsIGNvbnN0IEludFBvaW50JiBwb2lu
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1MDMxMWI5ZTdkYjkyNzVkMjZjMjBjNGJlZjFlOThiODllZmM4YTU4Li4xMDgyMWY3NDMx
ZDAwYzk0NTQ4Nzc5NGEyMjlhMWQyOWJiODUxZTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIw
MjAtMDYtMjkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtp
T1NdIEVkaXRhYmxlIHJlZ2lvbnMgY2F1c2VzIH4xJSBzbG93ZG93biBpbiBQTFQ1CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2NTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzY0MzYxMzkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzb21lIHRlc3RzIHRvIGVuc3VyZSB0aGUgbmV3IHNldHRp
bmcgd29ya3MgYW5kIHRoZSBmZWF0dXJlIGNhbiBiZSBkaXNhYmxlZC4gTm90ZQorICAgICAgICB0
aGF0IHRoZSBzZXR0aW5nIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCB0byBrZWVwIHRoZSBjdXJyZW50
IGJlaGF2aW9yLiBTZWUgdGhlIFdlYkNvcmUKKyAgICAgICAgQ2hhbmdlTG9nIGVudHJ5IGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5ncyB0ZXN0cyB0aGF0IG5lZWQg
dGhlIGVkaXRhYmxlIHJlZ2lvbiBlbmFibGVkIHRvIGVuYWJsZSBpdCBub3cgdGhhdCBpdCBtdXN0
CisgICAgICAgIGJlIGV4cGxpY2l0bHkgZW5hYmxlZC4KKworICAgICAgICAqIGVkaXRpbmcvZWRp
dGFibGUtcmVnaW9uL2ZpeGVkLWFuZC1hYnNvbHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9mbG9hdC1jb250ZW50ZWRp
dGFibGUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1i
YXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2hpdC10ZXN0LWJhc2ljLmh0bWwuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaGl0LXRlc3QtYmFzaWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZml4ZWQuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRt
bDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0
YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0bWwuCisgICAg
ICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0bWw6CisgICAgICAgICogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxl
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xs
LXRleHQtZmllbGQtYW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Ny
b2xsZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1p
bnNpZGUtdHJhbnNmb3JtZWQtY29udGVudGVkaXRhYmxlLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vc2VhcmNoLWZpZWxkLWJhc2ljLmh0bWw6CisgICAgICAgICogZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJl
Z2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNp
Yy5odG1sLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFz
aWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWlu
c2lkZS1jb21wb3NpdGVkLW5lZ2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVkLW9uLXRvcC1vZi1maXhl
ZC1jb250ZW50ZWRpdGFibGVzLmh0bWw6CisKIDIwMjAtMDYtMjggIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtURkNdIEFkanVzdCB0YWJsZSBjb250ZW50
IHZlcnRpY2FsIHBvc2l0aW9uIHRvIG1hdGNoIHZlcnRpY2FsLWFsaWduCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9maXhlZC1hbmQtYWJzb2x1dGUtY29u
dGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi9maXhlZC1hbmQtYWJzb2x1dGUtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwK
aW5kZXggM2IzNWRiZDkwNWY4MjhiNmM3OTk2NmEwMzAzMWI3MWY5Yjc4MjgwZS4uMDQ0YTdhNWUy
ZGVmOTE1ZjFiYTk1MjY2ZDJlOWQwYjZkNTE2OWNlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZml4ZWQtYW5kLWFic29sdXRlLWNvbnRlbnRlZGl0YWJs
ZS1zY3JvbGxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L2ZpeGVkLWFuZC1hYnNvbHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbApAQCAtMSw1
ICsxLDExIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVn
aW9uRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgogPGJvZHkgc3R5bGU9ImhlaWdo
dDogNDA5NnB4Ij4KIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgYm9yZGVyOiAxcHggc29s
aWQgYmxhY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwcHgiIGNvbnRlbnRlZGl0YWJsZT0idHJ1
ZSI+PC9kaXY+CiA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOyBoZWlnaHQ6IDI1NnB4OyB3aWR0aDogMjU2cHg7IHRvcDogMTAwMHB4OyBsZWZ0
OiAyMDBweCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2Zsb2F0LWNvbnRlbnRlZGl0YWJsZS5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRh
YmxlLmh0bWwKaW5kZXggZDM3MzM0ZDY1Y2RiNjE3NWVjNzk1NjhmMzFiNTA4YTI2Nzc3MDczYS4u
M2Y0YjJjN2JjZjQ2MTY1NjYzYTRhMTYwNmUzMDU4YWQ5NjlkMTlkZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVudGVkaXRhYmxlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZmxvYXQtY29udGVu
dGVkaXRhYmxlLmh0bWwKQEAgLTEsNSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KIDxib2R5PgogPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsgd2lkdGg6IDUwcHg7IGhlaWdodDogNDBweCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48
L2Rpdj4KIDxwcmUgaWQ9InJlc3VsdHMiPjwvcHJlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1y
ZWdpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhlNjZmNWQ4MWZjODU1NzAxMjJhNjIxY2NiY2MwMzZhOGM0MmUyYTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1i
YXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorSGl0IHRlc3RzIGZvciBlZGl0YWJsZSBlbGVtZW50cyBpbnNpZGUgdGhlIGJsYWNrIG91dGxp
bmVkIHJlY3RhbmdsZSB3aGVuIHRoZSBlZGl0YWJsZSByZWdpb24gaXMgZGlzYWJsZWQuIFRoZXJl
IHNob3VsZCBiZSBtb3JlIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRpc2FibGVkLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAoeCA9IDEwMCwgeSA9IDEwMCwgd2lkdGggPSAy
MDIsIGhlaWdodCA9IDIwMikgY29udGFpbnMgZWRpdGFibGUgZWxlbWVudHMuCitQQVNTICh4ID0g
MCwgeSA9IDAsIHdpZHRoID0gNTAsIGhlaWdodCA9IDUwKSBjb250YWlucyBlZGl0YWJsZSBlbGVt
ZW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVz
dC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jYzM0YmZiOGNjOWE3YWZlM2MyOTk4N2ZlMDEyNWVjY2YxMzFkNzZh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApAQCAtMCwwICsxLDUy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9oaXQt
dGVzdC11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3Rlc3QtY29udGFpbmVyIHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAxMDBweDsKKyAgICBsZWZ0OiAxMDBw
eDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB3aWR0aDogMjAwcHg7CisgICAg
aGVpZ2h0OiAyMDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRl
c3QtY29udGFpbmVyIj4KKyAgICA8aW5wdXQ+Cis8L2Rpdj4KKzxzY3JpcHQ+Cit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChmYWxzZSk7CisKK2FzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdEZhaWxlZCgiTXVzdCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGxldCB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3QtY29udGFpbmVyIik7CisgICAgYXdhaXQgc2hvdWxkSGF2ZUVkaXRhYmxl
RWxlbWVudHNJblJlY3RGb3JFbGVtZW50KHRlc3RDb250YWluZXIpOworCisgICAgLy8gV2l0aG91
dCBlZGl0YWJsZSByZWdpb24gZW5hYmxlZCB0aGlzIHJlY3QgaXMgdGhvdWdodCB0byBjb250YWlu
IHNvbWV0aGluZyBlZGl0YWJsZSBldmVuIHRob3VnaCBpdCBkb2Vzbid0LgorICAgIGF3YWl0IHNo
b3VsZEhhdmVFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KDAsIDAsIDUwLCA1MCk7CisKKyAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCitkZXNjcmlwdGlvbigiSGl0IHRlc3RzIGZvciBlZGl0YWJsZSBlbGVtZW50cyBpbnNp
ZGUgdGhlIGJsYWNrIG91dGxpbmVkIHJlY3RhbmdsZSB3aGVuIHRoZSBlZGl0YWJsZSByZWdpb24g
aXMgZGlzYWJsZWQuIFRoZXJlIHNob3VsZCBiZSBtb3JlIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGRp
c2FibGVkLiIpOworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNp
Yy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFz
aWMuaHRtbAppbmRleCA4MjNlN2NmM2U2NTFhODRmMzk4NWEwNDQzOTc4MzBkY2YzNTgxZWNkLi4x
MGU2NmM0MWUwNTZiNzczNzJhMDVhOTViMTNmNmM2Y2Q2Y2JhZTI5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLmh0bWwK
QEAgLTI1LDYgKzI1LDkgQEAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFi
bGVkKHRydWUpOworCiBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBpZiAoIXdpbmRv
dy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1l
bGVtZW50Lmh0bWwKaW5kZXggNmM2YjYwYTBkYTU0ZjBmNjYwYWZiMmEyNWFlYTA1YjFiOGI3Yjcy
ZS4uMGI1YTgxYTE0OGYzZmMzMGExMTI4ZGY2NWZjNWZhZDI1M2NlZTk3ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZWRpdGFibGUtZG9j
dW1lbnQtZWxlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL2hpdC10ZXN0LWVkaXRhYmxlLWRvY3VtZW50LWVsZW1lbnQuaHRtbApAQCAtOSw2ICs5LDkg
QEAKIDxzY3JpcHQ+CiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQodHJ1ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL2hpdC10ZXN0LWZpeGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi9oaXQtdGVzdC1maXhlZC5odG1sCmluZGV4IGQyYjQ0MzQ3ZjdjZGI5Y2FkZDQ4MTkz
YmRiODBmNjVhZjA3NDdkYzYuLjlhNTFhOWNmZDM5MjMzMzM1MWNkNDI1NThjODJkMmE2ZGY5ODI0
ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10
ZXN0LWZpeGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aGl0LXRlc3QtZml4ZWQuaHRtbApAQCAtMjIsNiArMjIsOSBAQCB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3Qo
KQogewogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbAppbmRl
eCAzMTBiMjVmYTA2ZmI4YWIzMDVkYjBkNTFmZmExODc5Mzc3NmIxNTVhLi5jN2VkODRlMTU4ODk3
MjBlMWY2ODMxNmY3YjYwM2RhOWQ4ZjFkNGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3Qtb3ZlcmxhcC5odG1sCkBAIC02OSw2
ICs2OSw5IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVl
KTsKKwogYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LXRleHRhcmVhLWVtcHR5LXNwYWNlLmh0bWwKaW5kZXgg
OWRmNTFhNzIwODc4YjUyMjYxNDRjZDc4OGJjYmZmOWZmYjk2MzIwMS4uY2ZkNDA0ZTBhNGM0Mjll
YTAwMDY1MWQ0OTM5MDc4YWNhYmY2NzcwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC10ZXh0YXJlYS1l
bXB0eS1zcGFjZS5odG1sCkBAIC0yNSw2ICsyNSw5IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKKwogYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiB7
CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13
aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQwZmFmYTI3
ZjUxOWIwZWM2OTQ4YWM3OWMzMmFiNmNlMjk0NTNjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJl
Z2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NCBAQAorCisoR3JhcGhpY3NMYXllcgorICAo
YW5jaG9yIDAuMDAgMC4wMCkKKyAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAgKGNoaWxkcmVu
IDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNDExMi4wMCkKKyAg
ICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJh
Y2tncm91bmRDb2xvciAjRkZGRkZGKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQorICAgICAgICAgIChib3Vu
ZHMgMzA0LjAwIDMwNC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChw
b3NpdGlvbiAyLjAwIDIuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgb3JpZ2luIDAu
MDAgMjAwLjAwKQorICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAg
ICAgICAgICAgICAoYm91bmRzIDMwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChjaGls
ZHJlbiAxCisgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGJvdW5kcyAzMTAuMDAgNjcwLjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDMxMC4wMCA2NzAuMDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICApCisgICAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAg
ICAgICAgICApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCisp
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFt
ZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTI2M2I5ZDYyMWY2Y2NkMWUwZGExYWVjNWZlNDgyZWRlMDk0ODVhMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0
LWVkaXRhYmxlLXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keSBzdHlsZT0iaGVpZ2h0OiA0MDk2cHgiPgorPGlmcmFtZSBpZD0idGVzdEZy
YW1lIiBoZWlnaHQ9IjMwMCIgc3JjZG9jPSIKKzxzdHlsZT4KKy5zY3JvbGxlciB7CisgICAgbWFy
Z2luLXRvcDogNDAwcHg7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDogMzAwcHg7Cisg
ICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30KKy5j
b250ZW50cyB7CisgICAgd2lkdGg6IDUwMHB4OworICAgIGhlaWdodDogNTAwcHg7Cit9CisuZWRp
dGFibGUgeworICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGU7CisgICAgYm9yZGVy
OiAycHggc29saWQgYmx1ZTsKK30gICAKKzwvc3R5bGU+Cis8cD5pZnJhbWU8L3A+Cis8ZGl2IGNs
YXNzPSdlZGl0YWJsZSBib3gnIHN0eWxlPSdtYXJnaW4tdG9wOiAyNTBweDsnPgorPC9kaXY+Cis8
ZGl2IGNsYXNzPSdzY3JvbGxlcicgc3R5bGU9J21hcmdpbi10b3A6IDUwcHg7Jz4KKyAgICA8ZGl2
IGNsYXNzPSdjb250ZW50cyc+CisgICAgICAgIE92ZXJmbG93IHNjcm9sbCBpbiBpZnJhbWUKKyAg
ICAgICAgPGRpdiBjbGFzcz0nZWRpdGFibGUgYm94JyBzdHlsZT0nbWFyZ2luLXRvcDogNTBweDsn
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK3dpbmRvdy5w
YXJlbnQuc2Nyb2xsSUZyYW1lQW5kRHVtcFJlZ2lvbnMoKTsKKzwvc2NyaXB0PgorIj4KKzwvaWZy
YW1lPgorPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKHRydWUpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZmFsc2UpOworfQorCitm
dW5jdGlvbiBzY3JvbGxJRnJhbWVBbmREdW1wUmVnaW9ucygpCit7CisgICAgdGVzdEZyYW1lLmNv
bnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMjAwKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChk
b2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50
ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKKyAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0bWwKaW5kZXggODcwODQ5MTM5ZmE4NGM4NjE3MDQxYjAz
ZmEzNDVlMGFjZmJjNGZlMC4uYTdlZTRlODllZTA0YTVkYjUzMDNhNzMxYjljZTRjNDBjNGYwZjdh
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1l
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0
bWwKQEAgLTQxLDggKzQxLDEwIEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jRnJhbWVT
Y3JvbGxpbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJs
ZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7Cit9CiAKIGZ1bmN0aW9uIHNjcm9sbElGcmFtZUFuZER1bXBS
ZWdpb25zKCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL291dC1oYW5naW5nLWNoaWxkLW9mLWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVk
aXRhYmxlLmh0bWwKaW5kZXggOTJjMzU3OTI2ZWNjMGY1ZGE3ZmVhOWFkNDYzZGIzNDk3NDc5OTZm
YS4uZGM4NTczZDYxMDQ5ZWQyZmY1ZTNmNTkyODA3MjhmZDJiMjRjNjlkNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2Yt
Y29udGVudGVkaXRhYmxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTM0LDYg
KzM0LDggQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCiAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQo
ZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGlu
dGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL292
ZXJmbG93LXNjcm9sbC10ZXh0LWZpZWxkLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL292ZXJmbG93LXNjcm9sbC10ZXh0LWZpZWxk
LWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbAppbmRleCBhZDI5NDU4NTEyMTc0ZjkxNDQ1MTFjZjNh
ZWU1YmNjNGM4ZWMxNjlhLi40NTk2NzAwYzMwNzUwZmFjZDZkNzM5YmMzODg0Y2RhZDNkMDNiMWU4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9vdmVyZmxv
dy1zY3JvbGwtdGV4dC1maWVsZC1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xsLXRleHQtZmllbGQt
YW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0yNiw2ICsyNiw4IEBACiA8c2NyaXB0PgogaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9u
RW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENv
bnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZ
RVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNM
VURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtZml4ZWQtY29u
dGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtZml4ZWQtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0
bWwKaW5kZXggMTk3YWYzMmU5ZmJkNWFkMjJiNTY3YzBlNjFiZjkyMmZhMDM4M2I2MS4uMGI4YTYw
YjkwYWU5ZDQ5MjhlNDJlMDQ1NjMxZDllMzNlNWRmNmY4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLWZpeGVkLWNvbnRlbnRl
ZGl0YWJsZS1zY3JvbGxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL3JlbGF0aXZlLWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRt
bApAQCAtMTAsNiArMTAsOCBAQCB3aW5kb3cuc2Nyb2xsVG8oMCwgMTAyNCk7CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJs
ZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykKICAgICByZXN1bHRzLnRleHRDb250ZW50
ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RS
RUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNf
Uk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLXRyYW5zZm9ybWVkLWNv
bnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
cmVsYXRpdmUtaW5zaWRlLXRyYW5zZm9ybWVkLWNvbnRlbnRlZGl0YWJsZS5odG1sCmluZGV4IDUx
OWYyOTk5NmIwNTAxNTk4N2Y2MzE3MjFhNzVmZWU1YTcxMmUwYzMuLjQ3ZTcxY2Q3NjAwMGUxMDRl
YWRmNjlmNDk0MGZjZTU3OTdlMTZhM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS10cmFuc2Zvcm1lZC1jb250ZW50ZWRpdGFi
bGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2
ZS1pbnNpZGUtdHJhbnNmb3JtZWQtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTE5LDYgKzE5LDgg
QEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAg
ICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1l
bnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFs
cy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3NlYXJjaC1m
aWVsZC1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2Vh
cmNoLWZpZWxkLWJhc2ljLmh0bWwKaW5kZXggNjkyMzEzNzQyNGE5ZmY4NGYwNjcwODkzY2FlYmUy
NGU0NWExYzY0MS4uZWIzZGZiOTNkNDM3NDBjNjI2ZDNjMDJlZjk0NzljOWI1NzMzYjljNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2VhcmNoLWZpZWxk
LWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vc2Vh
cmNoLWZpZWxkLWJhc2ljLmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxl
ZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQg
PSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJF
RV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19S
T09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg4MWZlNWQ5MGY2NWY1MDg1ZDE0M2Q5MTZmOTg0NTE0YzQzMmFmMjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0
LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE0IEBACisKKyhHcmFwaGljc0xheWVyCisgIChhbmNob3IgMC4wMCAwLjAwKQorICAoYm91
bmRzIDgwMC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJhY2tncm91bmRDb2xvciAjRkZGRkZGKQorICAg
ICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQt
ZWRpdGFibGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiYjAxZTdmZjVhNThjZWQ0ZjJiNTRk
NDhjY2VjZmM3MDQzYTUyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24u
aHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
aW5wdXQgdHlwZT0idGV4dCI+Cis8cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdp
b25FbmFibGVkKHRydWUpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGZhbHNlKTsKKyAgICByZXN1bHRzLnRl
eHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxz
LkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVf
SU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
dGV4dC1maWVsZC1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vdGV4dC1maWVsZC1iYXNpYy5odG1sCmluZGV4IDg0YTgwMTllMjViMmUyNDM0MWQ5Y2FhZGJm
NDk3Yjk3MjcwZTI4NmEuLmIyYzAzY2Q5MTQwOTg1NTc1NzQ5MmJmMzc0OTRjYzUwZmM0MjZkMTYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmll
bGQtYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90
ZXh0LWZpZWxkLWJhc2ljLmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxl
ZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQg
PSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJF
RV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19S
T09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1jb21wb3NpdGVkLW5l
Z2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUtei1pbmRleC1sYXll
ci5odG1sCmluZGV4IGI0ZTRkOGQ3ZTRlNzQ1Y2YzOTZhNDgzMDRjNjAxM2Q5MWQwOTRkMjMuLjAx
ZTFlM2E2NDIzOGI4MDQ5MjJlMWQ3NjA1NjE0Y2IwYzRmYjNkMDQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0
ZWQtbmVnYXRpdmUtei1pbmRleC1sYXllci5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtaW5zaWRlLWNvbXBvc2l0ZWQtbmVnYXRpdmUtei1p
bmRleC1sYXllci5odG1sCkBAIC0xOCw2ICsxOCw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0
cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBp
bnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9J
TkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09U
X0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dGFyZWEtYmFzaWMuaHRtbAppbmRleCAxYTE4OWE5
NmFkMDE3MGI3MzJiODA5NjkwN2NmOThhMWYyYTZhNWQxLi42OWZlNzYyNTdkYWMyMjEwZmY1N2Iy
ZWQ5YzMwMDMzMjU3NGY3ODU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL3RleHRhcmVhLWJhc2ljLmh0bWwKQEAgLTYsNiArNiw4IEBACiA8c2Ny
aXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRh
YmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgIHJlc3Vs
dHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRl
cm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04gfCBpbnRlcm5hbHMuTEFZRVJf
VFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90cmFuc2Zvcm1lZC1zY3Jv
bGxlZC1vbi10b3Atb2YtZml4ZWQtY29udGVudGVkaXRhYmxlcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdHJhbnNmb3JtZWQtc2Nyb2xsZWQtb24tdG9wLW9mLWZp
eGVkLWNvbnRlbnRlZGl0YWJsZXMuaHRtbAppbmRleCBiYmM3ZmY5OWRlZjEzMWYxM2VkYzMyZTNi
MmNiNjc3MWFhOTQxNmRiLi5mYzNhYWQ5ZmQ5YzJmNmMxM2VkMTQ4N2ViZWNiY2ZiMTVlZjIyMGMw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90cmFuc2Zv
cm1lZC1zY3JvbGxlZC1vbi10b3Atb2YtZml4ZWQtY29udGVudGVkaXRhYmxlcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVk
LW9uLXRvcC1vZi1maXhlZC1jb250ZW50ZWRpdGFibGVzLmh0bWwKQEAgLTIxLDYgKzIxLDggQEAK
IHdpbmRvdy5zY3JvbGxUbygwLCAxMjApOwogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVl
QXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJ
T04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMp
OwogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403217</attachid>
            <date>2020-06-30 12:02:42 -0700</date>
            <delta_ts>2020-06-30 12:02:42 -0700</delta_ts>
            <desc>To Land</desc>
            <filename>bug-213659-20200630120241.patch</filename>
            <type>text/plain</type>
            <size>46934</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzZTJmOGViYzJmYjYw
NTI4YzcyZjBmYzMxZGMwNGM5OGIzYmNkNi4uYWY3NTY2NGM5ZDQ4NWQxMjZhZGI3YTA5YWUzZmQx
NWVjZjc2YTJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIwLTA2LTMwICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBFZGl0YWJsZSBy
ZWdpb25zIGNhdXNlcyB+MSUgc2xvd2Rvd24gaW4gUExUNQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDM2MTM5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgRml4IHRoZSBzbG93ZG93biBieSBvbmx5IGVuYWJsaW5nIGVkaXRhYmxlIHJlZ2lvbiB3aGVu
IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QgaXMgY2FsbGVkLgorCisgICAgICAgIFRoZXJl
IGFyZSB0d28gcGFydHMgdGhhdCBtYWtlIGNvbXB1dGluZyB0aGUgZWRpdGFibGUgcmVnaW9uIGV4
cGVuc2l2ZToKKyAgICAgICAgICAgICAgICAxLiBSZXF1aXJlcyB0cmF2ZXJzaW5nIGRlc2NlbmRl
bnRzIGR1cmluZyBwYWludGluZyB3aGVuIGEgbm9ybWFsIHBhaW50IG1heSBiZQorICAgICAgICAg
ICAgICAgICAgIGFibGUgdG8gYXZvaWQgdGhpcy4KKyAgICAgICAgICAgICAgICAyLiBDYW4gY2F1
c2UgbW9yZSBldmVudCByZWdpb24gaW52YWxpZGF0aW9ucyBiZWNhdXNlIGl0IGV4dGVuZHMgdGhl
IGludmFsaWRhdGlvbgorICAgICAgICAgICAgICAgICAgIGNyaXRlcmlvbiB0byBpbmNsdWRlIGNo
YW5nZXMgdG8gZWxlbWVudCBlZGl0YWJpbGl0eS4KKworICAgICAgICBUZXN0czogZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRt
bAorICAgICAgICAgICAgICAgZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLXdpdGhvdXQt
ZWRpdGFibGUtcmVnaW9uLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL3RleHQtZmllbGQtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbAorCisgICAg
ICAgIFRlc3RzOiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0
LWVkaXRhYmxlLXJlZ2lvbi5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbAorICAgICAgICAgICAgICAg
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxl
LXJlZ2lvbi5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lOjppbnZhbGlkYXRlQ29udGVudEV2ZW50UmVnaW9uc0lmTmVlZGVkKTogQ2hlY2sg
aWYgZWRpdGFibGUgcmVnaW9uIGlzIGVuYWJsZWQuCisgICAgICAgIElmIGl0IGlzIHRoZW4gZG8g
d2hhdCB3ZSBkbyBub3cuIE90aGVyd2lzZSwgZG9uJ3QgaW52YWxpZGF0ZSB0aGUgcmVnaW9uIHVu
bGVzcyB3ZSB3ZXJlIGdvaW5nCisgICAgICAgIHRvIGRvIHNvIGFueXdheS4KKyAgICAgICAgKiBw
YWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0RWRpdGFibGVSZWdpb25F
bmFibGVkKTogQWRkZWQuIFVwZGF0ZSBzdGF0ZSBhbmQgdGhlbiBpbnZhbGlkYXRlCisgICAgICAg
IHRoZSBldmVudCByZWdpb24gaW4gYWxsIGxheWVycy4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNob3VsZEJ1aWxkRWRpdGFibGVSZWdpb24gY29uc3QpOiBBZGRlZC4gUmV0dXJucyB3aGV0aGVy
IHRvIGJ1aWxkIHRoZQorICAgICAgICBlZGl0YWJsZSByZWdpb246IGVpdGhlciB3aGVuIFBhZ2U6
OmlzRWRpdGFibGVSZWdpb25FbmFibGVkKCkgaXMgdHJ1ZSBvciB0aGUgZWRpdGFibGUKKyAgICAg
ICAgcmVnaW9uIGRlYnVnIG92ZXJsYXkgaXMgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmRpZEZpbmlzaExvYWQpOiBUdXJuIG9mZiBlZGl0YWJsZSByZWdpb24gYXMgaXQgbWF5IG5v
dCBiZSBuZWVkZWQgb24KKyAgICAgICAgdGhlIG5ldyBwYWdlLgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQgY29u
c3QpOiBBZGRlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6dW5pdGUpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRSZWdpb246OnRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6Y29u
dGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50UmVnaW9uOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvRXZlbnRSZWdpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpoYXNFZGl0YWJsZVJlZ2lvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6cmVjdHNGb3JFZGl0YWJsZUVsZW1l
bnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmVuc3VyZUVkaXRhYmxlUmVnaW9uKToKKyAgICAg
ICAgVGhlIGVkaXRhYmxlIHJlZ2lvbiBpcyBub3cgYW4gT3B0aW9uYWw8Pi4gVGhlcmUgd2lsbCBv
bmx5IGJlIG9uZSBpZiBlbnN1cmVFZGl0YWJsZVJlZ2lvbgorICAgICAgICB3YXMgY2FsbGVkLCB3
aGljaCBpcyBvbmx5IHdoZW4gUGFnZTo6aXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSByZXR1cm5z
IHRydWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzdHls
ZVdpbGxDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJCYWNraW5nOjptYWludGFpbnNFdmVudFJlZ2lvbiBjb25zdCk6CisgICAgICAg
IE9ubHkgZG8gd2hhdCB3ZSBkbyBub3cgaWYgUGFnZTo6c2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lv
bigpIHJldHVybnMgdHJ1ZS4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVFdmVudFJlZ2lvbik6IEluc3RhbnRpYXRlIHRoZSBlZGl0YWJsZSByZWdpb24sIGlm
IG5lZWRlZC4KKyAgICAgICAgUGFpbnRpbmcgd2lsbCB0aGVuIHBvcHVsYXRlIGl0LgorCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRp
bmdEZXNjZW5kYW50cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjppbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2xlYXJCYWNraW5nRm9yQWxsTGF5
ZXJzKTogV3JvdGUgaW4gdGVybXMgb2YgYXBwbHlUb0NvbXBvc2l0ZWRMYXllckluY2x1ZGluZ0Rl
c2NlbmRhbnRzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjbGVh
ckJhY2tpbmdGb3JMYXllckluY2x1ZGluZ0Rlc2NlbmRhbnRzKTogRGVsZXRlZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6
OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKyAgICAg
ICAgQWRkIGEgbmV3IGludGVybmFsIHNldHRpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMgdG8gdG9n
Z2xlIGVuYWJsaW5nL2Rpc2FibGluZyBlZGl0YWJsZSByZWdpb24uCisKIDIwMjAtMDYtMjcgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIFNhZmFyaSBpbmNv
cnJlY3RseSByZXBvcnRzICJBcHBsZUNvcmVNZWRpYSIgYXMgVUEgc3RyaW5nCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDdkNTUzZTA1MzI2Nzk2OTc1ZmFkZGI0ZmIxNTE2MjYxMWRmYTVjNzQuLjNkMDQwODMzNWQ0NWYy
M2FmNTRhZTJlMGJmYzc5Zjg2N2MyYTQ2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIw
MjAtMDYtMzAgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtp
T1NdIEVkaXRhYmxlIHJlZ2lvbnMgY2F1c2VzIH4xJSBzbG93ZG93biBpbiBQTFQ1CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2NTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzY0MzYxMzkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZy
YXNlci4KKworICAgICAgICBGaXggdXAgUmVtb3RlTGF5ZXJUcmVlVmlld3Mgbm93IHRoYXQgdGhl
IGVkaXRhYmxlIHJlZ2lvbiBpcyBhbiBPcHRpb25hbDw+LiBIYXZlCisgICAgICAgIHRoZSBVSSBw
cm9jZXNzIG1lc3NhZ2UgdGhlIHdlYiBwcm9jZXNzIHRvIGVuYWJsZSBlZGl0YWJsZSByZWdpb24g
b24gdGhlIGZpcnN0CisgICAgICAgIGludm9jYXRpb24gb2YgX3JlcXVlc3RUZXh0SW5wdXRDb250
ZXh0c0luUmVjdCwgd2hpY2ggaXMgZ29vZCBpbmRpY2F0b3IgdGhhdCB0aGVyZQorICAgICAgICB3
b3VsZCBiZSBiZW5lZml0IHRvIGNvbXB1dGluZyBpdCBhcyBhIHR5cGljYWwgY2xpZW50IHRoYXQg
Y2FsbHMgaXQgd2lsbCBjYWxsIGl0CisgICAgICAgIG1hbnkgdGltZXMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbToKKyAg
ICAgICAgKFdlYktpdDo6bWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3QpOiBGaXggdXAg
dGhlIGxvZ2ljIG5vdyB0aGF0IHRoZXJlIG1heQorICAgICAgICBiZSBub3QgYmUgYW4gZWRpdGFi
bGUgcmVnaW9uIHNlbnQgb3ZlciBpbiB0aGUgbGFzdCBldmVudCByZWdpb24gdXBkYXRlLiBJZiB0
aGVyZQorICAgICAgICBpc24ndCBvbmUgdGhlbiB3ZSBkb24ndCBrbm93IGlmIHRoZXJlIGFyZSBl
ZGl0YWJsZSBlbGVtZW50cyBpbiB0aGUgcmVjdCBvZiBub3QuCisgICAgICAgIFNvLCByZXR1cm4g
dHJ1ZSwgd2hpY2ggY291bGQgdHVybiBvdXQgdG8gYmUgYSBmYWxzZSBwb3NpdGl2ZSBpZiB0aGVy
ZSBhcmVuJ3QgYW55CisgICAgICAgIGVkaXRhYmxlIGVsZW1lbnRzIGluIHRoZSByZWN0LiBUaGUg
Y2FsbGVyIHdpbGwgaGF2ZSB0byBtZXNzYWdlIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICB0byBm
aW5kIG91dCB0aGUgcmVhbCBhbnN3ZXIgaWYgdGhleSB3YW50IGl0LiBKdXN0IHRvIGNsYXJpZnks
IGl0J3MgT0sgZm9yIHRoaXMKKyAgICAgICAgZnVuY3Rpb24gdG8gaGF2ZSBmYWxzZSBwb3NpdGl2
ZXMsIGJ1dCBpdCBtdXN0IG5ldmVyIGhhdmUgZmFsc2UgbmVnYXRpdmVzLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6dGV4dElucHV0Q29udGV4dHNJblJlY3QpOiBFbmFibGUgZWRpdGFibGUgcmVnaW9uLiBJ
ZiBpdCdzIGFscmVhZHkKKyAgICAgICAgZW5hYmxlZCB0aGVuIGRvaW5nIHNvIGFnYWluIGRvZXMg
bm90aGluZy4KKwogMjAyMC0wNi0yOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gSW1wbGVtZW50IHN1cHBvcnQgZm9yIFVJV0tEb2N1bWVudFJlcXVl
c3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBkMDRm
YTBjMzllMGViOWE4M2NjZDg2NGU0MmFlMzA0MmI5OTI4MzA4Li5mZjFhMjdlYmM5NWZjN2M0YzQ2
YTViNTAyMzM3OTdhZTg5OTc4ZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzEzLDcgKzMx
Myw3IEBAIHZvaWQgRnJhbWU6OmludmFsaWRhdGVDb250ZW50RXZlbnRSZWdpb25zSWZOZWVkZWQo
KQogICAgIGhhc1RvdWNoQWN0aW9uRWxlbWVudHMgPSBtX2RvYy0+bWF5SGF2ZUVsZW1lbnRzV2l0
aE5vbkF1dG9Ub3VjaEFjdGlvbigpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lP
TikKLSAgICBoYXNFZGl0YWJsZUVsZW1lbnRzID0gbV9kb2MtPm1heUhhdmVFZGl0YWJsZUVsZW1l
bnRzKCk7CisgICAgaGFzRWRpdGFibGVFbGVtZW50cyA9IG1fZG9jLT5tYXlIYXZlRWRpdGFibGVF
bGVtZW50cygpICYmIG1fcGFnZS0+c2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigpOwogI2VuZGlm
CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gbG9vayBhdCB3aGVlbCBldmVudCBoYW5kbGVy
cyB0b28uCiAgICAgaWYgKCFoYXNUb3VjaEFjdGlvbkVsZW1lbnRzICYmICFoYXNFZGl0YWJsZUVs
ZW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMTQ2NzkxNmIwYjE5ZWM3MjY3YzdkOGJkODVk
YmRmZDBmZDJkYmRhNS4uYjVkYmU5ZjBmMzAxNjkwMWY0YWI5YzYyZjFiYTFiY2VlYWNkM2RmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05MjAsNiArOTIwLDMxIEBAIHZvaWQgUGFnZTo6dW5tYXJr
QWxsVGV4dE1hdGNoZXMoKQogICAgIH0pOwogfQogCisjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lP
TikKKwordm9pZCBQYWdlOjpzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQor
eworICAgIGlmIChtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkID09IGVuYWJsZWQpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkID0gZW5hYmxlZDsKKyAgICBh
dXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIobWFpbkZyYW1lKCkudmlldygpKTsKKyAgICBpZiAo
IWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChhdXRvKiByZW5kZXJWaWV3ID0g
ZnJhbWVWaWV3LT5yZW5kZXJWaWV3KCkpCisgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3Io
KS5pbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKK30KKworI2VuZGlmCisKKyNp
ZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCitib29sIFBhZ2U6OnNob3VsZEJ1aWxkRWRpdGFi
bGVSZWdpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVk
IHx8IG1fc2V0dGluZ3MtPnZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zKCkgJiBFZGl0YWJsZUVs
ZW1lbnRSZWdpb247Cit9CisKKyNlbmRpZgorCiBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBQYWdlOjpl
ZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2VhcmNoUmVjdEluUm9vdFZp
ZXdDb29yZGluYXRlcykgY29uc3QKIHsKICAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIo
bWFpbkZyYW1lKCkudmlldygpKTsKQEAgLTExODYsNiArMTIxMSw5IEBAIHZvaWQgUGFnZTo6ZGlk
U3RhcnRQcm92aXNpb25hbExvYWQoKQogCiB2b2lkIFBhZ2U6OmRpZEZpbmlzaExvYWQoKQogewor
I2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAgbV9pc0VkaXRhYmxlUmVnaW9uRW5hYmxl
ZCA9IGZhbHNlOworI2VuZGlmCiAgICAgcmVzZXRSZWxldmFudFBhaW50ZWRPYmplY3RDb3VudGVy
KCk7CiAKICAgICBpZiAobV9wZXJmb3JtYW5jZU1vbml0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFj
MjA2NDRiZTM5MjU4ZDk2MGU0YzQ1MzhmNTMyZjc2YjUyNzJmNTMuLmY3ZDIyN2VlZDliMTEyYmFj
YmUzM2U5ZGJhZWRmZjlkNzBjYzA1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC03NDIsNiArNzQyLDEy
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3QgU3Ry
aW5nJiwgV1RGTG9nQ2hhbm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7CiAKKyNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQorICAgIGJvb2wgc2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigpIGNvbnN0
OworICAgIGJvb2wgaXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
RWRpdGFibGVSZWdpb25FbmFibGVkOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFZGl0
YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbCA9IHRydWUpOworI2VuZGlmCisKICAgICBXRUJDT1JFX0VY
UE9SVCBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBlZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZs
b2F0UmVjdCYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTEwMDMsNiArMTAwOSwxMCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kZWxlZ2F0
ZXNTY2FsaW5nIHsgZmFsc2UgfTsKIAorI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCisgICAg
Ym9vbCBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAg
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBtX3VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rp
b24geyBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIgfTsKICAgICAKICAgICAvLyBG
b3IgdGVzdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJl
Z2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCmluZGV4
IDYzY2IyM2Q3ZmU5ZDA3ZDRiODRlZDRhMTgyZjhkYzFlMmI5ZjQzMzEuLjg3Mzk0ZWQ2Mzk5MDNl
MjJmYmUzYmU2NzgyYzQ3Y2JlZDU5YjM2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2
ZW50UmVnaW9uLmNwcApAQCAtMTMwLDggKzEzMCw4IEBAIHZvaWQgRXZlbnRSZWdpb246OnVuaXRl
KGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wgb3Zl
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaWYgKG92ZXJyaWRl
VXNlck1vZGlmeUlzRWRpdGFibGUgfHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6
OlJlYWRPbmx5KQotICAgICAgICBtX2VkaXRhYmxlUmVnaW9uLnVuaXRlKHJlZ2lvbik7CisgICAg
aWYgKG1fZWRpdGFibGVSZWdpb24gJiYgKG92ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUgfHwg
c3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5KSkKKyAgICAgICAgbV9l
ZGl0YWJsZVJlZ2lvbi0+dW5pdGUocmVnaW9uKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG92
ZXJyaWRlVXNlck1vZGlmeUlzRWRpdGFibGUpOwogI2VuZGlmCkBAIC0xNTYsNyArMTU2LDggQEAg
dm9pZCBFdmVudFJlZ2lvbjo6dHJhbnNsYXRlKGNvbnN0IEludFNpemUmIG9mZnNldCkKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKLSAgICBtX2VkaXRhYmxlUmVnaW9uLnRy
YW5zbGF0ZShvZmZzZXQpOworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uKQorICAgICAgICBtX2Vk
aXRhYmxlUmVnaW9uLT50cmFuc2xhdGUob2Zmc2V0KTsKICNlbmRpZgogfQogCkBAIC0yODMsMTAg
KzI4NCwxMiBAQCBjb25zdCBSZWdpb24mIEV2ZW50UmVnaW9uOjpldmVudExpc3RlbmVyUmVnaW9u
Rm9yVHlwZShFdmVudExpc3RlbmVyUmVnaW9uVHlwZSB0eQogI2VuZGlmIC8vIEVOQUJMRShXSEVF
TF9FVkVOVF9SRUdJT05TKQogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKKwogYm9vbCBF
dmVudFJlZ2lvbjo6Y29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZWRpdGFibGVSZWdpb24uaW50ZXJzZWN0cyhy
ZWN0KTsKKyAgICByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbiAmJiBtX2VkaXRhYmxlUmVnaW9uLT5p
bnRlcnNlY3RzKHJlY3QpOwogfQorCiAjZW5kaWYKIAogdm9pZCBFdmVudFJlZ2lvbjo6ZHVtcChU
ZXh0U3RyZWFtJiB0cykgY29uc3QKQEAgLTMyMiw4ICszMjUsOCBAQCB2b2lkIEV2ZW50UmVnaW9u
OjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQotICAgIGlmICghbV9lZGl0YWJsZVJlZ2lvbi5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCBtX2VkaXRhYmxlUmVnaW9u
OworICAgIGlmIChtX2VkaXRhYmxlUmVnaW9uICYmICFtX2VkaXRhYmxlUmVnaW9uLT5pc0VtcHR5
KCkpIHsKKyAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCAqbV9l
ZGl0YWJsZVJlZ2lvbjsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwogICAgIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaAppbmRleCA1MDEyNDNlMDQ4
Yjk4NGU2YjA2NmRhOTRiNTgyNTI4ZmQ1ZGRlZTgyLi42YzRmYWU2MzM3MjViN2U2ZThiZmQ5ZGVh
OTg1OTE1YzgxMGM5NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZl
bnRSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaApA
QCAtODcsOCArODcsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRURJVEFCTEVf
UkVHSU9OKQorICAgIHZvaWQgZW5zdXJlRWRpdGFibGVSZWdpb24oKTsKKyAgICBib29sIGhhc0Vk
aXRhYmxlUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbi5oYXNWYWx1ZSgp
OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb250YWluc0VkaXRhYmxlRWxlbWVudHNJblJl
Y3QoY29uc3QgSW50UmVjdCYpIGNvbnN0OwotICAgIFZlY3RvcjxJbnRSZWN0LCAxPiByZWN0c0Zv
ckVkaXRhYmxlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX2VkaXRhYmxlUmVnaW9uLnJlY3Rz
KCk7IH0KKyAgICBWZWN0b3I8SW50UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbiA/IG1fZWRpdGFibGVSZWdpb24tPnJlY3Rz
KCkgOiBWZWN0b3I8SW50UmVjdCwgMT4geyB9OyB9CiAjZW5kaWYKIAogICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTExMyw3ICsxMTUs
NyBAQCBwcml2YXRlOgogICAgIFJlZ2lvbiBtX25vblBhc3NpdmVXaGVlbEV2ZW50TGlzdGVuZXJS
ZWdpb247CiAjZW5kaWYKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQotICAgIFJlZ2lvbiBt
X2VkaXRhYmxlUmVnaW9uOworICAgIE9wdGlvbmFsPFJlZ2lvbj4gbV9lZGl0YWJsZVJlZ2lvbjsK
ICNlbmRpZgogfTsKIApAQCAtMTUyLDcgKzE1NCw3IEBAIE9wdGlvbmFsPEV2ZW50UmVnaW9uPiBF
dmVudFJlZ2lvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShFRElUQUJMRV9SRUdJT04pCi0gICAgT3B0aW9uYWw8UmVnaW9uPiBlZGl0YWJsZVJlZ2lvbjsK
KyAgICBPcHRpb25hbDxPcHRpb25hbDxSZWdpb24+PiBlZGl0YWJsZVJlZ2lvbjsKICAgICBkZWNv
ZGVyID4+IGVkaXRhYmxlUmVnaW9uOwogICAgIGlmICghZWRpdGFibGVSZWdpb24pCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0xNzMsNCArMTc1LDE0IEBAIGJvb2wgRXZlbnRSZWdp
b246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFJlZ2lvbiYgZXZlbnRSZWdpb24pCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorCitpbmxp
bmUgdm9pZCBFdmVudFJlZ2lvbjo6ZW5zdXJlRWRpdGFibGVSZWdpb24oKQoreworICAgIGlmICgh
bV9lZGl0YWJsZVJlZ2lvbikKKyAgICAgICAgbV9lZGl0YWJsZVJlZ2lvbi5lbXBsYWNlKCk7Cit9
CisKKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApp
bmRleCBmNWY0ZTM2YWQzZWQ2ZWNjNmQwZmI3OGI0YTcxNmVhZTgzYzg0N2RmLi4xZWM3MjRmZjU5
YTQ1MTJkNjIyZTJlZThkMDQ3NzdhNTZjZTAwYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKQEAgLTEyNjQsNyArMTI2NCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6
OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzCiAgICAgICAgIC8vIHRob3VnaCBpdCdzIGFjdHVhbGx5IHRoZSBpbm5lciB0ZXh0IGVs
ZW1lbnQgb2YgdGhlIGNvbnRyb2wgdGhhdCBpcyBlZGl0YWJsZS4KICAgICAgICAgLy8gU28sIG5v
IG5lZWQgdG8gdHJhdmVyc2UgdG8gZmluZCB0aGUgaW5uZXIgdGV4dCBlbGVtZW50IGluIHRoaXMg
Y2FzZS4KICAgICAgICAgaWYgKCFpc1RleHRDb250cm9sKCkpCi0gICAgICAgICAgICBuZWVkc1Ry
YXZlcnNlRGVzY2VuZGFudHMgfD0gZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygp
OworICAgICAgICAgICAgbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzIHw9IGRvY3VtZW50KCkubWF5
SGF2ZUVkaXRhYmxlRWxlbWVudHMoKSAmJiBwYWdlKCkuc2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lv
bigpOwogI2VuZGlmCiAgICAgICAgIGlmICghbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzKQogICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwCmluZGV4IDdkNjhjZGIzMTkxMjE2ZTM2N2Y5ODY2Zjc5YzhkOGIxODgwMjQ0YWEuLjE4MjFh
MzAwMDNkYmM1OGI3MTYyOTI4MzQzY2RjNmNlOWI4NjZhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTc0OSw3ICs3NDksNyBAQCB2b2lkIFJlbmRl
ckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVu
ZGVyU3R5bGUmIG5ldwogICAgICAgICAgICAgYm9vbCB3YXNFZGl0YWJsZSA9IG1fc3R5bGUudXNl
ck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5OwogICAgICAgICAgICAgYm9vbCBpc0Vk
aXRhYmxlID0gbmV3U3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2RpZnk6OlJlYWRPbmx5Owog
ICAgICAgICAgICAgaWYgKHdhc0VkaXRhYmxlICE9IGlzRWRpdGFibGUpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2UoKS5zaG91bGRCdWls
ZEVkaXRhYmxlUmVnaW9uKCk7CiAjZW5kaWYKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggMDNlYjYx
ZGRiMTFiZTg0YjBmYTk1YWYwYjEwYTVlZDkwZjA5ZTNhOS4uNDczNWRhYjgzMGQxOTJhNGQwMzcz
NTQxOWVhYTg5ZDlhYjE3YzVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKQEAgLTkyNyw3ICs5MjcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBJbnZhbGlkYXRpb24gY2Fu
IGZhaWwgaWYgdGhlcmUgaXMgbm8gZW5jbG9zaW5nIGNvbXBvc2l0aW5nIGxheWVyIChlLmcuIG5l
c3RlZCBpZnJhbWUpCiAgICAgLy8gb3IgdGhlIGxheWVyIGRvZXMgbm90IG1haW50YWluIGFuIGV2
ZW50IHJlZ2lvbi4KLSAgICBlbnVtIGNsYXNzIEV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29u
IHsgUGFpbnQsIFN0eWxlLCBOb25Db21wb3NpdGVkRnJhbWUgfTsKKyAgICBlbnVtIGNsYXNzIEV2
ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uIHsgUGFpbnQsIFNldHRpbmdEaWRDaGFuZ2UsIFN0
eWxlLCBOb25Db21wb3NpdGVkRnJhbWUgfTsKICAgICBib29sIGludmFsaWRhdGVFdmVudFJlZ2lv
bihFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbik7CiAKICAgICBTdHJpbmcgZGVidWdEZXNj
cmlwdGlvbigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAyMzc2YjYyMGUxNzVmYmE5OGVhZWY2NDJiZGE1ZWY5
YWEyZjczZDk5Li5hMWEzODQyODRlYzhiOGM3YzM2OTE2MjY5NWI5MjFmOTFmNTcyYWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAt
MTcwOCw3ICsxNzA4LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6Om1haW50YWluc0V2ZW50
UmVnaW9uKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICNpZiBFTkFCTEUo
RURJVEFCTEVfUkVHSU9OKQotICAgIGlmIChyZW5kZXJlcigpLmRvY3VtZW50KCkubWF5SGF2ZUVk
aXRhYmxlRWxlbWVudHMoKSkKKyAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhhdmVF
ZGl0YWJsZUVsZW1lbnRzKCkgJiYgcmVuZGVyZXIoKS5wYWdlKCkuc2hvdWxkQnVpbGRFZGl0YWJs
ZVJlZ2lvbigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmICFQTEFURk9STShJ
T1NfRkFNSUxZKQpAQCAtMTczNSw2ICsxNzM1LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVFdmVudFJlZ2lvbigpCiAgICAgYXV0byB1cGRhdGVFdmVudFJlZ2lvbkZvckxheWVy
ID0gWyZdKEdyYXBoaWNzTGF5ZXImIGdyYXBoaWNzTGF5ZXIpIHsKICAgICAgICAgR3JhcGhpY3ND
b250ZXh0IG51bGxDb250ZXh0KG51bGxwdHIpOwogICAgICAgICBFdmVudFJlZ2lvbiBldmVudFJl
Z2lvbjsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgICAgICBpZiAocmVuZGVyZXIo
KS5wYWdlKCkuc2hvdWxkQnVpbGRFZGl0YWJsZVJlZ2lvbigpKQorICAgICAgICAgICAgZXZlbnRS
ZWdpb24uZW5zdXJlRWRpdGFibGVSZWdpb24oKTsKKyNlbmRpZgogICAgICAgICBhdXRvIGV2ZW50
UmVnaW9uQ29udGV4dCA9IGV2ZW50UmVnaW9uLm1ha2VDb250ZXh0KCk7CiAgICAgICAgIGF1dG8g
bGF5ZXJPZmZzZXQgPSBncmFwaGljc0xheWVyLnNjcm9sbE9mZnNldCgpIC0gcm91bmRlZEludFNp
emUoZ3JhcGhpY3NMYXllci5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggM2VmMWNm
ZWM2YTM0MjQxNDUyYWUyYWExM2ZjNGFiZjI3M2ZmYzAyMi4uZTU4ZTFmNjJlYmU4YmY2MGNkZTdm
YmVhYzg2NjU2NWE1MjAzZThjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjM1NywxOCArMjM1NywyNSBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiAg
ICAgfQogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2xlYXJCYWNraW5nRm9yTGF5
ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYgbGF5ZXIpCit0ZW1wbGF0ZTx0eXBl
bmFtZSBBcHBseUZ1bmN0aW9uVHlwZT4KK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphcHBs
eVRvQ29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoUmVuZGVyTGF5ZXImIGxheWVy
LCBjb25zdCBBcHBseUZ1bmN0aW9uVHlwZSYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKGxheWVyLmlz
Q29tcG9zaXRlZCgpKQotICAgICAgICBsYXllci5jbGVhckJhY2tpbmcoKTsKLQorICAgICAgICBm
dW5jdGlvbihsYXllcik7CiAgICAgZm9yIChhdXRvKiBjaGlsZExheWVyID0gbGF5ZXIuZmlyc3RD
aGlsZCgpOyBjaGlsZExheWVyOyBjaGlsZExheWVyID0gY2hpbGRMYXllci0+bmV4dFNpYmxpbmco
KSkKLSAgICAgICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqY2hp
bGRMYXllcik7CisgICAgICAgIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5k
YW50cygqY2hpbGRMYXllciwgZnVuY3Rpb24pOworfQorCit2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uRm9yQWxsTGF5ZXJzKCkKK3sKKyAgICBhcHBseVRv
Q29tcG9zaXRlZExheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoKm1fcmVuZGVyVmlldy5sYXllcigp
LCBbXShhdXRvJiBsYXllcikgeworICAgICAgICBsYXllci5pbnZhbGlkYXRlRXZlbnRSZWdpb24o
UmVuZGVyTGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uOjpTZXR0aW5nRGlkQ2hh
bmdlKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNsZWFyQmFj
a2luZ0ZvckFsbExheWVycygpCiB7Ci0gICAgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRpbmdE
ZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCkpOworICAgIGFwcGx5VG9Db21wb3NpdGVk
TGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cygqbV9yZW5kZXJWaWV3LmxheWVyKCksIFtdKGF1dG8m
IGxheWVyKSB7IGxheWVyLmNsZWFyQmFja2luZygpOyB9KTsKIH0KIAogdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0MmRlM2JlMGRiOTMz
YTNmODU5NjY4NGFhYWRmYzVjODdkYzdhYmU4Li4wMDczN2JjODI0MjQzZTc2ZTg0ZWNmNzJiYzUz
ZTU4ZjFlNmUxNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCkBAIC0yODIsNiArMjgyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
SXNJbldpbmRvdyhib29sKTsKIAogICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yQWxsTGF5ZXJzKCk7
CisgICAgdm9pZCBpbnZhbGlkYXRlRXZlbnRSZWdpb25Gb3JBbGxMYXllcnMoKTsKICAgICAKICAg
ICB2b2lkIGxheWVyQmVjYW1lQ29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYpOwogICAgIHZv
aWQgbGF5ZXJCZWNhbWVOb25Db21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJik7CkBAIC00MTcs
NyArNDE4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXIm
LCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJhY2tpbmdTaGFyaW5nU3RhdGUqID0gbnVsbHB0
ciwgQmFja2luZ1JlcXVpcmVkID0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKTsKICAgICBib29s
IHVwZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZShSZW5kZXJMYXllciYsIGNvbnN0IFJlbmRlckxh
eWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYsIEJhY2tp
bmdTaGFyaW5nU3RhdGUmKTsKIAotICAgIHZvaWQgY2xlYXJCYWNraW5nRm9yTGF5ZXJJbmNsdWRp
bmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFwcGx5
RnVuY3Rpb25UeXBlPiB2b2lkIGFwcGx5VG9Db21wb3NpdGVkTGF5ZXJJbmNsdWRpbmdEZXNjZW5k
YW50cyhSZW5kZXJMYXllciYsIGNvbnN0IEFwcGx5RnVuY3Rpb25UeXBlJik7CiAKICAgICAvLyBS
ZXBhaW50IHRoaXMgYW5kIGl0cyBjaGlsZCBsYXllcnMuCiAgICAgdm9pZCByZWN1cnNpdmVSZXBh
aW50TGF5ZXIoUmVuZGVyTGF5ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwCmluZGV4IGJiYmI0YTQwMGIyN2ZkOTk5ZmI3YWYwZjM5MTk4NjI3M2RhNGE3
ZmEuLjQ2MTUxNjM0YmViMDQwZmFiMTM0MGFmYjBmM2RmZGJjMzgxMjZhNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNDQxLDYgKzQ0MSwxOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ1Vz
ZXNJZGVtcG90ZW50TW9kZShib29sIGVuYQogICAgIHJldHVybiB7IH07CiB9CiAKK0V4Y2VwdGlv
bk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChib29s
IGVuYWJsZWQpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAg
IG1fcGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKKyAgICByZXR1cm4geyB9OworfQorCiBFeGNl
cHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRNZWRpYVR5cGVPdmVycmlkZShjb25z
dCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggYTFiOTcwOTRiN2UwYjFlNGRhNjQyODcw
OWIxZWNhZGUwZGM1NDc0YS4uNDc4NWU2ODE0YTFmODVkYWYxODRmYWMxMjAxMDA0Y2YzYjIzN2Vh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEwOSw2
ICsxMDksOCBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSA9IEZy
YW1lRmxhdHRlbmluZzsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGcmFtZUZsYXR0ZW5pbmco
RnJhbWVGbGF0dGVuaW5nVmFsdWUpOworCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RWRpdGFi
bGVSZWdpb25FbmFibGVkKGJvb2wpOwogICAgIAogICAgIHN0YXRpYyB2b2lkIHNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbAppbmRleCAzNjg4N2ZjNjE1NjVhMDQ4OWE2ZTUwYjYwNmVmODRkYTE2MDBl
NmU2Li5jMTVmM2JlNDcwOTE3Njg2ZmYyZDRjNDRhMjRiNThjZjk4Y2FlOWZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTEyMiw1ICsxMjIsNyBA
QCBlbnVtIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJGYWlsdXJl
IiB9OwogICAgIHZvaWQgc2V0U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29sZWFuIHNo
b3VsZERlYWN0aXZhdGUpOwogICAgIAogICAgIHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQSVBlclBh
Z2VTY29wZUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gdm9pZCBzZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
UmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCmluZGV4IDUyYThhNzU2YmI0OWRi
ZGE2NDE3ODQ0YmFlMWE2NGFlYzQ0NjgyMzUuLmIyMmMzNDE2MjA4NTMyYmVhODExMDZlZWRmZTFi
ZTMzYWZjOGJjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbQpAQCAt
MTIwLDYgKzEyMCw3IEBAIGJvb2wgbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3QoVUlW
aWV3ICpyb290VmlldywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0CiAgICAgY29sbGVjdERlc2Nl
bmRhbnRWaWV3c0luUmVjdCh2aWV3c0luUmVjdCwgcm9vdFZpZXcsIHJlY3QpOwogICAgIGlmICh2
aWV3c0luUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBib29sIHBv
c3NpYmx5SGFzRWRpdGFibGVFbGVtZW50cyA9IHRydWU7CiAgICAgZm9yIChhdXRvICp2aWV3IDog
V1RGOjptYWtlUmV2ZXJzZWRSYW5nZSh2aWV3c0luUmVjdCkpIHsKICAgICAgICAgaWYgKCFbdmll
dyBpc0tpbmRPZkNsYXNzOldLQ29tcG9zaXRpbmdWaWV3LmNsYXNzXSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwpAQCAtMTI5LDEwICsxMzAsMTMgQEAgYm9vbCBtYXlDb250YWluRWRpdGFibGVFbGVt
ZW50c0luUmVjdChVSVZpZXcgKnJvb3RWaWV3LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QKICAg
ICAgICAgV2ViQ29yZTo6SW50UmVjdCByZWN0VG9UZXN0IHsgW3ZpZXcgY29udmVydFJlY3Q6cmVj
dCBmcm9tVmlldzpyb290Vmlld10gfTsKICAgICAgICAgaWYgKG5vZGUtPmV2ZW50UmVnaW9uKCku
Y29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KHJlY3RUb1Rlc3QpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChub2RlLT5ldmVudFJlZ2lvbigpLmNvbnRhaW5zKHJl
Y3RUb1Rlc3QpKQorICAgICAgICBib29sIGhhc0VkaXRhYmxlUmVnaW9uID0gbm9kZS0+ZXZlbnRS
ZWdpb24oKS5oYXNFZGl0YWJsZVJlZ2lvbigpOworICAgICAgICBpZiAoaGFzRWRpdGFibGVSZWdp
b24gJiYgbm9kZS0+ZXZlbnRSZWdpb24oKS5jb250YWlucyhyZWN0VG9UZXN0KSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGhhc0VkaXRhYmxlUmVnaW9uKQorICAgICAg
ICAgICAgcG9zc2libHlIYXNFZGl0YWJsZUVsZW1lbnRzID0gZmFsc2U7CiAgICAgfQotICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gcG9zc2libHlIYXNFZGl0YWJsZUVsZW1lbnRzOwogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYjRlN2QyYmYyNGYx
NjEwZjIxNTQxYjJhZmU3MDcxMGQwZGM2NzkzMi4uOTU2OGVhMGQ0ZWE4MDZkZjdkYTFmZjBmOWI0
MDhhNjgyMzAxMDBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTQzMjEsNiArNDMyMSw5IEBAIHZvaWQgV2ViUGFnZTo6
dGV4dElucHV0Q29udGV4dHNJblJlY3QoRmxvYXRSZWN0IHNlYXJjaFJlY3QsIENvbXBsZXRpb25I
YW5kbGVyPHZvCiAgICAgICAgIHJldHVybiBjb250ZXh0OwogICAgIH0pOwogICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnRleHRzKTsKKyNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQorICAgIG1f
cGFnZS0+c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQ
YWdlOjpmb2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnN0IEVsZW1lbnRDb250
ZXh0JiBlbGVtZW50Q29udGV4dCwgY29uc3QgSW50UG9pbnQmIHBvaW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhkMDhjOWViNGIy
ODA0MDNhMDcyMWY0ZGZkN2UxOWY1MzgyNTM5NDkuLmZhMGQ2NzdjNjc3ZDI0M2M3MDA0YjJiNmQ1
MjYwNzY4OTA4M2JhZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAyMC0wNi0zMCAgRGFuaWVs
IEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRWRpdGFibGUgcmVn
aW9ucyBjYXVzZXMgfjElIHNsb3dkb3duIGluIFBMVDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzY1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjQzNjEzOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAg
IEFkZCBzb21lIHRlc3RzIHRvIGVuc3VyZSB0aGUgbmV3IHNldHRpbmcgd29ya3MgYW5kIHRoZSBm
ZWF0dXJlIGNhbiBiZSBkaXNhYmxlZC4gTm90ZQorICAgICAgICB0aGF0IHRoZSBzZXR0aW5nIGlz
IGVuYWJsZWQgYnkgZGVmYXVsdCB0byBrZWVwIHRoZSBjdXJyZW50IGJlaGF2aW9yLiBTZWUgdGhl
IFdlYkNvcmUKKyAgICAgICAgQ2hhbmdlTG9nIGVudHJ5IGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICAgICAgVXBkYXRlIGV4aXN0aW5ncyB0ZXN0cyB0aGF0IG5lZWQgdGhlIGVkaXRhYmxlIHJlZ2lv
biBlbmFibGVkIHRvIGVuYWJsZSBpdCBub3cgdGhhdCBpdCBtdXN0CisgICAgICAgIGJlIGV4cGxp
Y2l0bHkgZW5hYmxlZC4KKworICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2ZpeGVk
LWFuZC1hYnNvbHV0ZS1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9mbG9hdC1jb250ZW50ZWRpdGFibGUuaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1iYXNpYy13aXRob3V0LWVkaXRh
YmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJh
c2ljLmh0bWwuCisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFz
aWMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1lZGl0
YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaGl0LXRlc3QtZml4ZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vaGl0LXRlc3QtdGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUt
d2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vaWZyYW1lLmh0bWwuCisgICAgICAgICogZWRpdGluZy9lZGl0
YWJsZS1yZWdpb24vaWZyYW1lLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vb3V0LWhhbmdpbmctY2hpbGQtb2YtY29udGVudGVkaXRhYmxlLmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vb3ZlcmZsb3ctc2Nyb2xsLXRleHQtZmllbGQtYW5kLWNv
bnRlbnRlZGl0YWJsZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3Jl
bGF0aXZlLWluc2lkZS1maXhlZC1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtdHJhbnNmb3JtZWQt
Y29udGVudGVkaXRhYmxlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
c2VhcmNoLWZpZWxkLWJhc2ljLmh0bWw6CisgICAgICAgICogZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFz
aWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy5odG1sLgorICAgICAgICAq
IGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMuaHRtbDoKKyAgICAgICAg
KiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1jb21wb3NpdGVkLW5l
Z2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVkLW9uLXRvcC1vZi1maXhlZC1jb250ZW50ZWRpdGFibGVz
Lmh0bWw6CisKIDIwMjAtMDYtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVcGRhdGUgd2ViLXBsYXRmb3JtLXRlc3RzL2NvcnMgZnJvbSB1cHN0cmVhbQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vZml4ZWQtYW5kLWFi
c29sdXRlLWNvbnRlbnRlZGl0YWJsZS1zY3JvbGxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vZml4ZWQtYW5kLWFic29sdXRlLWNvbnRlbnRlZGl0YWJsZS1zY3Jv
bGxlZC5odG1sCmluZGV4IDNiMzVkYmQ5MDVmODI4YjZjNzk5NjZhMDMwMzFiNzFmOWI3ODI4MGUu
LjA0NGE3YTVlMmRlZjkxNWYxYmE5NTI2NmQyZTlkMGI2ZDUxNjljZTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2ZpeGVkLWFuZC1hYnNvbHV0ZS1jb250
ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRh
YmxlLXJlZ2lvbi9maXhlZC1hbmQtYWJzb2x1dGUtY29udGVudGVkaXRhYmxlLXNjcm9sbGVkLmh0
bWwKQEAgLTEsNSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KIDxib2R5IHN0
eWxlPSJoZWlnaHQ6IDQwOTZweCI+CiA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7IGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiA0MHB4IiBjb250ZW50ZWRp
dGFibGU9InRydWUiPjwvZGl2PgogPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsgaGVpZ2h0OiAyNTZweDsgd2lkdGg6IDI1NnB4OyB0b3A6IDEw
MDBweDsgbGVmdDogMjAwcHgiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9mbG9hdC1jb250ZW50ZWRp
dGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2Zsb2F0LWNv
bnRlbnRlZGl0YWJsZS5odG1sCmluZGV4IGQzNzMzNGQ2NWNkYjYxNzVlYzc5NTY4ZjMxYjUwOGEy
Njc3NzA3M2EuLjNmNGIyYzdiY2Y0NjE2NTY2M2E0YTE2MDZlMzA1OGFkOTY5ZDE5ZGQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2Zsb2F0LWNvbnRlbnRl
ZGl0YWJsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2Zs
b2F0LWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0xLDUgKzEsMTEgQEAKIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOworPC9zY3Jp
cHQ+Cis8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDQwcHgiIGNvbnRlbnRlZGl0YWJs
ZT0idHJ1ZSI+PC9kaXY+CiA8cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQt
ZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ZTY2ZjVkODFmYzg1NTcwMTIyYTYyMWNjYmNjMDM2YThjNDJlMmE5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24v
aGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK0hpdCB0ZXN0cyBmb3IgZWRpdGFibGUgZWxlbWVudHMgaW5zaWRlIHRoZSBi
bGFjayBvdXRsaW5lZCByZWN0YW5nbGUgd2hlbiB0aGUgZWRpdGFibGUgcmVnaW9uIGlzIGRpc2Fi
bGVkLiBUaGVyZSBzaG91bGQgYmUgbW9yZSBmYWxzZSBwb3NpdGl2ZXMgd2hlbiBkaXNhYmxlZC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgKHggPSAxMDAsIHkgPSAxMDAs
IHdpZHRoID0gMjAyLCBoZWlnaHQgPSAyMDIpIGNvbnRhaW5zIGVkaXRhYmxlIGVsZW1lbnRzLgor
UEFTUyAoeCA9IDAsIHkgPSAwLCB3aWR0aCA9IDUwLCBoZWlnaHQgPSA1MCkgY29udGFpbnMgZWRp
dGFibGUgZWxlbWVudHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vaGl0LXRlc3QtYmFzaWMtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MzNGJmYjhjYzlhN2FmZTNjMjk5ODdmZTAxMjVl
Y2NmMTMxZDc2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLmh0bWwKQEAg
LTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvaGl0LXRlc3QtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0ZXN0LWNv
bnRhaW5lciB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMTAwcHg7CisgICAg
bGVmdDogMTAwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgd2lkdGg6IDIw
MHB4OworICAgIGhlaWdodDogMjAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJ0ZXN0LWNvbnRhaW5lciI+CisgICAgPGlucHV0PgorPC9kaXY+Cis8c2NyaXB0Pgor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQoZmFsc2UpOworCith
c3luYyBmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgIHRlc3RGYWlsZWQoIk11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBsZXQgdGVzdENvbnRhaW5lciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWNvbnRhaW5lciIpOworICAgIGF3YWl0IHNob3VsZEhh
dmVFZGl0YWJsZUVsZW1lbnRzSW5SZWN0Rm9yRWxlbWVudCh0ZXN0Q29udGFpbmVyKTsKKworICAg
IC8vIFdpdGhvdXQgZWRpdGFibGUgcmVnaW9uIGVuYWJsZWQgdGhpcyByZWN0IGlzIHRob3VnaHQg
dG8gY29udGFpbiBzb21ldGhpbmcgZWRpdGFibGUgZXZlbiB0aG91Z2ggaXQgZG9lc24ndC4KKyAg
ICBhd2FpdCBzaG91bGRIYXZlRWRpdGFibGVFbGVtZW50c0luUmVjdCgwLCAwLCA1MCwgNTApOwor
CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30KKworZGVzY3JpcHRpb24oIkhpdCB0ZXN0cyBmb3IgZWRpdGFibGUgZWxl
bWVudHMgaW5zaWRlIHRoZSBibGFjayBvdXRsaW5lZCByZWN0YW5nbGUgd2hlbiB0aGUgZWRpdGFi
bGUgcmVnaW9uIGlzIGRpc2FibGVkLiBUaGVyZSBzaG91bGQgYmUgbW9yZSBmYWxzZSBwb3NpdGl2
ZXMgd2hlbiBkaXNhYmxlZC4iKTsKK3J1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0
LXRlc3QtYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hp
dC10ZXN0LWJhc2ljLmh0bWwKaW5kZXggODIzZTdjZjNlNjUxYTg0ZjM5ODVhMDQ0Mzk3ODMwZGNm
MzU4MWVjZC4uMTBlNjZjNDFlMDU2Yjc3MzcyYTA1YTk1YjEzZjZjNmNkNmNiYWUyOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtYmFzaWMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1i
YXNpYy5odG1sCkBAIC0yNSw2ICsyNSw5IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxl
UmVnaW9uRW5hYmxlZCh0cnVlKTsKKwogYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiB7CiAgICAg
aWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZWRpdGFibGUtZG9jdW1lbnQtZWxlbWVudC5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZWRpdGFibGUt
ZG9jdW1lbnQtZWxlbWVudC5odG1sCmluZGV4IDZjNmI2MGEwZGE1NGYwZjY2MGFmYjJhMjVhZWEw
NWIxYjhiN2I3MmUuLjBiNWE4MWExNDhmM2ZjMzBhMTEyOGRmNjVmYzVmYWQyNTNjZWU5N2QgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LWVk
aXRhYmxlLWRvY3VtZW50LWVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2Vk
aXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1lZGl0YWJsZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwKQEAg
LTksNiArOSw5IEBACiA8c2NyaXB0Pgogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitp
ZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVS
ZWdpb25FbmFibGVkKHRydWUpOworCiBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBp
ZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1maXhlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3QtZml4ZWQuaHRtbAppbmRleCBkMmI0NDM0N2Y3Y2Ri
OWNhZGQ0ODE5M2JkYjgwZjY1YWYwNzQ3ZGM2Li45YTUxYTljZmQzOTIzMzMzNTFjZDQyNTU4Yzgy
ZDJhNmRmOTgyNDgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9oaXQtdGVzdC1maXhlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LWZpeGVkLmh0bWwKQEAgLTIyLDYgKzIyLDkgQEAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOworCiBhc3luYyBmdW5jdGlv
biBydW5UZXN0KCkKIHsKICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1vdmVybGFwLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1vdmVybGFw
Lmh0bWwKaW5kZXggMzEwYjI1ZmEwNmZiOGFiMzA1ZGIwZDUxZmZhMTg3OTM3NzZiMTU1YS4uYzdl
ZDg0ZTE1ODg5NzIwZTFmNjgzMTZmN2I2MDNkYTlkOGYxZDRmNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3Qtb3ZlcmxhcC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRt
bApAQCAtNjksNiArNjksOSBAQCB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVu
YWJsZWQodHJ1ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGlmICghd2lu
ZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LXRleHRhcmVhLWVtcHR5LXNwYWNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC10ZXh0YXJlYS1lbXB0eS1zcGFjZS5o
dG1sCmluZGV4IDlkZjUxYTcyMDg3OGI1MjI2MTQ0Y2Q3ODhiY2JmZjlmZmI5NjMyMDEuLmNmZDQw
NGUwYTRjNDI5ZWEwMDA2NTFkNDkzOTA3OGFjYWJmNjc3MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LXRleHRhcmVhLWVtcHR5LXNwYWNl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3Qt
dGV4dGFyZWEtZW1wdHktc3BhY2UuaHRtbApAQCAtMjUsNiArMjUsOSBAQCB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CisKIGFzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKQogewogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxl
LXJlZ2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI0MGZhZmEyN2Y1MTliMGVjNjk0OGFjNzljMzJhYjZjZTI5NDUzYzgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUtd2l0aG91dC1l
ZGl0YWJsZS1yZWdpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTQgQEAKKworKEdyYXBoaWNz
TGF5ZXIKKyAgKGFuY2hvciAwLjAwIDAuMDApCisgIChib3VuZHMgODAwLjAwIDQxMTIuMDApCisg
IChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDQx
MTIuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgIChiYWNrZ3JvdW5kQ29sb3IgI0ZGRkZGRikKKyAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDguMDAgOC4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDMwNC4wMCAzMDQuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAocG9zaXRpb24gMi4wMCAyLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRz
IG9yaWdpbiAwLjAwIDIwMC4wMCkKKyAgICAgICAgICAgICAgICAgIChhbmNob3IgMC4wMCAwLjAw
KQorICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMDAuMDAgMzAwLjAwKQorICAgICAgICAgICAg
ICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuY2hvciAwLjAwIDAuMDApCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIChib3VuZHMgMzEwLjAwIDY3MC4wMCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyAzMTAuMDAgNjcw
LjAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAg
ICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJl
Z2lvbi9pZnJhbWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmEyNjNiOWQ2MjFmNmNjZDFlMGRhMWFlYzVmZTQ4MmVkZTA5NDg1YTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJh
bWUtd2l0aG91dC1lZGl0YWJsZS1yZWdpb24uaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGJvZHkgc3R5bGU9ImhlaWdodDogNDA5NnB4Ij4KKzxpZnJhbWUg
aWQ9InRlc3RGcmFtZSIgaGVpZ2h0PSIzMDAiIHNyY2RvYz0iCis8c3R5bGU+Cisuc2Nyb2xsZXIg
eworICAgIG1hcmdpbi10b3A6IDQwMHB4OworICAgIHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6
IDMwMHB4OworICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7Cit9CisuY29udGVudHMgeworICAgIHdpZHRoOiA1MDBweDsKKyAgICBoZWlnaHQ6IDUwMHB4
OworfQorLmVkaXRhYmxlIHsKKyAgICAtd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlOwor
ICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7Cit9ICAgCis8L3N0eWxlPgorPHA+aWZyYW1lPC9w
PgorPGRpdiBjbGFzcz0nZWRpdGFibGUgYm94JyBzdHlsZT0nbWFyZ2luLXRvcDogMjUwcHg7Jz4K
KzwvZGl2PgorPGRpdiBjbGFzcz0nc2Nyb2xsZXInIHN0eWxlPSdtYXJnaW4tdG9wOiA1MHB4Oyc+
CisgICAgPGRpdiBjbGFzcz0nY29udGVudHMnPgorICAgICAgICBPdmVyZmxvdyBzY3JvbGwgaW4g
aWZyYW1lCisgICAgICAgIDxkaXYgY2xhc3M9J2VkaXRhYmxlIGJveCcgc3R5bGU9J21hcmdpbi10
b3A6IDUwcHg7Jz4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+
Cit3aW5kb3cucGFyZW50LnNjcm9sbElGcmFtZUFuZER1bXBSZWdpb25zKCk7Cis8L3NjcmlwdD4K
KyI+Cis8L2lmcmFtZT4KKzxwcmUgaWQ9InJlc3VsdHMiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAod2luZG93LmludGVybmFscykgewor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCh0cnVl
KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVSZWdpb25FbmFibGVkKGZhbHNl
KTsKK30KKworZnVuY3Rpb24gc2Nyb2xsSUZyYW1lQW5kRHVtcFJlZ2lvbnMoKQoreworICAgIHRl
c3RGcmFtZS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDIwMCk7CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JF
R0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElF
Uyk7CisgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9pZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL2lmcmFtZS5odG1sCmluZGV4IDg3MDg0OTEzOWZhODRj
ODYxNzA0MWIwM2ZhMzQ1ZTBhY2ZiYzRmZTAuLmE3ZWU0ZTg5ZWUwNGE1ZGI1MzAzYTczMWI5Y2U0
YzQwYzRmMGY3YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVn
aW9uL2lmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9u
L2lmcmFtZS5odG1sCkBAIC00MSw4ICs0MSwxMCBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRB
c3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RWRpdGFibGVSZWdpb25FbmFibGVkKHRydWUpOworfQogCiBmdW5jdGlvbiBzY3JvbGxJRnJh
bWVBbmREdW1wUmVnaW9ucygpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2Vk
aXRhYmxlLXJlZ2lvbi9vdXQtaGFuZ2luZy1jaGlsZC1vZi1jb250ZW50ZWRpdGFibGUuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL291dC1oYW5naW5nLWNoaWxkLW9m
LWNvbnRlbnRlZGl0YWJsZS5odG1sCmluZGV4IDkyYzM1NzkyNmVjYzBmNWRhN2ZlYTlhZDQ2M2Ri
MzQ5NzQ3OTk2ZmEuLmRjODU3M2Q2MTA0OWVkMmZmNWUzZjU5MjgwNzI4ZmQyYjI0YzY5ZDYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL291dC1oYW5naW5n
LWNoaWxkLW9mLWNvbnRlbnRlZGl0YWJsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGFibGUtcmVnaW9uL291dC1oYW5naW5nLWNoaWxkLW9mLWNvbnRlbnRlZGl0YWJsZS5odG1s
CkBAIC0zNCw2ICszNCw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJU
cmVlQXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9S
RUdJT04gfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJ
RVMpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxl
LXJlZ2lvbi9vdmVyZmxvdy1zY3JvbGwtdGV4dC1maWVsZC1hbmQtY29udGVudGVkaXRhYmxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9vdmVyZmxvdy1zY3JvbGwt
dGV4dC1maWVsZC1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwKaW5kZXggYWQyOTQ1ODUxMjE3NGY5
MTQ0NTExY2YzYWVlNWJjYzRjOGVjMTY5YS4uNDU5NjcwMGMzMDc1MGZhY2Q2ZDczOWJjMzg4NGNk
YWQzZDAzYjFlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vb3ZlcmZsb3ctc2Nyb2xsLXRleHQtZmllbGQtYW5kLWNvbnRlbnRlZGl0YWJsZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL292ZXJmbG93LXNjcm9sbC10
ZXh0LWZpZWxkLWFuZC1jb250ZW50ZWRpdGFibGUuaHRtbApAQCAtMjYsNiArMjYsOCBAQAogPHNj
cmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0
YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykKICAgICByZXN1
bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50
ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVS
X1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRl
LWZpeGVkLWNvbnRlbnRlZGl0YWJsZS1zY3JvbGxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9lZGl0YWJsZS1yZWdpb24vcmVsYXRpdmUtaW5zaWRlLWZpeGVkLWNvbnRlbnRlZGl0YWJsZS1z
Y3JvbGxlZC5odG1sCmluZGV4IDE5N2FmMzJlOWZiZDVhZDIyYjU2N2MwZTYxYmY5MjJmYTAzODNi
NjEuLjBiOGE2MGI5MGFlOWQ0OTI4ZTQyZTA0NTYzMWQ5ZTMzZTVkZjZmOGMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS1maXhl
ZC1jb250ZW50ZWRpdGFibGUtc2Nyb2xsZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtZml4ZWQtY29udGVudGVkaXRhYmxlLXNj
cm9sbGVkLmh0bWwKQEAgLTEwLDYgKzEwLDggQEAgd2luZG93LnNjcm9sbFRvKDAsIDEwMjQpOwog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Citp
ZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGFibGVS
ZWdpb25FbmFibGVkKHRydWUpOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgcmVzdWx0cy50
ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFs
cy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVF
X0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS10cmFu
c2Zvcm1lZC1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3JlbGF0aXZlLWluc2lkZS10cmFuc2Zvcm1lZC1jb250ZW50ZWRpdGFibGUuaHRt
bAppbmRleCA1MTlmMjk5OTZiMDUwMTU5ODdmNjMxNzIxYTc1ZmVlNWE3MTJlMGMzLi40N2U3MWNk
NzYwMDBlMTA0ZWFkZjY5ZjQ5NDBmY2U1Nzk3ZTE2YTNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9yZWxhdGl2ZS1pbnNpZGUtdHJhbnNmb3JtZWQtY29u
dGVudGVkaXRhYmxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vcmVsYXRpdmUtaW5zaWRlLXRyYW5zZm9ybWVkLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0x
OSw2ICsxOSw4IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQogICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNU
ZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19FVkVOVF9SRUdJT04g
fCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19ST09UX0xBWUVSX1BST1BFUlRJRVMpOwog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi9zZWFyY2gtZmllbGQtYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL3NlYXJjaC1maWVsZC1iYXNpYy5odG1sCmluZGV4IDY5MjMxMzc0MjRhOWZmODRmMDY3
MDg5M2NhZWJlMjRlNDVhMWM2NDEuLmViM2RmYjkzZDQzNzQwYzYyNmQzYzAyZWY5NDc5YzliNTcz
M2I5YzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3Nl
YXJjaC1maWVsZC1iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUt
cmVnaW9uL3NlYXJjaC1maWVsZC1iYXNpYy5odG1sCkBAIC02LDYgKzYsOCBAQAogPHNjcmlwdD4K
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJl
Z2lvbkVuYWJsZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykKICAgICByZXN1bHRzLnRl
eHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxz
LkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVf
SU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRo
b3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2Vk
aXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFibGUtcmVnaW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODFmZTVkOTBmNjVmNTA4NWQxNDNkOTE2Zjk4NDUxNGM0
MzJhZjIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1y
ZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNCBAQAorCisoR3JhcGhpY3NMYXllcgorICAoYW5jaG9yIDAuMDAgMC4w
MCkKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY29udGVudHNPcGFx
dWUgMSkKKyAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgIChiYWNrZ3JvdW5kQ29sb3IgI0ZG
RkZGRikKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1iYXNp
Yy13aXRob3V0LWVkaXRhYmxlLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiYmIwMWU3ZmY1YTU4
Y2VkNGYyYjU0ZDQ4Y2NlY2ZjNzA0M2E1MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWJhc2ljLXdpdGhvdXQtZWRpdGFi
bGUtcmVnaW9uLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPGlucHV0IHR5cGU9InRleHQiPgorPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRhYmxlUmVnaW9uRW5hYmxlZCh0cnVlKTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRhYmxlUmVnaW9uRW5hYmxlZChmYWxzZSk7CisgICAg
cmVzdWx0cy50ZXh0Q29udGVudCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQs
IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5M
QVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7Cit9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRp
dGFibGUtcmVnaW9uL3RleHQtZmllbGQtYmFzaWMuaHRtbAppbmRleCA4NGE4MDE5ZTI1YjJlMjQz
NDFkOWNhYWRiZjQ5N2I5NzI3MGUyODZhLi5iMmMwM2NkOTE0MDk4NTU3NTc0OTJiZjM3NDk0Y2M1
MGZjNDI2ZDE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lv
bi90ZXh0LWZpZWxkLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJs
ZS1yZWdpb24vdGV4dC1maWVsZC1iYXNpYy5odG1sCkBAIC02LDYgKzYsOCBAQAogPHNjcmlwdD4K
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJl
Z2lvbkVuYWJsZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykKICAgICByZXN1bHRzLnRl
eHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxz
LkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVf
SU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dC1maWVsZC1pbnNpZGUtY29t
cG9zaXRlZC1uZWdhdGl2ZS16LWluZGV4LWxheWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1jb21wb3NpdGVkLW5lZ2F0aXZlLXot
aW5kZXgtbGF5ZXIuaHRtbAppbmRleCBiNGU0ZDhkN2U0ZTc0NWNmMzk2YTQ4MzA0YzYwMTNkOTFk
MDk0ZDIzLi4wMWUxZTNhNjQyMzhiODA0OTIyZTFkNzYwNTYxNGNiMGM0ZmIzZDA0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lk
ZS1jb21wb3NpdGVkLW5lZ2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0LWZpZWxkLWluc2lkZS1jb21wb3NpdGVkLW5l
Z2F0aXZlLXotaW5kZXgtbGF5ZXIuaHRtbApAQCAtMTgsNiArMTgsOCBAQAogPHNjcmlwdD4KIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lv
bkVuYWJsZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykKICAgICByZXN1bHRzLnRleHRD
b250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxB
WUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5D
TFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dGFyZWEtYmFzaWMuaHRtbCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RleHRhcmVhLWJhc2ljLmh0bWwKaW5k
ZXggMWExODlhOTZhZDAxNzBiNzMyYjgwOTY5MDdjZjk4YTFmMmE2YTVkMS4uNjlmZTc2MjU3ZGFj
MjIxMGZmNTdiMmVkOWMzMDAzMzI1NzRmNzg1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9lZGl0YWJsZS1yZWdpb24vdGV4dGFyZWEtYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90ZXh0YXJlYS1iYXNpYy5odG1sCkBAIC02LDYgKzYs
OCBAQAogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CiBpZiAod2luZG93LmludGVybmFscykK
ICAgICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1
bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRfUkVHSU9OIHwgaW50ZXJu
YWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJUSUVTKTsKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vdHJhbnNm
b3JtZWQtc2Nyb2xsZWQtb24tdG9wLW9mLWZpeGVkLWNvbnRlbnRlZGl0YWJsZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGFibGUtcmVnaW9uL3RyYW5zZm9ybWVkLXNjcm9sbGVkLW9u
LXRvcC1vZi1maXhlZC1jb250ZW50ZWRpdGFibGVzLmh0bWwKaW5kZXggYmJjN2ZmOTlkZWYxMzFm
MTNlZGMzMmUzYjJjYjY3NzFhYTk0MTZkYi4uZmMzYWFkOWZkOWMyZjZjMTNlZDE0ODdlYmVjYmNm
YjE1ZWYyMjBjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0YWJsZS1yZWdp
b24vdHJhbnNmb3JtZWQtc2Nyb2xsZWQtb24tdG9wLW9mLWZpeGVkLWNvbnRlbnRlZGl0YWJsZXMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi90cmFuc2Zvcm1l
ZC1zY3JvbGxlZC1vbi10b3Atb2YtZml4ZWQtY29udGVudGVkaXRhYmxlcy5odG1sCkBAIC0yMSw2
ICsyMSw4IEBACiB3aW5kb3cuc2Nyb2xsVG8oMCwgMTIwKTsKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0YWJsZVJlZ2lvbkVuYWJsZWQodHJ1ZSk7CiBp
ZiAod2luZG93LmludGVybmFscykKICAgICByZXN1bHRzLnRleHRDb250ZW50ID0gaW50ZXJuYWxz
LmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNf
RVZFTlRfUkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9Q
Uk9QRVJUSUVTKTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>