<?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>231993</bug_id>
          
          <creation_ts>2021-10-19 16:52:52 -0700</creation_ts>
          <short_desc>AX: Using aria-activedescendant to set the active cell within a grid does not convey focus movement</short_desc>
          <delta_ts>2023-11-30 16:32:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>Safari 15</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>macOS 11</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joyce Zhu">joyce</reporter>
          <assigned_to name="chris fleizach">cfleizach</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>spanage</cc>
    
    <cc>todd.kloots</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1806406</commentid>
    <comment_count>0</comment_count>
    <who name="Joyce Zhu">joyce</who>
    <bug_when>2021-10-19 16:52:52 -0700</bug_when>
    <thetext>When navigating within a grid via non-VoiceOver keys (i.e. those provided by the web page), the change in active cell is not announced by VoiceOver if the element with `role=&quot;grid&quot;` uses `aria-activedescendant` instead of explicit `element.focus()` calls on individual cell DOM nodes.

Steps to Reproduce:

1. Open the sample page at https://jscholes.github.io/basic-grid-activedescendant.html with Safari. Focus will be automatically placed on a link before the grid.
2. Activate VoiceOver.
3. Disable VoiceOver Quick Nav if necessary by pressing Left and Right Arrow together until VO announces: &quot;Quick Nav off&quot;.
4. Move to the grid, by pressing either Tab or VO+Right Arrow. VO will announce the grid name, role and size, as well as the value of the first cell: &quot;Hello&quot;.
5. Move to the second cell on the first and only row, by pressing the Right Arrow key without modifiers.

Expected Behavior:

Since `aria-activedescendant` can be used to manage focus (https://www.w3.org/TR/wai-aria-1.2/#aria-activedescendant), VoiceOver should announce the change in active cell, specifically by conveying the text of the new active cell (&quot;World&quot;) and the coordinates of the new active cell (&quot;Column 2 of 2&quot;).

Actual Behavior:

VoiceOver doesn&apos;t speak or otherwise indicate the change.

------------------------------------------------------------

Other notes which may be helpful:

* Following the same repro steps in Google Chrome 94.0.4606.81, with the same version of macOS (11.6) results in the output listed in the &quot;Expected Behavior&quot; section. That is, users will hear: &quot;World. Column 2 of 2&quot;.

* While users can navigate the grid using VoiceOver-specific keys (e.g. VO+Right Arrow to move to the next column), this is not adequate for web applications which rely on users operating the grid with key handlers provided by the webpage, e.g. to load data on demand in large grids.

* While navigating the grid using VoiceOver-specific keys in Safari or Chrome, the VoiceOver hint text consistently indicates that the user is &quot;currently on a text element inside a cell&quot;. However, when the grid initially receives focus, or when navigating via page-provided keys in Google Chrome rather than VoiceOver-specific ones, the hint text indicates the role of the current element as a &quot;cell&quot; directly. This may or may not have something to do with the bug being reported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806407</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-19 16:53:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/84439987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1912936</commentid>
    <comment_count>2</comment_count>
    <who name="Sommer Panage">spanage</who>
    <bug_when>2022-11-16 12:44:25 -0800</bug_when>
    <thetext>Still seeing this on 13.1 Beta (22C5044e).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1947591</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-10 00:40:10 -0700</bug_when>
    <thetext>(In reply to Sommer Panage from comment #2)
&gt; Still seeing this on 13.1 Beta (22C5044e).

In short, we don&apos;t support selected cells and selected cells changed for grids. Need to add that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948096</commentid>
    <comment_count>4</comment_count>
      <attachid>465853</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-11 17:33:20 -0700</bug_when>
    <thetext>Created attachment 465853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948100</commentid>
    <comment_count>5</comment_count>
      <attachid>465853</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-04-11 18:15:12 -0700</bug_when>
    <thetext>Comment on attachment 465853
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:2843
&gt; +    for (auto cell : cells()) {

The type of cell is RefPtr&lt;AXCoreObject&gt;, and the codestyle we&apos;ve been following recently uses RefPtr (no &lt;&gt;) over auto.

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:2848
&gt; +    if (auto activeDesc = activeDescendant()) {

`activeDescendant` returns a pointer, so this should be auto*. Also, I think WebKit coding style prefers no abbreviations, so this line could maybe be:

if (auto* activeDescendant = this-&gt;activeDescendant()) {

&gt; LayoutTests/accessibility/mac/grid-selected-cells.html:12
&gt; +    &lt;tr ca=&quot;tr&quot; role=&quot;row&quot; aria-level=&quot;1&quot; id=&quot;row1&quot;&gt;

Is this `ca` attribute necessary? Same question for the other uses in this file.

&gt; LayoutTests/accessibility/mac/grid-selected-cells.html:41
&gt; +            output += &quot;Received notification: &quot; + notification + &quot;\n&quot;;

You can use JS template literals here:

output += `Received notification: ${notification}\n`;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948153</commentid>
    <comment_count>6</comment_count>
      <attachid>465858</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-11 23:13:05 -0700</bug_when>
    <thetext>Created attachment 465858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948169</commentid>
    <comment_count>7</comment_count>
      <attachid>465859</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-11 23:49:04 -0700</bug_when>
    <thetext>Created attachment 465859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948170</commentid>
    <comment_count>8</comment_count>
      <attachid>465860</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-11 23:52:22 -0700</bug_when>
    <thetext>Created attachment 465860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948171</commentid>
    <comment_count>9</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-11 23:55:47 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #5)
&gt; Comment on attachment 465853 [details]
&gt; Patch
&gt; 
Thanks - addressed feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948208</commentid>
    <comment_count>10</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-04-12 06:34:59 -0700</bug_when>
    <thetext>I&apos;m concerned with the premise of this request and change. ActiveDescendant should not be equated to a selected item. The goal of ActiveDescendant is to signal that a descendant has gain a &quot;pseudo focus&quot;, i.e., it is the point of attention, while the ancestor retains focus. The ActiveDescendant element can then be operated on from the input device (e.g., Keyboard), can be edited, selected or deselected, deleted, etc. So ActiveDescendant should not be used to automatically extend the selected items in any container. There are other means to signal that an element has been selected or deselected, and the propagation of the update in the AX tree should start from there. There are some parts of this change that are still valid, adding an exposing the selectedCells() method for tables.



(In reply to chris fleizach from comment #8)
&gt; Created attachment 465860 [details]
&gt; Patch

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

@@ -1974,6 +1972,14 @@ void AXObjectCache::handleActiveDescendantChanged(Element&amp; element)
 #endif

         postPlatformNotification(target, AXNotification::AXActiveDescendantChanged);
+
+        // Table cell active descendant changes should trigger selected cell changes.
+        if (target-&gt;isTable() &amp;&amp; activeDescendant-&gt;isTableCell()) {
+#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
+            updateIsolatedTree(*object, AXNotification::AXSelectedCellsChanged);

object or target?

+#endif
+            postPlatformNotification(object, AXSelectedCellsChanged);

Same as above.


         // HTML tables don&apos;t support these attributes.
-        if ([attributeName isEqualToString:NSAccessibilitySelectedColumnsAttribute]
-            || [attributeName isEqualToString:NSAccessibilitySelectedCellsAttribute])
+        if ([attributeName isEqualToString:NSAccessibilitySelectedColumnsAttribute])
             return nil;

In the comment, these attributes -&gt; this attribute.


--- a/Tools/DumpRenderTree/AccessibilityUIElement.h
+++ b/Tools/DumpRenderTree/AccessibilityUIElement.h

+    void selectedCells(Vector&lt;AccessibilityUIElement&gt;&amp; elements) const;

This should return a Vector instead of taking an out param.


--- a/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
+++ b/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm

+JSValueRef AccessibilityUIElement::selectedCells() const
+{
+    BEGIN_AX_OBJC_EXCEPTIONS
+    Vector&lt;RefPtr&lt;AccessibilityUIElement&gt;&gt; elements;
+    auto value = attributeValue(NSAccessibilitySelectedCellsAttribute);
+    if ([value isKindOfClass:[NSArray class]])
+        elements = makeVector&lt;RefPtr&lt;AccessibilityUIElement&gt;&gt;(value.get());
+    return makeJSArray(elements);
+    END_AX_OBJC_EXCEPTIONS
+}

Don&apos;t need the temp elements, can be written as:

+JSValueRef AccessibilityUIElement::selectedCells() const
+{
+    BEGIN_AX_OBJC_EXCEPTIONS
+    auto value = attributeValue(NSAccessibilitySelectedCellsAttribute);
+    if ([value isKindOfClass:[NSArray class]])
+        retrun makeJSArray(makeVector&lt;RefPtr&lt;AccessibilityUIElement&gt;&gt;(value.get()));
+    END_AX_OBJC_EXCEPTIONS
+    return nullptr;
+}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948644</commentid>
    <comment_count>11</comment_count>
      <attachid>465900</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-13 17:02:04 -0700</bug_when>
    <thetext>Created attachment 465900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948651</commentid>
    <comment_count>12</comment_count>
      <attachid>465901</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-13 17:12:06 -0700</bug_when>
    <thetext>Created attachment 465901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948822</commentid>
    <comment_count>13</comment_count>
      <attachid>465918</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-14 10:24:47 -0700</bug_when>
    <thetext>Created attachment 465918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948853</commentid>
    <comment_count>14</comment_count>
      <attachid>465920</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-14 12:29:09 -0700</bug_when>
    <thetext>Created attachment 465920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1949465</commentid>
    <comment_count>15</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-04-18 08:28:44 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #14)
&gt; Created attachment 465920 [details]
&gt; Patch

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

+        // Table cell active descendant changes should trigger selected cell changes.

We should qualify this comment by saying that we only support the case where active descendant changes result in selection changes. In general, that assumption is not true, e.g., the case of a table or list that supports non-contiguous selection.

+        if (target-&gt;isTable() &amp;&amp; activeDescendant-&gt;isTableCell()) {
+#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
+            updateIsolatedTree(*object, AXNotification::AXSelectedCellsChanged);
+#endif
+            postPlatformNotification(object, AXSelectedCellsChanged);
+        }

Should pass target instead of object to updateIsolatedTree and postPlatformNotification ?

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

+AXCoreObject::AccessibilityChildrenVector AccessibilityObject::selectedCells()
+{
...
+    for (RefPtr cell : cells()) {

I think it should be auto or auto&amp; instead of RefPtr because RefPtr would create a new RefPtr to hold a pointer that is already held in a RefPtr, each item in the Vector cells() is already a RefPtr.

+    if (auto* activeDescendant = this-&gt;activeDescendant()) {
+        if (!selectedCells.contains(activeDescendant))
+            selectedCells.append(activeDescendant);
+    }

Should we add the active descendant to the selection without checking that is actually selected and a cell? And if it is a cell and selected, then we don&apos;t need this, it would be added by the for loop above.

--- a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
+++ b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

         // HTML tables don&apos;t support these attributes.
-        if ([attributeName isEqualToString:NSAccessibilitySelectedColumnsAttribute]
-            || [attributeName isEqualToString:NSAccessibilitySelectedCellsAttribute])
+        if ([attributeName isEqualToString:NSAccessibilitySelectedColumnsAttribute])
             return nil;

in the comment, change &quot;these attributes&quot; to singular.

--- a/Tools/DumpRenderTree/AccessibilityUIElement.h
+++ b/Tools/DumpRenderTree/AccessibilityUIElement.h

+    void selectedCells(Vector&lt;AccessibilityUIElement&gt;&amp; elements) const;

Can we make it to return the Vector instead of taking an out parameter?

-- a/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
+++ b/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm

+JSValueRef AccessibilityUIElement::selectedCells() const
+{
+    BEGIN_AX_OBJC_EXCEPTIONS
+    Vector&lt;RefPtr&lt;AccessibilityUIElement&gt;&gt; elements;
+    auto value = attributeValue(NSAccessibilitySelectedCellsAttribute);
+    if ([value isKindOfClass:[NSArray class]])
+        elements = makeVector&lt;RefPtr&lt;AccessibilityUIElement&gt;&gt;(value.get());
+    return makeJSArray(elements);
+    END_AX_OBJC_EXCEPTIONS
+}

Instead of using the temp elements, can be written as:

JSValueRef AccessibilityUIElement::selectedCells() const
{
    BEGIN_AX_OBJC_EXCEPTIONS
    auto value = attributeValue(NSAccessibilitySelectedCellsAttribute);
    if ([value isKindOfClass:[NSArray class]])
        return makeJSArray(makeVector&lt;RefPtr&lt;AccessibilityUIElement&gt;&gt;(value.get()));
    END_AX_OBJC_EXCEPTIONS
    return nullptr;
}

--- /dev/null
+++ b/LayoutTests/accessibility/mac/grid-selected-cells.html

+&lt;body id=&quot;body&quot;&gt;

Doesn&apos;t need the id.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1949831</commentid>
    <comment_count>16</comment_count>
      <attachid>465987</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-19 13:39:17 -0700</bug_when>
    <thetext>Created attachment 465987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1949837</commentid>
    <comment_count>17</comment_count>
      <attachid>465989</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-19 13:56:09 -0700</bug_when>
    <thetext>Created attachment 465989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1949872</commentid>
    <comment_count>18</comment_count>
      <attachid>465991</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-19 15:19:17 -0700</bug_when>
    <thetext>Created attachment 465991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1950122</commentid>
    <comment_count>19</comment_count>
      <attachid>466018</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-04-20 11:13:31 -0700</bug_when>
    <thetext>Created attachment 466018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1950141</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-04-20 12:47:13 -0700</bug_when>
    <thetext>Committed 263189@main (0290a8bc9c69): &lt;https://commits.webkit.org/263189@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 466018.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1996057</commentid>
    <comment_count>21</comment_count>
    <who name="Todd Kloots">todd.kloots</who>
    <bug_when>2023-11-30 16:32:41 -0800</bug_when>
    <thetext>Verified fixed. Tested using Mac OS 14.1.1 in both Chrome (Version 119.0.6045.199) and Safari (Version 17.1 (19616.2.9.11.7).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465853</attachid>
            <date>2023-04-11 17:33:20 -0700</date>
            <delta_ts>2023-04-11 23:13:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230411173319.patch</filename>
            <type>text/plain</type>
            <size>18604</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSA2ODVlMDE1Zjc2ZjRjMTZkNGI0M2UzMzdjOWIyOGIwOGRiM2RlMTYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KClRvIHN1cHBvcnQgdGhlIGFyaWEtYWN0aXZlZGVzY2VuZGFu
dCBmbG93IHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkLCB3ZSBuZWVkIHRvIHN1cHBvcnQgQVhTZWxl
Y3RlZENlbGxzIGZvciB0YWJsZXMgYW5kIGdyaWRzLgpUaGlzIGJvaWxzIGRvd24gdG86CiAgMSkg
RXhwb3NpbmcgYW5kIGltcGxlbWVudGluZyBBWFNlbGVjdGVkQ2VsbHMgYXMgYW4gYXR0cmlidXRl
LgogIDIpIFBvc3Rpbmcgbm90aWZpY2F0aW9ucyB3aGVuIGl0IGNoYW5nZXMuCiAgMykgSW1wbGVt
ZW50aW5nIFdLVFIgYW5kIERSVCBtZXRob2RzIGZvciBmZXRjaGluZwogIDQpIENoYW5naW5nIHRo
ZSBvbGRlciwgdW51c2VkIEFYU2VsZWN0ZWRDZWxsIC0+IEFYU2VsZWN0ZWRDZWxscy4KCiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQt
Y2VsbHMuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHA6CihXZWJDb3JlOjpvcGVyYXRvcjw8KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b25TZWxlY3Rl
ZENoYW5nZWQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVzY2VuZGFu
dENoYW5nZWQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6c2VsZWN0ZWRDZWxscyk6CiogU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CihXZWJDb3JlOjpBWENvcmVP
YmplY3Q6OmNhbkhhdmVTZWxlY3RlZENlbGxzIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgooV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgooV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRB
VElPTlNfRU5EXSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpdKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmNwcCAgICAgfCAgNCArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCAgIHwgMTYgKysrLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcCAgICAgfCAxOSArKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgg
ICAgICAgICAgICB8IDE1ICsrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNo
ZUlPUy5tbSAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cCAgICAgICAgIHwgIDMgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAg
ICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAg
ICAgIHwgIDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gICAg
IHwgIDIgKy0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8
ICA3ICsrLQogLi4uL21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dCAgICAgIHwg
MTMgKysrKwogLi4uL21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwgICAgICAgICAgICAgIHwg
NjMgKysrKysrKysrKysrKysrKysrKwogMTQgZmlsZXMgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMo
KyksIDExIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxs
cy5odG1sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCA0
YTVkMjk2YWY4ODcuLjllYzdmYzgxMDg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWExvZ2dlci5jcHAKQEAgLTUyOSw4ICs1MjksOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHN0cmVhbSwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24gbm90aWZp
YwogICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDaGls
ZHJlbkNoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRp
b246OkFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKLSAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVk
Q2VsbENoYW5nZWQiOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFY
U2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CisgICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZENlbGxz
Q2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3Rp
ZmljYXRpb246OkFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhT
ZWxlY3RlZFN0YXRlQ2hhbmdlZCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAppbmRleCBjNzk2ZDgwMWY4MTIuLmEwYjZkOTNlMGNlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xNDU0
LDkgKzE0NTQsNyBAQCBzdGF0aWMgYm9vbCBpc0FSSUFUYWJsZUNlbGwoTm9kZSogbm9kZSkKIAog
dm9pZCBBWE9iamVjdENhY2hlOjpvblNlbGVjdGVkQ2hhbmdlZChOb2RlKiBub2RlKQogewotICAg
IGlmIChpc0FSSUFUYWJsZUNlbGwobm9kZSkpCi0gICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9k
ZSwgQVhTZWxlY3RlZENlbGxDaGFuZ2VkKTsKLSAgICBlbHNlIGlmIChpczxIVE1MT3B0aW9uRWxl
bWVudD4obm9kZSkpCisgICAgaWYgKGlzQVJJQVRhYmxlQ2VsbChub2RlKSB8fCBpczxIVE1MT3B0
aW9uRWxlbWVudD4obm9kZSkpCiAgICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxl
Y3RlZFN0YXRlQ2hhbmdlZCk7CiAgICAgZWxzZSBpZiAoYXV0byogYXhPYmplY3QgPSBnZXRPckNy
ZWF0ZShub2RlKSkgewogICAgICAgICBpZiAoYXV0byogYW5jZXN0b3IgPSBBY2Nlc3NpYmlsaXR5
OjpmaW5kQW5jZXN0b3I8QWNjZXNzaWJpbGl0eU9iamVjdD4oKmF4T2JqZWN0LCBmYWxzZSwgW10g
KGNvbnN0IGF1dG8mIG9iamVjdCkgewpAQCAtMTk3NCw2ICsxOTcyLDE0IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVzY2VuZGFudENoYW5nZWQoRWxlbWVudCYgZWxlbWVudCkK
ICNlbmRpZgogCiAgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbih0YXJnZXQsIEFYTm90
aWZpY2F0aW9uOjpBWEFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKTsKKyAgICAgICAgCisgICAgICAg
IC8vIFRhYmxlIGNlbGwgYWN0aXZlIGRlc2NlbmRhbnQgY2hhbmdlcyBzaG91bGQgdHJpZ2dlciBz
ZWxlY3RlZCBjZWxsIGNoYW5nZXMuCisgICAgICAgIGlmICh0YXJnZXQtPmlzVGFibGUoKSAmJiBh
Y3RpdmVEZXNjZW5kYW50LT5pc1RhYmxlQ2VsbCgpKSB7CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRSkKKyAgICAgICAgICAgIHVwZGF0ZUlzb2xhdGVkVHJlZSgqb2JqZWN0
LCBBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7CisjZW5kaWYKKyAgICAg
ICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0ZWRDZWxsc0No
YW5nZWQpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0zNzMzLDcgKzM3MzksOSBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWly
PFJlZlB0cjxBY2Nlc3NpYmlsaQogICAgICAgICBjYXNlIEFYUm93SW5kZXhDaGFuZ2VkOgogICAg
ICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZVByb3BlcnR5KCpub3RpZmljYXRpb24uZmlyc3QsIEFY
UHJvcGVydHlOYW1lOjpBWFJvd0luZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKKyAgICAgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbHND
aGFuZ2VkOgorICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZVByb3BlcnR5KCpub3RpZmljYXRp
b24uZmlyc3QsIEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENlbGxzKTsKKyAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQ6CiAgICAgICAgICAgICB0
cmVlLT51cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5h
bWU6OklzU2VsZWN0ZWQpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGNhZDdkZTljOTkwYy4uMzdkNTYyNDli
ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApA
QCAtMzI2LDcgKzMyNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVhSb3dJbmRleENoYW5nZWQsCiAg
ICAgICAgIEFYUm93U3BhbkNoYW5nZWQsCiAgICAgICAgIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5n
ZWQsCi0gICAgICAgIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCwKKyAgICAgICAgQVhTZWxlY3RlZENl
bGxzQ2hhbmdlZCwKICAgICAgICAgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCwKICAgICAgICAgQVhT
ZWxlY3RlZFRleHRDaGFuZ2VkLAogICAgICAgICBBWFNldFNpemVDaGFuZ2VkLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5k
ZXggMGJiY2E3Y2VjNmY3Li5jMmY1Nzc0M2MxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMjgzNCw2ICsyODM0
LDI1IEBAIEFYQ29yZU9iamVjdCogQWNjZXNzaWJpbGl0eU9iamVjdDo6Zm9jdXNlZFVJRWxlbWVu
dCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhZ2UgJiYgYXhPYmplY3RDYWNoZSA/IGF4T2JqZWN0Q2Fj
aGUtPmZvY3VzZWRPYmplY3RGb3JQYWdlKHBhZ2UpIDogbnVsbHB0cjsKIH0KIAorQVhDb3JlT2Jq
ZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2Vs
ZWN0ZWRDZWxscygpCit7CisgICAgaWYgKCFpc1RhYmxlKCkpCisgICAgICAgIHJldHVybiB7IH07
CisKKyAgICBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3Rl
ZENlbGxzOworICAgIGZvciAoYXV0byBjZWxsIDogY2VsbHMoKSkgeworICAgICAgICBpZiAoY2Vs
bC0+aXNTZWxlY3RlZCgpKQorICAgICAgICAgICAgc2VsZWN0ZWRDZWxscy5hcHBlbmQoY2VsbCk7
CisgICAgfQorCisgICAgaWYgKGF1dG8gYWN0aXZlRGVzYyA9IGFjdGl2ZURlc2NlbmRhbnQoKSkg
eworICAgICAgICBpZiAoIXNlbGVjdGVkQ2VsbHMuY29udGFpbnMoYWN0aXZlRGVzYykpCisgICAg
ICAgICAgICBzZWxlY3RlZENlbGxzLmFwcGVuZChhY3RpdmVEZXNjKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gc2VsZWN0ZWRDZWxsczsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRG
b2N1c2VkKGJvb2wgZm9jdXMpCiB7CiAgICAgaWYgKGZvY3VzKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGZhNjIzMmYy
MDVhYi4uOTFjNzE0YjBhZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTU1LDYgKzE1NSw3IEBAIHB1YmxpYzoKICAg
ICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29sdW1uSGVhZGVycygpIG92ZXJyaWRlIHsg
cmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvcigpOyB9CiAgICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnMoKSBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciB2
aXNpYmxlUm93cygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
cigpOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHMoKSBv
dmVycmlkZTsKICAgICBBWENvcmVPYmplY3QqIGhlYWRlckNvbnRhaW5lcigpIG92ZXJyaWRlIHsg
cmV0dXJuIG51bGxwdHI7IH0KICAgICBpbnQgYXhDb2x1bW5Db3VudCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIDA7IH0KICAgICBpbnQgYXhSb3dDb3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggYjE4NzViZGM0ZWRiLi5iOWY0NmJk
Yzg0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC04OTcsNiArODk3LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNvbHVtbkhlYWRlcnMo
KSA9IDA7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igcm93SGVhZGVy
cygpID0gMDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciB2aXNpYmxl
Um93cygpID0gMDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxl
Y3RlZENlbGxzKCkgPSAwOwogICAgIC8vIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMs
IGFzIGNoaWxkcmVuLCBhbGwgdGhlIG9iamVjdHMgdGhhdCBhY3QgYXMgaGVhZGVycy4KICAgICB2
aXJ0dWFsIEFYQ29yZU9iamVjdCogaGVhZGVyQ29udGFpbmVyKCkgPSAwOwogICAgIHZpcnR1YWwg
aW50IGF4Q29sdW1uQ291bnQoKSBjb25zdCA9IDA7CkBAIC0xMjMxLDYgKzEyMzIsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGlzRGV0YWNoZWRGcm9tUGFyZW50KCkgPSAwOwogCiAgICAg
Ym9vbCBjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0OworICAgIGJvb2wgY2FuSGF2ZVNl
bGVjdGVkQ2VsbHMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNl
bGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB2aXNpYmxlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yJikgPSAwOwpAQCAtMTU2MCw2ICsxNTYyLDE5IEBAIGlubGluZSBib29sIEFYQ29yZU9iamVj
dDo6c3VwcG9ydHNMaXZlUmVnaW9uKGJvb2wgZXhjbHVkZUlmT2ZmKSBjb25zdAogICAgIHJldHVy
biBleGNsdWRlSWZPZmYgPyBsaXZlUmVnaW9uU3RhdHVzSXNFbmFibGVkKEF0b21TdHJpbmcgeyBs
aXZlUmVnaW9uU3RhdHVzVmFsdWUgfSkgOiAhbGl2ZVJlZ2lvblN0YXR1c1ZhbHVlLmlzRW1wdHko
KTsKIH0KIAoraW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDZWxscygp
IGNvbnN0Cit7CisgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgeworICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkdyaWQ6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFibGU6CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZToKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpUcmVlR3JpZDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogaW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0OjpjYW5I
YXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2Fj
aGVJT1MubW0KaW5kZXggNTg3ZDdjYmVkYjgzLi5jNDhmZTMxNjM0M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAt
NTcsNyArNTcsNyBAQCBBU0NJSUxpdGVyYWwgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUGxh
dGZvcm1OYW1lKEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbgogICAgIGNhc2UgQVhQYWdlU2Ny
b2xsZWQ6CiAgICAgICAgIG5hbWUgPSAiQVhQYWdlU2Nyb2xsZWQiX3M7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgIGNhc2UgQVhTZWxlY3RlZENl
bGxzQ2hhbmdlZDoKICAgICAgICAgbmFtZSA9ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIl9zOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHAKaW5kZXggNDQxMTJmNDQzNTcxLi5hMGNmNjhkZjE5YTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0yMzksNiArMjM5LDkgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyhjb25zdCBSZWY8QWNjZXNzaWJpbGl0eU9i
amVjdD4mIGF4T2IKICAgICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5h
bWU6OlNlbGVjdGVkQ2hpbGRyZW4sIHNlbGVjdGVkQ2hpbGRyZW4pOwogICAgIH0KIAorICAgIGlm
IChvYmplY3QuY2FuSGF2ZVNlbGVjdGVkQ2VsbHMoKSkKKyAgICAgICAgc2V0T2JqZWN0VmVjdG9y
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMsIG9iamVjdC5zZWxlY3RlZENl
bGxzKCkpOworCiAgICAgaWYgKG9iamVjdC5pc0ltYWdlKCkpCiAgICAgICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpFbWJlZGRlZEltYWdlRGVzY3JpcHRpb24sIG9iamVjdC5lbWJlZGRl
ZEltYWdlRGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHkoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaAppbmRleCBhMjc0NDYwOGE2YjQuLjAzOWYxNmM0ZTE5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuaApAQCAtMjkzLDYgKzI5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZWxlY3RlZENo
aWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgY2hpbGRyZW4pIG92ZXJyaWRlIHsg
ZmlsbENoaWxkcmVuVmVjdG9yRm9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2hp
bGRyZW4sIGNoaWxkcmVuKTsgfQogICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZHJlbihjb25zdCBB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHZpc2libGVD
aGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxkcmVuKSBvdmVycmlkZSB7
IGZpbGxDaGlsZHJlblZlY3RvckZvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpWaXNpYmxlQ2hp
bGRyZW4sIGNoaWxkcmVuKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxl
Y3RlZENlbGxzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5vYmplY3RzRm9ySURzKHZlY3Rv
ckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENlbGxzKSk7IH0K
ICAgICBBdG9tU3RyaW5nIHRhZ05hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25zdCBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxkcmVuKGJvb2wgdXBkYXRlQ2hpbGRyZW5JZk5l
ZWRlZCA9IHRydWUpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2Fy
eSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggZGMzNGNiMzlhN2NlLi4xMmJm
NDMxNGY2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMTk5LDYgKzE5OSw3IEBAIGVudW0g
Y2xhc3MgQVhQcm9wZXJ0eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgUm93SGVhZGVycywKICAgICBS
b3dJbmRleCwKICAgICBSb3dJbmRleFJhbmdlLAorICAgIFNlbGVjdGVkQ2VsbHMsCiAgICAgU2Vs
ZWN0ZWRDaGlsZHJlbiwKICAgICBTZXNzaW9uSUQsCiAgICAgU2V0U2l6ZSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4
IGU5ZjUxYjhlZjY5My4uNmNmYjE5ZWIzYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTM2Niw3ICszNjYsNyBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmpl
Y3QqIG9iamVjdCwgQVhOb3RpZmljYXRpbwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtYWNO
b3RpZmljYXRpb24gPSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZE5vdGlm
aWNhdGlvbjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBWFNlbGVjdGVkQ2VsbENoYW5nZWQ6
CisgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkOgogICAgICAgICBtYWNOb3RpZmljYXRp
b24gPSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQ2hhbmdlZE5vdGlmaWNhdGlvbjsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWFNlbGVjdGVkVGV4dENoYW5nZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IGRjM2ZlN2U4YmFjYi4uYmFmOTA3NzRj
NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTA4MSw2
ICsxMDgxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAg
IFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJvd0NvdW50QXR0cmlidXRlXTsK
ICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQUNvbHVtbkNv
dW50QXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5QVJJQVJvd0NvdW50QXR0cmlidXRlXTsKKyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0
ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCB0YWJsZVJvd0F0
dHJzID0gW10gewpAQCAtMTgzNiwxMCArMTgzNywxMiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExF
TUVOVEFUSU9OU19FTkQKICAgICAgICAgfQogCiAgICAgICAgIC8vIEhUTUwgdGFibGVzIGRvbid0
IHN1cHBvcnQgdGhlc2UgYXR0cmlidXRlcy4KLSAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlz
RXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENvbHVtbnNBdHRyaWJ1dGVdCi0g
ICAgICAgICAgICB8fCBbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmls
aXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV0pCisgICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBp
c0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDb2x1bW5zQXR0cmlidXRlXSkK
ICAgICAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlz
RXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQXR0cmlidXRlXSkKKyAg
ICAgICAgICAgIHJldHVybiBtYWtlTlNBcnJheShiYWNraW5nT2JqZWN0LT5zZWxlY3RlZENlbGxz
KCkpOworCiAgICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nl
c3NpYmlsaXR5Q29sdW1uSGVhZGVyVUlFbGVtZW50c0F0dHJpYnV0ZV0pCiAgICAgICAgICAgICBy
ZXR1cm4gbWFrZU5TQXJyYXkoYmFja2luZ09iamVjdC0+Y29sdW1uSGVhZGVycygpKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxs
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVj
dGVkLWNlbGxzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjcwOTUzYzJlM2U3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTMgQEAKK1RoaXMgdGVzdHMgdGhhdCB0aGUgQVJJQSBncmlkcyB3aWxsIHJldHVybiBhbmQgcG9z
dCBzZWxlY3RlZCBjZWxscy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1M6
IHRyZWVncmlkLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMnKSA9PT0gdHJ1
ZQorUEFTUzogdHJlZWdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoc2VsZWN0ZWRDZWxs
KSA9PT0gdHJ1ZQorUmVjZWl2ZWQgbm90aWZpY2F0aW9uOiBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2Vk
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNl
bGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNl
bGxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNGE4OTc1
NWIzNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9n
cmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiBpZD0iY29udGVudCI+Cis8dGFibGUgdGFiaW5k
ZXg9MCBpZD0iZ3JpZCIgcm9sZT0iZ3JpZCIgYXJpYS1sYWJlbGxlZGJ5PSJncmlkLTEtaGVhZGVy
IiBib3JkZXI9IjEiIGFyaWEtYWN0aXZlZGVzY2VuZGFudD0iY2VsbDEiPgorPHRoZWFkPgorICAg
IDx0ciBjYT0idHIiIHJvbGU9InJvdyIgYXJpYS1sZXZlbD0iMSIgaWQ9InJvdzEiPgorICAgICAg
ICA8dGggaWQ9ImdyaWQtMS1pc2JuX2lkIj5Cb29rIE5hbWUgLyBJU0JOPC90aD48dGggaWQ9Imdy
aWQtMS1hdXRob3JfaWQiPkF1dGhvcjwvdGg+PHRoIGlkPSJncmlkLTEtcHJpY2VfaWQiIGNsYXNz
PSJudW1lcmljIiA+UHJpY2UgKCQpPC90aD4KKyAgICA8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4K
KyAgICA8dHIgY2E9InRvIiByb2xlPSJyb3ciIGFyaWEtbGV2ZWw9IjEiIGFyaWEtZXhwYW5kZWQ9
InRydWUiPgorICAgICAgICAgPHRkIGhlYWRlcnM9ImdyaWQtMS10aXRsZV9pZCIgaWQ9InRhYmxl
X2VudHJ5IiByb2xlPSJncmlkY2VsbCIgY29sc3Bhbj0iMyIgIHRhYmluZGV4PSIwIj4KKyAgICAg
ICAgIDxzcGFuIGNsYXNzPSJleHBhbmQiPis8L3NwYW4+IEEgUXVlc3Rpb24gb2YgTG92ZTwvdGQ+
ICAgICAgICAgICAgICAgICAgCisgICAgIDwvdHI+CisgICAgIDx0ciBjYT0idGkiIHJvbGU9InJv
dyIgIGFyaWEtbGV2ZWw9IjIiIGFyaWEtZXhwYW5kZWQ9InRydWUiPgorICAgICAgICAgPHRkIGhl
YWRlcnM9ImdyaWQtMS1pc2JuX2lkIiByb2xlPSJncmlkY2VsbCIgaWQ9ImNlbGwxIj45NzgtMy00
NTMtNDA1NDAtMDwvdGQ+CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLWF1dGhvcl9pZCIg
cm9sZT0iZ3JpZGNlbGwiIGlkPSJjZWxsMiI+Tm9yYSBSb2JlcnRzPC90ZD4KKyAgICAgICAgIDx0
ZCBoZWFkZXJzPSJncmlkLTEtcHJpY2VfaWQiIGNsYXNzPSJudW1lcmljIiByb2xlPSJncmlkY2Vs
bCIgY2E9InRlIj48ZGl2PjkuOTk8L2Rpdj48L3RkPgorICAgICA8L3RyPgorPC90Ym9keT4KKzwv
dGFibGU+Cis8L2Rpdj4KKworPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhh
dCB0aGUgQVJJQSBncmlkcyB3aWxsIHJldHVybiBhbmQgcG9zdCBzZWxlY3RlZCBjZWxscy4iKTsK
KworaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZQorCisgICAgdmFyIG91dHB1dCA9ICIiOworICAgIHZhciB0cmVlZ3Jp
ZCwgc2VsZWN0ZWRDZWxsbDsKKyAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hZGROb3RpZmlj
YXRpb25MaXN0ZW5lcihmdW5jdGlvbihlbGVtZW50LCBub3RpZmljYXRpb24pIHsKKyAgICAgICAg
aWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCIpIHsKKyAgICAgICAg
ICAgIG91dHB1dCArPSAiUmVjZWl2ZWQgbm90aWZpY2F0aW9uOiAiICsgbm90aWZpY2F0aW9uICsg
IlxuIjsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iikuc3R5
bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOworICAgICAgICAgICAgZGVidWcob3V0cHV0KTsKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICAvLyBG
b2N1cyB0aGUgZ3JpZCBzbyBpdCBjYW4gaGFuZGxlIGFjdGl2ZSBkZXNjZW5kYW50cy4KKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZCIpLmZvY3VzKCk7CisgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgdHJlZWdyaWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyaWQiKTsKKyAgICAgICAgc2VsZWN0ZWRDZWxsID0gdHJl
ZWdyaWQuY2hpbGRBdEluZGV4KDIpLmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgb3V0cHV0ICs9
IGV4cGVjdCgidHJlZWdyaWQuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYU2VsZWN0ZWRDZWxscycp
IiwgInRydWUiKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgidHJlZWdyaWQuc2VsZWN0ZWRD
ZWxscygpWzBdLmlzRXF1YWwoc2VsZWN0ZWRDZWxsKSIsICJ0cnVlIik7CisKKyAgICAgICAgLy8g
Tm93IGNoYW5nZSB0aGUgc2VsZWN0ZWQgY2VsbCB0byB0cmlnZ2VyIHRoZSBub3RpZmljYXRpb24u
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkIikuc2V0QXR0cmlidXRlKCJh
cmlhLWFjdGl2ZWRlc2NlbmRhbnQiLCAiY2VsbDIiKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0
PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465858</attachid>
            <date>2023-04-11 23:13:05 -0700</date>
            <delta_ts>2023-04-11 23:49:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230411231304.patch</filename>
            <type>text/plain</type>
            <size>25939</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSAzYjY4NDU4MDU0ZjA0YmJmMjE2YmVjM2I5ZTg5MTdiNWVkMDllNDkyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KClRvIHN1cHBvcnQgdGhlIGFyaWEtYWN0aXZlZGVzY2VuZGFu
dCBmbG93IHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkLCB3ZSBuZWVkIHRvIHN1cHBvcnQgQVhTZWxl
Y3RlZENlbGxzIGZvciB0YWJsZXMgYW5kIGdyaWRzLgpUaGlzIGJvaWxzIGRvd24gdG86CiAgMSkg
RXhwb3NpbmcgYW5kIGltcGxlbWVudGluZyBBWFNlbGVjdGVkQ2VsbHMgYXMgYW4gYXR0cmlidXRl
LgogIDIpIFBvc3Rpbmcgbm90aWZpY2F0aW9ucyB3aGVuIGl0IGNoYW5nZXMuCiAgMykgSW1wbGVt
ZW50aW5nIFdLVFIgYW5kIERSVCBtZXRob2RzIGZvciBmZXRjaGluZwogIDQpIENoYW5naW5nIHRo
ZSBvbGRlciwgdW51c2VkIEFYU2VsZWN0ZWRDZWxsIC0+IEFYU2VsZWN0ZWRDZWxscy4KCiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQt
Y2VsbHMuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHA6CihXZWJDb3JlOjpvcGVyYXRvcjw8KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b25TZWxlY3Rl
ZENoYW5nZWQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVzY2VuZGFu
dENoYW5nZWQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6c2VsZWN0ZWRDZWxscyk6CiogU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CihXZWJDb3JlOjpBWENvcmVP
YmplY3Q6OmNhbkhhdmVTZWxlY3RlZENlbGxzIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgooV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgooV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRB
VElPTlNfRU5EXSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpdKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmNwcCAgICAgfCAgNCArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCAgIHwgMTYgKysrLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcCAgICAgfCAxOSArKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgg
ICAgICAgICAgICB8IDE1ICsrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNo
ZUlPUy5tbSAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cCAgICAgICAgIHwgIDMgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAg
ICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAg
ICAgIHwgIDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gICAg
IHwgIDIgKy0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8
ICA3ICsrLQogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIHwg
IDggKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggfCAg
MyArLQogLi4uL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICAgICAgICAgIHwgIDQg
KysKIC4uLi9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAgICAgICAgICB8IDEwICsr
KwogLi4uL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCAgIHwgIDEgKwog
Li4uL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsICAgICAgIHwgIDEgKwogLi4u
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICAgICAgICAgIHwgIDUgKysKIC4uLi9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAgICAgICAgICB8IDExICsrKysKIC4uLi9t
YWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQgICAgICB8IDEzICsrKysKIC4uLi9t
YWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sICAgICAgICAgICAgICB8IDYzICsrKysrKysrKysr
KysrKysrKysKIDIyIGZpbGVzIGNoYW5nZWQsIDE4MCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlv
bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9n
cmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbAoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKaW5kZXggNGE1ZDI5NmFmODg3Li45
ZWM3ZmM4MTA4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3Bw
CkBAIC01MjksOCArNTI5LDggQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBz
dHJlYW0sIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uIG5vdGlmaWMKICAgICBjYXNlIEFY
T2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkOgog
ICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQiOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFNlbGVjdGVk
Q2VsbENoYW5nZWQ6Ci0gICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZENlbGxDaGFuZ2VkIjsK
KyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFNlbGVjdGVkQ2VsbHND
aGFuZ2VkOgorICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQiOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFNl
bGVjdGVkU3RhdGVDaGFuZ2VkOgogICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRTdGF0ZUNo
YW5nZWQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggYzc5NmQ4MDFmODEyLi5hMGI2ZDkzZTBjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTQ1NCw5ICsxNDU0LDcgQEAg
c3RhdGljIGJvb2wgaXNBUklBVGFibGVDZWxsKE5vZGUqIG5vZGUpCiAKIHZvaWQgQVhPYmplY3RD
YWNoZTo6b25TZWxlY3RlZENoYW5nZWQoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAoaXNBUklBVGFi
bGVDZWxsKG5vZGUpKQotICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRD
ZWxsQ2hhbmdlZCk7Ci0gICAgZWxzZSBpZiAoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KG5vZGUpKQor
ICAgIGlmIChpc0FSSUFUYWJsZUNlbGwobm9kZSkgfHwgaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KG5v
ZGUpKQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRTdGF0ZUNoYW5n
ZWQpOwogICAgIGVsc2UgaWYgKGF1dG8qIGF4T2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSkpIHsK
ICAgICAgICAgaWYgKGF1dG8qIGFuY2VzdG9yID0gQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2VzdG9y
PEFjY2Vzc2liaWxpdHlPYmplY3Q+KCpheE9iamVjdCwgZmFsc2UsIFtdIChjb25zdCBhdXRvJiBv
YmplY3QpIHsKQEAgLTE5NzQsNiArMTk3MiwxNCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKEVsZW1lbnQmIGVsZW1lbnQpCiAjZW5kaWYKIAogICAg
ICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24odGFyZ2V0LCBBWE5vdGlmaWNhdGlvbjo6QVhB
Y3RpdmVEZXNjZW5kYW50Q2hhbmdlZCk7CisgICAgICAgIAorICAgICAgICAvLyBUYWJsZSBjZWxs
IGFjdGl2ZSBkZXNjZW5kYW50IGNoYW5nZXMgc2hvdWxkIHRyaWdnZXIgc2VsZWN0ZWQgY2VsbCBj
aGFuZ2VzLgorICAgICAgICBpZiAodGFyZ2V0LT5pc1RhYmxlKCkgJiYgYWN0aXZlRGVzY2VuZGFu
dC0+aXNUYWJsZUNlbGwoKSkgeworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpCisgICAgICAgICAgICB1cGRhdGVJc29sYXRlZFRyZWUoKm9iamVjdCwgQVhOb3RpZmljYXRp
b246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQpOworI2VuZGlmCisgICAgICAgICAgICBwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkKTsKKyAgICAg
ICAgfQogICAgIH0KIH0KIApAQCAtMzczMyw3ICszNzM5LDkgQEAgdm9pZCBBWE9iamVjdENhY2hl
Ojp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNz
aWJpbGkKICAgICAgICAgY2FzZSBBWFJvd0luZGV4Q2hhbmdlZDoKICAgICAgICAgICAgIHRyZWUt
PnVwZGF0ZU5vZGVQcm9wZXJ0eSgqbm90aWZpY2F0aW9uLmZpcnN0LCBBWFByb3BlcnR5TmFtZTo6
QVhSb3dJbmRleCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBWFNlbGVjdGVk
Q2VsbENoYW5nZWQ6CisgICAgICAgIGNhc2UgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoKKyAgICAg
ICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQcm9wZXJ0eSgqbm90aWZpY2F0aW9uLmZpcnN0LCBBWFBy
b3BlcnR5TmFtZTo6U2VsZWN0ZWRDZWxscyk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkOgogICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9k
ZVByb3BlcnR5KCpub3RpZmljYXRpb24uZmlyc3QsIEFYUHJvcGVydHlOYW1lOjpJc1NlbGVjdGVk
KTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAppbmRleCBjYWQ3ZGU5Yzk5MGMuLjM3ZDU2MjQ5YmY1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTMyNiw3ICszMjYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIEFYUm93SW5kZXhDaGFuZ2VkLAogICAgICAgICBBWFJvd1Nw
YW5DaGFuZ2VkLAogICAgICAgICBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLAotICAgICAgICBB
WFNlbGVjdGVkQ2VsbENoYW5nZWQsCisgICAgICAgIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQsCiAg
ICAgICAgIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQsCiAgICAgICAgIEFYU2VsZWN0ZWRUZXh0Q2hh
bmdlZCwKICAgICAgICAgQVhTZXRTaXplQ2hhbmdlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDBiYmNhN2NlYzZm
Ny4uYzJmNTc3NDNjMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI4MzQsNiArMjgzNCwyNSBAQCBBWENvcmVP
YmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmZvY3VzZWRVSUVsZW1lbnQoKSBjb25zdAogICAg
IHJldHVybiBwYWdlICYmIGF4T2JqZWN0Q2FjaGUgPyBheE9iamVjdENhY2hlLT5mb2N1c2VkT2Jq
ZWN0Rm9yUGFnZShwYWdlKSA6IG51bGxwdHI7CiB9CiAKK0FYQ29yZU9iamVjdDo6QWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVjdGVkQ2VsbHMoKQor
eworICAgIGlmICghaXNUYWJsZSgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgQVhDb3Jl
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxsczsKKyAgICBm
b3IgKGF1dG8gY2VsbCA6IGNlbGxzKCkpIHsKKyAgICAgICAgaWYgKGNlbGwtPmlzU2VsZWN0ZWQo
KSkKKyAgICAgICAgICAgIHNlbGVjdGVkQ2VsbHMuYXBwZW5kKGNlbGwpOworICAgIH0KKworICAg
IGlmIChhdXRvIGFjdGl2ZURlc2MgPSBhY3RpdmVEZXNjZW5kYW50KCkpIHsKKyAgICAgICAgaWYg
KCFzZWxlY3RlZENlbGxzLmNvbnRhaW5zKGFjdGl2ZURlc2MpKQorICAgICAgICAgICAgc2VsZWN0
ZWRDZWxscy5hcHBlbmQoYWN0aXZlRGVzYyk7CisgICAgfQorCisgICAgcmV0dXJuIHNlbGVjdGVk
Q2VsbHM7Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2V0Rm9jdXNlZChib29sIGZv
Y3VzKQogewogICAgIGlmIChmb2N1cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBmYTYyMzJmMjA1YWIuLjkxYzcxNGIw
YWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKQEAgLTE1NSw2ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIGNvbHVtbkhlYWRlcnMoKSBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciByb3dIZWFkZXJzKCkgb3ZlcnJpZGUgeyByZXR1cm4gQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yKCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgdmlzaWJsZVJvd3MoKSBv
dmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQorICAgIEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzKCkgb3ZlcnJpZGU7CiAgICAg
QVhDb3JlT2JqZWN0KiBoZWFkZXJDb250YWluZXIoKSBvdmVycmlkZSB7IHJldHVybiBudWxscHRy
OyB9CiAgICAgaW50IGF4Q29sdW1uQ291bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9
CiAgICAgaW50IGF4Um93Q291bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdEludGVyZmFjZS5oCmluZGV4IGIxODc1YmRjNGVkYi4uYjlmNDZiZGM4NDA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3RJbnRlcmZhY2UuaApAQCAtODk3LDYgKzg5Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb2x1bW5IZWFkZXJzKCkgPSAwOwogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnMoKSA9IDA7CiAgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgdmlzaWJsZVJvd3MoKSA9IDA7Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpID0g
MDsKICAgICAvLyBSZXR1cm5zIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zLCBhcyBjaGlsZHJlbiwg
YWxsIHRoZSBvYmplY3RzIHRoYXQgYWN0IGFzIGhlYWRlcnMuCiAgICAgdmlydHVhbCBBWENvcmVP
YmplY3QqIGhlYWRlckNvbnRhaW5lcigpID0gMDsKICAgICB2aXJ0dWFsIGludCBheENvbHVtbkNv
dW50KCkgY29uc3QgPSAwOwpAQCAtMTIzMSw2ICsxMjMyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0RldGFjaGVkRnJvbVBhcmVudCgpID0gMDsKIAogICAgIGJvb2wgY2FuSGF2ZVNl
bGVjdGVkQ2hpbGRyZW4oKSBjb25zdDsKKyAgICBib29sIGNhbkhhdmVTZWxlY3RlZENlbGxzKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENoaWxkcmVu
KGNvbnN0IEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgdmlzaWJsZUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpID0gMDsKQEAg
LTE1NjAsNiArMTU2MiwxOSBAQCBpbmxpbmUgYm9vbCBBWENvcmVPYmplY3Q6OnN1cHBvcnRzTGl2
ZVJlZ2lvbihib29sIGV4Y2x1ZGVJZk9mZikgY29uc3QKICAgICByZXR1cm4gZXhjbHVkZUlmT2Zm
ID8gbGl2ZVJlZ2lvblN0YXR1c0lzRW5hYmxlZChBdG9tU3RyaW5nIHsgbGl2ZVJlZ2lvblN0YXR1
c1ZhbHVlIH0pIDogIWxpdmVSZWdpb25TdGF0dXNWYWx1ZS5pc0VtcHR5KCk7CiB9CiAKK2lubGlu
ZSBib29sIEFYQ29yZU9iamVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAg
IHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlk
OgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlOgorICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlRyZWU6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQ6Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9Cit9CisKIGlubGluZSBib29sIEFYQ29yZU9iamVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2hp
bGRyZW4oKSBjb25zdAogewogICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4
IDU4N2Q3Y2JlZGI4My4uYzQ4ZmUzMTYzNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTU3LDcgKzU3LDcgQEAg
QVNDSUlMaXRlcmFsIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZShBWE5v
dGlmaWNhdGlvbiBub3RpZmljYXRpb24KICAgICBjYXNlIEFYUGFnZVNjcm9sbGVkOgogICAgICAg
ICBuYW1lID0gIkFYUGFnZVNjcm9sbGVkIl9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEFY
U2VsZWN0ZWRDZWxsQ2hhbmdlZDoKKyAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CiAg
ICAgICAgIG5hbWUgPSAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCJfczsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBBWFNlbGVjdGVkVGV4dENoYW5nZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
Y3BwCmluZGV4IDQ0MTEyZjQ0MzU3MS4uYTBjZjY4ZGYxOWEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmNwcApAQCAtMjM5LDYgKzIzOSw5IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZVByb3BlcnRpZXMoY29uc3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9iCiAg
ICAgICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENo
aWxkcmVuLCBzZWxlY3RlZENoaWxkcmVuKTsKICAgICB9CiAKKyAgICBpZiAob2JqZWN0LmNhbkhh
dmVTZWxlY3RlZENlbGxzKCkpCisgICAgICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpTZWxlY3RlZENlbGxzLCBvYmplY3Quc2VsZWN0ZWRDZWxscygpKTsKKwogICAg
IGlmIChvYmplY3QuaXNJbWFnZSgpKQogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uLCBvYmplY3QuZW1iZWRkZWRJbWFnZURlc2NyaXB0
aW9uKCkuaXNvbGF0ZWRDb3B5KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggYTI3
NDQ2MDhhNmI0Li4wMzlmMTZjNGUxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTI5
Myw2ICsyOTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxkcmVuKSBvdmVycmlkZSB7IGZpbGxDaGlsZHJlblZl
Y3RvckZvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENoaWxkcmVuLCBjaGlsZHJl
bik7IH0KICAgICB2b2lkIHNldFNlbGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB2aXNpYmxlQ2hpbGRyZW4oQWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJlbikgb3ZlcnJpZGUgeyBmaWxsQ2hpbGRyZW5W
ZWN0b3JGb3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VmlzaWJsZUNoaWxkcmVuLCBjaGlsZHJl
bik7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpIG92
ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVWYWx1
ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRDZWxscykpOyB9CiAgICAgQXRvbVN0cmlu
ZyB0YWdOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yJiBjaGlsZHJlbihib29sIHVwZGF0ZUNoaWxkcmVuSWZOZWVkZWQgPSB0cnVlKSBv
dmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IGRjMzRjYjM5YTdjZS4uMTJiZjQzMTRmNmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTE5OSw2ICsxOTksNyBAQCBlbnVtIGNsYXNzIEFYUHJvcGVy
dHlOYW1lIDogdWludDE2X3QgewogICAgIFJvd0hlYWRlcnMsCiAgICAgUm93SW5kZXgsCiAgICAg
Um93SW5kZXhSYW5nZSwKKyAgICBTZWxlY3RlZENlbGxzLAogICAgIFNlbGVjdGVkQ2hpbGRyZW4s
CiAgICAgU2Vzc2lvbklELAogICAgIFNldFNpemUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBlOWY1MWI4ZWY2OTMu
LjZjZmIxOWViM2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFY
Tm90aWZpY2F0aW8KICAgICAgICAgZWxzZQogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0g
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWROb3RpZmljYXRpb247CiAgICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgIGNhc2UgQVhT
ZWxlY3RlZENlbGxzQ2hhbmdlZDoKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3Np
YmlsaXR5U2VsZWN0ZWRDZWxsc0NoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQVhTZWxlY3RlZFRleHRDaGFuZ2VkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbQppbmRleCBkYzNmZTdlOGJhY2IuLmJhZjkwNzc0YzRhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTEwODEsNiArMTA4MSw3IEBAIEFM
TE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSb3dDb3VudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1w
QXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFDb2x1bW5Db3VudEF0dHJpYnV0ZV07
CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFSb3dDb3Vu
dEF0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAg
IH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgdGFibGVSb3dBdHRycyA9IFtdIHsKQEAg
LTE4MzYsMTAgKzE4MzcsMTIgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5E
CiAgICAgICAgIH0KIAogICAgICAgICAvLyBIVE1MIHRhYmxlcyBkb24ndCBzdXBwb3J0IHRoZXNl
IGF0dHJpYnV0ZXMuCi0gICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDb2x1bW5zQXR0cmlidXRlXQotICAgICAgICAgICAgfHwg
W2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2Vs
bHNBdHRyaWJ1dGVdKQorICAgICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5n
Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ29sdW1uc0F0dHJpYnV0ZV0pCiAgICAgICAgICAgICBy
ZXR1cm4gbmlsOwogCisgICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV0pCisgICAgICAgICAgICByZXR1
cm4gbWFrZU5TQXJyYXkoYmFja2luZ09iamVjdC0+c2VsZWN0ZWRDZWxscygpKTsKKwogICAgICAg
ICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUNvbHVt
bkhlYWRlclVJRWxlbWVudHNBdHRyaWJ1dGVdKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VOU0Fy
cmF5KGJhY2tpbmdPYmplY3QtPmNvbHVtbkhlYWRlcnMoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggYjllNzkyNTFjYmY5Li5m
Y2M0YmJjOTdhNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwCkBAIC02MTgsNiArNjE4LDEzIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJvd0hl
YWRlcnNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
CiAgICAgcmV0dXJuIGNvbnZlcnRFbGVtZW50c1RvT2JqZWN0QXJyYXkoY29udGV4dCwgZWxlbWVu
dHMpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZWxlY3RlZENlbGxzQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBlbGVtZW50czsKKyAgICB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+c2VsZWN0ZWRDZWxs
cyhlbGVtZW50cyk7CisgICAgcmV0dXJuIGNvbnZlcnRFbGVtZW50c1RvT2JqZWN0QXJyYXkoY29u
dGV4dCwgZWxlbWVudHMpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiB1aUVsZW1lbnRBcnJheUF0
dHJpYnV0ZVZhbHVlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAg
IGlmIChhcmd1bWVudENvdW50ICE9IDEpCkBAIC0yMDc4LDYgKzIwODUsNyBAQCBKU0NsYXNzUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQogICAgICAgICB7ICJzZXRTZWxl
Y3RlZFRleHRSYW5nZSIsIHNldFNlbGVjdGVkVGV4dFJhbmdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic3RyaW5nQXR0cmlidXRlVmFsdWUiLCBzdHJpbmdBdHRyaWJ1dGVWYWx1ZUNhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWUiLCB1
aUVsZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAi
c2VsZWN0ZWRDZWxscyIsIHNlbGVjdGVkQ2VsbHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJyb3dIZWFkZXJzIiwgcm93SGVhZGVyc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNv
bHVtbkhlYWRlcnMiLCBjb2x1bW5IZWFkZXJzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
dWlFbGVtZW50QXR0cmlidXRlVmFsdWUiLCB1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZUNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmgKaW5kZXggNzJjZWU5MjNhZDRkLi41ZjQ3YWViYjRjNDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTIwMyw3ICsyMDMsOCBAQCBwdWJs
aWM6CiAgICAgaW50IGNvbHVtbkNvdW50KCk7CiAgICAgdm9pZCByb3dIZWFkZXJzKFZlY3RvcjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0OwogICAgIHZvaWQgY29sdW1u
SGVhZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25zdDsK
LSAgICAKKyAgICB2b2lkIHNlbGVjdGVkQ2VsbHMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+JiBlbGVtZW50cykgY29uc3Q7CisKICAgICAvLyBUcmVlL091dGxpbmUgc3BlY2lmaWMgYXR0
cmlidXRlcwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgc2VsZWN0ZWRSb3dBdEluZGV4KHVu
c2lnbmVkKTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGRpc2Nsb3NlZEJ5Um93KCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dElPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
SU9TLm1tCmluZGV4IDQzMzA0ZTQxZTk0MS4uZDc5YWY5MGE1MzExIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAt
MTI3MSw2ICsxMjcxLDEwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93SGVhZGVy
cyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mKSBjb25zdAogewogfQogCit2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoVmVjdG9yPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+JikgY29uc3QKK3sKK30KKwogdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFj
Lm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0KaW5kZXggODEzNDExZjkyYjM4Li5iODEzNmVmZjkxNmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC01MDks
NiArNTA5LDE2IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShOU1N0cmluZyAqCiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscyhWZWN0b3I8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25zdAoreworICAgIEJFR0lOX0FY
X09CSkNfRVhDRVBUSU9OUworICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV07Cisg
ICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgIGVs
ZW1lbnRzID0gbWFrZVZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pih2YWx1ZSk7CisgICAg
RU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQorCisKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cm93SGVhZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBj
b25zdAogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaAppbmRleCA3YjQ4MDdiODUyZWMuLjg4NTQ5MDI1OWM4MyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgKQEAgLTI0Myw2ICsyNDMsNyBAQCBwdWJsaWM6CiAgICAgSlNWYWx1ZVJl
ZiByb3dIZWFkZXJzKCkgY29uc3Q7CiAgICAgSlNWYWx1ZVJlZiBjb2x1bW5IZWFkZXJzKCkgY29u
c3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGN1c3RvbUNvbnRlbnQoKSBjb25zdDsK
KyAgICBKU1ZhbHVlUmVmIHNlbGVjdGVkQ2VsbHMoKSBjb25zdDsKIAogICAgIC8vIFRyZWUvT3V0
bGluZSBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IHNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAppbmRleCBmNDQwYWJiNTBjMGEuLmE0ZmVkZTEwYWU0
YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCkBA
IC0xODAsNiArMTgwLDcgQEAKICAgICBvYmplY3QgY29sdW1uSGVhZGVycygpOwogICAgIG9iamVj
dCByb3dIZWFkZXJzKCk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjdXN0b21D
b250ZW50OworICAgIG9iamVjdCBzZWxlY3RlZENlbGxzKCk7CiAKICAgICBvYmplY3QgZGV0YWls
c0VsZW1lbnRzKCk7CiAgICAgb2JqZWN0IGVycm9yTWVzc2FnZUVsZW1lbnRzKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQppbmRleCA5NTJiNmRjMzIyODAuLjc4
MmQwMWFlZDMxNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1t
CkBAIC00NjAsNiArNDYwLDExIEBAIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cm93SGVhZGVycygpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0pTVmFsdWVSZWYg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29s
dW1uSGVhZGVycygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCBhODU1MDgwMTQwNTUuLjIzMTA3NTcy
MTFiMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC00
MjUsNiArNDI1LDE3IEBAIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93SGVh
ZGVycygpIGNvbnN0CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogfQogCitKU1ZhbHVlUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIEJF
R0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4+IGVsZW1lbnRzOworICAgIGF1dG8gdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZShOU0Fj
Y2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQXR0cmlidXRlKTsKKyAgICBpZiAoW3ZhbHVlIGlzS2lu
ZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgZWxlbWVudHMgPSBtYWtlVmVjdG9y
PFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4odmFsdWUuZ2V0KCkpOworICAgIHJldHVy
biBtYWtlSlNBcnJheShlbGVtZW50cyk7CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQor
CiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25z
dAogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcwOTUzYzJlM2U3
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQt
c2VsZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdHMg
dGhhdCB0aGUgQVJJQSBncmlkcyB3aWxsIHJldHVybiBhbmQgcG9zdCBzZWxlY3RlZCBjZWxscy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1M6IHRyZWVncmlkLmlzQXR0cmli
dXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMnKSA9PT0gdHJ1ZQorUEFTUzogdHJlZWdyaWQu
c2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoc2VsZWN0ZWRDZWxsKSA9PT0gdHJ1ZQorUmVjZWl2
ZWQgbm90aWZpY2F0aW9uOiBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNGE4OTc1NWIzNmUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxz
Lmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2Fj
Y2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKworPGRpdiBpZD0iY29udGVudCI+Cis8dGFibGUgdGFiaW5kZXg9MCBpZD0iZ3JpZCIgcm9s
ZT0iZ3JpZCIgYXJpYS1sYWJlbGxlZGJ5PSJncmlkLTEtaGVhZGVyIiBib3JkZXI9IjEiIGFyaWEt
YWN0aXZlZGVzY2VuZGFudD0iY2VsbDEiPgorPHRoZWFkPgorICAgIDx0ciBjYT0idHIiIHJvbGU9
InJvdyIgYXJpYS1sZXZlbD0iMSIgaWQ9InJvdzEiPgorICAgICAgICA8dGggaWQ9ImdyaWQtMS1p
c2JuX2lkIj5Cb29rIE5hbWUgLyBJU0JOPC90aD48dGggaWQ9ImdyaWQtMS1hdXRob3JfaWQiPkF1
dGhvcjwvdGg+PHRoIGlkPSJncmlkLTEtcHJpY2VfaWQiIGNsYXNzPSJudW1lcmljIiA+UHJpY2Ug
KCQpPC90aD4KKyAgICA8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKyAgICA8dHIgY2E9InRvIiBy
b2xlPSJyb3ciIGFyaWEtbGV2ZWw9IjEiIGFyaWEtZXhwYW5kZWQ9InRydWUiPgorICAgICAgICAg
PHRkIGhlYWRlcnM9ImdyaWQtMS10aXRsZV9pZCIgaWQ9InRhYmxlX2VudHJ5IiByb2xlPSJncmlk
Y2VsbCIgY29sc3Bhbj0iMyIgIHRhYmluZGV4PSIwIj4KKyAgICAgICAgIDxzcGFuIGNsYXNzPSJl
eHBhbmQiPis8L3NwYW4+IEEgUXVlc3Rpb24gb2YgTG92ZTwvdGQ+ICAgICAgICAgICAgICAgICAg
CisgICAgIDwvdHI+CisgICAgIDx0ciBjYT0idGkiIHJvbGU9InJvdyIgIGFyaWEtbGV2ZWw9IjIi
IGFyaWEtZXhwYW5kZWQ9InRydWUiPgorICAgICAgICAgPHRkIGhlYWRlcnM9ImdyaWQtMS1pc2Ju
X2lkIiByb2xlPSJncmlkY2VsbCIgaWQ9ImNlbGwxIj45NzgtMy00NTMtNDA1NDAtMDwvdGQ+Cisg
ICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLWF1dGhvcl9pZCIgcm9sZT0iZ3JpZGNlbGwiIGlk
PSJjZWxsMiI+Tm9yYSBSb2JlcnRzPC90ZD4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEt
cHJpY2VfaWQiIGNsYXNzPSJudW1lcmljIiByb2xlPSJncmlkY2VsbCIgY2E9InRlIj48ZGl2Pjku
OTk8L2Rpdj48L3RkPgorICAgICA8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8L2Rpdj4KKwor
PHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB0aGUgQVJJQSBncmlkcyB3
aWxsIHJldHVybiBhbmQgcG9zdCBzZWxlY3RlZCBjZWxscy4iKTsKKworaWYgKHdpbmRvdy5hY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZQor
CisgICAgdmFyIG91dHB1dCA9ICIiOworICAgIHZhciB0cmVlZ3JpZCwgc2VsZWN0ZWRDZWxsbDsK
KyAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5j
dGlvbihlbGVtZW50LCBub3RpZmljYXRpb24pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9
PSAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgIG91dHB1dCArPSAiUmVj
ZWl2ZWQgbm90aWZpY2F0aW9uOiAiICsgbm90aWZpY2F0aW9uICsgIlxuIjsKKyAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iikuc3R5bGUudmlzaWJpbGl0eSA9ICdo
aWRkZW4nOworICAgICAgICAgICAgZGVidWcob3V0cHV0KTsKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICAvLyBGb2N1cyB0aGUgZ3JpZCBzbyBp
dCBjYW4gaGFuZGxlIGFjdGl2ZSBkZXNjZW5kYW50cy4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZ3JpZCIpLmZvY3VzKCk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
ICAgdHJlZWdyaWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoImdyaWQiKTsKKyAgICAgICAgc2VsZWN0ZWRDZWxsID0gdHJlZWdyaWQuY2hpbGRBdEluZGV4
KDIpLmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgidHJlZWdyaWQu
aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYU2VsZWN0ZWRDZWxscycpIiwgInRydWUiKTsKKyAgICAg
ICAgb3V0cHV0ICs9IGV4cGVjdCgidHJlZWdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwo
c2VsZWN0ZWRDZWxsKSIsICJ0cnVlIik7CisKKyAgICAgICAgLy8gTm93IGNoYW5nZSB0aGUgc2Vs
ZWN0ZWQgY2VsbCB0byB0cmlnZ2VyIHRoZSBub3RpZmljYXRpb24uCisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJncmlkIikuc2V0QXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRh
bnQiLCAiY2VsbDIiKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465859</attachid>
            <date>2023-04-11 23:49:04 -0700</date>
            <delta_ts>2023-04-11 23:52:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230411234903.patch</filename>
            <type>text/plain</type>
            <size>27026</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSBlMmQ0MjlhNTIzMTMzM2Q1ODQ2ZmFjNDQ5NmYyMmFiNjZmY2E0NGI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KClRvIHN1cHBvcnQgdGhlIGFyaWEtYWN0aXZlZGVzY2VuZGFu
dCBmbG93IHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkLCB3ZSBuZWVkIHRvIHN1cHBvcnQgQVhTZWxl
Y3RlZENlbGxzIGZvciB0YWJsZXMgYW5kIGdyaWRzLgpUaGlzIGJvaWxzIGRvd24gdG86CiAgMSkg
RXhwb3NpbmcgYW5kIGltcGxlbWVudGluZyBBWFNlbGVjdGVkQ2VsbHMgYXMgYW4gYXR0cmlidXRl
LgogIDIpIFBvc3Rpbmcgbm90aWZpY2F0aW9ucyB3aGVuIGl0IGNoYW5nZXMuCiAgMykgSW1wbGVt
ZW50aW5nIFdLVFIgYW5kIERSVCBtZXRob2RzIGZvciBmZXRjaGluZwogIDQpIENoYW5naW5nIHRo
ZSBvbGRlciwgdW51c2VkIEFYU2VsZWN0ZWRDZWxsIC0+IEFYU2VsZWN0ZWRDZWxscy4KCiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQt
Y2VsbHMuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHA6CihXZWJDb3JlOjpvcGVyYXRvcjw8KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b25TZWxlY3Rl
ZENoYW5nZWQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVzY2VuZGFu
dENoYW5nZWQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6c2VsZWN0ZWRDZWxscyk6CiogU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CihXZWJDb3JlOjpBWENvcmVP
YmplY3Q6OmNhbkhhdmVTZWxlY3RlZENlbGxzIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgooV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgooV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRB
VElPTlNfRU5EXSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpdKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmNwcCAgICAgfCAgNCArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCAgIHwgMTYgKysrLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcCAgICAgfCAxOSArKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgg
ICAgICAgICAgICB8IDE1ICsrKysrCiAuLi4vYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcCAg
ICAgICAgICAgICAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJ
T1MubW0gICAgIHwgIDIgKy0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAg
ICAgICAgICB8ICAzICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oICAgICAg
ICAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAg
ICB8ICAxICsKIC4uLi9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICAgICB8
ICAyICstCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgfCAg
NyArKy0KIC4uLi9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCB8ICA4
ICsrKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIHwgIDMg
Ky0KIC4uLi9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSAgICAgICAgICB8ICA0ICsr
CiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gICAgICAgICAgfCAxMCArKysK
IC4uLi9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggICB8ICAxICsKIC4u
Li9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbCAgICAgICB8ICAxICsKIC4uLi9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSAgICAgICAgICB8ICA1ICsrCiAuLi4vbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gICAgICAgICAgfCAxMSArKysrCiAuLi4vbWFj
L2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0ICAgICAgfCAxMyArKysrCiAuLi4vbWFj
L2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbCAgICAgICAgICAgICAgfCA2MyArKysrKysrKysrKysr
KysrKysrCiAyMyBmaWxlcyBjaGFuZ2VkLCAxODEgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3Jp
ZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDRhNWQyOTZhZjg4Ny4uOWVj
N2ZjODEwODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9n
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApA
QCAtNTI5LDggKzUyOSw4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3Ry
ZWFtLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3RpZmljCiAgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKICAg
ICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENl
bGxDaGFuZ2VkOgotICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCI7Cisg
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxzQ2hh
bmdlZDoKKyAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIjsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxl
Y3RlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkU3RhdGVDaGFu
Z2VkIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CmluZGV4IGM3OTZkODAxZjgxMi4uYTBiNmQ5M2UwY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTE0NTQsOSArMTQ1NCw3IEBAIHN0
YXRpYyBib29sIGlzQVJJQVRhYmxlQ2VsbChOb2RlKiBub2RlKQogCiB2b2lkIEFYT2JqZWN0Q2Fj
aGU6Om9uU2VsZWN0ZWRDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKGlzQVJJQVRhYmxl
Q2VsbChub2RlKSkKLSAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNlbGVjdGVkQ2Vs
bENoYW5nZWQpOwotICAgIGVsc2UgaWYgKGlzPEhUTUxPcHRpb25FbGVtZW50Pihub2RlKSkKKyAg
ICBpZiAoaXNBUklBVGFibGVDZWxsKG5vZGUpIHx8IGlzPEhUTUxPcHRpb25FbGVtZW50Pihub2Rl
KSkKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNlbGVjdGVkU3RhdGVDaGFuZ2Vk
KTsKICAgICBlbHNlIGlmIChhdXRvKiBheE9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpKSB7CiAg
ICAgICAgIGlmIChhdXRvKiBhbmNlc3RvciA9IEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3RvcjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PigqYXhPYmplY3QsIGZhbHNlLCBbXSAoY29uc3QgYXV0byYgb2Jq
ZWN0KSB7CkBAIC0xOTc0LDYgKzE5NzIsMTQgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVB
Y3RpdmVEZXNjZW5kYW50Q2hhbmdlZChFbGVtZW50JiBlbGVtZW50KQogI2VuZGlmCiAKICAgICAg
ICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKHRhcmdldCwgQVhOb3RpZmljYXRpb246OkFYQWN0
aXZlRGVzY2VuZGFudENoYW5nZWQpOworICAgICAgICAKKyAgICAgICAgLy8gVGFibGUgY2VsbCBh
Y3RpdmUgZGVzY2VuZGFudCBjaGFuZ2VzIHNob3VsZCB0cmlnZ2VyIHNlbGVjdGVkIGNlbGwgY2hh
bmdlcy4KKyAgICAgICAgaWYgKHRhcmdldC0+aXNUYWJsZSgpICYmIGFjdGl2ZURlc2NlbmRhbnQt
PmlzVGFibGVDZWxsKCkpIHsKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
KQorICAgICAgICAgICAgdXBkYXRlSXNvbGF0ZWRUcmVlKCpvYmplY3QsIEFYTm90aWZpY2F0aW9u
OjpBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkKTsKKyNlbmRpZgorICAgICAgICAgICAgcG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7CisgICAgICAg
IH0KICAgICB9CiB9CiAKQEAgLTM3MzMsNyArMzczOSw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2li
aWxpCiAgICAgICAgIGNhc2UgQVhSb3dJbmRleENoYW5nZWQ6CiAgICAgICAgICAgICB0cmVlLT51
cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5hbWU6OkFY
Um93SW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQVhTZWxlY3RlZENl
bGxDaGFuZ2VkOgorICAgICAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CisgICAgICAg
ICAgICB0cmVlLT51cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwgQVhQcm9w
ZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQ
cm9wZXJ0eSgqbm90aWZpY2F0aW9uLmZpcnN0LCBBWFByb3BlcnR5TmFtZTo6SXNTZWxlY3RlZCk7
CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKaW5kZXggY2FkN2RlOWM5OTBjLi4zN2Q1NjI0OWJmNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0zMjYsNyArMzI2LDcg
QEAgcHVibGljOgogICAgICAgICBBWFJvd0luZGV4Q2hhbmdlZCwKICAgICAgICAgQVhSb3dTcGFu
Q2hhbmdlZCwKICAgICAgICAgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwKLSAgICAgICAgQVhT
ZWxlY3RlZENlbGxDaGFuZ2VkLAorICAgICAgICBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkLAogICAg
ICAgICBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkLAogICAgICAgICBBWFNlbGVjdGVkVGV4dENoYW5n
ZWQsCiAgICAgICAgIEFYU2V0U2l6ZUNoYW5nZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAwYmJjYTdjZWM2Zjcu
LmMyZjU3NzQzYzFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yODM0LDYgKzI4MzQsMjUgQEAgQVhDb3JlT2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpmb2N1c2VkVUlFbGVtZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gcGFnZSAmJiBheE9iamVjdENhY2hlID8gYXhPYmplY3RDYWNoZS0+Zm9jdXNlZE9iamVj
dEZvclBhZ2UocGFnZSkgOiBudWxscHRyOwogfQogCitBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKCkKK3sK
KyAgICBpZiAoIWlzVGFibGUoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIEFYQ29yZU9i
amVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHM7CisgICAgZm9y
IChhdXRvIGNlbGwgOiBjZWxscygpKSB7CisgICAgICAgIGlmIChjZWxsLT5pc1NlbGVjdGVkKCkp
CisgICAgICAgICAgICBzZWxlY3RlZENlbGxzLmFwcGVuZChjZWxsKTsKKyAgICB9CisKKyAgICBp
ZiAoYXV0byBhY3RpdmVEZXNjID0gYWN0aXZlRGVzY2VuZGFudCgpKSB7CisgICAgICAgIGlmICgh
c2VsZWN0ZWRDZWxscy5jb250YWlucyhhY3RpdmVEZXNjKSkKKyAgICAgICAgICAgIHNlbGVjdGVk
Q2VsbHMuYXBwZW5kKGFjdGl2ZURlc2MpOworICAgIH0KKworICAgIHJldHVybiBzZWxlY3RlZENl
bGxzOworfQorCiB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldEZvY3VzZWQoYm9vbCBmb2N1
cykKIHsKICAgICBpZiAoZm9jdXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggZmE2MjMyZjIwNWFiLi45MWM3MTRiMGFm
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCkBAIC0xNTUsNiArMTU1LDcgQEAgcHVibGljOgogICAgIEFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciBjb2x1bW5IZWFkZXJzKCkgb3ZlcnJpZGUgeyByZXR1cm4gQWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yKCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Ig
cm93SGVhZGVycygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
cigpOyB9CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHZpc2libGVSb3dzKCkgb3Zl
cnJpZGUgeyByZXR1cm4gQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yKCk7IH0KKyAgICBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpIG92ZXJyaWRlOwogICAgIEFY
Q29yZU9iamVjdCogaGVhZGVyQ29udGFpbmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsg
fQogICAgIGludCBheENvbHVtbkNvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQog
ICAgIGludCBheFJvd0NvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3RJbnRlcmZhY2UuaAppbmRleCBiMTg3NWJkYzRlZGIuLmI5ZjQ2YmRjODQwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgKQEAgLTg5Nyw2ICs4OTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29sdW1uSGVhZGVycygpID0gMDsKICAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciByb3dIZWFkZXJzKCkgPSAwOwogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHZpc2libGVSb3dzKCkgPSAwOworICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHMoKSA9IDA7
CiAgICAgLy8gUmV0dXJucyBhbiBvYmplY3QgdGhhdCBjb250YWlucywgYXMgY2hpbGRyZW4sIGFs
bCB0aGUgb2JqZWN0cyB0aGF0IGFjdCBhcyBoZWFkZXJzLgogICAgIHZpcnR1YWwgQVhDb3JlT2Jq
ZWN0KiBoZWFkZXJDb250YWluZXIoKSA9IDA7CiAgICAgdmlydHVhbCBpbnQgYXhDb2x1bW5Db3Vu
dCgpIGNvbnN0ID0gMDsKQEAgLTEyMzEsNiArMTIzMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNEZXRhY2hlZEZyb21QYXJlbnQoKSA9IDA7CiAKICAgICBib29sIGNhbkhhdmVTZWxl
Y3RlZENoaWxkcmVuKCkgY29uc3Q7CisgICAgYm9vbCBjYW5IYXZlU2VsZWN0ZWRDZWxscygpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZHJlbihj
b25zdCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHZpc2libGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CkBAIC0x
NTYwLDYgKzE1NjIsMTkgQEAgaW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0OjpzdXBwb3J0c0xpdmVS
ZWdpb24oYm9vbCBleGNsdWRlSWZPZmYpIGNvbnN0CiAgICAgcmV0dXJuIGV4Y2x1ZGVJZk9mZiA/
IGxpdmVSZWdpb25TdGF0dXNJc0VuYWJsZWQoQXRvbVN0cmluZyB7IGxpdmVSZWdpb25TdGF0dXNW
YWx1ZSB9KSA6ICFsaXZlUmVnaW9uU3RhdHVzVmFsdWUuaXNFbXB0eSgpOwogfQogCitpbmxpbmUg
Ym9vbCBBWENvcmVPYmplY3Q6OmNhbkhhdmVTZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICBz
d2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JpZDoK
KyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZToKKyAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpUcmVlOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWVHcmlkOgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorfQorCiBpbmxpbmUgYm9vbCBBWENvcmVPYmplY3Q6OmNhbkhhdmVTZWxlY3RlZENoaWxk
cmVuKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5j
cHAKaW5kZXggMDJiZTJmNDQ5M2ZiLi41MWM4NGQxNWEwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5jcHAK
QEAgLTc2LDcgKzc2LDYgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQVhDb3JlT2JqZWN0KiBjb3JlT2JqZWN0LCBBWE5vdGlmaWMKICAgICAgICAgaWYgKGNv
cmVPYmplY3QtPmlzQ2hlY2tib3hPclJhZGlvKCkgfHwgY29yZU9iamVjdC0+aXNTd2l0Y2goKSkK
ICAgICAgICAgICAgIHdyYXBwZXItPnN0YXRlQ2hhbmdlZCgiY2hlY2tlZCIsIGNvcmVPYmplY3Qt
PmlzQ2hlY2tlZCgpKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBWFNlbGVjdGVkQ2VsbENo
YW5nZWQ6CiAgICAgY2FzZSBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkOgogICAgICAgICB3cmFwcGVy
LT5zdGF0ZUNoYW5nZWQoInNlbGVjdGVkIiwgY29yZU9iamVjdC0+aXNTZWxlY3RlZCgpKTsKICAg
ICAgICAgYnJlYWs7CkBAIC04Nyw2ICs4Niw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogY29yZU9iamVjdCwgQVhOb3RpZmljCiAg
ICAgICAgICAgICB3cmFwcGVyLT5zdGF0ZUNoYW5nZWQoInNlbGVjdGVkIiwgY29yZU9iamVjdC0+
aXNTZWxlY3RlZCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgQVhTZWxlY3Rl
ZENlbGxzQ2hhbmdlZDoKICAgICBjYXNlIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAg
ICAgIHdyYXBwZXItPnNlbGVjdGlvbkNoYW5nZWQoKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpp
bmRleCA1ODdkN2NiZWRiODMuLmM0OGZlMzE2MzQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC01Nyw3ICs1Nyw3
IEBAIEFTQ0lJTGl0ZXJhbCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUo
QVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uCiAgICAgY2FzZSBBWFBhZ2VTY3JvbGxlZDoKICAg
ICAgICAgbmFtZSA9ICJBWFBhZ2VTY3JvbGxlZCJfczsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBWFNlbGVjdGVkQ2VsbENoYW5nZWQ6CisgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2Vk
OgogICAgICAgICBuYW1lID0gIkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQiX3M7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQVhTZWxlY3RlZFRleHRDaGFuZ2VkOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcAppbmRleCA0NDExMmY0NDM1NzEuLmEwY2Y2OGRmMTlhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAKQEAgLTIzOSw2ICsyMzksOSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6
OmluaXRpYWxpemVQcm9wZXJ0aWVzKGNvbnN0IFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiYgYXhP
YgogICAgICAgICBzZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U2VsZWN0
ZWRDaGlsZHJlbiwgc2VsZWN0ZWRDaGlsZHJlbik7CiAgICAgfQogCisgICAgaWYgKG9iamVjdC5j
YW5IYXZlU2VsZWN0ZWRDZWxscygpKQorICAgICAgICBzZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRDZWxscywgb2JqZWN0LnNlbGVjdGVkQ2VsbHMoKSk7CisK
ICAgICBpZiAob2JqZWN0LmlzSW1hZ2UoKSkKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OkVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiwgb2JqZWN0LmVtYmVkZGVkSW1hZ2VEZXNj
cmlwdGlvbigpLmlzb2xhdGVkQ29weSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4
IGEyNzQ0NjA4YTZiNC4uMDM5ZjE2YzRlMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBA
IC0yOTMsNiArMjkzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbGVjdGVkQ2hpbGRyZW4oQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJlbikgb3ZlcnJpZGUgeyBmaWxsQ2hpbGRy
ZW5WZWN0b3JGb3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRDaGlsZHJlbiwgY2hp
bGRyZW4pOyB9CiAgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxkcmVuKGNvbnN0IEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYpIG92ZXJyaWRlOwogICAgIHZvaWQgdmlzaWJsZUNoaWxkcmVuKEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgY2hpbGRyZW4pIG92ZXJyaWRlIHsgZmlsbENoaWxk
cmVuVmVjdG9yRm9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlZpc2libGVDaGlsZHJlbiwgY2hp
bGRyZW4pOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHMo
KSBvdmVycmlkZSB7IHJldHVybiB0cmVlKCktPm9iamVjdHNGb3JJRHModmVjdG9yQXR0cmlidXRl
VmFsdWU8QVhJRD4oQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMpKTsgfQogICAgIEF0b21T
dHJpbmcgdGFnTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGNvbnN0IEFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciYgY2hpbGRyZW4oYm9vbCB1cGRhdGVDaGlsZHJlbklmTmVlZGVkID0gdHJ1
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCBkYzM0Y2IzOWE3Y2UuLjEyYmY0MzE0ZjZkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0xOTksNiArMTk5LDcgQEAgZW51bSBjbGFzcyBBWFBy
b3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBSb3dIZWFkZXJzLAogICAgIFJvd0luZGV4LAog
ICAgIFJvd0luZGV4UmFuZ2UsCisgICAgU2VsZWN0ZWRDZWxscywKICAgICBTZWxlY3RlZENoaWxk
cmVuLAogICAgIFNlc3Npb25JRCwKICAgICBTZXRTaXplLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggZTlmNTFiOGVm
NjkzLi42Y2ZiMTllYjNiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0
LCBBWE5vdGlmaWNhdGlvCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlv
biA9IE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkTm90aWZpY2F0aW9uOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKKyAgICBjYXNl
IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CiAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IE5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNDaGFuZ2VkTm90aWZpY2F0aW9uOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW0KaW5kZXggZGMzZmU3ZThiYWNiLi5iYWY5MDc3NGM0YTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xMDgxLDYgKzEwODEsNyBA
QCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJh
eSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5Um93Q291bnRBdHRyaWJ1dGVdOwogICAgICAgICBb
dGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBUklBQ29sdW1uQ291bnRBdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBUklBUm93
Q291bnRBdHRyaWJ1dGVdOworICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZENlbGxzQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsK
ICAgICB9KCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIHRhYmxlUm93QXR0cnMgPSBbXSB7
CkBAIC0xODM2LDEwICsxODM3LDEyIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05T
X0VORAogICAgICAgICB9CiAKICAgICAgICAgLy8gSFRNTCB0YWJsZXMgZG9uJ3Qgc3VwcG9ydCB0
aGVzZSBhdHRyaWJ1dGVzLgotICAgICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ29sdW1uc0F0dHJpYnV0ZV0KLSAgICAgICAgICAg
IHx8IFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZENlbGxzQXR0cmlidXRlXSkKKyAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0
cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENvbHVtbnNBdHRyaWJ1dGVdKQogICAgICAgICAg
ICAgcmV0dXJuIG5pbDsKIAorICAgICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGVdKQorICAgICAgICAgICAg
cmV0dXJuIG1ha2VOU0FycmF5KGJhY2tpbmdPYmplY3QtPnNlbGVjdGVkQ2VsbHMoKSk7CisKICAg
ICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlD
b2x1bW5IZWFkZXJVSUVsZW1lbnRzQXR0cmlidXRlXSkKICAgICAgICAgICAgIHJldHVybiBtYWtl
TlNBcnJheShiYWNraW5nT2JqZWN0LT5jb2x1bW5IZWFkZXJzKCkpOwogCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IGI5ZTc5MjUxY2Jm
OS4uZmNjNGJiYzk3YTU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcApAQCAtNjE4LDYgKzYxOCwxMyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBy
b3dIZWFkZXJzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0
aW9uLAogICAgIHJldHVybiBjb252ZXJ0RWxlbWVudHNUb09iamVjdEFycmF5KGNvbnRleHQsIGVs
ZW1lbnRzKTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxsc0NhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBWZWN0b3I8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gZWxlbWVudHM7CisgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNlbGVjdGVk
Q2VsbHMoZWxlbWVudHMpOworICAgIHJldHVybiBjb252ZXJ0RWxlbWVudHNUb09iamVjdEFycmF5
KGNvbnRleHQsIGVsZW1lbnRzKTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgdWlFbGVtZW50QXJy
YXlBdHRyaWJ1dGVWYWx1ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsK
ICAgICBpZiAoYXJndW1lbnRDb3VudCAhPSAxKQpAQCAtMjA3OCw2ICsyMDg1LDcgQEAgSlNDbGFz
c1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKU0NsYXNzKCkKICAgICAgICAgeyAic2V0
U2VsZWN0ZWRUZXh0UmFuZ2UiLCBzZXRTZWxlY3RlZFRleHRSYW5nZUNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInN0cmluZ0F0dHJpYnV0ZVZhbHVlIiwgc3RyaW5nQXR0cmlidXRlVmFsdWVD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ1aUVsZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVl
IiwgdWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAg
IHsgInNlbGVjdGVkQ2VsbHMiLCBzZWxlY3RlZENlbGxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAicm93SGVhZGVycyIsIHJvd0hlYWRlcnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJjb2x1bW5IZWFkZXJzIiwgY29sdW1uSGVhZGVyc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlIiwgdWlFbGVtZW50QXR0cmlidXRlVmFsdWVDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCmluZGV4IDcyY2VlOTIzYWQ0ZC4uNWY0N2FlYmI0YzQ0IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC0yMDMsNyArMjAzLDggQEAg
cHVibGljOgogICAgIGludCBjb2x1bW5Db3VudCgpOwogICAgIHZvaWQgcm93SGVhZGVycyhWZWN0
b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25zdDsKICAgICB2b2lkIGNv
bHVtbkhlYWRlcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50cykgY29u
c3Q7Ci0gICAgCisgICAgdm9pZCBzZWxlY3RlZENlbGxzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiYgZWxlbWVudHMpIGNvbnN0OworCiAgICAgLy8gVHJlZS9PdXRsaW5lIHNwZWNpZmlj
IGF0dHJpYnV0ZXMKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHNlbGVjdGVkUm93QXRJbmRl
eCh1bnNpZ25lZCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBkaXNjbG9zZWRCeVJvdygp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudElPUy5tbQppbmRleCA0MzMwNGU0MWU5NDEuLmQ3OWFmOTBhNTMxMSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0K
QEAgLTEyNzEsNiArMTI3MSwxMCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hl
YWRlcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JikgY29uc3QKIHsKIH0KIAordm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKFZlY3RvcjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiYpIGNvbnN0Cit7Cit9CisKIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TWFjLm1tCmluZGV4IDgxMzQxMWY5MmIzOC4uYjgxMzZlZmY5MTZjIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAt
NTA5LDYgKzUwOSwxNiBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoTlNTdHJpbmcgKgogICAgIHJldHVybiBudWxs
cHRyOwogfQogCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoVmVj
dG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50cykgY29uc3QKK3sKKyAgICBCRUdJ
Tl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGVd
OworICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAg
ICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4odmFsdWUpOwor
ICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKworCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnJvd0hlYWRlcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50
cykgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmgKaW5kZXggN2I0ODA3Yjg1MmVjLi44ODU0OTAyNTljODMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oCkBAIC0yNDMsNiArMjQzLDcgQEAgcHVibGljOgogICAgIEpTVmFs
dWVSZWYgcm93SGVhZGVycygpIGNvbnN0OwogICAgIEpTVmFsdWVSZWYgY29sdW1uSGVhZGVycygp
IGNvbnN0OwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjdXN0b21Db250ZW50KCkgY29u
c3Q7CisgICAgSlNWYWx1ZVJlZiBzZWxlY3RlZENlbGxzKCkgY29uc3Q7CiAKICAgICAvLyBUcmVl
L091dGxpbmUgc3BlY2lmaWMgYXR0cmlidXRlcwogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBzZWxlY3RlZFJvd0F0SW5kZXgodW5zaWduZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKaW5kZXggZjQ0MGFiYjUwYzBhLi5hNGZlZGUx
MGFlNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmlk
bApAQCAtMTgwLDYgKzE4MCw3IEBACiAgICAgb2JqZWN0IGNvbHVtbkhlYWRlcnMoKTsKICAgICBv
YmplY3Qgcm93SGVhZGVycygpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgY3Vz
dG9tQ29udGVudDsKKyAgICBvYmplY3Qgc2VsZWN0ZWRDZWxscygpOwogCiAgICAgb2JqZWN0IGRl
dGFpbHNFbGVtZW50cygpOwogICAgIG9iamVjdCBlcnJvck1lc3NhZ2VFbGVtZW50cygpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXggOTUyYjZkYzMyMjgw
Li43ODJkMDFhZWQzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbQpAQCAtNDYwLDYgKzQ2MCwxMSBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnJvd0hlYWRlcnMoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVl
UmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAg
IHJldHVybiBudWxscHRyOworfQorCiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNvbHVtbkhlYWRlcnMoKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggYTg1NTA4MDE0MDU1Li4yMzEw
NzU3MjExYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpA
QCAtNDI1LDYgKzQyNSwxNyBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJv
d0hlYWRlcnMoKSBjb25zdAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIH0KIAorSlNWYWx1
ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+PiBlbGVtZW50czsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUo
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZSk7CisgICAgaWYgKFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgIGVsZW1lbnRzID0gbWFrZVZl
Y3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KHZhbHVlLmdldCgpKTsKKyAgICBy
ZXR1cm4gbWFrZUpTQXJyYXkoZWxlbWVudHMpOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMK
K30KKwogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5IZWFkZXJzKCkg
Y29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43MDk1M2My
ZTNlNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9n
cmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUaGlzIHRl
c3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMgd2lsbCByZXR1cm4gYW5kIHBvc3Qgc2VsZWN0ZWQgY2Vs
bHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTOiB0cmVlZ3JpZC5pc0F0
dHJpYnV0ZVN1cHBvcnRlZCgnQVhTZWxlY3RlZENlbGxzJykgPT09IHRydWUKK1BBU1M6IHRyZWVn
cmlkLnNlbGVjdGVkQ2VsbHMoKVswXS5pc0VxdWFsKHNlbGVjdGVkQ2VsbCkgPT09IHRydWUKK1Jl
Y2VpdmVkIG5vdGlmaWNhdGlvbjogQVhTZWxlY3RlZENlbGxzQ2hhbmdlZAorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDRhODk3NTViMzZlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0i
Ym9keSI+CisKKzxkaXYgaWQ9ImNvbnRlbnQiPgorPHRhYmxlIHRhYmluZGV4PTAgaWQ9ImdyaWQi
IHJvbGU9ImdyaWQiIGFyaWEtbGFiZWxsZWRieT0iZ3JpZC0xLWhlYWRlciIgYm9yZGVyPSIxIiBh
cmlhLWFjdGl2ZWRlc2NlbmRhbnQ9ImNlbGwxIj4KKzx0aGVhZD4KKyAgICA8dHIgY2E9InRyIiBy
b2xlPSJyb3ciIGFyaWEtbGV2ZWw9IjEiIGlkPSJyb3cxIj4KKyAgICAgICAgPHRoIGlkPSJncmlk
LTEtaXNibl9pZCI+Qm9vayBOYW1lIC8gSVNCTjwvdGg+PHRoIGlkPSJncmlkLTEtYXV0aG9yX2lk
Ij5BdXRob3I8L3RoPjx0aCBpZD0iZ3JpZC0xLXByaWNlX2lkIiBjbGFzcz0ibnVtZXJpYyIgPlBy
aWNlICgkKTwvdGg+CisgICAgPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+CisgICAgPHRyIGNhPSJ0
byIgcm9sZT0icm93IiBhcmlhLWxldmVsPSIxIiBhcmlhLWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAg
ICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtdGl0bGVfaWQiIGlkPSJ0YWJsZV9lbnRyeSIgcm9sZT0i
Z3JpZGNlbGwiIGNvbHNwYW49IjMiICB0YWJpbmRleD0iMCI+CisgICAgICAgICA8c3BhbiBjbGFz
cz0iZXhwYW5kIj4rPC9zcGFuPiBBIFF1ZXN0aW9uIG9mIExvdmU8L3RkPiAgICAgICAgICAgICAg
ICAgIAorICAgICA8L3RyPgorICAgICA8dHIgY2E9InRpIiByb2xlPSJyb3ciICBhcmlhLWxldmVs
PSIyIiBhcmlhLWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEt
aXNibl9pZCIgcm9sZT0iZ3JpZGNlbGwiIGlkPSJjZWxsMSI+OTc4LTMtNDUzLTQwNTQwLTA8L3Rk
PgorICAgICAgICAgPHRkIGhlYWRlcnM9ImdyaWQtMS1hdXRob3JfaWQiIHJvbGU9ImdyaWRjZWxs
IiBpZD0iY2VsbDIiPk5vcmEgUm9iZXJ0czwvdGQ+CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3Jp
ZC0xLXByaWNlX2lkIiBjbGFzcz0ibnVtZXJpYyIgcm9sZT0iZ3JpZGNlbGwiIGNhPSJ0ZSI+PGRp
dj45Ljk5PC9kaXY+PC90ZD4KKyAgICAgPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+
CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIEFSSUEgZ3Jp
ZHMgd2lsbCByZXR1cm4gYW5kIHBvc3Qgc2VsZWN0ZWQgY2VsbHMuIik7CisKK2lmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWUKKworICAgIHZhciBvdXRwdXQgPSAiIjsKKyAgICB2YXIgdHJlZWdyaWQsIHNlbGVjdGVkQ2Vs
bGw7CisgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIo
ZnVuY3Rpb24oZWxlbWVudCwgbm90aWZpY2F0aW9uKSB7CisgICAgICAgIGlmIChub3RpZmljYXRp
b24gPT0gIkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQiKSB7CisgICAgICAgICAgICBvdXRwdXQgKz0g
IlJlY2VpdmVkIG5vdGlmaWNhdGlvbjogIiArIG5vdGlmaWNhdGlvbiArICJcbiI7CisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnN0eWxlLnZpc2liaWxpdHkg
PSAnaGlkZGVuJzsKKyAgICAgICAgICAgIGRlYnVnKG91dHB1dCk7CisgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgLy8gRm9jdXMgdGhlIGdyaWQg
c28gaXQgY2FuIGhhbmRsZSBhY3RpdmUgZGVzY2VuZGFudHMuCisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImdyaWQiKS5mb2N1cygpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHRyZWVncmlkID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJncmlkIik7CisgICAgICAgIHNlbGVjdGVkQ2VsbCA9IHRyZWVncmlkLmNoaWxkQXRJ
bmRleCgyKS5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoInRyZWVn
cmlkLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMnKSIsICJ0cnVlIik7Cisg
ICAgICAgIG91dHB1dCArPSBleHBlY3QoInRyZWVncmlkLnNlbGVjdGVkQ2VsbHMoKVswXS5pc0Vx
dWFsKHNlbGVjdGVkQ2VsbCkiLCAidHJ1ZSIpOworCisgICAgICAgIC8vIE5vdyBjaGFuZ2UgdGhl
IHNlbGVjdGVkIGNlbGwgdG8gdHJpZ2dlciB0aGUgbm90aWZpY2F0aW9uLgorICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNj
ZW5kYW50IiwgImNlbGwyIik7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKworPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465860</attachid>
            <date>2023-04-11 23:52:22 -0700</date>
            <delta_ts>2023-04-13 17:02:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230411235221.patch</filename>
            <type>text/plain</type>
            <size>26941</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSA0MWFiODE3MjUyNGQxY2M2ZTc4NjE0NjhkZjE1ZTc2OWE0MTFiNmMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KClRvIHN1cHBvcnQgdGhlIGFyaWEtYWN0aXZlZGVzY2VuZGFu
dCBmbG93IHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkLCB3ZSBuZWVkIHRvIHN1cHBvcnQgQVhTZWxl
Y3RlZENlbGxzIGZvciB0YWJsZXMgYW5kIGdyaWRzLgpUaGlzIGJvaWxzIGRvd24gdG86CiAgMSkg
RXhwb3NpbmcgYW5kIGltcGxlbWVudGluZyBBWFNlbGVjdGVkQ2VsbHMgYXMgYW4gYXR0cmlidXRl
LgogIDIpIFBvc3Rpbmcgbm90aWZpY2F0aW9ucyB3aGVuIGl0IGNoYW5nZXMuCiAgMykgSW1wbGVt
ZW50aW5nIFdLVFIgYW5kIERSVCBtZXRob2RzIGZvciBmZXRjaGluZwogIDQpIENoYW5naW5nIHRo
ZSBvbGRlciwgdW51c2VkIEFYU2VsZWN0ZWRDZWxsIC0+IEFYU2VsZWN0ZWRDZWxscy4KCiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50
eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQt
Y2VsbHMuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHA6CihXZWJDb3JlOjpvcGVyYXRvcjw8KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b25TZWxlY3Rl
ZENoYW5nZWQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVzY2VuZGFu
dENoYW5nZWQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6c2VsZWN0ZWRDZWxscyk6CiogU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CihXZWJDb3JlOjpBWENvcmVP
YmplY3Q6OmNhbkhhdmVTZWxlY3RlZENlbGxzIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgooV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgooV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRB
VElPTlNfRU5EXSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpdKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmNwcCAgICAgfCAgNCArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCAgIHwgMTYgKysrLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcCAgICAgfCAxOSArKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgg
ICAgICAgICAgICB8IDE1ICsrKysrCiAuLi4vYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcCAg
ICAgICAgICAgICAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJ
T1MubW0gICAgIHwgIDIgKy0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAg
ICAgICAgICB8ICAzICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oICAgICAg
ICAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAg
ICB8ICAxICsKIC4uLi9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICAgICB8
ICAyICstCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgfCAg
NyArKy0KIC4uLi9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCB8ICA4
ICsrKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIHwgIDMg
Ky0KIC4uLi9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSAgICAgICAgICB8ICA0ICsr
CiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gICAgICAgICAgfCAxMCArKysK
IC4uLi9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggICB8ICAxICsKIC4u
Li9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbCAgICAgICB8ICAxICsKIC4uLi9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSAgICAgICAgICB8ICA1ICsrCiAuLi4vbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gICAgICAgICAgfCAxMSArKysrCiAuLi4vbWFj
L2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0ICAgICAgfCAxMyArKysrCiAuLi4vbWFj
L2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbCAgICAgICAgICAgICAgfCA2MyArKysrKysrKysrKysr
KysrKysrCiAyMyBmaWxlcyBjaGFuZ2VkLCAxODEgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3Jp
ZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDRhNWQyOTZhZjg4Ny4uOWVj
N2ZjODEwODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9n
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApA
QCAtNTI5LDggKzUyOSw4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3Ry
ZWFtLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3RpZmljCiAgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKICAg
ICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENl
bGxDaGFuZ2VkOgotICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCI7Cisg
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxzQ2hh
bmdlZDoKKyAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIjsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxl
Y3RlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkU3RhdGVDaGFu
Z2VkIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CmluZGV4IGM3OTZkODAxZjgxMi4uYTBiNmQ5M2UwY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTE0NTQsOSArMTQ1NCw3IEBAIHN0
YXRpYyBib29sIGlzQVJJQVRhYmxlQ2VsbChOb2RlKiBub2RlKQogCiB2b2lkIEFYT2JqZWN0Q2Fj
aGU6Om9uU2VsZWN0ZWRDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKGlzQVJJQVRhYmxl
Q2VsbChub2RlKSkKLSAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNlbGVjdGVkQ2Vs
bENoYW5nZWQpOwotICAgIGVsc2UgaWYgKGlzPEhUTUxPcHRpb25FbGVtZW50Pihub2RlKSkKKyAg
ICBpZiAoaXNBUklBVGFibGVDZWxsKG5vZGUpIHx8IGlzPEhUTUxPcHRpb25FbGVtZW50Pihub2Rl
KSkKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNlbGVjdGVkU3RhdGVDaGFuZ2Vk
KTsKICAgICBlbHNlIGlmIChhdXRvKiBheE9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpKSB7CiAg
ICAgICAgIGlmIChhdXRvKiBhbmNlc3RvciA9IEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3RvcjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PigqYXhPYmplY3QsIGZhbHNlLCBbXSAoY29uc3QgYXV0byYgb2Jq
ZWN0KSB7CkBAIC0xOTc0LDYgKzE5NzIsMTQgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVB
Y3RpdmVEZXNjZW5kYW50Q2hhbmdlZChFbGVtZW50JiBlbGVtZW50KQogI2VuZGlmCiAKICAgICAg
ICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKHRhcmdldCwgQVhOb3RpZmljYXRpb246OkFYQWN0
aXZlRGVzY2VuZGFudENoYW5nZWQpOworICAgICAgICAKKyAgICAgICAgLy8gVGFibGUgY2VsbCBh
Y3RpdmUgZGVzY2VuZGFudCBjaGFuZ2VzIHNob3VsZCB0cmlnZ2VyIHNlbGVjdGVkIGNlbGwgY2hh
bmdlcy4KKyAgICAgICAgaWYgKHRhcmdldC0+aXNUYWJsZSgpICYmIGFjdGl2ZURlc2NlbmRhbnQt
PmlzVGFibGVDZWxsKCkpIHsKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
KQorICAgICAgICAgICAgdXBkYXRlSXNvbGF0ZWRUcmVlKCpvYmplY3QsIEFYTm90aWZpY2F0aW9u
OjpBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkKTsKKyNlbmRpZgorICAgICAgICAgICAgcG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7CisgICAgICAg
IH0KICAgICB9CiB9CiAKQEAgLTM3MzMsNyArMzczOSw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2li
aWxpCiAgICAgICAgIGNhc2UgQVhSb3dJbmRleENoYW5nZWQ6CiAgICAgICAgICAgICB0cmVlLT51
cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5hbWU6OkFY
Um93SW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQVhTZWxlY3RlZENl
bGxDaGFuZ2VkOgorICAgICAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CisgICAgICAg
ICAgICB0cmVlLT51cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwgQVhQcm9w
ZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQ
cm9wZXJ0eSgqbm90aWZpY2F0aW9uLmZpcnN0LCBBWFByb3BlcnR5TmFtZTo6SXNTZWxlY3RlZCk7
CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKaW5kZXggY2FkN2RlOWM5OTBjLi4zN2Q1NjI0OWJmNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0zMjYsNyArMzI2LDcg
QEAgcHVibGljOgogICAgICAgICBBWFJvd0luZGV4Q2hhbmdlZCwKICAgICAgICAgQVhSb3dTcGFu
Q2hhbmdlZCwKICAgICAgICAgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwKLSAgICAgICAgQVhT
ZWxlY3RlZENlbGxDaGFuZ2VkLAorICAgICAgICBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkLAogICAg
ICAgICBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkLAogICAgICAgICBBWFNlbGVjdGVkVGV4dENoYW5n
ZWQsCiAgICAgICAgIEFYU2V0U2l6ZUNoYW5nZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAwYmJjYTdjZWM2Zjcu
LmMyZjU3NzQzYzFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yODM0LDYgKzI4MzQsMjUgQEAgQVhDb3JlT2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpmb2N1c2VkVUlFbGVtZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gcGFnZSAmJiBheE9iamVjdENhY2hlID8gYXhPYmplY3RDYWNoZS0+Zm9jdXNlZE9iamVj
dEZvclBhZ2UocGFnZSkgOiBudWxscHRyOwogfQogCitBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKCkKK3sK
KyAgICBpZiAoIWlzVGFibGUoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIEFYQ29yZU9i
amVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHM7CisgICAgZm9y
IChhdXRvIGNlbGwgOiBjZWxscygpKSB7CisgICAgICAgIGlmIChjZWxsLT5pc1NlbGVjdGVkKCkp
CisgICAgICAgICAgICBzZWxlY3RlZENlbGxzLmFwcGVuZChjZWxsKTsKKyAgICB9CisKKyAgICBp
ZiAoYXV0byBhY3RpdmVEZXNjID0gYWN0aXZlRGVzY2VuZGFudCgpKSB7CisgICAgICAgIGlmICgh
c2VsZWN0ZWRDZWxscy5jb250YWlucyhhY3RpdmVEZXNjKSkKKyAgICAgICAgICAgIHNlbGVjdGVk
Q2VsbHMuYXBwZW5kKGFjdGl2ZURlc2MpOworICAgIH0KKworICAgIHJldHVybiBzZWxlY3RlZENl
bGxzOworfQorCiB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldEZvY3VzZWQoYm9vbCBmb2N1
cykKIHsKICAgICBpZiAoZm9jdXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggZmE2MjMyZjIwNWFiLi45MWM3MTRiMGFm
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCkBAIC0xNTUsNiArMTU1LDcgQEAgcHVibGljOgogICAgIEFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciBjb2x1bW5IZWFkZXJzKCkgb3ZlcnJpZGUgeyByZXR1cm4gQWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yKCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Ig
cm93SGVhZGVycygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
cigpOyB9CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHZpc2libGVSb3dzKCkgb3Zl
cnJpZGUgeyByZXR1cm4gQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yKCk7IH0KKyAgICBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpIG92ZXJyaWRlOwogICAgIEFY
Q29yZU9iamVjdCogaGVhZGVyQ29udGFpbmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsg
fQogICAgIGludCBheENvbHVtbkNvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQog
ICAgIGludCBheFJvd0NvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3RJbnRlcmZhY2UuaAppbmRleCBiMTg3NWJkYzRlZGIuLmI5ZjQ2YmRjODQwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgKQEAgLTg5Nyw2ICs4OTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29sdW1uSGVhZGVycygpID0gMDsKICAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciByb3dIZWFkZXJzKCkgPSAwOwogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHZpc2libGVSb3dzKCkgPSAwOworICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHMoKSA9IDA7
CiAgICAgLy8gUmV0dXJucyBhbiBvYmplY3QgdGhhdCBjb250YWlucywgYXMgY2hpbGRyZW4sIGFs
bCB0aGUgb2JqZWN0cyB0aGF0IGFjdCBhcyBoZWFkZXJzLgogICAgIHZpcnR1YWwgQVhDb3JlT2Jq
ZWN0KiBoZWFkZXJDb250YWluZXIoKSA9IDA7CiAgICAgdmlydHVhbCBpbnQgYXhDb2x1bW5Db3Vu
dCgpIGNvbnN0ID0gMDsKQEAgLTEyMzEsNiArMTIzMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNEZXRhY2hlZEZyb21QYXJlbnQoKSA9IDA7CiAKICAgICBib29sIGNhbkhhdmVTZWxl
Y3RlZENoaWxkcmVuKCkgY29uc3Q7CisgICAgYm9vbCBjYW5IYXZlU2VsZWN0ZWRDZWxscygpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZHJlbihj
b25zdCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHZpc2libGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CkBAIC0x
NTYwLDYgKzE1NjIsMTkgQEAgaW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0OjpzdXBwb3J0c0xpdmVS
ZWdpb24oYm9vbCBleGNsdWRlSWZPZmYpIGNvbnN0CiAgICAgcmV0dXJuIGV4Y2x1ZGVJZk9mZiA/
IGxpdmVSZWdpb25TdGF0dXNJc0VuYWJsZWQoQXRvbVN0cmluZyB7IGxpdmVSZWdpb25TdGF0dXNW
YWx1ZSB9KSA6ICFsaXZlUmVnaW9uU3RhdHVzVmFsdWUuaXNFbXB0eSgpOwogfQogCitpbmxpbmUg
Ym9vbCBBWENvcmVPYmplY3Q6OmNhbkhhdmVTZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICBz
d2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JpZDoK
KyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZToKKyAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpUcmVlOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWVHcmlkOgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorfQorCiBpbmxpbmUgYm9vbCBBWENvcmVPYmplY3Q6OmNhbkhhdmVTZWxlY3RlZENoaWxk
cmVuKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5j
cHAKaW5kZXggMDJiZTJmNDQ5M2ZiLi41MWM4NGQxNWEwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5jcHAK
QEAgLTc2LDcgKzc2LDYgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQVhDb3JlT2JqZWN0KiBjb3JlT2JqZWN0LCBBWE5vdGlmaWMKICAgICAgICAgaWYgKGNv
cmVPYmplY3QtPmlzQ2hlY2tib3hPclJhZGlvKCkgfHwgY29yZU9iamVjdC0+aXNTd2l0Y2goKSkK
ICAgICAgICAgICAgIHdyYXBwZXItPnN0YXRlQ2hhbmdlZCgiY2hlY2tlZCIsIGNvcmVPYmplY3Qt
PmlzQ2hlY2tlZCgpKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBWFNlbGVjdGVkQ2VsbENo
YW5nZWQ6CiAgICAgY2FzZSBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkOgogICAgICAgICB3cmFwcGVy
LT5zdGF0ZUNoYW5nZWQoInNlbGVjdGVkIiwgY29yZU9iamVjdC0+aXNTZWxlY3RlZCgpKTsKICAg
ICAgICAgYnJlYWs7CkBAIC04Nyw2ICs4Niw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogY29yZU9iamVjdCwgQVhOb3RpZmljCiAg
ICAgICAgICAgICB3cmFwcGVyLT5zdGF0ZUNoYW5nZWQoInNlbGVjdGVkIiwgY29yZU9iamVjdC0+
aXNTZWxlY3RlZCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgQVhTZWxlY3Rl
ZENlbGxzQ2hhbmdlZDoKICAgICBjYXNlIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAg
ICAgIHdyYXBwZXItPnNlbGVjdGlvbkNoYW5nZWQoKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpp
bmRleCA1ODdkN2NiZWRiODMuLmM0OGZlMzE2MzQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC01Nyw3ICs1Nyw3
IEBAIEFTQ0lJTGl0ZXJhbCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUo
QVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uCiAgICAgY2FzZSBBWFBhZ2VTY3JvbGxlZDoKICAg
ICAgICAgbmFtZSA9ICJBWFBhZ2VTY3JvbGxlZCJfczsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBWFNlbGVjdGVkQ2VsbENoYW5nZWQ6CisgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2Vk
OgogICAgICAgICBuYW1lID0gIkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQiX3M7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQVhTZWxlY3RlZFRleHRDaGFuZ2VkOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcAppbmRleCA0NDExMmY0NDM1NzEuLmEwY2Y2OGRmMTlhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAKQEAgLTIzOSw2ICsyMzksOSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6
OmluaXRpYWxpemVQcm9wZXJ0aWVzKGNvbnN0IFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiYgYXhP
YgogICAgICAgICBzZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U2VsZWN0
ZWRDaGlsZHJlbiwgc2VsZWN0ZWRDaGlsZHJlbik7CiAgICAgfQogCisgICAgaWYgKG9iamVjdC5j
YW5IYXZlU2VsZWN0ZWRDZWxscygpKQorICAgICAgICBzZXRPYmplY3RWZWN0b3JQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRDZWxscywgb2JqZWN0LnNlbGVjdGVkQ2VsbHMoKSk7CisK
ICAgICBpZiAob2JqZWN0LmlzSW1hZ2UoKSkKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OkVtYmVkZGVkSW1hZ2VEZXNjcmlwdGlvbiwgb2JqZWN0LmVtYmVkZGVkSW1hZ2VEZXNj
cmlwdGlvbigpLmlzb2xhdGVkQ29weSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4
IGEyNzQ0NjA4YTZiNC4uMDM5ZjE2YzRlMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBA
IC0yOTMsNiArMjkzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbGVjdGVkQ2hpbGRyZW4oQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJlbikgb3ZlcnJpZGUgeyBmaWxsQ2hpbGRy
ZW5WZWN0b3JGb3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRDaGlsZHJlbiwgY2hp
bGRyZW4pOyB9CiAgICAgdm9pZCBzZXRTZWxlY3RlZENoaWxkcmVuKGNvbnN0IEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYpIG92ZXJyaWRlOwogICAgIHZvaWQgdmlzaWJsZUNoaWxkcmVuKEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgY2hpbGRyZW4pIG92ZXJyaWRlIHsgZmlsbENoaWxk
cmVuVmVjdG9yRm9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlZpc2libGVDaGlsZHJlbiwgY2hp
bGRyZW4pOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHMo
KSBvdmVycmlkZSB7IHJldHVybiB0cmVlKCktPm9iamVjdHNGb3JJRHModmVjdG9yQXR0cmlidXRl
VmFsdWU8QVhJRD4oQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMpKTsgfQogICAgIEF0b21T
dHJpbmcgdGFnTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGNvbnN0IEFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciYgY2hpbGRyZW4oYm9vbCB1cGRhdGVDaGlsZHJlbklmTmVlZGVkID0gdHJ1
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCBkYzM0Y2IzOWE3Y2UuLjEyYmY0MzE0ZjZkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0xOTksNiArMTk5LDcgQEAgZW51bSBjbGFzcyBBWFBy
b3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBSb3dIZWFkZXJzLAogICAgIFJvd0luZGV4LAog
ICAgIFJvd0luZGV4UmFuZ2UsCisgICAgU2VsZWN0ZWRDZWxscywKICAgICBTZWxlY3RlZENoaWxk
cmVuLAogICAgIFNlc3Npb25JRCwKICAgICBTZXRTaXplLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggZTlmNTFiOGVm
NjkzLi42Y2ZiMTllYjNiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0
LCBBWE5vdGlmaWNhdGlvCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1hY05vdGlmaWNhdGlv
biA9IE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkTm90aWZpY2F0aW9uOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKKyAgICBjYXNl
IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CiAgICAgICAgIG1hY05vdGlmaWNhdGlvbiA9IE5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNDaGFuZ2VkTm90aWZpY2F0aW9uOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW0KaW5kZXggZGMzZmU3ZThiYWNiLi5iYWY5MDc3NGM0YTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xMDgxLDYgKzEwODEsNyBA
QCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJh
eSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5Um93Q291bnRBdHRyaWJ1dGVdOwogICAgICAgICBb
dGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBUklBQ29sdW1uQ291bnRBdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBUklBUm93
Q291bnRBdHRyaWJ1dGVdOworICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZENlbGxzQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsK
ICAgICB9KCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIHRhYmxlUm93QXR0cnMgPSBbXSB7
CkBAIC0xODM2LDEwICsxODM3LDEyIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05T
X0VORAogICAgICAgICB9CiAKICAgICAgICAgLy8gSFRNTCB0YWJsZXMgZG9uJ3Qgc3VwcG9ydCB0
aGVzZSBhdHRyaWJ1dGVzLgotICAgICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ29sdW1uc0F0dHJpYnV0ZV0KLSAgICAgICAgICAg
IHx8IFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZENlbGxzQXR0cmlidXRlXSkKKyAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0
cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENvbHVtbnNBdHRyaWJ1dGVdKQogICAgICAgICAg
ICAgcmV0dXJuIG5pbDsKIAorICAgICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGVdKQorICAgICAgICAgICAg
cmV0dXJuIG1ha2VOU0FycmF5KGJhY2tpbmdPYmplY3QtPnNlbGVjdGVkQ2VsbHMoKSk7CisKICAg
ICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlD
b2x1bW5IZWFkZXJVSUVsZW1lbnRzQXR0cmlidXRlXSkKICAgICAgICAgICAgIHJldHVybiBtYWtl
TlNBcnJheShiYWNraW5nT2JqZWN0LT5jb2x1bW5IZWFkZXJzKCkpOwogCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IGI5ZTc5MjUxY2Jm
OS4uZmNjNGJiYzk3YTU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcApAQCAtNjE4LDYgKzYxOCwxMyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBy
b3dIZWFkZXJzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0
aW9uLAogICAgIHJldHVybiBjb252ZXJ0RWxlbWVudHNUb09iamVjdEFycmF5KGNvbnRleHQsIGVs
ZW1lbnRzKTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxsc0NhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBWZWN0b3I8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gZWxlbWVudHM7CisgICAgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNlbGVjdGVk
Q2VsbHMoZWxlbWVudHMpOworICAgIHJldHVybiBjb252ZXJ0RWxlbWVudHNUb09iamVjdEFycmF5
KGNvbnRleHQsIGVsZW1lbnRzKTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgdWlFbGVtZW50QXJy
YXlBdHRyaWJ1dGVWYWx1ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsK
ICAgICBpZiAoYXJndW1lbnRDb3VudCAhPSAxKQpAQCAtMjA3OCw2ICsyMDg1LDcgQEAgSlNDbGFz
c1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKU0NsYXNzKCkKICAgICAgICAgeyAic2V0
U2VsZWN0ZWRUZXh0UmFuZ2UiLCBzZXRTZWxlY3RlZFRleHRSYW5nZUNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInN0cmluZ0F0dHJpYnV0ZVZhbHVlIiwgc3RyaW5nQXR0cmlidXRlVmFsdWVD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ1aUVsZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVl
IiwgdWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAg
IHsgInNlbGVjdGVkQ2VsbHMiLCBzZWxlY3RlZENlbGxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAicm93SGVhZGVycyIsIHJvd0hlYWRlcnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJjb2x1bW5IZWFkZXJzIiwgY29sdW1uSGVhZGVyc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlIiwgdWlFbGVtZW50QXR0cmlidXRlVmFsdWVDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCmluZGV4IDcyY2VlOTIzYWQ0ZC4uNWY0N2FlYmI0YzQ0IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC0yMDMsNyArMjAzLDggQEAg
cHVibGljOgogICAgIGludCBjb2x1bW5Db3VudCgpOwogICAgIHZvaWQgcm93SGVhZGVycyhWZWN0
b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25zdDsKICAgICB2b2lkIGNv
bHVtbkhlYWRlcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50cykgY29u
c3Q7Ci0gICAgCisgICAgdm9pZCBzZWxlY3RlZENlbGxzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiYgZWxlbWVudHMpIGNvbnN0OworCiAgICAgLy8gVHJlZS9PdXRsaW5lIHNwZWNpZmlj
IGF0dHJpYnV0ZXMKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHNlbGVjdGVkUm93QXRJbmRl
eCh1bnNpZ25lZCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBkaXNjbG9zZWRCeVJvdygp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudElPUy5tbQppbmRleCA0MzMwNGU0MWU5NDEuLmQ3OWFmOTBhNTMxMSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0K
QEAgLTEyNzEsNiArMTI3MSwxMCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hl
YWRlcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JikgY29uc3QKIHsKIH0KIAordm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKFZlY3RvcjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiYpIGNvbnN0Cit7Cit9CisKIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TWFjLm1tCmluZGV4IDgxMzQxMWY5MmIzOC4uYjgxMzZlZmY5MTZjIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAt
NTA5LDYgKzUwOSwxNiBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoTlNTdHJpbmcgKgogICAgIHJldHVybiBudWxs
cHRyOwogfQogCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoVmVj
dG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50cykgY29uc3QKK3sKKyAgICBCRUdJ
Tl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGVd
OworICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAg
ICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4odmFsdWUpOwor
ICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKworCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnJvd0hlYWRlcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50
cykgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmgKaW5kZXggN2I0ODA3Yjg1MmVjLi44ODU0OTAyNTljODMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oCkBAIC0yNDMsNiArMjQzLDcgQEAgcHVibGljOgogICAgIEpTVmFs
dWVSZWYgcm93SGVhZGVycygpIGNvbnN0OwogICAgIEpTVmFsdWVSZWYgY29sdW1uSGVhZGVycygp
IGNvbnN0OwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjdXN0b21Db250ZW50KCkgY29u
c3Q7CisgICAgSlNWYWx1ZVJlZiBzZWxlY3RlZENlbGxzKCkgY29uc3Q7CiAKICAgICAvLyBUcmVl
L091dGxpbmUgc3BlY2lmaWMgYXR0cmlidXRlcwogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBzZWxlY3RlZFJvd0F0SW5kZXgodW5zaWduZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKaW5kZXggZjQ0MGFiYjUwYzBhLi5hNGZlZGUx
MGFlNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmlk
bApAQCAtMTgwLDYgKzE4MCw3IEBACiAgICAgb2JqZWN0IGNvbHVtbkhlYWRlcnMoKTsKICAgICBv
YmplY3Qgcm93SGVhZGVycygpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgY3Vz
dG9tQ29udGVudDsKKyAgICBvYmplY3Qgc2VsZWN0ZWRDZWxscygpOwogCiAgICAgb2JqZWN0IGRl
dGFpbHNFbGVtZW50cygpOwogICAgIG9iamVjdCBlcnJvck1lc3NhZ2VFbGVtZW50cygpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXggOTUyYjZkYzMyMjgw
Li43ODJkMDFhZWQzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbQpAQCAtNDYwLDYgKzQ2MCwxMSBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnJvd0hlYWRlcnMoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVl
UmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAg
IHJldHVybiBudWxscHRyOworfQorCiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNvbHVtbkhlYWRlcnMoKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggYTg1NTA4MDE0MDU1Li4yMzEw
NzU3MjExYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpA
QCAtNDI1LDYgKzQyNSwxNyBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJv
d0hlYWRlcnMoKSBjb25zdAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIH0KIAorSlNWYWx1
ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+PiBlbGVtZW50czsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUo
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZSk7CisgICAgaWYgKFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgIGVsZW1lbnRzID0gbWFrZVZl
Y3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KHZhbHVlLmdldCgpKTsKKyAgICBy
ZXR1cm4gbWFrZUpTQXJyYXkoZWxlbWVudHMpOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMK
K30KKwogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5IZWFkZXJzKCkg
Y29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43MDk1M2My
ZTNlNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9n
cmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUaGlzIHRl
c3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMgd2lsbCByZXR1cm4gYW5kIHBvc3Qgc2VsZWN0ZWQgY2Vs
bHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTOiB0cmVlZ3JpZC5pc0F0
dHJpYnV0ZVN1cHBvcnRlZCgnQVhTZWxlY3RlZENlbGxzJykgPT09IHRydWUKK1BBU1M6IHRyZWVn
cmlkLnNlbGVjdGVkQ2VsbHMoKVswXS5pc0VxdWFsKHNlbGVjdGVkQ2VsbCkgPT09IHRydWUKK1Jl
Y2VpdmVkIG5vdGlmaWNhdGlvbjogQVhTZWxlY3RlZENlbGxzQ2hhbmdlZAorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjEyMmRlMjY0NmVkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0i
Ym9keSI+CisKKzxkaXYgaWQ9ImNvbnRlbnQiPgorPHRhYmxlIHRhYmluZGV4PTAgaWQ9ImdyaWQi
IHJvbGU9ImdyaWQiIGFyaWEtbGFiZWxsZWRieT0iZ3JpZC0xLWhlYWRlciIgYm9yZGVyPSIxIiBh
cmlhLWFjdGl2ZWRlc2NlbmRhbnQ9ImNlbGwxIj4KKzx0aGVhZD4KKyAgICA8dHIgcm9sZT0icm93
IiBhcmlhLWxldmVsPSIxIiBpZD0icm93MSI+CisgICAgICAgIDx0aCBpZD0iZ3JpZC0xLWlzYm5f
aWQiPkJvb2sgTmFtZSAvIElTQk48L3RoPjx0aCBpZD0iZ3JpZC0xLWF1dGhvcl9pZCI+QXV0aG9y
PC90aD48dGggaWQ9ImdyaWQtMS1wcmljZV9pZCI+UHJpY2UgKCQpPC90aD4KKyAgICA8L3RyPgor
PC90aGVhZD4KKzx0Ym9keT4KKyAgICA8dHIgcm9sZT0icm93IiBhcmlhLWxldmVsPSIxIiBhcmlh
LWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtdGl0bGVfaWQi
IGlkPSJ0YWJsZV9lbnRyeSIgcm9sZT0iZ3JpZGNlbGwiIGNvbHNwYW49IjMiICB0YWJpbmRleD0i
MCI+CisgICAgICAgICA8c3Bhbj4rPC9zcGFuPiBBIFF1ZXN0aW9uIG9mIExvdmU8L3RkPiAgICAg
ICAgICAgICAgICAgIAorICAgICA8L3RyPgorICAgICA8dHIgcm9sZT0icm93IiAgYXJpYS1sZXZl
bD0iMiIgYXJpYS1leHBhbmRlZD0idHJ1ZSI+CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0x
LWlzYm5faWQiIHJvbGU9ImdyaWRjZWxsIiBpZD0iY2VsbDEiPjk3OC0zLTQ1My00MDU0MC0wPC90
ZD4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtYXV0aG9yX2lkIiByb2xlPSJncmlkY2Vs
bCIgaWQ9ImNlbGwyIj5Ob3JhIFJvYmVydHM8L3RkPgorICAgICAgICAgPHRkIGhlYWRlcnM9Imdy
aWQtMS1wcmljZV9pZCIgcm9sZT0iZ3JpZGNlbGwiPjxkaXY+OS45OTwvZGl2PjwvdGQ+CisgICAg
IDwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzwvZGl2PgorCis8c2NyaXB0PgorCitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyB0aGF0IHRoZSBBUklBIGdyaWRzIHdpbGwgcmV0dXJuIGFuZCBwb3N0
IHNlbGVjdGVkIGNlbGxzLiIpOworCitpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlCisKKyAgICB2YXIgb3V0cHV0ID0g
IiI7CisgICAgdmFyIHRyZWVncmlkLCBzZWxlY3RlZENlbGxsOworICAgIGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKGZ1bmN0aW9uKGVsZW1lbnQsIG5vdGlm
aWNhdGlvbikgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkQ2VsbHND
aGFuZ2VkIikgeworICAgICAgICAgICAgb3V0cHV0ICs9ICJSZWNlaXZlZCBub3RpZmljYXRpb246
ICR7bm90aWZpY2F0aW9ufVxuIjsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb250ZW50Iikuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOworICAgICAgICAgICAgZGVi
dWcob3V0cHV0KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAg
fSk7CisKKyAgICAvLyBGb2N1cyB0aGUgZ3JpZCBzbyBpdCBjYW4gaGFuZGxlIGFjdGl2ZSBkZXNj
ZW5kYW50cy4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZCIpLmZvY3VzKCk7Cisg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgdHJlZWdyaWQgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyaWQiKTsKKyAgICAgICAgc2Vs
ZWN0ZWRDZWxsID0gdHJlZWdyaWQuY2hpbGRBdEluZGV4KDIpLmNoaWxkQXRJbmRleCgwKTsKKyAg
ICAgICAgb3V0cHV0ICs9IGV4cGVjdCgidHJlZWdyaWQuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FY
U2VsZWN0ZWRDZWxscycpIiwgInRydWUiKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgidHJl
ZWdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoc2VsZWN0ZWRDZWxsKSIsICJ0cnVlIik7
CisKKyAgICAgICAgLy8gTm93IGNoYW5nZSB0aGUgc2VsZWN0ZWQgY2VsbCB0byB0cmlnZ2VyIHRo
ZSBub3RpZmljYXRpb24uCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkIiku
c2V0QXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLCAiY2VsbDIiKTsKKyAgICB9LCAw
KTsKK30KKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465900</attachid>
            <date>2023-04-13 17:02:04 -0700</date>
            <delta_ts>2023-04-13 17:15:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230413170203.patch</filename>
            <type>text/plain</type>
            <size>29725</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSA0MzFiYjAxNjkzYmIwYmY2YmZjYzIxYTMwMTY4Y2I4ODVlOTUyZmRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBUeWxlciBXaWxjb2NrLgoKVG8gc3VwcG9ydCB0aGUgYXJpYS1hY3RpdmVkZXNjZW5kYW50
IGZsb3cgdGhhdCBpcyBiZWluZyBkZXNjcmliZWQsIHdlIG5lZWQgdG8gc3VwcG9ydCBBWFNlbGVj
dGVkQ2VsbHMgZm9yIHRhYmxlcyBhbmQgZ3JpZHMuClRoaXMgYm9pbHMgZG93biB0bzoKICAxKSBF
eHBvc2luZyBhbmQgaW1wbGVtZW50aW5nIEFYU2VsZWN0ZWRDZWxscyBhcyBhbiBhdHRyaWJ1dGUu
CiAgMikgUG9zdGluZyBub3RpZmljYXRpb25zIHdoZW4gaXQgY2hhbmdlcy4KICAzKSBJbXBsZW1l
bnRpbmcgV0tUUiBhbmQgRFJUIG1ldGhvZHMgZm9yIGZldGNoaW5nCiAgNCkgQ2hhbmdpbmcgdGhl
IG9sZGVyLCB1bnVzZWQgQVhTZWxlY3RlZENlbGwgLT4gQVhTZWxlY3RlZENlbGxzLgoKKiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2Vy
LmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblNlbGVjdGVk
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKFdlYkNvcmU6OkFYQ29yZU9i
amVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CihXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CihXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgooLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19FTkRdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOl0pOgotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwICAgICB8ICA0ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgfCAxNSArKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgICAgIHwgMTkgKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggICAg
ICAgICAgICB8IDE1ICsrKysKIC4uLi9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwICAgICAg
ICAgICAgICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bSAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAg
ICAgIHwgIDMgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAgICAgICAg
IHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwg
IDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gICAgIHwgIDIg
Ky0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8ICA3ICst
CiAuLi4vRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgfCAgOCArKysK
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCB8ICAzICstCiAu
Li4vaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gICAgICAgICAgfCAgNCArKwogLi4u
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tICAgICAgICAgIHwgMTAgKysrCiAuLi4v
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAgfCAgMSArCiAuLi4vQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgICAgICAgfCAgMSArCiAuLi4vYXRzcGkv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCAgICAgfCAxMCArKysKIC4uLi9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSAgICAgICAgICB8ICA1ICsrCiAuLi4vbWFjL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRNYWMubW0gICAgICAgICAgfCAxMSArKysKIC4uLi93aW4vQWNjZXNz
aWJpbGl0eVVJRWxlbWVudFdpbi5jcHAgICAgICAgICB8ICA2ICsrCiAuLi4vbWFjL2dyaWQtc2Vs
ZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0ICAgICAgfCAxNiArKysrKwogLi4uL21hYy9ncmlkLXNl
bGVjdGVkLWNlbGxzLmh0bWwgICAgICAgICAgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKwog
MjUgZmlsZXMgY2hhbmdlZCwgMjEwIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0
ZWQtY2VsbHMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCA0YTVkMjk2YWY4ODcuLjllYzdmYzgxMDg1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTUyOSw4
ICs1MjksOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQVhP
YmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24gbm90aWZpYwogICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIHN0
cmVhbSA8PCAiQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsQ2hhbmdl
ZDoKLSAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2VsbENoYW5nZWQiOworICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6Cisg
ICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRTdGF0
ZUNoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBj
Nzk2ZDgwMWY4MTIuLjIzZWI5N2ZjZDdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xNDU1LDcgKzE0NTUsNyBAQCBzdGF0aWMgYm9v
bCBpc0FSSUFUYWJsZUNlbGwoTm9kZSogbm9kZSkKIHZvaWQgQVhPYmplY3RDYWNoZTo6b25TZWxl
Y3RlZENoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICBpZiAoaXNBUklBVGFibGVDZWxsKG5vZGUp
KQotICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCk7
CisgICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7
CiAgICAgZWxzZSBpZiAoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KG5vZGUpKQogICAgICAgICBwb3N0
Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOwogICAgIGVsc2UgaWYg
KGF1dG8qIGF4T2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSkpIHsKQEAgLTE5NzQsNiArMTk3NCwx
NCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKEVs
ZW1lbnQmIGVsZW1lbnQpCiAjZW5kaWYKIAogICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24odGFyZ2V0LCBBWE5vdGlmaWNhdGlvbjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCk7Cisg
ICAgICAgIAorICAgICAgICAvLyBUYWJsZSBjZWxsIGFjdGl2ZSBkZXNjZW5kYW50IGNoYW5nZXMg
c2hvdWxkIHRyaWdnZXIgc2VsZWN0ZWQgY2VsbCBjaGFuZ2VzLgorICAgICAgICBpZiAodGFyZ2V0
LT5pc1RhYmxlKCkgJiYgYWN0aXZlRGVzY2VuZGFudC0+aXNUYWJsZUNlbGwoKSkgeworI2lmIEVO
QUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgICAgICAgICB1cGRhdGVJc29s
YXRlZFRyZWUoKm9iamVjdCwgQVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQp
OworI2VuZGlmCisgICAgICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBB
WFNlbGVjdGVkQ2VsbHNDaGFuZ2VkKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtMzczMyw5
ICszNzQxLDEyIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0
IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpCiAgICAgICAgIGNhc2UgQVhSb3dJ
bmRleENoYW5nZWQ6CiAgICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlm
aWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5hbWU6OkFYUm93SW5kZXgpOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgICAgICBjYXNl
IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CisgICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlUHJv
cGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMp
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhTZWxlY3RlZFN0YXRlQ2hhbmdl
ZDoKICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQcm9wZXJ0eSgqbm90aWZpY2F0aW9uLmZp
cnN0LCBBWFByb3BlcnR5TmFtZTo6SXNTZWxlY3RlZCk7CisgICAgICAgICAgICB0cmVlLT51cGRh
dGVOb2RlUHJvcGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5hbWU6OlNlbGVj
dGVkQ2VsbHMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhTZXRTaXplQ2hh
bmdlZDoKICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQcm9wZXJ0aWVzKCpub3RpZmljYXRp
b24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OlNldFNpemUsIEFYUHJvcGVydHlOYW1lOjpTdXBw
b3J0c1NldFNpemUgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oCmluZGV4IGNhZDdkZTljOTkwYy4uMzdkNTYyNDliZjViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMzI2LDcgKzMyNiw3IEBAIHB1
YmxpYzoKICAgICAgICAgQVhSb3dJbmRleENoYW5nZWQsCiAgICAgICAgIEFYUm93U3BhbkNoYW5n
ZWQsCiAgICAgICAgIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsCi0gICAgICAgIEFYU2VsZWN0
ZWRDZWxsQ2hhbmdlZCwKKyAgICAgICAgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCwKICAgICAgICAg
QVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCwKICAgICAgICAgQVhTZWxlY3RlZFRleHRDaGFuZ2VkLAog
ICAgICAgICBBWFNldFNpemVDaGFuZ2VkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMGJiY2E3Y2VjNmY3Li5kMmIy
MmRjMTM1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMjgzNCw2ICsyODM0LDI1IEBAIEFYQ29yZU9iamVjdCog
QWNjZXNzaWJpbGl0eU9iamVjdDo6Zm9jdXNlZFVJRWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJu
IHBhZ2UgJiYgYXhPYmplY3RDYWNoZSA/IGF4T2JqZWN0Q2FjaGUtPmZvY3VzZWRPYmplY3RGb3JQ
YWdlKHBhZ2UpIDogbnVsbHB0cjsKIH0KIAorQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2VsZWN0ZWRDZWxscygpCit7CisgICAg
aWYgKCFpc1RhYmxlKCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBBWENvcmVPYmplY3Q6
OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzOworICAgIGZvciAoUmVm
UHRyIGNlbGwgOiBjZWxscygpKSB7CisgICAgICAgIGlmIChjZWxsLT5pc1NlbGVjdGVkKCkpCisg
ICAgICAgICAgICBzZWxlY3RlZENlbGxzLmFwcGVuZChjZWxsKTsKKyAgICB9CisKKyAgICBpZiAo
YXV0byogYWN0aXZlRGVzY2VuZGFudCA9IHRoaXMtPmFjdGl2ZURlc2NlbmRhbnQoKSkgeworICAg
ICAgICBpZiAoIXNlbGVjdGVkQ2VsbHMuY29udGFpbnMoYWN0aXZlRGVzY2VuZGFudCkpCisgICAg
ICAgICAgICBzZWxlY3RlZENlbGxzLmFwcGVuZChhY3RpdmVEZXNjZW5kYW50KTsKKyAgICB9CisK
KyAgICByZXR1cm4gc2VsZWN0ZWRDZWxsczsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpzZXRGb2N1c2VkKGJvb2wgZm9jdXMpCiB7CiAgICAgaWYgKGZvY3VzKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGZh
NjIzMmYyMDVhYi4uOTFjNzE0YjBhZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTU1LDYgKzE1NSw3IEBAIHB1Ymxp
YzoKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29sdW1uSGVhZGVycygpIG92ZXJy
aWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvcigpOyB9CiAgICAgQWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnMoKSBvdmVycmlkZSB7IHJldHVybiBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciB2aXNpYmxlUm93cygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvcigpOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2Vs
bHMoKSBvdmVycmlkZTsKICAgICBBWENvcmVPYmplY3QqIGhlYWRlckNvbnRhaW5lcigpIG92ZXJy
aWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBpbnQgYXhDb2x1bW5Db3VudCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICAgICBpbnQgYXhSb3dDb3VudCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggYjE4NzViZGM0ZWRiLi5i
OWY0NmJkYzg0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC04OTcsNiArODk3LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNvbHVtbkhl
YWRlcnMoKSA9IDA7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igcm93
SGVhZGVycygpID0gMDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciB2
aXNpYmxlUm93cygpID0gMDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBzZWxlY3RlZENlbGxzKCkgPSAwOwogICAgIC8vIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgY29u
dGFpbnMsIGFzIGNoaWxkcmVuLCBhbGwgdGhlIG9iamVjdHMgdGhhdCBhY3QgYXMgaGVhZGVycy4K
ICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogaGVhZGVyQ29udGFpbmVyKCkgPSAwOwogICAgIHZp
cnR1YWwgaW50IGF4Q29sdW1uQ291bnQoKSBjb25zdCA9IDA7CkBAIC0xMjMxLDYgKzEyMzIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRGV0YWNoZWRGcm9tUGFyZW50KCkgPSAwOwog
CiAgICAgYm9vbCBjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0OworICAgIGJvb2wgY2Fu
SGF2ZVNlbGVjdGVkQ2VsbHMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGls
ZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldFNlbGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCB2aXNpYmxlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yJikgPSAwOwpAQCAtMTU2MCw2ICsxNTYyLDE5IEBAIGlubGluZSBib29sIEFYQ29y
ZU9iamVjdDo6c3VwcG9ydHNMaXZlUmVnaW9uKGJvb2wgZXhjbHVkZUlmT2ZmKSBjb25zdAogICAg
IHJldHVybiBleGNsdWRlSWZPZmYgPyBsaXZlUmVnaW9uU3RhdHVzSXNFbmFibGVkKEF0b21TdHJp
bmcgeyBsaXZlUmVnaW9uU3RhdHVzVmFsdWUgfSkgOiAhbGl2ZVJlZ2lvblN0YXR1c1ZhbHVlLmlz
RW1wdHkoKTsKIH0KIAoraW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRD
ZWxscygpIGNvbnN0Cit7CisgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgeworICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkdyaWQ6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFibGU6
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZToKKyAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpUcmVlR3JpZDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogaW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0
OjpjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChyb2xlVmFs
dWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9B
WE9iamVjdENhY2hlQXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNw
aS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCmluZGV4IDAyYmUyZjQ0OTNmYi4uNTFjODRkMTVhMGRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FYT2JqZWN0
Q2FjaGVBdHNwaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9B
WE9iamVjdENhY2hlQXRzcGkuY3BwCkBAIC03Niw3ICs3Niw2IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogY29yZU9iamVjdCwgQVhO
b3RpZmljCiAgICAgICAgIGlmIChjb3JlT2JqZWN0LT5pc0NoZWNrYm94T3JSYWRpbygpIHx8IGNv
cmVPYmplY3QtPmlzU3dpdGNoKCkpCiAgICAgICAgICAgICB3cmFwcGVyLT5zdGF0ZUNoYW5nZWQo
ImNoZWNrZWQiLCBjb3JlT2JqZWN0LT5pc0NoZWNrZWQoKSk7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgogICAgIGNhc2UgQVhTZWxlY3RlZFN0YXRlQ2hh
bmdlZDoKICAgICAgICAgd3JhcHBlci0+c3RhdGVDaGFuZ2VkKCJzZWxlY3RlZCIsIGNvcmVPYmpl
Y3QtPmlzU2VsZWN0ZWQoKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtODcsNiArODYsNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIGNv
cmVPYmplY3QsIEFYTm90aWZpYwogICAgICAgICAgICAgd3JhcHBlci0+c3RhdGVDaGFuZ2VkKCJz
ZWxlY3RlZCIsIGNvcmVPYmplY3QtPmlzU2VsZWN0ZWQoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KKyAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CiAgICAgY2FzZSBBWFNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkOgogICAgICAgICB3cmFwcGVyLT5zZWxlY3Rpb25DaGFuZ2VkKCk7CiAg
ICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9z
L0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggNTg3ZDdjYmVkYjgzLi5jNDhmZTMxNjM0M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNo
ZUlPUy5tbQpAQCAtNTcsNyArNTcsNyBAQCBBU0NJSUxpdGVyYWwgQVhPYmplY3RDYWNoZTo6bm90
aWZpY2F0aW9uUGxhdGZvcm1OYW1lKEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbgogICAgIGNh
c2UgQVhQYWdlU2Nyb2xsZWQ6CiAgICAgICAgIG5hbWUgPSAiQVhQYWdlU2Nyb2xsZWQiX3M7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgIGNhc2Ug
QVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoKICAgICAgICAgbmFtZSA9ICJBWFNlbGVjdGVkQ2VsbHND
aGFuZ2VkIl9zOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFYU2VsZWN0ZWRUZXh0Q2hhbmdl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggNDQxMTJmNDQzNTcxLi5hMGNmNjhk
ZjE5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0yMzksNiArMjM5LDkgQEAg
dm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyhjb25zdCBSZWY8QWNj
ZXNzaWJpbGl0eU9iamVjdD4mIGF4T2IKICAgICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2hpbGRyZW4sIHNlbGVjdGVkQ2hpbGRyZW4pOwogICAg
IH0KIAorICAgIGlmIChvYmplY3QuY2FuSGF2ZVNlbGVjdGVkQ2VsbHMoKSkKKyAgICAgICAgc2V0
T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMsIG9iamVj
dC5zZWxlY3RlZENlbGxzKCkpOworCiAgICAgaWYgKG9iamVjdC5pc0ltYWdlKCkpCiAgICAgICAg
IHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpFbWJlZGRlZEltYWdlRGVzY3JpcHRpb24sIG9i
amVjdC5lbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHkoKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaAppbmRleCBhMjc0NDYwOGE2YjQuLjAzOWYxNmM0ZTE5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtMjkzLDYgKzI5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgY2hpbGRyZW4p
IG92ZXJyaWRlIHsgZmlsbENoaWxkcmVuVmVjdG9yRm9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OlNlbGVjdGVkQ2hpbGRyZW4sIGNoaWxkcmVuKTsgfQogICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGls
ZHJlbihjb25zdCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBvdmVycmlkZTsKICAgICB2
b2lkIHZpc2libGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxkcmVu
KSBvdmVycmlkZSB7IGZpbGxDaGlsZHJlblZlY3RvckZvclByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpWaXNpYmxlQ2hpbGRyZW4sIGNoaWxkcmVuKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciBzZWxlY3RlZENlbGxzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5vYmplY3Rz
Rm9ySURzKHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpTZWxlY3Rl
ZENlbGxzKSk7IH0KICAgICBBdG9tU3RyaW5nIHRhZ05hbWUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBjb25zdCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxkcmVuKGJvb2wgdXBkYXRl
Q2hpbGRyZW5JZk5lZWRlZCA9IHRydWUpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlQ2hpbGRy
ZW5JZk5lY2Vzc2FyeSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggZGMzNGNi
MzlhN2NlLi4xMmJmNDMxNGY2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMTk5LDYgKzE5
OSw3IEBAIGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgUm93SGVh
ZGVycywKICAgICBSb3dJbmRleCwKICAgICBSb3dJbmRleFJhbmdlLAorICAgIFNlbGVjdGVkQ2Vs
bHMsCiAgICAgU2VsZWN0ZWRDaGlsZHJlbiwKICAgICBTZXNzaW9uSUQsCiAgICAgU2V0U2l6ZSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tCmluZGV4IGU5ZjUxYjhlZjY5My4uNmNmYjE5ZWIzYmViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTM2
Niw3ICszNjYsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBWENvcmVPYmplY3QqIG9iamVjdCwgQVhOb3RpZmljYXRpbwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBtYWNOb3RpZmljYXRpb24gPSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVu
Q2hhbmdlZE5vdGlmaWNhdGlvbjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBWFNlbGVjdGVk
Q2VsbENoYW5nZWQ6CisgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkOgogICAgICAgICBt
YWNOb3RpZmljYXRpb24gPSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQ2hhbmdlZE5vdGlm
aWNhdGlvbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWFNlbGVjdGVkVGV4dENoYW5nZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IGRjM2ZlN2U4YmFj
Yi4uYmFmOTA3NzRjNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQpAQCAtMTA4MSw2ICsxMDgxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNf
RU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJvd0NvdW50
QXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5
QVJJQUNvbHVtbkNvdW50QXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5QVJJQVJvd0NvdW50QXR0cmlidXRlXTsKKyAgICAgICAgW3RlbXBBcnJh
eSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV07CiAgICAg
ICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZCB0YWJsZVJvd0F0dHJzID0gW10gewpAQCAtMTgzNiwxMCArMTgzNywxMiBAQCBBTExPV19ERVBS
RUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgfQogCiAgICAgICAgIC8vIEhUTUwg
dGFibGVzIGRvbid0IHN1cHBvcnQgdGhlc2UgYXR0cmlidXRlcy4KLSAgICAgICAgaWYgKFthdHRy
aWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENvbHVtbnNB
dHRyaWJ1dGVdCi0gICAgICAgICAgICB8fCBbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV0pCisgICAgICAgIGlmIChbYXR0
cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDb2x1bW5z
QXR0cmlidXRlXSkKICAgICAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICAgICAgaWYgKFthdHRy
aWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQXR0
cmlidXRlXSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlTlNBcnJheShiYWNraW5nT2JqZWN0LT5z
ZWxlY3RlZENlbGxzKCkpOworCiAgICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9T
dHJpbmc6TlNBY2Nlc3NpYmlsaXR5Q29sdW1uSGVhZGVyVUlFbGVtZW50c0F0dHJpYnV0ZV0pCiAg
ICAgICAgICAgICByZXR1cm4gbWFrZU5TQXJyYXkoYmFja2luZ09iamVjdC0+Y29sdW1uSGVhZGVy
cygpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmNwcAppbmRleCBiOWU3OTI1MWNiZjkuLmZjYzRiYmM5N2E1OSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTYxOCw2ICs2MTgsMTMg
QEAgc3RhdGljIEpTVmFsdWVSZWYgcm93SGVhZGVyc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwKICAgICByZXR1cm4gY29udmVydEVsZW1lbnRzVG9P
YmplY3RBcnJheShjb250ZXh0LCBlbGVtZW50cyk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNl
bGVjdGVkQ2VsbHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAg
VmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGVsZW1lbnRzOworICAgIHRvQVhFbGVtZW50
KHRoaXNPYmplY3QpLT5zZWxlY3RlZENlbGxzKGVsZW1lbnRzKTsKKyAgICByZXR1cm4gY29udmVy
dEVsZW1lbnRzVG9PYmplY3RBcnJheShjb250ZXh0LCBlbGVtZW50cyk7Cit9CisKIHN0YXRpYyBK
U1ZhbHVlUmVmIHVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWVDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gMSkKQEAgLTIw
NzgsNiArMjA4NSw3IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlND
bGFzcygpCiAgICAgICAgIHsgInNldFNlbGVjdGVkVGV4dFJhbmdlIiwgc2V0U2VsZWN0ZWRUZXh0
UmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzdHJpbmdBdHRyaWJ1dGVWYWx1ZSIs
IHN0cmluZ0F0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidWlFbGVt
ZW50QXJyYXlBdHRyaWJ1dGVWYWx1ZSIsIHVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWVDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzZWxlY3RlZENlbGxzIiwgc2VsZWN0ZWRDZWxsc0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJvd0hlYWRlcnMiLCByb3dIZWFkZXJzQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAiY29sdW1uSGVhZGVycyIsIGNvbHVtbkhlYWRlcnNDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZSIsIHVpRWxl
bWVudEF0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCA3MmNlZTkyM2FkNGQuLjVmNDdhZWJi
NGM0NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aApAQCAtMjAzLDcgKzIwMyw4IEBAIHB1YmxpYzoKICAgICBpbnQgY29sdW1uQ291bnQoKTsKICAg
ICB2b2lkIHJvd0hlYWRlcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50
cykgY29uc3Q7CiAgICAgdm9pZCBjb2x1bW5IZWFkZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiYgZWxlbWVudHMpIGNvbnN0OwotICAgIAorICAgIHZvaWQgc2VsZWN0ZWRDZWxscyhW
ZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25zdDsKKwogICAgIC8v
IFRyZWUvT3V0bGluZSBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAgICAgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCBzZWxlY3RlZFJvd0F0SW5kZXgodW5zaWduZWQpOwogICAgIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQgZGlzY2xvc2VkQnlSb3coKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXggNDMzMDRlNDFlOTQxLi5kNzlh
ZjkwYTUzMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50SU9TLm1tCkBAIC0xMjcxLDYgKzEyNzEsMTAgQEAgdm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFkZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiYpIGNvbnN0CiB7CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRD
ZWxscyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mKSBjb25zdAoreworfQorCiB1bnNp
Z25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25z
dAogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCA4MTM0MTFmOTJiMzguLmI4MTM2ZWZm
OTE2YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0KQEAgLTUwOSw2ICs1MDksMTYgQEAgSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKE5TU3Ry
aW5nICoKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZWxlY3RlZENlbGxzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVu
dHMpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgaWQgdmFsdWUg
PSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZENlbGxzQXR0cmlidXRlXTsKKyAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05T
QXJyYXkgY2xhc3NdXSkKKyAgICAgICAgZWxlbWVudHMgPSBtYWtlVmVjdG9yPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+KHZhbHVlKTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9CisKKwog
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFkZXJzKFZlY3RvcjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENF
UFRJT05TCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IDdiNDgwN2I4NTJlYy4uODg1
NDkwMjU5YzgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMjQzLDYgKzI0Myw3
IEBAIHB1YmxpYzoKICAgICBKU1ZhbHVlUmVmIHJvd0hlYWRlcnMoKSBjb25zdDsKICAgICBKU1Zh
bHVlUmVmIGNvbHVtbkhlYWRlcnMoKSBjb25zdDsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gY3VzdG9tQ29udGVudCgpIGNvbnN0OworICAgIEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxscygp
IGNvbnN0OwogCiAgICAgLy8gVHJlZS9PdXRsaW5lIHNwZWNpZmljIGF0dHJpYnV0ZXMKICAgICBS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gc2VsZWN0ZWRSb3dBdEluZGV4KHVuc2lnbmVk
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4
IGY0NDBhYmI1MGMwYS4uYTRmZWRlMTBhZTRjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKQEAgLTE4MCw2ICsxODAsNyBAQAogICAgIG9iamVjdCBj
b2x1bW5IZWFkZXJzKCk7CiAgICAgb2JqZWN0IHJvd0hlYWRlcnMoKTsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGN1c3RvbUNvbnRlbnQ7CisgICAgb2JqZWN0IHNlbGVjdGVkQ2Vs
bHMoKTsKIAogICAgIG9iamVjdCBkZXRhaWxzRWxlbWVudHMoKTsKICAgICBvYmplY3QgZXJyb3JN
ZXNzYWdlRWxlbWVudHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEF0c3BpLmNwcAppbmRleCA0NTg0YzBmYzI3OTIuLmIwYmViODJmZjU4ZCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdHNwaS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50QXRzcGkuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcApAQCAtNTI1LDYg
KzUyNSwxNiBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRl
cnMoKSBjb25zdAogICAgIHJldHVybiBtYWtlSlNBcnJheSh7IH0pOwogfQogCitKU1ZhbHVlUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIGlm
IChtX2VsZW1lbnQtPmludGVyZmFjZXMoKS5jb250YWlucyhXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0QXRzcGk6OkludGVyZmFjZTo6VGFibGUpKSB7CisgICAgICAgIG1fZWxlbWVudC0+dXBk
YXRlQmFja2luZ1N0b3JlKCk7CisgICAgICAgIHJldHVybiBtYWtlSlNBcnJheShlbGVtZW50c1Zl
Y3RvcihtX2VsZW1lbnQtPnNlbGVjdGVkQ2VsbHMoKSkpOworICAgIH0KKworICAgIHJldHVybiBt
YWtlSlNBcnJheSh7IH0pOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBlbGVtZW50c0ZvclJlbGF0
aW9uKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSogZWxlbWVudCwgV2ViQ29yZTo6
QXRzcGk6OlJlbGF0aW9uIHJlbGF0aW9uKQogewogICAgIGVsZW1lbnQtPnVwZGF0ZUJhY2tpbmdT
dG9yZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXgg
OTUyYjZkYzMyMjgwLi43ODJkMDFhZWQzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudElPUy5tbQpAQCAtNDYwLDYgKzQ2MCwxMSBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwog
fQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBj
b25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggYTg1NTA4
MDE0MDU1Li4yMzEwNzU3MjExYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbQpAQCAtNDI1LDYgKzQyNSwxNyBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMK
IH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKCkg
Y29uc3QKK3sKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PiBlbGVtZW50czsKKyAgICBhdXRvIHZhbHVlID0gYXR0
cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZSk7CisgICAg
aWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgIGVsZW1l
bnRzID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KHZhbHVlLmdl
dCgpKTsKKyAgICByZXR1cm4gbWFrZUpTQXJyYXkoZWxlbWVudHMpOworICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKK30KKwogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1
bW5IZWFkZXJzKCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRXaW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAKaW5kZXggZmYwNzkwZmZhNzdh
Li5hZDQ5ZWI1NDQ0OWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRX
aW4uY3BwCkBAIC0yMzIsNiArMjMyLDEyIEBAIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0pT
VmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscygpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVu
dEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
Z3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI2Yjk3NzdmOWJjZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdHMgdGhhdCB0aGUgQVJJQSBncmlkcyB3
aWxsIHJldHVybiBhbmQgcG9zdCBzZWxlY3RlZCBjZWxscy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1M6IGdyaWQuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYU2VsZWN0ZWRD
ZWxscycpID09PSB0cnVlCitQQVNTOiBncmlkLnNlbGVjdGVkQ2VsbHMoKVswXS5pc0VxdWFsKHNl
bGVjdGVkQ2VsbCkgPT09IHRydWUKK1JlY2VpdmVkIG5vdGlmaWNhdGlvbjogQVhTZWxlY3RlZENl
bGxzQ2hhbmdlZAorUEFTUzogZ3JpZC5zZWxlY3RlZENlbGxzKClbMF0uaXNFcXVhbChhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2NlbGwxJykpID09PSB0cnVl
CitQQVNTOiBncmlkLnNlbGVjdGVkQ2VsbHMoKVsxXS5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnY2VsbDInKSkgPT09IHRydWUKK1JlY2VpdmVk
IG5vdGlmaWNhdGlvbjogQVhTZWxlY3RlZENlbGxzQ2hhbmdlZAorCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzc3MmE0MGM1NjljCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5o
dG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9hY2Nl
c3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+
CisKKzxkaXYgaWQ9ImNvbnRlbnQiPgorPHRhYmxlIHRhYmluZGV4PTAgaWQ9ImdyaWQiIHJvbGU9
ImdyaWQiIGFyaWEtbGFiZWxsZWRieT0iZ3JpZC0xLWhlYWRlciIgYm9yZGVyPSIxIiBhcmlhLWFj
dGl2ZWRlc2NlbmRhbnQ9ImNlbGwxIj4KKzx0aGVhZD4KKyAgICA8dHIgY2E9InRyIiByb2xlPSJy
b3ciIGFyaWEtbGV2ZWw9IjEiIGlkPSJyb3cxIj4KKyAgICAgICAgPHRoIGlkPSJncmlkLTEtaXNi
bl9pZCI+Qm9vayBOYW1lIC8gSVNCTjwvdGg+PHRoIGlkPSJncmlkLTEtYXV0aG9yX2lkIj5BdXRo
b3I8L3RoPjx0aCBpZD0iZ3JpZC0xLXByaWNlX2lkIiBjbGFzcz0ibnVtZXJpYyIgPlByaWNlICgk
KTwvdGg+CisgICAgPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+CisgICAgPHRyIGNhPSJ0byIgcm9s
ZT0icm93IiBhcmlhLWxldmVsPSIxIiBhcmlhLWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAgICAgIDx0
ZCBoZWFkZXJzPSJncmlkLTEtdGl0bGVfaWQiIGlkPSJ0YWJsZV9lbnRyeSIgcm9sZT0iZ3JpZGNl
bGwiIGNvbHNwYW49IjMiICB0YWJpbmRleD0iMCI+CisgICAgICAgICA8c3BhbiBjbGFzcz0iZXhw
YW5kIj4rPC9zcGFuPiBBIFF1ZXN0aW9uIG9mIExvdmU8L3RkPiAgICAgICAgICAgICAgICAgIAor
ICAgICA8L3RyPgorICAgICA8dHIgY2E9InRpIiByb2xlPSJyb3ciICBhcmlhLWxldmVsPSIyIiBh
cmlhLWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtaXNibl9p
ZCIgcm9sZT0iZ3JpZGNlbGwiIGlkPSJjZWxsMSI+OTc4LTMtNDUzLTQwNTQwLTA8L3RkPgorICAg
ICAgICAgPHRkIGhlYWRlcnM9ImdyaWQtMS1hdXRob3JfaWQiIHJvbGU9ImdyaWRjZWxsIiBpZD0i
Y2VsbDIiPk5vcmEgUm9iZXJ0czwvdGQ+CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLXBy
aWNlX2lkIiBjbGFzcz0ibnVtZXJpYyIgcm9sZT0iZ3JpZGNlbGwiIGNhPSJ0ZSI+PGRpdj45Ljk5
PC9kaXY+PC90ZD4KKyAgICAgPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+CisKKzxz
Y3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMgd2ls
bCByZXR1cm4gYW5kIHBvc3Qgc2VsZWN0ZWQgY2VsbHMuIik7CisKK2lmICh3aW5kb3cuYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWUKKwor
ICAgIHZhciBvdXRwdXQgPSAiIjsKKyAgICB2YXIgZ3JpZCwgc2VsZWN0ZWRDZWxsbDsKKyAgICB2
YXIgbm90aWZpY2F0aW9uQ291bnQgPSAwOworICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFk
ZE5vdGlmaWNhdGlvbkxpc3RlbmVyKGZ1bmN0aW9uKGVsZW1lbnQsIG5vdGlmaWNhdGlvbikgewor
ICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIikgewor
ICAgICAgICAgICAgb3V0cHV0ICs9ICJSZWNlaXZlZCBub3RpZmljYXRpb246ICIgKyBub3RpZmlj
YXRpb24gKyAiXG4iOworICAgICAgICAgICAgbm90aWZpY2F0aW9uQ291bnQrKzsKKyAgICAgICAg
ICAgIGlmIChub3RpZmljYXRpb25Db3VudCA9PSAyKSB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7
CisgICAgICAgICAgICAgICAgZGVidWcob3V0cHV0KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgLy8gRm9j
dXMgdGhlIGdyaWQgc28gaXQgY2FuIGhhbmRsZSBhY3RpdmUgZGVzY2VuZGFudHMuCisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWQiKS5mb2N1cygpOworICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgIGdyaWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoImdyaWQiKTsKKyAgICAgICAgc2VsZWN0ZWRDZWxsID0gZ3JpZC5jaGls
ZEF0SW5kZXgoMikuY2hpbGRBdEluZGV4KDApOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJn
cmlkLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMnKSIsICJ0cnVlIik7Cisg
ICAgICAgIG91dHB1dCArPSBleHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwo
c2VsZWN0ZWRDZWxsKSIsICJ0cnVlIik7CisKKyAgICAgICAgLy8gTm93IGNoYW5nZSB0aGUgc2Vs
ZWN0ZWQgY2VsbCB0byB0cmlnZ2VyIHRoZSBub3RpZmljYXRpb24uCisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJncmlkIikuc2V0QXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRh
bnQiLCAiY2VsbDIiKTsKKworICAgICAgICAvLyBOb3cgY2hhbmdlIHdpdGggYXJpYS1zZWxlY3Rl
ZCB0byBlbnN1cmUgd2UgYWxzbyBnZXQgdGhlIHJpZ2h0IG5vdGlmaWNhdGlvbi4KKyAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwxIikuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVj
dGVkIiwgInRydWUiKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5zZWxlY3RlZENl
bGxzKClbMF0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2NlbGwxJykpIiwgInRydWUiKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3Jp
ZC5zZWxlY3RlZENlbGxzKClbMV0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nl
c3NpYmxlRWxlbWVudEJ5SWQoJ2NlbGwyJykpIiwgInRydWUiKTsKKyAgICB9LCAwKTsKK30KKzwv
c2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="493745"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465901</attachid>
            <date>2023-04-13 17:12:06 -0700</date>
            <delta_ts>2023-04-14 10:24:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230413171205.patch</filename>
            <type>text/plain</type>
            <size>29477</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSA4NjdmNDY1MWM4ZWNiYmE1ZDljOTNhYTQ0OGY0M2NmN2RhNDEzMmJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBUeWxlciBXaWxjb2NrLgoKVG8gc3VwcG9ydCB0aGUgYXJpYS1hY3RpdmVkZXNjZW5kYW50
IGZsb3cgdGhhdCBpcyBiZWluZyBkZXNjcmliZWQsIHdlIG5lZWQgdG8gc3VwcG9ydCBBWFNlbGVj
dGVkQ2VsbHMgZm9yIHRhYmxlcyBhbmQgZ3JpZHMuClRoaXMgYm9pbHMgZG93biB0bzoKICAxKSBF
eHBvc2luZyBhbmQgaW1wbGVtZW50aW5nIEFYU2VsZWN0ZWRDZWxscyBhcyBhbiBhdHRyaWJ1dGUu
CiAgMikgUG9zdGluZyBub3RpZmljYXRpb25zIHdoZW4gaXQgY2hhbmdlcy4KICAzKSBJbXBsZW1l
bnRpbmcgV0tUUiBhbmQgRFJUIG1ldGhvZHMgZm9yIGZldGNoaW5nCiAgNCkgQ2hhbmdpbmcgdGhl
IG9sZGVyLCB1bnVzZWQgQVhTZWxlY3RlZENlbGwgLT4gQVhTZWxlY3RlZENlbGxzLgoKKiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2Vy
LmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblNlbGVjdGVk
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKFdlYkNvcmU6OkFYQ29yZU9i
amVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CihXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CihXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgooLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19FTkRdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOl0pOgotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwICAgICB8ICA0ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgfCAxNCArKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgICAgIHwgMTkgKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggICAg
ICAgICAgICB8IDE1ICsrKysKIC4uLi9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwICAgICAg
ICAgICAgICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bSAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAg
ICAgIHwgIDMgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAgICAgICAg
IHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwg
IDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gICAgIHwgIDIg
Ky0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8ICA3ICst
CiAuLi4vRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgfCAgOCArKysK
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCB8ICAzICstCiAu
Li4vaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gICAgICAgICAgfCAgNCArKwogLi4u
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tICAgICAgICAgIHwgMTAgKysrCiAuLi4v
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAgfCAgMSArCiAuLi4vQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgICAgICAgfCAgMSArCiAuLi4vYXRzcGkv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCAgICAgfCAxMCArKysKIC4uLi9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSAgICAgICAgICB8ICA1ICsrCiAuLi4vbWFjL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRNYWMubW0gICAgICAgICAgfCAxMSArKysKIC4uLi93aW4vQWNjZXNz
aWJpbGl0eVVJRWxlbWVudFdpbi5jcHAgICAgICAgICB8ICA2ICsrCiAuLi4vbWFjL2dyaWQtc2Vs
ZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0ICAgICAgfCAxNiArKysrKwogLi4uL21hYy9ncmlkLXNl
bGVjdGVkLWNlbGxzLmh0bWwgICAgICAgICAgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKwog
MjUgZmlsZXMgY2hhbmdlZCwgMjA5IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0
ZWQtY2VsbHMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCA0YTVkMjk2YWY4ODcuLjllYzdmYzgxMDg1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTUyOSw4
ICs1MjksOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQVhP
YmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24gbm90aWZpYwogICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIHN0
cmVhbSA8PCAiQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsQ2hhbmdl
ZDoKLSAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2VsbENoYW5nZWQiOworICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6Cisg
ICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRTdGF0
ZUNoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBj
Nzk2ZDgwMWY4MTIuLmRhNTE2M2U4ZWVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xNDU1LDcgKzE0NTUsNyBAQCBzdGF0aWMgYm9v
bCBpc0FSSUFUYWJsZUNlbGwoTm9kZSogbm9kZSkKIHZvaWQgQVhPYmplY3RDYWNoZTo6b25TZWxl
Y3RlZENoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICBpZiAoaXNBUklBVGFibGVDZWxsKG5vZGUp
KQotICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCk7
CisgICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7
CiAgICAgZWxzZSBpZiAoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KG5vZGUpKQogICAgICAgICBwb3N0
Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOwogICAgIGVsc2UgaWYg
KGF1dG8qIGF4T2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSkpIHsKQEAgLTE5NzQsNiArMTk3NCwx
NCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKEVs
ZW1lbnQmIGVsZW1lbnQpCiAjZW5kaWYKIAogICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24odGFyZ2V0LCBBWE5vdGlmaWNhdGlvbjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCk7Cisg
ICAgICAgIAorICAgICAgICAvLyBUYWJsZSBjZWxsIGFjdGl2ZSBkZXNjZW5kYW50IGNoYW5nZXMg
c2hvdWxkIHRyaWdnZXIgc2VsZWN0ZWQgY2VsbCBjaGFuZ2VzLgorICAgICAgICBpZiAodGFyZ2V0
LT5pc1RhYmxlKCkgJiYgYWN0aXZlRGVzY2VuZGFudC0+aXNUYWJsZUNlbGwoKSkgeworI2lmIEVO
QUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgICAgICAgICB1cGRhdGVJc29s
YXRlZFRyZWUoKm9iamVjdCwgQVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQp
OworI2VuZGlmCisgICAgICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBB
WFNlbGVjdGVkQ2VsbHNDaGFuZ2VkKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtMzczMyw3
ICszNzQxLDkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3Qg
VmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGkKICAgICAgICAgY2FzZSBBWFJvd0lu
ZGV4Q2hhbmdlZDoKICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQcm9wZXJ0eSgqbm90aWZp
Y2F0aW9uLmZpcnN0LCBBWFByb3BlcnR5TmFtZTo6QVhSb3dJbmRleCk7CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbENoYW5nZWQ6CisgICAgICAgIGNhc2Ug
QVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoKKyAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQcm9w
ZXJ0eSgqbm90aWZpY2F0aW9uLmZpcnN0LCBBWFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRDZWxscyk7
CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFNlbGVjdGVkU3RhdGVDaGFuZ2Vk
OgogICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZVByb3BlcnR5KCpub3RpZmljYXRpb24uZmly
c3QsIEFYUHJvcGVydHlOYW1lOjpJc1NlbGVjdGVkKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBjYWQ3ZGU5
Yzk5MGMuLjM3ZDU2MjQ5YmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmgKQEAgLTMyNiw3ICszMjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFYUm93
SW5kZXhDaGFuZ2VkLAogICAgICAgICBBWFJvd1NwYW5DaGFuZ2VkLAogICAgICAgICBBWFNlbGVj
dGVkQ2hpbGRyZW5DaGFuZ2VkLAotICAgICAgICBBWFNlbGVjdGVkQ2VsbENoYW5nZWQsCisgICAg
ICAgIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQsCiAgICAgICAgIEFYU2VsZWN0ZWRTdGF0ZUNoYW5n
ZWQsCiAgICAgICAgIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwKICAgICAgICAgQVhTZXRTaXplQ2hh
bmdlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCmluZGV4IDBiYmNhN2NlYzZmNy4uZDJiMjJkYzEzNTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
QEAgLTI4MzQsNiArMjgzNCwyNSBAQCBBWENvcmVPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmZvY3VzZWRVSUVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBwYWdlICYmIGF4T2JqZWN0Q2Fj
aGUgPyBheE9iamVjdENhY2hlLT5mb2N1c2VkT2JqZWN0Rm9yUGFnZShwYWdlKSA6IG51bGxwdHI7
CiB9CiAKK0FYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnNlbGVjdGVkQ2VsbHMoKQoreworICAgIGlmICghaXNUYWJsZSgpKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3Igc2VsZWN0ZWRDZWxsczsKKyAgICBmb3IgKFJlZlB0ciBjZWxsIDogY2VsbHMoKSkg
eworICAgICAgICBpZiAoY2VsbC0+aXNTZWxlY3RlZCgpKQorICAgICAgICAgICAgc2VsZWN0ZWRD
ZWxscy5hcHBlbmQoY2VsbCk7CisgICAgfQorCisgICAgaWYgKGF1dG8qIGFjdGl2ZURlc2NlbmRh
bnQgPSB0aGlzLT5hY3RpdmVEZXNjZW5kYW50KCkpIHsKKyAgICAgICAgaWYgKCFzZWxlY3RlZENl
bGxzLmNvbnRhaW5zKGFjdGl2ZURlc2NlbmRhbnQpKQorICAgICAgICAgICAgc2VsZWN0ZWRDZWxs
cy5hcHBlbmQoYWN0aXZlRGVzY2VuZGFudCk7CisgICAgfQorCisgICAgcmV0dXJuIHNlbGVjdGVk
Q2VsbHM7Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2V0Rm9jdXNlZChib29sIGZv
Y3VzKQogewogICAgIGlmIChmb2N1cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBmYTYyMzJmMjA1YWIuLjkxYzcxNGIw
YWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKQEAgLTE1NSw2ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIGNvbHVtbkhlYWRlcnMoKSBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciByb3dIZWFkZXJzKCkgb3ZlcnJpZGUgeyByZXR1cm4gQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yKCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgdmlzaWJsZVJvd3MoKSBv
dmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQorICAgIEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzKCkgb3ZlcnJpZGU7CiAgICAg
QVhDb3JlT2JqZWN0KiBoZWFkZXJDb250YWluZXIoKSBvdmVycmlkZSB7IHJldHVybiBudWxscHRy
OyB9CiAgICAgaW50IGF4Q29sdW1uQ291bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9
CiAgICAgaW50IGF4Um93Q291bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdEludGVyZmFjZS5oCmluZGV4IGIxODc1YmRjNGVkYi4uYjlmNDZiZGM4NDA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3RJbnRlcmZhY2UuaApAQCAtODk3LDYgKzg5Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb2x1bW5IZWFkZXJzKCkgPSAwOwogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnMoKSA9IDA7CiAgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgdmlzaWJsZVJvd3MoKSA9IDA7Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpID0g
MDsKICAgICAvLyBSZXR1cm5zIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zLCBhcyBjaGlsZHJlbiwg
YWxsIHRoZSBvYmplY3RzIHRoYXQgYWN0IGFzIGhlYWRlcnMuCiAgICAgdmlydHVhbCBBWENvcmVP
YmplY3QqIGhlYWRlckNvbnRhaW5lcigpID0gMDsKICAgICB2aXJ0dWFsIGludCBheENvbHVtbkNv
dW50KCkgY29uc3QgPSAwOwpAQCAtMTIzMSw2ICsxMjMyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0RldGFjaGVkRnJvbVBhcmVudCgpID0gMDsKIAogICAgIGJvb2wgY2FuSGF2ZVNl
bGVjdGVkQ2hpbGRyZW4oKSBjb25zdDsKKyAgICBib29sIGNhbkhhdmVTZWxlY3RlZENlbGxzKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENoaWxkcmVu
KGNvbnN0IEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgdmlzaWJsZUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpID0gMDsKQEAg
LTE1NjAsNiArMTU2MiwxOSBAQCBpbmxpbmUgYm9vbCBBWENvcmVPYmplY3Q6OnN1cHBvcnRzTGl2
ZVJlZ2lvbihib29sIGV4Y2x1ZGVJZk9mZikgY29uc3QKICAgICByZXR1cm4gZXhjbHVkZUlmT2Zm
ID8gbGl2ZVJlZ2lvblN0YXR1c0lzRW5hYmxlZChBdG9tU3RyaW5nIHsgbGl2ZVJlZ2lvblN0YXR1
c1ZhbHVlIH0pIDogIWxpdmVSZWdpb25TdGF0dXNWYWx1ZS5pc0VtcHR5KCk7CiB9CiAKK2lubGlu
ZSBib29sIEFYQ29yZU9iamVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAg
IHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlk
OgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlOgorICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlRyZWU6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQ6Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9Cit9CisKIGlubGluZSBib29sIEFYQ29yZU9iamVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2hp
bGRyZW4oKSBjb25zdAogewogICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3Bp
LmNwcAppbmRleCAwMmJlMmY0NDkzZmIuLjUxYzg0ZDE1YTBkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNw
cApAQCAtNzYsNyArNzYsNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBWENvcmVPYmplY3QqIGNvcmVPYmplY3QsIEFYTm90aWZpYwogICAgICAgICBpZiAo
Y29yZU9iamVjdC0+aXNDaGVja2JveE9yUmFkaW8oKSB8fCBjb3JlT2JqZWN0LT5pc1N3aXRjaCgp
KQogICAgICAgICAgICAgd3JhcHBlci0+c3RhdGVDaGFuZ2VkKCJjaGVja2VkIiwgY29yZU9iamVj
dC0+aXNDaGVja2VkKCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEFYU2VsZWN0ZWRDZWxs
Q2hhbmdlZDoKICAgICBjYXNlIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQ6CiAgICAgICAgIHdyYXBw
ZXItPnN0YXRlQ2hhbmdlZCgic2VsZWN0ZWQiLCBjb3JlT2JqZWN0LT5pc1NlbGVjdGVkKCkpOwog
ICAgICAgICBicmVhazsKQEAgLTg3LDYgKzg2LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBjb3JlT2JqZWN0LCBBWE5vdGlmaWMK
ICAgICAgICAgICAgIHdyYXBwZXItPnN0YXRlQ2hhbmdlZCgic2VsZWN0ZWQiLCBjb3JlT2JqZWN0
LT5pc1NlbGVjdGVkKCkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBBWFNlbGVj
dGVkQ2VsbHNDaGFuZ2VkOgogICAgIGNhc2UgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKICAg
ICAgICAgd3JhcHBlci0+c2VsZWN0aW9uQ2hhbmdlZCgpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CmluZGV4IDU4N2Q3Y2JlZGI4My4uYzQ4ZmUzMTYzNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTU3LDcgKzU3
LDcgQEAgQVNDSUlMaXRlcmFsIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFt
ZShBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24KICAgICBjYXNlIEFYUGFnZVNjcm9sbGVkOgog
ICAgICAgICBuYW1lID0gIkFYUGFnZVNjcm9sbGVkIl9zOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKKyAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsc0NoYW5n
ZWQ6CiAgICAgICAgIG5hbWUgPSAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCJfczsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBBWFNlbGVjdGVkVGV4dENoYW5nZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwCmluZGV4IDQ0MTEyZjQ0MzU3MS4uYTBjZjY4ZGYxOWEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcApAQCAtMjM5LDYgKzIzOSw5IEBAIHZvaWQgQVhJc29sYXRlZE9iamVj
dDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoY29uc3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBh
eE9iCiAgICAgICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxl
Y3RlZENoaWxkcmVuLCBzZWxlY3RlZENoaWxkcmVuKTsKICAgICB9CiAKKyAgICBpZiAob2JqZWN0
LmNhbkhhdmVTZWxlY3RlZENlbGxzKCkpCisgICAgICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENlbGxzLCBvYmplY3Quc2VsZWN0ZWRDZWxscygpKTsK
KwogICAgIGlmIChvYmplY3QuaXNJbWFnZSgpKQogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uLCBvYmplY3QuZW1iZWRkZWRJbWFnZURl
c2NyaXB0aW9uKCkuaXNvbGF0ZWRDb3B5KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5k
ZXggYTI3NDQ2MDhhNmI0Li4wMzlmMTZjNGUxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgK
QEAgLTI5Myw2ICsyOTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxkcmVuKSBvdmVycmlkZSB7IGZpbGxDaGls
ZHJlblZlY3RvckZvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENoaWxkcmVuLCBj
aGlsZHJlbik7IH0KICAgICB2b2lkIHNldFNlbGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB2aXNpYmxlQ2hpbGRyZW4o
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJlbikgb3ZlcnJpZGUgeyBmaWxsQ2hp
bGRyZW5WZWN0b3JGb3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VmlzaWJsZUNoaWxkcmVuLCBj
aGlsZHJlbik7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxs
cygpIG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1
dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRDZWxscykpOyB9CiAgICAgQXRv
bVN0cmluZyB0YWdOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJlbihib29sIHVwZGF0ZUNoaWxkcmVuSWZOZWVkZWQgPSB0
cnVlKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IGRjMzRjYjM5YTdjZS4uMTJiZjQzMTRmNmQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTE5OSw2ICsxOTksNyBAQCBlbnVtIGNsYXNzIEFY
UHJvcGVydHlOYW1lIDogdWludDE2X3QgewogICAgIFJvd0hlYWRlcnMsCiAgICAgUm93SW5kZXgs
CiAgICAgUm93SW5kZXhSYW5nZSwKKyAgICBTZWxlY3RlZENlbGxzLAogICAgIFNlbGVjdGVkQ2hp
bGRyZW4sCiAgICAgU2Vzc2lvbklELAogICAgIFNldFNpemUsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBlOWY1MWI4
ZWY2OTMuLjZjZmIxOWViM2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmpl
Y3QsIEFYTm90aWZpY2F0aW8KICAgICAgICAgZWxzZQogICAgICAgICAgICAgbWFjTm90aWZpY2F0
aW9uID0gTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWROb3RpZmljYXRpb247
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgIGNh
c2UgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0NoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQVhTZWxlY3RlZFRleHRDaGFuZ2VkOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBkYzNmZTdlOGJhY2IuLmJhZjkwNzc0YzRhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTEwODEsNiArMTA4MSw3
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSb3dDb3VudEF0dHJpYnV0ZV07CiAgICAgICAg
IFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFDb2x1bW5Db3VudEF0dHJp
YnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFS
b3dDb3VudEF0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNz
aWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5
OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgdGFibGVSb3dBdHRycyA9IFtd
IHsKQEAgLTE4MzYsMTAgKzE4MzcsMTIgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElP
TlNfRU5ECiAgICAgICAgIH0KIAogICAgICAgICAvLyBIVE1MIHRhYmxlcyBkb24ndCBzdXBwb3J0
IHRoZXNlIGF0dHJpYnV0ZXMuCi0gICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9T
dHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDb2x1bW5zQXR0cmlidXRlXQotICAgICAgICAg
ICAgfHwgW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkQ2VsbHNBdHRyaWJ1dGVdKQorICAgICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRv
U3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ29sdW1uc0F0dHJpYnV0ZV0pCiAgICAgICAg
ICAgICByZXR1cm4gbmlsOwogCisgICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9T
dHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV0pCisgICAgICAgICAg
ICByZXR1cm4gbWFrZU5TQXJyYXkoYmFja2luZ09iamVjdC0+c2VsZWN0ZWRDZWxscygpKTsKKwog
ICAgICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0
eUNvbHVtbkhlYWRlclVJRWxlbWVudHNBdHRyaWJ1dGVdKQogICAgICAgICAgICAgcmV0dXJuIG1h
a2VOU0FycmF5KGJhY2tpbmdPYmplY3QtPmNvbHVtbkhlYWRlcnMoKSk7CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggYjllNzkyNTFj
YmY5Li5mY2M0YmJjOTdhNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuY3BwCkBAIC02MTgsNiArNjE4LDEzIEBAIHN0YXRpYyBKU1ZhbHVlUmVm
IHJvd0hlYWRlcnNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sCiAgICAgcmV0dXJuIGNvbnZlcnRFbGVtZW50c1RvT2JqZWN0QXJyYXkoY29udGV4dCwg
ZWxlbWVudHMpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZWxlY3RlZENlbGxzQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBlbGVtZW50czsKKyAgICB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+c2VsZWN0
ZWRDZWxscyhlbGVtZW50cyk7CisgICAgcmV0dXJuIGNvbnZlcnRFbGVtZW50c1RvT2JqZWN0QXJy
YXkoY29udGV4dCwgZWxlbWVudHMpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiB1aUVsZW1lbnRB
cnJheUF0dHJpYnV0ZVZhbHVlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3Vu
dCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQog
ewogICAgIGlmIChhcmd1bWVudENvdW50ICE9IDEpCkBAIC0yMDc4LDYgKzIwODUsNyBAQCBKU0Ns
YXNzUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQogICAgICAgICB7ICJz
ZXRTZWxlY3RlZFRleHRSYW5nZSIsIHNldFNlbGVjdGVkVGV4dFJhbmdlQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic3RyaW5nQXR0cmlidXRlVmFsdWUiLCBzdHJpbmdBdHRyaWJ1dGVWYWx1
ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFs
dWUiLCB1aUVsZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAg
ICAgeyAic2VsZWN0ZWRDZWxscyIsIHNlbGVjdGVkQ2VsbHNDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJyb3dIZWFkZXJzIiwgcm93SGVhZGVyc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgImNvbHVtbkhlYWRlcnMiLCBjb2x1bW5IZWFkZXJzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAidWlFbGVtZW50QXR0cmlidXRlVmFsdWUiLCB1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZUNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgKaW5kZXggNzJjZWU5MjNhZDRkLi41ZjQ3YWViYjRjNDQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTIwMyw3ICsyMDMsOCBA
QCBwdWJsaWM6CiAgICAgaW50IGNvbHVtbkNvdW50KCk7CiAgICAgdm9pZCByb3dIZWFkZXJzKFZl
Y3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0OwogICAgIHZvaWQg
Y29sdW1uSGVhZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBj
b25zdDsKLSAgICAKKyAgICB2b2lkIHNlbGVjdGVkQ2VsbHMoVmVjdG9yPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+JiBlbGVtZW50cykgY29uc3Q7CisKICAgICAvLyBUcmVlL091dGxpbmUgc3BlY2lm
aWMgYXR0cmlidXRlcwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgc2VsZWN0ZWRSb3dBdElu
ZGV4KHVuc2lnbmVkKTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGRpc2Nsb3NlZEJ5Um93
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudElPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SU9TLm1tCmluZGV4IDQzMzA0ZTQxZTk0MS4uZDc5YWY5MGE1MzExIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5t
bQpAQCAtMTI3MSw2ICsxMjcxLDEwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93
SGVhZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mKSBjb25zdAogewogfQogCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoVmVjdG9yPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+JikgY29uc3QKK3sKK30KKwogdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0KaW5kZXggODEzNDExZjkyYjM4Li5iODEzNmVmZjkxNmMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBA
IC01MDksNiArNTA5LDE2IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShOU1N0cmluZyAqCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscyhW
ZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25zdAoreworICAgIEJF
R0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0
ZV07CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAg
ICAgIGVsZW1lbnRzID0gbWFrZVZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pih2YWx1ZSk7
CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQorCisKIHZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cm93SGVhZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1l
bnRzKSBjb25zdAogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaAppbmRleCA3YjQ4MDdiODUyZWMuLjg4NTQ5MDI1OWM4MyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTI0Myw2ICsyNDMsNyBAQCBwdWJsaWM6CiAgICAgSlNW
YWx1ZVJlZiByb3dIZWFkZXJzKCkgY29uc3Q7CiAgICAgSlNWYWx1ZVJlZiBjb2x1bW5IZWFkZXJz
KCkgY29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGN1c3RvbUNvbnRlbnQoKSBj
b25zdDsKKyAgICBKU1ZhbHVlUmVmIHNlbGVjdGVkQ2VsbHMoKSBjb25zdDsKIAogICAgIC8vIFRy
ZWUvT3V0bGluZSBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+IHNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAppbmRleCBmNDQwYWJiNTBjMGEuLmE0ZmVk
ZTEwYWU0YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aWRsCkBAIC0xODAsNiArMTgwLDcgQEAKICAgICBvYmplY3QgY29sdW1uSGVhZGVycygpOwogICAg
IG9iamVjdCByb3dIZWFkZXJzKCk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBj
dXN0b21Db250ZW50OworICAgIG9iamVjdCBzZWxlY3RlZENlbGxzKCk7CiAKICAgICBvYmplY3Qg
ZGV0YWlsc0VsZW1lbnRzKCk7CiAgICAgb2JqZWN0IGVycm9yTWVzc2FnZUVsZW1lbnRzKCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0c3BpL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL2F0c3BpL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAKaW5kZXgg
NDU4NGMwZmMyNzkyLi5iMGJlYjgyZmY1OGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0c3BpL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAKQEAgLTUyNSw2ICs1MjUsMTYgQEAgSlNWYWx1ZVJl
ZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5IZWFkZXJzKCkgY29uc3QKICAgICByZXR1
cm4gbWFrZUpTQXJyYXkoeyB9KTsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICBpZiAobV9lbGVtZW50LT5pbnRlcmZh
Y2VzKCkuY29udGFpbnMoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpJbnRlcmZh
Y2U6OlRhYmxlKSkgeworICAgICAgICBtX2VsZW1lbnQtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwor
ICAgICAgICByZXR1cm4gbWFrZUpTQXJyYXkoZWxlbWVudHNWZWN0b3IobV9lbGVtZW50LT5zZWxl
Y3RlZENlbGxzKCkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbWFrZUpTQXJyYXkoeyB9KTsKK30K
Kwogc3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudHNGb3JSZWxhdGlvbihXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0QXRzcGkqIGVsZW1lbnQsIFdlYkNvcmU6OkF0c3BpOjpSZWxhdGlvbiByZWxh
dGlvbikKIHsKICAgICBlbGVtZW50LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lv
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCmluZGV4IDk1MmI2ZGMzMjI4MC4uNzgyZDAx
YWVkMzE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KQEAg
LTQ2MCw2ICs0NjAsMTEgQEAgSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dI
ZWFkZXJzKCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKwogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5I
ZWFkZXJzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGE4NTUwODAxNDA1NS4uMjMxMDc1NzIxMWIx
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTQyNSw2
ICs0MjUsMTcgQEAgSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFkZXJz
KCkgY29uc3QKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiB9CiAKK0pTVmFsdWVSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscygpIGNvbnN0Cit7CisgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCisgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Pj4gZWxlbWVudHM7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNz
aWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGUpOworICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZD
bGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZS5nZXQoKSk7CisgICAgcmV0dXJuIG1h
a2VKU0FycmF5KGVsZW1lbnRzKTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9CisKIEpT
VmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0CiB7
CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRXaW4uY3BwCmluZGV4IGZmMDc5MGZmYTc3YS4uYWQ0OWViNTQ0NDliIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50V2luLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcApAQCAtMjMyLDYgKzIz
MiwxMiBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMo
KSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0
cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3Rl
ZC1jZWxscy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi4yNmI5Nzc3ZjliY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2
IEBACitUaGlzIHRlc3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMgd2lsbCByZXR1cm4gYW5kIHBvc3Qg
c2VsZWN0ZWQgY2VsbHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTOiBn
cmlkLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMnKSA9PT0gdHJ1ZQorUEFT
UzogZ3JpZC5zZWxlY3RlZENlbGxzKClbMF0uaXNFcXVhbChzZWxlY3RlZENlbGwpID09PSB0cnVl
CitSZWNlaXZlZCBub3RpZmljYXRpb246IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQKK1BBU1M6IGdy
aWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNj
ZXNzaWJsZUVsZW1lbnRCeUlkKCdjZWxsMScpKSA9PT0gdHJ1ZQorUEFTUzogZ3JpZC5zZWxlY3Rl
ZENlbGxzKClbMV0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxl
bWVudEJ5SWQoJ2NlbGwyJykpID09PSB0cnVlCitSZWNlaXZlZCBub3RpZmljYXRpb246IEFYU2Vs
ZWN0ZWRDZWxsc0NoYW5nZWQKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjc3NzJhNDBjNTY5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbApAQCAtMCwwICsxLDcyIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IGlkPSJjb250ZW50
Ij4KKzx0YWJsZSB0YWJpbmRleD0wIGlkPSJncmlkIiByb2xlPSJncmlkIiBhcmlhLWxhYmVsbGVk
Ynk9ImdyaWQtMS1oZWFkZXIiIGJvcmRlcj0iMSIgYXJpYS1hY3RpdmVkZXNjZW5kYW50PSJjZWxs
MSI+Cis8dGhlYWQ+CisgICAgPHRyIGNhPSJ0ciIgcm9sZT0icm93IiBhcmlhLWxldmVsPSIxIiBp
ZD0icm93MSI+CisgICAgICAgIDx0aCBpZD0iZ3JpZC0xLWlzYm5faWQiPkJvb2sgTmFtZSAvIElT
Qk48L3RoPjx0aCBpZD0iZ3JpZC0xLWF1dGhvcl9pZCI+QXV0aG9yPC90aD48dGggaWQ9ImdyaWQt
MS1wcmljZV9pZCIgY2xhc3M9Im51bWVyaWMiID5QcmljZSAoJCk8L3RoPgorICAgIDwvdHI+Cis8
L3RoZWFkPgorPHRib2R5PgorICAgIDx0ciBjYT0idG8iIHJvbGU9InJvdyIgYXJpYS1sZXZlbD0i
MSIgYXJpYS1leHBhbmRlZD0idHJ1ZSI+CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLXRp
dGxlX2lkIiBpZD0idGFibGVfZW50cnkiIHJvbGU9ImdyaWRjZWxsIiBjb2xzcGFuPSIzIiAgdGFi
aW5kZXg9IjAiPgorICAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZCI+Kzwvc3Bhbj4gQSBRdWVz
dGlvbiBvZiBMb3ZlPC90ZD4gICAgICAgICAgICAgICAgICAKKyAgICAgPC90cj4KKyAgICAgPHRy
IGNhPSJ0aSIgcm9sZT0icm93IiAgYXJpYS1sZXZlbD0iMiIgYXJpYS1leHBhbmRlZD0idHJ1ZSI+
CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLWlzYm5faWQiIHJvbGU9ImdyaWRjZWxsIiBp
ZD0iY2VsbDEiPjk3OC0zLTQ1My00MDU0MC0wPC90ZD4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJn
cmlkLTEtYXV0aG9yX2lkIiByb2xlPSJncmlkY2VsbCIgaWQ9ImNlbGwyIj5Ob3JhIFJvYmVydHM8
L3RkPgorICAgICAgICAgPHRkIGhlYWRlcnM9ImdyaWQtMS1wcmljZV9pZCIgY2xhc3M9Im51bWVy
aWMiIHJvbGU9ImdyaWRjZWxsIiBjYT0idGUiPjxkaXY+OS45OTwvZGl2PjwvdGQ+CisgICAgIDwv
dHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzwvZGl2PgorCis8c2NyaXB0PgorCitkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0cyB0aGF0IHRoZSBBUklBIGdyaWRzIHdpbGwgcmV0dXJuIGFuZCBwb3N0IHNl
bGVjdGVkIGNlbGxzLiIpOworCitpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7
CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlCisKKyAgICB2YXIgb3V0cHV0ID0gIiI7
CisgICAgdmFyIGdyaWQsIHNlbGVjdGVkQ2VsbGw7CisgICAgdmFyIG5vdGlmaWNhdGlvbkNvdW50
ID0gMDsKKyAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5l
cihmdW5jdGlvbihlbGVtZW50LCBub3RpZmljYXRpb24pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNh
dGlvbiA9PSAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgIG91dHB1dCAr
PSAiUmVjZWl2ZWQgbm90aWZpY2F0aW9uOiAiICsgbm90aWZpY2F0aW9uICsgIlxuIjsKKyAgICAg
ICAgICAgIG5vdGlmaWNhdGlvbkNvdW50Kys7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9u
Q291bnQgPT0gMikgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b250ZW50Iikuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOworICAgICAgICAgICAgICAgIGRl
YnVnKG91dHB1dCk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIC8vIEZvY3VzIHRoZSBncmlkIHNvIGl0IGNh
biBoYW5kbGUgYWN0aXZlIGRlc2NlbmRhbnRzLgorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJncmlkIikuZm9jdXMoKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBn
cmlkID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJncmlk
Iik7CisgICAgICAgIHNlbGVjdGVkQ2VsbCA9IGdyaWQuY2hpbGRBdEluZGV4KDIpLmNoaWxkQXRJ
bmRleCgwKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5pc0F0dHJpYnV0ZVN1cHBv
cnRlZCgnQVhTZWxlY3RlZENlbGxzJykiLCAidHJ1ZSIpOworICAgICAgICBvdXRwdXQgKz0gZXhw
ZWN0KCJncmlkLnNlbGVjdGVkQ2VsbHMoKVswXS5pc0VxdWFsKHNlbGVjdGVkQ2VsbCkiLCAidHJ1
ZSIpOworCisgICAgICAgIC8vIE5vdyBjaGFuZ2UgdGhlIHNlbGVjdGVkIGNlbGwgdG8gdHJpZ2dl
ciB0aGUgbm90aWZpY2F0aW9uLgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3Jp
ZCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50IiwgImNlbGwyIik7CisKKyAg
ICAgICAgLy8gTm93IGNoYW5nZSB3aXRoIGFyaWEtc2VsZWN0ZWQgdG8gZW5zdXJlIHdlIGFsc28g
Z2V0IHRoZSByaWdodCBub3RpZmljYXRpb24uCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjZWxsMSIpLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsICJ0cnVlIik7CisgICAg
ICAgIG91dHB1dCArPSBleHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdjZWxsMScpKSIsICJ0
cnVlIik7CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxscygpWzFd
LmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdj
ZWxsMicpKSIsICJ0cnVlIik7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKworPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465918</attachid>
            <date>2023-04-14 10:24:47 -0700</date>
            <delta_ts>2023-04-14 12:29:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230414102446.patch</filename>
            <type>text/plain</type>
            <size>30271</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSBmMGIwMGE1NmM5NmI2Nzc3MDZhMDkyMTY2ZmM0NmU0YTFkNWQ1OTk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBUeWxlciBXaWxjb2NrLgoKVG8gc3VwcG9ydCB0aGUgYXJpYS1hY3RpdmVkZXNjZW5kYW50
IGZsb3cgdGhhdCBpcyBiZWluZyBkZXNjcmliZWQsIHdlIG5lZWQgdG8gc3VwcG9ydCBBWFNlbGVj
dGVkQ2VsbHMgZm9yIHRhYmxlcyBhbmQgZ3JpZHMuClRoaXMgYm9pbHMgZG93biB0bzoKICAxKSBF
eHBvc2luZyBhbmQgaW1wbGVtZW50aW5nIEFYU2VsZWN0ZWRDZWxscyBhcyBhbiBhdHRyaWJ1dGUu
CiAgMikgUG9zdGluZyBub3RpZmljYXRpb25zIHdoZW4gaXQgY2hhbmdlcy4KICAzKSBJbXBsZW1l
bnRpbmcgV0tUUiBhbmQgRFJUIG1ldGhvZHMgZm9yIGZldGNoaW5nCiAgNCkgQ2hhbmdpbmcgdGhl
IG9sZGVyLCB1bnVzZWQgQVhTZWxlY3RlZENlbGwgLT4gQVhTZWxlY3RlZENlbGxzLgoKKiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2Vy
LmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblNlbGVjdGVk
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKFdlYkNvcmU6OkFYQ29yZU9i
amVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CihXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CihXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgooLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19FTkRdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOl0pOgotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwICAgICB8ICA0ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgfCAxNCArKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgICAgIHwgMTkgKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggICAg
ICAgICAgICB8IDE1ICsrKysKIC4uLi9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwICAgICAg
ICAgICAgICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bSAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAg
ICAgIHwgIDMgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAgICAgICAg
IHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwg
IDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gICAgIHwgIDIg
Ky0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8ICA3ICst
CiAuLi4vRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgfCAgOCArKysK
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCB8ICAzICstCiAu
Li4vaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gICAgICAgICAgfCAgNCArKwogLi4u
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tICAgICAgICAgIHwgMTAgKysrCiAuLi4v
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAgfCAgMSArCiAuLi4vQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgICAgICAgfCAgMSArCiAuLi4vYXRzcGkv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCAgICAgfCAxMCArKysKIC4uLi9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSAgICAgICAgICB8ICA1ICsrCiAuLi4vbWFjL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRNYWMubW0gICAgICAgICAgfCAxMSArKysKIC4uLi93aW4vQWNjZXNz
aWJpbGl0eVVJRWxlbWVudFdpbi5jcHAgICAgICAgICB8ICA2ICsrCiAuLi4vbWFjL2dyaWQtc2Vs
ZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0ICAgICAgfCAxNiArKysrKwogLi4uL21hYy9ncmlkLXNl
bGVjdGVkLWNlbGxzLmh0bWwgICAgICAgICAgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKwog
Li4uL3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgIHwgIDMgKwogMjYg
ZmlsZXMgY2hhbmdlZCwgMjEyIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQt
Y2VsbHMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCA0YTVkMjk2YWY4ODcuLjllYzdmYzgxMDg1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTUyOSw4ICs1
MjksOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQVhPYmpl
Y3RDYWNoZTo6QVhOb3RpZmljYXRpb24gbm90aWZpYwogICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6
QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIHN0cmVh
bSA8PCAiQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoK
LSAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2VsbENoYW5nZWQiOworICAgIGNhc2UgQVhP
YmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CisgICAg
ICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRTdGF0ZUNo
YW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBjNzk2
ZDgwMWY4MTIuLmRhNTE2M2U4ZWVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xNDU1LDcgKzE0NTUsNyBAQCBzdGF0aWMgYm9vbCBp
c0FSSUFUYWJsZUNlbGwoTm9kZSogbm9kZSkKIHZvaWQgQVhPYmplY3RDYWNoZTo6b25TZWxlY3Rl
ZENoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICBpZiAoaXNBUklBVGFibGVDZWxsKG5vZGUpKQot
ICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCk7Cisg
ICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7CiAg
ICAgZWxzZSBpZiAoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KG5vZGUpKQogICAgICAgICBwb3N0Tm90
aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOwogICAgIGVsc2UgaWYgKGF1
dG8qIGF4T2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSkpIHsKQEAgLTE5NzQsNiArMTk3NCwxNCBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKEVsZW1l
bnQmIGVsZW1lbnQpCiAjZW5kaWYKIAogICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
dGFyZ2V0LCBBWE5vdGlmaWNhdGlvbjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCk7CisgICAg
ICAgIAorICAgICAgICAvLyBUYWJsZSBjZWxsIGFjdGl2ZSBkZXNjZW5kYW50IGNoYW5nZXMgc2hv
dWxkIHRyaWdnZXIgc2VsZWN0ZWQgY2VsbCBjaGFuZ2VzLgorICAgICAgICBpZiAodGFyZ2V0LT5p
c1RhYmxlKCkgJiYgYWN0aXZlRGVzY2VuZGFudC0+aXNUYWJsZUNlbGwoKSkgeworI2lmIEVOQUJM
RShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgICAgICAgICB1cGRhdGVJc29sYXRl
ZFRyZWUoKm9iamVjdCwgQVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQpOwor
I2VuZGlmCisgICAgICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFNl
bGVjdGVkQ2VsbHNDaGFuZ2VkKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtMzczMyw3ICsz
NzQxLDkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVj
dG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGkKICAgICAgICAgY2FzZSBBWFJvd0luZGV4
Q2hhbmdlZDoKICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQcm9wZXJ0eSgqbm90aWZpY2F0
aW9uLmZpcnN0LCBBWFByb3BlcnR5TmFtZTo6QVhSb3dJbmRleCk7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbENoYW5nZWQ6CisgICAgICAgIGNhc2UgQVhT
ZWxlY3RlZENlbGxzQ2hhbmdlZDoKKyAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQcm9wZXJ0
eSgqbm90aWZpY2F0aW9uLmZpcnN0LCBBWFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRDZWxscyk7Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkOgog
ICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZVByb3BlcnR5KCpub3RpZmljYXRpb24uZmlyc3Qs
IEFYUHJvcGVydHlOYW1lOjpJc1NlbGVjdGVkKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBjYWQ3ZGU5Yzk5
MGMuLjM3ZDU2MjQ5YmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKQEAgLTMyNiw3ICszMjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFYUm93SW5k
ZXhDaGFuZ2VkLAogICAgICAgICBBWFJvd1NwYW5DaGFuZ2VkLAogICAgICAgICBBWFNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkLAotICAgICAgICBBWFNlbGVjdGVkQ2VsbENoYW5nZWQsCisgICAgICAg
IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQsCiAgICAgICAgIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQs
CiAgICAgICAgIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwKICAgICAgICAgQVhTZXRTaXplQ2hhbmdl
ZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCmluZGV4IDBiYmNhN2NlYzZmNy4uZDJiMjJkYzEzNTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAg
LTI4MzQsNiArMjgzNCwyNSBAQCBBWENvcmVPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmZv
Y3VzZWRVSUVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBwYWdlICYmIGF4T2JqZWN0Q2FjaGUg
PyBheE9iamVjdENhY2hlLT5mb2N1c2VkT2JqZWN0Rm9yUGFnZShwYWdlKSA6IG51bGxwdHI7CiB9
CiAKK0FYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnNlbGVjdGVkQ2VsbHMoKQoreworICAgIGlmICghaXNUYWJsZSgpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3Igc2VsZWN0ZWRDZWxsczsKKyAgICBmb3IgKFJlZlB0ciBjZWxsIDogY2VsbHMoKSkgewor
ICAgICAgICBpZiAoY2VsbC0+aXNTZWxlY3RlZCgpKQorICAgICAgICAgICAgc2VsZWN0ZWRDZWxs
cy5hcHBlbmQoY2VsbCk7CisgICAgfQorCisgICAgaWYgKGF1dG8qIGFjdGl2ZURlc2NlbmRhbnQg
PSB0aGlzLT5hY3RpdmVEZXNjZW5kYW50KCkpIHsKKyAgICAgICAgaWYgKCFzZWxlY3RlZENlbGxz
LmNvbnRhaW5zKGFjdGl2ZURlc2NlbmRhbnQpKQorICAgICAgICAgICAgc2VsZWN0ZWRDZWxscy5h
cHBlbmQoYWN0aXZlRGVzY2VuZGFudCk7CisgICAgfQorCisgICAgcmV0dXJuIHNlbGVjdGVkQ2Vs
bHM7Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2V0Rm9jdXNlZChib29sIGZvY3Vz
KQogewogICAgIGlmIChmb2N1cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBmYTYyMzJmMjA1YWIuLjkxYzcxNGIwYWY4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgKQEAgLTE1NSw2ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yIGNvbHVtbkhlYWRlcnMoKSBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBy
b3dIZWFkZXJzKCkgb3ZlcnJpZGUgeyByZXR1cm4gQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9y
KCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgdmlzaWJsZVJvd3MoKSBvdmVy
cmlkZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQorICAgIEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzKCkgb3ZlcnJpZGU7CiAgICAgQVhD
b3JlT2JqZWN0KiBoZWFkZXJDb250YWluZXIoKSBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgaW50IGF4Q29sdW1uQ291bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAg
ICAgaW50IGF4Um93Q291bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oCmluZGV4IGIxODc1YmRjNGVkYi4uYjlmNDZiZGM4NDA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3RJbnRlcmZhY2UuaApAQCAtODk3LDYgKzg5Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb2x1bW5IZWFkZXJzKCkgPSAwOwogICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnMoKSA9IDA7CiAgICAgdmly
dHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgdmlzaWJsZVJvd3MoKSA9IDA7CisgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpID0gMDsK
ICAgICAvLyBSZXR1cm5zIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zLCBhcyBjaGlsZHJlbiwgYWxs
IHRoZSBvYmplY3RzIHRoYXQgYWN0IGFzIGhlYWRlcnMuCiAgICAgdmlydHVhbCBBWENvcmVPYmpl
Y3QqIGhlYWRlckNvbnRhaW5lcigpID0gMDsKICAgICB2aXJ0dWFsIGludCBheENvbHVtbkNvdW50
KCkgY29uc3QgPSAwOwpAQCAtMTIzMSw2ICsxMjMyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBpc0RldGFjaGVkRnJvbVBhcmVudCgpID0gMDsKIAogICAgIGJvb2wgY2FuSGF2ZVNlbGVj
dGVkQ2hpbGRyZW4oKSBjb25zdDsKKyAgICBib29sIGNhbkhhdmVTZWxlY3RlZENlbGxzKCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENoaWxkcmVuKGNv
bnN0IEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
dmlzaWJsZUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpID0gMDsKQEAgLTE1
NjAsNiArMTU2MiwxOSBAQCBpbmxpbmUgYm9vbCBBWENvcmVPYmplY3Q6OnN1cHBvcnRzTGl2ZVJl
Z2lvbihib29sIGV4Y2x1ZGVJZk9mZikgY29uc3QKICAgICByZXR1cm4gZXhjbHVkZUlmT2ZmID8g
bGl2ZVJlZ2lvblN0YXR1c0lzRW5hYmxlZChBdG9tU3RyaW5nIHsgbGl2ZVJlZ2lvblN0YXR1c1Zh
bHVlIH0pIDogIWxpdmVSZWdpb25TdGF0dXNWYWx1ZS5pc0VtcHR5KCk7CiB9CiAKK2lubGluZSBi
b29sIEFYQ29yZU9iamVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIHN3
aXRjaCAocm9sZVZhbHVlKCkpIHsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlkOgor
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRyZWU6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQ6CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9Cit9CisKIGlubGluZSBib29sIEFYQ29yZU9iamVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2hpbGRy
ZW4oKSBjb25zdAogewogICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNw
cAppbmRleCAwMmJlMmY0NDkzZmIuLjUxYzg0ZDE1YTBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcApA
QCAtNzYsNyArNzYsNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBWENvcmVPYmplY3QqIGNvcmVPYmplY3QsIEFYTm90aWZpYwogICAgICAgICBpZiAoY29y
ZU9iamVjdC0+aXNDaGVja2JveE9yUmFkaW8oKSB8fCBjb3JlT2JqZWN0LT5pc1N3aXRjaCgpKQog
ICAgICAgICAgICAgd3JhcHBlci0+c3RhdGVDaGFuZ2VkKCJjaGVja2VkIiwgY29yZU9iamVjdC0+
aXNDaGVja2VkKCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsQ2hh
bmdlZDoKICAgICBjYXNlIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQ6CiAgICAgICAgIHdyYXBwZXIt
PnN0YXRlQ2hhbmdlZCgic2VsZWN0ZWQiLCBjb3JlT2JqZWN0LT5pc1NlbGVjdGVkKCkpOwogICAg
ICAgICBicmVhazsKQEAgLTg3LDYgKzg2LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBjb3JlT2JqZWN0LCBBWE5vdGlmaWMKICAg
ICAgICAgICAgIHdyYXBwZXItPnN0YXRlQ2hhbmdlZCgic2VsZWN0ZWQiLCBjb3JlT2JqZWN0LT5p
c1NlbGVjdGVkKCkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBBWFNlbGVjdGVk
Q2VsbHNDaGFuZ2VkOgogICAgIGNhc2UgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKICAgICAg
ICAgd3JhcHBlci0+c2VsZWN0aW9uQ2hhbmdlZCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmlu
ZGV4IDU4N2Q3Y2JlZGI4My4uYzQ4ZmUzMTYzNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTU3LDcgKzU3LDcg
QEAgQVNDSUlMaXRlcmFsIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZShB
WE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24KICAgICBjYXNlIEFYUGFnZVNjcm9sbGVkOgogICAg
ICAgICBuYW1lID0gIkFYUGFnZVNjcm9sbGVkIl9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKKyAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6
CiAgICAgICAgIG5hbWUgPSAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCJfczsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBBWFNlbGVjdGVkVGV4dENoYW5nZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuY3BwCmluZGV4IDQ0MTEyZjQ0MzU3MS4uYTBjZjY4ZGYxOWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcApAQCAtMjM5LDYgKzIzOSw5IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6
aW5pdGlhbGl6ZVByb3BlcnRpZXMoY29uc3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9i
CiAgICAgICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxlY3Rl
ZENoaWxkcmVuLCBzZWxlY3RlZENoaWxkcmVuKTsKICAgICB9CiAKKyAgICBpZiAob2JqZWN0LmNh
bkhhdmVTZWxlY3RlZENlbGxzKCkpCisgICAgICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFY
UHJvcGVydHlOYW1lOjpTZWxlY3RlZENlbGxzLCBvYmplY3Quc2VsZWN0ZWRDZWxscygpKTsKKwog
ICAgIGlmIChvYmplY3QuaXNJbWFnZSgpKQogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6RW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uLCBvYmplY3QuZW1iZWRkZWRJbWFnZURlc2Ny
aXB0aW9uKCkuaXNvbGF0ZWRDb3B5KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXgg
YTI3NDQ2MDhhNmI0Li4wMzlmMTZjNGUxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAg
LTI5Myw2ICsyOTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxkcmVuKSBvdmVycmlkZSB7IGZpbGxDaGlsZHJl
blZlY3RvckZvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENoaWxkcmVuLCBjaGls
ZHJlbik7IH0KICAgICB2b2lkIHNldFNlbGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB2aXNpYmxlQ2hpbGRyZW4oQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJlbikgb3ZlcnJpZGUgeyBmaWxsQ2hpbGRy
ZW5WZWN0b3JGb3JQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VmlzaWJsZUNoaWxkcmVuLCBjaGls
ZHJlbik7IH0KKyAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygp
IG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVW
YWx1ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRDZWxscykpOyB9CiAgICAgQXRvbVN0
cmluZyB0YWdOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJiBjaGlsZHJlbihib29sIHVwZGF0ZUNoaWxkcmVuSWZOZWVkZWQgPSB0cnVl
KSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IGRjMzRjYjM5YTdjZS4uMTJiZjQzMTRmNmQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTE5OSw2ICsxOTksNyBAQCBlbnVtIGNsYXNzIEFYUHJv
cGVydHlOYW1lIDogdWludDE2X3QgewogICAgIFJvd0hlYWRlcnMsCiAgICAgUm93SW5kZXgsCiAg
ICAgUm93SW5kZXhSYW5nZSwKKyAgICBTZWxlY3RlZENlbGxzLAogICAgIFNlbGVjdGVkQ2hpbGRy
ZW4sCiAgICAgU2Vzc2lvbklELAogICAgIFNldFNpemUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBlOWY1MWI4ZWY2
OTMuLjZjZmIxOWViM2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmplY3Qs
IEFYTm90aWZpY2F0aW8KICAgICAgICAgZWxzZQogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9u
ID0gTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWROb3RpZmljYXRpb247CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgIGNhc2Ug
QVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0NoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQVhTZWxlY3RlZFRleHRDaGFuZ2VkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQppbmRleCBkYzNmZTdlOGJhY2IuLmJhZjkwNzc0YzRhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTEwODEsNiArMTA4MSw3IEBA
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSb3dDb3VudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0
ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFDb2x1bW5Db3VudEF0dHJpYnV0
ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFSb3dD
b3VudEF0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJp
bGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5Owog
ICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgdGFibGVSb3dBdHRycyA9IFtdIHsK
QEAgLTE4MzYsMTAgKzE4MzcsMTIgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNf
RU5ECiAgICAgICAgIH0KIAogICAgICAgICAvLyBIVE1MIHRhYmxlcyBkb24ndCBzdXBwb3J0IHRo
ZXNlIGF0dHJpYnV0ZXMuCi0gICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJp
bmc6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDb2x1bW5zQXR0cmlidXRlXQotICAgICAgICAgICAg
fHwgW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVk
Q2VsbHNBdHRyaWJ1dGVdKQorICAgICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ29sdW1uc0F0dHJpYnV0ZV0pCiAgICAgICAgICAg
ICByZXR1cm4gbmlsOwogCisgICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJp
bmc6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV0pCisgICAgICAgICAgICBy
ZXR1cm4gbWFrZU5TQXJyYXkoYmFja2luZ09iamVjdC0+c2VsZWN0ZWRDZWxscygpKTsKKwogICAg
ICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUNv
bHVtbkhlYWRlclVJRWxlbWVudHNBdHRyaWJ1dGVdKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VO
U0FycmF5KGJhY2tpbmdPYmplY3QtPmNvbHVtbkhlYWRlcnMoKSk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggYjllNzkyNTFjYmY5
Li5mY2M0YmJjOTdhNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwCkBAIC02MTgsNiArNjE4LDEzIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJv
d0hlYWRlcnNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sCiAgICAgcmV0dXJuIGNvbnZlcnRFbGVtZW50c1RvT2JqZWN0QXJyYXkoY29udGV4dCwgZWxl
bWVudHMpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZWxlY3RlZENlbGxzQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBlbGVtZW50czsKKyAgICB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+c2VsZWN0ZWRD
ZWxscyhlbGVtZW50cyk7CisgICAgcmV0dXJuIGNvbnZlcnRFbGVtZW50c1RvT2JqZWN0QXJyYXko
Y29udGV4dCwgZWxlbWVudHMpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiB1aUVsZW1lbnRBcnJh
eUF0dHJpYnV0ZVZhbHVlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewog
ICAgIGlmIChhcmd1bWVudENvdW50ICE9IDEpCkBAIC0yMDc4LDYgKzIwODUsNyBAQCBKU0NsYXNz
UmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQogICAgICAgICB7ICJzZXRT
ZWxlY3RlZFRleHRSYW5nZSIsIHNldFNlbGVjdGVkVGV4dFJhbmdlQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic3RyaW5nQXR0cmlidXRlVmFsdWUiLCBzdHJpbmdBdHRyaWJ1dGVWYWx1ZUNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWUi
LCB1aUVsZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAg
eyAic2VsZWN0ZWRDZWxscyIsIHNlbGVjdGVkQ2VsbHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJyb3dIZWFkZXJzIiwgcm93SGVhZGVyc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
ImNvbHVtbkhlYWRlcnMiLCBjb2x1bW5IZWFkZXJzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAidWlFbGVtZW50QXR0cmlidXRlVmFsdWUiLCB1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZUNhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgKaW5kZXggNzJjZWU5MjNhZDRkLi41ZjQ3YWViYjRjNDQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTIwMyw3ICsyMDMsOCBAQCBw
dWJsaWM6CiAgICAgaW50IGNvbHVtbkNvdW50KCk7CiAgICAgdm9pZCByb3dIZWFkZXJzKFZlY3Rv
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0OwogICAgIHZvaWQgY29s
dW1uSGVhZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25z
dDsKLSAgICAKKyAgICB2b2lkIHNlbGVjdGVkQ2VsbHMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+JiBlbGVtZW50cykgY29uc3Q7CisKICAgICAvLyBUcmVlL091dGxpbmUgc3BlY2lmaWMg
YXR0cmlidXRlcwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgc2VsZWN0ZWRSb3dBdEluZGV4
KHVuc2lnbmVkKTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGRpc2Nsb3NlZEJ5Um93KCk7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudElPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50SU9TLm1tCmluZGV4IDQzMzA0ZTQxZTk0MS4uZDc5YWY5MGE1MzExIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpA
QCAtMTI3MSw2ICsxMjcxLDEwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93SGVh
ZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mKSBjb25zdAogewogfQogCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoVmVjdG9yPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+JikgY29uc3QKK3sKK30KKwogdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0KaW5kZXggODEzNDExZjkyYjM4Li5iODEzNmVmZjkxNmMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC01
MDksNiArNTA5LDE2IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShOU1N0cmluZyAqCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscyhWZWN0
b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25zdAoreworICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUworICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV07
CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAg
IGVsZW1lbnRzID0gbWFrZVZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pih2YWx1ZSk7Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworfQorCisKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cm93SGVhZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRz
KSBjb25zdAogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaAppbmRleCA3YjQ4MDdiODUyZWMuLjg4NTQ5MDI1OWM4MyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmgKQEAgLTI0Myw2ICsyNDMsNyBAQCBwdWJsaWM6CiAgICAgSlNWYWx1
ZVJlZiByb3dIZWFkZXJzKCkgY29uc3Q7CiAgICAgSlNWYWx1ZVJlZiBjb2x1bW5IZWFkZXJzKCkg
Y29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGN1c3RvbUNvbnRlbnQoKSBjb25z
dDsKKyAgICBKU1ZhbHVlUmVmIHNlbGVjdGVkQ2VsbHMoKSBjb25zdDsKIAogICAgIC8vIFRyZWUv
T3V0bGluZSBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IHNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAppbmRleCBmNDQwYWJiNTBjMGEuLmE0ZmVkZTEw
YWU0YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRs
CkBAIC0xODAsNiArMTgwLDcgQEAKICAgICBvYmplY3QgY29sdW1uSGVhZGVycygpOwogICAgIG9i
amVjdCByb3dIZWFkZXJzKCk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjdXN0
b21Db250ZW50OworICAgIG9iamVjdCBzZWxlY3RlZENlbGxzKCk7CiAKICAgICBvYmplY3QgZGV0
YWlsc0VsZW1lbnRzKCk7CiAgICAgb2JqZWN0IGVycm9yTWVzc2FnZUVsZW1lbnRzKCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0c3BpL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2F0c3BpL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAKaW5kZXggNDU4
NGMwZmMyNzkyLi5iMGJlYjgyZmY1OGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0c3BpL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAKQEAgLTUyNSw2ICs1MjUsMTYgQEAgSlNWYWx1ZVJlZiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5IZWFkZXJzKCkgY29uc3QKICAgICByZXR1cm4g
bWFrZUpTQXJyYXkoeyB9KTsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICBpZiAobV9lbGVtZW50LT5pbnRlcmZhY2Vz
KCkuY29udGFpbnMoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpJbnRlcmZhY2U6
OlRhYmxlKSkgeworICAgICAgICBtX2VsZW1lbnQtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOworICAg
ICAgICByZXR1cm4gbWFrZUpTQXJyYXkoZWxlbWVudHNWZWN0b3IobV9lbGVtZW50LT5zZWxlY3Rl
ZENlbGxzKCkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbWFrZUpTQXJyYXkoeyB9KTsKK30KKwog
c3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudHNGb3JSZWxhdGlvbihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0QXRzcGkqIGVsZW1lbnQsIFdlYkNvcmU6OkF0c3BpOjpSZWxhdGlvbiByZWxhdGlv
bikKIHsKICAgICBlbGVtZW50LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCmluZGV4IDk1MmI2ZGMzMjI4MC4uNzgyZDAxYWVk
MzE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lv
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KQEAgLTQ2
MCw2ICs0NjAsMTEgQEAgSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFk
ZXJzKCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKwogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5IZWFk
ZXJzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGE4NTUwODAxNDA1NS4uMjMxMDc1NzIxMWIxIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTQyNSw2ICs0
MjUsMTcgQEAgSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFkZXJzKCkg
Y29uc3QKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiB9CiAKK0pTVmFsdWVSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscygpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TCisgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Pj4gZWxlbWVudHM7CisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJp
bGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGUpOworICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICBlbGVtZW50cyA9IG1ha2VWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+Pih2YWx1ZS5nZXQoKSk7CisgICAgcmV0dXJuIG1ha2VK
U0FycmF5KGVsZW1lbnRzKTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9CisKIEpTVmFs
dWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0CiB7CiAg
ICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRXaW4uY3BwCmluZGV4IGZmMDc5MGZmYTc3YS4uYWQ0OWViNTQ0NDliIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50V2luLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcApAQCAtMjMyLDYgKzIzMiwx
MiBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBj
b25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmlu
Z1JlZiBhdHRyaWJ1dGUpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li4yNmI5Nzc3ZjliY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBA
CitUaGlzIHRlc3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMgd2lsbCByZXR1cm4gYW5kIHBvc3Qgc2Vs
ZWN0ZWQgY2VsbHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTOiBncmlk
LmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMnKSA9PT0gdHJ1ZQorUEFTUzog
Z3JpZC5zZWxlY3RlZENlbGxzKClbMF0uaXNFcXVhbChzZWxlY3RlZENlbGwpID09PSB0cnVlCitS
ZWNlaXZlZCBub3RpZmljYXRpb246IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQKK1BBU1M6IGdyaWQu
c2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCdjZWxsMScpKSA9PT0gdHJ1ZQorUEFTUzogZ3JpZC5zZWxlY3RlZENl
bGxzKClbMV0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoJ2NlbGwyJykpID09PSB0cnVlCitSZWNlaXZlZCBub3RpZmljYXRpb246IEFYU2VsZWN0
ZWRDZWxsc0NoYW5nZWQKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dy
aWQtc2VsZWN0ZWQtY2VsbHMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dy
aWQtc2VsZWN0ZWQtY2VsbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjc3NzJhNDBjNTY5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbApAQCAtMCwwICsxLDcyIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IGlkPSJjb250ZW50Ij4K
Kzx0YWJsZSB0YWJpbmRleD0wIGlkPSJncmlkIiByb2xlPSJncmlkIiBhcmlhLWxhYmVsbGVkYnk9
ImdyaWQtMS1oZWFkZXIiIGJvcmRlcj0iMSIgYXJpYS1hY3RpdmVkZXNjZW5kYW50PSJjZWxsMSI+
Cis8dGhlYWQ+CisgICAgPHRyIGNhPSJ0ciIgcm9sZT0icm93IiBhcmlhLWxldmVsPSIxIiBpZD0i
cm93MSI+CisgICAgICAgIDx0aCBpZD0iZ3JpZC0xLWlzYm5faWQiPkJvb2sgTmFtZSAvIElTQk48
L3RoPjx0aCBpZD0iZ3JpZC0xLWF1dGhvcl9pZCI+QXV0aG9yPC90aD48dGggaWQ9ImdyaWQtMS1w
cmljZV9pZCIgY2xhc3M9Im51bWVyaWMiID5QcmljZSAoJCk8L3RoPgorICAgIDwvdHI+Cis8L3Ro
ZWFkPgorPHRib2R5PgorICAgIDx0ciBjYT0idG8iIHJvbGU9InJvdyIgYXJpYS1sZXZlbD0iMSIg
YXJpYS1leHBhbmRlZD0idHJ1ZSI+CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLXRpdGxl
X2lkIiBpZD0idGFibGVfZW50cnkiIHJvbGU9ImdyaWRjZWxsIiBjb2xzcGFuPSIzIiAgdGFiaW5k
ZXg9IjAiPgorICAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZCI+Kzwvc3Bhbj4gQSBRdWVzdGlv
biBvZiBMb3ZlPC90ZD4gICAgICAgICAgICAgICAgICAKKyAgICAgPC90cj4KKyAgICAgPHRyIGNh
PSJ0aSIgcm9sZT0icm93IiAgYXJpYS1sZXZlbD0iMiIgYXJpYS1leHBhbmRlZD0idHJ1ZSI+Cisg
ICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLWlzYm5faWQiIHJvbGU9ImdyaWRjZWxsIiBpZD0i
Y2VsbDEiPjk3OC0zLTQ1My00MDU0MC0wPC90ZD4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlk
LTEtYXV0aG9yX2lkIiByb2xlPSJncmlkY2VsbCIgaWQ9ImNlbGwyIj5Ob3JhIFJvYmVydHM8L3Rk
PgorICAgICAgICAgPHRkIGhlYWRlcnM9ImdyaWQtMS1wcmljZV9pZCIgY2xhc3M9Im51bWVyaWMi
IHJvbGU9ImdyaWRjZWxsIiBjYT0idGUiPjxkaXY+OS45OTwvZGl2PjwvdGQ+CisgICAgIDwvdHI+
Cis8L3Rib2R5PgorPC90YWJsZT4KKzwvZGl2PgorCis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0cyB0aGF0IHRoZSBBUklBIGdyaWRzIHdpbGwgcmV0dXJuIGFuZCBwb3N0IHNlbGVj
dGVkIGNlbGxzLiIpOworCitpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Cisg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlCisKKyAgICB2YXIgb3V0cHV0ID0gIiI7Cisg
ICAgdmFyIGdyaWQsIHNlbGVjdGVkQ2VsbGw7CisgICAgdmFyIG5vdGlmaWNhdGlvbkNvdW50ID0g
MDsKKyAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihm
dW5jdGlvbihlbGVtZW50LCBub3RpZmljYXRpb24pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlv
biA9PSAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgIG91dHB1dCArPSAi
UmVjZWl2ZWQgbm90aWZpY2F0aW9uOiAiICsgbm90aWZpY2F0aW9uICsgIlxuIjsKKyAgICAgICAg
ICAgIG5vdGlmaWNhdGlvbkNvdW50Kys7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uQ291
bnQgPT0gMikgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250
ZW50Iikuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOworICAgICAgICAgICAgICAgIGRlYnVn
KG91dHB1dCk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIC8vIEZvY3VzIHRoZSBncmlkIHNvIGl0IGNhbiBo
YW5kbGUgYWN0aXZlIGRlc2NlbmRhbnRzLgorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJn
cmlkIikuZm9jdXMoKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBncmlk
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJncmlkIik7
CisgICAgICAgIHNlbGVjdGVkQ2VsbCA9IGdyaWQuY2hpbGRBdEluZGV4KDIpLmNoaWxkQXRJbmRl
eCgwKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5pc0F0dHJpYnV0ZVN1cHBvcnRl
ZCgnQVhTZWxlY3RlZENlbGxzJykiLCAidHJ1ZSIpOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0
KCJncmlkLnNlbGVjdGVkQ2VsbHMoKVswXS5pc0VxdWFsKHNlbGVjdGVkQ2VsbCkiLCAidHJ1ZSIp
OworCisgICAgICAgIC8vIE5vdyBjaGFuZ2UgdGhlIHNlbGVjdGVkIGNlbGwgdG8gdHJpZ2dlciB0
aGUgbm90aWZpY2F0aW9uLgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZCIp
LnNldEF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50IiwgImNlbGwyIik7CisKKyAgICAg
ICAgLy8gTm93IGNoYW5nZSB3aXRoIGFyaWEtc2VsZWN0ZWQgdG8gZW5zdXJlIHdlIGFsc28gZ2V0
IHRoZSByaWdodCBub3RpZmljYXRpb24uCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjZWxsMSIpLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsICJ0cnVlIik7CisgICAgICAg
IG91dHB1dCArPSBleHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdjZWxsMScpKSIsICJ0cnVl
Iik7CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxscygpWzFdLmlz
RXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdjZWxs
MicpKSIsICJ0cnVlIik7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1
bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1y
dWxlcy1leHBlY3RlZC50eHQKaW5kZXggZjg2MmM5YzYzY2E5Li45ZTlmOGFlYmQ1NTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4
cGVjdGVkLnR4dApAQCAtNDcsNiArNDcsNyBAQCBBWENvbHVtbkNvdW50OiAyCiBBWFJvd0NvdW50
OiAxCiBBWEFSSUFDb2x1bW5Db3VudDogMAogQVhBUklBUm93Q291bnQ6IDAKK0FYU2VsZWN0ZWRD
ZWxsczogPGFycmF5IG9mIHNpemUgMD4KIEFYRWxlbWVudEJ1c3k6IDAKIAogCkBAIC05Miw2ICs5
Myw3IEBAIEFYQ29sdW1uQ291bnQ6IDIKIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50
OiAwCiBBWEFSSUFSb3dDb3VudDogMAorQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAw
PgogQVhFbGVtZW50QnVzeTogMAogCiAKQEAgLTEzNyw2ICsxMzksNyBAQCBBWENvbHVtbkNvdW50
OiAyCiBBWFJvd0NvdW50OiAxCiBBWEFSSUFDb2x1bW5Db3VudDogMAogQVhBUklBUm93Q291bnQ6
IDAKK0FYU2VsZWN0ZWRDZWxsczogPGFycmF5IG9mIHNpemUgMD4KIEFYRWxlbWVudEJ1c3k6IDAK
IAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465920</attachid>
            <date>2023-04-14 12:29:09 -0700</date>
            <delta_ts>2023-04-19 13:39:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230414122908.patch</filename>
            <type>text/plain</type>
            <size>30048</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSBjMTMwMDdkZDE4MTg5MmJiMDkxMmFkNjNkMTkzMzBmOTQzNTU0ZDAwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBUeWxlciBXaWxjb2NrLgoKVG8gc3VwcG9ydCB0aGUgYXJpYS1hY3RpdmVkZXNjZW5kYW50
IGZsb3cgdGhhdCBpcyBiZWluZyBkZXNjcmliZWQsIHdlIG5lZWQgdG8gc3VwcG9ydCBBWFNlbGVj
dGVkQ2VsbHMgZm9yIHRhYmxlcyBhbmQgZ3JpZHMuClRoaXMgYm9pbHMgZG93biB0bzoKICAxKSBF
eHBvc2luZyBhbmQgaW1wbGVtZW50aW5nIEFYU2VsZWN0ZWRDZWxscyBhcyBhbiBhdHRyaWJ1dGUu
CiAgMikgUG9zdGluZyBub3RpZmljYXRpb25zIHdoZW4gaXQgY2hhbmdlcy4KICAzKSBJbXBsZW1l
bnRpbmcgV0tUUiBhbmQgRFJUIG1ldGhvZHMgZm9yIGZldGNoaW5nCiAgNCkgQ2hhbmdpbmcgdGhl
IG9sZGVyLCB1bnVzZWQgQVhTZWxlY3RlZENlbGwgLT4gQVhTZWxlY3RlZENlbGxzLgoKKiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2Vy
LmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblNlbGVjdGVk
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKFdlYkNvcmU6OkFYQ29yZU9i
amVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CihXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CihXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgooLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19FTkRdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOl0pOgotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwICAgICB8ICA0ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgfCAxNCArKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgICAgIHwgMTkgKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggICAg
ICAgICAgICB8IDE1ICsrKysKIC4uLi9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwICAgICAg
ICAgICAgICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bSAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAg
ICAgIHwgIDMgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAgICAgICAg
IHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwg
IDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gICAgIHwgIDIg
Ky0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8ICA3ICst
CiAuLi4vRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgfCAgOCArKysK
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCB8ICAzICstCiAu
Li4vaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gICAgICAgICAgfCAgNCArKwogLi4u
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tICAgICAgICAgIHwgMTAgKysrCiAuLi4v
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAgfCAgMSArCiAuLi4vQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgICAgICAgfCAgMSArCiAuLi4vYXRzcGkv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCAgICAgfCAgNSArKwogLi4uL2lvcy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICAgICAgICAgIHwgIDUgKysKIC4uLi9tYWMvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudE1hYy5tbSAgICAgICAgICB8IDExICsrKwogLi4uL3dpbi9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50V2luLmNwcCAgICAgICAgIHwgIDYgKysKIC4uLi9tYWMvZ3JpZC1zZWxl
Y3RlZC1jZWxscy1leHBlY3RlZC50eHQgICAgICB8IDE2ICsrKysrCiAuLi4vbWFjL2dyaWQtc2Vs
ZWN0ZWQtY2VsbHMuaHRtbCAgICAgICAgICAgICAgfCA3MiArKysrKysrKysrKysrKysrKysrCiAu
Li4vdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQgICAgICAgICAgICAgfCAgMyArCiAyNiBm
aWxlcyBjaGFuZ2VkLCAyMDcgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDRhNWQyOTZhZjg4Ny4uOWVjN2ZjODEwODU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNTI5LDggKzUy
OSw4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBBWE9iamVj
dENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3RpZmljCiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpB
WE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKICAgICAgICAgc3RyZWFt
IDw8ICJBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxDaGFuZ2VkOgot
ICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCI7CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoKKyAgICAg
ICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZFN0YXRlQ2hh
bmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGM3OTZk
ODAxZjgxMi4uZGE1MTYzZThlZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTE0NTUsNyArMTQ1NSw3IEBAIHN0YXRpYyBib29sIGlz
QVJJQVRhYmxlQ2VsbChOb2RlKiBub2RlKQogdm9pZCBBWE9iamVjdENhY2hlOjpvblNlbGVjdGVk
Q2hhbmdlZChOb2RlKiBub2RlKQogewogICAgIGlmIChpc0FSSUFUYWJsZUNlbGwobm9kZSkpCi0g
ICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENlbGxDaGFuZ2VkKTsKKyAg
ICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkKTsKICAg
ICBlbHNlIGlmIChpczxIVE1MT3B0aW9uRWxlbWVudD4obm9kZSkpCiAgICAgICAgIHBvc3ROb3Rp
ZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCk7CiAgICAgZWxzZSBpZiAoYXV0
byogYXhPYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKSkgewpAQCAtMTk3NCw2ICsxOTc0LDE0IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVzY2VuZGFudENoYW5nZWQoRWxlbWVu
dCYgZWxlbWVudCkKICNlbmRpZgogCiAgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbih0
YXJnZXQsIEFYTm90aWZpY2F0aW9uOjpBWEFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKTsKKyAgICAg
ICAgCisgICAgICAgIC8vIFRhYmxlIGNlbGwgYWN0aXZlIGRlc2NlbmRhbnQgY2hhbmdlcyBzaG91
bGQgdHJpZ2dlciBzZWxlY3RlZCBjZWxsIGNoYW5nZXMuCisgICAgICAgIGlmICh0YXJnZXQtPmlz
VGFibGUoKSAmJiBhY3RpdmVEZXNjZW5kYW50LT5pc1RhYmxlQ2VsbCgpKSB7CisjaWYgRU5BQkxF
KEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICAgICAgICAgIHVwZGF0ZUlzb2xhdGVk
VHJlZSgqb2JqZWN0LCBBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7Cisj
ZW5kaWYKKyAgICAgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2Vs
ZWN0ZWRDZWxsc0NoYW5nZWQpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0zNzMzLDcgKzM3
NDEsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0
b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaQogICAgICAgICBjYXNlIEFYUm93SW5kZXhD
aGFuZ2VkOgogICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZVByb3BlcnR5KCpub3RpZmljYXRp
b24uZmlyc3QsIEFYUHJvcGVydHlOYW1lOjpBWFJvd0luZGV4KTsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKKyAgICAgICAgY2FzZSBBWFNl
bGVjdGVkQ2VsbHNDaGFuZ2VkOgorICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZVByb3BlcnR5
KCpub3RpZmljYXRpb24uZmlyc3QsIEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENlbGxzKTsKKyAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQ6CiAg
ICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwg
QVhQcm9wZXJ0eU5hbWU6OklzU2VsZWN0ZWQpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGNhZDdkZTljOTkw
Yy4uMzdkNTYyNDliZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaApAQCAtMzI2LDcgKzMyNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVhSb3dJbmRl
eENoYW5nZWQsCiAgICAgICAgIEFYUm93U3BhbkNoYW5nZWQsCiAgICAgICAgIEFYU2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQsCi0gICAgICAgIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCwKKyAgICAgICAg
QVhTZWxlY3RlZENlbGxzQ2hhbmdlZCwKICAgICAgICAgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCwK
ICAgICAgICAgQVhTZWxlY3RlZFRleHRDaGFuZ2VkLAogICAgICAgICBBWFNldFNpemVDaGFuZ2Vk
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKaW5kZXggMGJiY2E3Y2VjNmY3Li5kMmIyMmRjMTM1MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAt
MjgzNCw2ICsyODM0LDI1IEBAIEFYQ29yZU9iamVjdCogQWNjZXNzaWJpbGl0eU9iamVjdDo6Zm9j
dXNlZFVJRWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhZ2UgJiYgYXhPYmplY3RDYWNoZSA/
IGF4T2JqZWN0Q2FjaGUtPmZvY3VzZWRPYmplY3RGb3JQYWdlKHBhZ2UpIDogbnVsbHB0cjsKIH0K
IAorQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0
eU9iamVjdDo6c2VsZWN0ZWRDZWxscygpCit7CisgICAgaWYgKCFpc1RhYmxlKCkpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciBzZWxlY3RlZENlbGxzOworICAgIGZvciAoUmVmUHRyIGNlbGwgOiBjZWxscygpKSB7Cisg
ICAgICAgIGlmIChjZWxsLT5pc1NlbGVjdGVkKCkpCisgICAgICAgICAgICBzZWxlY3RlZENlbGxz
LmFwcGVuZChjZWxsKTsKKyAgICB9CisKKyAgICBpZiAoYXV0byogYWN0aXZlRGVzY2VuZGFudCA9
IHRoaXMtPmFjdGl2ZURlc2NlbmRhbnQoKSkgeworICAgICAgICBpZiAoIXNlbGVjdGVkQ2VsbHMu
Y29udGFpbnMoYWN0aXZlRGVzY2VuZGFudCkpCisgICAgICAgICAgICBzZWxlY3RlZENlbGxzLmFw
cGVuZChhY3RpdmVEZXNjZW5kYW50KTsKKyAgICB9CisKKyAgICByZXR1cm4gc2VsZWN0ZWRDZWxs
czsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRGb2N1c2VkKGJvb2wgZm9jdXMp
CiB7CiAgICAgaWYgKGZvY3VzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGZhNjIzMmYyMDVhYi4uOTFjNzE0YjBhZjgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaApAQCAtMTU1LDYgKzE1NSw3IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3IgY29sdW1uSGVhZGVycygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvcigpOyB9CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJv
d0hlYWRlcnMoKSBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Io
KTsgfQogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciB2aXNpYmxlUm93cygpIG92ZXJy
aWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvcigpOyB9CisgICAgQWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHMoKSBvdmVycmlkZTsKICAgICBBWENv
cmVPYmplY3QqIGhlYWRlckNvbnRhaW5lcigpIG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0K
ICAgICBpbnQgYXhDb2x1bW5Db3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICAg
ICBpbnQgYXhSb3dDb3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
SW50ZXJmYWNlLmgKaW5kZXggYjE4NzViZGM0ZWRiLi5iOWY0NmJkYzg0MDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oCkBAIC04OTcsNiArODk3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNvbHVtbkhlYWRlcnMoKSA9IDA7CiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igcm93SGVhZGVycygpID0gMDsKICAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciB2aXNpYmxlUm93cygpID0gMDsKKyAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzKCkgPSAwOwog
ICAgIC8vIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMsIGFzIGNoaWxkcmVuLCBhbGwg
dGhlIG9iamVjdHMgdGhhdCBhY3QgYXMgaGVhZGVycy4KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVj
dCogaGVhZGVyQ29udGFpbmVyKCkgPSAwOwogICAgIHZpcnR1YWwgaW50IGF4Q29sdW1uQ291bnQo
KSBjb25zdCA9IDA7CkBAIC0xMjMxLDYgKzEyMzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGlzRGV0YWNoZWRGcm9tUGFyZW50KCkgPSAwOwogCiAgICAgYm9vbCBjYW5IYXZlU2VsZWN0
ZWRDaGlsZHJlbigpIGNvbnN0OworICAgIGJvb2wgY2FuSGF2ZVNlbGVjdGVkQ2VsbHMoKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ2hpbGRyZW4oY29u
c3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB2
aXNpYmxlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgPSAwOwpAQCAtMTU2
MCw2ICsxNTYyLDE5IEBAIGlubGluZSBib29sIEFYQ29yZU9iamVjdDo6c3VwcG9ydHNMaXZlUmVn
aW9uKGJvb2wgZXhjbHVkZUlmT2ZmKSBjb25zdAogICAgIHJldHVybiBleGNsdWRlSWZPZmYgPyBs
aXZlUmVnaW9uU3RhdHVzSXNFbmFibGVkKEF0b21TdHJpbmcgeyBsaXZlUmVnaW9uU3RhdHVzVmFs
dWUgfSkgOiAhbGl2ZVJlZ2lvblN0YXR1c1ZhbHVlLmlzRW1wdHkoKTsKIH0KIAoraW5saW5lIGJv
b2wgQVhDb3JlT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDZWxscygpIGNvbnN0Cit7CisgICAgc3dp
dGNoIChyb2xlVmFsdWUoKSkgeworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWQ6Cisg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFibGU6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VHJlZToKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlR3JpZDoKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KK30KKwogaW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDaGlsZHJl
bigpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3Bw
CmluZGV4IDAyYmUyZjQ0OTNmYi4uNTFjODRkMTVhMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCkBA
IC03Niw3ICs3Niw2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFYQ29yZU9iamVjdCogY29yZU9iamVjdCwgQVhOb3RpZmljCiAgICAgICAgIGlmIChjb3Jl
T2JqZWN0LT5pc0NoZWNrYm94T3JSYWRpbygpIHx8IGNvcmVPYmplY3QtPmlzU3dpdGNoKCkpCiAg
ICAgICAgICAgICB3cmFwcGVyLT5zdGF0ZUNoYW5nZWQoImNoZWNrZWQiLCBjb3JlT2JqZWN0LT5p
c0NoZWNrZWQoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFu
Z2VkOgogICAgIGNhc2UgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgd3JhcHBlci0+
c3RhdGVDaGFuZ2VkKCJzZWxlY3RlZCIsIGNvcmVPYmplY3QtPmlzU2VsZWN0ZWQoKSk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtODcsNiArODYsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIGNvcmVPYmplY3QsIEFYTm90aWZpYwogICAg
ICAgICAgICAgd3JhcHBlci0+c3RhdGVDaGFuZ2VkKCJzZWxlY3RlZCIsIGNvcmVPYmplY3QtPmlz
U2VsZWN0ZWQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEFYU2VsZWN0ZWRD
ZWxsc0NoYW5nZWQ6CiAgICAgY2FzZSBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkOgogICAgICAg
ICB3cmFwcGVyLT5zZWxlY3Rpb25DaGFuZ2VkKCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5k
ZXggNTg3ZDdjYmVkYjgzLi5jNDhmZTMxNjM0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtNTcsNyArNTcsNyBA
QCBBU0NJSUxpdGVyYWwgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKEFY
Tm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbgogICAgIGNhc2UgQVhQYWdlU2Nyb2xsZWQ6CiAgICAg
ICAgIG5hbWUgPSAiQVhQYWdlU2Nyb2xsZWQiX3M7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgIGNhc2UgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoK
ICAgICAgICAgbmFtZSA9ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIl9zOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAKaW5kZXggNDQxMTJmNDQzNTcxLi5hMGNmNjhkZjE5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuY3BwCkBAIC0yMzksNiArMjM5LDkgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojpp
bml0aWFsaXplUHJvcGVydGllcyhjb25zdCBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4mIGF4T2IK
ICAgICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVk
Q2hpbGRyZW4sIHNlbGVjdGVkQ2hpbGRyZW4pOwogICAgIH0KIAorICAgIGlmIChvYmplY3QuY2Fu
SGF2ZVNlbGVjdGVkQ2VsbHMoKSkKKyAgICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQ
cm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMsIG9iamVjdC5zZWxlY3RlZENlbGxzKCkpOworCiAg
ICAgaWYgKG9iamVjdC5pc0ltYWdlKCkpCiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlO
YW1lOjpFbWJlZGRlZEltYWdlRGVzY3JpcHRpb24sIG9iamVjdC5lbWJlZGRlZEltYWdlRGVzY3Jp
cHRpb24oKS5pc29sYXRlZENvcHkoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAppbmRleCBh
Mjc0NDYwOGE2YjQuLjAzOWYxNmM0ZTE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApAQCAt
MjkzLDYgKzI5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZWxlY3RlZENoaWxkcmVuKEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciYgY2hpbGRyZW4pIG92ZXJyaWRlIHsgZmlsbENoaWxkcmVu
VmVjdG9yRm9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2hpbGRyZW4sIGNoaWxk
cmVuKTsgfQogICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZHJlbihjb25zdCBBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHZpc2libGVDaGlsZHJlbihBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxkcmVuKSBvdmVycmlkZSB7IGZpbGxDaGlsZHJl
blZlY3RvckZvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpWaXNpYmxlQ2hpbGRyZW4sIGNoaWxk
cmVuKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzKCkg
b3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5vYmplY3RzRm9ySURzKHZlY3RvckF0dHJpYnV0ZVZh
bHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENlbGxzKSk7IH0KICAgICBBdG9tU3Ry
aW5nIHRhZ05hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25zdCBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3ImIGNoaWxkcmVuKGJvb2wgdXBkYXRlQ2hpbGRyZW5JZk5lZWRlZCA9IHRydWUp
IG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggZGMzNGNiMzlhN2NlLi4xMmJmNDMxNGY2ZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMTk5LDYgKzE5OSw3IEBAIGVudW0gY2xhc3MgQVhQcm9w
ZXJ0eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgUm93SGVhZGVycywKICAgICBSb3dJbmRleCwKICAg
ICBSb3dJbmRleFJhbmdlLAorICAgIFNlbGVjdGVkQ2VsbHMsCiAgICAgU2VsZWN0ZWRDaGlsZHJl
biwKICAgICBTZXNzaW9uSUQsCiAgICAgU2V0U2l6ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGU5ZjUxYjhlZjY5
My4uNmNmYjE5ZWIzYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTM2Niw3ICszNjYsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwg
QVhOb3RpZmljYXRpbwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24g
PSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZE5vdGlmaWNhdGlvbjsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBWFNlbGVjdGVkQ2VsbENoYW5nZWQ6CisgICAgY2FzZSBB
WFNlbGVjdGVkQ2VsbHNDaGFuZ2VkOgogICAgICAgICBtYWNOb3RpZmljYXRpb24gPSBOU0FjY2Vz
c2liaWxpdHlTZWxlY3RlZENlbGxzQ2hhbmdlZE5vdGlmaWNhdGlvbjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBBWFNlbGVjdGVkVGV4dENoYW5nZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCmluZGV4IGRjM2ZlN2U4YmFjYi4uYmFmOTA3NzRjNGE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTA4MSw2ICsxMDgxLDcgQEAg
QUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJvd0NvdW50QXR0cmlidXRlXTsKICAgICAgICAgW3Rl
bXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQUNvbHVtbkNvdW50QXR0cmlidXRl
XTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQVJvd0Nv
dW50QXR0cmlidXRlXTsKKyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAg
ICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCB0YWJsZVJvd0F0dHJzID0gW10gewpA
QCAtMTgzNiwxMCArMTgzNywxMiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19F
TkQKICAgICAgICAgfQogCiAgICAgICAgIC8vIEhUTUwgdGFibGVzIGRvbid0IHN1cHBvcnQgdGhl
c2UgYXR0cmlidXRlcy4KLSAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmlu
ZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENvbHVtbnNBdHRyaWJ1dGVdCi0gICAgICAgICAgICB8
fCBbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRD
ZWxsc0F0dHJpYnV0ZV0pCisgICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJp
bmc6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDb2x1bW5zQXR0cmlidXRlXSkKICAgICAgICAgICAg
IHJldHVybiBuaWw7CiAKKyAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmlu
ZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQXR0cmlidXRlXSkKKyAgICAgICAgICAgIHJl
dHVybiBtYWtlTlNBcnJheShiYWNraW5nT2JqZWN0LT5zZWxlY3RlZENlbGxzKCkpOworCiAgICAg
ICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Q29s
dW1uSGVhZGVyVUlFbGVtZW50c0F0dHJpYnV0ZV0pCiAgICAgICAgICAgICByZXR1cm4gbWFrZU5T
QXJyYXkoYmFja2luZ09iamVjdC0+Y29sdW1uSGVhZGVycygpKTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCBiOWU3OTI1MWNiZjku
LmZjYzRiYmM5N2E1OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5jcHAKQEAgLTYxOCw2ICs2MTgsMTMgQEAgc3RhdGljIEpTVmFsdWVSZWYgcm93
SGVhZGVyc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlv
biwKICAgICByZXR1cm4gY29udmVydEVsZW1lbnRzVG9PYmplY3RBcnJheShjb250ZXh0LCBlbGVt
ZW50cyk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNlbGVjdGVkQ2VsbHNDYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IGVsZW1lbnRzOworICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zZWxlY3RlZENl
bGxzKGVsZW1lbnRzKTsKKyAgICByZXR1cm4gY29udmVydEVsZW1lbnRzVG9PYmplY3RBcnJheShj
b250ZXh0LCBlbGVtZW50cyk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIHVpRWxlbWVudEFycmF5
QXR0cmlidXRlVmFsdWVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAg
ICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gMSkKQEAgLTIwNzgsNiArMjA4NSw3IEBAIEpTQ2xhc3NS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcygpCiAgICAgICAgIHsgInNldFNl
bGVjdGVkVGV4dFJhbmdlIiwgc2V0U2VsZWN0ZWRUZXh0UmFuZ2VDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzdHJpbmdBdHRyaWJ1dGVWYWx1ZSIsIHN0cmluZ0F0dHJpYnV0ZVZhbHVlQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1ZSIs
IHVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7
ICJzZWxlY3RlZENlbGxzIiwgc2VsZWN0ZWRDZWxsc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInJvd0hlYWRlcnMiLCByb3dIZWFkZXJzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
Y29sdW1uSGVhZGVycyIsIGNvbHVtbkhlYWRlcnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJ1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZSIsIHVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaAppbmRleCA3MmNlZTkyM2FkNGQuLjVmNDdhZWJiNGM0NCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMjAzLDcgKzIwMyw4IEBAIHB1
YmxpYzoKICAgICBpbnQgY29sdW1uQ291bnQoKTsKICAgICB2b2lkIHJvd0hlYWRlcnMoVmVjdG9y
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50cykgY29uc3Q7CiAgICAgdm9pZCBjb2x1
bW5IZWFkZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0
OwotICAgIAorICAgIHZvaWQgc2VsZWN0ZWRDZWxscyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4mIGVsZW1lbnRzKSBjb25zdDsKKwogICAgIC8vIFRyZWUvT3V0bGluZSBzcGVjaWZpYyBh
dHRyaWJ1dGVzCiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBzZWxlY3RlZFJvd0F0SW5kZXgo
dW5zaWduZWQpOwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgZGlzY2xvc2VkQnlSb3coKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50SU9TLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRJT1MubW0KaW5kZXggNDMzMDRlNDFlOTQxLi5kNzlhZjkwYTUzMTEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCkBA
IC0xMjcxLDYgKzEyNzEsMTAgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFk
ZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYpIGNvbnN0CiB7CiB9CiAKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscyhWZWN0b3I8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4mKSBjb25zdAoreworfQorCiB1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAogewogICAgIHJldHVybiAwOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1h
Yy5tbQppbmRleCA4MTM0MTFmOTJiMzguLmI4MTM2ZWZmOTE2YyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTUw
OSw2ICs1MDksMTYgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKE5TU3RyaW5nICoKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKFZlY3Rv
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0Cit7CisgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCisgICAgaWQgdmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQXR0cmlidXRlXTsK
KyAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAg
ZWxlbWVudHMgPSBtYWtlVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+KHZhbHVlKTsKKyAg
ICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCit9CisKKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpyb3dIZWFkZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMp
IGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oCmluZGV4IDdiNDgwN2I4NTJlYy4uODg1NDkwMjU5YzgzIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaApAQCAtMjQzLDYgKzI0Myw3IEBAIHB1YmxpYzoKICAgICBKU1ZhbHVl
UmVmIHJvd0hlYWRlcnMoKSBjb25zdDsKICAgICBKU1ZhbHVlUmVmIGNvbHVtbkhlYWRlcnMoKSBj
b25zdDsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY3VzdG9tQ29udGVudCgpIGNvbnN0
OworICAgIEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxscygpIGNvbnN0OwogCiAgICAgLy8gVHJlZS9P
dXRsaW5lIHNwZWNpZmljIGF0dHJpYnV0ZXMKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gc2VsZWN0ZWRSb3dBdEluZGV4KHVuc2lnbmVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IGY0NDBhYmI1MGMwYS4uYTRmZWRlMTBh
ZTRjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwK
QEAgLTE4MCw2ICsxODAsNyBAQAogICAgIG9iamVjdCBjb2x1bW5IZWFkZXJzKCk7CiAgICAgb2Jq
ZWN0IHJvd0hlYWRlcnMoKTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGN1c3Rv
bUNvbnRlbnQ7CisgICAgb2JqZWN0IHNlbGVjdGVkQ2VsbHMoKTsKIAogICAgIG9iamVjdCBkZXRh
aWxzRWxlbWVudHMoKTsKICAgICBvYmplY3QgZXJyb3JNZXNzYWdlRWxlbWVudHMoKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcAppbmRleCA0NTg0
YzBmYzI3OTIuLmQxNGUyZjljMGJlNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9hdHNwaS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRzcGkuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0c3BpLmNwcApAQCAtNTI1LDYgKzUyNSwxMSBAQCBKU1ZhbHVlUmVmIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAogICAgIHJldHVybiBt
YWtlSlNBcnJheSh7IH0pOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIHJldHVybiBtYWtlSlNBcnJheSh7IH0pOwor
fQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBlbGVtZW50c0ZvclJlbGF0aW9uKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaSogZWxlbWVudCwgV2ViQ29yZTo6QXRzcGk6OlJlbGF0aW9uIHJl
bGF0aW9uKQogewogICAgIGVsZW1lbnQtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXggOTUyYjZkYzMyMjgwLi43ODJk
MDFhZWQzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpA
QCAtNDYwLDYgKzQ2MCwxMSBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJv
d0hlYWRlcnMoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVmIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIHJldHVy
biBudWxscHRyOworfQorCiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVt
bkhlYWRlcnMoKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggYTg1NTA4MDE0MDU1Li4yMzEwNzU3MjEx
YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtNDI1
LDYgKzQyNSwxNyBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRl
cnMoKSBjb25zdAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIH0KIAorSlNWYWx1ZVJlZiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICBCRUdJ
Tl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+PiBlbGVtZW50czsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZSk7CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgIGVsZW1lbnRzID0gbWFrZVZlY3RvcjxS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KHZhbHVlLmdldCgpKTsKKyAgICByZXR1cm4g
bWFrZUpTQXJyYXkoZWxlbWVudHMpOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwog
SlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5IZWFkZXJzKCkgY29uc3QK
IHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4u
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93aW4vQWNjZXNzaWJp
bGl0eVVJRWxlbWVudFdpbi5jcHAKaW5kZXggZmYwNzkwZmZhNzdhLi5hZDQ5ZWI1NDQ0OWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCkBAIC0yMzIsNiAr
MjMyLDEyIEBAIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVy
cygpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0pTVmFsdWVSZWYgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpT
U3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxs
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVj
dGVkLWNlbGxzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjI2Yjk3NzdmOWJjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTYgQEAKK1RoaXMgdGVzdHMgdGhhdCB0aGUgQVJJQSBncmlkcyB3aWxsIHJldHVybiBhbmQgcG9z
dCBzZWxlY3RlZCBjZWxscy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1M6
IGdyaWQuaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoJ0FYU2VsZWN0ZWRDZWxscycpID09PSB0cnVlCitQ
QVNTOiBncmlkLnNlbGVjdGVkQ2VsbHMoKVswXS5pc0VxdWFsKHNlbGVjdGVkQ2VsbCkgPT09IHRy
dWUKK1JlY2VpdmVkIG5vdGlmaWNhdGlvbjogQVhTZWxlY3RlZENlbGxzQ2hhbmdlZAorUEFTUzog
Z3JpZC5zZWxlY3RlZENlbGxzKClbMF0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2NlbGwxJykpID09PSB0cnVlCitQQVNTOiBncmlkLnNlbGVj
dGVkQ2VsbHMoKVsxXS5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgnY2VsbDInKSkgPT09IHRydWUKK1JlY2VpdmVkIG5vdGlmaWNhdGlvbjogQVhT
ZWxlY3RlZENlbGxzQ2hhbmdlZAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uNzc3MmE0MGM1NjljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sCkBAIC0wLDAgKzEsNzIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgaWQ9ImNvbnRl
bnQiPgorPHRhYmxlIHRhYmluZGV4PTAgaWQ9ImdyaWQiIHJvbGU9ImdyaWQiIGFyaWEtbGFiZWxs
ZWRieT0iZ3JpZC0xLWhlYWRlciIgYm9yZGVyPSIxIiBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9ImNl
bGwxIj4KKzx0aGVhZD4KKyAgICA8dHIgY2E9InRyIiByb2xlPSJyb3ciIGFyaWEtbGV2ZWw9IjEi
IGlkPSJyb3cxIj4KKyAgICAgICAgPHRoIGlkPSJncmlkLTEtaXNibl9pZCI+Qm9vayBOYW1lIC8g
SVNCTjwvdGg+PHRoIGlkPSJncmlkLTEtYXV0aG9yX2lkIj5BdXRob3I8L3RoPjx0aCBpZD0iZ3Jp
ZC0xLXByaWNlX2lkIiBjbGFzcz0ibnVtZXJpYyIgPlByaWNlICgkKTwvdGg+CisgICAgPC90cj4K
KzwvdGhlYWQ+Cis8dGJvZHk+CisgICAgPHRyIGNhPSJ0byIgcm9sZT0icm93IiBhcmlhLWxldmVs
PSIxIiBhcmlhLWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEt
dGl0bGVfaWQiIGlkPSJ0YWJsZV9lbnRyeSIgcm9sZT0iZ3JpZGNlbGwiIGNvbHNwYW49IjMiICB0
YWJpbmRleD0iMCI+CisgICAgICAgICA8c3BhbiBjbGFzcz0iZXhwYW5kIj4rPC9zcGFuPiBBIFF1
ZXN0aW9uIG9mIExvdmU8L3RkPiAgICAgICAgICAgICAgICAgIAorICAgICA8L3RyPgorICAgICA8
dHIgY2E9InRpIiByb2xlPSJyb3ciICBhcmlhLWxldmVsPSIyIiBhcmlhLWV4cGFuZGVkPSJ0cnVl
Ij4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtaXNibl9pZCIgcm9sZT0iZ3JpZGNlbGwi
IGlkPSJjZWxsMSI+OTc4LTMtNDUzLTQwNTQwLTA8L3RkPgorICAgICAgICAgPHRkIGhlYWRlcnM9
ImdyaWQtMS1hdXRob3JfaWQiIHJvbGU9ImdyaWRjZWxsIiBpZD0iY2VsbDIiPk5vcmEgUm9iZXJ0
czwvdGQ+CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLXByaWNlX2lkIiBjbGFzcz0ibnVt
ZXJpYyIgcm9sZT0iZ3JpZGNlbGwiIGNhPSJ0ZSI+PGRpdj45Ljk5PC9kaXY+PC90ZD4KKyAgICAg
PC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0
aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMgd2lsbCByZXR1cm4gYW5kIHBvc3Qg
c2VsZWN0ZWQgY2VsbHMuIik7CisKK2lmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWUKKworICAgIHZhciBvdXRwdXQgPSAi
IjsKKyAgICB2YXIgZ3JpZCwgc2VsZWN0ZWRDZWxsbDsKKyAgICB2YXIgbm90aWZpY2F0aW9uQ291
bnQgPSAwOworICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFkZE5vdGlmaWNhdGlvbkxpc3Rl
bmVyKGZ1bmN0aW9uKGVsZW1lbnQsIG5vdGlmaWNhdGlvbikgeworICAgICAgICBpZiAobm90aWZp
Y2F0aW9uID09ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIikgeworICAgICAgICAgICAgb3V0cHV0
ICs9ICJSZWNlaXZlZCBub3RpZmljYXRpb246ICIgKyBub3RpZmljYXRpb24gKyAiXG4iOworICAg
ICAgICAgICAgbm90aWZpY2F0aW9uQ291bnQrKzsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRp
b25Db3VudCA9PSAyKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnRlbnQiKS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7CisgICAgICAgICAgICAgICAg
ZGVidWcob3V0cHV0KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgLy8gRm9jdXMgdGhlIGdyaWQgc28gaXQg
Y2FuIGhhbmRsZSBhY3RpdmUgZGVzY2VuZGFudHMuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImdyaWQiKS5mb2N1cygpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAg
IGdyaWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdy
aWQiKTsKKyAgICAgICAgc2VsZWN0ZWRDZWxsID0gZ3JpZC5jaGlsZEF0SW5kZXgoMikuY2hpbGRB
dEluZGV4KDApOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJncmlkLmlzQXR0cmlidXRlU3Vw
cG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMnKSIsICJ0cnVlIik7CisgICAgICAgIG91dHB1dCArPSBl
eHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoc2VsZWN0ZWRDZWxsKSIsICJ0
cnVlIik7CisKKyAgICAgICAgLy8gTm93IGNoYW5nZSB0aGUgc2VsZWN0ZWQgY2VsbCB0byB0cmln
Z2VyIHRoZSBub3RpZmljYXRpb24uCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJn
cmlkIikuc2V0QXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLCAiY2VsbDIiKTsKKwor
ICAgICAgICAvLyBOb3cgY2hhbmdlIHdpdGggYXJpYS1zZWxlY3RlZCB0byBlbnN1cmUgd2UgYWxz
byBnZXQgdGhlIHJpZ2h0IG5vdGlmaWNhdGlvbi4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNlbGwxIikuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwgInRydWUiKTsKKyAg
ICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5zZWxlY3RlZENlbGxzKClbMF0uaXNFcXVhbChh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2NlbGwxJykpIiwg
InRydWUiKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5zZWxlY3RlZENlbGxzKClb
MV0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
J2NlbGwyJykpIiwgInRydWUiKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorCis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdp
dGgtcnVsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13
aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAppbmRleCBmODYyYzljNjNjYTkuLjllOWY4YWViZDU1NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVs
ZXMtZXhwZWN0ZWQudHh0CkBAIC00Nyw2ICs0Nyw3IEBAIEFYQ29sdW1uQ291bnQ6IDIKIEFYUm93
Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAorQVhTZWxl
Y3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhFbGVtZW50QnVzeTogMAogCiAKQEAgLTky
LDYgKzkzLDcgQEAgQVhDb2x1bW5Db3VudDogMgogQVhSb3dDb3VudDogMQogQVhBUklBQ29sdW1u
Q291bnQ6IDAKIEFYQVJJQVJvd0NvdW50OiAwCitBWFNlbGVjdGVkQ2VsbHM6IDxhcnJheSBvZiBz
aXplIDA+CiBBWEVsZW1lbnRCdXN5OiAwCiAKIApAQCAtMTM3LDYgKzEzOSw3IEBAIEFYQ29sdW1u
Q291bnQ6IDIKIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dD
b3VudDogMAorQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhFbGVtZW50QnVz
eTogMAogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465987</attachid>
            <date>2023-04-19 13:39:17 -0700</date>
            <delta_ts>2023-04-19 13:56:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230419133916.patch</filename>
            <type>text/plain</type>
            <size>30195</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSAyNGQyNjc4NTY5ZjNmMDRiZGI1YzVmNDkwMTA1NjFiOGEyZTIzZTU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBUeWxlciBXaWxjb2NrLgoKVG8gc3VwcG9ydCB0aGUgYXJpYS1hY3RpdmVkZXNjZW5kYW50
IGZsb3cgdGhhdCBpcyBiZWluZyBkZXNjcmliZWQsIHdlIG5lZWQgdG8gc3VwcG9ydCBBWFNlbGVj
dGVkQ2VsbHMgZm9yIHRhYmxlcyBhbmQgZ3JpZHMuClRoaXMgYm9pbHMgZG93biB0bzoKICAxKSBF
eHBvc2luZyBhbmQgaW1wbGVtZW50aW5nIEFYU2VsZWN0ZWRDZWxscyBhcyBhbiBhdHRyaWJ1dGUu
CiAgMikgUG9zdGluZyBub3RpZmljYXRpb25zIHdoZW4gaXQgY2hhbmdlcy4KICAzKSBJbXBsZW1l
bnRpbmcgV0tUUiBhbmQgRFJUIG1ldGhvZHMgZm9yIGZldGNoaW5nCiAgNCkgQ2hhbmdpbmcgdGhl
IG9sZGVyLCB1bnVzZWQgQVhTZWxlY3RlZENlbGwgLT4gQVhTZWxlY3RlZENlbGxzLgoKKiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2Vy
LmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblNlbGVjdGVk
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKFdlYkNvcmU6OkFYQ29yZU9i
amVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CihXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CihXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgooLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19FTkRdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOl0pOgotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwICAgICB8ICA0ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgfCAxNCArKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgICAgIHwgMTkgKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggICAg
ICAgICAgICB8IDE1ICsrKysKIC4uLi9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwICAgICAg
ICAgICAgICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bSAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAg
ICAgIHwgIDMgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAgICAgICAg
IHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwg
IDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gICAgIHwgIDIg
Ky0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8ICA5ICsr
LQogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIHwgIDggKysr
CiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggfCAgMyArLQog
Li4uL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICAgICAgICAgIHwgIDQgKysKIC4u
Li9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAgICAgICAgICB8IDEwICsrKwogLi4u
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCAgIHwgIDEgKwogLi4uL0Jp
bmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsICAgICAgIHwgIDEgKwogLi4uL2F0c3Bp
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAgICAgIHwgIDUgKysKIC4uLi9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSAgICAgICAgICB8ICA1ICsrCiAuLi4vbWFjL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRNYWMubW0gICAgICAgICAgfCAxMSArKysKIC4uLi93aW4vQWNjZXNz
aWJpbGl0eVVJRWxlbWVudFdpbi5jcHAgICAgICAgICB8ICA2ICsrCiAuLi4vbWFjL2dyaWQtc2Vs
ZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0ICAgICAgfCAxNiArKysrKwogLi4uL21hYy9ncmlkLXNl
bGVjdGVkLWNlbGxzLmh0bWwgICAgICAgICAgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKwog
Li4uL3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgIHwgIDMgKwogMjYg
ZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQt
Y2VsbHMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCA0YTVkMjk2YWY4ODcuLjllYzdmYzgxMDg1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTUyOSw4ICs1
MjksOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQVhPYmpl
Y3RDYWNoZTo6QVhOb3RpZmljYXRpb24gbm90aWZpYwogICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6
QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIHN0cmVh
bSA8PCAiQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoK
LSAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2VsbENoYW5nZWQiOworICAgIGNhc2UgQVhP
YmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CisgICAg
ICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYU2VsZWN0ZWRTdGF0ZUNo
YW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBjNzk2
ZDgwMWY4MTIuLjlkZjc0NjE2MmE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xNDU1LDcgKzE0NTUsNyBAQCBzdGF0aWMgYm9vbCBp
c0FSSUFUYWJsZUNlbGwoTm9kZSogbm9kZSkKIHZvaWQgQVhPYmplY3RDYWNoZTo6b25TZWxlY3Rl
ZENoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICBpZiAoaXNBUklBVGFibGVDZWxsKG5vZGUpKQot
ICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCk7Cisg
ICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7CiAg
ICAgZWxzZSBpZiAoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KG5vZGUpKQogICAgICAgICBwb3N0Tm90
aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOwogICAgIGVsc2UgaWYgKGF1
dG8qIGF4T2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSkpIHsKQEAgLTE5NzQsNiArMTk3NCwxNCBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKEVsZW1l
bnQmIGVsZW1lbnQpCiAjZW5kaWYKIAogICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
dGFyZ2V0LCBBWE5vdGlmaWNhdGlvbjo6QVhBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCk7CisgICAg
ICAgIAorICAgICAgICAvLyBUYWJsZSBjZWxsIGFjdGl2ZSBkZXNjZW5kYW50IGNoYW5nZXMgc2hv
dWxkIHRyaWdnZXIgc2VsZWN0ZWQgY2VsbCBjaGFuZ2VzLgorICAgICAgICBpZiAodGFyZ2V0LT5p
c1RhYmxlKCkgJiYgYWN0aXZlRGVzY2VuZGFudC0+aXNUYWJsZUNlbGwoKSkgeworI2lmIEVOQUJM
RShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgICAgICAgICB1cGRhdGVJc29sYXRl
ZFRyZWUodGFyZ2V0LCBBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7Cisj
ZW5kaWYKKyAgICAgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbih0YXJnZXQsIEFYU2Vs
ZWN0ZWRDZWxsc0NoYW5nZWQpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0zNzMzLDcgKzM3
NDEsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0
b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaQogICAgICAgICBjYXNlIEFYUm93SW5kZXhD
aGFuZ2VkOgogICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZVByb3BlcnR5KCpub3RpZmljYXRp
b24uZmlyc3QsIEFYUHJvcGVydHlOYW1lOjpBWFJvd0luZGV4KTsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKKyAgICAgICAgY2FzZSBBWFNl
bGVjdGVkQ2VsbHNDaGFuZ2VkOgorICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZVByb3BlcnR5
KCpub3RpZmljYXRpb24uZmlyc3QsIEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENlbGxzKTsKKyAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQ6CiAg
ICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwg
QVhQcm9wZXJ0eU5hbWU6OklzU2VsZWN0ZWQpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGNhZDdkZTljOTkw
Yy4uMzdkNTYyNDliZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaApAQCAtMzI2LDcgKzMyNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVhSb3dJbmRl
eENoYW5nZWQsCiAgICAgICAgIEFYUm93U3BhbkNoYW5nZWQsCiAgICAgICAgIEFYU2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQsCi0gICAgICAgIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCwKKyAgICAgICAg
QVhTZWxlY3RlZENlbGxzQ2hhbmdlZCwKICAgICAgICAgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCwK
ICAgICAgICAgQVhTZWxlY3RlZFRleHRDaGFuZ2VkLAogICAgICAgICBBWFNldFNpemVDaGFuZ2Vk
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKaW5kZXggMGJiY2E3Y2VjNmY3Li5hODk4Mjk3YWJiZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAt
MjgzNCw2ICsyODM0LDI1IEBAIEFYQ29yZU9iamVjdCogQWNjZXNzaWJpbGl0eU9iamVjdDo6Zm9j
dXNlZFVJRWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhZ2UgJiYgYXhPYmplY3RDYWNoZSA/
IGF4T2JqZWN0Q2FjaGUtPmZvY3VzZWRPYmplY3RGb3JQYWdlKHBhZ2UpIDogbnVsbHB0cjsKIH0K
IAorQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQWNjZXNzaWJpbGl0
eU9iamVjdDo6c2VsZWN0ZWRDZWxscygpCit7CisgICAgaWYgKCFpc1RhYmxlKCkpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciBzZWxlY3RlZENlbGxzOworICAgIGZvciAoYXV0byYgY2VsbCA6IGNlbGxzKCkpIHsKKyAg
ICAgICAgaWYgKGNlbGwtPmlzU2VsZWN0ZWQoKSkKKyAgICAgICAgICAgIHNlbGVjdGVkQ2VsbHMu
YXBwZW5kKGNlbGwpOworICAgIH0KKworICAgIGlmIChhdXRvKiBhY3RpdmVEZXNjZW5kYW50ID0g
dGhpcy0+YWN0aXZlRGVzY2VuZGFudCgpKSB7CisgICAgICAgIGlmIChhY3RpdmVEZXNjZW5kYW50
LT5pc1RhYmxlQ2VsbCgpICYmICFzZWxlY3RlZENlbGxzLmNvbnRhaW5zKGFjdGl2ZURlc2NlbmRh
bnQpKQorICAgICAgICAgICAgc2VsZWN0ZWRDZWxscy5hcHBlbmQoYWN0aXZlRGVzY2VuZGFudCk7
CisgICAgfQorCisgICAgcmV0dXJuIHNlbGVjdGVkQ2VsbHM7Cit9CisKIHZvaWQgQWNjZXNzaWJp
bGl0eU9iamVjdDo6c2V0Rm9jdXNlZChib29sIGZvY3VzKQogewogICAgIGlmIChmb2N1cykgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCBmYTYyMzJmMjA1YWIuLjkxYzcxNGIwYWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTE1NSw2ICsxNTUs
NyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNvbHVtbkhlYWRl
cnMoKSBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQog
ICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciByb3dIZWFkZXJzKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yKCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3IgdmlzaWJsZVJvd3MoKSBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBz
ZWxlY3RlZENlbGxzKCkgb3ZlcnJpZGU7CiAgICAgQVhDb3JlT2JqZWN0KiBoZWFkZXJDb250YWlu
ZXIoKSBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgaW50IGF4Q29sdW1uQ291bnQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgaW50IGF4Um93Q291bnQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCmluZGV4IGIxODc1
YmRjNGVkYi4uYjlmNDZiZGM4NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtODk3LDYg
Kzg5Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBjb2x1bW5IZWFkZXJzKCkgPSAwOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIHJvd0hlYWRlcnMoKSA9IDA7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3IgdmlzaWJsZVJvd3MoKSA9IDA7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpID0gMDsKICAgICAvLyBSZXR1cm5zIGFuIG9iamVj
dCB0aGF0IGNvbnRhaW5zLCBhcyBjaGlsZHJlbiwgYWxsIHRoZSBvYmplY3RzIHRoYXQgYWN0IGFz
IGhlYWRlcnMuCiAgICAgdmlydHVhbCBBWENvcmVPYmplY3QqIGhlYWRlckNvbnRhaW5lcigpID0g
MDsKICAgICB2aXJ0dWFsIGludCBheENvbHVtbkNvdW50KCkgY29uc3QgPSAwOwpAQCAtMTIzMSw2
ICsxMjMyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0RldGFjaGVkRnJvbVBhcmVu
dCgpID0gMDsKIAogICAgIGJvb2wgY2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4oKSBjb25zdDsKKyAg
ICBib29sIGNhbkhhdmVTZWxlY3RlZENlbGxzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNl
bGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTZWxlY3RlZENoaWxkcmVuKGNvbnN0IEFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdmlzaWJsZUNoaWxkcmVuKEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYpID0gMDsKQEAgLTE1NjAsNiArMTU2MiwxOSBAQCBpbmxpbmUg
Ym9vbCBBWENvcmVPYmplY3Q6OnN1cHBvcnRzTGl2ZVJlZ2lvbihib29sIGV4Y2x1ZGVJZk9mZikg
Y29uc3QKICAgICByZXR1cm4gZXhjbHVkZUlmT2ZmID8gbGl2ZVJlZ2lvblN0YXR1c0lzRW5hYmxl
ZChBdG9tU3RyaW5nIHsgbGl2ZVJlZ2lvblN0YXR1c1ZhbHVlIH0pIDogIWxpdmVSZWdpb25TdGF0
dXNWYWx1ZS5pc0VtcHR5KCk7CiB9CiAKK2lubGluZSBib29sIEFYQ29yZU9iamVjdDo6Y2FuSGF2
ZVNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKKyAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlkOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlRhYmxlOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWU6CisgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIGlubGluZSBib29sIEFY
Q29yZU9iamVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4oKSBjb25zdAogewogICAgIHN3aXRj
aCAocm9sZVZhbHVlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcAppbmRleCAwMmJlMmY0NDkzZmIuLjUx
Yzg0ZDE1YTBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNw
aS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcApAQCAtNzYsNyArNzYsNiBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIGNvcmVP
YmplY3QsIEFYTm90aWZpYwogICAgICAgICBpZiAoY29yZU9iamVjdC0+aXNDaGVja2JveE9yUmFk
aW8oKSB8fCBjb3JlT2JqZWN0LT5pc1N3aXRjaCgpKQogICAgICAgICAgICAgd3JhcHBlci0+c3Rh
dGVDaGFuZ2VkKCJjaGVja2VkIiwgY29yZU9iamVjdC0+aXNDaGVja2VkKCkpOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKICAgICBjYXNlIEFYU2VsZWN0
ZWRTdGF0ZUNoYW5nZWQ6CiAgICAgICAgIHdyYXBwZXItPnN0YXRlQ2hhbmdlZCgic2VsZWN0ZWQi
LCBjb3JlT2JqZWN0LT5pc1NlbGVjdGVkKCkpOwogICAgICAgICBicmVhazsKQEAgLTg3LDYgKzg2
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3Jl
T2JqZWN0KiBjb3JlT2JqZWN0LCBBWE5vdGlmaWMKICAgICAgICAgICAgIHdyYXBwZXItPnN0YXRl
Q2hhbmdlZCgic2VsZWN0ZWQiLCBjb3JlT2JqZWN0LT5pc1NlbGVjdGVkKCkpOwogICAgICAgICBi
cmVhazsKICAgICB9CisgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkOgogICAgIGNhc2Ug
QVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKICAgICAgICAgd3JhcHBlci0+c2VsZWN0aW9uQ2hh
bmdlZCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDU4N2Q3Y2JlZGI4My4uYzQ4ZmUz
MTYzNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FY
T2JqZWN0Q2FjaGVJT1MubW0KQEAgLTU3LDcgKzU3LDcgQEAgQVNDSUlMaXRlcmFsIEFYT2JqZWN0
Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZShBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRp
b24KICAgICBjYXNlIEFYUGFnZVNjcm9sbGVkOgogICAgICAgICBuYW1lID0gIkFYUGFnZVNjcm9s
bGVkIl9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoK
KyAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CiAgICAgICAgIG5hbWUgPSAiQVhTZWxl
Y3RlZENlbGxzQ2hhbmdlZCJfczsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWFNlbGVjdGVk
VGV4dENoYW5nZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDQ0MTEyZjQ0MzU3
MS4uYTBjZjY4ZGYxOWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMjM5LDYg
KzIzOSw5IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoY29u
c3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9iCiAgICAgICAgIHNldE9iamVjdFZlY3Rv
clByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENoaWxkcmVuLCBzZWxlY3RlZENoaWxk
cmVuKTsKICAgICB9CiAKKyAgICBpZiAob2JqZWN0LmNhbkhhdmVTZWxlY3RlZENlbGxzKCkpCisg
ICAgICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENl
bGxzLCBvYmplY3Quc2VsZWN0ZWRDZWxscygpKTsKKwogICAgIGlmIChvYmplY3QuaXNJbWFnZSgp
KQogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RW1iZWRkZWRJbWFnZURlc2Ny
aXB0aW9uLCBvYmplY3QuZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkuaXNvbGF0ZWRDb3B5KCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggYTI3NDQ2MDhhNmI0Li4wMzlmMTZjNGUx
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTI5Myw2ICsyOTMsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Im
IGNoaWxkcmVuKSBvdmVycmlkZSB7IGZpbGxDaGlsZHJlblZlY3RvckZvclByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpTZWxlY3RlZENoaWxkcmVuLCBjaGlsZHJlbik7IH0KICAgICB2b2lkIHNldFNl
bGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB2aXNpYmxlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9y
JiBjaGlsZHJlbikgb3ZlcnJpZGUgeyBmaWxsQ2hpbGRyZW5WZWN0b3JGb3JQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6VmlzaWJsZUNoaWxkcmVuLCBjaGlsZHJlbik7IH0KKyAgICBBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpIG92ZXJyaWRlIHsgcmV0dXJuIHRyZWUo
KS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5TmFt
ZTo6U2VsZWN0ZWRDZWxscykpOyB9CiAgICAgQXRvbVN0cmluZyB0YWdOYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJlbihi
b29sIHVwZGF0ZUNoaWxkcmVuSWZOZWVkZWQgPSB0cnVlKSBvdmVycmlkZTsKICAgICB2b2lkIHVw
ZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmlu
ZGV4IGRjMzRjYjM5YTdjZS4uMTJiZjQzMTRmNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAg
LTE5OSw2ICsxOTksNyBAQCBlbnVtIGNsYXNzIEFYUHJvcGVydHlOYW1lIDogdWludDE2X3Qgewog
ICAgIFJvd0hlYWRlcnMsCiAgICAgUm93SW5kZXgsCiAgICAgUm93SW5kZXhSYW5nZSwKKyAgICBT
ZWxlY3RlZENlbGxzLAogICAgIFNlbGVjdGVkQ2hpbGRyZW4sCiAgICAgU2Vzc2lvbklELAogICAg
IFNldFNpemUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9B
WE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhP
YmplY3RDYWNoZU1hYy5tbQppbmRleCBlOWY1MWI4ZWY2OTMuLjZjZmIxOWViM2JlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tCkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFYTm90aWZpY2F0aW8KICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3NpYmlsaXR5U2VsZWN0
ZWRDaGlsZHJlbkNoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgIGNhc2UgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoK
ICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0No
YW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQVhTZWxlY3RlZFRl
eHRDaGFuZ2VkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBk
YzNmZTdlOGJhY2IuLmJkMWFiMzExYThjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0KQEAgLTEwODEsNiArMTA4MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVN
RU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxp
dHlSb3dDb3VudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNj
ZXNzaWJpbGl0eUFSSUFDb2x1bW5Db3VudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFSb3dDb3VudEF0dHJpYnV0ZV07CisgICAgICAg
IFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1
dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQgdGFibGVSb3dBdHRycyA9IFtdIHsKQEAgLTE4MzUsMTEgKzE4MzYsMTMgQEAg
QUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgICAgICByZXR1cm4g
bWFrZU5TQXJyYXkoc2VsZWN0ZWRDaGlsZHJlbkNvcHkpOwogICAgICAgICB9CiAKLSAgICAgICAg
Ly8gSFRNTCB0YWJsZXMgZG9uJ3Qgc3VwcG9ydCB0aGVzZSBhdHRyaWJ1dGVzLgotICAgICAgICBp
ZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVk
Q29sdW1uc0F0dHJpYnV0ZV0KLSAgICAgICAgICAgIHx8IFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxU
b1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQXR0cmlidXRlXSkKKyAgICAgICAg
Ly8gSFRNTCB0YWJsZXMgZG9uJ3Qgc3VwcG9ydCB0aGlzIGF0dHJpYnV0ZSB5ZXQuCisgICAgICAg
IGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0
ZWRDb2x1bW5zQXR0cmlidXRlXSkKICAgICAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICAgICAg
aWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZENlbGxzQXR0cmlidXRlXSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlTlNBcnJheShiYWNraW5n
T2JqZWN0LT5zZWxlY3RlZENlbGxzKCkpOworCiAgICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBp
c0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Q29sdW1uSGVhZGVyVUlFbGVtZW50c0F0dHJp
YnV0ZV0pCiAgICAgICAgICAgICByZXR1cm4gbWFrZU5TQXJyYXkoYmFja2luZ09iamVjdC0+Y29s
dW1uSGVhZGVycygpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcAppbmRleCBiOWU3OTI1MWNiZjkuLmZjYzRiYmM5N2E1OSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTYxOCw2
ICs2MTgsMTMgQEAgc3RhdGljIEpTVmFsdWVSZWYgcm93SGVhZGVyc0NhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwKICAgICByZXR1cm4gY29udmVydEVs
ZW1lbnRzVG9PYmplY3RBcnJheShjb250ZXh0LCBlbGVtZW50cyk7CiB9CiAKK3N0YXRpYyBKU1Zh
bHVlUmVmIHNlbGVjdGVkQ2VsbHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
Cit7CisgICAgVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGVsZW1lbnRzOworICAgIHRv
QVhFbGVtZW50KHRoaXNPYmplY3QpLT5zZWxlY3RlZENlbGxzKGVsZW1lbnRzKTsKKyAgICByZXR1
cm4gY29udmVydEVsZW1lbnRzVG9PYmplY3RBcnJheShjb250ZXh0LCBlbGVtZW50cyk7Cit9CisK
IHN0YXRpYyBKU1ZhbHVlUmVmIHVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWVDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0g
MSkKQEAgLTIwNzgsNiArMjA4NSw3IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Z2V0SlNDbGFzcygpCiAgICAgICAgIHsgInNldFNlbGVjdGVkVGV4dFJhbmdlIiwgc2V0U2Vs
ZWN0ZWRUZXh0UmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzdHJpbmdBdHRyaWJ1
dGVWYWx1ZSIsIHN0cmluZ0F0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAidWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1ZSIsIHVpRWxlbWVudEFycmF5QXR0cmlidXRl
VmFsdWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzZWxlY3RlZENlbGxzIiwgc2VsZWN0
ZWRDZWxsc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJvd0hlYWRlcnMiLCByb3dIZWFk
ZXJzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY29sdW1uSGVhZGVycyIsIGNvbHVtbkhl
YWRlcnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1
ZSIsIHVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCA3MmNlZTkyM2FkNGQu
LjVmNDdhZWJiNGM0NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaApAQCAtMjAzLDcgKzIwMyw4IEBAIHB1YmxpYzoKICAgICBpbnQgY29sdW1uQ291
bnQoKTsKICAgICB2b2lkIHJvd0hlYWRlcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
JiBlbGVtZW50cykgY29uc3Q7CiAgICAgdm9pZCBjb2x1bW5IZWFkZXJzKFZlY3RvcjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0OwotICAgIAorICAgIHZvaWQgc2VsZWN0
ZWRDZWxscyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25zdDsK
KwogICAgIC8vIFRyZWUvT3V0bGluZSBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAgICAgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudCBzZWxlY3RlZFJvd0F0SW5kZXgodW5zaWduZWQpOwogICAgIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQgZGlzY2xvc2VkQnlSb3coKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXggNDMzMDRlNDFl
OTQxLi5kNzlhZjkwYTUzMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lv
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCkBAIC0xMjcxLDYgKzEyNzEsMTAgQEAgdm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFkZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiYpIGNvbnN0CiB7CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VsZWN0ZWRDZWxscyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mKSBjb25zdAorewor
fQorCiB1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291
bnQoKSBjb25zdAogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCA4MTM0MTFmOTJiMzgu
LmI4MTM2ZWZmOTE2YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTUwOSw2ICs1MDksMTYgQEAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZh
bHVlKE5TU3RyaW5nICoKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiYgZWxlbWVudHMpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAg
aWQgdmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vz
c2liaWxpdHlTZWxlY3RlZENlbGxzQXR0cmlidXRlXTsKKyAgICBpZiAoW3ZhbHVlIGlzS2luZE9m
Q2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgZWxlbWVudHMgPSBtYWtlVmVjdG9yPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+KHZhbHVlKTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05T
Cit9CisKKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFkZXJzKFZlY3RvcjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IDdiNDgwN2I4
NTJlYy4uODg1NDkwMjU5YzgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMjQz
LDYgKzI0Myw3IEBAIHB1YmxpYzoKICAgICBKU1ZhbHVlUmVmIHJvd0hlYWRlcnMoKSBjb25zdDsK
ICAgICBKU1ZhbHVlUmVmIGNvbHVtbkhlYWRlcnMoKSBjb25zdDsKICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gY3VzdG9tQ29udGVudCgpIGNvbnN0OworICAgIEpTVmFsdWVSZWYgc2VsZWN0
ZWRDZWxscygpIGNvbnN0OwogCiAgICAgLy8gVHJlZS9PdXRsaW5lIHNwZWNpZmljIGF0dHJpYnV0
ZXMKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gc2VsZWN0ZWRSb3dBdEluZGV4
KHVuc2lnbmVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aWRsCmluZGV4IGY0NDBhYmI1MGMwYS4uYTRmZWRlMTBhZTRjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKQEAgLTE4MCw2ICsxODAsNyBAQAogICAg
IG9iamVjdCBjb2x1bW5IZWFkZXJzKCk7CiAgICAgb2JqZWN0IHJvd0hlYWRlcnMoKTsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGN1c3RvbUNvbnRlbnQ7CisgICAgb2JqZWN0IHNl
bGVjdGVkQ2VsbHMoKTsKIAogICAgIG9iamVjdCBkZXRhaWxzRWxlbWVudHMoKTsKICAgICBvYmpl
Y3QgZXJyb3JNZXNzYWdlRWxlbWVudHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0c3BpLmNwcAppbmRleCA0NTg0YzBmYzI3OTIuLmQxNGUyZjljMGJlNSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdHNwaS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRzcGkuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcApA
QCAtNTI1LDYgKzUyNSwxMSBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNv
bHVtbkhlYWRlcnMoKSBjb25zdAogICAgIHJldHVybiBtYWtlSlNBcnJheSh7IH0pOwogfQogCitK
U1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAor
eworICAgIHJldHVybiBtYWtlSlNBcnJheSh7IH0pOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBl
bGVtZW50c0ZvclJlbGF0aW9uKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSogZWxl
bWVudCwgV2ViQ29yZTo6QXRzcGk6OlJlbGF0aW9uIHJlbGF0aW9uKQogewogICAgIGVsZW1lbnQt
PnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRJT1MubW0KaW5kZXggOTUyYjZkYzMyMjgwLi43ODJkMDFhZWQzMTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtNDYwLDYgKzQ2MCwxMSBAQCBKU1Zh
bHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAogICAgIHJl
dHVybiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNl
bGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiBKU1ZhbHVl
UmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAogewogICAg
IHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0KaW5kZXggYTg1NTA4MDE0MDU1Li4yMzEwNzU3MjExYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtNDI1LDYgKzQyNSwxNyBAQCBKU1ZhbHVlUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAogICAgIEVORF9BWF9P
QkpDX0VYQ0VQVElPTlMKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
ZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAg
ICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PiBlbGVtZW50czsKKyAgICBh
dXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0
dHJpYnV0ZSk7CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0p
CisgICAgICAgIGVsZW1lbnRzID0gbWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4+KHZhbHVlLmdldCgpKTsKKyAgICByZXR1cm4gbWFrZUpTQXJyYXkoZWxlbWVudHMpOwor
ICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKK30KKwogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpjb2x1bW5IZWFkZXJzKCkgY29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VY
Q0VQVElPTlMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAKaW5k
ZXggZmYwNzkwZmZhNzdhLi5hZDQ5ZWI1NDQ0OWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRXaW4uY3BwCkBAIC0yMzIsNiArMjMyLDEyIEBAIEpTVmFsdWVSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0CiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRD
ZWxscygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKwogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29u
c3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI2Yjk3NzdmOWJjZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0
ZWQtY2VsbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdHMgdGhhdCB0
aGUgQVJJQSBncmlkcyB3aWxsIHJldHVybiBhbmQgcG9zdCBzZWxlY3RlZCBjZWxscy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1M6IGdyaWQuaXNBdHRyaWJ1dGVTdXBwb3J0
ZWQoJ0FYU2VsZWN0ZWRDZWxscycpID09PSB0cnVlCitQQVNTOiBncmlkLnNlbGVjdGVkQ2VsbHMo
KVswXS5pc0VxdWFsKHNlbGVjdGVkQ2VsbCkgPT09IHRydWUKK1JlY2VpdmVkIG5vdGlmaWNhdGlv
bjogQVhTZWxlY3RlZENlbGxzQ2hhbmdlZAorUEFTUzogZ3JpZC5zZWxlY3RlZENlbGxzKClbMF0u
aXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2Nl
bGwxJykpID09PSB0cnVlCitQQVNTOiBncmlkLnNlbGVjdGVkQ2VsbHMoKVsxXS5pc0VxdWFsKGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnY2VsbDInKSkgPT09
IHRydWUKK1JlY2VpdmVkIG5vdGlmaWNhdGlvbjogQVhTZWxlY3RlZENlbGxzQ2hhbmdlZAorCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5o
dG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzc3MmE0MGM1Njlj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1z
ZWxlY3RlZC1jZWxscy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgaWQ9ImNvbnRlbnQiPgorPHRhYmxlIHRhYmluZGV4PTAg
aWQ9ImdyaWQiIHJvbGU9ImdyaWQiIGFyaWEtbGFiZWxsZWRieT0iZ3JpZC0xLWhlYWRlciIgYm9y
ZGVyPSIxIiBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9ImNlbGwxIj4KKzx0aGVhZD4KKyAgICA8dHIg
Y2E9InRyIiByb2xlPSJyb3ciIGFyaWEtbGV2ZWw9IjEiIGlkPSJyb3cxIj4KKyAgICAgICAgPHRo
IGlkPSJncmlkLTEtaXNibl9pZCI+Qm9vayBOYW1lIC8gSVNCTjwvdGg+PHRoIGlkPSJncmlkLTEt
YXV0aG9yX2lkIj5BdXRob3I8L3RoPjx0aCBpZD0iZ3JpZC0xLXByaWNlX2lkIiBjbGFzcz0ibnVt
ZXJpYyIgPlByaWNlICgkKTwvdGg+CisgICAgPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+CisgICAg
PHRyIGNhPSJ0byIgcm9sZT0icm93IiBhcmlhLWxldmVsPSIxIiBhcmlhLWV4cGFuZGVkPSJ0cnVl
Ij4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtdGl0bGVfaWQiIGlkPSJ0YWJsZV9lbnRy
eSIgcm9sZT0iZ3JpZGNlbGwiIGNvbHNwYW49IjMiICB0YWJpbmRleD0iMCI+CisgICAgICAgICA8
c3BhbiBjbGFzcz0iZXhwYW5kIj4rPC9zcGFuPiBBIFF1ZXN0aW9uIG9mIExvdmU8L3RkPiAgICAg
ICAgICAgICAgICAgIAorICAgICA8L3RyPgorICAgICA8dHIgY2E9InRpIiByb2xlPSJyb3ciICBh
cmlhLWxldmVsPSIyIiBhcmlhLWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAgICAgIDx0ZCBoZWFkZXJz
PSJncmlkLTEtaXNibl9pZCIgcm9sZT0iZ3JpZGNlbGwiIGlkPSJjZWxsMSI+OTc4LTMtNDUzLTQw
NTQwLTA8L3RkPgorICAgICAgICAgPHRkIGhlYWRlcnM9ImdyaWQtMS1hdXRob3JfaWQiIHJvbGU9
ImdyaWRjZWxsIiBpZD0iY2VsbDIiPk5vcmEgUm9iZXJ0czwvdGQ+CisgICAgICAgICA8dGQgaGVh
ZGVycz0iZ3JpZC0xLXByaWNlX2lkIiBjbGFzcz0ibnVtZXJpYyIgcm9sZT0iZ3JpZGNlbGwiIGNh
PSJ0ZSI+PGRpdj45Ljk5PC9kaXY+PC90ZD4KKyAgICAgPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxl
PgorPC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhl
IEFSSUEgZ3JpZHMgd2lsbCByZXR1cm4gYW5kIHBvc3Qgc2VsZWN0ZWQgY2VsbHMuIik7CisKK2lm
ICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWUKKworICAgIHZhciBvdXRwdXQgPSAiIjsKKyAgICB2YXIgZ3JpZCwgc2VsZWN0
ZWRDZWxsbDsKKyAgICB2YXIgbm90aWZpY2F0aW9uQ291bnQgPSAwOworICAgIGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKGZ1bmN0aW9uKGVsZW1lbnQsIG5v
dGlmaWNhdGlvbikgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkQ2Vs
bHNDaGFuZ2VkIikgeworICAgICAgICAgICAgb3V0cHV0ICs9ICJSZWNlaXZlZCBub3RpZmljYXRp
b246ICIgKyBub3RpZmljYXRpb24gKyAiXG4iOworICAgICAgICAgICAgbm90aWZpY2F0aW9uQ291
bnQrKzsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb25Db3VudCA9PSAyKSB7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5zdHlsZS52aXNpYmls
aXR5ID0gJ2hpZGRlbic7CisgICAgICAgICAgICAgICAgZGVidWcob3V0cHV0KTsKKyAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0p
OworCisgICAgLy8gRm9jdXMgdGhlIGdyaWQgc28gaXQgY2FuIGhhbmRsZSBhY3RpdmUgZGVzY2Vu
ZGFudHMuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWQiKS5mb2N1cygpOworICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGdyaWQgPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyaWQiKTsKKyAgICAgICAgc2VsZWN0ZWRD
ZWxsID0gZ3JpZC5jaGlsZEF0SW5kZXgoMikuY2hpbGRBdEluZGV4KDApOworICAgICAgICBvdXRw
dXQgKz0gZXhwZWN0KCJncmlkLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMn
KSIsICJ0cnVlIik7CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxs
cygpWzBdLmlzRXF1YWwoc2VsZWN0ZWRDZWxsKSIsICJ0cnVlIik7CisKKyAgICAgICAgLy8gTm93
IGNoYW5nZSB0aGUgc2VsZWN0ZWQgY2VsbCB0byB0cmlnZ2VyIHRoZSBub3RpZmljYXRpb24uCisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkIikuc2V0QXR0cmlidXRlKCJhcmlh
LWFjdGl2ZWRlc2NlbmRhbnQiLCAiY2VsbDIiKTsKKworICAgICAgICAvLyBOb3cgY2hhbmdlIHdp
dGggYXJpYS1zZWxlY3RlZCB0byBlbnN1cmUgd2UgYWxzbyBnZXQgdGhlIHJpZ2h0IG5vdGlmaWNh
dGlvbi4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwxIikuc2V0QXR0cmli
dXRlKCJhcmlhLXNlbGVjdGVkIiwgInRydWUiKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgi
Z3JpZC5zZWxlY3RlZENlbGxzKClbMF0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2NlbGwxJykpIiwgInRydWUiKTsKKyAgICAgICAgb3V0cHV0
ICs9IGV4cGVjdCgiZ3JpZC5zZWxlY3RlZENlbGxzKClbMV0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2NlbGwyJykpIiwgInRydWUiKTsKKyAg
ICB9LCAwKTsKK30KKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dApp
bmRleCBmODYyYzljNjNjYTkuLjllOWY4YWViZDU1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CkBAIC00Nyw2
ICs0Nyw3IEBAIEFYQ29sdW1uQ291bnQ6IDIKIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNv
dW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAorQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6
ZSAwPgogQVhFbGVtZW50QnVzeTogMAogCiAKQEAgLTkyLDYgKzkzLDcgQEAgQVhDb2x1bW5Db3Vu
dDogMgogQVhSb3dDb3VudDogMQogQVhBUklBQ29sdW1uQ291bnQ6IDAKIEFYQVJJQVJvd0NvdW50
OiAwCitBWFNlbGVjdGVkQ2VsbHM6IDxhcnJheSBvZiBzaXplIDA+CiBBWEVsZW1lbnRCdXN5OiAw
CiAKIApAQCAtMTM3LDYgKzEzOSw3IEBAIEFYQ29sdW1uQ291bnQ6IDIKIEFYUm93Q291bnQ6IDEK
IEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAorQVhTZWxlY3RlZENlbGxz
OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhFbGVtZW50QnVzeTogMAogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465989</attachid>
            <date>2023-04-19 13:56:09 -0700</date>
            <delta_ts>2023-04-19 15:19:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230419135608.patch</filename>
            <type>text/plain</type>
            <size>31920</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSAzYjkwY2E0Y2FjZGZhOTAxYThlNmYxNzc1ZTcyZjZiZDE5M2NkODhhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBUeWxlciBXaWxjb2NrLgoKVG8gc3VwcG9ydCB0aGUgYXJpYS1hY3RpdmVkZXNjZW5kYW50
IGZsb3cgdGhhdCBpcyBiZWluZyBkZXNjcmliZWQsIHdlIG5lZWQgdG8gc3VwcG9ydCBBWFNlbGVj
dGVkQ2VsbHMgZm9yIHRhYmxlcyBhbmQgZ3JpZHMuClRoaXMgYm9pbHMgZG93biB0bzoKICAxKSBF
eHBvc2luZyBhbmQgaW1wbGVtZW50aW5nIEFYU2VsZWN0ZWRDZWxscyBhcyBhbiBhdHRyaWJ1dGUu
CiAgMikgUG9zdGluZyBub3RpZmljYXRpb25zIHdoZW4gaXQgY2hhbmdlcy4KICAzKSBJbXBsZW1l
bnRpbmcgV0tUUiBhbmQgRFJUIG1ldGhvZHMgZm9yIGZldGNoaW5nCiAgNCkgQ2hhbmdpbmcgdGhl
IG9sZGVyLCB1bnVzZWQgQVhTZWxlY3RlZENlbGwgLT4gQVhTZWxlY3RlZENlbGxzLgoKKiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2Vy
LmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblNlbGVjdGVk
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKFdlYkNvcmU6OkFYQ29yZU9i
amVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CihXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CihXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgooLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19FTkRdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOl0pOgotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwICAgICB8ICA0ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgfCAxNCArKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgICAgIHwgMTkgKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggICAg
ICAgICAgICB8IDE1ICsrKysKIC4uLi9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwICAgICAg
ICAgICAgICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bSAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAg
ICAgIHwgIDMgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAgICAgICAg
IHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwg
IDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gICAgIHwgIDIg
Ky0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8ICA5ICsr
LQogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIHwgIDYgKysK
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCB8ICA4ICsrLQog
Li4uL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICAgICAgICAgIHwgIDUgKysKIC4u
Li9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAgICAgICAgICB8IDI5ICsrKysrLS0t
CiAuLi4vSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAgfCAgMSArCiAu
Li4vQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgICAgICAgfCAgMSArCiAuLi4v
YXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCAgICAgfCAgNSArKwogLi4uL2lv
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICAgICAgICAgIHwgIDUgKysKIC4uLi9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAgICAgICAgICB8IDEwICsrKwogLi4uL3dpbi9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcCAgICAgICAgIHwgIDYgKysKIC4uLi9tYWMvZ3Jp
ZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQgICAgICB8IDE2ICsrKysrCiAuLi4vbWFjL2dy
aWQtc2VsZWN0ZWQtY2VsbHMuaHRtbCAgICAgICAgICAgICAgfCA3MiArKysrKysrKysrKysrKysr
KysrCiAuLi4vdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQgICAgICAgICAgICAgfCAgMyAr
CiAyNiBmaWxlcyBjaGFuZ2VkLCAyMTkgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxl
Y3RlZC1jZWxscy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDRhNWQyOTZhZjg4Ny4uOWVjN2ZjODEw
ODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNTI5
LDggKzUyOSw4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBB
WE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3RpZmljCiAgICAgY2FzZSBBWE9iamVjdENh
Y2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKICAgICAgICAg
c3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxDaGFu
Z2VkOgotICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCI7CisgICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoK
KyAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZFN0
YXRlQ2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4
IGM3OTZkODAxZjgxMi4uOWRmNzQ2MTYyYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTE0NTUsNyArMTQ1NSw3IEBAIHN0YXRpYyBi
b29sIGlzQVJJQVRhYmxlQ2VsbChOb2RlKiBub2RlKQogdm9pZCBBWE9iamVjdENhY2hlOjpvblNl
bGVjdGVkQ2hhbmdlZChOb2RlKiBub2RlKQogewogICAgIGlmIChpc0FSSUFUYWJsZUNlbGwobm9k
ZSkpCi0gICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENlbGxDaGFuZ2Vk
KTsKKyAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2Vk
KTsKICAgICBlbHNlIGlmIChpczxIVE1MT3B0aW9uRWxlbWVudD4obm9kZSkpCiAgICAgICAgIHBv
c3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCk7CiAgICAgZWxzZSBp
ZiAoYXV0byogYXhPYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKSkgewpAQCAtMTk3NCw2ICsxOTc0
LDE0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVzY2VuZGFudENoYW5nZWQo
RWxlbWVudCYgZWxlbWVudCkKICNlbmRpZgogCiAgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbih0YXJnZXQsIEFYTm90aWZpY2F0aW9uOjpBWEFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKTsK
KyAgICAgICAgCisgICAgICAgIC8vIFRhYmxlIGNlbGwgYWN0aXZlIGRlc2NlbmRhbnQgY2hhbmdl
cyBzaG91bGQgdHJpZ2dlciBzZWxlY3RlZCBjZWxsIGNoYW5nZXMuCisgICAgICAgIGlmICh0YXJn
ZXQtPmlzVGFibGUoKSAmJiBhY3RpdmVEZXNjZW5kYW50LT5pc1RhYmxlQ2VsbCgpKSB7CisjaWYg
RU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICAgICAgICAgIHVwZGF0ZUlz
b2xhdGVkVHJlZSh0YXJnZXQsIEFYTm90aWZpY2F0aW9uOjpBWFNlbGVjdGVkQ2VsbHNDaGFuZ2Vk
KTsKKyNlbmRpZgorICAgICAgICAgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKHRhcmdldCwg
QVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTM3MzMs
NyArMzc0MSw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0
IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpCiAgICAgICAgIGNhc2UgQVhSb3dJ
bmRleENoYW5nZWQ6CiAgICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlm
aWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5hbWU6OkFYUm93SW5kZXgpOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgICAgICBjYXNl
IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CisgICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlUHJv
cGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMp
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhTZWxlY3RlZFN0YXRlQ2hhbmdl
ZDoKICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQcm9wZXJ0eSgqbm90aWZpY2F0aW9uLmZp
cnN0LCBBWFByb3BlcnR5TmFtZTo6SXNTZWxlY3RlZCk7CiAgICAgICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggY2FkN2Rl
OWM5OTBjLi4zN2Q1NjI0OWJmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCkBAIC0zMjYsNyArMzI2LDcgQEAgcHVibGljOgogICAgICAgICBBWFJv
d0luZGV4Q2hhbmdlZCwKICAgICAgICAgQVhSb3dTcGFuQ2hhbmdlZCwKICAgICAgICAgQVhTZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZCwKLSAgICAgICAgQVhTZWxlY3RlZENlbGxDaGFuZ2VkLAorICAg
ICAgICBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkLAogICAgICAgICBBWFNlbGVjdGVkU3RhdGVDaGFu
Z2VkLAogICAgICAgICBBWFNlbGVjdGVkVGV4dENoYW5nZWQsCiAgICAgICAgIEFYU2V0U2l6ZUNo
YW5nZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcAppbmRleCAwYmJjYTdjZWM2ZjcuLmE4OTgyOTdhYmJmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CkBAIC0yODM0LDYgKzI4MzQsMjUgQEAgQVhDb3JlT2JqZWN0KiBBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojpmb2N1c2VkVUlFbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gcGFnZSAmJiBheE9iamVjdENh
Y2hlID8gYXhPYmplY3RDYWNoZS0+Zm9jdXNlZE9iamVjdEZvclBhZ2UocGFnZSkgOiBudWxscHRy
OwogfQogCitBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKCkKK3sKKyAgICBpZiAoIWlzVGFibGUoKSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKworICAgIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHM7CisgICAgZm9yIChhdXRvJiBjZWxsIDogY2VsbHMoKSkg
eworICAgICAgICBpZiAoY2VsbC0+aXNTZWxlY3RlZCgpKQorICAgICAgICAgICAgc2VsZWN0ZWRD
ZWxscy5hcHBlbmQoY2VsbCk7CisgICAgfQorCisgICAgaWYgKGF1dG8qIGFjdGl2ZURlc2NlbmRh
bnQgPSB0aGlzLT5hY3RpdmVEZXNjZW5kYW50KCkpIHsKKyAgICAgICAgaWYgKGFjdGl2ZURlc2Nl
bmRhbnQtPmlzVGFibGVDZWxsKCkgJiYgIXNlbGVjdGVkQ2VsbHMuY29udGFpbnMoYWN0aXZlRGVz
Y2VuZGFudCkpCisgICAgICAgICAgICBzZWxlY3RlZENlbGxzLmFwcGVuZChhY3RpdmVEZXNjZW5k
YW50KTsKKyAgICB9CisKKyAgICByZXR1cm4gc2VsZWN0ZWRDZWxsczsKK30KKwogdm9pZCBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpzZXRGb2N1c2VkKGJvb2wgZm9jdXMpCiB7CiAgICAgaWYgKGZvY3Vz
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCmluZGV4IGZhNjIzMmYyMDVhYi4uOTFjNzE0YjBhZjgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTU1LDYg
KzE1NSw3IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29sdW1u
SGVhZGVycygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcigp
OyB9CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnMoKSBvdmVycmlk
ZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQogICAgIEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciB2aXNpYmxlUm93cygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvcigpOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yIHNlbGVjdGVkQ2VsbHMoKSBvdmVycmlkZTsKICAgICBBWENvcmVPYmplY3QqIGhlYWRlckNv
bnRhaW5lcigpIG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBpbnQgYXhDb2x1bW5D
b3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICAgICBpbnQgYXhSb3dDb3VudCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXgg
YjE4NzViZGM0ZWRiLi5iOWY0NmJkYzg0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC04
OTcsNiArODk3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIGNvbHVtbkhlYWRlcnMoKSA9IDA7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3Igcm93SGVhZGVycygpID0gMDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciB2aXNpYmxlUm93cygpID0gMDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzKCkgPSAwOwogICAgIC8vIFJldHVybnMgYW4g
b2JqZWN0IHRoYXQgY29udGFpbnMsIGFzIGNoaWxkcmVuLCBhbGwgdGhlIG9iamVjdHMgdGhhdCBh
Y3QgYXMgaGVhZGVycy4KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogaGVhZGVyQ29udGFpbmVy
KCkgPSAwOwogICAgIHZpcnR1YWwgaW50IGF4Q29sdW1uQ291bnQoKSBjb25zdCA9IDA7CkBAIC0x
MjMxLDYgKzEyMzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRGV0YWNoZWRGcm9t
UGFyZW50KCkgPSAwOwogCiAgICAgYm9vbCBjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0
OworICAgIGJvb2wgY2FuSGF2ZVNlbGVjdGVkQ2VsbHMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB2aXNpYmxlQ2hpbGRyZW4oQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgPSAwOwpAQCAtMTU2MCw2ICsxNTYyLDE5IEBAIGlu
bGluZSBib29sIEFYQ29yZU9iamVjdDo6c3VwcG9ydHNMaXZlUmVnaW9uKGJvb2wgZXhjbHVkZUlm
T2ZmKSBjb25zdAogICAgIHJldHVybiBleGNsdWRlSWZPZmYgPyBsaXZlUmVnaW9uU3RhdHVzSXNF
bmFibGVkKEF0b21TdHJpbmcgeyBsaXZlUmVnaW9uU3RhdHVzVmFsdWUgfSkgOiAhbGl2ZVJlZ2lv
blN0YXR1c1ZhbHVlLmlzRW1wdHkoKTsKIH0KIAoraW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0Ojpj
YW5IYXZlU2VsZWN0ZWRDZWxscygpIGNvbnN0Cit7CisgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkg
eworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWQ6CisgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGFibGU6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZToKKyAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlR3JpZDoKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogaW5saW5lIGJv
b2wgQVhDb3JlT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0CiB7CiAgICAg
c3dpdGNoIChyb2xlVmFsdWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCmluZGV4IDAyYmUyZjQ0OTNm
Yi4uNTFjODRkMTVhMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCkBAIC03Niw3ICs3Niw2IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCog
Y29yZU9iamVjdCwgQVhOb3RpZmljCiAgICAgICAgIGlmIChjb3JlT2JqZWN0LT5pc0NoZWNrYm94
T3JSYWRpbygpIHx8IGNvcmVPYmplY3QtPmlzU3dpdGNoKCkpCiAgICAgICAgICAgICB3cmFwcGVy
LT5zdGF0ZUNoYW5nZWQoImNoZWNrZWQiLCBjb3JlT2JqZWN0LT5pc0NoZWNrZWQoKSk7CiAgICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgogICAgIGNhc2UgQVhT
ZWxlY3RlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgd3JhcHBlci0+c3RhdGVDaGFuZ2VkKCJzZWxl
Y3RlZCIsIGNvcmVPYmplY3QtPmlzU2VsZWN0ZWQoKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtODcs
NiArODYsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
WENvcmVPYmplY3QqIGNvcmVPYmplY3QsIEFYTm90aWZpYwogICAgICAgICAgICAgd3JhcHBlci0+
c3RhdGVDaGFuZ2VkKCJzZWxlY3RlZCIsIGNvcmVPYmplY3QtPmlzU2VsZWN0ZWQoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CiAgICAg
Y2FzZSBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkOgogICAgICAgICB3cmFwcGVyLT5zZWxlY3Rp
b25DaGFuZ2VkKCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggNTg3ZDdjYmVkYjgzLi5j
NDhmZTMxNjM0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9z
L0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtNTcsNyArNTcsNyBAQCBBU0NJSUxpdGVyYWwgQVhP
YmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKEFYTm90aWZpY2F0aW9uIG5vdGlm
aWNhdGlvbgogICAgIGNhc2UgQVhQYWdlU2Nyb2xsZWQ6CiAgICAgICAgIG5hbWUgPSAiQVhQYWdl
U2Nyb2xsZWQiX3M7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFu
Z2VkOgorICAgIGNhc2UgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoKICAgICAgICAgbmFtZSA9ICJB
WFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIl9zOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFYU2Vs
ZWN0ZWRUZXh0Q2hhbmdlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggNDQxMTJm
NDQzNTcxLi5hMGNmNjhkZjE5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0y
MzksNiArMjM5LDkgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGll
cyhjb25zdCBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4mIGF4T2IKICAgICAgICAgc2V0T2JqZWN0
VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2hpbGRyZW4sIHNlbGVjdGVk
Q2hpbGRyZW4pOwogICAgIH0KIAorICAgIGlmIChvYmplY3QuY2FuSGF2ZVNlbGVjdGVkQ2VsbHMo
KSkKKyAgICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNlbGVj
dGVkQ2VsbHMsIG9iamVjdC5zZWxlY3RlZENlbGxzKCkpOworCiAgICAgaWYgKG9iamVjdC5pc0lt
YWdlKCkpCiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpFbWJlZGRlZEltYWdl
RGVzY3JpcHRpb24sIG9iamVjdC5lbWJlZGRlZEltYWdlRGVzY3JpcHRpb24oKS5pc29sYXRlZENv
cHkoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAppbmRleCBhMjc0NDYwOGE2YjQuLjAzOWYx
NmM0ZTE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtMjkzLDYgKzI5Myw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciYgY2hpbGRyZW4pIG92ZXJyaWRlIHsgZmlsbENoaWxkcmVuVmVjdG9yRm9yUHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2hpbGRyZW4sIGNoaWxkcmVuKTsgfQogICAgIHZvaWQg
c2V0U2VsZWN0ZWRDaGlsZHJlbihjb25zdCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBv
dmVycmlkZTsKICAgICB2b2lkIHZpc2libGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3ImIGNoaWxkcmVuKSBvdmVycmlkZSB7IGZpbGxDaGlsZHJlblZlY3RvckZvclByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpWaXNpYmxlQ2hpbGRyZW4sIGNoaWxkcmVuKTsgfQorICAgIEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzKCkgb3ZlcnJpZGUgeyByZXR1cm4g
dHJlZSgpLT5vYmplY3RzRm9ySURzKHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVy
dHlOYW1lOjpTZWxlY3RlZENlbGxzKSk7IH0KICAgICBBdG9tU3RyaW5nIHRhZ05hbWUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBjb25zdCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNoaWxk
cmVuKGJvb2wgdXBkYXRlQ2hpbGRyZW5JZk5lZWRlZCA9IHRydWUpIG92ZXJyaWRlOwogICAgIHZv
aWQgdXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmgKaW5kZXggZGMzNGNiMzlhN2NlLi4xMmJmNDMxNGY2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
aApAQCAtMTk5LDYgKzE5OSw3IEBAIGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5hbWUgOiB1aW50MTZf
dCB7CiAgICAgUm93SGVhZGVycywKICAgICBSb3dJbmRleCwKICAgICBSb3dJbmRleFJhbmdlLAor
ICAgIFNlbGVjdGVkQ2VsbHMsCiAgICAgU2VsZWN0ZWRDaGlsZHJlbiwKICAgICBTZXNzaW9uSUQs
CiAgICAgU2V0U2l6ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGU5ZjUxYjhlZjY5My4uNmNmYjE5ZWIzYmViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW0KQEAgLTM2Niw3ICszNjYsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwgQVhOb3RpZmljYXRpbwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24gPSBOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZENoaWxkcmVuQ2hhbmdlZE5vdGlmaWNhdGlvbjsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBBWFNlbGVjdGVkQ2VsbENoYW5nZWQ6CisgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbHNDaGFu
Z2VkOgogICAgICAgICBtYWNOb3RpZmljYXRpb24gPSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENl
bGxzQ2hhbmdlZE5vdGlmaWNhdGlvbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWFNlbGVj
dGVkVGV4dENoYW5nZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmlu
ZGV4IGRjM2ZlN2U4YmFjYi4uYmQxYWIzMTFhOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQpAQCAtMTA4MSw2ICsxMDgxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9J
TVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNz
aWJpbGl0eVJvd0NvdW50QXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5QVJJQUNvbHVtbkNvdW50QXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBB
cnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQVJvd0NvdW50QXR0cmlidXRlXTsKKyAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0
dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZCB0YWJsZVJvd0F0dHJzID0gW10gewpAQCAtMTgzNSwxMSArMTgzNiwx
MyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgICAgIHJl
dHVybiBtYWtlTlNBcnJheShzZWxlY3RlZENoaWxkcmVuQ29weSk7CiAgICAgICAgIH0KIAotICAg
ICAgICAvLyBIVE1MIHRhYmxlcyBkb24ndCBzdXBwb3J0IHRoZXNlIGF0dHJpYnV0ZXMuCi0gICAg
ICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRDb2x1bW5zQXR0cmlidXRlXQotICAgICAgICAgICAgfHwgW2F0dHJpYnV0ZU5hbWUgaXNF
cXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGVdKQorICAg
ICAgICAvLyBIVE1MIHRhYmxlcyBkb24ndCBzdXBwb3J0IHRoaXMgYXR0cmlidXRlIHlldC4KKyAg
ICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZENvbHVtbnNBdHRyaWJ1dGVdKQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKIAorICAg
ICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNl
bGVjdGVkQ2VsbHNBdHRyaWJ1dGVdKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VOU0FycmF5KGJh
Y2tpbmdPYmplY3QtPnNlbGVjdGVkQ2VsbHMoKSk7CisKICAgICAgICAgaWYgKFthdHRyaWJ1dGVO
YW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlDb2x1bW5IZWFkZXJVSUVsZW1lbnRz
QXR0cmlidXRlXSkKICAgICAgICAgICAgIHJldHVybiBtYWtlTlNBcnJheShiYWNraW5nT2JqZWN0
LT5jb2x1bW5IZWFkZXJzKCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IGI5ZTc5MjUxY2JmOS4uNmM3YmMwYjczOTU4IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAt
NjE4LDYgKzYxOCwxMSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiByb3dIZWFkZXJzQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLAogICAgIHJldHVybiBjb252
ZXJ0RWxlbWVudHNUb09iamVjdEFycmF5KGNvbnRleHQsIGVsZW1lbnRzKTsKIH0KIAorc3RhdGlj
IEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxsc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKK3sKKyAgICByZXR1cm4gdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnNlbGVjdGVkQ2Vs
bHMoY29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIHVpRWxlbWVudEFycmF5QXR0cmli
dXRlVmFsdWVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYg
KGFyZ3VtZW50Q291bnQgIT0gMSkKQEAgLTIwNzgsNiArMjA4Myw3IEBAIEpTQ2xhc3NSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcygpCiAgICAgICAgIHsgInNldFNlbGVjdGVk
VGV4dFJhbmdlIiwgc2V0U2VsZWN0ZWRUZXh0UmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJzdHJpbmdBdHRyaWJ1dGVWYWx1ZSIsIHN0cmluZ0F0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAidWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1ZSIsIHVpRWxl
bWVudEFycmF5QXR0cmlidXRlVmFsdWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzZWxl
Y3RlZENlbGxzIiwgc2VsZWN0ZWRDZWxsc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJv
d0hlYWRlcnMiLCByb3dIZWFkZXJzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY29sdW1u
SGVhZGVycyIsIGNvbHVtbkhlYWRlcnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ1aUVs
ZW1lbnRBdHRyaWJ1dGVWYWx1ZSIsIHVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApp
bmRleCA3MmNlZTkyM2FkNGQuLmYzODE3MDk2OTk1NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMjAzLDcgKzIwMyw4IEBAIHB1YmxpYzoK
ICAgICBpbnQgY29sdW1uQ291bnQoKTsKICAgICB2b2lkIHJvd0hlYWRlcnMoVmVjdG9yPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50cykgY29uc3Q7CiAgICAgdm9pZCBjb2x1bW5IZWFk
ZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0OwotICAg
IAorICAgIEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxscyhKU0NvbnRleHRSZWYpIGNvbnN0OworCiAg
ICAgLy8gVHJlZS9PdXRsaW5lIHNwZWNpZmljIGF0dHJpYnV0ZXMKICAgICBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50IHNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCk7CiAgICAgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCBkaXNjbG9zZWRCeVJvdygpOwpAQCAtMzQ0LDEwICszNDUsMTEgQEAgcHVibGlj
OgogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBtYXRoUG9zdHNjcmlwdHNEZXNjcmlwdGlv
bigpIGNvbnN0OwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBtYXRoUHJlc2NyaXB0c0Rl
c2NyaXB0aW9uKCkgY29uc3Q7CiAjZW5kaWYKLSAgICAKLXByaXZhdGU6CisKICAgICBzdGF0aWMg
SlNDbGFzc1JlZiBnZXRKU0NsYXNzKCk7CiAKK3ByaXZhdGU6CisKICNpZiAhUExBVEZPUk0oQ09D
T0EpCiAgICAgUGxhdGZvcm1VSUVsZW1lbnQgbV9lbGVtZW50OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCmlu
ZGV4IDQzMzA0ZTQxZTk0MS4uN2YxNzY3OTkwNTQzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMTI3MSw2ICsx
MjcxLDExIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93SGVhZGVycyhWZWN0b3I8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mKSBjb25zdAogewogfQogCitKU1ZhbHVlUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoSlNDb250ZXh0UmVmKSBjb25zdAorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCiB1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAogewogICAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bQppbmRleCA4MTM0MTFmOTJiMzguLjM1OWI0OGQzMjU2MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE3MCwx
NSArMTcwLDYgQEAgc3RhdGljIE5TU3RyaW5nKiBhdHRyaWJ1dGVzT2ZFbGVtZW50KGlkIGFjY2Vz
c2liaWxpdHlPYmplY3QpCiAgICAgcmV0dXJuIGF0dHJpYnV0ZXNTdHJpbmc7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBKU09iamVjdFJlZiBjb252ZXJ0VmVjdG9yVG9PYmplY3RB
cnJheShKU0NvbnRleHRSZWYgY29udGV4dCwgVmVjdG9yPFQ+IGNvbnN0JiBlbGVtZW50cykKLXsK
LSAgICBhdXRvIGFycmF5ID0gSlNPYmplY3RNYWtlQXJyYXkoY29udGV4dCwgMCwgbnVsbHB0ciwg
bnVsbHB0cik7Ci0gICAgdW5zaWduZWQgc2l6ZSA9IGVsZW1lbnRzLnNpemUoKTsKLSAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBKU09iamVjdFNldFByb3Bl
cnR5QXRJbmRleChjb250ZXh0LCBhcnJheSwgaSwgSlNPYmplY3RNYWtlKGNvbnRleHQsIGVsZW1l
bnRzW2ldLmdldEpTQ2xhc3MoKSwgbmV3IFQoZWxlbWVudHNbaV0pKSwgbnVsbHB0cik7Ci0gICAg
cmV0dXJuIGFycmF5OwotfQotCiBzdGF0aWMgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvbmNh
dGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoTlNTdHJpbmcgKmF0dHJpYnV0ZSwgTlNTdHJpbmcgKnZh
bHVlKQogewogICAgIFZlY3RvcjxVbmlDaGFyPiBidWZmZXIoW2F0dHJpYnV0ZSBsZW5ndGhdKTsK
QEAgLTIwNSw2ICsxOTYsMTUgQEAgc3RhdGljIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBkZXNj
cmlwdGlvbk9mRWxlbWVudHMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW0KICAgICByZXR1cm4g
W2FsbEVsZW1lbnRTdHJpbmcgY3JlYXRlSlNTdHJpbmdSZWZdOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdGF0aWMgSlNPYmplY3RSZWYgY29udmVydFZlY3RvclRvT2JqZWN0QXJyYXkoSlND
b250ZXh0UmVmIGNvbnRleHQsIFZlY3RvcjxUPiBjb25zdCYgZWxlbWVudHMpCit7CisgICAgYXV0
byBhcnJheSA9IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIDAsIG51bGxwdHIsIG51bGxwdHIp
OworICAgIHVuc2lnbmVkIHNpemUgPSBlbGVtZW50cy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5k
ZXgoY29udGV4dCwgYXJyYXksIGksIEpTT2JqZWN0TWFrZShjb250ZXh0LCBlbGVtZW50c1tpXS5n
ZXRKU0NsYXNzKCksIG5ldyBUKGVsZW1lbnRzW2ldKSksIG51bGxwdHIpOworICAgIHJldHVybiBh
cnJheTsKK30KKwogc3RhdGljIE5TRGljdGlvbmFyeSAqc2VsZWN0VGV4dFBhcmFtZXRlcml6ZWRB
dHRyaWJ1dGVGb3JDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgYW1i
aWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJpbmdzLCBKU1N0cmluZ1JlZiBy
ZXBsYWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkpCiB7CiAgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IFtOU011dGFibGVEaWN0aW9uYXJ5
IGRpY3Rpb25hcnldOwpAQCAtNTA5LDYgKzUwOSwxNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoTlNTdHJpbmcg
KgogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoSlNDb250ZXh0UmVmIGNvbnRleHQpIGNvbnN0Cit7CisgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgaWQgdmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQXR0cmli
dXRlXTsKKyAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAg
ICAgICAgcmV0dXJuIGNvbnZlcnRWZWN0b3JUb09iamVjdEFycmF5KGNvbnRleHQsIG1ha2VWZWN0
b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4odmFsdWUpKTsKKyAgICBFTkRfQVhfT0JKQ19FWENF
UFRJT05TCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKwogdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpyb3dIZWFkZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxlbWVu
dHMpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oCmluZGV4IDdiNDgwN2I4NTJlYy4uODg1NDkwMjU5YzgzIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMjQzLDYgKzI0Myw3IEBAIHB1YmxpYzoKICAgICBKU1Zh
bHVlUmVmIHJvd0hlYWRlcnMoKSBjb25zdDsKICAgICBKU1ZhbHVlUmVmIGNvbHVtbkhlYWRlcnMo
KSBjb25zdDsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY3VzdG9tQ29udGVudCgpIGNv
bnN0OworICAgIEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxscygpIGNvbnN0OwogCiAgICAgLy8gVHJl
ZS9PdXRsaW5lIHNwZWNpZmljIGF0dHJpYnV0ZXMKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gc2VsZWN0ZWRSb3dBdEluZGV4KHVuc2lnbmVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IGY0NDBhYmI1MGMwYS4uYTRmZWRl
MTBhZTRjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5p
ZGwKQEAgLTE4MCw2ICsxODAsNyBAQAogICAgIG9iamVjdCBjb2x1bW5IZWFkZXJzKCk7CiAgICAg
b2JqZWN0IHJvd0hlYWRlcnMoKTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGN1
c3RvbUNvbnRlbnQ7CisgICAgb2JqZWN0IHNlbGVjdGVkQ2VsbHMoKTsKIAogICAgIG9iamVjdCBk
ZXRhaWxzRWxlbWVudHMoKTsKICAgICBvYmplY3QgZXJyb3JNZXNzYWdlRWxlbWVudHMoKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcAppbmRleCA0
NTg0YzBmYzI3OTIuLmQxNGUyZjljMGJlNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9hdHNwaS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRzcGkuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcApAQCAtNTI1LDYgKzUyNSwxMSBAQCBKU1ZhbHVlUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAogICAgIHJldHVy
biBtYWtlSlNBcnJheSh7IH0pOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIHJldHVybiBtYWtlSlNBcnJheSh7IH0p
OworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBlbGVtZW50c0ZvclJlbGF0aW9uKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3RBdHNwaSogZWxlbWVudCwgV2ViQ29yZTo6QXRzcGk6OlJlbGF0aW9u
IHJlbGF0aW9uKQogewogICAgIGVsZW1lbnQtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXggOTUyYjZkYzMyMjgwLi43
ODJkMDFhZWQzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5t
bQpAQCAtNDYwLDYgKzQ2MCwxMSBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJvd0hlYWRlcnMoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIHJl
dHVybiBudWxscHRyOworfQorCiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNv
bHVtbkhlYWRlcnMoKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggYTg1NTA4MDE0MDU1Li42NzU2ZDE2
ZmM4YzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAt
NDI1LDYgKzQyNSwxNiBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hl
YWRlcnMoKSBjb25zdAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIH0KIAorSlNWYWx1ZVJl
ZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICBC
RUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWUo
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZSk7CisgICAgaWYgKFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgIHJldHVybiBtYWtlSlNBcnJh
eShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4odmFsdWUuZ2V0KCkp
KTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
IEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0
CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2lu
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRXaW4uY3BwCmluZGV4IGZmMDc5MGZmYTc3YS4uYWQ0OWViNTQ0NDliIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcApAQCAtMjMyLDYg
KzIzMiwxMiBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRl
cnMoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShK
U1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2Vs
bHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxl
Y3RlZC1jZWxscy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4yNmI5Nzc3ZjliY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE2IEBACitUaGlzIHRlc3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMgd2lsbCByZXR1cm4gYW5kIHBv
c3Qgc2VsZWN0ZWQgY2VsbHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
OiBncmlkLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMnKSA9PT0gdHJ1ZQor
UEFTUzogZ3JpZC5zZWxlY3RlZENlbGxzKClbMF0uaXNFcXVhbChzZWxlY3RlZENlbGwpID09PSB0
cnVlCitSZWNlaXZlZCBub3RpZmljYXRpb246IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQKK1BBU1M6
IGdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
YWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdjZWxsMScpKSA9PT0gdHJ1ZQorUEFTUzogZ3JpZC5zZWxl
Y3RlZENlbGxzKClbMV0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2NlbGwyJykpID09PSB0cnVlCitSZWNlaXZlZCBub3RpZmljYXRpb246IEFY
U2VsZWN0ZWRDZWxsc0NoYW5nZWQKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLjRlYjI0OTQ5NWY4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbApAQCAtMCwwICsxLDcy
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImNvbnRlbnQiPgorPHRh
YmxlIHRhYmluZGV4PTAgaWQ9ImdyaWQiIHJvbGU9ImdyaWQiIGFyaWEtbGFiZWxsZWRieT0iZ3Jp
ZC0xLWhlYWRlciIgYm9yZGVyPSIxIiBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9ImNlbGwxIj4KKzx0
aGVhZD4KKyAgICA8dHIgY2E9InRyIiByb2xlPSJyb3ciIGFyaWEtbGV2ZWw9IjEiIGlkPSJyb3cx
Ij4KKyAgICAgICAgPHRoIGlkPSJncmlkLTEtaXNibl9pZCI+Qm9vayBOYW1lIC8gSVNCTjwvdGg+
PHRoIGlkPSJncmlkLTEtYXV0aG9yX2lkIj5BdXRob3I8L3RoPjx0aCBpZD0iZ3JpZC0xLXByaWNl
X2lkIiBjbGFzcz0ibnVtZXJpYyIgPlByaWNlICgkKTwvdGg+CisgICAgPC90cj4KKzwvdGhlYWQ+
Cis8dGJvZHk+CisgICAgPHRyIGNhPSJ0byIgcm9sZT0icm93IiBhcmlhLWxldmVsPSIxIiBhcmlh
LWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtdGl0bGVfaWQi
IGlkPSJ0YWJsZV9lbnRyeSIgcm9sZT0iZ3JpZGNlbGwiIGNvbHNwYW49IjMiICB0YWJpbmRleD0i
MCI+CisgICAgICAgICA8c3BhbiBjbGFzcz0iZXhwYW5kIj4rPC9zcGFuPiBBIFF1ZXN0aW9uIG9m
IExvdmU8L3RkPiAgICAgICAgICAgICAgICAgIAorICAgICA8L3RyPgorICAgICA8dHIgY2E9InRp
IiByb2xlPSJyb3ciICBhcmlhLWxldmVsPSIyIiBhcmlhLWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAg
ICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtaXNibl9pZCIgcm9sZT0iZ3JpZGNlbGwiIGlkPSJjZWxs
MSI+OTc4LTMtNDUzLTQwNTQwLTA8L3RkPgorICAgICAgICAgPHRkIGhlYWRlcnM9ImdyaWQtMS1h
dXRob3JfaWQiIHJvbGU9ImdyaWRjZWxsIiBpZD0iY2VsbDIiPk5vcmEgUm9iZXJ0czwvdGQ+Cisg
ICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLXByaWNlX2lkIiBjbGFzcz0ibnVtZXJpYyIgcm9s
ZT0iZ3JpZGNlbGwiIGNhPSJ0ZSI+PGRpdj45Ljk5PC9kaXY+PC90ZD4KKyAgICAgPC90cj4KKzwv
dGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMgd2lsbCByZXR1cm4gYW5kIHBvc3Qgc2VsZWN0ZWQg
Y2VsbHMuIik7CisKK2lmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWUKKworICAgIHZhciBvdXRwdXQgPSAiIjsKKyAgICB2
YXIgZ3JpZCwgc2VsZWN0ZWRDZWxsbDsKKyAgICB2YXIgbm90aWZpY2F0aW9uQ291bnQgPSAwOwor
ICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKGZ1bmN0
aW9uKGVsZW1lbnQsIG5vdGlmaWNhdGlvbikgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09
ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIikgeworICAgICAgICAgICAgb3V0cHV0ICs9ICJSZWNl
aXZlZCBub3RpZmljYXRpb246ICIgKyBub3RpZmljYXRpb24gKyAiXG4iOworICAgICAgICAgICAg
bm90aWZpY2F0aW9uQ291bnQrKzsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb25Db3VudCA9
PSAyKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQi
KS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7CisgICAgICAgICAgICAgICAgZGVidWcob3V0
cHV0KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0pOworCisgICAgLy8gRm9jdXMgdGhlIGdyaWQgc28gaXQgY2FuIGhhbmRs
ZSBhY3RpdmUgZGVzY2VuZGFudHMuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWQi
KS5mb2N1cygpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGdyaWQgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyaWQiKTsKKyAg
ICAgICAgc2VsZWN0ZWRDZWxsID0gZ3JpZC5jaGlsZEF0SW5kZXgoMikuY2hpbGRBdEluZGV4KDAp
OworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJncmlkLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdB
WFNlbGVjdGVkQ2VsbHMnKSIsICJ0cnVlIik7CisgICAgICAgIG91dHB1dCArPSBleHBlY3QoImdy
aWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoc2VsZWN0ZWRDZWxsKSIsICJ0cnVlIik7CisK
KyAgICAgICAgLy8gTm93IGNoYW5nZSB0aGUgc2VsZWN0ZWQgY2VsbCB0byB0cmlnZ2VyIHRoZSBu
b3RpZmljYXRpb24uCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkIikuc2V0
QXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLCAiY2VsbDIiKTsKKworICAgICAgICAv
LyBOb3cgY2hhbmdlIHdpdGggYXJpYS1zZWxlY3RlZCB0byBlbnN1cmUgd2UgYWxzbyBnZXQgdGhl
IHJpZ2h0IG5vdGlmaWNhdGlvbi4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNl
bGwxIikuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwgInRydWUiKTsKKyAgICAgICAgb3V0
cHV0ICs9IGV4cGVjdCgiZ3JpZC5zZWxlY3RlZENlbGxzKClbMF0uaXNFcXVhbChhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2NlbGwxJykpIiwgInRydWUiKTsK
KyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5zZWxlY3RlZENlbGxzKClbMV0uaXNFcXVh
bChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2NlbGwyJykp
IiwgInRydWUiKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVz
LWV4cGVjdGVkLnR4dAppbmRleCBmODYyYzljNjNjYTkuLjllOWY4YWViZDU1NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0
ZWQudHh0CkBAIC00Nyw2ICs0Nyw3IEBAIEFYQ29sdW1uQ291bnQ6IDIKIEFYUm93Q291bnQ6IDEK
IEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAorQVhTZWxlY3RlZENlbGxz
OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhFbGVtZW50QnVzeTogMAogCiAKQEAgLTkyLDYgKzkzLDcg
QEAgQVhDb2x1bW5Db3VudDogMgogQVhSb3dDb3VudDogMQogQVhBUklBQ29sdW1uQ291bnQ6IDAK
IEFYQVJJQVJvd0NvdW50OiAwCitBWFNlbGVjdGVkQ2VsbHM6IDxhcnJheSBvZiBzaXplIDA+CiBB
WEVsZW1lbnRCdXN5OiAwCiAKIApAQCAtMTM3LDYgKzEzOSw3IEBAIEFYQ29sdW1uQ291bnQ6IDIK
IEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAor
QVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhFbGVtZW50QnVzeTogMAogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465991</attachid>
            <date>2023-04-19 15:19:17 -0700</date>
            <delta_ts>2023-04-20 11:13:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230419151913.patch</filename>
            <type>text/plain</type>
            <size>31918</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSA3ZjFkNGE1N2VkZDFjM2E1YTcwZWY5MzY3NDI4ZDkyMjRjM2Q0MDllIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBUeWxlciBXaWxjb2NrLgoKVG8gc3VwcG9ydCB0aGUgYXJpYS1hY3RpdmVkZXNjZW5kYW50
IGZsb3cgdGhhdCBpcyBiZWluZyBkZXNjcmliZWQsIHdlIG5lZWQgdG8gc3VwcG9ydCBBWFNlbGVj
dGVkQ2VsbHMgZm9yIHRhYmxlcyBhbmQgZ3JpZHMuClRoaXMgYm9pbHMgZG93biB0bzoKICAxKSBF
eHBvc2luZyBhbmQgaW1wbGVtZW50aW5nIEFYU2VsZWN0ZWRDZWxscyBhcyBhbiBhdHRyaWJ1dGUu
CiAgMikgUG9zdGluZyBub3RpZmljYXRpb25zIHdoZW4gaXQgY2hhbmdlcy4KICAzKSBJbXBsZW1l
bnRpbmcgV0tUUiBhbmQgRFJUIG1ldGhvZHMgZm9yIGZldGNoaW5nCiAgNCkgQ2hhbmdpbmcgdGhl
IG9sZGVyLCB1bnVzZWQgQVhTZWxlY3RlZENlbGwgLT4gQVhTZWxlY3RlZENlbGxzLgoKKiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1j
ZWxscy5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2Vy
LmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblNlbGVjdGVk
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50
Q2hhbmdlZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKFdlYkNvcmU6OkFYQ29yZU9i
amVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2VsbHMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CihXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpub3RpZmljYXRpb25QbGF0Zm9ybU5hbWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CihXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgooLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19FTkRdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOl0pOgotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwICAgICB8ICA0ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgfCAxNCArKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAgICAgIHwgMTkgKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCAgICAgICB8ICAxICsKIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggICAg
ICAgICAgICB8IDE1ICsrKysKIC4uLi9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwICAgICAg
ICAgICAgICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bSAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAg
ICAgIHwgIDMgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggICAgICAgICAg
IHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwg
IDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gICAgIHwgIDIg
Ky0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8ICA5ICsr
LQogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIHwgIDYgKysK
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCB8ICA4ICsrLQog
Li4uL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICAgICAgICAgIHwgIDUgKysKIC4u
Li9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAgICAgICAgICB8IDI5ICsrKysrLS0t
CiAuLi4vSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAgfCAgMSArCiAu
Li4vQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgICAgICAgfCAgMSArCiAuLi4v
YXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCAgICAgfCAgNSArKwogLi4uL2lv
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICAgICAgICAgIHwgIDUgKysKIC4uLi9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAgICAgICAgICB8IDEwICsrKwogLi4uL3dpbi9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcCAgICAgICAgIHwgIDYgKysKIC4uLi9tYWMvZ3Jp
ZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQgICAgICB8IDE2ICsrKysrCiAuLi4vbWFjL2dy
aWQtc2VsZWN0ZWQtY2VsbHMuaHRtbCAgICAgICAgICAgICAgfCA3MiArKysrKysrKysrKysrKysr
KysrCiAuLi4vdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQgICAgICAgICAgICAgfCAgMyAr
CiAyNiBmaWxlcyBjaGFuZ2VkLCAyMTkgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZ3JpZC1zZWxl
Y3RlZC1jZWxscy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDRhNWQyOTZhZjg4Ny4uOWVjN2ZjODEw
ODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNTI5
LDggKzUyOSw4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBB
WE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3RpZmljCiAgICAgY2FzZSBBWE9iamVjdENh
Y2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKICAgICAgICAg
c3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxDaGFu
Z2VkOgotICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRDZWxsQ2hhbmdlZCI7CisgICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoK
KyAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhTZWxlY3RlZFN0
YXRlQ2hhbmdlZDoKICAgICAgICAgc3RyZWFtIDw8ICJBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4
IDAzNjhkYWM2MTkwMi4uMGY0MGJlMTAyZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTE0NTUsNyArMTQ1NSw3IEBAIHN0YXRpYyBi
b29sIGlzQVJJQVRhYmxlQ2VsbChOb2RlKiBub2RlKQogdm9pZCBBWE9iamVjdENhY2hlOjpvblNl
bGVjdGVkQ2hhbmdlZChOb2RlKiBub2RlKQogewogICAgIGlmIChpc0FSSUFUYWJsZUNlbGwobm9k
ZSkpCi0gICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENlbGxDaGFuZ2Vk
KTsKKyAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2Vk
KTsKICAgICBlbHNlIGlmIChpczxIVE1MT3B0aW9uRWxlbWVudD4obm9kZSkpCiAgICAgICAgIHBv
c3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCk7CiAgICAgZWxzZSBp
ZiAoYXV0byogYXhPYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKSkgewpAQCAtMTk3NCw2ICsxOTc0
LDE0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZlRGVzY2VuZGFudENoYW5nZWQo
RWxlbWVudCYgZWxlbWVudCkKICNlbmRpZgogCiAgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbih0YXJnZXQsIEFYTm90aWZpY2F0aW9uOjpBWEFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKTsK
KyAgICAgICAgCisgICAgICAgIC8vIFRhYmxlIGNlbGwgYWN0aXZlIGRlc2NlbmRhbnQgY2hhbmdl
cyBzaG91bGQgdHJpZ2dlciBzZWxlY3RlZCBjZWxsIGNoYW5nZXMuCisgICAgICAgIGlmICh0YXJn
ZXQtPmlzVGFibGUoKSAmJiBhY3RpdmVEZXNjZW5kYW50LT5pc1RhYmxlQ2VsbCgpKSB7CisjaWYg
RU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICAgICAgICAgIHVwZGF0ZUlz
b2xhdGVkVHJlZSh0YXJnZXQsIEFYTm90aWZpY2F0aW9uOjpBWFNlbGVjdGVkQ2VsbHNDaGFuZ2Vk
KTsKKyNlbmRpZgorICAgICAgICAgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKHRhcmdldCwg
QVhTZWxlY3RlZENlbGxzQ2hhbmdlZCk7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTM3MzMs
NyArMzc0MSw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0
IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpCiAgICAgICAgIGNhc2UgQVhSb3dJ
bmRleENoYW5nZWQ6CiAgICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlUHJvcGVydHkoKm5vdGlm
aWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5hbWU6OkFYUm93SW5kZXgpOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgICAgICBjYXNl
IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CisgICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlUHJv
cGVydHkoKm5vdGlmaWNhdGlvbi5maXJzdCwgQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMp
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhTZWxlY3RlZFN0YXRlQ2hhbmdl
ZDoKICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGVQcm9wZXJ0eSgqbm90aWZpY2F0aW9uLmZp
cnN0LCBBWFByb3BlcnR5TmFtZTo6SXNTZWxlY3RlZCk7CiAgICAgICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggY2FkN2Rl
OWM5OTBjLi4zN2Q1NjI0OWJmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCkBAIC0zMjYsNyArMzI2LDcgQEAgcHVibGljOgogICAgICAgICBBWFJv
d0luZGV4Q2hhbmdlZCwKICAgICAgICAgQVhSb3dTcGFuQ2hhbmdlZCwKICAgICAgICAgQVhTZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZCwKLSAgICAgICAgQVhTZWxlY3RlZENlbGxDaGFuZ2VkLAorICAg
ICAgICBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkLAogICAgICAgICBBWFNlbGVjdGVkU3RhdGVDaGFu
Z2VkLAogICAgICAgICBBWFNlbGVjdGVkVGV4dENoYW5nZWQsCiAgICAgICAgIEFYU2V0U2l6ZUNo
YW5nZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcAppbmRleCBlMDhkNTc1YmM5MzQuLjVjZDE4MjQxZWYwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CkBAIC0yOTEzLDYgKzI5MTMsMjUgQEAgQVhDb3JlT2JqZWN0KiBBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojpmb2N1c2VkVUlFbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gcGFnZSAmJiBheE9iamVjdENh
Y2hlID8gYXhPYmplY3RDYWNoZS0+Zm9jdXNlZE9iamVjdEZvclBhZ2UocGFnZSkgOiBudWxscHRy
OwogfQogCitBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpzZWxlY3RlZENlbGxzKCkKK3sKKyAgICBpZiAoIWlzVGFibGUoKSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKworICAgIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHM7CisgICAgZm9yIChhdXRvJiBjZWxsIDogY2VsbHMoKSkg
eworICAgICAgICBpZiAoY2VsbC0+aXNTZWxlY3RlZCgpKQorICAgICAgICAgICAgc2VsZWN0ZWRD
ZWxscy5hcHBlbmQoY2VsbCk7CisgICAgfQorCisgICAgaWYgKGF1dG8qIGFjdGl2ZURlc2NlbmRh
bnQgPSB0aGlzLT5hY3RpdmVEZXNjZW5kYW50KCkpIHsKKyAgICAgICAgaWYgKGFjdGl2ZURlc2Nl
bmRhbnQtPmlzVGFibGVDZWxsKCkgJiYgIXNlbGVjdGVkQ2VsbHMuY29udGFpbnMoYWN0aXZlRGVz
Y2VuZGFudCkpCisgICAgICAgICAgICBzZWxlY3RlZENlbGxzLmFwcGVuZChhY3RpdmVEZXNjZW5k
YW50KTsKKyAgICB9CisKKyAgICByZXR1cm4gc2VsZWN0ZWRDZWxsczsKK30KKwogdm9pZCBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpzZXRGb2N1c2VkKGJvb2wgZm9jdXMpCiB7CiAgICAgaWYgKGZvY3Vz
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCmluZGV4IGU3YTk3ZmI5MDcwNS4uMWExYmViNTZmNzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTQ5LDYg
KzE0OSw3IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29sdW1u
SGVhZGVycygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcigp
OyB9CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnMoKSBvdmVycmlk
ZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IoKTsgfQogICAgIEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciB2aXNpYmxlUm93cygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvcigpOyB9CisgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yIHNlbGVjdGVkQ2VsbHMoKSBvdmVycmlkZTsKICAgICBBWENvcmVPYmplY3QqIGhlYWRlckNv
bnRhaW5lcigpIG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBpbnQgYXhDb2x1bW5D
b3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICAgICBpbnQgYXhSb3dDb3VudCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXgg
NzI4M2FiYTg4YmYwLi42NjlhYzRlOGU3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC04
OTcsNiArODk3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIGNvbHVtbkhlYWRlcnMoKSA9IDA7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3Igcm93SGVhZGVycygpID0gMDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciB2aXNpYmxlUm93cygpID0gMDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzKCkgPSAwOwogICAgIC8vIFJldHVybnMgYW4g
b2JqZWN0IHRoYXQgY29udGFpbnMsIGFzIGNoaWxkcmVuLCBhbGwgdGhlIG9iamVjdHMgdGhhdCBh
Y3QgYXMgaGVhZGVycy4KICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogaGVhZGVyQ29udGFpbmVy
KCkgPSAwOwogICAgIHZpcnR1YWwgaW50IGF4Q29sdW1uQ291bnQoKSBjb25zdCA9IDA7CkBAIC0x
MjQ5LDYgKzEyNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRGV0YWNoZWRGcm9t
UGFyZW50KCkgPSAwOwogCiAgICAgYm9vbCBjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0
OworICAgIGJvb2wgY2FuSGF2ZVNlbGVjdGVkQ2VsbHMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJikgPSAwOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yIHZpc2libGVDaGlsZHJlbigpID0gMDsKQEAgLTE1NzgsNiArMTU4MCwxOSBAQCBpbmxpbmUg
Ym9vbCBBWENvcmVPYmplY3Q6OnN1cHBvcnRzTGl2ZVJlZ2lvbihib29sIGV4Y2x1ZGVJZk9mZikg
Y29uc3QKICAgICByZXR1cm4gZXhjbHVkZUlmT2ZmID8gbGl2ZVJlZ2lvblN0YXR1c0lzRW5hYmxl
ZChBdG9tU3RyaW5nIHsgbGl2ZVJlZ2lvblN0YXR1c1ZhbHVlIH0pIDogIWxpdmVSZWdpb25TdGF0
dXNWYWx1ZS5pc0VtcHR5KCk7CiB9CiAKK2lubGluZSBib29sIEFYQ29yZU9iamVjdDo6Y2FuSGF2
ZVNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKKyAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlkOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlRhYmxlOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWU6CisgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIGlubGluZSBib29sIEFY
Q29yZU9iamVjdDo6Y2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4oKSBjb25zdAogewogICAgIHN3aXRj
aCAocm9sZVZhbHVlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcAppbmRleCAwMmJlMmY0NDkzZmIuLjUx
Yzg0ZDE1YTBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNw
aS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcApAQCAtNzYsNyArNzYsNiBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIGNvcmVP
YmplY3QsIEFYTm90aWZpYwogICAgICAgICBpZiAoY29yZU9iamVjdC0+aXNDaGVja2JveE9yUmFk
aW8oKSB8fCBjb3JlT2JqZWN0LT5pc1N3aXRjaCgpKQogICAgICAgICAgICAgd3JhcHBlci0+c3Rh
dGVDaGFuZ2VkKCJjaGVja2VkIiwgY29yZU9iamVjdC0+aXNDaGVja2VkKCkpOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoKICAgICBjYXNlIEFYU2VsZWN0
ZWRTdGF0ZUNoYW5nZWQ6CiAgICAgICAgIHdyYXBwZXItPnN0YXRlQ2hhbmdlZCgic2VsZWN0ZWQi
LCBjb3JlT2JqZWN0LT5pc1NlbGVjdGVkKCkpOwogICAgICAgICBicmVhazsKQEAgLTg3LDYgKzg2
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3Jl
T2JqZWN0KiBjb3JlT2JqZWN0LCBBWE5vdGlmaWMKICAgICAgICAgICAgIHdyYXBwZXItPnN0YXRl
Q2hhbmdlZCgic2VsZWN0ZWQiLCBjb3JlT2JqZWN0LT5pc1NlbGVjdGVkKCkpOwogICAgICAgICBi
cmVhazsKICAgICB9CisgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkOgogICAgIGNhc2Ug
QVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKICAgICAgICAgd3JhcHBlci0+c2VsZWN0aW9uQ2hh
bmdlZCgpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDU4N2Q3Y2JlZGI4My4uYzQ4ZmUz
MTYzNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FY
T2JqZWN0Q2FjaGVJT1MubW0KQEAgLTU3LDcgKzU3LDcgQEAgQVNDSUlMaXRlcmFsIEFYT2JqZWN0
Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZShBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRp
b24KICAgICBjYXNlIEFYUGFnZVNjcm9sbGVkOgogICAgICAgICBuYW1lID0gIkFYUGFnZVNjcm9s
bGVkIl9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsQ2hhbmdlZDoK
KyAgICBjYXNlIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQ6CiAgICAgICAgIG5hbWUgPSAiQVhTZWxl
Y3RlZENlbGxzQ2hhbmdlZCJfczsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWFNlbGVjdGVk
VGV4dENoYW5nZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IGQwZTJkNTRlOTI4
Mi4uYmRjMWY0ZDE4ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMjM1LDYg
KzIzNSw5IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoY29u
c3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9iCiAgICAgICAgIHNldE9iamVjdFZlY3Rv
clByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENoaWxkcmVuLCBzZWxlY3RlZENoaWxk
cmVuKTsKICAgICB9CiAKKyAgICBpZiAob2JqZWN0LmNhbkhhdmVTZWxlY3RlZENlbGxzKCkpCisg
ICAgICAgIHNldE9iamVjdFZlY3RvclByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENl
bGxzLCBvYmplY3Quc2VsZWN0ZWRDZWxscygpKTsKKwogICAgIGlmIChvYmplY3QuaXNJbWFnZSgp
KQogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RW1iZWRkZWRJbWFnZURlc2Ny
aXB0aW9uLCBvYmplY3QuZW1iZWRkZWRJbWFnZURlc2NyaXB0aW9uKCkuaXNvbGF0ZWRDb3B5KCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggMWVhYjU2OTU3MzAzLi4wOWNhMzdkYWZk
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTI5NSw2ICsyOTUsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Im
IGNoaWxkcmVuKSBvdmVycmlkZSB7IGZpbGxDaGlsZHJlblZlY3RvckZvclByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpTZWxlY3RlZENoaWxkcmVuLCBjaGlsZHJlbik7IH0KICAgICB2b2lkIHNldFNl
bGVjdGVkQ2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgb3ZlcnJp
ZGU7CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHZpc2libGVDaGlsZHJlbigpIG92
ZXJyaWRlIHsgcmV0dXJuIHRyZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVWYWx1
ZTxBWElEPihBWFByb3BlcnR5TmFtZTo6VmlzaWJsZUNoaWxkcmVuKSk7IH0KKyAgICBBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpIG92ZXJyaWRlIHsgcmV0dXJuIHRy
ZWUoKS0+b2JqZWN0c0ZvcklEcyh2ZWN0b3JBdHRyaWJ1dGVWYWx1ZTxBWElEPihBWFByb3BlcnR5
TmFtZTo6U2VsZWN0ZWRDZWxscykpOyB9CiAgICAgQXRvbVN0cmluZyB0YWdOYW1lKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZHJl
bihib29sIHVwZGF0ZUNoaWxkcmVuSWZOZWVkZWQgPSB0cnVlKSBvdmVycmlkZTsKICAgICB2b2lk
IHVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5o
CmluZGV4IGQ1MzMwZjY0M2NjNS4uNjU2ZDY0YjZjNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgK
QEAgLTE5OSw2ICsxOTksNyBAQCBlbnVtIGNsYXNzIEFYUHJvcGVydHlOYW1lIDogdWludDE2X3Qg
ewogICAgIFJvd0hlYWRlcnMsCiAgICAgUm93SW5kZXgsCiAgICAgUm93SW5kZXhSYW5nZSwKKyAg
ICBTZWxlY3RlZENlbGxzLAogICAgIFNlbGVjdGVkQ2hpbGRyZW4sCiAgICAgU2Vzc2lvbklELAog
ICAgIFNldFNpemUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCA5OWQ1MjAxZjJlMWUuLjcwZTAzMmQ1ODg3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tCkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFYTm90aWZpY2F0aW8KICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQVhTZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgIGNhc2UgQVhTZWxlY3RlZENlbGxzQ2hhbmdl
ZDoKICAgICAgICAgbWFjTm90aWZpY2F0aW9uID0gTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxs
c0NoYW5nZWROb3RpZmljYXRpb247CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQVhTZWxlY3Rl
ZFRleHRDaGFuZ2VkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRl
eCA1OTk5MmQwZjBjZWQuLjE1ODg1NzE4NDI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KQEAgLTEwNzksNiArMTA3OSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1Q
TEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2li
aWxpdHlSb3dDb3VudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eUFSSUFDb2x1bW5Db3VudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJy
YXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFSb3dDb3VudEF0dHJpYnV0ZV07CisgICAg
ICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRy
aWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQgdGFibGVSb3dBdHRycyA9IFtdIHsKQEAgLTE4MjAsMTEgKzE4MjEsMTMg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgICAgICByZXR1
cm4gbWFrZU5TQXJyYXkoc2VsZWN0ZWRDaGlsZHJlbkNvcHkpOwogICAgICAgICB9CiAKLSAgICAg
ICAgLy8gSFRNTCB0YWJsZXMgZG9uJ3Qgc3VwcG9ydCB0aGVzZSBhdHRyaWJ1dGVzLgotICAgICAg
ICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkQ29sdW1uc0F0dHJpYnV0ZV0KLSAgICAgICAgICAgIHx8IFthdHRyaWJ1dGVOYW1lIGlzRXF1
YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENlbGxzQXR0cmlidXRlXSkKKyAgICAg
ICAgLy8gSFRNTCB0YWJsZXMgZG9uJ3Qgc3VwcG9ydCB0aGlzIGF0dHJpYnV0ZSB5ZXQuCisgICAg
ICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRDb2x1bW5zQXR0cmlidXRlXSkKICAgICAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICAg
ICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTZWxl
Y3RlZENlbGxzQXR0cmlidXRlXSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlTlNBcnJheShiYWNr
aW5nT2JqZWN0LT5zZWxlY3RlZENlbGxzKCkpOworCiAgICAgICAgIGlmIChbYXR0cmlidXRlTmFt
ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Q29sdW1uSGVhZGVyVUlFbGVtZW50c0F0
dHJpYnV0ZV0pCiAgICAgICAgICAgICByZXR1cm4gbWFrZU5TQXJyYXkoYmFja2luZ09iamVjdC0+
Y29sdW1uSGVhZGVycygpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcAppbmRleCBiOWU3OTI1MWNiZjkuLjZjN2JjMGI3Mzk1OCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTYx
OCw2ICs2MTgsMTEgQEAgc3RhdGljIEpTVmFsdWVSZWYgcm93SGVhZGVyc0NhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwKICAgICByZXR1cm4gY29udmVy
dEVsZW1lbnRzVG9PYmplY3RBcnJheShjb250ZXh0LCBlbGVtZW50cyk7CiB9CiAKK3N0YXRpYyBK
U1ZhbHVlUmVmIHNlbGVjdGVkQ2VsbHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pCit7CisgICAgcmV0dXJuIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zZWxlY3RlZENlbGxz
KGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiB1aUVsZW1lbnRBcnJheUF0dHJpYnV0
ZVZhbHVlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChh
cmd1bWVudENvdW50ICE9IDEpCkBAIC0yMDc4LDYgKzIwODMsNyBAQCBKU0NsYXNzUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQogICAgICAgICB7ICJzZXRTZWxlY3RlZFRl
eHRSYW5nZSIsIHNldFNlbGVjdGVkVGV4dFJhbmdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic3RyaW5nQXR0cmlidXRlVmFsdWUiLCBzdHJpbmdBdHRyaWJ1dGVWYWx1ZUNhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgInVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWUiLCB1aUVsZW1l
bnRBcnJheUF0dHJpYnV0ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2VsZWN0
ZWRDZWxscyIsIHNlbGVjdGVkQ2VsbHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJyb3dI
ZWFkZXJzIiwgcm93SGVhZGVyc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNvbHVtbkhl
YWRlcnMiLCBjb2x1bW5IZWFkZXJzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidWlFbGVt
ZW50QXR0cmlidXRlVmFsdWUiLCB1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZUNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKaW5k
ZXggNzJjZWU5MjNhZDRkLi5mMzgxNzA5Njk5NTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTIwMyw3ICsyMDMsOCBAQCBwdWJsaWM6CiAg
ICAgaW50IGNvbHVtbkNvdW50KCk7CiAgICAgdm9pZCByb3dIZWFkZXJzKFZlY3RvcjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0OwogICAgIHZvaWQgY29sdW1uSGVhZGVy
cyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKSBjb25zdDsKLSAgICAK
KyAgICBKU1ZhbHVlUmVmIHNlbGVjdGVkQ2VsbHMoSlNDb250ZXh0UmVmKSBjb25zdDsKKwogICAg
IC8vIFRyZWUvT3V0bGluZSBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAgICAgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCBzZWxlY3RlZFJvd0F0SW5kZXgodW5zaWduZWQpOwogICAgIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQgZGlzY2xvc2VkQnlSb3coKTsKQEAgLTM0NCwxMCArMzQ1LDExIEBAIHB1YmxpYzoK
ICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gbWF0aFBvc3RzY3JpcHRzRGVzY3JpcHRpb24o
KSBjb25zdDsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gbWF0aFByZXNjcmlwdHNEZXNj
cmlwdGlvbigpIGNvbnN0OwogI2VuZGlmCi0gICAgCi1wcml2YXRlOgorCiAgICAgc3RhdGljIEpT
Q2xhc3NSZWYgZ2V0SlNDbGFzcygpOwogCitwcml2YXRlOgorCiAjaWYgIVBMQVRGT1JNKENPQ09B
KQogICAgIFBsYXRmb3JtVUlFbGVtZW50IG1fZWxlbWVudDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQppbmRl
eCA0MzMwNGU0MWU5NDEuLjdmMTc2Nzk5MDU0MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KQEAgLTEyNzEsNiArMTI3
MSwxMSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoVmVjdG9yPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+JikgY29uc3QKIHsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKEpTQ29udGV4dFJlZikgY29uc3QKK3sKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKwogdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0K
aW5kZXggODEzNDExZjkyYjM4Li4zNTliNDhkMzI1NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC0xNzAsMTUg
KzE3MCw2IEBAIHN0YXRpYyBOU1N0cmluZyogYXR0cmlidXRlc09mRWxlbWVudChpZCBhY2Nlc3Np
YmlsaXR5T2JqZWN0KQogICAgIHJldHVybiBhdHRyaWJ1dGVzU3RyaW5nOwogfQogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdGF0aWMgSlNPYmplY3RSZWYgY29udmVydFZlY3RvclRvT2JqZWN0QXJy
YXkoSlNDb250ZXh0UmVmIGNvbnRleHQsIFZlY3RvcjxUPiBjb25zdCYgZWxlbWVudHMpCi17Ci0g
ICAgYXV0byBhcnJheSA9IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIDAsIG51bGxwdHIsIG51
bGxwdHIpOwotICAgIHVuc2lnbmVkIHNpemUgPSBlbGVtZW50cy5zaXplKCk7Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgSlNPYmplY3RTZXRQcm9wZXJ0
eUF0SW5kZXgoY29udGV4dCwgYXJyYXksIGksIEpTT2JqZWN0TWFrZShjb250ZXh0LCBlbGVtZW50
c1tpXS5nZXRKU0NsYXNzKCksIG5ldyBUKGVsZW1lbnRzW2ldKSksIG51bGxwdHIpOwotICAgIHJl
dHVybiBhcnJheTsKLX0KLQogc3RhdGljIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb25jYXRl
bmF0ZUF0dHJpYnV0ZUFuZFZhbHVlKE5TU3RyaW5nICphdHRyaWJ1dGUsIE5TU3RyaW5nICp2YWx1
ZSkKIHsKICAgICBWZWN0b3I8VW5pQ2hhcj4gYnVmZmVyKFthdHRyaWJ1dGUgbGVuZ3RoXSk7CkBA
IC0yMDUsNiArMTk2LDE1IEBAIHN0YXRpYyBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZGVzY3Jp
cHRpb25PZkVsZW1lbnRzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtCiAgICAgcmV0dXJuIFth
bGxFbGVtZW50U3RyaW5nIGNyZWF0ZUpTU3RyaW5nUmVmXTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RhdGljIEpTT2JqZWN0UmVmIGNvbnZlcnRWZWN0b3JUb09iamVjdEFycmF5KEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBWZWN0b3I8VD4gY29uc3QmIGVsZW1lbnRzKQoreworICAgIGF1dG8g
YXJyYXkgPSBKU09iamVjdE1ha2VBcnJheShjb250ZXh0LCAwLCBudWxscHRyLCBudWxscHRyKTsK
KyAgICB1bnNpZ25lZCBzaXplID0gZWxlbWVudHMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgIEpTT2JqZWN0U2V0UHJvcGVydHlBdEluZGV4
KGNvbnRleHQsIGFycmF5LCBpLCBKU09iamVjdE1ha2UoY29udGV4dCwgZWxlbWVudHNbaV0uZ2V0
SlNDbGFzcygpLCBuZXcgVChlbGVtZW50c1tpXSkpLCBudWxscHRyKTsKKyAgICByZXR1cm4gYXJy
YXk7Cit9CisKIHN0YXRpYyBOU0RpY3Rpb25hcnkgKnNlbGVjdFRleHRQYXJhbWV0ZXJpemVkQXR0
cmlidXRlRm9yQ3JpdGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIGFtYmln
dWl0eVJlc29sdXRpb24sIEpTVmFsdWVSZWYgc2VhcmNoU3RyaW5ncywgSlNTdHJpbmdSZWYgcmVw
bGFjZW1lbnRTdHJpbmcsIEpTU3RyaW5nUmVmIGFjdGl2aXR5KQogewogICAgIE5TTXV0YWJsZURp
Y3Rpb25hcnkgKnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBk
aWN0aW9uYXJ5XTsKQEAgLTUwOSw2ICs1MDksMTcgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKE5TU3RyaW5nICoK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZWxlY3RlZENlbGxzKEpTQ29udGV4dFJlZiBjb250ZXh0KSBjb25zdAoreworICAgIEJF
R0lOX0FYX09CSkNfRVhDRVBUSU9OUworICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0
ZV07CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAg
ICAgIHJldHVybiBjb252ZXJ0VmVjdG9yVG9PYmplY3RBcnJheShjb250ZXh0LCBtYWtlVmVjdG9y
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+KHZhbHVlKSk7CisgICAgRU5EX0FYX09CSkNfRVhDRVBU
SU9OUworICAgIHJldHVybiBudWxscHRyOworfQorCisKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cm93SGVhZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRz
KSBjb25zdAogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaAppbmRleCA3YjQ4MDdiODUyZWMuLjg4NTQ5MDI1OWM4MyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmgKQEAgLTI0Myw2ICsyNDMsNyBAQCBwdWJsaWM6CiAgICAgSlNWYWx1
ZVJlZiByb3dIZWFkZXJzKCkgY29uc3Q7CiAgICAgSlNWYWx1ZVJlZiBjb2x1bW5IZWFkZXJzKCkg
Y29uc3Q7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGN1c3RvbUNvbnRlbnQoKSBjb25z
dDsKKyAgICBKU1ZhbHVlUmVmIHNlbGVjdGVkQ2VsbHMoKSBjb25zdDsKIAogICAgIC8vIFRyZWUv
T3V0bGluZSBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IHNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAppbmRleCBmNDQwYWJiNTBjMGEuLmE0ZmVkZTEw
YWU0YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRs
CkBAIC0xODAsNiArMTgwLDcgQEAKICAgICBvYmplY3QgY29sdW1uSGVhZGVycygpOwogICAgIG9i
amVjdCByb3dIZWFkZXJzKCk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjdXN0
b21Db250ZW50OworICAgIG9iamVjdCBzZWxlY3RlZENlbGxzKCk7CiAKICAgICBvYmplY3QgZGV0
YWlsc0VsZW1lbnRzKCk7CiAgICAgb2JqZWN0IGVycm9yTWVzc2FnZUVsZW1lbnRzKCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0c3BpL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2F0c3BpL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAKaW5kZXggNDU4
NGMwZmMyNzkyLi5kMTRlMmY5YzBiZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0c3BpL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRBdHNwaS5jcHAKQEAgLTUyNSw2ICs1MjUsMTEgQEAgSlNWYWx1ZVJlZiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5IZWFkZXJzKCkgY29uc3QKICAgICByZXR1cm4g
bWFrZUpTQXJyYXkoeyB9KTsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbWFrZUpTQXJyYXkoeyB9KTsK
K30KKwogc3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudHNGb3JSZWxhdGlvbihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0QXRzcGkqIGVsZW1lbnQsIFdlYkNvcmU6OkF0c3BpOjpSZWxhdGlvbiBy
ZWxhdGlvbikKIHsKICAgICBlbGVtZW50LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCmluZGV4IDk1MmI2ZGMzMjI4MC4uNzgy
ZDAxYWVkMzE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0K
QEAgLTQ2MCw2ICs0NjAsMTEgQEAgSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b3dIZWFkZXJzKCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorSlNWYWx1ZVJlZiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKwogSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1
bW5IZWFkZXJzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGE4NTUwODAxNDA1NS4uNjc1NmQxNmZj
OGM4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTQy
NSw2ICs0MjUsMTYgQEAgSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFk
ZXJzKCkgY29uc3QKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiB9CiAKK0pTVmFsdWVSZWYg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDZWxscygpIGNvbnN0Cit7CisgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgYXV0byB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlKE5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGUpOworICAgIGlmIChbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICByZXR1cm4gbWFrZUpTQXJyYXko
bWFrZVZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+KHZhbHVlLmdldCgpKSk7
CisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworICAgIHJldHVybiBudWxscHRyOworfQorCiBK
U1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAog
ewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50V2luLmNwcAppbmRleCBmZjA3OTBmZmE3N2EuLmFkNDllYjU0NDQ5YiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93aW4vQWNjZXNz
aWJpbGl0eVVJRWxlbWVudFdpbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAKQEAgLTIzMiw2ICsy
MzIsMTIgQEAgSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5IZWFkZXJz
KCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXR0cmlidXRlVmFsdWUoSlNT
dHJpbmdSZWYgYXR0cmlidXRlKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0
ZWQtY2VsbHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uMjZiOTc3N2Y5YmNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NiBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBBUklBIGdyaWRzIHdpbGwgcmV0dXJuIGFuZCBwb3N0
IHNlbGVjdGVkIGNlbGxzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUzog
Z3JpZC5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhTZWxlY3RlZENlbGxzJykgPT09IHRydWUKK1BB
U1M6IGdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoc2VsZWN0ZWRDZWxsKSA9PT0gdHJ1
ZQorUmVjZWl2ZWQgbm90aWZpY2F0aW9uOiBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkCitQQVNTOiBn
cmlkLnNlbGVjdGVkQ2VsbHMoKVswXS5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgnY2VsbDEnKSkgPT09IHRydWUKK1BBU1M6IGdyaWQuc2VsZWN0
ZWRDZWxscygpWzFdLmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCdjZWxsMicpKSA9PT0gdHJ1ZQorUmVjZWl2ZWQgbm90aWZpY2F0aW9uOiBBWFNl
bGVjdGVkQ2VsbHNDaGFuZ2VkCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi40ZWIyNDk0OTVmOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWwKQEAgLTAsMCArMSw3MiBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPSJjb250ZW50Ij4KKzx0YWJs
ZSB0YWJpbmRleD0wIGlkPSJncmlkIiByb2xlPSJncmlkIiBhcmlhLWxhYmVsbGVkYnk9ImdyaWQt
MS1oZWFkZXIiIGJvcmRlcj0iMSIgYXJpYS1hY3RpdmVkZXNjZW5kYW50PSJjZWxsMSI+Cis8dGhl
YWQ+CisgICAgPHRyIGNhPSJ0ciIgcm9sZT0icm93IiBhcmlhLWxldmVsPSIxIiBpZD0icm93MSI+
CisgICAgICAgIDx0aCBpZD0iZ3JpZC0xLWlzYm5faWQiPkJvb2sgTmFtZSAvIElTQk48L3RoPjx0
aCBpZD0iZ3JpZC0xLWF1dGhvcl9pZCI+QXV0aG9yPC90aD48dGggaWQ9ImdyaWQtMS1wcmljZV9p
ZCIgY2xhc3M9Im51bWVyaWMiID5QcmljZSAoJCk8L3RoPgorICAgIDwvdHI+Cis8L3RoZWFkPgor
PHRib2R5PgorICAgIDx0ciBjYT0idG8iIHJvbGU9InJvdyIgYXJpYS1sZXZlbD0iMSIgYXJpYS1l
eHBhbmRlZD0idHJ1ZSI+CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLXRpdGxlX2lkIiBp
ZD0idGFibGVfZW50cnkiIHJvbGU9ImdyaWRjZWxsIiBjb2xzcGFuPSIzIiAgdGFiaW5kZXg9IjAi
PgorICAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGFuZCI+Kzwvc3Bhbj4gQSBRdWVzdGlvbiBvZiBM
b3ZlPC90ZD4gICAgICAgICAgICAgICAgICAKKyAgICAgPC90cj4KKyAgICAgPHRyIGNhPSJ0aSIg
cm9sZT0icm93IiAgYXJpYS1sZXZlbD0iMiIgYXJpYS1leHBhbmRlZD0idHJ1ZSI+CisgICAgICAg
ICA8dGQgaGVhZGVycz0iZ3JpZC0xLWlzYm5faWQiIHJvbGU9ImdyaWRjZWxsIiBpZD0iY2VsbDEi
Pjk3OC0zLTQ1My00MDU0MC0wPC90ZD4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtYXV0
aG9yX2lkIiByb2xlPSJncmlkY2VsbCIgaWQ9ImNlbGwyIj5Ob3JhIFJvYmVydHM8L3RkPgorICAg
ICAgICAgPHRkIGhlYWRlcnM9ImdyaWQtMS1wcmljZV9pZCIgY2xhc3M9Im51bWVyaWMiIHJvbGU9
ImdyaWRjZWxsIiBjYT0idGUiPjxkaXY+OS45OTwvZGl2PjwvdGQ+CisgICAgIDwvdHI+Cis8L3Ri
b2R5PgorPC90YWJsZT4KKzwvZGl2PgorCis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB0aGF0IHRoZSBBUklBIGdyaWRzIHdpbGwgcmV0dXJuIGFuZCBwb3N0IHNlbGVjdGVkIGNl
bGxzLiIpOworCitpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlCisKKyAgICB2YXIgb3V0cHV0ID0gIiI7CisgICAgdmFy
IGdyaWQsIHNlbGVjdGVkQ2VsbGw7CisgICAgdmFyIG5vdGlmaWNhdGlvbkNvdW50ID0gMDsKKyAg
ICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmdW5jdGlv
bihlbGVtZW50LCBub3RpZmljYXRpb24pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAi
QVhTZWxlY3RlZENlbGxzQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgIG91dHB1dCArPSAiUmVjZWl2
ZWQgbm90aWZpY2F0aW9uOiAiICsgbm90aWZpY2F0aW9uICsgIlxuIjsKKyAgICAgICAgICAgIG5v
dGlmaWNhdGlvbkNvdW50Kys7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uQ291bnQgPT0g
MikgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iiku
c3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOworICAgICAgICAgICAgICAgIGRlYnVnKG91dHB1
dCk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9KTsKKworICAgIC8vIEZvY3VzIHRoZSBncmlkIHNvIGl0IGNhbiBoYW5kbGUg
YWN0aXZlIGRlc2NlbmRhbnRzLgorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkIiku
Zm9jdXMoKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBncmlkID0gYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJncmlkIik7CisgICAg
ICAgIHNlbGVjdGVkQ2VsbCA9IGdyaWQuY2hpbGRBdEluZGV4KDIpLmNoaWxkQXRJbmRleCgwKTsK
KyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5pc0F0dHJpYnV0ZVN1cHBvcnRlZCgnQVhT
ZWxlY3RlZENlbGxzJykiLCAidHJ1ZSIpOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJncmlk
LnNlbGVjdGVkQ2VsbHMoKVswXS5pc0VxdWFsKHNlbGVjdGVkQ2VsbCkiLCAidHJ1ZSIpOworCisg
ICAgICAgIC8vIE5vdyBjaGFuZ2UgdGhlIHNlbGVjdGVkIGNlbGwgdG8gdHJpZ2dlciB0aGUgbm90
aWZpY2F0aW9uLgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZCIpLnNldEF0
dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50IiwgImNlbGwyIik7CisKKyAgICAgICAgLy8g
Tm93IGNoYW5nZSB3aXRoIGFyaWEtc2VsZWN0ZWQgdG8gZW5zdXJlIHdlIGFsc28gZ2V0IHRoZSBy
aWdodCBub3RpZmljYXRpb24uCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZWxs
MSIpLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsICJ0cnVlIik7CisgICAgICAgIG91dHB1
dCArPSBleHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdjZWxsMScpKSIsICJ0cnVlIik7Cisg
ICAgICAgIG91dHB1dCArPSBleHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxscygpWzFdLmlzRXF1YWwo
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdjZWxsMicpKSIs
ICJ0cnVlIik7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1l
eHBlY3RlZC50eHQKaW5kZXggZjg2MmM5YzYzY2E5Li45ZTlmOGFlYmQ1NTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVk
LnR4dApAQCAtNDcsNiArNDcsNyBAQCBBWENvbHVtbkNvdW50OiAyCiBBWFJvd0NvdW50OiAxCiBB
WEFSSUFDb2x1bW5Db3VudDogMAogQVhBUklBUm93Q291bnQ6IDAKK0FYU2VsZWN0ZWRDZWxsczog
PGFycmF5IG9mIHNpemUgMD4KIEFYRWxlbWVudEJ1c3k6IDAKIAogCkBAIC05Miw2ICs5Myw3IEBA
IEFYQ29sdW1uQ291bnQ6IDIKIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBB
WEFSSUFSb3dDb3VudDogMAorQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhF
bGVtZW50QnVzeTogMAogCiAKQEAgLTEzNyw2ICsxMzksNyBAQCBBWENvbHVtbkNvdW50OiAyCiBB
WFJvd0NvdW50OiAxCiBBWEFSSUFDb2x1bW5Db3VudDogMAogQVhBUklBUm93Q291bnQ6IDAKK0FY
U2VsZWN0ZWRDZWxsczogPGFycmF5IG9mIHNpemUgMD4KIEFYRWxlbWVudEJ1c3k6IDAKIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466018</attachid>
            <date>2023-04-20 11:13:31 -0700</date>
            <delta_ts>2023-04-20 14:06:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231993-20230420111330.patch</filename>
            <type>text/plain</type>
            <size>31938</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">RnJvbSAwOWEzMzIxNWU0ZDMzN2EzY2ViMWFhYTc3NWVjNmI3MjJhMzI0ZDViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpcyBGbGVpemFjaCA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCAxMSBBcHIgMjAyMyAxNzozMDowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFY
OiBVc2luZyBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgdG8gc2V0IHRoZSBhY3RpdmUgY2VsbCB3aXRo
aW4KIGEgZ3JpZCBkb2VzIG5vdCBjb252ZXkgZm9jdXMgbW92ZW1lbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTMgcmRhcjovLzg0NDM5OTg3CgpSZXZpZXdl
ZCBieSBUeWxlciBXaWxjb2NrIGFuZCBBbmRyZXMgR29uemFsZXouCgpUbyBzdXBwb3J0IHRoZSBh
cmlhLWFjdGl2ZWRlc2NlbmRhbnQgZmxvdyB0aGF0IGlzIGJlaW5nIGRlc2NyaWJlZCwgd2UgbmVl
ZCB0byBzdXBwb3J0IEFYU2VsZWN0ZWRDZWxscyBmb3IgdGFibGVzIGFuZCBncmlkcy4KVGhpcyBi
b2lscyBkb3duIHRvOgogIDEpIEV4cG9zaW5nIGFuZCBpbXBsZW1lbnRpbmcgQVhTZWxlY3RlZENl
bGxzIGFzIGFuIGF0dHJpYnV0ZS4KICAyKSBQb3N0aW5nIG5vdGlmaWNhdGlvbnMgd2hlbiBpdCBj
aGFuZ2VzLgogIDMpIEltcGxlbWVudGluZyBXS1RSIGFuZCBEUlQgbWV0aG9kcyBmb3IgZmV0Y2hp
bmcKICA0KSBDaGFuZ2luZyB0aGUgb2xkZXIsIHVudXNlZCBBWFNlbGVjdGVkQ2VsbCAtPiBBWFNl
bGVjdGVkQ2VsbHMuCgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0
ZWQtY2VsbHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLmh0bWw6IEFkZGVkLgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgooV2ViQ29yZTo6b3BlcmF0b3I8PCk6CiogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om9uU2VsZWN0ZWRDaGFuZ2VkKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Omhh
bmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVw
ZGF0ZUlzb2xhdGVkVHJlZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVjdGVkQ2VsbHMpOgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
OgooV2ViQ29yZTo6QVhDb3JlT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDZWxscyBjb25zdCk6Ciog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBsYXRmb3JtTmFtZSk6CiogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6
CihXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyk6CiogU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5o
OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW06CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIEFMTE9XX0RF
UFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgooLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6Ci0tLQogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgICAgIHwgIDQgKy0KIC4uLi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDE0ICsrKy0KIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAgfCAxOSArKysrKwogLi4uL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oICAgICAgIHwgIDEgKwogLi4uL0FjY2Vzc2liaWxpdHlP
YmplY3RJbnRlcmZhY2UuaCAgICAgICAgICAgIHwgMTUgKysrKwogLi4uL2F0c3BpL0FYT2JqZWN0
Q2FjaGVBdHNwaS5jcHAgICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L2lv
cy9BWE9iamVjdENhY2hlSU9TLm1tICAgICB8ICAyICstCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuY3BwICAgICAgICAgfCAgMyArCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaCAgICAgICAgICAgfCAgMSArCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmggICAgICAgICAgICAgfCAgMSArCiAuLi4vYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbSAgICAgfCAgMiArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbSAgIHwgIDkgKystCiAuLi4vRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAgfCAgNiArKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oIHwgIDggKystCiAuLi4vaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0g
ICAgICAgICAgfCAgNSArKwogLi4uL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tICAg
ICAgICAgIHwgMjkgKysrKystLS0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmggICB8ICAxICsKIC4uLi9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmlk
bCAgICAgICB8ICAxICsKIC4uLi9hdHNwaS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRzcGkuY3Bw
ICAgICB8ICA1ICsrCiAuLi4vaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gICAgICAg
ICAgfCAgNSArKwogLi4uL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tICAgICAgICAg
IHwgMTAgKysrCiAuLi4vd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwICAgICAgICAg
fCAgNiArKwogLi4uL21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dCAgICAgIHwg
MTYgKysrKysKIC4uLi9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy5odG1sICAgICAgICAgICAgICB8
IDcyICsrKysrKysrKysrKysrKysrKysKIC4uLi90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4
dCAgICAgICAgICAgICB8ICAzICsKIDI2IGZpbGVzIGNoYW5nZWQsIDIxOSBpbnNlcnRpb25zKCsp
LCAyMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMu
aHRtbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKaW5kZXggNGE1
ZDI5NmFmODg3Li45ZWM3ZmM4MTA4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhMb2dnZXIuY3BwCkBAIC01MjksOCArNTI5LDggQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiBzdHJlYW0sIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uIG5vdGlmaWMK
ICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkOgogICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQi
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9u
OjpBWFNlbGVjdGVkQ2VsbENoYW5nZWQ6Ci0gICAgICAgIHN0cmVhbSA8PCAiQVhTZWxlY3RlZENl
bGxDaGFuZ2VkIjsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFNl
bGVjdGVkQ2VsbHNDaGFuZ2VkOgorICAgICAgICBzdHJlYW0gPDwgIkFYU2VsZWN0ZWRDZWxsc0No
YW5nZWQiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZp
Y2F0aW9uOjpBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkOgogICAgICAgICBzdHJlYW0gPDwgIkFYU2Vs
ZWN0ZWRTdGF0ZUNoYW5nZWQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKaW5kZXggMDM2OGRhYzYxOTAyLi4wZjQwYmUxMDJkY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTQ1NSw3
ICsxNDU1LDcgQEAgc3RhdGljIGJvb2wgaXNBUklBVGFibGVDZWxsKE5vZGUqIG5vZGUpCiB2b2lk
IEFYT2JqZWN0Q2FjaGU6Om9uU2VsZWN0ZWRDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYg
KGlzQVJJQVRhYmxlQ2VsbChub2RlKSkKLSAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBB
WFNlbGVjdGVkQ2VsbENoYW5nZWQpOworICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFY
U2VsZWN0ZWRDZWxsc0NoYW5nZWQpOwogICAgIGVsc2UgaWYgKGlzPEhUTUxPcHRpb25FbGVtZW50
Pihub2RlKSkKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNlbGVjdGVkU3RhdGVD
aGFuZ2VkKTsKICAgICBlbHNlIGlmIChhdXRvKiBheE9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUp
KSB7CkBAIC0xOTc0LDYgKzE5NzQsMTQgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBY3Rp
dmVEZXNjZW5kYW50Q2hhbmdlZChFbGVtZW50JiBlbGVtZW50KQogI2VuZGlmCiAKICAgICAgICAg
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKHRhcmdldCwgQVhOb3RpZmljYXRpb246OkFYQWN0aXZl
RGVzY2VuZGFudENoYW5nZWQpOworICAgICAgICAKKyAgICAgICAgLy8gVGFibGUgY2VsbCBhY3Rp
dmUgZGVzY2VuZGFudCBjaGFuZ2VzIHNob3VsZCB0cmlnZ2VyIHNlbGVjdGVkIGNlbGwgY2hhbmdl
cy4KKyAgICAgICAgaWYgKHRhcmdldC0+aXNUYWJsZSgpICYmIGFjdGl2ZURlc2NlbmRhbnQtPmlz
VGFibGVDZWxsKCkpIHsKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQor
ICAgICAgICAgICAgdXBkYXRlSXNvbGF0ZWRUcmVlKHRhcmdldCwgQVhOb3RpZmljYXRpb246OkFY
U2VsZWN0ZWRDZWxsc0NoYW5nZWQpOworI2VuZGlmCisgICAgICAgICAgICBwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24odGFyZ2V0LCBBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkKTsKKyAgICAgICAgfQog
ICAgIH0KIH0KIApAQCAtMzczMyw3ICszNzQxLDkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRh
dGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGkK
ICAgICAgICAgY2FzZSBBWFJvd0luZGV4Q2hhbmdlZDoKICAgICAgICAgICAgIHRyZWUtPnVwZGF0
ZU5vZGVQcm9wZXJ0eSgqbm90aWZpY2F0aW9uLmZpcnN0LCBBWFByb3BlcnR5TmFtZTo6QVhSb3dJ
bmRleCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBWFNlbGVjdGVkQ2VsbENo
YW5nZWQ6CisgICAgICAgIGNhc2UgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoKKyAgICAgICAgICAg
IHRyZWUtPnVwZGF0ZU5vZGVQcm9wZXJ0eSgqbm90aWZpY2F0aW9uLmZpcnN0LCBBWFByb3BlcnR5
TmFtZTo6U2VsZWN0ZWRDZWxscyk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBB
WFNlbGVjdGVkU3RhdGVDaGFuZ2VkOgogICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZVByb3Bl
cnR5KCpub3RpZmljYXRpb24uZmlyc3QsIEFYUHJvcGVydHlOYW1lOjpJc1NlbGVjdGVkKTsKICAg
ICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaAppbmRleCBjYWQ3ZGU5Yzk5MGMuLjM3ZDU2MjQ5YmY1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTMyNiw3ICszMjYsNyBAQCBw
dWJsaWM6CiAgICAgICAgIEFYUm93SW5kZXhDaGFuZ2VkLAogICAgICAgICBBWFJvd1NwYW5DaGFu
Z2VkLAogICAgICAgICBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLAotICAgICAgICBBWFNlbGVj
dGVkQ2VsbENoYW5nZWQsCisgICAgICAgIEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQsCiAgICAgICAg
IEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQsCiAgICAgICAgIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwK
ICAgICAgICAgQVhTZXRTaXplQ2hhbmdlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IGUwOGQ1NzViYzkzNC4uNWNk
MTgyNDFlZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI5MTMsNiArMjkxMywyNSBAQCBBWENvcmVPYmplY3Qq
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmZvY3VzZWRVSUVsZW1lbnQoKSBjb25zdAogICAgIHJldHVy
biBwYWdlICYmIGF4T2JqZWN0Q2FjaGUgPyBheE9iamVjdENhY2hlLT5mb2N1c2VkT2JqZWN0Rm9y
UGFnZShwYWdlKSA6IG51bGxwdHI7CiB9CiAKK0FYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVjdGVkQ2VsbHMoKQoreworICAg
IGlmICghaXNUYWJsZSgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgQVhDb3JlT2JqZWN0
OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxsczsKKyAgICBmb3IgKGF1
dG8mIGNlbGwgOiBjZWxscygpKSB7CisgICAgICAgIGlmIChjZWxsLT5pc1NlbGVjdGVkKCkpCisg
ICAgICAgICAgICBzZWxlY3RlZENlbGxzLmFwcGVuZChjZWxsKTsKKyAgICB9CisKKyAgICBpZiAo
YXV0byogYWN0aXZlRGVzY2VuZGFudCA9IHRoaXMtPmFjdGl2ZURlc2NlbmRhbnQoKSkgeworICAg
ICAgICBpZiAoYWN0aXZlRGVzY2VuZGFudC0+aXNUYWJsZUNlbGwoKSAmJiAhc2VsZWN0ZWRDZWxs
cy5jb250YWlucyhhY3RpdmVEZXNjZW5kYW50KSkKKyAgICAgICAgICAgIHNlbGVjdGVkQ2VsbHMu
YXBwZW5kKGFjdGl2ZURlc2NlbmRhbnQpOworICAgIH0KKworICAgIHJldHVybiBzZWxlY3RlZENl
bGxzOworfQorCiB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldEZvY3VzZWQoYm9vbCBmb2N1
cykKIHsKICAgICBpZiAoZm9jdXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggZTdhOTdmYjkwNzA1Li4xYTFiZWI1NmY3
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCkBAIC0xNDksNiArMTQ5LDcgQEAgcHVibGljOgogICAgIEFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciBjb2x1bW5IZWFkZXJzKCkgb3ZlcnJpZGUgeyByZXR1cm4gQWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yKCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Ig
cm93SGVhZGVycygpIG92ZXJyaWRlIHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
cigpOyB9CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHZpc2libGVSb3dzKCkgb3Zl
cnJpZGUgeyByZXR1cm4gQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yKCk7IH0KKyAgICBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRDZWxscygpIG92ZXJyaWRlOwogICAgIEFY
Q29yZU9iamVjdCogaGVhZGVyQ29udGFpbmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsg
fQogICAgIGludCBheENvbHVtbkNvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQog
ICAgIGludCBheFJvd0NvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3RJbnRlcmZhY2UuaAppbmRleCA3MjgzYWJhODhiZjAuLjY2OWFjNGU4ZTc0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW50ZXJmYWNlLmgKQEAgLTg5Nyw2ICs4OTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY29sdW1uSGVhZGVycygpID0gMDsKICAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciByb3dIZWFkZXJzKCkgPSAwOwogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHZpc2libGVSb3dzKCkgPSAwOworICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2VsbHMoKSA9IDA7
CiAgICAgLy8gUmV0dXJucyBhbiBvYmplY3QgdGhhdCBjb250YWlucywgYXMgY2hpbGRyZW4sIGFs
bCB0aGUgb2JqZWN0cyB0aGF0IGFjdCBhcyBoZWFkZXJzLgogICAgIHZpcnR1YWwgQVhDb3JlT2Jq
ZWN0KiBoZWFkZXJDb250YWluZXIoKSA9IDA7CiAgICAgdmlydHVhbCBpbnQgYXhDb2x1bW5Db3Vu
dCgpIGNvbnN0ID0gMDsKQEAgLTEyNDksNiArMTI1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNEZXRhY2hlZEZyb21QYXJlbnQoKSA9IDA7CiAKICAgICBib29sIGNhbkhhdmVTZWxl
Y3RlZENoaWxkcmVuKCkgY29uc3Q7CisgICAgYm9vbCBjYW5IYXZlU2VsZWN0ZWRDZWxscygpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZHJlbihj
b25zdCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CiAgICAgdmlydHVhbCBBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgdmlzaWJsZUNoaWxkcmVuKCkgPSAwOwpAQCAtMTU3OCw2
ICsxNTgwLDE5IEBAIGlubGluZSBib29sIEFYQ29yZU9iamVjdDo6c3VwcG9ydHNMaXZlUmVnaW9u
KGJvb2wgZXhjbHVkZUlmT2ZmKSBjb25zdAogICAgIHJldHVybiBleGNsdWRlSWZPZmYgPyBsaXZl
UmVnaW9uU3RhdHVzSXNFbmFibGVkKEF0b21TdHJpbmcgeyBsaXZlUmVnaW9uU3RhdHVzVmFsdWUg
fSkgOiAhbGl2ZVJlZ2lvblN0YXR1c1ZhbHVlLmlzRW1wdHkoKTsKIH0KIAoraW5saW5lIGJvb2wg
QVhDb3JlT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDZWxscygpIGNvbnN0Cit7CisgICAgc3dpdGNo
IChyb2xlVmFsdWUoKSkgeworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWQ6CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFibGU6CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6VHJlZToKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlR3JpZDoKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
K30KKwogaW5saW5lIGJvb2wgQVhDb3JlT2JqZWN0OjpjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigp
IGNvbnN0CiB7CiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCmlu
ZGV4IDAyYmUyZjQ0OTNmYi4uNTFjODRkMTVhMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCkBAIC03
Niw3ICs3Niw2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFYQ29yZU9iamVjdCogY29yZU9iamVjdCwgQVhOb3RpZmljCiAgICAgICAgIGlmIChjb3JlT2Jq
ZWN0LT5pc0NoZWNrYm94T3JSYWRpbygpIHx8IGNvcmVPYmplY3QtPmlzU3dpdGNoKCkpCiAgICAg
ICAgICAgICB3cmFwcGVyLT5zdGF0ZUNoYW5nZWQoImNoZWNrZWQiLCBjb3JlT2JqZWN0LT5pc0No
ZWNrZWQoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhTZWxlY3RlZENlbGxDaGFuZ2Vk
OgogICAgIGNhc2UgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgd3JhcHBlci0+c3Rh
dGVDaGFuZ2VkKCJzZWxlY3RlZCIsIGNvcmVPYmplY3QtPmlzU2VsZWN0ZWQoKSk7CiAgICAgICAg
IGJyZWFrOwpAQCAtODcsNiArODYsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIGNvcmVPYmplY3QsIEFYTm90aWZpYwogICAgICAg
ICAgICAgd3JhcHBlci0+c3RhdGVDaGFuZ2VkKCJzZWxlY3RlZCIsIGNvcmVPYmplY3QtPmlzU2Vs
ZWN0ZWQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEFYU2VsZWN0ZWRDZWxs
c0NoYW5nZWQ6CiAgICAgY2FzZSBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkOgogICAgICAgICB3
cmFwcGVyLT5zZWxlY3Rpb25DaGFuZ2VkKCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXgg
NTg3ZDdjYmVkYjgzLi5jNDhmZTMxNjM0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtNTcsNyArNTcsNyBAQCBB
U0NJSUxpdGVyYWwgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUGxhdGZvcm1OYW1lKEFYTm90
aWZpY2F0aW9uIG5vdGlmaWNhdGlvbgogICAgIGNhc2UgQVhQYWdlU2Nyb2xsZWQ6CiAgICAgICAg
IG5hbWUgPSAiQVhQYWdlU2Nyb2xsZWQiX3M7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhT
ZWxlY3RlZENlbGxDaGFuZ2VkOgorICAgIGNhc2UgQVhTZWxlY3RlZENlbGxzQ2hhbmdlZDoKICAg
ICAgICAgbmFtZSA9ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIl9zOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHAKaW5kZXggZDBlMmQ1NGU5MjgyLi5iZGMxZjRkMTg4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwCkBAIC0yMzUsNiArMjM1LDkgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0
aWFsaXplUHJvcGVydGllcyhjb25zdCBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4mIGF4T2IKICAg
ICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2hp
bGRyZW4sIHNlbGVjdGVkQ2hpbGRyZW4pOwogICAgIH0KIAorICAgIGlmIChvYmplY3QuY2FuSGF2
ZVNlbGVjdGVkQ2VsbHMoKSkKKyAgICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OlNlbGVjdGVkQ2VsbHMsIG9iamVjdC5zZWxlY3RlZENlbGxzKCkpOworCiAgICAg
aWYgKG9iamVjdC5pc0ltYWdlKCkpCiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpFbWJlZGRlZEltYWdlRGVzY3JpcHRpb24sIG9iamVjdC5lbWJlZGRlZEltYWdlRGVzY3JpcHRp
b24oKS5pc29sYXRlZENvcHkoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAppbmRleCAxZWFi
NTY5NTczMDMuLjA5Y2EzN2RhZmRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtMjk1
LDYgKzI5NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYgY2hpbGRyZW4pIG92ZXJyaWRlIHsgZmlsbENoaWxkcmVuVmVj
dG9yRm9yUHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2hpbGRyZW4sIGNoaWxkcmVu
KTsgfQogICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGlsZHJlbihjb25zdCBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3ImKSBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Ig
dmlzaWJsZUNoaWxkcmVuKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5vYmplY3RzRm9ySURz
KHZlY3RvckF0dHJpYnV0ZVZhbHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpWaXNpYmxlQ2hpbGRy
ZW4pKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZENlbGxzKCkg
b3ZlcnJpZGUgeyByZXR1cm4gdHJlZSgpLT5vYmplY3RzRm9ySURzKHZlY3RvckF0dHJpYnV0ZVZh
bHVlPEFYSUQ+KEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENlbGxzKSk7IH0KICAgICBBdG9tU3Ry
aW5nIHRhZ05hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25zdCBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3ImIGNoaWxkcmVuKGJvb2wgdXBkYXRlQ2hpbGRyZW5JZk5lZWRlZCA9IHRydWUp
IG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggZDUzMzBmNjQzY2M1Li42NTZkNjRiNmM3NzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMTk5LDYgKzE5OSw3IEBAIGVudW0gY2xhc3MgQVhQcm9w
ZXJ0eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgUm93SGVhZGVycywKICAgICBSb3dJbmRleCwKICAg
ICBSb3dJbmRleFJhbmdlLAorICAgIFNlbGVjdGVkQ2VsbHMsCiAgICAgU2VsZWN0ZWRDaGlsZHJl
biwKICAgICBTZXNzaW9uSUQsCiAgICAgU2V0U2l6ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDk5ZDUyMDFmMmUx
ZS4uNzBlMDMyZDU4ODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTM2Niw3ICszNjYsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwg
QVhOb3RpZmljYXRpbwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtYWNOb3RpZmljYXRpb24g
PSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZE5vdGlmaWNhdGlvbjsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBWFNlbGVjdGVkQ2VsbENoYW5nZWQ6CisgICAgY2FzZSBB
WFNlbGVjdGVkQ2VsbHNDaGFuZ2VkOgogICAgICAgICBtYWNOb3RpZmljYXRpb24gPSBOU0FjY2Vz
c2liaWxpdHlTZWxlY3RlZENlbGxzQ2hhbmdlZE5vdGlmaWNhdGlvbjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBBWFNlbGVjdGVkVGV4dENoYW5nZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCmluZGV4IDU5OTkyZDBmMGNlZC4uMTU4ODU3MTg0Mjc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTA3OSw2ICsxMDc5LDcgQEAg
QUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJvd0NvdW50QXR0cmlidXRlXTsKICAgICAgICAgW3Rl
bXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQUNvbHVtbkNvdW50QXR0cmlidXRl
XTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQVJvd0Nv
dW50QXR0cmlidXRlXTsKKyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAg
ICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCB0YWJsZVJvd0F0dHJzID0gW10gewpA
QCAtMTgyMCwxMSArMTgyMSwxMyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19F
TkQKICAgICAgICAgICAgIHJldHVybiBtYWtlTlNBcnJheShzZWxlY3RlZENoaWxkcmVuQ29weSk7
CiAgICAgICAgIH0KIAotICAgICAgICAvLyBIVE1MIHRhYmxlcyBkb24ndCBzdXBwb3J0IHRoZXNl
IGF0dHJpYnV0ZXMuCi0gICAgICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDb2x1bW5zQXR0cmlidXRlXQotICAgICAgICAgICAgfHwg
W2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2Vs
bHNBdHRyaWJ1dGVdKQorICAgICAgICAvLyBIVE1MIHRhYmxlcyBkb24ndCBzdXBwb3J0IHRoaXMg
YXR0cmlidXRlIHlldC4KKyAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmlu
ZzpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENvbHVtbnNBdHRyaWJ1dGVdKQogICAgICAgICAgICAg
cmV0dXJuIG5pbDsKIAorICAgICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5n
Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2VsbHNBdHRyaWJ1dGVdKQorICAgICAgICAgICAgcmV0
dXJuIG1ha2VOU0FycmF5KGJhY2tpbmdPYmplY3QtPnNlbGVjdGVkQ2VsbHMoKSk7CisKICAgICAg
ICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlDb2x1
bW5IZWFkZXJVSUVsZW1lbnRzQXR0cmlidXRlXSkKICAgICAgICAgICAgIHJldHVybiBtYWtlTlNB
cnJheShiYWNraW5nT2JqZWN0LT5jb2x1bW5IZWFkZXJzKCkpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IGI5ZTc5MjUxY2JmOS4u
NmM3YmMwYjczOTU4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcApAQCAtNjE4LDYgKzYxOCwxMSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiByb3dI
ZWFkZXJzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LAogICAgIHJldHVybiBjb252ZXJ0RWxlbWVudHNUb09iamVjdEFycmF5KGNvbnRleHQsIGVsZW1l
bnRzKTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxsc0NhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gdG9BWEVsZW1lbnQodGhpc09i
amVjdCktPnNlbGVjdGVkQ2VsbHMoY29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIHVp
RWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gMSkKQEAgLTIwNzgsNiArMjA4Myw3
IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcygpCiAgICAg
ICAgIHsgInNldFNlbGVjdGVkVGV4dFJhbmdlIiwgc2V0U2VsZWN0ZWRUZXh0UmFuZ2VDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzdHJpbmdBdHRyaWJ1dGVWYWx1ZSIsIHN0cmluZ0F0dHJp
YnV0ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidWlFbGVtZW50QXJyYXlBdHRy
aWJ1dGVWYWx1ZSIsIHVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWVDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAorICAgICAgICB7ICJzZWxlY3RlZENlbGxzIiwgc2VsZWN0ZWRDZWxsc0NhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInJvd0hlYWRlcnMiLCByb3dIZWFkZXJzQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiY29sdW1uSGVhZGVycyIsIGNvbHVtbkhlYWRlcnNDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJ1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZSIsIHVpRWxlbWVudEF0dHJpYnV0
ZVZhbHVlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaAppbmRleCA3MmNlZTkyM2FkNGQuLmYzODE3MDk2OTk1NSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMjAzLDcg
KzIwMyw4IEBAIHB1YmxpYzoKICAgICBpbnQgY29sdW1uQ291bnQoKTsKICAgICB2b2lkIHJvd0hl
YWRlcnMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBlbGVtZW50cykgY29uc3Q7CiAg
ICAgdm9pZCBjb2x1bW5IZWFkZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgZWxl
bWVudHMpIGNvbnN0OwotICAgIAorICAgIEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxscyhKU0NvbnRl
eHRSZWYpIGNvbnN0OworCiAgICAgLy8gVHJlZS9PdXRsaW5lIHNwZWNpZmljIGF0dHJpYnV0ZXMK
ICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCk7
CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBkaXNjbG9zZWRCeVJvdygpOwpAQCAtMzQ0LDEw
ICszNDUsMTEgQEAgcHVibGljOgogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBtYXRoUG9z
dHNjcmlwdHNEZXNjcmlwdGlvbigpIGNvbnN0OwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBtYXRoUHJlc2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3Q7CiAjZW5kaWYKLSAgICAKLXByaXZh
dGU6CisKICAgICBzdGF0aWMgSlNDbGFzc1JlZiBnZXRKU0NsYXNzKCk7CiAKK3ByaXZhdGU6CisK
ICNpZiAhUExBVEZPUk0oQ09DT0EpCiAgICAgUGxhdGZvcm1VSUVsZW1lbnQgbV9lbGVtZW50Owog
I2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50SU9TLm1tCmluZGV4IDQzMzA0ZTQxZTk0MS4uN2YxNzY3OTkwNTQzIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5t
bQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbQpAQCAtMTI3MSw2ICsxMjcxLDExIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cm93SGVhZGVycyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mKSBjb25zdAogewogfQog
CitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoSlNDb250
ZXh0UmVmKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiB1bnNpZ25lZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAogewogICAg
IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCA4MTM0MTFmOTJiMzguLjM1OWI0OGQzMjU2MSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0KQEAgLTE3MCwxNSArMTcwLDYgQEAgc3RhdGljIE5TU3RyaW5nKiBhdHRyaWJ1dGVz
T2ZFbGVtZW50KGlkIGFjY2Vzc2liaWxpdHlPYmplY3QpCiAgICAgcmV0dXJuIGF0dHJpYnV0ZXNT
dHJpbmc7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBKU09iamVjdFJlZiBjb252
ZXJ0VmVjdG9yVG9PYmplY3RBcnJheShKU0NvbnRleHRSZWYgY29udGV4dCwgVmVjdG9yPFQ+IGNv
bnN0JiBlbGVtZW50cykKLXsKLSAgICBhdXRvIGFycmF5ID0gSlNPYmplY3RNYWtlQXJyYXkoY29u
dGV4dCwgMCwgbnVsbHB0ciwgbnVsbHB0cik7Ci0gICAgdW5zaWduZWQgc2l6ZSA9IGVsZW1lbnRz
LnNpemUoKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAg
ICBKU09iamVjdFNldFByb3BlcnR5QXRJbmRleChjb250ZXh0LCBhcnJheSwgaSwgSlNPYmplY3RN
YWtlKGNvbnRleHQsIGVsZW1lbnRzW2ldLmdldEpTQ2xhc3MoKSwgbmV3IFQoZWxlbWVudHNbaV0p
KSwgbnVsbHB0cik7Ci0gICAgcmV0dXJuIGFycmF5OwotfQotCiBzdGF0aWMgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IGNvbmNhdGVuYXRlQXR0cmlidXRlQW5kVmFsdWUoTlNTdHJpbmcgKmF0dHJp
YnV0ZSwgTlNTdHJpbmcgKnZhbHVlKQogewogICAgIFZlY3RvcjxVbmlDaGFyPiBidWZmZXIoW2F0
dHJpYnV0ZSBsZW5ndGhdKTsKQEAgLTIwNSw2ICsxOTYsMTUgQEAgc3RhdGljIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBkZXNjcmlwdGlvbk9mRWxlbWVudHMoVmVjdG9yPEFjY2Vzc2liaWxpdHlV
SUVsZW0KICAgICByZXR1cm4gW2FsbEVsZW1lbnRTdHJpbmcgY3JlYXRlSlNTdHJpbmdSZWZdOwog
fQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgSlNPYmplY3RSZWYgY29udmVydFZlY3Rv
clRvT2JqZWN0QXJyYXkoSlNDb250ZXh0UmVmIGNvbnRleHQsIFZlY3RvcjxUPiBjb25zdCYgZWxl
bWVudHMpCit7CisgICAgYXV0byBhcnJheSA9IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIDAs
IG51bGxwdHIsIG51bGxwdHIpOworICAgIHVuc2lnbmVkIHNpemUgPSBlbGVtZW50cy5zaXplKCk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgSlNPYmpl
Y3RTZXRQcm9wZXJ0eUF0SW5kZXgoY29udGV4dCwgYXJyYXksIGksIEpTT2JqZWN0TWFrZShjb250
ZXh0LCBlbGVtZW50c1tpXS5nZXRKU0NsYXNzKCksIG5ldyBUKGVsZW1lbnRzW2ldKSksIG51bGxw
dHIpOworICAgIHJldHVybiBhcnJheTsKK30KKwogc3RhdGljIE5TRGljdGlvbmFyeSAqc2VsZWN0
VGV4dFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JDcml0ZXJpYShKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNTdHJpbmdSZWYgYW1iaWd1aXR5UmVzb2x1dGlvbiwgSlNWYWx1ZVJlZiBzZWFyY2hTdHJp
bmdzLCBKU1N0cmluZ1JlZiByZXBsYWNlbWVudFN0cmluZywgSlNTdHJpbmdSZWYgYWN0aXZpdHkp
CiB7CiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9IFtO
U011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOwpAQCAtNTA5LDYgKzUwOSwxNyBAQCBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nQXR0cmli
dXRlVmFsdWUoTlNTdHJpbmcgKgogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoSlNDb250ZXh0UmVmIGNvbnRl
eHQpIGNvbnN0Cit7CisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCisgICAgaWQgdmFsdWUg
PSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZENlbGxzQXR0cmlidXRlXTsKKyAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05T
QXJyYXkgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRWZWN0b3JUb09iamVjdEFycmF5
KGNvbnRleHQsIG1ha2VWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4odmFsdWUpKTsKKyAg
ICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKwogdm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dIZWFkZXJzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiYgZWxlbWVudHMpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IDdiNDgwN2I4NTJlYy4uODg1NDkw
MjU5YzgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMjQzLDYgKzI0Myw3IEBA
IHB1YmxpYzoKICAgICBKU1ZhbHVlUmVmIHJvd0hlYWRlcnMoKSBjb25zdDsKICAgICBKU1ZhbHVl
UmVmIGNvbHVtbkhlYWRlcnMoKSBjb25zdDsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
Y3VzdG9tQ29udGVudCgpIGNvbnN0OworICAgIEpTVmFsdWVSZWYgc2VsZWN0ZWRDZWxscygpIGNv
bnN0OwogCiAgICAgLy8gVHJlZS9PdXRsaW5lIHNwZWNpZmljIGF0dHJpYnV0ZXMKICAgICBSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gc2VsZWN0ZWRSb3dBdEluZGV4KHVuc2lnbmVkKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IGY0
NDBhYmI1MGMwYS4uYTRmZWRlMTBhZTRjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5pZGwKQEAgLTE4MCw2ICsxODAsNyBAQAogICAgIG9iamVjdCBjb2x1
bW5IZWFkZXJzKCk7CiAgICAgb2JqZWN0IHJvd0hlYWRlcnMoKTsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGN1c3RvbUNvbnRlbnQ7CisgICAgb2JqZWN0IHNlbGVjdGVkQ2VsbHMo
KTsKIAogICAgIG9iamVjdCBkZXRhaWxzRWxlbWVudHMoKTsKICAgICBvYmplY3QgZXJyb3JNZXNz
YWdlRWxlbWVudHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dEF0c3BpLmNwcAppbmRleCA0NTg0YzBmYzI3OTIuLmQxNGUyZjljMGJlNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdHNwaS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50QXRzcGkuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcApAQCAtNTI1LDYgKzUy
NSwxMSBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMo
KSBjb25zdAogICAgIHJldHVybiBtYWtlSlNBcnJheSh7IH0pOwogfQogCitKU1ZhbHVlUmVmIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAoreworICAgIHJldHVy
biBtYWtlSlNBcnJheSh7IH0pOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBlbGVtZW50c0ZvclJl
bGF0aW9uKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSogZWxlbWVudCwgV2ViQ29y
ZTo6QXRzcGk6OlJlbGF0aW9uIHJlbGF0aW9uKQogewogICAgIGVsZW1lbnQtPnVwZGF0ZUJhY2tp
bmdTdG9yZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5k
ZXggOTUyYjZkYzMyMjgwLi43ODJkMDFhZWQzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0K
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudElPUy5tbQpAQCAtNDYwLDYgKzQ2MCwxMSBAQCBKU1ZhbHVlUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAogICAgIHJldHVybiBudWxscHRy
OwogfQogCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMo
KSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiBKU1ZhbHVlUmVmIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAogewogICAgIHJldHVybiBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggYTg1
NTA4MDE0MDU1Li42NzU2ZDE2ZmM4YzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbQpAQCAtNDI1LDYgKzQyNSwxNiBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElP
TlMKIH0KIAorSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENlbGxz
KCkgY29uc3QKK3sKKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICBhdXRvIHZhbHVl
ID0gYXR0cmlidXRlVmFsdWUoTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDZWxsc0F0dHJpYnV0ZSk7
CisgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAg
IHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Pj4odmFsdWUuZ2V0KCkpKTsKKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKIEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29s
dW1uSGVhZGVycygpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50V2luLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCmluZGV4IGZmMDc5MGZmYTc3
YS4uYWQ0OWViNTQ0NDliIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
V2luLmNwcApAQCAtMjMyLDYgKzIzMiwxMiBAQCBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitK
U1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2VsbHMoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1l
bnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0CiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2dyaWQtc2VsZWN0ZWQtY2VsbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvZ3JpZC1zZWxlY3RlZC1jZWxscy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNmI5Nzc3ZjliY2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ncmlkLXNlbGVjdGVkLWNlbGxzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUaGlzIHRlc3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMg
d2lsbCByZXR1cm4gYW5kIHBvc3Qgc2VsZWN0ZWQgY2VsbHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTOiBncmlkLmlzQXR0cmlidXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVk
Q2VsbHMnKSA9PT0gdHJ1ZQorUEFTUzogZ3JpZC5zZWxlY3RlZENlbGxzKClbMF0uaXNFcXVhbChz
ZWxlY3RlZENlbGwpID09PSB0cnVlCitSZWNlaXZlZCBub3RpZmljYXRpb246IEFYU2VsZWN0ZWRD
ZWxsc0NoYW5nZWQKK1BBU1M6IGdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdjZWxsMScpKSA9PT0gdHJ1
ZQorUEFTUzogZ3JpZC5zZWxlY3RlZENlbGxzKClbMV0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2NlbGwyJykpID09PSB0cnVlCitSZWNlaXZl
ZCBub3RpZmljYXRpb246IEFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQKKworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbCBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRlYjI0OTQ5NWY4YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2dyaWQtc2VsZWN0ZWQtY2VsbHMu
aHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYWNj
ZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYg
aWQ9ImNvbnRlbnQiPgorPHRhYmxlIHRhYmluZGV4PTAgaWQ9ImdyaWQiIHJvbGU9ImdyaWQiIGFy
aWEtbGFiZWxsZWRieT0iZ3JpZC0xLWhlYWRlciIgYm9yZGVyPSIxIiBhcmlhLWFjdGl2ZWRlc2Nl
bmRhbnQ9ImNlbGwxIj4KKzx0aGVhZD4KKyAgICA8dHIgY2E9InRyIiByb2xlPSJyb3ciIGFyaWEt
bGV2ZWw9IjEiIGlkPSJyb3cxIj4KKyAgICAgICAgPHRoIGlkPSJncmlkLTEtaXNibl9pZCI+Qm9v
ayBOYW1lIC8gSVNCTjwvdGg+PHRoIGlkPSJncmlkLTEtYXV0aG9yX2lkIj5BdXRob3I8L3RoPjx0
aCBpZD0iZ3JpZC0xLXByaWNlX2lkIiBjbGFzcz0ibnVtZXJpYyIgPlByaWNlICgkKTwvdGg+Cisg
ICAgPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+CisgICAgPHRyIGNhPSJ0byIgcm9sZT0icm93IiBh
cmlhLWxldmVsPSIxIiBhcmlhLWV4cGFuZGVkPSJ0cnVlIj4KKyAgICAgICAgIDx0ZCBoZWFkZXJz
PSJncmlkLTEtdGl0bGVfaWQiIGlkPSJ0YWJsZV9lbnRyeSIgcm9sZT0iZ3JpZGNlbGwiIGNvbHNw
YW49IjMiICB0YWJpbmRleD0iMCI+CisgICAgICAgICA8c3BhbiBjbGFzcz0iZXhwYW5kIj4rPC9z
cGFuPiBBIFF1ZXN0aW9uIG9mIExvdmU8L3RkPiAgICAgICAgICAgICAgICAgIAorICAgICA8L3Ry
PgorICAgICA8dHIgY2E9InRpIiByb2xlPSJyb3ciICBhcmlhLWxldmVsPSIyIiBhcmlhLWV4cGFu
ZGVkPSJ0cnVlIj4KKyAgICAgICAgIDx0ZCBoZWFkZXJzPSJncmlkLTEtaXNibl9pZCIgcm9sZT0i
Z3JpZGNlbGwiIGlkPSJjZWxsMSI+OTc4LTMtNDUzLTQwNTQwLTA8L3RkPgorICAgICAgICAgPHRk
IGhlYWRlcnM9ImdyaWQtMS1hdXRob3JfaWQiIHJvbGU9ImdyaWRjZWxsIiBpZD0iY2VsbDIiPk5v
cmEgUm9iZXJ0czwvdGQ+CisgICAgICAgICA8dGQgaGVhZGVycz0iZ3JpZC0xLXByaWNlX2lkIiBj
bGFzcz0ibnVtZXJpYyIgcm9sZT0iZ3JpZGNlbGwiIGNhPSJ0ZSI+PGRpdj45Ljk5PC9kaXY+PC90
ZD4KKyAgICAgPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+CisKKzxzY3JpcHQ+CisK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIEFSSUEgZ3JpZHMgd2lsbCByZXR1cm4g
YW5kIHBvc3Qgc2VsZWN0ZWQgY2VsbHMuIik7CisKK2lmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIpIHsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWUKKworICAgIHZhciBv
dXRwdXQgPSAiIjsKKyAgICB2YXIgZ3JpZCwgc2VsZWN0ZWRDZWxsbDsKKyAgICB2YXIgbm90aWZp
Y2F0aW9uQ291bnQgPSAwOworICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFkZE5vdGlmaWNh
dGlvbkxpc3RlbmVyKGZ1bmN0aW9uKGVsZW1lbnQsIG5vdGlmaWNhdGlvbikgeworICAgICAgICBp
ZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIikgeworICAgICAgICAg
ICAgb3V0cHV0ICs9ICJSZWNlaXZlZCBub3RpZmljYXRpb246ICIgKyBub3RpZmljYXRpb24gKyAi
XG4iOworICAgICAgICAgICAgbm90aWZpY2F0aW9uQ291bnQrKzsKKyAgICAgICAgICAgIGlmIChu
b3RpZmljYXRpb25Db3VudCA9PSAyKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnRlbnQiKS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7CisgICAgICAg
ICAgICAgICAgZGVidWcob3V0cHV0KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgLy8gRm9jdXMgdGhlIGdy
aWQgc28gaXQgY2FuIGhhbmRsZSBhY3RpdmUgZGVzY2VuZGFudHMuCisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImdyaWQiKS5mb2N1cygpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgIGdyaWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoImdyaWQiKTsKKyAgICAgICAgc2VsZWN0ZWRDZWxsID0gZ3JpZC5jaGlsZEF0SW5kZXgo
MikuY2hpbGRBdEluZGV4KDApOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJncmlkLmlzQXR0
cmlidXRlU3VwcG9ydGVkKCdBWFNlbGVjdGVkQ2VsbHMnKSIsICJ0cnVlIik7CisgICAgICAgIG91
dHB1dCArPSBleHBlY3QoImdyaWQuc2VsZWN0ZWRDZWxscygpWzBdLmlzRXF1YWwoc2VsZWN0ZWRD
ZWxsKSIsICJ0cnVlIik7CisKKyAgICAgICAgLy8gTm93IGNoYW5nZSB0aGUgc2VsZWN0ZWQgY2Vs
bCB0byB0cmlnZ2VyIHRoZSBub3RpZmljYXRpb24uCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJncmlkIikuc2V0QXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLCAiY2Vs
bDIiKTsKKworICAgICAgICAvLyBOb3cgY2hhbmdlIHdpdGggYXJpYS1zZWxlY3RlZCB0byBlbnN1
cmUgd2UgYWxzbyBnZXQgdGhlIHJpZ2h0IG5vdGlmaWNhdGlvbi4KKyAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNlbGwxIikuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwgInRy
dWUiKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5zZWxlY3RlZENlbGxzKClbMF0u
aXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2Nl
bGwxJykpIiwgInRydWUiKTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5zZWxlY3Rl
ZENlbGxzKClbMV0uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxl
bWVudEJ5SWQoJ2NlbGwyJykpIiwgInRydWUiKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAppbmRleCBmODYyYzljNjNjYTkuLjllOWY4
YWViZDU1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRo
LXJ1bGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxl
LXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CkBAIC00Nyw2ICs0Nyw3IEBAIEFYQ29sdW1uQ291bnQ6
IDIKIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDog
MAorQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhFbGVtZW50QnVzeTogMAog
CiAKQEAgLTkyLDYgKzkzLDcgQEAgQVhDb2x1bW5Db3VudDogMgogQVhSb3dDb3VudDogMQogQVhB
UklBQ29sdW1uQ291bnQ6IDAKIEFYQVJJQVJvd0NvdW50OiAwCitBWFNlbGVjdGVkQ2VsbHM6IDxh
cnJheSBvZiBzaXplIDA+CiBBWEVsZW1lbnRCdXN5OiAwCiAKIApAQCAtMTM3LDYgKzEzOSw3IEBA
IEFYQ29sdW1uQ291bnQ6IDIKIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBB
WEFSSUFSb3dDb3VudDogMAorQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhF
bGVtZW50QnVzeTogMAogCiAK
</data>
<flag name="commit-queue"
          id="493821"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>