<?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>237834</bug_id>
          
          <creation_ts>2022-03-14 09:49:42 -0700</creation_ts>
          <short_desc>AX: Include display: contents elements in the AX tree</short_desc>
          <delta_ts>2022-03-21 11:49:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>code</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hidde</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1850911</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-14 09:49:42 -0700</bug_when>
    <thetext>Because display: contents intentionally prevents a render object from being generated for the element it&apos;s applied to, we don&apos;t find it as part of our normal render tree walk. We should include these elements in the tree some other way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850912</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-14 09:49:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/90252150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850967</commentid>
    <comment_count>2</comment_count>
      <attachid>454610</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-14 12:02:21 -0700</bug_when>
    <thetext>Created attachment 454610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850968</commentid>
    <comment_count>3</comment_count>
      <attachid>454611</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-14 12:06:12 -0700</bug_when>
    <thetext>Created attachment 454611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850975</commentid>
    <comment_count>4</comment_count>
      <attachid>454611</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-03-14 12:55:18 -0700</bug_when>
    <thetext>Comment on attachment 454611
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:454
&gt; +    if (!node() || !RuntimeEnabledFeatures::sharedFeatures().cssDisplayContentsAXSupportEnabled())

can we put the runtime enablement check first. maybe on it&apos;s own line. it feels substantively different than the code
presumably we&apos;ll remove that check soon? or can we do it with this PR?

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:458
&gt; +    if (!is&lt;Element&gt;(parentNode) || !downcast&lt;Element&gt;(parentNode)-&gt;hasDisplayContents())

do we need to worry about a display contents parent who is 
aria-hidden=true or role=presentational?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851270</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-03-15 06:54:50 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #3)
&gt; Created attachment 454611 [details]
&gt; Patch

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

+AccessibilityObject* AccessibilityObject::displayContentsParent() const
+{
...
+    if (auto* cache = axObjectCache())
+        return cache-&gt;getOrCreate(parentNode);
+
+    return nullptr;

Much prefer the two line, clear and compact:

auto* cache = axObjectCache();
return cache ? cache-&gt;getOrCreate(parentNode) : nullptr;

@@ -575,12 +591,17 @@ void AccessibilityObject::insertChild(AXCoreObject* newChild, unsigned index, De

+    auto* displayContentsParent = child-&gt;displayContentsParent();
+    // To avoid double-inserting a child of a `display: contents` element, only insert if `this` is the rightful parent.
+    if (displayContentsParent &amp;&amp; displayContentsParent != this)
+        return;
+

Why would it try to double insert a child in the first place?

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

+// Some elements don&apos;t have an associated render object, meaning they won&apos;t be picked up by a walk of the render tree.
+// For example, nodes that are `aria-hidden=&quot;false&quot;` and `hidden`, or elements with `display: contents`.
+// This function will find and add these elements to the AX tree.
+void AccessibilityRenderObject::addNodeOnlyChildren()

This makes me think that this belongs to AXNodeObject and not to AXRenderObject. Can we keep AXRenderObject for nodes that do have a renderer, and move this to AXNodeObject? 

--- a/LayoutTests/accessibility/display-contents-element-roles.html
+++ a/LayoutTests/accessibility/display-contents-element-roles.html

Can we have the elements in alphabetical order when possible? Similar to other tests, I think it makes it easier to find what we are missing later on.

+    function verifyRole(elementId) {
+        const outerHTML = escapeHTML(document.getElementById(elementId).cloneNode().outerHTML);

Do we need to cloneNode to get the outerHTML?

+    if (window.accessibilityController) {
+        verifyRole(&quot;p&quot;);
+        verifyRole(&quot;link&quot;);
...

Wondering if we should follow what we do in other tests where we get all elements at once and make verifyRole a visitor on each item of the array.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851327</commentid>
    <comment_count>6</comment_count>
      <attachid>454717</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-15 09:25:25 -0700</bug_when>
    <thetext>Created attachment 454717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851330</commentid>
    <comment_count>7</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-15 09:26:32 -0700</bug_when>
    <thetext>&gt; +    // To avoid double-inserting a child of a `display: contents` element,
&gt; only insert if `this` is the rightful parent.
&gt; +    if (displayContentsParent &amp;&amp; displayContentsParent != this)
&gt; +        return;
&gt; +
&gt; 
&gt; Why would it try to double insert a child in the first place?
Because display:contents moves the element&apos;s children up a level in the render tree, making them accessible by the render tree parent of display:contents. That means both this grandparent, and the actual display:contents parent (in addNodeOnlyChildren) will try to insert these children.

&gt; --- a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
&gt; +++ a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
&gt; 
&gt; +// Some elements don&apos;t have an associated render object, meaning they won&apos;t
&gt; be picked up by a walk of the render tree.
&gt; +// For example, nodes that are `aria-hidden=&quot;false&quot;` and `hidden`, or
&gt; elements with `display: contents`.
&gt; +// This function will find and add these elements to the AX tree.
&gt; +void AccessibilityRenderObject::addNodeOnlyChildren()
&gt; 
&gt; This makes me think that this belongs to AXNodeObject and not to
&gt; AXRenderObject. Can we keep AXRenderObject for nodes that do have a
&gt; renderer, and move this to AXNodeObject? 
Well, the default behavior of AXNodeObject is already to add node only children (that&apos;s what AccessibilityNodeObject::addChildren does). Only AXRenderObject needs to addNodeOnlyChildren in this special way, since its normal means of adding children is via the render tree. So I think it makes sense that this method exists on AXRenderObject, but maybe I&apos;m misunderstanding the suggestion.

&gt; +    function verifyRole(elementId) {
&gt; +        const outerHTML =
&gt; escapeHTML(document.getElementById(elementId).cloneNode().outerHTML);
&gt; 
&gt; Do we need to cloneNode to get the outerHTML?
We do. Both outerHTML and innerHTML return an element&apos;s contents in the returned string (so outerHTML on &lt;ol&gt; would include the &lt;li&gt; elements). Performing a cloneNode first ensures we only capture the outermost node in the string (since cloneNode is shallow by default).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851333</commentid>
    <comment_count>8</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-15 09:28:53 -0700</bug_when>
    <thetext>&gt; can we put the runtime enablement check first. maybe on it&apos;s own line. it
&gt; feels substantively different than the code
&gt; presumably we&apos;ll remove that check soon? or can we do it with this PR?
I decided to just not use the flag for now. My original thought process was that exposing these elements without porting all functionality might provide a worse experience than status quo (these elements not existing at all in the AX tree), but I&apos;m not so sure about that anymore. I&apos;ll remove the flag entirely in a later patch if we still feel we don&apos;t need it.

&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:458
&gt; &gt; +    if (!is&lt;Element&gt;(parentNode) || !downcast&lt;Element&gt;(parentNode)-&gt;hasDisplayContents())
&gt; 
&gt; do we need to worry about a display contents parent who is 
&gt; aria-hidden=true or role=presentational?
I don&apos;t believe so, similar to how it&apos;s OK if we return an aria-hidden or presentational parent from AXCoreObject::parentObject (vs. parentObjectUnignored). Children can be inserted to an ignored display:contents parent, or we can return an ignored display:contents parent, and things will work as they do if the element weren&apos;t display:contents. But maybe I&apos;m missing something -- do you see this being problematic?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851367</commentid>
    <comment_count>9</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-03-15 10:32:18 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #8)
&gt; &gt; can we put the runtime enablement check first. maybe on it&apos;s own line. it
&gt; &gt; feels substantively different than the code
&gt; &gt; presumably we&apos;ll remove that check soon? or can we do it with this PR?
&gt; I decided to just not use the flag for now. My original thought process was
&gt; that exposing these elements without porting all functionality might provide
&gt; a worse experience than status quo (these elements not existing at all in
&gt; the AX tree), but I&apos;m not so sure about that anymore. I&apos;ll remove the flag
&gt; entirely in a later patch if we still feel we don&apos;t need it.
&gt; 

Ok

&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:458
&gt; &gt; &gt; +    if (!is&lt;Element&gt;(parentNode) || !downcast&lt;Element&gt;(parentNode)-&gt;hasDisplayContents())
&gt; &gt; 
&gt; &gt; do we need to worry about a display contents parent who is 
&gt; &gt; aria-hidden=true or role=presentational?
&gt; I don&apos;t believe so, similar to how it&apos;s OK if we return an aria-hidden or
&gt; presentational parent from AXCoreObject::parentObject (vs.
&gt; parentObjectUnignored). Children can be inserted to an ignored
&gt; display:contents parent, or we can return an ignored display:contents
&gt; parent, and things will work as they do if the element weren&apos;t
&gt; display:contents. But maybe I&apos;m missing something -- do you see this being
&gt; problematic?

Maybe adding a test case to see what happens if an element is display contents and is aria hidden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851571</commentid>
    <comment_count>10</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2022-03-15 16:27:41 -0700</bug_when>
    <thetext>*** Bug 185679 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851572</commentid>
    <comment_count>11</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2022-03-15 16:28:21 -0700</bug_when>
    <thetext>test case from the dupe may still be useful
https://bugs.webkit.org/attachment.cgi?id=353831</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852594</commentid>
    <comment_count>12</comment_count>
      <attachid>455058</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-17 19:08:39 -0700</bug_when>
    <thetext>Created attachment 455058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852891</commentid>
    <comment_count>13</comment_count>
      <attachid>455152</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-18 17:04:24 -0700</bug_when>
    <thetext>Created attachment 455152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852949</commentid>
    <comment_count>14</comment_count>
      <attachid>455165</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-18 23:00:30 -0700</bug_when>
    <thetext>Created attachment 455165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853192</commentid>
    <comment_count>15</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-03-21 08:06:45 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #7)
&gt; &gt; --- a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
&gt; &gt; +++ a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
&gt; &gt; 
&gt; &gt; +// Some elements don&apos;t have an associated render object, meaning they won&apos;t
&gt; &gt; be picked up by a walk of the render tree.
&gt; &gt; +// For example, nodes that are `aria-hidden=&quot;false&quot;` and `hidden`, or
&gt; &gt; elements with `display: contents`.
&gt; &gt; +// This function will find and add these elements to the AX tree.
&gt; &gt; +void AccessibilityRenderObject::addNodeOnlyChildren()
&gt; &gt; 
&gt; &gt; This makes me think that this belongs to AXNodeObject and not to
&gt; &gt; AXRenderObject. Can we keep AXRenderObject for nodes that do have a
&gt; &gt; renderer, and move this to AXNodeObject? 
&gt; Well, the default behavior of AXNodeObject is already to add node only
&gt; children (that&apos;s what AccessibilityNodeObject::addChildren does). Only
&gt; AXRenderObject needs to addNodeOnlyChildren in this special way, since its
&gt; normal means of adding children is via the render tree. So I think it makes
&gt; sense that this method exists on AXRenderObject, but maybe I&apos;m
&gt; misunderstanding the suggestion.

What I&apos;m saying is that it would make more sense that AXRenderObject::addChildren adds the children that have an associated RednerObject, and since an AXRenderObject is an AXNodeObject, then it adds the children from the Node&apos;s hierarchy if needed, like the display content elements. I.e., have AXRenderObject::addChildren would call AXNOdeObject::addChildren to add those children that are not part of the RenderObject hierarchy but are part of the Node hierarchy. I believe that would be a cleaner and more maintainable design than mingling the traversals of RenderObjects and Nodes in the AXRenderObject subclass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853214</commentid>
    <comment_count>16</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-21 09:23:45 -0700</bug_when>
    <thetext>&gt; What I&apos;m saying is that it would make more sense that
&gt; AXRenderObject::addChildren adds the children that have an associated
&gt; RednerObject, and since an AXRenderObject is an AXNodeObject, then it adds
&gt; the children from the Node&apos;s hierarchy if needed, like the display content
&gt; elements. I.e., have AXRenderObject::addChildren would call
&gt; AXNOdeObject::addChildren to add those children that are not part of the
&gt; RenderObject hierarchy but are part of the Node hierarchy. I believe that
&gt; would be a cleaner and more maintainable design than mingling the traversals
&gt; of RenderObjects and Nodes in the AXRenderObject subclass.
Ah, OK, I think I understand your suggestion better. Agreed, this would probably be better homed in AXNodeObject. However, doing that wouldn’t be as straightforward as changing AXNodeObject::addChildren around a bit to accommodate this usecase, as AXRenderObject::addNodeOnlyObjects does a lot of work to splice the child into the right place, which AXNodeObject::addChildren doesn’t (and shouldn’t) have to worry about. 

This mechanism is not new to this patch, so in the name of incremental improvement I propose we save that refactoring for later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853268</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-21 11:49:37 -0700</bug_when>
    <thetext>Committed r291570 (248670@main): &lt;https://commits.webkit.org/248670@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455165.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454610</attachid>
            <date>2022-03-14 12:02:21 -0700</date>
            <delta_ts>2022-03-14 12:06:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237834-20220314140220.patch</filename>
            <type>text/plain</type>
            <size>24637</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I5Y2IzYTY2OWJhM2Ex
OThmNTIyMzY4Zjg4ZGJkZDZjZTQyYzg1NS4uOWU1ZTE3OTgyMmU1OGQ5ZDU4Y2Q4MGZkN2UyYjY3
OTZmMWIwM2Y3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTE0ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY2x1ZGUgZGlz
cGxheTogY29udGVudHMgZWxlbWVudHMgaW4gdGhlIEFYIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzgzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlY2F1c2UgZGlzcGxheTogY29udGVudHMg
aW50ZW50aW9uYWxseSBwcmV2ZW50cyBhIHJlbmRlciBvYmplY3QgZnJvbSBiZWluZworICAgICAg
ICBnZW5lcmF0ZWQgZm9yIHRoZSBlbGVtZW50IGl0J3MgYXBwbGllZCB0bywgd2UgZG9uJ3QgYWRk
IGl0IHRvIHRoZSBBWCB0cmVlIGFzCisgICAgICAgIHBhcnQgb2Ygb3VyIG5vcm1hbCByZW5kZXIg
dHJlZSB3YWxrLCBtYWtpbmcgdGhlc2UgZWxlbWVudHMgaW5hY2Nlc3NpYmxlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW5jbHVkZXMgdGhlc2UgZWxlbWVudHMgYXMgcGFydCBvZiB0aGUgRE9NIHdh
bGsgdGhhdAorICAgICAgICBhZGRIaWRkZW5DaGlsZHJlbiAobm93IHJlbmFtZWQgdG8gYWRkTm9k
ZU9ubHlDaGlsZHJlbikgYWxyZWFkeSBkb2VzLgorCisgICAgICAgIEFsc28sIGJlY2F1c2UgZGlz
cGxheTogY29udGVudHMgbW92ZXMgdGhlIGFmZmVjdGVkIGVsZW1lbnQncyBjaGlsZHJlbiB1cCBh
CisgICAgICAgIGxldmVsIGluIHRoZSByZW5kZXIgdHJlZSwgdGhpcyBwYXRjaCBhbHNvIHNwZWNp
YWwgY2FzZXM6CisKKyAgICAgICAgICAxLiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJl
bnRPYmplY3QgYW5kIHNpbWlsYXIgbWV0aG9kcyB0bworICAgICAgICAgIHJldHVybiB0aGVpciBk
aXNwbGF5OiBjb250ZW50cyBwYXJlbnQgaW5zdGVhZCBvZiB0aGVpciByZW5kZXIgdHJlZQorICAg
ICAgICAgIHBhcmVudAorICAgICAgICAgIDIuIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENo
aWxkIHRvIG9ubHkgaW5zZXJ0IGRpc3BsYXk6IGNvbnRlbnRzCisgICAgICAgICAgY2hpbGRyZW4g
dG8gdGhlaXIgZGlzcGxheTogY29udGVudHMgcGFyZW50LCByYXRoZXIgdGhhbiB0aGVpciByZW5k
ZXIKKyAgICAgICAgICB0cmVlIHBhcmVudAorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpnZXRPckNyZWF0ZSk6CisgICAgICAgIEFsbG93IGNyZWF0aW9uIG9mIEFYIG9iamVjdHMgZnJv
bSBkaXNwbGF5OiBjb250ZW50cyBgTm9kZWBzLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpkaXNwbGF5Q29udGVudHNQYXJlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6aW5zZXJ0Q2hpbGQpOgorICAgICAgICBJZiBhbiBvYmplY3QgaGFz
IGEgZGlzcGxheTogY29udGVudHMgcGFyZW50LCBhbmQgdGhhdCBwYXJlbnQgaXNuJ3QKKyAgICAg
ICAgYHRoaXNgLCByZXR1cm4gZWFybHkuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnBhcmVudE9iamVjdElmRXhpc3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhcmVudE9iamVjdCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9yZWQgY29u
c3QpOgorICAgICAgICBJZiBhbiBvYmplY3QgaGFzIGEgZGlzcGxheTogY29udGVudHMgcGFyZW50
LCByZXR1cm4gdGhhdCBpbnN0ZWFkIG9mCisgICAgICAgIGl0cyByZW5kZXIgdHJlZSBwYXJlbnQu
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGROb2RlT25s
eUNoaWxkcmVuKToKKyAgICAgICAgUmVuYW1lZCBmcm9tIGFkZEhpZGRlbkNoaWxkcmVuLgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkSGlkZGVuQ2hp
bGRyZW4pOgorICAgICAgICBSZW5hbWVkIHRvIGFkZE5vZGVPbmx5Q2hpbGRyZW4uCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisKIDIwMjItMDMt
MTQgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogTW92
ZSBhZGRDaGlsZHJlbiwgYWRkQ2hpbGQsIGluc2VydENoaWxkLCBjYW5IYXZlQ2hpbGRyZW4sIHNl
dE5lZWRzVG9VcGRhdGVDaGlsZHJlbiwgc2V0TmVlZHNUb1VwZGF0ZVN1YnRyZWUsIGNsZWFyQ2hp
bGRyZW4sIGFuZCBuZWVkc1RvVXBkYXRlQ2hpbGRyZW4gb3V0IG9mIEFYQ29yZU9iamVjdCBpbnRl
cmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CmluZGV4IDJkMjIwNDQyNTI1NDdiMmNhMzRkOWVjMTkyNmVhMjc3MmJlMGQzNTEuLmUzMjY1ZjYz
MTI5NGE5YmFjYTZlOGYxNmQ2NDZhN2U2ZWI1ZTdjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNzIwLDE0ICs3MjAsMTAgQEAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoTm9kZSogbm9kZSkK
ICAgICAgICAgcmV0dXJuIG9iamVjdC5nZXQoKTsKICAgICB9CiAKLSAgICAvLyBJdCdzIG9ubHkg
YWxsb3dlZCB0byBjcmVhdGUgYW4gQWNjZXNzaWJpbGl0eU9iamVjdCBmcm9tIGEgTm9kZSBpZiBp
dCdzIGluIGEgY2FudmFzIHN1YnRyZWUuCi0gICAgLy8gT3IgaWYgaXQncyBhIGhpZGRlbiBlbGVt
ZW50LCBidXQgd2Ugc3RpbGwgd2FudCB0byBleHBvc2UgaXQgYmVjYXVzZSBvZiBvdGhlciBBUklB
IGF0dHJpYnV0ZXMuCiAgICAgYm9vbCBpbkNhbnZhc1N1YnRyZWUgPSBsaW5lYWdlT2ZUeXBlPEhU
TUxDYW52YXNFbGVtZW50Pigqbm9kZS0+cGFyZW50RWxlbWVudCgpKS5maXJzdCgpOwotICAgIGJv
b2wgaXNIaWRkZW4gPSBpc05vZGVBcmlhVmlzaWJsZShub2RlKTsKLQogICAgIGJvb2wgaW5zaWRl
TWV0ZXJFbGVtZW50ID0gaXM8SFRNTE1ldGVyRWxlbWVudD4oKm5vZGUtPnBhcmVudEVsZW1lbnQo
KSk7Ci0gICAgCi0gICAgaWYgKCFpbkNhbnZhc1N1YnRyZWUgJiYgIWlzSGlkZGVuICYmICFpbnNp
ZGVNZXRlckVsZW1lbnQpCisgICAgYm9vbCBoYXNEaXNwbGF5Q29udGVudHMgPSBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNzc0Rpc3BsYXlDb250ZW50c0FYU3VwcG9y
dEVuYWJsZWQoKSAmJiBpczxFbGVtZW50Pigqbm9kZSkgJiYgZG93bmNhc3Q8RWxlbWVudD4oKm5v
ZGUpLmhhc0Rpc3BsYXlDb250ZW50cygpOworICAgIGlmICghaW5DYW52YXNTdWJ0cmVlICYmICFp
bnNpZGVNZXRlckVsZW1lbnQgJiYgIWhhc0Rpc3BsYXlDb250ZW50cyAmJiAhaXNOb2RlQXJpYVZp
c2libGUobm9kZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUmVmIHByb3RlY3Rl
ZE5vZGUgeyAqbm9kZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNTA1MDlkNjAyNmRmYWNkZTM4MjJhMmRjNmY3
NjUyOGExZGNmMDJlYy4uNDk0ZTEyNGQ3OGJmYzA0YzVlNzFiYzE2ODBhNzAyNzFmMmI5ZTM0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkUG9zaXRpb24uaCIKKyNp
bmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2luZ0hl
bHBlci5oIgpAQCAtNDQ4LDYgKzQ0OSwyMSBAQCBBWENvcmVPYmplY3QqIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0CiAgICAgfSk7CiB9CiAKK0FjY2Vz
c2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BsYXlDb250ZW50c1BhcmVu
dCgpIGNvbnN0Cit7CisgICAgaWYgKCFub2RlKCkgfHwgIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuY3NzRGlzcGxheUNvbnRlbnRzQVhTdXBwb3J0RW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8qIHBhcmVudE5vZGUgPSBub2RlKCkt
PnBhcmVudE5vZGUoKTsKKyAgICBpZiAoIWlzPEVsZW1lbnQ+KHBhcmVudE5vZGUpIHx8ICFkb3du
Y2FzdDxFbGVtZW50PihwYXJlbnROb2RlKS0+aGFzRGlzcGxheUNvbnRlbnRzKCkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgaWYgKGF1dG8qIGNhY2hlID0gYXhPYmplY3RDYWNoZSgp
KQorICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE5vZGUpOworCisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnByZXZpb3VzU2libGluZ1VuaWdub3JlZChpbnQgbGltaXQpIGNvbnN0CiB7CiAgICAg
QWNjZXNzaWJpbGl0eU9iamVjdCogcHJldmlvdXM7CkBAIC01NzUsMTIgKzU5MSwxNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENoaWxkKEFYQ29yZU9iamVjdCogbmV3Q2hpbGQs
IHVuc2lnbmVkIGluZGV4LCBEZQogewogICAgIGlmICghbmV3Q2hpbGQpCiAgICAgICAgIHJldHVy
bjsKLSAgICAKKwogICAgIEFTU0VSVChpczxBY2Nlc3NpYmlsaXR5T2JqZWN0PihuZXdDaGlsZCkp
OwogICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eU9iamVjdD4obmV3Q2hpbGQpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBhdXRvKiBjaGlsZCA9IGRvd25jYXN0PEFjY2Vzc2liaWxpdHlPYmplY3Q+
KG5ld0NoaWxkKTsKKyAgICBhdXRvKiBkaXNwbGF5Q29udGVudHNQYXJlbnQgPSBjaGlsZC0+ZGlz
cGxheUNvbnRlbnRzUGFyZW50KCk7CisgICAgLy8gVG8gYXZvaWQgZG91YmxlLWluc2VydGluZyBh
IGNoaWxkIG9mIGEgYGRpc3BsYXk6IGNvbnRlbnRzYCBlbGVtZW50LCBvbmx5IGRvIHNvIGlmIGB0
aGlzYCBpcyB0aGUgcmlnaHRmdWwgcGFyZW50LgorICAgIGlmIChkaXNwbGF5Q29udGVudHNQYXJl
bnQgJiYgZGlzcGxheUNvbnRlbnRzUGFyZW50ICE9IHRoaXMpCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8vIElmIHRoZSBwYXJlbnQgaXMgYXNraW5nIGZvciB0aGlzIGNoaWxkJ3MgY2hpbGRyZW4s
IHRoZW4gZWl0aGVyIGl0J3MgdGhlIGZpcnN0IHRpbWUgKGFuZCBjbGVhcmluZyBpcyBhIG5vLW9w
KSwKICAgICAvLyBvciBpdHMgdmlzaWJpbGl0eSBoYXMgY2hhbmdlZC4gSW4gdGhlIGxhdHRlciBj
YXNlLCB0aGlzIGNoaWxkIG1heSBoYXZlIGEgc3RhbGUgY2hpbGQgY2FjaGVkLgogICAgIC8vIFRo
aXMgY2FuIHByZXZlbnQgYXJpYS1oaWRkZW4gY2hhbmdlcyBmcm9tIHdvcmtpbmcgY29ycmVjdGx5
LiBIZW5jZSwgd2hlbmV2ZXIgYSBwYXJlbnQgaXMgZ2V0dGluZyBjaGlsZHJlbiwgZW5zdXJlIGRh
dGEgaXMgbm90IHN0YWxlLgpAQCAtNjI1LDcgKzY0Niw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9i
amVjdDo6aW5zZXJ0Q2hpbGQoQVhDb3JlT2JqZWN0KiBuZXdDaGlsZCwgdW5zaWduZWQgaW5kZXgs
IERlCiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gVGFibGUgY29tcG9uZW50IGNoaWxkLXBhcmVu
dCByZWxhdGlvbnNoaXBzIG9mdGVuIGRvbid0IGxpbmUgdXAgcHJvcGVybHksIGhlbmNlIHRoZSBu
ZWVkIGZvciBtZXRob2RzCiAgICAgICAgIC8vIGxpa2UgcGFyZW50VGFibGUoKSBhbmQgcGFyZW50
Um93KCkuIEV4Y2x1ZGUgdGhlbSBmcm9tIHRoaXMgQVNTRVJULgotICAgICAgICBBU1NFUlQoKCFp
c1RhYmxlQ29tcG9uZW50KCpjaGlsZCkgJiYgIWlzVGFibGVDb21wb25lbnQoKnRoaXMpKSA/IGNo
aWxkLT5wYXJlbnRPYmplY3QoKSA9PSB0aGlzIDogdHJ1ZSk7CisgICAgICAgIEFTU0VSVChpc1Rh
YmxlQ29tcG9uZW50KCpjaGlsZCkgfHwgaXNUYWJsZUNvbXBvbmVudCgqdGhpcykgfHwgY2hpbGQt
PnBhcmVudE9iamVjdCgpID09IHRoaXMpOwogICAgICAgICBtX2NoaWxkcmVuLmluc2VydChpbmRl
eCwgY2hpbGQpOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMmI0ZGYzMzNlZjhlNWU1NTM4NTFlNWI5
NDk1ZGNiM2IwZDMzMjYyNS4uOTg0YjBiY2FhOWNkZjE0NzE0YzBjNTlmYjg4YjgxZDk5OGY1MDVi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgKQEAgLTM3Myw2ICszNzMsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogbmV4dFNpYmxpbmdVbmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdCBvdmVycmlkZTsKICAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxpbmdVbmlnbm9yZWQoaW50IGxpbWl0
KSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3Qo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogZGlzcGxheUNvbnRlbnRzUGFyZW50KCkgY29uc3Q7CiAgICAgQVhDb3JlT2JqZWN0KiBw
YXJlbnRPYmplY3RVbmlnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51
bGxwdHI7IH0KICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RBY2Nlc3NpYmxl
T2JqZWN0RnJvbU5vZGUoY29uc3QgTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMDEw
MWZiNTMwNzlmYjIxOTMzNzliYzZkMzc1ODhhNGY3NTViNGE0NS4uYTk3OWVlZWZhNWI2NzQwYWRi
MGYxMThkMTI2MDE0ZjQ4OWI3NDIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMDQsNiAr
MTA0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWRQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNWR0Vs
ZW1lbnRUeXBlSGVscGVycy5oIgogI2luY2x1ZGUgIlNWR0ltYWdlLmgiCkBAIC00OTEsMTEgKzQ5
MiwxNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpw
YXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0CiAgICAgaWYgKG1fcmVuZGVyZXIgJiYgaXNXZWJB
cmVhKCkpCiAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0KCZtX3JlbmRlcmVyLT52aWV3KCkuZnJh
bWVWaWV3KCkpOwogCisgICAgaWYgKGF1dG8qIGRpc3BsYXlDb250ZW50c1BhcmVudCA9IHRoaXMt
PmRpc3BsYXlDb250ZW50c1BhcmVudCgpKQorICAgICAgICByZXR1cm4gZGlzcGxheUNvbnRlbnRz
UGFyZW50OworCiAgICAgcmV0dXJuIGNhY2hlLT5nZXQocmVuZGVyUGFyZW50T2JqZWN0KCkpOwog
fQogICAgIAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
cGFyZW50T2JqZWN0KCkgY29uc3QKIHsKKyAgICBpZiAoYXV0byogZGlzcGxheUNvbnRlbnRzUGFy
ZW50ID0gdGhpcy0+ZGlzcGxheUNvbnRlbnRzUGFyZW50KCkpCisgICAgICAgIHJldHVybiBkaXNw
bGF5Q29udGVudHNQYXJlbnQ7CisKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIApAQCAtNTA4LDE0ICs1MTUsMTMgQEAgQWNjZXNzaWJpbGl0eU9iamVj
dCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKICAgICAg
ICAgaWYgKHBhcmVudCkKICAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7CiAgICAgfQotICAgIAor
CiAgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCk7CiAgICAgaWYgKCFj
YWNoZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCi0gICAgUmVuZGVyT2JqZWN0KiBw
YXJlbnRPYmogPSByZW5kZXJQYXJlbnRPYmplY3QoKTsKLSAgICBpZiAocGFyZW50T2JqKQotICAg
ICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE9iaik7CisKKyAgICBpZiAoYXV0
byogcGFyZW50T2JqZWN0ID0gcmVuZGVyUGFyZW50T2JqZWN0KCkpCisgICAgICAgIHJldHVybiBj
YWNoZS0+Z2V0T3JDcmVhdGUocGFyZW50T2JqZWN0KTsKICAgICAKICAgICAvLyBXZWJBcmVhJ3Mg
cGFyZW50IHNob3VsZCBiZSB0aGUgc2Nyb2xsIHZpZXcgY29udGFpbmluZyBpdC4KICAgICBpZiAo
aXNXZWJBcmVhKCkpCkBAIC01MzcsNyArNTQzLDcgQEAgQVhDb3JlT2JqZWN0KiBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9yZWQoKSBjb25zdAogICAgIH0KICNl
bmRpZgogCi0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXJlbnRPYmplY3RV
bmlnbm9yZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6cGFyZW50T2JqZWN0
VW5pZ25vcmVkKCk7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNBdHRh
Y2htZW50KCkgY29uc3QKQEAgLTMxOTgsMjkgKzMyMDQsMzYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0Ojp1cGRhdGVBdHRhY2htZW50Vmlld1BhcmVudHMoKQogfQogI2VuZGlmCiAK
LS8vIEhpZGRlbiBjaGlsZHJlbiBhcmUgdGhvc2UgdGhhdCBhcmUgbm90IHJlbmRlcmVkIG9yIHZp
c2libGUsIGJ1dCBhcmUgc3BlY2lmaWNhbGx5IG1hcmtlZCBhcyBhcmlhLWhpZGRlbj1mYWxzZSwK
LS8vIG1lYW5pbmcgdGhhdCB0aGV5IHNob3VsZCBiZSBleHBvc2VkIHRvIHRoZSBBWCBoaWVyYXJj
aHkuCi12b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZEhpZGRlbkNoaWxkcmVuKCkK
Ky8vIFNvbWUgZWxlbWVudHMgZG9uJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIHJlbmRlciBvYmplY3Qs
IG1lYW5pbmcgdGhleSB3b24ndCBiZSBwaWNrZWQgdXAgYnkgYSB3YWxrIG9mIHRoZSByZW5kZXIg
dHJlZS4KKy8vIEZvciBleGFtcGxlLCBub2RlcyB0aGF0IGFyZSBgYXJpYS1oaWRkZW49ImZhbHNl
ImAgYW5kIGBoaWRkZW5gLCBvciBlbGVtZW50cyB3aXRoIGBkaXNwbGF5OiBjb250ZW50c2AuCisv
LyBUaGlzIGZ1bmN0aW9uIHdpbGwgZmluZCBhbmQgYWRkIHRoZXNlIGVsZW1lbnRzIHRvIHRoZSBB
WCB0cmVlLgordm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGROb2RlT25seUNoaWxk
cmVuKCkKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkK
ICAgICAgICAgcmV0dXJuOwotICAgIAorCisgICAgYXV0byBub2RlSGFzRGlzcGxheUNvbnRlbnRz
ID0gW10gKE5vZGUmIG5vZGUpIHsKKyAgICAgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuY3NzRGlzcGxheUNvbnRlbnRzQVhTdXBwb3J0RW5hYmxlZCgp
ICYmIGlzPEVsZW1lbnQ+KG5vZGUpICYmIGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpLmhhc0Rpc3Bs
YXlDb250ZW50cygpOworICAgIH07CiAgICAgLy8gRmlyc3QgZG8gYSBxdWljayBydW4gdGhyb3Vn
aCB0byBkZXRlcm1pbmUgaWYgd2UgaGF2ZSBhbnkgaGlkZGVuIG5vZGVzIChtb3N0IG9mdGVuIHdl
IHdpbGwgbm90KS4KICAgICAvLyBJZiB3ZSBkbyBoYXZlIGhpZGRlbiBub2Rlcywgd2UgbmVlZCB0
byBkZXRlcm1pbmUgd2hlcmUgdG8gaW5zZXJ0IHRoZW0gc28gdGhleSBtYXRjaCBET00gb3JkZXIg
YXMgY2xvc2UgYXMgcG9zc2libGUuCi0gICAgYm9vbCBzaG91bGRJbnNlcnRIaWRkZW5Ob2RlcyA9
IGZhbHNlOworICAgIGJvb2wgaGFzTm9kZU9ubHlDaGlsZHJlbiA9IGZhbHNlOwogICAgIGZvciAo
Tm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICghY2hpbGQtPnJlbmRlcmVyKCkgJiYgaXNOb2Rl
QXJpYVZpc2libGUoY2hpbGQpKSB7Ci0gICAgICAgICAgICBzaG91bGRJbnNlcnRIaWRkZW5Ob2Rl
cyA9IHRydWU7CisgICAgICAgIGlmIChjaGlsZC0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgIGlmIChub2RlSGFzRGlzcGxheUNvbnRlbnRzKCpjaGlsZCkgfHwg
aXNOb2RlQXJpYVZpc2libGUoY2hpbGQpKSB7CisgICAgICAgICAgICBoYXNOb2RlT25seUNoaWxk
cmVuID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogICAgIAot
ICAgIGlmICghc2hvdWxkSW5zZXJ0SGlkZGVuTm9kZXMpCisgICAgaWYgKCFoYXNOb2RlT25seUNo
aWxkcmVuKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGFs
bCBvZiB0aGUgY2hpbGRyZW4sIGluY2x1ZGluZyB0aG9zZSB0aGF0IG1heSBoYXZlIGFscmVhZHkg
YmVlbiBhZGRlZCwgYW5kCi0gICAgLy8gdHJ5IHRvIGluc2VydCBoaWRkZW4gbm9kZXMgaW4gdGhl
IGNvcnJlY3QgcGxhY2UgaW4gdGhlIERPTSBvcmRlci4KKyAgICAvLyB0cnkgdG8gaW5zZXJ0IHRo
ZSBub2RlcyBpbiB0aGUgY29ycmVjdCBwbGFjZSBpbiB0aGUgRE9NIG9yZGVyLgogICAgIHVuc2ln
bmVkIGluc2VydGlvbkluZGV4ID0gMDsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbm9kZS0+Zmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAg
ICBpZiAoY2hpbGQtPnJlbmRlcmVyKCkpIHsKQEAgLTMyMzksNyArMzI1Miw3IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkSGlkZGVuQ2hpbGRyZW4oKQogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIWlzTm9kZUFyaWFWaXNpYmxlKGNo
aWxkKSkKKyAgICAgICAgaWYgKCFub2RlSGFzRGlzcGxheUNvbnRlbnRzKCpjaGlsZCkgJiYgIWlz
Tm9kZUFyaWFWaXNpYmxlKGNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAK
ICAgICAgICAgdW5zaWduZWQgcHJldmlvdXNTaXplID0gbV9jaGlsZHJlbi5zaXplKCk7CkBAIC0z
MzEzLDcgKzMzMjYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxk
cmVuKCkKIAogICAgIG1fc3VidHJlZURpcnR5ID0gZmFsc2U7CiAgICAgCi0gICAgYWRkSGlkZGVu
Q2hpbGRyZW4oKTsKKyAgICBhZGROb2RlT25seUNoaWxkcmVuKCk7CiAgICAgYWRkQXR0YWNobWVu
dENoaWxkcmVuKCk7CiAgICAgYWRkSW1hZ2VNYXBDaGlsZHJlbigpOwogICAgIGFkZFRleHRGaWVs
ZENoaWxkcmVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDI3NWJhY2Y3OTFhNWM4NWQzNzYzZTA2
OTZjMGY3NDQ2OTk0ZDhkMjIuLjJiMDQ1ZGEzMmM0Zjk3NzFkMDQyNDAzNDBmZWM5MmRhM2Q0MDE4
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0yNDgsNyArMjQ4LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIG9mZnNldEJvdW5kaW5nQm94Rm9yUmVtb3RlU1ZHRWxlbWVudChMYXlvdXRSZWN0JikgY29u
c3Q7CiAgICAgYm9vbCBzdXBwb3J0c1BhdGgoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQg
YWRkSGlkZGVuQ2hpbGRyZW4oKTsKKyAgICB2b2lkIGFkZE5vZGVPbmx5Q2hpbGRyZW4oKTsKICAg
ICB2b2lkIGFkZFRleHRGaWVsZENoaWxkcmVuKCk7CiAgICAgdm9pZCBhZGRJbWFnZU1hcENoaWxk
cmVuKCk7CiAgICAgdm9pZCBhZGRDYW52YXNDaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU3MzNjMGI5YTdl
ZTNhNjlmN2ZjNDczZjJhNDZhMWMyZDExNmYzYzMuLjI1NmZlZGE4NTM0ZmNlNWQ0MjA1NDgxODBm
Y2VhZmNmMWU2ZDRmMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMy0xNCAgVHlsZXIg
V2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBJbmNsdWRlIGRpc3Bs
YXk6IGNvbnRlbnRzIGVsZW1lbnRzIGluIHRoZSBBWCB0cmVlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4MzQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250
ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMuaHRtbDogQWRkZWQuCisKIDIw
MjItMDMtMTQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W21vZGVsXSBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtY2FtZXJhLmh0bWwgZmFpbHMgZHVl
IHRvIGBwcm9taXNlX3JlamVjdHNgIGJlaW5nIHVuZGVmaW5lZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1l
bnQtcm9sZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYWQyMmUwMDdhZjMxMDY3NzRlZDMx
YjhiN2IyNDE4MjQyZGQzNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNjIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6
IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KKworPHAgc3R5bGU9ImRpc3BsYXk6IGNv
bnRlbnRzIiBpZD0icCI+PC9wPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogcGFyYWdyYXBoCisKKzxhIGhyZWY9Imh0dHBzOi8vYXBwbGUuY29tIiBpZD0ibGlu
ayIgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIj48L2E+CisgICAgQVhSb2xlOiBBWExpbmsKKyAg
ICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpbmsKKworPGxpIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50
cyIgaWQ9ImxpLWVsZW1lbnQiPjwvbGk+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0
ZWRSb2xlU3RyaW5nOiBsaXN0aXRlbQorCis8YnV0dG9uIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50
cyIgaWQ9ImJ1dHRvbiI+PC9idXR0b24+CisgICAgQVhSb2xlOiBBWEJ1dHRvbgorICAgIGNvbXB1
dGVkUm9sZVN0cmluZzogYnV0dG9uCisKKzxsZWdlbmQgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRz
IiBpZD0ibGVnZW5kIj48L2xlZ2VuZD4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKworPGgyIHN0eWxl
PSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImgyIj48L2gyPgorICAgIEFYUm9sZTogQVhIZWFkaW5n
CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBoZWFkaW5nCisKKzxkZWwgc3R5bGU9ImRpc3BsYXk6
IGNvbnRlbnRzIiBpZD0iZGVsIj48L2RlbD4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21w
dXRlZFJvbGVTdHJpbmc6IGRlbGV0aW9uCisgICAgQVhTdWJyb2xlOiBBWERlbGV0ZVN0eWxlR3Jv
dXAKKworPGlucyBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJpbnMiPjwvaW5zPgorICAg
IEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogaW5zZXJ0aW9uCisgICAg
QVhTdWJyb2xlOiBBWEluc2VydFN0eWxlR3JvdXAKKworPHN1YiBzdHlsZT0iZGlzcGxheTogY29u
dGVudHMiIGlkPSJzdWIiPjwvc3ViPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVk
Um9sZVN0cmluZzogc3Vic2NyaXB0CisgICAgQVhTdWJyb2xlOiBBWFN1YnNjcmlwdFN0eWxlR3Jv
dXAKKworPHN1cCBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJzdXAiPjwvc3VwPgorICAg
IEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3VwZXJzY3JpcHQKKyAg
ICBBWFN1YnJvbGU6IEFYU3VwZXJzY3JpcHRTdHlsZUdyb3VwCisKKzxjb2RlIHN0eWxlPSJkaXNw
bGF5OiBjb250ZW50cyIgaWQ9ImNvZGUiPjwvY29kZT4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAg
ICBBWFN1YnJvbGU6IEFYQ29kZVN0eWxlR3JvdXAKKworPGR0IHN0eWxlPSJkaXNwbGF5OiBjb250
ZW50cyIgaWQ9ImR0Ij48L2R0PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9sZTog
QVhUZXJtCisKKzxkZCBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJkZCI+PC9kZD4KKyAg
ICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYRGVzY3JpcHRpb24KKworPGRsIHN0
eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImRsIj48L2RsPgorICAgIEFYUm9sZTogQVhMaXN0
CisKKzxvbCBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJvbCI+PC9vbD4KKyAgICBBWFJv
bGU6IEFYTGlzdAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorCis8dWwgc3R5bGU9ImRp
c3BsYXk6IGNvbnRlbnRzIiBpZD0idWwiPjwvdWw+CisgICAgQVhSb2xlOiBBWExpc3QKKyAgICBj
b21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKworPGZpZ3VyZSBzdHlsZT0iZGlzcGxheTogY29udGVu
dHMiIGlkPSJmaWd1cmUiPjwvZmlndXJlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1
dGVkUm9sZVN0cmluZzogZmlndXJlCisgICAgQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAKKworPGxh
YmVsIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImxhYmVsIj48L2xhYmVsPgorICAgIEFY
Um9sZTogQVhHcm91cAorCis8ZGZuIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImRmbiI+
PC9kZm4+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBkZWZp
bml0aW9uCisgICAgQVhTdWJyb2xlOiBBWERlZmluaXRpb24KKworPGRpdiBzdHlsZT0iZGlzcGxh
eTogY29udGVudHMiIGlkPSJkaXYiPjwvZGl2PgorICAgIEFYUm9sZTogQVhHcm91cAorCis8Zm9y
bSBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJmb3JtIj48L2Zvcm0+CisgICAgQVhSb2xl
OiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBmb3JtCisgICAgQVhTdWJyb2xlOiBB
WEVtcHR5R3JvdXAKKworPGFydGljbGUgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0iYXJ0
aWNsZSI+PC9hcnRpY2xlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0
cmluZzogYXJ0aWNsZQorICAgIEFYU3Vicm9sZTogQVhEb2N1bWVudEFydGljbGUKKworPG1haW4g
c3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ibWFpbiI+PC9tYWluPgorICAgIEFYUm9sZTog
QVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbWFpbgorICAgIEFYU3Vicm9sZTogQVhM
YW5kbWFya01haW4KKworPG5hdiBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJuYXYiPjwv
bmF2PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbmF2aWdh
dGlvbgorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya05hdmlnYXRpb24KKworPGFzaWRlIHN0eWxl
PSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImFzaWRlIj48L2FzaWRlPgorICAgIEFYUm9sZTogQVhH
cm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogY29tcGxlbWVudGFyeQorICAgIEFYU3Vicm9s
ZTogQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkKKworPHNlY3Rpb24gc3R5bGU9ImRpc3BsYXk6IGNv
bnRlbnRzIiBpZD0ic2VjdGlvbi13aXRoLW5hbWUiIGFyaWEtbGFiZWw9IlNlY3Rpb24gbmFtZSI+
PC9zZWN0aW9uPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzog
cmVnaW9uCisgICAgQVhTdWJyb2xlOiBBWExhbmRtYXJrUmVnaW9uCisKKzxzZWN0aW9uIHN0eWxl
PSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9InNlY3Rpb24td2l0aG91dC1uYW1lIj48L3NlY3Rpb24+
CisgICAgQVhSb2xlOiBBWEdyb3VwCisKKzxibG9ja3F1b3RlIHN0eWxlPSJkaXNwbGF5OiBjb250
ZW50cyIgaWQ9ImJsb2NrcXVvdGUiPjwvYmxvY2txdW90ZT4KKyAgICBBWFJvbGU6IEFYR3JvdXAK
KyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGJsb2NrcXVvdGUKKworPG1hcmsgc3R5bGU9ImRpc3Bs
YXk6IGNvbnRlbnRzIiBpZD0ibWFyayI+PC9tYXJrPgorICAgIEFYUm9sZTogQVhHcm91cAorCis8
cHJlIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9InByZSI+PC9wcmU+CisgICAgQVhSb2xl
OiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWFByZWZvcm1hdHRlZFN0eWxlR3JvdXAKKworPGRl
dGFpbHMgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0iZGV0YWlscyI+PC9kZXRhaWxzPgor
ICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9sZTogQVhEZXRhaWxzCisKKzxzdW1tYXJ5
IHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9InN1bW1hcnkiPjwvc3VtbWFyeT4KKyAgICBB
WFJvbGU6IEFYQnV0dG9uCisgICAgQVhTdWJyb2xlOiBBWFN1bW1hcnkKKworPG91dHB1dCBzdHls
ZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJvdXRwdXQiPjwvb3V0cHV0PgorICAgIEFYUm9sZTog
QVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3RhdHVzCisgICAgQVhTdWJyb2xlOiBB
WEFwcGxpY2F0aW9uU3RhdHVzCisKKzxtZW51IHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgdHlw
ZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgorICAgIEFYUm9sZTogQVhUb29s
YmFyCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiB0b29sYmFyCisKKzxociBzdHlsZT0iZGlzcGxh
eTogY29udGVudHMiIGlkPSJociI+CisgICAgQVhSb2xlOiBBWFNwbGl0dGVyCisgICAgY29tcHV0
ZWRSb2xlU3RyaW5nOiBzZXBhcmF0b3IKKyAgICBBWFN1YnJvbGU6IEFYQ29udGVudFNlcGFyYXRv
cgorCis8dGltZSBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJ0aW1lIj48L3RpbWU+Cisg
ICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiB0aW1lCisgICAgQVhT
dWJyb2xlOiBBWEVtcHR5R3JvdXAKKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBhMTk5OGYxNTJhYThjNDdkMjhkMDJlOGQwNTg4YjRmMWY4ZmExMjYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVu
dC1yb2xlcy5odG1sCkBAIC0wLDAgKzEsMTU1IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IENTU0Rpc3BsYXlDb250ZW50c0FYU3VwcG9ydEVuYWJsZWQ9dHJ1ZSBdIC0tPgorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorCis8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICA8cCBzdHlsZT0iZGlzcGxheTog
Y29udGVudHMiIGlkPSJwIj5QYXJhZ3JhcGg8L3A+CisKKyAgICA8YSBocmVmPSJodHRwczovL2Fw
cGxlLmNvbSIgaWQ9ImxpbmsiIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyI+YXBwbGUuY29tPC9h
PgorCisgICAgPHVsIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9InVsIj4KKyAgICAgICAg
PGxpIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImxpLWVsZW1lbnQiPkhlbGxvIHdvcmxk
PC9saT4KKyAgICA8L3VsPgorCisgICAgPG9sIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9
Im9sIj4KKyAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyI+SGVsbG8gd29ybGQ8
L2xpPgorICAgIDwvb2w+CisKKyAgICA8YnV0dG9uIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIg
aWQ9ImJ1dHRvbiI+Q2xpY2sgbWU8L2J1dHRvbj4KKworICAgIDxmaWVsZHNldD4KKyAgICAgICAg
PGxlZ2VuZCBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJsZWdlbmQiPkNob29zZSB5b3Vy
IGZhdm9yaXRlIG1vbnN0ZXI8L2xlZ2VuZD4KKworICAgICAgICA8aW5wdXQgc3R5bGU9ImRpc3Bs
YXk6IGNvbnRlbnRzIiB0eXBlPSJyYWRpbyIgaWQ9InJhZGlvLWJ1dHRvbiIgbmFtZT0ibW9uc3Rl
ciI+CisgICAgICAgIDxsYWJlbCBmb3I9InJhZGlvLWJ1dHRvbiI+S3Jha2VuPC9sYWJlbD48YnIv
PgorCisgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9InNhc3F1YXRjaCIgbmFtZT0ibW9u
c3RlciI+CisgICAgICAgIDxsYWJlbCBmb3I9InNhc3F1YXRjaCI+U2FzcXVhdGNoPC9sYWJlbD48
YnIvPgorICAgIDwvZmllbGRzZXQ+CisKKyAgICA8aDIgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRz
IiBpZD0iaDIiPkhlbGxvIHdvcmxkPC9oMj4KKworICAgIDxkZWwgc3R5bGU9ImRpc3BsYXk6IGNv
bnRlbnRzIiBpZD0iZGVsIj5IZWxsbyB3b3JsZDwvZGVsPgorICAgIDxpbnMgc3R5bGU9ImRpc3Bs
YXk6IGNvbnRlbnRzIiBpZD0iaW5zIj5IZWxsbyB3b3JsZDwvaW5zPgorICAgIDxzdWIgc3R5bGU9
ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ic3ViIj5IZWxsbyB3b3JsZDwvc3ViPgorICAgIDxzdXAg
c3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ic3VwIj5IZWxsbyB3b3JsZDwvc3VwPgorICAg
IDxjb2RlIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImNvZGUiPkhlbGxvIHdvcmxkPC9j
b2RlPgorCisgICAgPGRsIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImRsIj4KKyAgICAg
ICAgPGR0IHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImR0Ij5kdCBlbGVtZW50PC9kdD4K
KyAgICAgICAgPGRkIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImRkIj5kZCBlbGVtZW50
PC9kZD4KKyAgICA8L2RsPgorCisgICAgPGZpZ3VyZSBzdHlsZT0iZGlzcGxheTogY29udGVudHMi
IGlkPSJmaWd1cmUiPjwvZmlndXJlPgorCisgICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OiBjb250
ZW50cyIgaWQ9ImxhYmVsIj5MYWJlbDwvbGFiZWw+CisKKyAgICA8ZGZuIHN0eWxlPSJkaXNwbGF5
OiBjb250ZW50cyIgaWQ9ImRmbiI+U29tZSBkZWZpbml0aW9uPC9kZm4+CisKKyAgICA8ZGl2IHN0
eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImRpdiI+U29tZSB0ZXh0PC9kaXY+CisKKyAgICA8
Zm9ybSBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJmb3JtIj48L2Zvcm0+CisKKyAgICA8
YXJ0aWNsZSBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJhcnRpY2xlIj5BcnRpY2xlIGNv
bnRlbnQ8L2FydGljbGU+CisKKyAgICA8bWFpbiBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlk
PSJtYWluIj5NYWluIGNvbnRlbnQ8L21haW4+CisKKyAgICA8bmF2IHN0eWxlPSJkaXNwbGF5OiBj
b250ZW50cyIgaWQ9Im5hdiI+TmF2PC9uYXY+CisKKyAgICA8YXNpZGUgc3R5bGU9ImRpc3BsYXk6
IGNvbnRlbnRzIiBpZD0iYXNpZGUiPkFzaWRlIGNvbnRlbnQ8L2FzaWRlPgorCisgICAgPHNlY3Rp
b24gc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ic2VjdGlvbi13aXRoLW5hbWUiIGFyaWEt
bGFiZWw9IlNlY3Rpb24gbmFtZSI+U2VjdGlvbjwvc2VjdGlvbj4KKyAgICA8c2VjdGlvbiBzdHls
ZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJzZWN0aW9uLXdpdGhvdXQtbmFtZSI+U2VjdGlvbjwv
c2VjdGlvbj4KKworICAgIDxibG9ja3F1b3RlIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9
ImJsb2NrcXVvdGUiPlRvIGJlIG9yIG5vdCB0byBiZSwgdGhhdCBpcyB0aGUgcXVlc3Rpb248L2Js
b2NrcXVvdGU+CisKKyAgICA8bWFyayBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJtYXJr
Ij5NYXJrZWQgdGV4dDwvbWFyaz4KKworICAgIDxwcmUgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRz
IiBpZD0icHJlIj5QcmUtdGV4dDwvcHJlPgorCisgICAgPGRldGFpbHMgc3R5bGU9ImRpc3BsYXk6
IGNvbnRlbnRzIiBpZD0iZGV0YWlscyI+CisgICAgICAgIDxzdW1tYXJ5IHN0eWxlPSJkaXNwbGF5
OiBjb250ZW50cyIgaWQ9InN1bW1hcnkiPlN1bW1hcnkgdGV4dDwvc3VtbWFyeT4KKyAgICA8L2Rl
dGFpbHM+CisKKyAgICA8b3V0cHV0IHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9Im91dHB1
dCI+T3V0cHV0PC9vdXRwdXQ+CisKKyAgICA8bWVudSBzdHlsZT0iZGlzcGxheTogY29udGVudHMi
IHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KKworICAgIDxociBzdHls
ZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJociI+PC9ocj4KKworICAgIDx0aW1lIHN0eWxlPSJk
aXNwbGF5OiBjb250ZW50cyIgaWQ9InRpbWUiPjwvdGltZT4KKzwvZGl2PgorCis8c2NyaXB0Pgor
ICAgIC8vIEJ1ZmZlciB0ZXN0IG91dHB1dCBhbmQgZHVtcCBpdCBhdCB0aGUgZW5kIHRvIG1ha2Ug
dGhlIHRlc3QgcnVuIGZhc3RlciB2cy4gaW5kaXZpZHVhbCBgZGVidWdgIGNhbGxzLgorICAgIHZh
ciB0ZXN0T3V0cHV0ID0gIlRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3Bs
YXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS5cblxuIjsKKworICAgIHZhciBlbGVt
ZW50VW5kZXJUZXN0OworICAgIGZ1bmN0aW9uIHZlcmlmeVJvbGUoZWxlbWVudElkKSB7CisgICAg
ICAgIGNvbnN0IG91dGVySFRNTCA9IGVzY2FwZUhUTUwoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZWxlbWVudElkKS5jbG9uZU5vZGUoKS5vdXRlckhUTUwpOworICAgICAgICBlbGVtZW50VW5kZXJU
ZXN0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGVsZW1l
bnRJZCk7CisgICAgICAgIGlmICghZWxlbWVudFVuZGVyVGVzdCkgeworICAgICAgICAgICAgdGVz
dE91dHB1dCArPSBgRkFJTC4gQ291bGRuJ3QgZ2V0IEFYIGVsZW1lbnQgZm9yICMke2VsZW1lbnRJ
ZH06ICR7b3V0ZXJIVE1MfVxuYDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICB0ZXN0T3V0cHV0ICs9IGAke291dGVySFRNTH1cbmA7CisgICAgICAgIHRlc3RPdXRwdXQg
Kz0gYCAgICAke2VsZW1lbnRVbmRlclRlc3Qucm9sZX1gOworCisgICAgICAgIGxldCBjb21wdXRl
ZFJvbGVTdHJpbmcgPSBlbGVtZW50VW5kZXJUZXN0LmNvbXB1dGVkUm9sZVN0cmluZzsKKyAgICAg
ICAgaWYgKGNvbXB1dGVkUm9sZVN0cmluZykKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxu
ICAgIGNvbXB1dGVkUm9sZVN0cmluZzogJHtjb21wdXRlZFJvbGVTdHJpbmd9YDsKKworICAgICAg
ICBsZXQgc3Vicm9sZSA9IGVsZW1lbnRVbmRlclRlc3Quc3Vicm9sZTsKKyAgICAgICAgaWYgKHN1
YnJvbGUucmVwbGFjZSgiQVhTdWJyb2xlOiAiLCAiIikpCisgICAgICAgICAgICB0ZXN0T3V0cHV0
ICs9IGBcbiAgICAke3N1YnJvbGV9YDsKKyAgICAgICAgdGVzdE91dHB1dCArPSBgXG5cbmA7Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICB2ZXJpZnlSb2xlKCJwIik7CisgICAgICAgIHZlcmlmeVJvbGUoImxpbmsiKTsKKyAgICAgICAg
dmVyaWZ5Um9sZSgibGktZWxlbWVudCIpOworICAgICAgICB2ZXJpZnlSb2xlKCJidXR0b24iKTsK
KyAgICAgICAgdmVyaWZ5Um9sZSgibGVnZW5kIik7CisgICAgICAgIHZlcmlmeVJvbGUoImgyIik7
CisgICAgICAgIHZlcmlmeVJvbGUoImRlbCIpOworICAgICAgICB2ZXJpZnlSb2xlKCJpbnMiKTsK
KyAgICAgICAgdmVyaWZ5Um9sZSgic3ViIik7CisgICAgICAgIHZlcmlmeVJvbGUoInN1cCIpOwor
ICAgICAgICB2ZXJpZnlSb2xlKCJjb2RlIik7CisgICAgICAgIHZlcmlmeVJvbGUoImR0Iik7Cisg
ICAgICAgIHZlcmlmeVJvbGUoImRkIik7CisgICAgICAgIHZlcmlmeVJvbGUoImRsIik7CisgICAg
ICAgIHZlcmlmeVJvbGUoIm9sIik7CisgICAgICAgIHZlcmlmeVJvbGUoInVsIik7CisgICAgICAg
IHZlcmlmeVJvbGUoImZpZ3VyZSIpOworICAgICAgICB2ZXJpZnlSb2xlKCJsYWJlbCIpOworICAg
ICAgICB2ZXJpZnlSb2xlKCJkZm4iKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgiZGl2Iik7CisgICAg
ICAgIHZlcmlmeVJvbGUoImZvcm0iKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgiYXJ0aWNsZSIpOwor
ICAgICAgICB2ZXJpZnlSb2xlKCJtYWluIik7CisgICAgICAgIHZlcmlmeVJvbGUoIm5hdiIpOwor
ICAgICAgICB2ZXJpZnlSb2xlKCJhc2lkZSIpOworICAgICAgICB2ZXJpZnlSb2xlKCJzZWN0aW9u
LXdpdGgtbmFtZSIpOworICAgICAgICB2ZXJpZnlSb2xlKCJzZWN0aW9uLXdpdGhvdXQtbmFtZSIp
OworICAgICAgICB2ZXJpZnlSb2xlKCJibG9ja3F1b3RlIik7CisgICAgICAgIHZlcmlmeVJvbGUo
Im1hcmsiKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgicHJlIik7CisgICAgICAgIHZlcmlmeVJvbGUo
ImRldGFpbHMiKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgic3VtbWFyeSIpOworICAgICAgICB2ZXJp
ZnlSb2xlKCJvdXRwdXQiKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgibWVudS10b29sYmFyIik7Cisg
ICAgICAgIHZlcmlmeVJvbGUoImhyIik7CisgICAgICAgIHZlcmlmeVJvbGUoInRpbWUiKTsKKwor
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnN0eWxlLnZpc2liaWxp
dHkgPSAiaGlkZGVuIjsKKyAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454611</attachid>
            <date>2022-03-14 12:06:12 -0700</date>
            <delta_ts>2022-03-15 09:25:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237834-20220314140610.patch</filename>
            <type>text/plain</type>
            <size>24880</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I5Y2IzYTY2OWJhM2Ex
OThmNTIyMzY4Zjg4ZGJkZDZjZTQyYzg1NS4uOWU1ZTE3OTgyMmU1OGQ5ZDU4Y2Q4MGZkN2UyYjY3
OTZmMWIwM2Y3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTE0ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY2x1ZGUgZGlz
cGxheTogY29udGVudHMgZWxlbWVudHMgaW4gdGhlIEFYIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzgzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlY2F1c2UgZGlzcGxheTogY29udGVudHMg
aW50ZW50aW9uYWxseSBwcmV2ZW50cyBhIHJlbmRlciBvYmplY3QgZnJvbSBiZWluZworICAgICAg
ICBnZW5lcmF0ZWQgZm9yIHRoZSBlbGVtZW50IGl0J3MgYXBwbGllZCB0bywgd2UgZG9uJ3QgYWRk
IGl0IHRvIHRoZSBBWCB0cmVlIGFzCisgICAgICAgIHBhcnQgb2Ygb3VyIG5vcm1hbCByZW5kZXIg
dHJlZSB3YWxrLCBtYWtpbmcgdGhlc2UgZWxlbWVudHMgaW5hY2Nlc3NpYmxlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW5jbHVkZXMgdGhlc2UgZWxlbWVudHMgYXMgcGFydCBvZiB0aGUgRE9NIHdh
bGsgdGhhdAorICAgICAgICBhZGRIaWRkZW5DaGlsZHJlbiAobm93IHJlbmFtZWQgdG8gYWRkTm9k
ZU9ubHlDaGlsZHJlbikgYWxyZWFkeSBkb2VzLgorCisgICAgICAgIEFsc28sIGJlY2F1c2UgZGlz
cGxheTogY29udGVudHMgbW92ZXMgdGhlIGFmZmVjdGVkIGVsZW1lbnQncyBjaGlsZHJlbiB1cCBh
CisgICAgICAgIGxldmVsIGluIHRoZSByZW5kZXIgdHJlZSwgdGhpcyBwYXRjaCBhbHNvIHNwZWNp
YWwgY2FzZXM6CisKKyAgICAgICAgICAxLiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJl
bnRPYmplY3QgYW5kIHNpbWlsYXIgbWV0aG9kcyB0bworICAgICAgICAgIHJldHVybiB0aGVpciBk
aXNwbGF5OiBjb250ZW50cyBwYXJlbnQgaW5zdGVhZCBvZiB0aGVpciByZW5kZXIgdHJlZQorICAg
ICAgICAgIHBhcmVudAorICAgICAgICAgIDIuIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENo
aWxkIHRvIG9ubHkgaW5zZXJ0IGRpc3BsYXk6IGNvbnRlbnRzCisgICAgICAgICAgY2hpbGRyZW4g
dG8gdGhlaXIgZGlzcGxheTogY29udGVudHMgcGFyZW50LCByYXRoZXIgdGhhbiB0aGVpciByZW5k
ZXIKKyAgICAgICAgICB0cmVlIHBhcmVudAorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpnZXRPckNyZWF0ZSk6CisgICAgICAgIEFsbG93IGNyZWF0aW9uIG9mIEFYIG9iamVjdHMgZnJv
bSBkaXNwbGF5OiBjb250ZW50cyBgTm9kZWBzLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpkaXNwbGF5Q29udGVudHNQYXJlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6aW5zZXJ0Q2hpbGQpOgorICAgICAgICBJZiBhbiBvYmplY3QgaGFz
IGEgZGlzcGxheTogY29udGVudHMgcGFyZW50LCBhbmQgdGhhdCBwYXJlbnQgaXNuJ3QKKyAgICAg
ICAgYHRoaXNgLCByZXR1cm4gZWFybHkuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnBhcmVudE9iamVjdElmRXhpc3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhcmVudE9iamVjdCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9yZWQgY29u
c3QpOgorICAgICAgICBJZiBhbiBvYmplY3QgaGFzIGEgZGlzcGxheTogY29udGVudHMgcGFyZW50
LCByZXR1cm4gdGhhdCBpbnN0ZWFkIG9mCisgICAgICAgIGl0cyByZW5kZXIgdHJlZSBwYXJlbnQu
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGROb2RlT25s
eUNoaWxkcmVuKToKKyAgICAgICAgUmVuYW1lZCBmcm9tIGFkZEhpZGRlbkNoaWxkcmVuLgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkSGlkZGVuQ2hp
bGRyZW4pOgorICAgICAgICBSZW5hbWVkIHRvIGFkZE5vZGVPbmx5Q2hpbGRyZW4uCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisKIDIwMjItMDMt
MTQgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogTW92
ZSBhZGRDaGlsZHJlbiwgYWRkQ2hpbGQsIGluc2VydENoaWxkLCBjYW5IYXZlQ2hpbGRyZW4sIHNl
dE5lZWRzVG9VcGRhdGVDaGlsZHJlbiwgc2V0TmVlZHNUb1VwZGF0ZVN1YnRyZWUsIGNsZWFyQ2hp
bGRyZW4sIGFuZCBuZWVkc1RvVXBkYXRlQ2hpbGRyZW4gb3V0IG9mIEFYQ29yZU9iamVjdCBpbnRl
cmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CmluZGV4IDJkMjIwNDQyNTI1NDdiMmNhMzRkOWVjMTkyNmVhMjc3MmJlMGQzNTEuLmUzMjY1ZjYz
MTI5NGE5YmFjYTZlOGYxNmQ2NDZhN2U2ZWI1ZTdjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNzIwLDE0ICs3MjAsMTAgQEAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoTm9kZSogbm9kZSkK
ICAgICAgICAgcmV0dXJuIG9iamVjdC5nZXQoKTsKICAgICB9CiAKLSAgICAvLyBJdCdzIG9ubHkg
YWxsb3dlZCB0byBjcmVhdGUgYW4gQWNjZXNzaWJpbGl0eU9iamVjdCBmcm9tIGEgTm9kZSBpZiBp
dCdzIGluIGEgY2FudmFzIHN1YnRyZWUuCi0gICAgLy8gT3IgaWYgaXQncyBhIGhpZGRlbiBlbGVt
ZW50LCBidXQgd2Ugc3RpbGwgd2FudCB0byBleHBvc2UgaXQgYmVjYXVzZSBvZiBvdGhlciBBUklB
IGF0dHJpYnV0ZXMuCiAgICAgYm9vbCBpbkNhbnZhc1N1YnRyZWUgPSBsaW5lYWdlT2ZUeXBlPEhU
TUxDYW52YXNFbGVtZW50Pigqbm9kZS0+cGFyZW50RWxlbWVudCgpKS5maXJzdCgpOwotICAgIGJv
b2wgaXNIaWRkZW4gPSBpc05vZGVBcmlhVmlzaWJsZShub2RlKTsKLQogICAgIGJvb2wgaW5zaWRl
TWV0ZXJFbGVtZW50ID0gaXM8SFRNTE1ldGVyRWxlbWVudD4oKm5vZGUtPnBhcmVudEVsZW1lbnQo
KSk7Ci0gICAgCi0gICAgaWYgKCFpbkNhbnZhc1N1YnRyZWUgJiYgIWlzSGlkZGVuICYmICFpbnNp
ZGVNZXRlckVsZW1lbnQpCisgICAgYm9vbCBoYXNEaXNwbGF5Q29udGVudHMgPSBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNzc0Rpc3BsYXlDb250ZW50c0FYU3VwcG9y
dEVuYWJsZWQoKSAmJiBpczxFbGVtZW50Pigqbm9kZSkgJiYgZG93bmNhc3Q8RWxlbWVudD4oKm5v
ZGUpLmhhc0Rpc3BsYXlDb250ZW50cygpOworICAgIGlmICghaW5DYW52YXNTdWJ0cmVlICYmICFp
bnNpZGVNZXRlckVsZW1lbnQgJiYgIWhhc0Rpc3BsYXlDb250ZW50cyAmJiAhaXNOb2RlQXJpYVZp
c2libGUobm9kZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUmVmIHByb3RlY3Rl
ZE5vZGUgeyAqbm9kZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNTA1MDlkNjAyNmRmYWNkZTM4MjJhMmRjNmY3
NjUyOGExZGNmMDJlYy4uMzZjMWJmNTA0OGEyOWU3OTgzY2U0NzA5OTA1YzE5YjQzMGU4NzE5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkUG9zaXRpb24uaCIKKyNp
bmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2luZ0hl
bHBlci5oIgpAQCAtNDQ4LDYgKzQ0OSwyMSBAQCBBWENvcmVPYmplY3QqIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0CiAgICAgfSk7CiB9CiAKK0FjY2Vz
c2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BsYXlDb250ZW50c1BhcmVu
dCgpIGNvbnN0Cit7CisgICAgaWYgKCFub2RlKCkgfHwgIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuY3NzRGlzcGxheUNvbnRlbnRzQVhTdXBwb3J0RW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8qIHBhcmVudE5vZGUgPSBub2RlKCkt
PnBhcmVudE5vZGUoKTsKKyAgICBpZiAoIWlzPEVsZW1lbnQ+KHBhcmVudE5vZGUpIHx8ICFkb3du
Y2FzdDxFbGVtZW50PihwYXJlbnROb2RlKS0+aGFzRGlzcGxheUNvbnRlbnRzKCkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgaWYgKGF1dG8qIGNhY2hlID0gYXhPYmplY3RDYWNoZSgp
KQorICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE5vZGUpOworCisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnByZXZpb3VzU2libGluZ1VuaWdub3JlZChpbnQgbGltaXQpIGNvbnN0CiB7CiAgICAg
QWNjZXNzaWJpbGl0eU9iamVjdCogcHJldmlvdXM7CkBAIC01NzUsMTIgKzU5MSwxNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENoaWxkKEFYQ29yZU9iamVjdCogbmV3Q2hpbGQs
IHVuc2lnbmVkIGluZGV4LCBEZQogewogICAgIGlmICghbmV3Q2hpbGQpCiAgICAgICAgIHJldHVy
bjsKLSAgICAKKwogICAgIEFTU0VSVChpczxBY2Nlc3NpYmlsaXR5T2JqZWN0PihuZXdDaGlsZCkp
OwogICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eU9iamVjdD4obmV3Q2hpbGQpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBhdXRvKiBjaGlsZCA9IGRvd25jYXN0PEFjY2Vzc2liaWxpdHlPYmplY3Q+
KG5ld0NoaWxkKTsKKyAgICBhdXRvKiBkaXNwbGF5Q29udGVudHNQYXJlbnQgPSBjaGlsZC0+ZGlz
cGxheUNvbnRlbnRzUGFyZW50KCk7CisgICAgLy8gVG8gYXZvaWQgZG91YmxlLWluc2VydGluZyBh
IGNoaWxkIG9mIGEgYGRpc3BsYXk6IGNvbnRlbnRzYCBlbGVtZW50LCBvbmx5IGluc2VydCBpZiBg
dGhpc2AgaXMgdGhlIHJpZ2h0ZnVsIHBhcmVudC4KKyAgICBpZiAoZGlzcGxheUNvbnRlbnRzUGFy
ZW50ICYmIGRpc3BsYXlDb250ZW50c1BhcmVudCAhPSB0aGlzKQorICAgICAgICByZXR1cm47CisK
ICAgICAvLyBJZiB0aGUgcGFyZW50IGlzIGFza2luZyBmb3IgdGhpcyBjaGlsZCdzIGNoaWxkcmVu
LCB0aGVuIGVpdGhlciBpdCdzIHRoZSBmaXJzdCB0aW1lIChhbmQgY2xlYXJpbmcgaXMgYSBuby1v
cCksCiAgICAgLy8gb3IgaXRzIHZpc2liaWxpdHkgaGFzIGNoYW5nZWQuIEluIHRoZSBsYXR0ZXIg
Y2FzZSwgdGhpcyBjaGlsZCBtYXkgaGF2ZSBhIHN0YWxlIGNoaWxkIGNhY2hlZC4KICAgICAvLyBU
aGlzIGNhbiBwcmV2ZW50IGFyaWEtaGlkZGVuIGNoYW5nZXMgZnJvbSB3b3JraW5nIGNvcnJlY3Rs
eS4gSGVuY2UsIHdoZW5ldmVyIGEgcGFyZW50IGlzIGdldHRpbmcgY2hpbGRyZW4sIGVuc3VyZSBk
YXRhIGlzIG5vdCBzdGFsZS4KQEAgLTYyNSw3ICs2NDYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlP
YmplY3Q6Omluc2VydENoaWxkKEFYQ29yZU9iamVjdCogbmV3Q2hpbGQsIHVuc2lnbmVkIGluZGV4
LCBEZQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFRhYmxlIGNvbXBvbmVudCBjaGlsZC1wYXJl
bnQgcmVsYXRpb25zaGlwcyBvZnRlbiBkb24ndCBsaW5lIHVwIHByb3Blcmx5LCBoZW5jZSB0aGUg
bmVlZCBmb3IgbWV0aG9kcwogICAgICAgICAvLyBsaWtlIHBhcmVudFRhYmxlKCkgYW5kIHBhcmVu
dFJvdygpLiBFeGNsdWRlIHRoZW0gZnJvbSB0aGlzIEFTU0VSVC4KLSAgICAgICAgQVNTRVJUKCgh
aXNUYWJsZUNvbXBvbmVudCgqY2hpbGQpICYmICFpc1RhYmxlQ29tcG9uZW50KCp0aGlzKSkgPyBj
aGlsZC0+cGFyZW50T2JqZWN0KCkgPT0gdGhpcyA6IHRydWUpOworICAgICAgICBBU1NFUlQoaXNU
YWJsZUNvbXBvbmVudCgqY2hpbGQpIHx8IGlzVGFibGVDb21wb25lbnQoKnRoaXMpIHx8IGNoaWxk
LT5wYXJlbnRPYmplY3QoKSA9PSB0aGlzKTsKICAgICAgICAgbV9jaGlsZHJlbi5pbnNlcnQoaW5k
ZXgsIGNoaWxkKTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDJiNGRmMzMzZWY4ZTVlNTUzODUxZTVi
OTQ5NWRjYjNiMGQzMzI2MjUuLjk4NGIwYmNhYTljZGYxNDcxNGMwYzU5ZmI4OGI4MWQ5OThmNTA1
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCkBAIC0zNzMsNiArMzczLDcgQEAgcHVibGljOgogICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIG5leHRTaWJsaW5nVW5pZ25vcmVkKGludCBsaW1pdCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcHJldmlvdXNTaWJsaW5nVW5pZ25vcmVkKGludCBsaW1p
dCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIGRpc3BsYXlDb250ZW50c1BhcmVudCgpIGNvbnN0OwogICAgIEFYQ29yZU9iamVjdCog
cGFyZW50T2JqZWN0VW5pZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBu
dWxscHRyOyB9CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0QWNjZXNzaWJs
ZU9iamVjdEZyb21Ob2RlKGNvbnN0IE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDAx
MDFmYjUzMDc5ZmIyMTkzMzc5YmM2ZDM3NTg4YTRmNzU1YjRhNDUuLjNkNDA2YmQ3NzJlNzk1Njlm
MjA5MTgwZTcyYWYzOTg2YjFiZmEwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTA0LDYg
KzEwNCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdl
dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkUG9zaXRpb24uaCIKKyNpbmNsdWRlICJSdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdF
bGVtZW50VHlwZUhlbHBlcnMuaCIKICNpbmNsdWRlICJTVkdJbWFnZS5oIgpAQCAtNDkxLDExICs0
OTIsMTcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
cGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdAogICAgIGlmIChtX3JlbmRlcmVyICYmIGlzV2Vi
QXJlYSgpKQogICAgICAgICByZXR1cm4gY2FjaGUtPmdldCgmbV9yZW5kZXJlci0+dmlldygpLmZy
YW1lVmlldygpKTsKIAorICAgIGlmIChhdXRvKiBkaXNwbGF5Q29udGVudHNQYXJlbnQgPSB0aGlz
LT5kaXNwbGF5Q29udGVudHNQYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIGRpc3BsYXlDb250ZW50
c1BhcmVudDsKKwogICAgIHJldHVybiBjYWNoZS0+Z2V0KHJlbmRlclBhcmVudE9iamVjdCgpKTsK
IH0KICAgICAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnBhcmVudE9iamVjdCgpIGNvbnN0CiB7CisgICAgaWYgKGF1dG8qIGRpc3BsYXlDb250ZW50c1Bh
cmVudCA9IHRoaXMtPmRpc3BsYXlDb250ZW50c1BhcmVudCgpKQorICAgICAgICByZXR1cm4gZGlz
cGxheUNvbnRlbnRzUGFyZW50OworCiAgICAgaWYgKCFtX3JlbmRlcmVyKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAKQEAgLTUwOCwxNCArNTE1LDEzIEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhcmVudE9iamVjdCgpIGNvbnN0CiAgICAg
ICAgIGlmIChwYXJlbnQpCiAgICAgICAgICAgICByZXR1cm4gcGFyZW50OwogICAgIH0KLSAgICAK
KwogICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpOwogICAgIGlmICgh
Y2FjaGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIAotICAgIFJlbmRlck9iamVjdCog
cGFyZW50T2JqID0gcmVuZGVyUGFyZW50T2JqZWN0KCk7Ci0gICAgaWYgKHBhcmVudE9iaikKLSAg
ICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShwYXJlbnRPYmopOworCisgICAgaWYgKGF1
dG8qIHBhcmVudE9iamVjdCA9IHJlbmRlclBhcmVudE9iamVjdCgpKQorICAgICAgICByZXR1cm4g
Y2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE9iamVjdCk7CiAgICAgCiAgICAgLy8gV2ViQXJlYSdz
IHBhcmVudCBzaG91bGQgYmUgdGhlIHNjcm9sbCB2aWV3IGNvbnRhaW5pbmcgaXQuCiAgICAgaWYg
KGlzV2ViQXJlYSgpKQpAQCAtNTM3LDcgKzU0Myw3IEBAIEFYQ29yZU9iamVjdCogQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0VW5pZ25vcmVkKCkgY29uc3QKICAgICB9CiAj
ZW5kaWYKIAotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFyZW50T2JqZWN0
VW5pZ25vcmVkKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnBhcmVudE9iamVj
dFVuaWdub3JlZCgpOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQXR0
YWNobWVudCgpIGNvbnN0CkBAIC0zMTk4LDI5ICszMjA0LDM2IEBAIHZvaWQgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6dXBkYXRlQXR0YWNobWVudFZpZXdQYXJlbnRzKCkKIH0KICNlbmRpZgog
Ci0vLyBIaWRkZW4gY2hpbGRyZW4gYXJlIHRob3NlIHRoYXQgYXJlIG5vdCByZW5kZXJlZCBvciB2
aXNpYmxlLCBidXQgYXJlIHNwZWNpZmljYWxseSBtYXJrZWQgYXMgYXJpYS1oaWRkZW49ZmFsc2Us
Ci0vLyBtZWFuaW5nIHRoYXQgdGhleSBzaG91bGQgYmUgZXhwb3NlZCB0byB0aGUgQVggaGllcmFy
Y2h5Lgotdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRIaWRkZW5DaGlsZHJlbigp
CisvLyBTb21lIGVsZW1lbnRzIGRvbid0IGhhdmUgYW4gYXNzb2NpYXRlZCByZW5kZXIgb2JqZWN0
LCBtZWFuaW5nIHRoZXkgd29uJ3QgYmUgcGlja2VkIHVwIGJ5IGEgd2FsayBvZiB0aGUgcmVuZGVy
IHRyZWUuCisvLyBGb3IgZXhhbXBsZSwgbm9kZXMgdGhhdCBhcmUgYGFyaWEtaGlkZGVuPSJmYWxz
ZSJgIGFuZCBgaGlkZGVuYCwgb3IgZWxlbWVudHMgd2l0aCBgZGlzcGxheTogY29udGVudHNgLgor
Ly8gVGhpcyBmdW5jdGlvbiB3aWxsIGZpbmQgYW5kIGFkZCB0aGVzZSBlbGVtZW50cyB0byB0aGUg
QVggdHJlZS4KK3ZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkTm9kZU9ubHlDaGls
ZHJlbigpCiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKICAgICBpZiAoIW5vZGUp
CiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICAvLyBGaXJzdCBkbyBhIHF1aWNrIHJ1biB0aHJv
dWdoIHRvIGRldGVybWluZSBpZiB3ZSBoYXZlIGFueSBoaWRkZW4gbm9kZXMgKG1vc3Qgb2Z0ZW4g
d2Ugd2lsbCBub3QpLgotICAgIC8vIElmIHdlIGRvIGhhdmUgaGlkZGVuIG5vZGVzLCB3ZSBuZWVk
IHRvIGRldGVybWluZSB3aGVyZSB0byBpbnNlcnQgdGhlbSBzbyB0aGV5IG1hdGNoIERPTSBvcmRl
ciBhcyBjbG9zZSBhcyBwb3NzaWJsZS4KLSAgICBib29sIHNob3VsZEluc2VydEhpZGRlbk5vZGVz
ID0gZmFsc2U7CisKKyAgICBhdXRvIG5vZGVIYXNEaXNwbGF5Q29udGVudHMgPSBbXSAoTm9kZSYg
bm9kZSkgeworICAgICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5jc3NEaXNwbGF5Q29udGVudHNBWFN1cHBvcnRFbmFibGVkKCkgJiYgaXM8RWxlbWVu
dD4obm9kZSkgJiYgZG93bmNhc3Q8RWxlbWVudD4obm9kZSkuaGFzRGlzcGxheUNvbnRlbnRzKCk7
CisgICAgfTsKKyAgICAvLyBGaXJzdCBkbyBhIHF1aWNrIHJ1biB0aHJvdWdoIHRvIGRldGVybWlu
ZSBpZiB3ZSBoYXZlIGFueSBpbnRlcmVzdGluZyBub2RlcyAobW9zdCBvZnRlbiB3ZSB3aWxsIG5v
dCkuCisgICAgLy8gSWYgd2UgZG8gaGF2ZSBhbnkgaW50ZXJlc3Rpbmcgbm9kZXMsIHdlIG5lZWQg
dG8gZGV0ZXJtaW5lIHdoZXJlIHRvIGluc2VydCB0aGVtIHNvIHRoZXkgbWF0Y2ggRE9NIG9yZGVy
IGFzIGNsb3NlIGFzIHBvc3NpYmxlLgorICAgIGJvb2wgaGFzTm9kZU9ubHlDaGlsZHJlbiA9IGZh
bHNlOwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICghY2hpbGQtPnJlbmRl
cmVyKCkgJiYgaXNOb2RlQXJpYVZpc2libGUoY2hpbGQpKSB7Ci0gICAgICAgICAgICBzaG91bGRJ
bnNlcnRIaWRkZW5Ob2RlcyA9IHRydWU7CisgICAgICAgIGlmIChjaGlsZC0+cmVuZGVyZXIoKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChub2RlSGFzRGlzcGxheUNvbnRl
bnRzKCpjaGlsZCkgfHwgaXNOb2RlQXJpYVZpc2libGUoY2hpbGQpKSB7CisgICAgICAgICAgICBo
YXNOb2RlT25seUNoaWxkcmVuID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgfQogICAgIAotICAgIGlmICghc2hvdWxkSW5zZXJ0SGlkZGVuTm9kZXMpCisgICAgaWYg
KCFoYXNOb2RlT25seUNoaWxkcmVuKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgLy8gSXRl
cmF0ZSB0aHJvdWdoIGFsbCBvZiB0aGUgY2hpbGRyZW4sIGluY2x1ZGluZyB0aG9zZSB0aGF0IG1h
eSBoYXZlIGFscmVhZHkgYmVlbiBhZGRlZCwgYW5kCi0gICAgLy8gdHJ5IHRvIGluc2VydCBoaWRk
ZW4gbm9kZXMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgaW4gdGhlIERPTSBvcmRlci4KKyAgICAvLyB0
cnkgdG8gaW5zZXJ0IHRoZSBub2RlcyBpbiB0aGUgY29ycmVjdCBwbGFjZSBpbiB0aGUgRE9NIG9y
ZGVyLgogICAgIHVuc2lnbmVkIGluc2VydGlvbkluZGV4ID0gMDsKICAgICBmb3IgKE5vZGUqIGNo
aWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkgewogICAgICAgICBpZiAoY2hpbGQtPnJlbmRlcmVyKCkpIHsKQEAgLTMyMzksNyArMzI1
Miw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkSGlkZGVuQ2hpbGRyZW4o
KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIWlzTm9k
ZUFyaWFWaXNpYmxlKGNoaWxkKSkKKyAgICAgICAgaWYgKCFub2RlSGFzRGlzcGxheUNvbnRlbnRz
KCpjaGlsZCkgJiYgIWlzTm9kZUFyaWFWaXNpYmxlKGNoaWxkKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAKICAgICAgICAgdW5zaWduZWQgcHJldmlvdXNTaXplID0gbV9jaGlsZHJl
bi5zaXplKCk7CkBAIC0zMzEzLDcgKzMzMjYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmFkZENoaWxkcmVuKCkKIAogICAgIG1fc3VidHJlZURpcnR5ID0gZmFsc2U7CiAgICAg
Ci0gICAgYWRkSGlkZGVuQ2hpbGRyZW4oKTsKKyAgICBhZGROb2RlT25seUNoaWxkcmVuKCk7CiAg
ICAgYWRkQXR0YWNobWVudENoaWxkcmVuKCk7CiAgICAgYWRkSW1hZ2VNYXBDaGlsZHJlbigpOwog
ICAgIGFkZFRleHRGaWVsZENoaWxkcmVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDI3NWJhY2Y3
OTFhNWM4NWQzNzYzZTA2OTZjMGY3NDQ2OTk0ZDhkMjIuLjJiMDQ1ZGEzMmM0Zjk3NzFkMDQyNDAz
NDBmZWM5MmRhM2Q0MDE4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0yNDgsNyArMjQ4LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIG9mZnNldEJvdW5kaW5nQm94Rm9yUmVtb3RlU1ZHRWxlbWVudChM
YXlvdXRSZWN0JikgY29uc3Q7CiAgICAgYm9vbCBzdXBwb3J0c1BhdGgoKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZvaWQgYWRkSGlkZGVuQ2hpbGRyZW4oKTsKKyAgICB2b2lkIGFkZE5vZGVPbmx5
Q2hpbGRyZW4oKTsKICAgICB2b2lkIGFkZFRleHRGaWVsZENoaWxkcmVuKCk7CiAgICAgdm9pZCBh
ZGRJbWFnZU1hcENoaWxkcmVuKCk7CiAgICAgdm9pZCBhZGRDYW52YXNDaGlsZHJlbigpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGU3MzNjMGI5YTdlZTNhNjlmN2ZjNDczZjJhNDZhMWMyZDExNmYzYzMuLjI1NmZlZGE4NTM0
ZmNlNWQ0MjA1NDgxODBmY2VhZmNmMWU2ZDRmMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
Mi0wMy0xNCAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29tPgorCisgICAgICAgIEFY
OiBJbmNsdWRlIGRpc3BsYXk6IGNvbnRlbnRzIGVsZW1lbnRzIGluIHRoZSBBWCB0cmVlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4MzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMuaHRt
bDogQWRkZWQuCisKIDIwMjItMDMtMTQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW21vZGVsXSBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtY2FtZXJh
Lmh0bWwgZmFpbHMgZHVlIHRvIGBwcm9taXNlX3JlamVjdHNgIGJlaW5nIHVuZGVmaW5lZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1l
bnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5
LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYWQyMmUw
MDdhZjMxMDY3NzRlZDMxYjhiN2IyNDE4MjQyZGQzNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNjIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdp
dGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KKworPHAgc3R5
bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0icCI+PC9wPgorICAgIEFYUm9sZTogQVhHcm91cAor
ICAgIGNvbXB1dGVkUm9sZVN0cmluZzogcGFyYWdyYXBoCisKKzxhIGhyZWY9Imh0dHBzOi8vYXBw
bGUuY29tIiBpZD0ibGluayIgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIj48L2E+CisgICAgQVhS
b2xlOiBBWExpbmsKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpbmsKKworPGxpIHN0eWxlPSJk
aXNwbGF5OiBjb250ZW50cyIgaWQ9ImxpLWVsZW1lbnQiPjwvbGk+CisgICAgQVhSb2xlOiBBWEdy
b3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0aXRlbQorCis8YnV0dG9uIHN0eWxlPSJk
aXNwbGF5OiBjb250ZW50cyIgaWQ9ImJ1dHRvbiI+PC9idXR0b24+CisgICAgQVhSb2xlOiBBWEJ1
dHRvbgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYnV0dG9uCisKKzxsZWdlbmQgc3R5bGU9ImRp
c3BsYXk6IGNvbnRlbnRzIiBpZD0ibGVnZW5kIj48L2xlZ2VuZD4KKyAgICBBWFJvbGU6IEFYR3Jv
dXAKKworPGgyIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImgyIj48L2gyPgorICAgIEFY
Um9sZTogQVhIZWFkaW5nCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBoZWFkaW5nCisKKzxkZWwg
c3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0iZGVsIj48L2RlbD4KKyAgICBBWFJvbGU6IEFY
R3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGRlbGV0aW9uCisgICAgQVhTdWJyb2xlOiBB
WERlbGV0ZVN0eWxlR3JvdXAKKworPGlucyBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJp
bnMiPjwvaW5zPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzog
aW5zZXJ0aW9uCisgICAgQVhTdWJyb2xlOiBBWEluc2VydFN0eWxlR3JvdXAKKworPHN1YiBzdHls
ZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJzdWIiPjwvc3ViPgorICAgIEFYUm9sZTogQVhHcm91
cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3Vic2NyaXB0CisgICAgQVhTdWJyb2xlOiBBWFN1
YnNjcmlwdFN0eWxlR3JvdXAKKworPHN1cCBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJz
dXAiPjwvc3VwPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzog
c3VwZXJzY3JpcHQKKyAgICBBWFN1YnJvbGU6IEFYU3VwZXJzY3JpcHRTdHlsZUdyb3VwCisKKzxj
b2RlIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImNvZGUiPjwvY29kZT4KKyAgICBBWFJv
bGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYQ29kZVN0eWxlR3JvdXAKKworPGR0IHN0eWxl
PSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImR0Ij48L2R0PgorICAgIEFYUm9sZTogQVhHcm91cAor
ICAgIEFYU3Vicm9sZTogQVhUZXJtCisKKzxkZCBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlk
PSJkZCI+PC9kZD4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYRGVzY3Jp
cHRpb24KKworPGRsIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImRsIj48L2RsPgorICAg
IEFYUm9sZTogQVhMaXN0CisKKzxvbCBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJvbCI+
PC9vbD4KKyAgICBBWFJvbGU6IEFYTGlzdAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAor
Cis8dWwgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0idWwiPjwvdWw+CisgICAgQVhSb2xl
OiBBWExpc3QKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKworPGZpZ3VyZSBzdHlsZT0i
ZGlzcGxheTogY29udGVudHMiIGlkPSJmaWd1cmUiPjwvZmlndXJlPgorICAgIEFYUm9sZTogQVhH
cm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogZmlndXJlCisgICAgQVhTdWJyb2xlOiBBWEVt
cHR5R3JvdXAKKworPGxhYmVsIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImxhYmVsIj48
L2xhYmVsPgorICAgIEFYUm9sZTogQVhHcm91cAorCis8ZGZuIHN0eWxlPSJkaXNwbGF5OiBjb250
ZW50cyIgaWQ9ImRmbiI+PC9kZm4+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRS
b2xlU3RyaW5nOiBkZWZpbml0aW9uCisgICAgQVhTdWJyb2xlOiBBWERlZmluaXRpb24KKworPGRp
diBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJkaXYiPjwvZGl2PgorICAgIEFYUm9sZTog
QVhHcm91cAorCis8Zm9ybSBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJmb3JtIj48L2Zv
cm0+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBmb3JtCisg
ICAgQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAKKworPGFydGljbGUgc3R5bGU9ImRpc3BsYXk6IGNv
bnRlbnRzIiBpZD0iYXJ0aWNsZSI+PC9hcnRpY2xlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAg
IGNvbXB1dGVkUm9sZVN0cmluZzogYXJ0aWNsZQorICAgIEFYU3Vicm9sZTogQVhEb2N1bWVudEFy
dGljbGUKKworPG1haW4gc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ibWFpbiI+PC9tYWlu
PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbWFpbgorICAg
IEFYU3Vicm9sZTogQVhMYW5kbWFya01haW4KKworPG5hdiBzdHlsZT0iZGlzcGxheTogY29udGVu
dHMiIGlkPSJuYXYiPjwvbmF2PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogbmF2aWdhdGlvbgorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya05hdmlnYXRpb24K
KworPGFzaWRlIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImFzaWRlIj48L2FzaWRlPgor
ICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogY29tcGxlbWVudGFy
eQorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkKKworPHNlY3Rpb24gc3R5
bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ic2VjdGlvbi13aXRoLW5hbWUiIGFyaWEtbGFiZWw9
IlNlY3Rpb24gbmFtZSI+PC9zZWN0aW9uPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1
dGVkUm9sZVN0cmluZzogcmVnaW9uCisgICAgQVhTdWJyb2xlOiBBWExhbmRtYXJrUmVnaW9uCisK
KzxzZWN0aW9uIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9InNlY3Rpb24td2l0aG91dC1u
YW1lIj48L3NlY3Rpb24+CisgICAgQVhSb2xlOiBBWEdyb3VwCisKKzxibG9ja3F1b3RlIHN0eWxl
PSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImJsb2NrcXVvdGUiPjwvYmxvY2txdW90ZT4KKyAgICBB
WFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGJsb2NrcXVvdGUKKworPG1h
cmsgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ibWFyayI+PC9tYXJrPgorICAgIEFYUm9s
ZTogQVhHcm91cAorCis8cHJlIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9InByZSI+PC9w
cmU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWFByZWZvcm1hdHRlZFN0
eWxlR3JvdXAKKworPGRldGFpbHMgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0iZGV0YWls
cyI+PC9kZXRhaWxzPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9sZTogQVhEZXRh
aWxzCisKKzxzdW1tYXJ5IHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9InN1bW1hcnkiPjwv
c3VtbWFyeT4KKyAgICBBWFJvbGU6IEFYQnV0dG9uCisgICAgQVhTdWJyb2xlOiBBWFN1bW1hcnkK
KworPG91dHB1dCBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJvdXRwdXQiPjwvb3V0cHV0
PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3RhdHVzCisg
ICAgQVhTdWJyb2xlOiBBWEFwcGxpY2F0aW9uU3RhdHVzCisKKzxtZW51IHN0eWxlPSJkaXNwbGF5
OiBjb250ZW50cyIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgorICAg
IEFYUm9sZTogQVhUb29sYmFyCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiB0b29sYmFyCisKKzxo
ciBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJociI+CisgICAgQVhSb2xlOiBBWFNwbGl0
dGVyCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBzZXBhcmF0b3IKKyAgICBBWFN1YnJvbGU6IEFY
Q29udGVudFNlcGFyYXRvcgorCis8dGltZSBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJ0
aW1lIj48L3RpbWU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiB0aW1lCisgICAgQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAKKworCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBhMTk5OGYxNTJhYThjNDdkMjhkMDJlOGQwNTg4YjRmMWY4ZmEx
MjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXkt
Y29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sCkBAIC0wLDAgKzEsMTU1IEBACis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIENTU0Rpc3BsYXlDb250ZW50c0FYU3VwcG9ydEVuYWJsZWQ9dHJ1ZSBd
IC0tPgorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICA8cCBz
dHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJwIj5QYXJhZ3JhcGg8L3A+CisKKyAgICA8YSBo
cmVmPSJodHRwczovL2FwcGxlLmNvbSIgaWQ9ImxpbmsiIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50
cyI+YXBwbGUuY29tPC9hPgorCisgICAgPHVsIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9
InVsIj4KKyAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImxpLWVsZW1l
bnQiPkhlbGxvIHdvcmxkPC9saT4KKyAgICA8L3VsPgorCisgICAgPG9sIHN0eWxlPSJkaXNwbGF5
OiBjb250ZW50cyIgaWQ9Im9sIj4KKyAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50
cyI+SGVsbG8gd29ybGQ8L2xpPgorICAgIDwvb2w+CisKKyAgICA8YnV0dG9uIHN0eWxlPSJkaXNw
bGF5OiBjb250ZW50cyIgaWQ9ImJ1dHRvbiI+Q2xpY2sgbWU8L2J1dHRvbj4KKworICAgIDxmaWVs
ZHNldD4KKyAgICAgICAgPGxlZ2VuZCBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJsZWdl
bmQiPkNob29zZSB5b3VyIGZhdm9yaXRlIG1vbnN0ZXI8L2xlZ2VuZD4KKworICAgICAgICA8aW5w
dXQgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiB0eXBlPSJyYWRpbyIgaWQ9InJhZGlvLWJ1dHRv
biIgbmFtZT0ibW9uc3RlciI+CisgICAgICAgIDxsYWJlbCBmb3I9InJhZGlvLWJ1dHRvbiI+S3Jh
a2VuPC9sYWJlbD48YnIvPgorCisgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9InNhc3F1
YXRjaCIgbmFtZT0ibW9uc3RlciI+CisgICAgICAgIDxsYWJlbCBmb3I9InNhc3F1YXRjaCI+U2Fz
cXVhdGNoPC9sYWJlbD48YnIvPgorICAgIDwvZmllbGRzZXQ+CisKKyAgICA8aDIgc3R5bGU9ImRp
c3BsYXk6IGNvbnRlbnRzIiBpZD0iaDIiPkhlbGxvIHdvcmxkPC9oMj4KKworICAgIDxkZWwgc3R5
bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0iZGVsIj5IZWxsbyB3b3JsZDwvZGVsPgorICAgIDxp
bnMgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0iaW5zIj5IZWxsbyB3b3JsZDwvaW5zPgor
ICAgIDxzdWIgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ic3ViIj5IZWxsbyB3b3JsZDwv
c3ViPgorICAgIDxzdXAgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ic3VwIj5IZWxsbyB3
b3JsZDwvc3VwPgorICAgIDxjb2RlIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImNvZGUi
PkhlbGxvIHdvcmxkPC9jb2RlPgorCisgICAgPGRsIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIg
aWQ9ImRsIj4KKyAgICAgICAgPGR0IHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImR0Ij5k
dCBlbGVtZW50PC9kdD4KKyAgICAgICAgPGRkIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9
ImRkIj5kZCBlbGVtZW50PC9kZD4KKyAgICA8L2RsPgorCisgICAgPGZpZ3VyZSBzdHlsZT0iZGlz
cGxheTogY29udGVudHMiIGlkPSJmaWd1cmUiPjwvZmlndXJlPgorCisgICAgPGxhYmVsIHN0eWxl
PSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImxhYmVsIj5MYWJlbDwvbGFiZWw+CisKKyAgICA8ZGZu
IHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImRmbiI+U29tZSBkZWZpbml0aW9uPC9kZm4+
CisKKyAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9ImRpdiI+U29tZSB0ZXh0
PC9kaXY+CisKKyAgICA8Zm9ybSBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJmb3JtIj48
L2Zvcm0+CisKKyAgICA8YXJ0aWNsZSBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJhcnRp
Y2xlIj5BcnRpY2xlIGNvbnRlbnQ8L2FydGljbGU+CisKKyAgICA8bWFpbiBzdHlsZT0iZGlzcGxh
eTogY29udGVudHMiIGlkPSJtYWluIj5NYWluIGNvbnRlbnQ8L21haW4+CisKKyAgICA8bmF2IHN0
eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9Im5hdiI+TmF2PC9uYXY+CisKKyAgICA8YXNpZGUg
c3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0iYXNpZGUiPkFzaWRlIGNvbnRlbnQ8L2FzaWRl
PgorCisgICAgPHNlY3Rpb24gc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0ic2VjdGlvbi13
aXRoLW5hbWUiIGFyaWEtbGFiZWw9IlNlY3Rpb24gbmFtZSI+U2VjdGlvbjwvc2VjdGlvbj4KKyAg
ICA8c2VjdGlvbiBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJzZWN0aW9uLXdpdGhvdXQt
bmFtZSI+U2VjdGlvbjwvc2VjdGlvbj4KKworICAgIDxibG9ja3F1b3RlIHN0eWxlPSJkaXNwbGF5
OiBjb250ZW50cyIgaWQ9ImJsb2NrcXVvdGUiPlRvIGJlIG9yIG5vdCB0byBiZSwgdGhhdCBpcyB0
aGUgcXVlc3Rpb248L2Jsb2NrcXVvdGU+CisKKyAgICA8bWFyayBzdHlsZT0iZGlzcGxheTogY29u
dGVudHMiIGlkPSJtYXJrIj5NYXJrZWQgdGV4dDwvbWFyaz4KKworICAgIDxwcmUgc3R5bGU9ImRp
c3BsYXk6IGNvbnRlbnRzIiBpZD0icHJlIj5QcmUtdGV4dDwvcHJlPgorCisgICAgPGRldGFpbHMg
c3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIiBpZD0iZGV0YWlscyI+CisgICAgICAgIDxzdW1tYXJ5
IHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9InN1bW1hcnkiPlN1bW1hcnkgdGV4dDwvc3Vt
bWFyeT4KKyAgICA8L2RldGFpbHM+CisKKyAgICA8b3V0cHV0IHN0eWxlPSJkaXNwbGF5OiBjb250
ZW50cyIgaWQ9Im91dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CisKKyAgICA8bWVudSBzdHlsZT0iZGlz
cGxheTogY29udGVudHMiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4K
KworICAgIDxociBzdHlsZT0iZGlzcGxheTogY29udGVudHMiIGlkPSJociI+PC9ocj4KKworICAg
IDx0aW1lIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyIgaWQ9InRpbWUiPjwvdGltZT4KKzwvZGl2
PgorCis8c2NyaXB0PgorICAgIC8vIEJ1ZmZlciB0ZXN0IG91dHB1dCBhbmQgZHVtcCBpdCBhdCB0
aGUgZW5kIHRvIG1ha2UgdGhlIHRlc3QgcnVuIGZhc3RlciB2cy4gaW5kaXZpZHVhbCBgZGVidWdg
IGNhbGxzLgorICAgIHZhciB0ZXN0T3V0cHV0ID0gIlRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRz
IHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS5cblxuIjsK
KworICAgIHZhciBlbGVtZW50VW5kZXJUZXN0OworICAgIGZ1bmN0aW9uIHZlcmlmeVJvbGUoZWxl
bWVudElkKSB7CisgICAgICAgIGNvbnN0IG91dGVySFRNTCA9IGVzY2FwZUhUTUwoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKS5jbG9uZU5vZGUoKS5vdXRlckhUTUwpOworICAgICAg
ICBlbGVtZW50VW5kZXJUZXN0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgIGlmICghZWxlbWVudFVuZGVyVGVzdCkgewor
ICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgRkFJTC4gQ291bGRuJ3QgZ2V0IEFYIGVsZW1lbnQg
Zm9yICMke2VsZW1lbnRJZH06ICR7b3V0ZXJIVE1MfVxuYDsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICB0ZXN0T3V0cHV0ICs9IGAke291dGVySFRNTH1cbmA7CisgICAg
ICAgIHRlc3RPdXRwdXQgKz0gYCAgICAke2VsZW1lbnRVbmRlclRlc3Qucm9sZX1gOworCisgICAg
ICAgIGxldCBjb21wdXRlZFJvbGVTdHJpbmcgPSBlbGVtZW50VW5kZXJUZXN0LmNvbXB1dGVkUm9s
ZVN0cmluZzsKKyAgICAgICAgaWYgKGNvbXB1dGVkUm9sZVN0cmluZykKKyAgICAgICAgICAgIHRl
c3RPdXRwdXQgKz0gYFxuICAgIGNvbXB1dGVkUm9sZVN0cmluZzogJHtjb21wdXRlZFJvbGVTdHJp
bmd9YDsKKworICAgICAgICBsZXQgc3Vicm9sZSA9IGVsZW1lbnRVbmRlclRlc3Quc3Vicm9sZTsK
KyAgICAgICAgaWYgKHN1YnJvbGUucmVwbGFjZSgiQVhTdWJyb2xlOiAiLCAiIikpCisgICAgICAg
ICAgICB0ZXN0T3V0cHV0ICs9IGBcbiAgICAke3N1YnJvbGV9YDsKKyAgICAgICAgdGVzdE91dHB1
dCArPSBgXG5cbmA7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgeworICAgICAgICB2ZXJpZnlSb2xlKCJwIik7CisgICAgICAgIHZlcmlmeVJvbGUoImxp
bmsiKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgibGktZWxlbWVudCIpOworICAgICAgICB2ZXJpZnlS
b2xlKCJidXR0b24iKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgibGVnZW5kIik7CisgICAgICAgIHZl
cmlmeVJvbGUoImgyIik7CisgICAgICAgIHZlcmlmeVJvbGUoImRlbCIpOworICAgICAgICB2ZXJp
ZnlSb2xlKCJpbnMiKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgic3ViIik7CisgICAgICAgIHZlcmlm
eVJvbGUoInN1cCIpOworICAgICAgICB2ZXJpZnlSb2xlKCJjb2RlIik7CisgICAgICAgIHZlcmlm
eVJvbGUoImR0Iik7CisgICAgICAgIHZlcmlmeVJvbGUoImRkIik7CisgICAgICAgIHZlcmlmeVJv
bGUoImRsIik7CisgICAgICAgIHZlcmlmeVJvbGUoIm9sIik7CisgICAgICAgIHZlcmlmeVJvbGUo
InVsIik7CisgICAgICAgIHZlcmlmeVJvbGUoImZpZ3VyZSIpOworICAgICAgICB2ZXJpZnlSb2xl
KCJsYWJlbCIpOworICAgICAgICB2ZXJpZnlSb2xlKCJkZm4iKTsKKyAgICAgICAgdmVyaWZ5Um9s
ZSgiZGl2Iik7CisgICAgICAgIHZlcmlmeVJvbGUoImZvcm0iKTsKKyAgICAgICAgdmVyaWZ5Um9s
ZSgiYXJ0aWNsZSIpOworICAgICAgICB2ZXJpZnlSb2xlKCJtYWluIik7CisgICAgICAgIHZlcmlm
eVJvbGUoIm5hdiIpOworICAgICAgICB2ZXJpZnlSb2xlKCJhc2lkZSIpOworICAgICAgICB2ZXJp
ZnlSb2xlKCJzZWN0aW9uLXdpdGgtbmFtZSIpOworICAgICAgICB2ZXJpZnlSb2xlKCJzZWN0aW9u
LXdpdGhvdXQtbmFtZSIpOworICAgICAgICB2ZXJpZnlSb2xlKCJibG9ja3F1b3RlIik7CisgICAg
ICAgIHZlcmlmeVJvbGUoIm1hcmsiKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgicHJlIik7CisgICAg
ICAgIHZlcmlmeVJvbGUoImRldGFpbHMiKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgic3VtbWFyeSIp
OworICAgICAgICB2ZXJpZnlSb2xlKCJvdXRwdXQiKTsKKyAgICAgICAgdmVyaWZ5Um9sZSgibWVu
dS10b29sYmFyIik7CisgICAgICAgIHZlcmlmeVJvbGUoImhyIik7CisgICAgICAgIHZlcmlmeVJv
bGUoInRpbWUiKTsKKworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIp
LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgZGVidWcodGVzdE91dHB1dCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454717</attachid>
            <date>2022-03-15 09:25:25 -0700</date>
            <delta_ts>2022-03-17 19:08:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237834-20220315112523.patch</filename>
            <type>text/plain</type>
            <size>22641</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I5Y2IzYTY2OWJhM2Ex
OThmNTIyMzY4Zjg4ZGJkZDZjZTQyYzg1NS4uOWU1ZTE3OTgyMmU1OGQ5ZDU4Y2Q4MGZkN2UyYjY3
OTZmMWIwM2Y3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTE0ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY2x1ZGUgZGlz
cGxheTogY29udGVudHMgZWxlbWVudHMgaW4gdGhlIEFYIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzgzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlY2F1c2UgZGlzcGxheTogY29udGVudHMg
aW50ZW50aW9uYWxseSBwcmV2ZW50cyBhIHJlbmRlciBvYmplY3QgZnJvbSBiZWluZworICAgICAg
ICBnZW5lcmF0ZWQgZm9yIHRoZSBlbGVtZW50IGl0J3MgYXBwbGllZCB0bywgd2UgZG9uJ3QgYWRk
IGl0IHRvIHRoZSBBWCB0cmVlIGFzCisgICAgICAgIHBhcnQgb2Ygb3VyIG5vcm1hbCByZW5kZXIg
dHJlZSB3YWxrLCBtYWtpbmcgdGhlc2UgZWxlbWVudHMgaW5hY2Nlc3NpYmxlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW5jbHVkZXMgdGhlc2UgZWxlbWVudHMgYXMgcGFydCBvZiB0aGUgRE9NIHdh
bGsgdGhhdAorICAgICAgICBhZGRIaWRkZW5DaGlsZHJlbiAobm93IHJlbmFtZWQgdG8gYWRkTm9k
ZU9ubHlDaGlsZHJlbikgYWxyZWFkeSBkb2VzLgorCisgICAgICAgIEFsc28sIGJlY2F1c2UgZGlz
cGxheTogY29udGVudHMgbW92ZXMgdGhlIGFmZmVjdGVkIGVsZW1lbnQncyBjaGlsZHJlbiB1cCBh
CisgICAgICAgIGxldmVsIGluIHRoZSByZW5kZXIgdHJlZSwgdGhpcyBwYXRjaCBhbHNvIHNwZWNp
YWwgY2FzZXM6CisKKyAgICAgICAgICAxLiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJl
bnRPYmplY3QgYW5kIHNpbWlsYXIgbWV0aG9kcyB0bworICAgICAgICAgIHJldHVybiB0aGVpciBk
aXNwbGF5OiBjb250ZW50cyBwYXJlbnQgaW5zdGVhZCBvZiB0aGVpciByZW5kZXIgdHJlZQorICAg
ICAgICAgIHBhcmVudAorICAgICAgICAgIDIuIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENo
aWxkIHRvIG9ubHkgaW5zZXJ0IGRpc3BsYXk6IGNvbnRlbnRzCisgICAgICAgICAgY2hpbGRyZW4g
dG8gdGhlaXIgZGlzcGxheTogY29udGVudHMgcGFyZW50LCByYXRoZXIgdGhhbiB0aGVpciByZW5k
ZXIKKyAgICAgICAgICB0cmVlIHBhcmVudAorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpnZXRPckNyZWF0ZSk6CisgICAgICAgIEFsbG93IGNyZWF0aW9uIG9mIEFYIG9iamVjdHMgZnJv
bSBkaXNwbGF5OiBjb250ZW50cyBgTm9kZWBzLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpkaXNwbGF5Q29udGVudHNQYXJlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6aW5zZXJ0Q2hpbGQpOgorICAgICAgICBJZiBhbiBvYmplY3QgaGFz
IGEgZGlzcGxheTogY29udGVudHMgcGFyZW50LCBhbmQgdGhhdCBwYXJlbnQgaXNuJ3QKKyAgICAg
ICAgYHRoaXNgLCByZXR1cm4gZWFybHkuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnBhcmVudE9iamVjdElmRXhpc3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhcmVudE9iamVjdCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9yZWQgY29u
c3QpOgorICAgICAgICBJZiBhbiBvYmplY3QgaGFzIGEgZGlzcGxheTogY29udGVudHMgcGFyZW50
LCByZXR1cm4gdGhhdCBpbnN0ZWFkIG9mCisgICAgICAgIGl0cyByZW5kZXIgdHJlZSBwYXJlbnQu
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGROb2RlT25s
eUNoaWxkcmVuKToKKyAgICAgICAgUmVuYW1lZCBmcm9tIGFkZEhpZGRlbkNoaWxkcmVuLgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkSGlkZGVuQ2hp
bGRyZW4pOgorICAgICAgICBSZW5hbWVkIHRvIGFkZE5vZGVPbmx5Q2hpbGRyZW4uCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisKIDIwMjItMDMt
MTQgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogTW92
ZSBhZGRDaGlsZHJlbiwgYWRkQ2hpbGQsIGluc2VydENoaWxkLCBjYW5IYXZlQ2hpbGRyZW4sIHNl
dE5lZWRzVG9VcGRhdGVDaGlsZHJlbiwgc2V0TmVlZHNUb1VwZGF0ZVN1YnRyZWUsIGNsZWFyQ2hp
bGRyZW4sIGFuZCBuZWVkc1RvVXBkYXRlQ2hpbGRyZW4gb3V0IG9mIEFYQ29yZU9iamVjdCBpbnRl
cmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CmluZGV4IDJkMjIwNDQyNTI1NDdiMmNhMzRkOWVjMTkyNmVhMjc3MmJlMGQzNTEuLjhmNjBiMWY2
N2I5MTk2NTk3MGY3NDYzYTFjNjFjY2RmNjVhNzI4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNzIwLDE0ICs3MjAsMTAgQEAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoTm9kZSogbm9kZSkK
ICAgICAgICAgcmV0dXJuIG9iamVjdC5nZXQoKTsKICAgICB9CiAKLSAgICAvLyBJdCdzIG9ubHkg
YWxsb3dlZCB0byBjcmVhdGUgYW4gQWNjZXNzaWJpbGl0eU9iamVjdCBmcm9tIGEgTm9kZSBpZiBp
dCdzIGluIGEgY2FudmFzIHN1YnRyZWUuCi0gICAgLy8gT3IgaWYgaXQncyBhIGhpZGRlbiBlbGVt
ZW50LCBidXQgd2Ugc3RpbGwgd2FudCB0byBleHBvc2UgaXQgYmVjYXVzZSBvZiBvdGhlciBBUklB
IGF0dHJpYnV0ZXMuCiAgICAgYm9vbCBpbkNhbnZhc1N1YnRyZWUgPSBsaW5lYWdlT2ZUeXBlPEhU
TUxDYW52YXNFbGVtZW50Pigqbm9kZS0+cGFyZW50RWxlbWVudCgpKS5maXJzdCgpOwotICAgIGJv
b2wgaXNIaWRkZW4gPSBpc05vZGVBcmlhVmlzaWJsZShub2RlKTsKLQogICAgIGJvb2wgaW5zaWRl
TWV0ZXJFbGVtZW50ID0gaXM8SFRNTE1ldGVyRWxlbWVudD4oKm5vZGUtPnBhcmVudEVsZW1lbnQo
KSk7Ci0gICAgCi0gICAgaWYgKCFpbkNhbnZhc1N1YnRyZWUgJiYgIWlzSGlkZGVuICYmICFpbnNp
ZGVNZXRlckVsZW1lbnQpCisgICAgYm9vbCBoYXNEaXNwbGF5Q29udGVudHMgPSBpczxFbGVtZW50
Pigqbm9kZSkgJiYgZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmhhc0Rpc3BsYXlDb250ZW50cygp
OworICAgIGlmICghaW5DYW52YXNTdWJ0cmVlICYmICFpbnNpZGVNZXRlckVsZW1lbnQgJiYgIWhh
c0Rpc3BsYXlDb250ZW50cyAmJiAhaXNOb2RlQXJpYVZpc2libGUobm9kZSkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgUmVmIHByb3RlY3RlZE5vZGUgeyAqbm9kZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
aW5kZXggNTA1MDlkNjAyNmRmYWNkZTM4MjJhMmRjNmY3NjUyOGExZGNmMDJlYy4uZTQyNGZhZjQx
MDczYjYwOTMxYTY0YjJlMTY0OWM0MDkxYTE1YzAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC00NDgsNiArNDQ4
LDE2IEBAIEFYQ29yZU9iamVjdCogQWNjZXNzaWJpbGl0eU9iamVjdDo6cGFyZW50T2JqZWN0VW5p
Z25vcmVkKCkgY29uc3QKICAgICB9KTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNz
aWJpbGl0eU9iamVjdDo6ZGlzcGxheUNvbnRlbnRzUGFyZW50KCkgY29uc3QKK3sKKyAgICBhdXRv
KiBwYXJlbnROb2RlID0gbm9kZSgpID8gbm9kZSgpLT5wYXJlbnROb2RlKCkgOiBudWxscHRyOwor
ICAgIGlmICghaXM8RWxlbWVudD4ocGFyZW50Tm9kZSkgfHwgIWRvd25jYXN0PEVsZW1lbnQ+KHBh
cmVudE5vZGUpLT5oYXNEaXNwbGF5Q29udGVudHMoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBhdXRvKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsKKyAgICByZXR1cm4gY2FjaGUg
PyBjYWNoZS0+Z2V0T3JDcmVhdGUocGFyZW50Tm9kZSkgOiBudWxscHRyOworfQorCiBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwcmV2aW91c1NpYmxpbmdVbmlnbm9y
ZWQoaW50IGxpbWl0KSBjb25zdAogewogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHByZXZpb3Vz
OwpAQCAtNTc1LDEyICs1ODUsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjppbnNlcnRD
aGlsZChBWENvcmVPYmplY3QqIG5ld0NoaWxkLCB1bnNpZ25lZCBpbmRleCwgRGUKIHsKICAgICBp
ZiAoIW5ld0NoaWxkKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICBBU1NFUlQoaXM8QWNj
ZXNzaWJpbGl0eU9iamVjdD4obmV3Q2hpbGQpKTsKICAgICBpZiAoIWlzPEFjY2Vzc2liaWxpdHlP
YmplY3Q+KG5ld0NoaWxkKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byogY2hpbGQgPSBk
b3duY2FzdDxBY2Nlc3NpYmlsaXR5T2JqZWN0PihuZXdDaGlsZCk7CisgICAgYXV0byogZGlzcGxh
eUNvbnRlbnRzUGFyZW50ID0gY2hpbGQtPmRpc3BsYXlDb250ZW50c1BhcmVudCgpOworICAgIC8v
IFRvIGF2b2lkIGRvdWJsZS1pbnNlcnRpbmcgYSBjaGlsZCBvZiBhIGBkaXNwbGF5OiBjb250ZW50
c2AgZWxlbWVudCwgb25seSBpbnNlcnQgaWYgYHRoaXNgIGlzIHRoZSByaWdodGZ1bCBwYXJlbnQu
CisgICAgaWYgKGRpc3BsYXlDb250ZW50c1BhcmVudCAmJiBkaXNwbGF5Q29udGVudHNQYXJlbnQg
IT0gdGhpcykKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gSWYgdGhlIHBhcmVudCBpcyBhc2tp
bmcgZm9yIHRoaXMgY2hpbGQncyBjaGlsZHJlbiwgdGhlbiBlaXRoZXIgaXQncyB0aGUgZmlyc3Qg
dGltZSAoYW5kIGNsZWFyaW5nIGlzIGEgbm8tb3ApLAogICAgIC8vIG9yIGl0cyB2aXNpYmlsaXR5
IGhhcyBjaGFuZ2VkLiBJbiB0aGUgbGF0dGVyIGNhc2UsIHRoaXMgY2hpbGQgbWF5IGhhdmUgYSBz
dGFsZSBjaGlsZCBjYWNoZWQuCiAgICAgLy8gVGhpcyBjYW4gcHJldmVudCBhcmlhLWhpZGRlbiBj
aGFuZ2VzIGZyb20gd29ya2luZyBjb3JyZWN0bHkuIEhlbmNlLCB3aGVuZXZlciBhIHBhcmVudCBp
cyBnZXR0aW5nIGNoaWxkcmVuLCBlbnN1cmUgZGF0YSBpcyBub3Qgc3RhbGUuCkBAIC02MjUsNyAr
NjQwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjppbnNlcnRDaGlsZChBWENvcmVPYmpl
Y3QqIG5ld0NoaWxkLCB1bnNpZ25lZCBpbmRleCwgRGUKICAgICB9IGVsc2UgewogICAgICAgICAv
LyBUYWJsZSBjb21wb25lbnQgY2hpbGQtcGFyZW50IHJlbGF0aW9uc2hpcHMgb2Z0ZW4gZG9uJ3Qg
bGluZSB1cCBwcm9wZXJseSwgaGVuY2UgdGhlIG5lZWQgZm9yIG1ldGhvZHMKICAgICAgICAgLy8g
bGlrZSBwYXJlbnRUYWJsZSgpIGFuZCBwYXJlbnRSb3coKS4gRXhjbHVkZSB0aGVtIGZyb20gdGhp
cyBBU1NFUlQuCi0gICAgICAgIEFTU0VSVCgoIWlzVGFibGVDb21wb25lbnQoKmNoaWxkKSAmJiAh
aXNUYWJsZUNvbXBvbmVudCgqdGhpcykpID8gY2hpbGQtPnBhcmVudE9iamVjdCgpID09IHRoaXMg
OiB0cnVlKTsKKyAgICAgICAgQVNTRVJUKGlzVGFibGVDb21wb25lbnQoKmNoaWxkKSB8fCBpc1Rh
YmxlQ29tcG9uZW50KCp0aGlzKSB8fCBjaGlsZC0+cGFyZW50T2JqZWN0KCkgPT0gdGhpcyk7CiAg
ICAgICAgIG1fY2hpbGRyZW4uaW5zZXJ0KGluZGV4LCBjaGlsZCk7CiAgICAgfQogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApp
bmRleCAyYjRkZjMzM2VmOGU1ZTU1Mzg1MWU1Yjk0OTVkY2IzYjBkMzMyNjI1Li45ODRiMGJjYWE5
Y2RmMTQ3MTRjMGM1OWZiODhiODFkOTk4ZjUwNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMzczLDYgKzM3Myw3IEBA
IHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBuZXh0U2libGluZ1VuaWdub3JlZChp
bnQgbGltaXQpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHByZXZp
b3VzU2libGluZ1VuaWdub3JlZChpbnQgbGltaXQpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51
bGxwdHI7IH0KKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBkaXNwbGF5Q29udGVudHNQYXJlbnQo
KSBjb25zdDsKICAgICBBWENvcmVPYmplY3QqIHBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhpc3Rz
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHN0YXRpYyBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBmaXJzdEFjY2Vzc2libGVPYmplY3RGcm9tTm9kZShjb25zdCBOb2RlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAwMTAxZmI1MzA3OWZiMjE5MzM3OWJjNmQzNzU4OGE0
Zjc1NWI0YTQ1Li5mMWQ0ZGNjNDg3MDE3ZmJjZjk4YmZiOTQ0Y2YyNjRlYzEyMTQ5YjY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKQEAgLTQ5MSwxMSArNDkxLDE3IEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhcmVudE9iamVjdElmRXhpc3RzKCkgY29u
c3QKICAgICBpZiAobV9yZW5kZXJlciAmJiBpc1dlYkFyZWEoKSkKICAgICAgICAgcmV0dXJuIGNh
Y2hlLT5nZXQoJm1fcmVuZGVyZXItPnZpZXcoKS5mcmFtZVZpZXcoKSk7CiAKKyAgICBpZiAoYXV0
byogZGlzcGxheUNvbnRlbnRzUGFyZW50ID0gdGhpcy0+ZGlzcGxheUNvbnRlbnRzUGFyZW50KCkp
CisgICAgICAgIHJldHVybiBkaXNwbGF5Q29udGVudHNQYXJlbnQ7CisKICAgICByZXR1cm4gY2Fj
aGUtPmdldChyZW5kZXJQYXJlbnRPYmplY3QoKSk7CiB9CiAgICAgCiBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3QoKSBjb25zdAogewor
ICAgIGlmIChhdXRvKiBkaXNwbGF5Q29udGVudHNQYXJlbnQgPSB0aGlzLT5kaXNwbGF5Q29udGVu
dHNQYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIGRpc3BsYXlDb250ZW50c1BhcmVudDsKKwogICAg
IGlmICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCkBAIC01MDgs
MTQgKzUxNCwxMyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpwYXJlbnRPYmplY3QoKSBjb25zdAogICAgICAgICBpZiAocGFyZW50KQogICAgICAgICAg
ICAgcmV0dXJuIHBhcmVudDsKICAgICB9Ci0gICAgCisKICAgICBBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGF4T2JqZWN0Q2FjaGUoKTsKICAgICBpZiAoIWNhY2hlKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICAKLSAgICBSZW5kZXJPYmplY3QqIHBhcmVudE9iaiA9IHJlbmRlclBhcmVudE9i
amVjdCgpOwotICAgIGlmIChwYXJlbnRPYmopCi0gICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JD
cmVhdGUocGFyZW50T2JqKTsKKworICAgIGlmIChhdXRvKiBwYXJlbnRPYmplY3QgPSByZW5kZXJQ
YXJlbnRPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShwYXJlbnRP
YmplY3QpOwogICAgIAogICAgIC8vIFdlYkFyZWEncyBwYXJlbnQgc2hvdWxkIGJlIHRoZSBzY3Jv
bGwgdmlldyBjb250YWluaW5nIGl0LgogICAgIGlmIChpc1dlYkFyZWEoKSkKQEAgLTUzNyw3ICs1
NDIsNyBAQCBBWENvcmVPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhcmVudE9i
amVjdFVuaWdub3JlZCgpIGNvbnN0CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnBhcmVudE9iamVjdFVuaWdub3JlZCgpOworICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9yZWQoKTsKIH0KIAogYm9vbCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0F0dGFjaG1lbnQoKSBjb25zdApAQCAtMzE5OCwy
OSArMzIwMywzNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZUF0dGFj
aG1lbnRWaWV3UGFyZW50cygpCiB9CiAjZW5kaWYKIAotLy8gSGlkZGVuIGNoaWxkcmVuIGFyZSB0
aG9zZSB0aGF0IGFyZSBub3QgcmVuZGVyZWQgb3IgdmlzaWJsZSwgYnV0IGFyZSBzcGVjaWZpY2Fs
bHkgbWFya2VkIGFzIGFyaWEtaGlkZGVuPWZhbHNlLAotLy8gbWVhbmluZyB0aGF0IHRoZXkgc2hv
dWxkIGJlIGV4cG9zZWQgdG8gdGhlIEFYIGhpZXJhcmNoeS4KLXZvaWQgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6YWRkSGlkZGVuQ2hpbGRyZW4oKQorLy8gU29tZSBlbGVtZW50cyBkb24ndCBo
YXZlIGFuIGFzc29jaWF0ZWQgcmVuZGVyIG9iamVjdCwgbWVhbmluZyB0aGV5IHdvbid0IGJlIHBp
Y2tlZCB1cCBieSBhIHdhbGsgb2YgdGhlIHJlbmRlciB0cmVlLgorLy8gRm9yIGV4YW1wbGUsIG5v
ZGVzIHRoYXQgYXJlIGBhcmlhLWhpZGRlbj0iZmFsc2UiYCBhbmQgYGhpZGRlbmAsIG9yIGVsZW1l
bnRzIHdpdGggYGRpc3BsYXk6IGNvbnRlbnRzYC4KKy8vIFRoaXMgZnVuY3Rpb24gd2lsbCBmaW5k
IGFuZCBhZGQgdGhlc2UgZWxlbWVudHMgdG8gdGhlIEFYIHRyZWUuCit2b2lkIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmFkZE5vZGVPbmx5Q2hpbGRyZW4oKQogewogICAgIE5vZGUqIG5vZGUg
PSB0aGlzLT5ub2RlKCk7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47Ci0gICAgCi0g
ICAgLy8gRmlyc3QgZG8gYSBxdWljayBydW4gdGhyb3VnaCB0byBkZXRlcm1pbmUgaWYgd2UgaGF2
ZSBhbnkgaGlkZGVuIG5vZGVzIChtb3N0IG9mdGVuIHdlIHdpbGwgbm90KS4KLSAgICAvLyBJZiB3
ZSBkbyBoYXZlIGhpZGRlbiBub2Rlcywgd2UgbmVlZCB0byBkZXRlcm1pbmUgd2hlcmUgdG8gaW5z
ZXJ0IHRoZW0gc28gdGhleSBtYXRjaCBET00gb3JkZXIgYXMgY2xvc2UgYXMgcG9zc2libGUuCi0g
ICAgYm9vbCBzaG91bGRJbnNlcnRIaWRkZW5Ob2RlcyA9IGZhbHNlOworCisgICAgYXV0byBub2Rl
SGFzRGlzcGxheUNvbnRlbnRzID0gW10gKE5vZGUmIG5vZGUpIHsKKyAgICAgICAgcmV0dXJuIGlz
PEVsZW1lbnQ+KG5vZGUpICYmIGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpLmhhc0Rpc3BsYXlDb250
ZW50cygpOworICAgIH07CisgICAgLy8gRmlyc3QgZG8gYSBxdWljayBydW4gdGhyb3VnaCB0byBk
ZXRlcm1pbmUgaWYgd2UgaGF2ZSBhbnkgaW50ZXJlc3Rpbmcgbm9kZXMgKG1vc3Qgb2Z0ZW4gd2Ug
d2lsbCBub3QpLgorICAgIC8vIElmIHdlIGRvIGhhdmUgYW55IGludGVyZXN0aW5nIG5vZGVzLCB3
ZSBuZWVkIHRvIGRldGVybWluZSB3aGVyZSB0byBpbnNlcnQgdGhlbSBzbyB0aGV5IG1hdGNoIERP
TSBvcmRlciBhcyBjbG9zZSBhcyBwb3NzaWJsZS4KKyAgICBib29sIGhhc05vZGVPbmx5Q2hpbGRy
ZW4gPSBmYWxzZTsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAoIWNoaWxk
LT5yZW5kZXJlcigpICYmIGlzTm9kZUFyaWFWaXNpYmxlKGNoaWxkKSkgewotICAgICAgICAgICAg
c2hvdWxkSW5zZXJ0SGlkZGVuTm9kZXMgPSB0cnVlOworICAgICAgICBpZiAoY2hpbGQtPnJlbmRl
cmVyKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAobm9kZUhhc0Rpc3Bs
YXlDb250ZW50cygqY2hpbGQpIHx8IGlzTm9kZUFyaWFWaXNpYmxlKGNoaWxkKSkgeworICAgICAg
ICAgICAgaGFzTm9kZU9ubHlDaGlsZHJlbiA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgIH0KICAgICAKLSAgICBpZiAoIXNob3VsZEluc2VydEhpZGRlbk5vZGVzKQor
ICAgIGlmICghaGFzTm9kZU9ubHlDaGlsZHJlbikKICAgICAgICAgcmV0dXJuOwogICAgIAogICAg
IC8vIEl0ZXJhdGUgdGhyb3VnaCBhbGwgb2YgdGhlIGNoaWxkcmVuLCBpbmNsdWRpbmcgdGhvc2Ug
dGhhdCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gYWRkZWQsIGFuZAotICAgIC8vIHRyeSB0byBpbnNl
cnQgaGlkZGVuIG5vZGVzIGluIHRoZSBjb3JyZWN0IHBsYWNlIGluIHRoZSBET00gb3JkZXIuCisg
ICAgLy8gdHJ5IHRvIGluc2VydCB0aGUgbm9kZXMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgaW4gdGhl
IERPTSBvcmRlci4KICAgICB1bnNpZ25lZCBpbnNlcnRpb25JbmRleCA9IDA7CiAgICAgZm9yIChO
b2RlKiBjaGlsZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5l
eHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5yZW5kZXJlcigpKSB7CkBAIC0zMjM5
LDcgKzMyNTEsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZEhpZGRlbkNo
aWxkcmVuKCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KCFpc05vZGVBcmlhVmlzaWJsZShjaGlsZCkpCisgICAgICAgIGlmICghbm9kZUhhc0Rpc3BsYXlD
b250ZW50cygqY2hpbGQpICYmICFpc05vZGVBcmlhVmlzaWJsZShjaGlsZCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgCiAgICAgICAgIHVuc2lnbmVkIHByZXZpb3VzU2l6ZSA9IG1f
Y2hpbGRyZW4uc2l6ZSgpOwpAQCAtMzMxMyw3ICszMzI1LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjphZGRDaGlsZHJlbigpCiAKICAgICBtX3N1YnRyZWVEaXJ0eSA9IGZhbHNl
OwogICAgIAotICAgIGFkZEhpZGRlbkNoaWxkcmVuKCk7CisgICAgYWRkTm9kZU9ubHlDaGlsZHJl
bigpOwogICAgIGFkZEF0dGFjaG1lbnRDaGlsZHJlbigpOwogICAgIGFkZEltYWdlTWFwQ2hpbGRy
ZW4oKTsKICAgICBhZGRUZXh0RmllbGRDaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCAy
NzViYWNmNzkxYTVjODVkMzc2M2UwNjk2YzBmNzQ0Njk5NGQ4ZDIyLi4yYjA0NWRhMzJjNGY5Nzcx
ZDA0MjQwMzQwZmVjOTJkYTNkNDAxODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMjQ4LDcgKzI0
OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBvZmZzZXRCb3VuZGluZ0JveEZvclJlbW90ZVNWR0Vs
ZW1lbnQoTGF5b3V0UmVjdCYpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9ydHNQYXRoKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICB2b2lkIGFkZEhpZGRlbkNoaWxkcmVuKCk7CisgICAgdm9pZCBhZGRO
b2RlT25seUNoaWxkcmVuKCk7CiAgICAgdm9pZCBhZGRUZXh0RmllbGRDaGlsZHJlbigpOwogICAg
IHZvaWQgYWRkSW1hZ2VNYXBDaGlsZHJlbigpOwogICAgIHZvaWQgYWRkQ2FudmFzQ2hpbGRyZW4o
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBlNzMzYzBiOWE3ZWUzYTY5ZjdmYzQ3M2YyYTQ2YTFjMmQxMTZmM2MzLi4yNTZm
ZWRhODUzNGZjZTVkNDIwNTQ4MTgwZmNlYWZjZjFlNmQ0ZjAyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjItMDMtMTQgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KKworICAg
ICAgICBBWDogSW5jbHVkZSBkaXNwbGF5OiBjb250ZW50cyBlbGVtZW50cyBpbiB0aGUgQVggdHJl
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3ODM0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJv
bGVzLmh0bWw6IEFkZGVkLgorCiAyMDIyLTAzLTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3
ZWJraXQub3JnPgogCiAgICAgICAgIFttb2RlbF0gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LWNhbWVyYS5odG1sIGZhaWxzIGR1ZSB0byBgcHJvbWlzZV9yZWplY3RzYCBiZWluZyB1bmRlZmlu
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50
cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ZjE5ZWJhMTVlMDcxZGNjYzM1NjU5NDNmYmZkYjBkZGVhNTFlNTQ2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9s
ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTY2IEBACitUaGlzIHRlc3QgZW5zdXJlcyBlbGVt
ZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCisK
KzxhIGhyZWY9Imh0dHBzOi8vYXBwbGUuY29tIiBpZD0ibGluayIgY2xhc3M9InRlc3RjYXNlIj48
L2E+CisgICAgQVhSb2xlOiBBWExpbmsKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpbmsKKwor
PGFydGljbGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iYXJ0aWNsZSI+PC9hcnRpY2xlPgorICAgIEFY
Um9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYXJ0aWNsZQorICAgIEFYU3Vi
cm9sZTogQVhEb2N1bWVudEFydGljbGUKKworPGFzaWRlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImFz
aWRlIj48L2FzaWRlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmlu
ZzogY29tcGxlbWVudGFyeQorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkK
KworPGJsb2NrcXVvdGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iYmxvY2txdW90ZSI+PC9ibG9ja3F1
b3RlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYmxvY2tx
dW90ZQorCis8YnV0dG9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImJ1dHRvbiI+PC9idXR0b24+Cisg
ICAgQVhSb2xlOiBBWEJ1dHRvbgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYnV0dG9uCisKKzxj
b2RlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImNvZGUiPjwvY29kZT4KKyAgICBBWFJvbGU6IEFYR3Jv
dXAKKyAgICBBWFN1YnJvbGU6IEFYQ29kZVN0eWxlR3JvdXAKKworPGRlbCBjbGFzcz0idGVzdGNh
c2UiIGlkPSJkZWwiPjwvZGVsPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogZGVsZXRpb24KKyAgICBBWFN1YnJvbGU6IEFYRGVsZXRlU3R5bGVHcm91cAorCis8
ZGV0YWlscyBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZXRhaWxzIj48L2RldGFpbHM+CisgICAgQVhS
b2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWERldGFpbHMKKworPHN1bW1hcnkgY2xhc3M9
InRlc3RjYXNlIiBpZD0ic3VtbWFyeSI+PC9zdW1tYXJ5PgorICAgIEFYUm9sZTogQVhCdXR0b24K
KyAgICBBWFN1YnJvbGU6IEFYU3VtbWFyeQorCis8ZGZuIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRm
biI+PC9kZm4+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBk
ZWZpbml0aW9uCisgICAgQVhTdWJyb2xlOiBBWERlZmluaXRpb24KKworPGRpdiBjbGFzcz0idGVz
dGNhc2UiIGlkPSJkaXYiPjwvZGl2PgorICAgIEFYUm9sZTogQVhHcm91cAorCis8ZGwgY2xhc3M9
InRlc3RjYXNlIiBpZD0iZGwiPjwvZGw+CisgICAgQVhSb2xlOiBBWExpc3QKKworPGR0IGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9ImR0Ij48L2R0PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vi
cm9sZTogQVhUZXJtCisKKzxkZCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZCI+PC9kZD4KKyAgICBB
WFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYRGVzY3JpcHRpb24KKworPGxlZ2VuZCBj
bGFzcz0idGVzdGNhc2UiIGlkPSJsZWdlbmQiPjwvbGVnZW5kPgorICAgIEFYUm9sZTogQVhHcm91
cAorCis8ZmlndXJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImZpZ3VyZSI+PC9maWd1cmU+CisgICAg
QVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBmaWd1cmUKKyAgICBBWFN1
YnJvbGU6IEFYRW1wdHlHcm91cAorCis8Zm9ybSBjbGFzcz0idGVzdGNhc2UiIGlkPSJmb3JtIj48
L2Zvcm0+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBmb3Jt
CisgICAgQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAKKworPGgyIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
ImgyIj48L2gyPgorICAgIEFYUm9sZTogQVhIZWFkaW5nCisgICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiBoZWFkaW5nCisKKzxociBjbGFzcz0idGVzdGNhc2UiIGlkPSJociI+CisgICAgQVhSb2xlOiBB
WFNwbGl0dGVyCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBzZXBhcmF0b3IKKyAgICBBWFN1YnJv
bGU6IEFYQ29udGVudFNlcGFyYXRvcgorCis8aW5zIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImlucyI+
PC9pbnM+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBpbnNl
cnRpb24KKyAgICBBWFN1YnJvbGU6IEFYSW5zZXJ0U3R5bGVHcm91cAorCis8bGFiZWwgY2xhc3M9
InRlc3RjYXNlIiBpZD0ibGFiZWwiPjwvbGFiZWw+CisgICAgQVhSb2xlOiBBWEdyb3VwCisKKzxt
YWluIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1haW4iPjwvbWFpbj4KKyAgICBBWFJvbGU6IEFYR3Jv
dXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IG1haW4KKyAgICBBWFN1YnJvbGU6IEFYTGFuZG1h
cmtNYWluCisKKzxtYXJrIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1hcmsiPjwvbWFyaz4KKyAgICBB
WFJvbGU6IEFYR3JvdXAKKworPG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBp
ZD0ibWVudS10b29sYmFyIj48L21lbnU+CisgICAgQVhSb2xlOiBBWFRvb2xiYXIKKyAgICBjb21w
dXRlZFJvbGVTdHJpbmc6IHRvb2xiYXIKKworPG5hdiBjbGFzcz0idGVzdGNhc2UiIGlkPSJuYXYi
PjwvbmF2PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbmF2
aWdhdGlvbgorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya05hdmlnYXRpb24KKworPG9sIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9Im9sIj48L29sPgorICAgIEFYUm9sZTogQVhMaXN0CisgICAgY29tcHV0
ZWRSb2xlU3RyaW5nOiBsaXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJvbC1saS1lbGVt
ZW50Ij48L2xpPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzog
bGlzdGl0ZW0KKworPG91dHB1dCBjbGFzcz0idGVzdGNhc2UiIGlkPSJvdXRwdXQiPjwvb3V0cHV0
PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3RhdHVzCisg
ICAgQVhTdWJyb2xlOiBBWEFwcGxpY2F0aW9uU3RhdHVzCisKKzxwIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9InAiPjwvcD4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6
IHBhcmFncmFwaAorCis8cHJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InByZSI+PC9wcmU+CisgICAg
QVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWFByZWZvcm1hdHRlZFN0eWxlR3JvdXAK
KworPHN1YiBjbGFzcz0idGVzdGNhc2UiIGlkPSJzdWIiPjwvc3ViPgorICAgIEFYUm9sZTogQVhH
cm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3Vic2NyaXB0CisgICAgQVhTdWJyb2xlOiBB
WFN1YnNjcmlwdFN0eWxlR3JvdXAKKworPHN1cCBjbGFzcz0idGVzdGNhc2UiIGlkPSJzdXAiPjwv
c3VwPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3VwZXJz
Y3JpcHQKKyAgICBBWFN1YnJvbGU6IEFYU3VwZXJzY3JpcHRTdHlsZUdyb3VwCisKKzxzZWN0aW9u
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rpb24td2l0aC1uYW1lIiBhcmlhLWxhYmVsPSJTZWN0
aW9uIG5hbWUiPjwvc2VjdGlvbj4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJv
bGVTdHJpbmc6IHJlZ2lvbgorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya1JlZ2lvbgorCis8c2Vj
dGlvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJzZWN0aW9uLXdpdGhvdXQtbmFtZSI+PC9zZWN0aW9u
PgorICAgIEFYUm9sZTogQVhHcm91cAorCis8dGltZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ0aW1l
Ij48L3RpbWU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiB0
aW1lCisgICAgQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAKKworPHVsIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9InVsIj48L3VsPgorICAgIEFYUm9sZTogQVhMaXN0CisgICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiBsaXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgor
ICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdGl0ZW0KKwor
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1l
bGVtZW50LXJvbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29u
dGVudHMtZWxlbWVudC1yb2xlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwY2MzZjY1NDliNDVlZjU4MzBl
MjJmMDBmN2MwYWY0NzFlYzIzOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sCkBAIC0wLDAgKzEs
MTI5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorLnRlc3RjYXNlIHsgZGlzcGxheTogY29udGVudHMgfTsKKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBpZD0iY29udGVudCI+CisgICAgPGEgaHJl
Zj0iaHR0cHM6Ly9hcHBsZS5jb20iIGlkPSJsaW5rIiBjbGFzcz0idGVzdGNhc2UiPmFwcGxlLmNv
bTwvYT4KKworICAgIDxhcnRpY2xlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImFydGljbGUiPkFydGlj
bGUgY29udGVudDwvYXJ0aWNsZT4KKworICAgIDxhc2lkZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJh
c2lkZSI+QXNpZGUgY29udGVudDwvYXNpZGU+CisKKyAgICA8YmxvY2txdW90ZSBjbGFzcz0idGVz
dGNhc2UiIGlkPSJibG9ja3F1b3RlIj5UbyBiZSBvciBub3QgdG8gYmUsIHRoYXQgaXMgdGhlIHF1
ZXN0aW9uPC9ibG9ja3F1b3RlPgorCisgICAgPGJ1dHRvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJi
dXR0b24iPkNsaWNrIG1lPC9idXR0b24+CisKKyAgICA8Y29kZSBjbGFzcz0idGVzdGNhc2UiIGlk
PSJjb2RlIj5IZWxsbyB3b3JsZDwvY29kZT4KKworICAgIDxkZWwgY2xhc3M9InRlc3RjYXNlIiBp
ZD0iZGVsIj5IZWxsbyB3b3JsZDwvZGVsPgorCisgICAgPGRldGFpbHMgY2xhc3M9InRlc3RjYXNl
IiBpZD0iZGV0YWlscyI+CisgICAgICAgIDxzdW1tYXJ5IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InN1
bW1hcnkiPlN1bW1hcnkgdGV4dDwvc3VtbWFyeT4KKyAgICA8L2RldGFpbHM+CisKKyAgICA8ZGZu
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRmbiI+U29tZSBkZWZpbml0aW9uPC9kZm4+CisKKyAgICA8
ZGl2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRpdiI+U29tZSB0ZXh0PC9kaXY+CisKKyAgICA8ZGwg
Y2xhc3M9InRlc3RjYXNlIiBpZD0iZGwiPgorICAgICAgICA8ZHQgY2xhc3M9InRlc3RjYXNlIiBp
ZD0iZHQiPmR0IGVsZW1lbnQ8L2R0PgorICAgICAgICA8ZGQgY2xhc3M9InRlc3RjYXNlIiBpZD0i
ZGQiPmRkIGVsZW1lbnQ8L2RkPgorICAgIDwvZGw+CisKKyAgICA8ZmllbGRzZXQ+CisgICAgICAg
IDxsZWdlbmQgY2xhc3M9InRlc3RjYXNlIiBpZD0ibGVnZW5kIj5DaG9vc2UgeW91ciBmYXZvcml0
ZSBtb25zdGVyPC9sZWdlbmQ+CisKKyAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBpZD0icmFk
aW8tYnV0dG9uIiBuYW1lPSJtb25zdGVyIj4KKyAgICAgICAgPGxhYmVsIGZvcj0icmFkaW8tYnV0
dG9uIj5LcmFrZW48L2xhYmVsPjxici8+CisKKyAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBp
ZD0ic2FzcXVhdGNoIiBuYW1lPSJtb25zdGVyIj4KKyAgICAgICAgPGxhYmVsIGZvcj0ic2FzcXVh
dGNoIj5TYXNxdWF0Y2g8L2xhYmVsPjxici8+CisgICAgPC9maWVsZHNldD4KKworICAgIDxmaWd1
cmUgY2xhc3M9InRlc3RjYXNlIiBpZD0iZmlndXJlIj48L2ZpZ3VyZT4KKworICAgIDxmb3JtIGNs
YXNzPSJ0ZXN0Y2FzZSIgaWQ9ImZvcm0iPjwvZm9ybT4KKworICAgIDxoMiBjbGFzcz0idGVzdGNh
c2UiIGlkPSJoMiI+SGVsbG8gd29ybGQ8L2gyPgorCisgICAgPGhyIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9ImhyIj48L2hyPgorCisgICAgPGlucyBjbGFzcz0idGVzdGNhc2UiIGlkPSJpbnMiPkhlbGxv
IHdvcmxkPC9pbnM+CisKKyAgICA8bGFiZWwgY2xhc3M9InRlc3RjYXNlIiBpZD0ibGFiZWwiPkxh
YmVsPC9sYWJlbD4KKworICAgIDxtYWluIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1haW4iPk1haW4g
Y29udGVudDwvbWFpbj4KKworICAgIDxtYXJrIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1hcmsiPk1h
cmtlZCB0ZXh0PC9tYXJrPgorCisgICAgPG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29s
YmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CisKKyAgICA8bmF2IGNsYXNzPSJ0ZXN0Y2Fz
ZSIgaWQ9Im5hdiI+TmF2PC9uYXY+CisKKyAgICA8b2wgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wi
PgorICAgICAgICA8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wtbGktZWxlbWVudCI+SGVsbG8g
d29ybGQ8L2xpPgorICAgIDwvb2w+CisKKyAgICA8b3V0cHV0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
Im91dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CisKKyAgICA8cCBjbGFzcz0idGVzdGNhc2UiIGlkPSJw
Ij5QYXJhZ3JhcGg8L3A+CisKKyAgICA8cHJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InByZSI+UHJl
LXRleHQ8L3ByZT4KKworICAgIDxzZWN0aW9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rpb24t
d2l0aC1uYW1lIiBhcmlhLWxhYmVsPSJTZWN0aW9uIG5hbWUiPlNlY3Rpb248L3NlY3Rpb24+CisK
KyAgICA8c2VjdGlvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJzZWN0aW9uLXdpdGhvdXQtbmFtZSI+
U2VjdGlvbjwvc2VjdGlvbj4KKworICAgIDxzdWIgY2xhc3M9InRlc3RjYXNlIiBpZD0ic3ViIj5I
ZWxsbyB3b3JsZDwvc3ViPgorCisgICAgPHN1cCBjbGFzcz0idGVzdGNhc2UiIGlkPSJzdXAiPkhl
bGxvIHdvcmxkPC9zdXA+CisKKyAgICA8dGltZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ0aW1lIj48
L3RpbWU+CisKKyAgICA8dWwgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwiPgorICAgICAgICA8bGkg
Y2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+SGVsbG8gd29ybGQ8L2xpPgorICAg
IDwvdWw+Cis8L2Rpdj4KKworPHNjcmlwdD4KKyAgICAvLyBCdWZmZXIgdGVzdCBvdXRwdXQgYW5k
IGR1bXAgaXQgYXQgdGhlIGVuZCB0byBtYWtlIHRoZSB0ZXN0IHJ1biBmYXN0ZXIgdnMuIGluZGl2
aWR1YWwgYGRlYnVnYCBjYWxscy4KKyAgICB2YXIgdGVzdE91dHB1dCA9ICJUaGlzIHRlc3QgZW5z
dXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0
IHJvbGUuXG5cbiI7CisKKyAgICB2YXIgYXhFbGVtZW50OworICAgIGZ1bmN0aW9uIHZlcmlmeVJv
bGVzKCkgeworICAgICAgICBjb25zdCB0ZXN0Y2FzZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCJ0ZXN0Y2FzZSIpOworICAgICAgICBmb3IgKGNvbnN0IGRvbUVsZW1lbnQgb2Yg
dGVzdGNhc2VzKSB7CisgICAgICAgICAgICBjb25zdCBvdXRlckhUTUwgPSBlc2NhcGVIVE1MKGRv
bUVsZW1lbnQuY2xvbmVOb2RlKCkub3V0ZXJIVE1MKTsKKyAgICAgICAgICAgIGF4RWxlbWVudCA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZChkb21FbGVtZW50
LmlkKTsKKyAgICAgICAgICAgIGlmICghYXhFbGVtZW50KSB7CisgICAgICAgICAgICAgICAgdGVz
dE91dHB1dCArPSBgRkFJTC4gQ291bGRuJ3QgZ2V0IEFYIGVsZW1lbnQgZm9yICMke2RvbUVsZW1l
bnQuaWR9OiAke291dGVySFRNTH1cbmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgJHtvdXRlckhUTUx9XG5gOworICAg
ICAgICAgICAgdGVzdE91dHB1dCArPSBgICAgICR7YXhFbGVtZW50LnJvbGV9YDsKKworICAgICAg
ICAgICAgbGV0IGNvbXB1dGVkUm9sZVN0cmluZyA9IGF4RWxlbWVudC5jb21wdXRlZFJvbGVTdHJp
bmc7CisgICAgICAgICAgICBpZiAoY29tcHV0ZWRSb2xlU3RyaW5nKQorICAgICAgICAgICAgICAg
IHRlc3RPdXRwdXQgKz0gYFxuICAgIGNvbXB1dGVkUm9sZVN0cmluZzogJHtjb21wdXRlZFJvbGVT
dHJpbmd9YDsKKworICAgICAgICAgICAgbGV0IHN1YnJvbGUgPSBheEVsZW1lbnQuc3Vicm9sZTsK
KyAgICAgICAgICAgIGlmIChzdWJyb2xlLnJlcGxhY2UoIkFYU3Vicm9sZTogIiwgIiIpKQorICAg
ICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuICAgICR7c3Vicm9sZX1gOworICAgICAgICAg
ICAgdGVzdE91dHB1dCArPSBgXG5cbmA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAod2lu
ZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHZlcmlmeVJvbGVzKCk7Cisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iikuc3R5bGUudmlzaWJpbGl0
eSA9ICJoaWRkZW4iOworICAgICAgICBkZWJ1Zyh0ZXN0T3V0cHV0KTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455058</attachid>
            <date>2022-03-17 19:08:39 -0700</date>
            <delta_ts>2022-03-18 17:04:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237834-20220317210837.patch</filename>
            <type>text/plain</type>
            <size>37154</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJhOTgyNWRiNjgyZjJi
ZmZhZTNiNmNlZDFkNDk5ZTVjYTE2YzY4ZC4uOGE4MGNiZDM4OTJlMWI1YjJhOGJlNWJmMTZjMGZk
YThkYTY4YTkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAzLTE3ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY2x1ZGUgZGlz
cGxheTogY29udGVudHMgZWxlbWVudHMgaW4gdGhlIEFYIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzgzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlY2F1c2UgZGlzcGxheTogY29udGVudHMg
aW50ZW50aW9uYWxseSBwcmV2ZW50cyBhIHJlbmRlciBvYmplY3QgZnJvbSBiZWluZworICAgICAg
ICBnZW5lcmF0ZWQgZm9yIHRoZSBlbGVtZW50IGl0J3MgYXBwbGllZCB0bywgd2UgZG9uJ3QgYWRk
IGl0IHRvIHRoZSBBWCB0cmVlIGFzCisgICAgICAgIHBhcnQgb2Ygb3VyIG5vcm1hbCByZW5kZXIg
dHJlZSB3YWxrLCBtYWtpbmcgdGhlc2UgZWxlbWVudHMgaW5hY2Nlc3NpYmxlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW5jbHVkZXMgdGhlc2UgZWxlbWVudHMgYXMgcGFydCBvZiB0aGUgRE9NIHdh
bGsgdGhhdAorICAgICAgICBhZGRIaWRkZW5DaGlsZHJlbiAobm93IHJlbmFtZWQgdG8gYWRkTm9k
ZU9ubHlDaGlsZHJlbikgYWxyZWFkeSBkb2VzLgorCisgICAgICAgIEFsc28sIGJlY2F1c2UgZGlz
cGxheTogY29udGVudHMgbW92ZXMgdGhlIGFmZmVjdGVkIGVsZW1lbnQncyBjaGlsZHJlbiB1cCBh
CisgICAgICAgIGxldmVsIGluIHRoZSByZW5kZXIgdHJlZSwgdGhpcyBwYXRjaCBhbHNvIHNwZWNp
YWwgY2FzZXM6CisKKyAgICAgICAgICAxLiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJl
bnRPYmplY3QgYW5kIHNpbWlsYXIgbWV0aG9kcyB0bworICAgICAgICAgIHJldHVybiB0aGVpciBk
aXNwbGF5OiBjb250ZW50cyBwYXJlbnQgaW5zdGVhZCBvZiB0aGVpciByZW5kZXIgdHJlZQorICAg
ICAgICAgIHBhcmVudAorICAgICAgICAgIDIuIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENo
aWxkIHRvIG9ubHkgaW5zZXJ0IGRpc3BsYXk6IGNvbnRlbnRzCisgICAgICAgICAgY2hpbGRyZW4g
dG8gdGhlaXIgZGlzcGxheTogY29udGVudHMgcGFyZW50LCByYXRoZXIgdGhhbiB0aGVpciByZW5k
ZXIKKyAgICAgICAgICB0cmVlIHBhcmVudAorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwsIGFjY2Vzc2liaWxpdHkvYXJpYS1o
aWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpnZXRPckNyZWF0ZSk6CisgICAgICAgIEFsbG93IGNyZWF0aW9uIG9mIEFYIG9iamVjdHMgZnJv
bSBkaXNwbGF5OiBjb250ZW50cyBgTm9kZWBzLgorICAgICAgICBBbHNvLCBkb24ndCBjcmVhdGUg
YW4gb2JqZWN0IGZvciBhIHJlbmRlcmVyIHRoYXQgaXMgaW4gdGhlIHByb2Nlc3Mgb2YKKyAgICAg
ICAgYmVpbmcgZGVzdHJveWVkIChwcmV2ZW50cyBkaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9s
ZXMuaHRtbCBmcm9tIGNyYXNoaW5nIGluIElUTSkKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6ZGlzcGxheUNvbnRlbnRzUGFyZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENoaWxkKToKKyAgICAgICAgSWYgYW4gb2JqZWN0IGhh
cyBhIGRpc3BsYXk6IGNvbnRlbnRzIHBhcmVudCwgYW5kIHRoYXQgcGFyZW50IGlzbid0CisgICAg
ICAgIGB0aGlzYCwgcmV0dXJuIGVhcmx5LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpwYXJlbnRPYmplY3RJZkV4aXN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0VW5pZ25vcmVkIGNv
bnN0KToKKyAgICAgICAgSWYgYW4gb2JqZWN0IGhhcyBhIGRpc3BsYXk6IGNvbnRlbnRzIHBhcmVu
dCwgcmV0dXJuIHRoYXQgaW5zdGVhZCBvZgorICAgICAgICBpdHMgcmVuZGVyIHRyZWUgcGFyZW50
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkTm9kZU9u
bHlDaGlsZHJlbik6CisgICAgICAgIFJlbmFtZWQgZnJvbSBhZGRIaWRkZW5DaGlsZHJlbi4KKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKToK
KyAgICAgICAgRG9uJ3QgY2xlYXIgbV9zdWJ0cmVlRGlydHkgdW50aWwgYWZ0ZXIgYWxsIGNoaWxk
cmVuIGhhdmUgYmVlbiBhZGRlZC4KKyAgICAgICAgTmVjZXNzYXJ5IHRvIG1ha2UgYXJpYS1oaWRk
ZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwgcGFzcywgYXMKKyAgICAgICAgd2Ugd2Vy
ZSBjbGVhcmluZyB0aGlzIHRvbyBlYXJseSwgY2F1c2luZyBkaXNwbGF5OiBjb250ZW50cyBzdWJ0
cmVlcyB0bworICAgICAgICBub3QgYmUgdXBkYXRlZCBhZnRlciBhcmlhLWhpZGRlbiBjaGFuZ2Vz
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkSGlkZGVu
Q2hpbGRyZW4pOgorICAgICAgICBSZW5hbWVkIHRvIGFkZE5vZGVPbmx5Q2hpbGRyZW4uCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisKIDIwMjIt
MDMtMTcgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtJRkNdW0lu
dGVncmF0aW9uXSBSZXBsYWNlIGVuY2xvc2luZ1RvcC9Cb3R0b20vaGVpZ2h0IGNhbGxzIHdpdGgg
TGluZTo6ZW5jbG9zaW5nTG9naWNhbFJlY3Qgd2hlbiBhcHBsaWNhYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAyZDIyMDQ0MjUyNTQ3
YjJjYTM0ZDllYzE5MjZlYTI3NzJiZTBkMzUxLi5hODQwNTY5NDg2ZmY5MWNhNTY2ZDg2ZWEzNmMz
ZTk2NWYwMDU1ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTcyMCwxNCArNzIwLDEwIEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVybiBvYmpl
Y3QuZ2V0KCk7CiAgICAgfQogCi0gICAgLy8gSXQncyBvbmx5IGFsbG93ZWQgdG8gY3JlYXRlIGFu
IEFjY2Vzc2liaWxpdHlPYmplY3QgZnJvbSBhIE5vZGUgaWYgaXQncyBpbiBhIGNhbnZhcyBzdWJ0
cmVlLgotICAgIC8vIE9yIGlmIGl0J3MgYSBoaWRkZW4gZWxlbWVudCwgYnV0IHdlIHN0aWxsIHdh
bnQgdG8gZXhwb3NlIGl0IGJlY2F1c2Ugb2Ygb3RoZXIgQVJJQSBhdHRyaWJ1dGVzLgogICAgIGJv
b2wgaW5DYW52YXNTdWJ0cmVlID0gbGluZWFnZU9mVHlwZTxIVE1MQ2FudmFzRWxlbWVudD4oKm5v
ZGUtPnBhcmVudEVsZW1lbnQoKSkuZmlyc3QoKTsKLSAgICBib29sIGlzSGlkZGVuID0gaXNOb2Rl
QXJpYVZpc2libGUobm9kZSk7Ci0KICAgICBib29sIGluc2lkZU1ldGVyRWxlbWVudCA9IGlzPEhU
TUxNZXRlckVsZW1lbnQ+KCpub2RlLT5wYXJlbnRFbGVtZW50KCkpOwotICAgIAotICAgIGlmICgh
aW5DYW52YXNTdWJ0cmVlICYmICFpc0hpZGRlbiAmJiAhaW5zaWRlTWV0ZXJFbGVtZW50KQorICAg
IGJvb2wgaGFzRGlzcGxheUNvbnRlbnRzID0gaXM8RWxlbWVudD4oKm5vZGUpICYmIGRvd25jYXN0
PEVsZW1lbnQ+KCpub2RlKS5oYXNEaXNwbGF5Q29udGVudHMoKTsKKyAgICBpZiAoIWluQ2FudmFz
U3VidHJlZSAmJiAhaW5zaWRlTWV0ZXJFbGVtZW50ICYmICFoYXNEaXNwbGF5Q29udGVudHMgJiYg
IWlzTm9kZUFyaWFWaXNpYmxlKG5vZGUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IFJlZiBwcm90ZWN0ZWROb2RlIHsgKm5vZGUgfTsKQEAgLTc2MCw2ICs3NTYsOSBAQCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXQocmVuZGVyZXIp
KQogICAgICAgICByZXR1cm4gb2JqOwogCisgICAgLy8gRG9uJ3QgY3JlYXRlIGFuIG9iamVjdCBm
b3IgdGhpcyByZW5kZXJlciBpZiBpdCdzIGJlaW5nIGRlc3Ryb3llZC4KKyAgICBpZiAocmVuZGVy
ZXItPmJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBuZXdPYmogPSBjcmVhdGVGcm9tUmVuZGVyZXIocmVuZGVy
ZXIpOwogCiAgICAgLy8gV2lsbCBjcmFzaCBsYXRlciBpZiB3ZSBoYXZlIHR3byBvYmplY3RzIGZv
ciB0aGUgc2FtZSByZW5kZXJlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDUwNTA5ZDYwMjZkZmFjZGUzODIyYTJk
YzZmNzY1MjhhMWRjZjAyZWMuLmRlNzNhMDZiZmIzYTdlMjRkNmI2OThlYzUwOTU1ZmU1ODFmNjlm
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcApAQCAtNDQ4LDYgKzQ0OCwxNiBAQCBBWENvcmVPYmplY3QqIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0CiAgICAgfSk7CiB9CiAK
K0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BsYXlDb250ZW50
c1BhcmVudCgpIGNvbnN0Cit7CisgICAgYXV0byogcGFyZW50Tm9kZSA9IG5vZGUoKSA/IG5vZGUo
KS0+cGFyZW50Tm9kZSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIWlzPEVsZW1lbnQ+KHBhcmVudE5v
ZGUpIHx8ICFkb3duY2FzdDxFbGVtZW50PihwYXJlbnROb2RlKS0+aGFzRGlzcGxheUNvbnRlbnRz
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byogY2FjaGUgPSBheE9iamVj
dENhY2hlKCk7CisgICAgcmV0dXJuIGNhY2hlID8gY2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE5v
ZGUpIDogbnVsbHB0cjsKK30KKwogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU9i
amVjdDo6cHJldmlvdXNTaWJsaW5nVW5pZ25vcmVkKGludCBsaW1pdCkgY29uc3QKIHsKICAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBwcmV2aW91czsKQEAgLTU3NSw3ICs1ODUsNyBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENoaWxkKEFYQ29yZU9iamVjdCogbmV3Q2hpbGQsIHVu
c2lnbmVkIGluZGV4LCBEZQogewogICAgIGlmICghbmV3Q2hpbGQpCiAgICAgICAgIHJldHVybjsK
LSAgICAKKwogICAgIEFTU0VSVChpczxBY2Nlc3NpYmlsaXR5T2JqZWN0PihuZXdDaGlsZCkpOwog
ICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eU9iamVjdD4obmV3Q2hpbGQpKQogICAgICAgICByZXR1
cm47CkBAIC02MDAsNyArNjEwLDEyIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6aW5zZXJ0
Q2hpbGQoQVhDb3JlT2JqZWN0KiBuZXdDaGlsZCwgdW5zaWduZWQgaW5kZXgsIERlCiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKKyAgICBhdXRvKiBkaXNwbGF5Q29udGVu
dHNQYXJlbnQgPSBjaGlsZC0+ZGlzcGxheUNvbnRlbnRzUGFyZW50KCk7CisgICAgLy8gVG8gYXZv
aWQgZG91YmxlLWluc2VydGluZyBhIGNoaWxkIG9mIGEgYGRpc3BsYXk6IGNvbnRlbnRzYCBlbGVt
ZW50LCBvbmx5IGluc2VydCBpZiBgdGhpc2AgaXMgdGhlIHJpZ2h0ZnVsIHBhcmVudC4KKyAgICBp
ZiAoZGlzcGxheUNvbnRlbnRzUGFyZW50ICYmIGRpc3BsYXlDb250ZW50c1BhcmVudCAhPSB0aGlz
KQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvIHRoaXNBbmNlc3RvckZsYWdzID0gY29tcHV0
ZUFuY2VzdG9yRmxhZ3MoKTsKICAgICBjaGlsZC0+aW5pdGlhbGl6ZUFuY2VzdG9yRmxhZ3ModGhp
c0FuY2VzdG9yRmxhZ3MpOwogICAgIHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhRm9yQ2hpbGQo
Y2hpbGQpOwpAQCAtNjI1LDcgKzY0MCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6aW5z
ZXJ0Q2hpbGQoQVhDb3JlT2JqZWN0KiBuZXdDaGlsZCwgdW5zaWduZWQgaW5kZXgsIERlCiAgICAg
fSBlbHNlIHsKICAgICAgICAgLy8gVGFibGUgY29tcG9uZW50IGNoaWxkLXBhcmVudCByZWxhdGlv
bnNoaXBzIG9mdGVuIGRvbid0IGxpbmUgdXAgcHJvcGVybHksIGhlbmNlIHRoZSBuZWVkIGZvciBt
ZXRob2RzCiAgICAgICAgIC8vIGxpa2UgcGFyZW50VGFibGUoKSBhbmQgcGFyZW50Um93KCkuIEV4
Y2x1ZGUgdGhlbSBmcm9tIHRoaXMgQVNTRVJULgotICAgICAgICBBU1NFUlQoKCFpc1RhYmxlQ29t
cG9uZW50KCpjaGlsZCkgJiYgIWlzVGFibGVDb21wb25lbnQoKnRoaXMpKSA/IGNoaWxkLT5wYXJl
bnRPYmplY3QoKSA9PSB0aGlzIDogdHJ1ZSk7CisgICAgICAgIEFTU0VSVChpc1RhYmxlQ29tcG9u
ZW50KCpjaGlsZCkgfHwgaXNUYWJsZUNvbXBvbmVudCgqdGhpcykgfHwgY2hpbGQtPnBhcmVudE9i
amVjdCgpID09IHRoaXMpOwogICAgICAgICBtX2NoaWxkcmVuLmluc2VydChpbmRleCwgY2hpbGQp
OwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMmI0ZGYzMzNlZjhlNWU1NTM4NTFlNWI5NDk1ZGNiM2Iw
ZDMzMjYyNS4uOTg0YjBiY2FhOWNkZjE0NzE0YzBjNTlmYjg4YjgxZDk5OGY1MDViNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
QEAgLTM3Myw2ICszNzMsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbmV4
dFNpYmxpbmdVbmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxpbmdVbmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdCBv
dmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogZGlz
cGxheUNvbnRlbnRzUGFyZW50KCkgY29uc3Q7CiAgICAgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmpl
Y3RVbmlnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBw
YXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0K
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RBY2Nlc3NpYmxlT2JqZWN0RnJv
bU5vZGUoY29uc3QgTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMDEwMWZiNTMwNzlm
YjIxOTMzNzliYzZkMzc1ODhhNGY3NTViNGE0NS4uNzI5Zjc1NDczZGI1MzMyMWZkOTYzMjBkNjI2
NWFhYWFlOTM4YTliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC00OTEsMTEgKzQ5MSwxNyBA
QCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRP
YmplY3RJZkV4aXN0cygpIGNvbnN0CiAgICAgaWYgKG1fcmVuZGVyZXIgJiYgaXNXZWJBcmVhKCkp
CiAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0KCZtX3JlbmRlcmVyLT52aWV3KCkuZnJhbWVWaWV3
KCkpOwogCisgICAgaWYgKGF1dG8qIGRpc3BsYXlDb250ZW50c1BhcmVudCA9IHRoaXMtPmRpc3Bs
YXlDb250ZW50c1BhcmVudCgpKQorICAgICAgICByZXR1cm4gZGlzcGxheUNvbnRlbnRzUGFyZW50
OworCiAgICAgcmV0dXJuIGNhY2hlLT5nZXQocmVuZGVyUGFyZW50T2JqZWN0KCkpOwogfQogICAg
IAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50
T2JqZWN0KCkgY29uc3QKIHsKKyAgICBpZiAoYXV0byogZGlzcGxheUNvbnRlbnRzUGFyZW50ID0g
dGhpcy0+ZGlzcGxheUNvbnRlbnRzUGFyZW50KCkpCisgICAgICAgIHJldHVybiBkaXNwbGF5Q29u
dGVudHNQYXJlbnQ7CisKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIApAQCAtNTA4LDE0ICs1MTQsMTMgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKICAgICAgICAgaWYg
KHBhcmVudCkKICAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7CiAgICAgfQotICAgIAorCiAgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCk7CiAgICAgaWYgKCFjYWNoZSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCi0gICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRP
YmogPSByZW5kZXJQYXJlbnRPYmplY3QoKTsKLSAgICBpZiAocGFyZW50T2JqKQotICAgICAgICBy
ZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE9iaik7CisKKyAgICBpZiAoYXV0byogcGFy
ZW50T2JqZWN0ID0gcmVuZGVyUGFyZW50T2JqZWN0KCkpCisgICAgICAgIHJldHVybiBjYWNoZS0+
Z2V0T3JDcmVhdGUocGFyZW50T2JqZWN0KTsKICAgICAKICAgICAvLyBXZWJBcmVhJ3MgcGFyZW50
IHNob3VsZCBiZSB0aGUgc2Nyb2xsIHZpZXcgY29udGFpbmluZyBpdC4KICAgICBpZiAoaXNXZWJB
cmVhKCkpCkBAIC01MzcsNyArNTQyLDcgQEAgQVhDb3JlT2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9yZWQoKSBjb25zdAogICAgIH0KICNlbmRpZgog
Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9y
ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6cGFyZW50T2JqZWN0VW5pZ25v
cmVkKCk7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNBdHRhY2htZW50
KCkgY29uc3QKQEAgLTMxOTgsMjkgKzMyMDMsMzYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojp1cGRhdGVBdHRhY2htZW50Vmlld1BhcmVudHMoKQogfQogI2VuZGlmCiAKLS8vIEhp
ZGRlbiBjaGlsZHJlbiBhcmUgdGhvc2UgdGhhdCBhcmUgbm90IHJlbmRlcmVkIG9yIHZpc2libGUs
IGJ1dCBhcmUgc3BlY2lmaWNhbGx5IG1hcmtlZCBhcyBhcmlhLWhpZGRlbj1mYWxzZSwKLS8vIG1l
YW5pbmcgdGhhdCB0aGV5IHNob3VsZCBiZSBleHBvc2VkIHRvIHRoZSBBWCBoaWVyYXJjaHkuCi12
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZEhpZGRlbkNoaWxkcmVuKCkKKy8vIFNv
bWUgZWxlbWVudHMgZG9uJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIHJlbmRlciBvYmplY3QsIG1lYW5p
bmcgdGhleSB3b24ndCBiZSBwaWNrZWQgdXAgYnkgYSB3YWxrIG9mIHRoZSByZW5kZXIgdHJlZS4K
Ky8vIEZvciBleGFtcGxlLCBub2RlcyB0aGF0IGFyZSBgYXJpYS1oaWRkZW49ImZhbHNlImAgYW5k
IGBoaWRkZW5gLCBvciBlbGVtZW50cyB3aXRoIGBkaXNwbGF5OiBjb250ZW50c2AuCisvLyBUaGlz
IGZ1bmN0aW9uIHdpbGwgZmluZCBhbmQgYWRkIHRoZXNlIGVsZW1lbnRzIHRvIHRoZSBBWCB0cmVl
Lgordm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGROb2RlT25seUNoaWxkcmVuKCkK
IHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIC8vIEZpcnN0IGRvIGEgcXVpY2sgcnVuIHRocm91Z2ggdG8g
ZGV0ZXJtaW5lIGlmIHdlIGhhdmUgYW55IGhpZGRlbiBub2RlcyAobW9zdCBvZnRlbiB3ZSB3aWxs
IG5vdCkuCi0gICAgLy8gSWYgd2UgZG8gaGF2ZSBoaWRkZW4gbm9kZXMsIHdlIG5lZWQgdG8gZGV0
ZXJtaW5lIHdoZXJlIHRvIGluc2VydCB0aGVtIHNvIHRoZXkgbWF0Y2ggRE9NIG9yZGVyIGFzIGNs
b3NlIGFzIHBvc3NpYmxlLgotICAgIGJvb2wgc2hvdWxkSW5zZXJ0SGlkZGVuTm9kZXMgPSBmYWxz
ZTsKKworICAgIGF1dG8gbm9kZUhhc0Rpc3BsYXlDb250ZW50cyA9IFtdIChOb2RlJiBub2RlKSB7
CisgICAgICAgIHJldHVybiBpczxFbGVtZW50Pihub2RlKSAmJiBkb3duY2FzdDxFbGVtZW50Pihu
b2RlKS5oYXNEaXNwbGF5Q29udGVudHMoKTsKKyAgICB9OworICAgIC8vIEZpcnN0IGRvIGEgcXVp
Y2sgcnVuIHRocm91Z2ggdG8gZGV0ZXJtaW5lIGlmIHdlIGhhdmUgYW55IGludGVyZXN0aW5nIG5v
ZGVzIChtb3N0IG9mdGVuIHdlIHdpbGwgbm90KS4KKyAgICAvLyBJZiB3ZSBkbyBoYXZlIGFueSBp
bnRlcmVzdGluZyBub2Rlcywgd2UgbmVlZCB0byBkZXRlcm1pbmUgd2hlcmUgdG8gaW5zZXJ0IHRo
ZW0gc28gdGhleSBtYXRjaCBET00gb3JkZXIgYXMgY2xvc2UgYXMgcG9zc2libGUuCisgICAgYm9v
bCBoYXNOb2RlT25seUNoaWxkcmVuID0gZmFsc2U7CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG5v
ZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
LSAgICAgICAgaWYgKCFjaGlsZC0+cmVuZGVyZXIoKSAmJiBpc05vZGVBcmlhVmlzaWJsZShjaGls
ZCkpIHsKLSAgICAgICAgICAgIHNob3VsZEluc2VydEhpZGRlbk5vZGVzID0gdHJ1ZTsKKyAgICAg
ICAgaWYgKGNoaWxkLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgaWYgKG5vZGVIYXNEaXNwbGF5Q29udGVudHMoKmNoaWxkKSB8fCBpc05vZGVBcmlhVmlzaWJs
ZShjaGlsZCkpIHsKKyAgICAgICAgICAgIGhhc05vZGVPbmx5Q2hpbGRyZW4gPSB0cnVlOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgaWYgKCFzaG91bGRJ
bnNlcnRIaWRkZW5Ob2RlcykKKyAgICBpZiAoIWhhc05vZGVPbmx5Q2hpbGRyZW4pCiAgICAgICAg
IHJldHVybjsKICAgICAKICAgICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIG9mIHRoZSBjaGlsZHJl
biwgaW5jbHVkaW5nIHRob3NlIHRoYXQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGFkZGVkLCBhbmQK
LSAgICAvLyB0cnkgdG8gaW5zZXJ0IGhpZGRlbiBub2RlcyBpbiB0aGUgY29ycmVjdCBwbGFjZSBp
biB0aGUgRE9NIG9yZGVyLgorICAgIC8vIHRyeSB0byBpbnNlcnQgdGhlIG5vZGVzIGluIHRoZSBj
b3JyZWN0IHBsYWNlIGluIHRoZSBET00gb3JkZXIuCiAgICAgdW5zaWduZWQgaW5zZXJ0aW9uSW5k
ZXggPSAwOwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+cmVu
ZGVyZXIoKSkgewpAQCAtMzIzOSw3ICszMjUxLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjphZGRIaWRkZW5DaGlsZHJlbigpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIGlmICghaXNOb2RlQXJpYVZpc2libGUoY2hpbGQpKQorICAgICAgICBp
ZiAoIW5vZGVIYXNEaXNwbGF5Q29udGVudHMoKmNoaWxkKSAmJiAhaXNOb2RlQXJpYVZpc2libGUo
Y2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICB1bnNpZ25l
ZCBwcmV2aW91c1NpemUgPSBtX2NoaWxkcmVuLnNpemUoKTsKQEAgLTMzMTEsOSArMzMyMyw3IEBA
IHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4oKQogICAgIGZvciAo
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9iamVjdCA9IGZpcnN0Q2hpbGQoKTsgb2JqZWN0
OyBvYmplY3QgPSBvYmplY3QtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGFkZENoaWxkSWZOZWVk
ZWQoKm9iamVjdCk7CiAKLSAgICBtX3N1YnRyZWVEaXJ0eSA9IGZhbHNlOwotICAgIAotICAgIGFk
ZEhpZGRlbkNoaWxkcmVuKCk7CisgICAgYWRkTm9kZU9ubHlDaGlsZHJlbigpOwogICAgIGFkZEF0
dGFjaG1lbnRDaGlsZHJlbigpOwogICAgIGFkZEltYWdlTWFwQ2hpbGRyZW4oKTsKICAgICBhZGRU
ZXh0RmllbGRDaGlsZHJlbigpOwpAQCAtMzMyNiw3ICszMzM2LDkgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjphZGRDaGlsZHJlbigpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
dXBkYXRlQXR0YWNobWVudFZpZXdQYXJlbnRzKCk7CiAjZW5kaWYKLSAgICAKKworICAgIG1fc3Vi
dHJlZURpcnR5ID0gZmFsc2U7CisKICAgICB1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNyZWF0aW9u
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggMjc1YmFjZjc5MWE1Yzg1ZDM3NjNlMDY5NmMw
Zjc0NDY5OTRkOGQyMi4uMmIwNDVkYTMyYzRmOTc3MWQwNDI0MDM0MGZlYzkyZGEzZDQwMTgxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmgKQEAgLTI0OCw3ICsyNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
b2Zmc2V0Qm91bmRpbmdCb3hGb3JSZW1vdGVTVkdFbGVtZW50KExheW91dFJlY3QmKSBjb25zdDsK
ICAgICBib29sIHN1cHBvcnRzUGF0aCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBhZGRI
aWRkZW5DaGlsZHJlbigpOworICAgIHZvaWQgYWRkTm9kZU9ubHlDaGlsZHJlbigpOwogICAgIHZv
aWQgYWRkVGV4dEZpZWxkQ2hpbGRyZW4oKTsKICAgICB2b2lkIGFkZEltYWdlTWFwQ2hpbGRyZW4o
KTsKICAgICB2b2lkIGFkZENhbnZhc0NoaWxkcmVuKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGJiY2M2ZGQxODI3ZmY4
YzE0N2JjZGY4MGJkYzEzOGU1OGFmN2E1Ni4uY2RkN2YxOWRlMjUxOTYwNWEwNDY0MDIyYWNlMjM2
OGIyNWE4ZTIzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAzLTE3ICBUeWxlciBXaWxj
b2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY2x1ZGUgZGlzcGxheTog
Y29udGVudHMgZWxlbWVudHMgaW4gdGhlIEFYIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzgzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNw
bGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xl
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZGlzcGxheS1j
b250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2ds
aWIvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczogRW5h
YmxlIG5ldyB0ZXN0cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9hcmlh
LWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1l
bnQtcm9sZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9uczogU2tpcCBkaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMuaHRtbC4K
KwogMjAyMi0wMy0xNyAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IGZvciBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFiLXh4eC5odG1sIHRlc3RzIGlu
IGlzb2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVt
ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWQwYTBmYTg2NjY2YWM2YzNkZGIzN2ZjYjkx
ZjQzODIwNDUyYmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjMgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgYW4gYXJpYS1oaWRkZW4gZGlzcGxh
eTpjb250ZW50cyBlbGVtZW50IGJlaGF2ZXMgYXMgZXhwZWN0ZWQuCisKK1Rlc3RpbmcgZWxlbWVu
dCAjbWFpbgorQVhSb2xlOiBBWEdyb3VwCitjb21wdXRlZFJvbGVTdHJpbmc6IG1haW4KK0FYU3Vi
cm9sZTogQVhMYW5kbWFya01haW4KKworVGVzdGluZyBlbGVtZW50ICNsaXN0CitBWFJvbGU6IEFY
TGlzdAorY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CitBWFN1YnJvbGU6IEFYQ29udGVudExpc3QK
KworVGVzdGluZyBlbGVtZW50ICNwYXJhZ3JhcGgKK0FYUm9sZTogQVhHcm91cAorY29tcHV0ZWRS
b2xlU3RyaW5nOiBwYXJhZ3JhcGgKKworSGlkaW5nICNtYWluIHdpdGggYXJpYS1oaWRkZW49J3Ry
dWUnLgorUEFTUzogQWxsIGVsZW1lbnRzIGFyZSBub3cgaGlkZGVuLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQu
aHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250
ZW50cy1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVhNWU3MDZiZmJhZmFmZmFiYWZmMzI5MzE0
YmJhMmU0YWMxZmFiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSw3
MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPG1haW4gaWQ9Im1haW4iIHN0
eWxlPSJkaXNwbGF5OiBjb250ZW50cyI+CisgICAgPG9sIGlkPSJsaXN0Ij4KKyAgICAgICAgPGxp
Pkxpc3QgaXRlbSBvbmU8L2xpPgorICAgICAgICA8bGk+TGlzdCBpdGVtIHR3bzwvbGk+CisgICAg
PC9vbD4KKyAgICA8cCBpZD0icGFyYWdyYXBoIj5Db250ZW50IGluc2lkZSBtYWluID4gcCB0YWcu
PHA+Cis8L21haW4+CisKKzxzY3JpcHQ+CisgICAgdmFyIHRlc3RPdXRwdXQgPSAiVGhpcyB0ZXN0
IGVuc3VyZXMgdGhhdCBhbiBhcmlhLWhpZGRlbiBkaXNwbGF5OmNvbnRlbnRzIGVsZW1lbnQgYmVo
YXZlcyBhcyBleHBlY3RlZC4iOworCisgICAgZnVuY3Rpb24gZGVidWdFbGVtZW50KGlkKSB7Cisg
ICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuXG5UZXN0aW5nIGVsZW1lbnQgIyR7aWR9XG5gOworICAg
ICAgICBjb25zdCBheEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoaWQpOworICAgICAgICBpZiAoIWF4RWxlbWVudCkgeworICAgICAgICAgICAg
ZGVidWcoYFxuRkFJTDogQ291bGRuJ3QgZ2V0IEFYIGVsZW1lbnQgZm9yICMke2lkfS5gKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRlc3RPdXRwdXQgKz0gYXhF
bGVtZW50LnJvbGU7CisgICAgICAgIGNvbnN0IGNvbXB1dGVkUm9sZVN0cmluZyA9IGF4RWxlbWVu
dC5jb21wdXRlZFJvbGVTdHJpbmc7CisgICAgICAgIGlmIChjb21wdXRlZFJvbGVTdHJpbmcpCisg
ICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGBcbmNvbXB1dGVkUm9sZVN0cmluZzogJHtjb21wdXRl
ZFJvbGVTdHJpbmd9YDsKKworICAgICAgICBsZXQgc3Vicm9sZSA9IGF4RWxlbWVudC5zdWJyb2xl
OworICAgICAgICBpZiAoc3Vicm9sZS5yZXBsYWNlKCJBWFN1YnJvbGU6ICIsICIiKSkKKyAgICAg
ICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuJHtzdWJyb2xlfWA7CisgICAgfQorCisgICAgaWYgKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgZGVidWdFbGVtZW50KCJtYWluIik7CisgICAgICAgIGRl
YnVnRWxlbWVudCgibGlzdCIpOworICAgICAgICBkZWJ1Z0VsZW1lbnQoInBhcmFncmFwaCIpOwor
CisgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuXG5IaWRpbmcgI21haW4gd2l0aCBhcmlhLWhpZGRl
bj0ndHJ1ZScuIjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKS5hcmlh
SGlkZGVuID0gInRydWUiOworICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgLy8gV2Fp
dCBmb3IgdGhlIG1haW4gdG8gYmUgaGlkZGVuLgorICAgICAgICAgICAgICAgIHJldHVybiAhYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJtYWluIik7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImxpc3QiKTsKKyAgICAgICAgICAgIGNvbnN0IHBh
cmFncmFwaCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgi
cGFyYWdyYXBoIik7CisgICAgICAgICAgICBpZiAoIWxpc3QgJiYgIXBhcmFncmFwaCkKKyAgICAg
ICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcblBBU1M6IEFsbCBlbGVtZW50cyBhcmUgbm93IGhp
ZGRlbi4iOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGxpc3QpCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuRkFJTDogPG9sPiB3YXMgbm90IGhp
ZGRlbiBieSBhcmlhLWhpZGRlbi4iOworICAgICAgICAgICAgICAgIGlmIChwYXJhZ3JhcGgpCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuRkFJTDogPHA+IHdhcyBub3QgaGlk
ZGVuIGJ5IGFyaWEtaGlkZGVuLiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwor
ICAgICAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgfSwgMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1l
bGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlz
cGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTcz
YTZkMGIxYjNhOTcwNGU1MDIwYzgxZDI3MDQ0Yjc4ZjZhODk0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTY2IEBACitUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50
cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCisKKzxh
IGhyZWY9Imh0dHBzOi8vYXBwbGUuY29tIiBpZD0ibGluayIgY2xhc3M9InRlc3RjYXNlIj48L2E+
CisgICAgQVhSb2xlOiBBWExpbmsKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpbmsKKworPGFy
dGljbGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iYXJ0aWNsZSI+PC9hcnRpY2xlPgorICAgIEFYUm9s
ZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYXJ0aWNsZQorICAgIEFYU3Vicm9s
ZTogQVhEb2N1bWVudEFydGljbGUKKworPGFzaWRlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImFzaWRl
Ij48L2FzaWRlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzog
Y29tcGxlbWVudGFyeQorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkKKwor
PGJsb2NrcXVvdGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iYmxvY2txdW90ZSI+PC9ibG9ja3F1b3Rl
PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYmxvY2txdW90
ZQorCis8YnV0dG9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImJ1dHRvbiI+PC9idXR0b24+CisgICAg
QVhSb2xlOiBBWEJ1dHRvbgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYnV0dG9uCisKKzxjb2Rl
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImNvZGUiPjwvY29kZT4KKyAgICBBWFJvbGU6IEFYR3JvdXAK
KyAgICBBWFN1YnJvbGU6IEFYQ29kZVN0eWxlR3JvdXAKKworPGRlbCBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJkZWwiPjwvZGVsPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0
cmluZzogZGVsZXRpb24KKyAgICBBWFN1YnJvbGU6IEFYRGVsZXRlU3R5bGVHcm91cAorCis8ZGV0
YWlscyBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZXRhaWxzIj48L2RldGFpbHM+CisgICAgQVhSb2xl
OiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWERldGFpbHMKKworPHN1bW1hcnkgY2xhc3M9InRl
c3RjYXNlIiBpZD0ic3VtbWFyeSI+PC9zdW1tYXJ5PgorICAgIEFYUm9sZTogQVhCdXR0b24KKyAg
ICBBWFN1YnJvbGU6IEFYU3VtbWFyeQorCis8ZGZuIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRmbiI+
PC9kZm4+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBkZWZp
bml0aW9uCisgICAgQVhTdWJyb2xlOiBBWERlZmluaXRpb24KKworPGRpdiBjbGFzcz0idGVzdGNh
c2UiIGlkPSJkaXYiPjwvZGl2PgorICAgIEFYUm9sZTogQVhHcm91cAorCis8ZGwgY2xhc3M9InRl
c3RjYXNlIiBpZD0iZGwiPjwvZGw+CisgICAgQVhSb2xlOiBBWExpc3QKKworPGR0IGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9ImR0Ij48L2R0PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9s
ZTogQVhUZXJtCisKKzxkZCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZCI+PC9kZD4KKyAgICBBWFJv
bGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYRGVzY3JpcHRpb24KKworPGxlZ2VuZCBjbGFz
cz0idGVzdGNhc2UiIGlkPSJsZWdlbmQiPjwvbGVnZW5kPgorICAgIEFYUm9sZTogQVhHcm91cAor
Cis8ZmlndXJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImZpZ3VyZSI+PC9maWd1cmU+CisgICAgQVhS
b2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBmaWd1cmUKKyAgICBBWFN1YnJv
bGU6IEFYRW1wdHlHcm91cAorCis8Zm9ybSBjbGFzcz0idGVzdGNhc2UiIGlkPSJmb3JtIj48L2Zv
cm0+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBmb3JtCisg
ICAgQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAKKworPGgyIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Imgy
Ij48L2gyPgorICAgIEFYUm9sZTogQVhIZWFkaW5nCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBo
ZWFkaW5nCisKKzxociBjbGFzcz0idGVzdGNhc2UiIGlkPSJociI+CisgICAgQVhSb2xlOiBBWFNw
bGl0dGVyCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBzZXBhcmF0b3IKKyAgICBBWFN1YnJvbGU6
IEFYQ29udGVudFNlcGFyYXRvcgorCis8aW5zIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImlucyI+PC9p
bnM+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBpbnNlcnRp
b24KKyAgICBBWFN1YnJvbGU6IEFYSW5zZXJ0U3R5bGVHcm91cAorCis8bGFiZWwgY2xhc3M9InRl
c3RjYXNlIiBpZD0ibGFiZWwiPjwvbGFiZWw+CisgICAgQVhSb2xlOiBBWEdyb3VwCisKKzxtYWlu
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1haW4iPjwvbWFpbj4KKyAgICBBWFJvbGU6IEFYR3JvdXAK
KyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IG1haW4KKyAgICBBWFN1YnJvbGU6IEFYTGFuZG1hcmtN
YWluCisKKzxtYXJrIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1hcmsiPjwvbWFyaz4KKyAgICBBWFJv
bGU6IEFYR3JvdXAKKworPG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0i
bWVudS10b29sYmFyIj48L21lbnU+CisgICAgQVhSb2xlOiBBWFRvb2xiYXIKKyAgICBjb21wdXRl
ZFJvbGVTdHJpbmc6IHRvb2xiYXIKKworPG5hdiBjbGFzcz0idGVzdGNhc2UiIGlkPSJuYXYiPjwv
bmF2PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbmF2aWdh
dGlvbgorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya05hdmlnYXRpb24KKworPG9sIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9Im9sIj48L29sPgorICAgIEFYUm9sZTogQVhMaXN0CisgICAgY29tcHV0ZWRS
b2xlU3RyaW5nOiBsaXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJvbC1saS1lbGVtZW50
Ij48L2xpPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlz
dGl0ZW0KKworPG91dHB1dCBjbGFzcz0idGVzdGNhc2UiIGlkPSJvdXRwdXQiPjwvb3V0cHV0Pgor
ICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3RhdHVzCisgICAg
QVhTdWJyb2xlOiBBWEFwcGxpY2F0aW9uU3RhdHVzCisKKzxwIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
InAiPjwvcD4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IHBh
cmFncmFwaAorCis8cHJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InByZSI+PC9wcmU+CisgICAgQVhS
b2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWFByZWZvcm1hdHRlZFN0eWxlR3JvdXAKKwor
PHNlY3Rpb24gY2xhc3M9InRlc3RjYXNlIiBpZD0ic2VjdGlvbi13aXRoLW5hbWUiIGFyaWEtbGFi
ZWw9IlNlY3Rpb24gbmFtZSI+PC9zZWN0aW9uPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNv
bXB1dGVkUm9sZVN0cmluZzogcmVnaW9uCisgICAgQVhTdWJyb2xlOiBBWExhbmRtYXJrUmVnaW9u
CisKKzxzZWN0aW9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rpb24td2l0aG91dC1uYW1lIj48
L3NlY3Rpb24+CisgICAgQVhSb2xlOiBBWEdyb3VwCisKKzxzdWIgY2xhc3M9InRlc3RjYXNlIiBp
ZD0ic3ViIj48L3N1Yj4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJp
bmc6IHN1YnNjcmlwdAorICAgIEFYU3Vicm9sZTogQVhTdWJzY3JpcHRTdHlsZUdyb3VwCisKKzxz
dXAgY2xhc3M9InRlc3RjYXNlIiBpZD0ic3VwIj48L3N1cD4KKyAgICBBWFJvbGU6IEFYR3JvdXAK
KyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IHN1cGVyc2NyaXB0CisgICAgQVhTdWJyb2xlOiBBWFN1
cGVyc2NyaXB0U3R5bGVHcm91cAorCis8dGltZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ0aW1lIj48
L3RpbWU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiB0aW1l
CisgICAgQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAKKworPHVsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
InVsIj48L3VsPgorICAgIEFYUm9sZTogQVhMaXN0CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBs
aXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgorICAg
IEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdGl0ZW0KKworCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVt
ZW50LXJvbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVu
dHMtZWxlbWVudC1yb2xlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwY2MzZjY1NDliNDVlZjU4MzBlMjJm
MDBmN2MwYWY0NzFlYzIzOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sCkBAIC0wLDAgKzEsMTI5
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorLnRlc3RjYXNlIHsgZGlzcGxheTogY29udGVudHMgfTsKKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBpZD0iY29udGVudCI+CisgICAgPGEgaHJlZj0i
aHR0cHM6Ly9hcHBsZS5jb20iIGlkPSJsaW5rIiBjbGFzcz0idGVzdGNhc2UiPmFwcGxlLmNvbTwv
YT4KKworICAgIDxhcnRpY2xlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImFydGljbGUiPkFydGljbGUg
Y29udGVudDwvYXJ0aWNsZT4KKworICAgIDxhc2lkZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJhc2lk
ZSI+QXNpZGUgY29udGVudDwvYXNpZGU+CisKKyAgICA8YmxvY2txdW90ZSBjbGFzcz0idGVzdGNh
c2UiIGlkPSJibG9ja3F1b3RlIj5UbyBiZSBvciBub3QgdG8gYmUsIHRoYXQgaXMgdGhlIHF1ZXN0
aW9uPC9ibG9ja3F1b3RlPgorCisgICAgPGJ1dHRvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJidXR0
b24iPkNsaWNrIG1lPC9idXR0b24+CisKKyAgICA8Y29kZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJj
b2RlIj5IZWxsbyB3b3JsZDwvY29kZT4KKworICAgIDxkZWwgY2xhc3M9InRlc3RjYXNlIiBpZD0i
ZGVsIj5IZWxsbyB3b3JsZDwvZGVsPgorCisgICAgPGRldGFpbHMgY2xhc3M9InRlc3RjYXNlIiBp
ZD0iZGV0YWlscyI+CisgICAgICAgIDxzdW1tYXJ5IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InN1bW1h
cnkiPlN1bW1hcnkgdGV4dDwvc3VtbWFyeT4KKyAgICA8L2RldGFpbHM+CisKKyAgICA8ZGZuIGNs
YXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRmbiI+U29tZSBkZWZpbml0aW9uPC9kZm4+CisKKyAgICA8ZGl2
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRpdiI+U29tZSB0ZXh0PC9kaXY+CisKKyAgICA8ZGwgY2xh
c3M9InRlc3RjYXNlIiBpZD0iZGwiPgorICAgICAgICA8ZHQgY2xhc3M9InRlc3RjYXNlIiBpZD0i
ZHQiPmR0IGVsZW1lbnQ8L2R0PgorICAgICAgICA8ZGQgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGQi
PmRkIGVsZW1lbnQ8L2RkPgorICAgIDwvZGw+CisKKyAgICA8ZmllbGRzZXQ+CisgICAgICAgIDxs
ZWdlbmQgY2xhc3M9InRlc3RjYXNlIiBpZD0ibGVnZW5kIj5DaG9vc2UgeW91ciBmYXZvcml0ZSBt
b25zdGVyPC9sZWdlbmQ+CisKKyAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBpZD0icmFkaW8t
YnV0dG9uIiBuYW1lPSJtb25zdGVyIj4KKyAgICAgICAgPGxhYmVsIGZvcj0icmFkaW8tYnV0dG9u
Ij5LcmFrZW48L2xhYmVsPjxici8+CisKKyAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBpZD0i
c2FzcXVhdGNoIiBuYW1lPSJtb25zdGVyIj4KKyAgICAgICAgPGxhYmVsIGZvcj0ic2FzcXVhdGNo
Ij5TYXNxdWF0Y2g8L2xhYmVsPjxici8+CisgICAgPC9maWVsZHNldD4KKworICAgIDxmaWd1cmUg
Y2xhc3M9InRlc3RjYXNlIiBpZD0iZmlndXJlIj48L2ZpZ3VyZT4KKworICAgIDxmb3JtIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9ImZvcm0iPjwvZm9ybT4KKworICAgIDxoMiBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJoMiI+SGVsbG8gd29ybGQ8L2gyPgorCisgICAgPGhyIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
ImhyIj48L2hyPgorCisgICAgPGlucyBjbGFzcz0idGVzdGNhc2UiIGlkPSJpbnMiPkhlbGxvIHdv
cmxkPC9pbnM+CisKKyAgICA8bGFiZWwgY2xhc3M9InRlc3RjYXNlIiBpZD0ibGFiZWwiPkxhYmVs
PC9sYWJlbD4KKworICAgIDxtYWluIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1haW4iPk1haW4gY29u
dGVudDwvbWFpbj4KKworICAgIDxtYXJrIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1hcmsiPk1hcmtl
ZCB0ZXh0PC9tYXJrPgorCisgICAgPG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFy
IiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CisKKyAgICA8bmF2IGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9Im5hdiI+TmF2PC9uYXY+CisKKyAgICA8b2wgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wiPgor
ICAgICAgICA8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wtbGktZWxlbWVudCI+SGVsbG8gd29y
bGQ8L2xpPgorICAgIDwvb2w+CisKKyAgICA8b3V0cHV0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im91
dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CisKKyAgICA8cCBjbGFzcz0idGVzdGNhc2UiIGlkPSJwIj5Q
YXJhZ3JhcGg8L3A+CisKKyAgICA8cHJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InByZSI+UHJlLXRl
eHQ8L3ByZT4KKworICAgIDxzZWN0aW9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rpb24td2l0
aC1uYW1lIiBhcmlhLWxhYmVsPSJTZWN0aW9uIG5hbWUiPlNlY3Rpb248L3NlY3Rpb24+CisKKyAg
ICA8c2VjdGlvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJzZWN0aW9uLXdpdGhvdXQtbmFtZSI+U2Vj
dGlvbjwvc2VjdGlvbj4KKworICAgIDxzdWIgY2xhc3M9InRlc3RjYXNlIiBpZD0ic3ViIj5IZWxs
byB3b3JsZDwvc3ViPgorCisgICAgPHN1cCBjbGFzcz0idGVzdGNhc2UiIGlkPSJzdXAiPkhlbGxv
IHdvcmxkPC9zdXA+CisKKyAgICA8dGltZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ0aW1lIj48L3Rp
bWU+CisKKyAgICA8dWwgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwiPgorICAgICAgICA8bGkgY2xh
c3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+SGVsbG8gd29ybGQ8L2xpPgorICAgIDwv
dWw+Cis8L2Rpdj4KKworPHNjcmlwdD4KKyAgICAvLyBCdWZmZXIgdGVzdCBvdXRwdXQgYW5kIGR1
bXAgaXQgYXQgdGhlIGVuZCB0byBtYWtlIHRoZSB0ZXN0IHJ1biBmYXN0ZXIgdnMuIGluZGl2aWR1
YWwgYGRlYnVnYCBjYWxscy4KKyAgICB2YXIgdGVzdE91dHB1dCA9ICJUaGlzIHRlc3QgZW5zdXJl
cyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJv
bGUuXG5cbiI7CisKKyAgICB2YXIgYXhFbGVtZW50OworICAgIGZ1bmN0aW9uIHZlcmlmeVJvbGVz
KCkgeworICAgICAgICBjb25zdCB0ZXN0Y2FzZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xh
c3NOYW1lKCJ0ZXN0Y2FzZSIpOworICAgICAgICBmb3IgKGNvbnN0IGRvbUVsZW1lbnQgb2YgdGVz
dGNhc2VzKSB7CisgICAgICAgICAgICBjb25zdCBvdXRlckhUTUwgPSBlc2NhcGVIVE1MKGRvbUVs
ZW1lbnQuY2xvbmVOb2RlKCkub3V0ZXJIVE1MKTsKKyAgICAgICAgICAgIGF4RWxlbWVudCA9IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZChkb21FbGVtZW50Lmlk
KTsKKyAgICAgICAgICAgIGlmICghYXhFbGVtZW50KSB7CisgICAgICAgICAgICAgICAgdGVzdE91
dHB1dCArPSBgRkFJTC4gQ291bGRuJ3QgZ2V0IEFYIGVsZW1lbnQgZm9yICMke2RvbUVsZW1lbnQu
aWR9OiAke291dGVySFRNTH1cbmA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgJHtvdXRlckhUTUx9XG5gOworICAgICAg
ICAgICAgdGVzdE91dHB1dCArPSBgICAgICR7YXhFbGVtZW50LnJvbGV9YDsKKworICAgICAgICAg
ICAgbGV0IGNvbXB1dGVkUm9sZVN0cmluZyA9IGF4RWxlbWVudC5jb21wdXRlZFJvbGVTdHJpbmc7
CisgICAgICAgICAgICBpZiAoY29tcHV0ZWRSb2xlU3RyaW5nKQorICAgICAgICAgICAgICAgIHRl
c3RPdXRwdXQgKz0gYFxuICAgIGNvbXB1dGVkUm9sZVN0cmluZzogJHtjb21wdXRlZFJvbGVTdHJp
bmd9YDsKKworICAgICAgICAgICAgbGV0IHN1YnJvbGUgPSBheEVsZW1lbnQuc3Vicm9sZTsKKyAg
ICAgICAgICAgIGlmIChzdWJyb2xlLnJlcGxhY2UoIkFYU3Vicm9sZTogIiwgIiIpKQorICAgICAg
ICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuICAgICR7c3Vicm9sZX1gOworICAgICAgICAgICAg
dGVzdE91dHB1dCArPSBgXG5cbmA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAod2luZG93
LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHZlcmlmeVJvbGVzKCk7CisgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iikuc3R5bGUudmlzaWJpbGl0eSA9
ICJoaWRkZW4iOworICAgICAgICBkZWJ1Zyh0ZXN0T3V0cHV0KTsKKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJp
bGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVu
dC1yb2xlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjkxN2I5MTBkMzdhY2NlNmFiZjkwY2Y5
MDNhYzc1ZDQyZTdkYmM4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2dsaWIvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTQ1IEBACitUaGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRo
IENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3JyZWN0IHJvbGUuCisKKzxhIGhyZWY9
Imh0dHBzOi8vYXBwbGUuY29tIiBpZD0ibGluayIgY2xhc3M9InRlc3RjYXNlIj48L2E+CisgICAg
QVhSb2xlOiBBWExpbmsKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpbmsKKworPGFydGljbGUg
Y2xhc3M9InRlc3RjYXNlIiBpZD0iYXJ0aWNsZSI+PC9hcnRpY2xlPgorICAgIEFYUm9sZTogQVhB
cnRpY2xlCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBhcnRpY2xlCisKKzxhc2lkZSBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJhc2lkZSI+PC9hc2lkZT4KKyAgICBBWFJvbGU6IEFYTGFuZG1hcmtDb21w
bGVtZW50YXJ5CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBjb21wbGVtZW50YXJ5CisKKzxibG9j
a3F1b3RlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImJsb2NrcXVvdGUiPjwvYmxvY2txdW90ZT4KKyAg
ICBBWFJvbGU6IEFYQmxvY2txdW90ZQorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYmxvY2txdW90
ZQorCis8YnV0dG9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImJ1dHRvbiI+PC9idXR0b24+CisgICAg
QVhSb2xlOiBBWEJ1dHRvbgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYnV0dG9uCisKKzxjb2Rl
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImNvZGUiPjwvY29kZT4KKyAgICBBWFJvbGU6IEFYU2VjdGlv
bgorCis8ZGVsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRlbCI+PC9kZWw+CisgICAgQVhSb2xlOiBB
WERlbGV0aW9uCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBkZWxldGlvbgorCis8ZGV0YWlscyBj
bGFzcz0idGVzdGNhc2UiIGlkPSJkZXRhaWxzIj48L2RldGFpbHM+CisgICAgQVhSb2xlOiBBWFVu
a25vd24KKworPHN1bW1hcnkgY2xhc3M9InRlc3RjYXNlIiBpZD0ic3VtbWFyeSI+PC9zdW1tYXJ5
PgorICAgIEFYUm9sZTogQVhVbmtub3duCisKKzxkZm4gY2xhc3M9InRlc3RjYXNlIiBpZD0iZGZu
Ij48L2Rmbj4KKyAgICBBWFJvbGU6IEFYRGVmaW5pdGlvbgorICAgIGNvbXB1dGVkUm9sZVN0cmlu
ZzogZGVmaW5pdGlvbgorCis8ZGl2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRpdiI+PC9kaXY+Cisg
ICAgQVhSb2xlOiBBWFNlY3Rpb24KKworPGRsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRsIj48L2Rs
PgorICAgIEFYUm9sZTogQVhEZXNjcmlwdGlvbkxpc3QKKworPGR0IGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9ImR0Ij48L2R0PgorICAgIEFYUm9sZTogQVhEZXNjcmlwdGlvblRlcm0KKworPGRkIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9ImRkIj48L2RkPgorICAgIEFYUm9sZTogQVhEZXNjcmlwdGlvblZhbHVl
CisKKzxsZWdlbmQgY2xhc3M9InRlc3RjYXNlIiBpZD0ibGVnZW5kIj48L2xlZ2VuZD4KKyAgICBB
WFJvbGU6IEFYTGFiZWwKKworPGZpZ3VyZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJmaWd1cmUiPjwv
ZmlndXJlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogZmln
dXJlCisKKzxmb3JtIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImZvcm0iPjwvZm9ybT4KKyAgICBBWFJv
bGU6IEFYRm9ybQorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogZm9ybQorCis8aDIgY2xhc3M9InRl
c3RjYXNlIiBpZD0iaDIiPjwvaDI+CisgICAgQVhSb2xlOiBBWEhlYWRpbmcKKyAgICBjb21wdXRl
ZFJvbGVTdHJpbmc6IGhlYWRpbmcKKworPGhyIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImhyIj4KKyAg
ICBBWFJvbGU6IEFYU2VwYXJhdG9yCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBzZXBhcmF0b3IK
KworPGlucyBjbGFzcz0idGVzdGNhc2UiIGlkPSJpbnMiPjwvaW5zPgorICAgIEFYUm9sZTogQVhJ
bnNlcnRpb24KKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGluc2VydGlvbgorCis8bGFiZWwgY2xh
c3M9InRlc3RjYXNlIiBpZD0ibGFiZWwiPjwvbGFiZWw+CisgICAgQVhSb2xlOiBBWExhYmVsCisK
KzxtYWluIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1haW4iPjwvbWFpbj4KKyAgICBBWFJvbGU6IEFY
TGFuZG1hcmtNYWluCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBtYWluCisKKzxtYXJrIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9Im1hcmsiPjwvbWFyaz4KKworCis8bWVudSBjbGFzcz0idGVzdGNhc2Ui
IHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KKyAgICBBWFJvbGU6IEFY
VG9vbGJhcgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogdG9vbGJhcgorCis8bmF2IGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9Im5hdiI+PC9uYXY+CisgICAgQVhSb2xlOiBBWExhbmRtYXJrTmF2aWdhdGlv
bgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbmF2aWdhdGlvbgorCis8b2wgY2xhc3M9InRlc3Rj
YXNlIiBpZD0ib2wiPjwvb2w+CisgICAgQVhSb2xlOiBBWExpc3QKKyAgICBjb21wdXRlZFJvbGVT
dHJpbmc6IGxpc3QKKworPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im9sLWxpLWVsZW1lbnQiPjwv
bGk+CisgICAgQVhSb2xlOiBBWExpc3RJdGVtCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0
aXRlbQorCis8b3V0cHV0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im91dHB1dCI+PC9vdXRwdXQ+Cisg
ICAgQVhSb2xlOiBBWFN0YXR1c0JhcgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3RhdHVzCisK
KzxwIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InAiPjwvcD4KKyAgICBBWFJvbGU6IEFYUGFyYWdyYXBo
CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBwYXJhZ3JhcGgKKworPHByZSBjbGFzcz0idGVzdGNh
c2UiIGlkPSJwcmUiPjwvcHJlPgorICAgIEFYUm9sZTogQVhTZWN0aW9uCisKKzxzZWN0aW9uIGNs
YXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rpb24td2l0aC1uYW1lIiBhcmlhLWxhYmVsPSJTZWN0aW9u
IG5hbWUiPjwvc2VjdGlvbj4KKyAgICBBWFJvbGU6IEFYTGFuZG1hcmtSZWdpb24KKyAgICBjb21w
dXRlZFJvbGVTdHJpbmc6IHJlZ2lvbgorCis8c2VjdGlvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJz
ZWN0aW9uLXdpdGhvdXQtbmFtZSI+PC9zZWN0aW9uPgorICAgIEFYUm9sZTogQVhTZWN0aW9uCisK
KzxzdWIgY2xhc3M9InRlc3RjYXNlIiBpZD0ic3ViIj48L3N1Yj4KKyAgICBBWFJvbGU6IEFYU3Vi
c2NyaXB0CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBzdWJzY3JpcHQKKworPHN1cCBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJzdXAiPjwvc3VwPgorICAgIEFYUm9sZTogQVhTdXBlcnNjcmlwdAorICAg
IGNvbXB1dGVkUm9sZVN0cmluZzogc3VwZXJzY3JpcHQKKworPHRpbWUgY2xhc3M9InRlc3RjYXNl
IiBpZD0idGltZSI+PC90aW1lPgorICAgIEFYUm9sZTogQVhTdGF0aWMKKyAgICBjb21wdXRlZFJv
bGVTdHJpbmc6IHRpbWUKKworPHVsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsIj48L3VsPgorICAg
IEFYUm9sZTogQVhMaXN0CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisKKzxsaSBjbGFz
cz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij48L2xpPgorICAgIEFYUm9sZTogQVhMaXN0
SXRlbQorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdGl0ZW0KKworCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWY1Zjc1NDlhMTc2MjNiMjc5Yzg3ODUx
MjgyNzI3ODQzY2IyOWRkYy4uNzZiZGIzZjViODYxZGIwZTU2YzlmMjJkZTIxNGI0ZTE5OTMzOTMy
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwODYs
NiArMjA4Niw4IEBAIHdlYmtpdC5vcmcvYi8xNDg4MDYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLXNwCiAjIEVuYWJsZSAicGhvbmUgbnVt
YmVyIGxpbmtpZnlpbmciIHRlc3QgZm9yIGlPUwogZmFzdC9kb20vbGlua2lmeS1waG9uZS1udW1i
ZXJzLmh0bWwgWyBQYXNzIF0KIAorYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNv
bnRlbnRzLWVsZW1lbnQuaHRtbCBbIFBhc3MgXQorYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRl
bnRzLWVsZW1lbnQtcm9sZXMuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS92aWRlby1lbGVt
ZW50LXVybC1hdHRyaWJ1dGUuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS92aXNpYmxlLWNo
YXJhY3Rlci1yYW5nZS5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2FuY2VzdG9yLWNvbXB1
dGF0aW9uLmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9hcmlhLWhp
ZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIw
Y2E3Y2YzMWJhN2M5ODUyNWM5NGQ2MGU4NDk5MGM0MmQ1NGU4ZjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNw
bGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMg
dGVzdCBlbnN1cmVzIHRoYXQgYW4gYXJpYS1oaWRkZW4gZGlzcGxheTpjb250ZW50cyBlbGVtZW50
IGJlaGF2ZXMgYXMgZXhwZWN0ZWQuCisKK1Rlc3RpbmcgZWxlbWVudCAjbWFpbgorTGFuZG1hcmtN
YWluCisKK1Rlc3RpbmcgZWxlbWVudCAjbGlzdAorTGlzdAorCitUZXN0aW5nIGVsZW1lbnQgI3Bh
cmFncmFwaAorUGFyYWdyYXBoCisKK0hpZGluZyAjbWFpbiB3aXRoIGFyaWEtaGlkZGVuPSd0cnVl
Jy4KK1BBU1M6IEFsbCBlbGVtZW50cyBhcmUgbm93IGhpZGRlbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1y
b2xlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0
eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE4MGFlZmE4OWNkMzcwMjhmNTQ5ZDY1YWMxYzIxZWRiYzc1ZDVkMTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRl
bnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIwIEBACitUaGlzIHRl
c3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBj
b3JyZWN0IHJvbGUuCisKKzxhIGhyZWY9Imh0dHBzOi8vYXBwbGUuY29tIiBpZD0ibGluayIgY2xh
c3M9InRlc3RjYXNlIj48L2E+CisgICAgV2ViQ29yZUxpbmsKKworPGFydGljbGUgY2xhc3M9InRl
c3RjYXNlIiBpZD0iYXJ0aWNsZSI+PC9hcnRpY2xlPgorICAgIERvY3VtZW50QXJ0aWNsZQorCis8
YXNpZGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iYXNpZGUiPjwvYXNpZGU+CisgICAgTGFuZG1hcmtD
b21wbGVtZW50YXJ5CisKKzxibG9ja3F1b3RlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImJsb2NrcXVv
dGUiPjwvYmxvY2txdW90ZT4KKyAgICBCbG9ja3F1b3RlCisKKzxidXR0b24gY2xhc3M9InRlc3Rj
YXNlIiBpZD0iYnV0dG9uIj48L2J1dHRvbj4KKyAgICBCdXR0b24KKworPGNvZGUgY2xhc3M9InRl
c3RjYXNlIiBpZD0iY29kZSI+PC9jb2RlPgorICAgIFRleHRHcm91cAorCis8ZGVsIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9ImRlbCI+PC9kZWw+CisgICAgRGVsZXRpb24KKworPGRldGFpbHMgY2xhc3M9
InRlc3RjYXNlIiBpZD0iZGV0YWlscyI+PC9kZXRhaWxzPgorICAgIERldGFpbHMKKworPHN1bW1h
cnkgY2xhc3M9InRlc3RjYXNlIiBpZD0ic3VtbWFyeSI+PC9zdW1tYXJ5PgorICAgIFN1bW1hcnkK
KworPGRmbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZm4iPjwvZGZuPgorICAgIERlZmluaXRpb24K
KworPGRpdiBjbGFzcz0idGVzdGNhc2UiIGlkPSJkaXYiPjwvZGl2PgorICAgIERpdgorCis8ZGwg
Y2xhc3M9InRlc3RjYXNlIiBpZD0iZGwiPjwvZGw+CisgICAgRGVzY3JpcHRpb25MaXN0CisKKzxk
dCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkdCI+PC9kdD4KKyAgICBEZXNjcmlwdGlvbkxpc3RUZXJt
CisKKzxkZCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZCI+PC9kZD4KKyAgICBEZXNjcmlwdGlvbkxp
c3REZXRhaWwKKworPGxlZ2VuZCBjbGFzcz0idGVzdGNhc2UiIGlkPSJsZWdlbmQiPjwvbGVnZW5k
PgorICAgIExlZ2VuZAorCis8ZmlndXJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImZpZ3VyZSI+PC9m
aWd1cmU+CisgICAgRmlndXJlCisKKzxmb3JtIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImZvcm0iPjwv
Zm9ybT4KKyAgICBGb3JtCisKKzxoMiBjbGFzcz0idGVzdGNhc2UiIGlkPSJoMiI+PC9oMj4KKyAg
ICBIZWFkaW5nCisKKzxociBjbGFzcz0idGVzdGNhc2UiIGlkPSJociI+CisgICAgSG9yaXpvbnRh
bFJ1bGUKKworPGlucyBjbGFzcz0idGVzdGNhc2UiIGlkPSJpbnMiPjwvaW5zPgorICAgIEluc2Vy
dGlvbgorCis8bGFiZWwgY2xhc3M9InRlc3RjYXNlIiBpZD0ibGFiZWwiPjwvbGFiZWw+CisgICAg
TGFiZWwKKworPG1haW4gY2xhc3M9InRlc3RjYXNlIiBpZD0ibWFpbiI+PC9tYWluPgorICAgIExh
bmRtYXJrTWFpbgorCis8bWFyayBjbGFzcz0idGVzdGNhc2UiIGlkPSJtYXJrIj48L21hcms+Cisg
ICAgTWFyaworCis8bWVudSBjbGFzcz0idGVzdGNhc2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51
LXRvb2xiYXIiPjwvbWVudT4KKyAgICBUb29sYmFyCisKKzxuYXYgY2xhc3M9InRlc3RjYXNlIiBp
ZD0ibmF2Ij48L25hdj4KKyAgICBMYW5kbWFya05hdmlnYXRpb24KKworPG9sIGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9Im9sIj48L29sPgorICAgIExpc3QKKworPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
Im9sLWxpLWVsZW1lbnQiPjwvbGk+CisgICAgTGlzdEl0ZW0KKworPG91dHB1dCBjbGFzcz0idGVz
dGNhc2UiIGlkPSJvdXRwdXQiPjwvb3V0cHV0PgorICAgIEFwcGxpY2F0aW9uU3RhdHVzCisKKzxw
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InAiPjwvcD4KKyAgICBQYXJhZ3JhcGgKKworPHByZSBjbGFz
cz0idGVzdGNhc2UiIGlkPSJwcmUiPjwvcHJlPgorICAgIFRleHRHcm91cAorCis8c2VjdGlvbiBj
bGFzcz0idGVzdGNhc2UiIGlkPSJzZWN0aW9uLXdpdGgtbmFtZSIgYXJpYS1sYWJlbD0iU2VjdGlv
biBuYW1lIj48L3NlY3Rpb24+CisgICAgTGFuZG1hcmtSZWdpb24KKworPHNlY3Rpb24gY2xhc3M9
InRlc3RjYXNlIiBpZD0ic2VjdGlvbi13aXRob3V0LW5hbWUiPjwvc2VjdGlvbj4KKyAgICBUZXh0
R3JvdXAKKworPHN1YiBjbGFzcz0idGVzdGNhc2UiIGlkPSJzdWIiPjwvc3ViPgorICAgIFN1YnNj
cmlwdAorCis8c3VwIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InN1cCI+PC9zdXA+CisgICAgU3VwZXJz
Y3JpcHQKKworPHRpbWUgY2xhc3M9InRlc3RjYXNlIiBpZD0idGltZSI+PC90aW1lPgorICAgIFRp
bWUKKworPHVsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsIj48L3VsPgorICAgIExpc3QKKworPGxp
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVsZW1lbnQiPjwvbGk+CisgICAgTGlzdEl0ZW0K
KworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwor
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjQ4Mzdh
M2Y0ZjA0NzQ3YjU3OWIwYzU3ZGMzYmQyNzdmYmExYzk0Ni4uYzViYTI1Y2UxNTBjZjA0ODgyNWM5
NGRmZThiMzM3NTM3Y2NlOGRkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTE1NDAsNiArMTU0MCw4IEBAIHdlYmtpdC5vcmcvYi8xNDA1MjggZmFzdC9l
bmNvZGluZy9pZG4tc2VjdXJpdHkuaHRtbCBbIFNraXAgXQogIyMjIyMjIyMjIyMjIyMjIyMjICAg
ICAgICBBY2Nlc3NpYmlsaXR5IElzc3VlcyAgICAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMj
IyMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKK2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250
ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwgWyBTa2lwIF0KKwogIyBNaXNzaW5nICdwcmVzcycgc3Vw
cG9ydAogYWNjZXNzaWJpbGl0eS9heHByZXNzLW9uLWFyaWEtYnV0dG9uLmh0bWwgWyBTa2lwIF0K
IGFjY2Vzc2liaWxpdHkvc3ZnLWVsZW1lbnQtcHJlc3MuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455152</attachid>
            <date>2022-03-18 17:04:24 -0700</date>
            <delta_ts>2022-03-18 23:00:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237834-20220318190423.patch</filename>
            <type>text/plain</type>
            <size>39038</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJhOTgyNWRiNjgyZjJi
ZmZhZTNiNmNlZDFkNDk5ZTVjYTE2YzY4ZC4uMDI1ZTI1NmFmZWI0NjcxOTIzYTAyNDBlZDQxM2Nh
NzgxMDQ0MmZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAzLTE4ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY2x1ZGUgZGlz
cGxheTogY29udGVudHMgZWxlbWVudHMgaW4gdGhlIEFYIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzgzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgIEJlY2F1c2UgZGlzcGxheTogY29udGVudHMg
aW50ZW50aW9uYWxseSBwcmV2ZW50cyBhIHJlbmRlciBvYmplY3QgZnJvbSBiZWluZworICAgICAg
ICBnZW5lcmF0ZWQgZm9yIHRoZSBlbGVtZW50IGl0J3MgYXBwbGllZCB0bywgd2UgZG9uJ3QgYWRk
IGl0IHRvIHRoZSBBWCB0cmVlIGFzCisgICAgICAgIHBhcnQgb2Ygb3VyIG5vcm1hbCByZW5kZXIg
dHJlZSB3YWxrLCBtYWtpbmcgdGhlc2UgZWxlbWVudHMgaW5hY2Nlc3NpYmxlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW5jbHVkZXMgdGhlc2UgZWxlbWVudHMgYXMgcGFydCBvZiB0aGUgRE9NIHdh
bGsgdGhhdAorICAgICAgICBhZGRIaWRkZW5DaGlsZHJlbiAobm93IHJlbmFtZWQgdG8gYWRkTm9k
ZU9ubHlDaGlsZHJlbikgYWxyZWFkeSBkb2VzLgorCisgICAgICAgIEFsc28sIGJlY2F1c2UgZGlz
cGxheTogY29udGVudHMgbW92ZXMgdGhlIGFmZmVjdGVkIGVsZW1lbnQncyBjaGlsZHJlbiB1cCBh
CisgICAgICAgIGxldmVsIGluIHRoZSByZW5kZXIgdHJlZSwgdGhpcyBwYXRjaCBhbHNvIHNwZWNp
YWwgY2FzZXM6CisKKyAgICAgICAgICAxLiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJl
bnRPYmplY3QgYW5kIHNpbWlsYXIgbWV0aG9kcyB0bworICAgICAgICAgIHJldHVybiB0aGVpciBk
aXNwbGF5OiBjb250ZW50cyBwYXJlbnQgaW5zdGVhZCBvZiB0aGVpciByZW5kZXIgdHJlZQorICAg
ICAgICAgIHBhcmVudAorICAgICAgICAgIDIuIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENo
aWxkIHRvIG9ubHkgaW5zZXJ0IGRpc3BsYXk6IGNvbnRlbnRzCisgICAgICAgICAgY2hpbGRyZW4g
dG8gdGhlaXIgZGlzcGxheTogY29udGVudHMgcGFyZW50LCByYXRoZXIgdGhhbiB0aGVpciByZW5k
ZXIKKyAgICAgICAgICB0cmVlIHBhcmVudAorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwsIGFjY2Vzc2liaWxpdHkvYXJpYS1o
aWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpnZXRPckNyZWF0ZSk6CisgICAgICAgIEFsbG93IGNyZWF0aW9uIG9mIEFYIG9iamVjdHMgZnJv
bSBkaXNwbGF5OiBjb250ZW50cyBgTm9kZWBzLgorICAgICAgICBBbHNvLCBkb24ndCBjcmVhdGUg
YW4gb2JqZWN0IGZvciBhIHJlbmRlcmVyIHRoYXQgaXMgaW4gdGhlIHByb2Nlc3Mgb2YKKyAgICAg
ICAgYmVpbmcgZGVzdHJveWVkIChwcmV2ZW50cyBkaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9s
ZXMuaHRtbCBmcm9tIGNyYXNoaW5nIGluIElUTSkKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6ZGlzcGxheUNvbnRlbnRzUGFyZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENoaWxkKToKKyAgICAgICAgSWYgYW4gb2JqZWN0IGhh
cyBhIGRpc3BsYXk6IGNvbnRlbnRzIHBhcmVudCwgYW5kIHRoYXQgcGFyZW50IGlzbid0CisgICAg
ICAgIGB0aGlzYCwgcmV0dXJuIGVhcmx5LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpwYXJlbnRPYmplY3RJZkV4aXN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0VW5pZ25vcmVkIGNv
bnN0KToKKyAgICAgICAgSWYgYW4gb2JqZWN0IGhhcyBhIGRpc3BsYXk6IGNvbnRlbnRzIHBhcmVu
dCwgcmV0dXJuIHRoYXQgaW5zdGVhZCBvZgorICAgICAgICBpdHMgcmVuZGVyIHRyZWUgcGFyZW50
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkTm9kZU9u
bHlDaGlsZHJlbik6CisgICAgICAgIFJlbmFtZWQgZnJvbSBhZGRIaWRkZW5DaGlsZHJlbi4KKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKToK
KyAgICAgICAgRG9uJ3QgY2xlYXIgbV9zdWJ0cmVlRGlydHkgdW50aWwgYWZ0ZXIgYWxsIGNoaWxk
cmVuIGhhdmUgYmVlbiBhZGRlZC4KKyAgICAgICAgTmVjZXNzYXJ5IHRvIG1ha2UgYXJpYS1oaWRk
ZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwgcGFzcywgYXMKKyAgICAgICAgd2Ugd2Vy
ZSBjbGVhcmluZyB0aGlzIHRvbyBlYXJseSwgY2F1c2luZyBkaXNwbGF5OiBjb250ZW50cyBzdWJ0
cmVlcyB0bworICAgICAgICBub3QgYmUgdXBkYXRlZCBhZnRlciBhcmlhLWhpZGRlbiBjaGFuZ2Vz
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkSGlkZGVu
Q2hpbGRyZW4pOgorICAgICAgICBSZW5hbWVkIHRvIGFkZE5vZGVPbmx5Q2hpbGRyZW4uCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisKIDIwMjIt
MDMtMTcgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtJRkNdW0lu
dGVncmF0aW9uXSBSZXBsYWNlIGVuY2xvc2luZ1RvcC9Cb3R0b20vaGVpZ2h0IGNhbGxzIHdpdGgg
TGluZTo6ZW5jbG9zaW5nTG9naWNhbFJlY3Qgd2hlbiBhcHBsaWNhYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAyZDIyMDQ0MjUyNTQ3
YjJjYTM0ZDllYzE5MjZlYTI3NzJiZTBkMzUxLi5hODQwNTY5NDg2ZmY5MWNhNTY2ZDg2ZWEzNmMz
ZTk2NWYwMDU1ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTcyMCwxNCArNzIwLDEwIEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVybiBvYmpl
Y3QuZ2V0KCk7CiAgICAgfQogCi0gICAgLy8gSXQncyBvbmx5IGFsbG93ZWQgdG8gY3JlYXRlIGFu
IEFjY2Vzc2liaWxpdHlPYmplY3QgZnJvbSBhIE5vZGUgaWYgaXQncyBpbiBhIGNhbnZhcyBzdWJ0
cmVlLgotICAgIC8vIE9yIGlmIGl0J3MgYSBoaWRkZW4gZWxlbWVudCwgYnV0IHdlIHN0aWxsIHdh
bnQgdG8gZXhwb3NlIGl0IGJlY2F1c2Ugb2Ygb3RoZXIgQVJJQSBhdHRyaWJ1dGVzLgogICAgIGJv
b2wgaW5DYW52YXNTdWJ0cmVlID0gbGluZWFnZU9mVHlwZTxIVE1MQ2FudmFzRWxlbWVudD4oKm5v
ZGUtPnBhcmVudEVsZW1lbnQoKSkuZmlyc3QoKTsKLSAgICBib29sIGlzSGlkZGVuID0gaXNOb2Rl
QXJpYVZpc2libGUobm9kZSk7Ci0KICAgICBib29sIGluc2lkZU1ldGVyRWxlbWVudCA9IGlzPEhU
TUxNZXRlckVsZW1lbnQ+KCpub2RlLT5wYXJlbnRFbGVtZW50KCkpOwotICAgIAotICAgIGlmICgh
aW5DYW52YXNTdWJ0cmVlICYmICFpc0hpZGRlbiAmJiAhaW5zaWRlTWV0ZXJFbGVtZW50KQorICAg
IGJvb2wgaGFzRGlzcGxheUNvbnRlbnRzID0gaXM8RWxlbWVudD4oKm5vZGUpICYmIGRvd25jYXN0
PEVsZW1lbnQ+KCpub2RlKS5oYXNEaXNwbGF5Q29udGVudHMoKTsKKyAgICBpZiAoIWluQ2FudmFz
U3VidHJlZSAmJiAhaW5zaWRlTWV0ZXJFbGVtZW50ICYmICFoYXNEaXNwbGF5Q29udGVudHMgJiYg
IWlzTm9kZUFyaWFWaXNpYmxlKG5vZGUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IFJlZiBwcm90ZWN0ZWROb2RlIHsgKm5vZGUgfTsKQEAgLTc2MCw2ICs3NTYsOSBAQCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXQocmVuZGVyZXIp
KQogICAgICAgICByZXR1cm4gb2JqOwogCisgICAgLy8gRG9uJ3QgY3JlYXRlIGFuIG9iamVjdCBm
b3IgdGhpcyByZW5kZXJlciBpZiBpdCdzIGJlaW5nIGRlc3Ryb3llZC4KKyAgICBpZiAocmVuZGVy
ZXItPmJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBuZXdPYmogPSBjcmVhdGVGcm9tUmVuZGVyZXIocmVuZGVy
ZXIpOwogCiAgICAgLy8gV2lsbCBjcmFzaCBsYXRlciBpZiB3ZSBoYXZlIHR3byBvYmplY3RzIGZv
ciB0aGUgc2FtZSByZW5kZXJlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDUwNTA5ZDYwMjZkZmFjZGUzODIyYTJk
YzZmNzY1MjhhMWRjZjAyZWMuLmRlNzNhMDZiZmIzYTdlMjRkNmI2OThlYzUwOTU1ZmU1ODFmNjlm
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcApAQCAtNDQ4LDYgKzQ0OCwxNiBAQCBBWENvcmVPYmplY3QqIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0CiAgICAgfSk7CiB9CiAK
K0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BsYXlDb250ZW50
c1BhcmVudCgpIGNvbnN0Cit7CisgICAgYXV0byogcGFyZW50Tm9kZSA9IG5vZGUoKSA/IG5vZGUo
KS0+cGFyZW50Tm9kZSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIWlzPEVsZW1lbnQ+KHBhcmVudE5v
ZGUpIHx8ICFkb3duY2FzdDxFbGVtZW50PihwYXJlbnROb2RlKS0+aGFzRGlzcGxheUNvbnRlbnRz
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byogY2FjaGUgPSBheE9iamVj
dENhY2hlKCk7CisgICAgcmV0dXJuIGNhY2hlID8gY2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE5v
ZGUpIDogbnVsbHB0cjsKK30KKwogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU9i
amVjdDo6cHJldmlvdXNTaWJsaW5nVW5pZ25vcmVkKGludCBsaW1pdCkgY29uc3QKIHsKICAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBwcmV2aW91czsKQEAgLTU3NSw3ICs1ODUsNyBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENoaWxkKEFYQ29yZU9iamVjdCogbmV3Q2hpbGQsIHVu
c2lnbmVkIGluZGV4LCBEZQogewogICAgIGlmICghbmV3Q2hpbGQpCiAgICAgICAgIHJldHVybjsK
LSAgICAKKwogICAgIEFTU0VSVChpczxBY2Nlc3NpYmlsaXR5T2JqZWN0PihuZXdDaGlsZCkpOwog
ICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eU9iamVjdD4obmV3Q2hpbGQpKQogICAgICAgICByZXR1
cm47CkBAIC02MDAsNyArNjEwLDEyIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6aW5zZXJ0
Q2hpbGQoQVhDb3JlT2JqZWN0KiBuZXdDaGlsZCwgdW5zaWduZWQgaW5kZXgsIERlCiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKKyAgICBhdXRvKiBkaXNwbGF5Q29udGVu
dHNQYXJlbnQgPSBjaGlsZC0+ZGlzcGxheUNvbnRlbnRzUGFyZW50KCk7CisgICAgLy8gVG8gYXZv
aWQgZG91YmxlLWluc2VydGluZyBhIGNoaWxkIG9mIGEgYGRpc3BsYXk6IGNvbnRlbnRzYCBlbGVt
ZW50LCBvbmx5IGluc2VydCBpZiBgdGhpc2AgaXMgdGhlIHJpZ2h0ZnVsIHBhcmVudC4KKyAgICBp
ZiAoZGlzcGxheUNvbnRlbnRzUGFyZW50ICYmIGRpc3BsYXlDb250ZW50c1BhcmVudCAhPSB0aGlz
KQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvIHRoaXNBbmNlc3RvckZsYWdzID0gY29tcHV0
ZUFuY2VzdG9yRmxhZ3MoKTsKICAgICBjaGlsZC0+aW5pdGlhbGl6ZUFuY2VzdG9yRmxhZ3ModGhp
c0FuY2VzdG9yRmxhZ3MpOwogICAgIHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhRm9yQ2hpbGQo
Y2hpbGQpOwpAQCAtNjI1LDcgKzY0MCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6aW5z
ZXJ0Q2hpbGQoQVhDb3JlT2JqZWN0KiBuZXdDaGlsZCwgdW5zaWduZWQgaW5kZXgsIERlCiAgICAg
fSBlbHNlIHsKICAgICAgICAgLy8gVGFibGUgY29tcG9uZW50IGNoaWxkLXBhcmVudCByZWxhdGlv
bnNoaXBzIG9mdGVuIGRvbid0IGxpbmUgdXAgcHJvcGVybHksIGhlbmNlIHRoZSBuZWVkIGZvciBt
ZXRob2RzCiAgICAgICAgIC8vIGxpa2UgcGFyZW50VGFibGUoKSBhbmQgcGFyZW50Um93KCkuIEV4
Y2x1ZGUgdGhlbSBmcm9tIHRoaXMgQVNTRVJULgotICAgICAgICBBU1NFUlQoKCFpc1RhYmxlQ29t
cG9uZW50KCpjaGlsZCkgJiYgIWlzVGFibGVDb21wb25lbnQoKnRoaXMpKSA/IGNoaWxkLT5wYXJl
bnRPYmplY3QoKSA9PSB0aGlzIDogdHJ1ZSk7CisgICAgICAgIEFTU0VSVChpc1RhYmxlQ29tcG9u
ZW50KCpjaGlsZCkgfHwgaXNUYWJsZUNvbXBvbmVudCgqdGhpcykgfHwgY2hpbGQtPnBhcmVudE9i
amVjdCgpID09IHRoaXMpOwogICAgICAgICBtX2NoaWxkcmVuLmluc2VydChpbmRleCwgY2hpbGQp
OwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMmI0ZGYzMzNlZjhlNWU1NTM4NTFlNWI5NDk1ZGNiM2Iw
ZDMzMjYyNS4uOTg0YjBiY2FhOWNkZjE0NzE0YzBjNTlmYjg4YjgxZDk5OGY1MDViNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
QEAgLTM3Myw2ICszNzMsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbmV4
dFNpYmxpbmdVbmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxpbmdVbmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdCBv
dmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogZGlz
cGxheUNvbnRlbnRzUGFyZW50KCkgY29uc3Q7CiAgICAgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmpl
Y3RVbmlnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBw
YXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0K
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RBY2Nlc3NpYmxlT2JqZWN0RnJv
bU5vZGUoY29uc3QgTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMDEwMWZiNTMwNzlm
YjIxOTMzNzliYzZkMzc1ODhhNGY3NTViNGE0NS4uOTMxOWI5ZjRlZTAxMGUxNjg3OTg3NTNmNmI1
OTA4ODEzYjNiMjQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC00OTEsMTEgKzQ5MSwxNyBA
QCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRP
YmplY3RJZkV4aXN0cygpIGNvbnN0CiAgICAgaWYgKG1fcmVuZGVyZXIgJiYgaXNXZWJBcmVhKCkp
CiAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0KCZtX3JlbmRlcmVyLT52aWV3KCkuZnJhbWVWaWV3
KCkpOwogCisgICAgaWYgKGF1dG8qIGRpc3BsYXlDb250ZW50c1BhcmVudCA9IHRoaXMtPmRpc3Bs
YXlDb250ZW50c1BhcmVudCgpKQorICAgICAgICByZXR1cm4gZGlzcGxheUNvbnRlbnRzUGFyZW50
OworCiAgICAgcmV0dXJuIGNhY2hlLT5nZXQocmVuZGVyUGFyZW50T2JqZWN0KCkpOwogfQogICAg
IAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50
T2JqZWN0KCkgY29uc3QKIHsKKyAgICBpZiAoYXV0byogZGlzcGxheUNvbnRlbnRzUGFyZW50ID0g
dGhpcy0+ZGlzcGxheUNvbnRlbnRzUGFyZW50KCkpCisgICAgICAgIHJldHVybiBkaXNwbGF5Q29u
dGVudHNQYXJlbnQ7CisKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIApAQCAtNTA4LDE0ICs1MTQsMTMgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKICAgICAgICAgaWYg
KHBhcmVudCkKICAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7CiAgICAgfQotICAgIAorCiAgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCk7CiAgICAgaWYgKCFjYWNoZSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCi0gICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRP
YmogPSByZW5kZXJQYXJlbnRPYmplY3QoKTsKLSAgICBpZiAocGFyZW50T2JqKQotICAgICAgICBy
ZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE9iaik7CisKKyAgICBpZiAoYXV0byogcGFy
ZW50T2JqZWN0ID0gcmVuZGVyUGFyZW50T2JqZWN0KCkpCisgICAgICAgIHJldHVybiBjYWNoZS0+
Z2V0T3JDcmVhdGUocGFyZW50T2JqZWN0KTsKICAgICAKICAgICAvLyBXZWJBcmVhJ3MgcGFyZW50
IHNob3VsZCBiZSB0aGUgc2Nyb2xsIHZpZXcgY29udGFpbmluZyBpdC4KICAgICBpZiAoaXNXZWJB
cmVhKCkpCkBAIC01MzcsNyArNTQyLDcgQEAgQVhDb3JlT2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9yZWQoKSBjb25zdAogICAgIH0KICNlbmRpZgog
Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9y
ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6cGFyZW50T2JqZWN0VW5pZ25v
cmVkKCk7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNBdHRhY2htZW50
KCkgY29uc3QKQEAgLTMxOTgsMjkgKzMyMDMsMzYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojp1cGRhdGVBdHRhY2htZW50Vmlld1BhcmVudHMoKQogfQogI2VuZGlmCiAKLS8vIEhp
ZGRlbiBjaGlsZHJlbiBhcmUgdGhvc2UgdGhhdCBhcmUgbm90IHJlbmRlcmVkIG9yIHZpc2libGUs
IGJ1dCBhcmUgc3BlY2lmaWNhbGx5IG1hcmtlZCBhcyBhcmlhLWhpZGRlbj1mYWxzZSwKLS8vIG1l
YW5pbmcgdGhhdCB0aGV5IHNob3VsZCBiZSBleHBvc2VkIHRvIHRoZSBBWCBoaWVyYXJjaHkuCi12
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZEhpZGRlbkNoaWxkcmVuKCkKKy8vIFNv
bWUgZWxlbWVudHMgZG9uJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIHJlbmRlciBvYmplY3QsIG1lYW5p
bmcgdGhleSB3b24ndCBiZSBwaWNrZWQgdXAgYnkgYSB3YWxrIG9mIHRoZSByZW5kZXIgdHJlZS4K
Ky8vIEZvciBleGFtcGxlLCBub2RlcyB0aGF0IGFyZSBgYXJpYS1oaWRkZW49ImZhbHNlImAgYW5k
IGBoaWRkZW5gLCBvciBlbGVtZW50cyB3aXRoIGBkaXNwbGF5OiBjb250ZW50c2AuCisvLyBUaGlz
IGZ1bmN0aW9uIHdpbGwgZmluZCBhbmQgYWRkIHRoZXNlIGVsZW1lbnRzIHRvIHRoZSBBWCB0cmVl
Lgordm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGROb2RlT25seUNoaWxkcmVuKCkK
IHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIC8vIEZpcnN0IGRvIGEgcXVpY2sgcnVuIHRocm91Z2ggdG8g
ZGV0ZXJtaW5lIGlmIHdlIGhhdmUgYW55IGhpZGRlbiBub2RlcyAobW9zdCBvZnRlbiB3ZSB3aWxs
IG5vdCkuCi0gICAgLy8gSWYgd2UgZG8gaGF2ZSBoaWRkZW4gbm9kZXMsIHdlIG5lZWQgdG8gZGV0
ZXJtaW5lIHdoZXJlIHRvIGluc2VydCB0aGVtIHNvIHRoZXkgbWF0Y2ggRE9NIG9yZGVyIGFzIGNs
b3NlIGFzIHBvc3NpYmxlLgotICAgIGJvb2wgc2hvdWxkSW5zZXJ0SGlkZGVuTm9kZXMgPSBmYWxz
ZTsKKworICAgIGF1dG8gbm9kZUhhc0Rpc3BsYXlDb250ZW50cyA9IFtdIChOb2RlJiBub2RlKSB7
CisgICAgICAgIHJldHVybiBpczxFbGVtZW50Pihub2RlKSAmJiBkb3duY2FzdDxFbGVtZW50Pihu
b2RlKS5oYXNEaXNwbGF5Q29udGVudHMoKTsKKyAgICB9OworICAgIC8vIEZpcnN0IGRvIGEgcXVp
Y2sgcnVuIHRocm91Z2ggdG8gZGV0ZXJtaW5lIGlmIHdlIGhhdmUgYW55IGludGVyZXN0aW5nIG5v
ZGVzIChtb3N0IG9mdGVuIHdlIHdpbGwgbm90KS4KKyAgICAvLyBJZiB3ZSBkbyBoYXZlIGFueSBp
bnRlcmVzdGluZyBub2Rlcywgd2UgbmVlZCB0byBkZXRlcm1pbmUgd2hlcmUgdG8gaW5zZXJ0IHRo
ZW0gc28gdGhleSBtYXRjaCBET00gb3JkZXIgYXMgY2xvc2UgYXMgcG9zc2libGUuCisgICAgYm9v
bCBoYXNOb2RlT25seUNoaWxkcmVuID0gZmFsc2U7CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG5v
ZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
LSAgICAgICAgaWYgKCFjaGlsZC0+cmVuZGVyZXIoKSAmJiBpc05vZGVBcmlhVmlzaWJsZShjaGls
ZCkpIHsKLSAgICAgICAgICAgIHNob3VsZEluc2VydEhpZGRlbk5vZGVzID0gdHJ1ZTsKKyAgICAg
ICAgaWYgKGNoaWxkLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgaWYgKG5vZGVIYXNEaXNwbGF5Q29udGVudHMoKmNoaWxkKSB8fCBpc05vZGVBcmlhVmlzaWJs
ZShjaGlsZCkpIHsKKyAgICAgICAgICAgIGhhc05vZGVPbmx5Q2hpbGRyZW4gPSB0cnVlOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgaWYgKCFzaG91bGRJ
bnNlcnRIaWRkZW5Ob2RlcykKKyAgICBpZiAoIWhhc05vZGVPbmx5Q2hpbGRyZW4pCiAgICAgICAg
IHJldHVybjsKICAgICAKICAgICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIG9mIHRoZSBjaGlsZHJl
biwgaW5jbHVkaW5nIHRob3NlIHRoYXQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGFkZGVkLCBhbmQK
LSAgICAvLyB0cnkgdG8gaW5zZXJ0IGhpZGRlbiBub2RlcyBpbiB0aGUgY29ycmVjdCBwbGFjZSBp
biB0aGUgRE9NIG9yZGVyLgorICAgIC8vIHRyeSB0byBpbnNlcnQgdGhlIG5vZGVzIGluIHRoZSBj
b3JyZWN0IHBsYWNlIGluIHRoZSBET00gb3JkZXIuCiAgICAgdW5zaWduZWQgaW5zZXJ0aW9uSW5k
ZXggPSAwOwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+cmVu
ZGVyZXIoKSkgewpAQCAtMzIzOSw3ICszMjUxLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjphZGRIaWRkZW5DaGlsZHJlbigpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIGlmICghaXNOb2RlQXJpYVZpc2libGUoY2hpbGQpKQorICAgICAgICBp
ZiAoIW5vZGVIYXNEaXNwbGF5Q29udGVudHMoKmNoaWxkKSAmJiAhaXNOb2RlQXJpYVZpc2libGUo
Y2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICB1bnNpZ25l
ZCBwcmV2aW91c1NpemUgPSBtX2NoaWxkcmVuLnNpemUoKTsKQEAgLTMzMTEsOSArMzMyMyw3IEBA
IHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4oKQogICAgIGZvciAo
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9iamVjdCA9IGZpcnN0Q2hpbGQoKTsgb2JqZWN0
OyBvYmplY3QgPSBvYmplY3QtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGFkZENoaWxkSWZOZWVk
ZWQoKm9iamVjdCk7CiAKLSAgICBtX3N1YnRyZWVEaXJ0eSA9IGZhbHNlOwotICAgIAotICAgIGFk
ZEhpZGRlbkNoaWxkcmVuKCk7CisgICAgYWRkTm9kZU9ubHlDaGlsZHJlbigpOwogICAgIGFkZEF0
dGFjaG1lbnRDaGlsZHJlbigpOwogICAgIGFkZEltYWdlTWFwQ2hpbGRyZW4oKTsKICAgICBhZGRU
ZXh0RmllbGRDaGlsZHJlbigpOwpAQCAtMzMyMiwxMSArMzMzMiwxMSBAQCB2b2lkIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKCkKICNpZiBVU0UoQVRTUEkpCiAgICAgYWRk
TGlzdEl0ZW1NYXJrZXIoKTsKICNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdXBk
YXRlQXR0YWNobWVudFZpZXdQYXJlbnRzKCk7CiAjZW5kaWYKLSAgICAKKworICAgIG1fc3VidHJl
ZURpcnR5ID0gZmFsc2U7CiAgICAgdXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbigpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDI3NWJhY2Y3OTFhNWM4NWQzNzYzZTA2OTZjMGY3NDQ2
OTk0ZDhkMjIuLjJiMDQ1ZGEzMmM0Zjk3NzFkMDQyNDAzNDBmZWM5MmRhM2Q0MDE4MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oCkBAIC0yNDgsNyArMjQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG9mZnNl
dEJvdW5kaW5nQm94Rm9yUmVtb3RlU1ZHRWxlbWVudChMYXlvdXRSZWN0JikgY29uc3Q7CiAgICAg
Ym9vbCBzdXBwb3J0c1BhdGgoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkSGlkZGVu
Q2hpbGRyZW4oKTsKKyAgICB2b2lkIGFkZE5vZGVPbmx5Q2hpbGRyZW4oKTsKICAgICB2b2lkIGFk
ZFRleHRGaWVsZENoaWxkcmVuKCk7CiAgICAgdm9pZCBhZGRJbWFnZU1hcENoaWxkcmVuKCk7CiAg
ICAgdm9pZCBhZGRDYW52YXNDaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhiYmNjNmRkMTgyN2ZmOGMxNDdi
Y2RmODBiZGMxMzhlNThhZjdhNTYuLjMxMjMzM2U2N2E2YWQzNzU5ZGJkM2FlYTE3NTRkMGU5Zjhm
OWE3YzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMi0wMy0xOCAgVHlsZXIgV2lsY29jayAg
PHR5bGVyX3dAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBJbmNsdWRlIGRpc3BsYXk6IGNvbnRl
bnRzIGVsZW1lbnRzIGluIHRoZSBBWCB0cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4MzQKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBG
bGVpemFjaC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1j
b250ZW50cy1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVu
dHMtZWxlbWVudC1yb2xlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL2Fj
Y2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3Bs
YXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOiBFbmFibGUgbmV3IHRlc3RzLgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVu
dHMtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9h
Y2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIGRp
c3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sLgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC1hY3R1
YWwudHh0OiBBZGRlZC4KKwogMjAyMi0wMy0xNyAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18y
MkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGZvciBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFiLXh4
eC5odG1sIHRlc3RzIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxh
eS1jb250ZW50cy1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWQwYTBmYTg2NjY2
YWM2YzNkZGIzN2ZjYjkxZjQzODIwNDUyYmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgYW4gYXJp
YS1oaWRkZW4gZGlzcGxheTpjb250ZW50cyBlbGVtZW50IGJlaGF2ZXMgYXMgZXhwZWN0ZWQuCisK
K1Rlc3RpbmcgZWxlbWVudCAjbWFpbgorQVhSb2xlOiBBWEdyb3VwCitjb21wdXRlZFJvbGVTdHJp
bmc6IG1haW4KK0FYU3Vicm9sZTogQVhMYW5kbWFya01haW4KKworVGVzdGluZyBlbGVtZW50ICNs
aXN0CitBWFJvbGU6IEFYTGlzdAorY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CitBWFN1YnJvbGU6
IEFYQ29udGVudExpc3QKKworVGVzdGluZyBlbGVtZW50ICNwYXJhZ3JhcGgKK0FYUm9sZTogQVhH
cm91cAorY29tcHV0ZWRSb2xlU3RyaW5nOiBwYXJhZ3JhcGgKKworSGlkaW5nICNtYWluIHdpdGgg
YXJpYS1oaWRkZW49J3RydWUnLgorUEFTUzogQWxsIGVsZW1lbnRzIGFyZSBub3cgaGlkZGVuLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNv
bnRlbnRzLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRk
ZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVhNWU3MDZiZmJh
ZmFmZmFiYWZmMzI5MzE0YmJhMmU0YWMxZmFiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0
bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxp
dHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPG1h
aW4gaWQ9Im1haW4iIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50cyI+CisgICAgPG9sIGlkPSJsaXN0
Ij4KKyAgICAgICAgPGxpPkxpc3QgaXRlbSBvbmU8L2xpPgorICAgICAgICA8bGk+TGlzdCBpdGVt
IHR3bzwvbGk+CisgICAgPC9vbD4KKyAgICA8cCBpZD0icGFyYWdyYXBoIj5Db250ZW50IGluc2lk
ZSBtYWluID4gcCB0YWcuPHA+Cis8L21haW4+CisKKzxzY3JpcHQ+CisgICAgdmFyIHRlc3RPdXRw
dXQgPSAiVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBhbiBhcmlhLWhpZGRlbiBkaXNwbGF5OmNvbnRl
bnRzIGVsZW1lbnQgYmVoYXZlcyBhcyBleHBlY3RlZC4iOworCisgICAgZnVuY3Rpb24gZGVidWdF
bGVtZW50KGlkKSB7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuXG5UZXN0aW5nIGVsZW1lbnQg
IyR7aWR9XG5gOworICAgICAgICBjb25zdCBheEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoaWQpOworICAgICAgICBpZiAoIWF4RWxlbWVudCkg
eworICAgICAgICAgICAgZGVidWcoYFxuRkFJTDogQ291bGRuJ3QgZ2V0IEFYIGVsZW1lbnQgZm9y
ICMke2lkfS5gKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRl
c3RPdXRwdXQgKz0gYXhFbGVtZW50LnJvbGU7CisgICAgICAgIGNvbnN0IGNvbXB1dGVkUm9sZVN0
cmluZyA9IGF4RWxlbWVudC5jb21wdXRlZFJvbGVTdHJpbmc7CisgICAgICAgIGlmIChjb21wdXRl
ZFJvbGVTdHJpbmcpCisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGBcbmNvbXB1dGVkUm9sZVN0
cmluZzogJHtjb21wdXRlZFJvbGVTdHJpbmd9YDsKKworICAgICAgICBsZXQgc3Vicm9sZSA9IGF4
RWxlbWVudC5zdWJyb2xlOworICAgICAgICBpZiAoc3Vicm9sZS5yZXBsYWNlKCJBWFN1YnJvbGU6
ICIsICIiKSkKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuJHtzdWJyb2xlfWA7CisgICAg
fQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgZGVidWdFbGVtZW50KCJtYWlu
Iik7CisgICAgICAgIGRlYnVnRWxlbWVudCgibGlzdCIpOworICAgICAgICBkZWJ1Z0VsZW1lbnQo
InBhcmFncmFwaCIpOworCisgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuXG5IaWRpbmcgI21haW4g
d2l0aCBhcmlhLWhpZGRlbj0ndHJ1ZScuIjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm1haW4iKS5hcmlhSGlkZGVuID0gInRydWUiOworICAgICAgICBzZXRUaW1lb3V0KGFzeW5j
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAg
ICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIG1haW4gdG8gYmUgaGlkZGVuLgorICAgICAgICAgICAg
ICAgIHJldHVybiAhYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJtYWluIik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImxpc3QiKTsKKyAgICAg
ICAgICAgIGNvbnN0IHBhcmFncmFwaCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgicGFyYWdyYXBoIik7CisgICAgICAgICAgICBpZiAoIWxpc3QgJiYgIXBh
cmFncmFwaCkKKyAgICAgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcblBBU1M6IEFsbCBlbGVt
ZW50cyBhcmUgbm93IGhpZGRlbi4iOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgaWYgKGxpc3QpCisgICAgICAgICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuRkFJTDog
PG9sPiB3YXMgbm90IGhpZGRlbiBieSBhcmlhLWhpZGRlbi4iOworICAgICAgICAgICAgICAgIGlm
IChwYXJhZ3JhcGgpCisgICAgICAgICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuRkFJTDog
PHA+IHdhcyBub3QgaGlkZGVuIGJ5IGFyaWEtaGlkZGVuLiI7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIikuc3R5bGUudmlzaWJpbGl0
eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwgMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlz
cGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMTczYTZkMGIxYjNhOTcwNGU1MDIwYzgxZDI3MDQ0Yjc4ZjZhODk0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRz
LWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTY2IEBACitUaGlzIHRlc3Qg
ZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZlIHRoZSBjb3Jy
ZWN0IHJvbGUuCisKKzxhIGhyZWY9Imh0dHBzOi8vYXBwbGUuY29tIiBpZD0ibGluayIgY2xhc3M9
InRlc3RjYXNlIj48L2E+CisgICAgQVhSb2xlOiBBWExpbmsKKyAgICBjb21wdXRlZFJvbGVTdHJp
bmc6IGxpbmsKKworPGFydGljbGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iYXJ0aWNsZSI+PC9hcnRp
Y2xlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogYXJ0aWNs
ZQorICAgIEFYU3Vicm9sZTogQVhEb2N1bWVudEFydGljbGUKKworPGFzaWRlIGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9ImFzaWRlIj48L2FzaWRlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1
dGVkUm9sZVN0cmluZzogY29tcGxlbWVudGFyeQorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya0Nv
bXBsZW1lbnRhcnkKKworPGJsb2NrcXVvdGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iYmxvY2txdW90
ZSI+PC9ibG9ja3F1b3RlPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0
cmluZzogYmxvY2txdW90ZQorCis8YnV0dG9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImJ1dHRvbiI+
PC9idXR0b24+CisgICAgQVhSb2xlOiBBWEJ1dHRvbgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzog
YnV0dG9uCisKKzxjb2RlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImNvZGUiPjwvY29kZT4KKyAgICBB
WFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYQ29kZVN0eWxlR3JvdXAKKworPGRlbCBj
bGFzcz0idGVzdGNhc2UiIGlkPSJkZWwiPjwvZGVsPgorICAgIEFYUm9sZTogQVhHcm91cAorICAg
IGNvbXB1dGVkUm9sZVN0cmluZzogZGVsZXRpb24KKyAgICBBWFN1YnJvbGU6IEFYRGVsZXRlU3R5
bGVHcm91cAorCis8ZGV0YWlscyBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZXRhaWxzIj48L2RldGFp
bHM+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWERldGFpbHMKKworPHN1
bW1hcnkgY2xhc3M9InRlc3RjYXNlIiBpZD0ic3VtbWFyeSI+PC9zdW1tYXJ5PgorICAgIEFYUm9s
ZTogQVhCdXR0b24KKyAgICBBWFN1YnJvbGU6IEFYU3VtbWFyeQorCis8ZGZuIGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9ImRmbiI+PC9kZm4+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRS
b2xlU3RyaW5nOiBkZWZpbml0aW9uCisgICAgQVhTdWJyb2xlOiBBWERlZmluaXRpb24KKworPGRp
diBjbGFzcz0idGVzdGNhc2UiIGlkPSJkaXYiPjwvZGl2PgorICAgIEFYUm9sZTogQVhHcm91cAor
Cis8ZGwgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGwiPjwvZGw+CisgICAgQVhSb2xlOiBBWExpc3QK
KworPGR0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImR0Ij48L2R0PgorICAgIEFYUm9sZTogQVhHcm91
cAorICAgIEFYU3Vicm9sZTogQVhUZXJtCisKKzxkZCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZCI+
PC9kZD4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYRGVzY3JpcHRpb24K
KworPGxlZ2VuZCBjbGFzcz0idGVzdGNhc2UiIGlkPSJsZWdlbmQiPjwvbGVnZW5kPgorICAgIEFY
Um9sZTogQVhHcm91cAorCis8ZmlndXJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImZpZ3VyZSI+PC9m
aWd1cmU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBmaWd1
cmUKKyAgICBBWFN1YnJvbGU6IEFYRW1wdHlHcm91cAorCis8Zm9ybSBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJmb3JtIj48L2Zvcm0+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xl
U3RyaW5nOiBmb3JtCisgICAgQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAKKworPGgyIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9ImgyIj48L2gyPgorICAgIEFYUm9sZTogQVhIZWFkaW5nCisgICAgY29tcHV0
ZWRSb2xlU3RyaW5nOiBoZWFkaW5nCisKKzxociBjbGFzcz0idGVzdGNhc2UiIGlkPSJociI+Cisg
ICAgQVhSb2xlOiBBWFNwbGl0dGVyCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBzZXBhcmF0b3IK
KyAgICBBWFN1YnJvbGU6IEFYQ29udGVudFNlcGFyYXRvcgorCis8aW5zIGNsYXNzPSJ0ZXN0Y2Fz
ZSIgaWQ9ImlucyI+PC9pbnM+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xl
U3RyaW5nOiBpbnNlcnRpb24KKyAgICBBWFN1YnJvbGU6IEFYSW5zZXJ0U3R5bGVHcm91cAorCis8
bGFiZWwgY2xhc3M9InRlc3RjYXNlIiBpZD0ibGFiZWwiPjwvbGFiZWw+CisgICAgQVhSb2xlOiBB
WEdyb3VwCisKKzxtYWluIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1haW4iPjwvbWFpbj4KKyAgICBB
WFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IG1haW4KKyAgICBBWFN1YnJv
bGU6IEFYTGFuZG1hcmtNYWluCisKKzxtYXJrIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im1hcmsiPjwv
bWFyaz4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKworPG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBl
PSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CisgICAgQVhSb2xlOiBBWFRvb2xi
YXIKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IHRvb2xiYXIKKworPG5hdiBjbGFzcz0idGVzdGNh
c2UiIGlkPSJuYXYiPjwvbmF2PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogbmF2aWdhdGlvbgorICAgIEFYU3Vicm9sZTogQVhMYW5kbWFya05hdmlnYXRpb24K
KworPG9sIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im9sIj48L29sPgorICAgIEFYUm9sZTogQVhMaXN0
CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlk
PSJvbC1saS1lbGVtZW50Ij48L2xpPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVk
Um9sZVN0cmluZzogbGlzdGl0ZW0KKworPG91dHB1dCBjbGFzcz0idGVzdGNhc2UiIGlkPSJvdXRw
dXQiPjwvb3V0cHV0PgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmlu
Zzogc3RhdHVzCisgICAgQVhTdWJyb2xlOiBBWEFwcGxpY2F0aW9uU3RhdHVzCisKKzxwIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9InAiPjwvcD4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRl
ZFJvbGVTdHJpbmc6IHBhcmFncmFwaAorCis8cHJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InByZSI+
PC9wcmU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgQVhTdWJyb2xlOiBBWFByZWZvcm1hdHRl
ZFN0eWxlR3JvdXAKKworPHNlY3Rpb24gY2xhc3M9InRlc3RjYXNlIiBpZD0ic2VjdGlvbi13aXRo
LW5hbWUiIGFyaWEtbGFiZWw9IlNlY3Rpb24gbmFtZSI+PC9zZWN0aW9uPgorICAgIEFYUm9sZTog
QVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogcmVnaW9uCisgICAgQVhTdWJyb2xlOiBB
WExhbmRtYXJrUmVnaW9uCisKKzxzZWN0aW9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rpb24t
d2l0aG91dC1uYW1lIj48L3NlY3Rpb24+CisgICAgQVhSb2xlOiBBWEdyb3VwCisKKzxzdWIgY2xh
c3M9InRlc3RjYXNlIiBpZD0ic3ViIj48L3N1Yj4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBj
b21wdXRlZFJvbGVTdHJpbmc6IHN1YnNjcmlwdAorICAgIEFYU3Vicm9sZTogQVhTdWJzY3JpcHRT
dHlsZUdyb3VwCisKKzxzdXAgY2xhc3M9InRlc3RjYXNlIiBpZD0ic3VwIj48L3N1cD4KKyAgICBB
WFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IHN1cGVyc2NyaXB0CisgICAg
QVhTdWJyb2xlOiBBWFN1cGVyc2NyaXB0U3R5bGVHcm91cAorCis8dGltZSBjbGFzcz0idGVzdGNh
c2UiIGlkPSJ0aW1lIj48L3RpbWU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRS
b2xlU3RyaW5nOiB0aW1lCisgICAgQVhTdWJyb2xlOiBBWEVtcHR5R3JvdXAKKworPHVsIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9InVsIj48L3VsPgorICAgIEFYUm9sZTogQVhMaXN0CisgICAgY29tcHV0
ZWRSb2xlU3RyaW5nOiBsaXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVt
ZW50Ij48L2xpPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzog
bGlzdGl0ZW0KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxh
eS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwY2MzZjY1
NDliNDVlZjU4MzBlMjJmMDBmN2MwYWY0NzFlYzIzOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1s
CkBAIC0wLDAgKzEsMTI5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0
eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorLnRlc3RjYXNlIHsgZGlzcGxheTogY29u
dGVudHMgfTsKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBpZD0iY29udGVudCI+
CisgICAgPGEgaHJlZj0iaHR0cHM6Ly9hcHBsZS5jb20iIGlkPSJsaW5rIiBjbGFzcz0idGVzdGNh
c2UiPmFwcGxlLmNvbTwvYT4KKworICAgIDxhcnRpY2xlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImFy
dGljbGUiPkFydGljbGUgY29udGVudDwvYXJ0aWNsZT4KKworICAgIDxhc2lkZSBjbGFzcz0idGVz
dGNhc2UiIGlkPSJhc2lkZSI+QXNpZGUgY29udGVudDwvYXNpZGU+CisKKyAgICA8YmxvY2txdW90
ZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJibG9ja3F1b3RlIj5UbyBiZSBvciBub3QgdG8gYmUsIHRo
YXQgaXMgdGhlIHF1ZXN0aW9uPC9ibG9ja3F1b3RlPgorCisgICAgPGJ1dHRvbiBjbGFzcz0idGVz
dGNhc2UiIGlkPSJidXR0b24iPkNsaWNrIG1lPC9idXR0b24+CisKKyAgICA8Y29kZSBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJjb2RlIj5IZWxsbyB3b3JsZDwvY29kZT4KKworICAgIDxkZWwgY2xhc3M9
InRlc3RjYXNlIiBpZD0iZGVsIj5IZWxsbyB3b3JsZDwvZGVsPgorCisgICAgPGRldGFpbHMgY2xh
c3M9InRlc3RjYXNlIiBpZD0iZGV0YWlscyI+CisgICAgICAgIDxzdW1tYXJ5IGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9InN1bW1hcnkiPlN1bW1hcnkgdGV4dDwvc3VtbWFyeT4KKyAgICA8L2RldGFpbHM+
CisKKyAgICA8ZGZuIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRmbiI+U29tZSBkZWZpbml0aW9uPC9k
Zm4+CisKKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRpdiI+U29tZSB0ZXh0PC9kaXY+
CisKKyAgICA8ZGwgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGwiPgorICAgICAgICA8ZHQgY2xhc3M9
InRlc3RjYXNlIiBpZD0iZHQiPmR0IGVsZW1lbnQ8L2R0PgorICAgICAgICA8ZGQgY2xhc3M9InRl
c3RjYXNlIiBpZD0iZGQiPmRkIGVsZW1lbnQ8L2RkPgorICAgIDwvZGw+CisKKyAgICA8ZmllbGRz
ZXQ+CisgICAgICAgIDxsZWdlbmQgY2xhc3M9InRlc3RjYXNlIiBpZD0ibGVnZW5kIj5DaG9vc2Ug
eW91ciBmYXZvcml0ZSBtb25zdGVyPC9sZWdlbmQ+CisKKyAgICAgICAgPGlucHV0IHR5cGU9InJh
ZGlvIiBpZD0icmFkaW8tYnV0dG9uIiBuYW1lPSJtb25zdGVyIj4KKyAgICAgICAgPGxhYmVsIGZv
cj0icmFkaW8tYnV0dG9uIj5LcmFrZW48L2xhYmVsPjxici8+CisKKyAgICAgICAgPGlucHV0IHR5
cGU9InJhZGlvIiBpZD0ic2FzcXVhdGNoIiBuYW1lPSJtb25zdGVyIj4KKyAgICAgICAgPGxhYmVs
IGZvcj0ic2FzcXVhdGNoIj5TYXNxdWF0Y2g8L2xhYmVsPjxici8+CisgICAgPC9maWVsZHNldD4K
KworICAgIDxmaWd1cmUgY2xhc3M9InRlc3RjYXNlIiBpZD0iZmlndXJlIj48L2ZpZ3VyZT4KKwor
ICAgIDxmb3JtIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImZvcm0iPjwvZm9ybT4KKworICAgIDxoMiBj
bGFzcz0idGVzdGNhc2UiIGlkPSJoMiI+SGVsbG8gd29ybGQ8L2gyPgorCisgICAgPGhyIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9ImhyIj48L2hyPgorCisgICAgPGlucyBjbGFzcz0idGVzdGNhc2UiIGlk
PSJpbnMiPkhlbGxvIHdvcmxkPC9pbnM+CisKKyAgICA8bGFiZWwgY2xhc3M9InRlc3RjYXNlIiBp
ZD0ibGFiZWwiPkxhYmVsPC9sYWJlbD4KKworICAgIDxtYWluIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
Im1haW4iPk1haW4gY29udGVudDwvbWFpbj4KKworICAgIDxtYXJrIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9Im1hcmsiPk1hcmtlZCB0ZXh0PC9tYXJrPgorCisgICAgPG1lbnUgY2xhc3M9InRlc3RjYXNl
IiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CisKKyAgICA8bmF2IGNs
YXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+TmF2PC9uYXY+CisKKyAgICA8b2wgY2xhc3M9InRlc3Rj
YXNlIiBpZD0ib2wiPgorICAgICAgICA8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wtbGktZWxl
bWVudCI+SGVsbG8gd29ybGQ8L2xpPgorICAgIDwvb2w+CisKKyAgICA8b3V0cHV0IGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9Im91dHB1dCI+T3V0cHV0PC9vdXRwdXQ+CisKKyAgICA8cCBjbGFzcz0idGVz
dGNhc2UiIGlkPSJwIj5QYXJhZ3JhcGg8L3A+CisKKyAgICA8cHJlIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9InByZSI+UHJlLXRleHQ8L3ByZT4KKworICAgIDxzZWN0aW9uIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9InNlY3Rpb24td2l0aC1uYW1lIiBhcmlhLWxhYmVsPSJTZWN0aW9uIG5hbWUiPlNlY3Rpb248
L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJzZWN0aW9uLXdp
dGhvdXQtbmFtZSI+U2VjdGlvbjwvc2VjdGlvbj4KKworICAgIDxzdWIgY2xhc3M9InRlc3RjYXNl
IiBpZD0ic3ViIj5IZWxsbyB3b3JsZDwvc3ViPgorCisgICAgPHN1cCBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJzdXAiPkhlbGxvIHdvcmxkPC9zdXA+CisKKyAgICA8dGltZSBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJ0aW1lIj48L3RpbWU+CisKKyAgICA8dWwgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwiPgor
ICAgICAgICA8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGktZWxlbWVudCI+SGVsbG8gd29y
bGQ8L2xpPgorICAgIDwvdWw+Cis8L2Rpdj4KKworPHNjcmlwdD4KKyAgICAvLyBCdWZmZXIgdGVz
dCBvdXRwdXQgYW5kIGR1bXAgaXQgYXQgdGhlIGVuZCB0byBtYWtlIHRoZSB0ZXN0IHJ1biBmYXN0
ZXIgdnMuIGluZGl2aWR1YWwgYGRlYnVnYCBjYWxscy4KKyAgICB2YXIgdGVzdE91dHB1dCA9ICJU
aGlzIHRlc3QgZW5zdXJlcyBlbGVtZW50cyB3aXRoIENTUyBkaXNwbGF5OiBjb250ZW50cyBoYXZl
IHRoZSBjb3JyZWN0IHJvbGUuXG5cbiI7CisKKyAgICB2YXIgYXhFbGVtZW50OworICAgIGZ1bmN0
aW9uIHZlcmlmeVJvbGVzKCkgeworICAgICAgICBjb25zdCB0ZXN0Y2FzZXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ0ZXN0Y2FzZSIpOworICAgICAgICBmb3IgKGNvbnN0IGRv
bUVsZW1lbnQgb2YgdGVzdGNhc2VzKSB7CisgICAgICAgICAgICBjb25zdCBvdXRlckhUTUwgPSBl
c2NhcGVIVE1MKGRvbUVsZW1lbnQuY2xvbmVOb2RlKCkub3V0ZXJIVE1MKTsKKyAgICAgICAgICAg
IGF4RWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZChkb21FbGVtZW50LmlkKTsKKyAgICAgICAgICAgIGlmICghYXhFbGVtZW50KSB7CisgICAgICAg
ICAgICAgICAgdGVzdE91dHB1dCArPSBgRkFJTC4gQ291bGRuJ3QgZ2V0IEFYIGVsZW1lbnQgZm9y
ICMke2RvbUVsZW1lbnQuaWR9OiAke291dGVySFRNTH1cbmA7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgJHtvdXRlckhU
TUx9XG5gOworICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgICAgICR7YXhFbGVtZW50LnJvbGV9
YDsKKworICAgICAgICAgICAgbGV0IGNvbXB1dGVkUm9sZVN0cmluZyA9IGF4RWxlbWVudC5jb21w
dXRlZFJvbGVTdHJpbmc7CisgICAgICAgICAgICBpZiAoY29tcHV0ZWRSb2xlU3RyaW5nKQorICAg
ICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuICAgIGNvbXB1dGVkUm9sZVN0cmluZzogJHtj
b21wdXRlZFJvbGVTdHJpbmd9YDsKKworICAgICAgICAgICAgbGV0IHN1YnJvbGUgPSBheEVsZW1l
bnQuc3Vicm9sZTsKKyAgICAgICAgICAgIGlmIChzdWJyb2xlLnJlcGxhY2UoIkFYU3Vicm9sZTog
IiwgIiIpKQorICAgICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuICAgICR7c3Vicm9sZX1g
OworICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgXG5cbmA7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHZlcmlm
eVJvbGVzKCk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iikuc3R5
bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICBkZWJ1Zyh0ZXN0T3V0cHV0KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Fy
aWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjI1YjhlMTc4NTlmYTFjN2I1YmI3NWM4MTVhMTdhNTc1YjcxOTg5NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRl
bi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAK
K1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgYW4gYXJpYS1oaWRkZW4gZGlzcGxheTpjb250ZW50cyBl
bGVtZW50IGJlaGF2ZXMgYXMgZXhwZWN0ZWQuCisKK1Rlc3RpbmcgZWxlbWVudCAjbWFpbgorQVhS
b2xlOiBBWExhbmRtYXJrTWFpbgorY29tcHV0ZWRSb2xlU3RyaW5nOiBtYWluCisKK1Rlc3Rpbmcg
ZWxlbWVudCAjbGlzdAorQVhSb2xlOiBBWExpc3QKK2NvbXB1dGVkUm9sZVN0cmluZzogbGlzdAor
CitUZXN0aW5nIGVsZW1lbnQgI3BhcmFncmFwaAorQVhSb2xlOiBBWFBhcmFncmFwaAorY29tcHV0
ZWRSb2xlU3RyaW5nOiBwYXJhZ3JhcGgKKworSGlkaW5nICNtYWluIHdpdGggYXJpYS1oaWRkZW49
J3RydWUnLgorUEFTUzogQWxsIGVsZW1lbnRzIGFyZSBub3cgaGlkZGVuLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxl
bWVudC1yb2xlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vz
c2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yOTE3YjkxMGQzN2FjY2U2YWJmOTBjZjkwM2FjNzVkNDJlN2RiYzg5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3Bs
YXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNDUgQEAK
K1RoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhh
dmUgdGhlIGNvcnJlY3Qgcm9sZS4KKworPGEgaHJlZj0iaHR0cHM6Ly9hcHBsZS5jb20iIGlkPSJs
aW5rIiBjbGFzcz0idGVzdGNhc2UiPjwvYT4KKyAgICBBWFJvbGU6IEFYTGluaworICAgIGNvbXB1
dGVkUm9sZVN0cmluZzogbGluaworCis8YXJ0aWNsZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJhcnRp
Y2xlIj48L2FydGljbGU+CisgICAgQVhSb2xlOiBBWEFydGljbGUKKyAgICBjb21wdXRlZFJvbGVT
dHJpbmc6IGFydGljbGUKKworPGFzaWRlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImFzaWRlIj48L2Fz
aWRlPgorICAgIEFYUm9sZTogQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkKKyAgICBjb21wdXRlZFJv
bGVTdHJpbmc6IGNvbXBsZW1lbnRhcnkKKworPGJsb2NrcXVvdGUgY2xhc3M9InRlc3RjYXNlIiBp
ZD0iYmxvY2txdW90ZSI+PC9ibG9ja3F1b3RlPgorICAgIEFYUm9sZTogQVhCbG9ja3F1b3RlCisg
ICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBibG9ja3F1b3RlCisKKzxidXR0b24gY2xhc3M9InRlc3Rj
YXNlIiBpZD0iYnV0dG9uIj48L2J1dHRvbj4KKyAgICBBWFJvbGU6IEFYQnV0dG9uCisgICAgY29t
cHV0ZWRSb2xlU3RyaW5nOiBidXR0b24KKworPGNvZGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iY29k
ZSI+PC9jb2RlPgorICAgIEFYUm9sZTogQVhTZWN0aW9uCisKKzxkZWwgY2xhc3M9InRlc3RjYXNl
IiBpZD0iZGVsIj48L2RlbD4KKyAgICBBWFJvbGU6IEFYRGVsZXRpb24KKyAgICBjb21wdXRlZFJv
bGVTdHJpbmc6IGRlbGV0aW9uCisKKzxkZXRhaWxzIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRldGFp
bHMiPjwvZGV0YWlscz4KKyAgICBBWFJvbGU6IEFYVW5rbm93bgorCis8c3VtbWFyeSBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJzdW1tYXJ5Ij48L3N1bW1hcnk+CisgICAgQVhSb2xlOiBBWFVua25vd24K
KworPGRmbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZm4iPjwvZGZuPgorICAgIEFYUm9sZTogQVhE
ZWZpbml0aW9uCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBkZWZpbml0aW9uCisKKzxkaXYgY2xh
c3M9InRlc3RjYXNlIiBpZD0iZGl2Ij48L2Rpdj4KKyAgICBBWFJvbGU6IEFYU2VjdGlvbgorCis8
ZGwgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGwiPjwvZGw+CisgICAgQVhSb2xlOiBBWERlc2NyaXB0
aW9uTGlzdAorCis8ZHQgY2xhc3M9InRlc3RjYXNlIiBpZD0iZHQiPjwvZHQ+CisgICAgQVhSb2xl
OiBBWERlc2NyaXB0aW9uVGVybQorCis8ZGQgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGQiPjwvZGQ+
CisgICAgQVhSb2xlOiBBWERlc2NyaXB0aW9uVmFsdWUKKworPGxlZ2VuZCBjbGFzcz0idGVzdGNh
c2UiIGlkPSJsZWdlbmQiPjwvbGVnZW5kPgorICAgIEFYUm9sZTogQVhMYWJlbAorCis8ZmlndXJl
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImZpZ3VyZSI+PC9maWd1cmU+CisgICAgQVhSb2xlOiBBWEdy
b3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBmaWd1cmUKKworPGZvcm0gY2xhc3M9InRlc3Rj
YXNlIiBpZD0iZm9ybSI+PC9mb3JtPgorICAgIEFYUm9sZTogQVhGb3JtCisgICAgY29tcHV0ZWRS
b2xlU3RyaW5nOiBmb3JtCisKKzxoMiBjbGFzcz0idGVzdGNhc2UiIGlkPSJoMiI+PC9oMj4KKyAg
ICBBWFJvbGU6IEFYSGVhZGluZworICAgIGNvbXB1dGVkUm9sZVN0cmluZzogaGVhZGluZworCis8
aHIgY2xhc3M9InRlc3RjYXNlIiBpZD0iaHIiPgorICAgIEFYUm9sZTogQVhTZXBhcmF0b3IKKyAg
ICBjb21wdXRlZFJvbGVTdHJpbmc6IHNlcGFyYXRvcgorCis8aW5zIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9ImlucyI+PC9pbnM+CisgICAgQVhSb2xlOiBBWEluc2VydGlvbgorICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogaW5zZXJ0aW9uCisKKzxsYWJlbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJsYWJlbCI+
PC9sYWJlbD4KKyAgICBBWFJvbGU6IEFYTGFiZWwKKworPG1haW4gY2xhc3M9InRlc3RjYXNlIiBp
ZD0ibWFpbiI+PC9tYWluPgorICAgIEFYUm9sZTogQVhMYW5kbWFya01haW4KKyAgICBjb21wdXRl
ZFJvbGVTdHJpbmc6IG1haW4KKworPG1hcmsgY2xhc3M9InRlc3RjYXNlIiBpZD0ibWFyayI+PC9t
YXJrPgorCisKKzxtZW51IGNsYXNzPSJ0ZXN0Y2FzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUt
dG9vbGJhciI+PC9tZW51PgorICAgIEFYUm9sZTogQVhUb29sYmFyCisgICAgY29tcHV0ZWRSb2xl
U3RyaW5nOiB0b29sYmFyCisKKzxuYXYgY2xhc3M9InRlc3RjYXNlIiBpZD0ibmF2Ij48L25hdj4K
KyAgICBBWFJvbGU6IEFYTGFuZG1hcmtOYXZpZ2F0aW9uCisgICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiBuYXZpZ2F0aW9uCisKKzxvbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJvbCI+PC9vbD4KKyAgICBB
WFJvbGU6IEFYTGlzdAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdAorCis8bGkgY2xhc3M9
InRlc3RjYXNlIiBpZD0ib2wtbGktZWxlbWVudCI+PC9saT4KKyAgICBBWFJvbGU6IEFYTGlzdEl0
ZW0KKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3RpdGVtCisKKzxvdXRwdXQgY2xhc3M9InRl
c3RjYXNlIiBpZD0ib3V0cHV0Ij48L291dHB1dD4KKyAgICBBWFJvbGU6IEFYU3RhdHVzQmFyCisg
ICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBzdGF0dXMKKworPHAgY2xhc3M9InRlc3RjYXNlIiBpZD0i
cCI+PC9wPgorICAgIEFYUm9sZTogQVhQYXJhZ3JhcGgKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6
IHBhcmFncmFwaAorCis8cHJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InByZSI+PC9wcmU+CisgICAg
QVhSb2xlOiBBWFNlY3Rpb24KKworPHNlY3Rpb24gY2xhc3M9InRlc3RjYXNlIiBpZD0ic2VjdGlv
bi13aXRoLW5hbWUiIGFyaWEtbGFiZWw9IlNlY3Rpb24gbmFtZSI+PC9zZWN0aW9uPgorICAgIEFY
Um9sZTogQVhMYW5kbWFya1JlZ2lvbgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogcmVnaW9uCisK
KzxzZWN0aW9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rpb24td2l0aG91dC1uYW1lIj48L3Nl
Y3Rpb24+CisgICAgQVhSb2xlOiBBWFNlY3Rpb24KKworPHN1YiBjbGFzcz0idGVzdGNhc2UiIGlk
PSJzdWIiPjwvc3ViPgorICAgIEFYUm9sZTogQVhTdWJzY3JpcHQKKyAgICBjb21wdXRlZFJvbGVT
dHJpbmc6IHN1YnNjcmlwdAorCis8c3VwIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InN1cCI+PC9zdXA+
CisgICAgQVhSb2xlOiBBWFN1cGVyc2NyaXB0CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBzdXBl
cnNjcmlwdAorCis8dGltZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ0aW1lIj48L3RpbWU+CisgICAg
QVhSb2xlOiBBWFN0YXRpYworICAgIGNvbXB1dGVkUm9sZVN0cmluZzogdGltZQorCis8dWwgY2xh
c3M9InRlc3RjYXNlIiBpZD0idWwiPjwvdWw+CisgICAgQVhSb2xlOiBBWExpc3QKKyAgICBjb21w
dXRlZFJvbGVTdHJpbmc6IGxpc3QKKworPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVs
ZW1lbnQiPjwvbGk+CisgICAgQVhSb2xlOiBBWExpc3RJdGVtCisgICAgY29tcHV0ZWRSb2xlU3Ry
aW5nOiBsaXN0aXRlbQorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAxZjVmNzU0OWExNzYyM2IyNzljODc4NTEyODI3Mjc4NDNjYjI5ZGRjLi43NmJkYjNm
NWI4NjFkYjBlNTZjOWYyMmRlMjE0YjRlMTk5MzM5MzIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA4Niw2ICsyMDg2LDggQEAgd2Via2l0Lm9yZy9i
LzE0ODgwNiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wv
bXVsdGljb2wtc3AKICMgRW5hYmxlICJwaG9uZSBudW1iZXIgbGlua2lmeWluZyIgdGVzdCBmb3Ig
aU9TCiBmYXN0L2RvbS9saW5raWZ5LXBob25lLW51bWJlcnMuaHRtbCBbIFBhc3MgXQogCithY2Nl
c3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC5odG1sIFsgUGFz
cyBdCithY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sIFsg
UGFzcyBdCiBhY2Nlc3NpYmlsaXR5L3ZpZGVvLWVsZW1lbnQtdXJsLWF0dHJpYnV0ZS5odG1sIFsg
UGFzcyBdCiBhY2Nlc3NpYmlsaXR5L3Zpc2libGUtY2hhcmFjdGVyLXJhbmdlLmh0bWwgWyBQYXNz
IF0KIGFjY2Vzc2liaWxpdHkvYW5jZXN0b3ItY29tcHV0YXRpb24uaHRtbCBbIFBhc3MgXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRk
ZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxl
bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjYTdjZjMxYmE3Yzk4NTI1Yzk0ZDYwZTg0
OTkwYzQyZDU0ZThmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBhbiBhcmlh
LWhpZGRlbiBkaXNwbGF5OmNvbnRlbnRzIGVsZW1lbnQgYmVoYXZlcyBhcyBleHBlY3RlZC4KKwor
VGVzdGluZyBlbGVtZW50ICNtYWluCitMYW5kbWFya01haW4KKworVGVzdGluZyBlbGVtZW50ICNs
aXN0CitMaXN0CisKK1Rlc3RpbmcgZWxlbWVudCAjcGFyYWdyYXBoCitQYXJhZ3JhcGgKKworSGlk
aW5nICNtYWluIHdpdGggYXJpYS1oaWRkZW49J3RydWUnLgorUEFTUzogQWxsIGVsZW1lbnRzIGFy
ZSBub3cgaGlkZGVuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2li
aWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVu
dC1yb2xlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgwYWVmYTg5Y2QzNzAyOGY1NDlkNjVh
YzFjMjFlZGJjNzVkNWQxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMjAgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGgg
Q1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNvcnJlY3Qgcm9sZS4KKworPGEgaHJlZj0i
aHR0cHM6Ly9hcHBsZS5jb20iIGlkPSJsaW5rIiBjbGFzcz0idGVzdGNhc2UiPjwvYT4KKyAgICBX
ZWJDb3JlTGluaworCis8YXJ0aWNsZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJhcnRpY2xlIj48L2Fy
dGljbGU+CisgICAgRG9jdW1lbnRBcnRpY2xlCisKKzxhc2lkZSBjbGFzcz0idGVzdGNhc2UiIGlk
PSJhc2lkZSI+PC9hc2lkZT4KKyAgICBMYW5kbWFya0NvbXBsZW1lbnRhcnkKKworPGJsb2NrcXVv
dGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iYmxvY2txdW90ZSI+PC9ibG9ja3F1b3RlPgorICAgIEJs
b2NrcXVvdGUKKworPGJ1dHRvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJidXR0b24iPjwvYnV0dG9u
PgorICAgIEJ1dHRvbgorCis8Y29kZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJjb2RlIj48L2NvZGU+
CisgICAgVGV4dEdyb3VwCisKKzxkZWwgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGVsIj48L2RlbD4K
KyAgICBEZWxldGlvbgorCis8ZGV0YWlscyBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZXRhaWxzIj48
L2RldGFpbHM+CisgICAgRGV0YWlscworCis8c3VtbWFyeSBjbGFzcz0idGVzdGNhc2UiIGlkPSJz
dW1tYXJ5Ij48L3N1bW1hcnk+CisgICAgU3VtbWFyeQorCis8ZGZuIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9ImRmbiI+PC9kZm4+CisgICAgRGVmaW5pdGlvbgorCis8ZGl2IGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9ImRpdiI+PC9kaXY+CisgICAgRGl2CisKKzxkbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkbCI+
PC9kbD4KKyAgICBEZXNjcmlwdGlvbkxpc3QKKworPGR0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImR0
Ij48L2R0PgorICAgIERlc2NyaXB0aW9uTGlzdFRlcm0KKworPGRkIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9ImRkIj48L2RkPgorICAgIERlc2NyaXB0aW9uTGlzdERldGFpbAorCis8bGVnZW5kIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9ImxlZ2VuZCI+PC9sZWdlbmQ+CisgICAgTGVnZW5kCisKKzxmaWd1cmUg
Y2xhc3M9InRlc3RjYXNlIiBpZD0iZmlndXJlIj48L2ZpZ3VyZT4KKyAgICBGaWd1cmUKKworPGZv
cm0gY2xhc3M9InRlc3RjYXNlIiBpZD0iZm9ybSI+PC9mb3JtPgorICAgIEZvcm0KKworPGgyIGNs
YXNzPSJ0ZXN0Y2FzZSIgaWQ9ImgyIj48L2gyPgorICAgIEhlYWRpbmcKKworPGhyIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9ImhyIj4KKyAgICBIb3Jpem9udGFsUnVsZQorCis8aW5zIGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9ImlucyI+PC9pbnM+CisgICAgSW5zZXJ0aW9uCisKKzxsYWJlbCBjbGFzcz0idGVz
dGNhc2UiIGlkPSJsYWJlbCI+PC9sYWJlbD4KKyAgICBMYWJlbAorCis8bWFpbiBjbGFzcz0idGVz
dGNhc2UiIGlkPSJtYWluIj48L21haW4+CisgICAgTGFuZG1hcmtNYWluCisKKzxtYXJrIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9Im1hcmsiPjwvbWFyaz4KKyAgICBNYXJrCisKKzxtZW51IGNsYXNzPSJ0
ZXN0Y2FzZSIgdHlwZT0idG9vbGJhciIgaWQ9Im1lbnUtdG9vbGJhciI+PC9tZW51PgorICAgIFRv
b2xiYXIKKworPG5hdiBjbGFzcz0idGVzdGNhc2UiIGlkPSJuYXYiPjwvbmF2PgorICAgIExhbmRt
YXJrTmF2aWdhdGlvbgorCis8b2wgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wiPjwvb2w+CisgICAg
TGlzdAorCis8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wtbGktZWxlbWVudCI+PC9saT4KKyAg
ICBMaXN0SXRlbQorCis8b3V0cHV0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im91dHB1dCI+PC9vdXRw
dXQ+CisgICAgQXBwbGljYXRpb25TdGF0dXMKKworPHAgY2xhc3M9InRlc3RjYXNlIiBpZD0icCI+
PC9wPgorICAgIFBhcmFncmFwaAorCis8cHJlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InByZSI+PC9w
cmU+CisgICAgVGV4dEdyb3VwCisKKzxzZWN0aW9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rp
b24td2l0aC1uYW1lIiBhcmlhLWxhYmVsPSJTZWN0aW9uIG5hbWUiPjwvc2VjdGlvbj4KKyAgICBM
YW5kbWFya1JlZ2lvbgorCis8c2VjdGlvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJzZWN0aW9uLXdp
dGhvdXQtbmFtZSI+PC9zZWN0aW9uPgorICAgIFRleHRHcm91cAorCis8c3ViIGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9InN1YiI+PC9zdWI+CisgICAgU3Vic2NyaXB0CisKKzxzdXAgY2xhc3M9InRlc3Rj
YXNlIiBpZD0ic3VwIj48L3N1cD4KKyAgICBTdXBlcnNjcmlwdAorCis8dGltZSBjbGFzcz0idGVz
dGNhc2UiIGlkPSJ0aW1lIj48L3RpbWU+CisgICAgVGltZQorCis8dWwgY2xhc3M9InRlc3RjYXNl
IiBpZD0idWwiPjwvdWw+CisgICAgTGlzdAorCis8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwt
bGktZWxlbWVudCI+PC9saT4KKyAgICBMaXN0SXRlbQorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmNDgzN2EzZjRmMDQ3NDdiNTc5YjBjNTdkYzNiZDI3
N2ZiYTFjOTQ2Li5jNWJhMjVjZTE1MGNmMDQ4ODI1Yzk0ZGZlOGIzMzc1MzdjY2U4ZGQ3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTU0MCw2ICsxNTQw
LDggQEAgd2Via2l0Lm9yZy9iLzE0MDUyOCBmYXN0L2VuY29kaW5nL2lkbi1zZWN1cml0eS5odG1s
IFsgU2tpcCBdCiAjIyMjIyMjIyMjIyMjIyMjIyMgICAgICAgIEFjY2Vzc2liaWxpdHkgSXNzdWVz
ICAgICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKIAorYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMuaHRtbCBb
IFNraXAgXQorCiAjIE1pc3NpbmcgJ3ByZXNzJyBzdXBwb3J0CiBhY2Nlc3NpYmlsaXR5L2F4cHJl
c3Mtb24tYXJpYS1idXR0b24uaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9zdmctZWxlbWVu
dC1wcmVzcy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtYWN0
dWFsLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlk
ZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC1hY3R1YWwudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxMDg0
N2IwYjMxZmFjOGY1MDJlZjdhNzc3ZmI1N2NjNzc4MjZiM2YKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5
LWNvbnRlbnRzLWVsZW1lbnQtYWN0dWFsLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3Qg
ZW5zdXJlcyB0aGF0IGFuIGFyaWEtaGlkZGVuIGRpc3BsYXk6Y29udGVudHMgZWxlbWVudCBiZWhh
dmVzIGFzIGV4cGVjdGVkLgorCitUZXN0aW5nIGVsZW1lbnQgI21haW4KK0FYUm9sZTogQVhHcm91
cAorCitUZXN0aW5nIGVsZW1lbnQgI2xpc3QKK0FYUm9sZTogQVhMaXN0CisKK1Rlc3RpbmcgZWxl
bWVudCAjcGFyYWdyYXBoCitBWFJvbGU6IEFYR3JvdXAKKworSGlkaW5nICNtYWluIHdpdGggYXJp
YS1oaWRkZW49J3RydWUnLgorUEFTUzogQWxsIGVsZW1lbnRzIGFyZSBub3cgaGlkZGVuLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455165</attachid>
            <date>2022-03-18 23:00:30 -0700</date>
            <delta_ts>2022-03-21 11:49:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237834-20220319010028.patch</filename>
            <type>text/plain</type>
            <size>39046</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJhOTgyNWRiNjgyZjJi
ZmZhZTNiNmNlZDFkNDk5ZTVjYTE2YzY4ZC4uMDI1ZTI1NmFmZWI0NjcxOTIzYTAyNDBlZDQxM2Nh
NzgxMDQ0MmZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAzLTE4ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY2x1ZGUgZGlz
cGxheTogY29udGVudHMgZWxlbWVudHMgaW4gdGhlIEFYIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzgzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgIEJlY2F1c2UgZGlzcGxheTogY29udGVudHMg
aW50ZW50aW9uYWxseSBwcmV2ZW50cyBhIHJlbmRlciBvYmplY3QgZnJvbSBiZWluZworICAgICAg
ICBnZW5lcmF0ZWQgZm9yIHRoZSBlbGVtZW50IGl0J3MgYXBwbGllZCB0bywgd2UgZG9uJ3QgYWRk
IGl0IHRvIHRoZSBBWCB0cmVlIGFzCisgICAgICAgIHBhcnQgb2Ygb3VyIG5vcm1hbCByZW5kZXIg
dHJlZSB3YWxrLCBtYWtpbmcgdGhlc2UgZWxlbWVudHMgaW5hY2Nlc3NpYmxlLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW5jbHVkZXMgdGhlc2UgZWxlbWVudHMgYXMgcGFydCBvZiB0aGUgRE9NIHdh
bGsgdGhhdAorICAgICAgICBhZGRIaWRkZW5DaGlsZHJlbiAobm93IHJlbmFtZWQgdG8gYWRkTm9k
ZU9ubHlDaGlsZHJlbikgYWxyZWFkeSBkb2VzLgorCisgICAgICAgIEFsc28sIGJlY2F1c2UgZGlz
cGxheTogY29udGVudHMgbW92ZXMgdGhlIGFmZmVjdGVkIGVsZW1lbnQncyBjaGlsZHJlbiB1cCBh
CisgICAgICAgIGxldmVsIGluIHRoZSByZW5kZXIgdHJlZSwgdGhpcyBwYXRjaCBhbHNvIHNwZWNp
YWwgY2FzZXM6CisKKyAgICAgICAgICAxLiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJl
bnRPYmplY3QgYW5kIHNpbWlsYXIgbWV0aG9kcyB0bworICAgICAgICAgIHJldHVybiB0aGVpciBk
aXNwbGF5OiBjb250ZW50cyBwYXJlbnQgaW5zdGVhZCBvZiB0aGVpciByZW5kZXIgdHJlZQorICAg
ICAgICAgIHBhcmVudAorICAgICAgICAgIDIuIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENo
aWxkIHRvIG9ubHkgaW5zZXJ0IGRpc3BsYXk6IGNvbnRlbnRzCisgICAgICAgICAgY2hpbGRyZW4g
dG8gdGhlaXIgZGlzcGxheTogY29udGVudHMgcGFyZW50LCByYXRoZXIgdGhhbiB0aGVpciByZW5k
ZXIKKyAgICAgICAgICB0cmVlIHBhcmVudAorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkv
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwsIGFjY2Vzc2liaWxpdHkvYXJpYS1o
aWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpnZXRPckNyZWF0ZSk6CisgICAgICAgIEFsbG93IGNyZWF0aW9uIG9mIEFYIG9iamVjdHMgZnJv
bSBkaXNwbGF5OiBjb250ZW50cyBgTm9kZWBzLgorICAgICAgICBBbHNvLCBkb24ndCBjcmVhdGUg
YW4gb2JqZWN0IGZvciBhIHJlbmRlcmVyIHRoYXQgaXMgaW4gdGhlIHByb2Nlc3Mgb2YKKyAgICAg
ICAgYmVpbmcgZGVzdHJveWVkIChwcmV2ZW50cyBkaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9s
ZXMuaHRtbCBmcm9tIGNyYXNoaW5nIGluIElUTSkKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6ZGlzcGxheUNvbnRlbnRzUGFyZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENoaWxkKToKKyAgICAgICAgSWYgYW4gb2JqZWN0IGhh
cyBhIGRpc3BsYXk6IGNvbnRlbnRzIHBhcmVudCwgYW5kIHRoYXQgcGFyZW50IGlzbid0CisgICAg
ICAgIGB0aGlzYCwgcmV0dXJuIGVhcmx5LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpwYXJlbnRPYmplY3RJZkV4aXN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRPYmplY3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0VW5pZ25vcmVkIGNv
bnN0KToKKyAgICAgICAgSWYgYW4gb2JqZWN0IGhhcyBhIGRpc3BsYXk6IGNvbnRlbnRzIHBhcmVu
dCwgcmV0dXJuIHRoYXQgaW5zdGVhZCBvZgorICAgICAgICBpdHMgcmVuZGVyIHRyZWUgcGFyZW50
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkTm9kZU9u
bHlDaGlsZHJlbik6CisgICAgICAgIFJlbmFtZWQgZnJvbSBhZGRIaWRkZW5DaGlsZHJlbi4KKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKToK
KyAgICAgICAgRG9uJ3QgY2xlYXIgbV9zdWJ0cmVlRGlydHkgdW50aWwgYWZ0ZXIgYWxsIGNoaWxk
cmVuIGhhdmUgYmVlbiBhZGRlZC4KKyAgICAgICAgTmVjZXNzYXJ5IHRvIG1ha2UgYXJpYS1oaWRk
ZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwgcGFzcywgYXMKKyAgICAgICAgd2Ugd2Vy
ZSBjbGVhcmluZyB0aGlzIHRvbyBlYXJseSwgY2F1c2luZyBkaXNwbGF5OiBjb250ZW50cyBzdWJ0
cmVlcyB0bworICAgICAgICBub3QgYmUgdXBkYXRlZCBhZnRlciBhcmlhLWhpZGRlbiBjaGFuZ2Vz
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkSGlkZGVu
Q2hpbGRyZW4pOgorICAgICAgICBSZW5hbWVkIHRvIGFkZE5vZGVPbmx5Q2hpbGRyZW4uCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisKIDIwMjIt
MDMtMTcgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtJRkNdW0lu
dGVncmF0aW9uXSBSZXBsYWNlIGVuY2xvc2luZ1RvcC9Cb3R0b20vaGVpZ2h0IGNhbGxzIHdpdGgg
TGluZTo6ZW5jbG9zaW5nTG9naWNhbFJlY3Qgd2hlbiBhcHBsaWNhYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAyZDIyMDQ0MjUyNTQ3
YjJjYTM0ZDllYzE5MjZlYTI3NzJiZTBkMzUxLi5hODQwNTY5NDg2ZmY5MWNhNTY2ZDg2ZWEzNmMz
ZTk2NWYwMDU1ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTcyMCwxNCArNzIwLDEwIEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVybiBvYmpl
Y3QuZ2V0KCk7CiAgICAgfQogCi0gICAgLy8gSXQncyBvbmx5IGFsbG93ZWQgdG8gY3JlYXRlIGFu
IEFjY2Vzc2liaWxpdHlPYmplY3QgZnJvbSBhIE5vZGUgaWYgaXQncyBpbiBhIGNhbnZhcyBzdWJ0
cmVlLgotICAgIC8vIE9yIGlmIGl0J3MgYSBoaWRkZW4gZWxlbWVudCwgYnV0IHdlIHN0aWxsIHdh
bnQgdG8gZXhwb3NlIGl0IGJlY2F1c2Ugb2Ygb3RoZXIgQVJJQSBhdHRyaWJ1dGVzLgogICAgIGJv
b2wgaW5DYW52YXNTdWJ0cmVlID0gbGluZWFnZU9mVHlwZTxIVE1MQ2FudmFzRWxlbWVudD4oKm5v
ZGUtPnBhcmVudEVsZW1lbnQoKSkuZmlyc3QoKTsKLSAgICBib29sIGlzSGlkZGVuID0gaXNOb2Rl
QXJpYVZpc2libGUobm9kZSk7Ci0KICAgICBib29sIGluc2lkZU1ldGVyRWxlbWVudCA9IGlzPEhU
TUxNZXRlckVsZW1lbnQ+KCpub2RlLT5wYXJlbnRFbGVtZW50KCkpOwotICAgIAotICAgIGlmICgh
aW5DYW52YXNTdWJ0cmVlICYmICFpc0hpZGRlbiAmJiAhaW5zaWRlTWV0ZXJFbGVtZW50KQorICAg
IGJvb2wgaGFzRGlzcGxheUNvbnRlbnRzID0gaXM8RWxlbWVudD4oKm5vZGUpICYmIGRvd25jYXN0
PEVsZW1lbnQ+KCpub2RlKS5oYXNEaXNwbGF5Q29udGVudHMoKTsKKyAgICBpZiAoIWluQ2FudmFz
U3VidHJlZSAmJiAhaW5zaWRlTWV0ZXJFbGVtZW50ICYmICFoYXNEaXNwbGF5Q29udGVudHMgJiYg
IWlzTm9kZUFyaWFWaXNpYmxlKG5vZGUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IFJlZiBwcm90ZWN0ZWROb2RlIHsgKm5vZGUgfTsKQEAgLTc2MCw2ICs3NTYsOSBAQCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXQocmVuZGVyZXIp
KQogICAgICAgICByZXR1cm4gb2JqOwogCisgICAgLy8gRG9uJ3QgY3JlYXRlIGFuIG9iamVjdCBm
b3IgdGhpcyByZW5kZXJlciBpZiBpdCdzIGJlaW5nIGRlc3Ryb3llZC4KKyAgICBpZiAocmVuZGVy
ZXItPmJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBuZXdPYmogPSBjcmVhdGVGcm9tUmVuZGVyZXIocmVuZGVy
ZXIpOwogCiAgICAgLy8gV2lsbCBjcmFzaCBsYXRlciBpZiB3ZSBoYXZlIHR3byBvYmplY3RzIGZv
ciB0aGUgc2FtZSByZW5kZXJlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDUwNTA5ZDYwMjZkZmFjZGUzODIyYTJk
YzZmNzY1MjhhMWRjZjAyZWMuLmRlNzNhMDZiZmIzYTdlMjRkNmI2OThlYzUwOTU1ZmU1ODFmNjlm
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcApAQCAtNDQ4LDYgKzQ0OCwxNiBAQCBBWENvcmVPYmplY3QqIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0CiAgICAgfSk7CiB9CiAK
K0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRpc3BsYXlDb250ZW50
c1BhcmVudCgpIGNvbnN0Cit7CisgICAgYXV0byogcGFyZW50Tm9kZSA9IG5vZGUoKSA/IG5vZGUo
KS0+cGFyZW50Tm9kZSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIWlzPEVsZW1lbnQ+KHBhcmVudE5v
ZGUpIHx8ICFkb3duY2FzdDxFbGVtZW50PihwYXJlbnROb2RlKS0+aGFzRGlzcGxheUNvbnRlbnRz
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byogY2FjaGUgPSBheE9iamVj
dENhY2hlKCk7CisgICAgcmV0dXJuIGNhY2hlID8gY2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE5v
ZGUpIDogbnVsbHB0cjsKK30KKwogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU9i
amVjdDo6cHJldmlvdXNTaWJsaW5nVW5pZ25vcmVkKGludCBsaW1pdCkgY29uc3QKIHsKICAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBwcmV2aW91czsKQEAgLTU3NSw3ICs1ODUsNyBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydENoaWxkKEFYQ29yZU9iamVjdCogbmV3Q2hpbGQsIHVu
c2lnbmVkIGluZGV4LCBEZQogewogICAgIGlmICghbmV3Q2hpbGQpCiAgICAgICAgIHJldHVybjsK
LSAgICAKKwogICAgIEFTU0VSVChpczxBY2Nlc3NpYmlsaXR5T2JqZWN0PihuZXdDaGlsZCkpOwog
ICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eU9iamVjdD4obmV3Q2hpbGQpKQogICAgICAgICByZXR1
cm47CkBAIC02MDAsNyArNjEwLDEyIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6aW5zZXJ0
Q2hpbGQoQVhDb3JlT2JqZWN0KiBuZXdDaGlsZCwgdW5zaWduZWQgaW5kZXgsIERlCiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKKyAgICBhdXRvKiBkaXNwbGF5Q29udGVu
dHNQYXJlbnQgPSBjaGlsZC0+ZGlzcGxheUNvbnRlbnRzUGFyZW50KCk7CisgICAgLy8gVG8gYXZv
aWQgZG91YmxlLWluc2VydGluZyBhIGNoaWxkIG9mIGEgYGRpc3BsYXk6IGNvbnRlbnRzYCBlbGVt
ZW50LCBvbmx5IGluc2VydCBpZiBgdGhpc2AgaXMgdGhlIHJpZ2h0ZnVsIHBhcmVudC4KKyAgICBp
ZiAoZGlzcGxheUNvbnRlbnRzUGFyZW50ICYmIGRpc3BsYXlDb250ZW50c1BhcmVudCAhPSB0aGlz
KQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvIHRoaXNBbmNlc3RvckZsYWdzID0gY29tcHV0
ZUFuY2VzdG9yRmxhZ3MoKTsKICAgICBjaGlsZC0+aW5pdGlhbGl6ZUFuY2VzdG9yRmxhZ3ModGhp
c0FuY2VzdG9yRmxhZ3MpOwogICAgIHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhRm9yQ2hpbGQo
Y2hpbGQpOwpAQCAtNjI1LDcgKzY0MCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6aW5z
ZXJ0Q2hpbGQoQVhDb3JlT2JqZWN0KiBuZXdDaGlsZCwgdW5zaWduZWQgaW5kZXgsIERlCiAgICAg
fSBlbHNlIHsKICAgICAgICAgLy8gVGFibGUgY29tcG9uZW50IGNoaWxkLXBhcmVudCByZWxhdGlv
bnNoaXBzIG9mdGVuIGRvbid0IGxpbmUgdXAgcHJvcGVybHksIGhlbmNlIHRoZSBuZWVkIGZvciBt
ZXRob2RzCiAgICAgICAgIC8vIGxpa2UgcGFyZW50VGFibGUoKSBhbmQgcGFyZW50Um93KCkuIEV4
Y2x1ZGUgdGhlbSBmcm9tIHRoaXMgQVNTRVJULgotICAgICAgICBBU1NFUlQoKCFpc1RhYmxlQ29t
cG9uZW50KCpjaGlsZCkgJiYgIWlzVGFibGVDb21wb25lbnQoKnRoaXMpKSA/IGNoaWxkLT5wYXJl
bnRPYmplY3QoKSA9PSB0aGlzIDogdHJ1ZSk7CisgICAgICAgIEFTU0VSVChpc1RhYmxlQ29tcG9u
ZW50KCpjaGlsZCkgfHwgaXNUYWJsZUNvbXBvbmVudCgqdGhpcykgfHwgY2hpbGQtPnBhcmVudE9i
amVjdCgpID09IHRoaXMpOwogICAgICAgICBtX2NoaWxkcmVuLmluc2VydChpbmRleCwgY2hpbGQp
OwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMmI0ZGYzMzNlZjhlNWU1NTM4NTFlNWI5NDk1ZGNiM2Iw
ZDMzMjYyNS4uOTg0YjBiY2FhOWNkZjE0NzE0YzBjNTlmYjg4YjgxZDk5OGY1MDViNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
QEAgLTM3Myw2ICszNzMsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbmV4
dFNpYmxpbmdVbmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxpbmdVbmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdCBv
dmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogZGlz
cGxheUNvbnRlbnRzUGFyZW50KCkgY29uc3Q7CiAgICAgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmpl
Y3RVbmlnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBw
YXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0K
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RBY2Nlc3NpYmxlT2JqZWN0RnJv
bU5vZGUoY29uc3QgTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMDEwMWZiNTMwNzlm
YjIxOTMzNzliYzZkMzc1ODhhNGY3NTViNGE0NS4uOTMxOWI5ZjRlZTAxMGUxNjg3OTg3NTNmNmI1
OTA4ODEzYjNiMjQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC00OTEsMTEgKzQ5MSwxNyBA
QCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXJlbnRP
YmplY3RJZkV4aXN0cygpIGNvbnN0CiAgICAgaWYgKG1fcmVuZGVyZXIgJiYgaXNXZWJBcmVhKCkp
CiAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0KCZtX3JlbmRlcmVyLT52aWV3KCkuZnJhbWVWaWV3
KCkpOwogCisgICAgaWYgKGF1dG8qIGRpc3BsYXlDb250ZW50c1BhcmVudCA9IHRoaXMtPmRpc3Bs
YXlDb250ZW50c1BhcmVudCgpKQorICAgICAgICByZXR1cm4gZGlzcGxheUNvbnRlbnRzUGFyZW50
OworCiAgICAgcmV0dXJuIGNhY2hlLT5nZXQocmVuZGVyUGFyZW50T2JqZWN0KCkpOwogfQogICAg
IAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50
T2JqZWN0KCkgY29uc3QKIHsKKyAgICBpZiAoYXV0byogZGlzcGxheUNvbnRlbnRzUGFyZW50ID0g
dGhpcy0+ZGlzcGxheUNvbnRlbnRzUGFyZW50KCkpCisgICAgICAgIHJldHVybiBkaXNwbGF5Q29u
dGVudHNQYXJlbnQ7CisKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIApAQCAtNTA4LDE0ICs1MTQsMTMgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKICAgICAgICAgaWYg
KHBhcmVudCkKICAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7CiAgICAgfQotICAgIAorCiAgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCk7CiAgICAgaWYgKCFjYWNoZSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCi0gICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRP
YmogPSByZW5kZXJQYXJlbnRPYmplY3QoKTsKLSAgICBpZiAocGFyZW50T2JqKQotICAgICAgICBy
ZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKHBhcmVudE9iaik7CisKKyAgICBpZiAoYXV0byogcGFy
ZW50T2JqZWN0ID0gcmVuZGVyUGFyZW50T2JqZWN0KCkpCisgICAgICAgIHJldHVybiBjYWNoZS0+
Z2V0T3JDcmVhdGUocGFyZW50T2JqZWN0KTsKICAgICAKICAgICAvLyBXZWJBcmVhJ3MgcGFyZW50
IHNob3VsZCBiZSB0aGUgc2Nyb2xsIHZpZXcgY29udGFpbmluZyBpdC4KICAgICBpZiAoaXNXZWJB
cmVhKCkpCkBAIC01MzcsNyArNTQyLDcgQEAgQVhDb3JlT2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9yZWQoKSBjb25zdAogICAgIH0KICNlbmRpZgog
Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXJlbnRPYmplY3RVbmlnbm9y
ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6cGFyZW50T2JqZWN0VW5pZ25v
cmVkKCk7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNBdHRhY2htZW50
KCkgY29uc3QKQEAgLTMxOTgsMjkgKzMyMDMsMzYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojp1cGRhdGVBdHRhY2htZW50Vmlld1BhcmVudHMoKQogfQogI2VuZGlmCiAKLS8vIEhp
ZGRlbiBjaGlsZHJlbiBhcmUgdGhvc2UgdGhhdCBhcmUgbm90IHJlbmRlcmVkIG9yIHZpc2libGUs
IGJ1dCBhcmUgc3BlY2lmaWNhbGx5IG1hcmtlZCBhcyBhcmlhLWhpZGRlbj1mYWxzZSwKLS8vIG1l
YW5pbmcgdGhhdCB0aGV5IHNob3VsZCBiZSBleHBvc2VkIHRvIHRoZSBBWCBoaWVyYXJjaHkuCi12
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZEhpZGRlbkNoaWxkcmVuKCkKKy8vIFNv
bWUgZWxlbWVudHMgZG9uJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIHJlbmRlciBvYmplY3QsIG1lYW5p
bmcgdGhleSB3b24ndCBiZSBwaWNrZWQgdXAgYnkgYSB3YWxrIG9mIHRoZSByZW5kZXIgdHJlZS4K
Ky8vIEZvciBleGFtcGxlLCBub2RlcyB0aGF0IGFyZSBgYXJpYS1oaWRkZW49ImZhbHNlImAgYW5k
IGBoaWRkZW5gLCBvciBlbGVtZW50cyB3aXRoIGBkaXNwbGF5OiBjb250ZW50c2AuCisvLyBUaGlz
IGZ1bmN0aW9uIHdpbGwgZmluZCBhbmQgYWRkIHRoZXNlIGVsZW1lbnRzIHRvIHRoZSBBWCB0cmVl
Lgordm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGROb2RlT25seUNoaWxkcmVuKCkK
IHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIC8vIEZpcnN0IGRvIGEgcXVpY2sgcnVuIHRocm91Z2ggdG8g
ZGV0ZXJtaW5lIGlmIHdlIGhhdmUgYW55IGhpZGRlbiBub2RlcyAobW9zdCBvZnRlbiB3ZSB3aWxs
IG5vdCkuCi0gICAgLy8gSWYgd2UgZG8gaGF2ZSBoaWRkZW4gbm9kZXMsIHdlIG5lZWQgdG8gZGV0
ZXJtaW5lIHdoZXJlIHRvIGluc2VydCB0aGVtIHNvIHRoZXkgbWF0Y2ggRE9NIG9yZGVyIGFzIGNs
b3NlIGFzIHBvc3NpYmxlLgotICAgIGJvb2wgc2hvdWxkSW5zZXJ0SGlkZGVuTm9kZXMgPSBmYWxz
ZTsKKworICAgIGF1dG8gbm9kZUhhc0Rpc3BsYXlDb250ZW50cyA9IFtdIChOb2RlJiBub2RlKSB7
CisgICAgICAgIHJldHVybiBpczxFbGVtZW50Pihub2RlKSAmJiBkb3duY2FzdDxFbGVtZW50Pihu
b2RlKS5oYXNEaXNwbGF5Q29udGVudHMoKTsKKyAgICB9OworICAgIC8vIEZpcnN0IGRvIGEgcXVp
Y2sgcnVuIHRocm91Z2ggdG8gZGV0ZXJtaW5lIGlmIHdlIGhhdmUgYW55IGludGVyZXN0aW5nIG5v
ZGVzIChtb3N0IG9mdGVuIHdlIHdpbGwgbm90KS4KKyAgICAvLyBJZiB3ZSBkbyBoYXZlIGFueSBp
bnRlcmVzdGluZyBub2Rlcywgd2UgbmVlZCB0byBkZXRlcm1pbmUgd2hlcmUgdG8gaW5zZXJ0IHRo
ZW0gc28gdGhleSBtYXRjaCBET00gb3JkZXIgYXMgY2xvc2UgYXMgcG9zc2libGUuCisgICAgYm9v
bCBoYXNOb2RlT25seUNoaWxkcmVuID0gZmFsc2U7CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG5v
ZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
LSAgICAgICAgaWYgKCFjaGlsZC0+cmVuZGVyZXIoKSAmJiBpc05vZGVBcmlhVmlzaWJsZShjaGls
ZCkpIHsKLSAgICAgICAgICAgIHNob3VsZEluc2VydEhpZGRlbk5vZGVzID0gdHJ1ZTsKKyAgICAg
ICAgaWYgKGNoaWxkLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgaWYgKG5vZGVIYXNEaXNwbGF5Q29udGVudHMoKmNoaWxkKSB8fCBpc05vZGVBcmlhVmlzaWJs
ZShjaGlsZCkpIHsKKyAgICAgICAgICAgIGhhc05vZGVPbmx5Q2hpbGRyZW4gPSB0cnVlOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgaWYgKCFzaG91bGRJ
bnNlcnRIaWRkZW5Ob2RlcykKKyAgICBpZiAoIWhhc05vZGVPbmx5Q2hpbGRyZW4pCiAgICAgICAg
IHJldHVybjsKICAgICAKICAgICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIG9mIHRoZSBjaGlsZHJl
biwgaW5jbHVkaW5nIHRob3NlIHRoYXQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGFkZGVkLCBhbmQK
LSAgICAvLyB0cnkgdG8gaW5zZXJ0IGhpZGRlbiBub2RlcyBpbiB0aGUgY29ycmVjdCBwbGFjZSBp
biB0aGUgRE9NIG9yZGVyLgorICAgIC8vIHRyeSB0byBpbnNlcnQgdGhlIG5vZGVzIGluIHRoZSBj
b3JyZWN0IHBsYWNlIGluIHRoZSBET00gb3JkZXIuCiAgICAgdW5zaWduZWQgaW5zZXJ0aW9uSW5k
ZXggPSAwOwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChjaGlsZC0+cmVu
ZGVyZXIoKSkgewpAQCAtMzIzOSw3ICszMjUxLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjphZGRIaWRkZW5DaGlsZHJlbigpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIGlmICghaXNOb2RlQXJpYVZpc2libGUoY2hpbGQpKQorICAgICAgICBp
ZiAoIW5vZGVIYXNEaXNwbGF5Q29udGVudHMoKmNoaWxkKSAmJiAhaXNOb2RlQXJpYVZpc2libGUo
Y2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICB1bnNpZ25l
ZCBwcmV2aW91c1NpemUgPSBtX2NoaWxkcmVuLnNpemUoKTsKQEAgLTMzMTEsOSArMzMyMyw3IEBA
IHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGRyZW4oKQogICAgIGZvciAo
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9iamVjdCA9IGZpcnN0Q2hpbGQoKTsgb2JqZWN0
OyBvYmplY3QgPSBvYmplY3QtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGFkZENoaWxkSWZOZWVk
ZWQoKm9iamVjdCk7CiAKLSAgICBtX3N1YnRyZWVEaXJ0eSA9IGZhbHNlOwotICAgIAotICAgIGFk
ZEhpZGRlbkNoaWxkcmVuKCk7CisgICAgYWRkTm9kZU9ubHlDaGlsZHJlbigpOwogICAgIGFkZEF0
dGFjaG1lbnRDaGlsZHJlbigpOwogICAgIGFkZEltYWdlTWFwQ2hpbGRyZW4oKTsKICAgICBhZGRU
ZXh0RmllbGRDaGlsZHJlbigpOwpAQCAtMzMyMiwxMSArMzMzMiwxMSBAQCB2b2lkIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmFkZENoaWxkcmVuKCkKICNpZiBVU0UoQVRTUEkpCiAgICAgYWRk
TGlzdEl0ZW1NYXJrZXIoKTsKICNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdXBk
YXRlQXR0YWNobWVudFZpZXdQYXJlbnRzKCk7CiAjZW5kaWYKLSAgICAKKworICAgIG1fc3VidHJl
ZURpcnR5ID0gZmFsc2U7CiAgICAgdXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbigpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDI3NWJhY2Y3OTFhNWM4NWQzNzYzZTA2OTZjMGY3NDQ2
OTk0ZDhkMjIuLjJiMDQ1ZGEzMmM0Zjk3NzFkMDQyNDAzNDBmZWM5MmRhM2Q0MDE4MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oCkBAIC0yNDgsNyArMjQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG9mZnNl
dEJvdW5kaW5nQm94Rm9yUmVtb3RlU1ZHRWxlbWVudChMYXlvdXRSZWN0JikgY29uc3Q7CiAgICAg
Ym9vbCBzdXBwb3J0c1BhdGgoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkSGlkZGVu
Q2hpbGRyZW4oKTsKKyAgICB2b2lkIGFkZE5vZGVPbmx5Q2hpbGRyZW4oKTsKICAgICB2b2lkIGFk
ZFRleHRGaWVsZENoaWxkcmVuKCk7CiAgICAgdm9pZCBhZGRJbWFnZU1hcENoaWxkcmVuKCk7CiAg
ICAgdm9pZCBhZGRDYW52YXNDaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhiYmNjNmRkMTgyN2ZmOGMxNDdi
Y2RmODBiZGMxMzhlNThhZjdhNTYuLjgxNWFiMDg4OWY2MjllYWNhYTE4NmMyYThkMDk1NjY2ZWNi
ZWM4ZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMi0wMy0xOCAgVHlsZXIgV2lsY29jayAg
PHR5bGVyX3dAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBJbmNsdWRlIGRpc3BsYXk6IGNvbnRl
bnRzIGVsZW1lbnRzIGluIHRoZSBBWCB0cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4MzQKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBG
bGVpemFjaC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1j
b250ZW50cy1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVu
dHMtZWxlbWVudC1yb2xlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL2Fj
Y2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2Rpc3Bs
YXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOiBFbmFibGUgbmV3IHRlc3RzLgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVu
dHMtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9h
Y2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIGRp
c3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1sLgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDIyLTAzLTE3ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNn
XzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZm9yIGFjY2Vzc2liaWxpdHkvYXJpYS10YWIt
eHh4Lmh0bWwgdGVzdHMgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNw
bGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5ZDBhMGZhODY2
NjZhYzZjM2RkYjM3ZmNiOTFmNDM4MjA0NTJiZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBhbiBh
cmlhLWhpZGRlbiBkaXNwbGF5OmNvbnRlbnRzIGVsZW1lbnQgYmVoYXZlcyBhcyBleHBlY3RlZC4K
KworVGVzdGluZyBlbGVtZW50ICNtYWluCitBWFJvbGU6IEFYR3JvdXAKK2NvbXB1dGVkUm9sZVN0
cmluZzogbWFpbgorQVhTdWJyb2xlOiBBWExhbmRtYXJrTWFpbgorCitUZXN0aW5nIGVsZW1lbnQg
I2xpc3QKK0FYUm9sZTogQVhMaXN0Citjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKK0FYU3Vicm9s
ZTogQVhDb250ZW50TGlzdAorCitUZXN0aW5nIGVsZW1lbnQgI3BhcmFncmFwaAorQVhSb2xlOiBB
WEdyb3VwCitjb21wdXRlZFJvbGVTdHJpbmc6IHBhcmFncmFwaAorCitIaWRpbmcgI21haW4gd2l0
aCBhcmlhLWhpZGRlbj0ndHJ1ZScuCitQQVNTOiBBbGwgZWxlbWVudHMgYXJlIG5vdyBoaWRkZW4u
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXkt
Y29udGVudHMtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhp
ZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWE1ZTcwNmJm
YmFmYWZmYWJhZmYzMjkzMTRiYmEyZTRhYzFmYWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQu
aHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJp
bGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8
bWFpbiBpZD0ibWFpbiIgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzIj4KKyAgICA8b2wgaWQ9Imxp
c3QiPgorICAgICAgICA8bGk+TGlzdCBpdGVtIG9uZTwvbGk+CisgICAgICAgIDxsaT5MaXN0IGl0
ZW0gdHdvPC9saT4KKyAgICA8L29sPgorICAgIDxwIGlkPSJwYXJhZ3JhcGgiPkNvbnRlbnQgaW5z
aWRlIG1haW4gPiBwIHRhZy48cD4KKzwvbWFpbj4KKworPHNjcmlwdD4KKyAgICB2YXIgdGVzdE91
dHB1dCA9ICJUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGFuIGFyaWEtaGlkZGVuIGRpc3BsYXk6Y29u
dGVudHMgZWxlbWVudCBiZWhhdmVzIGFzIGV4cGVjdGVkLiI7CisKKyAgICBmdW5jdGlvbiBkZWJ1
Z0VsZW1lbnQoaWQpIHsKKyAgICAgICAgdGVzdE91dHB1dCArPSBgXG5cblRlc3RpbmcgZWxlbWVu
dCAjJHtpZH1cbmA7CisgICAgICAgIGNvbnN0IGF4RWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZChpZCk7CisgICAgICAgIGlmICghYXhFbGVtZW50
KSB7CisgICAgICAgICAgICBkZWJ1ZyhgXG5GQUlMOiBDb3VsZG4ndCBnZXQgQVggZWxlbWVudCBm
b3IgIyR7aWR9LmApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
dGVzdE91dHB1dCArPSBheEVsZW1lbnQucm9sZTsKKyAgICAgICAgY29uc3QgY29tcHV0ZWRSb2xl
U3RyaW5nID0gYXhFbGVtZW50LmNvbXB1dGVkUm9sZVN0cmluZzsKKyAgICAgICAgaWYgKGNvbXB1
dGVkUm9sZVN0cmluZykKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuY29tcHV0ZWRSb2xl
U3RyaW5nOiAke2NvbXB1dGVkUm9sZVN0cmluZ31gOworCisgICAgICAgIGxldCBzdWJyb2xlID0g
YXhFbGVtZW50LnN1YnJvbGU7CisgICAgICAgIGlmIChzdWJyb2xlLnJlcGxhY2UoIkFYU3Vicm9s
ZTogIiwgIiIpKQorICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgXG4ke3N1YnJvbGV9YDsKKyAg
ICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBkZWJ1Z0VsZW1lbnQoIm1h
aW4iKTsKKyAgICAgICAgZGVidWdFbGVtZW50KCJsaXN0Iik7CisgICAgICAgIGRlYnVnRWxlbWVu
dCgicGFyYWdyYXBoIik7CisKKyAgICAgICAgdGVzdE91dHB1dCArPSAiXG5cbkhpZGluZyAjbWFp
biB3aXRoIGFyaWEtaGlkZGVuPSd0cnVlJy4iOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibWFpbiIpLmFyaWFIaWRkZW4gPSAidHJ1ZSI7CisgICAgICAgIHNldFRpbWVvdXQoYXN5
bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAg
ICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgbWFpbiB0byBiZSBoaWRkZW4uCisgICAgICAgICAg
ICAgICAgcmV0dXJuICFhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoIm1haW4iKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgY29uc3QgbGlzdCA9IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgibGlzdCIpOworICAg
ICAgICAgICAgY29uc3QgcGFyYWdyYXBoID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJwYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgIGlmICghbGlzdCAmJiAh
cGFyYWdyYXBoKQorICAgICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuUEFTUzogQWxsIGVs
ZW1lbnRzIGFyZSBub3cgaGlkZGVuLiI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBpZiAobGlzdCkKKyAgICAgICAgICAgICAgICAgICAgdGVzdE91dHB1dCArPSAiXG5GQUlM
OiA8b2w+IHdhcyBub3QgaGlkZGVuIGJ5IGFyaWEtaGlkZGVuLiI7CisgICAgICAgICAgICAgICAg
aWYgKHBhcmFncmFwaCkKKyAgICAgICAgICAgICAgICAgICAgdGVzdE91dHB1dCArPSAiXG5GQUlM
OiA8cD4gd2FzIG5vdCBoaWRkZW4gYnkgYXJpYS1oaWRkZW4uIjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKS5zdHlsZS52aXNpYmls
aXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICBkZWJ1Zyh0ZXN0T3V0cHV0KTsKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9LCAwKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9k
aXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIxNzNhNmQwYjFiM2E5NzA0ZTUwMjBjODFkMjcwNDRiNzhmNmE4OTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVu
dHMtZWxlbWVudC1yb2xlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNjYgQEAKK1RoaXMgdGVz
dCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhhdmUgdGhlIGNv
cnJlY3Qgcm9sZS4KKworPGEgaHJlZj0iaHR0cHM6Ly9hcHBsZS5jb20iIGlkPSJsaW5rIiBjbGFz
cz0idGVzdGNhc2UiPjwvYT4KKyAgICBBWFJvbGU6IEFYTGluaworICAgIGNvbXB1dGVkUm9sZVN0
cmluZzogbGluaworCis8YXJ0aWNsZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJhcnRpY2xlIj48L2Fy
dGljbGU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBhcnRp
Y2xlCisgICAgQVhTdWJyb2xlOiBBWERvY3VtZW50QXJ0aWNsZQorCis8YXNpZGUgY2xhc3M9InRl
c3RjYXNlIiBpZD0iYXNpZGUiPjwvYXNpZGU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29t
cHV0ZWRSb2xlU3RyaW5nOiBjb21wbGVtZW50YXJ5CisgICAgQVhTdWJyb2xlOiBBWExhbmRtYXJr
Q29tcGxlbWVudGFyeQorCis8YmxvY2txdW90ZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJibG9ja3F1
b3RlIj48L2Jsb2NrcXVvdGU+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xl
U3RyaW5nOiBibG9ja3F1b3RlCisKKzxidXR0b24gY2xhc3M9InRlc3RjYXNlIiBpZD0iYnV0dG9u
Ij48L2J1dHRvbj4KKyAgICBBWFJvbGU6IEFYQnV0dG9uCisgICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiBidXR0b24KKworPGNvZGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iY29kZSI+PC9jb2RlPgorICAg
IEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9sZTogQVhDb2RlU3R5bGVHcm91cAorCis8ZGVs
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRlbCI+PC9kZWw+CisgICAgQVhSb2xlOiBBWEdyb3VwCisg
ICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBkZWxldGlvbgorICAgIEFYU3Vicm9sZTogQVhEZWxldGVT
dHlsZUdyb3VwCisKKzxkZXRhaWxzIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRldGFpbHMiPjwvZGV0
YWlscz4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYRGV0YWlscworCis8
c3VtbWFyeSBjbGFzcz0idGVzdGNhc2UiIGlkPSJzdW1tYXJ5Ij48L3N1bW1hcnk+CisgICAgQVhS
b2xlOiBBWEJ1dHRvbgorICAgIEFYU3Vicm9sZTogQVhTdW1tYXJ5CisKKzxkZm4gY2xhc3M9InRl
c3RjYXNlIiBpZD0iZGZuIj48L2Rmbj4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRl
ZFJvbGVTdHJpbmc6IGRlZmluaXRpb24KKyAgICBBWFN1YnJvbGU6IEFYRGVmaW5pdGlvbgorCis8
ZGl2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRpdiI+PC9kaXY+CisgICAgQVhSb2xlOiBBWEdyb3Vw
CisKKzxkbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkbCI+PC9kbD4KKyAgICBBWFJvbGU6IEFYTGlz
dAorCis8ZHQgY2xhc3M9InRlc3RjYXNlIiBpZD0iZHQiPjwvZHQ+CisgICAgQVhSb2xlOiBBWEdy
b3VwCisgICAgQVhTdWJyb2xlOiBBWFRlcm0KKworPGRkIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRk
Ij48L2RkPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIEFYU3Vicm9sZTogQVhEZXNjcmlwdGlv
bgorCis8bGVnZW5kIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImxlZ2VuZCI+PC9sZWdlbmQ+CisgICAg
QVhSb2xlOiBBWEdyb3VwCisKKzxmaWd1cmUgY2xhc3M9InRlc3RjYXNlIiBpZD0iZmlndXJlIj48
L2ZpZ3VyZT4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGZp
Z3VyZQorICAgIEFYU3Vicm9sZTogQVhFbXB0eUdyb3VwCisKKzxmb3JtIGNsYXNzPSJ0ZXN0Y2Fz
ZSIgaWQ9ImZvcm0iPjwvZm9ybT4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJv
bGVTdHJpbmc6IGZvcm0KKyAgICBBWFN1YnJvbGU6IEFYRW1wdHlHcm91cAorCis8aDIgY2xhc3M9
InRlc3RjYXNlIiBpZD0iaDIiPjwvaDI+CisgICAgQVhSb2xlOiBBWEhlYWRpbmcKKyAgICBjb21w
dXRlZFJvbGVTdHJpbmc6IGhlYWRpbmcKKworPGhyIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImhyIj4K
KyAgICBBWFJvbGU6IEFYU3BsaXR0ZXIKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IHNlcGFyYXRv
cgorICAgIEFYU3Vicm9sZTogQVhDb250ZW50U2VwYXJhdG9yCisKKzxpbnMgY2xhc3M9InRlc3Rj
YXNlIiBpZD0iaW5zIj48L2lucz4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRlZFJv
bGVTdHJpbmc6IGluc2VydGlvbgorICAgIEFYU3Vicm9sZTogQVhJbnNlcnRTdHlsZUdyb3VwCisK
KzxsYWJlbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJsYWJlbCI+PC9sYWJlbD4KKyAgICBBWFJvbGU6
IEFYR3JvdXAKKworPG1haW4gY2xhc3M9InRlc3RjYXNlIiBpZD0ibWFpbiI+PC9tYWluPgorICAg
IEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbWFpbgorICAgIEFYU3Vi
cm9sZTogQVhMYW5kbWFya01haW4KKworPG1hcmsgY2xhc3M9InRlc3RjYXNlIiBpZD0ibWFyayI+
PC9tYXJrPgorICAgIEFYUm9sZTogQVhHcm91cAorCis8bWVudSBjbGFzcz0idGVzdGNhc2UiIHR5
cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KKyAgICBBWFJvbGU6IEFYVG9v
bGJhcgorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogdG9vbGJhcgorCis8bmF2IGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9Im5hdiI+PC9uYXY+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRS
b2xlU3RyaW5nOiBuYXZpZ2F0aW9uCisgICAgQVhTdWJyb2xlOiBBWExhbmRtYXJrTmF2aWdhdGlv
bgorCis8b2wgY2xhc3M9InRlc3RjYXNlIiBpZD0ib2wiPjwvb2w+CisgICAgQVhSb2xlOiBBWExp
c3QKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGxpc3QKKworPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9Im9sLWxpLWVsZW1lbnQiPjwvbGk+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0
ZWRSb2xlU3RyaW5nOiBsaXN0aXRlbQorCis8b3V0cHV0IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im91
dHB1dCI+PC9vdXRwdXQ+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3Ry
aW5nOiBzdGF0dXMKKyAgICBBWFN1YnJvbGU6IEFYQXBwbGljYXRpb25TdGF0dXMKKworPHAgY2xh
c3M9InRlc3RjYXNlIiBpZD0icCI+PC9wPgorICAgIEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1
dGVkUm9sZVN0cmluZzogcGFyYWdyYXBoCisKKzxwcmUgY2xhc3M9InRlc3RjYXNlIiBpZD0icHJl
Ij48L3ByZT4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBBWFN1YnJvbGU6IEFYUHJlZm9ybWF0
dGVkU3R5bGVHcm91cAorCis8c2VjdGlvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJzZWN0aW9uLXdp
dGgtbmFtZSIgYXJpYS1sYWJlbD0iU2VjdGlvbiBuYW1lIj48L3NlY3Rpb24+CisgICAgQVhSb2xl
OiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiByZWdpb24KKyAgICBBWFN1YnJvbGU6
IEFYTGFuZG1hcmtSZWdpb24KKworPHNlY3Rpb24gY2xhc3M9InRlc3RjYXNlIiBpZD0ic2VjdGlv
bi13aXRob3V0LW5hbWUiPjwvc2VjdGlvbj4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKworPHN1YiBj
bGFzcz0idGVzdGNhc2UiIGlkPSJzdWIiPjwvc3ViPgorICAgIEFYUm9sZTogQVhHcm91cAorICAg
IGNvbXB1dGVkUm9sZVN0cmluZzogc3Vic2NyaXB0CisgICAgQVhTdWJyb2xlOiBBWFN1YnNjcmlw
dFN0eWxlR3JvdXAKKworPHN1cCBjbGFzcz0idGVzdGNhc2UiIGlkPSJzdXAiPjwvc3VwPgorICAg
IEFYUm9sZTogQVhHcm91cAorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc3VwZXJzY3JpcHQKKyAg
ICBBWFN1YnJvbGU6IEFYU3VwZXJzY3JpcHRTdHlsZUdyb3VwCisKKzx0aW1lIGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9InRpbWUiPjwvdGltZT4KKyAgICBBWFJvbGU6IEFYR3JvdXAKKyAgICBjb21wdXRl
ZFJvbGVTdHJpbmc6IHRpbWUKKyAgICBBWFN1YnJvbGU6IEFYRW1wdHlHcm91cAorCis8dWwgY2xh
c3M9InRlc3RjYXNlIiBpZD0idWwiPjwvdWw+CisgICAgQVhSb2xlOiBBWExpc3QKKyAgICBjb21w
dXRlZFJvbGVTdHJpbmc6IGxpc3QKKworPGxpIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InVsLWxpLWVs
ZW1lbnQiPjwvbGk+CisgICAgQVhSb2xlOiBBWEdyb3VwCisgICAgY29tcHV0ZWRSb2xlU3RyaW5n
OiBsaXN0aXRlbQorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kaXNw
bGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBjYzNm
NjU0OWI0NWVmNTgzMGUyMmYwMGY3YzBhZjQ3MWVjMjM4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0
bWwKQEAgLTAsMCArMSwxMjkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmls
aXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisudGVzdGNhc2UgeyBkaXNwbGF5OiBj
b250ZW50cyB9OworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPSJjb250ZW50
Ij4KKyAgICA8YSBocmVmPSJodHRwczovL2FwcGxlLmNvbSIgaWQ9ImxpbmsiIGNsYXNzPSJ0ZXN0
Y2FzZSI+YXBwbGUuY29tPC9hPgorCisgICAgPGFydGljbGUgY2xhc3M9InRlc3RjYXNlIiBpZD0i
YXJ0aWNsZSI+QXJ0aWNsZSBjb250ZW50PC9hcnRpY2xlPgorCisgICAgPGFzaWRlIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9ImFzaWRlIj5Bc2lkZSBjb250ZW50PC9hc2lkZT4KKworICAgIDxibG9ja3F1
b3RlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImJsb2NrcXVvdGUiPlRvIGJlIG9yIG5vdCB0byBiZSwg
dGhhdCBpcyB0aGUgcXVlc3Rpb248L2Jsb2NrcXVvdGU+CisKKyAgICA8YnV0dG9uIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9ImJ1dHRvbiI+Q2xpY2sgbWU8L2J1dHRvbj4KKworICAgIDxjb2RlIGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9ImNvZGUiPkhlbGxvIHdvcmxkPC9jb2RlPgorCisgICAgPGRlbCBjbGFz
cz0idGVzdGNhc2UiIGlkPSJkZWwiPkhlbGxvIHdvcmxkPC9kZWw+CisKKyAgICA8ZGV0YWlscyBj
bGFzcz0idGVzdGNhc2UiIGlkPSJkZXRhaWxzIj4KKyAgICAgICAgPHN1bW1hcnkgY2xhc3M9InRl
c3RjYXNlIiBpZD0ic3VtbWFyeSI+U3VtbWFyeSB0ZXh0PC9zdW1tYXJ5PgorICAgIDwvZGV0YWls
cz4KKworICAgIDxkZm4gY2xhc3M9InRlc3RjYXNlIiBpZD0iZGZuIj5Tb21lIGRlZmluaXRpb248
L2Rmbj4KKworICAgIDxkaXYgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGl2Ij5Tb21lIHRleHQ8L2Rp
dj4KKworICAgIDxkbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkbCI+CisgICAgICAgIDxkdCBjbGFz
cz0idGVzdGNhc2UiIGlkPSJkdCI+ZHQgZWxlbWVudDwvZHQ+CisgICAgICAgIDxkZCBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJkZCI+ZGQgZWxlbWVudDwvZGQ+CisgICAgPC9kbD4KKworICAgIDxmaWVs
ZHNldD4KKyAgICAgICAgPGxlZ2VuZCBjbGFzcz0idGVzdGNhc2UiIGlkPSJsZWdlbmQiPkNob29z
ZSB5b3VyIGZhdm9yaXRlIG1vbnN0ZXI8L2xlZ2VuZD4KKworICAgICAgICA8aW5wdXQgdHlwZT0i
cmFkaW8iIGlkPSJyYWRpby1idXR0b24iIG5hbWU9Im1vbnN0ZXIiPgorICAgICAgICA8bGFiZWwg
Zm9yPSJyYWRpby1idXR0b24iPktyYWtlbjwvbGFiZWw+PGJyLz4KKworICAgICAgICA8aW5wdXQg
dHlwZT0icmFkaW8iIGlkPSJzYXNxdWF0Y2giIG5hbWU9Im1vbnN0ZXIiPgorICAgICAgICA8bGFi
ZWwgZm9yPSJzYXNxdWF0Y2giPlNhc3F1YXRjaDwvbGFiZWw+PGJyLz4KKyAgICA8L2ZpZWxkc2V0
PgorCisgICAgPGZpZ3VyZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJmaWd1cmUiPjwvZmlndXJlPgor
CisgICAgPGZvcm0gY2xhc3M9InRlc3RjYXNlIiBpZD0iZm9ybSI+PC9mb3JtPgorCisgICAgPGgy
IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImgyIj5IZWxsbyB3b3JsZDwvaDI+CisKKyAgICA8aHIgY2xh
c3M9InRlc3RjYXNlIiBpZD0iaHIiPjwvaHI+CisKKyAgICA8aW5zIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9ImlucyI+SGVsbG8gd29ybGQ8L2lucz4KKworICAgIDxsYWJlbCBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJsYWJlbCI+TGFiZWw8L2xhYmVsPgorCisgICAgPG1haW4gY2xhc3M9InRlc3RjYXNlIiBp
ZD0ibWFpbiI+TWFpbiBjb250ZW50PC9tYWluPgorCisgICAgPG1hcmsgY2xhc3M9InRlc3RjYXNl
IiBpZD0ibWFyayI+TWFya2VkIHRleHQ8L21hcms+CisKKyAgICA8bWVudSBjbGFzcz0idGVzdGNh
c2UiIHR5cGU9InRvb2xiYXIiIGlkPSJtZW51LXRvb2xiYXIiPjwvbWVudT4KKworICAgIDxuYXYg
Y2xhc3M9InRlc3RjYXNlIiBpZD0ibmF2Ij5OYXY8L25hdj4KKworICAgIDxvbCBjbGFzcz0idGVz
dGNhc2UiIGlkPSJvbCI+CisgICAgICAgIDxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJvbC1saS1l
bGVtZW50Ij5IZWxsbyB3b3JsZDwvbGk+CisgICAgPC9vbD4KKworICAgIDxvdXRwdXQgY2xhc3M9
InRlc3RjYXNlIiBpZD0ib3V0cHV0Ij5PdXRwdXQ8L291dHB1dD4KKworICAgIDxwIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9InAiPlBhcmFncmFwaDwvcD4KKworICAgIDxwcmUgY2xhc3M9InRlc3RjYXNl
IiBpZD0icHJlIj5QcmUtdGV4dDwvcHJlPgorCisgICAgPHNlY3Rpb24gY2xhc3M9InRlc3RjYXNl
IiBpZD0ic2VjdGlvbi13aXRoLW5hbWUiIGFyaWEtbGFiZWw9IlNlY3Rpb24gbmFtZSI+U2VjdGlv
bjwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rpb24t
d2l0aG91dC1uYW1lIj5TZWN0aW9uPC9zZWN0aW9uPgorCisgICAgPHN1YiBjbGFzcz0idGVzdGNh
c2UiIGlkPSJzdWIiPkhlbGxvIHdvcmxkPC9zdWI+CisKKyAgICA8c3VwIGNsYXNzPSJ0ZXN0Y2Fz
ZSIgaWQ9InN1cCI+SGVsbG8gd29ybGQ8L3N1cD4KKworICAgIDx0aW1lIGNsYXNzPSJ0ZXN0Y2Fz
ZSIgaWQ9InRpbWUiPjwvdGltZT4KKworICAgIDx1bCBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bCI+
CisgICAgICAgIDxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1bC1saS1lbGVtZW50Ij5IZWxsbyB3
b3JsZDwvbGk+CisgICAgPC91bD4KKzwvZGl2PgorCis8c2NyaXB0PgorICAgIC8vIEJ1ZmZlciB0
ZXN0IG91dHB1dCBhbmQgZHVtcCBpdCBhdCB0aGUgZW5kIHRvIG1ha2UgdGhlIHRlc3QgcnVuIGZh
c3RlciB2cy4gaW5kaXZpZHVhbCBgZGVidWdgIGNhbGxzLgorICAgIHZhciB0ZXN0T3V0cHV0ID0g
IlRoaXMgdGVzdCBlbnN1cmVzIGVsZW1lbnRzIHdpdGggQ1NTIGRpc3BsYXk6IGNvbnRlbnRzIGhh
dmUgdGhlIGNvcnJlY3Qgcm9sZS5cblxuIjsKKworICAgIHZhciBheEVsZW1lbnQ7CisgICAgZnVu
Y3Rpb24gdmVyaWZ5Um9sZXMoKSB7CisgICAgICAgIGNvbnN0IHRlc3RjYXNlcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInRlc3RjYXNlIik7CisgICAgICAgIGZvciAoY29uc3Qg
ZG9tRWxlbWVudCBvZiB0ZXN0Y2FzZXMpIHsKKyAgICAgICAgICAgIGNvbnN0IG91dGVySFRNTCA9
IGVzY2FwZUhUTUwoZG9tRWxlbWVudC5jbG9uZU5vZGUoKS5vdXRlckhUTUwpOworICAgICAgICAg
ICAgYXhFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKGRvbUVsZW1lbnQuaWQpOworICAgICAgICAgICAgaWYgKCFheEVsZW1lbnQpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGBGQUlMLiBDb3VsZG4ndCBnZXQgQVggZWxlbWVudCBm
b3IgIyR7ZG9tRWxlbWVudC5pZH06ICR7b3V0ZXJIVE1MfVxuYDsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGAke291dGVy
SFRNTH1cbmA7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGAgICAgJHtheEVsZW1lbnQucm9s
ZX1gOworCisgICAgICAgICAgICBsZXQgY29tcHV0ZWRSb2xlU3RyaW5nID0gYXhFbGVtZW50LmNv
bXB1dGVkUm9sZVN0cmluZzsKKyAgICAgICAgICAgIGlmIChjb21wdXRlZFJvbGVTdHJpbmcpCisg
ICAgICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgXG4gICAgY29tcHV0ZWRSb2xlU3RyaW5nOiAk
e2NvbXB1dGVkUm9sZVN0cmluZ31gOworCisgICAgICAgICAgICBsZXQgc3Vicm9sZSA9IGF4RWxl
bWVudC5zdWJyb2xlOworICAgICAgICAgICAgaWYgKHN1YnJvbGUucmVwbGFjZSgiQVhTdWJyb2xl
OiAiLCAiIikpCisgICAgICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgXG4gICAgJHtzdWJyb2xl
fWA7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGBcblxuYDsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgdmVy
aWZ5Um9sZXMoKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5z
dHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgIGRlYnVnKHRlc3RPdXRwdXQpOwor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkv
YXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MjViOGUxNzg1OWZhMWM3YjViYjc1YzgxNWExN2E1NzViNzE5ODk2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlk
ZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBA
QAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBhbiBhcmlhLWhpZGRlbiBkaXNwbGF5OmNvbnRlbnRz
IGVsZW1lbnQgYmVoYXZlcyBhcyBleHBlY3RlZC4KKworVGVzdGluZyBlbGVtZW50ICNtYWluCitB
WFJvbGU6IEFYTGFuZG1hcmtNYWluCitjb21wdXRlZFJvbGVTdHJpbmc6IG1haW4KKworVGVzdGlu
ZyBlbGVtZW50ICNsaXN0CitBWFJvbGU6IEFYTGlzdAorY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0
CisKK1Rlc3RpbmcgZWxlbWVudCAjcGFyYWdyYXBoCitBWFJvbGU6IEFYUGFyYWdyYXBoCitjb21w
dXRlZFJvbGVTdHJpbmc6IHBhcmFncmFwaAorCitIaWRpbmcgI21haW4gd2l0aCBhcmlhLWhpZGRl
bj0ndHJ1ZScuCitQQVNTOiBBbGwgZWxlbWVudHMgYXJlIG5vdyBoaWRkZW4uCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1l
bGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNj
ZXNzaWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI5MTdiOTEwZDM3YWNjZTZhYmY5MGNmOTAzYWM3NWQ0MmU3ZGJjODkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvZGlz
cGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0NSBA
QAorVGhpcyB0ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0aCBDU1MgZGlzcGxheTogY29udGVudHMg
aGF2ZSB0aGUgY29ycmVjdCByb2xlLgorCis8YSBocmVmPSJodHRwczovL2FwcGxlLmNvbSIgaWQ9
ImxpbmsiIGNsYXNzPSJ0ZXN0Y2FzZSI+PC9hPgorICAgIEFYUm9sZTogQVhMaW5rCisgICAgY29t
cHV0ZWRSb2xlU3RyaW5nOiBsaW5rCisKKzxhcnRpY2xlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImFy
dGljbGUiPjwvYXJ0aWNsZT4KKyAgICBBWFJvbGU6IEFYQXJ0aWNsZQorICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogYXJ0aWNsZQorCis8YXNpZGUgY2xhc3M9InRlc3RjYXNlIiBpZD0iYXNpZGUiPjwv
YXNpZGU+CisgICAgQVhSb2xlOiBBWExhbmRtYXJrQ29tcGxlbWVudGFyeQorICAgIGNvbXB1dGVk
Um9sZVN0cmluZzogY29tcGxlbWVudGFyeQorCis8YmxvY2txdW90ZSBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJibG9ja3F1b3RlIj48L2Jsb2NrcXVvdGU+CisgICAgQVhSb2xlOiBBWEJsb2NrcXVvdGUK
KyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGJsb2NrcXVvdGUKKworPGJ1dHRvbiBjbGFzcz0idGVz
dGNhc2UiIGlkPSJidXR0b24iPjwvYnV0dG9uPgorICAgIEFYUm9sZTogQVhCdXR0b24KKyAgICBj
b21wdXRlZFJvbGVTdHJpbmc6IGJ1dHRvbgorCis8Y29kZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJj
b2RlIj48L2NvZGU+CisgICAgQVhSb2xlOiBBWFNlY3Rpb24KKworPGRlbCBjbGFzcz0idGVzdGNh
c2UiIGlkPSJkZWwiPjwvZGVsPgorICAgIEFYUm9sZTogQVhEZWxldGlvbgorICAgIGNvbXB1dGVk
Um9sZVN0cmluZzogZGVsZXRpb24KKworPGRldGFpbHMgY2xhc3M9InRlc3RjYXNlIiBpZD0iZGV0
YWlscyI+PC9kZXRhaWxzPgorICAgIEFYUm9sZTogQVhVbmtub3duCisKKzxzdW1tYXJ5IGNsYXNz
PSJ0ZXN0Y2FzZSIgaWQ9InN1bW1hcnkiPjwvc3VtbWFyeT4KKyAgICBBWFJvbGU6IEFYVW5rbm93
bgorCis8ZGZuIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRmbiI+PC9kZm4+CisgICAgQVhSb2xlOiBB
WERlZmluaXRpb24KKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGRlZmluaXRpb24KKworPGRpdiBj
bGFzcz0idGVzdGNhc2UiIGlkPSJkaXYiPjwvZGl2PgorICAgIEFYUm9sZTogQVhTZWN0aW9uCisK
KzxkbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkbCI+PC9kbD4KKyAgICBBWFJvbGU6IEFYRGVzY3Jp
cHRpb25MaXN0CisKKzxkdCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkdCI+PC9kdD4KKyAgICBBWFJv
bGU6IEFYRGVzY3JpcHRpb25UZXJtCisKKzxkZCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZCI+PC9k
ZD4KKyAgICBBWFJvbGU6IEFYRGVzY3JpcHRpb25WYWx1ZQorCis8bGVnZW5kIGNsYXNzPSJ0ZXN0
Y2FzZSIgaWQ9ImxlZ2VuZCI+PC9sZWdlbmQ+CisgICAgQVhSb2xlOiBBWExhYmVsCisKKzxmaWd1
cmUgY2xhc3M9InRlc3RjYXNlIiBpZD0iZmlndXJlIj48L2ZpZ3VyZT4KKyAgICBBWFJvbGU6IEFY
R3JvdXAKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IGZpZ3VyZQorCis8Zm9ybSBjbGFzcz0idGVz
dGNhc2UiIGlkPSJmb3JtIj48L2Zvcm0+CisgICAgQVhSb2xlOiBBWEZvcm0KKyAgICBjb21wdXRl
ZFJvbGVTdHJpbmc6IGZvcm0KKworPGgyIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImgyIj48L2gyPgor
ICAgIEFYUm9sZTogQVhIZWFkaW5nCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBoZWFkaW5nCisK
KzxociBjbGFzcz0idGVzdGNhc2UiIGlkPSJociI+CisgICAgQVhSb2xlOiBBWFNlcGFyYXRvcgor
ICAgIGNvbXB1dGVkUm9sZVN0cmluZzogc2VwYXJhdG9yCisKKzxpbnMgY2xhc3M9InRlc3RjYXNl
IiBpZD0iaW5zIj48L2lucz4KKyAgICBBWFJvbGU6IEFYSW5zZXJ0aW9uCisgICAgY29tcHV0ZWRS
b2xlU3RyaW5nOiBpbnNlcnRpb24KKworPGxhYmVsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImxhYmVs
Ij48L2xhYmVsPgorICAgIEFYUm9sZTogQVhMYWJlbAorCis8bWFpbiBjbGFzcz0idGVzdGNhc2Ui
IGlkPSJtYWluIj48L21haW4+CisgICAgQVhSb2xlOiBBWExhbmRtYXJrTWFpbgorICAgIGNvbXB1
dGVkUm9sZVN0cmluZzogbWFpbgorCis8bWFyayBjbGFzcz0idGVzdGNhc2UiIGlkPSJtYXJrIj48
L21hcms+CisKKworPG1lbnUgY2xhc3M9InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVu
dS10b29sYmFyIj48L21lbnU+CisgICAgQVhSb2xlOiBBWFRvb2xiYXIKKyAgICBjb21wdXRlZFJv
bGVTdHJpbmc6IHRvb2xiYXIKKworPG5hdiBjbGFzcz0idGVzdGNhc2UiIGlkPSJuYXYiPjwvbmF2
PgorICAgIEFYUm9sZTogQVhMYW5kbWFya05hdmlnYXRpb24KKyAgICBjb21wdXRlZFJvbGVTdHJp
bmc6IG5hdmlnYXRpb24KKworPG9sIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im9sIj48L29sPgorICAg
IEFYUm9sZTogQVhMaXN0CisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiBsaXN0CisKKzxsaSBjbGFz
cz0idGVzdGNhc2UiIGlkPSJvbC1saS1lbGVtZW50Ij48L2xpPgorICAgIEFYUm9sZTogQVhMaXN0
SXRlbQorICAgIGNvbXB1dGVkUm9sZVN0cmluZzogbGlzdGl0ZW0KKworPG91dHB1dCBjbGFzcz0i
dGVzdGNhc2UiIGlkPSJvdXRwdXQiPjwvb3V0cHV0PgorICAgIEFYUm9sZTogQVhTdGF0dXNCYXIK
KyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IHN0YXR1cworCis8cCBjbGFzcz0idGVzdGNhc2UiIGlk
PSJwIj48L3A+CisgICAgQVhSb2xlOiBBWFBhcmFncmFwaAorICAgIGNvbXB1dGVkUm9sZVN0cmlu
ZzogcGFyYWdyYXBoCisKKzxwcmUgY2xhc3M9InRlc3RjYXNlIiBpZD0icHJlIj48L3ByZT4KKyAg
ICBBWFJvbGU6IEFYU2VjdGlvbgorCis8c2VjdGlvbiBjbGFzcz0idGVzdGNhc2UiIGlkPSJzZWN0
aW9uLXdpdGgtbmFtZSIgYXJpYS1sYWJlbD0iU2VjdGlvbiBuYW1lIj48L3NlY3Rpb24+CisgICAg
QVhSb2xlOiBBWExhbmRtYXJrUmVnaW9uCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiByZWdpb24K
KworPHNlY3Rpb24gY2xhc3M9InRlc3RjYXNlIiBpZD0ic2VjdGlvbi13aXRob3V0LW5hbWUiPjwv
c2VjdGlvbj4KKyAgICBBWFJvbGU6IEFYU2VjdGlvbgorCis8c3ViIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9InN1YiI+PC9zdWI+CisgICAgQVhSb2xlOiBBWFN1YnNjcmlwdAorICAgIGNvbXB1dGVkUm9s
ZVN0cmluZzogc3Vic2NyaXB0CisKKzxzdXAgY2xhc3M9InRlc3RjYXNlIiBpZD0ic3VwIj48L3N1
cD4KKyAgICBBWFJvbGU6IEFYU3VwZXJzY3JpcHQKKyAgICBjb21wdXRlZFJvbGVTdHJpbmc6IHN1
cGVyc2NyaXB0CisKKzx0aW1lIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InRpbWUiPjwvdGltZT4KKyAg
ICBBWFJvbGU6IEFYU3RhdGljCisgICAgY29tcHV0ZWRSb2xlU3RyaW5nOiB0aW1lCisKKzx1bCBj
bGFzcz0idGVzdGNhc2UiIGlkPSJ1bCI+PC91bD4KKyAgICBBWFJvbGU6IEFYTGlzdAorICAgIGNv
bXB1dGVkUm9sZVN0cmluZzogbGlzdAorCis8bGkgY2xhc3M9InRlc3RjYXNlIiBpZD0idWwtbGkt
ZWxlbWVudCI+PC9saT4KKyAgICBBWFJvbGU6IEFYTGlzdEl0ZW0KKyAgICBjb21wdXRlZFJvbGVT
dHJpbmc6IGxpc3RpdGVtCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDFmNWY3NTQ5YTE3NjIzYjI3OWM4Nzg1MTI4MjcyNzg0M2NiMjlkZGMuLjc2YmRi
M2Y1Yjg2MWRiMGU1NmM5ZjIyZGUyMTRiNGUxOTkzMzkzMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMDg2LDYgKzIwODYsOCBAQCB3ZWJraXQub3Jn
L2IvMTQ4ODA2IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNv
bC9tdWx0aWNvbC1zcAogIyBFbmFibGUgInBob25lIG51bWJlciBsaW5raWZ5aW5nIiB0ZXN0IGZv
ciBpT1MKIGZhc3QvZG9tL2xpbmtpZnktcGhvbmUtbnVtYmVycy5odG1sIFsgUGFzcyBdCiAKK2Fj
Y2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwgWyBQ
YXNzIF0KK2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwg
WyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvdmlkZW8tZWxlbWVudC11cmwtYXR0cmlidXRlLmh0bWwg
WyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvdmlzaWJsZS1jaGFyYWN0ZXItcmFuZ2UuaHRtbCBbIFBh
c3MgXQogYWNjZXNzaWJpbGl0eS9hbmNlc3Rvci1jb21wdXRhdGlvbi5odG1sIFsgUGFzcyBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9hcmlhLWhp
ZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1l
bGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGNhN2NmMzFiYTdjOTg1MjVjOTRkNjBl
ODQ5OTBjNDJkNTRlOGY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVtZW50LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGFuIGFy
aWEtaGlkZGVuIGRpc3BsYXk6Y29udGVudHMgZWxlbWVudCBiZWhhdmVzIGFzIGV4cGVjdGVkLgor
CitUZXN0aW5nIGVsZW1lbnQgI21haW4KK0xhbmRtYXJrTWFpbgorCitUZXN0aW5nIGVsZW1lbnQg
I2xpc3QKK0xpc3QKKworVGVzdGluZyBlbGVtZW50ICNwYXJhZ3JhcGgKK1BhcmFncmFwaAorCitI
aWRpbmcgI21haW4gd2l0aCBhcmlhLWhpZGRlbj0ndHJ1ZScuCitQQVNTOiBBbGwgZWxlbWVudHMg
YXJlIG5vdyBoaWRkZW4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNz
aWJpbGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVt
ZW50LXJvbGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODBhZWZhODljZDM3MDI4ZjU0OWQ2
NWFjMWMyMWVkYmM3NWQ1ZDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL2FjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyMCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgZWxlbWVudHMgd2l0
aCBDU1MgZGlzcGxheTogY29udGVudHMgaGF2ZSB0aGUgY29ycmVjdCByb2xlLgorCis8YSBocmVm
PSJodHRwczovL2FwcGxlLmNvbSIgaWQ9ImxpbmsiIGNsYXNzPSJ0ZXN0Y2FzZSI+PC9hPgorICAg
IFdlYkNvcmVMaW5rCisKKzxhcnRpY2xlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImFydGljbGUiPjwv
YXJ0aWNsZT4KKyAgICBEb2N1bWVudEFydGljbGUKKworPGFzaWRlIGNsYXNzPSJ0ZXN0Y2FzZSIg
aWQ9ImFzaWRlIj48L2FzaWRlPgorICAgIExhbmRtYXJrQ29tcGxlbWVudGFyeQorCis8YmxvY2tx
dW90ZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJibG9ja3F1b3RlIj48L2Jsb2NrcXVvdGU+CisgICAg
QmxvY2txdW90ZQorCis8YnV0dG9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImJ1dHRvbiI+PC9idXR0
b24+CisgICAgQnV0dG9uCisKKzxjb2RlIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImNvZGUiPjwvY29k
ZT4KKyAgICBUZXh0R3JvdXAKKworPGRlbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJkZWwiPjwvZGVs
PgorICAgIERlbGV0aW9uCisKKzxkZXRhaWxzIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRldGFpbHMi
PjwvZGV0YWlscz4KKyAgICBEZXRhaWxzCisKKzxzdW1tYXJ5IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9
InN1bW1hcnkiPjwvc3VtbWFyeT4KKyAgICBTdW1tYXJ5CisKKzxkZm4gY2xhc3M9InRlc3RjYXNl
IiBpZD0iZGZuIj48L2Rmbj4KKyAgICBEZWZpbml0aW9uCisKKzxkaXYgY2xhc3M9InRlc3RjYXNl
IiBpZD0iZGl2Ij48L2Rpdj4KKyAgICBEaXYKKworPGRsIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9ImRs
Ij48L2RsPgorICAgIERlc2NyaXB0aW9uTGlzdAorCis8ZHQgY2xhc3M9InRlc3RjYXNlIiBpZD0i
ZHQiPjwvZHQ+CisgICAgRGVzY3JpcHRpb25MaXN0VGVybQorCis8ZGQgY2xhc3M9InRlc3RjYXNl
IiBpZD0iZGQiPjwvZGQ+CisgICAgRGVzY3JpcHRpb25MaXN0RGV0YWlsCisKKzxsZWdlbmQgY2xh
c3M9InRlc3RjYXNlIiBpZD0ibGVnZW5kIj48L2xlZ2VuZD4KKyAgICBMZWdlbmQKKworPGZpZ3Vy
ZSBjbGFzcz0idGVzdGNhc2UiIGlkPSJmaWd1cmUiPjwvZmlndXJlPgorICAgIEZpZ3VyZQorCis8
Zm9ybSBjbGFzcz0idGVzdGNhc2UiIGlkPSJmb3JtIj48L2Zvcm0+CisgICAgRm9ybQorCis8aDIg
Y2xhc3M9InRlc3RjYXNlIiBpZD0iaDIiPjwvaDI+CisgICAgSGVhZGluZworCis8aHIgY2xhc3M9
InRlc3RjYXNlIiBpZD0iaHIiPgorICAgIEhvcml6b250YWxSdWxlCisKKzxpbnMgY2xhc3M9InRl
c3RjYXNlIiBpZD0iaW5zIj48L2lucz4KKyAgICBJbnNlcnRpb24KKworPGxhYmVsIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9ImxhYmVsIj48L2xhYmVsPgorICAgIExhYmVsCisKKzxtYWluIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9Im1haW4iPjwvbWFpbj4KKyAgICBMYW5kbWFya01haW4KKworPG1hcmsgY2xh
c3M9InRlc3RjYXNlIiBpZD0ibWFyayI+PC9tYXJrPgorICAgIE1hcmsKKworPG1lbnUgY2xhc3M9
InRlc3RjYXNlIiB0eXBlPSJ0b29sYmFyIiBpZD0ibWVudS10b29sYmFyIj48L21lbnU+CisgICAg
VG9vbGJhcgorCis8bmF2IGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9Im5hdiI+PC9uYXY+CisgICAgTGFu
ZG1hcmtOYXZpZ2F0aW9uCisKKzxvbCBjbGFzcz0idGVzdGNhc2UiIGlkPSJvbCI+PC9vbD4KKyAg
ICBMaXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJvbC1saS1lbGVtZW50Ij48L2xpPgor
ICAgIExpc3RJdGVtCisKKzxvdXRwdXQgY2xhc3M9InRlc3RjYXNlIiBpZD0ib3V0cHV0Ij48L291
dHB1dD4KKyAgICBBcHBsaWNhdGlvblN0YXR1cworCis8cCBjbGFzcz0idGVzdGNhc2UiIGlkPSJw
Ij48L3A+CisgICAgUGFyYWdyYXBoCisKKzxwcmUgY2xhc3M9InRlc3RjYXNlIiBpZD0icHJlIj48
L3ByZT4KKyAgICBUZXh0R3JvdXAKKworPHNlY3Rpb24gY2xhc3M9InRlc3RjYXNlIiBpZD0ic2Vj
dGlvbi13aXRoLW5hbWUiIGFyaWEtbGFiZWw9IlNlY3Rpb24gbmFtZSI+PC9zZWN0aW9uPgorICAg
IExhbmRtYXJrUmVnaW9uCisKKzxzZWN0aW9uIGNsYXNzPSJ0ZXN0Y2FzZSIgaWQ9InNlY3Rpb24t
d2l0aG91dC1uYW1lIj48L3NlY3Rpb24+CisgICAgVGV4dEdyb3VwCisKKzxzdWIgY2xhc3M9InRl
c3RjYXNlIiBpZD0ic3ViIj48L3N1Yj4KKyAgICBTdWJzY3JpcHQKKworPHN1cCBjbGFzcz0idGVz
dGNhc2UiIGlkPSJzdXAiPjwvc3VwPgorICAgIFN1cGVyc2NyaXB0CisKKzx0aW1lIGNsYXNzPSJ0
ZXN0Y2FzZSIgaWQ9InRpbWUiPjwvdGltZT4KKyAgICBUaW1lCisKKzx1bCBjbGFzcz0idGVzdGNh
c2UiIGlkPSJ1bCI+PC91bD4KKyAgICBMaXN0CisKKzxsaSBjbGFzcz0idGVzdGNhc2UiIGlkPSJ1
bC1saS1lbGVtZW50Ij48L2xpPgorICAgIExpc3RJdGVtCisKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY0ODM3YTNmNGYwNDc0N2I1NzliMGM1N2RjM2Jk
Mjc3ZmJhMWM5NDYuLmM1YmEyNWNlMTUwY2YwNDg4MjVjOTRkZmU4YjMzNzUzN2NjZThkZDcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNTQwLDYgKzE1
NDAsOCBAQCB3ZWJraXQub3JnL2IvMTQwNTI4IGZhc3QvZW5jb2RpbmcvaWRuLXNlY3VyaXR5Lmh0
bWwgWyBTa2lwIF0KICMjIyMjIyMjIyMjIyMjIyMjIyAgICAgICAgQWNjZXNzaWJpbGl0eSBJc3N1
ZXMgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIwogCithY2Nlc3NpYmlsaXR5L2Rpc3BsYXktY29udGVudHMtZWxlbWVudC1yb2xlcy5odG1s
IFsgU2tpcCBdCisKICMgTWlzc2luZyAncHJlc3MnIHN1cHBvcnQKIGFjY2Vzc2liaWxpdHkvYXhw
cmVzcy1vbi1hcmlhLWJ1dHRvbi5odG1sIFsgU2tpcCBdCiBhY2Nlc3NpYmlsaXR5L3N2Zy1lbGVt
ZW50LXByZXNzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9hY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9hcmlh
LWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgxMDg0N2IwYjMxZmFjOGY1MDJlZjdhNzc3ZmI1N2NjNzc4MjZiM2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1k
aXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Ro
aXMgdGVzdCBlbnN1cmVzIHRoYXQgYW4gYXJpYS1oaWRkZW4gZGlzcGxheTpjb250ZW50cyBlbGVt
ZW50IGJlaGF2ZXMgYXMgZXhwZWN0ZWQuCisKK1Rlc3RpbmcgZWxlbWVudCAjbWFpbgorQVhSb2xl
OiBBWEdyb3VwCisKK1Rlc3RpbmcgZWxlbWVudCAjbGlzdAorQVhSb2xlOiBBWExpc3QKKworVGVz
dGluZyBlbGVtZW50ICNwYXJhZ3JhcGgKK0FYUm9sZTogQVhHcm91cAorCitIaWRpbmcgI21haW4g
d2l0aCBhcmlhLWhpZGRlbj0ndHJ1ZScuCitQQVNTOiBBbGwgZWxlbWVudHMgYXJlIG5vdyBoaWRk
ZW4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwor
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>