<?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>256950</bug_id>
          
          <creation_ts>2023-05-17 23:23:34 -0700</creation_ts>
          <short_desc>AX: display:contents lists don&apos;t return the correct subrole</short_desc>
          <delta_ts>2023-06-22 14:09:22 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>239478</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1956126</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-17 23:23:34 -0700</bug_when>
    <thetext>This is important because some ATs on macOS do change their behavior based on the various list subrole types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1956127</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-05-17 23:23:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/109498423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1956128</commentid>
    <comment_count>2</comment_count>
      <attachid>466397</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-17 23:35:02 -0700</bug_when>
    <thetext>Created attachment 466397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1956500</commentid>
    <comment_count>3</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-05-19 08:09:14 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #2)
&gt; Created attachment 466397 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/AXObjectCache.cpp
+++ b/Source/WebCore/accessibility/AXObjectCache.cpp

+static bool shouldCreateAccessibilityList(Node* node)

I would call it simply isAXList(...).

+{
+    // If the node is aria role=&quot;list&quot; or the aria role is empty and its a

Typo: its -&gt; it&apos;s

+    // ul/ol/dl type (it shouldn&apos;t be a list if aria says otherwise).
+    return (node &amp;&amp; ((nodeHasRole(node, &quot;list&quot;_s) || nodeHasRole(node, &quot;directory&quot;_s))
+        || (nodeHasRole(node, nullAtom()) &amp;&amp; (node-&gt;hasTagName(ulTag) || node-&gt;hasTagName(olTag) || node-&gt;hasTagName(dlTag) || node-&gt;hasTagName(menuTag)))));
+}

The role attribute should not override &lt;ul&gt;, &lt;ol&gt;, &lt;dl&gt; tag names. A &lt;ul&gt; element should be a list.
Although I see that this was there in createObjectFromRenderer before this change, it is incorrect. Can we add a FIXME for this?

--- a/Source/WebCore/accessibility/AccessibilityList.h
+++ b/Source/WebCore/accessibility/AccessibilityList.h

+    AccessibilityRole determineAccessibilityRoleInner();

Don&apos;t see where this is defined or used. Missed to remove?

--- a/Source/WebCore/accessibility/AccessibilityNodeObject.cpp
+++ b/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

 bool AccessibilityNodeObject::canHaveChildren() const
 {
-    // If this is an AccessibilityRenderObject, then it&apos;s okay if this object
-    // doesn&apos;t have a node - there are some renderers that don&apos;t have associated
-    // nodes, like scroll areas and css-generated text.
-    if (!node() &amp;&amp; !isAccessibilityRenderObject())
+    if (!renderer() &amp;&amp; !node())
         return false;

I find this comment somewhat instructive if it holds true, that there can be RenderObjects with no Node. Can we keep it, or a revision of it?
Furthermore, how can there be an object without eigher renderer or node? There is the AX mocked objects, but I don&apos;t think they derive from AXNodeObject, do they?

@@ -572,6 +588,8 @@ bool AccessibilityNodeObject::computeAccessibilityIsIgnored() const
     // it&apos;s been initialized.
     ASSERT(m_initialized);
 #endif
+    if (!node())
+        return true;

Why do we need this?

--- a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
+++ b/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

+AccessibilityRenderObject::AccessibilityRenderObject(Node&amp; node)
+    : AccessibilityNodeObject(&amp;node)
+    , m_renderer(node.renderer())
+{
+    // We should only ever create an instance of this class with a node if that node has no renderer (i.e. because of display:contents).
+    ASSERT(!node.renderer());
+}

Then we don&apos;t need

+    , m_renderer(node.renderer())

 Node* AccessibilityRenderObject::node() const

 do we need this override at all?

 {
     if (!m_renderer)
-        return nullptr;
-    if (m_renderer-&gt;isRenderView())
+        return AccessibilityNodeObject::node();
+    if (UNLIKELY(m_renderer-&gt;isRenderView()))

is this possible? Or a RenderView will always create an AXScrollView instead.

         return &amp;m_renderer-&gt;document();
     return m_renderer-&gt;node();
 }


 AccessibilityObjectInclusion AccessibilityRenderObject::defaultObjectInclusion() const
 {
-    if (!m_renderer)
+    if (!m_renderer &amp;&amp; !node())
         return AccessibilityObjectInclusion::IgnoreObject;

Is it possible an AXRenderObject with neigher renderer nor Node?

--- a/LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt
+++ b/LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt

-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup
+    AXSubrole: AXContentList

is this expected, the role changing from list to group?


 &lt;ul hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ul&quot;&gt;&lt;/ul&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup
+    AXSubrole: AXContentList

Dito.

 &lt;menu hidden=&quot;&quot; aria-hidden=&quot;false&quot; type=&quot;toolbar&quot; id=&quot;menu-toolbar&quot;&gt;&lt;/menu&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup
+    AXSubrole: AXContentList

Dito.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1956747</commentid>
    <comment_count>4</comment_count>
      <attachid>466438</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-20 11:26:06 -0700</bug_when>
    <thetext>Created attachment 466438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1956748</commentid>
    <comment_count>5</comment_count>
      <attachid>466439</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-20 11:31:25 -0700</bug_when>
    <thetext>Created attachment 466439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1956749</commentid>
    <comment_count>6</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-20 11:40:12 -0700</bug_when>
    <thetext>&gt; +    // ul/ol/dl type (it shouldn&apos;t be a list if aria says otherwise).
&gt; +    return (node &amp;&amp; ((nodeHasRole(node, &quot;list&quot;_s) || nodeHasRole(node,
&gt; &quot;directory&quot;_s))
&gt; +        || (nodeHasRole(node, nullAtom()) &amp;&amp; (node-&gt;hasTagName(ulTag) ||
&gt; node-&gt;hasTagName(olTag) || node-&gt;hasTagName(dlTag) ||
&gt; node-&gt;hasTagName(menuTag)))));
&gt; +}
&gt; 
&gt; The role attribute should not override &lt;ul&gt;, &lt;ol&gt;, &lt;dl&gt; tag names. A &lt;ul&gt;
&gt; element should be a list.
&gt; Although I see that this was there in createObjectFromRenderer before this
&gt; change, it is incorrect. Can we add a FIXME for this?
I think we should hold off adding a FIXME for this until we get agreement from standards folks that &quot;role attribute should not override &lt;ul&gt;, &lt;ol&gt;, &lt;dl&gt; tag names&quot; is a change that should be made.

&gt; @@ -572,6 +588,8 @@ bool
&gt; AccessibilityNodeObject::computeAccessibilityIsIgnored() const
&gt;      // it&apos;s been initialized.
&gt;      ASSERT(m_initialized);
&gt;  #endif
&gt; +    if (!node())
&gt; +        return true;
&gt; 
&gt; Why do we need this?
The intention is to catch the case where the WeakPtr&lt;Node&gt; m_node has been destroyed but the AX object hasn&apos;t been cleaned up yet (similar to the check in AccessibilityRenderObject::computeAccessibilityIsIgnored).

&gt;  Node* AccessibilityRenderObject::node() const
&gt; 
&gt;  do we need this override at all?
I did try removing it, but that causes many tests to fail. Maybe for cases where RenderObject::node() initially is nullptr when creating the object, but becomes not nullptr later? I have to imagine that would mess lots of other things up, though...so something to investigate for the future.

&gt;  {
&gt;      if (!m_renderer)
&gt; -        return nullptr;
&gt; -    if (m_renderer-&gt;isRenderView())
&gt; +        return AccessibilityNodeObject::node();
&gt; +    if (UNLIKELY(m_renderer-&gt;isRenderView()))
&gt; 
&gt; is this possible? Or a RenderView will always create an AXScrollView instead.
RenderViews are created as AccessibilityRenderObjects, not AccessibilityScrollView (that is ScrollView).

&gt; AccessibilityRenderObject::defaultObjectInclusion() const
&gt;  {
&gt; -    if (!m_renderer)
&gt; +    if (!m_renderer &amp;&amp; !node())
&gt;          return AccessibilityObjectInclusion::IgnoreObject;
&gt; 
&gt; Is it possible an AXRenderObject with neigher renderer nor Node?
The intention is to catch the case where the WeakPtr&lt;RenderObject&gt; m_renderer and WeakPtr&lt;Node&gt; m_node have been destroyed but that AX object hasn&apos;t been cleaned up yet.

&gt; a/LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-
&gt; expected.txt
&gt; +++
&gt; b/LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-
&gt; expected.txt
&gt; 
&gt; -    AXRole: AXList
&gt; -    computedRoleString: list
&gt; +    AXRole: AXGroup
&gt; +    AXSubrole: AXContentList
&gt; 
&gt; is this expected, the role changing from list to group?
&gt; 
&gt; 
&gt;  &lt;ul hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ul&quot;&gt;&lt;/ul&gt;
&gt; -    AXRole: AXList
&gt; -    computedRoleString: list
&gt; +    AXRole: AXGroup
&gt; +    AXSubrole: AXContentList
&gt; 
&gt; Dito.
&gt; 
&gt;  &lt;menu hidden=&quot;&quot; aria-hidden=&quot;false&quot; type=&quot;toolbar&quot; id=&quot;menu-toolbar&quot;&gt;&lt;/menu&gt;
&gt; -    AXRole: AXList
&gt; -    computedRoleString: list
&gt; +    AXRole: AXGroup
&gt; +    AXSubrole: AXContentList
&gt; 
&gt; Dito.
Yes, all intentional. Because we now properly create display:contents lists as AccessibilityList rather than AccessibilityNodeObject, the more stringent &quot;is this a list&quot; heuristics are applied, and &quot;ARIA visible&quot; lists do not pass that test (because nothing is visibly rendered).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1956754</commentid>
    <comment_count>7</comment_count>
      <attachid>466440</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-20 14:16:32 -0700</bug_when>
    <thetext>Created attachment 466440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1957605</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-05-24 06:32:48 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #7)
&gt; Created attachment 466440 [details]
&gt; Patch

@@ -516,8 +535,9 @@ bool AccessibilityNodeObject::canHaveChildren() const
 {
     // If this is an AccessibilityRenderObject, then it&apos;s okay if this object
     // doesn&apos;t have a node - there are some renderers that don&apos;t have associated
-    // nodes, like scroll areas and css-generated text.
-    if (!node() &amp;&amp; !isAccessibilityRenderObject())
+    // nodes, like scroll areas and css-generated text. However, if there also
+    // no renderer, we should bail.
+    if (!renderer() &amp;&amp; !node())
         return false;

Can we really have this scenario? An AccessibilityNodeObject that has neither renderer nor node associated with it? If this is not a possible, expected state, maybe we should add an ASSERT here.

@@ -1064,7 +1049,7 @@ static AccessibilityObjectInclusion objectInclusionFromAltText(const String&amp; alt

 AccessibilityObjectInclusion AccessibilityRenderObject::defaultObjectInclusion() const
 {
-    if (!m_renderer)
+    if (!m_renderer &amp;&amp; !node())
         return AccessibilityObjectInclusion::IgnoreObject;

Same question here.

--- a/LayoutTests/platform/glib/accessibility/aria-visible-element-roles-expected.txt
+++ b/LayoutTests/platform/glib/accessibility/aria-visible-element-roles-expected.txt
@@ -105,12 +105,10 @@ This test ensures ARIA visible elements (e.g. those with both `hidden` and `aria
     AXRole: AXDescriptionList

 &lt;ol hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ol&quot;&gt;&lt;/ol&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup

 &lt;ul hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ul&quot;&gt;&lt;/ul&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup

Doesn&apos;t this mean we are breaking something for ATSPI? What it was a list before, now is a group.

@@ -180,8 +178,7 @@ This test ensures ARIA visible elements (e.g. those with both `hidden` and `aria
     computedRoleString: status

 &lt;menu hidden=&quot;&quot; aria-hidden=&quot;false&quot; type=&quot;toolbar&quot; id=&quot;menu-toolbar&quot;&gt;&lt;/menu&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup

Dito.

--- a/LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt
+++ b/LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt
 &lt;ol hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ol&quot;&gt;&lt;/ol&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup
+    AXSubrole: AXContentList

 &lt;ul hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ul&quot;&gt;&lt;/ul&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup
+    AXSubrole: AXContentList

Dito.

@@ -203,8 +204,8 @@ This test ensures ARIA visible elements (e.g. those with both `hidden` and `aria
     AXSubrole: AXApplicationStatus

 &lt;menu hidden=&quot;&quot; aria-hidden=&quot;false&quot; type=&quot;toolbar&quot; id=&quot;menu-toolbar&quot;&gt;&lt;/menu&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup
+    AXSubrole: AXContentList


Dito.

--- a/LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt
+++ b/LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt

 &lt;ol hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ol&quot;&gt;&lt;/ol&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup
+    AXSubrole: AXContentList

 &lt;ul hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ul&quot;&gt;&lt;/ul&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup
+    AXSubrole: AXContentList


Dito.

 &lt;menu hidden=&quot;&quot; aria-hidden=&quot;false&quot; type=&quot;toolbar&quot; id=&quot;menu-toolbar&quot;&gt;&lt;/menu&gt;
-    AXRole: AXList
-    computedRoleString: list
+    AXRole: AXGroup
+    AXSubrole: AXContentList

Dito.

--- a/LayoutTests/platform/wpe/accessibility/aria-visible-element-roles-expected.txt
+++ b/LayoutTests/platform/wpe/accessibility/aria-visible-element-roles-expected.txt

Same here, don&apos;t understand why these elements were role list before and now they are groups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1957660</commentid>
    <comment_count>9</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-24 10:58:59 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #8)
&gt; (In reply to Tyler Wilcock from comment #7)
&gt; &gt; Created attachment 466440 [details]
&gt; &gt; Patch
&gt; 
&gt; @@ -516,8 +535,9 @@ bool AccessibilityNodeObject::canHaveChildren() const
&gt;  {
&gt;      // If this is an AccessibilityRenderObject, then it&apos;s okay if this
&gt; object
&gt;      // doesn&apos;t have a node - there are some renderers that don&apos;t have
&gt; associated
&gt; -    // nodes, like scroll areas and css-generated text.
&gt; -    if (!node() &amp;&amp; !isAccessibilityRenderObject())
&gt; +    // nodes, like scroll areas and css-generated text. However, if there
&gt; also
&gt; +    // no renderer, we should bail.
&gt; +    if (!renderer() &amp;&amp; !node())
&gt;          return false;
&gt; 
&gt; Can we really have this scenario? An AccessibilityNodeObject that has
&gt; neither renderer nor node associated with it? If this is not a possible,
&gt; expected state, maybe we should add an ASSERT here.&apos;
These are both WeakPtrs, so the intention is to catch the case where the renderer and node in those WeakPtrs have been destroyed but the AX object has not been cleaned up yet (and thus it should not be allowed to have children, and should compute AccessibilityObjectInclusion::IgnoreObject).

&gt; ---
&gt; a/LayoutTests/platform/glib/accessibility/aria-visible-element-roles-
&gt; expected.txt
&gt; +++
&gt; b/LayoutTests/platform/glib/accessibility/aria-visible-element-roles-
&gt; expected.txt
&gt; @@ -105,12 +105,10 @@ This test ensures ARIA visible elements (e.g. those
&gt; with both `hidden` and `aria
&gt;      AXRole: AXDescriptionList
&gt; 
&gt;  &lt;ol hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ol&quot;&gt;&lt;/ol&gt;
&gt; -    AXRole: AXList
&gt; -    computedRoleString: list
&gt; +    AXRole: AXGroup
&gt; 
&gt;  &lt;ul hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ul&quot;&gt;&lt;/ul&gt;
&gt; -    AXRole: AXList
&gt; -    computedRoleString: list
&gt; +    AXRole: AXGroup
&gt; 
&gt; Doesn&apos;t this mean we are breaking something for ATSPI? What it was a list
&gt; before, now is a group.
&gt; 
&gt; Same here, don&apos;t understand why these elements were role list before and now
&gt; they are groups.
Addressed this in my last reply:

Yes, all intentional. Because we now properly create display:contents lists as AccessibilityList rather than AccessibilityNodeObject, the more stringent &quot;is this a list&quot; heuristics are applied, and &quot;ARIA visible&quot; lists do not pass that test (because nothing is visibly rendered).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1957680</commentid>
    <comment_count>10</comment_count>
      <attachid>466484</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-24 12:01:29 -0700</bug_when>
    <thetext>Created attachment 466484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1957681</commentid>
    <comment_count>11</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-24 12:02:29 -0700</bug_when>
    <thetext>&gt; &gt; Can we really have this scenario? An AccessibilityNodeObject that has
&gt; &gt; neither renderer nor node associated with it? If this is not a possible,
&gt; &gt; expected state, maybe we should add an ASSERT here.&apos;
&gt; These are both WeakPtrs, so the intention is to catch the case where the
&gt; renderer and node in those WeakPtrs have been destroyed but the AX object
&gt; has not been cleaned up yet (and thus it should not be allowed to have
&gt; children, and should compute AccessibilityObjectInclusion::IgnoreObject).
I decided to just remove these checks in the latest patch. These objects should be cleaned up before either of these methods are called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1957855</commentid>
    <comment_count>12</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-05-25 02:46:45 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #9)
&gt; (In reply to Andres Gonzalez from comment #8)
&gt; &gt; (In reply to Tyler Wilcock from comment #7)
&gt; &gt; &gt; Created attachment 466440 [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; @@ -516,8 +535,9 @@ bool AccessibilityNodeObject::canHaveChildren() const
&gt; &gt;  {
&gt; &gt;      // If this is an AccessibilityRenderObject, then it&apos;s okay if this
&gt; &gt; object
&gt; &gt;      // doesn&apos;t have a node - there are some renderers that don&apos;t have
&gt; &gt; associated
&gt; &gt; -    // nodes, like scroll areas and css-generated text.
&gt; &gt; -    if (!node() &amp;&amp; !isAccessibilityRenderObject())
&gt; &gt; +    // nodes, like scroll areas and css-generated text. However, if there
&gt; &gt; also
&gt; &gt; +    // no renderer, we should bail.
&gt; &gt; +    if (!renderer() &amp;&amp; !node())
&gt; &gt;          return false;
&gt; &gt; 
&gt; &gt; Can we really have this scenario? An AccessibilityNodeObject that has
&gt; &gt; neither renderer nor node associated with it? If this is not a possible,
&gt; &gt; expected state, maybe we should add an ASSERT here.&apos;
&gt; These are both WeakPtrs, so the intention is to catch the case where the
&gt; renderer and node in those WeakPtrs have been destroyed but the AX object
&gt; has not been cleaned up yet (and thus it should not be allowed to have
&gt; children, and should compute AccessibilityObjectInclusion::IgnoreObject).
&gt; 
&gt; &gt; ---
&gt; &gt; a/LayoutTests/platform/glib/accessibility/aria-visible-element-roles-
&gt; &gt; expected.txt
&gt; &gt; +++
&gt; &gt; b/LayoutTests/platform/glib/accessibility/aria-visible-element-roles-
&gt; &gt; expected.txt
&gt; &gt; @@ -105,12 +105,10 @@ This test ensures ARIA visible elements (e.g. those
&gt; &gt; with both `hidden` and `aria
&gt; &gt;      AXRole: AXDescriptionList
&gt; &gt; 
&gt; &gt;  &lt;ol hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ol&quot;&gt;&lt;/ol&gt;
&gt; &gt; -    AXRole: AXList
&gt; &gt; -    computedRoleString: list
&gt; &gt; +    AXRole: AXGroup
&gt; &gt; 
&gt; &gt;  &lt;ul hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ul&quot;&gt;&lt;/ul&gt;
&gt; &gt; -    AXRole: AXList
&gt; &gt; -    computedRoleString: list
&gt; &gt; +    AXRole: AXGroup
&gt; &gt; 
&gt; &gt; Doesn&apos;t this mean we are breaking something for ATSPI? What it was a list
&gt; &gt; before, now is a group.
&gt; &gt; 
&gt; &gt; Same here, don&apos;t understand why these elements were role list before and now
&gt; &gt; they are groups.
&gt; Addressed this in my last reply:
&gt; 
&gt; Yes, all intentional. Because we now properly create display:contents lists
&gt; as AccessibilityList rather than AccessibilityNodeObject, the more stringent
&gt; &quot;is this a list&quot; heuristics are applied, and &quot;ARIA visible&quot; lists do not
&gt; pass that test (because nothing is visibly rendered).

Sorry that I missed your previous comment and repeated the question. This is not a display:contents list :

&lt;ul hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ul&quot;&gt;&lt;/ul&gt;

The role of this was list before and now it is group. I understand why the change causes this, but the question is whether this is change in behavior is desirable. IMO, If we are exposing this &lt;ul&gt; at all, it should be a list (empty list), not a generic group.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1957923</commentid>
    <comment_count>13</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-25 09:35:01 -0700</bug_when>
    <thetext>&gt; Sorry that I missed your previous comment and repeated the question. This is
&gt; not a display:contents list :
&gt; 
&gt; &lt;ul hidden=&quot;&quot; aria-hidden=&quot;false&quot; id=&quot;ul&quot;&gt;&lt;/ul&gt;
&gt; 
&gt; The role of this was list before and now it is group. I understand why the
&gt; change causes this, but the question is whether this is change in behavior
&gt; is desirable. IMO, If we are exposing this &lt;ul&gt; at all, it should be a list
&gt; (empty list), not a generic group.
That one is hidden (not visibly rendered, same for its descendants) but &quot;ARIA visible&quot; (aria-hidden=&quot;false&quot;). Because nothing is rendered, it also fails the heuristics for &quot;is this a list&quot; (as it should). It&apos;s likely that we need to remove this entire notion of exposing ARIA visible (non-rendered) things anyways -- no other browser does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1958338</commentid>
    <comment_count>14</comment_count>
      <attachid>466511</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-26 18:28:06 -0700</bug_when>
    <thetext>Created attachment 466511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1958538</commentid>
    <comment_count>15</comment_count>
      <attachid>466526</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-28 12:59:35 -0700</bug_when>
    <thetext>Created attachment 466526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1958553</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-05-28 17:58:26 -0700</bug_when>
    <thetext>Committed 264644@main (ac7dd8d670b1): &lt;https://commits.webkit.org/264644@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 466526.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466397</attachid>
            <date>2023-05-17 23:35:02 -0700</date>
            <delta_ts>2023-05-20 11:26:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256950-20230517233502.patch</filename>
            <type>text/plain</type>
            <size>28974</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBhYTMzMWRkNGY4M2FhNTBlY2NiNGYzNWIzZGM5YjEzMjg0MDAzNDY2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCAxNyBNYXkgMjAyMyAyMzoyMzo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFYOiBk
aXNwbGF5OmNvbnRlbnRzIGxpc3RzIGRvbid0IHJldHVybiB0aGUgY29ycmVjdCBzdWJyb2xlCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2OTUwIHJkYXI6Ly9wcm9i
bGVtLzEwOTQ5ODQyMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXaXRoIHRoaXMgcGF0
Y2gsIGFueSBsaXN0LXR5cGUgZWxlbWVudCAob2wsIHVsLCBkbCwgcm9sZT0ibGlzdCIsIGV0YykK
d2l0aCBkaXNwbGF5OmNvbnRlbnRzIHdpbGwgbm93IHByb3Blcmx5IGJlIGNyZWF0ZWQgYXMgYW4K
QWNjZXNzaWJpbGl0eUxpc3QgaW5zdGFuY2UgcmF0aGVyIHRoYW4gYW4gQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuCgpUaGUgc2lnbmlmaWNhbnQgZWZmZWN0cyBvZiB0aGlzIGFyZToKICAxLiBUaGUg
Y29ycmVjdCBzdWJyb2xlIGlzIG5vdyBjb21wdXRlZCBmb3IgdGhlc2UgZWxlbWVudHMsIHdoaWNo
IGlzCiAgICAgaW1wb3J0YW50IGJlY2F1c2Ugc29tZSBBVHMgZG8gY2hhbmdlIHRoZWlyIGJlaGF2
aW9yIGJhc2VkIG9uIHRoZQogICAgIHZhcmlvdXMgbGlzdCBzdWJyb2xlcy4KICAyLiBUaGVzZSBl
bGVtZW50cyBub3cgdXNlIHRoZSBBY2Nlc3NpYmlsaXR5TGlzdDo6ZGV0ZXJtaW5lQWNjZXNzaWJp
bGl0eVJvbGUoKQogICAgICJpcyB0aGlzIGFuIEFYIGxpc3Qgb3IgbGF5b3V0LW9ubHkgbGlzdCIg
aGV1cmlzdGljcy4KCkluIHN1cHBvcnQgb2YgIzIsIHNvbWUgdGVzdHMgaGFkIHRvIGJlIG1vZGlm
aWVkIHRvIGhhdmUgcmVuZGVyZWQgbGlzdCBpdGVtcyBpbgpvcmRlciB0byBzdGlsbCBiZSBjb25z
aWRlcmVkIGxpc3RzLgoKV2UgaW1wbGVtZW50IHRoaXMgYnkgYWxsb3dpbmcgdGhlIGNyZWF0aW9u
IG9mIEFjY2Vzc2liaWxpdHlMaXN0IHdpdGggb25seSBhIG5vZGUKaW5zdGVhZCBvZiByZXF1aXJp
bmcgYSByZW5kZXJlci4KClRoZSBvdGhlciwgbW9yZSBzaWduaWZpY2FudCBjaGFuZ2UgaW50cm9k
dWNlZCBpbiB0aGlzIHBhdGNoIGlzIHRoYXQgbWFueQpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
IG1ldGhvZHMgYXJlIG5vdyBjaGFuZ2VkIHRvIGZhbGxiYWNrIHRvIHRoZQpjb3JyZXNwb25kaW5n
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0IGltcGxlbWVudGF0aW9uIHdoZW4gdGhlcmUgaXMgbm8K
cmVuZGVyZXIgcmF0aGVyIHRoYW4gcmV0dXJuaW5nIGVhcmx5LgoKVGhpcyBpcyByZXF1aXJlZCBi
ZWNhdXNlIHdlIGhhdmUgbWFueSBzdWJjbGFzc2VzIG9mIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QKdGhhdCBhbHNvIG5lZWQgdG8gc3VwcG9ydCBkaXNwbGF5OmNvbnRlbnRzIChBY2Nlc3NpYmls
aXR5TGlzdCBpcyBvbmUgb2YgdGhlc2UpLgpNYWtpbmcgdGhpcyBjaGFuZ2Ugd2Vha2VucyBvdXIg
ZGVmaW5pdGlvbiBvZiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IGZyb20KInNob3VsZCBoYXZl
IGEgcmVuZGVyZXIiIHRvICJzaG91bGQgaGF2ZSBhIHJlbmRlcmVyIG9yIGEgbm9kZSIuCgoqIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMuaHRtbDoK
KiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRl
bnRzLWVsZW1lbnQtcm9sZXMuaHRtbDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Fj
Y2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpz
aG91bGRDcmVhdGVBY2Nlc3NpYmlsaXR5TGlzdCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpj
cmVhdGVPYmplY3RGcm9tUmVuZGVyZXIpOgooV2ViQ29yZTo6Y3JlYXRlRnJvbU5vZGUpOgooV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxp
c3Q6OkFjY2Vzc2liaWxpdHlMaXN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0OjpjcmVh
dGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaDoK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjaGVja2JveE9yUmFkaW9SZWN0
IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVtZW50UmVjdCBj
b25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRyZW4pOgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbiBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udmVydEZy
YW1lVG9TcGFjZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Zmlyc3RDaGlsZCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpsYXN0Q2hpbGQgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6cHJldmlvdXNTaWJsaW5nIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnBhcmVudE9iamVjdCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6Om5vZGUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3RyaW5nVmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24gY29uc3QpOgooV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29u
c3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnQgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnRGcmFtZVZpZXcg
Y29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4p
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2hlY2tib3hPclJhZGlvUmVj
dCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpl
bGVtZW50UmVjdCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgotLS0KIC4uLi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDE5ICsrKy0tCiAuLi4vYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAgICAgICAgfCAxMCArKysKIC4uLi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaCB8ICAzICsKIC4uLi9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCB8IDM2ICsrKysrKy0tLQogLi4uL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCAgIHwgIDMgKy0KIC4uLi9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwICAgICB8ICAyICstCiAuLi4vQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgICAgICAgICAgfCA3OCArKysrKysrKy0tLS0tLS0t
LS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggfCAgNiAr
LQogLi4uL2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0bWwgICAgICAgICAgIHwgIDQgKy0K
IC4uLmlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCB8ICA4ICsrCiAu
Li4vZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwgICAgICAgfCAgNyArLQogLi4u
L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCAgIHwgMTMgKystLQogMTIg
ZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDc1IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDJhMmY4
MzFmMWZmZC4uNDliNDdmOWE0ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTU5MSwxNSArNTkxLDIwIEBAIHN0YXRpYyBib29sIGlz
U2ltcGxlSW1hZ2UoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkQ3JlYXRlQWNjZXNzaWJpbGl0eUxpc3QoTm9kZSog
bm9kZSkKK3sKKyAgICAvLyBJZiB0aGUgbm9kZSBpcyBhcmlhIHJvbGU9Imxpc3QiIG9yIHRoZSBh
cmlhIHJvbGUgaXMgZW1wdHkgYW5kIGl0cyBhCisgICAgLy8gdWwvb2wvZGwgdHlwZSAoaXQgc2hv
dWxkbid0IGJlIGEgbGlzdCBpZiBhcmlhIHNheXMgb3RoZXJ3aXNlKS4KKyAgICByZXR1cm4gKG5v
ZGUgJiYgKChub2RlSGFzUm9sZShub2RlLCAibGlzdCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwg
ImRpcmVjdG9yeSJfcykpCisgICAgICAgIHx8IChub2RlSGFzUm9sZShub2RlLCBudWxsQXRvbSgp
KSAmJiAobm9kZS0+aGFzVGFnTmFtZSh1bFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShvbFRhZykg
fHwgbm9kZS0+aGFzVGFnTmFtZShkbFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShtZW51VGFnKSkp
KSk7Cit9CisKIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBBWE9iamVjdENhY2hlOjpjcmVhdGVP
YmplY3RGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICAvLyBGSVhN
RTogSG93IGNvdWxkIHJlbmRlcmVyLT5ub2RlKCkgZXZlciBub3QgYmUgYW4gRWxlbWVudD8KICAg
ICBOb2RlKiBub2RlID0gcmVuZGVyZXItPm5vZGUoKTsKIAotICAgIC8vIElmIHRoZSBub2RlIGlz
IGFyaWEgcm9sZT0ibGlzdCIgb3IgdGhlIGFyaWEgcm9sZSBpcyBlbXB0eSBhbmQgaXRzIGEKLSAg
ICAvLyBtZW51L3VsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBiZSBhIGxpc3QgaWYgYXJpYSBz
YXlzIG90aGVyd2lzZSkuCi0gICAgaWYgKG5vZGUgJiYgKChub2RlSGFzUm9sZShub2RlLCAibGlz
dCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImRpcmVjdG9yeSJfcykpCi0gICAgICAgIHx8IChu
b2RlSGFzUm9sZShub2RlLCBudWxsQXRvbSgpKSAmJiAobm9kZS0+aGFzVGFnTmFtZShtZW51VGFn
KSB8fCBub2RlLT5oYXNUYWdOYW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9sVGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKGRsVGFnKSkpKSkKKyAgICBpZiAoc2hvdWxkQ3JlYXRlQWNjZXNz
aWJpbGl0eUxpc3Qobm9kZSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3Jl
YXRlKHJlbmRlcmVyKTsKIAogICAgIC8vIGFyaWEgdGFibGVzCkBAIC02NzYsNiArNjgxLDggQEAg
UmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZyb21S
ZW5kZXJlcihSZW5kZXJPYmplY3QqIHIKIAogc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0
PiBjcmVhdGVGcm9tTm9kZShOb2RlJiBub2RlKQogeworICAgIGlmIChzaG91bGRDcmVhdGVBY2Nl
c3NpYmlsaXR5TGlzdCgmbm9kZSkpCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TGlzdDo6
Y3JlYXRlKG5vZGUpOwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRl
KG5vZGUpOwogfQogCkBAIC03MzYsNyArNzQzLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhP
YmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoTm9kZSogbm9kZSkKIAogICAgIGlmICghbm9kZS0+cGFy
ZW50RWxlbWVudCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAKKwogICAgIGJvb2wg
aXNPcHRpb25FbGVtZW50ID0gaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KCpub2RlKTsKICAgICBpZiAo
aXNPcHRpb25FbGVtZW50IHx8IGlzPEhUTUxPcHRHcm91cEVsZW1lbnQ+KCpub2RlKSkgewogICAg
ICAgICBhdXRvIHNlbGVjdCA9IGlzT3B0aW9uRWxlbWVudApAQCAtNzgyLDcgKzc4OSw3IEBAIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKE5vZGUqIG5vZGUp
CiAgICAgLy8gaXQgd2lsbCBkaXNhcHBlYXIgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGZpbmlzaGVk
LCBsZWFkaW5nIHRvIGEgdXNlLWFmdGVyLWZyZWUuCiAgICAgaWYgKG5ld09iamVjdC0+aXNEZXRh
Y2hlZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAKKwogICAgIHJldHVybiBuZXdP
YmplY3QuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGlzdC5jcHAKaW5kZXggMjg4NWVlNjgzOGVhLi43OGMzMjcwZTc4NGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3Qu
Y3BwCkBAIC00Niw2ICs0NiwxMSBAQCBBY2Nlc3NpYmlsaXR5TGlzdDo6QWNjZXNzaWJpbGl0eUxp
c3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKIH0KIAorQWNjZXNzaWJpbGl0eUxpc3Q6OkFj
Y2Vzc2liaWxpdHlMaXN0KE5vZGUmIG5vZGUpCisgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0KG5vZGUpCit7Cit9CisKIEFjY2Vzc2liaWxpdHlMaXN0Ojp+QWNjZXNzaWJpbGl0eUxpc3Qo
KSA9IGRlZmF1bHQ7CiAKIFJlZjxBY2Nlc3NpYmlsaXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6
OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQpAQCAtNTMsNiArNTgsMTEgQEAgUmVmPEFj
Y2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3QocmVu
ZGVyZXIpKTsKIH0KIAorUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5TGlzdDo6
Y3JlYXRlKE5vZGUmIG5vZGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJp
bGl0eUxpc3Qobm9kZSkpOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlMaXN0Ojpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWRCeURlZmF1bHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxpc3QuaAppbmRleCAzYTA2MWU4ZGQ1OTguLjcwZjA5YzllYzc5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApA
QCAtMzUsMTEgKzM1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxp
dHlMaXN0IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUxpc3Q+IGNyZWF0ZShSZW5kZXJPYmplY3Qq
KTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBjcmVhdGUoTm9kZSYpOwogICAg
IHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlMaXN0KCk7CiAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSBy
b2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNz
aWJpbGl0eUxpc3QoUmVuZGVyT2JqZWN0Kik7CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxp
c3QoTm9kZSYpOwogICAgIGJvb2wgaXNMaXN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIGJvb2wgaXNVbm9yZGVyZWRMaXN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9v
bCBpc09yZGVyZWRMaXN0KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0OSw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUo
KSBvdmVycmlkZTsKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5
Um9sZUlubmVyKCk7CiAgICAgYm9vbCBjaGlsZEhhc1BzZXVkb1Zpc2libGVMaXN0SXRlbU1hcmtl
cnMoTm9kZSopOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA5MWM2NzM5NzZhNTQuLmQ0ZDA0
NzlmY2YxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTIxNSw4ICsyMTUsMjcgQEAgQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhcmVudE9iamVjdCgpIGNvbnN0
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0xheW91dFJlY3QgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmNoZWNrYm94T3JSYWRpb1JlY3QoKSBjb25zdAoreworICAgIGF1dG8qIGxhYmVsID0g
bGFiZWxGb3JFbGVtZW50KGR5bmFtaWNEb3duY2FzdDxFbGVtZW50Pihub2RlKCkpKTsKKyAgICBp
ZiAoIWxhYmVsIHx8ICFsYWJlbC0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIGJvdW5kaW5n
Qm94UmVjdCgpOworCisgICAgYXV0byogY2FjaGUgPSBheE9iamVjdENhY2hlKCk7CisgICAgaWYg
KCFjYWNoZSkKKyAgICAgICAgcmV0dXJuIGJvdW5kaW5nQm94UmVjdCgpOworCisgICAgLy8gQSBj
aGVja2JveCBvciByYWRpbyBidXR0b24gc2hvdWxkIGVuY29tcGFzcyBpdHMgbGFiZWwuCisgICAg
YXV0byBsYWJlbFJlY3QgPSBjYWNoZS0+Z2V0T3JDcmVhdGUobGFiZWwpLT5lbGVtZW50UmVjdCgp
OworICAgIGxhYmVsUmVjdC51bml0ZShib3VuZGluZ0JveFJlY3QoKSk7CisgICAgcmV0dXJuIGxh
YmVsUmVjdDsKK30KKwogTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZWxlbWVu
dFJlY3QoKSBjb25zdAogeworICAgIGlmIChpc0NoZWNrYm94T3JSYWRpbygpKQorICAgICAgICBy
ZXR1cm4gY2hlY2tib3hPclJhZGlvUmVjdCgpOworCiAgICAgcmV0dXJuIGJvdW5kaW5nQm94UmVj
dCgpOwogfQogCkBAIC00OTAsMTMgKzUwOSwxMyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjphZGRDaGlsZHJlbigpCiB7CiAgICAgLy8gSWYgdGhlIG5lZWQgdG8gYWRkIG1vcmUgY2hp
bGRyZW4gaW4gYWRkaXRpb24gdG8gZXhpc3RpbmcgY2hpbGRyZW4gYXJpc2VzLCAKICAgICAvLyBj
aGlsZHJlbkNoYW5nZWQgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQsIGxlYXZpbmcgdGhlIG9iamVj
dCB3aXRoIG5vIGNoaWxkcmVuLgotICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsg
CisgICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpOwogICAgIAotICAgIGlmICghbV9u
b2RlKQotICAgICAgICByZXR1cm47Ci0KICAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVl
OwogCisgICAgaWYgKCFjYW5IYXZlQ2hpbGRyZW4oKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
Ly8gVGhlIG9ubHkgdGltZSB3ZSBhZGQgY2hpbGRyZW4gZnJvbSB0aGUgRE9NIHRyZWUgdG8gYSBu
b2RlIHdpdGggYSByZW5kZXJlciBpcyB3aGVuIGl0J3MgYSBjYW52YXMuCiAgICAgaWYgKHJlbmRl
cmVyKCkgJiYgIW5vZGUoKS0+aGFzVGFnTmFtZShjYW52YXNUYWcpKQogICAgICAgICByZXR1cm47
CkBAIC01MDcsMTcgKzUyNiwxNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphZGRD
aGlsZHJlbigpCiAKICAgICBmb3IgKGF1dG8qIGNoaWxkID0gbm9kZSgpLT5maXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAgICBhZGRDaGlsZChv
YmplY3RDYWNoZS0+Z2V0T3JDcmVhdGUoY2hpbGQpKTsKLSAgICAKKwogICAgIHVwZGF0ZU93bmVk
Q2hpbGRyZW4oKTsKICAgICBtX3N1YnRyZWVEaXJ0eSA9IGZhbHNlOwogfQogCiBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogewotICAgIC8vIElm
IHRoaXMgaXMgYW4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCwgdGhlbiBpdCdzIG9rYXkgaWYg
dGhpcyBvYmplY3QKLSAgICAvLyBkb2Vzbid0IGhhdmUgYSBub2RlIC0gdGhlcmUgYXJlIHNvbWUg
cmVuZGVyZXJzIHRoYXQgZG9uJ3QgaGF2ZSBhc3NvY2lhdGVkCi0gICAgLy8gbm9kZXMsIGxpa2Ug
c2Nyb2xsIGFyZWFzIGFuZCBjc3MtZ2VuZXJhdGVkIHRleHQuCi0gICAgaWYgKCFub2RlKCkgJiYg
IWlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpKQorICAgIGlmICghcmVuZGVyZXIoKSAmJiAh
bm9kZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBXaGVuIDxub3NjcmlwdD4g
aXMgbm90IGJlaW5nIHVzZWQgKGl0cyByZW5kZXJlcigpID09IDApLCBpZ25vcmUgaXRzIGNoaWxk
cmVuLgpAQCAtNTcyLDYgKzU4OCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNv
bXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAvLyBpdCdzIGJlZW4gaW5p
dGlhbGl6ZWQuCiAgICAgQVNTRVJUKG1faW5pdGlhbGl6ZWQpOwogI2VuZGlmCisgICAgaWYgKCFu
b2RlKCkpCisgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gSGFuZGxlIG5vbi1yZW5kZXJl
ZCB0ZXh0IHRoYXQgaXMgZXhwb3NlZCB0aHJvdWdoIGFyaWEtaGlkZGVuPWZhbHNlLgogICAgIGlm
IChub2RlKCkgJiYgbm9kZSgpLT5pc1RleHROb2RlKCkgJiYgIXJlbmRlcmVyKCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaAppbmRleCA3ZTMzMzgzYmVkYzEuLjU2ZDUzYmVkNzUzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAt
MTYxLDYgKzE2MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xl
IGRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eVJv
bGUgcmVtYXBBcmlhUm9sZUR1ZVRvUGFyZW50KEFjY2Vzc2liaWxpdHlSb2xlKSBjb25zdDsKIAor
ICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIGFkZENoaWxkcmVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhckNoaWxkcmVu
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkgb3ZlcnJp
ZGU7CkBAIC0yMTAsMTMgKzIxMSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgdmlzaWJsZVRleHQo
VmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0OwogICAgIFN0cmluZyBhbHRlcm5hdGl2
ZVRleHRGb3JXZWJBcmVhKCkgY29uc3Q7CiAgICAgdm9pZCBhcmlhTGFiZWxlZEJ5VGV4dChWZWN0
b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7Ci0gICAgYm9vbCBjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgdXNlc0FsdFRhZ0ZvclRl
eHRDb21wdXRhdGlvbigpIGNvbnN0OwogICAgIGJvb2wgcm9sZUlnbm9yZXNUaXRsZSgpIGNvbnN0
OwogICAgIGJvb2wgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKFN0ZXBBY3Rpb24pOwog
ICAgIHZvaWQgc2V0Tm9kZVZhbHVlKFN0ZXBBY3Rpb24sIGZsb2F0KTsKICAgICBib29sIHBlcmZv
cm1EaXNtaXNzQWN0aW9uKCkgZmluYWw7CiAgICAgYm9vbCBoYXNUZXh0QWx0ZXJuYXRpdmUoKSBj
b25zdDsKKyAgICBMYXlvdXRSZWN0IGNoZWNrYm94T3JSYWRpb1JlY3QoKSBjb25zdDsKIAogICAg
IHZvaWQgc2V0TmVlZHNUb1VwZGF0ZUNoaWxkcmVuKCkgb3ZlcnJpZGUgeyBtX2NoaWxkcmVuRGly
dHkgPSB0cnVlOyB9CiAgICAgYm9vbCBuZWVkc1RvVXBkYXRlQ2hpbGRyZW4oKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2NoaWxkcmVuRGlydHk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDJmNjdjMGMyMzcy
Zi4uYjMwZWExZWFhMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTQ0OCw3ICs0NDgsNyBAQCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwcmV2aW91c1NpYmxpbmdVbmlnbm9yZWQo
aW50IGxpbWl0KSBjbwogRmxvYXRSZWN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbnZlcnRGcmFt
ZVRvU3BhY2UoY29uc3QgRmxvYXRSZWN0JiBmcmFtZVJlY3QsIEFjY2Vzc2liaWxpdHlDb252ZXJz
aW9uU3BhY2UgY29udmVyc2lvblNwYWNlKSBjb25zdAogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7Ci0gICAgCisKICAgICAvLyBGaW5kIHRoZSBhcHByb3ByaWF0ZSBzY3JvbGwgdmlldyB0
byB1c2UgdG8gY29udmVydCB0aGUgY29udGVudHMgdG8gdGhlIHdpbmRvdy4KICAgICBjb25zdCBh
dXRvIHBhcmVudEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3ID0gYW5jZXN0b3JBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldyhmYWxzZSAvKiBpbmNsdWRlU2VsZiAqLyk7CiAgICAgYXV0byogcGFyZW50U2Ny
b2xsVmlldyA9IHBhcmVudEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3ID8gcGFyZW50QWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXctPnNjcm9sbFZpZXcoKSA6IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCBmNTcyYjcxMTY1MGEuLjA4MmNjY2FlNGRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CkBAIC0xMzIsNiArMTMyLDE0IEBAIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICNlbmRpZgogfQogCitB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KE5vZGUm
IG5vZGUpCisgICAgOiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCgmbm9kZSkKKyAgICAsIG1fcmVu
ZGVyZXIobm9kZS5yZW5kZXJlcigpKQoreworICAgIC8vIFdlIHNob3VsZCBvbmx5IGV2ZXIgY3Jl
YXRlIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2l0aCBhIG5vZGUgaWYgdGhhdCBub2RlIGhh
cyBubyByZW5kZXJlciAoaS5lLiBiZWNhdXNlIG9mIGRpc3BsYXk6Y29udGVudHMpLgorICAgIEFT
U0VSVCghbm9kZS5yZW5kZXJlcigpKTsKK30KKwogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
fkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKQogewogICAgIEFTU0VSVChpc0RldGFjaGVkKCkp
OwpAQCAtMjE4LDcgKzIyNiw3IEBAIHN0YXRpYyBpbmxpbmUgUmVuZGVyT2JqZWN0KiBsYXN0Q2hp
bGRDb25zaWRlcmluZ0NvbnRpbnVhdGlvbihSZW5kZXJPYmplY3QmIHJlbmRlCiBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpmaXJzdENoaWxkKCkgY29uc3QK
IHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmZpcnN0Q2hpbGQoKTsKICAgICAKICAg
ICBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGQgPSBmaXJzdENoaWxkQ29uc2lkZXJpbmdDb250aW51
YXRpb24oKm1fcmVuZGVyZXIpOwogCkBAIC0yMzYsNyArMjQ0LDcgQEAgQWNjZXNzaWJpbGl0eU9i
amVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Zmlyc3RDaGlsZCgpIGNvbnN0CiBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsYXN0Q2hpbGQoKSBj
b25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6bGFzdENoaWxkKCk7CiAKICAg
ICBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZCA9IGxhc3RDaGlsZENvbnNpZGVyaW5nQ29udGludWF0
aW9uKCptX3JlbmRlcmVyKTsKIApAQCAtMzEzLDcgKzMyMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBmaXJzdENoaWxkSXNJbmxpbmVDb250aW51YXRpb24oUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIp
CiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwcmV2aW91
c1NpYmxpbmcoKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cHJldmlv
dXNTaWJsaW5nKCk7CiAKICAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzU2libGluZyA9IG51bGxw
dHI7CiAKQEAgLTM2MCw3ICszNjgsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGxhc3RDaGlsZEhh
c0NvbnRpbnVhdGlvbihSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKIAogQWNjZXNzaWJpbGl0eU9i
amVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bmV4dFNpYmxpbmcoKSBjb25zdAogewot
ICAgIGlmICghbV9yZW5kZXJlciB8fCBpczxSZW5kZXJWaWV3PigqbV9yZW5kZXJlcikpCisgICAg
aWYgKCFtX3JlbmRlcmVyKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
Om5leHRTaWJsaW5nKCk7CisKKyAgICBpZiAoaXM8UmVuZGVyVmlldz4obV9yZW5kZXJlcikpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZyA9
IG51bGxwdHI7CkBAIC00ODMsNyArNDk0LDcgQEAgUmVuZGVyT2JqZWN0KiBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpyZW5kZXJQYXJlbnRPYmplY3QoKSBjb25zdAogICAgICAgICAKICAgICBy
ZXR1cm4gcGFyZW50OwogfQotICAgIAorCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0CiB7CiAgICAgQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCk7CkBAIC01MTIsNyArNTIzLDcgQEAg
QWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2Jq
ZWN0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRpc3BsYXlDb250ZW50c1BhcmVudDsKIAogICAg
IGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFyZW50T2JqZWN0KCk7CiAKICAgICBXZWFrUHRy
IGNhY2hlID0gYXhPYmplY3RDYWNoZSgpOwogICAgIGlmICghY2FjaGUpCkBAIC02MTQsNyArNjI1
LDcgQEAgRWxlbWVudCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YW5jaG9yRWxlbWVudCgp
IGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGVscFRleHQoKSBjb25z
dAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpoZWxwVGV4dCgpOwogCiAgICAgY29uc3Qg
YXV0byYgYXJpYUhlbHAgPSBnZXRBdHRyaWJ1dGUoYXJpYV9oZWxwQXR0cik7CiAgICAgaWYgKCFh
cmlhSGVscC5pc0VtcHR5KCkpCkBAIC02NTEsNyArNjYyLDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmhlbHBUZXh0KCkgY29uc3QKIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50
TW9kZSBtb2RlKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJu
IFN0cmluZygpOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRV
bmRlckVsZW1lbnQobW9kZSk7CiAKICAgICBpZiAoaXM8UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w+
KCptX3JlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckZpbGVVcGxvYWRD
b250cm9sPigqbV9yZW5kZXJlcikuYnV0dG9uVmFsdWUoKTsKQEAgLTc0NSw4ICs3NTYsOCBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNob3VsZEdldFRleHRGcm9tTm9kZShBY2Nl
c3NpYmlsaXR5VGV4dFVuZGVyRWxlbQogTm9kZSogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
bm9kZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICBpZiAobV9yZW5kZXJlci0+aXNSZW5kZXJWaWV3KCkpCisgICAgICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6bm9kZSgpOworICAgIGlmIChVTkxJS0VMWShtX3Jl
bmRlcmVyLT5pc1JlbmRlclZpZXcoKSkpCiAgICAgICAgIHJldHVybiAmbV9yZW5kZXJlci0+ZG9j
dW1lbnQoKTsKICAgICByZXR1cm4gbV9yZW5kZXJlci0+bm9kZSgpOwogfSAgICAKQEAgLTc1NCw3
ICs3NjUsNyBAQCBOb2RlKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpub2RlKCkgY29uc3QK
IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnN0cmluZ1ZhbHVlKCk7CiAKICAgICBpZiAoaXNT
dGF0aWNUZXh0KCkgfHwgaXNUZXh0Q29udHJvbCgpIHx8IGlzU2VjdXJlRmllbGQoKSkKICAgICAg
ICAgcmV0dXJuIHRleHQoKTsKQEAgLTgyNiw3ICs4MzcsNyBAQCBMYXlvdXRSZWN0IEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0CiAgICAgUmVuZGVyT2Jq
ZWN0KiBvYmogPSByZW5kZXJlcigpOwogICAgIAogICAgIGlmICghb2JqKQotICAgICAgICByZXR1
cm4gTGF5b3V0UmVjdCgpOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmJvdW5kaW5nQm94UmVjdCgpOwogICAgIAogICAgIGlmIChvYmotPm5vZGUoKSkgLy8gSWYgd2Ug
YXJlIGEgY29udGludWF0aW9uLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1c2UgdGhlIHByaW1h
cnkgcmVuZGVyZXIuCiAgICAgICAgIG9iaiA9IG9iai0+bm9kZSgpLT5yZW5kZXJlcigpOwpAQCAt
ODYwLDI5ICs4NzEsNiBAQCBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmJv
dW5kaW5nQm94UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KICAgICAKLUxheW91
dFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2hlY2tib3hPclJhZGlvUmVjdCgpIGNv
bnN0Ci17Ci0gICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgp
OwotICAgIAotICAgIEhUTUxMYWJlbEVsZW1lbnQqIGxhYmVsID0gbGFiZWxGb3JFbGVtZW50KGRv
d25jYXN0PEVsZW1lbnQ+KG1fcmVuZGVyZXItPm5vZGUoKSkpOwotICAgIGlmICghbGFiZWwgfHwg
IWxhYmVsLT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7Ci0g
ICAgCi0gICAgTGF5b3V0UmVjdCBsYWJlbFJlY3QgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3Jl
YXRlKGxhYmVsKS0+ZWxlbWVudFJlY3QoKTsKLSAgICBsYWJlbFJlY3QudW5pdGUoYm91bmRpbmdC
b3hSZWN0KCkpOwotICAgIHJldHVybiBsYWJlbFJlY3Q7Ci19Ci0KLUxheW91dFJlY3QgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZWxlbWVudFJlY3QoKSBjb25zdAotewotICAgIC8vIGEgY2hl
Y2tib3ggb3IgcmFkaW8gYnV0dG9uIHNob3VsZCBlbmNvbXBhc3MgaXRzIGxhYmVsCi0gICAgaWYg
KGlzQ2hlY2tib3hPclJhZGlvKCkpCi0gICAgICAgIHJldHVybiBjaGVja2JveE9yUmFkaW9SZWN0
KCk7Ci0gICAgCi0gICAgcmV0dXJuIGJvdW5kaW5nQm94UmVjdCgpOwotfQotCiBib29sIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzUGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGlzPFJlbmRlclRleHQ+KHJlbmRlcmVyKCkpIHx8IChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCkt
PmlzU1ZHU2hhcGVPckxlZ2FjeVNWR1NoYXBlKCkpOwpAQCAtMTA2NCw3ICsxMDUyLDcgQEAgc3Rh
dGljIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gb2JqZWN0SW5jbHVzaW9uRnJvbUFsdFRl
eHQoY29uc3QgU3RyaW5nJiBhbHQKIAogQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkgY29uc3QKIHsK
LSAgICBpZiAoIW1fcmVuZGVyZXIpCisgICAgaWYgKCFtX3JlbmRlcmVyICYmICFub2RlKCkpCiAg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3Q7
CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVz
aW9uKCk7CiB9CkBAIC0xMDg3LDcgKzEwNzUsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICNlbmRpZgogCiAg
ICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
OwogCiAgICAgLy8gQ2hlY2sgZmlyc3QgaWYgYW55IG9mIHRoZSBjb21tb24gcmVhc29ucyBjYXVz
ZSB0aGlzIGVsZW1lbnQgdG8gYmUgaWdub3JlZC4KICAgICAvLyBUaGVuIHByb2Nlc3Mgb3RoZXIg
dXNlIGNhc2VzIHRoYXQgbmVlZCB0byBiZSBhcHBsaWVkIHRvIGFsbCB0aGUgdmFyaW91cyByb2xl
cwpAQCAtMTUyOCw3ICsxNTE2LDcgQEAgUmVuZGVyVmlldyogQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6dG9wUmVuZGVyZXIoKSBjb25zdAogRG9jdW1lbnQqIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmRvY3VtZW50KCk7CiAgICAgcmV0dXJuICZtX3JlbmRlcmVyLT5kb2N1bWVudCgpOwogfQogCkBA
IC0xNjAyLDkgKzE1OTAsOCBAQCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb2N1bWVudExpbgogTG9jYWxGcmFtZVZp
ZXcqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRvY3VtZW50RnJhbWVWaWV3KCkgY29uc3Qg
CiB7IAogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1lbnRGcmFtZVZpZXcoKTsK
IAotICAgIC8vIHRoaXMgaXMgdGhlIFJlbmRlck9iamVjdCdzIERvY3VtZW50J3MgRnJhbWUncyBM
b2NhbEZyYW1lVmlldwogICAgIHJldHVybiAmbV9yZW5kZXJlci0+dmlldygpLmZyYW1lVmlldygp
OwogfQogCkBAIC0yNjAzLDcgKzI1OTAsMTEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNyZWF0aW9uKCkKICAgICAKIHZvaWQgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4oKQogewotICAgIC8vIElmIHRoZSBuZWVk
IHRvIGFkZCBtb3JlIGNoaWxkcmVuIGluIGFkZGl0aW9uIHRvIGV4aXN0aW5nIGNoaWxkcmVuIGFy
aXNlcywgCisgICAgaWYgKFVOTElLRUxZKCFyZW5kZXJlcigpKSkgeworICAgICAgICBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRyZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAvLyBJZiB0aGUgbmVlZCB0byBhZGQgbW9yZSBjaGlsZHJlbiBpbiBhZGRpdGlvbiB0byBl
eGlzdGluZyBjaGlsZHJlbiBhcmlzZXMsCiAgICAgLy8gY2hpbGRyZW5DaGFuZ2VkIHNob3VsZCBo
YXZlIGJlZW4gY2FsbGVkLCBsZWF2aW5nIHRoZSBvYmplY3Qgd2l0aCBubyBjaGlsZHJlbi4KICAg
ICBBU1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7IAogCkBAIC0yNjQ1LDExICsyNjM2LDYg
QEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRDaGlsZHJlbigpCiAgICAgdXBk
YXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbigpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVu
ZGVyZXIgJiYgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpOwotfQot
CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldEFjY2Vzc2libGVOYW1lKGNvbnN0
IEF0b21TdHJpbmcmIG5hbWUpCiB7CiAgICAgLy8gU2V0dGluZyB0aGUgYWNjZXNzaWJsZSBuYW1l
IGNhbiBzdG9yZSB0aGUgdmFsdWUgaW4gdGhlIERPTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA0NmU5
NjU3MDBmMGQuLjFhNmNhODYzNTM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTg4LDcgKzg4LDYg
QEAgcHVibGljOgogICAgIEVsZW1lbnQqIGFuY2hvckVsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsK
ICAgICAKICAgICBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlbmRlcmVyLmdl
dCgpOyB9CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlckJveE1vZGVsT2JqZWN0KCkg
Y29uc3Q7CkBAIC0xMTcsNyArMTE2LDYgQEAgcHVibGljOgogICAgIGJvb2wgc2V0VmFsdWUoY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGFkZENoaWxkcmVuKCkgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFZpc2li
bGVQb3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JMaW5lKHVuc2ln
bmVkKSBjb25zdCBvdmVycmlkZTsKQEAgLTE0NSwxMSArMTQzLDEyIEBAIHB1YmxpYzoKIAogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoUmVuZGVyT2Jq
ZWN0Kik7CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChOb2RlJik7CiAg
ICAgdm9pZCBkZXRhY2hSZW1vdGVQYXJ0cyhBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUpIG92
ZXJyaWRlOwogICAgIFNjcm9sbGFibGVBcmVhKiBnZXRTY3JvbGxhYmxlQXJlYUlmU2Nyb2xsYWJs
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgSW50UG9pbnQmKSBj
b25zdCBvdmVycmlkZTsKICAgICAKLSAgICBib29sIGlzRGV0YWNoZWQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAhbV9yZW5kZXJlcjsgfQorICAgIGJvb2wgaXNEZXRhY2hlZCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICFtX3JlbmRlcmVyICYmIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0Rl
dGFjaGVkKCk7IH0KIAogICAgIGJvb2wgc2hvdWxkSWdub3JlQXR0cmlidXRlUm9sZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRldGVybWluZUFjY2Vzc2liaWxpdHlS
b2xlKCkgb3ZlcnJpZGU7CkBAIC0xNjksNyArMTY4LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG5v
ZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUqKSBjb25zdDsKICAgICBQYXRoIGVsZW1lbnRQYXRo
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgTGF5b3V0UmVjdCBjaGVja2JveE9yUmFkaW9S
ZWN0KCkgY29uc3Q7CiAgICAgQVhDb3JlT2JqZWN0KiBhY2Nlc3NpYmlsaXR5SW1hZ2VNYXBIaXRU
ZXN0KEhUTUxBcmVhRWxlbWVudCosIGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogYWNjZXNzaWJpbGl0eVBhcmVudEZvckltYWdlTWFwKEhUTUxNYXBFbGVt
ZW50KikgY29uc3Q7CiAgICAgQVhDb3JlT2JqZWN0KiBlbGVtZW50QWNjZXNzaWJpbGl0eUhpdFRl
c3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMuaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMuaHRtbAppbmRl
eCAwNWRlN2MzNTFhYTYuLmE5MDVhMDRlZDcwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMuaHRtbApAQCAtMTEx
LDcgKzExMSw5IEBACiAKICAgICA8b3V0cHV0IGhpZGRlbiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlk
PSJvdXRwdXQiPk91dHB1dDwvb3V0cHV0PgogCi0gICAgPG1lbnUgaGlkZGVuIGFyaWEtaGlkZGVu
PSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgorICAgIDxt
ZW51IGhpZGRlbiBhcmlhLWhpZGRlbj0iZmFsc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRv
b2xiYXIiPgorICAgICAgICA8bGkgaGlkZGVuIGFyaWEtaGlkZGVuPSJmYWxzZSI+SGVsbG8gd29y
bGQ8L2xpPgorICAgIDwvbWVudT4KIAogICAgIDxociBoaWRkZW4gYXJpYS1oaWRkZW49ImZhbHNl
IiBpZD0iaHIiPjwvaHI+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4
dAppbmRleCBmOGJkY2U0OWEwNTUuLjZmYTUzODVkOWE2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVt
ZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtNTEsNiArNTEsNyBAQCBUaGlzIHRlc3QgZW5zdXJl
cyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJv
bGUuCiAKIDxkbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkbCI+PC9kbD4KICAgICBBWFJvbGU6IEFY
TGlzdAorICAgIEFYU3Vicm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAogPGR0IGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9ImR0Ij48L2R0PgogICAgIEFYUm9sZTogQVhHcm91cApAQCAtMTAyLDYgKzEwMywx
MSBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50
cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiA8bWVudSBjbGFzcz0idGVzdGNhc2UiIHR5cGU9InRv
b2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KICAgICBBWFJvbGU6IEFYTGlzdAogICAg
IGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAor
Cis8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+PC9saT4KKyAgICBBWFJv
bGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3RpdGVtCiAKIDxuYXYgY2xh
c3M9InRlc3RjYXNlIiBpZD0ibmF2Ij48L25hdj4KICAgICBBWFJvbGU6IEFYR3JvdXAKQEAgLTEx
MSw2ICsxMTcsNyBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5
OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiA8b2wgY2xhc3M9InRlc3RjYXNlIiBp
ZD0ib2wiPjwvb2w+CiAgICAgQVhSb2xlOiBBWExpc3QKICAgICBjb21wdXRlZFJvbGVTdHJpbmc6
IGxpc3QKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExpc3QKIAogPGxpIGNsYXNzPSJ0ZXN0Y2Fz
ZSIgaWQ9Im9sLWxpLWVsZW1lbnQiPjwvbGk+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0xNTUs
NiArMTYyLDcgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0aCBDU1MgZGlzcGxheTog
Y29udGVudHMgaGF2ZSB0aGUgY29ycmVjdCByb2xlLgogPHVsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
InVsIj48L3VsPgogICAgIEFYUm9sZTogQVhMaXN0CiAgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBs
aXN0CisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0CiAKIDxsaSBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgogICAgIEFYUm9sZTogQVhHcm91cApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9s
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVt
ZW50LXJvbGVzLmh0bWwKaW5kZXggZjBjYzNmNjU0OWI0Li5iOTg0MGVlN2RhZWIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJv
bGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRz
LWVsZW1lbnQtcm9sZXMuaHRtbApAQCAtNjMsMTIgKzYzLDE2IEBACiAKICAgICA8bWFyayBjbGFz
cz0idGVzdGNhc2UiIGlkPSJtYXJrIj5NYXJrZWQgdGV4dDwvbWFyaz4KIAotICAgIDxtZW51IGNs
YXNzPSJ0ZXN0Y2FzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51Pgor
ICAgIDxtZW51IGNsYXNzPSJ0ZXN0Y2FzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJh
ciI+CisgICAgICAgIDxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij5IZWxs
byB3b3JsZDwvbGk+CisgICAgICAgIDxsaT5saXN0IGl0ZW0gd2l0aCByZW5kZXJlcjwvbGk+Cisg
ICAgPC9tZW51PgogCiAgICAgPG5hdiBjbGFzcz0idGVzdGNhc2UiIGlkPSJuYXYiPk5hdjwvbmF2
PgogCiAgICAgPG9sIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im9sIj4KICAgICAgICAgPGxpIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9Im9sLWxpLWVsZW1lbnQiPkhlbGxvIHdvcmxkPC9saT4KKyAgICAgICAg
PGxpPmxpc3QgaXRlbSB3aXRoIHJlbmRlcmVyPC9saT4KICAgICA8L29sPgogCiAgICAgPG91dHB1
dCBjbGFzcz0idGVzdGNhc2UiIGlkPSJvdXRwdXQiPk91dHB1dDwvb3V0cHV0PgpAQCAtODksNiAr
OTMsNyBAQAogCiAgICAgPHVsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsIj4KICAgICAgICAgPGxp
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPkhlbGxvIHdvcmxkPC9saT4KKyAg
ICAgICAgPGxpPmxpc3QgaXRlbSB3aXRoIHJlbmRlcmVyPC9saT4KICAgICA8L3VsPgogPC9kaXY+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0
eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IGYyODIzNDRhMjBhMC4uYzFiOWIxMDQ3Nzg4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxl
LWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50
eHQKQEAgLTExMywxNCArMTEzLDE1IEBAIFRoaXMgdGVzdCBlbnN1cmVzIEFSSUEgdmlzaWJsZSBl
bGVtZW50cyAoZS5nLiB0aG9zZSB3aXRoIGJvdGggYGhpZGRlbmAgYW5kIGBhcmlhCiAKIDxkbCBo
aWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iZGwiPjwvZGw+CiAgICAgQVhSb2xlOiBB
WExpc3QKKyAgICBBWFN1YnJvbGU6IEFYRGVzY3JpcHRpb25MaXN0CiAKIDxvbCBoaWRkZW49IiIg
YXJpYS1oaWRkZW49ImZhbHNlIiBpZD0ib2wiPjwvb2w+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAg
ICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1
YnJvbGU6IEFYQ29udGVudExpc3QKIAogPHVsIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2Ui
IGlkPSJ1bCI+PC91bD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0cmlu
ZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlz
dAogCiA8ZmlndXJlIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJmaWd1cmUiPjwv
ZmlndXJlPgogICAgIEFYUm9sZTogQVhHcm91cApAQCAtMjAyLDggKzIwMyw4IEBAIFRoaXMgdGVz
dCBlbnN1cmVzIEFSSUEgdmlzaWJsZSBlbGVtZW50cyAoZS5nLiB0aG9zZSB3aXRoIGJvdGggYGhp
ZGRlbmAgYW5kIGBhcmlhCiAgICAgQVhTdWJyb2xlOiBBWEFwcGxpY2F0aW9uU3RhdHVzCiAKIDxt
ZW51IGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51
LXRvb2xiYXIiPjwvbWVudT4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0
cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50
TGlzdAogCiA8aHIgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImhyIj4KICAgICBB
WFJvbGU6IEFYU3BsaXR0ZXIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466438</attachid>
            <date>2023-05-20 11:26:06 -0700</date>
            <delta_ts>2023-05-20 11:31:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256950-20230520112605.patch</filename>
            <type>text/plain</type>
            <size>29098</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSAxMDQ3ZTA3YjZkZDkwOGZhMmE1MmU0Y2Y5YmZhNWI1OWVjZjA1NmU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCAxNyBNYXkgMjAyMyAyMzoyMzo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFYOiBk
aXNwbGF5OmNvbnRlbnRzIGxpc3RzIGRvbid0IHJldHVybiB0aGUgY29ycmVjdCBzdWJyb2xlCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2OTUwIHJkYXI6Ly9wcm9i
bGVtLzEwOTQ5ODQyMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXaXRoIHRoaXMgcGF0
Y2gsIGFueSBsaXN0LXR5cGUgZWxlbWVudCAob2wsIHVsLCBkbCwgcm9sZT0ibGlzdCIsIGV0YykK
d2l0aCBkaXNwbGF5OmNvbnRlbnRzIHdpbGwgbm93IHByb3Blcmx5IGJlIGNyZWF0ZWQgYXMgYW4K
QWNjZXNzaWJpbGl0eUxpc3QgaW5zdGFuY2UgcmF0aGVyIHRoYW4gYW4gQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuCgpUaGUgc2lnbmlmaWNhbnQgZWZmZWN0cyBvZiB0aGlzIGFyZToKICAxLiBUaGUg
Y29ycmVjdCBzdWJyb2xlIGlzIG5vdyBjb21wdXRlZCBmb3IgdGhlc2UgZWxlbWVudHMsIHdoaWNo
IGlzCiAgICAgaW1wb3J0YW50IGJlY2F1c2Ugc29tZSBBVHMgZG8gY2hhbmdlIHRoZWlyIGJlaGF2
aW9yIGJhc2VkIG9uIHRoZQogICAgIHZhcmlvdXMgbGlzdCBzdWJyb2xlcy4KICAyLiBUaGVzZSBl
bGVtZW50cyBub3cgdXNlIHRoZSBBY2Nlc3NpYmlsaXR5TGlzdDo6ZGV0ZXJtaW5lQWNjZXNzaWJp
bGl0eVJvbGUoKQogICAgICJpcyB0aGlzIGFuIEFYIGxpc3Qgb3IgbGF5b3V0LW9ubHkgbGlzdCIg
aGV1cmlzdGljcy4KCkluIHN1cHBvcnQgb2YgIzIsIHNvbWUgdGVzdHMgaGFkIHRvIGJlIG1vZGlm
aWVkIHRvIGhhdmUgcmVuZGVyZWQgbGlzdCBpdGVtcyBpbgpvcmRlciB0byBzdGlsbCBiZSBjb25z
aWRlcmVkIGxpc3RzLgoKV2UgaW1wbGVtZW50IHRoaXMgYnkgYWxsb3dpbmcgdGhlIGNyZWF0aW9u
IG9mIEFjY2Vzc2liaWxpdHlMaXN0IHdpdGggb25seSBhIG5vZGUKaW5zdGVhZCBvZiByZXF1aXJp
bmcgYSByZW5kZXJlci4KClRoZSBvdGhlciwgbW9yZSBzaWduaWZpY2FudCBjaGFuZ2UgaW50cm9k
dWNlZCBpbiB0aGlzIHBhdGNoIGlzIHRoYXQgbWFueQpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
IG1ldGhvZHMgYXJlIG5vdyBjaGFuZ2VkIHRvIGZhbGxiYWNrIHRvIHRoZQpjb3JyZXNwb25kaW5n
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0IGltcGxlbWVudGF0aW9uIHdoZW4gdGhlcmUgaXMgbm8K
cmVuZGVyZXIgcmF0aGVyIHRoYW4gcmV0dXJuaW5nIGVhcmx5LgoKVGhpcyBpcyByZXF1aXJlZCBi
ZWNhdXNlIHdlIGhhdmUgbWFueSBzdWJjbGFzc2VzIG9mIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QKdGhhdCBhbHNvIG5lZWQgdG8gc3VwcG9ydCBkaXNwbGF5OmNvbnRlbnRzIChBY2Nlc3NpYmls
aXR5TGlzdCBpcyBvbmUgb2YgdGhlc2UpLgpNYWtpbmcgdGhpcyBjaGFuZ2Ugd2Vha2VucyBvdXIg
ZGVmaW5pdGlvbiBvZiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IGZyb20KInNob3VsZCBoYXZl
IGEgcmVuZGVyZXIiIHRvICJzaG91bGQgaGF2ZSBhIHJlbmRlcmVyIG9yIGEgbm9kZSIuCgoqIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMuaHRtbDoK
KiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRl
bnRzLWVsZW1lbnQtcm9sZXMuaHRtbDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Fj
Y2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpz
aG91bGRDcmVhdGVBY2Nlc3NpYmlsaXR5TGlzdCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpj
cmVhdGVPYmplY3RGcm9tUmVuZGVyZXIpOgooV2ViQ29yZTo6Y3JlYXRlRnJvbU5vZGUpOgooV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxp
c3Q6OkFjY2Vzc2liaWxpdHlMaXN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0OjpjcmVh
dGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaDoK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjaGVja2JveE9yUmFkaW9SZWN0
IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVtZW50UmVjdCBj
b25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRyZW4pOgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbiBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udmVydEZy
YW1lVG9TcGFjZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Zmlyc3RDaGlsZCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpsYXN0Q2hpbGQgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6cHJldmlvdXNTaWJsaW5nIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnBhcmVudE9iamVjdCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6Om5vZGUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3RyaW5nVmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24gY29uc3QpOgooV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29u
c3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnQgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnRGcmFtZVZpZXcg
Y29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4p
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2hlY2tib3hPclJhZGlvUmVj
dCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpl
bGVtZW50UmVjdCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgotLS0KIC4uLi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDE5ICsrKy0tCiAuLi4vYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAgICAgICAgfCAxMCArKysKIC4uLi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaCB8ICAyICsKIC4uLi9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCB8IDM2ICsrKysrKy0tCiAuLi4vYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oICAgfCAgMyArLQogLi4uL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgICAgIHwgIDIgKy0KIC4uLi9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICAgICAgICAgICB8IDgzICsrKysrKysrLS0tLS0tLS0t
LS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCB8IDEwICst
LQogLi4uL2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0bWwgICAgICAgICAgIHwgIDQgKy0K
IC4uLmlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCB8ICA4ICsrCiAu
Li4vZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwgICAgICAgfCAgNyArLQogLi4u
L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCAgIHwgMTMgKy0tCiAxMiBm
aWxlcyBjaGFuZ2VkLCAxMTcgaW5zZXJ0aW9ucygrKSwgODAgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMmEyZjgz
MWYxZmZkLi5iZjMyNDBiZWU5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNTkxLDE1ICs1OTEsMjAgQEAgc3RhdGljIGJvb2wgaXNT
aW1wbGVJbWFnZShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIHJldHVybiB0cnVl
OwogfQogCitzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlMaXN0KE5vZGUqIG5vZGUpCit7Cisg
ICAgLy8gSWYgdGhlIG5vZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlz
IGVtcHR5IGFuZCBpdCdzIGEKKyAgICAvLyB1bC9vbC9kbCB0eXBlIChpdCBzaG91bGRuJ3QgYmUg
YSBsaXN0IGlmIGFyaWEgc2F5cyBvdGhlcndpc2UpLgorICAgIHJldHVybiAobm9kZSAmJiAoKG5v
ZGVIYXNSb2xlKG5vZGUsICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5
Il9zKSkKKyAgICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKCkpICYmIChub2Rl
LT5oYXNUYWdOYW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9sVGFnKSB8fCBub2RlLT5o
YXNUYWdOYW1lKGRsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG1lbnVUYWcpKSkpKTsKK30KKwog
UmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZyb21S
ZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewogICAgIC8vIEZJWE1FOiBIb3cgY291
bGQgcmVuZGVyZXItPm5vZGUoKSBldmVyIG5vdCBiZSBhbiBFbGVtZW50PwogICAgIE5vZGUqIG5v
ZGUgPSByZW5kZXJlci0+bm9kZSgpOwogCi0gICAgLy8gSWYgdGhlIG5vZGUgaXMgYXJpYSByb2xl
PSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBpdHMgYQotICAgIC8vIG1lbnUv
dWwvb2wvZGwgdHlwZSAoaXQgc2hvdWxkbid0IGJlIGEgbGlzdCBpZiBhcmlhIHNheXMgb3RoZXJ3
aXNlKS4KLSAgICBpZiAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Il9zKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5Il9zKSkKLSAgICAgICAgfHwgKG5vZGVIYXNSb2xl
KG5vZGUsIG51bGxBdG9tKCkpICYmIChub2RlLT5oYXNUYWdOYW1lKG1lbnVUYWcpIHx8IG5vZGUt
Pmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xUYWcpIHx8IG5vZGUtPmhh
c1RhZ05hbWUoZGxUYWcpKSkpKQorICAgIGlmIChpc0FjY2Vzc2liaWxpdHlMaXN0KG5vZGUpKQog
ICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAg
ICAvLyBhcmlhIHRhYmxlcwpAQCAtNjc2LDYgKzY4MSw4IEBAIFJlZjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0PiBBWE9iamVjdENhY2hlOjpjcmVhdGVPYmplY3RGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0
KiByCiAKIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbU5vZGUoTm9k
ZSYgbm9kZSkKIHsKKyAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5TGlzdCgmbm9kZSkpCisgICAgICAg
IHJldHVybiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKG5vZGUpOwogICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKG5vZGUpOwogfQogCkBAIC03MzYsNyArNzQzLDcg
QEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoTm9kZSog
bm9kZSkKIAogICAgIGlmICghbm9kZS0+cGFyZW50RWxlbWVudCgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICAKKwogICAgIGJvb2wgaXNPcHRpb25FbGVtZW50ID0gaXM8SFRNTE9wdGlv
bkVsZW1lbnQ+KCpub2RlKTsKICAgICBpZiAoaXNPcHRpb25FbGVtZW50IHx8IGlzPEhUTUxPcHRH
cm91cEVsZW1lbnQ+KCpub2RlKSkgewogICAgICAgICBhdXRvIHNlbGVjdCA9IGlzT3B0aW9uRWxl
bWVudApAQCAtNzgyLDcgKzc4OSw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2Fj
aGU6OmdldE9yQ3JlYXRlKE5vZGUqIG5vZGUpCiAgICAgLy8gaXQgd2lsbCBkaXNhcHBlYXIgd2hl
biB0aGlzIGZ1bmN0aW9uIGlzIGZpbmlzaGVkLCBsZWFkaW5nIHRvIGEgdXNlLWFmdGVyLWZyZWUu
CiAgICAgaWYgKG5ld09iamVjdC0+aXNEZXRhY2hlZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICAKKwogICAgIHJldHVybiBuZXdPYmplY3QuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKaW5kZXggMjg4
NWVlNjgzOGVhLi43OGMzMjcwZTc4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCkBAIC00Niw2ICs0NiwxMSBAQCBBY2Nlc3Np
YmlsaXR5TGlzdDo6QWNjZXNzaWJpbGl0eUxpc3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsK
IH0KIAorQWNjZXNzaWJpbGl0eUxpc3Q6OkFjY2Vzc2liaWxpdHlMaXN0KE5vZGUmIG5vZGUpCisg
ICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KG5vZGUpCit7Cit9CisKIEFjY2Vzc2liaWxp
dHlMaXN0Ojp+QWNjZXNzaWJpbGl0eUxpc3QoKSA9IGRlZmF1bHQ7CiAKIFJlZjxBY2Nlc3NpYmls
aXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KQpAQCAtNTMsNiArNTgsMTEgQEAgUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5
TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQWNjZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsKIH0KIAorUmVmPEFjY2Vzc2liaWxp
dHlMaXN0PiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKE5vZGUmIG5vZGUpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3Qobm9kZSkpOworfQorCiBib29sIEFj
Y2Vzc2liaWxpdHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaAppbmRleCAzYTA2
MWU4ZGQ1OTguLjBlNDA4MGJmYTRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApAQCAtMzUsMTEgKzM1LDEzIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlMaXN0IGZpbmFsIDogcHVibGljIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0
eUxpc3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxp
dHlMaXN0PiBjcmVhdGUoTm9kZSYpOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlMaXN0KCk7
CiAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxpc3QoUmVuZGVyT2JqZWN0Kik7Cisg
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxpc3QoTm9kZSYpOwogICAgIGJvb2wgaXNMaXN0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNVbm9yZGVyZWRMaXN0
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc09yZGVyZWRMaXN0KCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDkxYzY3Mzk3NmE1NC4uMmU0ZDg3OTZiODI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcApAQCAtMjE1LDggKzIxNSwyNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAorTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2hlY2ti
b3hPclJhZGlvUmVjdCgpIGNvbnN0Cit7CisgICAgYXV0byogbGFiZWwgPSBsYWJlbEZvckVsZW1l
bnQoZHluYW1pY0Rvd25jYXN0PEVsZW1lbnQ+KG5vZGUoKSkpOworICAgIGlmICghbGFiZWwgfHwg
IWxhYmVsLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7CisK
KyAgICBhdXRvKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAg
ICAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7CisKKyAgICAvLyBBIGNoZWNrYm94IG9yIHJh
ZGlvIGJ1dHRvbiBzaG91bGQgZW5jb21wYXNzIGl0cyBsYWJlbC4KKyAgICBhdXRvIGxhYmVsUmVj
dCA9IGNhY2hlLT5nZXRPckNyZWF0ZShsYWJlbCktPmVsZW1lbnRSZWN0KCk7CisgICAgbGFiZWxS
ZWN0LnVuaXRlKGJvdW5kaW5nQm94UmVjdCgpKTsKKyAgICByZXR1cm4gbGFiZWxSZWN0OworfQor
CiBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVtZW50UmVjdCgpIGNvbnN0
CiB7CisgICAgaWYgKGlzQ2hlY2tib3hPclJhZGlvKCkpCisgICAgICAgIHJldHVybiBjaGVja2Jv
eE9yUmFkaW9SZWN0KCk7CisKICAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7CiB9CiAKQEAg
LTQ5MCwxMyArNTA5LDEzIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFkZENoaWxk
cmVuKCkKIHsKICAgICAvLyBJZiB0aGUgbmVlZCB0byBhZGQgbW9yZSBjaGlsZHJlbiBpbiBhZGRp
dGlvbiB0byBleGlzdGluZyBjaGlsZHJlbiBhcmlzZXMsIAogICAgIC8vIGNoaWxkcmVuQ2hhbmdl
ZCBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCwgbGVhdmluZyB0aGUgb2JqZWN0IHdpdGggbm8gY2hp
bGRyZW4uCi0gICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpOyAKKyAgICBBU1NFUlQo
IW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7CiAgICAgCi0gICAgaWYgKCFtX25vZGUpCi0gICAgICAg
IHJldHVybjsKLQogICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAKKyAgICBpZiAo
IWNhbkhhdmVDaGlsZHJlbigpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBUaGUgb25seSB0
aW1lIHdlIGFkZCBjaGlsZHJlbiBmcm9tIHRoZSBET00gdHJlZSB0byBhIG5vZGUgd2l0aCBhIHJl
bmRlcmVyIGlzIHdoZW4gaXQncyBhIGNhbnZhcy4KICAgICBpZiAocmVuZGVyZXIoKSAmJiAhbm9k
ZSgpLT5oYXNUYWdOYW1lKGNhbnZhc1RhZykpCiAgICAgICAgIHJldHVybjsKQEAgLTUwNyw3ICs1
MjYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphZGRDaGlsZHJlbigpCiAKICAg
ICBmb3IgKGF1dG8qIGNoaWxkID0gbm9kZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAgICBhZGRDaGlsZChvYmplY3RDYWNoZS0+Z2V0
T3JDcmVhdGUoY2hpbGQpKTsKLSAgICAKKwogICAgIHVwZGF0ZU93bmVkQ2hpbGRyZW4oKTsKICAg
ICBtX3N1YnRyZWVEaXJ0eSA9IGZhbHNlOwogfQpAQCAtNTE2LDggKzUzNSw5IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0CiB7CiAgICAgLy8g
SWYgdGhpcyBpcyBhbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LCB0aGVuIGl0J3Mgb2theSBp
ZiB0aGlzIG9iamVjdAogICAgIC8vIGRvZXNuJ3QgaGF2ZSBhIG5vZGUgLSB0aGVyZSBhcmUgc29t
ZSByZW5kZXJlcnMgdGhhdCBkb24ndCBoYXZlIGFzc29jaWF0ZWQKLSAgICAvLyBub2RlcywgbGlr
ZSBzY3JvbGwgYXJlYXMgYW5kIGNzcy1nZW5lcmF0ZWQgdGV4dC4KLSAgICBpZiAoIW5vZGUoKSAm
JiAhaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpCisgICAgLy8gbm9kZXMsIGxpa2Ugc2Ny
b2xsIGFyZWFzIGFuZCBjc3MtZ2VuZXJhdGVkIHRleHQuIEhvd2V2ZXIsIGlmIHRoZXJlIGFsc28K
KyAgICAvLyBubyByZW5kZXJlciwgd2Ugc2hvdWxkIGJhaWwuCisgICAgaWYgKCFyZW5kZXJlcigp
ICYmICFub2RlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFdoZW4gPG5vc2Ny
aXB0PiBpcyBub3QgYmVpbmcgdXNlZCAoaXRzIHJlbmRlcmVyKCkgPT0gMCksIGlnbm9yZSBpdHMg
Y2hpbGRyZW4uCkBAIC01NzIsNiArNTkyLDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgIC8vIGl0J3MgYmVl
biBpbml0aWFsaXplZC4KICAgICBBU1NFUlQobV9pbml0aWFsaXplZCk7CiAjZW5kaWYKKyAgICBp
ZiAoIW5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBIYW5kbGUgbm9uLXJl
bmRlcmVkIHRleHQgdGhhdCBpcyBleHBvc2VkIHRocm91Z2ggYXJpYS1oaWRkZW49ZmFsc2UuCiAg
ICAgaWYgKG5vZGUoKSAmJiBub2RlKCktPmlzVGV4dE5vZGUoKSAmJiAhcmVuZGVyZXIoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5oCmluZGV4IDdlMzMzODNiZWRjMS4uNTZkNTNiZWQ3NTMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
CkBAIC0xNjEsNiArMTYxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eVJvbGUgZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICBBY2Nlc3NpYmls
aXR5Um9sZSByZW1hcEFyaWFSb2xlRHVlVG9QYXJlbnQoQWNjZXNzaWJpbGl0eVJvbGUpIGNvbnN0
OwogCisgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQ2hp
bGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKSBv
dmVycmlkZTsKQEAgLTIxMCwxMyArMjExLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aXNpYmxl
VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7CiAgICAgU3RyaW5nIGFsdGVy
bmF0aXZlVGV4dEZvcldlYkFyZWEoKSBjb25zdDsKICAgICB2b2lkIGFyaWFMYWJlbGVkQnlUZXh0
KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKLSAgICBib29sIGNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCB1c2VzQWx0VGFn
Rm9yVGV4dENvbXB1dGF0aW9uKCkgY29uc3Q7CiAgICAgYm9vbCByb2xlSWdub3Jlc1RpdGxlKCkg
Y29uc3Q7CiAgICAgYm9vbCBwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoU3RlcEFjdGlv
bik7CiAgICAgdm9pZCBzZXROb2RlVmFsdWUoU3RlcEFjdGlvbiwgZmxvYXQpOwogICAgIGJvb2wg
cGVyZm9ybURpc21pc3NBY3Rpb24oKSBmaW5hbDsKICAgICBib29sIGhhc1RleHRBbHRlcm5hdGl2
ZSgpIGNvbnN0OworICAgIExheW91dFJlY3QgY2hlY2tib3hPclJhZGlvUmVjdCgpIGNvbnN0Owog
CiAgICAgdm9pZCBzZXROZWVkc1RvVXBkYXRlQ2hpbGRyZW4oKSBvdmVycmlkZSB7IG1fY2hpbGRy
ZW5EaXJ0eSA9IHRydWU7IH0KICAgICBib29sIG5lZWRzVG9VcGRhdGVDaGlsZHJlbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2hpbGRyZW5EaXJ0eTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMmY2N2Mw
YzIzNzJmLi5iMzBlYTFlYWEzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtNDQ4LDcgKzQ0OCw3IEBAIEFjY2Vz
c2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnByZXZpb3VzU2libGluZ1VuaWdu
b3JlZChpbnQgbGltaXQpIGNvCiBGbG9hdFJlY3QgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udmVy
dEZyYW1lVG9TcGFjZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lUmVjdCwgQWNjZXNzaWJpbGl0eUNv
bnZlcnNpb25TcGFjZSBjb252ZXJzaW9uU3BhY2UpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICAKKwogICAgIC8vIEZpbmQgdGhlIGFwcHJvcHJpYXRlIHNjcm9sbCB2
aWV3IHRvIHVzZSB0byBjb252ZXJ0IHRoZSBjb250ZW50cyB0byB0aGUgd2luZG93LgogICAgIGNv
bnN0IGF1dG8gcGFyZW50QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcgPSBhbmNlc3RvckFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KGZhbHNlIC8qIGluY2x1ZGVTZWxmICovKTsKICAgICBhdXRvKiBwYXJl
bnRTY3JvbGxWaWV3ID0gcGFyZW50QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcgPyBwYXJlbnRBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldy0+c2Nyb2xsVmlldygpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCmluZGV4IGY1NzJiNzExNjUwYS4uYzdkNWY4NWQ4OGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAKQEAgLTEzMiw2ICsxMzIsMTMgQEAgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogI2VuZGlmCiB9
CiAKK0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qo
Tm9kZSYgbm9kZSkKKyAgICA6IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KCZub2RlKQoreworICAg
IC8vIFdlIHNob3VsZCBvbmx5IGV2ZXIgY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mg
d2l0aCBhIG5vZGUgaWYgdGhhdCBub2RlIGhhcyBubyByZW5kZXJlciAoaS5lLiBiZWNhdXNlIG9m
IGRpc3BsYXk6Y29udGVudHMpLgorICAgIEFTU0VSVCghbm9kZS5yZW5kZXJlcigpKTsKK30KKwog
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6fkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKQog
ewogICAgIEFTU0VSVChpc0RldGFjaGVkKCkpOwpAQCAtMjE4LDcgKzIyNSw3IEBAIHN0YXRpYyBp
bmxpbmUgUmVuZGVyT2JqZWN0KiBsYXN0Q2hpbGRDb25zaWRlcmluZ0NvbnRpbnVhdGlvbihSZW5k
ZXJPYmplY3QmIHJlbmRlCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpmaXJzdENoaWxkKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmZpcnN0Q2hpbGQoKTsKICAgICAKICAgICBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGQgPSBm
aXJzdENoaWxkQ29uc2lkZXJpbmdDb250aW51YXRpb24oKm1fcmVuZGVyZXIpOwogCkBAIC0yMzYs
NyArMjQzLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6Zmlyc3RDaGlsZCgpIGNvbnN0CiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpsYXN0Q2hpbGQoKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6bGFzdENoaWxkKCk7CiAKICAgICBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZCA9IGxh
c3RDaGlsZENvbnNpZGVyaW5nQ29udGludWF0aW9uKCptX3JlbmRlcmVyKTsKIApAQCAtMzEzLDcg
KzMyMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmaXJzdENoaWxkSXNJbmxpbmVDb250aW51YXRp
b24oUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpwcmV2aW91c1NpYmxpbmcoKSBjb25zdAogewogICAgIGlmICgh
bV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6cHJldmlvdXNTaWJsaW5nKCk7CiAKICAgICBSZW5kZXJPYmpl
Y3QqIHByZXZpb3VzU2libGluZyA9IG51bGxwdHI7CiAKQEAgLTM2MCw3ICszNjcsMTAgQEAgc3Rh
dGljIGlubGluZSBib29sIGxhc3RDaGlsZEhhc0NvbnRpbnVhdGlvbihSZW5kZXJFbGVtZW50JiBy
ZW5kZXJlcikKIAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6bmV4dFNpYmxpbmcoKSBjb25zdAogewotICAgIGlmICghbV9yZW5kZXJlciB8fCBpczxSZW5k
ZXJWaWV3PigqbV9yZW5kZXJlcikpCisgICAgaWYgKCFtX3JlbmRlcmVyKQorICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Om5leHRTaWJsaW5nKCk7CisKKyAgICBpZiAoaXM8
UmVuZGVyVmlldz4obV9yZW5kZXJlcikpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
UmVuZGVyT2JqZWN0KiBuZXh0U2libGluZyA9IG51bGxwdHI7CkBAIC00ODMsNyArNDkzLDcgQEAg
UmVuZGVyT2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpyZW5kZXJQYXJlbnRPYmpl
Y3QoKSBjb25zdAogICAgICAgICAKICAgICByZXR1cm4gcGFyZW50OwogfQotICAgIAorCiBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RJ
ZkV4aXN0cygpIGNvbnN0CiB7CiAgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENh
Y2hlKCk7CkBAIC01MTIsNyArNTIyLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRp
c3BsYXlDb250ZW50c1BhcmVudDsKIAogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFy
ZW50T2JqZWN0KCk7CiAKICAgICBXZWFrUHRyIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpOwogICAg
IGlmICghY2FjaGUpCkBAIC02MTQsNyArNjI0LDcgQEAgRWxlbWVudCogQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6YW5jaG9yRWxlbWVudCgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6aGVscFRleHQoKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpoZWxwVGV4dCgpOwogCiAgICAgY29uc3QgYXV0byYgYXJpYUhlbHAgPSBnZXRBdHRyaWJ1dGUo
YXJpYV9oZWxwQXR0cik7CiAgICAgaWYgKCFhcmlhSGVscC5pc0VtcHR5KCkpCkBAIC02NTEsNyAr
NjYxLDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmhlbHBUZXh0KCkgY29u
c3QKIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFj
Y2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSBtb2RlKSBjb25zdAogewogICAgIGlmICgh
bV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4gQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQobW9kZSk7CiAKICAgICBpZiAo
aXM8UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w+KCptX3JlbmRlcmVyKSkKICAgICAgICAgcmV0dXJu
IGRvd25jYXN0PFJlbmRlckZpbGVVcGxvYWRDb250cm9sPigqbV9yZW5kZXJlcikuYnV0dG9uVmFs
dWUoKTsKQEAgLTc0NCwxNyArNzU0LDE1IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c2hvdWxkR2V0VGV4dEZyb21Ob2RlKEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtCiAKIE5v
ZGUqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5vZGUoKSBjb25zdAogewotICAgIGlmICgh
bV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKG1fcmVuZGVyZXIt
PmlzUmVuZGVyVmlldygpKQotICAgICAgICByZXR1cm4gJm1fcmVuZGVyZXItPmRvY3VtZW50KCk7
Ci0gICAgcmV0dXJuIG1fcmVuZGVyZXItPm5vZGUoKTsKLX0gICAgCisgICAgaWYgKG1fcmVuZGVy
ZXIpCisgICAgICAgIHJldHVybiBMSUtFTFkoIW1fcmVuZGVyZXItPmlzUmVuZGVyVmlldygpKSA/
IG1fcmVuZGVyZXItPm5vZGUoKSA6ICZtX3JlbmRlcmVyLT5kb2N1bWVudCgpOworICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6bm9kZSgpOworfQogCiBTdHJpbmcgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUoKSBjb25zdAogewogICAgIGlmICghbV9yZW5k
ZXJlcikKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjpzdHJpbmdWYWx1ZSgpOwogCiAgICAgaWYgKGlzU3RhdGljVGV4dCgpIHx8IGlz
VGV4dENvbnRyb2woKSB8fCBpc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiB0ZXh0KCk7
CkBAIC04MjYsNyArODM0LDcgQEAgTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
Ojpib3VuZGluZ0JveFJlY3QoKSBjb25zdAogICAgIFJlbmRlck9iamVjdCogb2JqID0gcmVuZGVy
ZXIoKTsKICAgICAKICAgICBpZiAoIW9iaikKLSAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsK
KyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpib3VuZGluZ0JveFJlY3Qo
KTsKICAgICAKICAgICBpZiAob2JqLT5ub2RlKCkpIC8vIElmIHdlIGFyZSBhIGNvbnRpbnVhdGlv
biwgd2Ugd2FudCB0byBtYWtlIHN1cmUgdG8gdXNlIHRoZSBwcmltYXJ5IHJlbmRlcmVyLgogICAg
ICAgICBvYmogPSBvYmotPm5vZGUoKS0+cmVuZGVyZXIoKTsKQEAgLTg2MCwyOSArODY4LDYgQEAg
TGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpib3VuZGluZ0JveFJlY3QoKSBj
b25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAgICAgCi1MYXlvdXRSZWN0IEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmNoZWNrYm94T3JSYWRpb1JlY3QoKSBjb25zdAotewotICAgIGlmICgh
bV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKLSAgICAKLSAgICBIVE1M
TGFiZWxFbGVtZW50KiBsYWJlbCA9IGxhYmVsRm9yRWxlbWVudChkb3duY2FzdDxFbGVtZW50Piht
X3JlbmRlcmVyLT5ub2RlKCkpKTsKLSAgICBpZiAoIWxhYmVsIHx8ICFsYWJlbC0+cmVuZGVyZXIo
KSkKLSAgICAgICAgcmV0dXJuIGJvdW5kaW5nQm94UmVjdCgpOwotICAgIAotICAgIExheW91dFJl
Y3QgbGFiZWxSZWN0ID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShsYWJlbCktPmVsZW1l
bnRSZWN0KCk7Ci0gICAgbGFiZWxSZWN0LnVuaXRlKGJvdW5kaW5nQm94UmVjdCgpKTsKLSAgICBy
ZXR1cm4gbGFiZWxSZWN0OwotfQotCi1MYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmVsZW1lbnRSZWN0KCkgY29uc3QKLXsKLSAgICAvLyBhIGNoZWNrYm94IG9yIHJhZGlvIGJ1
dHRvbiBzaG91bGQgZW5jb21wYXNzIGl0cyBsYWJlbAotICAgIGlmIChpc0NoZWNrYm94T3JSYWRp
bygpKQotICAgICAgICByZXR1cm4gY2hlY2tib3hPclJhZGlvUmVjdCgpOwotICAgIAotICAgIHJl
dHVybiBib3VuZGluZ0JveFJlY3QoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzdXBwb3J0c1BhdGgoKSBjb25zdAogewogICAgIHJldHVybiBpczxSZW5kZXJUZXh0Pihy
ZW5kZXJlcigpKSB8fCAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc1NWR1NoYXBlT3JMZWdh
Y3lTVkdTaGFwZSgpKTsKQEAgLTEwNjQsNyArMTA0OSw3IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5
T2JqZWN0SW5jbHVzaW9uIG9iamVjdEluY2x1c2lvbkZyb21BbHRUZXh0KGNvbnN0IFN0cmluZyYg
YWx0CiAKIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3JlbmRl
cmVyKQorICAgIGlmICghbV9yZW5kZXJlciAmJiAhbm9kZSgpKQogICAgICAgICByZXR1cm4gQWNj
ZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0OwogICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbigpOwogfQpAQCAtMTA4
Nyw3ICsxMDcyLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAjZW5kaWYKIAogICAgIGlmICghbV9yZW5kZXJl
cikKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKIAogICAgIC8vIENoZWNr
IGZpcnN0IGlmIGFueSBvZiB0aGUgY29tbW9uIHJlYXNvbnMgY2F1c2UgdGhpcyBlbGVtZW50IHRv
IGJlIGlnbm9yZWQuCiAgICAgLy8gVGhlbiBwcm9jZXNzIG90aGVyIHVzZSBjYXNlcyB0aGF0IG5l
ZWQgdG8gYmUgYXBwbGllZCB0byBhbGwgdGhlIHZhcmlvdXMgcm9sZXMKQEAgLTE1MjgsNyArMTUx
Myw3IEBAIFJlbmRlclZpZXcqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRvcFJlbmRlcmVy
KCkgY29uc3QKIERvY3VtZW50KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb2N1bWVudCgp
IGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpkb2N1bWVudCgpOwogICAg
IHJldHVybiAmbV9yZW5kZXJlci0+ZG9jdW1lbnQoKTsKIH0KIApAQCAtMTYwMiw5ICsxNTg3LDgg
QEAgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZG9jdW1lbnRMaW4KIExvY2FsRnJhbWVWaWV3KiBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0Ojpkb2N1bWVudEZyYW1lVmlldygpIGNvbnN0IAogeyAKICAgICBpZiAoIW1f
cmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OmRvY3VtZW50RnJhbWVWaWV3KCk7CiAKLSAgICAvLyB0aGlzIGlz
IHRoZSBSZW5kZXJPYmplY3QncyBEb2N1bWVudCdzIEZyYW1lJ3MgTG9jYWxGcmFtZVZpZXcKICAg
ICByZXR1cm4gJm1fcmVuZGVyZXItPnZpZXcoKS5mcmFtZVZpZXcoKTsKIH0KIApAQCAtMjYwMyw3
ICsyNTg3LDExIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFm
dGVyQ2hpbGRyZW5DcmVhdGlvbigpCiAgICAgCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmFkZENoaWxkcmVuKCkKIHsKLSAgICAvLyBJZiB0aGUgbmVlZCB0byBhZGQgbW9yZSBjaGls
ZHJlbiBpbiBhZGRpdGlvbiB0byBleGlzdGluZyBjaGlsZHJlbiBhcmlzZXMsIAorICAgIGlmIChV
TkxJS0VMWSghcmVuZGVyZXIoKSkpIHsKKyAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmFkZENoaWxkcmVuKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gSWYgdGhlIG5l
ZWQgdG8gYWRkIG1vcmUgY2hpbGRyZW4gaW4gYWRkaXRpb24gdG8gZXhpc3RpbmcgY2hpbGRyZW4g
YXJpc2VzLAogICAgIC8vIGNoaWxkcmVuQ2hhbmdlZCBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCwg
bGVhdmluZyB0aGUgb2JqZWN0IHdpdGggbm8gY2hpbGRyZW4uCiAgICAgQVNTRVJUKCFtX2NoaWxk
cmVuSW5pdGlhbGl6ZWQpOyAKIApAQCAtMjY0NSwxMSArMjYzMyw2IEBAIHZvaWQgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4oKQogICAgIHVwZGF0ZVJvbGVBZnRlckNoaWxk
cmVuQ3JlYXRpb24oKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5I
YXZlQ2hpbGRyZW4oKSBjb25zdAotewotICAgIHJldHVybiBtX3JlbmRlcmVyICYmIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKTsKLX0KLQogdm9pZCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzZXRBY2Nlc3NpYmxlTmFtZShjb25zdCBBdG9tU3RyaW5nJiBuYW1l
KQogewogICAgIC8vIFNldHRpbmcgdGhlIGFjY2Vzc2libGUgbmFtZSBjYW4gc3RvcmUgdGhlIHZh
bHVlIGluIHRoZSBET00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggNDZlOTY1NzAwZjBkLi40Y2E3MTM5
ZDM5YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC04OCwxNyArODgsMTQgQEAgcHVibGljOgogICAg
IEVsZW1lbnQqIGFuY2hvckVsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICBMYXlv
dXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFJlY3Qg
ZWxlbWVudFJlY3QoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFJlbmRlck9iamVjdCogcmVuZGVy
ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlbmRlcmVyLmdldCgpOyB9CiAgICAgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlckJveE1vZGVsT2JqZWN0KCkgY29uc3Q7CiAgICAgTm9k
ZSogbm9kZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29u
c3Qgb3ZlcnJpZGU7Ci0KICAgICBSZW5kZXJWaWV3KiB0b3BSZW5kZXJlcigpIGNvbnN0OwotICAg
IFJlbmRlclRleHRDb250cm9sKiB0ZXh0Q29udHJvbCgpIGNvbnN0OwotICAgIAorCiAgICAgVVJM
IHVybCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYWluVGV4dFJhbmdlIHNlbGVjdGVkVGV4dFJh
bmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IGluc2VydGlvblBvaW50TGluZU51bWJlcigp
IGNvbnN0IG92ZXJyaWRlOwpAQCAtMTE3LDcgKzExNCw2IEBAIHB1YmxpYzoKICAgICBib29sIHNl
dFZhbHVlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRDaGlsZHJlbigp
IG92ZXJyaWRlOwotICAgIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICBWaXNpYmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJhbmdlRm9y
TGluZSh1bnNpZ25lZCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xNDUsMTEgKzE0MSwxMiBAQCBwdWJs
aWM6CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
KFJlbmRlck9iamVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qo
Tm9kZSYpOwogICAgIHZvaWQgZGV0YWNoUmVtb3RlUGFydHMoQWNjZXNzaWJpbGl0eURldGFjaG1l
bnRUeXBlKSBvdmVycmlkZTsKICAgICBTY3JvbGxhYmxlQXJlYSogZ2V0U2Nyb2xsYWJsZUFyZWFJ
ZlNjcm9sbGFibGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IElu
dFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgYm9vbCBpc0RldGFjaGVkKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1fcmVuZGVyZXI7IH0KKyAgICBib29sIGlzRGV0YWNoZWQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9yZW5kZXJlciAmJiBBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6aXNEZXRhY2hlZCgpOyB9CiAKICAgICBib29sIHNob3VsZElnbm9yZUF0dHJpYnV0ZVJv
bGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBY2Nl
c3NpYmlsaXR5Um9sZSgpIG92ZXJyaWRlOwpAQCAtMTY5LDcgKzE2Niw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBub2RlSXNUZXh0Q29udHJvbChjb25zdCBOb2RlKikgY29uc3Q7CiAgICAgUGF0aCBl
bGVtZW50UGF0aCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIExheW91dFJlY3QgY2hlY2ti
b3hPclJhZGlvUmVjdCgpIGNvbnN0OwogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUlt
YWdlTWFwSGl0VGVzdChIVE1MQXJlYUVsZW1lbnQqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0Owog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2liaWxpdHlQYXJlbnRGb3JJbWFnZU1hcChI
VE1MTWFwRWxlbWVudCopIGNvbnN0OwogICAgIEFYQ29yZU9iamVjdCogZWxlbWVudEFjY2Vzc2li
aWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVz
Lmh0bWwKaW5kZXggMDVkZTdjMzUxYWE2Li5hOTA1YTA0ZWQ3MDkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0
bWwKQEAgLTExMSw3ICsxMTEsOSBAQAogCiAgICAgPG91dHB1dCBoaWRkZW4gYXJpYS1oaWRkZW49
ImZhbHNlIiBpZD0ib3V0cHV0Ij5PdXRwdXQ8L291dHB1dD4KIAotICAgIDxtZW51IGhpZGRlbiBh
cmlhLWhpZGRlbj0iZmFsc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVu
dT4KKyAgICA8bWVudSBoaWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFyIiBp
ZD0ibWVudS10b29sYmFyIj4KKyAgICAgICAgPGxpIGhpZGRlbiBhcmlhLWhpZGRlbj0iZmFsc2Ui
PkhlbGxvIHdvcmxkPC9saT4KKyAgICA8L21lbnU+CiAKICAgICA8aHIgaGlkZGVuIGFyaWEtaGlk
ZGVuPSJmYWxzZSIgaWQ9ImhyIj48L2hyPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1l
eHBlY3RlZC50eHQKaW5kZXggZjhiZGNlNDlhMDU1Li42ZmE1Mzg1ZDlhNmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29u
dGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKQEAgLTUxLDYgKzUxLDcgQEAgVGhpcyB0
ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0aCBDU1MgZGlzcGxheTogY29udGVudHMgaGF2ZSB0aGUg
Y29ycmVjdCByb2xlLgogCiA8ZGwgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGwiPjwvZGw+CiAgICAg
QVhSb2xlOiBBWExpc3QKKyAgICBBWFN1YnJvbGU6IEFYRGVzY3JpcHRpb25MaXN0CiAKIDxkdCBj
bGFzcz0idGVzdGNhc2UiIGlkPSJkdCI+PC9kdD4KICAgICBBWFJvbGU6IEFYR3JvdXAKQEAgLTEw
Miw2ICsxMDMsMTEgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0aCBDU1MgZGlzcGxh
eTogY29udGVudHMgaGF2ZSB0aGUgY29ycmVjdCByb2xlLgogPG1lbnUgY2xhc3M9InRlc3RjYXNl
IiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CiAgICAgQVhSb2xlOiBB
WExpc3QKICAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFN1YnJvbGU6IEFYQ29u
dGVudExpc3QKKworPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPjwvbGk+
CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0aXRlbQog
CiA8bmF2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+PC9uYXY+CiAgICAgQVhSb2xlOiBBWEdy
b3VwCkBAIC0xMTEsNiArMTE3LDcgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0aCBD
U1MgZGlzcGxheTogY29udGVudHMgaGF2ZSB0aGUgY29ycmVjdCByb2xlLgogPG9sIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9Im9sIj48L29sPgogICAgIEFYUm9sZTogQVhMaXN0CiAgICAgY29tcHV0ZWRS
b2xlU3RyaW5nOiBsaXN0CisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0CiAKIDxsaSBjbGFz
cz0idGVzdGNhc2UiIGlkPSJvbC1saS1lbGVtZW50Ij48L2xpPgogICAgIEFYUm9sZTogQVhHcm91
cApAQCAtMTU1LDYgKzE2Miw3IEBAIFRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NT
IGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KIDx1bCBjbGFzcz0idGVz
dGNhc2UiIGlkPSJ1bCI+PC91bD4KICAgICBBWFJvbGU6IEFYTGlzdAogICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogbGlzdAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8bGkgY2xhc3M9
InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+PC9saT4KICAgICBBWFJvbGU6IEFYR3JvdXAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1l
bGVtZW50LXJvbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29u
dGVudHMtZWxlbWVudC1yb2xlcy5odG1sCmluZGV4IGYwY2MzZjY1NDliNC4uYjk4NDBlZTdkYWVi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMt
ZWxlbWVudC1yb2xlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxh
eS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwKQEAgLTYzLDEyICs2MywxNiBAQAogCiAgICAg
PG1hcmsgY2xhc3M9InRlc3RjYXNlIiBpZD0ibWFyayI+TWFya2VkIHRleHQ8L21hcms+CiAKLSAg
ICA8bWVudSBjbGFzcz0idGVzdGNhc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIi
PjwvbWVudT4KKyAgICA8bWVudSBjbGFzcz0idGVzdGNhc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJt
ZW51LXRvb2xiYXIiPgorICAgICAgICA8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxl
bWVudCI+SGVsbG8gd29ybGQ8L2xpPgorICAgICAgICA8bGk+bGlzdCBpdGVtIHdpdGggcmVuZGVy
ZXI8L2xpPgorICAgIDwvbWVudT4KIAogICAgIDxuYXYgY2xhc3M9InRlc3RjYXNlIiBpZD0ibmF2
Ij5OYXY8L25hdj4KIAogICAgIDxvbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJvbCI+CiAgICAgICAg
IDxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJvbC1saS1lbGVtZW50Ij5IZWxsbyB3b3JsZDwvbGk+
CisgICAgICAgIDxsaT5saXN0IGl0ZW0gd2l0aCByZW5kZXJlcjwvbGk+CiAgICAgPC9vbD4KIAog
ICAgIDxvdXRwdXQgY2xhc3M9InRlc3RjYXNlIiBpZD0ib3V0cHV0Ij5PdXRwdXQ8L291dHB1dD4K
QEAgLTg5LDYgKzkzLDcgQEAKIAogICAgIDx1bCBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bCI+CiAg
ICAgICAgIDxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij5IZWxsbyB3b3Js
ZDwvbGk+CisgICAgICAgIDxsaT5saXN0IGl0ZW0gd2l0aCByZW5kZXJlcjwvbGk+CiAgICAgPC91
bD4KIDwvZGl2PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Fj
Y2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVt
ZW50LXJvbGVzLWV4cGVjdGVkLnR4dAppbmRleCBmMjgyMzQ0YTIwYTAuLmMxYjliMTA0Nzc4OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2Fy
aWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMt
ZXhwZWN0ZWQudHh0CkBAIC0xMTMsMTQgKzExMywxNSBAQCBUaGlzIHRlc3QgZW5zdXJlcyBBUklB
IHZpc2libGUgZWxlbWVudHMgKGUuZy4gdGhvc2Ugd2l0aCBib3RoIGBoaWRkZW5gIGFuZCBgYXJp
YQogCiA8ZGwgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImRsIj48L2RsPgogICAg
IEFYUm9sZTogQVhMaXN0CisgICAgQVhTdWJyb2xlOiBBWERlc2NyaXB0aW9uTGlzdAogCiA8b2wg
aGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9Im9sIj48L29sPgotICAgIEFYUm9sZTog
QVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3Vw
CisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0CiAKIDx1bCBoaWRkZW49IiIgYXJpYS1oaWRk
ZW49ImZhbHNlIiBpZD0idWwiPjwvdWw+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRl
ZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFY
Q29udGVudExpc3QKIAogPGZpZ3VyZSBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0i
ZmlndXJlIj48L2ZpZ3VyZT4KICAgICBBWFJvbGU6IEFYR3JvdXAKQEAgLTIwMiw4ICsyMDMsOCBA
QCBUaGlzIHRlc3QgZW5zdXJlcyBBUklBIHZpc2libGUgZWxlbWVudHMgKGUuZy4gdGhvc2Ugd2l0
aCBib3RoIGBoaWRkZW5gIGFuZCBgYXJpYQogICAgIEFYU3Vicm9sZTogQVhBcHBsaWNhdGlvblN0
YXR1cwogCiA8bWVudSBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFy
IiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21w
dXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6
IEFYQ29udGVudExpc3QKIAogPGhyIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJo
ciI+CiAgICAgQVhSb2xlOiBBWFNwbGl0dGVyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466439</attachid>
            <date>2023-05-20 11:31:25 -0700</date>
            <delta_ts>2023-05-20 14:16:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256950-20230520113124.patch</filename>
            <type>text/plain</type>
            <size>33712</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBkZGIzYmY1NTdhOWVhZTJhNDkwMjcwOTFjNGU0YzI0NWFhOTNjMGM4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCAxNyBNYXkgMjAyMyAyMzoyMzo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFYOiBk
aXNwbGF5OmNvbnRlbnRzIGxpc3RzIGRvbid0IHJldHVybiB0aGUgY29ycmVjdCBzdWJyb2xlCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2OTUwIHJkYXI6Ly9wcm9i
bGVtLzEwOTQ5ODQyMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXaXRoIHRoaXMgcGF0
Y2gsIGFueSBsaXN0LXR5cGUgZWxlbWVudCAob2wsIHVsLCBkbCwgcm9sZT0ibGlzdCIsIGV0YykK
d2l0aCBkaXNwbGF5OmNvbnRlbnRzIHdpbGwgbm93IHByb3Blcmx5IGJlIGNyZWF0ZWQgYXMgYW4K
QWNjZXNzaWJpbGl0eUxpc3QgaW5zdGFuY2UgcmF0aGVyIHRoYW4gYW4gQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuCgpUaGUgc2lnbmlmaWNhbnQgZWZmZWN0cyBvZiB0aGlzIGFyZToKICAxLiBUaGUg
Y29ycmVjdCBzdWJyb2xlIGlzIG5vdyBjb21wdXRlZCBmb3IgdGhlc2UgZWxlbWVudHMsIHdoaWNo
IGlzCiAgICAgaW1wb3J0YW50IGJlY2F1c2Ugc29tZSBBVHMgZG8gY2hhbmdlIHRoZWlyIGJlaGF2
aW9yIGJhc2VkIG9uIHRoZQogICAgIHZhcmlvdXMgbGlzdCBzdWJyb2xlcy4KICAyLiBUaGVzZSBl
bGVtZW50cyBub3cgdXNlIHRoZSBBY2Nlc3NpYmlsaXR5TGlzdDo6ZGV0ZXJtaW5lQWNjZXNzaWJp
bGl0eVJvbGUoKQogICAgICJpcyB0aGlzIGFuIEFYIGxpc3Qgb3IgbGF5b3V0LW9ubHkgbGlzdCIg
aGV1cmlzdGljcy4KCkluIHN1cHBvcnQgb2YgIzIsIHNvbWUgdGVzdHMgaGFkIHRvIGJlIG1vZGlm
aWVkIHRvIGhhdmUgcmVuZGVyZWQgbGlzdCBpdGVtcyBpbgpvcmRlciB0byBzdGlsbCBiZSBjb25z
aWRlcmVkIGxpc3RzLgoKV2UgaW1wbGVtZW50IHRoaXMgYnkgYWxsb3dpbmcgdGhlIGNyZWF0aW9u
IG9mIEFjY2Vzc2liaWxpdHlMaXN0IHdpdGggb25seSBhIG5vZGUKaW5zdGVhZCBvZiByZXF1aXJp
bmcgYSByZW5kZXJlci4KClRoZSBvdGhlciwgbW9yZSBzaWduaWZpY2FudCBjaGFuZ2UgaW50cm9k
dWNlZCBpbiB0aGlzIHBhdGNoIGlzIHRoYXQgbWFueQpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
IG1ldGhvZHMgYXJlIG5vdyBjaGFuZ2VkIHRvIGZhbGxiYWNrIHRvIHRoZQpjb3JyZXNwb25kaW5n
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0IGltcGxlbWVudGF0aW9uIHdoZW4gdGhlcmUgaXMgbm8K
cmVuZGVyZXIgcmF0aGVyIHRoYW4gcmV0dXJuaW5nIGVhcmx5LgoKVGhpcyBpcyByZXF1aXJlZCBi
ZWNhdXNlIHdlIGhhdmUgbWFueSBzdWJjbGFzc2VzIG9mIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QKdGhhdCBhbHNvIG5lZWQgdG8gc3VwcG9ydCBkaXNwbGF5OmNvbnRlbnRzIChBY2Nlc3NpYmls
aXR5TGlzdCBpcyBvbmUgb2YgdGhlc2UpLgpNYWtpbmcgdGhpcyBjaGFuZ2Ugd2Vha2VucyBvdXIg
ZGVmaW5pdGlvbiBvZiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IGZyb20KInNob3VsZCBoYXZl
IGEgcmVuZGVyZXIiIHRvICJzaG91bGQgaGF2ZSBhIHJlbmRlcmVyIG9yIGEgbm9kZSIuCgoqIExh
eW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVu
dC1yb2xlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3Np
YmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQ6CiogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVt
ZW50LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Fj
Y2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMuaHRtbDoK
KiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRl
bnRzLWVsZW1lbnQtcm9sZXMuaHRtbDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Fj
Y2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpz
aG91bGRDcmVhdGVBY2Nlc3NpYmlsaXR5TGlzdCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpj
cmVhdGVPYmplY3RGcm9tUmVuZGVyZXIpOgooV2ViQ29yZTo6Y3JlYXRlRnJvbU5vZGUpOgooV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxp
c3Q6OkFjY2Vzc2liaWxpdHlMaXN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0OjpjcmVh
dGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaDoK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjaGVja2JveE9yUmFkaW9SZWN0
IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVtZW50UmVjdCBj
b25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRyZW4pOgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbiBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udmVydEZy
YW1lVG9TcGFjZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Zmlyc3RDaGlsZCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpsYXN0Q2hpbGQgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6cHJldmlvdXNTaWJsaW5nIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnBhcmVudE9iamVjdCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6Om5vZGUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3RyaW5nVmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24gY29uc3QpOgooV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29u
c3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnQgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnRGcmFtZVZpZXcg
Y29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4p
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2hlY2tib3hPclJhZGlvUmVj
dCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpl
bGVtZW50UmVjdCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgotLS0KIC4uLi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDE5ICsrKy0tCiAuLi4vYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAgICAgICAgfCAxMCArKysKIC4uLi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaCB8ICAyICsKIC4uLi9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCB8IDM2ICsrKysrKy0tCiAuLi4vYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oICAgfCAgMyArLQogLi4uL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgICAgIHwgIDIgKy0KIC4uLi9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICAgICAgICAgICB8IDgzICsrKysrKysrLS0tLS0tLS0t
LS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCB8IDEwICst
LQogLi4uL2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0bWwgICAgICAgICAgIHwgIDQgKy0K
IC4uLmlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCB8ICA4ICsrCiAu
Li4vZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwgICAgICAgfCAgNyArLQogLi4u
L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCAgIHwgIDkgKy0KIC4uLmlz
cGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCB8ICA0ICsKIC4uLmlzcGxh
eS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCB8ICAzICsKIC4uLi9hcmlhLXZp
c2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQgICB8IDEzICstLQogLi4uL2FyaWEtdmlz
aWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCAgIHwgMTMgKy0tCiAxNiBmaWxlcyBjaGFu
Z2VkLCAxMzQgaW5zZXJ0aW9ucygrKSwgOTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMmEyZjgzMWYxZmZkLi5i
ZjMyNDBiZWU5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcApAQCAtNTkxLDE1ICs1OTEsMjAgQEAgc3RhdGljIGJvb2wgaXNTaW1wbGVJbWFn
ZShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIHJldHVybiB0cnVlOwogfQogCitz
dGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlMaXN0KE5vZGUqIG5vZGUpCit7CisgICAgLy8gSWYg
dGhlIG5vZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFu
ZCBpdCdzIGEKKyAgICAvLyB1bC9vbC9kbCB0eXBlIChpdCBzaG91bGRuJ3QgYmUgYSBsaXN0IGlm
IGFyaWEgc2F5cyBvdGhlcndpc2UpLgorICAgIHJldHVybiAobm9kZSAmJiAoKG5vZGVIYXNSb2xl
KG5vZGUsICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5Il9zKSkKKyAg
ICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKCkpICYmIChub2RlLT5oYXNUYWdO
YW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9sVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1l
KGRsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG1lbnVUYWcpKSkpKTsKK30KKwogUmVmPEFjY2Vz
c2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZyb21SZW5kZXJlcihS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewogICAgIC8vIEZJWE1FOiBIb3cgY291bGQgcmVuZGVy
ZXItPm5vZGUoKSBldmVyIG5vdCBiZSBhbiBFbGVtZW50PwogICAgIE5vZGUqIG5vZGUgPSByZW5k
ZXJlci0+bm9kZSgpOwogCi0gICAgLy8gSWYgdGhlIG5vZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBv
ciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBpdHMgYQotICAgIC8vIG1lbnUvdWwvb2wvZGwg
dHlwZSAoaXQgc2hvdWxkbid0IGJlIGEgbGlzdCBpZiBhcmlhIHNheXMgb3RoZXJ3aXNlKS4KLSAg
ICBpZiAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Il9zKSB8fCBub2RlSGFzUm9s
ZShub2RlLCAiZGlyZWN0b3J5Il9zKSkKLSAgICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51
bGxBdG9tKCkpICYmIChub2RlLT5oYXNUYWdOYW1lKG1lbnVUYWcpIHx8IG5vZGUtPmhhc1RhZ05h
bWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUo
ZGxUYWcpKSkpKQorICAgIGlmIChpc0FjY2Vzc2liaWxpdHlMaXN0KG5vZGUpKQogICAgICAgICBy
ZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICAvLyBhcmlh
IHRhYmxlcwpAQCAtNjc2LDYgKzY4MSw4IEBAIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBBWE9i
amVjdENhY2hlOjpjcmVhdGVPYmplY3RGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByCiAKIHN0
YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbU5vZGUoTm9kZSYgbm9kZSkK
IHsKKyAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5TGlzdCgmbm9kZSkpCisgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKG5vZGUpOwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6Y3JlYXRlKG5vZGUpOwogfQogCkBAIC03MzYsNyArNzQzLDcgQEAgQWNjZXNz
aWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoTm9kZSogbm9kZSkKIAog
ICAgIGlmICghbm9kZS0+cGFyZW50RWxlbWVudCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICAKKwogICAgIGJvb2wgaXNPcHRpb25FbGVtZW50ID0gaXM8SFRNTE9wdGlvbkVsZW1lbnQ+
KCpub2RlKTsKICAgICBpZiAoaXNPcHRpb25FbGVtZW50IHx8IGlzPEhUTUxPcHRHcm91cEVsZW1l
bnQ+KCpub2RlKSkgewogICAgICAgICBhdXRvIHNlbGVjdCA9IGlzT3B0aW9uRWxlbWVudApAQCAt
NzgyLDcgKzc4OSw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OmdldE9y
Q3JlYXRlKE5vZGUqIG5vZGUpCiAgICAgLy8gaXQgd2lsbCBkaXNhcHBlYXIgd2hlbiB0aGlzIGZ1
bmN0aW9uIGlzIGZpbmlzaGVkLCBsZWFkaW5nIHRvIGEgdXNlLWFmdGVyLWZyZWUuCiAgICAgaWYg
KG5ld09iamVjdC0+aXNEZXRhY2hlZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAK
KwogICAgIHJldHVybiBuZXdPYmplY3QuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKaW5kZXggMjg4NWVlNjgzOGVh
Li43OGMzMjcwZTc4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxpc3QuY3BwCkBAIC00Niw2ICs0NiwxMSBAQCBBY2Nlc3NpYmlsaXR5TGlz
dDo6QWNjZXNzaWJpbGl0eUxpc3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKIH0KIAorQWNj
ZXNzaWJpbGl0eUxpc3Q6OkFjY2Vzc2liaWxpdHlMaXN0KE5vZGUmIG5vZGUpCisgICAgOiBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0KG5vZGUpCit7Cit9CisKIEFjY2Vzc2liaWxpdHlMaXN0Ojp+
QWNjZXNzaWJpbGl0eUxpc3QoKSA9IGRlZmF1bHQ7CiAKIFJlZjxBY2Nlc3NpYmlsaXR5TGlzdD4g
QWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQpAQCAtNTMs
NiArNTgsMTEgQEAgUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3Jl
YXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNj
ZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsKIH0KIAorUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBB
Y2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKE5vZGUmIG5vZGUpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3Qobm9kZSkpOworfQorCiBib29sIEFjY2Vzc2liaWxp
dHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaAppbmRleCAzYTA2MWU4ZGQ1OTgu
LjBlNDA4MGJmYTRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUxpc3QuaApAQCAtMzUsMTEgKzM1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEFjY2Vzc2liaWxpdHlMaXN0IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUxpc3Q+IGNy
ZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBj
cmVhdGUoTm9kZSYpOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlMaXN0KCk7CiAKICAgICBB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxpc3QoUmVuZGVyT2JqZWN0Kik7CisgICAgZXhwbGlj
aXQgQWNjZXNzaWJpbGl0eUxpc3QoTm9kZSYpOwogICAgIGJvb2wgaXNMaXN0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNVbm9yZGVyZWRMaXN0KCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgYm9vbCBpc09yZGVyZWRMaXN0KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCmluZGV4IDkxYzY3Mzk3NmE1NC4uMmU0ZDg3OTZiODI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcApAQCAtMjE1LDggKzIxNSwyNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAorTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2hlY2tib3hPclJhZGlv
UmVjdCgpIGNvbnN0Cit7CisgICAgYXV0byogbGFiZWwgPSBsYWJlbEZvckVsZW1lbnQoZHluYW1p
Y0Rvd25jYXN0PEVsZW1lbnQ+KG5vZGUoKSkpOworICAgIGlmICghbGFiZWwgfHwgIWxhYmVsLT5y
ZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7CisKKyAgICBhdXRv
KiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1
cm4gYm91bmRpbmdCb3hSZWN0KCk7CisKKyAgICAvLyBBIGNoZWNrYm94IG9yIHJhZGlvIGJ1dHRv
biBzaG91bGQgZW5jb21wYXNzIGl0cyBsYWJlbC4KKyAgICBhdXRvIGxhYmVsUmVjdCA9IGNhY2hl
LT5nZXRPckNyZWF0ZShsYWJlbCktPmVsZW1lbnRSZWN0KCk7CisgICAgbGFiZWxSZWN0LnVuaXRl
KGJvdW5kaW5nQm94UmVjdCgpKTsKKyAgICByZXR1cm4gbGFiZWxSZWN0OworfQorCiBMYXlvdXRS
ZWN0IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVtZW50UmVjdCgpIGNvbnN0CiB7CisgICAg
aWYgKGlzQ2hlY2tib3hPclJhZGlvKCkpCisgICAgICAgIHJldHVybiBjaGVja2JveE9yUmFkaW9S
ZWN0KCk7CisKICAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7CiB9CiAKQEAgLTQ5MCwxMyAr
NTA5LDEzIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFkZENoaWxkcmVuKCkKIHsK
ICAgICAvLyBJZiB0aGUgbmVlZCB0byBhZGQgbW9yZSBjaGlsZHJlbiBpbiBhZGRpdGlvbiB0byBl
eGlzdGluZyBjaGlsZHJlbiBhcmlzZXMsIAogICAgIC8vIGNoaWxkcmVuQ2hhbmdlZCBzaG91bGQg
aGF2ZSBiZWVuIGNhbGxlZCwgbGVhdmluZyB0aGUgb2JqZWN0IHdpdGggbm8gY2hpbGRyZW4uCi0g
ICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpOyAKKyAgICBBU1NFUlQoIW1fY2hpbGRy
ZW5Jbml0aWFsaXplZCk7CiAgICAgCi0gICAgaWYgKCFtX25vZGUpCi0gICAgICAgIHJldHVybjsK
LQogICAgIG1fY2hpbGRyZW5Jbml0aWFsaXplZCA9IHRydWU7CiAKKyAgICBpZiAoIWNhbkhhdmVD
aGlsZHJlbigpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBUaGUgb25seSB0aW1lIHdlIGFk
ZCBjaGlsZHJlbiBmcm9tIHRoZSBET00gdHJlZSB0byBhIG5vZGUgd2l0aCBhIHJlbmRlcmVyIGlz
IHdoZW4gaXQncyBhIGNhbnZhcy4KICAgICBpZiAocmVuZGVyZXIoKSAmJiAhbm9kZSgpLT5oYXNU
YWdOYW1lKGNhbnZhc1RhZykpCiAgICAgICAgIHJldHVybjsKQEAgLTUwNyw3ICs1MjYsNyBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphZGRDaGlsZHJlbigpCiAKICAgICBmb3IgKGF1
dG8qIGNoaWxkID0gbm9kZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKQogICAgICAgICBhZGRDaGlsZChvYmplY3RDYWNoZS0+Z2V0T3JDcmVhdGUo
Y2hpbGQpKTsKLSAgICAKKwogICAgIHVwZGF0ZU93bmVkQ2hpbGRyZW4oKTsKICAgICBtX3N1YnRy
ZWVEaXJ0eSA9IGZhbHNlOwogfQpAQCAtNTE2LDggKzUzNSw5IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhpcyBp
cyBhbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LCB0aGVuIGl0J3Mgb2theSBpZiB0aGlzIG9i
amVjdAogICAgIC8vIGRvZXNuJ3QgaGF2ZSBhIG5vZGUgLSB0aGVyZSBhcmUgc29tZSByZW5kZXJl
cnMgdGhhdCBkb24ndCBoYXZlIGFzc29jaWF0ZWQKLSAgICAvLyBub2RlcywgbGlrZSBzY3JvbGwg
YXJlYXMgYW5kIGNzcy1nZW5lcmF0ZWQgdGV4dC4KLSAgICBpZiAoIW5vZGUoKSAmJiAhaXNBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpCisgICAgLy8gbm9kZXMsIGxpa2Ugc2Nyb2xsIGFyZWFz
IGFuZCBjc3MtZ2VuZXJhdGVkIHRleHQuIEhvd2V2ZXIsIGlmIHRoZXJlIGFsc28KKyAgICAvLyBu
byByZW5kZXJlciwgd2Ugc2hvdWxkIGJhaWwuCisgICAgaWYgKCFyZW5kZXJlcigpICYmICFub2Rl
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFdoZW4gPG5vc2NyaXB0PiBpcyBu
b3QgYmVpbmcgdXNlZCAoaXRzIHJlbmRlcmVyKCkgPT0gMCksIGlnbm9yZSBpdHMgY2hpbGRyZW4u
CkBAIC01NzIsNiArNTkyLDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgIC8vIGl0J3MgYmVlbiBpbml0aWFs
aXplZC4KICAgICBBU1NFUlQobV9pbml0aWFsaXplZCk7CiAjZW5kaWYKKyAgICBpZiAoIW5vZGUo
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBIYW5kbGUgbm9uLXJlbmRlcmVkIHRl
eHQgdGhhdCBpcyBleHBvc2VkIHRocm91Z2ggYXJpYS1oaWRkZW49ZmFsc2UuCiAgICAgaWYgKG5v
ZGUoKSAmJiBub2RlKCktPmlzVGV4dE5vZGUoKSAmJiAhcmVuZGVyZXIoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
CmluZGV4IDdlMzMzODNiZWRjMS4uNTZkNTNiZWQ3NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC0xNjEs
NiArMTYxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgZGV0
ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSBy
ZW1hcEFyaWFSb2xlRHVlVG9QYXJlbnQoQWNjZXNzaWJpbGl0eVJvbGUpIGNvbnN0OwogCisgICAg
Ym9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQ2hpbGRyZW4oKSBv
dmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsK
QEAgLTIxMCwxMyArMjExLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aXNpYmxlVGV4dChWZWN0
b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7CiAgICAgU3RyaW5nIGFsdGVybmF0aXZlVGV4
dEZvcldlYkFyZWEoKSBjb25zdDsKICAgICB2b2lkIGFyaWFMYWJlbGVkQnlUZXh0KFZlY3RvcjxB
Y2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKLSAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCB1c2VzQWx0VGFnRm9yVGV4dENv
bXB1dGF0aW9uKCkgY29uc3Q7CiAgICAgYm9vbCByb2xlSWdub3Jlc1RpdGxlKCkgY29uc3Q7CiAg
ICAgYm9vbCBwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoU3RlcEFjdGlvbik7CiAgICAg
dm9pZCBzZXROb2RlVmFsdWUoU3RlcEFjdGlvbiwgZmxvYXQpOwogICAgIGJvb2wgcGVyZm9ybURp
c21pc3NBY3Rpb24oKSBmaW5hbDsKICAgICBib29sIGhhc1RleHRBbHRlcm5hdGl2ZSgpIGNvbnN0
OworICAgIExheW91dFJlY3QgY2hlY2tib3hPclJhZGlvUmVjdCgpIGNvbnN0OwogCiAgICAgdm9p
ZCBzZXROZWVkc1RvVXBkYXRlQ2hpbGRyZW4oKSBvdmVycmlkZSB7IG1fY2hpbGRyZW5EaXJ0eSA9
IHRydWU7IH0KICAgICBib29sIG5lZWRzVG9VcGRhdGVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fY2hpbGRyZW5EaXJ0eTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMmY2N2MwYzIzNzJmLi5i
MzBlYTFlYWEzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtNDQ4LDcgKzQ0OCw3IEBAIEFjY2Vzc2liaWxpdHlP
YmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnByZXZpb3VzU2libGluZ1VuaWdub3JlZChpbnQg
bGltaXQpIGNvCiBGbG9hdFJlY3QgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udmVydEZyYW1lVG9T
cGFjZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lUmVjdCwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25T
cGFjZSBjb252ZXJzaW9uU3BhY2UpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKLSAgICAKKwogICAgIC8vIEZpbmQgdGhlIGFwcHJvcHJpYXRlIHNjcm9sbCB2aWV3IHRvIHVz
ZSB0byBjb252ZXJ0IHRoZSBjb250ZW50cyB0byB0aGUgd2luZG93LgogICAgIGNvbnN0IGF1dG8g
cGFyZW50QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcgPSBhbmNlc3RvckFjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3KGZhbHNlIC8qIGluY2x1ZGVTZWxmICovKTsKICAgICBhdXRvKiBwYXJlbnRTY3JvbGxW
aWV3ID0gcGFyZW50QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcgPyBwYXJlbnRBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldy0+c2Nyb2xsVmlldygpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IGY1NzJiNzExNjUwYS4uYzdkNWY4NWQ4OGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAg
LTEzMiw2ICsxMzIsMTMgQEAgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogI2VuZGlmCiB9CiAKK0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoTm9kZSYgbm9k
ZSkKKyAgICA6IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KCZub2RlKQoreworICAgIC8vIFdlIHNo
b3VsZCBvbmx5IGV2ZXIgY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2l0aCBhIG5v
ZGUgaWYgdGhhdCBub2RlIGhhcyBubyByZW5kZXJlciAoaS5lLiBiZWNhdXNlIG9mIGRpc3BsYXk6
Y29udGVudHMpLgorICAgIEFTU0VSVCghbm9kZS5yZW5kZXJlcigpKTsKK30KKwogQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6fkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKQogewogICAgIEFT
U0VSVChpc0RldGFjaGVkKCkpOwpAQCAtMjE4LDcgKzIyNSw3IEBAIHN0YXRpYyBpbmxpbmUgUmVu
ZGVyT2JqZWN0KiBsYXN0Q2hpbGRDb25zaWRlcmluZ0NvbnRpbnVhdGlvbihSZW5kZXJPYmplY3Qm
IHJlbmRlCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpm
aXJzdENoaWxkKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmZpcnN0
Q2hpbGQoKTsKICAgICAKICAgICBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGQgPSBmaXJzdENoaWxk
Q29uc2lkZXJpbmdDb250aW51YXRpb24oKm1fcmVuZGVyZXIpOwogCkBAIC0yMzYsNyArMjQzLDcg
QEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Zmlyc3RD
aGlsZCgpIGNvbnN0CiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpsYXN0Q2hpbGQoKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
bGFzdENoaWxkKCk7CiAKICAgICBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZCA9IGxhc3RDaGlsZENv
bnNpZGVyaW5nQ29udGludWF0aW9uKCptX3JlbmRlcmVyKTsKIApAQCAtMzEzLDcgKzMyMCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBmaXJzdENoaWxkSXNJbmxpbmVDb250aW51YXRpb24oUmVuZGVy
RWxlbWVudCYgcmVuZGVyZXIpCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpwcmV2aW91c1NpYmxpbmcoKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJl
cikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6cHJldmlvdXNTaWJsaW5nKCk7CiAKICAgICBSZW5kZXJPYmplY3QqIHByZXZp
b3VzU2libGluZyA9IG51bGxwdHI7CiAKQEAgLTM2MCw3ICszNjcsMTAgQEAgc3RhdGljIGlubGlu
ZSBib29sIGxhc3RDaGlsZEhhc0NvbnRpbnVhdGlvbihSZW5kZXJFbGVtZW50JiByZW5kZXJlcikK
IAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bmV4dFNp
YmxpbmcoKSBjb25zdAogewotICAgIGlmICghbV9yZW5kZXJlciB8fCBpczxSZW5kZXJWaWV3Pigq
bV9yZW5kZXJlcikpCisgICAgaWYgKCFtX3JlbmRlcmVyKQorICAgICAgICByZXR1cm4gQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6Om5leHRTaWJsaW5nKCk7CisKKyAgICBpZiAoaXM8UmVuZGVyVmll
dz4obV9yZW5kZXJlcikpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUmVuZGVyT2Jq
ZWN0KiBuZXh0U2libGluZyA9IG51bGxwdHI7CkBAIC00ODMsNyArNDkzLDcgQEAgUmVuZGVyT2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpyZW5kZXJQYXJlbnRPYmplY3QoKSBjb25z
dAogICAgICAgICAKICAgICByZXR1cm4gcGFyZW50OwogfQotICAgIAorCiBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RJZkV4aXN0cygp
IGNvbnN0CiB7CiAgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCk7CkBA
IC01MTIsNyArNTIyLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRpc3BsYXlDb250
ZW50c1BhcmVudDsKIAogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFyZW50T2JqZWN0
KCk7CiAKICAgICBXZWFrUHRyIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpOwogICAgIGlmICghY2Fj
aGUpCkBAIC02MTQsNyArNjI0LDcgQEAgRWxlbWVudCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6YW5jaG9yRWxlbWVudCgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6aGVscFRleHQoKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpoZWxwVGV4
dCgpOwogCiAgICAgY29uc3QgYXV0byYgYXJpYUhlbHAgPSBnZXRBdHRyaWJ1dGUoYXJpYV9oZWxw
QXR0cik7CiAgICAgaWYgKCFhcmlhSGVscC5pc0VtcHR5KCkpCkBAIC02NTEsNyArNjYxLDcgQEAg
U3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmhlbHBUZXh0KCkgY29uc3QKIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxp
dHlUZXh0VW5kZXJFbGVtZW50TW9kZSBtb2RlKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJl
cikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQobW9kZSk7CiAKICAgICBpZiAoaXM8UmVuZGVy
RmlsZVVwbG9hZENvbnRyb2w+KCptX3JlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlckZpbGVVcGxvYWRDb250cm9sPigqbV9yZW5kZXJlcikuYnV0dG9uVmFsdWUoKTsKQEAg
LTc0NCwxNyArNzU0LDE1IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2hvdWxk
R2V0VGV4dEZyb21Ob2RlKEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtCiAKIE5vZGUqIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6Om5vZGUoKSBjb25zdAogewotICAgIGlmICghbV9yZW5kZXJl
cikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKG1fcmVuZGVyZXItPmlzUmVuZGVy
VmlldygpKQotICAgICAgICByZXR1cm4gJm1fcmVuZGVyZXItPmRvY3VtZW50KCk7Ci0gICAgcmV0
dXJuIG1fcmVuZGVyZXItPm5vZGUoKTsKLX0gICAgCisgICAgaWYgKG1fcmVuZGVyZXIpCisgICAg
ICAgIHJldHVybiBMSUtFTFkoIW1fcmVuZGVyZXItPmlzUmVuZGVyVmlldygpKSA/IG1fcmVuZGVy
ZXItPm5vZGUoKSA6ICZtX3JlbmRlcmVyLT5kb2N1bWVudCgpOworICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6bm9kZSgpOworfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c3RyaW5nVmFsdWUoKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpzdHJpbmdWYWx1ZSgpOwogCiAgICAgaWYgKGlzU3RhdGljVGV4dCgpIHx8IGlzVGV4dENvbnRy
b2woKSB8fCBpc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiB0ZXh0KCk7CkBAIC04MjYs
NyArODM0LDcgQEAgTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpib3VuZGlu
Z0JveFJlY3QoKSBjb25zdAogICAgIFJlbmRlck9iamVjdCogb2JqID0gcmVuZGVyZXIoKTsKICAg
ICAKICAgICBpZiAoIW9iaikKLSAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKKyAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpib3VuZGluZ0JveFJlY3QoKTsKICAgICAK
ICAgICBpZiAob2JqLT5ub2RlKCkpIC8vIElmIHdlIGFyZSBhIGNvbnRpbnVhdGlvbiwgd2Ugd2Fu
dCB0byBtYWtlIHN1cmUgdG8gdXNlIHRoZSBwcmltYXJ5IHJlbmRlcmVyLgogICAgICAgICBvYmog
PSBvYmotPm5vZGUoKS0+cmVuZGVyZXIoKTsKQEAgLTg2MCwyOSArODY4LDYgQEAgTGF5b3V0UmVj
dCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpib3VuZGluZ0JveFJlY3QoKSBjb25zdAogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAgICAgCi1MYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNoZWNrYm94T3JSYWRpb1JlY3QoKSBjb25zdAotewotICAgIGlmICghbV9yZW5kZXJl
cikKLSAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKLSAgICAKLSAgICBIVE1MTGFiZWxFbGVt
ZW50KiBsYWJlbCA9IGxhYmVsRm9yRWxlbWVudChkb3duY2FzdDxFbGVtZW50PihtX3JlbmRlcmVy
LT5ub2RlKCkpKTsKLSAgICBpZiAoIWxhYmVsIHx8ICFsYWJlbC0+cmVuZGVyZXIoKSkKLSAgICAg
ICAgcmV0dXJuIGJvdW5kaW5nQm94UmVjdCgpOwotICAgIAotICAgIExheW91dFJlY3QgbGFiZWxS
ZWN0ID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShsYWJlbCktPmVsZW1lbnRSZWN0KCk7
Ci0gICAgbGFiZWxSZWN0LnVuaXRlKGJvdW5kaW5nQm94UmVjdCgpKTsKLSAgICByZXR1cm4gbGFi
ZWxSZWN0OwotfQotCi1MYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmVsZW1l
bnRSZWN0KCkgY29uc3QKLXsKLSAgICAvLyBhIGNoZWNrYm94IG9yIHJhZGlvIGJ1dHRvbiBzaG91
bGQgZW5jb21wYXNzIGl0cyBsYWJlbAotICAgIGlmIChpc0NoZWNrYm94T3JSYWRpbygpKQotICAg
ICAgICByZXR1cm4gY2hlY2tib3hPclJhZGlvUmVjdCgpOwotICAgIAotICAgIHJldHVybiBib3Vu
ZGluZ0JveFJlY3QoKTsKLX0KLQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBw
b3J0c1BhdGgoKSBjb25zdAogewogICAgIHJldHVybiBpczxSZW5kZXJUZXh0PihyZW5kZXJlcigp
KSB8fCAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc1NWR1NoYXBlT3JMZWdhY3lTVkdTaGFw
ZSgpKTsKQEAgLTEwNjQsNyArMTA0OSw3IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5j
bHVzaW9uIG9iamVjdEluY2x1c2lvbkZyb21BbHRUZXh0KGNvbnN0IFN0cmluZyYgYWx0CiAKIEFj
Y2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGVm
YXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3JlbmRlcmVyKQorICAg
IGlmICghbV9yZW5kZXJlciAmJiAhbm9kZSgpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eU9iamVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0OwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbigpOwogfQpAQCAtMTA4Nyw3ICsxMDcy
LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpIGNvbnN0CiAjZW5kaWYKIAogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKIAogICAgIC8vIENoZWNrIGZpcnN0IGlm
IGFueSBvZiB0aGUgY29tbW9uIHJlYXNvbnMgY2F1c2UgdGhpcyBlbGVtZW50IHRvIGJlIGlnbm9y
ZWQuCiAgICAgLy8gVGhlbiBwcm9jZXNzIG90aGVyIHVzZSBjYXNlcyB0aGF0IG5lZWQgdG8gYmUg
YXBwbGllZCB0byBhbGwgdGhlIHZhcmlvdXMgcm9sZXMKQEAgLTE1MjgsNyArMTUxMyw3IEBAIFJl
bmRlclZpZXcqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRvcFJlbmRlcmVyKCkgY29uc3QK
IERvY3VtZW50KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb2N1bWVudCgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpkb2N1bWVudCgpOwogICAgIHJldHVybiAm
bV9yZW5kZXJlci0+ZG9jdW1lbnQoKTsKIH0KIApAQCAtMTYwMiw5ICsxNTg3LDggQEAgQVhDb3Jl
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6ZG9jdW1lbnRMaW4KIExvY2FsRnJhbWVWaWV3KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojpkb2N1bWVudEZyYW1lVmlldygpIGNvbnN0IAogeyAKICAgICBpZiAoIW1fcmVuZGVyZXIp
Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmRvY3VtZW50RnJhbWVWaWV3KCk7CiAKLSAgICAvLyB0aGlzIGlzIHRoZSBSZW5k
ZXJPYmplY3QncyBEb2N1bWVudCdzIEZyYW1lJ3MgTG9jYWxGcmFtZVZpZXcKICAgICByZXR1cm4g
Jm1fcmVuZGVyZXItPnZpZXcoKS5mcmFtZVZpZXcoKTsKIH0KIApAQCAtMjYwMyw3ICsyNTg3LDEx
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRy
ZW5DcmVhdGlvbigpCiAgICAgCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENo
aWxkcmVuKCkKIHsKLSAgICAvLyBJZiB0aGUgbmVlZCB0byBhZGQgbW9yZSBjaGlsZHJlbiBpbiBh
ZGRpdGlvbiB0byBleGlzdGluZyBjaGlsZHJlbiBhcmlzZXMsIAorICAgIGlmIChVTkxJS0VMWSgh
cmVuZGVyZXIoKSkpIHsKKyAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFkZENoaWxk
cmVuKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gSWYgdGhlIG5lZWQgdG8gYWRk
IG1vcmUgY2hpbGRyZW4gaW4gYWRkaXRpb24gdG8gZXhpc3RpbmcgY2hpbGRyZW4gYXJpc2VzLAog
ICAgIC8vIGNoaWxkcmVuQ2hhbmdlZCBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCwgbGVhdmluZyB0
aGUgb2JqZWN0IHdpdGggbm8gY2hpbGRyZW4uCiAgICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlh
bGl6ZWQpOyAKIApAQCAtMjY0NSwxMSArMjYzMyw2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6YWRkQ2hpbGRyZW4oKQogICAgIHVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRp
b24oKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5IYXZlQ2hpbGRy
ZW4oKSBjb25zdAotewotICAgIHJldHVybiBtX3JlbmRlcmVyICYmIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKTsKLX0KLQogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzZXRBY2Nlc3NpYmxlTmFtZShjb25zdCBBdG9tU3RyaW5nJiBuYW1lKQogewogICAg
IC8vIFNldHRpbmcgdGhlIGFjY2Vzc2libGUgbmFtZSBjYW4gc3RvcmUgdGhlIHZhbHVlIGluIHRo
ZSBET00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggNDZlOTY1NzAwZjBkLi40Y2E3MTM5ZDM5YjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oCkBAIC04OCwxNyArODgsMTQgQEAgcHVibGljOgogICAgIEVsZW1lbnQq
IGFuY2hvckVsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICBMYXlvdXRSZWN0IGJv
dW5kaW5nQm94UmVjdCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFJlY3QgZWxlbWVudFJl
Y3QoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX3JlbmRlcmVyLmdldCgpOyB9CiAgICAgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlbmRlckJveE1vZGVsT2JqZWN0KCkgY29uc3Q7CiAgICAgTm9kZSogbm9kZSgp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KICAgICBSZW5kZXJWaWV3KiB0b3BSZW5kZXJlcigpIGNvbnN0OwotICAgIFJlbmRlclRl
eHRDb250cm9sKiB0ZXh0Q29udHJvbCgpIGNvbnN0OwotICAgIAorCiAgICAgVVJMIHVybCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIFBsYWluVGV4dFJhbmdlIHNlbGVjdGVkVGV4dFJhbmdlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgaW50IGluc2VydGlvblBvaW50TGluZU51bWJlcigpIGNvbnN0IG92
ZXJyaWRlOwpAQCAtMTE3LDcgKzExNCw2IEBAIHB1YmxpYzoKICAgICBib29sIHNldFZhbHVlKGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRl
OwotICAgIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBWaXNp
YmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJhbmdlRm9yTGluZSh1bnNp
Z25lZCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xNDUsMTEgKzE0MSwxMiBAQCBwdWJsaWM6CiAKIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KFJlbmRlck9i
amVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoTm9kZSYpOwog
ICAgIHZvaWQgZGV0YWNoUmVtb3RlUGFydHMoQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlKSBv
dmVycmlkZTsKICAgICBTY3JvbGxhYmxlQXJlYSogZ2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9sbGFi
bGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEludFBvaW50Jikg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgYm9vbCBpc0RldGFjaGVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIW1fcmVuZGVyZXI7IH0KKyAgICBib29sIGlzRGV0YWNoZWQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAhbV9yZW5kZXJlciAmJiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNE
ZXRhY2hlZCgpOyB9CiAKICAgICBib29sIHNob3VsZElnbm9yZUF0dHJpYnV0ZVJvbGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5
Um9sZSgpIG92ZXJyaWRlOwpAQCAtMTY5LDcgKzE2Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBu
b2RlSXNUZXh0Q29udHJvbChjb25zdCBOb2RlKikgY29uc3Q7CiAgICAgUGF0aCBlbGVtZW50UGF0
aCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIExheW91dFJlY3QgY2hlY2tib3hPclJhZGlv
UmVjdCgpIGNvbnN0OwogICAgIEFYQ29yZU9iamVjdCogYWNjZXNzaWJpbGl0eUltYWdlTWFwSGl0
VGVzdChIVE1MQXJlYUVsZW1lbnQqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIGFjY2Vzc2liaWxpdHlQYXJlbnRGb3JJbWFnZU1hcChIVE1MTWFwRWxl
bWVudCopIGNvbnN0OwogICAgIEFYQ29yZU9iamVjdCogZWxlbWVudEFjY2Vzc2liaWxpdHlIaXRU
ZXN0KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0bWwKaW5k
ZXggMDVkZTdjMzUxYWE2Li5hOTA1YTA0ZWQ3MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0bWwKQEAgLTEx
MSw3ICsxMTEsOSBAQAogCiAgICAgPG91dHB1dCBoaWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIiBp
ZD0ib3V0cHV0Ij5PdXRwdXQ8L291dHB1dD4KIAotICAgIDxtZW51IGhpZGRlbiBhcmlhLWhpZGRl
bj0iZmFsc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KKyAgICA8
bWVudSBoaWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10
b29sYmFyIj4KKyAgICAgICAgPGxpIGhpZGRlbiBhcmlhLWhpZGRlbj0iZmFsc2UiPkhlbGxvIHdv
cmxkPC9saT4KKyAgICA8L21lbnU+CiAKICAgICA8aHIgaGlkZGVuIGFyaWEtaGlkZGVuPSJmYWxz
ZSIgaWQ9ImhyIj48L2hyPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50
eHQKaW5kZXggZjhiZGNlNDlhMDU1Li42ZmE1Mzg1ZDlhNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxl
bWVudC1yb2xlcy1leHBlY3RlZC50eHQKQEAgLTUxLDYgKzUxLDcgQEAgVGhpcyB0ZXN0IGVuc3Vy
ZXMgZWxlbWVudHMgd2l0aCBDU1MgZGlzcGxheTogY29udGVudHMgaGF2ZSB0aGUgY29ycmVjdCBy
b2xlLgogCiA8ZGwgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGwiPjwvZGw+CiAgICAgQVhSb2xlOiBB
WExpc3QKKyAgICBBWFN1YnJvbGU6IEFYRGVzY3JpcHRpb25MaXN0CiAKIDxkdCBjbGFzcz0idGVz
dGNhc2UiIGlkPSJkdCI+PC9kdD4KICAgICBBWFJvbGU6IEFYR3JvdXAKQEAgLTEwMiw2ICsxMDMs
MTEgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0aCBDU1MgZGlzcGxheTogY29udGVu
dHMgaGF2ZSB0aGUgY29ycmVjdCByb2xlLgogPG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0
b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CiAgICAgQVhSb2xlOiBBWExpc3QKICAg
ICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExpc3QK
KworPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPjwvbGk+CisgICAgQVhS
b2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0aXRlbQogCiA8bmF2IGNs
YXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+PC9uYXY+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0x
MTEsNiArMTE3LDcgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0aCBDU1MgZGlzcGxh
eTogY29udGVudHMgaGF2ZSB0aGUgY29ycmVjdCByb2xlLgogPG9sIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9Im9sIj48L29sPgogICAgIEFYUm9sZTogQVhMaXN0CiAgICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiBsaXN0CisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0CiAKIDxsaSBjbGFzcz0idGVzdGNh
c2UiIGlkPSJvbC1saS1lbGVtZW50Ij48L2xpPgogICAgIEFYUm9sZTogQVhHcm91cApAQCAtMTU1
LDYgKzE2Miw3IEBAIFRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6
IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KIDx1bCBjbGFzcz0idGVzdGNhc2UiIGlk
PSJ1bCI+PC91bD4KICAgICBBWFJvbGU6IEFYTGlzdAogICAgIGNvbXB1dGVkUm9sZVN0cmluZzog
bGlzdAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8bGkgY2xhc3M9InRlc3RjYXNl
IiBpZD0idWwtbGktZWxlbWVudCI+PC9saT4KICAgICBBWFJvbGU6IEFYR3JvdXAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJv
bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxl
bWVudC1yb2xlcy5odG1sCmluZGV4IGYwY2MzZjY1NDliNC4uYjk4NDBlZTdkYWViIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1y
b2xlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50
cy1lbGVtZW50LXJvbGVzLmh0bWwKQEAgLTYzLDEyICs2MywxNiBAQAogCiAgICAgPG1hcmsgY2xh
c3M9InRlc3RjYXNlIiBpZD0ibWFyayI+TWFya2VkIHRleHQ8L21hcms+CiAKLSAgICA8bWVudSBj
bGFzcz0idGVzdGNhc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4K
KyAgICA8bWVudSBjbGFzcz0idGVzdGNhc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xi
YXIiPgorICAgICAgICA8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+SGVs
bG8gd29ybGQ8L2xpPgorICAgICAgICA8bGk+bGlzdCBpdGVtIHdpdGggcmVuZGVyZXI8L2xpPgor
ICAgIDwvbWVudT4KIAogICAgIDxuYXYgY2xhc3M9InRlc3RjYXNlIiBpZD0ibmF2Ij5OYXY8L25h
dj4KIAogICAgIDxvbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJvbCI+CiAgICAgICAgIDxsaSBjbGFz
cz0idGVzdGNhc2UiIGlkPSJvbC1saS1lbGVtZW50Ij5IZWxsbyB3b3JsZDwvbGk+CisgICAgICAg
IDxsaT5saXN0IGl0ZW0gd2l0aCByZW5kZXJlcjwvbGk+CiAgICAgPC9vbD4KIAogICAgIDxvdXRw
dXQgY2xhc3M9InRlc3RjYXNlIiBpZD0ib3V0cHV0Ij5PdXRwdXQ8L291dHB1dD4KQEAgLTg5LDYg
KzkzLDcgQEAKIAogICAgIDx1bCBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bCI+CiAgICAgICAgIDxs
aSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij5IZWxsbyB3b3JsZDwvbGk+Cisg
ICAgICAgIDxsaT5saXN0IGl0ZW0gd2l0aCByZW5kZXJlcjwvbGk+CiAgICAgPC91bD4KIDwvZGl2
PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkv
YXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVj
dGVkLnR4dAppbmRleCBmMTI1MTFmNjE5NTcuLmY3NDE0MTQzNzJjNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vz
c2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CkBAIC0xMDUs
MTIgKzEwNSwxMCBAQCBUaGlzIHRlc3QgZW5zdXJlcyBBUklBIHZpc2libGUgZWxlbWVudHMgKGUu
Zy4gdGhvc2Ugd2l0aCBib3RoIGBoaWRkZW5gIGFuZCBgYXJpYQogICAgIEFYUm9sZTogQVhEZXNj
cmlwdGlvbkxpc3QKIAogPG9sIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJvbCI+
PC9vbD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAor
ICAgIEFYUm9sZTogQVhHcm91cAogCiA8dWwgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIg
aWQ9InVsIj48L3VsPgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCiAKIDxmaWd1cmUgaGlkZGVuPSIiIGFyaWEtaGlk
ZGVuPSJmYWxzZSIgaWQ9ImZpZ3VyZSI+PC9maWd1cmU+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBA
IC0xODAsOCArMTc4LDcgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRz
IChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKICAgICBjb21wdXRlZFJv
bGVTdHJpbmc6IHN0YXR1cwogCiA8bWVudSBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiB0
eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+Ci0gICAgQVhSb2xlOiBBWExp
c3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKIAog
PGhyIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJociI+CiAgICAgQVhSb2xlOiBB
WFNlcGFyYXRvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3Np
YmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVt
ZW50LXJvbGVzLWV4cGVjdGVkLnR4dAppbmRleCA5OGYyMjY1NjA3ZTYuLmRkODdiYmRhZjQxZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3Bs
YXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQKQEAgLTg5LDYgKzg5LDEwIEBAIFRoaXMgdGVzdCBlbnN1cmVzIGVsZW1l
bnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KICAg
ICBBWFJvbGU6IEFYTGlzdAogICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAogCis8bGkgY2xh
c3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+PC9saT4KKyAgICBBWFJvbGU6IEFYTGlz
dEl0ZW0KKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3RpdGVtCisKIDxuYXYgY2xhc3M9InRl
c3RjYXNlIiBpZD0ibmF2Ij48L25hdj4KICAgICBBWFJvbGU6IEFYTGFuZG1hcmtOYXZpZ2F0aW9u
CiAgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBuYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQt
cm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxp
dHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dAppbmRleCAxMmYx
YzdkZDAyNTYuLmQ3OWIwMDNlODhkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9kaXNwbGF5
LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CkBAIC03Miw2ICs3Miw5IEBAIFRo
aXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUg
dGhlIGNvcnJlY3Qgcm9sZS4KIDxtZW51IGNsYXNzPSJ0ZXN0Y2FzZSIgdHlwZT0idG9vbGJhciIg
aWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgogICAgIExpc3QKIAorPGxpIGNsYXNzPSJ0ZXN0Y2Fz
ZSIgaWQ9InVsLWxpLWVsZW1lbnQiPjwvbGk+CisgICAgTGlzdEl0ZW0KKwogPG5hdiBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJuYXYiPjwvbmF2PgogICAgIExhbmRtYXJrTmF2aWdhdGlvbgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvYXJpYS12
aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVk
LnR4dAppbmRleCBjOTNjMGIzZDRkYmYuLjQ4NjIwYWY0MTQ2MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Fj
Y2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CkBAIC0x
MTQsMTQgKzExNCwxNSBAQCBUaGlzIHRlc3QgZW5zdXJlcyBBUklBIHZpc2libGUgZWxlbWVudHMg
KGUuZy4gdGhvc2Ugd2l0aCBib3RoIGBoaWRkZW5gIGFuZCBgYXJpYQogCiA8ZGwgaGlkZGVuPSIi
IGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImRsIj48L2RsPgogICAgIEFYUm9sZTogQVhMaXN0Cisg
ICAgQVhTdWJyb2xlOiBBWERlc2NyaXB0aW9uTGlzdAogCiA8b2wgaGlkZGVuPSIiIGFyaWEtaGlk
ZGVuPSJmYWxzZSIgaWQ9Im9sIj48L29sPgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0
ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBB
WENvbnRlbnRMaXN0CiAKIDx1bCBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0idWwi
PjwvdWw+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QK
KyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExpc3QKIAogPGZp
Z3VyZSBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iZmlndXJlIj48L2ZpZ3VyZT4K
ICAgICBBWFJvbGU6IEFYR3JvdXAKQEAgLTIwMyw4ICsyMDQsOCBAQCBUaGlzIHRlc3QgZW5zdXJl
cyBBUklBIHZpc2libGUgZWxlbWVudHMgKGUuZy4gdGhvc2Ugd2l0aCBib3RoIGBoaWRkZW5gIGFu
ZCBgYXJpYQogICAgIEFYU3Vicm9sZTogQVhBcHBsaWNhdGlvblN0YXR1cwogCiA8bWVudSBoaWRk
ZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFy
Ij48L21lbnU+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxp
c3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExpc3QKIAog
PGhyIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJociI+CiAgICAgQVhSb2xlOiBB
WFNwbGl0dGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2FjY2Vz
c2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dAppbmRleCBmMjgyMzQ0YTIwYTAuLmMxYjliMTA0Nzc4OCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2FyaWEt
dmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhw
ZWN0ZWQudHh0CkBAIC0xMTMsMTQgKzExMywxNSBAQCBUaGlzIHRlc3QgZW5zdXJlcyBBUklBIHZp
c2libGUgZWxlbWVudHMgKGUuZy4gdGhvc2Ugd2l0aCBib3RoIGBoaWRkZW5gIGFuZCBgYXJpYQog
CiA8ZGwgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImRsIj48L2RsPgogICAgIEFY
Um9sZTogQVhMaXN0CisgICAgQVhTdWJyb2xlOiBBWERlc2NyaXB0aW9uTGlzdAogCiA8b2wgaGlk
ZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9Im9sIj48L29sPgotICAgIEFYUm9sZTogQVhM
aXN0Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisg
ICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0CiAKIDx1bCBoaWRkZW49IiIgYXJpYS1oaWRkZW49
ImZhbHNlIiBpZD0idWwiPjwvdWw+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJv
bGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYQ29u
dGVudExpc3QKIAogPGZpZ3VyZSBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iZmln
dXJlIj48L2ZpZ3VyZT4KICAgICBBWFJvbGU6IEFYR3JvdXAKQEAgLTIwMiw4ICsyMDMsOCBAQCBU
aGlzIHRlc3QgZW5zdXJlcyBBUklBIHZpc2libGUgZWxlbWVudHMgKGUuZy4gdGhvc2Ugd2l0aCBi
b3RoIGBoaWRkZW5gIGFuZCBgYXJpYQogICAgIEFYU3Vicm9sZTogQVhBcHBsaWNhdGlvblN0YXR1
cwogCiA8bWVudSBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFyIiBp
ZD0ibWVudS10b29sYmFyIj48L21lbnU+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRl
ZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFY
Q29udGVudExpc3QKIAogPGhyIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJociI+
CiAgICAgQVhSb2xlOiBBWFNwbGl0dGVyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466440</attachid>
            <date>2023-05-20 14:16:32 -0700</date>
            <delta_ts>2023-05-24 12:01:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256950-20230520141631.patch</filename>
            <type>text/plain</type>
            <size>35049</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBkNWFlN2JlNTlkNzFiNjM2YTc1YjY5YTI5ZjYwYTU5ZTBkYTZkODVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCAxNyBNYXkgMjAyMyAyMzoyMzo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFYOiBk
aXNwbGF5OmNvbnRlbnRzIGxpc3RzIGRvbid0IHJldHVybiB0aGUgY29ycmVjdCBzdWJyb2xlCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2OTUwIHJkYXI6Ly9wcm9i
bGVtLzEwOTQ5ODQyMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXaXRoIHRoaXMgcGF0
Y2gsIGFueSBsaXN0LXR5cGUgZWxlbWVudCAob2wsIHVsLCBkbCwgcm9sZT0ibGlzdCIsIGV0YykK
d2l0aCBkaXNwbGF5OmNvbnRlbnRzIHdpbGwgbm93IHByb3Blcmx5IGJlIGNyZWF0ZWQgYXMgYW4K
QWNjZXNzaWJpbGl0eUxpc3QgaW5zdGFuY2UgcmF0aGVyIHRoYW4gYW4gQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuCgpUaGUgc2lnbmlmaWNhbnQgZWZmZWN0cyBvZiB0aGlzIGFyZToKICAxLiBUaGUg
Y29ycmVjdCBzdWJyb2xlIGlzIG5vdyBjb21wdXRlZCBmb3IgdGhlc2UgZWxlbWVudHMsIHdoaWNo
IGlzCiAgICAgaW1wb3J0YW50IGJlY2F1c2Ugc29tZSBBVHMgZG8gY2hhbmdlIHRoZWlyIGJlaGF2
aW9yIGJhc2VkIG9uIHRoZQogICAgIHZhcmlvdXMgbGlzdCBzdWJyb2xlcy4KICAyLiBUaGVzZSBl
bGVtZW50cyBub3cgdXNlIHRoZSBBY2Nlc3NpYmlsaXR5TGlzdDo6ZGV0ZXJtaW5lQWNjZXNzaWJp
bGl0eVJvbGUoKQogICAgICJpcyB0aGlzIGFuIEFYIGxpc3Qgb3IgbGF5b3V0LW9ubHkgbGlzdCIg
aGV1cmlzdGljcy4KCkluIHN1cHBvcnQgb2YgIzIsIHNvbWUgdGVzdHMgaGFkIHRvIGJlIG1vZGlm
aWVkIHRvIGhhdmUgcmVuZGVyZWQgbGlzdCBpdGVtcyBpbgpvcmRlciB0byBzdGlsbCBiZSBjb25z
aWRlcmVkIGxpc3RzLgoKV2UgaW1wbGVtZW50IHRoaXMgYnkgYWxsb3dpbmcgdGhlIGNyZWF0aW9u
IG9mIEFjY2Vzc2liaWxpdHlMaXN0IHdpdGggb25seSBhIG5vZGUKaW5zdGVhZCBvZiByZXF1aXJp
bmcgYSByZW5kZXJlci4KClRoZSBvdGhlciwgbW9yZSBzaWduaWZpY2FudCBjaGFuZ2UgaW50cm9k
dWNlZCBpbiB0aGlzIHBhdGNoIGlzIHRoYXQgbWFueQpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
IG1ldGhvZHMgYXJlIG5vdyBjaGFuZ2VkIHRvIGZhbGxiYWNrIHRvIHRoZQpjb3JyZXNwb25kaW5n
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0IGltcGxlbWVudGF0aW9uIHdoZW4gdGhlcmUgaXMgbm8K
cmVuZGVyZXIgcmF0aGVyIHRoYW4gcmV0dXJuaW5nIGVhcmx5LgoKVGhpcyBpcyByZXF1aXJlZCBi
ZWNhdXNlIHdlIGhhdmUgbWFueSBzdWJjbGFzc2VzIG9mIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QKdGhhdCBhbHNvIG5lZWQgdG8gc3VwcG9ydCBkaXNwbGF5OmNvbnRlbnRzIChBY2Nlc3NpYmls
aXR5TGlzdCBpcyBvbmUgb2YgdGhlc2UpLgpNYWtpbmcgdGhpcyBjaGFuZ2Ugd2Vha2VucyBvdXIg
ZGVmaW5pdGlvbiBvZiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IGZyb20KInNob3VsZCBoYXZl
IGEgcmVuZGVyZXIiIHRvICJzaG91bGQgaGF2ZSBhIHJlbmRlcmVyIG9yIGEgbm9kZSIuCgoqIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dwZS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2li
aWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRl
c3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQt
cm9sZXMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmls
aXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlz
aWJsZS1lbGVtZW50LXJvbGVzLmh0bWw6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNw
bGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWw6CiogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6c2hvdWxkQ3JlYXRlQWNjZXNzaWJpbGl0eUxpc3QpOgoo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y3JlYXRlT2JqZWN0RnJvbVJlbmRlcmVyKToKKFdlYkNv
cmU6OmNyZWF0ZUZyb21Ob2RlKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRl
KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcDoK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0OjpBY2Nlc3NpYmlsaXR5TGlzdCk6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6Y2hlY2tib3hPclJhZGlvUmVjdCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6ZWxlbWVudFJlY3QgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmFkZENoaWxkcmVuKToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpjYW5IYXZlQ2hpbGRyZW4gY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OmNvbnZlcnRGcmFtZVRvU3BhY2UgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KToK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmZpcnN0Q2hpbGQgY29uc3QpOgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGFzdENoaWxkIGNvbnN0KToKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnByZXZpb3VzU2libGluZyBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpuZXh0U2libGluZyBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3QgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGVscFRleHQgY29uc3QpOgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBjb25z
dCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpub2RlIGNvbnN0KToKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlIGNvbnN0KToKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVz
aW9uIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmRvY3VtZW50IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmRvY3VtZW50RnJhbWVWaWV3IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNoZWNrYm94T3JSYWRpb1JlY3QgY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZWxlbWVudFJlY3QgY29uc3QpOiBEZWxldGVkLgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuIGNvbnN0KTog
RGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoKLS0tCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwICAgfCAxOSArKystLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3Bw
ICAgICAgIHwgMTAgKysrCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlM
aXN0LmggfCAgMiArCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgfCAzNiArKysrKystLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaCAgIHwgIDMgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
ICAgICB8ICAyICstCiAuLi4vQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgICAgICAg
ICAgfCA4MyArKysrKysrKy0tLS0tLS0tLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmggfCAxMCArLS0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy5odG1sICAgICAgICAgICB8ICA0ICstCiAuLi5pc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQgfCAgOCArKwogLi4uL2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy5odG1sICAgICAgIHwgIDcgKy0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBl
Y3RlZC50eHQgICB8ICA5ICstCiAuLi5pc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBl
Y3RlZC50eHQgfCAgNCArCiAuLi5pc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3Rl
ZC50eHQgfCAgMyArCiAuLi4vYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0
ICAgfCAxMyArLS0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQg
ICB8IDEzICstLQogLi4uL2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCAg
IHwgIDkgKy0KIDE3IGZpbGVzIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCA5OCBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAppbmRleCAyYTJmODMxZjFmZmQuLmJmMzI0MGJlZTlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC01OTEsMTUgKzU5MSwyMCBAQCBz
dGF0aWMgYm9vbCBpc1NpbXBsZUltYWdlKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eUxpc3QoTm9k
ZSogbm9kZSkKK3sKKyAgICAvLyBJZiB0aGUgbm9kZSBpcyBhcmlhIHJvbGU9Imxpc3QiIG9yIHRo
ZSBhcmlhIHJvbGUgaXMgZW1wdHkgYW5kIGl0J3MgYQorICAgIC8vIHVsL29sL2RsIHR5cGUgKGl0
IHNob3VsZG4ndCBiZSBhIGxpc3QgaWYgYXJpYSBzYXlzIG90aGVyd2lzZSkuCisgICAgcmV0dXJu
IChub2RlICYmICgobm9kZUhhc1JvbGUobm9kZSwgImxpc3QiX3MpIHx8IG5vZGVIYXNSb2xlKG5v
ZGUsICJkaXJlY3RvcnkiX3MpKQorICAgICAgICB8fCAobm9kZUhhc1JvbGUobm9kZSwgbnVsbEF0
b20oKSkgJiYgKG5vZGUtPmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xU
YWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZGxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUobWVudVRh
ZykpKSkpOworfQorCiBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gQVhPYmplY3RDYWNoZTo6Y3Jl
YXRlT2JqZWN0RnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiAgICAgLy8g
RklYTUU6IEhvdyBjb3VsZCByZW5kZXJlci0+bm9kZSgpIGV2ZXIgbm90IGJlIGFuIEVsZW1lbnQ/
CiAgICAgTm9kZSogbm9kZSA9IHJlbmRlcmVyLT5ub2RlKCk7CiAKLSAgICAvLyBJZiB0aGUgbm9k
ZSBpcyBhcmlhIHJvbGU9Imxpc3QiIG9yIHRoZSBhcmlhIHJvbGUgaXMgZW1wdHkgYW5kIGl0cyBh
Ci0gICAgLy8gbWVudS91bC9vbC9kbCB0eXBlIChpdCBzaG91bGRuJ3QgYmUgYSBsaXN0IGlmIGFy
aWEgc2F5cyBvdGhlcndpc2UpLgotICAgIGlmIChub2RlICYmICgobm9kZUhhc1JvbGUobm9kZSwg
Imxpc3QiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3RvcnkiX3MpKQotICAgICAgICB8
fCAobm9kZUhhc1JvbGUobm9kZSwgbnVsbEF0b20oKSkgJiYgKG5vZGUtPmhhc1RhZ05hbWUobWVu
dVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh1bFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShvbFRh
ZykgfHwgbm9kZS0+aGFzVGFnTmFtZShkbFRhZykpKSkpCisgICAgaWYgKGlzQWNjZXNzaWJpbGl0
eUxpc3Qobm9kZSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKHJl
bmRlcmVyKTsKIAogICAgIC8vIGFyaWEgdGFibGVzCkBAIC02NzYsNiArNjgxLDggQEAgUmVmPEFj
Y2Vzc2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZyb21SZW5kZXJl
cihSZW5kZXJPYmplY3QqIHIKIAogc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVh
dGVGcm9tTm9kZShOb2RlJiBub2RlKQogeworICAgIGlmIChpc0FjY2Vzc2liaWxpdHlMaXN0KCZu
b2RlKSkKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlMaXN0OjpjcmVhdGUobm9kZSk7CiAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjcmVhdGUobm9kZSk7CiB9CiAKQEAg
LTczNiw3ICs3NDMsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXRP
ckNyZWF0ZShOb2RlKiBub2RlKQogCiAgICAgaWYgKCFub2RlLT5wYXJlbnRFbGVtZW50KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIAorCiAgICAgYm9vbCBpc09wdGlvbkVsZW1lbnQg
PSBpczxIVE1MT3B0aW9uRWxlbWVudD4oKm5vZGUpOwogICAgIGlmIChpc09wdGlvbkVsZW1lbnQg
fHwgaXM8SFRNTE9wdEdyb3VwRWxlbWVudD4oKm5vZGUpKSB7CiAgICAgICAgIGF1dG8gc2VsZWN0
ID0gaXNPcHRpb25FbGVtZW50CkBAIC03ODIsNyArNzg5LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVj
dCogQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoTm9kZSogbm9kZSkKICAgICAvLyBpdCB3aWxs
IGRpc2FwcGVhciB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgZmluaXNoZWQsIGxlYWRpbmcgdG8gYSB1
c2UtYWZ0ZXItZnJlZS4KICAgICBpZiAobmV3T2JqZWN0LT5pc0RldGFjaGVkKCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIAorCiAgICAgcmV0dXJuIG5ld09iamVjdC5nZXQoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
LmNwcAppbmRleCAyODg1ZWU2ODM4ZWEuLjc4YzMyNzBlNzg0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKQEAgLTQ2LDYgKzQ2
LDExIEBAIEFjY2Vzc2liaWxpdHlMaXN0OjpBY2Nlc3NpYmlsaXR5TGlzdChSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQogewogfQogCitBY2Nlc3NpYmlsaXR5TGlzdDo6QWNjZXNzaWJpbGl0eUxpc3Qo
Tm9kZSYgbm9kZSkKKyAgICA6IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qobm9kZSkKK3sKK30K
KwogQWNjZXNzaWJpbGl0eUxpc3Q6On5BY2Nlc3NpYmlsaXR5TGlzdCgpID0gZGVmYXVsdDsKIAog
UmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCkBAIC01Myw2ICs1OCwxMSBAQCBSZWY8QWNjZXNzaWJpbGl0eUxpc3Q+
IEFjY2Vzc2liaWxpdHlMaXN0OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TGlzdChyZW5kZXJlcikpOwogfQogCitS
ZWY8QWNjZXNzaWJpbGl0eUxpc3Q+IEFjY2Vzc2liaWxpdHlMaXN0OjpjcmVhdGUoTm9kZSYgbm9k
ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TGlzdChub2RlKSk7
Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eUxpc3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVs
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlz
dC5oCmluZGV4IDNhMDYxZThkZDU5OC4uMGU0MDgwYmZhNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCkBAIC0zNSwxMSArMzUsMTMg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWNjZXNzaWJpbGl0eUxpc3QgZmluYWwgOiBw
dWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxBY2Nlc3NpYmlsaXR5TGlzdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBS
ZWY8QWNjZXNzaWJpbGl0eUxpc3Q+IGNyZWF0ZShOb2RlJik7CiAgICAgdmlydHVhbCB+QWNjZXNz
aWJpbGl0eUxpc3QoKTsKIAogICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0
IG92ZXJyaWRlOwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5TGlzdChSZW5k
ZXJPYmplY3QqKTsKKyAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5TGlzdChOb2RlJik7CiAgICAg
Ym9vbCBpc0xpc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBp
c1Vub3JkZXJlZExpc3QoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzT3JkZXJlZExpc3Qo
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggOTFjNjczOTc2YTU0Li4yZTRk
ODc5NmI4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yMTUsOCArMjE1LDI3IEBAIEFjY2Vzc2li
aWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXJlbnRPYmplY3QoKSBjb25z
dAogICAgIHJldHVybiBudWxscHRyOwogfQogCitMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjpjaGVja2JveE9yUmFkaW9SZWN0KCkgY29uc3QKK3sKKyAgICBhdXRvKiBsYWJlbCA9
IGxhYmVsRm9yRWxlbWVudChkeW5hbWljRG93bmNhc3Q8RWxlbWVudD4obm9kZSgpKSk7CisgICAg
aWYgKCFsYWJlbCB8fCAhbGFiZWwtPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiBib3VuZGlu
Z0JveFJlY3QoKTsKKworICAgIGF1dG8qIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpOworICAgIGlm
ICghY2FjaGUpCisgICAgICAgIHJldHVybiBib3VuZGluZ0JveFJlY3QoKTsKKworICAgIC8vIEEg
Y2hlY2tib3ggb3IgcmFkaW8gYnV0dG9uIHNob3VsZCBlbmNvbXBhc3MgaXRzIGxhYmVsLgorICAg
IGF1dG8gbGFiZWxSZWN0ID0gY2FjaGUtPmdldE9yQ3JlYXRlKGxhYmVsKS0+ZWxlbWVudFJlY3Qo
KTsKKyAgICBsYWJlbFJlY3QudW5pdGUoYm91bmRpbmdCb3hSZWN0KCkpOworICAgIHJldHVybiBs
YWJlbFJlY3Q7Cit9CisKIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmVsZW1l
bnRSZWN0KCkgY29uc3QKIHsKKyAgICBpZiAoaXNDaGVja2JveE9yUmFkaW8oKSkKKyAgICAgICAg
cmV0dXJuIGNoZWNrYm94T3JSYWRpb1JlY3QoKTsKKwogICAgIHJldHVybiBib3VuZGluZ0JveFJl
Y3QoKTsKIH0KIApAQCAtNDkwLDEzICs1MDksMTMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6YWRkQ2hpbGRyZW4oKQogewogICAgIC8vIElmIHRoZSBuZWVkIHRvIGFkZCBtb3JlIGNo
aWxkcmVuIGluIGFkZGl0aW9uIHRvIGV4aXN0aW5nIGNoaWxkcmVuIGFyaXNlcywgCiAgICAgLy8g
Y2hpbGRyZW5DaGFuZ2VkIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLCBsZWF2aW5nIHRoZSBvYmpl
Y3Qgd2l0aCBubyBjaGlsZHJlbi4KLSAgICBBU1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7
IAorICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsKICAgICAKLSAgICBpZiAoIW1f
bm9kZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgbV9jaGlsZHJlbkluaXRpYWxpemVkID0gdHJ1
ZTsKIAorICAgIGlmICghY2FuSGF2ZUNoaWxkcmVuKCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IC8vIFRoZSBvbmx5IHRpbWUgd2UgYWRkIGNoaWxkcmVuIGZyb20gdGhlIERPTSB0cmVlIHRvIGEg
bm9kZSB3aXRoIGEgcmVuZGVyZXIgaXMgd2hlbiBpdCdzIGEgY2FudmFzLgogICAgIGlmIChyZW5k
ZXJlcigpICYmICFub2RlKCktPmhhc1RhZ05hbWUoY2FudmFzVGFnKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtNTA3LDcgKzUyNiw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFkZENo
aWxkcmVuKCkKIAogICAgIGZvciAoYXV0byogY2hpbGQgPSBub2RlKCktPmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGFkZENoaWxkKG9i
amVjdENhY2hlLT5nZXRPckNyZWF0ZShjaGlsZCkpOwotICAgIAorCiAgICAgdXBkYXRlT3duZWRD
aGlsZHJlbigpOwogICAgIG1fc3VidHJlZURpcnR5ID0gZmFsc2U7CiB9CkBAIC01MTYsOCArNTM1
LDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29u
c3QKIHsKICAgICAvLyBJZiB0aGlzIGlzIGFuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QsIHRo
ZW4gaXQncyBva2F5IGlmIHRoaXMgb2JqZWN0CiAgICAgLy8gZG9lc24ndCBoYXZlIGEgbm9kZSAt
IHRoZXJlIGFyZSBzb21lIHJlbmRlcmVycyB0aGF0IGRvbid0IGhhdmUgYXNzb2NpYXRlZAotICAg
IC8vIG5vZGVzLCBsaWtlIHNjcm9sbCBhcmVhcyBhbmQgY3NzLWdlbmVyYXRlZCB0ZXh0LgotICAg
IGlmICghbm9kZSgpICYmICFpc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSkKKyAgICAvLyBu
b2RlcywgbGlrZSBzY3JvbGwgYXJlYXMgYW5kIGNzcy1nZW5lcmF0ZWQgdGV4dC4gSG93ZXZlciwg
aWYgdGhlcmUgYWxzbworICAgIC8vIG5vIHJlbmRlcmVyLCB3ZSBzaG91bGQgYmFpbC4KKyAgICBp
ZiAoIXJlbmRlcmVyKCkgJiYgIW5vZGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Ly8gV2hlbiA8bm9zY3JpcHQ+IGlzIG5vdCBiZWluZyB1c2VkIChpdHMgcmVuZGVyZXIoKSA9PSAw
KSwgaWdub3JlIGl0cyBjaGlsZHJlbi4KQEAgLTU3Miw2ICs1OTIsOCBAQCBib29sIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAg
ICAgLy8gaXQncyBiZWVuIGluaXRpYWxpemVkLgogICAgIEFTU0VSVChtX2luaXRpYWxpemVkKTsK
ICNlbmRpZgorICAgIGlmICghbm9kZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8v
IEhhbmRsZSBub24tcmVuZGVyZWQgdGV4dCB0aGF0IGlzIGV4cG9zZWQgdGhyb3VnaCBhcmlhLWhp
ZGRlbj1mYWxzZS4KICAgICBpZiAobm9kZSgpICYmIG5vZGUoKS0+aXNUZXh0Tm9kZSgpICYmICFy
ZW5kZXJlcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggN2UzMzM4M2JlZGMxLi41NmQ1M2JlZDc1MzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgKQEAgLTE2MSw2ICsxNjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0Owog
ICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJlbWFwQXJpYVJvbGVEdWVUb1BhcmVudChBY2Nlc3NpYmls
aXR5Um9sZSkgY29uc3Q7CiAKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOwogICAg
IHZvaWQgY2xlYXJDaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5J
Zk5lY2Vzc2FyeSgpIG92ZXJyaWRlOwpAQCAtMjEwLDEzICsyMTEsMTMgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHZpc2libGVUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKICAg
ICBTdHJpbmcgYWx0ZXJuYXRpdmVUZXh0Rm9yV2ViQXJlYSgpIGNvbnN0OwogICAgIHZvaWQgYXJp
YUxhYmVsZWRCeVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0OwotICAgIGJv
b2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIHVzZXNBbHRUYWdGb3JUZXh0Q29tcHV0YXRpb24oKSBjb25zdDsKICAgICBib29sIHJvbGVJ
Z25vcmVzVGl0bGUoKSBjb25zdDsKICAgICBib29sIHBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNo
YW5nZShTdGVwQWN0aW9uKTsKICAgICB2b2lkIHNldE5vZGVWYWx1ZShTdGVwQWN0aW9uLCBmbG9h
dCk7CiAgICAgYm9vbCBwZXJmb3JtRGlzbWlzc0FjdGlvbigpIGZpbmFsOwogICAgIGJvb2wgaGFz
VGV4dEFsdGVybmF0aXZlKCkgY29uc3Q7CisgICAgTGF5b3V0UmVjdCBjaGVja2JveE9yUmFkaW9S
ZWN0KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldE5lZWRzVG9VcGRhdGVDaGlsZHJlbigpIG92ZXJy
aWRlIHsgbV9jaGlsZHJlbkRpcnR5ID0gdHJ1ZTsgfQogICAgIGJvb2wgbmVlZHNUb1VwZGF0ZUNo
aWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jaGlsZHJlbkRpcnR5OyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cAppbmRleCAyZjY3YzBjMjM3MmYuLmIzMGVhMWVhYTM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC00NDgsNyAr
NDQ4LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU9iamVjdDo6cHJldmlv
dXNTaWJsaW5nVW5pZ25vcmVkKGludCBsaW1pdCkgY28KIEZsb2F0UmVjdCBBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojpjb252ZXJ0RnJhbWVUb1NwYWNlKGNvbnN0IEZsb2F0UmVjdCYgZnJhbWVSZWN0LCBB
Y2Nlc3NpYmlsaXR5Q29udmVyc2lvblNwYWNlIGNvbnZlcnNpb25TcGFjZSkgY29uc3QKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIAorCiAgICAgLy8gRmluZCB0aGUgYXBwcm9w
cmlhdGUgc2Nyb2xsIHZpZXcgdG8gdXNlIHRvIGNvbnZlcnQgdGhlIGNvbnRlbnRzIHRvIHRoZSB3
aW5kb3cuCiAgICAgY29uc3QgYXV0byBwYXJlbnRBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyA9IGFu
Y2VzdG9yQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoZmFsc2UgLyogaW5jbHVkZVNlbGYgKi8pOwog
ICAgIGF1dG8qIHBhcmVudFNjcm9sbFZpZXcgPSBwYXJlbnRBY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dyA/IHBhcmVudEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LT5zY3JvbGxWaWV3KCkgOiBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZjU3MmI3MTE2NTBhLi5jN2Q1Zjg1ZDg4YjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTMyLDYgKzEzMiwxMyBAQCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCiAjZW5kaWYKIH0KIAorQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdChOb2RlJiBub2RlKQorICAgIDogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qo
Jm5vZGUpCit7CisgICAgLy8gV2Ugc2hvdWxkIG9ubHkgZXZlciBjcmVhdGUgYW4gaW5zdGFuY2Ug
b2YgdGhpcyBjbGFzcyB3aXRoIGEgbm9kZSBpZiB0aGF0IG5vZGUgaGFzIG5vIHJlbmRlcmVyIChp
LmUuIGJlY2F1c2Ugb2YgZGlzcGxheTpjb250ZW50cykuCisgICAgQVNTRVJUKCFub2RlLnJlbmRl
cmVyKCkpOworfQorCiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp+QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdCgpCiB7CiAgICAgQVNTRVJUKGlzRGV0YWNoZWQoKSk7CkBAIC0yMTgsNyArMjI1
LDcgQEAgc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZENvbnNpZGVyaW5nQ29u
dGludWF0aW9uKFJlbmRlck9iamVjdCYgcmVuZGUKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmZpcnN0Q2hpbGQoKSBjb25zdAogewogICAgIGlmICghbV9y
ZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6Zmlyc3RDaGlsZCgpOwogICAgIAogICAgIFJlbmRlck9iamVjdCog
Zmlyc3RDaGlsZCA9IGZpcnN0Q2hpbGRDb25zaWRlcmluZ0NvbnRpbnVhdGlvbigqbV9yZW5kZXJl
cik7CiAKQEAgLTIzNiw3ICsyNDMsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpmaXJzdENoaWxkKCkgY29uc3QKIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omxhc3RDaGlsZCgpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpsYXN0Q2hpbGQoKTsKIAogICAgIFJlbmRlck9iamVjdCog
bGFzdENoaWxkID0gbGFzdENoaWxkQ29uc2lkZXJpbmdDb250aW51YXRpb24oKm1fcmVuZGVyZXIp
OwogCkBAIC0zMTMsNyArMzIwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGZpcnN0Q2hpbGRJc0lu
bGluZUNvbnRpbnVhdGlvbihSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKIEFjY2Vzc2liaWxpdHlP
YmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnByZXZpb3VzU2libGluZygpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwcmV2aW91c1NpYmxpbmcoKTsKIAog
ICAgIFJlbmRlck9iamVjdCogcHJldmlvdXNTaWJsaW5nID0gbnVsbHB0cjsKIApAQCAtMzYwLDcg
KzM2NywxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbGFzdENoaWxkSGFzQ29udGludWF0aW9uKFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyKQogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpuZXh0U2libGluZygpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3JlbmRl
cmVyIHx8IGlzPFJlbmRlclZpZXc+KCptX3JlbmRlcmVyKSkKKyAgICBpZiAoIW1fcmVuZGVyZXIp
CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6bmV4dFNpYmxpbmcoKTsK
KworICAgIGlmIChpczxSZW5kZXJWaWV3PihtX3JlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICBSZW5kZXJPYmplY3QqIG5leHRTaWJsaW5nID0gbnVsbHB0cjsKQEAgLTQ4
Myw3ICs0OTMsNyBAQCBSZW5kZXJPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJl
bmRlclBhcmVudE9iamVjdCgpIGNvbnN0CiAgICAgICAgIAogICAgIHJldHVybiBwYXJlbnQ7CiB9
Ci0gICAgCisKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnBhcmVudE9iamVjdElmRXhpc3RzKCkgY29uc3QKIHsKICAgICBBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGF4T2JqZWN0Q2FjaGUoKTsKQEAgLTUxMiw3ICs1MjIsNyBAQCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3QoKSBjb25zdAogICAg
ICAgICByZXR1cm4gZGlzcGxheUNvbnRlbnRzUGFyZW50OwogCiAgICAgaWYgKCFtX3JlbmRlcmVy
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjpwYXJlbnRPYmplY3QoKTsKIAogICAgIFdlYWtQdHIgY2FjaGUgPSBheE9iamVj
dENhY2hlKCk7CiAgICAgaWYgKCFjYWNoZSkKQEAgLTYxNCw3ICs2MjQsNyBAQCBFbGVtZW50KiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphbmNob3JFbGVtZW50KCkgY29uc3QKIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3JlbmRlcmVyKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmhlbHBUZXh0KCk7CiAKICAgICBjb25zdCBhdXRvJiBhcmlhSGVscCA9
IGdldEF0dHJpYnV0ZShhcmlhX2hlbHBBdHRyKTsKICAgICBpZiAoIWFyaWFIZWxwLmlzRW1wdHko
KSkKQEAgLTY1MSw3ICs2NjEsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
aGVscFRleHQoKSBjb25zdAogU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRV
bmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlIG1vZGUpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAg
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChtb2Rl
KTsKIAogICAgIGlmIChpczxSZW5kZXJGaWxlVXBsb2FkQ29udHJvbD4oKm1fcmVuZGVyZXIpKQog
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w+KCptX3JlbmRl
cmVyKS5idXR0b25WYWx1ZSgpOwpAQCAtNzQ0LDE3ICs3NTQsMTUgQEAgYm9vbCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzaG91bGRHZXRUZXh0RnJvbU5vZGUoQWNjZXNzaWJpbGl0eVRleHRV
bmRlckVsZW0KIAogTm9kZSogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bm9kZSgpIGNvbnN0
CiB7Ci0gICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBp
ZiAobV9yZW5kZXJlci0+aXNSZW5kZXJWaWV3KCkpCi0gICAgICAgIHJldHVybiAmbV9yZW5kZXJl
ci0+ZG9jdW1lbnQoKTsKLSAgICByZXR1cm4gbV9yZW5kZXJlci0+bm9kZSgpOwotfSAgICAKKyAg
ICBpZiAobV9yZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIExJS0VMWSghbV9yZW5kZXJlci0+aXNS
ZW5kZXJWaWV3KCkpID8gbV9yZW5kZXJlci0+bm9kZSgpIDogJm1fcmVuZGVyZXItPmRvY3VtZW50
KCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpub2RlKCk7Cit9CiAKIFN0
cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnN0cmluZ1ZhbHVlKCk7CiAKICAgICBpZiAoaXNTdGF0
aWNUZXh0KCkgfHwgaXNUZXh0Q29udHJvbCgpIHx8IGlzU2VjdXJlRmllbGQoKSkKICAgICAgICAg
cmV0dXJuIHRleHQoKTsKQEAgLTgyNiw3ICs4MzQsNyBAQCBMYXlvdXRSZWN0IEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0CiAgICAgUmVuZGVyT2JqZWN0
KiBvYmogPSByZW5kZXJlcigpOwogICAgIAogICAgIGlmICghb2JqKQotICAgICAgICByZXR1cm4g
TGF5b3V0UmVjdCgpOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmJv
dW5kaW5nQm94UmVjdCgpOwogICAgIAogICAgIGlmIChvYmotPm5vZGUoKSkgLy8gSWYgd2UgYXJl
IGEgY29udGludWF0aW9uLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0byB1c2UgdGhlIHByaW1hcnkg
cmVuZGVyZXIuCiAgICAgICAgIG9iaiA9IG9iai0+bm9kZSgpLT5yZW5kZXJlcigpOwpAQCAtODYw
LDI5ICs4NjgsNiBAQCBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmJvdW5k
aW5nQm94UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KICAgICAKLUxheW91dFJl
Y3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2hlY2tib3hPclJhZGlvUmVjdCgpIGNvbnN0
Ci17Ci0gICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwot
ICAgIAotICAgIEhUTUxMYWJlbEVsZW1lbnQqIGxhYmVsID0gbGFiZWxGb3JFbGVtZW50KGRvd25j
YXN0PEVsZW1lbnQ+KG1fcmVuZGVyZXItPm5vZGUoKSkpOwotICAgIGlmICghbGFiZWwgfHwgIWxh
YmVsLT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7Ci0gICAg
Ci0gICAgTGF5b3V0UmVjdCBsYWJlbFJlY3QgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRl
KGxhYmVsKS0+ZWxlbWVudFJlY3QoKTsKLSAgICBsYWJlbFJlY3QudW5pdGUoYm91bmRpbmdCb3hS
ZWN0KCkpOwotICAgIHJldHVybiBsYWJlbFJlY3Q7Ci19Ci0KLUxheW91dFJlY3QgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZWxlbWVudFJlY3QoKSBjb25zdAotewotICAgIC8vIGEgY2hlY2ti
b3ggb3IgcmFkaW8gYnV0dG9uIHNob3VsZCBlbmNvbXBhc3MgaXRzIGxhYmVsCi0gICAgaWYgKGlz
Q2hlY2tib3hPclJhZGlvKCkpCi0gICAgICAgIHJldHVybiBjaGVja2JveE9yUmFkaW9SZWN0KCk7
Ci0gICAgCi0gICAgcmV0dXJuIGJvdW5kaW5nQm94UmVjdCgpOwotfQotCiBib29sIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzUGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlz
PFJlbmRlclRleHQ+KHJlbmRlcmVyKCkpIHx8IChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmlz
U1ZHU2hhcGVPckxlZ2FjeVNWR1NoYXBlKCkpOwpAQCAtMTA2NCw3ICsxMDQ5LDcgQEAgc3RhdGlj
IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gb2JqZWN0SW5jbHVzaW9uRnJvbUFsdFRleHQo
Y29uc3QgU3RyaW5nJiBhbHQKIAogQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkgY29uc3QKIHsKLSAg
ICBpZiAoIW1fcmVuZGVyZXIpCisgICAgaWYgKCFtX3JlbmRlcmVyICYmICFub2RlKCkpCiAgICAg
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3Q7CiAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9u
KCk7CiB9CkBAIC0xMDg3LDcgKzEwNzIsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICNlbmRpZgogCiAgICAg
aWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOwog
CiAgICAgLy8gQ2hlY2sgZmlyc3QgaWYgYW55IG9mIHRoZSBjb21tb24gcmVhc29ucyBjYXVzZSB0
aGlzIGVsZW1lbnQgdG8gYmUgaWdub3JlZC4KICAgICAvLyBUaGVuIHByb2Nlc3Mgb3RoZXIgdXNl
IGNhc2VzIHRoYXQgbmVlZCB0byBiZSBhcHBsaWVkIHRvIGFsbCB0aGUgdmFyaW91cyByb2xlcwpA
QCAtMTUyOCw3ICsxNTEzLDcgQEAgUmVuZGVyVmlldyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6dG9wUmVuZGVyZXIoKSBjb25zdAogRG9jdW1lbnQqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRv
Y3VtZW50KCk7CiAgICAgcmV0dXJuICZtX3JlbmRlcmVyLT5kb2N1bWVudCgpOwogfQogCkBAIC0x
NjAyLDkgKzE1ODcsOCBAQCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb2N1bWVudExpbgogTG9jYWxGcmFtZVZpZXcq
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRvY3VtZW50RnJhbWVWaWV3KCkgY29uc3QgCiB7
IAogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1lbnRGcmFtZVZpZXcoKTsKIAot
ICAgIC8vIHRoaXMgaXMgdGhlIFJlbmRlck9iamVjdCdzIERvY3VtZW50J3MgRnJhbWUncyBMb2Nh
bEZyYW1lVmlldwogICAgIHJldHVybiAmbV9yZW5kZXJlci0+dmlldygpLmZyYW1lVmlldygpOwog
fQogCkBAIC0yNjAzLDcgKzI1ODcsMTEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNyZWF0aW9uKCkKICAgICAKIHZvaWQgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4oKQogewotICAgIC8vIElmIHRoZSBuZWVkIHRv
IGFkZCBtb3JlIGNoaWxkcmVuIGluIGFkZGl0aW9uIHRvIGV4aXN0aW5nIGNoaWxkcmVuIGFyaXNl
cywgCisgICAgaWYgKFVOTElLRUxZKCFyZW5kZXJlcigpKSkgeworICAgICAgICBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6YWRkQ2hpbGRyZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAvLyBJZiB0aGUgbmVlZCB0byBhZGQgbW9yZSBjaGlsZHJlbiBpbiBhZGRpdGlvbiB0byBleGlz
dGluZyBjaGlsZHJlbiBhcmlzZXMsCiAgICAgLy8gY2hpbGRyZW5DaGFuZ2VkIHNob3VsZCBoYXZl
IGJlZW4gY2FsbGVkLCBsZWF2aW5nIHRoZSBvYmplY3Qgd2l0aCBubyBjaGlsZHJlbi4KICAgICBB
U1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7IAogCkBAIC0yNjQ1LDExICsyNjMzLDYgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRDaGlsZHJlbigpCiAgICAgdXBkYXRl
Um9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbigpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVuZGVy
ZXIgJiYgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpOwotfQotCiB2
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldEFjY2Vzc2libGVOYW1lKGNvbnN0IEF0
b21TdHJpbmcmIG5hbWUpCiB7CiAgICAgLy8gU2V0dGluZyB0aGUgYWNjZXNzaWJsZSBuYW1lIGNh
biBzdG9yZSB0aGUgdmFsdWUgaW4gdGhlIERPTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA0NmU5NjU3
MDBmMGQuLjRjYTcxMzlkMzliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTg4LDE3ICs4OCwxNCBA
QCBwdWJsaWM6CiAgICAgRWxlbWVudCogYW5jaG9yRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIAogICAgIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgTGF5b3V0UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUmVuZGVy
T2JqZWN0KiByZW5kZXJlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0
KCk7IH0KICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVuZGVyQm94TW9kZWxPYmplY3QoKSBj
b25zdDsKICAgICBOb2RlKiBub2RlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQoKSBjb25zdCBvdmVycmlkZTsKLQogICAgIFJlbmRlclZpZXcqIHRvcFJlbmRlcmVy
KCkgY29uc3Q7Ci0gICAgUmVuZGVyVGV4dENvbnRyb2wqIHRleHRDb250cm9sKCkgY29uc3Q7Ci0g
ICAgCisKICAgICBVUkwgdXJsKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUGxhaW5UZXh0UmFuZ2Ug
c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgaW5zZXJ0aW9uUG9p
bnRMaW5lTnVtYmVyKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMTcsNyArMTE0LDYgQEAgcHVibGlj
OgogICAgIGJvb2wgc2V0VmFsdWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGFkZENoaWxkcmVuKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJh
bmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBv
c2l0aW9uUmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBjb25zdCBvdmVycmlkZTsKQEAgLTE0NSwxMSAr
MTQxLDEyIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0Kik7CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdChOb2RlJik7CiAgICAgdm9pZCBkZXRhY2hSZW1vdGVQYXJ0cyhBY2Nlc3Np
YmlsaXR5RGV0YWNobWVudFR5cGUpIG92ZXJyaWRlOwogICAgIFNjcm9sbGFibGVBcmVhKiBnZXRT
Y3JvbGxhYmxlQXJlYUlmU2Nyb2xsYWJsZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2Ny
b2xsVG8oY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBib29sIGlz
RGV0YWNoZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhbV9yZW5kZXJlcjsgfQorICAgIGJv
b2wgaXNEZXRhY2hlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX3JlbmRlcmVyICYmIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc0RldGFjaGVkKCk7IH0KIAogICAgIGJvb2wgc2hvdWxkSWdu
b3JlQXR0cmlidXRlUm9sZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlSb2xl
IGRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkgb3ZlcnJpZGU7CkBAIC0xNjksNyArMTY2LDYg
QEAgcHJpdmF0ZToKICAgICBib29sIG5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUqKSBjb25z
dDsKICAgICBQYXRoIGVsZW1lbnRQYXRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgTGF5
b3V0UmVjdCBjaGVja2JveE9yUmFkaW9SZWN0KCkgY29uc3Q7CiAgICAgQVhDb3JlT2JqZWN0KiBh
Y2Nlc3NpYmlsaXR5SW1hZ2VNYXBIaXRUZXN0KEhUTUxBcmVhRWxlbWVudCosIGNvbnN0IEludFBv
aW50JikgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJpbGl0eVBhcmVu
dEZvckltYWdlTWFwKEhUTUxNYXBFbGVtZW50KikgY29uc3Q7CiAgICAgQVhDb3JlT2JqZWN0KiBl
bGVtZW50QWNjZXNzaWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVs
ZW1lbnQtcm9sZXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxl
LWVsZW1lbnQtcm9sZXMuaHRtbAppbmRleCAwNWRlN2MzNTFhYTYuLmE5MDVhMDRlZDcwOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1y
b2xlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVs
ZW1lbnQtcm9sZXMuaHRtbApAQCAtMTExLDcgKzExMSw5IEBACiAKICAgICA8b3V0cHV0IGhpZGRl
biBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJvdXRwdXQiPk91dHB1dDwvb3V0cHV0PgogCi0gICAg
PG1lbnUgaGlkZGVuIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUt
dG9vbGJhciI+PC9tZW51PgorICAgIDxtZW51IGhpZGRlbiBhcmlhLWhpZGRlbj0iZmFsc2UiIHR5
cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPgorICAgICAgICA8bGkgaGlkZGVuIGFyaWEt
aGlkZGVuPSJmYWxzZSI+SGVsbG8gd29ybGQ8L2xpPgorICAgIDwvbWVudT4KIAogICAgIDxociBo
aWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaHIiPjwvaHI+CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1l
bGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dAppbmRleCBmOGJkY2U0OWEwNTUuLjZmYTUzODVkOWE2
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRz
LWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtNTEsNiAr
NTEsNyBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250
ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiAKIDxkbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJk
bCI+PC9kbD4KICAgICBBWFJvbGU6IEFYTGlzdAorICAgIEFYU3Vicm9sZTogQVhEZXNjcmlwdGlv
bkxpc3QKIAogPGR0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImR0Ij48L2R0PgogICAgIEFYUm9sZTog
QVhHcm91cApAQCAtMTAyLDYgKzEwMywxMSBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3
aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiA8bWVudSBj
bGFzcz0idGVzdGNhc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4K
ICAgICBBWFJvbGU6IEFYTGlzdAogICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFY
U3Vicm9sZTogQVhDb250ZW50TGlzdAorCis8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGkt
ZWxlbWVudCI+PC9saT4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJp
bmc6IGxpc3RpdGVtCiAKIDxuYXYgY2xhc3M9InRlc3RjYXNlIiBpZD0ibmF2Ij48L25hdj4KICAg
ICBBWFJvbGU6IEFYR3JvdXAKQEAgLTExMSw2ICsxMTcsNyBAQCBUaGlzIHRlc3QgZW5zdXJlcyBl
bGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUu
CiA8b2wgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wiPjwvb2w+CiAgICAgQVhSb2xlOiBBWExpc3QK
ICAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExp
c3QKIAogPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im9sLWxpLWVsZW1lbnQiPjwvbGk+CiAgICAg
QVhSb2xlOiBBWEdyb3VwCkBAIC0xNTUsNiArMTYyLDcgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgZWxl
bWVudHMgd2l0aCBDU1MgZGlzcGxheTogY29udGVudHMgaGF2ZSB0aGUgY29ycmVjdCByb2xlLgog
PHVsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsIj48L3VsPgogICAgIEFYUm9sZTogQVhMaXN0CiAg
ICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0
CiAKIDxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgogICAgIEFY
Um9sZTogQVhHcm91cApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNw
bGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwKaW5kZXggZjBjYzNmNjU0OWI0
Li5iOTg0MGVlN2RhZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlz
cGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMuaHRtbApAQCAtNjMsMTIgKzYz
LDE2IEBACiAKICAgICA8bWFyayBjbGFzcz0idGVzdGNhc2UiIGlkPSJtYXJrIj5NYXJrZWQgdGV4
dDwvbWFyaz4KIAotICAgIDxtZW51IGNsYXNzPSJ0ZXN0Y2FzZSIgdHlwZT0idG9vbGJhciIgaWQ9
Im1lbnUtdG9vbGJhciI+PC9tZW51PgorICAgIDxtZW51IGNsYXNzPSJ0ZXN0Y2FzZSIgdHlwZT0i
dG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+CisgICAgICAgIDxsaSBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJ1bC1saS1lbGVtZW50Ij5IZWxsbyB3b3JsZDwvbGk+CisgICAgICAgIDxsaT5saXN0IGl0
ZW0gd2l0aCByZW5kZXJlcjwvbGk+CisgICAgPC9tZW51PgogCiAgICAgPG5hdiBjbGFzcz0idGVz
dGNhc2UiIGlkPSJuYXYiPk5hdjwvbmF2PgogCiAgICAgPG9sIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
Im9sIj4KICAgICAgICAgPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im9sLWxpLWVsZW1lbnQiPkhl
bGxvIHdvcmxkPC9saT4KKyAgICAgICAgPGxpPmxpc3QgaXRlbSB3aXRoIHJlbmRlcmVyPC9saT4K
ICAgICA8L29sPgogCiAgICAgPG91dHB1dCBjbGFzcz0idGVzdGNhc2UiIGlkPSJvdXRwdXQiPk91
dHB1dDwvb3V0cHV0PgpAQCAtODksNiArOTMsNyBAQAogCiAgICAgPHVsIGNsYXNzPSJ0ZXN0Y2Fz
ZSIgaWQ9InVsIj4KICAgICAgICAgPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1l
bnQiPkhlbGxvIHdvcmxkPC9saT4KKyAgICAgICAgPGxpPmxpc3QgaXRlbSB3aXRoIHJlbmRlcmVy
PC9saT4KICAgICA8L3VsPgogPC9kaXY+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNp
YmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CmluZGV4IGYxMjUxMWY2MTk1Ny4uZjc0MTQx
NDM3MmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxp
dHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQKQEAgLTEwNSwxMiArMTA1LDEwIEBAIFRoaXMgdGVzdCBlbnN1cmVzIEFS
SUEgdmlzaWJsZSBlbGVtZW50cyAoZS5nLiB0aG9zZSB3aXRoIGJvdGggYGhpZGRlbmAgYW5kIGBh
cmlhCiAgICAgQVhSb2xlOiBBWERlc2NyaXB0aW9uTGlzdAogCiA8b2wgaGlkZGVuPSIiIGFyaWEt
aGlkZGVuPSJmYWxzZSIgaWQ9Im9sIj48L29sPgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29t
cHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCiAKIDx1bCBoaWRkZW49
IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0idWwiPjwvdWw+Ci0gICAgQVhSb2xlOiBBWExpc3QK
LSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKIAogPGZp
Z3VyZSBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iZmlndXJlIj48L2ZpZ3VyZT4K
ICAgICBBWFJvbGU6IEFYR3JvdXAKQEAgLTE4MCw4ICsxNzgsNyBAQCBUaGlzIHRlc3QgZW5zdXJl
cyBBUklBIHZpc2libGUgZWxlbWVudHMgKGUuZy4gdGhvc2Ugd2l0aCBib3RoIGBoaWRkZW5gIGFu
ZCBgYXJpYQogICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3RhdHVzCiAKIDxtZW51IGhpZGRlbj0i
IiBhcmlhLWhpZGRlbj0iZmFsc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwv
bWVudT4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAor
ICAgIEFYUm9sZTogQVhHcm91cAogCiA8aHIgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIg
aWQ9ImhyIj4KICAgICBBWFJvbGU6IEFYU2VwYXJhdG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJv
bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0
eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CmluZGV4IDk4ZjIy
NjU2MDdlNi4uZGQ4N2JiZGFmNDFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvZGlzcGxh
eS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtODksNiArODksMTAgQEAg
VGhpcyB0ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0aCBDU1MgZGlzcGxheTogY29udGVudHMgaGF2
ZSB0aGUgY29ycmVjdCByb2xlLgogICAgIEFYUm9sZTogQVhMaXN0CiAgICAgY29tcHV0ZWRSb2xl
U3RyaW5nOiBsaXN0CiAKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48
L2xpPgorICAgIEFYUm9sZTogQVhMaXN0SXRlbQorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlz
dGl0ZW0KKwogPG5hdiBjbGFzcz0idGVzdGNhc2UiIGlkPSJuYXYiPjwvbmF2PgogICAgIEFYUm9s
ZTogQVhMYW5kbWFya05hdmlnYXRpb24KICAgICBjb21wdXRlZFJvbGVTdHJpbmc6IG5hdmlnYXRp
b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2Rp
c3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDEyZjFjN2RkMDI1Ni4uZDc5YjAwM2U4OGQ5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRz
LWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50
eHQKQEAgLTcyLDYgKzcyLDkgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0aCBDU1Mg
ZGlzcGxheTogY29udGVudHMgaGF2ZSB0aGUgY29ycmVjdCByb2xlLgogPG1lbnUgY2xhc3M9InRl
c3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CiAgICAgTGlz
dAogCis8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+PC9saT4KKyAgICBM
aXN0SXRlbQorCiA8bmF2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+PC9uYXY+CiAgICAgTGFu
ZG1hcmtOYXZpZ2F0aW9uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxl
LWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CmluZGV4IGM5M2MwYjNkNGRiZi4uNDg2MjBhZjQx
NDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxp
dHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1y
b2xlcy1leHBlY3RlZC50eHQKQEAgLTExNCwxNCArMTE0LDE1IEBAIFRoaXMgdGVzdCBlbnN1cmVz
IEFSSUEgdmlzaWJsZSBlbGVtZW50cyAoZS5nLiB0aG9zZSB3aXRoIGJvdGggYGhpZGRlbmAgYW5k
IGBhcmlhCiAKIDxkbCBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iZGwiPjwvZGw+
CiAgICAgQVhSb2xlOiBBWExpc3QKKyAgICBBWFN1YnJvbGU6IEFYRGVzY3JpcHRpb25MaXN0CiAK
IDxvbCBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0ib2wiPjwvb2w+Ci0gICAgQVhS
b2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6IEFY
R3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExpc3QKIAogPHVsIGhpZGRlbj0iIiBhcmlh
LWhpZGRlbj0iZmFsc2UiIGlkPSJ1bCI+PC91bD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNv
bXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9s
ZTogQVhDb250ZW50TGlzdAogCiA8ZmlndXJlIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2Ui
IGlkPSJmaWd1cmUiPjwvZmlndXJlPgogICAgIEFYUm9sZTogQVhHcm91cApAQCAtMjAzLDggKzIw
NCw4IEBAIFRoaXMgdGVzdCBlbnN1cmVzIEFSSUEgdmlzaWJsZSBlbGVtZW50cyAoZS5nLiB0aG9z
ZSB3aXRoIGJvdGggYGhpZGRlbmAgYW5kIGBhcmlhCiAgICAgQVhTdWJyb2xlOiBBWEFwcGxpY2F0
aW9uU3RhdHVzCiAKIDxtZW51IGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIHR5cGU9InRv
b2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAg
IGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vi
cm9sZTogQVhDb250ZW50TGlzdAogCiA8aHIgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIg
aWQ9ImhyIj4KICAgICBBWFJvbGU6IEFYU3BsaXR0ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2FjY2Vzc2liaWxp
dHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CmluZGV4IGYyODIzNDRh
MjBhMC4uYzFiOWIxMDQ3Nzg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0eS9hcmlhLXZp
c2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKQEAgLTExMywxNCArMTEzLDE1IEBAIFRo
aXMgdGVzdCBlbnN1cmVzIEFSSUEgdmlzaWJsZSBlbGVtZW50cyAoZS5nLiB0aG9zZSB3aXRoIGJv
dGggYGhpZGRlbmAgYW5kIGBhcmlhCiAKIDxkbCBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNl
IiBpZD0iZGwiPjwvZGw+CiAgICAgQVhSb2xlOiBBWExpc3QKKyAgICBBWFN1YnJvbGU6IEFYRGVz
Y3JpcHRpb25MaXN0CiAKIDxvbCBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0ib2wi
Pjwvb2w+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QK
KyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExpc3QKIAogPHVs
IGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJ1bCI+PC91bD4KLSAgICBBWFJvbGU6
IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91
cAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8ZmlndXJlIGhpZGRlbj0iIiBhcmlh
LWhpZGRlbj0iZmFsc2UiIGlkPSJmaWd1cmUiPjwvZmlndXJlPgogICAgIEFYUm9sZTogQVhHcm91
cApAQCAtMjAyLDggKzIwMyw4IEBAIFRoaXMgdGVzdCBlbnN1cmVzIEFSSUEgdmlzaWJsZSBlbGVt
ZW50cyAoZS5nLiB0aG9zZSB3aXRoIGJvdGggYGhpZGRlbmAgYW5kIGBhcmlhCiAgICAgQVhTdWJy
b2xlOiBBWEFwcGxpY2F0aW9uU3RhdHVzCiAKIDxtZW51IGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0i
ZmFsc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KLSAgICBBWFJv
bGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhH
cm91cAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8aHIgaGlkZGVuPSIiIGFyaWEt
aGlkZGVuPSJmYWxzZSIgaWQ9ImhyIj4KICAgICBBWFJvbGU6IEFYU3BsaXR0ZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1l
bGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9hY2Nl
c3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dAppbmRleCAw
NmQ4NGViNzFmNjQuLjA0OGI1Y2VjMjEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd3BlL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlz
aWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtMTA2LDEyICsxMDYsMTAgQEAgVGhp
cyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90
aCBgaGlkZGVuYCBhbmQgYGFyaWEKICAgICBBWFJvbGU6IEFYRGVzY3JpcHRpb25MaXN0CiAKIDxv
bCBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0ib2wiPjwvb2w+Ci0gICAgQVhSb2xl
OiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6IEFYR3Jv
dXAKIAogPHVsIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJ1bCI+PC91bD4KLSAg
ICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9s
ZTogQVhHcm91cAogCiA8ZmlndXJlIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJm
aWd1cmUiPjwvZmlndXJlPgogICAgIEFYUm9sZTogQVhHcm91cApAQCAtMTgxLDggKzE3OSw3IEBA
IFRoaXMgdGVzdCBlbnN1cmVzIEFSSUEgdmlzaWJsZSBlbGVtZW50cyAoZS5nLiB0aG9zZSB3aXRo
IGJvdGggYGhpZGRlbmAgYW5kIGBhcmlhCiAgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBzdGF0dXMK
IAogPG1lbnUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9
Im1lbnUtdG9vbGJhciI+PC9tZW51PgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRS
b2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCiAKIDxociBoaWRkZW49IiIgYXJp
YS1oaWRkZW49ImZhbHNlIiBpZD0iaHIiPgogICAgIEFYUm9sZTogQVhTZXBhcmF0b3IK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466484</attachid>
            <date>2023-05-24 12:01:29 -0700</date>
            <delta_ts>2023-05-26 18:28:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256950-20230524120128.patch</filename>
            <type>text/plain</type>
            <size>36503</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA0YzQ1NzJjNjgxZjUwZjc3MTliZjk3MGYxZmExYmE4NjFlMDliNTNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCAxNyBNYXkgMjAyMyAyMzoyMzo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFYOiBk
aXNwbGF5OmNvbnRlbnRzIGxpc3RzIGRvbid0IHJldHVybiB0aGUgY29ycmVjdCBzdWJyb2xlCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2OTUwIHJkYXI6Ly9wcm9i
bGVtLzEwOTQ5ODQyMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXaXRoIHRoaXMgcGF0
Y2gsIGFueSBsaXN0LXR5cGUgZWxlbWVudCAob2wsIHVsLCBkbCwgcm9sZT0ibGlzdCIsIGV0YykK
d2l0aCBkaXNwbGF5OmNvbnRlbnRzIHdpbGwgbm93IHByb3Blcmx5IGJlIGNyZWF0ZWQgYXMgYW4K
QWNjZXNzaWJpbGl0eUxpc3QgaW5zdGFuY2UgcmF0aGVyIHRoYW4gYW4gQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuCgpUaGUgc2lnbmlmaWNhbnQgZWZmZWN0cyBvZiB0aGlzIGFyZToKICAxLiBUaGUg
Y29ycmVjdCBzdWJyb2xlIGlzIG5vdyBjb21wdXRlZCBmb3IgdGhlc2UgZWxlbWVudHMsIHdoaWNo
IGlzCiAgICAgaW1wb3J0YW50IGJlY2F1c2Ugc29tZSBBVHMgZG8gY2hhbmdlIHRoZWlyIGJlaGF2
aW9yIGJhc2VkIG9uIHRoZQogICAgIHZhcmlvdXMgbGlzdCBzdWJyb2xlcy4KICAyLiBUaGVzZSBl
bGVtZW50cyBub3cgdXNlIHRoZSBBY2Nlc3NpYmlsaXR5TGlzdDo6ZGV0ZXJtaW5lQWNjZXNzaWJp
bGl0eVJvbGUoKQogICAgICJpcyB0aGlzIGFuIEFYIGxpc3Qgb3IgbGF5b3V0LW9ubHkgbGlzdCIg
aGV1cmlzdGljcy4KCkluIHN1cHBvcnQgb2YgIzIsIHNvbWUgdGVzdHMgaGFkIHRvIGJlIG1vZGlm
aWVkIHRvIGhhdmUgcmVuZGVyZWQgbGlzdCBpdGVtcyBpbgpvcmRlciB0byBzdGlsbCBiZSBjb25z
aWRlcmVkIGxpc3RzLgoKV2UgaW1wbGVtZW50IHRoaXMgYnkgYWxsb3dpbmcgdGhlIGNyZWF0aW9u
IG9mIEFjY2Vzc2liaWxpdHlMaXN0IHdpdGggb25seSBhIG5vZGUKaW5zdGVhZCBvZiByZXF1aXJp
bmcgYSByZW5kZXJlci4KClRoZSBvdGhlciwgbW9yZSBzaWduaWZpY2FudCBjaGFuZ2UgaW50cm9k
dWNlZCBpbiB0aGlzIHBhdGNoIGlzIHRoYXQgbWFueQpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
IG1ldGhvZHMgYXJlIG5vdyBjaGFuZ2VkIHRvIGZhbGxiYWNrIHRvIHRoZQpjb3JyZXNwb25kaW5n
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0IGltcGxlbWVudGF0aW9uIHdoZW4gdGhlcmUgaXMgbm8K
cmVuZGVyZXIgcmF0aGVyIHRoYW4gcmV0dXJuaW5nIGVhcmx5LgoKVGhpcyBpcyByZXF1aXJlZCBi
ZWNhdXNlIHdlIGhhdmUgbWFueSBzdWJjbGFzc2VzIG9mIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QKdGhhdCBhbHNvIG5lZWQgdG8gc3VwcG9ydCBkaXNwbGF5OmNvbnRlbnRzIChBY2Nlc3NpYmls
aXR5TGlzdCBpcyBvbmUgb2YgdGhlc2UpLgpNYWtpbmcgdGhpcyBjaGFuZ2Ugd2Vha2VucyBvdXIg
ZGVmaW5pdGlvbiBvZiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IGZyb20KInNob3VsZCBoYXZl
IGEgcmVuZGVyZXIiIHRvICJzaG91bGQgaGF2ZSBhIHJlbmRlcmVyIG9yIGEgbm9kZSIuCgoqIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dwZS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2li
aWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRl
c3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQt
cm9sZXMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmls
aXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlz
aWJsZS1lbGVtZW50LXJvbGVzLmh0bWw6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNw
bGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWw6CiogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6c2hvdWxkQ3JlYXRlQWNjZXNzaWJpbGl0eUxpc3QpOgoo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y3JlYXRlT2JqZWN0RnJvbVJlbmRlcmVyKToKKFdlYkNv
cmU6OmNyZWF0ZUZyb21Ob2RlKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRl
KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcDoK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0OjpBY2Nlc3NpYmlsaXR5TGlzdCk6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6Y2hlY2tib3hPclJhZGlvUmVjdCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6ZWxlbWVudFJlY3QgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmFkZENoaWxkcmVuKToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpjYW5IYXZlQ2hpbGRyZW4gY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OmNvbnZlcnRGcmFtZVRvU3BhY2UgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KToK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmZpcnN0Q2hpbGQgY29uc3QpOgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGFzdENoaWxkIGNvbnN0KToKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnByZXZpb3VzU2libGluZyBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpuZXh0U2libGluZyBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3QgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGVscFRleHQgY29uc3QpOgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBjb25z
dCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpub2RlIGNvbnN0KToKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlIGNvbnN0KToKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVz
aW9uIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmRvY3VtZW50IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmRvY3VtZW50RnJhbWVWaWV3IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNoZWNrYm94T3JSYWRpb1JlY3QgY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZWxlbWVudFJlY3QgY29uc3QpOiBEZWxldGVkLgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuIGNvbnN0KTog
RGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoKLS0tCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwICAgfCAxOSArKy0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAg
ICAgICAgfCAxMCArKysKIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxp
c3QuaCB8ICAyICsKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cCB8IDQwICsrKysrKy0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaCAgIHwgIDMgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
ICAgICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggICAg
ICAgfCAgMiArLQogLi4uL0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgICAgICAgICAg
IHwgODggKysrKysrKy0tLS0tLS0tLS0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oIHwgMTMgKy0tCiAuLi4vYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMu
aHRtbCAgICAgICAgICAgfCAgNCArLQogLi4uaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMt
ZXhwZWN0ZWQudHh0IHwgIDggKysKIC4uLi9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMu
aHRtbCAgICAgICB8ICA3ICstCiAuLi4vYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0
ZWQudHh0ICAgfCAgOSArLQogLi4uaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0
ZWQudHh0IHwgIDQgKwogLi4uaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQu
dHh0IHwgIDMgKwogLi4uL2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCAg
IHwgMTMgKy0tCiAuLi4vYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0ICAg
fCAxMyArLS0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQgICB8
ICA5ICstCiAxOCBmaWxlcyBjaGFuZ2VkLCAxMzcgaW5zZXJ0aW9ucygrKSwgMTEyIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CmluZGV4IDJhMmY4MzFmMWZmZC4uYmYzMjQwYmVlOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTU5MSwxNSArNTkxLDIwIEBAIHN0
YXRpYyBib29sIGlzU2ltcGxlSW1hZ2UoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5TGlzdChOb2Rl
KiBub2RlKQoreworICAgIC8vIElmIHRoZSBub2RlIGlzIGFyaWEgcm9sZT0ibGlzdCIgb3IgdGhl
IGFyaWEgcm9sZSBpcyBlbXB0eSBhbmQgaXQncyBhCisgICAgLy8gdWwvb2wvZGwgdHlwZSAoaXQg
c2hvdWxkbid0IGJlIGEgbGlzdCBpZiBhcmlhIHNheXMgb3RoZXJ3aXNlKS4KKyAgICByZXR1cm4g
KG5vZGUgJiYgKChub2RlSGFzUm9sZShub2RlLCAibGlzdCJfcykgfHwgbm9kZUhhc1JvbGUobm9k
ZSwgImRpcmVjdG9yeSJfcykpCisgICAgICAgIHx8IChub2RlSGFzUm9sZShub2RlLCBudWxsQXRv
bSgpKSAmJiAobm9kZS0+aGFzVGFnTmFtZSh1bFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShvbFRh
ZykgfHwgbm9kZS0+aGFzVGFnTmFtZShkbFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShtZW51VGFn
KSkpKSk7Cit9CisKIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBBWE9iamVjdENhY2hlOjpjcmVh
dGVPYmplY3RGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICAvLyBG
SVhNRTogSG93IGNvdWxkIHJlbmRlcmVyLT5ub2RlKCkgZXZlciBub3QgYmUgYW4gRWxlbWVudD8K
ICAgICBOb2RlKiBub2RlID0gcmVuZGVyZXItPm5vZGUoKTsKIAotICAgIC8vIElmIHRoZSBub2Rl
IGlzIGFyaWEgcm9sZT0ibGlzdCIgb3IgdGhlIGFyaWEgcm9sZSBpcyBlbXB0eSBhbmQgaXRzIGEK
LSAgICAvLyBtZW51L3VsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBiZSBhIGxpc3QgaWYgYXJp
YSBzYXlzIG90aGVyd2lzZSkuCi0gICAgaWYgKG5vZGUgJiYgKChub2RlSGFzUm9sZShub2RlLCAi
bGlzdCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImRpcmVjdG9yeSJfcykpCi0gICAgICAgIHx8
IChub2RlSGFzUm9sZShub2RlLCBudWxsQXRvbSgpKSAmJiAobm9kZS0+aGFzVGFnTmFtZShtZW51
VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9sVGFn
KSB8fCBub2RlLT5oYXNUYWdOYW1lKGRsVGFnKSkpKSkKKyAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5
TGlzdChub2RlKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlMaXN0OjpjcmVhdGUocmVu
ZGVyZXIpOwogCiAgICAgLy8gYXJpYSB0YWJsZXMKQEAgLTY3Niw2ICs2ODEsOCBAQCBSZWY8QWNj
ZXNzaWJpbGl0eU9iamVjdD4gQVhPYmplY3RDYWNoZTo6Y3JlYXRlT2JqZWN0RnJvbVJlbmRlcmVy
KFJlbmRlck9iamVjdCogcgogCiBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0
ZUZyb21Ob2RlKE5vZGUmIG5vZGUpCiB7CisgICAgaWYgKGlzQWNjZXNzaWJpbGl0eUxpc3QoJm5v
ZGUpKQorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShub2RlKTsKICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNyZWF0ZShub2RlKTsKIH0KIApAQCAt
NzM2LDcgKzc0Myw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OmdldE9y
Q3JlYXRlKE5vZGUqIG5vZGUpCiAKICAgICBpZiAoIW5vZGUtPnBhcmVudEVsZW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCisKICAgICBib29sIGlzT3B0aW9uRWxlbWVudCA9
IGlzPEhUTUxPcHRpb25FbGVtZW50Pigqbm9kZSk7CiAgICAgaWYgKGlzT3B0aW9uRWxlbWVudCB8
fCBpczxIVE1MT3B0R3JvdXBFbGVtZW50Pigqbm9kZSkpIHsKICAgICAgICAgYXV0byBzZWxlY3Qg
PSBpc09wdGlvbkVsZW1lbnQKQEAgLTc4Miw3ICs3ODksNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZShOb2RlKiBub2RlKQogICAgIC8vIGl0IHdpbGwg
ZGlzYXBwZWFyIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBmaW5pc2hlZCwgbGVhZGluZyB0byBhIHVz
ZS1hZnRlci1mcmVlLgogICAgIGlmIChuZXdPYmplY3QtPmlzRGV0YWNoZWQoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgCisKICAgICByZXR1cm4gbmV3T2JqZWN0LmdldCgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3Qu
Y3BwCmluZGV4IDI4ODVlZTY4MzhlYS4uNzhjMzI3MGU3ODRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcApAQCAtNDYsNiArNDYs
MTEgQEAgQWNjZXNzaWJpbGl0eUxpc3Q6OkFjY2Vzc2liaWxpdHlMaXN0KFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiB7CiB9CiAKK0FjY2Vzc2liaWxpdHlMaXN0OjpBY2Nlc3NpYmlsaXR5TGlzdChO
b2RlJiBub2RlKQorICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChub2RlKQoreworfQor
CiBBY2Nlc3NpYmlsaXR5TGlzdDo6fkFjY2Vzc2liaWxpdHlMaXN0KCkgPSBkZWZhdWx0OwogCiBS
ZWY8QWNjZXNzaWJpbGl0eUxpc3Q+IEFjY2Vzc2liaWxpdHlMaXN0OjpjcmVhdGUoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKQEAgLTUzLDYgKzU4LDExIEBAIFJlZjxBY2Nlc3NpYmlsaXR5TGlzdD4g
QWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlMaXN0KHJlbmRlcmVyKSk7CiB9CiAKK1Jl
ZjxBY2Nlc3NpYmlsaXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShOb2RlJiBub2Rl
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlMaXN0KG5vZGUpKTsK
K30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQoKSBjb25zdAogewogICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
LmgKaW5kZXggM2EwNjFlOGRkNTk4Li4wZTQwODBiZmE0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmgKQEAgLTM1LDExICszNSwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBY2Nlc3NpYmlsaXR5TGlzdCBmaW5hbCA6IHB1
YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PEFjY2Vzc2liaWxpdHlMaXN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJl
ZjxBY2Nlc3NpYmlsaXR5TGlzdD4gY3JlYXRlKE5vZGUmKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3Np
YmlsaXR5TGlzdCgpOwogCiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qg
b3ZlcnJpZGU7CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlMaXN0KFJlbmRl
ck9iamVjdCopOworICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlMaXN0KE5vZGUmKTsKICAgICBi
b29sIGlzTGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGlz
VW5vcmRlcmVkTGlzdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNPcmRlcmVkTGlzdCgp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA5MWM2NzM5NzZhNTQuLjczYzg3
OTk4YmIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTIxNSw4ICsyMTUsMjcgQEAgQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhcmVudE9iamVjdCgpIGNvbnN0
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0xheW91dFJlY3QgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmNoZWNrYm94T3JSYWRpb1JlY3QoKSBjb25zdAoreworICAgIGF1dG8qIGxhYmVsID0g
bGFiZWxGb3JFbGVtZW50KGR5bmFtaWNEb3duY2FzdDxFbGVtZW50Pihub2RlKCkpKTsKKyAgICBp
ZiAoIWxhYmVsIHx8ICFsYWJlbC0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIGJvdW5kaW5n
Qm94UmVjdCgpOworCisgICAgYXV0byogY2FjaGUgPSBheE9iamVjdENhY2hlKCk7CisgICAgaWYg
KCFjYWNoZSkKKyAgICAgICAgcmV0dXJuIGJvdW5kaW5nQm94UmVjdCgpOworCisgICAgLy8gQSBj
aGVja2JveCBvciByYWRpbyBidXR0b24gc2hvdWxkIGVuY29tcGFzcyBpdHMgbGFiZWwuCisgICAg
YXV0byBsYWJlbFJlY3QgPSBjYWNoZS0+Z2V0T3JDcmVhdGUobGFiZWwpLT5lbGVtZW50UmVjdCgp
OworICAgIGxhYmVsUmVjdC51bml0ZShib3VuZGluZ0JveFJlY3QoKSk7CisgICAgcmV0dXJuIGxh
YmVsUmVjdDsKK30KKwogTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZWxlbWVu
dFJlY3QoKSBjb25zdAogeworICAgIGlmIChpc0NoZWNrYm94T3JSYWRpbygpKQorICAgICAgICBy
ZXR1cm4gY2hlY2tib3hPclJhZGlvUmVjdCgpOworCiAgICAgcmV0dXJuIGJvdW5kaW5nQm94UmVj
dCgpOwogfQogCkBAIC00OTAsMTMgKzUwOSwxMyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjphZGRDaGlsZHJlbigpCiB7CiAgICAgLy8gSWYgdGhlIG5lZWQgdG8gYWRkIG1vcmUgY2hp
bGRyZW4gaW4gYWRkaXRpb24gdG8gZXhpc3RpbmcgY2hpbGRyZW4gYXJpc2VzLCAKICAgICAvLyBj
aGlsZHJlbkNoYW5nZWQgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQsIGxlYXZpbmcgdGhlIG9iamVj
dCB3aXRoIG5vIGNoaWxkcmVuLgotICAgIEFTU0VSVCghbV9jaGlsZHJlbkluaXRpYWxpemVkKTsg
CisgICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5pdGlhbGl6ZWQpOwogICAgIAotICAgIGlmICghbV9u
b2RlKQotICAgICAgICByZXR1cm47Ci0KICAgICBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgPSB0cnVl
OwogCisgICAgaWYgKCFjYW5IYXZlQ2hpbGRyZW4oKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
Ly8gVGhlIG9ubHkgdGltZSB3ZSBhZGQgY2hpbGRyZW4gZnJvbSB0aGUgRE9NIHRyZWUgdG8gYSBu
b2RlIHdpdGggYSByZW5kZXJlciBpcyB3aGVuIGl0J3MgYSBjYW52YXMuCiAgICAgaWYgKHJlbmRl
cmVyKCkgJiYgIW5vZGUoKS0+aGFzVGFnTmFtZShjYW52YXNUYWcpKQogICAgICAgICByZXR1cm47
CkBAIC01MDcsMjIgKzUyNiwxOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphZGRD
aGlsZHJlbigpCiAKICAgICBmb3IgKGF1dG8qIGNoaWxkID0gbm9kZSgpLT5maXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAgICBhZGRDaGlsZChv
YmplY3RDYWNoZS0+Z2V0T3JDcmVhdGUoY2hpbGQpKTsKLSAgICAKKwogICAgIHVwZGF0ZU93bmVk
Q2hpbGRyZW4oKTsKICAgICBtX3N1YnRyZWVEaXJ0eSA9IGZhbHNlOwogfQogCiBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogewotICAgIC8vIElm
IHRoaXMgaXMgYW4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCwgdGhlbiBpdCdzIG9rYXkgaWYg
dGhpcyBvYmplY3QKLSAgICAvLyBkb2Vzbid0IGhhdmUgYSBub2RlIC0gdGhlcmUgYXJlIHNvbWUg
cmVuZGVyZXJzIHRoYXQgZG9uJ3QgaGF2ZSBhc3NvY2lhdGVkCi0gICAgLy8gbm9kZXMsIGxpa2Ug
c2Nyb2xsIGFyZWFzIGFuZCBjc3MtZ2VuZXJhdGVkIHRleHQuCi0gICAgaWYgKCFub2RlKCkgJiYg
IWlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
ICAgICAvLyBXaGVuIDxub3NjcmlwdD4gaXMgbm90IGJlaW5nIHVzZWQgKGl0cyByZW5kZXJlcigp
ID09IDApLCBpZ25vcmUgaXRzIGNoaWxkcmVuLgogICAgIGlmIChub2RlKCkgJiYgIXJlbmRlcmVy
KCkgJiYgbm9kZSgpLT5oYXNUYWdOYW1lKG5vc2NyaXB0VGFnKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIC8vIElmIHRoaXMgaXMgYW4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCwgdGhl
biBpdCdzIG9rYXkgaWYgdGhpcyBvYmplY3QKKyAgICAvLyBkb2Vzbid0IGhhdmUgYSBub2RlIC0g
dGhlcmUgYXJlIHNvbWUgcmVuZGVyZXJzIHRoYXQgZG9uJ3QgaGF2ZSBhc3NvY2lhdGVkCisgICAg
Ly8gbm9kZXMsIGxpa2Ugc2Nyb2xsIGFyZWFzIGFuZCBjc3MtZ2VuZXJhdGVkIHRleHQuCiAKICAg
ICAvLyBFbGVtZW50cyB0aGF0IHNob3VsZCBub3QgaGF2ZSBjaGlsZHJlbi4KICAgICBzd2l0Y2gg
KHJvbGVWYWx1ZSgpKSB7CkBAIC01NzIsNiArNTg4LDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgIC8vIGl0
J3MgYmVlbiBpbml0aWFsaXplZC4KICAgICBBU1NFUlQobV9pbml0aWFsaXplZCk7CiAjZW5kaWYK
KyAgICBpZiAoIW5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBIYW5kbGUg
bm9uLXJlbmRlcmVkIHRleHQgdGhhdCBpcyBleHBvc2VkIHRocm91Z2ggYXJpYS1oaWRkZW49ZmFs
c2UuCiAgICAgaWYgKG5vZGUoKSAmJiBub2RlKCktPmlzVGV4dE5vZGUoKSAmJiAhcmVuZGVyZXIo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5oCmluZGV4IDdlMzMzODNiZWRjMS4uNTZkNTNiZWQ3NTMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCkBAIC0xNjEsNiArMTYxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdDsKICAgICBBY2Nl
c3NpYmlsaXR5Um9sZSByZW1hcEFyaWFSb2xlRHVlVG9QYXJlbnQoQWNjZXNzaWJpbGl0eVJvbGUp
IGNvbnN0OwogCisgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIGNs
ZWFyQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuSWZOZWNlc3Nh
cnkoKSBvdmVycmlkZTsKQEAgLTIxMCwxMyArMjExLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCB2
aXNpYmxlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7CiAgICAgU3RyaW5n
IGFsdGVybmF0aXZlVGV4dEZvcldlYkFyZWEoKSBjb25zdDsKICAgICB2b2lkIGFyaWFMYWJlbGVk
QnlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKLSAgICBib29sIGNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCB1c2Vz
QWx0VGFnRm9yVGV4dENvbXB1dGF0aW9uKCkgY29uc3Q7CiAgICAgYm9vbCByb2xlSWdub3Jlc1Rp
dGxlKCkgY29uc3Q7CiAgICAgYm9vbCBwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoU3Rl
cEFjdGlvbik7CiAgICAgdm9pZCBzZXROb2RlVmFsdWUoU3RlcEFjdGlvbiwgZmxvYXQpOwogICAg
IGJvb2wgcGVyZm9ybURpc21pc3NBY3Rpb24oKSBmaW5hbDsKICAgICBib29sIGhhc1RleHRBbHRl
cm5hdGl2ZSgpIGNvbnN0OworICAgIExheW91dFJlY3QgY2hlY2tib3hPclJhZGlvUmVjdCgpIGNv
bnN0OwogCiAgICAgdm9pZCBzZXROZWVkc1RvVXBkYXRlQ2hpbGRyZW4oKSBvdmVycmlkZSB7IG1f
Y2hpbGRyZW5EaXJ0eSA9IHRydWU7IH0KICAgICBib29sIG5lZWRzVG9VcGRhdGVDaGlsZHJlbigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2hpbGRyZW5EaXJ0eTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXgg
MmY2N2MwYzIzNzJmLi5iMzBlYTFlYWEzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtNDQ4LDcgKzQ0OCw3IEBA
IEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnByZXZpb3VzU2libGlu
Z1VuaWdub3JlZChpbnQgbGltaXQpIGNvCiBGbG9hdFJlY3QgQWNjZXNzaWJpbGl0eU9iamVjdDo6
Y29udmVydEZyYW1lVG9TcGFjZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lUmVjdCwgQWNjZXNzaWJp
bGl0eUNvbnZlcnNpb25TcGFjZSBjb252ZXJzaW9uU3BhY2UpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICAKKwogICAgIC8vIEZpbmQgdGhlIGFwcHJvcHJpYXRlIHNj
cm9sbCB2aWV3IHRvIHVzZSB0byBjb252ZXJ0IHRoZSBjb250ZW50cyB0byB0aGUgd2luZG93Lgog
ICAgIGNvbnN0IGF1dG8gcGFyZW50QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcgPSBhbmNlc3RvckFj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3KGZhbHNlIC8qIGluY2x1ZGVTZWxmICovKTsKICAgICBhdXRv
KiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcgPyBwYXJl
bnRBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy0+c2Nyb2xsVmlldygpIDogbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5k
ZXggMWZiZTdhYjUzYmVkLi44ZDk1N2ZkNzhmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0yNTgsNyArMjU4LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlY29tcHV0ZUlzSWdub3JlZCgpOwotICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWZhdWx0T2JqZWN0SW5jbHVzaW9u
KCkgY29uc3Q7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWZhdWx0T2JqZWN0
SW5jbHVzaW9uKCkgY29uc3Q7CiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZh
dWx0KCkgY29uc3Q7CiAKICAgICBib29sIGlzU2hvd2luZ1ZhbGlkYXRpb25NZXNzYWdlKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBmNTcyYjcxMTY1MGEuLjY4NWYxODY1ZDNjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMzIsNiArMTMyLDEzIEBAIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKICNlbmRpZgogfQogCitBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0KE5vZGUmIG5vZGUpCisgICAgOiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dCgmbm9kZSkKK3sKKyAgICAvLyBXZSBzaG91bGQgb25seSBldmVyIGNyZWF0ZSBhbiBpbnN0YW5j
ZSBvZiB0aGlzIGNsYXNzIHdpdGggYSBub2RlIGlmIHRoYXQgbm9kZSBoYXMgbm8gcmVuZGVyZXIg
KGkuZS4gYmVjYXVzZSBvZiBkaXNwbGF5OmNvbnRlbnRzKS4KKyAgICBBU1NFUlQoIW5vZGUucmVu
ZGVyZXIoKSk7Cit9CisKIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6On5BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KCkKIHsKICAgICBBU1NFUlQoaXNEZXRhY2hlZCgpKTsKQEAgLTIxOCw3ICsy
MjUsNyBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFzdENoaWxkQ29uc2lkZXJpbmdD
b250aW51YXRpb24oUmVuZGVyT2JqZWN0JiByZW5kZQogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Zmlyc3RDaGlsZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpmaXJzdENoaWxkKCk7CiAgICAgCiAgICAgUmVuZGVyT2JqZWN0
KiBmaXJzdENoaWxkID0gZmlyc3RDaGlsZENvbnNpZGVyaW5nQ29udGludWF0aW9uKCptX3JlbmRl
cmVyKTsKIApAQCAtMjM2LDcgKzI0Myw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmZpcnN0Q2hpbGQoKSBjb25zdAogQWNjZXNzaWJpbGl0eU9iamVj
dCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGFzdENoaWxkKCkgY29uc3QKIHsKICAgICBp
ZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omxhc3RDaGlsZCgpOwogCiAgICAgUmVuZGVyT2JqZWN0
KiBsYXN0Q2hpbGQgPSBsYXN0Q2hpbGRDb25zaWRlcmluZ0NvbnRpbnVhdGlvbigqbV9yZW5kZXJl
cik7CiAKQEAgLTMxMyw3ICszMjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmlyc3RDaGlsZElz
SW5saW5lQ29udGludWF0aW9uKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cHJldmlvdXNTaWJsaW5nKCkgY29u
c3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnByZXZpb3VzU2libGluZygpOwog
CiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1NpYmxpbmcgPSBudWxscHRyOwogCkBAIC0zNjAs
NyArMzY3LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBsYXN0Q2hpbGRIYXNDb250aW51YXRpb24o
UmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcmVu
ZGVyZXIgfHwgaXM8UmVuZGVyVmlldz4oKm1fcmVuZGVyZXIpKQorICAgIGlmICghbV9yZW5kZXJl
cikKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpuZXh0U2libGluZygp
OworCisgICAgaWYgKGlzPFJlbmRlclZpZXc+KG1fcmVuZGVyZXIpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmcgPSBudWxscHRyOwpAQCAt
NDgzLDcgKzQ5Myw3IEBAIFJlbmRlck9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
cmVuZGVyUGFyZW50T2JqZWN0KCkgY29uc3QKICAgICAgICAgCiAgICAgcmV0dXJuIHBhcmVudDsK
IH0KLSAgICAKKwogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6cGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdAogewogICAgIEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gYXhPYmplY3RDYWNoZSgpOwpAQCAtNTEyLDcgKzUyMiw3IEBAIEFjY2Vzc2liaWxpdHlP
YmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhcmVudE9iamVjdCgpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBkaXNwbGF5Q29udGVudHNQYXJlbnQ7CiAKICAgICBpZiAoIW1fcmVuZGVy
ZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OnBhcmVudE9iamVjdCgpOwogCiAgICAgV2Vha1B0ciBjYWNoZSA9IGF4T2Jq
ZWN0Q2FjaGUoKTsKICAgICBpZiAoIWNhY2hlKQpAQCAtNjE0LDcgKzYyNCw3IEBAIEVsZW1lbnQq
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFuY2hvckVsZW1lbnQoKSBjb25zdAogU3RyaW5n
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmhlbHBUZXh0KCkgY29uc3QKIHsKICAgICBpZiAo
IW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6aGVscFRleHQoKTsKIAogICAgIGNvbnN0IGF1dG8mIGFyaWFIZWxw
ID0gZ2V0QXR0cmlidXRlKGFyaWFfaGVscEF0dHIpOwogICAgIGlmICghYXJpYUhlbHAuaXNFbXB0
eSgpKQpAQCAtNjUxLDcgKzY2MSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpoZWxwVGV4dCgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4
dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUgbW9kZSkgY29u
c3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAg
ICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KG1v
ZGUpOwogCiAgICAgaWYgKGlzPFJlbmRlckZpbGVVcGxvYWRDb250cm9sPigqbV9yZW5kZXJlcikp
CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJGaWxlVXBsb2FkQ29udHJvbD4oKm1fcmVu
ZGVyZXIpLmJ1dHRvblZhbHVlKCk7CkBAIC03NDQsMTcgKzc1NCwxNSBAQCBib29sIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnNob3VsZEdldFRleHRGcm9tTm9kZShBY2Nlc3NpYmlsaXR5VGV4
dFVuZGVyRWxlbQogCiBOb2RlKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpub2RlKCkgY29u
c3QKIHsKLSAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IGlmIChtX3JlbmRlcmVyLT5pc1JlbmRlclZpZXcoKSkKLSAgICAgICAgcmV0dXJuICZtX3JlbmRl
cmVyLT5kb2N1bWVudCgpOwotICAgIHJldHVybiBtX3JlbmRlcmVyLT5ub2RlKCk7Ci19ICAgIAor
ICAgIGlmIChtX3JlbmRlcmVyKQorICAgICAgICByZXR1cm4gTElLRUxZKCFtX3JlbmRlcmVyLT5p
c1JlbmRlclZpZXcoKSkgPyBtX3JlbmRlcmVyLT5ub2RlKCkgOiAmbV9yZW5kZXJlci0+ZG9jdW1l
bnQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Om5vZGUoKTsKK30KIAog
U3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6c3RyaW5nVmFsdWUoKTsKIAogICAgIGlmIChpc1N0
YXRpY1RleHQoKSB8fCBpc1RleHRDb250cm9sKCkgfHwgaXNTZWN1cmVGaWVsZCgpKQogICAgICAg
ICByZXR1cm4gdGV4dCgpOwpAQCAtODI2LDcgKzgzNCw3IEBAIExheW91dFJlY3QgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKICAgICBSZW5kZXJPYmpl
Y3QqIG9iaiA9IHJlbmRlcmVyKCk7CiAgICAgCiAgICAgaWYgKCFvYmopCi0gICAgICAgIHJldHVy
biBMYXlvdXRSZWN0KCk7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
Ym91bmRpbmdCb3hSZWN0KCk7CiAgICAgCiAgICAgaWYgKG9iai0+bm9kZSgpKSAvLyBJZiB3ZSBh
cmUgYSBjb250aW51YXRpb24sIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRvIHVzZSB0aGUgcHJpbWFy
eSByZW5kZXJlci4KICAgICAgICAgb2JqID0gb2JqLT5ub2RlKCktPnJlbmRlcmVyKCk7CkBAIC04
NjAsMjkgKzg2OCw2IEBAIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91
bmRpbmdCb3hSZWN0KCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogICAgIAotTGF5b3V0
UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjaGVja2JveE9yUmFkaW9SZWN0KCkgY29u
c3QKLXsKLSAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7
Ci0gICAgCi0gICAgSFRNTExhYmVsRWxlbWVudCogbGFiZWwgPSBsYWJlbEZvckVsZW1lbnQoZG93
bmNhc3Q8RWxlbWVudD4obV9yZW5kZXJlci0+bm9kZSgpKSk7Ci0gICAgaWYgKCFsYWJlbCB8fCAh
bGFiZWwtPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBib3VuZGluZ0JveFJlY3QoKTsKLSAg
ICAKLSAgICBMYXlvdXRSZWN0IGxhYmVsUmVjdCA9IGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVh
dGUobGFiZWwpLT5lbGVtZW50UmVjdCgpOwotICAgIGxhYmVsUmVjdC51bml0ZShib3VuZGluZ0Jv
eFJlY3QoKSk7Ci0gICAgcmV0dXJuIGxhYmVsUmVjdDsKLX0KLQotTGF5b3V0UmVjdCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjplbGVtZW50UmVjdCgpIGNvbnN0Ci17Ci0gICAgLy8gYSBjaGVj
a2JveCBvciByYWRpbyBidXR0b24gc2hvdWxkIGVuY29tcGFzcyBpdHMgbGFiZWwKLSAgICBpZiAo
aXNDaGVja2JveE9yUmFkaW8oKSkKLSAgICAgICAgcmV0dXJuIGNoZWNrYm94T3JSYWRpb1JlY3Qo
KTsKLSAgICAKLSAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7Ci19Ci0KIGJvb2wgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNQYXRoKCkgY29uc3QKIHsKICAgICByZXR1cm4g
aXM8UmVuZGVyVGV4dD4ocmVuZGVyZXIoKSkgfHwgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+
aXNTVkdTaGFwZU9yTGVnYWN5U1ZHU2hhcGUoKSk7CkBAIC0xMDYyLDEzICsxMDQ3LDYgQEAgc3Rh
dGljIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gb2JqZWN0SW5jbHVzaW9uRnJvbUFsdFRl
eHQoY29uc3QgU3RyaW5nJiBhbHQKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1
c2lvbjo6RGVmYXVsdEJlaGF2aW9yOwogfQogCi1BY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9u
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oKSBjb25z
dAotewotICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlP
YmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdDsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oKTsKLX0KLSAgICAKIHN0YXRpYyBib29s
IHdlYkFyZWFJc1ByZXNlbnRhdGlvbmFsKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiAgICAg
aWYgKCFyZW5kZXJlciB8fCAhaXM8UmVuZGVyVmlldz4oKnJlbmRlcmVyKSkKQEAgLTEwODcsNyAr
MTA2NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoKSBjb25zdAogI2VuZGlmCiAKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0g
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiAKICAgICAvLyBDaGVjayBmaXJz
dCBpZiBhbnkgb2YgdGhlIGNvbW1vbiByZWFzb25zIGNhdXNlIHRoaXMgZWxlbWVudCB0byBiZSBp
Z25vcmVkLgogICAgIC8vIFRoZW4gcHJvY2VzcyBvdGhlciB1c2UgY2FzZXMgdGhhdCBuZWVkIHRv
IGJlIGFwcGxpZWQgdG8gYWxsIHRoZSB2YXJpb3VzIHJvbGVzCkBAIC0xNTI4LDcgKzE1MDYsNyBA
QCBSZW5kZXJWaWV3KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0b3BSZW5kZXJlcigpIGNv
bnN0CiBEb2N1bWVudCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnQoKSBjb25z
dAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1lbnQoKTsKICAgICByZXR1
cm4gJm1fcmVuZGVyZXItPmRvY3VtZW50KCk7CiB9CiAKQEAgLTE2MDIsOSArMTU4MCw4IEBAIEFY
Q29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmRvY3VtZW50TGluCiBMb2NhbEZyYW1lVmlldyogQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6ZG9jdW1lbnRGcmFtZVZpZXcoKSBjb25zdCAKIHsgCiAgICAgaWYgKCFtX3JlbmRl
cmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojpkb2N1bWVudEZyYW1lVmlldygpOwogCi0gICAgLy8gdGhpcyBpcyB0aGUg
UmVuZGVyT2JqZWN0J3MgRG9jdW1lbnQncyBGcmFtZSdzIExvY2FsRnJhbWVWaWV3CiAgICAgcmV0
dXJuICZtX3JlbmRlcmVyLT52aWV3KCkuZnJhbWVWaWV3KCk7CiB9CiAKQEAgLTI2MDMsNyArMjU4
MCwxMSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNo
aWxkcmVuQ3JlYXRpb24oKQogICAgIAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojph
ZGRDaGlsZHJlbigpCiB7Ci0gICAgLy8gSWYgdGhlIG5lZWQgdG8gYWRkIG1vcmUgY2hpbGRyZW4g
aW4gYWRkaXRpb24gdG8gZXhpc3RpbmcgY2hpbGRyZW4gYXJpc2VzLCAKKyAgICBpZiAoVU5MSUtF
TFkoIXJlbmRlcmVyKCkpKSB7CisgICAgICAgIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjphZGRD
aGlsZHJlbigpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIElmIHRoZSBuZWVkIHRv
IGFkZCBtb3JlIGNoaWxkcmVuIGluIGFkZGl0aW9uIHRvIGV4aXN0aW5nIGNoaWxkcmVuIGFyaXNl
cywKICAgICAvLyBjaGlsZHJlbkNoYW5nZWQgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQsIGxlYXZp
bmcgdGhlIG9iamVjdCB3aXRoIG5vIGNoaWxkcmVuLgogICAgIEFTU0VSVCghbV9jaGlsZHJlbklu
aXRpYWxpemVkKTsgCiAKQEAgLTI2NDUsMTEgKzI2MjYsNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKCkKICAgICB1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNy
ZWF0aW9uKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2FuSGF2ZUNo
aWxkcmVuKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yZW5kZXJlciAmJiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCk7Ci19Ci0KIHZvaWQgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c2V0QWNjZXNzaWJsZU5hbWUoY29uc3QgQXRvbVN0cmluZyYgbmFtZSkKIHsK
ICAgICAvLyBTZXR0aW5nIHRoZSBhY2Nlc3NpYmxlIG5hbWUgY2FuIHN0b3JlIHRoZSB2YWx1ZSBp
biB0aGUgRE9NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDQ2ZTk2NTcwMGYwZC4uOGM2ZWMyM2VkNzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNjcsOSArNjcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
YXNVbmRlcmxpbmUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0QWNjZXNzaWJsZU5h
bWUoY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwotCi0gICAgLy8gUHJvdmlkZXMgY29tbW9u
IGxvZ2ljIHVzZWQgYnkgYWxsIGVsZW1lbnRzIHdoZW4gZGV0ZXJtaW5pbmcgaXNJZ25vcmVkLgot
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVmYXVsdE9iamVjdEluY2x1c2lvbigp
IGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIGludCBsYXlvdXRDb3VudCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIApAQCAtODgsMTcgKzg1LDE0IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBhbmNo
b3JFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgTGF5b3V0UmVjdCBib3VuZGlu
Z0JveFJlY3QoKSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRSZWN0IGVsZW1lbnRSZWN0KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9yZW5kZXJlci5nZXQoKTsgfQogICAgIFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiByZW5kZXJCb3hNb2RlbE9iamVjdCgpIGNvbnN0OwogICAgIE5vZGUqIG5vZGUoKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IG92ZXJyaWRlOwot
CiAgICAgUmVuZGVyVmlldyogdG9wUmVuZGVyZXIoKSBjb25zdDsKLSAgICBSZW5kZXJUZXh0Q29u
dHJvbCogdGV4dENvbnRyb2woKSBjb25zdDsKLSAgICAKKwogICAgIFVSTCB1cmwoKSBjb25zdCBv
dmVycmlkZTsKICAgICBQbGFpblRleHRSYW5nZSBzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGludCBpbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKSBjb25zdCBvdmVycmlk
ZTsKQEAgLTExNyw3ICsxMTEsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRWYWx1ZShjb25zdCBT
dHJpbmcmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKLSAg
ICBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgVmlzaWJsZVBv
c2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9uUmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBW
aXNpYmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZUZvckxpbmUodW5zaWduZWQp
IGNvbnN0IG92ZXJyaWRlOwpAQCAtMTQ1LDExICsxMzgsMTIgQEAgcHVibGljOgogCiBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5kZXJPYmplY3Qq
KTsKKyAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KE5vZGUmKTsKICAgICB2
b2lkIGRldGFjaFJlbW90ZVBhcnRzKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSkgb3ZlcnJp
ZGU7CiAgICAgU2Nyb2xsYWJsZUFyZWEqIGdldFNjcm9sbGFibGVBcmVhSWZTY3JvbGxhYmxlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBJbnRQb2ludCYpIGNvbnN0
IG92ZXJyaWRlOwogICAgIAotICAgIGJvb2wgaXNEZXRhY2hlZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICFtX3JlbmRlcmVyOyB9CisgICAgYm9vbCBpc0RldGFjaGVkKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIW1fcmVuZGVyZXIgJiYgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzRGV0YWNo
ZWQoKTsgfQogCiAgICAgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVSb2xlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUo
KSBvdmVycmlkZTsKQEAgLTE2OSw3ICsxNjMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbm9kZUlz
VGV4dENvbnRyb2woY29uc3QgTm9kZSopIGNvbnN0OwogICAgIFBhdGggZWxlbWVudFBhdGgoKSBj
b25zdCBvdmVycmlkZTsKICAgICAKLSAgICBMYXlvdXRSZWN0IGNoZWNrYm94T3JSYWRpb1JlY3Qo
KSBjb25zdDsKICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlJbWFnZU1hcEhpdFRlc3Qo
SFRNTEFyZWFFbGVtZW50KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBhY2Nlc3NpYmlsaXR5UGFyZW50Rm9ySW1hZ2VNYXAoSFRNTE1hcEVsZW1lbnQq
KSBjb25zdDsKICAgICBBWENvcmVPYmplY3QqIGVsZW1lbnRBY2Nlc3NpYmlsaXR5SGl0VGVzdChj
b25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5odG1sCmluZGV4IDA1
ZGU3YzM1MWFhNi4uYTkwNWEwNGVkNzA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5odG1sCkBAIC0xMTEsNyAr
MTExLDkgQEAKIAogICAgIDxvdXRwdXQgaGlkZGVuIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9Im91
dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CiAKLSAgICA8bWVudSBoaWRkZW4gYXJpYS1oaWRkZW49ImZh
bHNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CisgICAgPG1lbnUg
aGlkZGVuIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJh
ciI+CisgICAgICAgIDxsaSBoaWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIj5IZWxsbyB3b3JsZDwv
bGk+CisgICAgPC9tZW51PgogCiAgICAgPGhyIGhpZGRlbiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlk
PSJociI+PC9ocj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNw
bGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGY4YmRjZTQ5YTA1NS4uNmZhNTM4NWQ5YTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQt
cm9sZXMtZXhwZWN0ZWQudHh0CkBAIC01MSw2ICs1MSw3IEBAIFRoaXMgdGVzdCBlbnN1cmVzIGVs
ZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4K
IAogPGRsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRsIj48L2RsPgogICAgIEFYUm9sZTogQVhMaXN0
CisgICAgQVhTdWJyb2xlOiBBWERlc2NyaXB0aW9uTGlzdAogCiA8ZHQgY2xhc3M9InRlc3RjYXNl
IiBpZD0iZHQiPjwvZHQ+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0xMDIsNiArMTAzLDExIEBA
IFRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhh
dmUgdGhlIGNvcnJlY3Qgcm9sZS4KIDxtZW51IGNsYXNzPSJ0ZXN0Y2FzZSIgdHlwZT0idG9vbGJh
ciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgogICAgIEFYUm9sZTogQVhMaXN0CiAgICAgY29t
cHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0CisKKzxs
aSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgorICAgIEFYUm9sZTog
QVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdGl0ZW0KIAogPG5hdiBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJuYXYiPjwvbmF2PgogICAgIEFYUm9sZTogQVhHcm91cApAQCAtMTExLDYg
KzExNyw3IEBAIFRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNv
bnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KIDxvbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJv
bCI+PC9vbD4KICAgICBBWFJvbGU6IEFYTGlzdAogICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlz
dAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8bGkgY2xhc3M9InRlc3RjYXNlIiBp
ZD0ib2wtbGktZWxlbWVudCI+PC9saT4KICAgICBBWFJvbGU6IEFYR3JvdXAKQEAgLTE1NSw2ICsx
NjIsNyBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250
ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiA8dWwgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwi
PjwvdWw+CiAgICAgQVhSb2xlOiBBWExpc3QKICAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QK
KyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExpc3QKIAogPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
InVsLWxpLWVsZW1lbnQiPjwvbGk+CiAgICAgQVhSb2xlOiBBWEdyb3VwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQt
cm9sZXMuaHRtbAppbmRleCBmMGNjM2Y2NTQ5YjQuLmI5ODQwZWU3ZGFlYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxl
bWVudC1yb2xlcy5odG1sCkBAIC02MywxMiArNjMsMTYgQEAKIAogICAgIDxtYXJrIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9Im1hcmsiPk1hcmtlZCB0ZXh0PC9tYXJrPgogCi0gICAgPG1lbnUgY2xhc3M9
InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CisgICAg
PG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj4K
KyAgICAgICAgPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPkhlbGxvIHdv
cmxkPC9saT4KKyAgICAgICAgPGxpPmxpc3QgaXRlbSB3aXRoIHJlbmRlcmVyPC9saT4KKyAgICA8
L21lbnU+CiAKICAgICA8bmF2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+TmF2PC9uYXY+CiAK
ICAgICA8b2wgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wiPgogICAgICAgICA8bGkgY2xhc3M9InRl
c3RjYXNlIiBpZD0ib2wtbGktZWxlbWVudCI+SGVsbG8gd29ybGQ8L2xpPgorICAgICAgICA8bGk+
bGlzdCBpdGVtIHdpdGggcmVuZGVyZXI8L2xpPgogICAgIDwvb2w+CiAKICAgICA8b3V0cHV0IGNs
YXNzPSJ0ZXN0Y2FzZSIgaWQ9Im91dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CkBAIC04OSw2ICs5Myw3
IEBACiAKICAgICA8dWwgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwiPgogICAgICAgICA8bGkgY2xh
c3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+SGVsbG8gd29ybGQ8L2xpPgorICAgICAg
ICA8bGk+bGlzdCBpdGVtIHdpdGggcmVuZGVyZXI8L2xpPgogICAgIDwvdWw+CiA8L2Rpdj4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2FyaWEt
dmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50
eHQKaW5kZXggZjEyNTExZjYxOTU3Li5mNzQxNDE0MzcyYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmls
aXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtMTA1LDEyICsx
MDUsMTAgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRo
b3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKICAgICBBWFJvbGU6IEFYRGVzY3JpcHRp
b25MaXN0CiAKIDxvbCBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0ib2wiPjwvb2w+
Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBB
WFJvbGU6IEFYR3JvdXAKIAogPHVsIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJ1
bCI+PC91bD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlz
dAorICAgIEFYUm9sZTogQVhHcm91cAogCiA8ZmlndXJlIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0i
ZmFsc2UiIGlkPSJmaWd1cmUiPjwvZmlndXJlPgogICAgIEFYUm9sZTogQVhHcm91cApAQCAtMTgw
LDggKzE3OCw3IEBAIFRoaXMgdGVzdCBlbnN1cmVzIEFSSUEgdmlzaWJsZSBlbGVtZW50cyAoZS5n
LiB0aG9zZSB3aXRoIGJvdGggYGhpZGRlbmAgYW5kIGBhcmlhCiAgICAgY29tcHV0ZWRSb2xlU3Ry
aW5nOiBzdGF0dXMKIAogPG1lbnUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0i
dG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgotICAgIEFYUm9sZTogQVhMaXN0Ci0g
ICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCiAKIDxociBo
aWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaHIiPgogICAgIEFYUm9sZTogQVhTZXBh
cmF0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0
eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1y
b2xlcy1leHBlY3RlZC50eHQKaW5kZXggOThmMjI2NTYwN2U2Li5kZDg3YmJkYWY0MWQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNv
bnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhw
ZWN0ZWQudHh0CkBAIC04OSw2ICs4OSwxMCBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3
aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiAgICAgQVhS
b2xlOiBBWExpc3QKICAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKIAorPGxpIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPjwvbGk+CisgICAgQVhSb2xlOiBBWExpc3RJdGVt
CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0aXRlbQorCiA8bmF2IGNsYXNzPSJ0ZXN0Y2Fz
ZSIgaWQ9Im5hdiI+PC9uYXY+CiAgICAgQVhSb2xlOiBBWExhbmRtYXJrTmF2aWdhdGlvbgogICAg
IGNvbXB1dGVkUm9sZVN0cmluZzogbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2Rp
c3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKaW5kZXggMTJmMWM3ZGQw
MjU2Li5kNzliMDAzZTg4ZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9h
Y2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250
ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtNzIsNiArNzIsOSBAQCBUaGlzIHRl
c3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBj
b3JyZWN0IHJvbGUuCiA8bWVudSBjbGFzcz0idGVzdGNhc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJt
ZW51LXRvb2xiYXIiPjwvbWVudT4KICAgICBMaXN0CiAKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlk
PSJ1bC1saS1lbGVtZW50Ij48L2xpPgorICAgIExpc3RJdGVtCisKIDxuYXYgY2xhc3M9InRlc3Rj
YXNlIiBpZD0ibmF2Ij48L25hdj4KICAgICBMYW5kbWFya05hdmlnYXRpb24KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJs
ZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQK
aW5kZXggYzkzYzBiM2Q0ZGJmLi40ODYyMGFmNDE0NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3Np
YmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtMTE0LDE0
ICsxMTQsMTUgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcu
IHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKIAogPGRsIGhpZGRlbj0iIiBhcmlh
LWhpZGRlbj0iZmFsc2UiIGlkPSJkbCI+PC9kbD4KICAgICBBWFJvbGU6IEFYTGlzdAorICAgIEFY
U3Vicm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAogPG9sIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0i
ZmFsc2UiIGlkPSJvbCI+PC9vbD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9sZTogQVhDb250
ZW50TGlzdAogCiA8dWwgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9InVsIj48L3Vs
PgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAg
QVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0CiAKIDxmaWd1cmUg
aGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImZpZ3VyZSI+PC9maWd1cmU+CiAgICAg
QVhSb2xlOiBBWEdyb3VwCkBAIC0yMDMsOCArMjA0LDggQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJ
QSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFy
aWEKICAgICBBWFN1YnJvbGU6IEFYQXBwbGljYXRpb25TdGF0dXMKIAogPG1lbnUgaGlkZGVuPSIi
IGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9t
ZW51PgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0Cisg
ICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0CiAKIDxociBo
aWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaHIiPgogICAgIEFYUm9sZTogQVhTcGxp
dHRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmls
aXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQKaW5kZXggZjI4MjM0NGEyMGEwLi5jMWI5YjEwNDc3ODggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2li
bGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVk
LnR4dApAQCAtMTEzLDE0ICsxMTMsMTUgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxl
IGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKIAogPGRs
IGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJkbCI+PC9kbD4KICAgICBBWFJvbGU6
IEFYTGlzdAorICAgIEFYU3Vicm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAogPG9sIGhpZGRlbj0i
IiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJvbCI+PC9vbD4KLSAgICBBWFJvbGU6IEFYTGlzdAot
ICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFY
U3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8dWwgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxz
ZSIgaWQ9InVsIj48L3VsPgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3Ry
aW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRM
aXN0CiAKIDxmaWd1cmUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImZpZ3VyZSI+
PC9maWd1cmU+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0yMDIsOCArMjAzLDggQEAgVGhpcyB0
ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBg
aGlkZGVuYCBhbmQgYGFyaWEKICAgICBBWFN1YnJvbGU6IEFYQXBwbGljYXRpb25TdGF0dXMKIAog
PG1lbnUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1l
bnUtdG9vbGJhciI+PC9tZW51PgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xl
U3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWENvbnRl
bnRMaXN0CiAKIDxociBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaHIiPgogICAg
IEFYUm9sZTogQVhTcGxpdHRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3Bl
L2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1l
bnQtcm9sZXMtZXhwZWN0ZWQudHh0CmluZGV4IDA2ZDg0ZWI3MWY2NC4uMDQ4YjVjZWMyMTM3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvYWNjZXNzaWJpbGl0eS9hcmlhLXZp
c2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd3BlL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQu
dHh0CkBAIC0xMDYsMTIgKzEwNiwxMCBAQCBUaGlzIHRlc3QgZW5zdXJlcyBBUklBIHZpc2libGUg
ZWxlbWVudHMgKGUuZy4gdGhvc2Ugd2l0aCBib3RoIGBoaWRkZW5gIGFuZCBgYXJpYQogICAgIEFY
Um9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAogPG9sIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFs
c2UiIGlkPSJvbCI+PC9vbD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0
cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAogCiA8dWwgaGlkZGVuPSIiIGFyaWEtaGlk
ZGVuPSJmYWxzZSIgaWQ9InVsIj48L3VsPgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0
ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCiAKIDxmaWd1cmUgaGlkZGVu
PSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImZpZ3VyZSI+PC9maWd1cmU+CiAgICAgQVhSb2xl
OiBBWEdyb3VwCkBAIC0xODEsOCArMTc5LDcgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNp
YmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKICAg
ICBjb21wdXRlZFJvbGVTdHJpbmc6IHN0YXR1cwogCiA8bWVudSBoaWRkZW49IiIgYXJpYS1oaWRk
ZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+Ci0gICAg
QVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKyAgICBBWFJvbGU6
IEFYR3JvdXAKIAogPGhyIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJociI+CiAg
ICAgQVhSb2xlOiBBWFNlcGFyYXRvcgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466511</attachid>
            <date>2023-05-26 18:28:06 -0700</date>
            <delta_ts>2023-05-28 12:59:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256950-20230526182805.patch</filename>
            <type>text/plain</type>
            <size>37256</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBiYWI1NmU3ODcyMzdlMmZiNjY2MjZmZmY1ZWZkODY2NDNlMWY4ZGFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCAxNyBNYXkgMjAyMyAyMzoyMzo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFYOiBk
aXNwbGF5OmNvbnRlbnRzIGxpc3RzIGRvbid0IHJldHVybiB0aGUgY29ycmVjdCBzdWJyb2xlCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2OTUwIHJkYXI6Ly9wcm9i
bGVtLzEwOTQ5ODQyMwoKUmV2aWV3ZWQgYnkgQW5kcmVzIEdvbnphbGV6LgoKV2l0aCB0aGlzIHBh
dGNoLCBhbnkgbGlzdC10eXBlIGVsZW1lbnQgKG9sLCB1bCwgZGwsIHJvbGU9Imxpc3QiLCBldGMp
CndpdGggZGlzcGxheTpjb250ZW50cyB3aWxsIG5vdyBwcm9wZXJseSBiZSBjcmVhdGVkIGFzIGFu
CkFjY2Vzc2liaWxpdHlMaXN0IGluc3RhbmNlIHJhdGhlciB0aGFuIGFuIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LgoKVGhlIHNpZ25pZmljYW50IGVmZmVjdHMgb2YgdGhpcyBhcmU6CiAgMS4gVGhl
IGNvcnJlY3Qgc3Vicm9sZSBpcyBub3cgY29tcHV0ZWQgZm9yIHRoZXNlIGVsZW1lbnRzLCB3aGlj
aCBpcwogICAgIGltcG9ydGFudCBiZWNhdXNlIHNvbWUgQVRzIGRvIGNoYW5nZSB0aGVpciBiZWhh
dmlvciBiYXNlZCBvbiB0aGUKICAgICB2YXJpb3VzIGxpc3Qgc3Vicm9sZXMuCiAgMi4gVGhlc2Ug
ZWxlbWVudHMgbm93IHVzZSB0aGUgQWNjZXNzaWJpbGl0eUxpc3Q6OmRldGVybWluZUFjY2Vzc2li
aWxpdHlSb2xlKCkKICAgICAiaXMgdGhpcyBhbiBBWCBsaXN0IG9yIGxheW91dC1vbmx5IGxpc3Qi
IGhldXJpc3RpY3MuCgpJbiBzdXBwb3J0IG9mICMyLCBzb21lIHRlc3RzIGhhZCB0byBiZSBtb2Rp
ZmllZCB0byBoYXZlIHJlbmRlcmVkIGxpc3QgaXRlbXMgaW4Kb3JkZXIgdG8gc3RpbGwgYmUgY29u
c2lkZXJlZCBsaXN0cy4KCldlIGltcGxlbWVudCB0aGlzIGJ5IGFsbG93aW5nIHRoZSBjcmVhdGlv
biBvZiBBY2Nlc3NpYmlsaXR5TGlzdCB3aXRoIG9ubHkgYSBub2RlCmluc3RlYWQgb2YgcmVxdWly
aW5nIGEgcmVuZGVyZXIuCgpUaGUgb3RoZXIsIG1vcmUgc2lnbmlmaWNhbnQgY2hhbmdlIGludHJv
ZHVjZWQgaW4gdGhpcyBwYXRjaCBpcyB0aGF0IG1hbnkKQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dCBtZXRob2RzIGFyZSBub3cgY2hhbmdlZCB0byBmYWxsYmFjayB0byB0aGUKY29ycmVzcG9uZGlu
ZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCBpbXBsZW1lbnRhdGlvbiB3aGVuIHRoZXJlIGlzIG5v
CnJlbmRlcmVyIHJhdGhlciB0aGFuIHJldHVybmluZyBlYXJseS4KClRoaXMgaXMgcmVxdWlyZWQg
YmVjYXVzZSB3ZSBoYXZlIG1hbnkgc3ViY2xhc3NlcyBvZiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0CnRoYXQgYWxzbyBuZWVkIHRvIHN1cHBvcnQgZGlzcGxheTpjb250ZW50cyAoQWNjZXNzaWJp
bGl0eUxpc3QgaXMgb25lIG9mIHRoZXNlKS4KTWFraW5nIHRoaXMgY2hhbmdlIHdlYWtlbnMgb3Vy
IGRlZmluaXRpb24gb2YgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCBmcm9tCiJzaG91bGQgaGF2
ZSBhIHJlbmRlcmVyIiB0byAic2hvdWxkIGhhdmUgYSByZW5kZXJlciBvciBhIG5vZGUiLgoKKiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVu
dC1yb2xlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3Np
YmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJp
bGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVu
dC1yb2xlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZp
c2libGUtZWxlbWVudC1yb2xlcy5odG1sOgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlz
cGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sOgoqIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVu
dC1yb2xlcy1leHBlY3RlZC50eHQ6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OnNob3VsZENyZWF0ZUFjY2Vzc2liaWxpdHlMaXN0KToK
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZyb21SZW5kZXJlcik6CihXZWJD
b3JlOjpjcmVhdGVGcm9tTm9kZSk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0
ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHA6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdDo6QWNjZXNzaWJpbGl0eUxpc3QpOgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmNoZWNrYm94T3JSYWRpb1JlY3QgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmVsZW1lbnRSZWN0IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjphZGRDaGlsZHJlbik6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6Y2FuSGF2ZUNoaWxkcmVuIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojpjb252ZXJ0RnJhbWVUb1NwYWNlIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpmaXJzdENoaWxkIGNvbnN0KToK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omxhc3RDaGlsZCBjb25zdCk6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwcmV2aW91c1NpYmxpbmcgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bmV4dFNpYmxpbmcgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0IGNvbnN0
KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmhlbHBUZXh0IGNvbnN0KToK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQgY29u
c3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bm9kZSBjb25zdCk6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSBjb25zdCk6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpib3VuZGluZ0JveFJlY3QgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1
c2lvbiBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojpkb2N1bWVudCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojpkb2N1bWVudEZyYW1lVmlldyBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjphZGRDaGlsZHJlbik6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpjaGVja2JveE9yUmFkaW9SZWN0IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmVsZW1lbnRSZWN0IGNvbnN0KTogRGVsZXRlZC4KKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbiBjb25zdCk6
IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Lmg6Ci0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcCAgIHwgMTkgKystLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3Bw
ICAgICAgIHwgMTAgKysrCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlM
aXN0LmggfCAgMiArCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgfCA0NyArKysrKysrLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oICAgfCAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAgICAgIHwgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCAg
ICAgICB8ICAyICstCiAuLi4vQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgICAgICAg
ICAgfCA4OCArKysrKysrLS0tLS0tLS0tLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmggfCAxMyArLS0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy5odG1sICAgICAgICAgICB8ICA0ICstCiAuLi5pc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQgfCAgOCArKwogLi4uL2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy5odG1sICAgICAgIHwgIDcgKy0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBl
Y3RlZC50eHQgICB8ICA5ICstCiAuLi5pc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBl
Y3RlZC50eHQgfCAgNCArCiAuLi5pc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3Rl
ZC50eHQgfCAgMyArCiAuLi4vYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0
ICAgfCAxMyArLS0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQg
ICB8IDEzICstLQogLi4uL2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCAg
IHwgIDkgKy0KIDE4IGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCspLCAxMTIgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggMmEyZjgzMWYxZmZkLi5iZjMyNDBiZWU5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNTkxLDE1ICs1OTEsMjAgQEAg
c3RhdGljIGJvb2wgaXNTaW1wbGVJbWFnZShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQog
ICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlMaXN0KE5v
ZGUqIG5vZGUpCit7CisgICAgLy8gSWYgdGhlIG5vZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0
aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBpdCdzIGEKKyAgICAvLyB1bC9vbC9kbCB0eXBlIChp
dCBzaG91bGRuJ3QgYmUgYSBsaXN0IGlmIGFyaWEgc2F5cyBvdGhlcndpc2UpLgorICAgIHJldHVy
biAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShu
b2RlLCAiZGlyZWN0b3J5Il9zKSkKKyAgICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxB
dG9tKCkpICYmIChub2RlLT5oYXNUYWdOYW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9s
VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKGRsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG1lbnVU
YWcpKSkpKTsKK30KKwogUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNy
ZWF0ZU9iamVjdEZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewogICAgIC8v
IEZJWE1FOiBIb3cgY291bGQgcmVuZGVyZXItPm5vZGUoKSBldmVyIG5vdCBiZSBhbiBFbGVtZW50
PwogICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgpOwogCi0gICAgLy8gSWYgdGhlIG5v
ZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBpdHMg
YQotICAgIC8vIG1lbnUvdWwvb2wvZGwgdHlwZSAoaXQgc2hvdWxkbid0IGJlIGEgbGlzdCBpZiBh
cmlhIHNheXMgb3RoZXJ3aXNlKS4KLSAgICBpZiAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUs
ICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5Il9zKSkKLSAgICAgICAg
fHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKCkpICYmIChub2RlLT5oYXNUYWdOYW1lKG1l
bnVUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xU
YWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZGxUYWcpKSkpKQorICAgIGlmIChpc0FjY2Vzc2liaWxp
dHlMaXN0KG5vZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShy
ZW5kZXJlcik7CiAKICAgICAvLyBhcmlhIHRhYmxlcwpAQCAtNjc2LDYgKzY4MSw4IEBAIFJlZjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PiBBWE9iamVjdENhY2hlOjpjcmVhdGVPYmplY3RGcm9tUmVuZGVy
ZXIoUmVuZGVyT2JqZWN0KiByCiAKIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3Jl
YXRlRnJvbU5vZGUoTm9kZSYgbm9kZSkKIHsKKyAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5TGlzdCgm
bm9kZSkpCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKG5vZGUpOwog
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKG5vZGUpOwogfQogCkBA
IC03MzYsNyArNzQzLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0
T3JDcmVhdGUoTm9kZSogbm9kZSkKIAogICAgIGlmICghbm9kZS0+cGFyZW50RWxlbWVudCgpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAKKwogICAgIGJvb2wgaXNPcHRpb25FbGVtZW50
ID0gaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KCpub2RlKTsKICAgICBpZiAoaXNPcHRpb25FbGVtZW50
IHx8IGlzPEhUTUxPcHRHcm91cEVsZW1lbnQ+KCpub2RlKSkgewogICAgICAgICBhdXRvIHNlbGVj
dCA9IGlzT3B0aW9uRWxlbWVudApAQCAtNzgyLDcgKzc4OSw3IEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKE5vZGUqIG5vZGUpCiAgICAgLy8gaXQgd2ls
bCBkaXNhcHBlYXIgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGZpbmlzaGVkLCBsZWFkaW5nIHRvIGEg
dXNlLWFmdGVyLWZyZWUuCiAgICAgaWYgKG5ld09iamVjdC0+aXNEZXRhY2hlZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICAKKwogICAgIHJldHVybiBuZXdPYmplY3QuZ2V0KCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlz
dC5jcHAKaW5kZXggMjg4NWVlNjgzOGVhLi43OGMzMjcwZTc4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCkBAIC00Niw2ICs0
NiwxMSBAQCBBY2Nlc3NpYmlsaXR5TGlzdDo6QWNjZXNzaWJpbGl0eUxpc3QoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKIHsKIH0KIAorQWNjZXNzaWJpbGl0eUxpc3Q6OkFjY2Vzc2liaWxpdHlMaXN0
KE5vZGUmIG5vZGUpCisgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KG5vZGUpCit7Cit9
CisKIEFjY2Vzc2liaWxpdHlMaXN0Ojp+QWNjZXNzaWJpbGl0eUxpc3QoKSA9IGRlZmF1bHQ7CiAK
IFJlZjxBY2Nlc3NpYmlsaXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQpAQCAtNTMsNiArNTgsMTEgQEAgUmVmPEFjY2Vzc2liaWxpdHlMaXN0
PiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsKIH0KIAor
UmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKE5vZGUmIG5v
ZGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3Qobm9kZSkp
OworfQorCiBib29sIEFjY2Vzc2liaWxpdHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1
bHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxp
c3QuaAppbmRleCAzYTA2MWU4ZGQ1OTguLjBlNDA4MGJmYTRhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApAQCAtMzUsMTEgKzM1LDEz
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlMaXN0IGZpbmFsIDog
cHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8QWNjZXNzaWJpbGl0eUxpc3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBjcmVhdGUoTm9kZSYpOwogICAgIHZpcnR1YWwgfkFjY2Vz
c2liaWxpdHlMaXN0KCk7CiAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25z
dCBvdmVycmlkZTsKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxpc3QoUmVu
ZGVyT2JqZWN0Kik7CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxpc3QoTm9kZSYpOwogICAg
IGJvb2wgaXNMaXN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wg
aXNVbm9yZGVyZWRMaXN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc09yZGVyZWRMaXN0
KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDkxYzY3Mzk3NmE1NC4uY2E0
ZWUzYWI4NjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtMjE1LDggKzIxNSwyNyBAQCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29u
c3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6Y2hlY2tib3hPclJhZGlvUmVjdCgpIGNvbnN0Cit7CisgICAgYXV0byogbGFiZWwg
PSBsYWJlbEZvckVsZW1lbnQoZHluYW1pY0Rvd25jYXN0PEVsZW1lbnQ+KG5vZGUoKSkpOworICAg
IGlmICghbGFiZWwgfHwgIWxhYmVsLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gYm91bmRp
bmdCb3hSZWN0KCk7CisKKyAgICBhdXRvKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsKKyAgICBp
ZiAoIWNhY2hlKQorICAgICAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7CisKKyAgICAvLyBB
IGNoZWNrYm94IG9yIHJhZGlvIGJ1dHRvbiBzaG91bGQgZW5jb21wYXNzIGl0cyBsYWJlbC4KKyAg
ICBhdXRvIGxhYmVsUmVjdCA9IGNhY2hlLT5nZXRPckNyZWF0ZShsYWJlbCktPmVsZW1lbnRSZWN0
KCk7CisgICAgbGFiZWxSZWN0LnVuaXRlKGJvdW5kaW5nQm94UmVjdCgpKTsKKyAgICByZXR1cm4g
bGFiZWxSZWN0OworfQorCiBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVt
ZW50UmVjdCgpIGNvbnN0CiB7CisgICAgaWYgKGlzQ2hlY2tib3hPclJhZGlvKCkpCisgICAgICAg
IHJldHVybiBjaGVja2JveE9yUmFkaW9SZWN0KCk7CisKICAgICByZXR1cm4gYm91bmRpbmdCb3hS
ZWN0KCk7CiB9CiAKQEAgLTI2Miw2ICsyODEsMTMgQEAgRG9jdW1lbnQqIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojpkb2N1bWVudCgpIGNvbnN0CiAgICAgcmV0dXJuICZub2RlKCktPmRvY3VtZW50
KCk7CiB9CiAKK0xvY2FsRnJhbWVWaWV3KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1l
bnRGcmFtZVZpZXcoKSBjb25zdAoreworICAgIGlmIChhdXRvKiBub2RlID0gdGhpcy0+bm9kZSgp
KQorICAgICAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS52aWV3KCk7CisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmRvY3VtZW50RnJhbWVWaWV3KCk7Cit9CisKIEFjY2Vzc2liaWxp
dHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9s
ZSgpCiB7CiAgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFj
Y2Vzc2liaWxpdHlSb2xlIl9zKTsKQEAgLTQ5MCwxMyArNTE2LDEzIEBAIHZvaWQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmFkZENoaWxkcmVuKCkKIHsKICAgICAvLyBJZiB0aGUgbmVlZCB0byBh
ZGQgbW9yZSBjaGlsZHJlbiBpbiBhZGRpdGlvbiB0byBleGlzdGluZyBjaGlsZHJlbiBhcmlzZXMs
IAogICAgIC8vIGNoaWxkcmVuQ2hhbmdlZCBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCwgbGVhdmlu
ZyB0aGUgb2JqZWN0IHdpdGggbm8gY2hpbGRyZW4uCi0gICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5p
dGlhbGl6ZWQpOyAKKyAgICBBU1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7CiAgICAgCi0g
ICAgaWYgKCFtX25vZGUpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1fY2hpbGRyZW5Jbml0aWFs
aXplZCA9IHRydWU7CiAKKyAgICBpZiAoIWNhbkhhdmVDaGlsZHJlbigpKQorICAgICAgICByZXR1
cm47CisKICAgICAvLyBUaGUgb25seSB0aW1lIHdlIGFkZCBjaGlsZHJlbiBmcm9tIHRoZSBET00g
dHJlZSB0byBhIG5vZGUgd2l0aCBhIHJlbmRlcmVyIGlzIHdoZW4gaXQncyBhIGNhbnZhcy4KICAg
ICBpZiAocmVuZGVyZXIoKSAmJiAhbm9kZSgpLT5oYXNUYWdOYW1lKGNhbnZhc1RhZykpCiAgICAg
ICAgIHJldHVybjsKQEAgLTUwNywyMiArNTMzLDE5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmFkZENoaWxkcmVuKCkKIAogICAgIGZvciAoYXV0byogY2hpbGQgPSBub2RlKCktPmZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAg
IGFkZENoaWxkKG9iamVjdENhY2hlLT5nZXRPckNyZWF0ZShjaGlsZCkpOwotICAgIAorCiAgICAg
dXBkYXRlT3duZWRDaGlsZHJlbigpOwogICAgIG1fc3VidHJlZURpcnR5ID0gZmFsc2U7CiB9CiAK
IGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0CiB7
Ci0gICAgLy8gSWYgdGhpcyBpcyBhbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LCB0aGVuIGl0
J3Mgb2theSBpZiB0aGlzIG9iamVjdAotICAgIC8vIGRvZXNuJ3QgaGF2ZSBhIG5vZGUgLSB0aGVy
ZSBhcmUgc29tZSByZW5kZXJlcnMgdGhhdCBkb24ndCBoYXZlIGFzc29jaWF0ZWQKLSAgICAvLyBu
b2RlcywgbGlrZSBzY3JvbGwgYXJlYXMgYW5kIGNzcy1nZW5lcmF0ZWQgdGV4dC4KLSAgICBpZiAo
IW5vZGUoKSAmJiAhaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQogICAgIC8vIFdoZW4gPG5vc2NyaXB0PiBpcyBub3QgYmVpbmcgdXNlZCAoaXRz
IHJlbmRlcmVyKCkgPT0gMCksIGlnbm9yZSBpdHMgY2hpbGRyZW4uCiAgICAgaWYgKG5vZGUoKSAm
JiAhcmVuZGVyZXIoKSAmJiBub2RlKCktPmhhc1RhZ05hbWUobm9zY3JpcHRUYWcpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgLy8gSWYgdGhpcyBpcyBhbiBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LCB0aGVuIGl0J3Mgb2theSBpZiB0aGlzIG9iamVjdAorICAgIC8vIGRvZXNuJ3QgaGF2
ZSBhIG5vZGUgLSB0aGVyZSBhcmUgc29tZSByZW5kZXJlcnMgdGhhdCBkb24ndCBoYXZlIGFzc29j
aWF0ZWQKKyAgICAvLyBub2RlcywgbGlrZSBzY3JvbGwgYXJlYXMgYW5kIGNzcy1nZW5lcmF0ZWQg
dGV4dC4KIAogICAgIC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNoaWxkcmVuLgog
ICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKQEAgLTU3Miw2ICs1OTUsOCBAQCBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
CiAgICAgLy8gaXQncyBiZWVuIGluaXRpYWxpemVkLgogICAgIEFTU0VSVChtX2luaXRpYWxpemVk
KTsKICNlbmRpZgorICAgIGlmICghbm9kZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IC8vIEhhbmRsZSBub24tcmVuZGVyZWQgdGV4dCB0aGF0IGlzIGV4cG9zZWQgdGhyb3VnaCBhcmlh
LWhpZGRlbj1mYWxzZS4KICAgICBpZiAobm9kZSgpICYmIG5vZGUoKS0+aXNUZXh0Tm9kZSgpICYm
ICFyZW5kZXJlcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggN2UzMzM4M2JlZGMxLi43MTNlNjFlNDU1
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmgKQEAgLTgzLDYgKzgzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Tm9kZShOb2RlKik7CiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
bm9kZS5nZXQoKTsgfQogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIExvY2FsRnJhbWVWaWV3KiBkb2N1bWVudEZyYW1lVmlldygpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdm9pZCBzZXRGb2N1c2VkKGJvb2wpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNGb2N1c2Vk
KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xNjEsNiArMTYyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25z
dDsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByZW1hcEFyaWFSb2xlRHVlVG9QYXJlbnQoQWNjZXNz
aWJpbGl0eVJvbGUpIGNvbnN0OwogCisgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsK
ICAgICB2b2lkIGNsZWFyQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNoaWxk
cmVuSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKQEAgLTIxMCwxMyArMjEyLDEzIEBAIHByaXZhdGU6
CiAgICAgdm9pZCB2aXNpYmxlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7
CiAgICAgU3RyaW5nIGFsdGVybmF0aXZlVGV4dEZvcldlYkFyZWEoKSBjb25zdDsKICAgICB2b2lk
IGFyaWFMYWJlbGVkQnlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKLSAg
ICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgYm9vbCB1c2VzQWx0VGFnRm9yVGV4dENvbXB1dGF0aW9uKCkgY29uc3Q7CiAgICAgYm9vbCBy
b2xlSWdub3Jlc1RpdGxlKCkgY29uc3Q7CiAgICAgYm9vbCBwb3N0S2V5Ym9hcmRLZXlzRm9yVmFs
dWVDaGFuZ2UoU3RlcEFjdGlvbik7CiAgICAgdm9pZCBzZXROb2RlVmFsdWUoU3RlcEFjdGlvbiwg
ZmxvYXQpOwogICAgIGJvb2wgcGVyZm9ybURpc21pc3NBY3Rpb24oKSBmaW5hbDsKICAgICBib29s
IGhhc1RleHRBbHRlcm5hdGl2ZSgpIGNvbnN0OworICAgIExheW91dFJlY3QgY2hlY2tib3hPclJh
ZGlvUmVjdCgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXROZWVkc1RvVXBkYXRlQ2hpbGRyZW4oKSBv
dmVycmlkZSB7IG1fY2hpbGRyZW5EaXJ0eSA9IHRydWU7IH0KICAgICBib29sIG5lZWRzVG9VcGRh
dGVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2hpbGRyZW5EaXJ0eTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKaW5kZXggMmY2N2MwYzIzNzJmLi5iMzBlYTFlYWEzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtNDQ4
LDcgKzQ0OCw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnBy
ZXZpb3VzU2libGluZ1VuaWdub3JlZChpbnQgbGltaXQpIGNvCiBGbG9hdFJlY3QgQWNjZXNzaWJp
bGl0eU9iamVjdDo6Y29udmVydEZyYW1lVG9TcGFjZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lUmVj
dCwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSBjb252ZXJzaW9uU3BhY2UpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAKKwogICAgIC8vIEZpbmQgdGhlIGFw
cHJvcHJpYXRlIHNjcm9sbCB2aWV3IHRvIHVzZSB0byBjb252ZXJ0IHRoZSBjb250ZW50cyB0byB0
aGUgd2luZG93LgogICAgIGNvbnN0IGF1dG8gcGFyZW50QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcg
PSBhbmNlc3RvckFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KGZhbHNlIC8qIGluY2x1ZGVTZWxmICov
KTsKICAgICBhdXRvKiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50QWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcgPyBwYXJlbnRBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy0+c2Nyb2xsVmlldygpIDogbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgKaW5kZXggMWZiZTdhYjUzYmVkLi44ZDk1N2ZkNzhmZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0yNTgs
NyArMjU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlY29tcHV0ZUlzSWdub3Jl
ZCgpOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWZhdWx0T2Jq
ZWN0SW5jbHVzaW9uKCkgY29uc3Q7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBk
ZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkgY29uc3Q7CiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkQnlEZWZhdWx0KCkgY29uc3Q7CiAKICAgICBib29sIGlzU2hvd2luZ1ZhbGlkYXRpb25N
ZXNzYWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBmNTcyYjcxMTY1MGEuLjY4
NWYxODY1ZDNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMzIsNiArMTMyLDEzIEBAIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKICNlbmRpZgogfQogCitBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KE5vZGUmIG5vZGUpCisgICAgOiBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdCgmbm9kZSkKK3sKKyAgICAvLyBXZSBzaG91bGQgb25seSBldmVyIGNyZWF0
ZSBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdpdGggYSBub2RlIGlmIHRoYXQgbm9kZSBoYXMg
bm8gcmVuZGVyZXIgKGkuZS4gYmVjYXVzZSBvZiBkaXNwbGF5OmNvbnRlbnRzKS4KKyAgICBBU1NF
UlQoIW5vZGUucmVuZGVyZXIoKSk7Cit9CisKIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6On5B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkKIHsKICAgICBBU1NFUlQoaXNEZXRhY2hlZCgpKTsK
QEAgLTIxOCw3ICsyMjUsNyBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFzdENoaWxk
Q29uc2lkZXJpbmdDb250aW51YXRpb24oUmVuZGVyT2JqZWN0JiByZW5kZQogQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Zmlyc3RDaGlsZCgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpmaXJzdENoaWxkKCk7CiAgICAgCiAgICAg
UmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkID0gZmlyc3RDaGlsZENvbnNpZGVyaW5nQ29udGludWF0
aW9uKCptX3JlbmRlcmVyKTsKIApAQCAtMjM2LDcgKzI0Myw3IEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmZpcnN0Q2hpbGQoKSBjb25zdAogQWNjZXNz
aWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGFzdENoaWxkKCkgY29u
c3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omxhc3RDaGlsZCgpOwogCiAgICAg
UmVuZGVyT2JqZWN0KiBsYXN0Q2hpbGQgPSBsYXN0Q2hpbGRDb25zaWRlcmluZ0NvbnRpbnVhdGlv
bigqbV9yZW5kZXJlcik7CiAKQEAgLTMxMyw3ICszMjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
Zmlyc3RDaGlsZElzSW5saW5lQ29udGludWF0aW9uKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQog
QWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cHJldmlvdXNT
aWJsaW5nKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnByZXZpb3Vz
U2libGluZygpOwogCiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1NpYmxpbmcgPSBudWxscHRy
OwogCkBAIC0zNjAsNyArMzY3LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBsYXN0Q2hpbGRIYXND
b250aW51YXRpb24oUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAKIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nKCkgY29uc3QKIHsKLSAg
ICBpZiAoIW1fcmVuZGVyZXIgfHwgaXM8UmVuZGVyVmlldz4oKm1fcmVuZGVyZXIpKQorICAgIGlm
ICghbV9yZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpu
ZXh0U2libGluZygpOworCisgICAgaWYgKGlzPFJlbmRlclZpZXc+KG1fcmVuZGVyZXIpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmcgPSBu
dWxscHRyOwpAQCAtNDgzLDcgKzQ5Myw3IEBAIFJlbmRlck9iamVjdCogQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6cmVuZGVyUGFyZW50T2JqZWN0KCkgY29uc3QKICAgICAgICAgCiAgICAgcmV0
dXJuIHBhcmVudDsKIH0KLSAgICAKKwogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdAogewogICAgIEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpOwpAQCAtNTEyLDcgKzUyMiw3IEBAIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhcmVudE9iamVj
dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBkaXNwbGF5Q29udGVudHNQYXJlbnQ7CiAKICAgICBp
ZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhcmVudE9iamVjdCgpOwogCiAgICAgV2Vha1B0ciBj
YWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsKICAgICBpZiAoIWNhY2hlKQpAQCAtNjE0LDcgKzYyNCw3
IEBAIEVsZW1lbnQqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFuY2hvckVsZW1lbnQoKSBj
b25zdAogU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmhlbHBUZXh0KCkgY29uc3QK
IHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aGVscFRleHQoKTsKIAogICAgIGNvbnN0IGF1
dG8mIGFyaWFIZWxwID0gZ2V0QXR0cmlidXRlKGFyaWFfaGVscEF0dHIpOwogICAgIGlmICghYXJp
YUhlbHAuaXNFbXB0eSgpKQpAQCAtNjUxLDcgKzY2MSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1v
ZGUgbW9kZSkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5k
ZXJFbGVtZW50KG1vZGUpOwogCiAgICAgaWYgKGlzPFJlbmRlckZpbGVVcGxvYWRDb250cm9sPigq
bV9yZW5kZXJlcikpCiAgICAgICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbD4oKm1fcmVuZGVyZXIpLmJ1dHRvblZhbHVlKCk7CkBAIC03NDQsMTcgKzc1NCwxNSBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNob3VsZEdldFRleHRGcm9tTm9kZShBY2Nl
c3NpYmlsaXR5VGV4dFVuZGVyRWxlbQogCiBOb2RlKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
Ojpub2RlKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIGlmIChtX3JlbmRlcmVyLT5pc1JlbmRlclZpZXcoKSkKLSAgICAgICAgcmV0
dXJuICZtX3JlbmRlcmVyLT5kb2N1bWVudCgpOwotICAgIHJldHVybiBtX3JlbmRlcmVyLT5ub2Rl
KCk7Ci19ICAgIAorICAgIGlmIChtX3JlbmRlcmVyKQorICAgICAgICByZXR1cm4gTElLRUxZKCFt
X3JlbmRlcmVyLT5pc1JlbmRlclZpZXcoKSkgPyBtX3JlbmRlcmVyLT5ub2RlKCkgOiAmbV9yZW5k
ZXJlci0+ZG9jdW1lbnQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Om5v
ZGUoKTsKK30KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVl
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiB7IH07Cisg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6c3RyaW5nVmFsdWUoKTsKIAog
ICAgIGlmIChpc1N0YXRpY1RleHQoKSB8fCBpc1RleHRDb250cm9sKCkgfHwgaXNTZWN1cmVGaWVs
ZCgpKQogICAgICAgICByZXR1cm4gdGV4dCgpOwpAQCAtODI2LDcgKzgzNCw3IEBAIExheW91dFJl
Y3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKICAg
ICBSZW5kZXJPYmplY3QqIG9iaiA9IHJlbmRlcmVyKCk7CiAgICAgCiAgICAgaWYgKCFvYmopCi0g
ICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KCk7CiAgICAgCiAgICAgaWYgKG9iai0+bm9kZSgp
KSAvLyBJZiB3ZSBhcmUgYSBjb250aW51YXRpb24sIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRvIHVz
ZSB0aGUgcHJpbWFyeSByZW5kZXJlci4KICAgICAgICAgb2JqID0gb2JqLT5ub2RlKCktPnJlbmRl
cmVyKCk7CkBAIC04NjAsMjkgKzg2OCw2IEBAIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQog
ICAgIAotTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjaGVja2JveE9yUmFk
aW9SZWN0KCkgY29uc3QKLXsKLSAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBM
YXlvdXRSZWN0KCk7Ci0gICAgCi0gICAgSFRNTExhYmVsRWxlbWVudCogbGFiZWwgPSBsYWJlbEZv
ckVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4obV9yZW5kZXJlci0+bm9kZSgpKSk7Ci0gICAgaWYg
KCFsYWJlbCB8fCAhbGFiZWwtPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBib3VuZGluZ0Jv
eFJlY3QoKTsKLSAgICAKLSAgICBMYXlvdXRSZWN0IGxhYmVsUmVjdCA9IGF4T2JqZWN0Q2FjaGUo
KS0+Z2V0T3JDcmVhdGUobGFiZWwpLT5lbGVtZW50UmVjdCgpOwotICAgIGxhYmVsUmVjdC51bml0
ZShib3VuZGluZ0JveFJlY3QoKSk7Ci0gICAgcmV0dXJuIGxhYmVsUmVjdDsKLX0KLQotTGF5b3V0
UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjplbGVtZW50UmVjdCgpIGNvbnN0Ci17Ci0g
ICAgLy8gYSBjaGVja2JveCBvciByYWRpbyBidXR0b24gc2hvdWxkIGVuY29tcGFzcyBpdHMgbGFi
ZWwKLSAgICBpZiAoaXNDaGVja2JveE9yUmFkaW8oKSkKLSAgICAgICAgcmV0dXJuIGNoZWNrYm94
T3JSYWRpb1JlY3QoKTsKLSAgICAKLSAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7Ci19Ci0K
IGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNQYXRoKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gaXM8UmVuZGVyVGV4dD4ocmVuZGVyZXIoKSkgfHwgKHJlbmRlcmVyKCkgJiYg
cmVuZGVyZXIoKS0+aXNTVkdTaGFwZU9yTGVnYWN5U1ZHU2hhcGUoKSk7CkBAIC0xMDYyLDEzICsx
MDQ3LDYgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gb2JqZWN0SW5jbHVz
aW9uRnJvbUFsdFRleHQoY29uc3QgU3RyaW5nJiBhbHQKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eU9iamVjdEluY2x1c2lvbjo6RGVmYXVsdEJlaGF2aW9yOwogfQogCi1BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNs
dXNpb24oKSBjb25zdAotewotICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdDsKLSAgICByZXR1cm4gQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oKTsKLX0KLSAgICAK
IHN0YXRpYyBib29sIHdlYkFyZWFJc1ByZXNlbnRhdGlvbmFsKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCiB7CiAgICAgaWYgKCFyZW5kZXJlciB8fCAhaXM8UmVuZGVyVmlldz4oKnJlbmRlcmVyKSkK
QEAgLTEwODcsNyArMTA2NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogI2VuZGlmCiAKICAgICBpZiAoIW1f
cmVuZGVyZXIpCi0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiAKICAgICAv
LyBDaGVjayBmaXJzdCBpZiBhbnkgb2YgdGhlIGNvbW1vbiByZWFzb25zIGNhdXNlIHRoaXMgZWxl
bWVudCB0byBiZSBpZ25vcmVkLgogICAgIC8vIFRoZW4gcHJvY2VzcyBvdGhlciB1c2UgY2FzZXMg
dGhhdCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gYWxsIHRoZSB2YXJpb3VzIHJvbGVzCkBAIC0xNTI4
LDcgKzE1MDYsNyBAQCBSZW5kZXJWaWV3KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0b3BS
ZW5kZXJlcigpIGNvbnN0CiBEb2N1bWVudCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9j
dW1lbnQoKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1lbnQo
KTsKICAgICByZXR1cm4gJm1fcmVuZGVyZXItPmRvY3VtZW50KCk7CiB9CiAKQEAgLTE2MDIsOSAr
MTU4MCw4IEBAIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmRvY3VtZW50TGluCiBMb2NhbEZyYW1lVmlldyogQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnRGcmFtZVZpZXcoKSBjb25zdCAKIHsgCiAgICAg
aWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpkb2N1bWVudEZyYW1lVmlldygpOwogCi0gICAgLy8g
dGhpcyBpcyB0aGUgUmVuZGVyT2JqZWN0J3MgRG9jdW1lbnQncyBGcmFtZSdzIExvY2FsRnJhbWVW
aWV3CiAgICAgcmV0dXJuICZtX3JlbmRlcmVyLT52aWV3KCkuZnJhbWVWaWV3KCk7CiB9CiAKQEAg
LTI2MDMsNyArMjU4MCwxMSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0
ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24oKQogICAgIAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjphZGRDaGlsZHJlbigpCiB7Ci0gICAgLy8gSWYgdGhlIG5lZWQgdG8gYWRkIG1v
cmUgY2hpbGRyZW4gaW4gYWRkaXRpb24gdG8gZXhpc3RpbmcgY2hpbGRyZW4gYXJpc2VzLCAKKyAg
ICBpZiAoVU5MSUtFTFkoIXJlbmRlcmVyKCkpKSB7CisgICAgICAgIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjphZGRDaGlsZHJlbigpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIElm
IHRoZSBuZWVkIHRvIGFkZCBtb3JlIGNoaWxkcmVuIGluIGFkZGl0aW9uIHRvIGV4aXN0aW5nIGNo
aWxkcmVuIGFyaXNlcywKICAgICAvLyBjaGlsZHJlbkNoYW5nZWQgc2hvdWxkIGhhdmUgYmVlbiBj
YWxsZWQsIGxlYXZpbmcgdGhlIG9iamVjdCB3aXRoIG5vIGNoaWxkcmVuLgogICAgIEFTU0VSVCgh
bV9jaGlsZHJlbkluaXRpYWxpemVkKTsgCiAKQEAgLTI2NDUsMTEgKzI2MjYsNiBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKCkKICAgICB1cGRhdGVSb2xlQWZ0
ZXJDaGlsZHJlbkNyZWF0aW9uKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yZW5kZXJlciAmJiBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCk7Ci19Ci0KIHZvaWQgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0QWNjZXNzaWJsZU5hbWUoY29uc3QgQXRvbVN0cmlu
ZyYgbmFtZSkKIHsKICAgICAvLyBTZXR0aW5nIHRoZSBhY2Nlc3NpYmxlIG5hbWUgY2FuIHN0b3Jl
IHRoZSB2YWx1ZSBpbiB0aGUgRE9NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDQ2ZTk2NTcwMGYwZC4u
OGM2ZWMyM2VkNzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNjcsOSArNjcsNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNVbmRlcmxpbmUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0
QWNjZXNzaWJsZU5hbWUoY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwotCi0gICAgLy8gUHJv
dmlkZXMgY29tbW9uIGxvZ2ljIHVzZWQgYnkgYWxsIGVsZW1lbnRzIHdoZW4gZGV0ZXJtaW5pbmcg
aXNJZ25vcmVkLgotICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVmYXVsdE9iamVj
dEluY2x1c2lvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIGludCBsYXlvdXRDb3VudCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIApAQCAtODgsMTcgKzg1LDE0IEBAIHB1YmxpYzoKICAgICBF
bGVtZW50KiBhbmNob3JFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgTGF5b3V0
UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRSZWN0IGVs
ZW1lbnRSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZW5kZXJlci5nZXQoKTsgfQogICAgIFJlbmRl
ckJveE1vZGVsT2JqZWN0KiByZW5kZXJCb3hNb2RlbE9iamVjdCgpIGNvbnN0OwogICAgIE5vZGUq
IG5vZGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0
IG92ZXJyaWRlOwotCiAgICAgUmVuZGVyVmlldyogdG9wUmVuZGVyZXIoKSBjb25zdDsKLSAgICBS
ZW5kZXJUZXh0Q29udHJvbCogdGV4dENvbnRyb2woKSBjb25zdDsKLSAgICAKKwogICAgIFVSTCB1
cmwoKSBjb25zdCBvdmVycmlkZTsKICAgICBQbGFpblRleHRSYW5nZSBzZWxlY3RlZFRleHRSYW5n
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBpbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKSBj
b25zdCBvdmVycmlkZTsKQEAgLTExNyw3ICsxMTEsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRW
YWx1ZShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBv
dmVycmlkZTsKLSAgICBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9uUmFuZ2UoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBWaXNpYmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZUZvckxp
bmUodW5zaWduZWQpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMTQ1LDExICsxMzgsMTIgQEAgcHVibGlj
OgogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChS
ZW5kZXJPYmplY3QqKTsKKyAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KE5v
ZGUmKTsKICAgICB2b2lkIGRldGFjaFJlbW90ZVBhcnRzKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50
VHlwZSkgb3ZlcnJpZGU7CiAgICAgU2Nyb2xsYWJsZUFyZWEqIGdldFNjcm9sbGFibGVBcmVhSWZT
Y3JvbGxhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBJbnRQ
b2ludCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIGJvb2wgaXNEZXRhY2hlZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICFtX3JlbmRlcmVyOyB9CisgICAgYm9vbCBpc0RldGFjaGVkKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIW1fcmVuZGVyZXIgJiYgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmlzRGV0YWNoZWQoKTsgfQogCiAgICAgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVSb2xl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNz
aWJpbGl0eVJvbGUoKSBvdmVycmlkZTsKQEAgLTE2OSw3ICsxNjMsNiBAQCBwcml2YXRlOgogICAg
IGJvb2wgbm9kZUlzVGV4dENvbnRyb2woY29uc3QgTm9kZSopIGNvbnN0OwogICAgIFBhdGggZWxl
bWVudFBhdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBMYXlvdXRSZWN0IGNoZWNrYm94
T3JSYWRpb1JlY3QoKSBjb25zdDsKICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlJbWFn
ZU1hcEhpdFRlc3QoSFRNTEFyZWFFbGVtZW50KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmlsaXR5UGFyZW50Rm9ySW1hZ2VNYXAoSFRN
TE1hcEVsZW1lbnQqKSBjb25zdDsKICAgICBBWENvcmVPYmplY3QqIGVsZW1lbnRBY2Nlc3NpYmls
aXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5odG1s
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5o
dG1sCmluZGV4IDA1ZGU3YzM1MWFhNi4uYTkwNWEwNGVkNzA5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5odG1s
CkBAIC0xMTEsNyArMTExLDkgQEAKIAogICAgIDxvdXRwdXQgaGlkZGVuIGFyaWEtaGlkZGVuPSJm
YWxzZSIgaWQ9Im91dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CiAKLSAgICA8bWVudSBoaWRkZW4gYXJp
YS1oaWRkZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+
CisgICAgPG1lbnUgaGlkZGVuIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9
Im1lbnUtdG9vbGJhciI+CisgICAgICAgIDxsaSBoaWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIj5I
ZWxsbyB3b3JsZDwvbGk+CisgICAgPC9tZW51PgogCiAgICAgPGhyIGhpZGRlbiBhcmlhLWhpZGRl
bj0iZmFsc2UiIGlkPSJociI+PC9ocj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhw
ZWN0ZWQudHh0CmluZGV4IGY4YmRjZTQ5YTA1NS4uNmZhNTM4NWQ5YTZmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRl
bnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CkBAIC01MSw2ICs1MSw3IEBAIFRoaXMgdGVz
dCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNv
cnJlY3Qgcm9sZS4KIAogPGRsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRsIj48L2RsPgogICAgIEFY
Um9sZTogQVhMaXN0CisgICAgQVhTdWJyb2xlOiBBWERlc2NyaXB0aW9uTGlzdAogCiA8ZHQgY2xh
c3M9InRlc3RjYXNlIiBpZD0iZHQiPjwvZHQ+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0xMDIs
NiArMTAzLDExIEBAIFRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6
IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KIDxtZW51IGNsYXNzPSJ0ZXN0Y2FzZSIg
dHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgogICAgIEFYUm9sZTogQVhM
aXN0CiAgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhTdWJyb2xlOiBBWENvbnRl
bnRMaXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgor
ICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdGl0ZW0KIAog
PG5hdiBjbGFzcz0idGVzdGNhc2UiIGlkPSJuYXYiPjwvbmF2PgogICAgIEFYUm9sZTogQVhHcm91
cApAQCAtMTExLDYgKzExNyw3IEBAIFRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NT
IGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KIDxvbCBjbGFzcz0idGVz
dGNhc2UiIGlkPSJvbCI+PC9vbD4KICAgICBBWFJvbGU6IEFYTGlzdAogICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogbGlzdAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8bGkgY2xhc3M9
InRlc3RjYXNlIiBpZD0ib2wtbGktZWxlbWVudCI+PC9saT4KICAgICBBWFJvbGU6IEFYR3JvdXAK
QEAgLTE1NSw2ICsxNjIsNyBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBk
aXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiA8dWwgY2xhc3M9InRlc3Rj
YXNlIiBpZD0idWwiPjwvdWw+CiAgICAgQVhSb2xlOiBBWExpc3QKICAgICBjb21wdXRlZFJvbGVT
dHJpbmc6IGxpc3QKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExpc3QKIAogPGxpIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPjwvbGk+CiAgICAgQVhSb2xlOiBBWEdyb3VwCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxl
bWVudC1yb2xlcy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRl
bnRzLWVsZW1lbnQtcm9sZXMuaHRtbAppbmRleCBmMGNjM2Y2NTQ5YjQuLmI5ODQwZWU3ZGFlYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVs
ZW1lbnQtcm9sZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXkt
Y29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sCkBAIC02MywxMiArNjMsMTYgQEAKIAogICAgIDxt
YXJrIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1hcmsiPk1hcmtlZCB0ZXh0PC9tYXJrPgogCi0gICAg
PG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48
L21lbnU+CisgICAgPG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVu
dS10b29sYmFyIj4KKyAgICAgICAgPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1l
bnQiPkhlbGxvIHdvcmxkPC9saT4KKyAgICAgICAgPGxpPmxpc3QgaXRlbSB3aXRoIHJlbmRlcmVy
PC9saT4KKyAgICA8L21lbnU+CiAKICAgICA8bmF2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+
TmF2PC9uYXY+CiAKICAgICA8b2wgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wiPgogICAgICAgICA8
bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wtbGktZWxlbWVudCI+SGVsbG8gd29ybGQ8L2xpPgor
ICAgICAgICA8bGk+bGlzdCBpdGVtIHdpdGggcmVuZGVyZXI8L2xpPgogICAgIDwvb2w+CiAKICAg
ICA8b3V0cHV0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im91dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CkBA
IC04OSw2ICs5Myw3IEBACiAKICAgICA8dWwgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwiPgogICAg
ICAgICA8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+SGVsbG8gd29ybGQ8
L2xpPgorICAgICAgICA8bGk+bGlzdCBpdGVtIHdpdGggcmVuZGVyZXI8L2xpPgogICAgIDwvdWw+
CiA8L2Rpdj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3Np
YmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQKaW5kZXggZjEyNTExZjYxOTU3Li5mNzQxNDE0MzcyYzUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUt
ZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xp
Yi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApA
QCAtMTA1LDEyICsxMDUsMTAgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1l
bnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKICAgICBBWFJvbGU6
IEFYRGVzY3JpcHRpb25MaXN0CiAKIDxvbCBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBp
ZD0ib2wiPjwvb2w+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6
IGxpc3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKIAogPHVsIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0i
ZmFsc2UiIGlkPSJ1bCI+PC91bD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAogCiA8ZmlndXJlIGhpZGRlbj0iIiBh
cmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJmaWd1cmUiPjwvZmlndXJlPgogICAgIEFYUm9sZTogQVhH
cm91cApAQCAtMTgwLDggKzE3OCw3IEBAIFRoaXMgdGVzdCBlbnN1cmVzIEFSSUEgdmlzaWJsZSBl
bGVtZW50cyAoZS5nLiB0aG9zZSB3aXRoIGJvdGggYGhpZGRlbmAgYW5kIGBhcmlhCiAgICAgY29t
cHV0ZWRSb2xlU3RyaW5nOiBzdGF0dXMKIAogPG1lbnUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJm
YWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgotICAgIEFYUm9s
ZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdy
b3VwCiAKIDxociBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaHIiPgogICAgIEFY
Um9sZTogQVhTZXBhcmF0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIv
YWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVu
dHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKaW5kZXggOThmMjI2NTYwN2U2Li5kZDg3YmJk
YWY0MWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0
eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1l
bnQtcm9sZXMtZXhwZWN0ZWQudHh0CkBAIC04OSw2ICs4OSwxMCBAQCBUaGlzIHRlc3QgZW5zdXJl
cyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJv
bGUuCiAgICAgQVhSb2xlOiBBWExpc3QKICAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKIAor
PGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPjwvbGk+CisgICAgQVhSb2xl
OiBBWExpc3RJdGVtCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0aXRlbQorCiA8bmF2IGNs
YXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+PC9uYXY+CiAgICAgQVhSb2xlOiBBWExhbmRtYXJrTmF2
aWdhdGlvbgogICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1l
bGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nl
c3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKaW5k
ZXggMTJmMWM3ZGQwMjU2Li5kNzliMDAzZTg4ZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtNzIsNiArNzIs
OSBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50
cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiA8bWVudSBjbGFzcz0idGVzdGNhc2UiIHR5cGU9InRv
b2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KICAgICBMaXN0CiAKKzxsaSBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgorICAgIExpc3RJdGVtCisKIDxuYXYg
Y2xhc3M9InRlc3RjYXNlIiBpZD0ibmF2Ij48L25hdj4KICAgICBMYW5kbWFya05hdmlnYXRpb24K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5
L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1l
eHBlY3RlZC50eHQKaW5kZXggYzkzYzBiM2Q0ZGJmLi40ODYyMGFmNDE0NjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUt
ZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4
dApAQCAtMTE0LDE0ICsxMTQsMTUgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVs
ZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKIAogPGRsIGhp
ZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJkbCI+PC9kbD4KICAgICBBWFJvbGU6IEFY
TGlzdAorICAgIEFYU3Vicm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAogPG9sIGhpZGRlbj0iIiBh
cmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJvbCI+PC9vbD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAg
IGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vi
cm9sZTogQVhDb250ZW50TGlzdAogCiA8dWwgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIg
aWQ9InVsIj48L3VsPgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0
CiAKIDxmaWd1cmUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImZpZ3VyZSI+PC9m
aWd1cmU+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0yMDMsOCArMjA0LDggQEAgVGhpcyB0ZXN0
IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlk
ZGVuYCBhbmQgYGFyaWEKICAgICBBWFN1YnJvbGU6IEFYQXBwbGljYXRpb25TdGF0dXMKIAogPG1l
bnUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUt
dG9vbGJhciI+PC9tZW51PgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3Ry
aW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRM
aXN0CiAKIDxociBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaHIiPgogICAgIEFY
Um9sZTogQVhTcGxpdHRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUt
ZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKaW5kZXggZjI4MjM0NGEyMGEwLi5jMWI5YjEwNDc3
ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0
eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJv
bGVzLWV4cGVjdGVkLnR4dApAQCAtMTEzLDE0ICsxMTMsMTUgQEAgVGhpcyB0ZXN0IGVuc3VyZXMg
QVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQg
YGFyaWEKIAogPGRsIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJkbCI+PC9kbD4K
ICAgICBBWFJvbGU6IEFYTGlzdAorICAgIEFYU3Vicm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAog
PG9sIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJvbCI+PC9vbD4KLSAgICBBWFJv
bGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhH
cm91cAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8dWwgaGlkZGVuPSIiIGFyaWEt
aGlkZGVuPSJmYWxzZSIgaWQ9InVsIj48L3VsPgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29t
cHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xl
OiBBWENvbnRlbnRMaXN0CiAKIDxmaWd1cmUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIg
aWQ9ImZpZ3VyZSI+PC9maWd1cmU+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0yMDIsOCArMjAz
LDggQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3Nl
IHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKICAgICBBWFN1YnJvbGU6IEFYQXBwbGljYXRp
b25TdGF0dXMKIAogPG1lbnUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9v
bGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAg
Y29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJy
b2xlOiBBWENvbnRlbnRMaXN0CiAKIDxociBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBp
ZD0iaHIiPgogICAgIEFYUm9sZTogQVhTcGxpdHRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd3BlL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL2FjY2Vzc2liaWxpdHkvYXJpYS12
aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CmluZGV4IDA2ZDg0ZWI3MWY2NC4uMDQ4
YjVjZWMyMTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvYWNjZXNzaWJp
bGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd3BlL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9s
ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMDYsMTIgKzEwNiwxMCBAQCBUaGlzIHRlc3QgZW5zdXJlcyBB
UklBIHZpc2libGUgZWxlbWVudHMgKGUuZy4gdGhvc2Ugd2l0aCBib3RoIGBoaWRkZW5gIGFuZCBg
YXJpYQogICAgIEFYUm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAogPG9sIGhpZGRlbj0iIiBhcmlh
LWhpZGRlbj0iZmFsc2UiIGlkPSJvbCI+PC9vbD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNv
bXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAogCiA8dWwgaGlkZGVu
PSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9InVsIj48L3VsPgotICAgIEFYUm9sZTogQVhMaXN0
Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCiAKIDxm
aWd1cmUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImZpZ3VyZSI+PC9maWd1cmU+
CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0xODEsOCArMTc5LDcgQEAgVGhpcyB0ZXN0IGVuc3Vy
ZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBh
bmQgYGFyaWEKICAgICBjb21wdXRlZFJvbGVTdHJpbmc6IHN0YXR1cwogCiA8bWVudSBoaWRkZW49
IiIgYXJpYS1oaWRkZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48
L21lbnU+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QK
KyAgICBBWFJvbGU6IEFYR3JvdXAKIAogPGhyIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2Ui
IGlkPSJociI+CiAgICAgQVhSb2xlOiBBWFNlcGFyYXRvcgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466526</attachid>
            <date>2023-05-28 12:59:35 -0700</date>
            <delta_ts>2023-05-28 17:58:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256950-20230528125934.patch</filename>
            <type>text/plain</type>
            <size>37256</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA0NGZkNmQ3N2NjMTA2Mjg2Yzg3ZDhiY2FiYTI4MmZiYTE2ZTQyY2IyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCAxNyBNYXkgMjAyMyAyMzoyMzo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFYOiBk
aXNwbGF5OmNvbnRlbnRzIGxpc3RzIGRvbid0IHJldHVybiB0aGUgY29ycmVjdCBzdWJyb2xlCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2OTUwIHJkYXI6Ly9wcm9i
bGVtLzEwOTQ5ODQyMwoKUmV2aWV3ZWQgYnkgQW5kcmVzIEdvbnphbGV6LgoKV2l0aCB0aGlzIHBh
dGNoLCBhbnkgbGlzdC10eXBlIGVsZW1lbnQgKG9sLCB1bCwgZGwsIHJvbGU9Imxpc3QiLCBldGMp
CndpdGggZGlzcGxheTpjb250ZW50cyB3aWxsIG5vdyBwcm9wZXJseSBiZSBjcmVhdGVkIGFzIGFu
CkFjY2Vzc2liaWxpdHlMaXN0IGluc3RhbmNlIHJhdGhlciB0aGFuIGFuIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LgoKVGhlIHNpZ25pZmljYW50IGVmZmVjdHMgb2YgdGhpcyBhcmU6CiAgMS4gVGhl
IGNvcnJlY3Qgc3Vicm9sZSBpcyBub3cgY29tcHV0ZWQgZm9yIHRoZXNlIGVsZW1lbnRzLCB3aGlj
aCBpcwogICAgIGltcG9ydGFudCBiZWNhdXNlIHNvbWUgQVRzIGRvIGNoYW5nZSB0aGVpciBiZWhh
dmlvciBiYXNlZCBvbiB0aGUKICAgICB2YXJpb3VzIGxpc3Qgc3Vicm9sZXMuCiAgMi4gVGhlc2Ug
ZWxlbWVudHMgbm93IHVzZSB0aGUgQWNjZXNzaWJpbGl0eUxpc3Q6OmRldGVybWluZUFjY2Vzc2li
aWxpdHlSb2xlKCkKICAgICAiaXMgdGhpcyBhbiBBWCBsaXN0IG9yIGxheW91dC1vbmx5IGxpc3Qi
IGhldXJpc3RpY3MuCgpJbiBzdXBwb3J0IG9mICMyLCBzb21lIHRlc3RzIGhhZCB0byBiZSBtb2Rp
ZmllZCB0byBoYXZlIHJlbmRlcmVkIGxpc3QgaXRlbXMgaW4Kb3JkZXIgdG8gc3RpbGwgYmUgY29u
c2lkZXJlZCBsaXN0cy4KCldlIGltcGxlbWVudCB0aGlzIGJ5IGFsbG93aW5nIHRoZSBjcmVhdGlv
biBvZiBBY2Nlc3NpYmlsaXR5TGlzdCB3aXRoIG9ubHkgYSBub2RlCmluc3RlYWQgb2YgcmVxdWly
aW5nIGEgcmVuZGVyZXIuCgpUaGUgb3RoZXIsIG1vcmUgc2lnbmlmaWNhbnQgY2hhbmdlIGludHJv
ZHVjZWQgaW4gdGhpcyBwYXRjaCBpcyB0aGF0IG1hbnkKQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dCBtZXRob2RzIGFyZSBub3cgY2hhbmdlZCB0byBmYWxsYmFjayB0byB0aGUKY29ycmVzcG9uZGlu
ZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCBpbXBsZW1lbnRhdGlvbiB3aGVuIHRoZXJlIGlzIG5v
CnJlbmRlcmVyIHJhdGhlciB0aGFuIHJldHVybmluZyBlYXJseS4KClRoaXMgaXMgcmVxdWlyZWQg
YmVjYXVzZSB3ZSBoYXZlIG1hbnkgc3ViY2xhc3NlcyBvZiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0CnRoYXQgYWxzbyBuZWVkIHRvIHN1cHBvcnQgZGlzcGxheTpjb250ZW50cyAoQWNjZXNzaWJp
bGl0eUxpc3QgaXMgb25lIG9mIHRoZXNlKS4KTWFraW5nIHRoaXMgY2hhbmdlIHdlYWtlbnMgb3Vy
IGRlZmluaXRpb24gb2YgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCBmcm9tCiJzaG91bGQgaGF2
ZSBhIHJlbmRlcmVyIiB0byAic2hvdWxkIGhhdmUgYSByZW5kZXJlciBvciBhIG5vZGUiLgoKKiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVu
dC1yb2xlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3Np
YmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50
LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJp
bGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0OgoqIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVu
dC1yb2xlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZp
c2libGUtZWxlbWVudC1yb2xlcy5odG1sOgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlz
cGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sOgoqIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVu
dC1yb2xlcy1leHBlY3RlZC50eHQ6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OnNob3VsZENyZWF0ZUFjY2Vzc2liaWxpdHlMaXN0KToK
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmNyZWF0ZU9iamVjdEZyb21SZW5kZXJlcik6CihXZWJD
b3JlOjpjcmVhdGVGcm9tTm9kZSk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0
ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHA6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdDo6QWNjZXNzaWJpbGl0eUxpc3QpOgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmNoZWNrYm94T3JSYWRpb1JlY3QgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmVsZW1lbnRSZWN0IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjphZGRDaGlsZHJlbik6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6Y2FuSGF2ZUNoaWxkcmVuIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojpjb252ZXJ0RnJhbWVUb1NwYWNlIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpmaXJzdENoaWxkIGNvbnN0KToK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omxhc3RDaGlsZCBjb25zdCk6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwcmV2aW91c1NpYmxpbmcgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bmV4dFNpYmxpbmcgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0IGNvbnN0
KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmhlbHBUZXh0IGNvbnN0KToK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQgY29u
c3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bm9kZSBjb25zdCk6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSBjb25zdCk6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpib3VuZGluZ0JveFJlY3QgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1
c2lvbiBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojpkb2N1bWVudCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojpkb2N1bWVudEZyYW1lVmlldyBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjphZGRDaGlsZHJlbik6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpjaGVja2JveE9yUmFkaW9SZWN0IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmVsZW1lbnRSZWN0IGNvbnN0KTogRGVsZXRlZC4KKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbiBjb25zdCk6
IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Lmg6Ci0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcCAgIHwgMTkgKystLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3Bw
ICAgICAgIHwgMTAgKysrCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlM
aXN0LmggfCAgMiArCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgfCA0NyArKysrKysrLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oICAgfCAgNCArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAgICAgIHwgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCAg
ICAgICB8ICAyICstCiAuLi4vQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgICAgICAg
ICAgfCA4OCArKysrKysrLS0tLS0tLS0tLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmggfCAxMyArLS0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy5odG1sICAgICAgICAgICB8ICA0ICstCiAuLi5pc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQgfCAgOCArKwogLi4uL2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy5odG1sICAgICAgIHwgIDcgKy0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBl
Y3RlZC50eHQgICB8ICA5ICstCiAuLi5pc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBl
Y3RlZC50eHQgfCAgNCArCiAuLi5pc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3Rl
ZC50eHQgfCAgMyArCiAuLi4vYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0
ICAgfCAxMyArLS0KIC4uLi9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQg
ICB8IDEzICstLQogLi4uL2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCAg
IHwgIDkgKy0KIDE4IGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCspLCAxMTIgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggNDY1YzA3YmMzZGUxLi41OGY1NTYzMWU5MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNTk3LDE1ICs1OTcsMjAgQEAg
c3RhdGljIGJvb2wgaXNTaW1wbGVJbWFnZShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQog
ICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlMaXN0KE5v
ZGUqIG5vZGUpCit7CisgICAgLy8gSWYgdGhlIG5vZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0
aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBpdCdzIGEKKyAgICAvLyB1bC9vbC9kbCB0eXBlIChp
dCBzaG91bGRuJ3QgYmUgYSBsaXN0IGlmIGFyaWEgc2F5cyBvdGhlcndpc2UpLgorICAgIHJldHVy
biAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShu
b2RlLCAiZGlyZWN0b3J5Il9zKSkKKyAgICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxB
dG9tKCkpICYmIChub2RlLT5oYXNUYWdOYW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9s
VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKGRsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG1lbnVU
YWcpKSkpKTsKK30KKwogUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFYT2JqZWN0Q2FjaGU6OmNy
ZWF0ZU9iamVjdEZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewogICAgIC8v
IEZJWE1FOiBIb3cgY291bGQgcmVuZGVyZXItPm5vZGUoKSBldmVyIG5vdCBiZSBhbiBFbGVtZW50
PwogICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgpOwogCi0gICAgLy8gSWYgdGhlIG5v
ZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBpdHMg
YQotICAgIC8vIG1lbnUvdWwvb2wvZGwgdHlwZSAoaXQgc2hvdWxkbid0IGJlIGEgbGlzdCBpZiBh
cmlhIHNheXMgb3RoZXJ3aXNlKS4KLSAgICBpZiAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUs
ICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5Il9zKSkKLSAgICAgICAg
fHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKCkpICYmIChub2RlLT5oYXNUYWdOYW1lKG1l
bnVUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xU
YWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZGxUYWcpKSkpKQorICAgIGlmIChpc0FjY2Vzc2liaWxp
dHlMaXN0KG5vZGUpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShy
ZW5kZXJlcik7CiAKICAgICAvLyBhcmlhIHRhYmxlcwpAQCAtNjgyLDYgKzY4Nyw4IEBAIFJlZjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PiBBWE9iamVjdENhY2hlOjpjcmVhdGVPYmplY3RGcm9tUmVuZGVy
ZXIoUmVuZGVyT2JqZWN0KiByCiAKIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3Jl
YXRlRnJvbU5vZGUoTm9kZSYgbm9kZSkKIHsKKyAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5TGlzdCgm
bm9kZSkpCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKG5vZGUpOwog
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKG5vZGUpOwogfQogCkBA
IC03NDIsNyArNzQ5LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0
T3JDcmVhdGUoTm9kZSogbm9kZSkKIAogICAgIGlmICghbm9kZS0+cGFyZW50RWxlbWVudCgpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAKKwogICAgIGJvb2wgaXNPcHRpb25FbGVtZW50
ID0gaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KCpub2RlKTsKICAgICBpZiAoaXNPcHRpb25FbGVtZW50
IHx8IGlzPEhUTUxPcHRHcm91cEVsZW1lbnQ+KCpub2RlKSkgewogICAgICAgICBhdXRvIHNlbGVj
dCA9IGlzT3B0aW9uRWxlbWVudApAQCAtNzg4LDcgKzc5NSw3IEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKE5vZGUqIG5vZGUpCiAgICAgLy8gaXQgd2ls
bCBkaXNhcHBlYXIgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGZpbmlzaGVkLCBsZWFkaW5nIHRvIGEg
dXNlLWFmdGVyLWZyZWUuCiAgICAgaWYgKG5ld09iamVjdC0+aXNEZXRhY2hlZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICAKKwogICAgIHJldHVybiBuZXdPYmplY3QuZ2V0KCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlz
dC5jcHAKaW5kZXggMjg4NWVlNjgzOGVhLi43OGMzMjcwZTc4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCkBAIC00Niw2ICs0
NiwxMSBAQCBBY2Nlc3NpYmlsaXR5TGlzdDo6QWNjZXNzaWJpbGl0eUxpc3QoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKIHsKIH0KIAorQWNjZXNzaWJpbGl0eUxpc3Q6OkFjY2Vzc2liaWxpdHlMaXN0
KE5vZGUmIG5vZGUpCisgICAgOiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KG5vZGUpCit7Cit9
CisKIEFjY2Vzc2liaWxpdHlMaXN0Ojp+QWNjZXNzaWJpbGl0eUxpc3QoKSA9IGRlZmF1bHQ7CiAK
IFJlZjxBY2Nlc3NpYmlsaXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQpAQCAtNTMsNiArNTgsMTEgQEAgUmVmPEFjY2Vzc2liaWxpdHlMaXN0
PiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsKIH0KIAor
UmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKE5vZGUmIG5v
ZGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3Qobm9kZSkp
OworfQorCiBib29sIEFjY2Vzc2liaWxpdHlMaXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1
bHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxp
c3QuaAppbmRleCAzYTA2MWU4ZGQ1OTguLjBlNDA4MGJmYTRhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApAQCAtMzUsMTEgKzM1LDEz
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlMaXN0IGZpbmFsIDog
cHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8QWNjZXNzaWJpbGl0eUxpc3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBjcmVhdGUoTm9kZSYpOwogICAgIHZpcnR1YWwgfkFjY2Vz
c2liaWxpdHlMaXN0KCk7CiAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25z
dCBvdmVycmlkZTsKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxpc3QoUmVu
ZGVyT2JqZWN0Kik7CisgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUxpc3QoTm9kZSYpOwogICAg
IGJvb2wgaXNMaXN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wg
aXNVbm9yZGVyZWRMaXN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc09yZGVyZWRMaXN0
KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGZhOWJkNjQwYmEzMS4uMmYy
YzU4YmVjZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtMjE1LDggKzIxNSwyNyBAQCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29u
c3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6Y2hlY2tib3hPclJhZGlvUmVjdCgpIGNvbnN0Cit7CisgICAgYXV0byogbGFiZWwg
PSBsYWJlbEZvckVsZW1lbnQoZHluYW1pY0Rvd25jYXN0PEVsZW1lbnQ+KG5vZGUoKSkpOworICAg
IGlmICghbGFiZWwgfHwgIWxhYmVsLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gYm91bmRp
bmdCb3hSZWN0KCk7CisKKyAgICBhdXRvKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsKKyAgICBp
ZiAoIWNhY2hlKQorICAgICAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7CisKKyAgICAvLyBB
IGNoZWNrYm94IG9yIHJhZGlvIGJ1dHRvbiBzaG91bGQgZW5jb21wYXNzIGl0cyBsYWJlbC4KKyAg
ICBhdXRvIGxhYmVsUmVjdCA9IGNhY2hlLT5nZXRPckNyZWF0ZShsYWJlbCktPmVsZW1lbnRSZWN0
KCk7CisgICAgbGFiZWxSZWN0LnVuaXRlKGJvdW5kaW5nQm94UmVjdCgpKTsKKyAgICByZXR1cm4g
bGFiZWxSZWN0OworfQorCiBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVt
ZW50UmVjdCgpIGNvbnN0CiB7CisgICAgaWYgKGlzQ2hlY2tib3hPclJhZGlvKCkpCisgICAgICAg
IHJldHVybiBjaGVja2JveE9yUmFkaW9SZWN0KCk7CisKICAgICByZXR1cm4gYm91bmRpbmdCb3hS
ZWN0KCk7CiB9CiAKQEAgLTI2Miw2ICsyODEsMTMgQEAgRG9jdW1lbnQqIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojpkb2N1bWVudCgpIGNvbnN0CiAgICAgcmV0dXJuICZub2RlKCktPmRvY3VtZW50
KCk7CiB9CiAKK0xvY2FsRnJhbWVWaWV3KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1l
bnRGcmFtZVZpZXcoKSBjb25zdAoreworICAgIGlmIChhdXRvKiBub2RlID0gdGhpcy0+bm9kZSgp
KQorICAgICAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS52aWV3KCk7CisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmRvY3VtZW50RnJhbWVWaWV3KCk7Cit9CisKIEFjY2Vzc2liaWxp
dHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9s
ZSgpCiB7CiAgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFj
Y2Vzc2liaWxpdHlSb2xlIl9zKTsKQEAgLTQ5MCwxMyArNTE2LDEzIEBAIHZvaWQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmFkZENoaWxkcmVuKCkKIHsKICAgICAvLyBJZiB0aGUgbmVlZCB0byBh
ZGQgbW9yZSBjaGlsZHJlbiBpbiBhZGRpdGlvbiB0byBleGlzdGluZyBjaGlsZHJlbiBhcmlzZXMs
IAogICAgIC8vIGNoaWxkcmVuQ2hhbmdlZCBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCwgbGVhdmlu
ZyB0aGUgb2JqZWN0IHdpdGggbm8gY2hpbGRyZW4uCi0gICAgQVNTRVJUKCFtX2NoaWxkcmVuSW5p
dGlhbGl6ZWQpOyAKKyAgICBBU1NFUlQoIW1fY2hpbGRyZW5Jbml0aWFsaXplZCk7CiAgICAgCi0g
ICAgaWYgKCFtX25vZGUpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1fY2hpbGRyZW5Jbml0aWFs
aXplZCA9IHRydWU7CiAKKyAgICBpZiAoIWNhbkhhdmVDaGlsZHJlbigpKQorICAgICAgICByZXR1
cm47CisKICAgICAvLyBUaGUgb25seSB0aW1lIHdlIGFkZCBjaGlsZHJlbiBmcm9tIHRoZSBET00g
dHJlZSB0byBhIG5vZGUgd2l0aCBhIHJlbmRlcmVyIGlzIHdoZW4gaXQncyBhIGNhbnZhcy4KICAg
ICBpZiAocmVuZGVyZXIoKSAmJiAhbm9kZSgpLT5oYXNUYWdOYW1lKGNhbnZhc1RhZykpCiAgICAg
ICAgIHJldHVybjsKQEAgLTUwNywyMiArNTMzLDE5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmFkZENoaWxkcmVuKCkKIAogICAgIGZvciAoYXV0byogY2hpbGQgPSBub2RlKCktPmZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAg
IGFkZENoaWxkKG9iamVjdENhY2hlLT5nZXRPckNyZWF0ZShjaGlsZCkpOwotICAgIAorCiAgICAg
dXBkYXRlT3duZWRDaGlsZHJlbigpOwogICAgIG1fc3VidHJlZURpcnR5ID0gZmFsc2U7CiB9CiAK
IGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0CiB7
Ci0gICAgLy8gSWYgdGhpcyBpcyBhbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LCB0aGVuIGl0
J3Mgb2theSBpZiB0aGlzIG9iamVjdAotICAgIC8vIGRvZXNuJ3QgaGF2ZSBhIG5vZGUgLSB0aGVy
ZSBhcmUgc29tZSByZW5kZXJlcnMgdGhhdCBkb24ndCBoYXZlIGFzc29jaWF0ZWQKLSAgICAvLyBu
b2RlcywgbGlrZSBzY3JvbGwgYXJlYXMgYW5kIGNzcy1nZW5lcmF0ZWQgdGV4dC4KLSAgICBpZiAo
IW5vZGUoKSAmJiAhaXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQogICAgIC8vIFdoZW4gPG5vc2NyaXB0PiBpcyBub3QgYmVpbmcgdXNlZCAoaXRz
IHJlbmRlcmVyKCkgPT0gMCksIGlnbm9yZSBpdHMgY2hpbGRyZW4uCiAgICAgaWYgKG5vZGUoKSAm
JiAhcmVuZGVyZXIoKSAmJiBub2RlKCktPmhhc1RhZ05hbWUobm9zY3JpcHRUYWcpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgLy8gSWYgdGhpcyBpcyBhbiBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LCB0aGVuIGl0J3Mgb2theSBpZiB0aGlzIG9iamVjdAorICAgIC8vIGRvZXNuJ3QgaGF2
ZSBhIG5vZGUgLSB0aGVyZSBhcmUgc29tZSByZW5kZXJlcnMgdGhhdCBkb24ndCBoYXZlIGFzc29j
aWF0ZWQKKyAgICAvLyBub2RlcywgbGlrZSBzY3JvbGwgYXJlYXMgYW5kIGNzcy1nZW5lcmF0ZWQg
dGV4dC4KIAogICAgIC8vIEVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBoYXZlIGNoaWxkcmVuLgog
ICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKQEAgLTU3Miw2ICs1OTUsOCBAQCBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
CiAgICAgLy8gaXQncyBiZWVuIGluaXRpYWxpemVkLgogICAgIEFTU0VSVChtX2luaXRpYWxpemVk
KTsKICNlbmRpZgorICAgIGlmICghbm9kZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IC8vIEhhbmRsZSBub24tcmVuZGVyZWQgdGV4dCB0aGF0IGlzIGV4cG9zZWQgdGhyb3VnaCBhcmlh
LWhpZGRlbj1mYWxzZS4KICAgICBpZiAobm9kZSgpICYmIG5vZGUoKS0+aXNUZXh0Tm9kZSgpICYm
ICFyZW5kZXJlcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggN2UzMzM4M2JlZGMxLi43MTNlNjFlNDU1
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmgKQEAgLTgzLDYgKzgzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Tm9kZShOb2RlKik7CiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
bm9kZS5nZXQoKTsgfQogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIExvY2FsRnJhbWVWaWV3KiBkb2N1bWVudEZyYW1lVmlldygpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdm9pZCBzZXRGb2N1c2VkKGJvb2wpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNGb2N1c2Vk
KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xNjEsNiArMTYyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25z
dDsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByZW1hcEFyaWFSb2xlRHVlVG9QYXJlbnQoQWNjZXNz
aWJpbGl0eVJvbGUpIGNvbnN0OwogCisgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsK
ICAgICB2b2lkIGNsZWFyQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNoaWxk
cmVuSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKQEAgLTIxMCwxMyArMjEyLDEzIEBAIHByaXZhdGU6
CiAgICAgdm9pZCB2aXNpYmxlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7
CiAgICAgU3RyaW5nIGFsdGVybmF0aXZlVGV4dEZvcldlYkFyZWEoKSBjb25zdDsKICAgICB2b2lk
IGFyaWFMYWJlbGVkQnlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKLSAg
ICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgYm9vbCB1c2VzQWx0VGFnRm9yVGV4dENvbXB1dGF0aW9uKCkgY29uc3Q7CiAgICAgYm9vbCBy
b2xlSWdub3Jlc1RpdGxlKCkgY29uc3Q7CiAgICAgYm9vbCBwb3N0S2V5Ym9hcmRLZXlzRm9yVmFs
dWVDaGFuZ2UoU3RlcEFjdGlvbik7CiAgICAgdm9pZCBzZXROb2RlVmFsdWUoU3RlcEFjdGlvbiwg
ZmxvYXQpOwogICAgIGJvb2wgcGVyZm9ybURpc21pc3NBY3Rpb24oKSBmaW5hbDsKICAgICBib29s
IGhhc1RleHRBbHRlcm5hdGl2ZSgpIGNvbnN0OworICAgIExheW91dFJlY3QgY2hlY2tib3hPclJh
ZGlvUmVjdCgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXROZWVkc1RvVXBkYXRlQ2hpbGRyZW4oKSBv
dmVycmlkZSB7IG1fY2hpbGRyZW5EaXJ0eSA9IHRydWU7IH0KICAgICBib29sIG5lZWRzVG9VcGRh
dGVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2hpbGRyZW5EaXJ0eTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKaW5kZXggZDAzMDQwZmM4MmQxLi40ZGIyMmE1MWExYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtNDQ4
LDcgKzQ0OCw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnBy
ZXZpb3VzU2libGluZ1VuaWdub3JlZChpbnQgbGltaXQpIGNvCiBGbG9hdFJlY3QgQWNjZXNzaWJp
bGl0eU9iamVjdDo6Y29udmVydEZyYW1lVG9TcGFjZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lUmVj
dCwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSBjb252ZXJzaW9uU3BhY2UpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAKKwogICAgIC8vIEZpbmQgdGhlIGFw
cHJvcHJpYXRlIHNjcm9sbCB2aWV3IHRvIHVzZSB0byBjb252ZXJ0IHRoZSBjb250ZW50cyB0byB0
aGUgd2luZG93LgogICAgIGNvbnN0IGF1dG8gcGFyZW50QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcg
PSBhbmNlc3RvckFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KGZhbHNlIC8qIGluY2x1ZGVTZWxmICov
KTsKICAgICBhdXRvKiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50QWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcgPyBwYXJlbnRBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy0+c2Nyb2xsVmlldygpIDogbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgKaW5kZXggZjk5OTQ3N2MzZmMwLi5jYTNhMzNjNDdkNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0yNTks
NyArMjU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlY29tcHV0ZUlzSWdub3Jl
ZCgpOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWZhdWx0T2Jq
ZWN0SW5jbHVzaW9uKCkgY29uc3Q7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBk
ZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkgY29uc3Q7CiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkQnlEZWZhdWx0KCkgY29uc3Q7CiAKICAgICBib29sIGlzU2hvd2luZ1ZhbGlkYXRpb25N
ZXNzYWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBjMDI0ZDEwYWZiMzUuLjA4
NTIyMDc0MDVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMzIsNiArMTMyLDEzIEBAIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKICNlbmRpZgogfQogCitBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KE5vZGUmIG5vZGUpCisgICAgOiBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdCgmbm9kZSkKK3sKKyAgICAvLyBXZSBzaG91bGQgb25seSBldmVyIGNyZWF0
ZSBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdpdGggYSBub2RlIGlmIHRoYXQgbm9kZSBoYXMg
bm8gcmVuZGVyZXIgKGkuZS4gYmVjYXVzZSBvZiBkaXNwbGF5OmNvbnRlbnRzKS4KKyAgICBBU1NF
UlQoIW5vZGUucmVuZGVyZXIoKSk7Cit9CisKIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6On5B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkKIHsKICAgICBBU1NFUlQoaXNEZXRhY2hlZCgpKTsK
QEAgLTIxOCw3ICsyMjUsNyBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFzdENoaWxk
Q29uc2lkZXJpbmdDb250aW51YXRpb24oUmVuZGVyT2JqZWN0JiByZW5kZQogQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Zmlyc3RDaGlsZCgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpmaXJzdENoaWxkKCk7CiAgICAgCiAgICAg
UmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkID0gZmlyc3RDaGlsZENvbnNpZGVyaW5nQ29udGludWF0
aW9uKCptX3JlbmRlcmVyKTsKIApAQCAtMjM2LDcgKzI0Myw3IEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmZpcnN0Q2hpbGQoKSBjb25zdAogQWNjZXNz
aWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGFzdENoaWxkKCkgY29u
c3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omxhc3RDaGlsZCgpOwogCiAgICAg
UmVuZGVyT2JqZWN0KiBsYXN0Q2hpbGQgPSBsYXN0Q2hpbGRDb25zaWRlcmluZ0NvbnRpbnVhdGlv
bigqbV9yZW5kZXJlcik7CiAKQEAgLTMxMyw3ICszMjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
Zmlyc3RDaGlsZElzSW5saW5lQ29udGludWF0aW9uKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQog
QWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cHJldmlvdXNT
aWJsaW5nKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnByZXZpb3Vz
U2libGluZygpOwogCiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1NpYmxpbmcgPSBudWxscHRy
OwogCkBAIC0zNjAsNyArMzY3LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBsYXN0Q2hpbGRIYXND
b250aW51YXRpb24oUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAKIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nKCkgY29uc3QKIHsKLSAg
ICBpZiAoIW1fcmVuZGVyZXIgfHwgaXM8UmVuZGVyVmlldz4oKm1fcmVuZGVyZXIpKQorICAgIGlm
ICghbV9yZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpu
ZXh0U2libGluZygpOworCisgICAgaWYgKGlzPFJlbmRlclZpZXc+KG1fcmVuZGVyZXIpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmcgPSBu
dWxscHRyOwpAQCAtNDgzLDcgKzQ5Myw3IEBAIFJlbmRlck9iamVjdCogQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6cmVuZGVyUGFyZW50T2JqZWN0KCkgY29uc3QKICAgICAgICAgCiAgICAgcmV0
dXJuIHBhcmVudDsKIH0KLSAgICAKKwogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdAogewogICAgIEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpOwpAQCAtNTEyLDcgKzUyMiw3IEBAIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhcmVudE9iamVj
dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBkaXNwbGF5Q29udGVudHNQYXJlbnQ7CiAKICAgICBp
ZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhcmVudE9iamVjdCgpOwogCiAgICAgV2Vha1B0ciBj
YWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsKICAgICBpZiAoIWNhY2hlKQpAQCAtNjE0LDcgKzYyNCw3
IEBAIEVsZW1lbnQqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFuY2hvckVsZW1lbnQoKSBj
b25zdAogU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmhlbHBUZXh0KCkgY29uc3QK
IHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aGVscFRleHQoKTsKIAogICAgIGNvbnN0IGF1
dG8mIGFyaWFIZWxwID0gZ2V0QXR0cmlidXRlKGFyaWFfaGVscEF0dHIpOwogICAgIGlmICghYXJp
YUhlbHAuaXNFbXB0eSgpKQpAQCAtNjUxLDcgKzY2MSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1v
ZGUgbW9kZSkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5k
ZXJFbGVtZW50KG1vZGUpOwogCiAgICAgaWYgKGlzPFJlbmRlckZpbGVVcGxvYWRDb250cm9sPigq
bV9yZW5kZXJlcikpCiAgICAgICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbD4oKm1fcmVuZGVyZXIpLmJ1dHRvblZhbHVlKCk7CkBAIC03NDQsMTcgKzc1NCwxNSBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNob3VsZEdldFRleHRGcm9tTm9kZShBY2Nl
c3NpYmlsaXR5VGV4dFVuZGVyRWxlbQogCiBOb2RlKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
Ojpub2RlKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIGlmIChtX3JlbmRlcmVyLT5pc1JlbmRlclZpZXcoKSkKLSAgICAgICAgcmV0
dXJuICZtX3JlbmRlcmVyLT5kb2N1bWVudCgpOwotICAgIHJldHVybiBtX3JlbmRlcmVyLT5ub2Rl
KCk7Ci19ICAgIAorICAgIGlmIChtX3JlbmRlcmVyKQorICAgICAgICByZXR1cm4gTElLRUxZKCFt
X3JlbmRlcmVyLT5pc1JlbmRlclZpZXcoKSkgPyBtX3JlbmRlcmVyLT5ub2RlKCkgOiAmbV9yZW5k
ZXJlci0+ZG9jdW1lbnQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Om5v
ZGUoKTsKK30KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVl
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiB7IH07Cisg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6c3RyaW5nVmFsdWUoKTsKIAog
ICAgIGlmIChpc1N0YXRpY1RleHQoKSB8fCBpc1RleHRDb250cm9sKCkgfHwgaXNTZWN1cmVGaWVs
ZCgpKQogICAgICAgICByZXR1cm4gdGV4dCgpOwpAQCAtODI2LDcgKzgzNCw3IEBAIExheW91dFJl
Y3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKICAg
ICBSZW5kZXJPYmplY3QqIG9iaiA9IHJlbmRlcmVyKCk7CiAgICAgCiAgICAgaWYgKCFvYmopCi0g
ICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KCk7CiAgICAgCiAgICAgaWYgKG9iai0+bm9kZSgp
KSAvLyBJZiB3ZSBhcmUgYSBjb250aW51YXRpb24sIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRvIHVz
ZSB0aGUgcHJpbWFyeSByZW5kZXJlci4KICAgICAgICAgb2JqID0gb2JqLT5ub2RlKCktPnJlbmRl
cmVyKCk7CkBAIC04NjAsMjkgKzg2OCw2IEBAIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQog
ICAgIAotTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjaGVja2JveE9yUmFk
aW9SZWN0KCkgY29uc3QKLXsKLSAgICBpZiAoIW1fcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBM
YXlvdXRSZWN0KCk7Ci0gICAgCi0gICAgSFRNTExhYmVsRWxlbWVudCogbGFiZWwgPSBsYWJlbEZv
ckVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4obV9yZW5kZXJlci0+bm9kZSgpKSk7Ci0gICAgaWYg
KCFsYWJlbCB8fCAhbGFiZWwtPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBib3VuZGluZ0Jv
eFJlY3QoKTsKLSAgICAKLSAgICBMYXlvdXRSZWN0IGxhYmVsUmVjdCA9IGF4T2JqZWN0Q2FjaGUo
KS0+Z2V0T3JDcmVhdGUobGFiZWwpLT5lbGVtZW50UmVjdCgpOwotICAgIGxhYmVsUmVjdC51bml0
ZShib3VuZGluZ0JveFJlY3QoKSk7Ci0gICAgcmV0dXJuIGxhYmVsUmVjdDsKLX0KLQotTGF5b3V0
UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjplbGVtZW50UmVjdCgpIGNvbnN0Ci17Ci0g
ICAgLy8gYSBjaGVja2JveCBvciByYWRpbyBidXR0b24gc2hvdWxkIGVuY29tcGFzcyBpdHMgbGFi
ZWwKLSAgICBpZiAoaXNDaGVja2JveE9yUmFkaW8oKSkKLSAgICAgICAgcmV0dXJuIGNoZWNrYm94
T3JSYWRpb1JlY3QoKTsKLSAgICAKLSAgICByZXR1cm4gYm91bmRpbmdCb3hSZWN0KCk7Ci19Ci0K
IGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNQYXRoKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gaXM8UmVuZGVyVGV4dD4ocmVuZGVyZXIoKSkgfHwgKHJlbmRlcmVyKCkgJiYg
cmVuZGVyZXIoKS0+aXNTVkdTaGFwZU9yTGVnYWN5U1ZHU2hhcGUoKSk7CkBAIC0xMDYyLDEzICsx
MDQ3LDYgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gb2JqZWN0SW5jbHVz
aW9uRnJvbUFsdFRleHQoY29uc3QgU3RyaW5nJiBhbHQKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eU9iamVjdEluY2x1c2lvbjo6RGVmYXVsdEJlaGF2aW9yOwogfQogCi1BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNs
dXNpb24oKSBjb25zdAotewotICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdDsKLSAgICByZXR1cm4gQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oKTsKLX0KLSAgICAK
IHN0YXRpYyBib29sIHdlYkFyZWFJc1ByZXNlbnRhdGlvbmFsKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCiB7CiAgICAgaWYgKCFyZW5kZXJlciB8fCAhaXM8UmVuZGVyVmlldz4oKnJlbmRlcmVyKSkK
QEAgLTEwODcsNyArMTA2NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogI2VuZGlmCiAKICAgICBpZiAoIW1f
cmVuZGVyZXIpCi0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiAKICAgICAv
LyBDaGVjayBmaXJzdCBpZiBhbnkgb2YgdGhlIGNvbW1vbiByZWFzb25zIGNhdXNlIHRoaXMgZWxl
bWVudCB0byBiZSBpZ25vcmVkLgogICAgIC8vIFRoZW4gcHJvY2VzcyBvdGhlciB1c2UgY2FzZXMg
dGhhdCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gYWxsIHRoZSB2YXJpb3VzIHJvbGVzCkBAIC0xNTMy
LDcgKzE1MTAsNyBAQCBSZW5kZXJWaWV3KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0b3BS
ZW5kZXJlcigpIGNvbnN0CiBEb2N1bWVudCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9j
dW1lbnQoKSBjb25zdAogewogICAgIGlmICghbV9yZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1lbnQo
KTsKICAgICByZXR1cm4gJm1fcmVuZGVyZXItPmRvY3VtZW50KCk7CiB9CiAKQEAgLTE2MDYsOSAr
MTU4NCw4IEBAIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmRvY3VtZW50TGluCiBMb2NhbEZyYW1lVmlldyogQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnRGcmFtZVZpZXcoKSBjb25zdCAKIHsgCiAgICAg
aWYgKCFtX3JlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpkb2N1bWVudEZyYW1lVmlldygpOwogCi0gICAgLy8g
dGhpcyBpcyB0aGUgUmVuZGVyT2JqZWN0J3MgRG9jdW1lbnQncyBGcmFtZSdzIExvY2FsRnJhbWVW
aWV3CiAgICAgcmV0dXJuICZtX3JlbmRlcmVyLT52aWV3KCkuZnJhbWVWaWV3KCk7CiB9CiAKQEAg
LTI2MDEsNyArMjU3OCwxMSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0
ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24oKQogICAgIAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjphZGRDaGlsZHJlbigpCiB7Ci0gICAgLy8gSWYgdGhlIG5lZWQgdG8gYWRkIG1v
cmUgY2hpbGRyZW4gaW4gYWRkaXRpb24gdG8gZXhpc3RpbmcgY2hpbGRyZW4gYXJpc2VzLCAKKyAg
ICBpZiAoVU5MSUtFTFkoIXJlbmRlcmVyKCkpKSB7CisgICAgICAgIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjphZGRDaGlsZHJlbigpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIElm
IHRoZSBuZWVkIHRvIGFkZCBtb3JlIGNoaWxkcmVuIGluIGFkZGl0aW9uIHRvIGV4aXN0aW5nIGNo
aWxkcmVuIGFyaXNlcywKICAgICAvLyBjaGlsZHJlbkNoYW5nZWQgc2hvdWxkIGhhdmUgYmVlbiBj
YWxsZWQsIGxlYXZpbmcgdGhlIG9iamVjdCB3aXRoIG5vIGNoaWxkcmVuLgogICAgIEFTU0VSVCgh
bV9jaGlsZHJlbkluaXRpYWxpemVkKTsgCiAKQEAgLTI2NDMsMTEgKzI2MjQsNiBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKCkKICAgICB1cGRhdGVSb2xlQWZ0
ZXJDaGlsZHJlbkNyZWF0aW9uKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yZW5kZXJlciAmJiBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCk7Ci19Ci0KIHZvaWQgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0QWNjZXNzaWJsZU5hbWUoY29uc3QgQXRvbVN0cmlu
ZyYgbmFtZSkKIHsKICAgICAvLyBTZXR0aW5nIHRoZSBhY2Nlc3NpYmxlIG5hbWUgY2FuIHN0b3Jl
IHRoZSB2YWx1ZSBpbiB0aGUgRE9NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDJmZDc5ODgxZmIzOC4u
MzkwYmExZDczNzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNjcsOSArNjcsNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNVbmRlcmxpbmUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0
QWNjZXNzaWJsZU5hbWUoY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwotCi0gICAgLy8gUHJv
dmlkZXMgY29tbW9uIGxvZ2ljIHVzZWQgYnkgYWxsIGVsZW1lbnRzIHdoZW4gZGV0ZXJtaW5pbmcg
aXNJZ25vcmVkLgotICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVmYXVsdE9iamVj
dEluY2x1c2lvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIGludCBsYXlvdXRDb3VudCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIApAQCAtODgsMTcgKzg1LDE0IEBAIHB1YmxpYzoKICAgICBF
bGVtZW50KiBhbmNob3JFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgTGF5b3V0
UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRSZWN0IGVs
ZW1lbnRSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZW5kZXJlci5nZXQoKTsgfQogICAgIFJlbmRl
ckJveE1vZGVsT2JqZWN0KiByZW5kZXJCb3hNb2RlbE9iamVjdCgpIGNvbnN0OwogICAgIE5vZGUq
IG5vZGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0
IG92ZXJyaWRlOwotCiAgICAgUmVuZGVyVmlldyogdG9wUmVuZGVyZXIoKSBjb25zdDsKLSAgICBS
ZW5kZXJUZXh0Q29udHJvbCogdGV4dENvbnRyb2woKSBjb25zdDsKLSAgICAKKwogICAgIFVSTCB1
cmwoKSBjb25zdCBvdmVycmlkZTsKICAgICBDaGFyYWN0ZXJSYW5nZSBzZWxlY3RlZFRleHRSYW5n
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBpbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKSBj
b25zdCBvdmVycmlkZTsKQEAgLTExNyw3ICsxMTEsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRW
YWx1ZShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBv
dmVycmlkZTsKLSAgICBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9uUmFuZ2UoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBWaXNpYmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZUZvckxp
bmUodW5zaWduZWQpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMTQ1LDExICsxMzgsMTIgQEAgcHVibGlj
OgogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChS
ZW5kZXJPYmplY3QqKTsKKyAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KE5v
ZGUmKTsKICAgICB2b2lkIGRldGFjaFJlbW90ZVBhcnRzKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50
VHlwZSkgb3ZlcnJpZGU7CiAgICAgU2Nyb2xsYWJsZUFyZWEqIGdldFNjcm9sbGFibGVBcmVhSWZT
Y3JvbGxhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBJbnRQ
b2ludCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIGJvb2wgaXNEZXRhY2hlZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICFtX3JlbmRlcmVyOyB9CisgICAgYm9vbCBpc0RldGFjaGVkKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIW1fcmVuZGVyZXIgJiYgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmlzRGV0YWNoZWQoKTsgfQogCiAgICAgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVSb2xl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNz
aWJpbGl0eVJvbGUoKSBvdmVycmlkZTsKQEAgLTE2OSw3ICsxNjMsNiBAQCBwcml2YXRlOgogICAg
IGJvb2wgbm9kZUlzVGV4dENvbnRyb2woY29uc3QgTm9kZSopIGNvbnN0OwogICAgIFBhdGggZWxl
bWVudFBhdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBMYXlvdXRSZWN0IGNoZWNrYm94
T3JSYWRpb1JlY3QoKSBjb25zdDsKICAgICBBWENvcmVPYmplY3QqIGFjY2Vzc2liaWxpdHlJbWFn
ZU1hcEhpdFRlc3QoSFRNTEFyZWFFbGVtZW50KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmlsaXR5UGFyZW50Rm9ySW1hZ2VNYXAoSFRN
TE1hcEVsZW1lbnQqKSBjb25zdDsKICAgICBBWENvcmVPYmplY3QqIGVsZW1lbnRBY2Nlc3NpYmls
aXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5odG1s
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5o
dG1sCmluZGV4IDA1ZGU3YzM1MWFhNi4uYTkwNWEwNGVkNzA5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy5odG1s
CkBAIC0xMTEsNyArMTExLDkgQEAKIAogICAgIDxvdXRwdXQgaGlkZGVuIGFyaWEtaGlkZGVuPSJm
YWxzZSIgaWQ9Im91dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CiAKLSAgICA8bWVudSBoaWRkZW4gYXJp
YS1oaWRkZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+
CisgICAgPG1lbnUgaGlkZGVuIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9
Im1lbnUtdG9vbGJhciI+CisgICAgICAgIDxsaSBoaWRkZW4gYXJpYS1oaWRkZW49ImZhbHNlIj5I
ZWxsbyB3b3JsZDwvbGk+CisgICAgPC9tZW51PgogCiAgICAgPGhyIGhpZGRlbiBhcmlhLWhpZGRl
bj0iZmFsc2UiIGlkPSJociI+PC9ocj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhw
ZWN0ZWQudHh0CmluZGV4IGY4YmRjZTQ5YTA1NS4uNmZhNTM4NWQ5YTZmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRl
bnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CkBAIC01MSw2ICs1MSw3IEBAIFRoaXMgdGVz
dCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNv
cnJlY3Qgcm9sZS4KIAogPGRsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRsIj48L2RsPgogICAgIEFY
Um9sZTogQVhMaXN0CisgICAgQVhTdWJyb2xlOiBBWERlc2NyaXB0aW9uTGlzdAogCiA8ZHQgY2xh
c3M9InRlc3RjYXNlIiBpZD0iZHQiPjwvZHQ+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0xMDIs
NiArMTAzLDExIEBAIFRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6
IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KIDxtZW51IGNsYXNzPSJ0ZXN0Y2FzZSIg
dHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgogICAgIEFYUm9sZTogQVhM
aXN0CiAgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhTdWJyb2xlOiBBWENvbnRl
bnRMaXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgor
ICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdGl0ZW0KIAog
PG5hdiBjbGFzcz0idGVzdGNhc2UiIGlkPSJuYXYiPjwvbmF2PgogICAgIEFYUm9sZTogQVhHcm91
cApAQCAtMTExLDYgKzExNyw3IEBAIFRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NT
IGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KIDxvbCBjbGFzcz0idGVz
dGNhc2UiIGlkPSJvbCI+PC9vbD4KICAgICBBWFJvbGU6IEFYTGlzdAogICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogbGlzdAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8bGkgY2xhc3M9
InRlc3RjYXNlIiBpZD0ib2wtbGktZWxlbWVudCI+PC9saT4KICAgICBBWFJvbGU6IEFYR3JvdXAK
QEAgLTE1NSw2ICsxNjIsNyBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBk
aXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiA8dWwgY2xhc3M9InRlc3Rj
YXNlIiBpZD0idWwiPjwvdWw+CiAgICAgQVhSb2xlOiBBWExpc3QKICAgICBjb21wdXRlZFJvbGVT
dHJpbmc6IGxpc3QKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudExpc3QKIAogPGxpIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPjwvbGk+CiAgICAgQVhSb2xlOiBBWEdyb3VwCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxl
bWVudC1yb2xlcy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRl
bnRzLWVsZW1lbnQtcm9sZXMuaHRtbAppbmRleCBmMGNjM2Y2NTQ5YjQuLmI5ODQwZWU3ZGFlYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVs
ZW1lbnQtcm9sZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXkt
Y29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sCkBAIC02MywxMiArNjMsMTYgQEAKIAogICAgIDxt
YXJrIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1hcmsiPk1hcmtlZCB0ZXh0PC9tYXJrPgogCi0gICAg
PG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48
L21lbnU+CisgICAgPG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVu
dS10b29sYmFyIj4KKyAgICAgICAgPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1l
bnQiPkhlbGxvIHdvcmxkPC9saT4KKyAgICAgICAgPGxpPmxpc3QgaXRlbSB3aXRoIHJlbmRlcmVy
PC9saT4KKyAgICA8L21lbnU+CiAKICAgICA8bmF2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+
TmF2PC9uYXY+CiAKICAgICA8b2wgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wiPgogICAgICAgICA8
bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wtbGktZWxlbWVudCI+SGVsbG8gd29ybGQ8L2xpPgor
ICAgICAgICA8bGk+bGlzdCBpdGVtIHdpdGggcmVuZGVyZXI8L2xpPgogICAgIDwvb2w+CiAKICAg
ICA8b3V0cHV0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im91dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CkBA
IC04OSw2ICs5Myw3IEBACiAKICAgICA8dWwgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwiPgogICAg
ICAgICA8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+SGVsbG8gd29ybGQ8
L2xpPgorICAgICAgICA8bGk+bGlzdCBpdGVtIHdpdGggcmVuZGVyZXI8L2xpPgogICAgIDwvdWw+
CiA8L2Rpdj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3Np
YmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQKaW5kZXggZjEyNTExZjYxOTU3Li5mNzQxNDE0MzcyYzUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUt
ZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xp
Yi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApA
QCAtMTA1LDEyICsxMDUsMTAgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1l
bnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKICAgICBBWFJvbGU6
IEFYRGVzY3JpcHRpb25MaXN0CiAKIDxvbCBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBp
ZD0ib2wiPjwvb2w+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6
IGxpc3QKKyAgICBBWFJvbGU6IEFYR3JvdXAKIAogPHVsIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0i
ZmFsc2UiIGlkPSJ1bCI+PC91bD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAogCiA8ZmlndXJlIGhpZGRlbj0iIiBh
cmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJmaWd1cmUiPjwvZmlndXJlPgogICAgIEFYUm9sZTogQVhH
cm91cApAQCAtMTgwLDggKzE3OCw3IEBAIFRoaXMgdGVzdCBlbnN1cmVzIEFSSUEgdmlzaWJsZSBl
bGVtZW50cyAoZS5nLiB0aG9zZSB3aXRoIGJvdGggYGhpZGRlbmAgYW5kIGBhcmlhCiAgICAgY29t
cHV0ZWRSb2xlU3RyaW5nOiBzdGF0dXMKIAogPG1lbnUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJm
YWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgotICAgIEFYUm9s
ZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdy
b3VwCiAKIDxociBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaHIiPgogICAgIEFY
Um9sZTogQVhTZXBhcmF0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIv
YWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVu
dHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKaW5kZXggOThmMjI2NTYwN2U2Li5kZDg3YmJk
YWY0MWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0
eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1l
bnQtcm9sZXMtZXhwZWN0ZWQudHh0CkBAIC04OSw2ICs4OSwxMCBAQCBUaGlzIHRlc3QgZW5zdXJl
cyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJv
bGUuCiAgICAgQVhSb2xlOiBBWExpc3QKICAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKIAor
PGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPjwvbGk+CisgICAgQVhSb2xl
OiBBWExpc3RJdGVtCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0aXRlbQorCiA8bmF2IGNs
YXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+PC9uYXY+CiAgICAgQVhSb2xlOiBBWExhbmRtYXJrTmF2
aWdhdGlvbgogICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1l
bGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nl
c3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKaW5k
ZXggMTJmMWM3ZGQwMjU2Li5kNzliMDAzZTg4ZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtNzIsNiArNzIs
OSBAQCBUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50
cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCiA8bWVudSBjbGFzcz0idGVzdGNhc2UiIHR5cGU9InRv
b2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KICAgICBMaXN0CiAKKzxsaSBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgorICAgIExpc3RJdGVtCisKIDxuYXYg
Y2xhc3M9InRlc3RjYXNlIiBpZD0ibmF2Ij48L25hdj4KICAgICBMYW5kbWFya05hdmlnYXRpb24K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5
L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1l
eHBlY3RlZC50eHQKaW5kZXggYzkzYzBiM2Q0ZGJmLi40ODYyMGFmNDE0NjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUt
ZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4
dApAQCAtMTE0LDE0ICsxMTQsMTUgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVs
ZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKIAogPGRsIGhp
ZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJkbCI+PC9kbD4KICAgICBBWFJvbGU6IEFY
TGlzdAorICAgIEFYU3Vicm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAogPG9sIGhpZGRlbj0iIiBh
cmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJvbCI+PC9vbD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAg
IGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vi
cm9sZTogQVhDb250ZW50TGlzdAogCiA8dWwgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIg
aWQ9InVsIj48L3VsPgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRMaXN0
CiAKIDxmaWd1cmUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImZpZ3VyZSI+PC9m
aWd1cmU+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0yMDMsOCArMjA0LDggQEAgVGhpcyB0ZXN0
IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlk
ZGVuYCBhbmQgYGFyaWEKICAgICBBWFN1YnJvbGU6IEFYQXBwbGljYXRpb25TdGF0dXMKIAogPG1l
bnUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUt
dG9vbGJhciI+PC9tZW51PgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29tcHV0ZWRSb2xlU3Ry
aW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWENvbnRlbnRM
aXN0CiAKIDxociBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBpZD0iaHIiPgogICAgIEFY
Um9sZTogQVhTcGxpdHRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0eS9hcmlhLXZpc2libGUt
ZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKaW5kZXggZjI4MjM0NGEyMGEwLi5jMWI5YjEwNDc3
ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0
eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2FyaWEtdmlzaWJsZS1lbGVtZW50LXJv
bGVzLWV4cGVjdGVkLnR4dApAQCAtMTEzLDE0ICsxMTMsMTUgQEAgVGhpcyB0ZXN0IGVuc3VyZXMg
QVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBhbmQg
YGFyaWEKIAogPGRsIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJkbCI+PC9kbD4K
ICAgICBBWFJvbGU6IEFYTGlzdAorICAgIEFYU3Vicm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAog
PG9sIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGlkPSJvbCI+PC9vbD4KLSAgICBBWFJv
bGU6IEFYTGlzdAotICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhH
cm91cAorICAgIEFYU3Vicm9sZTogQVhDb250ZW50TGlzdAogCiA8dWwgaGlkZGVuPSIiIGFyaWEt
aGlkZGVuPSJmYWxzZSIgaWQ9InVsIj48L3VsPgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAgY29t
cHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xl
OiBBWENvbnRlbnRMaXN0CiAKIDxmaWd1cmUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIg
aWQ9ImZpZ3VyZSI+PC9maWd1cmU+CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0yMDIsOCArMjAz
LDggQEAgVGhpcyB0ZXN0IGVuc3VyZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3Nl
IHdpdGggYm90aCBgaGlkZGVuYCBhbmQgYGFyaWEKICAgICBBWFN1YnJvbGU6IEFYQXBwbGljYXRp
b25TdGF0dXMKIAogPG1lbnUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgdHlwZT0idG9v
bGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgotICAgIEFYUm9sZTogQVhMaXN0Ci0gICAg
Y29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJy
b2xlOiBBWENvbnRlbnRMaXN0CiAKIDxociBoaWRkZW49IiIgYXJpYS1oaWRkZW49ImZhbHNlIiBp
ZD0iaHIiPgogICAgIEFYUm9sZTogQVhTcGxpdHRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd3BlL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL2FjY2Vzc2liaWxpdHkvYXJpYS12
aXNpYmxlLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CmluZGV4IDA2ZDg0ZWI3MWY2NC4uMDQ4
YjVjZWMyMTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvYWNjZXNzaWJp
bGl0eS9hcmlhLXZpc2libGUtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd3BlL2FjY2Vzc2liaWxpdHkvYXJpYS12aXNpYmxlLWVsZW1lbnQtcm9s
ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMDYsMTIgKzEwNiwxMCBAQCBUaGlzIHRlc3QgZW5zdXJlcyBB
UklBIHZpc2libGUgZWxlbWVudHMgKGUuZy4gdGhvc2Ugd2l0aCBib3RoIGBoaWRkZW5gIGFuZCBg
YXJpYQogICAgIEFYUm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKIAogPG9sIGhpZGRlbj0iIiBhcmlh
LWhpZGRlbj0iZmFsc2UiIGlkPSJvbCI+PC9vbD4KLSAgICBBWFJvbGU6IEFYTGlzdAotICAgIGNv
bXB1dGVkUm9sZVN0cmluZzogbGlzdAorICAgIEFYUm9sZTogQVhHcm91cAogCiA8dWwgaGlkZGVu
PSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9InVsIj48L3VsPgotICAgIEFYUm9sZTogQVhMaXN0
Ci0gICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisgICAgQVhSb2xlOiBBWEdyb3VwCiAKIDxm
aWd1cmUgaGlkZGVuPSIiIGFyaWEtaGlkZGVuPSJmYWxzZSIgaWQ9ImZpZ3VyZSI+PC9maWd1cmU+
CiAgICAgQVhSb2xlOiBBWEdyb3VwCkBAIC0xODEsOCArMTc5LDcgQEAgVGhpcyB0ZXN0IGVuc3Vy
ZXMgQVJJQSB2aXNpYmxlIGVsZW1lbnRzIChlLmcuIHRob3NlIHdpdGggYm90aCBgaGlkZGVuYCBh
bmQgYGFyaWEKICAgICBjb21wdXRlZFJvbGVTdHJpbmc6IHN0YXR1cwogCiA8bWVudSBoaWRkZW49
IiIgYXJpYS1oaWRkZW49ImZhbHNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48
L21lbnU+Ci0gICAgQVhSb2xlOiBBWExpc3QKLSAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QK
KyAgICBBWFJvbGU6IEFYR3JvdXAKIAogPGhyIGhpZGRlbj0iIiBhcmlhLWhpZGRlbj0iZmFsc2Ui
IGlkPSJociI+CiAgICAgQVhSb2xlOiBBWFNlcGFyYXRvcgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>