<?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>224471</bug_id>
          
          <creation_ts>2021-04-12 21:50:40 -0700</creation_ts>
          <short_desc>Release assert in Document::updateLayout() via HTMLTextAreaElement::childrenChanged</short_desc>
          <delta_ts>2022-06-07 17:37:53 -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>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231298</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=232630</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=240841</see_also>
          <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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Brandon">brandonstewart</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>akeerthi</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>beidson</cc>
    
    <cc>brandonstewart</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gnavamarino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jonlee</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>Morningstar</cc>
    
    <cc>msaboff</cc>
    
    <cc>rackler</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>samuel_white</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1749527</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-12 21:50:40 -0700</bug_when>
    <thetext>e.g.

ASSERTION FAILED: isSafeToUpdateStyleOrLayout(*this)
./dom/Document.cpp(2174) : void WebCore::Document::updateLayout()
1   0x6a2323d49 WTFCrash
2   0x6a2323d69 WTFCrashWithSecurityImplication
3   0x699daa33d WebCore::Document::updateLayout()
4   0x699dabc4e WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks)
5   0x69a02e2ee WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;)
6   0x69a02e966 WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity)
7   0x699fbd864 WebCore::FrameSelection::recomputeCaretRect()
8   0x699fb79b2 WebCore::FrameSelection::updateAppearance()
9   0x699fb76fc WebCore::FrameSelection::updateAndRevealSelection(WebCore::AXTextStateChangeIntent const&amp;)
10  0x699f8c3fd WebCore::FrameSelection::setSelection(WebCore::VisibleSelection const&amp;, WTF::OptionSet&lt;WebCore::FrameSelection::SetSelectionOption&gt;, WebCore::AXTextStateChangeIntent, WebCore::FrameSelection::CursorAlignOnScroll, WebCore::TextGranularity)
11  0x699fb4f06 WebCore::FrameSelection::moveWithoutValidationTo(WebCore::Position const&amp;, WebCore::Position const&amp;, bool, bool, WebCore::SelectionRevealMode, WebCore::AXTextStateChangeIntent const&amp;)
12  0x69a1ca3c0 WebCore::HTMLTextFormControlElement::setSelectionRange(int, int, WebCore::TextFieldSelectionDirection, WebCore::SelectionRevealMode, WebCore::AXTextStateChangeIntent const&amp;)
13  0x69a1cb9c5 WebCore::HTMLTextAreaElement::setValueCommon(WTF::String const&amp;)
14  0x69a1c84b0 WebCore::HTMLTextAreaElement::childrenChanged(WebCore::ContainerNode::ChildChange const&amp;)
15  0x699d6b201 WebCore::ContainerNode::removeAllChildrenWithScriptAssertion(WebCore::ContainerNode::ChildChange::Source, WebCore::ContainerNode::DeferChildrenChanged)

&lt;rdar://76389334&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749528</commentid>
    <comment_count>1</comment_count>
      <attachid>425833</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-12 21:53:40 -0700</bug_when>
    <thetext>Created attachment 425833
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752596</commentid>
    <comment_count>2</comment_count>
      <attachid>426637</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-20 19:36:54 -0700</bug_when>
    <thetext>Created attachment 426637
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752597</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-20 19:37:12 -0700</bug_when>
    <thetext>e.g.
ASSERTION FAILED: isSafeToUpdateStyleOrLayout(*this)
./dom/Document.cpp(2174) : void WebCore::Document::updateLayout()
1   0x6a2323d49 WTFCrash
2   0x6a2323d69 WTFCrashWithSecurityImplication
3   0x699daa33d WebCore::Document::updateLayout()
4   0x699dabc4e WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks)
5   0x69a02e2ee WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&amp;)
6   0x69a02e966 WebCore::VisiblePosition::VisiblePosition(WebCore::Position const&amp;, WebCore::Affinity)
7   0x699fbd864 WebCore::FrameSelection::recomputeCaretRect()
8   0x699fb79b2 WebCore::FrameSelection::updateAppearance()
9   0x699fb76fc WebCore::FrameSelection::updateAndRevealSelection(WebCore::AXTextStateChangeIntent const&amp;)
10  0x699f8c3fd WebCore::FrameSelection::setSelection(WebCore::VisibleSelection const&amp;, WTF::OptionSet&lt;WebCore::FrameSelection::SetSelectionOption&gt;, WebCore::AXTextStateChangeIntent, WebCore::FrameSelection::CursorAlignOnScroll, WebCore::TextGranularity)
11  0x699fb4f06 WebCore::FrameSelection::moveWithoutValidationTo(WebCore::Position const&amp;, WebCore::Position const&amp;, bool, bool, WebCore::SelectionRevealMode, WebCore::AXTextStateChangeIntent const&amp;)
12  0x69a1ca3c0 WebCore::HTMLTextFormControlElement::setSelectionRange(int, int, WebCore::TextFieldSelectionDirection, WebCore::SelectionRevealMode, WebCore::AXTextStateChangeIntent const&amp;)
13  0x69a1cb9c5 WebCore::HTMLTextAreaElement::setValueCommon(WTF::String const&amp;)
14  0x69a1c84b0 WebCore::HTMLTextAreaElement::childrenChanged(WebCore::ContainerNode::ChildChange const&amp;)
15  0x699d6b201 WebCore::ContainerNode::removeAllChildrenWithScriptAssertion(WebCore::ContainerNode::ChildChange::Source, WebCore::ContainerNode::DeferChildrenChanged)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761567</commentid>
    <comment_count>4</comment_count>
      <attachid>429057</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-19 10:00:27 -0700</bug_when>
    <thetext>Created attachment 429057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761569</commentid>
    <comment_count>5</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-19 10:03:18 -0700</bug_when>
    <thetext>I haven&apos;t added a test case because the current one is pretty good and minimal.

Note that the bug cannot be reproduced if the leaf node (n1) has at least one child. The reason why it does not fail is because when the child is added then setValueCommon() is called and value() is initialized to the empty string. Later when replaceChildren() is called the setValueCommon() call finds that the new value (empty string) is equal to value() (also the empty string set before) and then it bails out gracefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761696</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-05-19 14:09:06 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #5)
&gt; I haven&apos;t added a test case because the current one is pretty good and
&gt; minimal.
&gt; 
&gt; Note that the bug cannot be reproduced if the leaf node (n1) has at least
&gt; one child. The reason why it does not fail is because when the child is
&gt; added then setValueCommon() is called and value() is initialized to the
&gt; empty string. Later when replaceChildren() is called the setValueCommon()
&gt; call finds that the new value (empty string) is equal to value() (also the
&gt; empty string set before) and then it bails out gracefully.

Hm... can we include the test in the patch since this isn&apos;t a security bug? The fact we&apos;re hitting release assertion would mean that we&apos;d simply crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761697</commentid>
    <comment_count>7</comment_count>
      <attachid>429057</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-05-19 14:10:03 -0700</bug_when>
    <thetext>Comment on attachment 429057
Patch

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

&gt; Source/WebCore/html/HTMLTextAreaElement.cpp:397
&gt; -    if (normalizedValue == value())
&gt; +    if (normalizedValue == value() || (normalizedValue.isEmpty() &amp;&amp; value().isNull()))

Are you sure this works all the time even when the textarea has some child nodes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761879</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-20 02:50:20 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #7)
&gt; Comment on attachment 429057 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429057&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLTextAreaElement.cpp:397
&gt; &gt; -    if (normalizedValue == value())
&gt; &gt; +    if (normalizedValue == value() || (normalizedValue.isEmpty() &amp;&amp; value().isNull()))
&gt; 
&gt; Are you sure this works all the time even when the textarea has some child
&gt; nodes?

When the text area has some child nodes it does indeed early return as well and thus it does not ever call all the other following methods which is perhaps undesirable. I&apos;ll give it an extra thought.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761883</commentid>
    <comment_count>9</comment_count>
      <attachid>429057</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-05-20 02:52:50 -0700</bug_when>
    <thetext>Comment on attachment 429057
Patch

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

&gt;&gt;&gt; Source/WebCore/html/HTMLTextAreaElement.cpp:397
&gt;&gt;&gt; +    if (normalizedValue == value() || (normalizedValue.isEmpty() &amp;&amp; value().isNull()))
&gt;&gt; 
&gt;&gt; Are you sure this works all the time even when the textarea has some child nodes?
&gt; 
&gt; When the text area has some child nodes it does indeed early return as well and thus it does not ever call all the other following methods which is perhaps undesirable. I&apos;ll give it an extra thought.

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767488</commentid>
    <comment_count>10</comment_count>
      <attachid>430760</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-06-07 10:22:29 -0700</bug_when>
    <thetext>Created attachment 430760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767574</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-06-07 15:09:00 -0700</bug_when>
    <thetext>Hm... looks like there are a few test failures?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768904</commentid>
    <comment_count>12</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-06-11 03:28:53 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #11)
&gt; Hm... looks like there are a few test failures?

I&apos;m working on those. Several tests assume that changes in the selection via JS are synchronous so that&apos;s why they&apos;re failing. I was a bit worried about the a11y ones because I am not sure if we&apos;re breaking any assumption in mac a11y code. However the patch does not change the behaviour in case the change is user-triggered so I guess we should be safe on that regard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772701</commentid>
    <comment_count>13</comment_count>
      <attachid>432276</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-06-25 08:55:33 -0700</bug_when>
    <thetext>Created attachment 432276
Patch

Fixing some a11y tests. Still some of them failing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787241</commentid>
    <comment_count>14</comment_count>
      <attachid>436407</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-08-25 11:50:58 -0700</bug_when>
    <thetext>Created attachment 436407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787499</commentid>
    <comment_count>15</comment_count>
      <attachid>436479</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-08-26 00:57:19 -0700</bug_when>
    <thetext>Created attachment 436479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788341</commentid>
    <comment_count>16</comment_count>
      <attachid>436479</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-08-28 15:17:53 -0700</bug_when>
    <thetext>Comment on attachment 436479
Patch

Looks like some tests fare failing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788451</commentid>
    <comment_count>17</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-08-30 00:21:21 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #16)
&gt; Comment on attachment 436479 [details]
&gt; Patch
&gt; 
&gt; Looks like some tests fare failing?

Yeah, both

   accessibility/mac/selection-boundary-userinfo.html
   fast/repaint/4776765.html

work fine in my local mac machine. So perhaps there are timing issues there. WRT to 

   accessibility/mac/selection-sync.html

I&apos;d need some assistance from a a11y expert, because I&apos;m having a hard time trying to make it work. I applied the same pattern used to make the other tests work (i.e. let the main thread kick in so we could asynchronously get notified) but it didn&apos;t work in the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799626</commentid>
    <comment_count>18</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-01 16:40:42 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #17)
&gt; 
&gt; I&apos;d need some assistance from a a11y expert, because I&apos;m having a hard time
&gt; trying to make it work. I applied the same pattern used to make the other
&gt; tests work (i.e. let the main thread kick in so we could asynchronously get
&gt; notified) but it didn&apos;t work in the end.

James, can you help, or know someone who can?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799627</commentid>
    <comment_count>19</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2021-10-01 16:42:14 -0700</bug_when>
    <thetext>Chris F or Andres G, perhaps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799640</commentid>
    <comment_count>20</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-01 17:02:12 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #18)
&gt; (In reply to Sergio Villar Senin from comment #17)
&gt; &gt; 
&gt; &gt; I&apos;d need some assistance from a a11y expert, because I&apos;m having a hard time
&gt; &gt; trying to make it work. I applied the same pattern used to make the other
&gt; &gt; tests work (i.e. let the main thread kick in so we could asynchronously get
&gt; &gt; notified) but it didn&apos;t work in the end.
&gt; 
&gt; James, can you help, or know someone who can?

I think the problem is that you&apos;re returning early before notifying accessibility of changes

    if (!(options &amp; IsUserTriggered)) {
 456        scheduleAppearanceUpdateAfterStyleChange();
 457        return;
 458    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799922</commentid>
    <comment_count>21</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-10-03 15:39:08 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #20)
&gt; (In reply to Brady Eidson from comment #18)
&gt; &gt; (In reply to Sergio Villar Senin from comment #17)
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;d need some assistance from a a11y expert, because I&apos;m having a hard time
&gt; &gt; &gt; trying to make it work. I applied the same pattern used to make the other
&gt; &gt; &gt; tests work (i.e. let the main thread kick in so we could asynchronously get
&gt; &gt; &gt; notified) but it didn&apos;t work in the end.
&gt; &gt; 
&gt; &gt; James, can you help, or know someone who can?
&gt; 
&gt; I think the problem is that you&apos;re returning early before notifying
&gt; accessibility of changes
&gt; 
&gt;     if (!(options &amp; IsUserTriggered)) {
&gt;  456        scheduleAppearanceUpdateAfterStyleChange();
&gt;  457        return;
&gt;  458    }

My a11y knowledge is very limited honestly, what&apos;s the expected way to do that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800048</commentid>
    <comment_count>22</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-04 07:39:13 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #21)
&gt; (In reply to chris fleizach from comment #20)
&gt; &gt; (In reply to Brady Eidson from comment #18)
&gt; &gt; &gt; (In reply to Sergio Villar Senin from comment #17)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I&apos;d need some assistance from a a11y expert, because I&apos;m having a hard time
&gt; &gt; &gt; &gt; trying to make it work. I applied the same pattern used to make the other
&gt; &gt; &gt; &gt; tests work (i.e. let the main thread kick in so we could asynchronously get
&gt; &gt; &gt; &gt; notified) but it didn&apos;t work in the end.
&gt; &gt; &gt; 
&gt; &gt; &gt; James, can you help, or know someone who can?
&gt; &gt; 
&gt; &gt; I think the problem is that you&apos;re returning early before notifying
&gt; &gt; accessibility of changes
&gt; &gt; 
&gt; &gt;     if (!(options &amp; IsUserTriggered)) {
&gt; &gt;  456        scheduleAppearanceUpdateAfterStyleChange();
&gt; &gt;  457        return;
&gt; &gt;  458    }
&gt; 
&gt; My a11y knowledge is very limited honestly, what&apos;s the expected way to do
&gt; that?

As Chris pointed out, since you are returning in FrameSelection::setSelection before calling updateAndRevealSelection, notifyAccessibilityForSelectionChange is never called, and thus accessibility clients are not notified of selection changes. You may try calling notifyAccessibilityForSelectionChange before that early return. Not sure that that would work though without first calling the rest of updateAndRevealSelection, but worth the try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801074</commentid>
    <comment_count>23</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-10-06 08:13:54 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #22)
&gt; (In reply to Sergio Villar Senin from comment #21)
&gt; &gt; (In reply to chris fleizach from comment #20)
&gt; &gt; &gt; (In reply to Brady Eidson from comment #18)
&gt; &gt; &gt; &gt; (In reply to Sergio Villar Senin from comment #17)
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; I&apos;d need some assistance from a a11y expert, because I&apos;m having a hard time
&gt; &gt; &gt; &gt; &gt; trying to make it work. I applied the same pattern used to make the other
&gt; &gt; &gt; &gt; &gt; tests work (i.e. let the main thread kick in so we could asynchronously get
&gt; &gt; &gt; &gt; &gt; notified) but it didn&apos;t work in the end.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; James, can you help, or know someone who can?
&gt; &gt; &gt; 
&gt; &gt; &gt; I think the problem is that you&apos;re returning early before notifying
&gt; &gt; &gt; accessibility of changes
&gt; &gt; &gt; 
&gt; &gt; &gt;     if (!(options &amp; IsUserTriggered)) {
&gt; &gt; &gt;  456        scheduleAppearanceUpdateAfterStyleChange();
&gt; &gt; &gt;  457        return;
&gt; &gt; &gt;  458    }
&gt; &gt; 
&gt; &gt; My a11y knowledge is very limited honestly, what&apos;s the expected way to do
&gt; &gt; that?
&gt; 
&gt; As Chris pointed out, since you are returning in
&gt; FrameSelection::setSelection before calling updateAndRevealSelection,
&gt; notifyAccessibilityForSelectionChange is never called, and thus
&gt; accessibility clients are not notified of selection changes. You may try
&gt; calling notifyAccessibilityForSelectionChange before that early return. Not
&gt; sure that that would work though without first calling the rest of
&gt; updateAndRevealSelection, but worth the try.


Well, notifyAccessibilityForSelectionChange will be eventually called if you follow the call path:
scheduleAppearanceUpdateAfterStyleChang-&gt;appearanceUpdateTimerFired-&gt;updateAppearanceAfterLayout-&gt;updateAppearanceAfterLayoutOrStyleChange-&gt;updateAndRevealSelection-&gt;notifyAccessibilityForSelectionChange

The thing is that the update is not synchronous as it was before the path (note all the changes I had to make to test cases). As I mentioned here the problem I have is with the following tesst accessibility/mac/selection-sync.html.

Both the test contents and the name suggest that a11y expect those selection change events to be synchronous. I was wondering whether that&apos;s a requirement or the test could be skipped/adapted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801084</commentid>
    <comment_count>24</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-06 08:25:54 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #23)
&gt; (In reply to Andres Gonzalez from comment #22)
&gt; &gt; (In reply to Sergio Villar Senin from comment #21)
&gt; &gt; &gt; (In reply to chris fleizach from comment #20)
&gt; &gt; &gt; &gt; (In reply to Brady Eidson from comment #18)
&gt; &gt; &gt; &gt; &gt; (In reply to Sergio Villar Senin from comment #17)
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; I&apos;d need some assistance from a a11y expert, because I&apos;m having a hard time
&gt; &gt; &gt; &gt; &gt; &gt; trying to make it work. I applied the same pattern used to make the other
&gt; &gt; &gt; &gt; &gt; &gt; tests work (i.e. let the main thread kick in so we could asynchronously get
&gt; &gt; &gt; &gt; &gt; &gt; notified) but it didn&apos;t work in the end.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; James, can you help, or know someone who can?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think the problem is that you&apos;re returning early before notifying
&gt; &gt; &gt; &gt; accessibility of changes
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;     if (!(options &amp; IsUserTriggered)) {
&gt; &gt; &gt; &gt;  456        scheduleAppearanceUpdateAfterStyleChange();
&gt; &gt; &gt; &gt;  457        return;
&gt; &gt; &gt; &gt;  458    }
&gt; &gt; &gt; 
&gt; &gt; &gt; My a11y knowledge is very limited honestly, what&apos;s the expected way to do
&gt; &gt; &gt; that?
&gt; &gt; 
&gt; &gt; As Chris pointed out, since you are returning in
&gt; &gt; FrameSelection::setSelection before calling updateAndRevealSelection,
&gt; &gt; notifyAccessibilityForSelectionChange is never called, and thus
&gt; &gt; accessibility clients are not notified of selection changes. You may try
&gt; &gt; calling notifyAccessibilityForSelectionChange before that early return. Not
&gt; &gt; sure that that would work though without first calling the rest of
&gt; &gt; updateAndRevealSelection, but worth the try.
&gt; 
&gt; 
&gt; Well, notifyAccessibilityForSelectionChange will be eventually called if you
&gt; follow the call path:
&gt; scheduleAppearanceUpdateAfterStyleChang-&gt;appearanceUpdateTimerFired-
&gt; &gt;updateAppearanceAfterLayout-&gt;updateAppearanceAfterLayoutOrStyleChange-
&gt; &gt;updateAndRevealSelection-&gt;notifyAccessibilityForSelectionChange
&gt; 
&gt; The thing is that the update is not synchronous as it was before the path
&gt; (note all the changes I had to make to test cases). As I mentioned here the
&gt; problem I have is with the following tesst
&gt; accessibility/mac/selection-sync.html.
&gt; 
&gt; Both the test contents and the name suggest that a11y expect those selection
&gt; change events to be synchronous. I was wondering whether that&apos;s a
&gt; requirement or the test could be skipped/adapted.

Thanks Sergio for the clarification. Could you please mark accessibility/mac/selection-sync.html to be skipped, and file a bug assigned to me? It would be easier to fix this test once I can build with your patch, tried to apply it but ran into build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801116</commentid>
    <comment_count>25</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-10-06 08:57:38 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #24)
&gt; &gt; &gt; As Chris pointed out, since you are returning in
&gt; &gt; &gt; FrameSelection::setSelection before calling updateAndRevealSelection,
&gt; &gt; &gt; notifyAccessibilityForSelectionChange is never called, and thus
&gt; &gt; &gt; accessibility clients are not notified of selection changes. You may try
&gt; &gt; &gt; calling notifyAccessibilityForSelectionChange before that early return. Not
&gt; &gt; &gt; sure that that would work though without first calling the rest of
&gt; &gt; &gt; updateAndRevealSelection, but worth the try.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Well, notifyAccessibilityForSelectionChange will be eventually called if you
&gt; &gt; follow the call path:
&gt; &gt; scheduleAppearanceUpdateAfterStyleChang-&gt;appearanceUpdateTimerFired-
&gt; &gt; &gt;updateAppearanceAfterLayout-&gt;updateAppearanceAfterLayoutOrStyleChange-
&gt; &gt; &gt;updateAndRevealSelection-&gt;notifyAccessibilityForSelectionChange
&gt; &gt; 
&gt; &gt; The thing is that the update is not synchronous as it was before the path
&gt; &gt; (note all the changes I had to make to test cases). As I mentioned here the
&gt; &gt; problem I have is with the following tesst
&gt; &gt; accessibility/mac/selection-sync.html.
&gt; &gt; 
&gt; &gt; Both the test contents and the name suggest that a11y expect those selection
&gt; &gt; change events to be synchronous. I was wondering whether that&apos;s a
&gt; &gt; requirement or the test could be skipped/adapted.
&gt; 
&gt; Thanks Sergio for the clarification. Could you please mark
&gt; accessibility/mac/selection-sync.html to be skipped, and file a bug assigned
&gt; to me? It would be easier to fix this test once I can build with your patch,
&gt; tried to apply it but ran into build issues.

Sure thing. My main concern here is whether this kind of change could break a11y stuff in the mac because as you can see in the test changes, the way a11y events are emitted changes completely (it&apos;s async).

Anyway I&apos;ll update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801119</commentid>
    <comment_count>26</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-06 09:04:03 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #25)
&gt; (In reply to Andres Gonzalez from comment #24)
&gt; &gt; &gt; &gt; As Chris pointed out, since you are returning in
&gt; &gt; &gt; &gt; FrameSelection::setSelection before calling updateAndRevealSelection,
&gt; &gt; &gt; &gt; notifyAccessibilityForSelectionChange is never called, and thus
&gt; &gt; &gt; &gt; accessibility clients are not notified of selection changes. You may try
&gt; &gt; &gt; &gt; calling notifyAccessibilityForSelectionChange before that early return. Not
&gt; &gt; &gt; &gt; sure that that would work though without first calling the rest of
&gt; &gt; &gt; &gt; updateAndRevealSelection, but worth the try.
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Well, notifyAccessibilityForSelectionChange will be eventually called if you
&gt; &gt; &gt; follow the call path:
&gt; &gt; &gt; scheduleAppearanceUpdateAfterStyleChang-&gt;appearanceUpdateTimerFired-
&gt; &gt; &gt; &gt;updateAppearanceAfterLayout-&gt;updateAppearanceAfterLayoutOrStyleChange-
&gt; &gt; &gt; &gt;updateAndRevealSelection-&gt;notifyAccessibilityForSelectionChange
&gt; &gt; &gt; 
&gt; &gt; &gt; The thing is that the update is not synchronous as it was before the path
&gt; &gt; &gt; (note all the changes I had to make to test cases). As I mentioned here the
&gt; &gt; &gt; problem I have is with the following tesst
&gt; &gt; &gt; accessibility/mac/selection-sync.html.
&gt; &gt; &gt; 
&gt; &gt; &gt; Both the test contents and the name suggest that a11y expect those selection
&gt; &gt; &gt; change events to be synchronous. I was wondering whether that&apos;s a
&gt; &gt; &gt; requirement or the test could be skipped/adapted.
&gt; &gt; 
&gt; &gt; Thanks Sergio for the clarification. Could you please mark
&gt; &gt; accessibility/mac/selection-sync.html to be skipped, and file a bug assigned
&gt; &gt; to me? It would be easier to fix this test once I can build with your patch,
&gt; &gt; tried to apply it but ran into build issues.
&gt; 
&gt; Sure thing. My main concern here is whether this kind of change could break
&gt; a11y stuff in the mac because as you can see in the test changes, the way
&gt; a11y events are emitted changes completely (it&apos;s async).
&gt; 
&gt; Anyway I&apos;ll update the patch.

We should handle async notifications in accessibility. And we are moving towards fully async change updates, especially with the introduction of the isolated tree mode where accessibility requests are handled off the main thread. So this should be inline with what we are doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801145</commentid>
    <comment_count>27</comment_count>
      <attachid>440381</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-10-06 09:50:21 -0700</bug_when>
    <thetext>Created attachment 440381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801146</commentid>
    <comment_count>28</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-10-06 09:51:37 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #26)
&gt; &gt; Sure thing. My main concern here is whether this kind of change could break
&gt; &gt; a11y stuff in the mac because as you can see in the test changes, the way
&gt; &gt; a11y events are emitted changes completely (it&apos;s async).
&gt; &gt; 
&gt; &gt; Anyway I&apos;ll update the patch.
&gt; 
&gt; We should handle async notifications in accessibility. And we are moving
&gt; towards fully async change updates, especially with the introduction of the
&gt; isolated tree mode where accessibility requests are handled off the main
&gt; thread. So this should be inline with what we are doing.

Sounds great, thanks for your assistance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801260</commentid>
    <comment_count>29</comment_count>
      <attachid>440413</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-10-06 12:30:55 -0700</bug_when>
    <thetext>Created attachment 440413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801553</commentid>
    <comment_count>30</comment_count>
      <attachid>440491</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-10-07 02:30:22 -0700</bug_when>
    <thetext>Created attachment 440491
Patch

Win and WK1 fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801978</commentid>
    <comment_count>31</comment_count>
      <attachid>440587</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-10-08 03:15:29 -0700</bug_when>
    <thetext>Created attachment 440587
Patch

More mac expectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809830</commentid>
    <comment_count>32</comment_count>
      <attachid>440587</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2021-10-28 14:20:47 -0700</bug_when>
    <thetext>Comment on attachment 440587
Patch

Looks like there are still some issues with updated tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811067</commentid>
    <comment_count>33</comment_count>
      <attachid>443070</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-02 01:49:49 -0700</bug_when>
    <thetext>Created attachment 443070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811180</commentid>
    <comment_count>34</comment_count>
      <attachid>443106</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-02 10:35:36 -0700</bug_when>
    <thetext>Created attachment 443106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811793</commentid>
    <comment_count>35</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-04 02:00:06 -0700</bug_when>
    <thetext>Gentle ping for reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813531</commentid>
    <comment_count>36</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-10 03:11:10 -0800</bug_when>
    <thetext>Ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814876</commentid>
    <comment_count>37</comment_count>
      <attachid>443106</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-11-14 11:22:04 -0800</bug_when>
    <thetext>Comment on attachment 443106
Patch

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

&gt; Source/WebCore/editing/FrameSelection.cpp:470
&gt; +    auto document = Ref { *m_document };

Can&apos;t we just do: Ref document = *m_document?

&gt; Source/WebCore/editing/FrameSelection.cpp:2515
&gt; +    m_document-&gt;updateLayoutIgnorePendingStylesheets();
&gt; +    updateAppearanceAfterLayout();

Why can&apos;t we call updateSelectionAppearanceNow instead? Please explain in the change log.

&gt; Source/WebCore/html/HTMLFormControlElement.cpp:495
&gt; +    document().selection().updateAppearanceIfRevealingSelectionIsNeeded();

Do: Ref { document().selection() }-&gt;updateAppearanceIfRevealingSelectionIsNeeded()
so that there is no change of the document getting removed
even if this form control element is adopted to another document.

&gt; LayoutTests/ChangeLog:13
&gt; +        Same situation for other tests that do not involve repaint rects but a11y notifications. We

Nit: but *trigger accessibility tree updates*?

&gt; LayoutTests/accessibility/mac/selection-boundary-userinfo.html:165
&gt; +        function yieldMainThread() {

waitForAnimationFrame? Also { should be on new line per WebKit style guideline.

&gt; LayoutTests/accessibility/mac/selection-boundary-userinfo.html:167
&gt; +            requestAnimationFrame(() =&gt; { resolve(); });

You can just do this: requestAnimationFrame(resolve);

&gt; LayoutTests/accessibility/mac/selection-boundary-userinfo.html:187
&gt; +        focusElement(&quot;textbox&quot;)
&gt; +          .then(() =&gt; moveAsync(true))
&gt; +          .then(() =&gt; focusElement(&quot;input&quot;))
&gt; +          .then(() =&gt; moveAsync(false))
&gt; +          .then(() =&gt; focusElement(&quot;textarea&quot;))
&gt; +          .then(() =&gt; moveAsync(true));

Add async keyword to the outer function and do:
await moveAsync(true);
await focusElement(&quot;input&quot;);
...

&gt; LayoutTests/accessibility/mac/selection-change-userinfo.html:240
&gt; +        focusTextBox()
&gt; +          .then(() =&gt; resetPosition())

Please use async &amp; await here. This is so much boilerplate!

&gt; LayoutTests/fast/repaint/selection-gap-absolute-child.html:16
&gt; +        setTimeout(function() {

Why we don&apos;t need to wait for RAF? Please explain in the change log.

&gt; LayoutTests/fast/repaint/selection-gap-flipped-absolute-child.html:16
&gt; +        setTimeout(function() {

Ditto.

&gt; LayoutTests/fast/repaint/selection-gap-transformed-absolute-child.html:16
&gt; +        setTimeout(function() {

Ditto.

&gt; LayoutTests/fast/repaint/selection-gap-transformed-fixed-child.html:16
&gt; +        setTimeout(function() {

Ditto.

&gt; LayoutTests/fast/repaint/selection-ruby-rl.html:23
&gt; +    setTimeout(function() {

Ditto.

&gt; LayoutTests/fast/repaint/text-selection-overflow-hidden.html:25
&gt; +        setTimeout(function() {

Ditto.

&gt; LayoutTests/platform/mac/TestExpectations:2450
&gt; +
&gt; +webkit.org/b/231298 accessibility/mac/selection-sync.html [ Skip ] # Timeout

We&apos;re losing test coverage here. Can we fix the test before we land this patch?

&gt; LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:-7
&gt; -(repaint rects
&gt; -  (rect 0 0 100 100)
&gt; -)

Seems like this test is broken?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815154</commentid>
    <comment_count>38</comment_count>
      <attachid>443106</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-15 11:40:13 -0800</bug_when>
    <thetext>Comment on attachment 443106
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/editing/FrameSelection.cpp:470
&gt;&gt; +    auto document = Ref { *m_document };
&gt; 
&gt; Can&apos;t we just do: Ref document = *m_document?

Sure, didn&apos;t know that was preferred.

&gt;&gt; Source/WebCore/editing/FrameSelection.cpp:2515
&gt;&gt; +    updateAppearanceAfterLayout();
&gt; 
&gt; Why can&apos;t we call updateSelectionAppearanceNow instead? Please explain in the change log.

I guess we can indeed, I&apos;ll switch to that.

&gt;&gt; Source/WebCore/html/HTMLFormControlElement.cpp:495
&gt;&gt; +    document().selection().updateAppearanceIfRevealingSelectionIsNeeded();
&gt; 
&gt; Do: Ref { document().selection() }-&gt;updateAppearanceIfRevealingSelectionIsNeeded()
&gt; so that there is no change of the document getting removed
&gt; even if this form control element is adopted to another document.

I guess you mean Ref { document() }-&gt;selection(). The FrameSelection is not ref counted.

&gt;&gt; LayoutTests/ChangeLog:13
&gt;&gt; +        Same situation for other tests that do not involve repaint rects but a11y notifications. We
&gt; 
&gt; Nit: but *trigger accessibility tree updates*?

Yep, much more precise indeed.

&gt;&gt; LayoutTests/accessibility/mac/selection-boundary-userinfo.html:165
&gt;&gt; +        function yieldMainThread() {
&gt; 
&gt; waitForAnimationFrame? Also { should be on new line per WebKit style guideline.

OK will rename it.

&gt;&gt; LayoutTests/accessibility/mac/selection-boundary-userinfo.html:167
&gt;&gt; +            requestAnimationFrame(() =&gt; { resolve(); });
&gt; 
&gt; You can just do this: requestAnimationFrame(resolve);

OK.

&gt;&gt; LayoutTests/accessibility/mac/selection-boundary-userinfo.html:187
&gt;&gt; +          .then(() =&gt; moveAsync(true));
&gt; 
&gt; Add async keyword to the outer function and do:
&gt; await moveAsync(true);
&gt; await focusElement(&quot;input&quot;);
&gt; ...

There is not really an &quot;outer&quot; function in this case, just a chain of alternating calls. I tried the async/await approach but never managed to get the right order in the calls.

&gt;&gt; LayoutTests/accessibility/mac/selection-change-userinfo.html:240
&gt;&gt; +          .then(() =&gt; resetPosition())
&gt; 
&gt; Please use async &amp; await here. This is so much boilerplate!

Same reply than above, this was the only way I could make it work.

&gt;&gt; LayoutTests/fast/repaint/selection-gap-absolute-child.html:16
&gt;&gt; +        setTimeout(function() {
&gt; 
&gt; Why we don&apos;t need to wait for RAF? Please explain in the change log.

I could use any of those. I&apos;ll switch to RAF. Ditto for the comments below.

&gt;&gt; LayoutTests/platform/mac/TestExpectations:2450
&gt;&gt; +webkit.org/b/231298 accessibility/mac/selection-sync.html [ Skip ] # Timeout
&gt; 
&gt; We&apos;re losing test coverage here. Can we fix the test before we land this patch?

Not sure, Andres Gonzalez asked me to file the bug. He mentioned he&apos;d take care.

&gt;&gt; LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:-7
&gt;&gt; -)
&gt; 
&gt; Seems like this test is broken?

I am honestly not sure. When I checked the expectations, this change make win match the mac-wk2 results so I assumed it was a step in the right direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815158</commentid>
    <comment_count>39</comment_count>
      <attachid>444286</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-15 11:50:22 -0800</bug_when>
    <thetext>Created attachment 444286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815410</commentid>
    <comment_count>40</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-16 02:28:40 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #39)
&gt; Created attachment 444286 [details]
&gt; Patch

After checking the EWS results it looks like using setTimeout() as in the original patch is safer than RAF which does produce flaky results in under stress conditions. Any thoughts on that Ryosuke?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815621</commentid>
    <comment_count>41</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-11-16 13:29:08 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #40)
&gt; (In reply to Sergio Villar Senin from comment #39)
&gt; &gt; Created attachment 444286 [details]
&gt; &gt; Patch
&gt; 
&gt; After checking the EWS results it looks like using setTimeout() as in the
&gt; original patch is safer than RAF which does produce flaky results in under
&gt; stress conditions. Any thoughts on that Ryosuke?

Okay, please mention that in the change log or in a comment so that people will know why we&apos;re using setTimeout in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815622</commentid>
    <comment_count>42</comment_count>
      <attachid>444286</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-11-16 13:31:31 -0800</bug_when>
    <thetext>Comment on attachment 444286
Patch

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

&gt; LayoutTests/accessibility/mac/selection-boundary-userinfo.html:187
&gt; +        focusElement(&quot;textbox&quot;)
&gt; +          .then(() =&gt; moveAsync(true))
&gt; +          .then(() =&gt; focusElement(&quot;input&quot;))
&gt; +          .then(() =&gt; moveAsync(false))
&gt; +          .then(() =&gt; focusElement(&quot;textarea&quot;))
&gt; +          .then(() =&gt; moveAsync(true));

Wrap this in an anonymous function like so:
(async function () {
    await focusElement(&quot;textbox&quot;);
    await moveAsync(true);
    ...
})();

&gt; LayoutTests/accessibility/mac/selection-change-userinfo.html:211
&gt; +	function moveSelection(direction, granularity) {

Make this function async so that:
async function moveSelection(direction, granularity)
{

&gt; LayoutTests/accessibility/mac/selection-change-userinfo.html:246
&gt; +        focusTextBox()
&gt; +          .then(() =&gt; resetPosition())
&gt; +          .then(() =&gt; moveSelection(&quot;forward&quot;, gran[0]))
&gt; +          .then(() =&gt; moveSelection(&quot;backward&quot;, gran[0]))
&gt; +          .then(() =&gt; moveSelection(&quot;forward&quot;, gran[1]))
&gt; +          .then(() =&gt; moveSelection(&quot;backward&quot;, gran[1]))
&gt; +          .then(() =&gt; moveSelection(&quot;forward&quot;, gran[2]))
&gt; +          .then(() =&gt; moveSelection(&quot;backward&quot;, gran[2]))

Then you should be able to do this here:
await focusTextBox();
await resetPosition();
await moveSelection(&quot;forward&quot;, gran[0]);
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815954</commentid>
    <comment_count>43</comment_count>
      <attachid>444286</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-17 08:43:27 -0800</bug_when>
    <thetext>Comment on attachment 444286
Patch

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

&gt;&gt; LayoutTests/accessibility/mac/selection-boundary-userinfo.html:187
&gt;&gt; +          .then(() =&gt; moveAsync(true));
&gt; 
&gt; Wrap this in an anonymous function like so:
&gt; (async function () {
&gt;     await focusElement(&quot;textbox&quot;);
&gt;     await moveAsync(true);
&gt;     ...
&gt; })();

Right, completely forgot about your previous comment. Will replace it.

&gt;&gt; LayoutTests/accessibility/mac/selection-change-userinfo.html:211
&gt;&gt; +	function moveSelection(direction, granularity) {
&gt; 
&gt; Make this function async so that:
&gt; async function moveSelection(direction, granularity)
&gt; {

As it returns a Promise I think I can leave it as is and...

&gt;&gt; LayoutTests/accessibility/mac/selection-change-userinfo.html:246
&gt;&gt; +          .then(() =&gt; moveSelection(&quot;backward&quot;, gran[2]))
&gt; 
&gt; Then you should be able to do this here:
&gt; await focusTextBox();
&gt; await resetPosition();
&gt; await moveSelection(&quot;forward&quot;, gran[0]);
&gt; ...

Apply the same pattern than in the other file with the anonymous async function using await to wait for the results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815957</commentid>
    <comment_count>44</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-17 08:49:42 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #41)
&gt; (In reply to Sergio Villar Senin from comment #40)
&gt; &gt; (In reply to Sergio Villar Senin from comment #39)
&gt; &gt; &gt; Created attachment 444286 [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; After checking the EWS results it looks like using setTimeout() as in the
&gt; &gt; original patch is safer than RAF which does produce flaky results in under
&gt; &gt; stress conditions. Any thoughts on that Ryosuke?
&gt; 
&gt; Okay, please mention that in the change log or in a comment so that people
&gt; will know why we&apos;re using setTimeout in the future.

Sure. I&apos;ve also fixed the indentation which was kind of weird in the previous patch I posted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815960</commentid>
    <comment_count>45</comment_count>
      <attachid>444528</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-11-17 08:52:51 -0800</bug_when>
    <thetext>Created attachment 444528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830537</commentid>
    <comment_count>46</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-01-13 06:42:40 -0800</bug_when>
    <thetext>Gentle ping for reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831955</commentid>
    <comment_count>47</comment_count>
      <attachid>444528</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-19 00:24:51 -0800</bug_when>
    <thetext>Comment on attachment 444528
Patch

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

&gt; Source/WebCore/editing/FrameSelection.cpp:2515
&gt; +    m_document-&gt;updateLayoutIgnorePendingStylesheets();

Why do we need this separate layout update in addition to calling updateSelectionAppearanceNow below?
Please explain it in the change log or even add a comment here.

&gt; Source/WebCore/html/HTMLFormControlElement.cpp:496
&gt;      focus();
&gt; +    Ref { document() }-&gt;selection().updateAppearanceIfRevealingSelectionIsNeeded();

Why is calling focus() not enough here? Please explain it in the change log and/or add a comment here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832040</commentid>
    <comment_count>48</comment_count>
      <attachid>449486</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-01-19 08:45:33 -0800</bug_when>
    <thetext>Created attachment 449486
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832374</commentid>
    <comment_count>49</comment_count>
      <attachid>449559</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-01-20 01:22:59 -0800</bug_when>
    <thetext>Created attachment 449559
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832420</commentid>
    <comment_count>50</comment_count>
      <attachid>449575</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-01-20 08:08:13 -0800</bug_when>
    <thetext>Created attachment 449575
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835611</commentid>
    <comment_count>51</comment_count>
      <attachid>450422</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-01-31 11:32:48 -0800</bug_when>
    <thetext>Created attachment 450422
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835631</commentid>
    <comment_count>52</comment_count>
      <attachid>450429</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-01-31 12:12:44 -0800</bug_when>
    <thetext>Created attachment 450429
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835667</commentid>
    <comment_count>53</comment_count>
      <attachid>450429</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-31 13:21:10 -0800</bug_when>
    <thetext>Comment on attachment 450429
Patch for landing

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

&gt; Source/WebCore/html/HTMLFormControlElement.cpp:35
&gt; +#include &quot;FrameSelection.h&quot;

Is this new include needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835957</commentid>
    <comment_count>54</comment_count>
      <attachid>450525</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-02-01 07:27:24 -0800</bug_when>
    <thetext>Created attachment 450525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835958</commentid>
    <comment_count>55</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-02-01 07:32:24 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #53)
&gt; Comment on attachment 450429 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=450429&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLFormControlElement.cpp:35
&gt; &gt; +#include &quot;FrameSelection.h&quot;
&gt; 
&gt; Is this new include needed?

Not really, it was automatically added by my IDE (it compiles units individually).

BTW, if we land this I guess I should send something to the webkit-dev list mentioning the behaviour change, because people might develop tests in which they expect that setting/extending a selection is a synchronous operation. I&apos;ve checked the specs (both the HTML5 and the selection one) and didn&apos;t see any reference to whether the operation should be sync/async so I guess we&apos;re safe on that side, but still I guess a clarification does not hurt. Ryosuke WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835961</commentid>
    <comment_count>56</comment_count>
      <attachid>450526</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-02-01 07:41:16 -0800</bug_when>
    <thetext>Created attachment 450526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848608</commentid>
    <comment_count>57</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-03-06 16:05:47 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #56)
&gt; Created attachment 450526 [details]
&gt; Patch

…

&gt; {
&gt;     &quot;Skipped&quot;: [],
&gt;     &quot;Failed&quot;: [],
&gt;     &quot;Crashed&quot;: [],
&gt;     &quot;Timedout&quot;: [
&gt;         {
&gt;             &quot;name&quot;: &quot;TestWebKitAPI.AppHighlights.AppHighlightCreateAndRestoreAndScroll&quot;,
&gt;             &quot;output&quot;: &quot;2022-02-01 10:11:04.246 TestWebKitAPI[26200:292609] Writing analzed variants.\n2022-02-01 10:11:05.778 TestWebKitAPI[26200:292609] Writing analzed variants.\n2022-02-01 10:11:08.339 TestWebKitAPI[26200:292609] Expected Highlights to be populated and the page to scroll.\n&quot;
&gt;         }
&gt;     ]
&gt; }

I looked into the failing API test in the latest iteration of the patch, and it looks like a legitimate bug: what&apos;s happening here is that App Highlight restoration code (i.e., when restoring and scrolling to reveal a Quick Note) uses TemporarySelectionChange to select and scroll to reveal the highlight range; currently, we assume that this scrolling happens synchronously, since we revert the selection to the original range at the end of `AppHighlightStorage::attemptToRestoreHighlightAndScroll` when the TemporarySelectionChange falls out of scope.

However, since this isn&apos;t a user-triggered selection change, scrolling no longer happens immediately after this patch. Instead, no scrolling occurs at all, since we end up only scheduling the appearance update timer before setting the selection back to the original state with `SelectionRevealMode::DoNotReveal`.

I think it&apos;s *probably* sensible to handle this like a user triggered selection change though, since this only happens when the user interacts with a Quick Note from within the Notes app on iOS and macOS. Something like this should be sufficient to fix the failing test (by making the app highlight scrolling user-triggered):

```
diff --git a/Source/WebCore/Modules/highlight/AppHighlightStorage.cpp b/Source/WebCore/Modules/highlight/AppHighlightStorage.cpp
index 7b2e15b0bac6..a2636e092ec6 100644
--- a/Source/WebCore/Modules/highlight/AppHighlightStorage.cpp
+++ b/Source/WebCore/Modules/highlight/AppHighlightStorage.cpp
@@ -272,7 +272,7 @@ bool AppHighlightStorage::attemptToRestoreHighlightAndScroll(AppHighlightRangeDa
         if (textIndicator)
             m_document-&gt;page()-&gt;chrome().client().setTextIndicator(textIndicator-&gt;data());

-        TemporarySelectionChange selectionChange(*strongDocument, { range.value() }, { TemporarySelectionOption::DelegateMainFrameScroll, TemporarySelectionOption::SmoothScroll, TemporarySelectionOption::RevealSelectionBounds });
+        TemporarySelectionChange selectionChange(*strongDocument, { *range }, { TemporarySelectionOption::DelegateMainFrameScroll, TemporarySelectionOption::SmoothScroll, TemporarySelectionOption::RevealSelectionBounds, TemporarySelectionOption::UserTriggered });
     }

     return true;
diff --git a/Source/WebCore/editing/Editor.cpp b/Source/WebCore/editing/Editor.cpp
index 344645c34bd2..496ff0fedb89 100644
--- a/Source/WebCore/editing/Editor.cpp
+++ b/Source/WebCore/editing/Editor.cpp
@@ -252,7 +252,7 @@ TemporarySelectionChange::~TemporarySelectionChange()

 void TemporarySelectionChange::setSelection(const VisibleSelection&amp; selection, IsTemporarySelection isTemporarySelection)
 {
-    auto options = FrameSelection::defaultSetSelectionOptions();
+    auto options = FrameSelection::defaultSetSelectionOptions(m_options.contains(TemporarySelectionOption::UserTriggered) ? UserTriggered : NotUserTriggered);
     if (m_options &amp; TemporarySelectionOption::DoNotSetFocus)
         options.add(FrameSelection::DoNotSetFocus);

diff --git a/Source/WebCore/editing/Editor.h b/Source/WebCore/editing/Editor.h
index 9f726fd27312..a0eb032e767b 100644
--- a/Source/WebCore/editing/Editor.h
+++ b/Source/WebCore/editing/Editor.h
@@ -125,6 +125,7 @@ enum class TemporarySelectionOption : uint8_t {
     DelegateMainFrameScroll = 1 &lt;&lt; 5,

     RevealSelectionBounds = 1 &lt;&lt; 6,
+    UserTriggered = 1 &lt;&lt; 7,
 };

 class TemporarySelectionChange {
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849623</commentid>
    <comment_count>58</comment_count>
      <attachid>454226</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-03-09 04:13:43 -0800</bug_when>
    <thetext>Created attachment 454226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849680</commentid>
    <comment_count>59</comment_count>
      <attachid>454235</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-03-09 07:11:20 -0800</bug_when>
    <thetext>Created attachment 454235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853707</commentid>
    <comment_count>60</comment_count>
      <attachid>455379</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-03-22 09:19:17 -0700</bug_when>
    <thetext>Created attachment 455379
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854620</commentid>
    <comment_count>61</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-03-24 01:33:52 -0700</bug_when>
    <thetext>Committed r291789 (?): &lt;https://commits.webkit.org/r291789&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854730</commentid>
    <comment_count>62</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2022-03-24 10:21:19 -0700</bug_when>
    <thetext>This is causing debug assertions on the bots
https://build.webkit.org/results/Apple-iOS-15-Simulator-Debug-WK2-Tests/r291791%20(2056)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854766</commentid>
    <comment_count>63</comment_count>
    <who name="Dawn Morningstar">Morningstar</who>
    <bug_when>2022-03-24 11:05:36 -0700</bug_when>
    <thetext>(In reply to Jon Lee from comment #62)
&gt; This is causing debug assertions on the bots
&gt; https://build.webkit.org/results/Apple-iOS-15-Simulator-Debug-WK2-Tests/
&gt; r291791%20(2056)/results.html

Indeed it is. Reverted for now. Caused 65+ API failures on iOS Debug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854773</commentid>
    <comment_count>64</comment_count>
    <who name="Dawn Morningstar">Morningstar</who>
    <bug_when>2022-03-24 11:16:39 -0700</bug_when>
    <thetext>Reverted r291789 for reason:

This revision caused 65+ new API failures on iOS debug

Committed r291807 (248834@trunk): &lt;https://commits.webkit.org/248834@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865528</commentid>
    <comment_count>65</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-04-29 13:42:32 -0700</bug_when>
    <thetext>*** Bug 239293 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867660</commentid>
    <comment_count>66</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2022-05-09 08:55:32 -0700</bug_when>
    <thetext>Gabriel will look at the API test crashes caused by the now rolled out patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867662</commentid>
    <comment_count>67</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-05-09 08:58:33 -0700</bug_when>
    <thetext>(In reply to Michael Saboff from comment #66)
&gt; Gabriel will look at the API test crashes caused by the now rolled out patch.

I&apos;ve already looked into it. The patch (and the approach) doesn&apos;t work.
We need to make this selection update async.
Talk to Wenson about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867667</commentid>
    <comment_count>68</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-05-09 09:08:16 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #67)
&gt; (In reply to Michael Saboff from comment #66)
&gt; &gt; Gabriel will look at the API test crashes caused by the now rolled out patch.
&gt; 
&gt; I&apos;ve already looked into it. The patch (and the approach) doesn&apos;t work.
&gt; We need to make this selection update async.
&gt; Talk to Wenson about it.

My understanding is that Sergio&apos;s patch above will make this selection update async? See ChangeLog:

&gt; In order to fix that, we can switch to a model in which we update the selection asynchronously
&gt; in the case of having a non-user triggered change. That way we don&apos;t do it inside
&gt; a restricted layout scope.

This is the patch Wenson pointed me to after asking about Bug 239293.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868220</commentid>
    <comment_count>69</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-05-11 14:31:14 -0700</bug_when>
    <thetext>*** Bug 240255 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868243</commentid>
    <comment_count>70</comment_count>
      <attachid>459188</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-05-11 16:35:09 -0700</bug_when>
    <thetext>Created attachment 459188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868244</commentid>
    <comment_count>71</comment_count>
      <attachid>459188</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-05-11 16:41:05 -0700</bug_when>
    <thetext>Comment on attachment 459188
Patch

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

I&apos;ve re-uploaded Sergio&apos;s patch as originally landed, with two changes.

&gt; Source/WebCore/editing/FrameSelection.cpp:472
&gt; +    if (!m_document)

This is added to the original patch to prevent the crash causing the iOS test failures.

&gt; LayoutTests/editing/selection-with-absolute-positioned-empty-content.html:23
&gt; +requestAnimationFrame(() =&gt; {

Changed setTimeout to requestAnimationFrame as setTimeout was causing the test to fail unless the delay was set to a non-zero value (i.e. 1ms).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868311</commentid>
    <comment_count>72</comment_count>
      <attachid>459188</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-05-11 22:23:16 -0700</bug_when>
    <thetext>Comment on attachment 459188
Patch

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

&gt; Source/WebCore/editing/FrameSelection.cpp:2549
&gt; +void FrameSelection::updateAppearanceIfRevealingSelectionIsNeeded()

Where is this ever called??

&gt;&gt; LayoutTests/editing/selection-with-absolute-positioned-empty-content.html:23
&gt;&gt; +requestAnimationFrame(() =&gt; {
&gt; 
&gt; Changed setTimeout to requestAnimationFrame as setTimeout was causing the test to fail unless the delay was set to a non-zero value (i.e. 1ms).

Try this instead:
&lt;script&gt;
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function timerAfterRAF(callback) {
    return requestAnimationFrame(() =&gt; setTimeout(callback, 0));
}

timerAfterRAF(() =&gt; {
    if (window.internals)
        internals.startTrackingRepaints();
    window.getSelection().selectAllChildren(foobar);
    timerAfterRAF(() =&gt; {
        if (window.internals) {
            result.innerText = internals.repaintRectsAsText();
            internals.stopTrackingRepaints();
        }
        if (window.testRunner)
            testRunner.notifyDone();
    });
});
&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868449</commentid>
    <comment_count>73</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-05-12 09:45:43 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #72)
&gt; Comment on attachment 459188 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459188&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/FrameSelection.cpp:2549
&gt; &gt; +void FrameSelection::updateAppearanceIfRevealingSelectionIsNeeded()
&gt; 
&gt; Where is this ever called??

Good catch! Looks like this was used in an older patch, but was subsequently removed https://bugs.webkit.org/attachment.cgi?id=449559&amp;action=prettypatch.

I will clean it up.

&gt; 
&gt; &gt;&gt; LayoutTests/editing/selection-with-absolute-positioned-empty-content.html:23
&gt; &gt;&gt; +requestAnimationFrame(() =&gt; {
&gt; &gt; 
&gt; &gt; Changed setTimeout to requestAnimationFrame as setTimeout was causing the test to fail unless the delay was set to a non-zero value (i.e. 1ms).
&gt; 
&gt; Try this instead:
&gt; &lt;script&gt;
&gt; if (window.testRunner) {
&gt;     testRunner.dumpAsText();
&gt;     testRunner.waitUntilDone();
&gt; }
&gt; 
&gt; function timerAfterRAF(callback) {
&gt;     return requestAnimationFrame(() =&gt; setTimeout(callback, 0));
&gt; }
&gt; 
&gt; timerAfterRAF(() =&gt; {
&gt;     if (window.internals)
&gt;         internals.startTrackingRepaints();
&gt;     window.getSelection().selectAllChildren(foobar);
&gt;     timerAfterRAF(() =&gt; {
&gt;         if (window.internals) {
&gt;             result.innerText = internals.repaintRectsAsText();
&gt;             internals.stopTrackingRepaints();
&gt;         }
&gt;         if (window.testRunner)
&gt;             testRunner.notifyDone();
&gt;     });
&gt; });
&gt; &lt;/script&gt;

Thank you! I will try this approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868454</commentid>
    <comment_count>74</comment_count>
      <attachid>459235</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-05-12 10:00:19 -0700</bug_when>
    <thetext>Created attachment 459235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868637</commentid>
    <comment_count>75</comment_count>
      <attachid>459235</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-05-12 22:13:24 -0700</bug_when>
    <thetext>Comment on attachment 459235
Patch

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

&gt; Source/WebCore/ChangeLog:1
&gt; +2022-05-11  Sergio Villar Senin  &lt;svillar@igalia.com&gt;

Let&apos;s not use another person&apos;s name as the author since you&apos;re posting this patch now.
Mention that this patch is based on another patch made by Sergio Villar Senin instead.

&gt; LayoutTests/ChangeLog:1
&gt; +2022-05-11  Sergio Villar Senin  &lt;svillar@igalia.com&gt;

Ditto.

&gt; LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:5
&gt; -(repaint rects
&gt; -  (rect 0 0 100 100)
&gt; -)
&gt;  

This looks like a regression.
This test probably also needs fixing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868638</commentid>
    <comment_count>76</comment_count>
      <attachid>459235</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-05-12 22:16:37 -0700</bug_when>
    <thetext>Comment on attachment 459235
Patch

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

&gt;&gt; LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:5
&gt;&gt;  
&gt; 
&gt; This looks like a regression.
&gt; This test probably also needs fixing.

This needs the same fix as other tests that uses text-based-repaint.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868639</commentid>
    <comment_count>77</comment_count>
      <attachid>459235</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-05-12 22:16:39 -0700</bug_when>
    <thetext>Comment on attachment 459235
Patch

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

&gt;&gt; LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:5
&gt;&gt;  
&gt; 
&gt; This looks like a regression.
&gt; This test probably also needs fixing.

This needs the same fix as other tests that uses text-based-repaint.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868815</commentid>
    <comment_count>78</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-05-13 11:35:10 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #77)
&gt; Comment on attachment 459235 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459235&amp;action=review
&gt; 
&gt; &gt;&gt; LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:5
&gt; &gt;&gt;  
&gt; &gt; 
&gt; &gt; This looks like a regression.
&gt; &gt; This test probably also needs fixing.
&gt; 
&gt; This needs the same fix as other tests that uses text-based-repaint.js

Earlier Sergio mentioned this was inline now with mac-wk2 results. Is this no longer the case? See below:

&gt; &gt;&gt; LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:-7
&gt; &gt;&gt; -)
&gt; &gt; 
&gt; &gt; Seems like this test is broken?


&gt; I am honestly not sure. When I checked the expectations, this change make win match the mac-wk2 results so I assumed it was a step in the right direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868836</commentid>
    <comment_count>79</comment_count>
      <attachid>459235</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-05-13 13:05:39 -0700</bug_when>
    <thetext>Comment on attachment 459235
Patch

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

&gt; Source/WebCore/editing/FrameSelection.cpp:2380
&gt; +    const_cast&lt;FrameSelection&amp;&gt;(*this).updateSelectionAppearanceNow();

If this function can have a side effect of updating selection appearance, maybe we should make it non-const to signal that rather than adding the const_cast. Of course, we have to check if that ripples through other code in an unpleasant way.

&gt; LayoutTests/fast/repaint/selection-ruby-rl.html:23
&gt; +    // requestAnimationFrame produces flacky results.

The word is &quot;flaky&quot;, not &quot;flacky&quot;.

Also, this is a mysterious comment. Why do we have to wait at all? Is there a good reason this *should* be using requestAnimationFrame? Do we know why it produces flaky results? Why is setTimeout an acceptable alternative? I honestly would be OK with no comment at all. But if we do have a comment I’d like to understand it better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868957</commentid>
    <comment_count>80</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-05-13 21:52:27 -0700</bug_when>
    <thetext>(In reply to Gabriel Nava Marino from comment #78)
&gt; (In reply to Ryosuke Niwa from comment #77)
&gt; &gt; Comment on attachment 459235 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=459235&amp;action=review
&gt;
&gt; &gt; &gt;&gt; LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:-7
&gt; &gt; &gt;&gt; -)
&gt; &gt; &gt; 
&gt; &gt; &gt; Seems like this test is broken?
&gt; 
&gt; 
&gt; &gt; I am honestly not sure. When I checked the expectations, this change make win match the mac-wk2 results so I assumed it was a step in the right direction.

I don&apos;t think so. Check out the original expected result here:
https://trac.webkit.org/browser/trunk/LayoutTests/fast/repaint/selection-gap-fixed-child-expected.txt

The test was added to validate that selection gaps are repainted. If we&apos;re missing rects, then we&apos;re either not testing it right or not repainting. This test needs the same fix as other tests that use text-based-repaint.js like LayoutTests/fast/repaint/selection-gap-absolute-child.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869403</commentid>
    <comment_count>81</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-05-16 14:12:18 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #79)
&gt; Comment on attachment 459235 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459235&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/FrameSelection.cpp:2380
&gt; &gt; +    const_cast&lt;FrameSelection&amp;&gt;(*this).updateSelectionAppearanceNow();
&gt; 
&gt; If this function can have a side effect of updating selection appearance,
&gt; maybe we should make it non-const to signal that rather than adding the
&gt; const_cast. Of course, we have to check if that ripples through other code
&gt; in an unpleasant way.

I have made it non-const and there were no unpleasant side-effects.

&gt; 
&gt; &gt; LayoutTests/fast/repaint/selection-ruby-rl.html:23
&gt; &gt; +    // requestAnimationFrame produces flacky results.
&gt; 
&gt; The word is &quot;flaky&quot;, not &quot;flacky&quot;.
&gt; 
&gt; Also, this is a mysterious comment. Why do we have to wait at all? Is there
&gt; a good reason this *should* be using requestAnimationFrame? Do we know why
&gt; it produces flaky results? Why is setTimeout an acceptable alternative? I
&gt; honestly would be OK with no comment at all. But if we do have a comment I’d
&gt; like to understand it better.

I don&apos;t believe so, other than &quot;the results with the latter were not as reliable under stress/debug conditions&quot; as mentioned in the LayoutTests/ChangeLog and so I have removed this comment in all tests where it was added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869405</commentid>
    <comment_count>82</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-05-16 14:14:19 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #80)
&gt; (In reply to Gabriel Nava Marino from comment #78)
&gt; &gt; (In reply to Ryosuke Niwa from comment #77)
&gt; &gt; &gt; Comment on attachment 459235 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=459235&amp;action=review
&gt; &gt;
&gt; &gt; &gt; &gt;&gt; LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:-7
&gt; &gt; &gt; &gt;&gt; -)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Seems like this test is broken?
&gt; &gt; 
&gt; &gt; 
&gt; &gt; &gt; I am honestly not sure. When I checked the expectations, this change make win match the mac-wk2 results so I assumed it was a step in the right direction.
&gt; 
&gt; I don&apos;t think so. Check out the original expected result here:
&gt; https://trac.webkit.org/browser/trunk/LayoutTests/fast/repaint/selection-gap-
&gt; fixed-child-expected.txt
&gt; 
&gt; The test was added to validate that selection gaps are repainted. If we&apos;re
&gt; missing rects, then we&apos;re either not testing it right or not repainting.
&gt; This test needs the same fix as other tests that use text-based-repaint.js
&gt; like LayoutTests/fast/repaint/selection-gap-absolute-child.html

Thank you for the clarification Ryosuke! I have updated fast/repaint/selection-gap-fixed-child.html to have the same fix as other tests that use text-based-repaint.js and reverted the changes to LayoutTests/platform/win/fast/repaint/selection-gap-fixed-child-expected.txt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869410</commentid>
    <comment_count>83</comment_count>
      <attachid>459454</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-05-16 14:21:17 -0700</bug_when>
    <thetext>Created attachment 459454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870110</commentid>
    <comment_count>84</comment_count>
    <who name="Brandon">brandonstewart</who>
    <bug_when>2022-05-18 13:00:37 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/742</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870601</commentid>
    <comment_count>85</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-19 19:15:31 -0700</bug_when>
    <thetext>Committed r294523 (250778@main): &lt;https://commits.webkit.org/250778@main&gt;

Reviewed commits have been landed. Closing PR #742 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870719</commentid>
    <comment_count>86</comment_count>
    <who name="Karl Rackler">rackler</who>
    <bug_when>2022-05-20 08:39:31 -0700</bug_when>
    <thetext>Reverting  r294523 (250778@main) due to causing iOS Debug 68 API failures and 50 Layout tests crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870721</commentid>
    <comment_count>87</comment_count>
    <who name="Karl Rackler">rackler</who>
    <bug_when>2022-05-20 08:51:23 -0700</bug_when>
    <thetext>Reopen to investigate issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870751</commentid>
    <comment_count>88</comment_count>
    <who name="Brandon">brandonstewart</who>
    <bug_when>2022-05-20 11:07:16 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/840</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870752</commentid>
    <comment_count>89</comment_count>
    <who name="Brandon">brandonstewart</who>
    <bug_when>2022-05-20 11:15:57 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/841</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870919</commentid>
    <comment_count>90</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-20 23:09:50 -0700</bug_when>
    <thetext>Committed r294610 (250836@main): &lt;https://commits.webkit.org/250836@main&gt;

Reviewed commits have been landed. Closing PR #841 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874469</commentid>
    <comment_count>91</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-06-07 04:56:00 -0700</bug_when>
    <thetext>*** Bug 241154 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425833</attachid>
            <date>2021-04-12 21:53:40 -0700</date>
            <delta_ts>2021-05-19 09:59:56 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wip224471.patch</filename>
            <type>text/plain</type>
            <size>7507</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5k
bGluZS1jYXJldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxl
ZC1lbmRsaW5lLWNhcmV0Lmh0bWwKaW5kZXggNzM0Y2RjYjA2YTM2Li4xMmE2YWMxNDNjOTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGlu
ZS1jYXJldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xs
ZWQtZW5kbGluZS1jYXJldC5odG1sCkBAIC0xNSwxMyArMTUsMTcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgdGEuZm9jdXMoKTsKICAgICAvLyBjbGljawogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKLSAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
LSAgICAgICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9PSAxNykKLSAgICAgICAgICAgIHJlcy5pbm5l
ckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXMu
aW5uZXJIVE1MID0gIlRlc3QgRmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5k
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KDkwLCAyMCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgIGlmICh0YS5zZWxlY3Rpb25F
bmQgPT0gMTcpCisgICAgICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRl
ZCI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJU
ZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsgICAgICAgICAgICAK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9
IGVsc2UgewogICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgY2FuJ3QgcnVuIHdpdGhvdXQg
ZXZlbnQgc2VuZGVyIChwYXJ0IG9mIER1bXBSZW5kZXJUcmVlKS4gIgogICAgICAgICAgICAgKyAi
VG8gdGVzdCBtYW51YWxseSwgY2xpY2sgYXQgdGhlIG1pZGRsZSBvZiB0aGUgbGluZSBtYXJrZWQg
OSBhbmQgY2hlY2sgdGhhdCB0aGUgY2FyZXQgYXBwZWFycyBhZnRlciB0aGUgOS4iOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBiMTIyZjYxNjU3MzUuLmIy
OGU5ZTRmMzY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
QEAgLTQzNywxMiArNDM3LDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgbV9zZWxl
Y3Rpb25SZXZlYWxJbnRlbnQgPSBpbnRlbnQ7CiAgICAgbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRl
ID0gdHJ1ZTsKIAotICAgIGlmIChwcm90ZWN0ZWREb2N1bWVudC0+aGFzUGVuZGluZ1N0eWxlUmVj
YWxjKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8gZnJhbWVWaWV3ID0gcHJvdGVjdGVk
RG9jdW1lbnQtPnZpZXcoKTsKLSAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0
Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpKQorICAgIGlmICghKG9wdGlvbnMgJiBJc1VzZXJU
cmlnZ2VyZWQpKSB7CisgICAgICAgIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbihpbnRlbnQpOwogCkBAIC00NTIsMTMgKzQ1MCwxNiBAQCB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRp
b25TZXQ8UwogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGlu
Z0xheW91dE9yU3R5bGUoRG9jdW1lbnQmIGRvY3VtZW50KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpCiB7CisgICAgYXV0byBkb2N1bWVudCA9IG1h
a2VSZWYoKm1fZG9jdW1lbnQpOwogI2lmIEVOQUJMRShURVhUX0NBUkVUKQotICAgIGRvY3VtZW50
LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50LT51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICNlbHNlCi0gICAgZG9jdW1l
bnQudXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIGRvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVl
ZGVkKCk7CiAjZW5kaWYKKyAgICBpZiAobV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQorICAgICAg
ICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRz
U2VsZWN0aW9uVXBkYXRlKFJldmVhbFNlbGVjdGlvbkFmdGVyVXBkYXRlIHJldmVhbE1vZGUpCkBA
IC0xNjU4LDcgKzE2NTksNyBAQCBJbnRSZWN0IEZyYW1lU2VsZWN0aW9uOjphYnNvbHV0ZUNhcmV0
Qm91bmRzKGJvb2wqIGluc2lkZUZpeGVkKQogewogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAg
ICAgcmV0dXJuIEludFJlY3QoKTsKLSAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0
T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygp
OwogICAgIHJlY29tcHV0ZUNhcmV0UmVjdCgpOwogICAgIGlmIChpbnNpZGVGaXhlZCkKICAgICAg
ICAgKmluc2lkZUZpeGVkID0gbV9jYXJldEluc2lkZVBvc2l0aW9uRml4ZWQ7CkBAIC0yMTk2LDcg
KzIxOTcsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRDYXJldFZpc2liaWxpdHkoQ2FyZXRW
aXNpYmlsaXR5IHZpc2liaWxpdHksIFNob3VsZFVwZGF0ZQogCiAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZG4ndCB0cmlnZ2VyIGEgc3luY2hyb25vdXMgbGF5b3V0IGhlcmUuCiAgICAgaWYgKGRvQXBw
ZWFyYW5jZVVwZGF0ZSA9PSBTaG91bGRVcGRhdGVBcHBlYXJhbmNlOjpZZXMgJiYgbV9kb2N1bWVu
dCkKLSAgICAgICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9j
dW1lbnQpOworICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAKICNpZiBF
TkFCTEUoVEVYVF9DQVJFVCkKICAgICBpZiAobV9jYXJldFBhaW50KSB7CkBAIC0yMzAzLDcgKzIz
MDQsNyBAQCBGbG9hdFJlY3QgRnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyhDbGlwVG9W
aXNpYmxlQ29udGVudCBjbGlwVG9WaXNpYmxlQ29udAogICAgIGlmICghbV9kb2N1bWVudCkKICAg
ICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKIAotICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRp
bmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICBjb25zdF9jYXN0PEZyYW1lU2VsZWN0
aW9uJj4oKnRoaXMpLnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICBhdXRvKiBy
ZW5kZXJWaWV3ID0gbV9kb2N1bWVudC0+cmVuZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyVmll
dykKICAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKQEAgLTIzODYsNiArMjM4Nyw4IEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJl
dmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgaWYgKGlzTm9uZSgpKQogICAgICAgICByZXR1cm47
CiAKKyAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CisKICAgICBMYXlvdXRSZWN0
IHJlY3Q7CiAgICAgYm9vbCBpbnNpZGVGaXhlZCA9IGZhbHNlOwogICAgIGlmIChpc0NhcmV0KCkp
CkBAIC0yNDYwLDYgKzI0NjMsMTQgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2hvdWxkU2hv
d0Jsb2NrQ3Vyc29yKGJvb2wgc2hvdWxkU2hvd0Jsb2NrQ3Vyc29yKQogICAgIHVwZGF0ZUFwcGVh
cmFuY2UoKTsKIH0KIAordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBwZWFyYW5jZUlmUmV2
ZWFsaW5nU2VsZWN0aW9uSXNOZWVkZWQoKQoreworICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9u
VXBkYXRlIHx8IG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSA9PSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpE
b05vdFJldmVhbCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZG9jdW1lbnQtPnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxh
eW91dCgpOworfQorCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJM
YXlvdXQoKQogewogICAgIG1fYXBwZWFyYW5jZVVwZGF0ZVRpbWVyLnN0b3AoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAzZDA5YWM5YWUwMTkuLjg5YTVmOTIz
YmI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMTQ0LDYg
KzE0NCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CiAgICAg
dm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAKKyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFu
Y2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJh
bmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVy
U3R5bGVDaGFuZ2UoKTsKIApAQCAtMjYwLDYgKzI2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRh
dGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxl
Y3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKICAgICB2b2lkIHVwZGF0ZURh
dGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggN2E3Nzk5NzZhZDAzLi40MDJhY2Q5Yzg2YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKQEAgLTU0MSw2ICs1NDIsNyBA
QCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5kU2hvd1ZhbGlkYXRpb25NZXNz
YWdlKCkKIAogICAgIC8vIENhbGxpbmcgZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxlbWVudCBp
bnRvIHZpZXcuCiAgICAgZm9jdXMoKTsKKyAgICBkb2N1bWVudCgpLnNlbGVjdGlvbigpLnVwZGF0
ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAKICAgICAvLyBmb2N1
cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlldyBhbmQgdGhpcyBzY3JvbGwgbWF5
IGhhcHBlbiBhc3luY2hyb25vdXNseS4KICAgICAvLyBCZWNhdXNlIHNjcm9sbGluZyB0aGUgdmll
dyBoaWRlcyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNob3cgdGhlIHZhbGlk
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBiNDJkMjBhN2U3ZWIu
Ljg3ZmY3NmJiYWRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDIw
LDcgKzQyMCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChOb2RlJiBu
b2RlVG9CZVJlbW92ZWQpCiBzdGF0aWMgdm9pZCBzZXRTZWxlY3Rpb25JZk5lZWRlZChGcmFtZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24p
CiB7CiAgICAgaWYgKHNlbGVjdGlvbi5zZWxlY3Rpb24oKSAhPSBuZXdTZWxlY3Rpb24gJiYgc2Vs
ZWN0aW9uLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZWxl
Y3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIHNlbGVjdGlvbi5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZGlzcGF0
Y2hTZWxlY3RTdGFydChOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDEwODExZjJh
MmJlLi44ZWZhODk4NTk5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTYxMiw2ICsxNjEyLDEw
IEBAIHZvaWQgUGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZygpCiAgICAgICAgIGRvY3VtZW50
LmVucXVldWVQYWludFRpbWluZ0VudHJ5SWZOZWVkZWQoKTsKICAgICB9KTsKIAorICAgIGZvckVh
Y2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnNl
bGVjdGlvbigpLnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpOworICAgIH0pOworCiAgICAg
Zm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKICAgICAgICAgZG9jdW1l
bnQudXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCk7CiAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>426637</attachid>
            <date>2021-04-20 19:36:54 -0700</date>
            <delta_ts>2021-04-20 19:36:54 -0700</delta_ts>
            <desc>Test</desc>
            <filename>repro_587.html</filename>
            <type>text/html</type>
            <size>278</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KICBvbmxvYWQgPSAoKSA9PiB7CiAgICBsZXQgbjAgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpbnB1dCcpOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuMCk7CiAgICBs
ZXQgbjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpOwogICAgbjAuYXBwZW5k
Q2hpbGQobjEpOwogICAgbjEuZm9jdXMoKTsKICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdTZWxl
Y3RBbGwnKTsKICAgIG4xLnJlcGxhY2VDaGlsZHJlbigpOwogIH07Cjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429057</attachid>
            <date>2021-05-19 10:00:27 -0700</date>
            <delta_ts>2021-06-07 10:21:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20210519190025.patch</filename>
            <type>text/plain</type>
            <size>2099</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjZTAzODVjY2Q4NzM1
MGIwYjg4YzM4MDA3ZWY5NmU2OTMxZDMwOS4uMGZhODViM2I3OWFmNmFmYmEyM2NhNGFkMjUxYzE5
NjdjYzM5ZjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTE5ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIERvIG5vdCBt
b2RpZnkgc2VsZWN0aW9uIGlmIHRoZSB0ZXh0IGFyZWEgZWxlbWVudCBkb2VzIG5vdCBhY3R1YWxs
eSBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEV4ZWN1dGluZyBzb21lIGVkaXRpbmcgY29tbWFuZHMgaW4gYSB0ZXh0IGFyZWEgbWlnaHQgZm9y
Y2UgdGhlIHJlY29tcHV0YXRpb24gb2YgdGhpbmdzCisgICAgICAgIGxpa2UgY2FyZXQgb3IgdGhl
IHZpc2libGUgc2VsZWN0aW9uIHBvc2l0aW9uIGFuZCBleHRlbnQuIEhvd2V2ZXIgd2UgZG9uJ3Qg
aGF2ZSB0byBkbyBpdAorICAgICAgICB3aGVuZXZlciB0aGUgY29udGVudHMgb2YgdGhlIHRleHQg
YXJlYSBkbyBub3QgcmVhbGx5IGNoYW5nZS4gSFRNTCB0ZXh0IGFyZWFzIGhvbGQgU3RyaW5ncwor
ICAgICAgICB3aGljaCBjYW4gYmUgbnVsbCBvciBlbXB0eS4gVGhvc2Ugc3RhdGVzIGFyZSBkaWZm
ZXJlbnQgYnV0IGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgdGhlCisgICAgICAgIGNvbnRlbnRz
IG9mIHRoZSB0ZXh0IGFyZWEgY2FuIGJlIGNvbnNpZGVyZWQgZXF1aXZhbGVudCBhbmQgdGh1cyBz
aG91bGQgbm90IHRyaWdnZXIgdGhlCisgICAgICAgIGV4ZWN1dGlvbiBvZiBhbnkgYWRkaXRpb25h
bCBjb2RlLgorCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFZhbHVlQ29tbW9uKTogZWFybHkg
cmV0dXJuIHdoZW5ldmVyIHRoZSBjdXJyZW50IGNvbnRlbnRzCisgICAgICAgIGFyZSBudWxsIGFu
ZCB0aGUgbmV3IHZhbHVlIGlzIHRoZSBlbXB0eSBzdHJpbmcuCisKIDIwMjEtMDUtMTIgIEZyZWRl
cmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1f
c2VsZWN0aW9uLT5pc05vbmUoKSkgZmFpbHMgaW4gRG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBmMzYyNGFj
YmYzNjM5YWEzZDJkZjQyN2NhZjJjMGNmMzlmYmYyOTVkLi5jOTQ4MDNkMTQzMDFlMGRlOWE3MGJm
ZjNiNzM0ZTBiNDM4NDA4YWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6
OnNldFZhbHVlQ29tbW9uKGNvbnN0IFN0cmluZyYgbmV3VmFsdWUpCiAKICAgICAvLyBSZXR1cm4g
ZWFybHkgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIG1vdmUgdGhlIGNhcmV0IG9yIHRyaWdnZXIg
b3RoZXIgc2lkZSBlZmZlY3RzCiAgICAgLy8gd2hlbiB0aGUgdmFsdWUgaXNuJ3QgY2hhbmdpbmcu
IFRoaXMgbWF0Y2hlcyBGaXJlZm94IGJlaGF2aW9yLCBhdCBsZWFzdC4KLSAgICBpZiAobm9ybWFs
aXplZFZhbHVlID09IHZhbHVlKCkpCisgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSA9PSB2YWx1ZSgp
IHx8IChub3JtYWxpemVkVmFsdWUuaXNFbXB0eSgpICYmIHZhbHVlKCkuaXNOdWxsKCkpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX3ZhbHVlID0gbm9ybWFsaXplZFZhbHVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430760</attachid>
            <date>2021-06-07 10:22:29 -0700</date>
            <delta_ts>2021-06-25 08:55:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20210607192227.patch</filename>
            <type>text/plain</type>
            <size>24458</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI0ZGVmMTQzMWNlNWFh
ZDEwNmNjZDMwNTUyNGRmNjMxMTMzYTAyMS4uMzVjMGQ5ZTk4MzEzNDVmZmY2OTdlYzZjZjNjZjEx
NjU1MGZjZGRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA2LTA3ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMDUtMjcgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1mbGV4Ym94
XSBTYW5pdGl6ZSB0aGUgYXNwZWN0IHJhdGlvIGhhbmRsaW5nIGNvZGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggOTFmZmIzZjVmZTJmM2YzZDE1YjMyMTJh
OGExOThlYzMwOTMwNjZiZi4uMzlhNmM3ZDc5NWJlNmIxMjQ2MmVkOGNhOThhOWNhMzk0NzQyYTI4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTQ0Niw2
ICs0NDYsMTEgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAoZnJhbWVWaWV3ICYm
IGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBpZiAoIShvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVkKSkgeworICAgICAg
ICBzY2hlZHVsZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50LCBvcHRp
b25zLmNvbnRhaW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6U21vb3RoIDogU2Ny
b2xsQmVoYXZpb3I6Okluc3RhbnQsIG9wdGlvbnMuY29udGFpbnMoT3ZlcnJpZGVTbW9vdGhTY3Jv
bGxGZWF0dXJlRW5hYmxlbWVudCkgPyBTbW9vdGhTY3JvbGxGZWF0dXJlRW5hYmxlbWVudDo6T3Zl
cnJpZGUgOiBTbW9vdGhTY3JvbGxGZWF0dXJlRW5hYmxlbWVudDo6RGVmYXVsdCk7CiAKICAgICBp
ZiAob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkgewpAQCAtNDU0LDEzICs0NTksMTYgQEAgdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKERvY3VtZW50JiBkb2N1bWVudCkKK3ZvaWQgRnJh
bWVTZWxlY3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKQogeworICAgIGF1dG8g
ZG9jdW1lbnQgPSBtYWtlUmVmKCptX2RvY3VtZW50KTsKICNpZiBFTkFCTEUoVEVYVF9DQVJFVCkK
LSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAg
ICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAjZWxz
ZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBkb2N1bWVudC0+dXBk
YXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVuZGluZ1NlbGVjdGlvblVw
ZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rpb25BZnRlclVwZGF0ZSBy
ZXZlYWxNb2RlKQpAQCAtMTY2MCw3ICsxNjY4LDcgQEAgSW50UmVjdCBGcmFtZVNlbGVjdGlvbjo6
YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsKICAgICBpZiAoIW1fZG9j
dW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBkYXRlU2VsZWN0aW9uQnlV
cGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVwZGF0ZVNlbGVjdGlvbkFw
cGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsKICAgICBpZiAoaW5zaWRl
Rml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNpZGVQb3NpdGlvbkZpeGVk
OwpAQCAtMjIwOCw3ICsyMjE2LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNp
YmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRVcGRhdGUKIAogICAgIC8v
IEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3VzIGxheW91dCBoZXJlLgog
ICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRlQXBwZWFyYW5jZTo6WWVz
ICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5v
dygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1fY2FyZXRQYWludCkgewpA
QCAtMjMxNSw3ICsyMzIzLDcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25C
b3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQKICAgICBpZiAoIW1f
ZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAKLSAgICB1cGRhdGVTZWxl
Y3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgY29uc3RfY2Fz
dDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlzKS51cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7
CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQtPnJlbmRlclZpZXcoKTsKICAgICBp
ZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CkBAIC0yMzk4LDYg
KzI0MDYsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24oU2VsZWN0aW9u
UmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgIGlmIChpc05vbmUoKSkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOworCiAg
ICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRlRml4ZWQgPSBmYWxzZTsKICAgICBp
ZiAoaXNDYXJldCgpKQpAQCAtMjQ3Miw2ICsyNDgyLDE0IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dCbG9ja0N1cnNvcikKICAg
ICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFw
cGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fcGVu
ZGluZ1NlbGVjdGlvblVwZGF0ZSB8fCBtX3NlbGVjdGlvblJldmVhbE1vZGUgPT0gU2VsZWN0aW9u
UmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAgICAgIHJldHVybjsKKyAgICBtX2RvY3VtZW50
LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICB1cGRhdGVBcHBl
YXJhbmNlQWZ0ZXJMYXlvdXQoKTsKK30KKwogdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBw
ZWFyYW5jZUFmdGVyTGF5b3V0KCkKIHsKICAgICBtX2FwcGVhcmFuY2VVcGRhdGVUaW1lci5zdG9w
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggOTNhNTlkNTg2
NDI0YjI3ZjZhOGE4NzcwYTRiZmQ1MzIyMTI2MjQ2OS4uNGRmYzBmNDA0MTM4MDFiMWU2ZTgwMTUw
Y2E4ZjAyMDE2MWQwYTM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
aApAQCAtMTQ3LDYgKzE0Nyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNs
ZWFyKCk7CiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAKKyAgICB2b2lkIHVw
ZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAgICAgdm9pZCB1
cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNjaGVkdWxlQXBwZWFyYW5j
ZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKIApAQCAtMjYzLDYgKzI2NCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHByaXZhdGU6Cisg
ICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgdm9pZCB1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3JvbGxC
ZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBTbW9vdGhTY3JvbGxGZWF0dXJlRW5h
YmxlbWVudCA9IFNtb290aFNjcm9sbEZlYXR1cmVFbmFibGVtZW50OjpPdmVycmlkZSk7CiAgICAg
dm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDA0Zjc4ZWQ3MTAzMWZm
MzMzYzI4OTZjMTkxMDhlM2RkOTVlZmUzYzUuLjMwYTY2ZTE4ZjIzYTkyY2QxMjE4MzY5NDgxNzUy
OTViYzczNDU4YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZy
YW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERh
dGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKQEAgLTU0
MSw2ICs1NDIsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5kU2hvd1Zh
bGlkYXRpb25NZXNzYWdlKCkKIAogICAgIC8vIENhbGxpbmcgZm9jdXMoKSB3aWxsIHNjcm9sbCB0
aGUgZWxlbWVudCBpbnRvIHZpZXcuCiAgICAgZm9jdXMoKTsKKyAgICBkb2N1bWVudCgpLnNlbGVj
dGlvbigpLnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAK
ICAgICAvLyBmb2N1cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlldyBhbmQgdGhp
cyBzY3JvbGwgbWF5IGhhcHBlbiBhc3luY2hyb25vdXNseS4KICAgICAvLyBCZWNhdXNlIHNjcm9s
bGluZyB0aGUgdmlldyBoaWRlcyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNo
b3cgdGhlIHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2
MzU2ODI1YjJlNjc4YzAzNGY2ZTBmODA4OWIyMjAwYTgzOTI2Zjk4Li5lYjllOGNmMmFiMTg1NGZh
NTc3ZjBhZmJiYTEyODc1MzJhNDc1NDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCkBAIC00MjEsNyArNDIxLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1v
dmVkKE5vZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVl
ZGVkKEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvbigpICE9IG5ld1NlbGVj
dGlvbiAmJiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0g
ICAgICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgc2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
Ym9vbCBkaXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRl
eCA5NGE1NGJiNmYwZGM1ZTE2ZjhiMTczMTY4ZjA0Y2VjNTYyZWVhYWVhLi43ZjlhNDVhMDdhYjlh
YjFjMzk4NzhmMTE0YjgyYTZkMDVmNGM5NzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2MzIs
NiArMTYzMiwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcoKQogICAgICAg
ICBkb2N1bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CiAgICAgfSk7CiAK
KyAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBk
b2N1bWVudC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9
KTsKKwogICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAg
ICAgIGRvY3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGNjN2VlZDY4NDY2ZTE3NWQyZmRjZDQ1MDQ0Zjc3Y2JjOTFiZWY3NzIuLjI3ZThhZGFiMWRmOWRk
N2FlMDBlMjQxN2ExZWI4NGZhZTEyNGUyYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMS0w
Ni0wNyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAg
ICBSZWxlYXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0
QXJlYUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgc29tZSB0ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFz
ZWQtcmVwYWludC5qcyBtb2RlbCBiZWNhdXNlIHNlbGVjdGlvbiBpcyBub3cgdXBkYXRlZAorICAg
ICAgICBhbmQgcmV2ZWFsZWQgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIg
dHJpZ2dlcmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKKyAgICAgICAgYnkgdGhlIHRp
bWUgdGhlIHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJpZWQgdGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBl
bmVkIHlldC4gVGhhdCdzIHdoeQorICAgICAgICB0aGUgdGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0
aGF0IHdlIHdhaXQgdW50aWwgdGhlIHJlcGFpbnQgaGFwcGVucy4KKworICAgICAgICAqIGZhc3Qv
Zm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sOgorICAgICAgICAqIGZh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sOgor
ICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hp
bGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZs
aXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1m
aXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFp
bnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWw6CisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA2LTAzICBBbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBDcmFjayBpbiBoZXJvIHRleHQgb24gaHR0cHM6Ly93d3cuYXBw
bGUuY29tL21hYy1taW5pLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0
YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAppbmRleCA3MzRjZGNiMDZhMzYz
NjYzYjVkMDkxMDAxNGZkNjY0YjI1YTU0MGU4Li5lNDJlNDNiYTJiMmY3NDU0NGUyOWI1ZTZkZDc2
MTM5OGE0Y2M3MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVh
LXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbApAQCAtMTUsMTMgKzE1LDE3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIHRhLmZvY3VzKCk7CiAgICAgLy8gY2xpY2sKICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkw
LCAyMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0gMTcpCi0gICAg
ICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQgIiAr
IHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICBp
ZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwg
PSAiVGVzdCBTdWNjZWVkZWQiOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJl
cy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25F
bmQ7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IGNhbid0IHJ1biB3aXRo
b3V0IGV2ZW50IHNlbmRlciAocGFydCBvZiBEdW1wUmVuZGVyVHJlZSkuICIKICAgICAgICAgICAg
ICsgIlRvIHRlc3QgbWFudWFsbHksIGNsaWNrIGF0IHRoZSBtaWRkbGUgb2YgdGhlIGxpbmUgbWFy
a2VkIDkgYW5kIGNoZWNrIHRoYXQgdGhlIGNhcmV0IGFwcGVhcnMgYWZ0ZXIgdGhlIDkuIjsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRl
LWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAzYWJiMGY3MDg5YTNmM2JjYmM2
YWFkZjY5ZjczZDc3N2JmNzllMzBhLi5hY2VhNTRlMDUwZGY1ZDJhNzc1YTlkOTlkOWIwMWY3MDY2
YmE1YTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIs
NCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3
aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyBhcmUgaW52
YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRo
ZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQg
cmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDAg
MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCA3ZDQ3ZDEyNTkxZDliYzlmYTEy
MTY5MWQwZTc0MGY5YWVkYjNmNDcwLi5hMTBiOWI1Mjg4YWEzMmYzNjMxNTgwYjVjYjg5ZThiZWI1
Njk0N2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlw
ZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJl
cGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRl
c3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFp
bnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQs
IDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93
LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5h
bHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxl
PgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXY+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIg
c3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAg
PGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVk
LWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCA5YzdlZWI4MDM5YTI2MWMwYzA3NTc0
NjE2ZGQ1MDg2OWNiNDcxYzMxLi45ZmU2YzIyNzJmMzc5NDg4YjlmYjVlM2JlZmUyZDM2ODdmNmI1
N2FiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1m
bGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4
dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWlu
dCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxl
bWVudHMgdGhhdCBnZXQgZmxpcHBlZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94
IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlk
YXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNzAwIDAgMTAwIDEw
MCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0
ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxp
cHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDFiNjFlYmYyZDUwYjNhNGYwZDAyMzg5MTYx
NjQ0MTdmZTI4ZTU2YTcuLmJmYzY3MWZiYzUwMDI0MmE5MjE0NmNlMDU0NWNhMGJhZTY5NDMzZWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBw
ZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAK
IDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0
LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24g
cmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gclJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tp
bmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQo
dGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9
IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAg
aW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAg
IDxzdHlsZT4KQEAgLTEzLDcgKzI5LDcgQEAKICAgICAgICAgI3RhcmdldDo6c2VsZWN0aW9uIHsg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KICAgICA8L3N0eWxlPgogPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5SZXBhaW50VGVzdCgpIj4KKzxib2R5IG9ubG9hZD0iclJlcGFpbnRUZXN0KCki
PgogICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbWFyZ2luLXJpZ2h0OiAyMDBw
eDsiPgogICAgICAgICA8ZGl2PkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzExMTAw
MCI+MTExMDAwPC9hPjogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0
aCB0cmFuc2Zvcm1zPC9kaXY+CiAgICAgICAgIDxkaXY+VGhpcyB0ZXN0cyB0aGF0IGFic29sdXRl
IGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gIFRo
ZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGlu
dmFsaWRhdGVkIGNvcnJlY3RseS48L2Rpdj4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0
eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmwiPgogICAgICAgICA8ZGl2IGlk
PSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwv
ZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29s
dXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBiN2Mz
MDk3YzZiMTc2MTZlMmY1ZDc0ZTk4YjdlOTg1OTcxYTQ1YTMxLi41Y2M5NjE1ZDFlMzBkODc2MDlk
YTQ5YjM3MzNkYjA1ZTllNDYxMTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQt
YWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBT
ZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRo
aXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUg
aW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGxldGVseSBncmVlbiBp
ZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBh
aW50IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChy
ZWN0IDUwIDUwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGls
ZC5odG1sCmluZGV4IDE3ZWQzNWIxYTE1ODUxMDkyNzZmOWRiZWYwNjg0NjM2M2U0NjAxNmYuLjQz
MWFjMzU2YmM2NGFkNjJhOGY5MmJiOWFkMzQzYmI3NDRkNjg0NGUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNo
aWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJh
bnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBl
IGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVw
YWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVz
dCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWlu
dHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwg
MCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cu
aW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFs
cy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+
CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRy
YW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJi
YWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRp
b246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9
InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZp
eGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCA4ZGJlZDQ0OWJiOWVhZWNjZmQ2NjM4Yjc1NzZi
YWRiOGJiMDQzYzQ1Li5jNWEzMTI4ZWE5MTljYzNhMWNkOGMyZjNmNTk5NDlkZTM4YWMyOGU1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CkBA
IC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNv
cnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBmaXhlZCBlbGVtZW50cyB0
aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdp
bGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRl
ZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkK
LSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQt
Y2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5z
Zm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKaW5kZXggNzQ1YzU1ZWM3YTljN2Q5OWU1OGM0NWUyYmU2
YjRiMjBiODAxNThhMy4uMzU5ZjlmNTc3N2MzMmEyMzMxNjQ1NjU4YTFjMDg2YTkxMzE5YzU3YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtZml4ZWQtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBA
CiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4
dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9u
IHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJh
Y2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAg
ICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRN
TCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0Pgog
ICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXRy
YW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdl
dCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEw
MHB4OyBwb3NpdGlvbjogZml4ZWQ7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAg
PGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLWV4cGVjdGVkLnR4dAppbmRleCBiZDlmNTg5ZjljY2Q5YzY3NDgyNTEzYTc0NjZmY2ZiYmZm
N2QxOTY4Li5lMmQzZTU5N2ZkZDJiMWZiNjQ0YTVlMzliYWIzNWNjYTRlNmNiMGRiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxl
Y3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3Vs
ZCBoYXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAx
OTkgMTgpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk5IDE4KSApCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZs
b3ctaGlkZGVuLmh0bWwKaW5kZXggYmNjOWUzNGQxNzc4MGUwMTYwMGU1NTgzYmNhYWIxYjAyM2Ex
NjI2MC4uOGE0M2Y5YmFhMmU0NzQyNDNhMzY5NmU3YzI1NjMxYzIzOTA2MmNiMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVy
Zmxvdy1oaWRkZW4uaHRtbApAQCAtMSw1ICsxLDQgQEAKIDwhRE9DVFlQRSBodG1sPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCI+PC9zY3JpcHQ+CiA8c3R5bGU+CiAjdGVzdCB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOwpAQCAtMTIsMTEgKzExLDMwIEBACiB9CiA8L3N0eWxlPgogPHNjcmlwdD4KLSAgICBmdW5j
dGlvbiByZXBhaW50VGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKSB7Cisg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0
VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQodGVzdCwgMCwgdGVzdCwgMSk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93Lmlu
dGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMu
c3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9LCAwKTsKICAgICB9OwogPC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0i
cnVuUmVwYWludFRlc3QoKSI+CiAgICAgPHAgaWQ9InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJh
Y2tncm91bmQ8L3A+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQu
dHh0CmluZGV4IGEwYWU0NTYwZGZhM2Q2NjEyNWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVk
ZGE1ZDQyMmE2NDJhZWExZGFhNzRlOWQ4ZTgwMWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBh
aW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0g
IChyZWN0IDggMTYgMTk3IDE3KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAx
NykgKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432276</attachid>
            <date>2021-06-25 08:55:33 -0700</date>
            <delta_ts>2021-08-25 09:39:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20210625175532.patch</filename>
            <type>text/plain</type>
            <size>29129</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Mjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUwMGNhNGU1MmY5Zjlm
MzFiNmU5NjlmNGFlMmEzOGZkMjA5YTM4Ni4uY2JlYmNkOWI0MjMxY2VlODlhM2RhNmUwZTY0ZDFi
YTJjZWY0NjBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA2LTA3ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMDYtMjUgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1mbGV4Ym94
XSBJbXByb3ZlIGNvbXB1dGF0aW9uIG9mIGludHJpbnNpYyBzaXplcyBvZiBmbGV4IGl0ZW1zIHdp
dGggYXNwZWN0IHJhdGlvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CmluZGV4IGZjZDgwZDFjYmNhNzhiMGFlNDQxNzJhMzg5ZGE3ZjNmM2Y1NDA1Y2QuLjJlMTI1ZWQ0
YjQyMDhmMzE0ZjIyYmE2MjFiODY3MDA5Mjc1ZWNmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NDYsNiArNDQ2LDExIEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9w
dGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dENvbnRleHQo
KS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCEob3B0aW9u
cyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRl
QWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhTY3JvbGwp
ID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBvcHRp
b25zLmNvbnRhaW5zKE92ZXJyaWRlU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsZW1lbnQpID8gU21v
b3RoU2Nyb2xsRmVhdHVyZUVuYWJsZW1lbnQ6Ok92ZXJyaWRlIDogU21vb3RoU2Nyb2xsRmVhdHVy
ZUVuYWJsZW1lbnQ6OkRlZmF1bHQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2Vy
ZWQpIHsKQEAgLTQ1NCwxMyArNDU5LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAg
fQogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHls
ZShEb2N1bWVudCYgZG9jdW1lbnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rp
b25BcHBlYXJhbmNlTm93KCkKIHsKKyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZigqbV9kb2N1
bWVudCk7CiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCi0gICAgZG9jdW1lbnQudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogI2Vsc2UKLSAgICBkb2N1bWVudC51cGRhdGVTdHls
ZUlmTmVlZGVkKCk7CisgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICNlbmRp
ZgorICAgIGlmIChtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCisgICAgICAgIHVwZGF0ZUFwcGVh
cmFuY2UoKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRh
dGUoUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJVcGRhdGUgcmV2ZWFsTW9kZSkKQEAgLTE2NjAsNyArMTY2
OCw3IEBAIEludFJlY3QgRnJhbWVTZWxlY3Rpb246OmFic29sdXRlQ2FyZXRCb3VuZHMoYm9vbCog
aW5zaWRlRml4ZWQpCiB7CiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gSW50
UmVjdCgpOwotICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2Rv
Y3VtZW50KTsKKyAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgcmVjb21w
dXRlQ2FyZXRSZWN0KCk7CiAgICAgaWYgKGluc2lkZUZpeGVkKQogICAgICAgICAqaW5zaWRlRml4
ZWQgPSBtX2NhcmV0SW5zaWRlUG9zaXRpb25GaXhlZDsKQEAgLTIyMDgsNyArMjIxNiw3IEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJpbGl0eShDYXJldFZpc2liaWxpdHkgdmlz
aWJpbGl0eSwgU2hvdWxkVXBkYXRlCiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IHRyaWdn
ZXIgYSBzeW5jaHJvbm91cyBsYXlvdXQgaGVyZS4KICAgICBpZiAoZG9BcHBlYXJhbmNlVXBkYXRl
ID09IFNob3VsZFVwZGF0ZUFwcGVhcmFuY2U6OlllcyAmJiBtX2RvY3VtZW50KQotICAgICAgICB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAg
ICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKIAogI2lmIEVOQUJMRShURVhUX0NB
UkVUKQogICAgIGlmIChtX2NhcmV0UGFpbnQpIHsKQEAgLTIzMTUsNyArMjMyMyw3IEBAIEZsb2F0
UmVjdCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50
IGNsaXBUb1Zpc2libGVDb250CiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4g
TGF5b3V0UmVjdCgpOwogCi0gICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5
bGUoKm1fZG9jdW1lbnQpOworICAgIGNvbnN0X2Nhc3Q8RnJhbWVTZWxlY3Rpb24mPigqdGhpcyku
dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIGF1dG8qIHJlbmRlclZpZXcgPSBt
X2RvY3VtZW50LT5yZW5kZXJWaWV3KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICBy
ZXR1cm4gTGF5b3V0UmVjdCgpOwpAQCAtMjM5OCw2ICsyNDA2LDggQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6cmV2ZWFsU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29u
c3QgU2Nyb2wKICAgICBpZiAoaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHVwZGF0
ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKKwogICAgIExheW91dFJlY3QgcmVjdDsKICAgICBi
b29sIGluc2lkZUZpeGVkID0gZmFsc2U7CiAgICAgaWYgKGlzQ2FyZXQoKSkKQEAgLTI0NzIsNiAr
MjQ4MiwxNCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTaG91bGRTaG93QmxvY2tDdXJzb3Io
Ym9vbCBzaG91bGRTaG93QmxvY2tDdXJzb3IpCiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQog
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rp
b25Jc05lZWRlZCgpCit7CisgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgfHwgbV9z
ZWxlY3Rpb25SZXZlYWxNb2RlID09IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsKQor
ICAgICAgICByZXR1cm47CisgICAgbV9kb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CisgICAgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7Cit9CisK
IHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpCiB7CiAg
ICAgbV9hcHBlYXJhbmNlVXBkYXRlVGltZXIuc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oCmluZGV4IDkzYTU5ZDU4NjQyNGIyN2Y2YThhODc3MGE0YmZkNTMyMjEy
NjI0NjkuLjRkZmMwZjQwNDEzODAxYjFlNmU4MDE1MGNhOGYwMjAxNjFkMGEzNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwogICAgIHZvaWQgd2lsbEJlUmVt
b3ZlZEZyb21GcmFtZSgpOwogCisgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpOwogICAgIHZvaWQgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0
KCk7CiAgICAgdm9pZCBzY2hlZHVsZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7
CiAKQEAgLTI2Myw2ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVGcm9tQXNzb2Np
YXRlZExpdmVSYW5nZSgpOwogCiBwcml2YXRlOgorICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQXBw
ZWFyYW5jZU5vdygpOwogICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50JiwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6
SW5zdGFudCwgU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsZW1lbnQgPSBTbW9vdGhTY3JvbGxGZWF0
dXJlRW5hYmxlbWVudDo6T3ZlcnJpZGUpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0Zv
clNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmNwcAppbmRleCAwNGY3OGVkNzEwMzFmZjMzM2MyODk2YzE5MTA4ZTNkZDk1ZWZlM2M1
Li4zMGE2NmUxOGYyM2E5MmNkMTIxODM2OTQ4MTc1Mjk1YmM3MzQ1OGI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCkBAIC01NDEsNiArNTQyLDcgQEAgdm9pZCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Ojpmb2N1c0FuZFNob3dWYWxpZGF0aW9uTWVzc2FnZSgpCiAKICAgICAv
LyBDYWxsaW5nIGZvY3VzKCkgd2lsbCBzY3JvbGwgdGhlIGVsZW1lbnQgaW50byB2aWV3LgogICAg
IGZvY3VzKCk7CisgICAgZG9jdW1lbnQoKS5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlSWZS
ZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpOwogCiAgICAgLy8gZm9jdXMoKSB3aWxsIHNjcm9s
bCB0aGUgZWxlbWVudCBpbnRvIHZpZXcgYW5kIHRoaXMgc2Nyb2xsIG1heSBoYXBwZW4gYXN5bmNo
cm9ub3VzbHkuCiAgICAgLy8gQmVjYXVzZSBzY3JvbGxpbmcgdGhlIHZpZXcgaGlkZXMgdGhlIHZh
bGlkYXRpb24gbWVzc2FnZSwgd2UgbmVlZCB0byBzaG93IHRoZSB2YWxpZGF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZDg5MjE0NDI1MDRhNjliMzYwYzlmZDc2MWQ4
OTYzOThlMmM0ODRmYy4uZmRkZWU2MjUyMjNiMzYyY2VjYjAwZTI2NjQ5OGU5MzgxZDJiYjI5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZv
aWQgRXZlbnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChOb2RlJiBub2RlVG9CZVJlbW92ZWQp
CiBzdGF0aWMgdm9pZCBzZXRTZWxlY3Rpb25JZk5lZWRlZChGcmFtZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24pCiB7CiAgICAgaWYgKHNl
bGVjdGlvbi5zZWxlY3Rpb24oKSAhPSBuZXdTZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRy
aWdnZXJlZCkpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZGlzcGF0Y2hTZWxlY3RTdGFydChO
b2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMmM2OTUxYzI0ZDdhZWE1ODczMjc2ZDFk
YjI3ZTAxZDNhMzcxMTgyMS4uZWU3YmVjYTA2OTY3MDU4NWI4NmQzNWIyMDVkMjQyYjczMDBkMDZm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjM3LDYgKzE2MzcsMTAgQEAgdm9pZCBQYWdlOjpk
b0FmdGVyVXBkYXRlUmVuZGVyaW5nKCkKICAgICAgICAgZG9jdW1lbnQuZW5xdWV1ZVBhaW50VGlt
aW5nRW50cnlJZk5lZWRlZCgpOwogICAgIH0pOwogCisgICAgZm9yRWFjaERvY3VtZW50KFtdIChE
b2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uKCkudXBkYXRl
QXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CisgICAgfSk7CisKICAgICBmb3JFYWNoRG9jdW1lbnQo
W10gKERvY3VtZW50JiBkb2N1bWVudCkgewogICAgICAgICBkb2N1bWVudC51cGRhdGVIaWdobGln
aHRQb3NpdGlvbnMoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5YTc2MmNiM2RhMjk3Njg0NDA2OGY2MTA0
NjY1OTY0YzVhZDk0MDRlLi43YTc1NDBhZTQwYzY3YTczNzA5NmQzMWVhZTY0YWIyOTk4ODU0NGQz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjEtMDYtMDcgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVsZWFzZSBhc3NlcnQgaW4gRG9jdW1l
bnQ6OnVwZGF0ZUxheW91dCgpIHZpYSBIVE1MVGV4dEFyZWFFbGVtZW50OjpjaGlsZHJlbkNoYW5n
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ3
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVk
IHNvbWUgdGVzdHMgb3V0IG9mIHRoZSB0ZXh0LWJhc2VkLXJlcGFpbnQuanMgbW9kZWwgYmVjYXVz
ZSBzZWxlY3Rpb24gaXMgbm93IHVwZGF0ZWQKKyAgICAgICAgYW5kIHJldmVhbGVkIGFzeW5jaHJv
bm91c2x5IGluIHRoZSBjYXNlIG9mIG5vbi11c2VyIHRyaWdnZXJlZCBjaGFuZ2VzLiBUaGUgcHJv
YmxlbSBpcyB0aGF0CisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSByZXBhaW50IHJlY3RzIGFyZSBx
dWVyaWVkIHRoZSB1cGRhdGUgaGFzIG5vdCBoYXBwZW5lZCB5ZXQuIFRoYXQncyB3aHkKKyAgICAg
ICAgdGhlIHRlc3RzIHdlcmUgbW9kaWZpZWQgc28gdGhhdCB3ZSB3YWl0IHVudGlsIHRoZSByZXBh
aW50IGhhcHBlbnMuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVu
ZGxpbmUtY2FyZXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1h
YnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1
dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNo
aWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93
LWhpZGRlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L3Jl
cGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKwogMjAy
MS0wNi0yNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbY3NzLWZsZXhib3hdIEltcHJvdmUgY29tcHV0YXRpb24gb2YgaW50cmluc2ljIHNpemVz
IG9mIGZsZXggaXRlbXMgd2l0aCBhc3BlY3QgcmF0aW8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKaW5k
ZXggNzM0Y2RjYjA2YTM2MzY2M2I1ZDA5MTAwMTRmZDY2NGIyNWE1NDBlOC4uZTQyZTQzYmEyYjJm
NzQ1NDRlMjliNWU2ZGQ3NjEzOThhNGNjNzEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKQEAg
LTE1LDEzICsxNSwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB0YS5mb2N1cygpOwogICAgIC8v
IGNsaWNrCiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyg5MCwgMjApOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsK
LSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgICAgICBpZiAodGEuc2VsZWN0aW9u
RW5kID09IDE3KQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6
IGNhcmV0IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKKyAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OworICAgICAgICAgICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9PSAxNykKKyAgICAgICAgICAgICAg
ICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgRmFpbGVkOiBjYXJldCBpcyBhdCAi
ICsgdGEuc2VsZWN0aW9uRW5kOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgIH0pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVz
dCBjYW4ndCBydW4gd2l0aG91dCBldmVudCBzZW5kZXIgKHBhcnQgb2YgRHVtcFJlbmRlclRyZWUp
LiAiCiAgICAgICAgICAgICArICJUbyB0ZXN0IG1hbnVhbGx5LCBjbGljayBhdCB0aGUgbWlkZGxl
IG9mIHRoZSBsaW5lIG1hcmtlZCA5IGFuZCBjaGVjayB0aGF0IHRoZSBjYXJldCBhcHBlYXJzIGFm
dGVyIHRoZSA5LiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggM2Fi
YjBmNzA4OWEzZjNiY2JjNmFhZGY2OWY3M2Q3NzdiZjc5ZTMwYS4uYWNlYTU0ZTA1MGRmNWQyYTc3
NWE5ZDk5ZDliMDFmNzA2NmJhNWE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVk
LnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVw
YWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUg
ZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBl
dGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5
LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWlu
dCByZWN0cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggN2Q0
N2QxMjU5MWQ5YmM5ZmExMjE2OTFkMGU3NDBmOWFlZGIzZjQ3MC4uYTEwYjliNTI4OGFhMzJmMzYz
MTU4MGI1Y2I4OWU4YmViNTY5NDdlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsx
LDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1
bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykg
eworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlu
bmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAg
ICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2Ny
aXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2PgogICAgICAgICA8
ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgog
ICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJz
b2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggOWM3ZWVi
ODAzOWEyNjFjMGMwNzU3NDYxNmRkNTA4NjljYjQ3MWMzMS4uOWZlNmMyMjcyZjM3OTQ4OGI5ZmI1
ZTNiZWZlMmQzNjg3ZjZiNTdhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1j
aGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBn
YXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0
aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJlIGludmFsaWRhdGVkIGNv
cnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQg
YXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChy
ZWN0IDcwMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDcwMCAwIDEwMCAx
MDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxYjYxZWJmMmQ1
MGIzYTRmMGQwMjM4OTE2MTY0NDE3ZmUyOGU1NmE3Li5iZmM2NzFmYmM1MDAyNDJhOTIxNDZjZTA1
NDVjYTBiYWU2OTQzM2VmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBA
IC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJSZXBhaW50VGVzdCgp
CiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVy
bmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5z
ZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWlu
dHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOwor
ICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAg
ICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0xMyw3ICsyOSw3IEBACiAgICAgICAgICN0YXJn
ZXQ6OnNlbGVjdGlvbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CiAgICAgPC9zdHlsZT4K
IDwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3QoKSI+Cis8Ym9keSBvbmxvYWQ9
InJSZXBhaW50VGVzdCgpIj4KICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IG1h
cmdpbi1yaWdodDogMjAwcHg7Ij4KICAgICAgICAgPGRpdj5CdWcgPGEgaHJlZj0iaHR0cDovL3dl
YmtpdC5vcmcvYi8xMTEwMDAiPjExMTAwMDwvYT46IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFp
bnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtczwvZGl2PgogICAgICAgICA8ZGl2PlRoaXMgdGVz
dHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFyZSBpbnZhbGlkYXRl
ZCBjb3JyZWN0bHkuICBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxl
Y3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuPC9kaXY+CkBAIC0yMSw0ICszNyw1
IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsIj4K
ICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3
aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9k
aXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10
cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQKaW5kZXggYjdjMzA5N2M2YjE3NjE2ZTJmNWQ3NGU5OGI3ZTk4NTk3MWE0NWEzMS4uNWNj
OTYxNWQxZTMwZDg3NjA5ZGE0OWIzNzMzZGIwNWU5ZTQ2MTE3MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hp
bGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQg
QEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0
aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQg
dHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNv
bXBsZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJl
Y3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQotKQotCiso
cmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGls
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3Jt
ZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxN2VkMzViMWExNTg1MTA5Mjc2ZjlkYmVmMDY4
NDYzNjNlNDYwMTZmLi40MzFhYzM1NmJjNjRhZDYyYThmOTJiYjlhZDM0M2JiNzQ0ZDY4NDRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEs
MjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVu
Y3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsK
KyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3Rh
cnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5u
ZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3Jp
cHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0i
dGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rp
dj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1j
aGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggOGRiZWQ0NDliYjll
YWVjY2ZkNjYzOGI3NTc2YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5Y2MzYTFjZDhjMmYzZjU5
OTQ5ZGUzOGFjMjhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxk
LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMg
ZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQg
Zml4ZWQgZWxlbWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJl
Y3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJl
YSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDAp
ICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRy
YW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmluZGV4IDc0NWM1NWVjN2E5
YzdkOTllNThjNDVlMmJlNmI0YjIwYjgwMTU4YTMuLjM1OWY5ZjU3NzdjMzJhMjMzMTY0NTY1OGEx
YzA4NmE5MTMxOWM1N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbApA
QCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVz
dCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGlu
dGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24o
KS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKwor
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVw
YWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgp
OworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0K
ICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdiBz
dHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAg
ICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVkOyI+PGJyLz48L2Rpdj48YnIvPgog
ICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0
ZWQudHh0CmluZGV4IDk1OTE1ZTY2MDBmMTI1NWNiZjZmMjM5Zjk4NjQ5ZDc5OGEzNzYwNDEuLjRl
N2MwOTI0MzQ2N2NkNzkxNTM0ZTVmYjEyYTBlMTg1MzU3ZjU3NDggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApA
QCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCi0o
cmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzggMTggNzkpCi0pCi0KKyhyZXBhaW50IHJlY3Rz
IChyZWN0IDc3NCAzOCAxOCA3OSkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwuaHRtbAppbmRleCAwMjc4NDQwYTFmYjcyNDQ0MmQ5NjQyOTI4ZWEyZWIz
MjM5M2NjYTIxLi5lYTQyNTE2ZDQ4YjMxMGMzYzljNDQ3YTAwN2ExNjhhMDFmNTkwZjYxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbApAQCAt
Myw3ICszLDE1IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1y
ZXBhaW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiByZXBhaW50VGVzdCgpIHsK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxz
ZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blJl
cGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5h
bHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICBpZiAoZXZlbnRTZW5kZXIpIHsKICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCA0MCk7CiAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOwpAQCAtMTEsNiArMTksMTYgQEAgZnVuY3Rpb24gcmVwYWludFRlc3Qo
KSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgMTIwKTsKICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgIH0KKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxz
LnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2lu
Z1JlcGFpbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9LCAwKTsKIH0KIDwv
c2NyaXB0PgogCkBAIC0yNiw0ICs0NCw1IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KKzxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlv
bi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYmQ5ZjU4
OWY5Y2NkOWM2NzQ4MjUxM2E3NDY2ZmNmYmJmZjdkMTk2OC4uZTJkM2U1OTdmZGQyYjFmYjY0NGE1
ZTM5YmFiMzVjY2E0ZTZjYjBkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShy
ZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk5IDE4KQotKQotCisocmVwYWludCByZWN0cyAo
cmVjdCA4IDE2IDE5OSAxOCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCmluZGV4IGJjYzllMzRk
MTc3ODBlMDE2MDBlNTU4M2JjYWFiMWIwMjNhMTYyNjAuLjhhNDNmOWJhYTJlNDc0MjQzYTM2OTZl
N2MyNTYzMWMyMzkwNjJjYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90
ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKQEAgLTEsNSArMSw0
IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1y
ZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogPHN0eWxlPgogI3Rl
c3QgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKQEAgLTEyLDExICsxMSwzMCBAQAogfQog
PC9zdHlsZT4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxz
ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAg
ICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRlc3QsIDAsIHRlc3QsIDEpOworCisg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBh
aW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7
CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfTsK
IDwvc2NyaXB0PgogCiA8Ym9keSBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCkiPgogICAgIDxwIGlk
PSJ0ZXN0Ij5TaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kPC9wPgorICAgIDxkaXYgaWQ9InJl
cGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNmRmYzlhMTFjNTQ5OTI2NjA0NzZkNjlkMTJjZWJlNzcyYzc0OWQ1MS4u
NzgxZGJhZjI1ODI3ZTM3OWRkM2Y1NzI0ODY0NWY5OTc2MWU1Mzg2OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2NDMsOCArMTY0Myw2IEBAIHdlYmtp
dC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwg
WyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNlbmRlciBj
YXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcvYi80MjE5NCBmYXN0L3Njcm9sbGlu
Zy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQu
b3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIFsgRmFpbHVy
ZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90IHJlbmRlcmVkIHByb3Blcmx5Lgog
d2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhlaWdodC1kZXRlcm1pbmVkLWJ5LXBy
aW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvdGV4
dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5
LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNTU5NTk3ZWVhMGU5
MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rp
b24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4K
K1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5n
IGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KKyhyZXBhaW50IHJl
Y3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGEwYWU0NTYwZGZhM2Q2NjEy
NWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQyMmE2NDJhZWExZGFhNzRlOWQ4ZTgw
MWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFp
bnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93
LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBi
YWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE3KQotKQotCiso
cmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5
LXJsLWV4cGVjdGVkLnR4dAppbmRleCA1YTkzNGY0NzM3ZmU1ZjlmZjE2NTRlYTdhMmIxMzJmZjdl
YjJiNWM3Li5mYzU1OTU5N2VlYTBlOTIwZDE5NWFkMjc1OGEwOTI3ZjFiMjYyNTExIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5
LXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGlu
ZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJv
dGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBo
aXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0
ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVj
dCA3NzQgMzkgMTggODMpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4Mykg
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436407</attachid>
            <date>2021-08-25 11:50:58 -0700</date>
            <delta_ts>2021-08-26 00:55:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20210825205056.patch</filename>
            <type>text/plain</type>
            <size>34771</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhkNWNlOGNjOTBjYTAy
MzgzZjNhNjIyNjkxZGNhNjJiZGM0NTFjNy4uNDRjOGZjYzRhYmY1ZDNmNzM3MWFkOTM3NGQ1NjY4
MzJhNmIwNDA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA2LTA3ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMDgtMjQgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4
MTMwNSkgW0dTdHJlYW1lcl0gZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtZnJhbWUt
cmF0ZS5odG1sIHRpbWVvdXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCmluZGV4IDY0ZDMwM2M4YTNjZGRlMzNmZTdlZTg3ZWU5M2U0YmE1MmRiMzZlY2YuLjk3N2U2
NGU4NDJlNzEzNmE3ZTA4YmUyOGU1NTE2YTI2NGYxY2Y5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTIsNiArNDUyLDExIEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dENvbnRl
eHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCEob3B0
aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBlYXJhbmNlVXBk
YXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhTY3Jv
bGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBv
cHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxFeHRlbnRPcHRp
b246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQp
OwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2MCwxMyArNDY1
LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYgZG9jdW1lbnQp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkKIHsK
KyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZigqbV9kb2N1bWVudCk7CiAjaWYgRU5BQkxFKFRF
WFRfQ0FSRVQpCi0gICAgZG9jdW1lbnQudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CisgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOwogI2Vsc2UKLSAgICBkb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgZG9j
dW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICNlbmRpZgorICAgIGlmIChtX3BlbmRpbmdT
ZWxlY3Rpb25VcGRhdGUpCisgICAgICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKIH0KIAogdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9uQWZ0
ZXJVcGRhdGUgcmV2ZWFsTW9kZSkKQEAgLTE2NjYsNyArMTY3NCw3IEBAIEludFJlY3QgRnJhbWVT
ZWxlY3Rpb246OmFic29sdXRlQ2FyZXRCb3VuZHMoYm9vbCogaW5zaWRlRml4ZWQpCiB7CiAgICAg
aWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwotICAgIHVwZGF0ZVNl
bGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICB1cGRhdGVT
ZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgcmVjb21wdXRlQ2FyZXRSZWN0KCk7CiAgICAg
aWYgKGluc2lkZUZpeGVkKQogICAgICAgICAqaW5zaWRlRml4ZWQgPSBtX2NhcmV0SW5zaWRlUG9z
aXRpb25GaXhlZDsKQEAgLTIyMjIsNyArMjIzMCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dENhcmV0VmlzaWJpbGl0eShDYXJldFZpc2liaWxpdHkgdmlzaWJpbGl0eSwgU2hvdWxkVXBkYXRl
CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IHRyaWdnZXIgYSBzeW5jaHJvbm91cyBsYXlv
dXQgaGVyZS4KICAgICBpZiAoZG9BcHBlYXJhbmNlVXBkYXRlID09IFNob3VsZFVwZGF0ZUFwcGVh
cmFuY2U6OlllcyAmJiBtX2RvY3VtZW50KQotICAgICAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0
aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgICAgIHVwZGF0ZVNlbGVjdGlvbkFw
cGVhcmFuY2VOb3coKTsKIAogI2lmIEVOQUJMRShURVhUX0NBUkVUKQogICAgIGlmIChtX2NhcmV0
UGFpbnQpIHsKQEAgLTIzMjksNyArMjMzNyw3IEBAIEZsb2F0UmVjdCBGcmFtZVNlbGVjdGlvbjo6
c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zpc2libGVDb250CiAg
ICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwogCi0gICAg
dXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAg
IGNvbnN0X2Nhc3Q8RnJhbWVTZWxlY3Rpb24mPigqdGhpcykudXBkYXRlU2VsZWN0aW9uQXBwZWFy
YW5jZU5vdygpOwogICAgIGF1dG8qIHJlbmRlclZpZXcgPSBtX2RvY3VtZW50LT5yZW5kZXJWaWV3
KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwpA
QCAtMjQyNSw2ICsyNDMzLDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9u
KFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgU2Nyb2wKICAgICBpZiAoaXNO
b25lKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VO
b3coKTsKKwogICAgIExheW91dFJlY3QgcmVjdDsKICAgICBib29sIGluc2lkZUZpeGVkID0gZmFs
c2U7CiAgICAgaWYgKGlzQ2FyZXQoKSkKQEAgLTI0OTksNiArMjUwOSwxNCBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTaG91bGRTaG93QmxvY2tDdXJzb3IoYm9vbCBzaG91bGRTaG93QmxvY2tD
dXJzb3IpCiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCit2b2lkIEZyYW1lU2VsZWN0aW9u
Ojp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpCit7CisgICAg
aWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgfHwgbV9zZWxlY3Rpb25SZXZlYWxNb2RlID09
IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsKQorICAgICAgICByZXR1cm47CisgICAg
bV9kb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAg
dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7Cit9CisKIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpCiB7CiAgICAgbV9hcHBlYXJhbmNlVXBkYXRl
VGltZXIuc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4
IGI0YzEwOTk1NzIwMDE4ODhhNDdmZDgwMjM2YjBjYjJkYTI1Zjg3ODMuLjNkMWQ0M2JmZDk3OGU4
Y2EyYTJiZTFlZTcyYWQ0MTgyZWEzM2M4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmgKQEAgLTE0OCw2ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBjbGVhcigpOwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21GcmFtZSgpOwogCisg
ICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpOwog
ICAgIHZvaWQgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CiAgICAgdm9pZCBzY2hlZHVs
ZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7CiAKQEAgLTI2NCw2ICsyNjUsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwogCiBw
cml2YXRlOgorICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHZv
aWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgUmV2ZWFsRXh0ZW50
T3B0aW9uID0gUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogICAgIHZvaWQgdXBk
YXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAwNGY3OGVkNzEwMzFmZjMzM2MyODk2
YzE5MTA4ZTNkZDk1ZWZlM2M1Li4zMGE2NmUxOGYyM2E5MmNkMTIxODM2OTQ4MTc1Mjk1YmM3MzQ1
OGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCkBAIC01NDEsNiArNTQy
LDcgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpmb2N1c0FuZFNob3dWYWxpZGF0aW9u
TWVzc2FnZSgpCiAKICAgICAvLyBDYWxsaW5nIGZvY3VzKCkgd2lsbCBzY3JvbGwgdGhlIGVsZW1l
bnQgaW50byB2aWV3LgogICAgIGZvY3VzKCk7CisgICAgZG9jdW1lbnQoKS5zZWxlY3Rpb24oKS51
cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpOwogCiAgICAgLy8g
Zm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXcgYW5kIHRoaXMgc2Nyb2xs
IG1heSBoYXBwZW4gYXN5bmNocm9ub3VzbHkuCiAgICAgLy8gQmVjYXVzZSBzY3JvbGxpbmcgdGhl
IHZpZXcgaGlkZXMgdGhlIHZhbGlkYXRpb24gbWVzc2FnZSwgd2UgbmVlZCB0byBzaG93IHRoZSB2
YWxpZGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOGFjYmZhZTM0
OTM1ODNhYjYzYmFmN2VjMjRmMWZhMGI2YmIxZWY1Ny4uZjNmMmFkM2JmYjM2MmVlZTI3YzI4NjFi
ZmFkZjZiZWM4YTE4NDk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAt
NDIzLDcgKzQyMyw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChOb2Rl
JiBub2RlVG9CZVJlbW92ZWQpCiBzdGF0aWMgdm9pZCBzZXRTZWxlY3Rpb25JZk5lZWRlZChGcmFt
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24pCiB7CiAgICAgaWYgKHNlbGVjdGlvbi5zZWxlY3Rpb24oKSAhPSBuZXdTZWxlY3Rpb24gJiYg
c2VsZWN0aW9uLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBz
ZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIHNlbGVjdGlvbi5z
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZGlz
cGF0Y2hTZWxlY3RTdGFydChOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZWVlNjhi
NzdlMWU1ZmNlMWU1OWMzMjk0MzRhOWE4NjAwYjM2OTcxMC4uNTJiN2RmNzBmMmU2OTI3MDNkNzcx
NDdmNGU4NGM5NjRkYmI3OTdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjUxLDYgKzE2NTEs
MTAgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCkKICAgICAgICAgZG9jdW1l
bnQuZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgpOwogICAgIH0pOwogCisgICAgZm9y
RWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQu
c2VsZWN0aW9uKCkudXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CisgICAgfSk7CisKICAg
ICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgewogICAgICAgICBkb2N1
bWVudC51cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZGViYTA3
OTZhYzNiZmM4NDY2ZTdmMTgyYzNkN2E3MGJhMmFlZjZmLi43MGFiNDAxYjIxYThmOGJkZDc5M2Rh
OTY0ODYxM2FiNDhiNGQ0ZTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDYtMDcgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVsZWFz
ZSBhc3NlcnQgaW4gRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpIHZpYSBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMgb3V0IG9mIHRoZSB0ZXh0LWJhc2VkLXJlcGFp
bnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24gaXMgbm93IHVwZGF0ZWQKKyAgICAgICAgYW5k
IHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRoZSBjYXNlIG9mIG5vbi11c2VyIHRyaWdnZXJl
ZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSBy
ZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1cGRhdGUgaGFzIG5vdCBoYXBwZW5lZCB5ZXQu
IFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3RzIHdlcmUgbW9kaWZpZWQgc28gdGhhdCB3ZSB3
YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1j
aGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
ZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGls
ZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVw
YWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93
LWhpZGRlbi1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDgtMjQgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4MTMwNSkgW0dTdHJl
YW1lcl0gZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtZnJhbWUtcmF0ZS5odG1sIHRp
bWVvdXRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rp
b24tYm91bmRhcnktdXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sCmluZGV4IDhiZDkxOTU0YjJkOGZkYzkx
NDIwMDgyOWQxOGUxZGIzN2NhZWYzYmEuLjE4OWY2ZGJjMjlmN2FkYzJhMDI0N2YzMDc3NzMxYWVj
MmY5OTFlOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVj
dGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sCkBAIC0xNjIsMjAgKzE2Miwz
MSBAQAogICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNh
dGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFk
ZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKIAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwotCi0g
ICAgICAgIG1vdmUodHJ1ZSk7Ci0KLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpbnB1dCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0
aW9uIHlpZWxkTWFpblRocmVhZCgpIHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9LCAwKTsKKyAgICAg
ICAgICB9KTsKKyAgICAgICAgfQogCi0gICAgICAgIG1vdmUoZmFsc2UpOworICAgICAgICBmdW5j
dGlvbiBmb2N1c0VsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgZWxlbWVudC5mb2N1cygp
OworICAgICAgICAgIHJldHVybiB5aWVsZE1haW5UaHJlYWQoKTsKKyAgICAgICAgfQogCi0gICAg
ICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGFyZWEiKTsKLSAgICAg
ICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlvbiBtb3ZlQXN5bmMoaXNWZXJ0aWNh
bCkgeworICAgICAgICAgIG1vdmUoaXNWZXJ0aWNhbCk7CisgICAgICAgICAgcmV0dXJuIHlpZWxk
TWFpblRocmVhZCgpOworICAgICAgICB9CiAKLSAgICAgICAgbW92ZSh0cnVlKTsKKyAgICAgICAg
Zm9jdXNFbGVtZW50KCJ0ZXh0Ym94IikKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlQXN5bmMo
dHJ1ZSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZm9jdXNFbGVtZW50KCJpbnB1dCIpKQorICAg
ICAgICAgIC50aGVuKCgpID0+IG1vdmVBc3luYyhmYWxzZSkpCisgICAgICAgICAgLnRoZW4oKCkg
PT4gZm9jdXNFbGVtZW50KCJ0ZXh0YXJlYSIpKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVB
c3luYyh0cnVlKSk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApp
bmRleCBlMWViZGVjMDI3NDI4Njk5NjVjNWNkZGRjNjEwZjZiYmQ4ZWIyYWRmLi5lOGQ0ZWMxNjMz
ZDk0NDk3NWI5Yzg1NzA1ZTNlYmU0ZWE1ZjZhNmI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1s
CkBAIC0xOTUsMTkgKzE5NSw4NSBAQAogICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRp
b24iLCAidHJ1ZSIpOwogCiAgICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGV4dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CiAKICAgICAgICAgLy8gVHJp
Z2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KICAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCk7Ci0gICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgIGZvciAo
dmFyIGkgaW4gZ3JhbikgewotICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIs
IGdyYW5baV0pOwotICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBncmFu
W2ldKTsKKworICAgICAgICBmdW5jdGlvbiBmb2N1c1RleHRCb3goKSB7CisgICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAg
c2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKworCWZ1bmN0aW9uIG1vdmVTZWxlY3Rpb24oZGlyZWN0aW9uLCBncmFudWxhcml0
eSkgeworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgcy5tb2RpZnkoIm1vdmUiLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICB9KTsKICAgICAg
ICAgfQotICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKLSAgICAgICAgICAgIHMuc2V0UG9z
aXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndh
cmQiLCBncmFuW2ldKTsKKworICAgICAgICBmdW5jdGlvbiBleHRlbmRTZWxlY3Rpb24oZ3JhbnVs
YXJpdHkpIHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW51bGFyaXR5KTsKKyAgICAg
ICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICB9KTsK
ICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc2V0UG9zaXRpb24oKSB7CisgICAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcyA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRi
b3gsIDApOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgfSwgMCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvY3VzVGV4dEJveCgpCisg
ICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgp
ID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzBdKSkKKyAgICAgICAgICAudGhlbigo
KSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMF0pKQorICAgICAgICAgIC50aGVu
KCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzFdKSkKKyAgICAgICAgICAudGhl
bigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMV0pKQorICAgICAgICAgIC50
aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzJdKSkKKyAgICAgICAgICAu
dGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMl0pKQorICAgICAgICAg
IC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzNdKSkKKyAgICAgICAg
ICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bM10pKQorICAgICAg
ICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzRdKSkKKyAgICAg
ICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNF0pKQorICAg
ICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzVdKSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNV0pKQor
ICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzZdKSkK
KyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNl0p
KQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzdd
KSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5b
N10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFu
WzhdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdy
YW5bOF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAg
ICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3JhblswXSkpCisgICAgICAgICAgLnRoZW4o
KCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVj
dGlvbihncmFuWzFdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisg
ICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMl0pKQorICAgICAgICAg
IC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRl
bmRTZWxlY3Rpb24oZ3JhblszXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlv
bigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzRdKSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkg
PT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0
UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhbls2
XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50
aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzddKSkKKyAgICAgICAgICAudGhlbigoKSA9
PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9u
KGdyYW5bOF0pKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAppbmRl
eCA3MzRjZGNiMDZhMzYzNjYzYjVkMDkxMDAxNGZkNjY0YjI1YTU0MGU4Li5lNDJlNDNiYTJiMmY3
NDU0NGUyOWI1ZTZkZDc2MTM5OGE0Y2M3MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbApAQCAt
MTUsMTMgKzE1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRhLmZvY3VzKCk7CiAgICAgLy8g
Y2xpY2sKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKDkwLCAyMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwot
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIGlmICh0YS5zZWxlY3Rpb25F
bmQgPT0gMTcpCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDog
Y2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CisgICAgICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQorICAgICAgICAgICAgICAg
IHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0IGlzIGF0ICIg
KyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0
IGNhbid0IHJ1biB3aXRob3V0IGV2ZW50IHNlbmRlciAocGFydCBvZiBEdW1wUmVuZGVyVHJlZSku
ICIKICAgICAgICAgICAgICsgIlRvIHRlc3QgbWFudWFsbHksIGNsaWNrIGF0IHRoZSBtaWRkbGUg
b2YgdGhlIGxpbmUgbWFya2VkIDkgYW5kIGNoZWNrIHRoYXQgdGhlIGNhcmV0IGFwcGVhcnMgYWZ0
ZXIgdGhlIDkuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAzYWJi
MGY3MDg5YTNmM2JjYmM2YWFkZjY5ZjczZDc3N2JmNzllMzBhLi5hY2VhNTRlMDUwZGY1ZDJhNzc1
YTlkOTlkOWIwMWY3MDY2YmE1YTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQu
dHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBh
aW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBl
bGVtZW50cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0
ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHku
CiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50
IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCA3ZDQ3
ZDEyNTkxZDliYzlmYTEyMTY5MWQwZTc0MGY5YWVkYjNmNDcwLi5hMTBiOWI1Mjg4YWEzMmYzNjMx
NTgwYjVjYjg5ZThiZWI1Njk0N2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEs
MjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVu
Y3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsK
KyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3Rh
cnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5u
ZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3Jp
cHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXY+CiAgICAgICAgIDxk
aXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAg
ICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNv
bHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCA5YzdlZWI4
MDM5YTI2MWMwYzA3NTc0NjE2ZGQ1MDg2OWNiNDcxYzMxLi45ZmU2YzIyNzJmMzc5NDg4YjlmYjVl
M2JlZmUyZDM2ODdmNmI1N2FiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNo
aWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdh
cHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRo
YXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQgZmxpcHBlZCBhcmUgaW52YWxpZGF0ZWQgY29y
cmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBh
cmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJl
Y3QgNzAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzAwIDAgMTAwIDEw
MCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
ZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDFiNjFlYmYyZDUw
YjNhNGYwZDAyMzg5MTYxNjQ0MTdmZTI4ZTU2YTcuLmJmYzY3MWZiYzUwMDI0MmE5MjE0NmNlMDU0
NWNhMGJhZTY5NDMzZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAg
LTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+
Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gclJlcGFpbnRUZXN0KCkK
ICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJu
YWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVy
bmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50
cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7Cisg
ICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAg
IDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTEzLDcgKzI5LDcgQEAKICAgICAgICAgI3Rhcmdl
dDo6c2VsZWN0aW9uIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KICAgICA8L3N0eWxlPgog
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgpIj4KKzxib2R5IG9ubG9hZD0i
clJlcGFpbnRUZXN0KCkiPgogICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbWFy
Z2luLXJpZ2h0OiAyMDBweDsiPgogICAgICAgICA8ZGl2PkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Vi
a2l0Lm9yZy9iLzExMTAwMCI+MTExMDAwPC9hPjogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWlu
dCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zPC9kaXY+CiAgICAgICAgIDxkaXY+VGhpcyB0ZXN0
cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJlIGludmFsaWRhdGVk
IGNvcnJlY3RseS4gIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVj
dGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS48L2Rpdj4KQEAgLTIxLDQgKzM3LDUg
QEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmwiPgog
ICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdp
ZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rp
dj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRy
YW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVk
LnR4dAppbmRleCBiN2MzMDk3YzZiMTc2MTZlMmY1ZDc0ZTk4YjdlOTg1OTcxYTQ1YTMxLi41Y2M5
NjE1ZDFlMzBkODc2MDlkYTQ5YjM3MzNkYjA1ZTllNDYxMTczIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGls
ZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBA
QCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRo
IHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCB0
cmFuc2Zvcm1lZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29t
cGxldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVj
dGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhy
ZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1l
ZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDE3ZWQzNWIxYTE1ODUxMDkyNzZmOWRiZWYwNjg0
NjM2M2U0NjAxNmYuLjQzMWFjMzU2YmM2NGFkNjJhOGY5MmJiOWFkMzQzYmI3NDRkNjg0NGUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwy
NyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5j
dGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgewor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFy
dFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5k
RXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5l
ckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAg
ICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3Njcmlw
dD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtp
dC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2IGlkPSJ0
YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0
OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2
PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNo
aWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCA4ZGJlZDQ0OWJiOWVh
ZWNjZmQ2NjM4Yjc1NzZiYWRiOGJiMDQzYzQ1Li5jNWEzMTI4ZWE5MTljYzNhMWNkOGMyZjNmNTk5
NDlkZTM4YWMyOGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQt
ZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBk
b24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBm
aXhlZCBlbGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVj
dGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVh
IHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3Qg
NTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkg
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJh
bnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKaW5kZXggNzQ1YzU1ZWM3YTlj
N2Q5OWU1OGM0NWUyYmU2YjRiMjBiODAxNThhMy4uMzU5ZjlmNTc3N2MzMmEyMzMxNjQ1NjU4YTFj
MDg2YTkxMzE5YzU3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCkBA
IC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0
KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50
ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigp
LnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBh
aW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7
CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQog
ICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0
eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAg
IDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogZml4ZWQ7Ij48YnIvPjwvZGl2Pjxici8+CiAg
ICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3Rl
ZC50eHQKaW5kZXggOTU5MTVlNjYwMGYxMjU1Y2JmNmYyMzlmOTg2NDlkNzk4YTM3NjA0MS4uNGU3
YzA5MjQzNDY3Y2Q3OTE1MzRlNWZiMTJhMGUxODUzNTdmNTc0OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBA
IC04LDcgKzgsNCBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNl
bGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0
aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24u
CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KLShy
ZXBhaW50IHJlY3RzCi0gIChyZWN0IDc3NCAzOCAxOCA3OSkKLSkKLQorKHJlcGFpbnQgcmVjdHMg
KHJlY3QgNzc0IDM4IDE4IDc5KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC5odG1sCmluZGV4IDAyNzg0NDBhMWZiNzI0NDQyZDk2NDI5MjhlYTJlYjMy
MzkzY2NhMjEuLmVhNDI1MTZkNDhiMzEwYzNjOWM0NDdhMDA3YTE2OGEwMWY1OTBmNjEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCkBAIC0z
LDcgKzMsMTUgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJl
cGFpbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNl
KTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuUmVw
YWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFs
cy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgIGlmIChldmVudFNlbmRlcikgewogICAg
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDQwKTsKICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CkBAIC0xMSw2ICsxOSwxNiBAQCBmdW5jdGlvbiByZXBhaW50VGVzdCgp
IHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCAxMjApOwogICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgfQorCisgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMu
cmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5n
UmVwYWludHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOwogfQogPC9z
Y3JpcHQ+CiAKQEAgLTI2LDQgKzQ0LDUgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgorPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9u
LW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCBiZDlmNTg5
ZjljY2Q5YzY3NDgyNTEzYTc0NjZmY2ZiYmZmN2QxOTY4Li5lMmQzZTU5N2ZkZDJiMWZiNjQ0YTVl
MzliYWIzNWNjYTRlNmNiMGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJl
cGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTkgMTgpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChy
ZWN0IDggMTYgMTk5IDE4KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKaW5kZXggYmNjOWUzNGQx
Nzc4MGUwMTYwMGU1NTgzYmNhYWIxYjAyM2ExNjI2MC4uOGE0M2Y5YmFhMmU0NzQyNDNhMzY5NmU3
YzI1NjMxYzIzOTA2MmNiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbApAQCAtMSw1ICsxLDQg
QEAKIDwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJl
cGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiA8c3R5bGU+CiAjdGVz
dCB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwpAQCAtMTIsMTEgKzExLDMwIEBACiB9CiA8
L3N0eWxlPgogPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcnVuUmVwYWludFRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAg
IGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGVzdCwgMCwgdGVzdCwgMSk7CisKKyAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFp
bnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsK
KyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9Owog
PC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3QoKSI+CiAgICAgPHAgaWQ9
InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQ8L3A+CisgICAgPGRpdiBpZD0icmVw
YWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBhYWU4OWM0YTE3YzM3NjhjNzM5OWM4YTczZjk4MmEyODI2MWQ2YTg0Li45
YjIzMGMyYzgzM2IxNDQyNjNiOWIxYThhNzExYWJiOGI4OTUwMTlkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTY0NSw4ICsxNjQ1LDYgQEAgd2Via2l0
Lm9yZy9iLzE1OTE0MyBmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1pbi1ydGwuaHRtbCBb
IEZhaWx1cmUgXQogIyBJbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGV2ZW50U2VuZGVyIGNh
dXNlcyB0aGlzIHRlc3QgdG8gZmFpbAogd2Via2l0Lm9yZy9iLzQyMTk0IGZhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1zZWxlY3QtbGlzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xMzkzNTQgZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgWyBGYWlsdXJl
IF0KLQogIyBNaXNzaW5nIGdseXBoIHN5bWJvbCBpcyBub3QgcmVuZGVyZWQgcHJvcGVybHkuCiB3
ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVybWluZWQtYnktcHJp
bWFyeS1mb250Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDAyNTIgZmFzdC90ZXh0
L2RlY29yYXRpb25zLXdpdGgtdGV4dC1jb21iaW5lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynkt
cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM1NTk1OTdlZWEwZTky
MGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi5Tb21lIHJ1YnkKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgNzc0IDM5IDE4IDgzKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYTBhZTQ1NjBkZmEzZDY2MTI1
Y2YwZDQwMzA1MmRiMDgwNWU3MzgxMC4uMGZhNWRkYTVkNDIyYTY0MmFlYTFkYWE3NGU5ZDhlODAx
YWVjYTUyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ct
aGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJh
Y2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcgMTcpCi0pCi0KKyhy
ZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk3IDE3KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynkt
cmwtZXhwZWN0ZWQudHh0CmluZGV4IDVhOTM0ZjQ3MzdmZTVmOWZmMTY1NGVhN2EyYjEzMmZmN2Vi
MmI1YzcuLmZjNTU5NTk3ZWVhMGU5MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynkt
cmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBUZXN0aW5n
IGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90
aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhp
dCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRl
c3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KLShyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDc3NCAzOSAxOCA4MykKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM5IDE4IDgzKSAp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436479</attachid>
            <date>2021-08-26 00:57:19 -0700</date>
            <delta_ts>2021-10-06 09:48:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20210826095717.patch</filename>
            <type>text/plain</type>
            <size>38016</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhkNWNlOGNjOTBjYTAy
MzgzZjNhNjIyNjkxZGNhNjJiZGM0NTFjNy4uNDRjOGZjYzRhYmY1ZDNmNzM3MWFkOTM3NGQ1NjY4
MzJhNmIwNDA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA2LTA3ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMDgtMjQgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4
MTMwNSkgW0dTdHJlYW1lcl0gZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtZnJhbWUt
cmF0ZS5odG1sIHRpbWVvdXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCmluZGV4IDY0ZDMwM2M4YTNjZGRlMzNmZTdlZTg3ZWU5M2U0YmE1MmRiMzZlY2YuLjk3N2U2
NGU4NDJlNzEzNmE3ZTA4YmUyOGU1NTE2YTI2NGYxY2Y5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTIsNiArNDUyLDExIEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dENvbnRl
eHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCEob3B0
aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBlYXJhbmNlVXBk
YXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhTY3Jv
bGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBv
cHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxFeHRlbnRPcHRp
b246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQp
OwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2MCwxMyArNDY1
LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYgZG9jdW1lbnQp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkKIHsK
KyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZigqbV9kb2N1bWVudCk7CiAjaWYgRU5BQkxFKFRF
WFRfQ0FSRVQpCi0gICAgZG9jdW1lbnQudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CisgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOwogI2Vsc2UKLSAgICBkb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgZG9j
dW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICNlbmRpZgorICAgIGlmIChtX3BlbmRpbmdT
ZWxlY3Rpb25VcGRhdGUpCisgICAgICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKIH0KIAogdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9uQWZ0
ZXJVcGRhdGUgcmV2ZWFsTW9kZSkKQEAgLTE2NjYsNyArMTY3NCw3IEBAIEludFJlY3QgRnJhbWVT
ZWxlY3Rpb246OmFic29sdXRlQ2FyZXRCb3VuZHMoYm9vbCogaW5zaWRlRml4ZWQpCiB7CiAgICAg
aWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwotICAgIHVwZGF0ZVNl
bGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICB1cGRhdGVT
ZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgcmVjb21wdXRlQ2FyZXRSZWN0KCk7CiAgICAg
aWYgKGluc2lkZUZpeGVkKQogICAgICAgICAqaW5zaWRlRml4ZWQgPSBtX2NhcmV0SW5zaWRlUG9z
aXRpb25GaXhlZDsKQEAgLTIyMjIsNyArMjIzMCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dENhcmV0VmlzaWJpbGl0eShDYXJldFZpc2liaWxpdHkgdmlzaWJpbGl0eSwgU2hvdWxkVXBkYXRl
CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IHRyaWdnZXIgYSBzeW5jaHJvbm91cyBsYXlv
dXQgaGVyZS4KICAgICBpZiAoZG9BcHBlYXJhbmNlVXBkYXRlID09IFNob3VsZFVwZGF0ZUFwcGVh
cmFuY2U6OlllcyAmJiBtX2RvY3VtZW50KQotICAgICAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0
aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgICAgIHVwZGF0ZVNlbGVjdGlvbkFw
cGVhcmFuY2VOb3coKTsKIAogI2lmIEVOQUJMRShURVhUX0NBUkVUKQogICAgIGlmIChtX2NhcmV0
UGFpbnQpIHsKQEAgLTIzMjksNyArMjMzNyw3IEBAIEZsb2F0UmVjdCBGcmFtZVNlbGVjdGlvbjo6
c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zpc2libGVDb250CiAg
ICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwogCi0gICAg
dXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAg
IGNvbnN0X2Nhc3Q8RnJhbWVTZWxlY3Rpb24mPigqdGhpcykudXBkYXRlU2VsZWN0aW9uQXBwZWFy
YW5jZU5vdygpOwogICAgIGF1dG8qIHJlbmRlclZpZXcgPSBtX2RvY3VtZW50LT5yZW5kZXJWaWV3
KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwpA
QCAtMjQyNSw2ICsyNDMzLDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9u
KFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgU2Nyb2wKICAgICBpZiAoaXNO
b25lKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VO
b3coKTsKKwogICAgIExheW91dFJlY3QgcmVjdDsKICAgICBib29sIGluc2lkZUZpeGVkID0gZmFs
c2U7CiAgICAgaWYgKGlzQ2FyZXQoKSkKQEAgLTI0OTksNiArMjUwOSwxNCBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTaG91bGRTaG93QmxvY2tDdXJzb3IoYm9vbCBzaG91bGRTaG93QmxvY2tD
dXJzb3IpCiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCit2b2lkIEZyYW1lU2VsZWN0aW9u
Ojp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpCit7CisgICAg
aWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgfHwgbV9zZWxlY3Rpb25SZXZlYWxNb2RlID09
IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsKQorICAgICAgICByZXR1cm47CisgICAg
bV9kb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAg
dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7Cit9CisKIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpCiB7CiAgICAgbV9hcHBlYXJhbmNlVXBkYXRl
VGltZXIuc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4
IGI0YzEwOTk1NzIwMDE4ODhhNDdmZDgwMjM2YjBjYjJkYTI1Zjg3ODMuLjNkMWQ0M2JmZDk3OGU4
Y2EyYTJiZTFlZTcyYWQ0MTgyZWEzM2M4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmgKQEAgLTE0OCw2ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBjbGVhcigpOwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21GcmFtZSgpOwogCisg
ICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpOwog
ICAgIHZvaWQgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CiAgICAgdm9pZCBzY2hlZHVs
ZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7CiAKQEAgLTI2NCw2ICsyNjUsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwogCiBw
cml2YXRlOgorICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHZv
aWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgUmV2ZWFsRXh0ZW50
T3B0aW9uID0gUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogICAgIHZvaWQgdXBk
YXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAwNGY3OGVkNzEwMzFmZjMzM2MyODk2
YzE5MTA4ZTNkZDk1ZWZlM2M1Li4zMGE2NmUxOGYyM2E5MmNkMTIxODM2OTQ4MTc1Mjk1YmM3MzQ1
OGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCkBAIC01NDEsNiArNTQy
LDcgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpmb2N1c0FuZFNob3dWYWxpZGF0aW9u
TWVzc2FnZSgpCiAKICAgICAvLyBDYWxsaW5nIGZvY3VzKCkgd2lsbCBzY3JvbGwgdGhlIGVsZW1l
bnQgaW50byB2aWV3LgogICAgIGZvY3VzKCk7CisgICAgZG9jdW1lbnQoKS5zZWxlY3Rpb24oKS51
cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpOwogCiAgICAgLy8g
Zm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXcgYW5kIHRoaXMgc2Nyb2xs
IG1heSBoYXBwZW4gYXN5bmNocm9ub3VzbHkuCiAgICAgLy8gQmVjYXVzZSBzY3JvbGxpbmcgdGhl
IHZpZXcgaGlkZXMgdGhlIHZhbGlkYXRpb24gbWVzc2FnZSwgd2UgbmVlZCB0byBzaG93IHRoZSB2
YWxpZGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOGFjYmZhZTM0
OTM1ODNhYjYzYmFmN2VjMjRmMWZhMGI2YmIxZWY1Ny4uZjNmMmFkM2JmYjM2MmVlZTI3YzI4NjFi
ZmFkZjZiZWM4YTE4NDk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAt
NDIzLDcgKzQyMyw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChOb2Rl
JiBub2RlVG9CZVJlbW92ZWQpCiBzdGF0aWMgdm9pZCBzZXRTZWxlY3Rpb25JZk5lZWRlZChGcmFt
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24pCiB7CiAgICAgaWYgKHNlbGVjdGlvbi5zZWxlY3Rpb24oKSAhPSBuZXdTZWxlY3Rpb24gJiYg
c2VsZWN0aW9uLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBz
ZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIHNlbGVjdGlvbi5z
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZGlz
cGF0Y2hTZWxlY3RTdGFydChOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZWVlNjhi
NzdlMWU1ZmNlMWU1OWMzMjk0MzRhOWE4NjAwYjM2OTcxMC4uNTJiN2RmNzBmMmU2OTI3MDNkNzcx
NDdmNGU4NGM5NjRkYmI3OTdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjUxLDYgKzE2NTEs
MTAgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCkKICAgICAgICAgZG9jdW1l
bnQuZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgpOwogICAgIH0pOwogCisgICAgZm9y
RWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQu
c2VsZWN0aW9uKCkudXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CisgICAgfSk7CisKICAg
ICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgewogICAgICAgICBkb2N1
bWVudC51cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZGViYTA3
OTZhYzNiZmM4NDY2ZTdmMTgyYzNkN2E3MGJhMmFlZjZmLi5lOWE3ZWFlNzhkNTJlODk0NDViNzc0
NzQ1M2IwYjVmOWI5OGY0ZDllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDYtMDcgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVsZWFz
ZSBhc3NlcnQgaW4gRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpIHZpYSBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMgb3V0IG9mIHRoZSB0ZXh0LWJhc2VkLXJlcGFp
bnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24gaXMgbm93IHVwZGF0ZWQKKyAgICAgICAgYW5k
IHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRoZSBjYXNlIG9mIG5vbi11c2VyIHRyaWdnZXJl
ZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSBy
ZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1cGRhdGUgaGFzIG5vdCBoYXBwZW5lZCB5ZXQu
IFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3RzIHdlcmUgbW9kaWZpZWQgc28gdGhhdCB3ZSB3
YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMuCisKKyAgICAgICAgU2FtZSBzaXR1YXRpb24g
Zm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90IGludm9sdmUgcmVwYWludCByZWN0cyBidXQgYTEx
eSBub3RpZmljYXRpb25zLiBXZQorICAgICAgICBtdXN0IGVuc3VyZSB0aGF0IHdlIGxldCB0aGUg
bm90aWZpY2F0aW9uIGJlIHRocm93biBiZWZvcmUgY2hlY2tpbmcgd2hldGhlciBvciBub3QgaGFz
IGJlZW4KKyAgICAgICAgZW1pdGVkLiBBcyBpdCdzIGRvbmUgYXN5bmNocm9ub3VzbHkgd2UgbXVz
dCBsZXQgdGhlIG1haW4gdGhyZWFkIHJ1biBiZWZvcmUgY2hlY2tpbmcuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90
LWNsZWFyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxl
Y3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgorICAg
ICAgICAqIGZhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sOgor
ICAgICAgICAqIGZhc3QvcmVwYWludC80Nzc2NzY1Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAg
ICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1h
YnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgor
ICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNo
aWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10
cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
cmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1l
eHBlY3RlZC50eHQ6CisKIDIwMjEtMDgtMjQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4MTMwNSkgW0dTdHJlYW1lcl0gZmFz
dC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtZnJhbWUtcmF0ZS5odG1sIHRpbWVvdXRzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNl
bGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemlu
Zy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0CmluZGV4IGQ3NTE3NzQzMjViNmZiM2IyNGQwYzIx
ODE1ZTMyZmVlNjY1OGQ0MGMuLmM2ODM3OWNjMThlMjBiNTIyOTIyY2NlNjJhYzljZjI2NDFjZDRm
NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRp
bmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5
bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0CkBAIC03LDkgKzcsOSBAQCBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQor
UEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5pc0VxdWFsKGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiMSIpKSBpcyB0cnVlCiBQ
QVNTIGF4VGV4dFN0YXRlU3luY09uZSBpcyB1bmRlZmluZWQKIFBBU1MgYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikuaXNGb2N1c2FibGUgaXMgdHJ1ZQot
UEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5pc0VxdWFsKGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiMSIpKSBpcyB0cnVlCiBQ
QVNTIGF4VGV4dFN0YXRlU3luY1R3byBpcyB1bmRlZmluZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbAppbmRleCA4YmQ5MTk1NGIy
ZDhmZGM5MTQyMDA4MjlkMThlMWRiMzdjYWVmM2JhLi5mZDdmMmRjMTM5ODc3ZDI5NTNlZTMwNDU0
ZWMxNDIwNzYwNjg5NGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbApAQCAtMTYyLDIw
ICsxNjIsMjkgQEAKICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGRO
b3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3Vs
ZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKLSAgICAgICAgdGV4dGJveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMo
KTsKLQotICAgICAgICBtb3ZlKHRydWUpOwotCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiaW5wdXQiKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAg
ICBmdW5jdGlvbiB5aWVsZE1haW5UaHJlYWQoKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgcmVxdWVzdEFuaW1h
dGlvbkZyYW1lKCgpID0+IHsgcmVzb2x2ZSgpOyB9KTsKKyAgICAgICAgICB9KTsKKyAgICAgICAg
fQogCi0gICAgICAgIG1vdmUoZmFsc2UpOworICAgICAgICBmdW5jdGlvbiBmb2N1c0VsZW1lbnQo
ZWxlbWVudElkKSB7CisgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJZCk7CisgICAgICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICAgIHJldHVy
biB5aWVsZE1haW5UaHJlYWQoKTsKKyAgICAgICAgfQogCi0gICAgICAgIHRleHRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGFyZWEiKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygp
OworICAgICAgICBmdW5jdGlvbiBtb3ZlQXN5bmMoaXNWZXJ0aWNhbCkgeworICAgICAgICAgIG1v
dmUoaXNWZXJ0aWNhbCk7CisgICAgICAgICAgcmV0dXJuIHlpZWxkTWFpblRocmVhZCgpOworICAg
ICAgICB9CiAKLSAgICAgICAgbW92ZSh0cnVlKTsKKyAgICAgICAgZm9jdXNFbGVtZW50KCJ0ZXh0
Ym94IikKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlQXN5bmModHJ1ZSkpCisgICAgICAgICAg
LnRoZW4oKCkgPT4gZm9jdXNFbGVtZW50KCJpbnB1dCIpKQorICAgICAgICAgIC50aGVuKCgpID0+
IG1vdmVBc3luYyhmYWxzZSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZm9jdXNFbGVtZW50KCJ0
ZXh0YXJlYSIpKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVBc3luYyh0cnVlKSk7CiAgICAg
fQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAppbmRleCBlMWViZGVjMDI3NDI4
Njk5NjVjNWNkZGRjNjEwZjZiYmQ4ZWIyYWRmLi5lOGQ0ZWMxNjMzZDk0NDk3NWI5Yzg1NzA1ZTNl
YmU0ZWE1ZjZhNmI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0xOTUsMTkgKzE5NSw4
NSBAQAogICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCiAg
ICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAg
ICAgICB0ZXh0Ym94LmZvY3VzKCk7CiAKICAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hh
bmdlcy4KICAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgIHMu
c2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3Jhbikgewot
ICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOwotICAgICAg
ICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKworICAgICAgICBm
dW5jdGlvbiBmb2N1c1RleHRCb3goKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7
CisgICAgICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0KKworCWZ1bmN0
aW9uIG1vdmVTZWxlY3Rpb24oZGlyZWN0aW9uLCBncmFudWxhcml0eSkgeworICAgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICB9KTsKICAgICAgICAgfQotICAgICAgICBmb3Ig
KHZhciBpIGluIGdyYW4pIHsKLSAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7
Ci0gICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKwor
ICAgICAgICBmdW5jdGlvbiBleHRlbmRTZWxlY3Rpb24oZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgIHMubW9kaWZ5KCJl
eHRlbmQiLCAiZm9yd2FyZCIsIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICB9KTsKICAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIHJlc2V0UG9zaXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24o
KTsKKyAgICAgICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAg
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorCisgICAgICAgIGZvY3VzVGV4dEJveCgpCisgICAgICAgICAgLnRoZW4oKCkg
PT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24o
ImZvcndhcmQiLCBncmFuWzBdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9u
KCJiYWNrd2FyZCIsIGdyYW5bMF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rp
b24oImZvcndhcmQiLCBncmFuWzFdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0
aW9uKCJiYWNrd2FyZCIsIGdyYW5bMV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxl
Y3Rpb24oImZvcndhcmQiLCBncmFuWzJdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2Vs
ZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVT
ZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzNdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3Zl
U2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bM10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1v
dmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzRdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBt
b3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNF0pKQorICAgICAgICAgIC50aGVuKCgpID0+
IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzVdKSkKKyAgICAgICAgICAudGhlbigoKSA9
PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNV0pKQorICAgICAgICAgIC50aGVuKCgp
ID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzZdKSkKKyAgICAgICAgICAudGhlbigo
KSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNl0pKQorICAgICAgICAgIC50aGVu
KCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzddKSkKKyAgICAgICAgICAudGhl
bigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bN10pKQorICAgICAgICAgIC50
aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzhdKSkKKyAgICAgICAgICAu
dGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bOF0pKQorICAgICAgICAg
IC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRl
bmRTZWxlY3Rpb24oZ3JhblswXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlv
bigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzFdKSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkg
PT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0
UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhblsz
XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50
aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzRdKSkKKyAgICAgICAgICAudGhlbigoKSA9
PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9u
KGdyYW5bNV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAg
ICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhbls2XSkpCisgICAgICAgICAgLnRo
ZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNl
bGVjdGlvbihncmFuWzddKSkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bOF0pKTsKICAgICB9
CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4
dGJveC5odG1sCmluZGV4IGVlOWUwYTgwNWE1OTFhODFiMjE2YTVlYTU4ZThmNDgwMjZiNWEwZGIu
LmRmMTc0YTIzYTY1NDcxNDlhZjVlNTVhMzM4NTlmYjU5NGY5NjcxM2MgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1h
cmlhLXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxl
Y3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQzLDEyICs0Mywx
NSBAQCBjb250ZW50IGluc2lkZQogICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2Vz
LgogICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICAgcy5zZXRQ
b3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCAzOyBrKysp
IHsKKyAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAg
ICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJm
b3J3YXJkIiwgImNoYXJhY3RlciIpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVHJpZ2dlciB2
YWx1ZSBjaGFuZ2UuCi0gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0Iiwg
ZmFsc2UsICJoZWxsbyAiKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAg
ICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAg
ICAgICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOworICAgICAg
ICAgICAgfSwgMCk7CisgICAgICAgIH0sIDApOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2Fy
ZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGlu
ZS1jYXJldC5odG1sCmluZGV4IDczNGNkY2IwNmEzNjM2NjNiNWQwOTEwMDE0ZmQ2NjRiMjVhNTQw
ZTguLmU0MmU0M2JhMmIyZjc0NTQ0ZTI5YjVlNmRkNzYxMzk4YTRjYzcxMzcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGlu
ZS1jYXJldC5odG1sCkBAIC0xNSwxMyArMTUsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdGEu
Zm9jdXMoKTsKICAgICAvLyBjbGljawogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKLSAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICAgICAg
aWYgKHRhLnNlbGVjdGlvbkVuZCA9PSAxNykKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAi
VGVzdCBTdWNjZWVkZWQiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1M
ID0gIlRlc3QgRmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5kOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCgpID0+IHsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7
CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0gMTcp
CisgICAgICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxl
ZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICByZXMu
aW5uZXJIVE1MID0gIlRlc3QgY2FuJ3QgcnVuIHdpdGhvdXQgZXZlbnQgc2VuZGVyIChwYXJ0IG9m
IER1bXBSZW5kZXJUcmVlKS4gIgogICAgICAgICAgICAgKyAiVG8gdGVzdCBtYW51YWxseSwgY2xp
Y2sgYXQgdGhlIG1pZGRsZSBvZiB0aGUgbGluZSBtYXJrZWQgOSBhbmQgY2hlY2sgdGhhdCB0aGUg
Y2FyZXQgYXBwZWFycyBhZnRlciB0aGUgOS4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
LzQ3NzY3NjUtZXhwZWN0ZWQudHh0CmluZGV4IDJmMmVlN2M4NTM0MjcxODI4NjAzMWM4YmRlNTE5
ZGU1NDdlZjZhNDQuLjU1ZTI1MDZlYzY1MzUzNWU0MTg3NTVlZjk1OTc4MzYzMmFlNjcyZDggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKQEAgLTIs
MTMgKzIsMTMgQEAKIAogCiAocmVwYWludCByZWN0cwotICAocmVjdCAxIDM3IDc5OCAzMikKLSAg
KHJlY3QgOCA0NCA3ODQgMTgpCi0gIChyZWN0IDEgNTEgNzk4IDE4KQotICAocmVjdCAxIDQ0IDc5
OCA3KQogICAocmVjdCAxIDE5IDE1IDMyKQogICAocmVjdCA4IDI2IDEgMTgpCiAgIChyZWN0IDEg
MzcgMTUgMzIpCiAgIChyZWN0IDggNDQgMSAxOCkKKyAgKHJlY3QgMSAzNyA3OTggMzIpCisgIChy
ZWN0IDggNDQgNzg0IDE4KQorICAocmVjdCAxIDUxIDc5OCAxOCkKKyAgKHJlY3QgMSA0NCA3OTgg
NykKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDNhYmIwZjcw
ODlhM2YzYmNiYzZhYWRmNjlmNzNkNzc3YmY3OWUzMGEuLmFjZWE1NGUwNTBkZjVkMmE3NzVhOWQ5
OWQ5YjAxZjcwNjZiYTVhODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQK
QEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQg
Y29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1l
bnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkg
Z3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAog
Ci0ocmVwYWludCByZWN0cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgMCAwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDdkNDdkMTI1
OTFkOWJjOWZhMTIxNjkxZDBlNzQwZjlhZWRiM2Y0NzAuLmExMGI5YjUyODhhYTMyZjM2MzE1ODBi
NWNiODllOGJlYjU2OTQ3ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBA
QAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
eHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlv
biByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRy
YWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0
ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhU
TUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAg
ICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4K
ICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdj4KICAgICAgICAgPGRpdiBp
ZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhl
aWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRl
LWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDljN2VlYjgwMzlh
MjYxYzBjMDc1NzQ2MTZkZDUwODY5Y2I0NzFjMzEuLjlmZTZjMjI3MmYzNzk0ODhiOWZiNWUzYmVm
ZTJkMzY4N2Y2YjU3YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQt
ZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBk
b24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBh
YnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0
bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEg
d2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3
MDAgMCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA3MDAgMCAxMDAgMTAwKSAp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlw
cGVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggMWI2MWViZjJkNTBiM2E0
ZjBkMDIzODkxNjE2NDQxN2ZlMjhlNTZhNy4uYmZjNjcxZmJjNTAwMjQyYTkyMTQ2Y2UwNTQ1Y2Ew
YmFlNjk0MzNlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwx
MSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAg
ICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiByUmVwYWludFRlc3QoKQogICAg
IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMu
c3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJyku
aW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAg
ICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9z
Y3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMTMsNyArMjksNyBAQAogICAgICAgICAjdGFyZ2V0Ojpz
ZWxlY3Rpb24geyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQogICAgIDwvc3R5bGU+CiA8L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCkiPgorPGJvZHkgb25sb2FkPSJyUmVw
YWludFRlc3QoKSI+CiAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBtYXJnaW4t
cmlnaHQ6IDIwMHB4OyI+CiAgICAgICAgIDxkaXY+QnVnIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQu
b3JnL2IvMTExMDAwIj4xMTEwMDA8L2E+OiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNv
cnJlY3RseSB3aXRoIHRyYW5zZm9ybXM8L2Rpdj4KICAgICAgICAgPGRpdj5UaGlzIHRlc3RzIHRo
YXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQgZmxpcHBlZCBhcmUgaW52YWxpZGF0ZWQgY29y
cmVjdGx5LiAgVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQg
YXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LjwvZGl2PgpAQCAtMjEsNCArMzcsNSBAQAog
ICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCI+CiAgICAg
ICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxi
ci8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0
CmluZGV4IGI3YzMwOTdjNmIxNzYxNmUyZjVkNzRlOThiN2U5ODU5NzFhNDVhMzEuLjVjYzk2MTVk
MWUzMGQ4NzYwOWRhNDliMzczM2RiMDVlOWU0NjExNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10
cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1
ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJh
bnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IHRyYW5z
Zm9ybWVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wbGV0
ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHku
CiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFp
bnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFi
c29sdXRlLWNoaWxkLmh0bWwKaW5kZXggMTdlZDM1YjFhMTU4NTEwOTI3NmY5ZGJlZjA2ODQ2MzYz
ZTQ2MDE2Zi4uNDMxYWMzNTZiYzY0YWQ2MmE4ZjkyYmI5YWQzNDNiYjc0NGQ2ODQ0ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQt
YWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBA
CiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4
dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9u
IHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJh
Y2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAg
ICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRN
TCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0Pgog
ICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXRy
YW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdl
dCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEw
MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+Cisg
ICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJh
bnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDhkYmVkNDQ5YmI5ZWFlY2Nm
ZDY2MzhiNzU3NmJhZGI4YmIwNDNjNDUuLmM1YTMxMjhlYTkxOWNjM2ExY2Q4YzJmM2Y1OTk0OWRl
MzhhYzI4ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBl
Y3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0
IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVk
IGVsZW1lbnRzIHRoYXQgZ2V0IHRyYW5zZm9ybWVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHku
IFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2Fz
IGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1
MCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbAppbmRleCA3NDVjNTVlYzdhOWM3ZDk5
ZTU4YzQ1ZTJiZTZiNGIyMGI4MDE1OGEzLi4zNTlmOWY1Nzc3YzMyYTIzMzE2NDU2NThhMWMwODZh
OTEzMTljNTdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKQEAgLTEs
MTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0g
ICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQog
ICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5h
bHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRz
JykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAg
ICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAg
PC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9
Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRp
diBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7
IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBmaXhlZDsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dAppbmRleCA5NTkxNWU2NjAwZjEyNTVjYmY2ZjIzOWY5ODY0OWQ3OThhMzc2MDQxLi40ZTdjMDky
NDM0NjdjZDc5MTUzNGU1ZmIxMmEwZTE4NTM1N2Y1NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgs
NyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0
aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24u
CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRl
c3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFp
bnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM4IDE4IDc5KQotKQotCisocmVwYWludCByZWN0cyAocmVj
dCA3NzQgMzggMTggNzkpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLmh0bWwKaW5kZXggMDI3ODQ0MGExZmI3MjQ0NDJkOTY0MjkyOGVhMmViMzIzOTNj
Y2EyMS4uZWE0MjUxNmQ0OGIzMTBjM2M5YzQ0N2EwMDdhMTY4YTAxZjU5MGY2MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKQEAgLTMsNyAr
MywxNSBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWlu
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBydW5SZXBhaW50
VGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgaWYgKGV2ZW50U2VuZGVyKSB7CiAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgNDApOwogICAgICAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKQEAgLTExLDYgKzE5LDE2IEBAIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewog
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDEyMCk7CiAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKICAgICB9CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBh
aW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBh
aW50cygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7CiB9CiA8L3Njcmlw
dD4KIApAQCAtMjYsNCArNDQsNSBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+Cis8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3Zl
cmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGJkOWY1ODlmOWNj
ZDljNjc0ODI1MTNhNzQ2NmZjZmJiZmY3ZDE5NjguLmUyZDNlNTk3ZmRkMmIxZmI2NDRhNWUzOWJh
YjM1Y2NhNGU2Y2IwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAogCi0ocmVwYWlu
dCByZWN0cwotICAocmVjdCA4IDE2IDE5OSAxOCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3Qg
OCAxNiAxOTkgMTgpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCBiY2M5ZTM0ZDE3Nzgw
ZTAxNjAwZTU1ODNiY2FhYjFiMDIzYTE2MjYwLi44YTQzZjliYWEyZTQ3NDI0M2EzNjk2ZTdjMjU2
MzFjMjM5MDYyY2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1z
ZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0xLDUgKzEsNCBAQAog
PCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWlu
dC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KIDxzdHlsZT4KICN0ZXN0IHsK
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CkBAIC0xMiwxMSArMTEsMzAgQEAKIH0KIDwvc3R5
bGU+CiA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOwor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5SZXBhaW50VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgZ2V0
U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXN0LCAwLCB0ZXN0LCAxKTsKKworICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAg
ICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH07CiA8L3Nj
cmlwdD4KIAogPGJvZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgpIj4KICAgICA8cCBpZD0idGVz
dCI+U2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZDwvcD4KKyAgICA8ZGl2IGlkPSJyZXBhaW50
cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGFhZTg5YzRhMTdjMzc2OGM3Mzk5YzhhNzNmOTgyYTI4MjYxZDZhODQuLjliMjMw
YzJjODMzYjE0NDI2M2I5YjFhOGE3MTFhYmI4Yjg5NTAxOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjQ1LDggKzE2NDUsNiBAQCB3ZWJraXQub3Jn
L2IvMTU5MTQzIGZhc3QvZG9tL2hvcml6b250YWwtc2Nyb2xsYmFyLWluLXJ0bC5odG1sIFsgRmFp
bHVyZSBdCiAjIEluY29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YgZXZlbnRTZW5kZXIgY2F1c2Vz
IHRoaXMgdGVzdCB0byBmYWlsCiB3ZWJraXQub3JnL2IvNDIxOTQgZmFzdC9zY3JvbGxpbmcvc2Ny
b2xsLXNlbGVjdC1saXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9i
LzEzOTM1NCBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBbIEZhaWx1cmUgXQot
CiAjIE1pc3NpbmcgZ2x5cGggc3ltYm9sIGlzIG5vdCByZW5kZXJlZCBwcm9wZXJseS4KIHdlYmtp
dC5vcmcvYi8xNDAyNTIgZmFzdC9jc3MvbGluZS1oZWlnaHQtZGV0ZXJtaW5lZC1ieS1wcmltYXJ5
LWZvbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L3RleHQvZGVj
b3JhdGlvbnMtd2l0aC10ZXh0LWNvbWJpbmUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzU1OTU5N2VlYTBlOTIwZDE5
NWFkMjc1OGEwOTI3ZjFiMjYyNTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LlNvbWUgcnVieQorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3Ro
IGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCisocmVwYWludCByZWN0cyAo
cmVjdCA3NzQgMzkgMTggODMpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24t
b3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCBhMGFlNDU2MGRmYTNkNjYxMjVjZjBk
NDAzMDUyZGIwODA1ZTczODEwLi4wZmE1ZGRhNWQ0MjJhNjQyYWVhMWRhYTc0ZTlkOGU4MDFhZWNh
NTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRk
ZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dy
b3VuZAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5NyAxNykKLSkKLQorKHJlcGFp
bnQgcmVjdHMgKHJlY3QgOCAxNiAxOTcgMTcpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1l
eHBlY3RlZC50eHQKaW5kZXggNWE5MzRmNDczN2ZlNWY5ZmYxNjU0ZWE3YTJiMTMyZmY3ZWIyYjVj
Ny4uZmM1NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw0IEBAIFRlc3RpbmcgYm90
aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhp
dCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRl
c3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNzc0
IDM5IDE4IDgzKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA3NzQgMzkgMTggODMpICkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440381</attachid>
            <date>2021-10-06 09:50:21 -0700</date>
            <delta_ts>2021-10-06 12:30:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20211006185019.patch</filename>
            <type>text/plain</type>
            <size>37634</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhjN2VhNmVhNDQ4Nzg1
NmMzYjkzMDEzOWE1Y2ZkMTdlYTcxZmRlOC4uNTg2M2FhODU2NzRjMzZmNWIwYjdlMTA3NGU0ZjUz
NWI3NTQ1ZGYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTEwLTA2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMTAtMDQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBt
YWNjYXRhbHlzdCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCmluZGV4IGMyZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNhMjM1ZmZlOTdiNWViYmQuLjBj
Njk0NzJjYzg5MTk3NzBhZjk1OGEwYzgzNmEwMzU0MjdjNWNmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTIsNiArNDUyLDExIEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dENv
bnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCEo
b3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBlYXJhbmNl
VXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhT
Y3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50
LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxFeHRlbnRP
cHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRl
bnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2MCwxMyAr
NDY1LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0aWMgdm9p
ZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYgZG9jdW1l
bnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkK
IHsKKyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZigqbV9kb2N1bWVudCk7CiAjaWYgRU5BQkxF
KFRFWFRfQ0FSRVQpCi0gICAgZG9jdW1lbnQudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CisgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogI2Vsc2UKLSAgICBkb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAg
ZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICNlbmRpZgorICAgIGlmIChtX3BlbmRp
bmdTZWxlY3Rpb25VcGRhdGUpCisgICAgICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKIH0KIAogdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9u
QWZ0ZXJVcGRhdGUgcmV2ZWFsTW9kZSkKQEAgLTE2NjYsNyArMTY3NCw3IEBAIEludFJlY3QgRnJh
bWVTZWxlY3Rpb246OmFic29sdXRlQ2FyZXRCb3VuZHMoYm9vbCogaW5zaWRlRml4ZWQpCiB7CiAg
ICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwotICAgIHVwZGF0
ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICB1cGRh
dGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgcmVjb21wdXRlQ2FyZXRSZWN0KCk7CiAg
ICAgaWYgKGluc2lkZUZpeGVkKQogICAgICAgICAqaW5zaWRlRml4ZWQgPSBtX2NhcmV0SW5zaWRl
UG9zaXRpb25GaXhlZDsKQEAgLTIyMjIsNyArMjIzMCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldENhcmV0VmlzaWJpbGl0eShDYXJldFZpc2liaWxpdHkgdmlzaWJpbGl0eSwgU2hvdWxkVXBk
YXRlCiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IHRyaWdnZXIgYSBzeW5jaHJvbm91cyBs
YXlvdXQgaGVyZS4KICAgICBpZiAoZG9BcHBlYXJhbmNlVXBkYXRlID09IFNob3VsZFVwZGF0ZUFw
cGVhcmFuY2U6OlllcyAmJiBtX2RvY3VtZW50KQotICAgICAgICB1cGRhdGVTZWxlY3Rpb25CeVVw
ZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgICAgIHVwZGF0ZVNlbGVjdGlv
bkFwcGVhcmFuY2VOb3coKTsKIAogI2lmIEVOQUJMRShURVhUX0NBUkVUKQogICAgIGlmIChtX2Nh
cmV0UGFpbnQpIHsKQEAgLTIzMzAsNyArMjMzOCw3IEBAIEZsb2F0UmVjdCBGcmFtZVNlbGVjdGlv
bjo6c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zpc2libGVDb250
CiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwogCi0g
ICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOwor
ICAgIGNvbnN0X2Nhc3Q8RnJhbWVTZWxlY3Rpb24mPigqdGhpcykudXBkYXRlU2VsZWN0aW9uQXBw
ZWFyYW5jZU5vdygpOwogICAgIGF1dG8qIHJlbmRlclZpZXcgPSBtX2RvY3VtZW50LT5yZW5kZXJW
aWV3KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgp
OwpAQCAtMjQyNiw2ICsyNDM0LDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0
aW9uKFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgU2Nyb2wKICAgICBpZiAo
aXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFu
Y2VOb3coKTsKKwogICAgIExheW91dFJlY3QgcmVjdDsKICAgICBib29sIGluc2lkZUZpeGVkID0g
ZmFsc2U7CiAgICAgaWYgKGlzQ2FyZXQoKSkKQEAgLTI1MDAsNiArMjUxMCwxNCBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRTaG91bGRTaG93QmxvY2tDdXJzb3IoYm9vbCBzaG91bGRTaG93Qmxv
Y2tDdXJzb3IpCiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCit2b2lkIEZyYW1lU2VsZWN0
aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpCit7Cisg
ICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgfHwgbV9zZWxlY3Rpb25SZXZlYWxNb2Rl
ID09IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9kb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Cisg
ICAgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7Cit9CisKIHZvaWQgRnJhbWVTZWxlY3Rp
b246OnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpCiB7CiAgICAgbV9hcHBlYXJhbmNlVXBk
YXRlVGltZXIuc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmlu
ZGV4IDRjYmY1YTMwOTE1NTI5Zjg1M2UxYWYxMDJkYjBiM2M1MDJiMzdiMDcuLjAwODI5NjBlY2Y1
ODg0YjlmNGVhZjIwN2I0Yzk4N2MxNjRjMmIwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmgKQEAgLTE0OCw2ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjbGVhcigpOwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21GcmFtZSgpOwog
CisgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgp
OwogICAgIHZvaWQgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CiAgICAgdm9pZCBzY2hl
ZHVsZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7CiAKQEAgLTI2NCw2ICsyNjUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwog
CiBwcml2YXRlOgorICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAg
IHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50JiwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgUmV2ZWFsRXh0
ZW50T3B0aW9uID0gUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogICAgIHZvaWQg
dXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxNDFlNjU4ZmVhNTRkNGU5YTE0
Y2YyZjU0ZWYzMjE4YjRjMWI3MWJlLi4yNGY5ODZkYjQ0MWUyZTEwMjZmOGM0ZWI0OWIxYzg3NjYx
MzBiMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNl
bGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxEYXRhTGlz
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCkBAIC01NDEsNiAr
NTQyLDcgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpmb2N1c0FuZFNob3dWYWxpZGF0
aW9uTWVzc2FnZSgpCiAKICAgICAvLyBDYWxsaW5nIGZvY3VzKCkgd2lsbCBzY3JvbGwgdGhlIGVs
ZW1lbnQgaW50byB2aWV3LgogICAgIGZvY3VzKCk7CisgICAgZG9jdW1lbnQoKS5zZWxlY3Rpb24o
KS51cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpOwogCiAgICAg
Ly8gZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXcgYW5kIHRoaXMgc2Ny
b2xsIG1heSBoYXBwZW4gYXN5bmNocm9ub3VzbHkuCiAgICAgLy8gQmVjYXVzZSBzY3JvbGxpbmcg
dGhlIHZpZXcgaGlkZXMgdGhlIHZhbGlkYXRpb24gbWVzc2FnZSwgd2UgbmVlZCB0byBzaG93IHRo
ZSB2YWxpZGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDM2NWE3
NThlZmFhMTM2MzM2YTVkOGMzNWRmZmE2Nzk1MjZmODY2My4uOTkyMGYyNDIwZDUxZTQwYTFkZGQw
MjA4MWVjM2Y0Yjc2YmI1YWM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApA
QCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChO
b2RlJiBub2RlVG9CZVJlbW92ZWQpCiBzdGF0aWMgdm9pZCBzZXRTZWxlY3Rpb25JZk5lZWRlZChG
cmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxl
Y3Rpb24pCiB7CiAgICAgaWYgKHNlbGVjdGlvbi5zZWxlY3Rpb24oKSAhPSBuZXdTZWxlY3Rpb24g
JiYgc2VsZWN0aW9uLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAg
ICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIHNlbGVjdGlv
bi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
ZGlzcGF0Y2hTZWxlY3RTdGFydChOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZjMz
NWM5YWQ0YjhlZDBkNDc1NWVkZGRhMzJiNTVjMDRmYzVlMTBkZC4uNDQ4Y2FmZTBiYjI0YmVjOTU4
MGJjOWY5MTMwZWM5NjQ1ZDY5OWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjU0LDYgKzE2
NTQsMTAgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCkKICAgICAgICAgZG9j
dW1lbnQuZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgpOwogICAgIH0pOwogCisgICAg
Zm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1l
bnQuc2VsZWN0aW9uKCkudXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CisgICAgfSk7CisK
ICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgewogICAgICAgICBk
b2N1bWVudC51cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MDc1
OTIxNWU4OTgyZDVhMzRiYjM0NTlhMTYzOGY2Y2IyMzdiOGRmLi5kNGNkYjcwZTk4YWZkYjYzZmJh
NmM5NDhhMjQ5ODg0ZGU1NjY5YmRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMTAtMDYg
IFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVs
ZWFzZSBhc3NlcnQgaW4gRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpIHZpYSBIVE1MVGV4dEFyZWFF
bGVtZW50OjpjaGlsZHJlbkNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNDQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMgb3V0IG9mIHRoZSB0ZXh0LWJhc2VkLXJl
cGFpbnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24gaXMgbm93IHVwZGF0ZWQKKyAgICAgICAg
YW5kIHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRoZSBjYXNlIG9mIG5vbi11c2VyIHRyaWdn
ZXJlZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAgIGJ5IHRoZSB0aW1lIHRo
ZSByZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1cGRhdGUgaGFzIG5vdCBoYXBwZW5lZCB5
ZXQuIFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3RzIHdlcmUgbW9kaWZpZWQgc28gdGhhdCB3
ZSB3YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMuCisKKyAgICAgICAgU2FtZSBzaXR1YXRp
b24gZm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90IGludm9sdmUgcmVwYWludCByZWN0cyBidXQg
YTExeSBub3RpZmljYXRpb25zLiBXZQorICAgICAgICBtdXN0IGVuc3VyZSB0aGF0IHdlIGxldCB0
aGUgbm90aWZpY2F0aW9uIGJlIHRocm93biBiZWZvcmUgY2hlY2tpbmcgd2hldGhlciBvciBub3Qg
aGFzIGJlZW4KKyAgICAgICAgZW1pdGVkLiBBcyBpdCdzIGRvbmUgYXN5bmNocm9ub3VzbHkgd2Ug
bXVzdCBsZXQgdGhlIG1haW4gdGhyZWFkIHJ1biBiZWZvcmUgY2hlY2tpbmcuCisKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9y
LWFyaWEtdGV4dGJveC5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xs
ZWQtZW5kbGluZS1jYXJldC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1h
YnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4
ZWQtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWlu
dmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3Zl
cmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1z
ZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQuCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQu
dHh0OgorCiAyMDIxLTEwLTA0ICBBeXVtaSBLb2ppbWEgIDxheXVtaV9rb2ppbWFAYXBwbGUuY29t
PgogCiAgICAgICAgIENsZWFuaW5nIHVwIGV4cGVjdGF0aW9ucyBmb3IgaU9TIDE1LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVz
ZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91
bmRhcnktdXNlcmluZm8uaHRtbAppbmRleCA4YmQ5MTk1NGIyZDhmZGM5MTQyMDA4MjlkMThlMWRi
MzdjYWVmM2JhLi5mZDdmMmRjMTM5ODc3ZDI5NTNlZTMwNDU0ZWMxNDIwNzYwNjg5NGJjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnkt
dXNlcmluZm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rp
b24tYm91bmRhcnktdXNlcmluZm8uaHRtbApAQCAtMTYyLDIwICsxNjIsMjkgQEAKICAgICAgICAg
dmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihu
b3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlv
biIsICJ0cnVlIik7CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKLQotICAgICAgICBtb3ZlKHRy
dWUpOwotCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQi
KTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlvbiB5aWVsZE1haW5U
aHJlYWQoKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsgcmVz
b2x2ZSgpOyB9KTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQogCi0gICAgICAgIG1vdmUoZmFs
c2UpOworICAgICAgICBmdW5jdGlvbiBmb2N1c0VsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAg
ICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAg
ICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICAgIHJldHVybiB5aWVsZE1haW5UaHJlYWQoKTsK
KyAgICAgICAgfQogCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGV4dGFyZWEiKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlvbiBt
b3ZlQXN5bmMoaXNWZXJ0aWNhbCkgeworICAgICAgICAgIG1vdmUoaXNWZXJ0aWNhbCk7CisgICAg
ICAgICAgcmV0dXJuIHlpZWxkTWFpblRocmVhZCgpOworICAgICAgICB9CiAKLSAgICAgICAgbW92
ZSh0cnVlKTsKKyAgICAgICAgZm9jdXNFbGVtZW50KCJ0ZXh0Ym94IikKKyAgICAgICAgICAudGhl
bigoKSA9PiBtb3ZlQXN5bmModHJ1ZSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZm9jdXNFbGVt
ZW50KCJpbnB1dCIpKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVBc3luYyhmYWxzZSkpCisg
ICAgICAgICAgLnRoZW4oKCkgPT4gZm9jdXNFbGVtZW50KCJ0ZXh0YXJlYSIpKQorICAgICAgICAg
IC50aGVuKCgpID0+IG1vdmVBc3luYyh0cnVlKSk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFu
Z2UtdXNlcmluZm8uaHRtbAppbmRleCBlMWViZGVjMDI3NDI4Njk5NjVjNWNkZGRjNjEwZjZiYmQ4
ZWIyYWRmLi5lOGQ0ZWMxNjMzZDk0NDk3NWI5Yzg1NzA1ZTNlYmU0ZWE1ZjZhNmI2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNo
YW5nZS11c2VyaW5mby5odG1sCkBAIC0xOTUsMTkgKzE5NSw4NSBAQAogICAgICAgICBzaG91bGRC
ZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCiAgICAgICAgIHRleHRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7
CiAKICAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KICAgICAgICAgdmFyIHMg
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwg
MCk7Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAgICAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOwotICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKworICAgICAgICBmdW5jdGlvbiBmb2N1c1RleHRCb3go
KSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgIHRleHRi
b3guZm9jdXMoKTsKKyAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSwgMCk7
CisgICAgICAgICAgfSk7CisgICAgICAgIH0KKworCWZ1bmN0aW9uIG1vdmVTZWxlY3Rpb24oZGly
ZWN0aW9uLCBncmFudWxhcml0eSkgeworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCBkaXJlY3Rpb24sIGdyYW51bGFy
aXR5KTsKKyAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICB9LCAwKTsKKyAg
ICAgICAgICB9KTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKLSAg
ICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgICAgICBzLm1vZGlm
eSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKworICAgICAgICBmdW5jdGlvbiBleHRl
bmRTZWxlY3Rpb24oZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
ZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdy
YW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICB9LCAw
KTsKKyAgICAgICAgICB9KTsKICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc2V0UG9z
aXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgICAgICBz
LnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAg
IGZvY3VzVGV4dEJveCgpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQor
ICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzBdKSkK
KyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMF0p
KQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzFd
KSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5b
MV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFu
WzJdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdy
YW5bMl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBn
cmFuWzNdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIs
IGdyYW5bM10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQi
LCBncmFuWzRdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2Fy
ZCIsIGdyYW5bNF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndh
cmQiLCBncmFuWzVdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNr
d2FyZCIsIGdyYW5bNV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZv
cndhcmQiLCBncmFuWzZdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJi
YWNrd2FyZCIsIGdyYW5bNl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24o
ImZvcndhcmQiLCBncmFuWzddKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9u
KCJiYWNrd2FyZCIsIGdyYW5bN10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rp
b24oImZvcndhcmQiLCBncmFuWzhdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0
aW9uKCJiYWNrd2FyZCIsIGdyYW5bOF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9z
aXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3JhblswXSkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVu
KCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzFdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBy
ZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdy
YW5bMl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAg
ICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3JhblszXSkpCisgICAgICAgICAgLnRoZW4o
KCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVj
dGlvbihncmFuWzRdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisg
ICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNV0pKQorICAgICAgICAg
IC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRl
bmRTZWxlY3Rpb24oZ3Jhbls2XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlv
bigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzddKSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkg
PT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bOF0pKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5n
ZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCmluZGV4IGVlOWUw
YTgwNWE1OTFhODFiMjE2YTVlYTU4ZThmNDgwMjZiNWEwZGIuLmRmMTc0YTIzYTY1NDcxNDlhZjVl
NTVhMzM4NTlmYjU5NGY5NjcxM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQzLDEyICs0MywxNSBAQCBjb250ZW50IGluc2lkZQog
ICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsK
LSAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCAzOyBrKyspIHsKKyAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgc2V0VGltZW91dCgoKSA9
PiB7CiAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIp
OwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCi0gICAgICAg
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAg
ICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJt
b3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgLy8gVHJpZ2dl
ciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIklu
c2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOworICAgICAgICAgICAgfSwgMCk7CisgICAgICAg
IH0sIDApOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCmluZGV4IDcz
NGNkY2IwNmEzNjM2NjNiNWQwOTEwMDE0ZmQ2NjRiMjVhNTQwZTguLmU0MmU0M2JhMmIyZjc0NTQ0
ZTI5YjVlNmRkNzYxMzk4YTRjYzcxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCkBAIC0xNSwx
MyArMTUsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdGEuZm9jdXMoKTsKICAgICAvLyBjbGlj
awogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oOTAsIDIwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICAgICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9
PSAxNykKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgRmFpbGVkOiBjYXJl
dCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5kOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7CisgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAg
ICAgICAgICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0gMTcpCisgICAgICAgICAgICAgICAgcmVz
LmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQgIiArIHRh
LnNlbGVjdGlvbkVuZDsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgY2Fu
J3QgcnVuIHdpdGhvdXQgZXZlbnQgc2VuZGVyIChwYXJ0IG9mIER1bXBSZW5kZXJUcmVlKS4gIgog
ICAgICAgICAgICAgKyAiVG8gdGVzdCBtYW51YWxseSwgY2xpY2sgYXQgdGhlIG1pZGRsZSBvZiB0
aGUgbGluZSBtYXJrZWQgOSBhbmQgY2hlY2sgdGhhdCB0aGUgY2FyZXQgYXBwZWFycyBhZnRlciB0
aGUgOS4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDNhYmIwZjcw
ODlhM2YzYmNiYzZhYWRmNjlmNzNkNzc3YmY3OWUzMGEuLmFjZWE1NGUwNTBkZjVkMmE3NzVhOWQ5
OWQ5YjAxZjcwNjZiYTVhODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQK
QEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQg
Y29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1l
bnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkg
Z3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAog
Ci0ocmVwYWludCByZWN0cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgMCAwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDdkNDdkMTI1
OTFkOWJjOWZhMTIxNjkxZDBlNzQwZjlhZWRiM2Y0NzAuLmExMGI5YjUyODhhYTMyZjM2MzE1ODBi
NWNiODllOGJlYjU2OTQ3ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBA
QAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
eHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlv
biByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRy
YWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0
ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhU
TUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAg
ICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4K
ICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdj4KICAgICAgICAgPGRpdiBp
ZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhl
aWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRl
LWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGRiM2MzNzQxNjU2
YjE3NzhjOTE0MGY3MTU0YWU4N2M1ODA2YzQ2YjQuLjk3OWVmYTM5ZTU1MGNjMmUzMjU0NjMxMzI5
YTkxMmI3ZWY1OGYyOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQt
ZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBk
b24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBh
YnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0
bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEg
d2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCAw
IDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgMCAwIDEwMCAxMDApICkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQt
YWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxYjYxZWJmMmQ1MGIzYTRmMGQw
MjM4OTE2MTY0NDE3ZmUyOGU1NmE3Li5iZmM2NzFmYmM1MDAyNDJhOTIxNDZjZTA1NDVjYTBiYWU2
OTQzM2VmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsx
LDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1
bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJSZXBhaW50VGVzdCgpCiAgICAgewor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFy
dFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5k
RXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5l
ckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAg
ICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3Njcmlw
dD4KICAgICA8c3R5bGU+CkBAIC0xMyw3ICsyOSw3IEBACiAgICAgICAgICN0YXJnZXQ6OnNlbGVj
dGlvbiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CiAgICAgPC9zdHlsZT4KIDwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3QoKSI+Cis8Ym9keSBvbmxvYWQ9InJSZXBhaW50
VGVzdCgpIj4KICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IG1hcmdpbi1yaWdo
dDogMjAwcHg7Ij4KICAgICAgICAgPGRpdj5CdWcgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcv
Yi8xMTEwMDAiPjExMTAwMDwvYT46IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVj
dGx5IHdpdGggdHJhbnNmb3JtczwvZGl2PgogICAgICAgICA8ZGl2PlRoaXMgdGVzdHMgdGhhdCBh
YnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0
bHkuICBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVh
IHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuPC9kaXY+CkBAIC0yMSw0ICszNyw1IEBACiAgICAg
PGRpdiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsIj4KICAgICAgICAg
PGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAw
cHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4K
ICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1l
ZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5k
ZXggYjdjMzA5N2M2YjE3NjE2ZTJmNWQ3NGU5OGI3ZTk4NTk3MWE0NWEzMS4uNWNjOTYxNWQxZTMw
ZDg3NjA5ZGE0OWIzNzMzZGIwNWU5ZTQ2MTE3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5z
Zm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDEx
MTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zv
cm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQgdHJhbnNmb3Jt
ZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBsZXRlbHkg
Z3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAog
Ci0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQotKQotCisocmVwYWludCBy
ZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1
dGUtY2hpbGQuaHRtbAppbmRleCAxN2VkMzViMWExNTg1MTA5Mjc2ZjlkYmVmMDY4NDYzNjNlNDYw
MTZmLi40MzFhYzM1NmJjNjRhZDYyYThmOTJiYjlhZDM0M2JiNzQ0ZDY4NDRlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNv
bHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAKIDwh
ZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJh
c2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVw
YWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2lu
Z1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0
YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0g
d2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBp
bnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAg
PHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNm
b3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBz
dHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7
IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8
ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggOGRiZWQ0NDliYjllYWVjY2ZkNjYz
OGI3NTc2YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5Y2MzYTFjZDhjMmYzZjU5OTQ5ZGUzOGFj
MjhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
dHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVk
LnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVw
YWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgZml4ZWQgZWxl
bWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhl
IGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52
YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEw
MCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDApICkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWZpeGVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmluZGV4IDc0NWM1NWVjN2E5YzdkOTllNThj
NDVlMmJlNmI0YjIwYjgwMTU4YTMuLjM1OWY5ZjU3NzdjMzJhMjMzMTY0NTY1OGExYzA4NmE5MTMx
OWM1N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbApAQCAtMSwxMSAr
MSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBm
dW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAg
eworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5z
dGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNl
QW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5p
bm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAg
ICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3Nj
cmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdl
YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2IGlk
PSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVkOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2
PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxp
ZGF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA4NjEyMzI2ZGY4ZmExNDgwMTdiYzNhNGU1Zjk2NTg2
NTBjMmY5ZGJmLi5iMTk5MmE5MTBkZWRkMWMwZGQ5YTVlMjQ0NGZjODZlOWY0NjdiNjU4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRh
dGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0yLDYgKzIsNSBAQCBBCiBBCiAo
cmVwYWludCByZWN0cwogICAocmVjdCA4IDY4IDIwIDEwMCkKLSAgKHJlY3QgOCA2OCAyMCAxMDAp
CiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVi
eS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1
YnktcmwtZXhwZWN0ZWQudHh0CmluZGV4IDk1OTE1ZTY2MDBmMTI1NWNiZjZmMjM5Zjk4NjQ5ZDc5
OGEzNzYwNDEuLjRlN2MwOTI0MzQ2N2NkNzkxNTM0ZTVmYjEyYTBlMTg1MzU3ZjU3NDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4
cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzggMTggNzkpCi0pCi0KKyhy
ZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOCAxOCA3OSkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbAppbmRleCAwMjc4NDQwYTFmYjcyNDQ0MmQ5
NjQyOTI4ZWEyZWIzMjM5M2NjYTIxLi5lYTQyNTE2ZDQ4YjMxMGMzYzljNDQ3YTAwN2ExNjhhMDFm
NTkwZjYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1
YnktcmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynkt
cmwuaHRtbApAQCAtMyw3ICszLDE1IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiByZXBh
aW50VGVzdCgpIHsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dChmYWxzZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICBpZiAoZXZlbnRT
ZW5kZXIpIHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCA0MCk7CiAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwpAQCAtMTEsNiArMTksMTYgQEAgZnVuY3Rpb24g
cmVwYWludFRlc3QoKSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgMTIw
KTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgIH0KKworICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
ICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5k
b3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgaW50ZXJuYWxz
LnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9
LCAwKTsKIH0KIDwvc2NyaXB0PgogCkBAIC0yNiw0ICs0NCw1IEBAIFRlc3RpbmcgYm90aCBoaXQg
dGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQg
dGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQg
dGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQg
dGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KKzxkaXYgaWQ9InJlcGFpbnRz
Ij48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90
ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQK
aW5kZXggYmQ5ZjU4OWY5Y2NkOWM2NzQ4MjUxM2E3NDY2ZmNmYmJmZjdkMTk2OC4uZTJkM2U1OTdm
ZGQyYjFmYjY0NGE1ZTM5YmFiMzVjY2E0ZTZjYjBkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhp
ZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNr
Z3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk5IDE4KQotKQotCisocmVw
YWludCByZWN0cyAocmVjdCA4IDE2IDE5OSAxOCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCmlu
ZGV4IGJjYzllMzRkMTc3ODBlMDE2MDBlNTU4M2JjYWFiMWIwMjNhMTYyNjAuLjhhNDNmOWJhYTJl
NDc0MjQzYTM2OTZlN2MyNTYzMWMyMzkwNjJjYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwK
QEAgLTEsNSArMSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGV4dC1iYXNlZC1yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgog
PHN0eWxlPgogI3Rlc3QgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKQEAgLTEyLDExICsx
MSwzMCBAQAogfQogPC9zdHlsZT4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3Qo
KSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgICAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMo
KTsKKwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRlc3QsIDAsIHRl
c3QsIDEpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJl
Y3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFp
bnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwg
MCk7CiAgICAgfTsKIDwvc2NyaXB0PgogCiA8Ym9keSBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCki
PgogICAgIDxwIGlkPSJ0ZXN0Ij5TaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kPC9wPgorICAg
IDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjI5OTFhNzkzNWIyZGU4NzNlZDIzNjUyYTllN2Yz
ODAzN2FmMWM4ZS4uOTk4OGEzMjNhYmQyMTlmMmEzMGE1NGExZDFjYmRlYWM2NjE4NDczOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2NDUsOCArMTY0
NSw2IEBAIHdlYmtpdC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXIt
aW4tcnRsLmh0bWwgWyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBl
dmVudFNlbmRlciBjYXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcvYi80MjE5NCBm
YXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQogCi13ZWJraXQub3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5o
dG1sIFsgRmFpbHVyZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90IHJlbmRlcmVk
IHByb3Blcmx5Lgogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhlaWdodC1kZXRl
cm1pbmVkLWJ5LXByaW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQw
MjUyIGZhc3QvdGV4dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1sIFsgRmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZj
NTU5NTk3ZWVhMGU5MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWlu
dGluZyBvZiBzZWxlY3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5k
IHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFp
bnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rp
b24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4K
KyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGEwYWU0
NTYwZGZhM2Q2NjEyNWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQyMmE2NDJhZWEx
ZGFhNzRlOWQ4ZTgwMWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQg
aGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3
IDE3KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0ZDIxMTEzNjk4YzMyYmZjMjBh
N2Q2NTM5ZjAxMzBlYTQ3NGE5NmU3Li4zYzJkMGE5ZTYyZjk5MDJlZGI4OTBiNjY5Zjg2MTAzNmNh
ZDBmMzk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MjQzMCwzICsyNDMwLDUgQEAgd2Via2l0Lm9yZy9iLzIzMDg2MiBbIENhdGFsaW5hIEJpZ1N1ciBd
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UKIAogd2Via2l0Lm9yZy9i
LzIzMDk4NCBbIEJpZ1N1ciBEZWJ1ZyBhcm02NCBdIHN0cmVhbXMvcmVhZGFibGVTdHJlYW0tdGhl
bi5odG1sIFsgUGFzcyBDcmFzaCBdCiAKK3dlYmtpdC5vcmcvYi8yMzEyOTggYWNjZXNzaWJpbGl0
eS9tYWMvc2VsZWN0aW9uLXN5bmMuaHRtbCBbIFNraXAgXSAjIFRpbWVvdXQKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAppbmRleCA1YTkzNGY0NzM3ZmU1ZjlmZjE2NTRl
YTdhMmIxMzJmZjdlYjJiNWM3Li5mYzU1OTU5N2VlYTBlOTIwZDE5NWFkMjc1OGEwOTI3ZjFiMjYy
NTExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4
LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24u
CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRl
c3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGlu
ZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCi0ocmVwYWludCBy
ZWN0cwotICAocmVjdCA3NzQgMzkgMTggODMpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3
NCAzOSAxOCA4MykgKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440413</attachid>
            <date>2021-10-06 12:30:55 -0700</date>
            <delta_ts>2021-10-07 02:30:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20211006213053.patch</filename>
            <type>text/plain</type>
            <size>37633</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhjN2VhNmVhNDQ4Nzg1
NmMzYjkzMDEzOWE1Y2ZkMTdlYTcxZmRlOC4uNTg2M2FhODU2NzRjMzZmNWIwYjdlMTA3NGU0ZjUz
NWI3NTQ1ZGYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTEwLTA2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMTAtMDQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBt
YWNjYXRhbHlzdCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCmluZGV4IGMyZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNhMjM1ZmZlOTdiNWViYmQuLmI5
OWEyOGJhNGY1YjEzNjViMDI0MWFkMDlkOWU1ZTU0ODI3NWRmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTIsNiArNDUyLDExIEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dENv
bnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCEo
b3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBlYXJhbmNl
VXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhT
Y3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50
LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxFeHRlbnRP
cHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRl
bnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2MCwxMyAr
NDY1LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0aWMgdm9p
ZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYgZG9jdW1l
bnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkK
IHsKKyAgICBhdXRvIGRvY3VtZW50ID0gUmVmIHsgKm1fZG9jdW1lbnQgfTsKICNpZiBFTkFCTEUo
VEVYVF9DQVJFVCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CiAjZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBk
b2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVuZGlu
Z1NlbGVjdGlvblVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rpb25B
ZnRlclVwZGF0ZSByZXZlYWxNb2RlKQpAQCAtMTY2Niw3ICsxNjc0LDcgQEAgSW50UmVjdCBGcmFt
ZVNlbGVjdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsKICAg
ICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVwZGF0
ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsKICAg
ICBpZiAoaW5zaWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNpZGVQ
b3NpdGlvbkZpeGVkOwpAQCAtMjIyMiw3ICsyMjMwLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRVcGRh
dGUKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3VzIGxh
eW91dCBoZXJlLgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRlQXBw
ZWFyYW5jZTo6WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBk
YXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9u
QXBwZWFyYW5jZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1fY2Fy
ZXRQYWludCkgewpAQCAtMjMzMCw3ICsyMzM4LDcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9u
OjpzZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQK
ICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAKLSAg
ICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7Cisg
ICAgY29uc3RfY2FzdDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlzKS51cGRhdGVTZWxlY3Rpb25BcHBl
YXJhbmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQtPnJlbmRlclZp
ZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7
CkBAIC0yNDI2LDYgKzI0MzQsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rp
b24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgIGlmIChp
c05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5j
ZU5vdygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRlRml4ZWQgPSBm
YWxzZTsKICAgICBpZiAoaXNDYXJldCgpKQpAQCAtMjUwMCw2ICsyNTEwLDE0IEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dCbG9j
a0N1cnNvcikKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKK3ZvaWQgRnJhbWVTZWxlY3Rp
b246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCkKK3sKKyAg
ICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSB8fCBtX3NlbGVjdGlvblJldmVhbE1vZGUg
PT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2RvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAg
ICB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKK30KKwogdm9pZCBGcmFtZVNlbGVjdGlv
bjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkKIHsKICAgICBtX2FwcGVhcmFuY2VVcGRh
dGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5k
ZXggNGNiZjVhMzA5MTU1MjlmODUzZTFhZjEwMmRiMGIzYzUwMmIzN2IwNy4uMDA4Mjk2MGVjZjU4
ODRiOWY0ZWFmMjA3YjRjOTg3YzE2NGMyYjA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uaApAQCAtMTQ4LDYgKzE0OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAK
KyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7
CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNjaGVk
dWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKIApAQCAtMjY0LDYgKzI2NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAK
IHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAg
dm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRl
bnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1
cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDE0MWU2NThmZWE1NGQ0ZTlhMTRj
ZjJmNTRlZjMyMThiNGMxYjcxYmUuLjI0Zjk4NmRiNDQxZTJlMTAyNmY4YzRlYjQ5YjFjODc2NjEz
MGIwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKQEAgLTU0MSw2ICs1
NDIsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5kU2hvd1ZhbGlkYXRp
b25NZXNzYWdlKCkKIAogICAgIC8vIENhbGxpbmcgZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxl
bWVudCBpbnRvIHZpZXcuCiAgICAgZm9jdXMoKTsKKyAgICBkb2N1bWVudCgpLnNlbGVjdGlvbigp
LnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAKICAgICAv
LyBmb2N1cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlldyBhbmQgdGhpcyBzY3Jv
bGwgbWF5IGhhcHBlbiBhc3luY2hyb25vdXNseS4KICAgICAvLyBCZWNhdXNlIHNjcm9sbGluZyB0
aGUgdmlldyBoaWRlcyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNob3cgdGhl
IHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwMzY1YTc1
OGVmYWExMzYzMzZhNWQ4YzM1ZGZmYTY3OTUyNmY4NjYzLi45OTIwZjI0MjBkNTFlNDBhMWRkZDAy
MDgxZWMzZjRiNzZiYjVhYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC00MzAsNyArNDMwLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkKE5v
ZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVlZGVkKEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVj
dGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvbigpICE9IG5ld1NlbGVjdGlvbiAm
JiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBk
aXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBmMzM1
YzlhZDRiOGVkMGQ0NzU1ZWRkZGEzMmI1NWMwNGZjNWUxMGRkLi40NDhjYWZlMGJiMjRiZWM5NTgw
YmM5ZjkxMzBlYzk2NDVkNjk5YTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2NTQsNiArMTY1
NCwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcoKQogICAgICAgICBkb2N1
bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CiAgICAgfSk7CiAKKyAgICBm
b3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVu
dC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsKKwog
ICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRv
Y3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYwNzU5
MjE1ZTg5ODJkNWEzNGJiMzQ1OWExNjM4ZjZjYjIzN2I4ZGYuLmQ0Y2RiNzBlOThhZmRiNjNmYmE2
Yzk0OGEyNDk4ODRkZTU2NjliZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAyMS0xMC0wNiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZWxl
YXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTW92ZWQgc29tZSB0ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFzZWQtcmVw
YWludC5qcyBtb2RlbCBiZWNhdXNlIHNlbGVjdGlvbiBpcyBub3cgdXBkYXRlZAorICAgICAgICBh
bmQgcmV2ZWFsZWQgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKKyAgICAgICAgYnkgdGhlIHRpbWUgdGhl
IHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJpZWQgdGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBlbmVkIHll
dC4gVGhhdCdzIHdoeQorICAgICAgICB0aGUgdGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0aGF0IHdl
IHdhaXQgdW50aWwgdGhlIHJlcGFpbnQgaGFwcGVucy4KKworICAgICAgICBTYW1lIHNpdHVhdGlv
biBmb3Igb3RoZXIgdGVzdHMgdGhhdCBkbyBub3QgaW52b2x2ZSByZXBhaW50IHJlY3RzIGJ1dCBh
MTF5IG5vdGlmaWNhdGlvbnMuIFdlCisgICAgICAgIG11c3QgZW5zdXJlIHRoYXQgd2UgbGV0IHRo
ZSBub3RpZmljYXRpb24gYmUgdGhyb3duIGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIG9yIG5vdCBo
YXMgYmVlbgorICAgICAgICBlbWl0ZWQuIEFzIGl0J3MgZG9uZSBhc3luY2hyb25vdXNseSB3ZSBt
dXN0IGxldCB0aGUgbWFpbiB0aHJlYWQgcnVuIGJlZm9yZSBjaGVja2luZy4KKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3It
YXJpYS10ZXh0Ym94Lmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxl
ZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5o
dG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFi
c29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhl
ZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVy
Zmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50
eHQ6CisKIDIwMjEtMTAtMDQgIEF5dW1pIEtvamltYSAgPGF5dW1pX2tvamltYUBhcHBsZS5jb20+
CiAKICAgICAgICAgQ2xlYW5pbmcgdXAgZXhwZWN0YXRpb25zIGZvciBpT1MgMTUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNl
cmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3Vu
ZGFyeS11c2VyaW5mby5odG1sCmluZGV4IDhiZDkxOTU0YjJkOGZkYzkxNDIwMDgyOWQxOGUxZGIz
N2NhZWYzYmEuLmZkN2YyZGMxMzk4NzdkMjk1M2VlMzA0NTRlYzE0MjA3NjA2ODk0YmMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11
c2VyaW5mby5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlv
bi1ib3VuZGFyeS11c2VyaW5mby5odG1sCkBAIC0xNjIsMjAgKzE2MiwyOSBAQAogICAgICAgICB2
YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5v
dGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9u
IiwgInRydWUiKTsKIAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRleHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwotCi0gICAgICAgIG1vdmUodHJ1
ZSk7Ci0KLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIp
OwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIHlpZWxkTWFpblRo
cmVhZCgpIHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgICAgIH0pOworICAgICAgICB9CiAKLSAgICAgICAgbW92ZShmYWxz
ZSk7CisgICAgICAgIGZ1bmN0aW9uIGZvY3VzRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAg
ICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAg
ICBlbGVtZW50LmZvY3VzKCk7CisgICAgICAgICAgcmV0dXJuIHlpZWxkTWFpblRocmVhZCgpOwor
ICAgICAgICB9CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXh0YXJlYSIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIG1v
dmVBc3luYyhpc1ZlcnRpY2FsKSB7CisgICAgICAgICAgbW92ZShpc1ZlcnRpY2FsKTsKKyAgICAg
ICAgICByZXR1cm4geWllbGRNYWluVGhyZWFkKCk7CisgICAgICAgIH0KIAotICAgICAgICBtb3Zl
KHRydWUpOworICAgICAgICBmb2N1c0VsZW1lbnQoInRleHRib3giKQorICAgICAgICAgIC50aGVu
KCgpID0+IG1vdmVBc3luYyh0cnVlKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBmb2N1c0VsZW1l
bnQoImlucHV0IikpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZUFzeW5jKGZhbHNlKSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiBmb2N1c0VsZW1lbnQoInRleHRhcmVhIikpCisgICAgICAgICAg
LnRoZW4oKCkgPT4gbW92ZUFzeW5jKHRydWUpKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2Vy
aW5mby5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sCmluZGV4IGUxZWJkZWMwMjc0Mjg2OTk2NWM1Y2RkZGM2MTBmNmJiZDhl
YjJhZGYuLmU4ZDRlYzE2MzNkOTQ0OTc1YjljODU3MDVlM2ViZTRlYTVmNmE2YjYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmlu
Zm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLmh0bWwKQEAgLTE5NSwxOSArMTk1LDg1IEBACiAgICAgICAgIHNob3VsZEJl
KCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKICAgICAgICAgdGV4dGJveCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsK
IAogICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAw
KTsKLSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLm1vZGlmeSgi
bW92ZSIsICJmb3J3YXJkIiwgZ3JhbltpXSk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIs
ICJiYWNrd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGZvY3VzVGV4dEJveCgp
IHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgdGV4dGJv
eC5mb2N1cygpOworICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9LCAwKTsK
KyAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisJZnVuY3Rpb24gbW92ZVNlbGVjdGlvbihkaXJl
Y3Rpb24sIGdyYW51bGFyaXR5KSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0
aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJp
dHkpOworICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgIH0sIDApOworICAg
ICAgICAgIH0pOwogICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAg
ICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgICAgIHMubW9kaWZ5
KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGV4dGVu
ZFNlbGVjdGlvbihncmFudWxhcml0eSkgeworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3Jh
bnVsYXJpdHkpOworICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgIH0sIDAp
OworICAgICAgICAgIH0pOwogICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVzZXRQb3Np
dGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgICAgICAgICAgICAgIHMu
c2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
Zm9jdXNUZXh0Qm94KCkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisg
ICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMF0pKQor
ICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblswXSkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMV0p
KQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhblsx
XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5b
Ml0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jh
blsyXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdy
YW5bM10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwg
Z3JhblszXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIs
IGdyYW5bNF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJk
IiwgZ3Jhbls0XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2Fy
ZCIsIGdyYW5bNV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3
YXJkIiwgZ3Jhbls1XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9y
d2FyZCIsIGdyYW5bNl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJh
Y2t3YXJkIiwgZ3Jhbls2XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigi
Zm9yd2FyZCIsIGdyYW5bN10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24o
ImJhY2t3YXJkIiwgZ3Jhbls3XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlv
bigiZm9yd2FyZCIsIGdyYW5bOF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rp
b24oImJhY2t3YXJkIiwgZ3Jhbls4XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3Np
dGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzBdKSkK
KyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4o
KCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJl
c2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jh
blsyXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAg
IC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzNdKSkKKyAgICAgICAgICAudGhlbigo
KSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0
aW9uKGdyYW5bNF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhbls1XSkpCisgICAgICAgICAg
LnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVu
ZFNlbGVjdGlvbihncmFuWzZdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9u
KCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bN10pKQorICAg
ICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9
PiBleHRlbmRTZWxlY3Rpb24oZ3Jhbls4XSkpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdl
cy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
ZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggZWU5ZTBh
ODA1YTU5MWE4MWIyMTZhNWVhNThlOGY0ODAyNmI1YTBkYi4uZGYxNzRhMjNhNjU0NzE0OWFmNWU1
NWEzMzg1OWZiNTk0Zjk2NzEzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZv
ci1hcmlhLXRleHRib3guaHRtbApAQCAtNDMsMTIgKzQzLDE1IEBAIGNvbnRlbnQgaW5zaWRlCiAg
ICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2lu
ZG93LmdldFNlbGVjdGlvbigpOwogICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwot
ICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IDM7IGsrKykgeworICAgICAgICBzLm1vZGlmeSgi
bW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAgICAgICBzZXRUaW1lb3V0KCgpID0+
IHsKICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7
Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KLSAgICAgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOworICAg
ICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1v
dmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICAvLyBUcmlnZ2Vy
IHZhbHVlIGNoYW5nZS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5z
ZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8gIik7CisgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAg
fSwgMCk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKaW5kZXggNzM0
Y2RjYjA2YTM2MzY2M2I1ZDA5MTAwMTRmZDY2NGIyNWE1NDBlOC4uZTQyZTQzYmEyYjJmNzQ1NDRl
MjliNWU2ZGQ3NjEzOThhNGNjNzEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKQEAgLTE1LDEz
ICsxNSwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB0YS5mb2N1cygpOwogICAgIC8vIGNsaWNr
CiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyg5MCwgMjApOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09
IDE3KQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0
IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAg
ICAgICAgICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9PSAxNykKKyAgICAgICAgICAgICAgICByZXMu
aW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgRmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEu
c2VsZWN0aW9uRW5kOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBjYW4n
dCBydW4gd2l0aG91dCBldmVudCBzZW5kZXIgKHBhcnQgb2YgRHVtcFJlbmRlclRyZWUpLiAiCiAg
ICAgICAgICAgICArICJUbyB0ZXN0IG1hbnVhbGx5LCBjbGljayBhdCB0aGUgbWlkZGxlIG9mIHRo
ZSBsaW5lIG1hcmtlZCA5IGFuZCBjaGVjayB0aGF0IHRoZSBjYXJldCBhcHBlYXJzIGFmdGVyIHRo
ZSA5LiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggM2FiYjBmNzA4
OWEzZjNiY2JjNmFhZGY2OWY3M2Q3NzdiZjc5ZTMwYS4uYWNlYTU0ZTA1MGRmNWQyYTc3NWE5ZDk5
ZDliMDFmNzA2NmJhNWE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApA
QCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBj
b3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVu
dHMgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBn
cmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAK
LShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0
cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggN2Q0N2QxMjU5
MWQ5YmM5ZmExMjE2OTFkMGU3NDBmOWFlZGIzZjQ3MC4uYTEwYjliNTI4OGFhMzJmMzYzMTU4MGI1
Y2I4OWU4YmViNTY5NDdlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBA
CiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4
dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9u
IHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJh
Y2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAg
ICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRN
TCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0Pgog
ICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2PgogICAgICAgICA8ZGl2IGlk
PSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwv
ZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUt
Y2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggZGIzYzM3NDE2NTZi
MTc3OGM5MTQwZjcxNTRhZTg3YzU4MDZjNDZiNC4uOTc5ZWZhMzllNTUwY2MyZTMyNTQ2MzEzMjlh
OTEyYjdlZjU4ZjI5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1l
eHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRv
bid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFi
c29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3Rs
eS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3
YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAg
MCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1h
YnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDFiNjFlYmYyZDUwYjNhNGYwZDAy
Mzg5MTYxNjQ0MTdmZTI4ZTU2YTcuLmJmYzY3MWZiYzUwMDI0MmE5MjE0NmNlMDU0NWNhMGJhZTY5
NDMzZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEs
MjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVu
Y3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gclJlcGFpbnRUZXN0KCkKICAgICB7Cisg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0
VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgewor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVy
SFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAg
ICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0
PgogICAgIDxzdHlsZT4KQEAgLTEzLDcgKzI5LDcgQEAKICAgICAgICAgI3RhcmdldDo6c2VsZWN0
aW9uIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KICAgICA8L3N0eWxlPgogPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgpIj4KKzxib2R5IG9ubG9hZD0iclJlcGFpbnRU
ZXN0KCkiPgogICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbWFyZ2luLXJpZ2h0
OiAyMDBweDsiPgogICAgICAgICA8ZGl2PkJ1ZyA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9i
LzExMTAwMCI+MTExMDAwPC9hPjogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0
bHkgd2l0aCB0cmFuc2Zvcm1zPC9kaXY+CiAgICAgICAgIDxkaXY+VGhpcyB0ZXN0cyB0aGF0IGFi
c29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3Rs
eS4gIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEg
d2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS48L2Rpdj4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8
ZGl2IHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmwiPgogICAgICAgICA8
ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgog
ICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRl
eCBiN2MzMDk3YzZiMTc2MTZlMmY1ZDc0ZTk4YjdlOTg1OTcxYTQ1YTMxLi41Y2M5NjE1ZDFlMzBk
ODc2MDlkYTQ5YjM3MzNkYjA1ZTllNDYxMTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTEx
MDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9y
bXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1l
ZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGxldGVseSBn
cmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAK
LShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJl
Y3RzIChyZWN0IDUwIDUwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0
ZS1jaGlsZC5odG1sCmluZGV4IDE3ZWQzNWIxYTE1ODUxMDkyNzZmOWRiZWYwNjg0NjM2M2U0NjAx
NmYuLjQzMWFjMzU2YmM2NGFkNjJhOGY5MmJiOWFkMzQzYmI3NDRkNjg0NGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29s
dXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBAQAogPCFk
b2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFz
ZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBh
aW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5n
UmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRh
cmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3
aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGlu
dGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8
c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zv
cm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0
eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsg
cG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxk
aXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCA4ZGJlZDQ0OWJiOWVhZWNjZmQ2NjM4
Yjc1NzZiYWRiOGJiMDQzYzQ1Li5jNWEzMTI4ZWE5MTljYzNhMWNkOGMyZjNmNTk5NDlkZTM4YWMy
OGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10
cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQu
dHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBh
aW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBmaXhlZCBlbGVt
ZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUg
Ym94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZh
bGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAw
IDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQt
Zml4ZWQtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKaW5kZXggNzQ1YzU1ZWM3YTljN2Q5OWU1OGM0
NWUyYmU2YjRiMjBiODAxNThhMy4uMzU5ZjlmNTc3N2MzMmEyMzMxNjQ1NjU4YTFjMDg2YTkxMzE5
YzU3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
dHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCkBAIC0xLDExICsx
LDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1
bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykg
eworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlu
bmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAg
ICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2Ny
aXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9
InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyBwb3NpdGlvbjogZml4ZWQ7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+
CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlk
YXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDg2MTIzMjZkZjhmYTE0ODAxN2JjM2E0ZTVmOTY1ODY1
MGMyZjlkYmYuLmIxOTkyYTkxMGRlZGQxYzBkZDlhNWUyNDQ0ZmM4NmU5ZjQ2N2I2NTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0
aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTIsNiArMiw1IEBAIEEKIEEKIChy
ZXBhaW50IHJlY3RzCiAgIChyZWN0IDggNjggMjAgMTAwKQotICAocmVjdCA4IDY4IDIwIDEwMCkK
ICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5
LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVi
eS1ybC1leHBlY3RlZC50eHQKaW5kZXggOTU5MTVlNjYwMGYxMjU1Y2JmNmYyMzlmOTg2NDlkNzk4
YTM3NjA0MS4uNGU3YzA5MjQzNDY3Y2Q3OTE1MzRlNWZiMTJhMGUxODUzNTdmNTc0OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhw
ZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBh
aW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRp
bmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBv
ZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNl
bGVjdGlvbi4KLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDc3NCAzOCAxOCA3OSkKLSkKLQorKHJl
cGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM4IDE4IDc5KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCmluZGV4IDAyNzg0NDBhMWZiNzI0NDQyZDk2
NDI5MjhlYTJlYjMyMzkzY2NhMjEuLmVhNDI1MTZkNDhiMzEwYzNjOWM0NDdhMDA3YTE2OGEwMWY1
OTBmNjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVi
eS1ybC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC5odG1sCkBAIC0zLDcgKzMsMTUgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHJlcGFp
bnRUZXN0KCkgeworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVu
Y3Rpb24gcnVuUmVwYWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgIGlmIChldmVudFNl
bmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDQwKTsKICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CkBAIC0xMSw2ICsxOSwxNiBAQCBmdW5jdGlvbiBy
ZXBhaW50VGVzdCgpIHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCAxMjAp
OwogICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgfQorCisgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
ICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRv
dy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICBpbnRlcm5hbHMu
c3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0s
IDApOwogfQogPC9zY3JpcHQ+CiAKQEAgLTI2LDQgKzQ0LDUgQEAgVGVzdGluZyBib3RoIGhpdCB0
ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0
ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0
ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0
ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgorPGRpdiBpZD0icmVwYWludHMi
PjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dApp
bmRleCBiZDlmNTg5ZjljY2Q5YzY3NDgyNTEzYTc0NjZmY2ZiYmZmN2QxOTY4Li5lMmQzZTU5N2Zk
ZDJiMWZiNjQ0YTVlMzliYWIzNWNjYTRlNmNiMGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJhY2tn
cm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTkgMTgpCi0pCi0KKyhyZXBh
aW50IHJlY3RzIChyZWN0IDggMTYgMTk5IDE4KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKaW5k
ZXggYmNjOWUzNGQxNzc4MGUwMTYwMGU1NTgzYmNhYWIxYjAyM2ExNjI2MC4uOGE0M2Y5YmFhMmU0
NzQyNDNhMzY5NmU3YzI1NjMxYzIzOTA2MmNiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbApA
QCAtMSw1ICsxLDQgQEAKIDwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXh0LWJhc2VkLXJlcGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiA8
c3R5bGU+CiAjdGVzdCB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwpAQCAtMTIsMTEgKzEx
LDMwIEBACiB9CiA8L3N0eWxlPgogPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgp
IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygp
OworCiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGVzdCwgMCwgdGVz
dCwgMSk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVj
dHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWlu
dHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAw
KTsKICAgICB9OwogPC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3QoKSI+
CiAgICAgPHAgaWQ9InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQ8L3A+CisgICAg
PGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyMjk5MWE3OTM1YjJkZTg3M2VkMjM2NTJhOWU3ZjM4
MDM3YWYxYzhlLi45OTg4YTMyM2FiZDIxOWYyYTMwYTU0YTFkMWNiZGVhYzY2MTg0NzM4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTY0NSw4ICsxNjQ1
LDYgQEAgd2Via2l0Lm9yZy9iLzE1OTE0MyBmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1p
bi1ydGwuaHRtbCBbIEZhaWx1cmUgXQogIyBJbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGV2
ZW50U2VuZGVyIGNhdXNlcyB0aGlzIHRlc3QgdG8gZmFpbAogd2Via2l0Lm9yZy9iLzQyMTk0IGZh
c3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGlzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiAKLXdlYmtpdC5vcmcvYi8xMzkzNTQgZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0
bWwgWyBGYWlsdXJlIF0KLQogIyBNaXNzaW5nIGdseXBoIHN5bWJvbCBpcyBub3QgcmVuZGVyZWQg
cHJvcGVybHkuCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVy
bWluZWQtYnktcHJpbWFyeS1mb250Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDAy
NTIgZmFzdC90ZXh0L2RlY29yYXRpb25zLXdpdGgtdGV4dC1jb21iaW5lLmh0bWwgWyBGYWlsdXJl
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM1
NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi5Tb21lIHJ1YnkKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWlu
dGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
KHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM5IDE4IDgzKSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhp
ZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYTBhZTQ1
NjBkZmEzZDY2MTI1Y2YwZDQwMzA1MmRiMDgwNWU3MzgxMC4uMGZhNWRkYTVkNDIyYTY0MmFlYTFk
YWE3NGU5ZDhlODAxYWVjYTUyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rp
b24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBo
YXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcg
MTcpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk3IDE3KSApCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDRkMjExMTM2OThjMzJiZmMyMGE3
ZDY1MzlmMDEzMGVhNDc0YTk2ZTcuLjNjMmQwYTllNjJmOTkwMmVkYjg5MGI2NjlmODYxMDM2Y2Fk
MGYzOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
NDMwLDMgKzI0MzAsNSBAQCB3ZWJraXQub3JnL2IvMjMwODYyIFsgQ2F0YWxpbmEgQmlnU3VyIF0g
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZQogCiB3ZWJraXQub3JnL2Iv
MjMwOTg0IFsgQmlnU3VyIERlYnVnIGFybTY0IF0gc3RyZWFtcy9yZWFkYWJsZVN0cmVhbS10aGVu
Lmh0bWwgWyBQYXNzIENyYXNoIF0KIAord2Via2l0Lm9yZy9iLzIzMTI5OCBhY2Nlc3NpYmlsaXR5
L21hYy9zZWxlY3Rpb24tc3luYy5odG1sIFsgU2tpcCBdICMgVGltZW91dAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJs
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CmluZGV4IDVhOTM0ZjQ3MzdmZTVmOWZmMTY1NGVh
N2EyYjEzMmZmN2ViMmI1YzcuLmZjNTU5NTk3ZWVhMGU5MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1
MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgs
NCBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4K
IFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5n
IGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KLShyZXBhaW50IHJl
Y3RzCi0gIChyZWN0IDc3NCAzOSAxOCA4MykKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0
IDM5IDE4IDgzKSApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440491</attachid>
            <date>2021-10-07 02:30:22 -0700</date>
            <delta_ts>2021-10-08 03:15:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20211007113020.patch</filename>
            <type>text/plain</type>
            <size>41208</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhjN2VhNmVhNDQ4Nzg1
NmMzYjkzMDEzOWE1Y2ZkMTdlYTcxZmRlOC4uNTg2M2FhODU2NzRjMzZmNWIwYjdlMTA3NGU0ZjUz
NWI3NTQ1ZGYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTEwLTA2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMTAtMDQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBt
YWNjYXRhbHlzdCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCmluZGV4IGMyZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNhMjM1ZmZlOTdiNWViYmQuLmI5
OWEyOGJhNGY1YjEzNjViMDI0MWFkMDlkOWU1ZTU0ODI3NWRmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTIsNiArNDUyLDExIEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dENv
bnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCEo
b3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBlYXJhbmNl
VXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhT
Y3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50
LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxFeHRlbnRP
cHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRl
bnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2MCwxMyAr
NDY1LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0aWMgdm9p
ZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYgZG9jdW1l
bnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkK
IHsKKyAgICBhdXRvIGRvY3VtZW50ID0gUmVmIHsgKm1fZG9jdW1lbnQgfTsKICNpZiBFTkFCTEUo
VEVYVF9DQVJFVCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CiAjZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBk
b2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVuZGlu
Z1NlbGVjdGlvblVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rpb25B
ZnRlclVwZGF0ZSByZXZlYWxNb2RlKQpAQCAtMTY2Niw3ICsxNjc0LDcgQEAgSW50UmVjdCBGcmFt
ZVNlbGVjdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsKICAg
ICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVwZGF0
ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsKICAg
ICBpZiAoaW5zaWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNpZGVQ
b3NpdGlvbkZpeGVkOwpAQCAtMjIyMiw3ICsyMjMwLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRVcGRh
dGUKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3VzIGxh
eW91dCBoZXJlLgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRlQXBw
ZWFyYW5jZTo6WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBk
YXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9u
QXBwZWFyYW5jZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1fY2Fy
ZXRQYWludCkgewpAQCAtMjMzMCw3ICsyMzM4LDcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9u
OjpzZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQK
ICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAKLSAg
ICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7Cisg
ICAgY29uc3RfY2FzdDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlzKS51cGRhdGVTZWxlY3Rpb25BcHBl
YXJhbmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQtPnJlbmRlclZp
ZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7
CkBAIC0yNDI2LDYgKzI0MzQsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rp
b24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgIGlmIChp
c05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5j
ZU5vdygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRlRml4ZWQgPSBm
YWxzZTsKICAgICBpZiAoaXNDYXJldCgpKQpAQCAtMjUwMCw2ICsyNTEwLDE0IEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dCbG9j
a0N1cnNvcikKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKK3ZvaWQgRnJhbWVTZWxlY3Rp
b246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCkKK3sKKyAg
ICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSB8fCBtX3NlbGVjdGlvblJldmVhbE1vZGUg
PT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2RvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAg
ICB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKK30KKwogdm9pZCBGcmFtZVNlbGVjdGlv
bjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkKIHsKICAgICBtX2FwcGVhcmFuY2VVcGRh
dGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5k
ZXggNGNiZjVhMzA5MTU1MjlmODUzZTFhZjEwMmRiMGIzYzUwMmIzN2IwNy4uMDA4Mjk2MGVjZjU4
ODRiOWY0ZWFmMjA3YjRjOTg3YzE2NGMyYjA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uaApAQCAtMTQ4LDYgKzE0OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAK
KyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7
CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNjaGVk
dWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKIApAQCAtMjY0LDYgKzI2NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAK
IHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAg
dm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRl
bnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1
cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDE0MWU2NThmZWE1NGQ0ZTlhMTRj
ZjJmNTRlZjMyMThiNGMxYjcxYmUuLjI0Zjk4NmRiNDQxZTJlMTAyNmY4YzRlYjQ5YjFjODc2NjEz
MGIwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKQEAgLTU0MSw2ICs1
NDIsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5kU2hvd1ZhbGlkYXRp
b25NZXNzYWdlKCkKIAogICAgIC8vIENhbGxpbmcgZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxl
bWVudCBpbnRvIHZpZXcuCiAgICAgZm9jdXMoKTsKKyAgICBkb2N1bWVudCgpLnNlbGVjdGlvbigp
LnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAKICAgICAv
LyBmb2N1cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlldyBhbmQgdGhpcyBzY3Jv
bGwgbWF5IGhhcHBlbiBhc3luY2hyb25vdXNseS4KICAgICAvLyBCZWNhdXNlIHNjcm9sbGluZyB0
aGUgdmlldyBoaWRlcyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNob3cgdGhl
IHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwMzY1YTc1
OGVmYWExMzYzMzZhNWQ4YzM1ZGZmYTY3OTUyNmY4NjYzLi45OTIwZjI0MjBkNTFlNDBhMWRkZDAy
MDgxZWMzZjRiNzZiYjVhYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC00MzAsNyArNDMwLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkKE5v
ZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVlZGVkKEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVj
dGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvbigpICE9IG5ld1NlbGVjdGlvbiAm
JiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBk
aXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBmMzM1
YzlhZDRiOGVkMGQ0NzU1ZWRkZGEzMmI1NWMwNGZjNWUxMGRkLi40NDhjYWZlMGJiMjRiZWM5NTgw
YmM5ZjkxMzBlYzk2NDVkNjk5YTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2NTQsNiArMTY1
NCwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcoKQogICAgICAgICBkb2N1
bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CiAgICAgfSk7CiAKKyAgICBm
b3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVu
dC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsKKwog
ICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRv
Y3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYwNzU5
MjE1ZTg5ODJkNWEzNGJiMzQ1OWExNjM4ZjZjYjIzN2I4ZGYuLmQ0Y2RiNzBlOThhZmRiNjNmYmE2
Yzk0OGEyNDk4ODRkZTU2NjliZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAyMS0xMC0wNiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZWxl
YXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTW92ZWQgc29tZSB0ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFzZWQtcmVw
YWludC5qcyBtb2RlbCBiZWNhdXNlIHNlbGVjdGlvbiBpcyBub3cgdXBkYXRlZAorICAgICAgICBh
bmQgcmV2ZWFsZWQgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKKyAgICAgICAgYnkgdGhlIHRpbWUgdGhl
IHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJpZWQgdGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBlbmVkIHll
dC4gVGhhdCdzIHdoeQorICAgICAgICB0aGUgdGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0aGF0IHdl
IHdhaXQgdW50aWwgdGhlIHJlcGFpbnQgaGFwcGVucy4KKworICAgICAgICBTYW1lIHNpdHVhdGlv
biBmb3Igb3RoZXIgdGVzdHMgdGhhdCBkbyBub3QgaW52b2x2ZSByZXBhaW50IHJlY3RzIGJ1dCBh
MTF5IG5vdGlmaWNhdGlvbnMuIFdlCisgICAgICAgIG11c3QgZW5zdXJlIHRoYXQgd2UgbGV0IHRo
ZSBub3RpZmljYXRpb24gYmUgdGhyb3duIGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIG9yIG5vdCBo
YXMgYmVlbgorICAgICAgICBlbWl0ZWQuIEFzIGl0J3MgZG9uZSBhc3luY2hyb25vdXNseSB3ZSBt
dXN0IGxldCB0aGUgbWFpbiB0aHJlYWQgcnVuIGJlZm9yZSBjaGVja2luZy4KKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3It
YXJpYS10ZXh0Ym94Lmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxl
ZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5o
dG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFi
c29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhl
ZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVy
Zmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50
eHQ6CisKIDIwMjEtMTAtMDQgIEF5dW1pIEtvamltYSAgPGF5dW1pX2tvamltYUBhcHBsZS5jb20+
CiAKICAgICAgICAgQ2xlYW5pbmcgdXAgZXhwZWN0YXRpb25zIGZvciBpT1MgMTUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNl
cmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3Vu
ZGFyeS11c2VyaW5mby5odG1sCmluZGV4IDhiZDkxOTU0YjJkOGZkYzkxNDIwMDgyOWQxOGUxZGIz
N2NhZWYzYmEuLmZkN2YyZGMxMzk4NzdkMjk1M2VlMzA0NTRlYzE0MjA3NjA2ODk0YmMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11
c2VyaW5mby5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlv
bi1ib3VuZGFyeS11c2VyaW5mby5odG1sCkBAIC0xNjIsMjAgKzE2MiwyOSBAQAogICAgICAgICB2
YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5v
dGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9u
IiwgInRydWUiKTsKIAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRleHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwotCi0gICAgICAgIG1vdmUodHJ1
ZSk7Ci0KLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIp
OwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIHlpZWxkTWFpblRo
cmVhZCgpIHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geyByZXNv
bHZlKCk7IH0pOworICAgICAgICAgIH0pOworICAgICAgICB9CiAKLSAgICAgICAgbW92ZShmYWxz
ZSk7CisgICAgICAgIGZ1bmN0aW9uIGZvY3VzRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAg
ICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAg
ICBlbGVtZW50LmZvY3VzKCk7CisgICAgICAgICAgcmV0dXJuIHlpZWxkTWFpblRocmVhZCgpOwor
ICAgICAgICB9CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXh0YXJlYSIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIG1v
dmVBc3luYyhpc1ZlcnRpY2FsKSB7CisgICAgICAgICAgbW92ZShpc1ZlcnRpY2FsKTsKKyAgICAg
ICAgICByZXR1cm4geWllbGRNYWluVGhyZWFkKCk7CisgICAgICAgIH0KIAotICAgICAgICBtb3Zl
KHRydWUpOworICAgICAgICBmb2N1c0VsZW1lbnQoInRleHRib3giKQorICAgICAgICAgIC50aGVu
KCgpID0+IG1vdmVBc3luYyh0cnVlKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBmb2N1c0VsZW1l
bnQoImlucHV0IikpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZUFzeW5jKGZhbHNlKSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiBmb2N1c0VsZW1lbnQoInRleHRhcmVhIikpCisgICAgICAgICAg
LnRoZW4oKCkgPT4gbW92ZUFzeW5jKHRydWUpKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2Vy
aW5mby5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sCmluZGV4IGUxZWJkZWMwMjc0Mjg2OTk2NWM1Y2RkZGM2MTBmNmJiZDhl
YjJhZGYuLmU4ZDRlYzE2MzNkOTQ0OTc1YjljODU3MDVlM2ViZTRlYTVmNmE2YjYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmlu
Zm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLmh0bWwKQEAgLTE5NSwxOSArMTk1LDg1IEBACiAgICAgICAgIHNob3VsZEJl
KCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKICAgICAgICAgdGV4dGJveCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsK
IAogICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAw
KTsKLSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLm1vZGlmeSgi
bW92ZSIsICJmb3J3YXJkIiwgZ3JhbltpXSk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIs
ICJiYWNrd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGZvY3VzVGV4dEJveCgp
IHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgdGV4dGJv
eC5mb2N1cygpOworICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9LCAwKTsK
KyAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisJZnVuY3Rpb24gbW92ZVNlbGVjdGlvbihkaXJl
Y3Rpb24sIGdyYW51bGFyaXR5KSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0
aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJp
dHkpOworICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgIH0sIDApOworICAg
ICAgICAgIH0pOwogICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAg
ICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgICAgIHMubW9kaWZ5
KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGV4dGVu
ZFNlbGVjdGlvbihncmFudWxhcml0eSkgeworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3Jh
bnVsYXJpdHkpOworICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgIH0sIDAp
OworICAgICAgICAgIH0pOwogICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVzZXRQb3Np
dGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgICAgICAgICAgICAgIHMu
c2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
Zm9jdXNUZXh0Qm94KCkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisg
ICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMF0pKQor
ICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblswXSkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMV0p
KQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhblsx
XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5b
Ml0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jh
blsyXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdy
YW5bM10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwg
Z3JhblszXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIs
IGdyYW5bNF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJk
IiwgZ3Jhbls0XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2Fy
ZCIsIGdyYW5bNV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3
YXJkIiwgZ3Jhbls1XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9y
d2FyZCIsIGdyYW5bNl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJh
Y2t3YXJkIiwgZ3Jhbls2XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigi
Zm9yd2FyZCIsIGdyYW5bN10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24o
ImJhY2t3YXJkIiwgZ3Jhbls3XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlv
bigiZm9yd2FyZCIsIGdyYW5bOF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rp
b24oImJhY2t3YXJkIiwgZ3Jhbls4XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3Np
dGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzBdKSkK
KyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4o
KCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJl
c2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jh
blsyXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAg
IC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzNdKSkKKyAgICAgICAgICAudGhlbigo
KSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0
aW9uKGdyYW5bNF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhbls1XSkpCisgICAgICAgICAg
LnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVu
ZFNlbGVjdGlvbihncmFuWzZdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9u
KCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bN10pKQorICAg
ICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9
PiBleHRlbmRTZWxlY3Rpb24oZ3Jhbls4XSkpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdl
cy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
ZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggZWU5ZTBh
ODA1YTU5MWE4MWIyMTZhNWVhNThlOGY0ODAyNmI1YTBkYi4uZGYxNzRhMjNhNjU0NzE0OWFmNWU1
NWEzMzg1OWZiNTk0Zjk2NzEzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZv
ci1hcmlhLXRleHRib3guaHRtbApAQCAtNDMsMTIgKzQzLDE1IEBAIGNvbnRlbnQgaW5zaWRlCiAg
ICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2lu
ZG93LmdldFNlbGVjdGlvbigpOwogICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwot
ICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IDM7IGsrKykgeworICAgICAgICBzLm1vZGlmeSgi
bW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAgICAgICBzZXRUaW1lb3V0KCgpID0+
IHsKICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7
Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KLSAgICAgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOworICAg
ICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1v
dmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICAvLyBUcmlnZ2Vy
IHZhbHVlIGNoYW5nZS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5z
ZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8gIik7CisgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAg
fSwgMCk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKaW5kZXggNzM0
Y2RjYjA2YTM2MzY2M2I1ZDA5MTAwMTRmZDY2NGIyNWE1NDBlOC4uZTQyZTQzYmEyYjJmNzQ1NDRl
MjliNWU2ZGQ3NjEzOThhNGNjNzEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKQEAgLTE1LDEz
ICsxNSwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB0YS5mb2N1cygpOwogICAgIC8vIGNsaWNr
CiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyg5MCwgMjApOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09
IDE3KQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0
IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAg
ICAgICAgICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9PSAxNykKKyAgICAgICAgICAgICAgICByZXMu
aW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgRmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEu
c2VsZWN0aW9uRW5kOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBjYW4n
dCBydW4gd2l0aG91dCBldmVudCBzZW5kZXIgKHBhcnQgb2YgRHVtcFJlbmRlclRyZWUpLiAiCiAg
ICAgICAgICAgICArICJUbyB0ZXN0IG1hbnVhbGx5LCBjbGljayBhdCB0aGUgbWlkZGxlIG9mIHRo
ZSBsaW5lIG1hcmtlZCA5IGFuZCBjaGVjayB0aGF0IHRoZSBjYXJldCBhcHBlYXJzIGFmdGVyIHRo
ZSA5LiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggM2FiYjBmNzA4
OWEzZjNiY2JjNmFhZGY2OWY3M2Q3NzdiZjc5ZTMwYS4uYWNlYTU0ZTA1MGRmNWQyYTc3NWE5ZDk5
ZDliMDFmNzA2NmJhNWE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApA
QCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBj
b3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVu
dHMgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBn
cmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAK
LShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0
cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggN2Q0N2QxMjU5
MWQ5YmM5ZmExMjE2OTFkMGU3NDBmOWFlZGIzZjQ3MC4uYTEwYjliNTI4OGFhMzJmMzYzMTU4MGI1
Y2I4OWU4YmViNTY5NDdlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBA
CiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4
dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9u
IHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJh
Y2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAg
ICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRN
TCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0Pgog
ICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2PgogICAgICAgICA8ZGl2IGlk
PSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwv
ZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUt
Y2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggZGIzYzM3NDE2NTZi
MTc3OGM5MTQwZjcxNTRhZTg3YzU4MDZjNDZiNC4uOTc5ZWZhMzllNTUwY2MyZTMyNTQ2MzEzMjlh
OTEyYjdlZjU4ZjI5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1l
eHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRv
bid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFi
c29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3Rs
eS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3
YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAg
MCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1h
YnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDFiNjFlYmYyZDUwYjNhNGYwZDAy
Mzg5MTYxNjQ0MTdmZTI4ZTU2YTcuLjM4ZmY5MmU3YTkzODM1OWVlMDgxNTFjMzAwODZkOTJiNWQ5
MDE1NTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEs
MjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVu
Y3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsK
KyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3Rh
cnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5u
ZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3Jp
cHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJr
aXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIg
c3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAg
PGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJh
bnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGI3YzMwOTdjNmIxNzYx
NmUyZjVkNzRlOThiN2U5ODU5NzFhNDVhMzEuLjVjYzk2MTVkMWUzMGQ4NzYwOWRhNDliMzczM2Ri
MDVlOWU0NjExNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1j
aGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBn
YXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0
aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IHRyYW5zZm9ybWVkIGFyZSBpbnZhbGlkYXRl
ZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wbGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxl
Y3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMK
LSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAg
MTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKaW5k
ZXggMTdlZDM1YjFhMTU4NTEwOTI3NmY5ZGJlZjA2ODQ2MzYzZTQ2MDE2Zi4uNDMxYWMzNTZiYzY0
YWQ2MmE4ZjkyYmI5YWQzNDNiYjc0NGQ2ODQ0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1h
YnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxo
ZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZh
bHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1
bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAg
ICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAg
ICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQu
bmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMu
cmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFj
a2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQg
KzM3LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUw
cHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQt
Y29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1
dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMi
PjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQt
ZXhwZWN0ZWQudHh0CmluZGV4IDhkYmVkNDQ5YmI5ZWFlY2NmZDY2MzhiNzU3NmJhZGI4YmIwNDNj
NDUuLmM1YTMxMjhlYTkxOWNjM2ExY2Q4YzJmM2Y1OTk0OWRlMzhhYzI4ZTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVk
LWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0
IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdp
dGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1lbnRzIHRoYXQgZ2V0IHRy
YW5zZm9ybWVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21w
ZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3Rs
eS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQotKQotCisocmVw
YWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4
ZWQtY2hpbGQuaHRtbAppbmRleCA3NDVjNTVlYzdhOWM3ZDk5ZTU4YzQ1ZTJiZTZiNGIyMGI4MDE1
OGEzLi4zNTlmOWY1Nzc3YzMyYTIzMzE2NDU2NThhMWMwODZhOTEzMTljNTdiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhl
ZC1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlw
ZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJl
cGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRl
c3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFp
bnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQs
IDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93
LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5h
bHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxl
PgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0
aW9uOiBmaXhlZDsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJy
ZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50
eHQKaW5kZXggODYxMjMyNmRmOGZhMTQ4MDE3YmMzYTRlNWY5NjU4NjUwYzJmOWRiZi4uYjE5OTJh
OTEwZGVkZDFjMGRkOWE1ZTI0NDRmYzg2ZTlmNDY3YjY1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDUgQEAgQQogQQogKHJlcGFpbnQgcmVjdHMKICAg
KHJlY3QgOCA2OCAyMCAxMDApCi0gIChyZWN0IDggNjggMjAgMTAwKQogKQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dAppbmRleCA5NTkxNWU2NjAwZjEyNTVjYmY2ZjIzOWY5ODY0OWQ3OThhMzc2MDQxLi40ZTdjMDky
NDM0NjdjZDc5MTUzNGU1ZmIxMmEwZTE4NTM1N2Y1NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgs
NyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0
aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24u
CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRl
c3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFp
bnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM4IDE4IDc5KQotKQotCisocmVwYWludCByZWN0cyAocmVj
dCA3NzQgMzggMTggNzkpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLmh0bWwKaW5kZXggMDI3ODQ0MGExZmI3MjQ0NDJkOTY0MjkyOGVhMmViMzIzOTNj
Y2EyMS4uZWE0MjUxNmQ0OGIzMTBjM2M5YzQ0N2EwMDdhMTY4YTAxZjU5MGY2MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKQEAgLTMsNyAr
MywxNSBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWlu
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBydW5SZXBhaW50
VGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgaWYgKGV2ZW50U2VuZGVyKSB7CiAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgNDApOwogICAgICAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKQEAgLTExLDYgKzE5LDE2IEBAIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewog
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDEyMCk7CiAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKICAgICB9CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBh
aW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBh
aW50cygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7CiB9CiA8L3Njcmlw
dD4KIApAQCAtMjYsNCArNDQsNSBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+Cis8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3Zl
cmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGJkOWY1ODlmOWNj
ZDljNjc0ODI1MTNhNzQ2NmZjZmJiZmY3ZDE5NjguLmUyZDNlNTk3ZmRkMmIxZmI2NDRhNWUzOWJh
YjM1Y2NhNGU2Y2IwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAogCi0ocmVwYWlu
dCByZWN0cwotICAocmVjdCA4IDE2IDE5OSAxOCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3Qg
OCAxNiAxOTkgMTgpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCBiY2M5ZTM0ZDE3Nzgw
ZTAxNjAwZTU1ODNiY2FhYjFiMDIzYTE2MjYwLi44YTQzZjliYWEyZTQ3NDI0M2EzNjk2ZTdjMjU2
MzFjMjM5MDYyY2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1z
ZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0xLDUgKzEsNCBAQAog
PCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWlu
dC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KIDxzdHlsZT4KICN0ZXN0IHsK
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CkBAIC0xMiwxMSArMTEsMzAgQEAKIH0KIDwvc3R5
bGU+CiA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOwor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5SZXBhaW50VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgZ2V0
U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXN0LCAwLCB0ZXN0LCAxKTsKKworICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAg
ICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH07CiA8L3Nj
cmlwdD4KIAogPGJvZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgpIj4KICAgICA8cCBpZD0idGVz
dCI+U2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZDwvcD4KKyAgICA8ZGl2IGlkPSJyZXBhaW50
cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDIyOTkxYTc5MzViMmRlODczZWQyMzY1MmE5ZTdmMzgwMzdhZjFjOGUuLjk5ODhh
MzIzYWJkMjE5ZjJhMzBhNTRhMWQxY2JkZWFjNjYxODQ3MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjQ1LDggKzE2NDUsNiBAQCB3ZWJraXQub3Jn
L2IvMTU5MTQzIGZhc3QvZG9tL2hvcml6b250YWwtc2Nyb2xsYmFyLWluLXJ0bC5odG1sIFsgRmFp
bHVyZSBdCiAjIEluY29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YgZXZlbnRTZW5kZXIgY2F1c2Vz
IHRoaXMgdGVzdCB0byBmYWlsCiB3ZWJraXQub3JnL2IvNDIxOTQgZmFzdC9zY3JvbGxpbmcvc2Ny
b2xsLXNlbGVjdC1saXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9i
LzEzOTM1NCBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBbIEZhaWx1cmUgXQot
CiAjIE1pc3NpbmcgZ2x5cGggc3ltYm9sIGlzIG5vdCByZW5kZXJlZCBwcm9wZXJseS4KIHdlYmtp
dC5vcmcvYi8xNDAyNTIgZmFzdC9jc3MvbGluZS1oZWlnaHQtZGV0ZXJtaW5lZC1ieS1wcmltYXJ5
LWZvbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L3RleHQvZGVj
b3JhdGlvbnMtd2l0aC10ZXh0LWNvbWJpbmUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzU1OTU5N2VlYTBlOTIwZDE5
NWFkMjc1OGEwOTI3ZjFiMjYyNTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LlNvbWUgcnVieQorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3Ro
IGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCisocmVwYWludCByZWN0cyAo
cmVjdCA3NzQgMzkgMTggODMpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24t
b3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCBhMGFlNDU2MGRmYTNkNjYxMjVjZjBk
NDAzMDUyZGIwODA1ZTczODEwLi4wZmE1ZGRhNWQ0MjJhNjQyYWVhMWRhYTc0ZTlkOGU4MDFhZWNh
NTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRk
ZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dy
b3VuZAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5NyAxNykKLSkKLQorKHJlcGFp
bnQgcmVjdHMgKHJlY3QgOCAxNiAxOTcgMTcpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhMjUwYTQ2NDczZjQ2ZmFjZTQzYjA2ZTM1ZGJj
MGRlNzU1YTZjMTNlLi5lZTMwNTQ5ODZhNjBkNTg0NTc2NDc0OGEwYjc1OGZlNWEwMjFjMmEzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
NDc5LDMgKzE0NzksNSBAQCB3ZWJraXQub3JnL2IvMjMwODQ2IFsgQ2F0YWxpbmEgRGVidWcgXSBz
dmcvZmlsdGVycy9iaWctaGVpZ2h0LWZpbHRlci5zdmcgWyBQYXNzCiB3ZWJraXQub3JnL2IvMjMw
ODQ4IFsgQ2F0YWxpbmEgQmlnU3VyIERlYnVnIF0gd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFu
bmVsLWdjLmh0bWwgWyBQYXNzIENyYXNoIF0KIAogd2Via2l0Lm9yZy9iLzIzMDkwNSBbIENhdGFs
aW5hIEJpZ1N1ciBSZWxlYXNlIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNhc2NhZGUvbGF5ZXItY291bnRlci1zdHlsZS1vdmVycmlkZS5odG1sIFsgUGFzcyBGYWls
dXJlIF0KKword2Via2l0Lm9yZy9iLzIzMTI5OCBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24t
Ym91bmRhcnktdXNlcmluZm8uaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YmYwMTBmYWM0NjI3ZTMxNDUxZjE0MWEzODUxYjQ2MjY2ZDdkMjlk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Jl
cGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCisKKworKHJlcGFp
bnQgcmVjdHMKKyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJlY3QgOCAyNiAxIDE4KQorICAocmVj
dCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMzcgNzk4IDMyKQor
ICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQg
Nzk4IDcpCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFz
dC9yZXBhaW50L2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFp
bnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY4Mzc5Y2MxOGUyMGI1MjI5MjJjY2U2MmFjOWNmMjY0MWNk
NGY1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFz
dC9yZXBhaW50L2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJp
bmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworIDEKKyAyCitUaGlzIHRlc3RzIHRo
YXQgY2FsbGluZyBmb2N1cyBvbiBhIHJlbmRlciBvYmplY3Qgd2hlbiBpdCBkb2Vzbid0IHJlc3Vs
dCBpbiBhIHNlbGVjdGlvbiBjaGFuZ2Ugd29uJ3QgbGVhdmUgaXNTeW5jaHJvbml6aW5nU2VsZWN0
aW9uIHNldCB0byB0cnVlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBh
ZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZv
Y3VzZWRFbGVtZW50LmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCIxIikpIGlzIHRydWUKK1BBU1MgYXhUZXh0U3RhdGVTeW5jT25lIGlzIHVuZGVm
aW5lZAorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
IjEiKS5pc0ZvY3VzYWJsZSBpcyB0cnVlCitQQVNTIGF4VGV4dFN0YXRlU3luY1R3byBpcyB1bmRl
ZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDRkMjExMTM2
OThjMzJiZmMyMGE3ZDY1MzlmMDEzMGVhNDc0YTk2ZTcuLjNjMmQwYTllNjJmOTkwMmVkYjg5MGI2
NjlmODYxMDM2Y2FkMGYzOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yNDMwLDMgKzI0MzAsNSBAQCB3ZWJraXQub3JnL2IvMjMwODYyIFsgQ2F0YWxp
bmEgQmlnU3VyIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZQogCiB3
ZWJraXQub3JnL2IvMjMwOTg0IFsgQmlnU3VyIERlYnVnIGFybTY0IF0gc3RyZWFtcy9yZWFkYWJs
ZVN0cmVhbS10aGVuLmh0bWwgWyBQYXNzIENyYXNoIF0KIAord2Via2l0Lm9yZy9iLzIzMTI5OCBh
Y2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tc3luYy5odG1sIFsgU2tpcCBdICMgVGltZW91dAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3
NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80
Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWNhN2RjMThlOWU4ZDZjMDI1NzYyNTM4
ODE5ZDNjY2RmNGRkYTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisK
KworCisocmVwYWludCByZWN0cworICAocmVjdCAxIDM3IDc5OCAzMikKKyAgKHJlY3QgOCA0NCA3
ODQgMTgpCisgIChyZWN0IDEgNTEgNzk4IDE4KQorICAocmVjdCAxIDQ0IDc5OCA3KQorKQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRl
eCBlMDJjMDkyYmE1MzNiNmU2ZDA2ZTIyMDg2ODNjNDFlMzRiODkyODI0Li41MDIzNTFhYjcwMzRl
ODVkYmUwNDRhNjFlNTY2OTFhNGE1MjY0MzA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6
IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3Jtcwog
VGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1lbnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHku
IFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2Fz
IGludmFsaWRhdGVkIGNvcnJlY3RseS4NCiANCiANCi0ocmVwYWludCByZWN0cw0KLSAgKHJlY3Qg
MCAwIDEwMCAxMDApDQotKQ0KIA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50
eHQKaW5kZXggNWE5MzRmNDczN2ZlNWY5ZmYxNjU0ZWE3YTJiMTMyZmY3ZWIyYjVjNy4uZmM1NTk1
OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVz
dGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5n
IGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5k
IHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFp
bnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM5IDE4IDgz
KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA3NzQgMzkgMTggODMpICkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3Zl
cmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0
L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRl
eCAwYTc3MWQ0NjlhMWRiMGQ0YzdjNjdmNTUwNWE1ZWUyN2ViOWYwMzVlLi40MTkwNDAzODgzNTY1
MTc0ODY2ZjMwODMxZTFiZDBhNWZlMTBkNjhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAog
U2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA4
IDE2IDE5NyAxOCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgOCAxNiAxOTcgMTgpICkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440587</attachid>
            <date>2021-10-08 03:15:29 -0700</date>
            <delta_ts>2021-11-02 01:49:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20211008121527.patch</filename>
            <type>text/plain</type>
            <size>42881</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhjN2VhNmVhNDQ4Nzg1
NmMzYjkzMDEzOWE1Y2ZkMTdlYTcxZmRlOC4uOGFlZjc2MmE2OTcwODk4OWRkNWUwOWI1OWI4MTJi
MmQ5ZDQxZThlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTEwLTA4ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMTAtMDQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBt
YWNjYXRhbHlzdCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCmluZGV4IGMyZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNhMjM1ZmZlOTdiNWViYmQuLmI5
OWEyOGJhNGY1YjEzNjViMDI0MWFkMDlkOWU1ZTU0ODI3NWRmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTIsNiArNDUyLDExIEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dENv
bnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCEo
b3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBlYXJhbmNl
VXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhT
Y3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50
LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxFeHRlbnRP
cHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRl
bnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2MCwxMyAr
NDY1LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0aWMgdm9p
ZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYgZG9jdW1l
bnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkK
IHsKKyAgICBhdXRvIGRvY3VtZW50ID0gUmVmIHsgKm1fZG9jdW1lbnQgfTsKICNpZiBFTkFCTEUo
VEVYVF9DQVJFVCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CiAjZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBk
b2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVuZGlu
Z1NlbGVjdGlvblVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rpb25B
ZnRlclVwZGF0ZSByZXZlYWxNb2RlKQpAQCAtMTY2Niw3ICsxNjc0LDcgQEAgSW50UmVjdCBGcmFt
ZVNlbGVjdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsKICAg
ICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVwZGF0
ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsKICAg
ICBpZiAoaW5zaWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNpZGVQ
b3NpdGlvbkZpeGVkOwpAQCAtMjIyMiw3ICsyMjMwLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRVcGRh
dGUKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3VzIGxh
eW91dCBoZXJlLgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRlQXBw
ZWFyYW5jZTo6WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBk
YXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9u
QXBwZWFyYW5jZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1fY2Fy
ZXRQYWludCkgewpAQCAtMjMzMCw3ICsyMzM4LDcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9u
OjpzZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQK
ICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAKLSAg
ICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7Cisg
ICAgY29uc3RfY2FzdDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlzKS51cGRhdGVTZWxlY3Rpb25BcHBl
YXJhbmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQtPnJlbmRlclZp
ZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7
CkBAIC0yNDI2LDYgKzI0MzQsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rp
b24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgIGlmIChp
c05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5j
ZU5vdygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRlRml4ZWQgPSBm
YWxzZTsKICAgICBpZiAoaXNDYXJldCgpKQpAQCAtMjUwMCw2ICsyNTEwLDE0IEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dCbG9j
a0N1cnNvcikKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKK3ZvaWQgRnJhbWVTZWxlY3Rp
b246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCkKK3sKKyAg
ICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSB8fCBtX3NlbGVjdGlvblJldmVhbE1vZGUg
PT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2RvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAg
ICB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKK30KKwogdm9pZCBGcmFtZVNlbGVjdGlv
bjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkKIHsKICAgICBtX2FwcGVhcmFuY2VVcGRh
dGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5k
ZXggNGNiZjVhMzA5MTU1MjlmODUzZTFhZjEwMmRiMGIzYzUwMmIzN2IwNy4uMDA4Mjk2MGVjZjU4
ODRiOWY0ZWFmMjA3YjRjOTg3YzE2NGMyYjA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uaApAQCAtMTQ4LDYgKzE0OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAK
KyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7
CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNjaGVk
dWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKIApAQCAtMjY0LDYgKzI2NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAK
IHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAg
dm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRl
bnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1
cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDE0MWU2NThmZWE1NGQ0ZTlhMTRj
ZjJmNTRlZjMyMThiNGMxYjcxYmUuLjI0Zjk4NmRiNDQxZTJlMTAyNmY4YzRlYjQ5YjFjODc2NjEz
MGIwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKQEAgLTU0MSw2ICs1
NDIsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5kU2hvd1ZhbGlkYXRp
b25NZXNzYWdlKCkKIAogICAgIC8vIENhbGxpbmcgZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxl
bWVudCBpbnRvIHZpZXcuCiAgICAgZm9jdXMoKTsKKyAgICBkb2N1bWVudCgpLnNlbGVjdGlvbigp
LnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAKICAgICAv
LyBmb2N1cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlldyBhbmQgdGhpcyBzY3Jv
bGwgbWF5IGhhcHBlbiBhc3luY2hyb25vdXNseS4KICAgICAvLyBCZWNhdXNlIHNjcm9sbGluZyB0
aGUgdmlldyBoaWRlcyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNob3cgdGhl
IHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwMzY1YTc1
OGVmYWExMzYzMzZhNWQ4YzM1ZGZmYTY3OTUyNmY4NjYzLi45OTIwZjI0MjBkNTFlNDBhMWRkZDAy
MDgxZWMzZjRiNzZiYjVhYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC00MzAsNyArNDMwLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkKE5v
ZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVlZGVkKEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVj
dGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvbigpICE9IG5ld1NlbGVjdGlvbiAm
JiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBk
aXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBmMzM1
YzlhZDRiOGVkMGQ0NzU1ZWRkZGEzMmI1NWMwNGZjNWUxMGRkLi40NDhjYWZlMGJiMjRiZWM5NTgw
YmM5ZjkxMzBlYzk2NDVkNjk5YTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2NTQsNiArMTY1
NCwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcoKQogICAgICAgICBkb2N1
bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CiAgICAgfSk7CiAKKyAgICBm
b3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVu
dC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsKKwog
ICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRv
Y3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYwNzU5
MjE1ZTg5ODJkNWEzNGJiMzQ1OWExNjM4ZjZjYjIzN2I4ZGYuLjkwYTdkMTIyMTFiNjNjODgwY2Vm
NmVjNGJjYjdkMjdlMTU3Y2E2N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAyMS0xMC0wOCAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZWxl
YXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTW92ZWQgc29tZSB0ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFzZWQtcmVw
YWludC5qcyBtb2RlbCBiZWNhdXNlIHNlbGVjdGlvbiBpcyBub3cgdXBkYXRlZAorICAgICAgICBh
bmQgcmV2ZWFsZWQgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKKyAgICAgICAgYnkgdGhlIHRpbWUgdGhl
IHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJpZWQgdGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBlbmVkIHll
dC4gVGhhdCdzIHdoeQorICAgICAgICB0aGUgdGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0aGF0IHdl
IHdhaXQgdW50aWwgdGhlIHJlcGFpbnQgaGFwcGVucy4KKworICAgICAgICBTYW1lIHNpdHVhdGlv
biBmb3Igb3RoZXIgdGVzdHMgdGhhdCBkbyBub3QgaW52b2x2ZSByZXBhaW50IHJlY3RzIGJ1dCBh
MTF5IG5vdGlmaWNhdGlvbnMuIFdlCisgICAgICAgIG11c3QgZW5zdXJlIHRoYXQgd2UgbGV0IHRo
ZSBub3RpZmljYXRpb24gYmUgdGhyb3duIGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIG9yIG5vdCBo
YXMgYmVlbgorICAgICAgICBlbWl0ZWQuIEFzIGl0J3MgZG9uZSBhc3luY2hyb25vdXNseSB3ZSBt
dXN0IGxldCB0aGUgbWFpbiB0aHJlYWQgcnVuIGJlZm9yZSBjaGVja2luZy4KKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3It
YXJpYS10ZXh0Ym94Lmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxl
ZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5o
dG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFi
c29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhl
ZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVy
Zmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWNhdGFsaW5hLXdrMS9mYXN0L3JlcGFpbnQv
Zm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQv
Zm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0
ZWQudHh0OgorCiAyMDIxLTEwLTA0ICBBeXVtaSBLb2ppbWEgIDxheXVtaV9rb2ppbWFAYXBwbGUu
Y29tPgogCiAgICAgICAgIENsZWFuaW5nIHVwIGV4cGVjdGF0aW9ucyBmb3IgaU9TIDE1LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5
LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24t
Ym91bmRhcnktdXNlcmluZm8uaHRtbAppbmRleCA4YmQ5MTk1NGIyZDhmZGM5MTQyMDA4MjlkMThl
MWRiMzdjYWVmM2JhLi5mZDdmMmRjMTM5ODc3ZDI5NTNlZTMwNDU0ZWMxNDIwNzYwNjg5NGJjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRh
cnktdXNlcmluZm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxl
Y3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbApAQCAtMTYyLDIwICsxNjIsMjkgQEAKICAgICAg
ICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5l
cihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNh
dGlvbiIsICJ0cnVlIik7CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKLQotICAgICAgICBtb3Zl
KHRydWUpOwotCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5w
dXQiKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlvbiB5aWVsZE1h
aW5UaHJlYWQoKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsg
cmVzb2x2ZSgpOyB9KTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQogCi0gICAgICAgIG1vdmUo
ZmFsc2UpOworICAgICAgICBmdW5jdGlvbiBmb2N1c0VsZW1lbnQoZWxlbWVudElkKSB7CisgICAg
ICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAg
ICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICAgIHJldHVybiB5aWVsZE1haW5UaHJlYWQo
KTsKKyAgICAgICAgfQogCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGV4dGFyZWEiKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlv
biBtb3ZlQXN5bmMoaXNWZXJ0aWNhbCkgeworICAgICAgICAgIG1vdmUoaXNWZXJ0aWNhbCk7Cisg
ICAgICAgICAgcmV0dXJuIHlpZWxkTWFpblRocmVhZCgpOworICAgICAgICB9CiAKLSAgICAgICAg
bW92ZSh0cnVlKTsKKyAgICAgICAgZm9jdXNFbGVtZW50KCJ0ZXh0Ym94IikKKyAgICAgICAgICAu
dGhlbigoKSA9PiBtb3ZlQXN5bmModHJ1ZSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZm9jdXNF
bGVtZW50KCJpbnB1dCIpKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVBc3luYyhmYWxzZSkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gZm9jdXNFbGVtZW50KCJ0ZXh0YXJlYSIpKQorICAgICAg
ICAgIC50aGVuKCgpID0+IG1vdmVBc3luYyh0cnVlKSk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8uaHRtbAppbmRleCBlMWViZGVjMDI3NDI4Njk5NjVjNWNkZGRjNjEwZjZi
YmQ4ZWIyYWRmLi5lOGQ0ZWMxNjMzZDk0NDk3NWI5Yzg1NzA1ZTNlYmU0ZWE1ZjZhNmI2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVz
ZXJpbmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0xOTUsMTkgKzE5NSw4NSBAQAogICAgICAgICBzaG91
bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCiAgICAgICAgIHRleHRib3ggPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3Vz
KCk7CiAKICAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KICAgICAgICAgdmFy
IHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJv
eCwgMCk7Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAgICAgICAgICAgcy5tb2Rp
ZnkoIm1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOwotICAgICAgICAgICAgcy5tb2RpZnkoIm1v
dmUiLCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKworICAgICAgICBmdW5jdGlvbiBmb2N1c1RleHRC
b3goKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJl
amVjdCkgeworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgIHRl
eHRib3guZm9jdXMoKTsKKyAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSwg
MCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0KKworCWZ1bmN0aW9uIG1vdmVTZWxlY3Rpb24o
ZGlyZWN0aW9uLCBncmFudWxhcml0eSkgeworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCBkaXJlY3Rpb24sIGdyYW51
bGFyaXR5KTsKKyAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICB9LCAwKTsK
KyAgICAgICAgICB9KTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsK
LSAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgICAgICBzLm1v
ZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKworICAgICAgICBmdW5jdGlvbiBl
eHRlbmRTZWxlY3Rpb24oZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIs
IGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICB9
LCAwKTsKKyAgICAgICAgICB9KTsKICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc2V0
UG9zaXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVz
b2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgICAg
ICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsK
KyAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZvY3VzVGV4dEJveCgpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigp
KQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzBd
KSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5b
MF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFu
WzFdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdy
YW5bMV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBn
cmFuWzJdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIs
IGdyYW5bMl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndhcmQi
LCBncmFuWzNdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNrd2Fy
ZCIsIGdyYW5bM10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZvcndh
cmQiLCBncmFuWzRdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJiYWNr
d2FyZCIsIGdyYW5bNF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImZv
cndhcmQiLCBncmFuWzVdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJi
YWNrd2FyZCIsIGdyYW5bNV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24o
ImZvcndhcmQiLCBncmFuWzZdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9u
KCJiYWNrd2FyZCIsIGdyYW5bNl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rp
b24oImZvcndhcmQiLCBncmFuWzddKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0
aW9uKCJiYWNrd2FyZCIsIGdyYW5bN10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxl
Y3Rpb24oImZvcndhcmQiLCBncmFuWzhdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2Vs
ZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bOF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0
UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhblsw
XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50
aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzFdKSkKKyAgICAgICAgICAudGhlbigoKSA9
PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9u
KGdyYW5bMl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAg
ICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3JhblszXSkpCisgICAgICAgICAgLnRo
ZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNl
bGVjdGlvbihncmFuWzRdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNV0pKQorICAgICAg
ICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBl
eHRlbmRTZWxlY3Rpb24oZ3Jhbls2XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3Np
dGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzddKSkK
KyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4o
KCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bOF0pKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNo
YW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCmluZGV4IGVl
OWUwYTgwNWE1OTFhODFiMjE2YTVlYTU4ZThmNDgwMjZiNWEwZGIuLmRmMTc0YTIzYTY1NDcxNDlh
ZjVlNTVhMzM4NTlmYjU5NGY5NjcxM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdl
cy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQzLDEyICs0MywxNSBAQCBjb250ZW50IGluc2lk
ZQogICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAw
KTsKLSAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCAzOyBrKyspIHsKKyAgICAgICAgcy5tb2Rp
ZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgc2V0VGltZW91dCgo
KSA9PiB7CiAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3Rl
ciIpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCi0gICAg
ICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsK
KyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgIHMubW9kaWZ5
KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgLy8gVHJp
Z2dlciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
Ikluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOworICAgICAgICAgICAgfSwgMCk7CisgICAg
ICAgIH0sIDApOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCmluZGV4
IDczNGNkY2IwNmEzNjM2NjNiNWQwOTEwMDE0ZmQ2NjRiMjVhNTQwZTguLmU0MmU0M2JhMmIyZjc0
NTQ0ZTI5YjVlNmRkNzYxMzk4YTRjYzcxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCkBAIC0x
NSwxMyArMTUsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdGEuZm9jdXMoKTsKICAgICAvLyBj
bGljawogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oOTAsIDIwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0g
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICAgICAgaWYgKHRhLnNlbGVjdGlvbkVu
ZCA9PSAxNykKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgRmFpbGVkOiBj
YXJldCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5kOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
KyAgICAgICAgICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0gMTcpCisgICAgICAgICAgICAgICAg
cmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQgIiAr
IHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3Qg
Y2FuJ3QgcnVuIHdpdGhvdXQgZXZlbnQgc2VuZGVyIChwYXJ0IG9mIER1bXBSZW5kZXJUcmVlKS4g
IgogICAgICAgICAgICAgKyAiVG8gdGVzdCBtYW51YWxseSwgY2xpY2sgYXQgdGhlIG1pZGRsZSBv
ZiB0aGUgbGluZSBtYXJrZWQgOSBhbmQgY2hlY2sgdGhhdCB0aGUgY2FyZXQgYXBwZWFycyBhZnRl
ciB0aGUgOS4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDNhYmIw
ZjcwODlhM2YzYmNiYzZhYWRmNjlmNzNkNzc3YmY3OWUzMGEuLmFjZWE1NGUwNTBkZjVkMmE3NzVh
OWQ5OWQ5YjAxZjcwNjZiYTVhODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50
eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFp
bnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVs
ZW1lbnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRl
bHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4K
IAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQg
cmVjdHMgKHJlY3QgMCAwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDdkNDdk
MTI1OTFkOWJjOWZhMTIxNjkxZDBlNzQwZjlhZWRiM2Y0NzAuLmExMGI5YjUyODhhYTMyZjM2MzE1
ODBiNWNiODllOGJlYjU2OTQ3ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwy
NyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5j
dGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgewor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFy
dFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5k
RXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5l
ckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAg
ICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3Njcmlw
dD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdj4KICAgICAgICAgPGRp
diBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7
IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29s
dXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGRiM2MzNzQx
NjU2YjE3NzhjOTE0MGY3MTU0YWU4N2M1ODA2YzQ2YjQuLjk3OWVmYTM5ZTU1MGNjMmUzMjU0NjMx
MzI5YTkxMmI3ZWY1OGYyOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hp
bGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2Fw
cyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhh
dCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFyZSBpbnZhbGlkYXRlZCBjb3Jy
ZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFy
ZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVj
dCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgMCAwIDEwMCAxMDApICkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBw
ZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxYjYxZWJmMmQ1MGIzYTRm
MGQwMjM4OTE2MTY0NDE3ZmUyOGU1NmE3Li4zOGZmOTJlN2E5MzgzNTllZTA4MTUxYzMwMDg2ZDky
YjVkOTAxNTU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDEx
ICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAg
IGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAg
ICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxz
LnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJh
c2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycp
LmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAg
ICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwv
c2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0eWxlPSIt
d2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmwiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJn
ZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAx
MDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2Pgor
ICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNo
aWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBiN2MzMDk3YzZi
MTc2MTZlMmY1ZDc0ZTk4YjdlOTg1OTcxYTQ1YTMxLi41Y2M5NjE1ZDFlMzBkODc2MDlkYTQ5YjM3
MzNkYjA1ZTllNDYxMTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1
dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rp
b24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVz
dHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUgaW52YWxp
ZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGxldGVseSBncmVlbiBpZiB0aGUg
c2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJl
Y3RzCi0gIChyZWN0IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUw
IDUwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1s
CmluZGV4IDE3ZWQzNWIxYTE1ODUxMDkyNzZmOWRiZWYwNjg0NjM2M2U0NjAxNmYuLjQzMWFjMzU2
YmM2NGFkNjJhOGY5MmJiOWFkMzQzYmI3NDRkNjg0NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3Jt
ZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+
CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAg
ICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsK
KwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
OwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFy
Z2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJu
YWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9w
VHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0y
MSw0ICszNyw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZSg1MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFi
c29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFp
bnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNo
aWxkLWV4cGVjdGVkLnR4dAppbmRleCA4ZGJlZDQ0OWJiOWVhZWNjZmQ2NjM4Yjc1NzZiYWRiOGJi
MDQzYzQ1Li5jNWEzMTI4ZWE5MTljYzNhMWNkOGMyZjNmNTk5NDlkZTM4YWMyOGU1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1m
aXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcg
KzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3Rs
eSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBmaXhlZCBlbGVtZW50cyB0aGF0IGdl
dCB0cmFuc2Zvcm1lZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUg
Y29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3Jy
ZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQor
KHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWZpeGVkLWNoaWxkLmh0bWwKaW5kZXggNzQ1YzU1ZWM3YTljN2Q5OWU1OGM0NWUyYmU2YjRiMjBi
ODAxNThhMy4uMzU5ZjlmNTc3N2MzMmEyMzMxNjQ1NjU4YTFjMDg2YTkxMzE5YzU3YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQt
Zml4ZWQtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRv
Y3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNl
ZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFp
bnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdS
ZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFy
Z2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAg
ICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdp
bmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50
ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxz
dHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBw
b3NpdGlvbjogZml4ZWQ7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBp
ZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0
ZWQudHh0CmluZGV4IDg2MTIzMjZkZjhmYTE0ODAxN2JjM2E0ZTVmOTY1ODY1MGMyZjlkYmYuLmIx
OTkyYTkxMGRlZGQxYzBkZDlhNWUyNDQ0ZmM4NmU5ZjQ2N2I2NTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFs
aWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTIsNiArMiw1IEBAIEEKIEEKIChyZXBhaW50IHJlY3Rz
CiAgIChyZWN0IDggNjggMjAgMTAwKQotICAocmVjdCA4IDY4IDIwIDEwMCkKICkKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3Rl
ZC50eHQKaW5kZXggOTU5MTVlNjYwMGYxMjU1Y2JmNmYyMzlmOTg2NDlkNzk4YTM3NjA0MS4uNGU3
YzA5MjQzNDY3Y2Q3OTE1MzRlNWZiMTJhMGUxODUzNTdmNTc0OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBA
IC04LDcgKzgsNCBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNl
bGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0
aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24u
CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KLShy
ZXBhaW50IHJlY3RzCi0gIChyZWN0IDc3NCAzOCAxOCA3OSkKLSkKLQorKHJlcGFpbnQgcmVjdHMg
KHJlY3QgNzc0IDM4IDE4IDc5KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC5odG1sCmluZGV4IDAyNzg0NDBhMWZiNzI0NDQyZDk2NDI5MjhlYTJlYjMy
MzkzY2NhMjEuLmVhNDI1MTZkNDhiMzEwYzNjOWM0NDdhMDA3YTE2OGEwMWY1OTBmNjEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCkBAIC0z
LDcgKzMsMTUgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJl
cGFpbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNl
KTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuUmVw
YWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFs
cy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgIGlmIChldmVudFNlbmRlcikgewogICAg
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDQwKTsKICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CkBAIC0xMSw2ICsxOSwxNiBAQCBmdW5jdGlvbiByZXBhaW50VGVzdCgp
IHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCAxMjApOwogICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgfQorCisgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMu
cmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5n
UmVwYWludHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOwogfQogPC9z
Y3JpcHQ+CiAKQEAgLTI2LDQgKzQ0LDUgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgorPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9u
LW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCBiZDlmNTg5
ZjljY2Q5YzY3NDgyNTEzYTc0NjZmY2ZiYmZmN2QxOTY4Li5lMmQzZTU5N2ZkZDJiMWZiNjQ0YTVl
MzliYWIzNWNjYTRlNmNiMGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJl
cGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTkgMTgpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChy
ZWN0IDggMTYgMTk5IDE4KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKaW5kZXggYmNjOWUzNGQx
Nzc4MGUwMTYwMGU1NTgzYmNhYWIxYjAyM2ExNjI2MC4uOGE0M2Y5YmFhMmU0NzQyNDNhMzY5NmU3
YzI1NjMxYzIzOTA2MmNiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbApAQCAtMSw1ICsxLDQg
QEAKIDwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJl
cGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiA8c3R5bGU+CiAjdGVz
dCB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwpAQCAtMTIsMTEgKzExLDMwIEBACiB9CiA8
L3N0eWxlPgogPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcnVuUmVwYWludFRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAg
IGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGVzdCwgMCwgdGVzdCwgMSk7CisKKyAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFp
bnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsK
KyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9Owog
PC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3QoKSI+CiAgICAgPHAgaWQ9
InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQ8L3A+CisgICAgPGRpdiBpZD0icmVw
YWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAyMjk5MWE3OTM1YjJkZTg3M2VkMjM2NTJhOWU3ZjM4MDM3YWYxYzhlLi45
OTg4YTMyM2FiZDIxOWYyYTMwYTU0YTFkMWNiZGVhYzY2MTg0NzM4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTY0NSw4ICsxNjQ1LDYgQEAgd2Via2l0
Lm9yZy9iLzE1OTE0MyBmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1pbi1ydGwuaHRtbCBb
IEZhaWx1cmUgXQogIyBJbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGV2ZW50U2VuZGVyIGNh
dXNlcyB0aGlzIHRlc3QgdG8gZmFpbAogd2Via2l0Lm9yZy9iLzQyMTk0IGZhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1zZWxlY3QtbGlzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xMzkzNTQgZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgWyBGYWlsdXJl
IF0KLQogIyBNaXNzaW5nIGdseXBoIHN5bWJvbCBpcyBub3QgcmVuZGVyZWQgcHJvcGVybHkuCiB3
ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVybWluZWQtYnktcHJp
bWFyeS1mb250Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDAyNTIgZmFzdC90ZXh0
L2RlY29yYXRpb25zLXdpdGgtdGV4dC1jb21iaW5lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynkt
cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM1NTk1OTdlZWEwZTky
MGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi5Tb21lIHJ1YnkKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgNzc0IDM5IDE4IDgzKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYTBhZTQ1NjBkZmEzZDY2MTI1
Y2YwZDQwMzA1MmRiMDgwNWU3MzgxMC4uMGZhNWRkYTVkNDIyYTY0MmFlYTFkYWE3NGU5ZDhlODAx
YWVjYTUyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ct
aGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJh
Y2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcgMTcpCi0pCi0KKyhy
ZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk3IDE3KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtY2F0YWxpbmEtd2sxL2Zhc3QvcmVwYWludC9mb2N1cy1zZXR0aW5nLXNl
bGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy1jYXRhbGluYS13azEvZmFzdC9yZXBhaW50L2ZvY3VzLXNldHRpbmct
c2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM2ODM3OWNjMThlMjBiNTIyOTIyY2NlNjJhYzljZjI2NDFjZDRmNWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtY2F0YWxpbmEtd2sxL2Zhc3QvcmVwYWlu
dC9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKKyAxCisgMgorVGhpcyB0ZXN0cyB0aGF0IGNhbGxp
bmcgZm9jdXMgb24gYSByZW5kZXIgb2JqZWN0IHdoZW4gaXQgZG9lc24ndCByZXN1bHQgaW4gYSBz
ZWxlY3Rpb24gY2hhbmdlIHdvbid0IGxlYXZlIGlzU3luY2hyb25pemluZ1NlbGVjdGlvbiBzZXQg
dG8gdHJ1ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3Rp
ZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxl
bWVudC5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgiMSIpKSBpcyB0cnVlCitQQVNTIGF4VGV4dFN0YXRlU3luY09uZSBpcyB1bmRlZmluZWQKK1BB
U1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikuaXNG
b2N1c2FibGUgaXMgdHJ1ZQorUEFTUyBheFRleHRTdGF0ZVN5bmNUd28gaXMgdW5kZWZpbmVkCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGEyNTBhNDY0
NzNmNDZmYWNlNDNiMDZlMzVkYmMwZGU3NTVhNmMxM2UuLmVlMzA1NDk4NmE2MGQ1ODQ1NzY0NzQ4
YTBiNzU4ZmU1YTAyMWMyYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTE0NzksMyArMTQ3OSw1IEBAIHdlYmtpdC5vcmcvYi8yMzA4NDYg
WyBDYXRhbGluYSBEZWJ1ZyBdIHN2Zy9maWx0ZXJzL2JpZy1oZWlnaHQtZmlsdGVyLnN2ZyBbIFBh
c3MKIHdlYmtpdC5vcmcvYi8yMzA4NDggWyBDYXRhbGluYSBCaWdTdXIgRGVidWcgXSB3ZWJydGMv
ZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtZ2MuaHRtbCBbIFBhc3MgQ3Jhc2ggXQogCiB3ZWJraXQu
b3JnL2IvMjMwOTA1IFsgQ2F0YWxpbmEgQmlnU3VyIFJlbGVhc2UgXSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9sYXllci1jb3VudGVyLXN0eWxlLW92ZXJy
aWRlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2li
aWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sIFsgRmFpbHVyZSBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2
NzY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9yZXBh
aW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZjAxMGZhYzQ2MjdlMzE0NTFm
MTQxYTM4NTFiNDYyNjZkN2QyOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE0IEBACisKKworCisocmVwYWludCByZWN0cworICAocmVjdCAxIDE5IDE1IDMyKQorICAocmVj
dCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMTkgMTUgMzIpCisgIChyZWN0IDggMjYgMSAxOCkKKyAg
KHJlY3QgMSAzNyA3OTggMzIpCisgIChyZWN0IDggNDQgNzg0IDE4KQorICAocmVjdCAxIDUxIDc5
OCAxOCkKKyAgKHJlY3QgMSA0NCA3OTggNykKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3lu
Y3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL2Zhc3QvcmVwYWludC9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXpp
bmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjgzNzljYzE4ZTIwYjUy
MjkyMmNjZTYyYWM5Y2YyNjQxY2Q0ZjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3lu
Y3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCisg
MQorIDIKK1RoaXMgdGVzdHMgdGhhdCBjYWxsaW5nIGZvY3VzIG9uIGEgcmVuZGVyIG9iamVjdCB3
aGVuIGl0IGRvZXNuJ3QgcmVzdWx0IGluIGEgc2VsZWN0aW9uIGNoYW5nZSB3b24ndCBsZWF2ZSBp
c1N5bmNocm9uaXppbmdTZWxlY3Rpb24gc2V0IHRvIHRydWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIjEiKSkgaXMgdHJ1ZQorUEFTUyBheFRleHRT
dGF0ZVN5bmNPbmUgaXMgdW5kZWZpbmVkCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgiMSIpLmlzRm9jdXNhYmxlIGlzIHRydWUKK1BBU1MgYXhUZXh0
U3RhdGVTeW5jVHdvIGlzIHVuZGVmaW5lZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNGQyMTExMzY5OGMzMmJmYzIwYTdkNjUzOWYwMTMwZWE0NzRhOTZlNy4uM2My
ZDBhOWU2MmY5OTAyZWRiODkwYjY2OWY4NjEwMzZjYWQwZjM5NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI0MzAsMyArMjQzMCw1IEBAIHdlYmtpdC5v
cmcvYi8yMzA4NjIgWyBDYXRhbGluYSBCaWdTdXIgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlCiAKIHdlYmtpdC5vcmcvYi8yMzA5ODQgWyBCaWdTdXIgRGVidWcgYXJt
NjQgXSBzdHJlYW1zL3JlYWRhYmxlU3RyZWFtLXRoZW4uaHRtbCBbIFBhc3MgQ3Jhc2ggXQogCit3
ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1zeW5jLmh0bWwg
WyBTa2lwIF0gIyBUaW1lb3V0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5Y2E3
ZGMxOGU5ZThkNmMwMjU3NjI1Mzg4MTlkM2NjZGY0ZGRhMTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKKworCisKKyhyZXBhaW50IHJlY3RzCisgIChyZWN0IDEgMzcgNzk4
IDMyKQorICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0
IDEgNDQgNzk4IDcpCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hp
bGQtZXhwZWN0ZWQudHh0CmluZGV4IGUwMmMwOTJiYTUzM2I2ZTZkMDZlMjIwODY4M2M0MWUzNGI4
OTI4MjQuLjUwMjM1MWFiNzAzNGU4NWRiZTA0NGE2MWU1NjY5MWE0YTUyNjQzMDggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1m
aXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3
ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0
bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgZml4ZWQgZWxlbWVudHMgYXJlIGlu
dmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0
aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5Lg0KIA0KIA0KLShyZXBh
aW50IHJlY3RzDQotICAocmVjdCAwIDAgMTAwIDEwMCkNCi0pDQogDQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAppbmRleCA1YTkzNGY0NzM3ZmU1ZjlmZjE2NTRlYTdhMmIx
MzJmZjdlYjJiNWM3Li5mYzU1OTU5N2VlYTBlOTIwZDE5NWFkMjc1OGEwOTI3ZjFiMjYyNTExIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAg
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3Ro
IGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwot
ICAocmVjdCA3NzQgMzkgMTggODMpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAx
OCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRk
ZW4tZXhwZWN0ZWQudHh0CmluZGV4IDBhNzcxZDQ2OWExZGIwZDRjN2M2N2Y1NTA1YTVlZTI3ZWI5
ZjAzNWUuLjQxOTA0MDM4ODM1NjUxNzQ4NjZmMzA4MzFlMWJkMGE1ZmUxMGQ2OGUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24t
b3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50
eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBh
aW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE4KQotKQotCisocmVwYWludCByZWN0cyAocmVj
dCA4IDE2IDE5NyAxOCkgKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443070</attachid>
            <date>2021-11-02 01:49:49 -0700</date>
            <delta_ts>2021-11-02 10:35:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20211102094947.patch</filename>
            <type>text/plain</type>
            <size>41811</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjNTM4ODU1ZTZmNTRh
NTJkN2Q2MzI5NDBlMTk1NjUzMmVhMWExNS4uNDNhN2YzNjI1ZjA2MzA4NzY5NmVmNjlhNTY3YTky
YzliOGVhMWM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMTEtMDEgIERvbiBPbG1z
dGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ3VybF0gRml4IC1XcmVv
cmRlci1jdG9yIGluIEN1cmxSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCmluZGV4IDY1ZTE1YjcyYmVhZjY5ODliMTFhYjNhOTU2ZTQ1NjUyYzk4MjQ3ZjAu
LjA2NzBjY2Q2ZmFhNGQ1NzFkNjU1MGIwZjVmYjk5YjFlZmUyNWY0YzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTIsNiArNDUyLDExIEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91
dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYg
KCEob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBlYXJh
bmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9v
dGhTY3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0
YW50LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxFeHRl
bnRPcHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxF
eHRlbnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2MCwx
MyArNDY1LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0aWMg
dm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYgZG9j
dW1lbnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93
KCkKIHsKKyAgICBhdXRvIGRvY3VtZW50ID0gUmVmIHsgKm1fZG9jdW1lbnQgfTsKICNpZiBFTkFC
TEUoVEVYVF9DQVJFVCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CiAjZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAg
ICBkb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVu
ZGluZ1NlbGVjdGlvblVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rp
b25BZnRlclVwZGF0ZSByZXZlYWxNb2RlKQpAQCAtMTY2Niw3ICsxNjc0LDcgQEAgSW50UmVjdCBG
cmFtZVNlbGVjdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsK
ICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBk
YXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVw
ZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsK
ICAgICBpZiAoaW5zaWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNp
ZGVQb3NpdGlvbkZpeGVkOwpAQCAtMjIyMiw3ICsyMjMwLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2V0Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRV
cGRhdGUKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3Vz
IGxheW91dCBoZXJlLgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRl
QXBwZWFyYW5jZTo6WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5
VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0
aW9uQXBwZWFyYW5jZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1f
Y2FyZXRQYWludCkgewpAQCAtMjMzMCw3ICsyMzM4LDcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0
aW9uOjpzZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNv
bnQKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAK
LSAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7
CisgICAgY29uc3RfY2FzdDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlzKS51cGRhdGVTZWxlY3Rpb25B
cHBlYXJhbmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQtPnJlbmRl
clZpZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0
KCk7CkBAIC0yNDI2LDYgKzI0MzQsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxl
Y3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgIGlm
IChpc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFy
YW5jZU5vdygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRlRml4ZWQg
PSBmYWxzZTsKICAgICBpZiAoaXNDYXJldCgpKQpAQCAtMjQ5Nyw2ICsyNTA3LDE0IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dC
bG9ja0N1cnNvcikKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKK3ZvaWQgRnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCkKK3sK
KyAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSB8fCBtX3NlbGVjdGlvblJldmVhbE1v
ZGUgPT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAgICAgIHJldHVybjsK
KyAgICBtX2RvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
KyAgICB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKK30KKwogdm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkKIHsKICAgICBtX2FwcGVhcmFuY2VV
cGRhdGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgK
aW5kZXggZWRhY2I2M2NiZWJkM2EzZTkzZDNkMGYxZjk3MzllYWJhZjdmNzY1Mi4uNTMxNGUzMTky
NTE3NGJmYWYxODc1NGRhMGQ3ZDM0YTdjOTE1MWVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaApAQCAtMTQ5LDYgKzE0OSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7
CiAKKyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVk
KCk7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNj
aGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKIApAQCAtMjY1LDYgKzI2
Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7
CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAg
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxF
eHRlbnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9p
ZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGRiMWE5ZjY4N2VkYjBiZWFj
MzU2ODU2ZjA2MTdjYjU0OTUyMGMzN2MuLjA3NjViZWI0MjQxMWMyNGJlMTIyNWQyNDQ0YTYwMDRj
MWZjMGM0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1l
U2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERhdGFM
aXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKQEAgLTQ5MSw2
ICs0OTIsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5kU2hvd1ZhbGlk
YXRpb25NZXNzYWdlKCkKIAogICAgIC8vIENhbGxpbmcgZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUg
ZWxlbWVudCBpbnRvIHZpZXcuCiAgICAgZm9jdXMoKTsKKyAgICBkb2N1bWVudCgpLnNlbGVjdGlv
bigpLnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAKICAg
ICAvLyBmb2N1cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlldyBhbmQgdGhpcyBz
Y3JvbGwgbWF5IGhhcHBlbiBhc3luY2hyb25vdXNseS4KICAgICAvLyBCZWNhdXNlIHNjcm9sbGlu
ZyB0aGUgdmlldyBoaWRlcyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNob3cg
dGhlIHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1N2Iz
MzU3YTE1NDYyOTI0YzAxMThlZjI3NmU0OTljMDEyNDU0MjExLi5iNjMwOTYyZjY1M2U5Mjk1OGY1
OWRlOTZmM2EwYWVhNTZmMTg0YzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVk
KE5vZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVlZGVk
KEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1Nl
bGVjdGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvbigpICE9IG5ld1NlbGVjdGlv
biAmJiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAg
ICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0
aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9v
bCBkaXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4
MTQ2Y2I1OWZjYjcxYzcxMGU2ZjcyMmFjNmQ1Y2U1NTlmNjQ5MzM3Li42MTMzYzc2Yzg4M2QyNWNl
ZTk2N2Y2YjhmYWYxNGRlZTgyYmEyZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2NzAsNiAr
MTY3MCwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcoKQogICAgICAgICBk
b2N1bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CiAgICAgfSk7CiAKKyAg
ICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1
bWVudC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsK
KwogICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAg
IGRvY3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogICAgIH0pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY2
MmQ0ZWYyNDZiZDczOGE4MjVmZmEwZjdjZDZhNzkxYTJkOTQ2NDYuLjcwZjlhMDVkZDg4ZWYxNDg5
OWU2N2ZiZTcwZjNmZjBjMWQwYzdjYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAyMS0xMS0w
MiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBS
ZWxlYXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJl
YUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTW92ZWQgc29tZSB0ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFzZWQt
cmVwYWludC5qcyBtb2RlbCBiZWNhdXNlIHNlbGVjdGlvbiBpcyBub3cgdXBkYXRlZAorICAgICAg
ICBhbmQgcmV2ZWFsZWQgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIgdHJp
Z2dlcmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKKyAgICAgICAgYnkgdGhlIHRpbWUg
dGhlIHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJpZWQgdGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBlbmVk
IHlldC4gVGhhdCdzIHdoeQorICAgICAgICB0aGUgdGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0aGF0
IHdlIHdhaXQgdW50aWwgdGhlIHJlcGFpbnQgaGFwcGVucy4KKworICAgICAgICBTYW1lIHNpdHVh
dGlvbiBmb3Igb3RoZXIgdGVzdHMgdGhhdCBkbyBub3QgaW52b2x2ZSByZXBhaW50IHJlY3RzIGJ1
dCBhMTF5IG5vdGlmaWNhdGlvbnMuIFdlCisgICAgICAgIG11c3QgZW5zdXJlIHRoYXQgd2UgbGV0
IHRoZSBub3RpZmljYXRpb24gYmUgdGhyb3duIGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIG9yIG5v
dCBoYXMgYmVlbgorICAgICAgICBlbWl0ZWQuIEFzIGl0J3MgZG9uZSBhc3luY2hyb25vdXNseSB3
ZSBtdXN0IGxldCB0aGUgbWFpbiB0aHJlYWQgcnVuIGJlZm9yZSBjaGVja2luZy4KKworICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRt
bDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3Jv
bGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGls
ZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1m
aXhlZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQt
aW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rp
b24tcnVieS1ybC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWNhdGFsaW5hLXdrMS9mYXN0L3JlcGFp
bnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmls
aXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5n
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTEtMDEgIE1pY2hhZWwgU21pdGggIDxtaWtlQHczLm9y
Zz4KIAogICAgICAgICBbV2ViSW5zcGVjdG9yXVtDT1JTXSBTaG93IEhUVFAgc3RhdHVzIGNvZGUg
aW4gQ09SUyBtZXNzYWdlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKaW5kZXggOGJkOTE5
NTRiMmQ4ZmRjOTE0MjAwODI5ZDE4ZTFkYjM3Y2FlZjNiYS4uZmQ3ZjJkYzEzOTg3N2QyOTUzZWUz
MDQ1NGVjMTQyMDc2MDY4OTRiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKQEAgLTE2
MiwyMCArMTYyLDI5IEBACiAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEu
YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwogICAgICAgICBz
aG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCi0gICAgICAgIHRleHRib3gg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZv
Y3VzKCk7Ci0KLSAgICAgICAgbW92ZSh0cnVlKTsKLQotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAg
ICAgICAgZnVuY3Rpb24geWllbGRNYWluVGhyZWFkKCkgeworICAgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHJlcXVlc3RB
bmltYXRpb25GcmFtZSgoKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICAgICAgfSk7CisgICAg
ICAgIH0KIAotICAgICAgICBtb3ZlKGZhbHNlKTsKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNFbGVt
ZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SWQpOworICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTsKKyAgICAgICAgICBy
ZXR1cm4geWllbGRNYWluVGhyZWFkKCk7CisgICAgICAgIH0KIAotICAgICAgICB0ZXh0Ym94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRhcmVhIik7Ci0gICAgICAgIHRleHRib3guZm9j
dXMoKTsKKyAgICAgICAgZnVuY3Rpb24gbW92ZUFzeW5jKGlzVmVydGljYWwpIHsKKyAgICAgICAg
ICBtb3ZlKGlzVmVydGljYWwpOworICAgICAgICAgIHJldHVybiB5aWVsZE1haW5UaHJlYWQoKTsK
KyAgICAgICAgfQogCi0gICAgICAgIG1vdmUodHJ1ZSk7CisgICAgICAgIGZvY3VzRWxlbWVudCgi
dGV4dGJveCIpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZUFzeW5jKHRydWUpKQorICAgICAg
ICAgIC50aGVuKCgpID0+IGZvY3VzRWxlbWVudCgiaW5wdXQiKSkKKyAgICAgICAgICAudGhlbigo
KSA9PiBtb3ZlQXN5bmMoZmFsc2UpKQorICAgICAgICAgIC50aGVuKCgpID0+IGZvY3VzRWxlbWVu
dCgidGV4dGFyZWEiKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlQXN5bmModHJ1ZSkpOwog
ICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKaW5kZXggZTFlYmRlYzAy
NzQyODY5OTY1YzVjZGRkYzYxMGY2YmJkOGViMmFkZi4uZThkNGVjMTYzM2Q5NDQ5NzViOWM4NTcw
NWUzZWJlNGVhNWY2YTZiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMTk1LDE5ICsx
OTUsODUgQEAKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsK
IAogICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsK
LSAgICAgICAgdGV4dGJveC5mb2N1cygpOwogCiAgICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9u
IGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotICAgICAg
ICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4p
IHsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBncmFuW2ldKTsKLSAg
ICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3JhbltpXSk7CisKKyAgICAg
ICAgZnVuY3Rpb24gZm9jdXNUZXh0Qm94KCkgeworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkg
PT4geworICAgICAgICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgICAgICAgIH0sIDApOworICAgICAgICAgIH0pOworICAgICAgICB9CisKKwlm
dW5jdGlvbiBtb3ZlU2VsZWN0aW9uKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgIHMubW9kaWZ5KCJt
b3ZlIiwgZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgfSk7CiAgICAgICAgIH0KLSAgICAgICAg
Zm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gs
IDApOwotICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbltpXSk7
CisKKyAgICAgICAgZnVuY3Rpb24gZXh0ZW5kU2VsZWN0aW9uKGdyYW51bGFyaXR5KSB7CisgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICBzLm1vZGlm
eSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgfSk7CiAgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiByZXNldFBvc2l0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHMgPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCk7CisgICAgICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICBmb2N1c1RleHRCb3goKQorICAgICAgICAgIC50aGVu
KCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0
aW9uKCJmb3J3YXJkIiwgZ3JhblswXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVj
dGlvbigiYmFja3dhcmQiLCBncmFuWzBdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2Vs
ZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsxXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNl
bGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzFdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3Zl
U2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsyXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92
ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzJdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBt
b3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblszXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4g
bW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzNdKSkKKyAgICAgICAgICAudGhlbigoKSA9
PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls0XSkpCisgICAgICAgICAgLnRoZW4oKCkg
PT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzRdKSkKKyAgICAgICAgICAudGhlbigo
KSA9PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls1XSkpCisgICAgICAgICAgLnRoZW4o
KCkgPT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzVdKSkKKyAgICAgICAgICAudGhl
bigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls2XSkpCisgICAgICAgICAgLnRo
ZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzZdKSkKKyAgICAgICAgICAu
dGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls3XSkpCisgICAgICAgICAg
LnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzddKSkKKyAgICAgICAg
ICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls4XSkpCisgICAgICAg
ICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzhdKSkKKyAgICAg
ICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4g
ZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9z
aXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3JhblsxXSkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVu
KCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzJdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBy
ZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdy
YW5bM10pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAg
ICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhbls0XSkpCisgICAgICAgICAgLnRoZW4o
KCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVj
dGlvbihncmFuWzVdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisg
ICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNl0pKQorICAgICAgICAg
IC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRl
bmRTZWxlY3Rpb24oZ3Jhbls3XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlv
bigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzhdKSk7CiAg
ICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAppbmRleCBlZTllMGE4MDVhNTkxYTgxYjIxNmE1ZWE1OGU4ZjQ4MDI2YjVh
MGRiLi5kZjE3NGEyM2E2NTQ3MTQ5YWY1ZTU1YTMzODU5ZmI1OTRmOTY3MTNjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCkBAIC00MywxMiAr
NDMsMTUgQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hh
bmdlcy4KICAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiAgICAgICAgIHMu
c2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgMzsg
aysrKSB7CisgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7
CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRyaWdn
ZXIgdmFsdWUgY2hhbmdlLgotICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4
dCIsIGZhbHNlLCAiaGVsbG8gIik7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAg
ICAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOwor
ICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgorICAgICAgICAgICAgICAg
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAg
ICAgICAgICAgIH0sIDApOworICAgICAgICB9LCAwKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5l
LWNhcmV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVu
ZGxpbmUtY2FyZXQuaHRtbAppbmRleCA3MzRjZGNiMDZhMzYzNjYzYjVkMDkxMDAxNGZkNjY0YjI1
YTU0MGU4Li5lNDJlNDNiYTJiMmY3NDU0NGUyOWI1ZTZkZDc2MTM5OGE0Y2M3MTM3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2Fy
ZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVu
ZGxpbmUtY2FyZXQuaHRtbApAQCAtMTUsMTMgKzE1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IHRhLmZvY3VzKCk7CiAgICAgLy8gY2xpY2sKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAg
ICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0gMTcpCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1M
ID0gIlRlc3QgU3VjY2VlZGVkIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzLmlubmVy
SFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHJlcXVlc3RBbmltYXRp
b25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwg
MjApOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09
IDE3KQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBG
YWlsZWQ6IGNhcmV0IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
cmVzLmlubmVySFRNTCA9ICJUZXN0IGNhbid0IHJ1biB3aXRob3V0IGV2ZW50IHNlbmRlciAocGFy
dCBvZiBEdW1wUmVuZGVyVHJlZSkuICIKICAgICAgICAgICAgICsgIlRvIHRlc3QgbWFudWFsbHks
IGNsaWNrIGF0IHRoZSBtaWRkbGUgb2YgdGhlIGxpbmUgbWFya2VkIDkgYW5kIGNoZWNrIHRoYXQg
dGhlIGNhcmV0IGFwcGVhcnMgYWZ0ZXIgdGhlIDkuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4
cGVjdGVkLnR4dAppbmRleCAzYWJiMGY3MDg5YTNmM2JjYmM2YWFkZjY5ZjczZDc3N2JmNzllMzBh
Li5hY2VhNTRlMDUwZGY1ZDJhNzc1YTlkOTlkOWIwMWY3MDY2YmE1YTgxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJz
b2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxl
Y3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMg
dGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBU
aGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBp
bnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEw
MCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGls
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUt
Y2hpbGQuaHRtbAppbmRleCA3ZDQ3ZDEyNTkxZDliYzlmYTEyMTY5MWQwZTc0MGY5YWVkYjNmNDcw
Li5hMTBiOWI1Mjg4YWEzMmYzNjMxNTgwYjVjYjg5ZThiZWI1Njk0N2VlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNo
aWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVu
UmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0
U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGlu
ZywgMCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVj
dHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWlu
dHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAw
KTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAog
ICAgIDxkaXY+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7
Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwv
ZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVj
dGVkLnR4dAppbmRleCBkYjNjMzc0MTY1NmIxNzc4YzkxNDBmNzE1NGFlODdjNTgwNmM0NmI0Li45
NzllZmEzOWU1NTBjYzJlMzI1NDYzMTMyOWE5MTJiN2VmNThmMjk3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxk
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVn
IDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFu
c2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQgZmxpcHBl
ZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdy
ZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAot
KHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3Rz
IChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwK
aW5kZXggMWI2MWViZjJkNTBiM2E0ZjBkMDIzODkxNjE2NDQxN2ZlMjhlNTZhNy4uMzhmZjkyZTdh
OTM4MzU5ZWUwODE1MWMzMDA4NmQ5MmI1ZDkwMTU1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1
dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4K
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlv
biBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAg
ICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAg
ICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRT
aWJsaW5nLCAwKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFp
bnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdS
ZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1
IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsIj4K
ICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3
aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9k
aXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10
cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQKaW5kZXggYjdjMzA5N2M2YjE3NjE2ZTJmNWQ3NGU5OGI3ZTk4NTk3MWE0NWEzMS4uNWNj
OTYxNWQxZTMwZDg3NjA5ZGE0OWIzNzMzZGIwNWU5ZTQ2MTE3MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hp
bGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQg
QEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0
aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQg
dHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNv
bXBsZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJl
Y3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQotKQotCiso
cmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGls
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3Jt
ZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxN2VkMzViMWExNTg1MTA5Mjc2ZjlkYmVmMDY4
NDYzNjNlNDYwMTZmLi40MzFhYzM1NmJjNjRhZDYyYThmOTJiYjlhZDM0M2JiNzQ0ZDY4NDRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEs
MjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVu
Y3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsK
KyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3Rh
cnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5u
ZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3Jp
cHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0i
dGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rp
dj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1j
aGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggOGRiZWQ0NDliYjll
YWVjY2ZkNjYzOGI3NTc2YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5Y2MzYTFjZDhjMmYzZjU5
OTQ5ZGUzOGFjMjhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxk
LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMg
ZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQg
Zml4ZWQgZWxlbWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJl
Y3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJl
YSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDAp
ICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRy
YW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmluZGV4IDc0NWM1NWVjN2E5
YzdkOTllNThjNDVlMmJlNmI0YjIwYjgwMTU4YTMuLjM1OWY5ZjU3NzdjMzJhMjMzMTY0NTY1OGEx
YzA4NmE5MTMxOWM1N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbApA
QCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVz
dCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGlu
dGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24o
KS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKwor
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVw
YWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgp
OworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0K
ICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdiBz
dHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAg
ICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVkOyI+PGJyLz48L2Rpdj48YnIvPgog
ICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFp
bnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA4NjEyMzI2ZGY4ZmExNDgwMTdiYzNh
NGU1Zjk2NTg2NTBjMmY5ZGJmLi5iMTk5MmE5MTBkZWRkMWMwZGQ5YTVlMjQ0NGZjODZlOWY0Njdi
NjU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50
LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0yLDYgKzIsNSBA
QCBBCiBBCiAocmVwYWludCByZWN0cwogICAocmVjdCA4IDY4IDIwIDEwMCkKLSAgKHJlY3QgOCA2
OCAyMCAxMDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CmluZGV4IDk1OTE1ZTY2MDBmMTI1NWNiZjZmMjM5
Zjk4NjQ5ZDc5OGEzNzYwNDEuLjRlN2MwOTI0MzQ2N2NkNzkxNTM0ZTVmYjEyYTBlMTg1MzU3ZjU3
NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1y
dWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0
aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWlu
dGluZyBvZiBzZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzggMTggNzkp
Ci0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOCAxOCA3OSkgKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbAppbmRleCAwMjc4NDQwYTFm
YjcyNDQ0MmQ5NjQyOTI4ZWEyZWIzMjM5M2NjYTIxLi5lYTQyNTE2ZDQ4YjMxMGMzYzljNDQ3YTAw
N2ExNjhhMDFmNTkwZjYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLXJ1YnktcmwuaHRtbApAQCAtMyw3ICszLDE1IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5j
dGlvbiByZXBhaW50VGVzdCgpIHsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Cit9CisKK2Z1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICBp
ZiAoZXZlbnRTZW5kZXIpIHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCA0
MCk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwpAQCAtMTEsNiArMTksMTYgQEAg
ZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KDc5MCwgMTIwKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgIH0KKworICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhU
TUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAg
aW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICB9LCAwKTsKIH0KIDwvc2NyaXB0PgogCkBAIC0yNiw0ICs0NCw1IEBAIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KKzxkaXYgaWQ9
InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQKaW5kZXggYmQ5ZjU4OWY5Y2NkOWM2NzQ4MjUxM2E3NDY2ZmNmYmJmZjdkMTk2OC4u
ZTJkM2U1OTdmZGQyYjFmYjY0NGE1ZTM5YmFiMzVjY2E0ZTZjYjBkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBn
cmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk5IDE4KQot
KQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5OSAxOCkgKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi5odG1sCmluZGV4IGJjYzllMzRkMTc3ODBlMDE2MDBlNTU4M2JjYWFiMWIwMjNhMTYyNjAuLjhh
NDNmOWJhYTJlNDc0MjQzYTM2OTZlN2MyNTYzMWMyMzkwNjJjYjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLmh0bWwKQEAgLTEsNSArMSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwv
c2NyaXB0PgogPHN0eWxlPgogI3Rlc3QgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKQEAg
LTEyLDExICsxMSwzMCBAQAogfQogPC9zdHlsZT4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVw
YWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5n
UmVwYWludHMoKTsKKwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRl
c3QsIDAsIHRlc3QsIDEpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMu
cmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFj
a2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSwgMCk7CiAgICAgfTsKIDwvc2NyaXB0PgogCiA8Ym9keSBvbmxvYWQ9InJ1blJlcGFp
bnRUZXN0KCkiPgogICAgIDxwIGlkPSJ0ZXN0Ij5TaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5k
PC9wPgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNGU4ZDU1NTEzYmYyNzczYjZkMWEy
ZWNlNjk1OTc3NTUzOTdjNGFmYy4uZmUxMTkyZWQyM2I1YTFlYjBlZjc0Yjg0OTc4ZGY5ZTQzNDk2
MDUxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2
NjQsOCArMTY2NCw2IEBAIHdlYmtpdC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1z
Y3JvbGxiYXItaW4tcnRsLmh0bWwgWyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRh
dGlvbiBvZiBldmVudFNlbmRlciBjYXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcv
Yi80MjE5NCBmYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC5odG1sIFsgRmFpbHVyZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90
IHJlbmRlcmVkIHByb3Blcmx5Lgogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhl
aWdodC1kZXRlcm1pbmVkLWJ5LXByaW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMTQwMjUyIGZhc3QvdGV4dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1s
IFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZjNTU5NTk3ZWVhMGU5MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVz
dGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5n
IGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRl
c3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFu
ZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBh
aW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRp
bmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBv
ZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNl
bGVjdGlvbi4KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0Cmlu
ZGV4IGEwYWU0NTYwZGZhM2Q2NjEyNWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQy
MmE2NDJhZWExZGFhNzRlOWQ4ZTgwMWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBA
CiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDggMTYgMTk3IDE3KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRl
YWM4YWNmN2IxNWNjOTkyMGNhMjkyMTljYmQyMTdlODkyYTRiZTQuLmEzNTc4NWUzODQ4Y2JhMDIw
ZGI0OTg0NDQ4ZmY2YmE3ODg1YzI2YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MTMsMyArMTUxMyw1IEBAIHdlYmtpdC5vcmcvYi8y
MzIzMTUgWyBDYXRhbGluYSBEZWJ1ZyBdIG1lZGlhL3RyYWNrL3RyYWNrLWRpc2FibGVkLmh0bWwg
WyBQYXNzIENyCiB3ZWJraXQub3JnL2IvMjMyNDQ2IFsgQ2F0YWxpbmEgRGVidWcgXSBtZWRpYS90
cmFjay90cmFjay1lbGVtZW50LWRvbS1jaGFuZ2UtY3Jhc2guaHRtbCBbIFBhc3MgQ3Jhc2ggXQog
CiB3ZWJraXQub3JnL2IvMjMyNTg1IFsgQ2F0YWxpbmEgRGVidWcgXSBtZWRpYS90cmFjay90cmFj
ay1lbGVtZW50LWxvYWQtZXZlbnQuaHRtbCBbIFBhc3MgQ3Jhc2ggXQorCit3ZWJraXQub3JnL2Iv
MjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1s
IFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Fj
Y2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3Qt
Y2xlYXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nl
c3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNs
ZWFyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjgzNzljYzE4ZTIwYjUyMjkyMmNjZTYy
YWM5Y2YyNjQxY2Q0ZjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9u
aXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKKyAxCisg
MgorVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgZm9jdXMgb24gYSByZW5kZXIgb2JqZWN0IHdoZW4g
aXQgZG9lc24ndCByZXN1bHQgaW4gYSBzZWxlY3Rpb24gY2hhbmdlIHdvbid0IGxlYXZlIGlzU3lu
Y2hyb25pemluZ1NlbGVjdGlvbiBzZXQgdG8gdHJ1ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiMSIpKSBpcyB0cnVlCitQQVNTIGF4VGV4dFN0YXRl
U3luY09uZSBpcyB1bmRlZmluZWQKK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCIxIikuaXNGb2N1c2FibGUgaXMgdHJ1ZQorUEFTUyBheFRleHRTdGF0
ZVN5bmNUd28gaXMgdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
MS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YmYwMTBmYWM0NjI3ZTMxNDUxZjE0MWEzODUxYjQ2MjY2ZDdkMjlkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCisKKworKHJlcGFpbnQgcmVjdHMKKyAgKHJlY3Qg
MSAxOSAxNSAzMikKKyAgKHJlY3QgOCAyNiAxIDE4KQorICAocmVjdCAxIDE5IDE1IDMyKQorICAo
cmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVjdCA4IDQ0IDc4NCAx
OCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcpCispCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmRkZGJiYjg1NTM3N2My
N2U5MzUwYTdjMzU3OGE1YWVjYzA2MDg4YS4uMDJmZjY4MGI2ODQ0MzVjN2JlOWNmYmJmOWFlYjZm
YzQ0MWM2MzRjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTI0NDYsMyArMjQ0Niw1IEBAIHdlYmtpdC5vcmcvYi8yMzE5MjQgaW5zcGVjdG9yL2Nzcy9t
b2RpZnktY3NzLXByb3BlcnR5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogIyBGSVhNRTogUmVtb3Zl
IHRoZXNlIHRlc3RzLgogcGxhdGZvcm0vbWFjL3BsdWdpbnMvdGVzdHBsdWdpbi1vbm5ldy1vbnBh
aW50Lmh0bWwgWyBTa2lwIF0KIHBsYXRmb3JtL21hYy9wbHVnaW5zL2NvbnZlcnQtcG9pbnQuaHRt
bCBbIFNraXAgXQorCit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVj
dGlvbi1zeW5jLmh0bWwgWyBTa2lwIF0gIyBUaW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kOWNhN2RjMThlOWU4ZDZjMDI1NzYyNTM4ODE5ZDNjY2RmNGRkYTE4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworCisocmVwYWludCByZWN0cworICAo
cmVjdCAxIDM3IDc5OCAzMikKKyAgKHJlY3QgOCA0NCA3ODQgMTgpCisgIChyZWN0IDEgNTEgNzk4
IDE4KQorICAocmVjdCAxIDQ0IDc5OCA3KQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBlMDJjMDkyYmE1MzNiNmU2ZDA2ZTIy
MDg2ODNjNDFlMzRiODkyODI0Li41MDIzNTFhYjcwMzRlODVkYmUwNDRhNjFlNTY2OTFhNGE1MjY0
MzA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3Rl
ZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJl
cGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVs
ZW1lbnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRl
bHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4N
CiANCiANCi0ocmVwYWludCByZWN0cw0KLSAgKHJlY3QgMCAwIDEwMCAxMDApDQotKQ0KIA0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggNWE5MzRmNDczN2ZlNWY5
ZmYxNjU0ZWE3YTJiMTMyZmY3ZWIyYjVjNy4uZmM1NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDky
N2YxYjI2MjUxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAg
LTgsNyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rp
b24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4K
IFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJl
cGFpbnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM5IDE4IDgzKQotKQotCisocmVwYWludCByZWN0cyAo
cmVjdCA3NzQgMzkgMTggODMpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24t
b3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCAwYTc3MWQ0NjlhMWRiMGQ0YzdjNjdm
NTUwNWE1ZWUyN2ViOWYwMzVlLi40MTkwNDAzODgzNTY1MTc0ODY2ZjMwODMxZTFiZDBhNWZlMTBk
NjhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRk
ZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dy
b3VuZAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5NyAxOCkKLSkKLQorKHJlcGFp
bnQgcmVjdHMgKHJlY3QgOCAxNiAxOTcgMTgpICkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443106</attachid>
            <date>2021-11-02 10:35:36 -0700</date>
            <delta_ts>2021-11-15 11:50:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20211102183534.patch</filename>
            <type>text/plain</type>
            <size>41880</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjNTM4ODU1ZTZmNTRh
NTJkN2Q2MzI5NDBlMTk1NjUzMmVhMWExNS4uNDNhN2YzNjI1ZjA2MzA4NzY5NmVmNjlhNTY3YTky
YzliOGVhMWM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMTEtMDEgIERvbiBPbG1z
dGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ3VybF0gRml4IC1XcmVv
cmRlci1jdG9yIGluIEN1cmxSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCmluZGV4IDY1ZTE1YjcyYmVhZjY5ODliMTFhYjNhOTU2ZTQ1NjUyYzk4MjQ3ZjAu
LjA2NzBjY2Q2ZmFhNGQ1NzFkNjU1MGIwZjVmYjk5YjFlZmUyNWY0YzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTIsNiArNDUyLDExIEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91
dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYg
KCEob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBlYXJh
bmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhTbW9v
dGhTY3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0
YW50LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxFeHRl
bnRPcHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxF
eHRlbnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2MCwx
MyArNDY1LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0aWMg
dm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYgZG9j
dW1lbnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93
KCkKIHsKKyAgICBhdXRvIGRvY3VtZW50ID0gUmVmIHsgKm1fZG9jdW1lbnQgfTsKICNpZiBFTkFC
TEUoVEVYVF9DQVJFVCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CiAjZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAg
ICBkb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVu
ZGluZ1NlbGVjdGlvblVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rp
b25BZnRlclVwZGF0ZSByZXZlYWxNb2RlKQpAQCAtMTY2Niw3ICsxNjc0LDcgQEAgSW50UmVjdCBG
cmFtZVNlbGVjdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsK
ICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBk
YXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVw
ZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsK
ICAgICBpZiAoaW5zaWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNp
ZGVQb3NpdGlvbkZpeGVkOwpAQCAtMjIyMiw3ICsyMjMwLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2V0Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRV
cGRhdGUKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3Vz
IGxheW91dCBoZXJlLgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRl
QXBwZWFyYW5jZTo6WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5
VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0
aW9uQXBwZWFyYW5jZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1f
Y2FyZXRQYWludCkgewpAQCAtMjMzMCw3ICsyMzM4LDcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0
aW9uOjpzZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNv
bnQKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAK
LSAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7
CisgICAgY29uc3RfY2FzdDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlzKS51cGRhdGVTZWxlY3Rpb25B
cHBlYXJhbmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQtPnJlbmRl
clZpZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0
KCk7CkBAIC0yNDI2LDYgKzI0MzQsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxl
Y3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgIGlm
IChpc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFy
YW5jZU5vdygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRlRml4ZWQg
PSBmYWxzZTsKICAgICBpZiAoaXNDYXJldCgpKQpAQCAtMjQ5Nyw2ICsyNTA3LDE0IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dC
bG9ja0N1cnNvcikKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKK3ZvaWQgRnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCkKK3sK
KyAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSB8fCBtX3NlbGVjdGlvblJldmVhbE1v
ZGUgPT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAgICAgIHJldHVybjsK
KyAgICBtX2RvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
KyAgICB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKK30KKwogdm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkKIHsKICAgICBtX2FwcGVhcmFuY2VV
cGRhdGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgK
aW5kZXggZWRhY2I2M2NiZWJkM2EzZTkzZDNkMGYxZjk3MzllYWJhZjdmNzY1Mi4uNTMxNGUzMTky
NTE3NGJmYWYxODc1NGRhMGQ3ZDM0YTdjOTE1MWVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaApAQCAtMTQ5LDYgKzE0OSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7
CiAKKyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVk
KCk7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNj
aGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKIApAQCAtMjY1LDYgKzI2
Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7
CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAg
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxF
eHRlbnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9p
ZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGRiMWE5ZjY4N2VkYjBiZWFj
MzU2ODU2ZjA2MTdjYjU0OTUyMGMzN2MuLjA3NjViZWI0MjQxMWMyNGJlMTIyNWQyNDQ0YTYwMDRj
MWZjMGM0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1l
U2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERhdGFM
aXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKQEAgLTQ5MSw2
ICs0OTIsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5kU2hvd1ZhbGlk
YXRpb25NZXNzYWdlKCkKIAogICAgIC8vIENhbGxpbmcgZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUg
ZWxlbWVudCBpbnRvIHZpZXcuCiAgICAgZm9jdXMoKTsKKyAgICBkb2N1bWVudCgpLnNlbGVjdGlv
bigpLnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAKICAg
ICAvLyBmb2N1cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlldyBhbmQgdGhpcyBz
Y3JvbGwgbWF5IGhhcHBlbiBhc3luY2hyb25vdXNseS4KICAgICAvLyBCZWNhdXNlIHNjcm9sbGlu
ZyB0aGUgdmlldyBoaWRlcyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlLCB3ZSBuZWVkIHRvIHNob3cg
dGhlIHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1N2Iz
MzU3YTE1NDYyOTI0YzAxMThlZjI3NmU0OTljMDEyNDU0MjExLi5iNjMwOTYyZjY1M2U5Mjk1OGY1
OWRlOTZmM2EwYWVhNTZmMTg0YzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVk
KE5vZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVlZGVk
KEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1Nl
bGVjdGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvbigpICE9IG5ld1NlbGVjdGlv
biAmJiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAg
ICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0
aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9v
bCBkaXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4
MTQ2Y2I1OWZjYjcxYzcxMGU2ZjcyMmFjNmQ1Y2U1NTlmNjQ5MzM3Li42MTMzYzc2Yzg4M2QyNWNl
ZTk2N2Y2YjhmYWYxNGRlZTgyYmEyZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2NzAsNiAr
MTY3MCwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcoKQogICAgICAgICBk
b2N1bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CiAgICAgfSk7CiAKKyAg
ICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1
bWVudC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsK
KwogICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAg
IGRvY3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogICAgIH0pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY2
MmQ0ZWYyNDZiZDczOGE4MjVmZmEwZjdjZDZhNzkxYTJkOTQ2NDYuLjcwZjlhMDVkZDg4ZWYxNDg5
OWU2N2ZiZTcwZjNmZjBjMWQwYzdjYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAyMS0xMS0w
MiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBS
ZWxlYXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJl
YUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTW92ZWQgc29tZSB0ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFzZWQt
cmVwYWludC5qcyBtb2RlbCBiZWNhdXNlIHNlbGVjdGlvbiBpcyBub3cgdXBkYXRlZAorICAgICAg
ICBhbmQgcmV2ZWFsZWQgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIgdHJp
Z2dlcmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKKyAgICAgICAgYnkgdGhlIHRpbWUg
dGhlIHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJpZWQgdGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBlbmVk
IHlldC4gVGhhdCdzIHdoeQorICAgICAgICB0aGUgdGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0aGF0
IHdlIHdhaXQgdW50aWwgdGhlIHJlcGFpbnQgaGFwcGVucy4KKworICAgICAgICBTYW1lIHNpdHVh
dGlvbiBmb3Igb3RoZXIgdGVzdHMgdGhhdCBkbyBub3QgaW52b2x2ZSByZXBhaW50IHJlY3RzIGJ1
dCBhMTF5IG5vdGlmaWNhdGlvbnMuIFdlCisgICAgICAgIG11c3QgZW5zdXJlIHRoYXQgd2UgbGV0
IHRoZSBub3RpZmljYXRpb24gYmUgdGhyb3duIGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIG9yIG5v
dCBoYXMgYmVlbgorICAgICAgICBlbWl0ZWQuIEFzIGl0J3MgZG9uZSBhc3luY2hyb25vdXNseSB3
ZSBtdXN0IGxldCB0aGUgbWFpbiB0aHJlYWQgcnVuIGJlZm9yZSBjaGVja2luZy4KKworICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRt
bDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3Jv
bGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGls
ZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1m
aXhlZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQt
aW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rp
b24tcnVieS1ybC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWNhdGFsaW5hLXdrMS9mYXN0L3JlcGFp
bnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmls
aXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5n
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTEtMDEgIE1pY2hhZWwgU21pdGggIDxtaWtlQHczLm9y
Zz4KIAogICAgICAgICBbV2ViSW5zcGVjdG9yXVtDT1JTXSBTaG93IEhUVFAgc3RhdHVzIGNvZGUg
aW4gQ09SUyBtZXNzYWdlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKaW5kZXggOGJkOTE5
NTRiMmQ4ZmRjOTE0MjAwODI5ZDE4ZTFkYjM3Y2FlZjNiYS4uZmQ3ZjJkYzEzOTg3N2QyOTUzZWUz
MDQ1NGVjMTQyMDc2MDY4OTRiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKQEAgLTE2
MiwyMCArMTYyLDI5IEBACiAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEu
YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwogICAgICAgICBz
aG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCi0gICAgICAgIHRleHRib3gg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZv
Y3VzKCk7Ci0KLSAgICAgICAgbW92ZSh0cnVlKTsKLQotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAg
ICAgICAgZnVuY3Rpb24geWllbGRNYWluVGhyZWFkKCkgeworICAgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHJlcXVlc3RB
bmltYXRpb25GcmFtZSgoKSA9PiB7IHJlc29sdmUoKTsgfSk7CisgICAgICAgICAgfSk7CisgICAg
ICAgIH0KIAotICAgICAgICBtb3ZlKGZhbHNlKTsKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNFbGVt
ZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SWQpOworICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTsKKyAgICAgICAgICBy
ZXR1cm4geWllbGRNYWluVGhyZWFkKCk7CisgICAgICAgIH0KIAotICAgICAgICB0ZXh0Ym94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRhcmVhIik7Ci0gICAgICAgIHRleHRib3guZm9j
dXMoKTsKKyAgICAgICAgZnVuY3Rpb24gbW92ZUFzeW5jKGlzVmVydGljYWwpIHsKKyAgICAgICAg
ICBtb3ZlKGlzVmVydGljYWwpOworICAgICAgICAgIHJldHVybiB5aWVsZE1haW5UaHJlYWQoKTsK
KyAgICAgICAgfQogCi0gICAgICAgIG1vdmUodHJ1ZSk7CisgICAgICAgIGZvY3VzRWxlbWVudCgi
dGV4dGJveCIpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZUFzeW5jKHRydWUpKQorICAgICAg
ICAgIC50aGVuKCgpID0+IGZvY3VzRWxlbWVudCgiaW5wdXQiKSkKKyAgICAgICAgICAudGhlbigo
KSA9PiBtb3ZlQXN5bmMoZmFsc2UpKQorICAgICAgICAgIC50aGVuKCgpID0+IGZvY3VzRWxlbWVu
dCgidGV4dGFyZWEiKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlQXN5bmModHJ1ZSkpOwog
ICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKaW5kZXggZTFlYmRlYzAy
NzQyODY5OTY1YzVjZGRkYzYxMGY2YmJkOGViMmFkZi4uZThkNGVjMTYzM2Q5NDQ5NzViOWM4NTcw
NWUzZWJlNGVhNWY2YTZiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMTk1LDE5ICsx
OTUsODUgQEAKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsK
IAogICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsK
LSAgICAgICAgdGV4dGJveC5mb2N1cygpOwogCiAgICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9u
IGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotICAgICAg
ICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4p
IHsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBncmFuW2ldKTsKLSAg
ICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3JhbltpXSk7CisKKyAgICAg
ICAgZnVuY3Rpb24gZm9jdXNUZXh0Qm94KCkgeworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkg
PT4geworICAgICAgICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgICAgICAgIH0sIDApOworICAgICAgICAgIH0pOworICAgICAgICB9CisKKwlm
dW5jdGlvbiBtb3ZlU2VsZWN0aW9uKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgIHMubW9kaWZ5KCJt
b3ZlIiwgZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgfSk7CiAgICAgICAgIH0KLSAgICAgICAg
Zm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gs
IDApOwotICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbltpXSk7
CisKKyAgICAgICAgZnVuY3Rpb24gZXh0ZW5kU2VsZWN0aW9uKGdyYW51bGFyaXR5KSB7CisgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICBzLm1vZGlm
eSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgfSk7CiAgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiByZXNldFBvc2l0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHMgPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCk7CisgICAgICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICBmb2N1c1RleHRCb3goKQorICAgICAgICAgIC50aGVu
KCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0
aW9uKCJmb3J3YXJkIiwgZ3JhblswXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVj
dGlvbigiYmFja3dhcmQiLCBncmFuWzBdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3ZlU2Vs
ZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsxXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNl
bGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzFdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBtb3Zl
U2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsyXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92
ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzJdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBt
b3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblszXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4g
bW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzNdKSkKKyAgICAgICAgICAudGhlbigoKSA9
PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls0XSkpCisgICAgICAgICAgLnRoZW4oKCkg
PT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzRdKSkKKyAgICAgICAgICAudGhlbigo
KSA9PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls1XSkpCisgICAgICAgICAgLnRoZW4o
KCkgPT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzVdKSkKKyAgICAgICAgICAudGhl
bigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls2XSkpCisgICAgICAgICAgLnRo
ZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzZdKSkKKyAgICAgICAgICAu
dGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls3XSkpCisgICAgICAgICAg
LnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzddKSkKKyAgICAgICAg
ICAudGhlbigoKSA9PiBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls4XSkpCisgICAgICAg
ICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzhdKSkKKyAgICAg
ICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4g
ZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9z
aXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3JhblsxXSkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVu
KCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzJdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBy
ZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdy
YW5bM10pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAg
ICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhbls0XSkpCisgICAgICAgICAgLnRoZW4o
KCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVj
dGlvbihncmFuWzVdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisg
ICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNl0pKQorICAgICAgICAg
IC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRl
bmRTZWxlY3Rpb24oZ3Jhbls3XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlv
bigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzhdKSk7CiAg
ICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAppbmRleCBlZTllMGE4MDVhNTkxYTgxYjIxNmE1ZWE1OGU4ZjQ4MDI2YjVh
MGRiLi5kZjE3NGEyM2E2NTQ3MTQ5YWY1ZTU1YTMzODU5ZmI1OTRmOTY3MTNjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCkBAIC00MywxMiAr
NDMsMTUgQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hh
bmdlcy4KICAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiAgICAgICAgIHMu
c2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgMzsg
aysrKSB7CisgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7
CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRyaWdn
ZXIgdmFsdWUgY2hhbmdlLgotICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4
dCIsIGZhbHNlLCAiaGVsbG8gIik7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAg
ICAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOwor
ICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgorICAgICAgICAgICAgICAg
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAg
ICAgICAgICAgIH0sIDApOworICAgICAgICB9LCAwKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5l
LWNhcmV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVu
ZGxpbmUtY2FyZXQuaHRtbAppbmRleCA3MzRjZGNiMDZhMzYzNjYzYjVkMDkxMDAxNGZkNjY0YjI1
YTU0MGU4Li5lNDJlNDNiYTJiMmY3NDU0NGUyOWI1ZTZkZDc2MTM5OGE0Y2M3MTM3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2Fy
ZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVu
ZGxpbmUtY2FyZXQuaHRtbApAQCAtMTUsMTMgKzE1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IHRhLmZvY3VzKCk7CiAgICAgLy8gY2xpY2sKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAg
ICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0gMTcpCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1M
ID0gIlRlc3QgU3VjY2VlZGVkIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzLmlubmVy
SFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHJlcXVlc3RBbmltYXRp
b25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwg
MjApOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09
IDE3KQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBG
YWlsZWQ6IGNhcmV0IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
cmVzLmlubmVySFRNTCA9ICJUZXN0IGNhbid0IHJ1biB3aXRob3V0IGV2ZW50IHNlbmRlciAocGFy
dCBvZiBEdW1wUmVuZGVyVHJlZSkuICIKICAgICAgICAgICAgICsgIlRvIHRlc3QgbWFudWFsbHks
IGNsaWNrIGF0IHRoZSBtaWRkbGUgb2YgdGhlIGxpbmUgbWFya2VkIDkgYW5kIGNoZWNrIHRoYXQg
dGhlIGNhcmV0IGFwcGVhcnMgYWZ0ZXIgdGhlIDkuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4
cGVjdGVkLnR4dAppbmRleCAzYWJiMGY3MDg5YTNmM2JjYmM2YWFkZjY5ZjczZDc3N2JmNzllMzBh
Li5hY2VhNTRlMDUwZGY1ZDJhNzc1YTlkOTlkOWIwMWY3MDY2YmE1YTgxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJz
b2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxl
Y3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMg
dGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBU
aGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBp
bnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEw
MCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGls
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUt
Y2hpbGQuaHRtbAppbmRleCA3ZDQ3ZDEyNTkxZDliYzlmYTEyMTY5MWQwZTc0MGY5YWVkYjNmNDcw
Li5hMTBiOWI1Mjg4YWEzMmYzNjMxNTgwYjVjYjg5ZThiZWI1Njk0N2VlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNo
aWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVu
UmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0
U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGlu
ZywgMCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVj
dHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWlu
dHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAw
KTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAog
ICAgIDxkaXY+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7
Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwv
ZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVj
dGVkLnR4dAppbmRleCBkYjNjMzc0MTY1NmIxNzc4YzkxNDBmNzE1NGFlODdjNTgwNmM0NmI0Li45
NzllZmEzOWU1NTBjYzJlMzI1NDYzMTMyOWE5MTJiN2VmNThmMjk3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxk
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVn
IDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFu
c2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQgZmxpcHBl
ZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdy
ZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAot
KHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3Rz
IChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwK
aW5kZXggMWI2MWViZjJkNTBiM2E0ZjBkMDIzODkxNjE2NDQxN2ZlMjhlNTZhNy4uMzhmZjkyZTdh
OTM4MzU5ZWUwODE1MWMzMDA4NmQ5MmI1ZDkwMTU1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1
dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4K
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlv
biBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAg
ICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAg
ICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRT
aWJsaW5nLCAwKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFp
bnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdS
ZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1
IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsIj4K
ICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3
aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9k
aXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10
cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQKaW5kZXggYjdjMzA5N2M2YjE3NjE2ZTJmNWQ3NGU5OGI3ZTk4NTk3MWE0NWEzMS4uNWNj
OTYxNWQxZTMwZDg3NjA5ZGE0OWIzNzMzZGIwNWU5ZTQ2MTE3MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hp
bGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQg
QEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0
aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQg
dHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNv
bXBsZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJl
Y3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQotKQotCiso
cmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGls
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3Jt
ZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxN2VkMzViMWExNTg1MTA5Mjc2ZjlkYmVmMDY4
NDYzNjNlNDYwMTZmLi40MzFhYzM1NmJjNjRhZDYyYThmOTJiYjlhZDM0M2JiNzQ0ZDY4NDRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEs
MjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVu
Y3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsK
KyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3Rh
cnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5u
ZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3Jp
cHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0i
dGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rp
dj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1j
aGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggOGRiZWQ0NDliYjll
YWVjY2ZkNjYzOGI3NTc2YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5Y2MzYTFjZDhjMmYzZjU5
OTQ5ZGUzOGFjMjhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxk
LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMg
ZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQg
Zml4ZWQgZWxlbWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJl
Y3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJl
YSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDAp
ICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRy
YW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmluZGV4IDc0NWM1NWVjN2E5
YzdkOTllNThjNDVlMmJlNmI0YjIwYjgwMTU4YTMuLjM1OWY5ZjU3NzdjMzJhMjMzMTY0NTY1OGEx
YzA4NmE5MTMxOWM1N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbApA
QCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVz
dCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGlu
dGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24o
KS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKwor
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVw
YWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgp
OworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0K
ICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdiBz
dHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAg
ICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVkOyI+PGJyLz48L2Rpdj48YnIvPgog
ICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFp
bnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA4NjEyMzI2ZGY4ZmExNDgwMTdiYzNh
NGU1Zjk2NTg2NTBjMmY5ZGJmLi5iMTk5MmE5MTBkZWRkMWMwZGQ5YTVlMjQ0NGZjODZlOWY0Njdi
NjU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50
LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0yLDYgKzIsNSBA
QCBBCiBBCiAocmVwYWludCByZWN0cwogICAocmVjdCA4IDY4IDIwIDEwMCkKLSAgKHJlY3QgOCA2
OCAyMCAxMDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CmluZGV4IDk1OTE1ZTY2MDBmMTI1NWNiZjZmMjM5
Zjk4NjQ5ZDc5OGEzNzYwNDEuLjRlN2MwOTI0MzQ2N2NkNzkxNTM0ZTVmYjEyYTBlMTg1MzU3ZjU3
NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1y
dWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0
aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWlu
dGluZyBvZiBzZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzggMTggNzkp
Ci0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOCAxOCA3OSkgKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbAppbmRleCAwMjc4NDQwYTFm
YjcyNDQ0MmQ5NjQyOTI4ZWEyZWIzMjM5M2NjYTIxLi5lYTQyNTE2ZDQ4YjMxMGMzYzljNDQ3YTAw
N2ExNjhhMDFmNTkwZjYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLXJ1YnktcmwuaHRtbApAQCAtMyw3ICszLDE1IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5j
dGlvbiByZXBhaW50VGVzdCgpIHsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Cit9CisKK2Z1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICBp
ZiAoZXZlbnRTZW5kZXIpIHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCA0
MCk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwpAQCAtMTEsNiArMTksMTYgQEAg
ZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KDc5MCwgMTIwKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgIH0KKworICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhU
TUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAg
aW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICB9LCAwKTsKIH0KIDwvc2NyaXB0PgogCkBAIC0yNiw0ICs0NCw1IEBAIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KKzxkaXYgaWQ9
InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQKaW5kZXggYmQ5ZjU4OWY5Y2NkOWM2NzQ4MjUxM2E3NDY2ZmNmYmJmZjdkMTk2OC4u
ZTJkM2U1OTdmZGQyYjFmYjY0NGE1ZTM5YmFiMzVjY2E0ZTZjYjBkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBn
cmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk5IDE4KQot
KQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5OSAxOCkgKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi5odG1sCmluZGV4IGJjYzllMzRkMTc3ODBlMDE2MDBlNTU4M2JjYWFiMWIwMjNhMTYyNjAuLjhh
NDNmOWJhYTJlNDc0MjQzYTM2OTZlN2MyNTYzMWMyMzkwNjJjYjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLmh0bWwKQEAgLTEsNSArMSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwv
c2NyaXB0PgogPHN0eWxlPgogI3Rlc3QgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKQEAg
LTEyLDExICsxMSwzMCBAQAogfQogPC9zdHlsZT4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVw
YWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5n
UmVwYWludHMoKTsKKwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRl
c3QsIDAsIHRlc3QsIDEpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMu
cmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFj
a2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSwgMCk7CiAgICAgfTsKIDwvc2NyaXB0PgogCiA8Ym9keSBvbmxvYWQ9InJ1blJlcGFp
bnRUZXN0KCkiPgogICAgIDxwIGlkPSJ0ZXN0Ij5TaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5k
PC9wPgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNGU4ZDU1NTEzYmYyNzczYjZkMWEy
ZWNlNjk1OTc3NTUzOTdjNGFmYy4uZmUxMTkyZWQyM2I1YTFlYjBlZjc0Yjg0OTc4ZGY5ZTQzNDk2
MDUxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2
NjQsOCArMTY2NCw2IEBAIHdlYmtpdC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1z
Y3JvbGxiYXItaW4tcnRsLmh0bWwgWyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRh
dGlvbiBvZiBldmVudFNlbmRlciBjYXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcv
Yi80MjE5NCBmYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC5odG1sIFsgRmFpbHVyZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90
IHJlbmRlcmVkIHByb3Blcmx5Lgogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhl
aWdodC1kZXRlcm1pbmVkLWJ5LXByaW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMTQwMjUyIGZhc3QvdGV4dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1s
IFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZjNTU5NTk3ZWVhMGU5MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVz
dGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5n
IGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRl
c3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFu
ZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBh
aW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRp
bmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBv
ZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNl
bGVjdGlvbi4KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0Cmlu
ZGV4IGEwYWU0NTYwZGZhM2Q2NjEyNWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQy
MmE2NDJhZWExZGFhNzRlOWQ4ZTgwMWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBA
CiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDggMTYgMTk3IDE3KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRl
YWM4YWNmN2IxNWNjOTkyMGNhMjkyMTljYmQyMTdlODkyYTRiZTQuLjMzZmIxNzVjNjVjOWM1Yjg1
NWIyNTk2YWQyN2Q1ZTk1MzZlYTg5NzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MTMsMyArMTUxMyw2IEBAIHdlYmtpdC5vcmcvYi8y
MzIzMTUgWyBDYXRhbGluYSBEZWJ1ZyBdIG1lZGlhL3RyYWNrL3RyYWNrLWRpc2FibGVkLmh0bWwg
WyBQYXNzIENyCiB3ZWJraXQub3JnL2IvMjMyNDQ2IFsgQ2F0YWxpbmEgRGVidWcgXSBtZWRpYS90
cmFjay90cmFjay1lbGVtZW50LWRvbS1jaGFuZ2UtY3Jhc2guaHRtbCBbIFBhc3MgQ3Jhc2ggXQog
CiB3ZWJraXQub3JnL2IvMjMyNTg1IFsgQ2F0YWxpbmEgRGVidWcgXSBtZWRpYS90cmFjay90cmFj
ay1lbGVtZW50LWxvYWQtZXZlbnQuaHRtbCBbIFBhc3MgQ3Jhc2ggXQorCit3ZWJraXQub3JnL2Iv
MjMyNjMwIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1s
IFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjMyNjMwIGZhc3QvZm9ybXMvYXV0b2ZvY3VzLW9w
ZXJhLTAwMy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNy
b25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9u
aXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjgzNzljYzE4ZTIw
YjUyMjkyMmNjZTYyYWM5Y2YyNjQxY2Q0ZjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVj
dGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3
IEBACisKKyAxCisgMgorVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgZm9jdXMgb24gYSByZW5kZXIg
b2JqZWN0IHdoZW4gaXQgZG9lc24ndCByZXN1bHQgaW4gYSBzZWxlY3Rpb24gY2hhbmdlIHdvbid0
IGxlYXZlIGlzU3luY2hyb25pemluZ1NlbGVjdGlvbiBzZXQgdG8gdHJ1ZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFT
UyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5pc0VxdWFsKGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiMSIpKSBpcyB0cnVlCitQQVNT
IGF4VGV4dFN0YXRlU3luY09uZSBpcyB1bmRlZmluZWQKK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikuaXNGb2N1c2FibGUgaXMgdHJ1ZQorUEFT
UyBheFRleHRTdGF0ZVN5bmNUd28gaXMgdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41YmYwMTBmYWM0NjI3ZTMxNDUxZjE0MWEzODUxYjQ2MjY2ZDdkMjlkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQv
NDc3Njc2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCisKKworKHJlcGFpbnQgcmVj
dHMKKyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJlY3QgOCAyNiAxIDE4KQorICAocmVjdCAxIDE5
IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVj
dCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcp
CispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmRk
ZGJiYjg1NTM3N2MyN2U5MzUwYTdjMzU3OGE1YWVjYzA2MDg4YS4uMDJmZjY4MGI2ODQ0MzVjN2Jl
OWNmYmJmOWFlYjZmYzQ0MWM2MzRjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTI0NDYsMyArMjQ0Niw1IEBAIHdlYmtpdC5vcmcvYi8yMzE5MjQgaW5z
cGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogIyBG
SVhNRTogUmVtb3ZlIHRoZXNlIHRlc3RzLgogcGxhdGZvcm0vbWFjL3BsdWdpbnMvdGVzdHBsdWdp
bi1vbm5ldy1vbnBhaW50Lmh0bWwgWyBTa2lwIF0KIHBsYXRmb3JtL21hYy9wbHVnaW5zL2NvbnZl
cnQtcG9pbnQuaHRtbCBbIFNraXAgXQorCit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdGlvbi1zeW5jLmh0bWwgWyBTa2lwIF0gIyBUaW1lb3V0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kOWNhN2RjMThlOWU4ZDZjMDI1NzYyNTM4ODE5ZDNjY2RmNGRk
YTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVw
YWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworCisocmVwYWlu
dCByZWN0cworICAocmVjdCAxIDM3IDc5OCAzMikKKyAgKHJlY3QgOCA0NCA3ODQgMTgpCisgIChy
ZWN0IDEgNTEgNzk4IDE4KQorICAocmVjdCAxIDQ0IDc5OCA3KQorKQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQt
Y2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBlMDJjMDkyYmE1
MzNiNmU2ZDA2ZTIyMDg2ODNjNDFlMzRiODkyODI0Li41MDIzNTFhYjcwMzRlODVkYmUwNDRhNjFl
NTY2OTFhNGE1MjY0MzA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1j
aGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBn
YXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0
aGF0IGZpeGVkIGVsZW1lbnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2ls
bCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVk
IGNvcnJlY3RseS4NCiANCiANCi0ocmVwYWludCByZWN0cw0KLSAgKHJlY3QgMCAwIDEwMCAxMDAp
DQotKQ0KIA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggNWE5
MzRmNDczN2ZlNWY5ZmYxNjU0ZWE3YTJiMTMyZmY3ZWIyYjVjNy4uZmM1NTk1OTdlZWEwZTkyMGQx
OTVhZDI3NThhMDkyN2YxYjI2MjUxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBl
Y3RlZC50eHQKQEAgLTgsNyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFp
bnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM5IDE4IDgzKQotKQotCisocmVw
YWludCByZWN0cyAocmVjdCA3NzQgMzkgMTggODMpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVu
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4
dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCAwYTc3MWQ0Njlh
MWRiMGQ0YzdjNjdmNTUwNWE1ZWUyN2ViOWYwMzVlLi40MTkwNDAzODgzNTY1MTc0ODY2ZjMwODMx
ZTFiZDBhNWZlMTBkNjhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFz
dC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUg
Z3JlZW4gYmFja2dyb3VuZAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5NyAxOCkK
LSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgOCAxNiAxOTcgMTgpICkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444286</attachid>
            <date>2021-11-15 11:50:22 -0800</date>
            <delta_ts>2021-11-17 08:52:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20211115205020.patch</filename>
            <type>text/plain</type>
            <size>41916</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJiZDhkZjg2NGFhNzZm
MzFjN2JlNWI0MTZhODNkNTI4OGYzZDkyOC4uMGUyMzdjNDQzNGRlNmFlNDRjNDgwYmU2NTQ1ZTMz
YWQ1MWM5YTE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMTEtMTEgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1mbGV4Ym94
XSBBZGQgZmxleC1iYXNpczogY29udGVudCBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDkxZDFjZjJkZjY1MTJmYjVlZDM1ZmQwZGIwYTNiOTdh
ZTVlM2RhOTcuLjc3NDY3YjcwMjQ5YTM2NWEwMGU5NmExZTU1OTI2NGU2ZDgzZjVlMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTMsNiArNDUzLDEx
IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZp
ZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgaWYgKCEob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1
bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250
YWlucyhTbW9vdGhTY3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2
aW9yOjpJbnN0YW50LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBS
ZXZlYWxFeHRlbnRPcHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9u
OjpSZXZlYWxFeHRlbnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsK
QEAgLTQ2MSwxMyArNDY2LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQog
Ci1zdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1
bWVudCYgZG9jdW1lbnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBl
YXJhbmNlTm93KCkKIHsKKyAgICBSZWYgZG9jdW1lbnQgPSAqbV9kb2N1bWVudDsKICNpZiBFTkFC
TEUoVEVYVF9DQVJFVCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CiAjZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAg
ICBkb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVu
ZGluZ1NlbGVjdGlvblVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rp
b25BZnRlclVwZGF0ZSByZXZlYWxNb2RlKQpAQCAtMTY2Nyw3ICsxNjc1LDcgQEAgSW50UmVjdCBG
cmFtZVNlbGVjdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsK
ICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBk
YXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVw
ZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsK
ICAgICBpZiAoaW5zaWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNp
ZGVQb3NpdGlvbkZpeGVkOwpAQCAtMjIyMyw3ICsyMjMxLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2V0Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRV
cGRhdGUKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3Vz
IGxheW91dCBoZXJlLgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRl
QXBwZWFyYW5jZTo6WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5
VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0
aW9uQXBwZWFyYW5jZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1f
Y2FyZXRQYWludCkgewpAQCAtMjMzMSw3ICsyMzM5LDcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0
aW9uOjpzZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNv
bnQKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAK
LSAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7
CisgICAgY29uc3RfY2FzdDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlzKS51cGRhdGVTZWxlY3Rpb25B
cHBlYXJhbmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQtPnJlbmRl
clZpZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0
KCk7CkBAIC0yNDI3LDYgKzI0MzUsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxl
Y3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgIGlm
IChpc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFy
YW5jZU5vdygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRlRml4ZWQg
PSBmYWxzZTsKICAgICBpZiAoaXNDYXJldCgpKQpAQCAtMjQ5OCw2ICsyNTA4LDE0IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dC
bG9ja0N1cnNvcikKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKK3ZvaWQgRnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCkKK3sK
KyAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSB8fCBtX3NlbGVjdGlvblJldmVhbE1v
ZGUgPT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAgICAgIHJldHVybjsK
KyAgICBtX2RvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
KyAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7Cit9CisKIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpCiB7CiAgICAgbV9hcHBlYXJhbmNl
VXBkYXRlVGltZXIuc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5o
CmluZGV4IGVkYWNiNjNjYmViZDNhM2U5M2QzZDBmMWY5NzM5ZWFiYWY3Zjc2NTIuLjUzMTRlMzE5
MjUxNzRiZmFmMTg3NTRkYTBkN2QzNGE3YzkxNTFlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTE0OSw2ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBjbGVhcigpOwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21GcmFtZSgp
OwogCisgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRl
ZCgpOwogICAgIHZvaWQgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CiAgICAgdm9pZCBz
Y2hlZHVsZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7CiAKQEAgLTI2NSw2ICsy
NjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgp
OwogCiBwcml2YXRlOgorICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwog
ICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgUmV2ZWFs
RXh0ZW50T3B0aW9uID0gUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogICAgIHZv
aWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA0ODhlZDY0OGM0MjA5ZDcw
M2ViYWI2Y2YzZDc0OGQzMzU2ZGYwMjBmLi40ZTk5NzExNTM4NGE3NThjNjllZmJkYjU3NTgyNmY4
MWUyNWVhMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFt
ZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxEYXRh
TGlzdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCkBAIC00OTIs
NiArNDkzLDcgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpmb2N1c0FuZFNob3dWYWxp
ZGF0aW9uTWVzc2FnZSgpCiAKICAgICAvLyBDYWxsaW5nIGZvY3VzKCkgd2lsbCBzY3JvbGwgdGhl
IGVsZW1lbnQgaW50byB2aWV3LgogICAgIGZvY3VzKCk7CisgICAgUmVmIHsgZG9jdW1lbnQoKSB9
LT5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRl
ZCgpOwogCiAgICAgLy8gZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXcg
YW5kIHRoaXMgc2Nyb2xsIG1heSBoYXBwZW4gYXN5bmNocm9ub3VzbHkuCiAgICAgLy8gQmVjYXVz
ZSBzY3JvbGxpbmcgdGhlIHZpZXcgaGlkZXMgdGhlIHZhbGlkYXRpb24gbWVzc2FnZSwgd2UgbmVl
ZCB0byBzaG93IHRoZSB2YWxpZGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
aW5kZXggN2MzNDliNzA4Mjc0MWRmNzZjZjcxYmNmZGI5MGRhYTA5OGJiYjBhMy4uZTQzZTYzYmZm
MWQ2MTM5YTA4NDA1MWUwN2I4YTJlNzVlMjY1MDNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcApAQCAtNDM1LDcgKzQzNSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpub2RlV2ls
bEJlUmVtb3ZlZChOb2RlJiBub2RlVG9CZVJlbW92ZWQpCiBzdGF0aWMgdm9pZCBzZXRTZWxlY3Rp
b25JZk5lZWRlZChGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb24pCiB7CiAgICAgaWYgKHNlbGVjdGlvbi5zZWxlY3Rpb24oKSAhPSBu
ZXdTZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rp
b24pKQotICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAg
ICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOwogfQogCiBzdGF0aWMg
aW5saW5lIGJvb2wgZGlzcGF0Y2hTZWxlY3RTdGFydChOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKaW5kZXggOGI1NmY0ZjE5NDkyMjBlNWNmMTVhOWUyOTFjZDYwMzlhNDBhMGY5MC4uZWU0ZDAx
ZDNlYTUxOTY1NzM0NjUzYjNjODNiODI3NTlkM2FkZjBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBA
IC0xNjc1LDYgKzE2NzUsMTAgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCkK
ICAgICAgICAgZG9jdW1lbnQuZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgpOwogICAg
IH0pOwogCisgICAgZm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAg
ICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uKCkudXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7
CisgICAgfSk7CisKICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkg
ewogICAgICAgICBkb2N1bWVudC51cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNjU0MjFhZWQzOWExMzgyMzEyM2NjMmY1NzhmOGM1YTFlZDFlNWUyLi4zMTFjZmYz
MTkyNjUzNjk3ZmJlYjgyYzlhN2YyMGY0YjA4ZWExMTc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAK
KzIwMjEtMTEtMDIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUmVsZWFzZSBhc3NlcnQgaW4gRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpIHZpYSBI
VE1MVGV4dEFyZWFFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMgb3V0IG9mIHRoZSB0
ZXh0LWJhc2VkLXJlcGFpbnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24gaXMgbm93IHVwZGF0
ZWQKKyAgICAgICAgYW5kIHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRoZSBjYXNlIG9mIG5v
bi11c2VyIHRyaWdnZXJlZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAgIGJ5
IHRoZSB0aW1lIHRoZSByZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1cGRhdGUgaGFzIG5v
dCBoYXBwZW5lZCB5ZXQuIFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3RzIHdlcmUgbW9kaWZp
ZWQgc28gdGhhdCB3ZSB3YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMuCisKKyAgICAgICAg
U2FtZSBzaXR1YXRpb24gZm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90IGludm9sdmUgcmVwYWlu
dCByZWN0cyBidXQgdHJpZ2dlciBhY2Nlc2liaWxpdHkKKyAgICAgICAgdHJlZSB1cGRhdGVzLiBX
ZSBtdXN0IGVuc3VyZSB0aGF0IHdlIGxldCB0aGUgbm90aWZpY2F0aW9uIGJlIHRocm93biBiZWZv
cmUgY2hlY2tpbmcgd2hldGhlciBvcgorICAgICAgICBub3QgaGFzIGJlZW4gZW1pdGVkLiBBcyBp
dCdzIGRvbmUgYXN5bmNocm9ub3VzbHkgd2UgbXVzdCBsZXQgdGhlIG1haW4gdGhyZWFkIHJ1biBi
ZWZvcmUgY2hlY2tpbmcuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24t
Ym91bmRhcnktdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMv
c2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgorICAgICAgICAq
IGZhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5o
dG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1
dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUt
Y2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWw6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBl
Y3RlZC50eHQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy1jYXRhbGluYS13azEvZmFzdC9yZXBhaW50L2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNy
b25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdr
MS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24t
c3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9m
YXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorCiAyMDIxLTExLTExICBT
ZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3Mt
ZmxleGJveF0gQWRkIGZsZXgtYmFzaXM6IGNvbnRlbnQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0
bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNl
cmluZm8uaHRtbAppbmRleCA4YmQ5MTk1NGIyZDhmZGM5MTQyMDA4MjlkMThlMWRiMzdjYWVmM2Jh
Li5iYTYyNjg5ZjYwZWJjODVhNmFhYjIyODE2MDQwMmNlOGE4MTI0MzU0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRh
cnktdXNlcmluZm8uaHRtbApAQCAtMTYyLDIwICsxNjIsMjkgQEAKICAgICAgICAgdmFyIGFkZGVk
Tm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRp
b25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVl
Iik7CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94
Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKLQotICAgICAgICBtb3ZlKHRydWUpOwotCi0g
ICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQiKTsKLSAgICAg
ICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlvbiB3YWl0Rm9yQW5pbWF0aW9uRnJh
bWUoKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJl
amVjdCkgeworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpOworICAg
ICAgICAgIH0pOworICAgICAgICB9CiAKLSAgICAgICAgbW92ZShmYWxzZSk7CisgICAgICAgIGZ1
bmN0aW9uIGZvY3VzRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICBlbGVtZW50LmZvY3Vz
KCk7CisgICAgICAgICAgcmV0dXJuIHdhaXRGb3JBbmltYXRpb25GcmFtZSgpOworICAgICAgICB9
CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0YXJlYSIp
OwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIG1vdmVBc3luYyhp
c1ZlcnRpY2FsKSB7CisgICAgICAgICAgbW92ZShpc1ZlcnRpY2FsKTsKKyAgICAgICAgICByZXR1
cm4gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAgIH0KIAotICAgICAgICBtb3ZlKHRy
dWUpOworICAgICAgICBmb2N1c0VsZW1lbnQoInRleHRib3giKQorICAgICAgICAgIC50aGVuKCgp
ID0+IG1vdmVBc3luYyh0cnVlKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBmb2N1c0VsZW1lbnQo
ImlucHV0IikpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZUFzeW5jKGZhbHNlKSkKKyAgICAg
ICAgICAudGhlbigoKSA9PiBmb2N1c0VsZW1lbnQoInRleHRhcmVhIikpCisgICAgICAgICAgLnRo
ZW4oKCkgPT4gbW92ZUFzeW5jKHRydWUpKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5m
by5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11
c2VyaW5mby5odG1sCmluZGV4IGUxZWJkZWMwMjc0Mjg2OTk2NWM1Y2RkZGM2MTBmNmJiZDhlYjJh
ZGYuLmU4ZDRlYzE2MzNkOTQ0OTc1YjljODU3MDVlM2ViZTRlYTVmNmE2YjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwKQEAgLTE5NSwxOSArMTk1LDg1IEBACiAgICAgICAgIHNob3VsZEJlKCJh
ZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKICAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKIAog
ICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsK
LSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92
ZSIsICJmb3J3YXJkIiwgZ3JhbltpXSk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJi
YWNrd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGZvY3VzVGV4dEJveCgpIHsK
KyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgdGV4dGJveC5m
b2N1cygpOworICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9LCAwKTsKKyAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorCisJZnVuY3Rpb24gbW92ZVNlbGVjdGlvbihkaXJlY3Rp
b24sIGdyYW51bGFyaXR5KSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkp
OworICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgIH0sIDApOworICAgICAg
ICAgIH0pOwogICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAgICAg
ICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJl
eHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGV4dGVuZFNl
bGVjdGlvbihncmFudWxhcml0eSkgeworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbnVs
YXJpdHkpOworICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgIH0sIDApOwor
ICAgICAgICAgIH0pOwogICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVzZXRQb3NpdGlv
bigpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgICAgICAgICAgICAgIHMuc2V0
UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
ICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9j
dXNUZXh0Qm94KCkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAg
ICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMF0pKQorICAg
ICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblswXSkpCisg
ICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMV0pKQor
ICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblsxXSkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMl0p
KQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhblsy
XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5b
M10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jh
blszXSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdy
YW5bNF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwg
Z3Jhbls0XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIs
IGdyYW5bNV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJk
IiwgZ3Jhbls1XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9yd2Fy
ZCIsIGdyYW5bNl0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJhY2t3
YXJkIiwgZ3Jhbls2XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigiZm9y
d2FyZCIsIGdyYW5bN10pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24oImJh
Y2t3YXJkIiwgZ3Jhbls3XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gbW92ZVNlbGVjdGlvbigi
Zm9yd2FyZCIsIGdyYW5bOF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IG1vdmVTZWxlY3Rpb24o
ImJhY2t3YXJkIiwgZ3Jhbls4XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlv
bigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzBdKSkKKyAg
ICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkg
PT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMV0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0
UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhblsy
XSkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50
aGVuKCgpID0+IGV4dGVuZFNlbGVjdGlvbihncmFuWzNdKSkKKyAgICAgICAgICAudGhlbigoKSA9
PiByZXNldFBvc2l0aW9uKCkpCisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9u
KGdyYW5bNF0pKQorICAgICAgICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAg
ICAgICAudGhlbigoKSA9PiBleHRlbmRTZWxlY3Rpb24oZ3Jhbls1XSkpCisgICAgICAgICAgLnRo
ZW4oKCkgPT4gcmVzZXRQb3NpdGlvbigpKQorICAgICAgICAgIC50aGVuKCgpID0+IGV4dGVuZFNl
bGVjdGlvbihncmFuWzZdKSkKKyAgICAgICAgICAudGhlbigoKSA9PiByZXNldFBvc2l0aW9uKCkp
CisgICAgICAgICAgLnRoZW4oKCkgPT4gZXh0ZW5kU2VsZWN0aW9uKGdyYW5bN10pKQorICAgICAg
ICAgIC50aGVuKCgpID0+IHJlc2V0UG9zaXRpb24oKSkKKyAgICAgICAgICAudGhlbigoKSA9PiBl
eHRlbmRTZWxlY3Rpb24oZ3Jhbls4XSkpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxl
Y3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggZWU5ZTBhODA1
YTU5MWE4MWIyMTZhNWVhNThlOGY0ODAyNmI1YTBkYi4uOWU1MTg1ZmExNTc1MmM2ZTU1MGJmMmYy
YTdiMjRkMjk2MWYyOWUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1h
cmlhLXRleHRib3guaHRtbApAQCAtNDMsMTIgKzQzLDE1IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAg
ICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93
LmdldFNlbGVjdGlvbigpOwogICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAg
ICAgICBmb3IgKHZhciBrID0gMDsgayA8IDM7IGsrKykgeworICAgICAgICBzLm1vZGlmeSgibW92
ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoKCkgPT4gewogICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFy
YWN0ZXIiKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgot
ICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8g
Iik7CisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAg
ICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAg
ICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5o
dG1sCmluZGV4IDczNGNkY2IwNmEzNjM2NjNiNWQwOTEwMDE0ZmQ2NjRiMjVhNTQwZTguLmU0MmU0
M2JhMmIyZjc0NTQ0ZTI5YjVlNmRkNzYxMzk4YTRjYzcxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5o
dG1sCkBAIC0xNSwxMyArMTUsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdGEuZm9jdXMoKTsK
ICAgICAvLyBjbGljawogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICAgICAgaWYgKHRhLnNl
bGVjdGlvbkVuZCA9PSAxNykKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNj
ZWVkZWQiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3Qg
RmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5kOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+
IHsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7CisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKKyAgICAgICAgICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0gMTcpCisgICAgICAg
ICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQg
aXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICByZXMuaW5uZXJIVE1M
ID0gIlRlc3QgY2FuJ3QgcnVuIHdpdGhvdXQgZXZlbnQgc2VuZGVyIChwYXJ0IG9mIER1bXBSZW5k
ZXJUcmVlKS4gIgogICAgICAgICAgICAgKyAiVG8gdGVzdCBtYW51YWxseSwgY2xpY2sgYXQgdGhl
IG1pZGRsZSBvZiB0aGUgbGluZSBtYXJrZWQgOSBhbmQgY2hlY2sgdGhhdCB0aGUgY2FyZXQgYXBw
ZWFycyBhZnRlciB0aGUgOS4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDNhYmIwZjcwODlhM2YzYmNiYzZhYWRmNjlmNzNkNzc3YmY3OWUzMGEuLmFjZWE1NGUwNTBk
ZjVkMmE3NzVhOWQ5OWQ5YjAxZjcwNjZiYTVhODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1l
eHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRv
bid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFi
c29sdXRlIGVsZW1lbnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBi
ZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNv
cnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQor
KHJlcGFpbnQgcmVjdHMgKHJlY3QgMCAwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCmlu
ZGV4IDdkNDdkMTI1OTFkOWJjOWZhMTIxNjkxZDBlNzQwZjlhZWRiM2Y0NzAuLmU3ODMyZDJiNGEx
MTRlZmEzMjdkODM1YjZlNmM1ZTYyYmMxOTQxYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAt
MSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4K
LSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgp
CiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVy
bmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5z
ZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAg
ICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3Rz
QXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRz
KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAg
ICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8
ZGl2PgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJy
Lz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4K
IDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50
eHQKaW5kZXggZGIzYzM3NDE2NTZiMTc3OGM5MTQwZjcxNTRhZTg3YzU4MDZjNDZiNC4uOTc5ZWZh
MzllNTUwY2MyZTMyNTQ2MzEzMjlhOTEyYjdlZjU4ZjI5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxp
cHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEw
MDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3Jt
cwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJl
IGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBp
ZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBh
aW50IHJlY3RzCi0gIChyZWN0IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVj
dCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4
IDFiNjFlYmYyZDUwYjNhNGYwZDAyMzg5MTYxNjQ0MTdmZTI4ZTU2YTcuLjk4N2QxMzU1YTZkOWE2
MjZmYjc0NWE5MWZmODljNzJhOWU4OTYzNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNo
aWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVu
UmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0
U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGlu
ZywgMCk7CisKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxz
LnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJh
Y2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgIH0pOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICsz
Nyw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJs
Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVk
OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+
PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBl
Y3RlZC50eHQKaW5kZXggYjdjMzA5N2M2YjE3NjE2ZTJmNWQ3NGU5OGI3ZTk4NTk3MWE0NWEzMS4u
NWNjOTYxNWQxZTMwZDg3NjA5ZGE0OWIzNzMzZGIwNWU5ZTQ2MTE3MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUt
Y2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsy
LDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkg
d2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBn
ZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJl
IGNvbXBsZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNv
cnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQotKQot
CisocmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1j
aGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxN2VkMzViMWExNTg1MTA5Mjc2ZjlkYmVm
MDY4NDYzNjNlNDYwMTZmLi4wZDA3ODFkYzZlNWFlODgwODEyNjUzMmVkN2VlMzg4YTVjOWVkNWY4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFu
c2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEg
KzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAg
ZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAg
IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMu
c3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcj
cmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4
dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwogICAgIH0K
ICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdiBz
dHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAg
ICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAx
MDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIv
PgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCA4
ZGJlZDQ0OWJiOWVhZWNjZmQ2NjM4Yjc1NzZiYWRiOGJiMDQzYzQ1Li5jNWEzMTI4ZWE5MTljYzNh
MWNkOGMyZjNmNTk5NDlkZTM4YWMyOGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQt
Zml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxl
Y3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMg
dGVzdHMgdGhhdCBmaXhlZCBlbGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUgaW52YWxp
ZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBz
ZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVj
dHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAg
NTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKaW5kZXgg
NzQ1YzU1ZWM3YTljN2Q5OWU1OGM0NWUyYmU2YjRiMjBiODAxNThhMy4uNjY3NjYwODY0OWMzZjY2
NGViMjI1NDYwNWE4NzMxMzYyOTY5MGYwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1j
aGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1
blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdl
dFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxp
bmcsIDApOworCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFs
cy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRy
YWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9KTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCAr
MzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBw
eCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1j
b2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBmaXhlZDsi
Pjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9k
aXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggODYx
MjMyNmRmOGZhMTQ4MDE3YmMzYTRlNWY5NjU4NjUwYzJmOWRiZi4uYjE5OTJhOTEwZGVkZDFjMGRk
OWE1ZTI0NDRmYzg2ZTlmNDY3YjY1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVk
LnR4dApAQCAtMiw2ICsyLDUgQEAgQQogQQogKHJlcGFpbnQgcmVjdHMKICAgKHJlY3QgOCA2OCAy
MCAxMDApCi0gIChyZWN0IDggNjggMjAgMTAwKQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAppbmRleCA5NTkx
NWU2NjAwZjEyNTVjYmY2ZjIzOWY5ODY0OWQ3OThhMzc2MDQxLi40ZTdjMDkyNDM0NjdjZDc5MTUz
NGU1ZmIxMmEwZTE4NTM1N2Y1NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw0IEBAIFRl
c3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGlu
ZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJv
dGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBo
aXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFpbnQgcmVjdHMKLSAg
KHJlY3QgNzc0IDM4IDE4IDc5KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA3NzQgMzggMTgg
NzkpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVi
eS1ybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0
bWwKaW5kZXggMDI3ODQ0MGExZmI3MjQ0NDJkOTY0MjkyOGVhMmViMzIzOTNjY2EyMS4uYTBhYjQ1
ZTU2MjQ1YTQ4YTkxYTMyNjkzODQxMDU0ZjI5MjZkZjkyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKQEAgLTMsNyArMywxNSBAQAogPGhl
YWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpIHsKKyAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdS
ZXBhaW50cygpOworCiAgICAgaWYgKGV2ZW50U2VuZGVyKSB7CiAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKDc5MCwgNDApOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsK
QEAgLTExLDYgKzE5LDE2IEBAIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewogICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDEyMCk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKICAgICB9CisKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFp
bnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFp
bnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9KTsKIH0KIDwvc2NyaXB0Pgog
CkBAIC0yNiw0ICs0NCw1IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLjxicj4KKzxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxv
dy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2Vs
ZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYmQ5ZjU4OWY5Y2NkOWM2
NzQ4MjUxM2E3NDY2ZmNmYmJmZjdkMTk2OC4uZTJkM2U1OTdmZGQyYjFmYjY0NGE1ZTM5YmFiMzVj
Y2E0ZTZjYjBkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2Vs
ZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAg
LTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJl
Y3RzCi0gIChyZWN0IDggMTYgMTk5IDE4KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2
IDE5OSAxOCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2Vs
ZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCmluZGV4IGJjYzllMzRkMTc3ODBlMDE2
MDBlNTU4M2JjYWFiMWIwMjNhMTYyNjAuLmIzZGQxMDJkZGEwYTYzMGZiMjkwOGFhOWE5MGZiMTU2
ZTg3ZjdkMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKQEAgLTEsNSArMSw0IEBACiA8IURP
Q1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50Lmpz
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogPHN0eWxlPgogI3Rlc3QgewogICAg
IGJhY2tncm91bmQtY29sb3I6IHJlZDsKQEAgLTEyLDExICsxMSwzMCBAQAogfQogPC9zdHlsZT4K
IDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blJlcGFpbnRUZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
ICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICBnZXRTZWxl
Y3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRlc3QsIDAsIHRlc3QsIDEpOworCisgICAgICAgIHJl
cXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Jl
cGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQo
KTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9Owog
PC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3QoKSI+CiAgICAgPHAgaWQ9
InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQ8L3A+CisgICAgPGRpdiBpZD0icmVw
YWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjNmJhYjg3NDQwMTkxOTc3ZDAwY2E5NTVmNDlmMTdiOGZmM2Q3NjNjLi5i
OGVlYTQ0MGFhZTA0MWM2ODAyZTZiYTc4ZDY5NGRjNjU5ZWNmMWY0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTY2OCw4ICsxNjY4LDYgQEAgd2Via2l0
Lm9yZy9iLzE1OTE0MyBmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1pbi1ydGwuaHRtbCBb
IEZhaWx1cmUgXQogIyBJbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGV2ZW50U2VuZGVyIGNh
dXNlcyB0aGlzIHRlc3QgdG8gZmFpbAogd2Via2l0Lm9yZy9iLzQyMTk0IGZhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1zZWxlY3QtbGlzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xMzkzNTQgZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgWyBGYWlsdXJl
IF0KLQogIyBNaXNzaW5nIGdseXBoIHN5bWJvbCBpcyBub3QgcmVuZGVyZWQgcHJvcGVybHkuCiB3
ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVybWluZWQtYnktcHJp
bWFyeS1mb250Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDAyNTIgZmFzdC90ZXh0
L2RlY29yYXRpb25zLXdpdGgtdGV4dC1jb21iaW5lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynkt
cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM1NTk1OTdlZWEwZTky
MGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi5Tb21lIHJ1YnkKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgNzc0IDM5IDE4IDgzKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYTBhZTQ1NjBkZmEzZDY2MTI1
Y2YwZDQwMzA1MmRiMDgwNWU3MzgxMC4uMGZhNWRkYTVkNDIyYTY0MmFlYTFkYWE3NGU5ZDhlODAx
YWVjYTUyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ct
aGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJh
Y2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcgMTcpCi0pCi0KKyhy
ZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk3IDE3KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTBiMTEyNmY0MWExZGI4YzMwZDg5NTZh
NjNhMzQ5Y2Y5ZjFlZmQ0Zi4uMGFjN2YyZmFhYTgwZjY0NzdiNDM1MDk0NzY4NTdhMTQ5YWRlZTU5
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTUyMCwzICsxNTIwLDYgQEAgd2Via2l0Lm9yZy9iLzIzMzAwOCBbIERlYnVnIF0gaHR0cC90
ZXN0cy9jc3MvZmlsdGVycy1vbi1pZnJhbWVzLXRyYW5zZm9ybS5odG1sIFsKIAogIyBEdW1wUmVu
ZGVyVHJlZSBkb2Vzbid0IGludm9rZSBpbnNwZWN0b3IgaW5zdHJ1bWVudGF0aW9uIHdoZW4gcmVw
YWludGluZy4KIHdlYmtpdC5vcmcvYi8yMzI4NTIgaW5zcGVjdG9yL3BhZ2Uvc2V0U2hvd1BhaW50
UmVjdHMuaHRtbCBbIFNraXAgXQorCit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQu
b3JnL2IvMjMyNjMwIGZhc3QvZm9ybXMvYXV0b2ZvY3VzLW9wZXJhLTAwMy5odG1sIFsgRmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxp
dHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5
L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjgzNzljYzE4ZTIwYjUyMjkyMmNjZTYyYWM5Y2YyNjQx
Y2Q0ZjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9h
Y2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90
LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKKyAxCisgMgorVGhpcyB0
ZXN0cyB0aGF0IGNhbGxpbmcgZm9jdXMgb24gYSByZW5kZXIgb2JqZWN0IHdoZW4gaXQgZG9lc24n
dCByZXN1bHQgaW4gYSBzZWxlY3Rpb24gY2hhbmdlIHdvbid0IGxlYXZlIGlzU3luY2hyb25pemlu
Z1NlbGVjdGlvbiBzZXQgdG8gdHJ1ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5mb2N1c2VkRWxlbWVudC5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vz
c2libGVFbGVtZW50QnlJZCgiMSIpKSBpcyB0cnVlCitQQVNTIGF4VGV4dFN0YXRlU3luY09uZSBp
cyB1bmRlZmluZWQKK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCIxIikuaXNGb2N1c2FibGUgaXMgdHJ1ZQorUEFTUyBheFRleHRTdGF0ZVN5bmNUd28g
aXMgdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Jl
cGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmYwMTBmYWM0
NjI3ZTMxNDUxZjE0MWEzODUxYjQ2MjY2ZDdkMjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNCBAQAorCisKKworKHJlcGFpbnQgcmVjdHMKKyAgKHJlY3QgMSAxOSAxNSAz
MikKKyAgKHJlY3QgOCAyNiAxIDE4KQorICAocmVjdCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2
IDEgMTgpCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJl
Y3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcpCispCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzQwZjQ4Y2UzMzNkMWY4MDE4M2QyYTY3
NDJiNTBiYWQ3M2ZmMTNkNy4uNGI0OTY2Y2VjNmMyMDI1NGE2MTQ3ODYxMjZhMTNlZGU4ZmVkZDI2
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI0Mjgs
MyArMjQyOCw1IEBAIHdlYmtpdC5vcmcvYi8yMzE5MjQgaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3Nz
LXByb3BlcnR5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogIyBGSVhNRTogUmVtb3ZlIHRoZXNlIHRl
c3RzLgogcGxhdGZvcm0vbWFjL3BsdWdpbnMvdGVzdHBsdWdpbi1vbm5ldy1vbnBhaW50Lmh0bWwg
WyBTa2lwIF0KIHBsYXRmb3JtL21hYy9wbHVnaW5zL2NvbnZlcnQtcG9pbnQuaHRtbCBbIFNraXAg
XQorCit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1zeW5j
Lmh0bWwgWyBTa2lwIF0gIyBUaW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
OWNhN2RjMThlOWU4ZDZjMDI1NzYyNTM4ODE5ZDNjY2RmNGRkYTE4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACisKKworCisocmVwYWludCByZWN0cworICAocmVjdCAxIDM3
IDc5OCAzMikKKyAgKHJlY3QgOCA0NCA3ODQgMTgpCisgIChyZWN0IDEgNTEgNzk4IDE4KQorICAo
cmVjdCAxIDQ0IDc5OCA3KQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVk
LWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBlMDJjMDkyYmE1MzNiNmU2ZDA2ZTIyMDg2ODNjNDFl
MzRiODkyODI0Li41MDIzNTFhYjcwMzRlODVkYmUwNDRhNjFlNTY2OTFhNGE1MjY0MzA4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKQEAg
LTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29y
cmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1lbnRzIGFy
ZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4g
aWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4NCiANCiANCi0o
cmVwYWludCByZWN0cw0KLSAgKHJlY3QgMCAwIDEwMCAxMDApDQotKQ0KIA0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggNWE5MzRmNDczN2ZlNWY5ZmYxNjU0ZWE3
YTJiMTMyZmY3ZWIyYjVjNy4uZmM1NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2YxYjI2MjUx
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw0
IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgog
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFpbnQgcmVj
dHMKLSAgKHJlY3QgNzc0IDM5IDE4IDgzKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA3NzQg
MzkgMTggODMpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3Jl
cGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ct
aGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCAwYTc3MWQ0NjlhMWRiMGQ0YzdjNjdmNTUwNWE1ZWUy
N2ViOWYwMzVlLi40MTkwNDAzODgzNTY1MTc0ODY2ZjMwODMxZTFiZDBhNWZlMTBkNjhlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0
ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAogCi0o
cmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5NyAxOCkKLSkKLQorKHJlcGFpbnQgcmVjdHMg
KHJlY3QgOCAxNiAxOTcgMTgpICkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444528</attachid>
            <date>2021-11-17 08:52:51 -0800</date>
            <delta_ts>2022-05-11 16:35:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20211117175249.patch</filename>
            <type>text/plain</type>
            <size>42147</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhjOTc2NjFjMjU2ZGM1
ODRlZGJjNDY1ZGUwYzE1MThmYzIyZDI2MC4uYjQyNzg0YjM5MmVjMTcwNjMyNGEwZWYyODhhOTA3
ODBiN2VhYWRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeGVjdXRpbmcgc29tZSBlZGl0aW5nIGNvbW1hbmRzIGluIGEgdGV4dCBhcmVh
IG1pZ2h0IGZvcmNlIHRoZSByZWNvbXB1dGF0aW9uIG9mIHRoaW5ncworICAgICAgICBsaWtlIGNh
cmV0IG9yIHRoZSB2aXNpYmxlIHNlbGVjdGlvbiBwb3NpdGlvbiBhbmQgZXh0ZW50LiBVbmRlciBz
b21lIGNpcmN1bXN0YW5jZXMgKGxpa2UKKyAgICAgICAgd2hlbiB0aGUgdGV4dCBhcmVhIGhhcyBu
byBjb250ZW50IGFuZCBjaGlsZHJlbikgd2UgbWlnaHQgZW5kIHVwIHRyeWluZyB0byB1cGRhdGUg
bGF5b3V0CisgICAgICAgIHdoZW4gaXQgaXMgbm90IHNhZmUgYXMgYSBzaWRlIGVmZmVjdCBvZiB1
cGRhdGluZyB0aGUgY2FyZXQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4IHRoYXQsIHdlIGNh
biBzd2l0Y2ggdG8gYSBtb2RlbCBpbiB3aGljaCB3ZSB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhc3lu
Y2hyb25vdXNseQorICAgICAgICBpbiB0aGUgY2FzZSBvZiBoYXZpbmcgYSBub24tdXNlciB0cmln
Z2VyZWQgY2hhbmdlLiBUaGF0IHdheSB3ZSBkb24ndCBkbyBpdCBpbnNpZGUKKyAgICAgICAgYSBy
ZXN0cmljdGVkIGxheW91dCBzY29wZS4KKworICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAg
ICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3Qg
bmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVk
IHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNv
bHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNv
bnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2Vs
ZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVj
dGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvY3VzQW5k
U2hvd1ZhbGlkYXRpb25NZXNzYWdlKTogQ2FsbCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdT
ZWxlY3Rpb25Jc05lZWRlZCgpCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmlnZ2Vy
ZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6IENh
bGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjEtMTEtMTcgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01vZGVsXSBDcmVhdGUgaU9T
IE1vZGVsUGxheWVyIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCmluZGV4IDkxZDFjZjJkZjY1MTJmYjVlZDM1ZmQwZGIwYTNiOTdhZTVlM2Rh
OTcuLjc3NDY3YjcwMjQ5YTM2NWEwMGU5NmExZTU1OTI2NGU2ZDgzZjVlMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTMsNiArNDUzLDExIEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxh
eW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKCEob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBl
YXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhT
bW9vdGhTY3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJ
bnN0YW50LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxF
eHRlbnRPcHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZl
YWxFeHRlbnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2
MSwxMyArNDY2LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0
aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYg
ZG9jdW1lbnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNl
Tm93KCkKIHsKKyAgICBSZWYgZG9jdW1lbnQgPSAqbV9kb2N1bWVudDsKICNpZiBFTkFCTEUoVEVY
VF9DQVJFVCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAjZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBkb2N1
bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVuZGluZ1Nl
bGVjdGlvblVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rpb25BZnRl
clVwZGF0ZSByZXZlYWxNb2RlKQpAQCAtMTY2Nyw3ICsxNjc1LDcgQEAgSW50UmVjdCBGcmFtZVNl
bGVjdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsKICAgICBp
ZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBkYXRlU2Vs
ZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVwZGF0ZVNl
bGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsKICAgICBp
ZiAoaW5zaWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNpZGVQb3Np
dGlvbkZpeGVkOwpAQCAtMjIyMyw3ICsyMjMxLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRVcGRhdGUK
IAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3VzIGxheW91
dCBoZXJlLgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRlQXBwZWFy
YW5jZTo6WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRp
bmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBw
ZWFyYW5jZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1fY2FyZXRQ
YWludCkgewpAQCAtMjMzMSw3ICsyMzM5LDcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9uOjpz
ZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQKICAg
ICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAKLSAgICB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAg
Y29uc3RfY2FzdDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlzKS51cGRhdGVTZWxlY3Rpb25BcHBlYXJh
bmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQtPnJlbmRlclZpZXco
KTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CkBA
IC0yNDI3LDYgKzI0MzUsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24o
U2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgIGlmIChpc05v
bmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5v
dygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRlRml4ZWQgPSBmYWxz
ZTsKICAgICBpZiAoaXNDYXJldCgpKQpAQCAtMjQ5OCw2ICsyNTA4LDE0IEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dCbG9ja0N1
cnNvcikKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCkKK3sKKyAgICBp
ZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSB8fCBtX3NlbGVjdGlvblJldmVhbE1vZGUgPT0g
U2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAgICAgIHJldHVybjsKKyAgICBt
X2RvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICB1
cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7Cit9CisKIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpCiB7CiAgICAgbV9hcHBlYXJhbmNlVXBkYXRl
VGltZXIuc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4
IGVkYWNiNjNjYmViZDNhM2U5M2QzZDBmMWY5NzM5ZWFiYWY3Zjc2NTIuLjUzMTRlMzE5MjUxNzRi
ZmFmMTg3NTRkYTBkN2QzNGE3YzkxNTFlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmgKQEAgLTE0OSw2ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBjbGVhcigpOwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21GcmFtZSgpOwogCisg
ICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpOwog
ICAgIHZvaWQgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CiAgICAgdm9pZCBzY2hlZHVs
ZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7CiAKQEAgLTI2NSw2ICsyNjYsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwogCiBw
cml2YXRlOgorICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHZv
aWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgUmV2ZWFsRXh0ZW50
T3B0aW9uID0gUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogICAgIHZvaWQgdXBk
YXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA0ODhlZDY0OGM0MjA5ZDcwM2ViYWI2
Y2YzZDc0OGQzMzU2ZGYwMjBmLi40ZTk5NzExNTM4NGE3NThjNjllZmJkYjU3NTgyNmY4MWUyNWVh
MjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCkBAIC00OTIsNiArNDkz
LDcgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpmb2N1c0FuZFNob3dWYWxpZGF0aW9u
TWVzc2FnZSgpCiAKICAgICAvLyBDYWxsaW5nIGZvY3VzKCkgd2lsbCBzY3JvbGwgdGhlIGVsZW1l
bnQgaW50byB2aWV3LgogICAgIGZvY3VzKCk7CisgICAgUmVmIHsgZG9jdW1lbnQoKSB9LT5zZWxl
Y3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpOwog
CiAgICAgLy8gZm9jdXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXcgYW5kIHRo
aXMgc2Nyb2xsIG1heSBoYXBwZW4gYXN5bmNocm9ub3VzbHkuCiAgICAgLy8gQmVjYXVzZSBzY3Jv
bGxpbmcgdGhlIHZpZXcgaGlkZXMgdGhlIHZhbGlkYXRpb24gbWVzc2FnZSwgd2UgbmVlZCB0byBz
aG93IHRoZSB2YWxpZGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXgg
N2MzNDliNzA4Mjc0MWRmNzZjZjcxYmNmZGI5MGRhYTA5OGJiYjBhMy4uZTQzZTYzYmZmMWQ2MTM5
YTA4NDA1MWUwN2I4YTJlNzVlMjY1MDNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcApAQCAtNDM1LDcgKzQzNSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpub2RlV2lsbEJlUmVt
b3ZlZChOb2RlJiBub2RlVG9CZVJlbW92ZWQpCiBzdGF0aWMgdm9pZCBzZXRTZWxlY3Rpb25JZk5l
ZWRlZChGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBu
ZXdTZWxlY3Rpb24pCiB7CiAgICAgaWYgKHNlbGVjdGlvbi5zZWxlY3Rpb24oKSAhPSBuZXdTZWxl
Y3Rpb24gJiYgc2VsZWN0aW9uLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQot
ICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIHNl
bGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOwogfQogCiBzdGF0aWMgaW5saW5l
IGJvb2wgZGlzcGF0Y2hTZWxlY3RTdGFydChOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5k
ZXggOGI1NmY0ZjE5NDkyMjBlNWNmMTVhOWUyOTFjZDYwMzlhNDBhMGY5MC4uZWU0ZDAxZDNlYTUx
OTY1NzM0NjUzYjNjODNiODI3NTlkM2FkZjBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjc1
LDYgKzE2NzUsMTAgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCkKICAgICAg
ICAgZG9jdW1lbnQuZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgpOwogICAgIH0pOwog
CisgICAgZm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAg
ZG9jdW1lbnQuc2VsZWN0aW9uKCkudXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CisgICAg
fSk7CisKICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgewogICAg
ICAgICBkb2N1bWVudC51cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKICAgICB9KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBlZDIyYTJmMTExNjhjMWYyZDc4MGRiYjNkODdmYThjMzBlODQxYWI5Li5mYTFkZDJmNzAxMWVl
Njg5ZTNmMzMzZGJiOWQwZjhiMmFkMDE2ODFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEt
MTEtMDIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUmVsZWFzZSBhc3NlcnQgaW4gRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpIHZpYSBIVE1MVGV4
dEFyZWFFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMgb3V0IG9mIHRoZSB0ZXh0LWJh
c2VkLXJlcGFpbnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24gaXMgbm93IHVwZGF0ZWQKKyAg
ICAgICAgYW5kIHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRoZSBjYXNlIG9mIG5vbi11c2Vy
IHRyaWdnZXJlZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAgIGJ5IHRoZSB0
aW1lIHRoZSByZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1cGRhdGUgaGFzIG5vdCBoYXBw
ZW5lZCB5ZXQuIFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3RzIHdlcmUgbW9kaWZpZWQgc28g
dGhhdCB3ZSB3YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMuCisKKyAgICAgICAgU2FtZSBz
aXR1YXRpb24gZm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90IGludm9sdmUgcmVwYWludCByZWN0
cyBidXQgdHJpZ2dlciBhY2Nlc2liaWxpdHkKKyAgICAgICAgdHJlZSB1cGRhdGVzLiBXZSBtdXN0
IGVuc3VyZSB0aGF0IHdlIGxldCB0aGUgbm90aWZpY2F0aW9uIGJlIHRocm93biBiZWZvcmUgY2hl
Y2tpbmcgd2hldGhlciBvcgorICAgICAgICBub3QgaGFzIGJlZW4gZW1pdGVkLiBBcyBpdCdzIGRv
bmUgYXN5bmNocm9ub3VzbHkgd2UgbXVzdCBsZXQgdGhlIG1haW4gdGhyZWFkIHJ1biBiZWZvcmUg
Y2hlY2tpbmcuCisKKyAgICAgICAgTGFzdCBidXQgbm90IGxlYXN0LCBzb21lIG9mIHRoZSB0ZXN0
cyBhcmUgdXNpbmcgc2V0VGltZW91dCgpIGluc3RlYWQgb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCkKKyAgICAgICAgYmVjYXVzZSB0aGUgcmVzdWx0cyB3aXRoIHRoZSBsYXR0ZXIgd2VyZSBub3Qg
YXMgcmVsaWFibGUgdW5kZXIgc3RyZXNzL2RlYnVnIGNvbmRpdGlvbnMuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFy
aWEtdGV4dGJveC5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQt
ZW5kbGluZS1jYXJldC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNv
bHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQt
Y2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFs
aWRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1y
dWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1
YnktcmwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZs
b3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxl
Y3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tcnVieS1ybC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy1jYXRhbGluYS13azEvZmFzdC9yZXBhaW50L2Zv
Y3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9t
YWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhw
ZWN0ZWQudHh0OgorCiAyMDIxLTExLTE3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBVcGRhdGUgd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFy
eS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9u
LWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKaW5kZXggOGJkOTE5NTRiMmQ4ZmRjOTE0MjAwODI5ZDE4
ZTFkYjM3Y2FlZjNiYS4uZDg4ZjUzODVjNmNmOTUxOTZhODA5NGU2Y2YzMjU2YjQ5Mjg4ODc3MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5k
YXJ5LXVzZXJpbmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2Vs
ZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKQEAgLTE2MiwyMCArMTYyLDMxIEBACiAgICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwogICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmlj
YXRpb24iLCAidHJ1ZSIpOwogCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7Ci0KLSAgICAgICAgbW92
ZSh0cnVlKTsKLQotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlu
cHV0Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgZnVuY3Rpb24gd2FpdEZv
ckFuaW1hdGlvbkZyYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0
aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25G
cmFtZShyZXNvbHZlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAKLSAgICAgICAgbW92
ZShmYWxzZSk7CisgICAgICAgIGZ1bmN0aW9uIGZvY3VzRWxlbWVudChlbGVtZW50SWQpIHsKKyAg
ICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwor
ICAgICAgICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JB
bmltYXRpb25GcmFtZSgpOworICAgICAgICB9CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXh0YXJlYSIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7Cisg
ICAgICAgIGZ1bmN0aW9uIG1vdmVBc3luYyhpc1ZlcnRpY2FsKSB7CisgICAgICAgICAgICBtb3Zl
KGlzVmVydGljYWwpOworICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JBbmltYXRpb25GcmFtZSgp
OworICAgICAgICB9CiAKLSAgICAgICAgbW92ZSh0cnVlKTsKKyAgICAgICAgKGFzeW5jIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIGF3YWl0IGZvY3VzRWxlbWVudCgidGV4dGJveCIpOworICAg
ICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKHRydWUpOworICAgICAgICAgICAgYXdhaXQgZm9jdXNF
bGVtZW50KCJpbnB1dCIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKGZhbHNlKTsKKyAg
ICAgICAgICAgIGF3YWl0IGZvY3VzRWxlbWVudCgidGV4dGFyZWEiKTsKKyAgICAgICAgICAgIGF3
YWl0IG1vdmVBc3luYyh0cnVlKTsKKyAgICAgICAgfSkoKTsKICAgICB9CiAKIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby5odG1sCmluZGV4IGUxZWJkZWMwMjc0Mjg2OTk2NWM1Y2RkZGM2MTBm
NmJiZDhlYjJhZGYuLmJiM2M4NmNmYzhhOTdhMGM2Yzg3ZTc5MGI1NTNmODA5ZjVhODk3ZjIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rp
b24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTE5NSwxOSArMTk1LDg3IEBACiAgICAgICAgIHNo
b3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKICAgICAgICAgdGV4dGJveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9j
dXMoKTsKIAogICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2
YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0
Ym94LCAwKTsKLSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLm1v
ZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgZ3JhbltpXSk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgi
bW92ZSIsICJiYWNrd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGZvY3VzVGV4
dEJveCgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZl
KCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIG1vdmVTZWxlY3Rpb24oZGlyZWN0aW9uLCBncmFudWxhcml0eSkg
eworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAg
ICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAg
ICAgICAgIH0pOwogICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAg
ICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgICAgIHMubW9kaWZ5
KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGV4dGVu
ZFNlbGVjdGlvbihncmFudWxhcml0eSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9y
d2FyZCIsIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiByZXNldFBvc2l0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgKGFzeW5jIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgYXdhaXQgZm9jdXNUZXh0Qm94KCk7CisgICAgICAgICAgICBhd2FpdCByZXNl
dFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwg
Z3JhblswXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdy
YW5bMF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5b
MV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzFd
KTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzJdKTsK
KyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblsyXSk7Cisg
ICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblszXSk7CisgICAg
ICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bM10pOworICAgICAg
ICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bNF0pOworICAgICAgICAg
ICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzRdKTsKKyAgICAgICAgICAg
IGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzVdKTsKKyAgICAgICAgICAgIGF3
YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls1XSk7CisgICAgICAgICAgICBhd2Fp
dCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCBt
b3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNl0pOworICAgICAgICAgICAgYXdhaXQgbW92
ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bN10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNl
bGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxl
Y3Rpb24oImZvcndhcmQiLCBncmFuWzhdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rp
b24oImJhY2t3YXJkIiwgZ3Jhbls4XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9u
KCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblswXSk7CisgICAgICAg
ICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxl
Y3Rpb24oZ3JhblsxXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAg
ICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblsyXSk7CisgICAgICAgICAgICBhd2Fp
dCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jh
blszXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBh
d2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls0XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBv
c2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls1XSk7Cisg
ICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRl
bmRTZWxlY3Rpb24oZ3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7
CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls3XSk7CisgICAgICAgICAg
ICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rp
b24oZ3Jhbls4XSk7CisgICAgICAgICAgfSkoKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5n
ZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCmluZGV4IGVlOWUw
YTgwNWE1OTFhODFiMjE2YTVlYTU4ZThmNDgwMjZiNWEwZGIuLjllNTE4NWZhMTU3NTJjNmU1NTBi
ZjJmMmE3YjI0ZDI5NjFmMjllMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQzLDEyICs0MywxNSBAQCBjb250ZW50IGluc2lkZQog
ICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsK
LSAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCAzOyBrKyspIHsKKyAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lKCgpID0+IHsKICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAi
Y2hhcmFjdGVyIik7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5n
ZS4KLSAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhl
bGxvICIpOworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAg
ICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAg
ICAgICAgICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9KTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2Fy
ZXQuaHRtbAppbmRleCA3MzRjZGNiMDZhMzYzNjYzYjVkMDkxMDAxNGZkNjY0YjI1YTU0MGU4Li5l
NDJlNDNiYTJiMmY3NDU0NGUyOWI1ZTZkZDc2MTM5OGE0Y2M3MTM3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2Fy
ZXQuaHRtbApAQCAtMTUsMTMgKzE1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRhLmZvY3Vz
KCk7CiAgICAgLy8gY2xpY2sKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIGlmICh0
YS5zZWxlY3Rpb25FbmQgPT0gMTcpCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3Qg
U3VjY2VlZGVkIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJU
ZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgo
KSA9PiB7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7CisgICAgICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQorICAg
ICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNh
cmV0IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzLmlubmVy
SFRNTCA9ICJUZXN0IGNhbid0IHJ1biB3aXRob3V0IGV2ZW50IHNlbmRlciAocGFydCBvZiBEdW1w
UmVuZGVyVHJlZSkuICIKICAgICAgICAgICAgICsgIlRvIHRlc3QgbWFudWFsbHksIGNsaWNrIGF0
IHRoZSBtaWRkbGUgb2YgdGhlIGxpbmUgbWFya2VkIDkgYW5kIGNoZWNrIHRoYXQgdGhlIGNhcmV0
IGFwcGVhcnMgYWZ0ZXIgdGhlIDkuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4
dAppbmRleCAzYWJiMGY3MDg5YTNmM2JjYmM2YWFkZjY5ZjczZDc3N2JmNzllMzBhLi5hY2VhNTRl
MDUwZGY1ZDJhNzc1YTlkOTlkOWIwMWY3MDY2YmE1YTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hp
bGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2Fw
cyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhh
dCBhYnNvbHV0ZSBlbGVtZW50cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdp
bGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRl
ZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0p
Ci0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRt
bAppbmRleCA3ZDQ3ZDEyNTkxZDliYzlmYTEyMTY5MWQwZTc0MGY5YWVkYjNmNDcwLi5lNzgzMmQy
YjRhMTE0ZWZhMzI3ZDgzNWI2ZTZjNWU2MmJjMTk0MWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwK
QEAgLTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRl
c3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBp
bnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9u
KCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisK
KyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRS
ZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBh
aW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0p
OwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAg
ICAgPGRpdj4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xv
cjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsi
Pjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9k
aXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0
ZWQudHh0CmluZGV4IGRiM2MzNzQxNjU2YjE3NzhjOTE0MGY3MTU0YWU4N2M1ODA2YzQ2YjQuLjk3
OWVmYTM5ZTU1MGNjMmUzMjU0NjMxMzI5YTkxMmI3ZWY1OGYyOTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcg
MTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5z
Zm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVk
IGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3Jl
ZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0o
cmVwYWludCByZWN0cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMg
KHJlY3QgMCAwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApp
bmRleCAxYjYxZWJmMmQ1MGIzYTRmMGQwMjM4OTE2MTY0NDE3ZmUyOGU1NmE3Li45ODdkMTM1NWE2
ZDlhNjI2ZmI3NDVhOTFmZjg5YzcyYTllODk2MzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0
ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgot
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsK
KyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9u
IHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAg
IGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNp
YmxpbmcsIDApOworCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVy
bmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3Rv
cFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB9KTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEs
NCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNh
bC1ybCI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6
IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48
YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2
PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQt
ZXhwZWN0ZWQudHh0CmluZGV4IGI3YzMwOTdjNmIxNzYxNmUyZjVkNzRlOThiN2U5ODU5NzFhNDVh
MzEuLjVjYzk2MTVkMWUzMGQ4NzYwOWRhNDliMzczM2RiMDVlOWU0NjExNzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29s
dXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIs
NyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVj
dGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRo
YXQgZ2V0IHRyYW5zZm9ybWVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2ls
bCBiZSBjb21wbGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRl
ZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkK
LSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1
dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRy
YW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggMTdlZDM1YjFhMTU4NTEwOTI3NmY5
ZGJlZjA2ODQ2MzYzZTQ2MDE2Zi4uMGQwNzgxZGM2ZTVhZTg4MDgxMjY1MzJlZDdlZTM4OGE1Yzll
ZDVmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
dHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0x
LDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0Pgot
ICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkK
ICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJu
YWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAg
ICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNB
c1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMo
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAg
ICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxk
aXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAg
ICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0
aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+
PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFu
c2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5k
ZXggOGRiZWQ0NDliYjllYWVjY2ZkNjYzOGI3NTc2YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5
Y2MzYTFjZDhjMmYzZjU5OTQ5ZGUzOGFjMjhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDog
U2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBU
aGlzIHRlc3RzIHRoYXQgZml4ZWQgZWxlbWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGlu
dmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0
aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50
IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0
IDUwIDUwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmlu
ZGV4IDc0NWM1NWVjN2E5YzdkOTllNThjNDVlMmJlNmI0YjIwYjgwMTU4YTMuLjY2NzY2MDg2NDlj
M2Y2NjRlYjIyNTQ2MDVhODczMTM2Mjk2OTBmMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4
ZWQtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4K
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlv
biBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAg
ICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAg
ICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRT
aWJsaW5nLCAwKTsKKworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRl
cm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0
b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgfSk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIx
LDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRl
KDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91
bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogZml4
ZWQ7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMi
PjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4
IDg2MTIzMjZkZjhmYTE0ODAxN2JjM2E0ZTVmOTY1ODY1MGMyZjlkYmYuLmIxOTkyYTkxMGRlZGQx
YzBkZDlhNWUyNDQ0ZmM4NmU5ZjQ2N2I2NTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTIsNiArMiw1IEBAIEEKIEEKIChyZXBhaW50IHJlY3RzCiAgIChyZWN0IDgg
NjggMjAgMTAwKQotICAocmVjdCA4IDY4IDIwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXgg
OTU5MTVlNjYwMGYxMjU1Y2JmNmYyMzlmOTg2NDlkNzk4YTM3NjA0MS4uNGU3YzA5MjQzNDY3Y2Q3
OTE1MzRlNWZiMTJhMGUxODUzNTdmNTc0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBA
QCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRl
c3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGlu
ZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJv
dGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KLShyZXBhaW50IHJlY3Rz
Ci0gIChyZWN0IDc3NCAzOCAxOCA3OSkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM4
IDE4IDc5KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC5odG1sCmluZGV4IDAyNzg0NDBhMWZiNzI0NDQyZDk2NDI5MjhlYTJlYjMyMzkzY2NhMjEuLmEw
YWI0NWU1NjI0NWE0OGE5MWEzMjY5Mzg0MTA1NGYyOTI2ZGY5MjQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCkBAIC0zLDcgKzMsMTUgQEAK
IDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKSB7
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zdGFydFRyYWNr
aW5nUmVwYWludHMoKTsKKwogICAgIGlmIChldmVudFNlbmRlcikgewogICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyg3OTAsIDQwKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CkBAIC0xMSw2ICsxOSwxNiBAQCBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCAxMjApOwogICAgICAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CiAgICAgfQorCisgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkg
eworICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5y
ZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdS
ZXBhaW50cygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSk7CiB9CiA8L3Njcmlw
dD4KIApAQCAtMjYsNCArNDQsNSBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi48YnI+Cis8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3Zl
cmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGJkOWY1ODlmOWNj
ZDljNjc0ODI1MTNhNzQ2NmZjZmJiZmY3ZDE5NjguLmUyZDNlNTk3ZmRkMmIxZmI2NDRhNWUzOWJh
YjM1Y2NhNGU2Y2IwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAogCi0ocmVwYWlu
dCByZWN0cwotICAocmVjdCA4IDE2IDE5OSAxOCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3Qg
OCAxNiAxOTkgMTgpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCBiY2M5ZTM0ZDE3Nzgw
ZTAxNjAwZTU1ODNiY2FhYjFiMDIzYTE2MjYwLi5iM2RkMTAyZGRhMGE2MzBmYjI5MDhhYTlhOTBm
YjE1NmU4N2Y3ZDJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1z
ZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0xLDUgKzEsNCBAQAog
PCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWlu
dC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KIDxzdHlsZT4KICN0ZXN0IHsK
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CkBAIC0xMiwxMSArMTEsMzAgQEAKIH0KIDwvc3R5
bGU+CiA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOwor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5SZXBhaW50VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgZ2V0
U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXN0LCAwLCB0ZXN0LCAxKTsKKworICAgICAg
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
JyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNU
ZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAg
fTsKIDwvc2NyaXB0PgogCiA8Ym9keSBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCkiPgogICAgIDxw
IGlkPSJ0ZXN0Ij5TaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kPC9wPgorICAgIDxkaXYgaWQ9
InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMjhkNDAwZGQ2MzY3MjllZTg5ZTdlNTJhZmM2MjhjY2M4N2Q4ODYw
NS4uZmMwOTU3MTU4ZmU0ZTRiMjA5OGU4NGQyZDY4ODVkYjBmNzQ2ODBkMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2NjYsOCArMTY2Niw2IEBAIHdl
YmtpdC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0
bWwgWyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNlbmRl
ciBjYXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcvYi80MjE5NCBmYXN0L3Njcm9s
bGluZy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJr
aXQub3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIFsgRmFp
bHVyZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90IHJlbmRlcmVkIHByb3Blcmx5
Lgogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhlaWdodC1kZXRlcm1pbmVkLWJ5
LXByaW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3Qv
dGV4dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1y
dWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNTU5NTk3ZWVh
MGU5MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KKyhyZXBhaW50
IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGEwYWU0NTYwZGZhM2Q2
NjEyNWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQyMmE2NDJhZWExZGFhNzRlOWQ4
ZTgwMWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3Jl
cGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJm
bG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVl
biBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE3KQotKQot
CisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ0NzUxOGVhMTc1Zjk4YjRlYjRi
NmMwMTVjNDYwMWQ0ZTg2ODNiZDguLmEwZmVmZjdiMDE2M2U0Y2JhZDY1MmZiNjVkOGFiZjQ0NjIx
ZWRmMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE1MTUsMyArMTUxNSw2IEBAIHdlYmtpdC5vcmcvYi8yMzI1ODUgWyBDYXRhbGluYSBE
ZWJ1ZyBdIG1lZGlhL3RyYWNrL3RyYWNrLWVsZW1lbnQtbG9hZC1ldmVudC5odG1sCiAKICMgRHVt
cFJlbmRlclRyZWUgZG9lc24ndCBpbnZva2UgaW5zcGVjdG9yIGluc3RydW1lbnRhdGlvbiB3aGVu
IHJlcGFpbnRpbmcuCiB3ZWJraXQub3JnL2IvMjMyODUyIGluc3BlY3Rvci9wYWdlL3NldFNob3dQ
YWludFJlY3RzLmh0bWwgWyBTa2lwIF0KKword2Via2l0Lm9yZy9iLzIzMTI5OCBhY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbCBbIEZhaWx1cmUgXQord2Vi
a2l0Lm9yZy9iLzIzMjYzMCBmYXN0L2Zvcm1zL2F1dG9mb2N1cy1vcGVyYS0wMDMuaHRtbCBbIEZh
aWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3Np
YmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFy
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJp
bGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmlu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY4Mzc5Y2MxOGUyMGI1MjI5MjJjY2U2MmFjOWNm
MjY0MWNkNGY1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5n
LW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCisgMQorIDIKK1Ro
aXMgdGVzdHMgdGhhdCBjYWxsaW5nIGZvY3VzIG9uIGEgcmVuZGVyIG9iamVjdCB3aGVuIGl0IGRv
ZXNuJ3QgcmVzdWx0IGluIGEgc2VsZWN0aW9uIGNoYW5nZSB3b24ndCBsZWF2ZSBpc1N5bmNocm9u
aXppbmdTZWxlY3Rpb24gc2V0IHRvIHRydWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoIjEiKSkgaXMgdHJ1ZQorUEFTUyBheFRleHRTdGF0ZVN5bmNP
bmUgaXMgdW5kZWZpbmVkCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgiMSIpLmlzRm9jdXNhYmxlIGlzIHRydWUKK1BBU1MgYXhUZXh0U3RhdGVTeW5j
VHdvIGlzIHVuZGVmaW5lZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFz
dC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJmMDEw
ZmFjNDYyN2UzMTQ1MWYxNDFhMzg1MWI0NjI2NmQ3ZDI5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTQgQEAKKworCisKKyhyZXBhaW50IHJlY3RzCisgIChyZWN0IDEgMTkg
MTUgMzIpCisgIChyZWN0IDggMjYgMSAxOCkKKyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJlY3Qg
OCAyNiAxIDE4KQorICAocmVjdCAxIDM3IDc5OCAzMikKKyAgKHJlY3QgOCA0NCA3ODQgMTgpCisg
IChyZWN0IDEgNTEgNzk4IDE4KQorICAocmVjdCAxIDQ0IDc5OCA3KQorKQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDliZjA1MjJmMGNlNWZiZTEyMjhi
NjIwNzQ0MjllMzAyNDMzMTFhYWIuLmVjZmExMmY1MzEzNzJiODE5MTU4ZmRhZjZlOGUwM2I0NjA1
YzhiNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
NDMwLDMgKzI0MzAsNSBAQCB3ZWJraXQub3JnL2IvMjMzMDQ3IGluc3BlY3Rvci9wYWdlL3NldFNo
b3dQYWludFJlY3RzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogIyBGSVhNRTogUmVtb3ZlIHRoZXNl
IHRlc3RzLgogcGxhdGZvcm0vbWFjL3BsdWdpbnMvdGVzdHBsdWdpbi1vbm5ldy1vbnBhaW50Lmh0
bWwgWyBTa2lwIF0KIHBsYXRmb3JtL21hYy9wbHVnaW5zL2NvbnZlcnQtcG9pbnQuaHRtbCBbIFNr
aXAgXQorCit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1z
eW5jLmh0bWwgWyBTa2lwIF0gIyBUaW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kOWNhN2RjMThlOWU4ZDZjMDI1NzYyNTM4ODE5ZDNjY2RmNGRkYTE4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworCisocmVwYWludCByZWN0cworICAocmVjdCAx
IDM3IDc5OCAzMikKKyAgKHJlY3QgOCA0NCA3ODQgMTgpCisgIChyZWN0IDEgNTEgNzk4IDE4KQor
ICAocmVjdCAxIDQ0IDc5OCA3KQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZp
eGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBlMDJjMDkyYmE1MzNiNmU2ZDA2ZTIyMDg2ODNj
NDFlMzRiODkyODI0Li41MDIzNTFhYjcwMzRlODVkYmUwNDRhNjFlNTY2OTFhNGE1MjY0MzA4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQK
QEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQg
Y29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1lbnRz
IGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3Jl
ZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4NCiANCiAN
Ci0ocmVwYWludCByZWN0cw0KLSAgKHJlY3QgMCAwIDEwMCAxMDApDQotKQ0KIA0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynkt
cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggNWE5MzRmNDczN2ZlNWY5ZmYxNjU0
ZWE3YTJiMTMyZmY3ZWIyYjVjNy4uZmM1NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2YxYjI2
MjUxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgsNyAr
OCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBU
ZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3Rp
bmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFpbnQg
cmVjdHMKLSAgKHJlY3QgNzc0IDM5IDE4IDgzKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA3
NzQgMzkgMTggODMpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0
L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZs
b3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCAwYTc3MWQ0NjlhMWRiMGQ0YzdjNjdmNTUwNWE1
ZWUyN2ViOWYwMzVlLi40MTkwNDAzODgzNTY1MTc0ODY2ZjMwODMxZTFiZDBhNWZlMTBkNjhlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2Vs
ZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhw
ZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAog
Ci0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5NyAxOCkKLSkKLQorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgOCAxNiAxOTcgMTgpICkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449486</attachid>
            <date>2022-01-19 08:45:33 -0800</date>
            <delta_ts>2022-01-20 01:23:34 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224471-20220119174530.patch</filename>
            <type>text/plain</type>
            <size>41499</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDYwMWI0YTI1MWQzNDYx
MzkyNjczYTcwYTRhNDNhZjM0MWI5YzBhNy4uMzM5M2M1NmJiZTAzNmQ5YWI2ODQ4YjQ5ZTZhYTRl
ODM4NDk3ZTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOiBD
YWxsIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKSBmb3IKKyAgICAg
ICAgIUlzVXNlclRyaWdnZXJlZCBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3cpOiBSZW5hbWVkIGZyb20gdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUuCisgICAgICAgIEl0IGRvZXMgbm90IG5l
ZWQgdGhlIERvY3VtZW50JiBhdHRyaWJ1dGUgYmVjYXVzZSBpdCB3YXMgYWx3YXlzIGNhbGxlZCB3
aXRoIG1fZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6YWJzb2x1
dGVDYXJldEJvdW5kcyk6IFJlcGxhY2VkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlIHdpdGgKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJpbGl0eSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbik6IENhbGwgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rp
b25Jc05lZWRlZCk6IE5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTZWxlY3Rp
b25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFNlbGVjdGlvbklmTmVlZGVkKTogU2V0IHRoZSBVc2VyVHJpZ2dlcmVk
IGZsYWcgZm9yIGNhbGxpbmcgc2V0U2VsZWN0aW9uKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcpOiBDYWxs
IHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpLgorCiAyMDIyLTAxLTE4ICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZmxleGJveF0g
QWRkIHN1cHBvcnQgZm9yIGludHJpbnNpYyBzaXplcyB0byB0aGUgZmxleCBzaG9ydGhhbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYWRhYjlkMWE4Y2M3
YzA5ZGNmOWQ2Nzg2OGUzZmUwODk3MjM0ZGJmZi4uNjM3Y2Q3NmYwOTY4YmJhN2RjNDVjZTYzMDAz
Yjc1Mzk3MDE2ZGFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAKQEAgLTQ1NCw2ICs0NTQsMTEgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAo
ZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygp
KQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIShvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVk
KSkgeworICAgICAgICBzY2hlZHVsZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
aW50ZW50LCBvcHRpb25zLmNvbnRhaW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6
U21vb3RoIDogU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIG9wdGlvbnMuY29udGFpbnMoUmV2ZWFs
U2VsZWN0aW9uQm91bmRzKSA/IFJldmVhbEV4dGVudE9wdGlvbjo6RG9Ob3RSZXZlYWxFeHRlbnQg
OiBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAKICAgICBpZiAob3B0aW9ucyAm
IElzVXNlclRyaWdnZXJlZCkgewpAQCAtNDYyLDEzICs0NjcsMTYgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0
aW9uU2V0PFMKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRp
bmdMYXlvdXRPclN0eWxlKERvY3VtZW50JiBkb2N1bWVudCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKQogeworICAgIFJlZiBkb2N1bWVudCA9ICpt
X2RvY3VtZW50OwogI2lmIEVOQUJMRShURVhUX0NBUkVUKQotICAgIGRvY3VtZW50LnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50LT51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICNlbHNlCi0gICAgZG9jdW1lbnQudXBkYXRl
U3R5bGVJZk5lZWRlZCgpOworICAgIGRvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAj
ZW5kaWYKKyAgICBpZiAobV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQorICAgICAgICB1cGRhdGVB
cHBlYXJhbmNlKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9u
VXBkYXRlKFJldmVhbFNlbGVjdGlvbkFmdGVyVXBkYXRlIHJldmVhbE1vZGUpCkBAIC0xNjg2LDcg
KzE2OTQsNyBAQCBJbnRSZWN0IEZyYW1lU2VsZWN0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKGJv
b2wqIGluc2lkZUZpeGVkKQogewogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJu
IEludFJlY3QoKTsKLSAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgq
bV9kb2N1bWVudCk7CisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHJl
Y29tcHV0ZUNhcmV0UmVjdCgpOwogICAgIGlmIChpbnNpZGVGaXhlZCkKICAgICAgICAgKmluc2lk
ZUZpeGVkID0gbV9jYXJldEluc2lkZVBvc2l0aW9uRml4ZWQ7CkBAIC0yMjQ0LDcgKzIyNTIsNyBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRDYXJldFZpc2liaWxpdHkoQ2FyZXRWaXNpYmlsaXR5
IHZpc2liaWxpdHksIFNob3VsZFVwZGF0ZQogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCB0
cmlnZ2VyIGEgc3luY2hyb25vdXMgbGF5b3V0IGhlcmUuCiAgICAgaWYgKGRvQXBwZWFyYW5jZVVw
ZGF0ZSA9PSBTaG91bGRVcGRhdGVBcHBlYXJhbmNlOjpZZXMgJiYgbV9kb2N1bWVudCkKLSAgICAg
ICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOwor
ICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAKICNpZiBFTkFCTEUoVEVY
VF9DQVJFVCkKICAgICBpZiAobV9jYXJldFBhaW50KSB7CkBAIC0yMzUyLDcgKzIzNjAsNyBAQCBG
bG9hdFJlY3QgRnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyhDbGlwVG9WaXNpYmxlQ29u
dGVudCBjbGlwVG9WaXNpYmxlQ29udAogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0
dXJuIExheW91dFJlY3QoKTsKIAotICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlKCptX2RvY3VtZW50KTsKKyAgICBjb25zdF9jYXN0PEZyYW1lU2VsZWN0aW9uJj4oKnRo
aXMpLnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICBhdXRvKiByZW5kZXJWaWV3
ID0gbV9kb2N1bWVudC0+cmVuZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyVmlldykKICAgICAg
ICAgcmV0dXJuIExheW91dFJlY3QoKTsKQEAgLTI0NDgsNiArMjQ1Niw4IEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUs
IGNvbnN0IFNjcm9sCiAgICAgaWYgKGlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICB1
cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CisKICAgICBMYXlvdXRSZWN0IHJlY3Q7CiAg
ICAgYm9vbCBpbnNpZGVGaXhlZCA9IGZhbHNlOwogICAgIGlmIChpc0NhcmV0KCkpCkBAIC0yNTE5
LDYgKzI1MjksMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2hvdWxkU2hvd0Jsb2NrQ3Vy
c29yKGJvb2wgc2hvdWxkU2hvd0Jsb2NrQ3Vyc29yKQogICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsK
IH0KIAordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBwZWFyYW5jZUlmUmV2ZWFsaW5nU2Vs
ZWN0aW9uSXNOZWVkZWQoKQoreworICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlIHx8
IG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSA9PSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVh
bCkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsK
K30KKwogdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkK
IHsKICAgICBtX2FwcGVhcmFuY2VVcGRhdGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGQ2ZjFlZTZmMDVlNDM5NmYyNzhjNThmN2I4MWZk
NDQyZTYwM2ZiZS4uM2M5MTAxZTdlMTUzM2NhMWZkYzM1MGY4MjNmNGZhYTJlNTNkMjcwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMTUxLDYgKzE1MSw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxs
QmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAKKyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVh
bGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJM
YXlvdXQoKTsKICAgICB2b2lkIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFu
Z2UoKTsKIApAQCAtMjY3LDYgKzI2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21B
c3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rp
b25BcHBlYXJhbmNlTm93KCk7CiAgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2
aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJl
dmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IDIyMGIyNzE0MGNiNTU5NDFmZDllMjVlZDIyMjk0ODAzNWVkZmY5MDkuLjZkNDc4NDRjNjcw
ZDJmYWI5YThkN2UxMjRlMTEwNjA5N2ExMGU1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNl
dEVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAxNmQ1Mzg5
ZGZmZmFjMzI1NGZjZWY0ZmE3OWEwNzY1NWRkMDAzMzAyLi5mYjBhYmNlYTJhY2YwZjMwZjBlMzdm
Njg5ZjA2M2MxNzFjODQ1MjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC00MzYsNyArNDM2LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkKE5v
ZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVlZGVkKEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVj
dGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvbigpICE9IG5ld1NlbGVjdGlvbiAm
JiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBk
aXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA3YjIz
YjIzN2VjZjRlOTIwZGU2NTZmMDZhNTliZmYzNTMxOGRmMTg0Li41NWRhNmNjMzQ0ZTE0ZjQyY2Zl
M2Y4NWIzMmRkOGM5OTczZDFiNGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2ODUsNiArMTY4
NSwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcoKQogICAgICAgICBkb2N1
bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CiAgICAgfSk7CiAKKyAgICBm
b3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVu
dC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsKKwog
ICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRv
Y3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNmMTk4
MzM1NmMxMDRjZTBjNGM3NDYxNzlhODcxYjcyNjlkOGY5ZDUuLmFjMTAwNGJkNjdkMTkyOWU2NDIz
YTYxMjc3YTkzOTZmMmIyYjk4ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMS0xMS0wMiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZWxl
YXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMgb3V0IG9mIHRoZSB0ZXh0LWJhc2VkLXJlcGFp
bnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24gaXMgbm93IHVwZGF0ZWQKKyAgICAgICAgYW5k
IHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRoZSBjYXNlIG9mIG5vbi11c2VyIHRyaWdnZXJl
ZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSBy
ZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1cGRhdGUgaGFzIG5vdCBoYXBwZW5lZCB5ZXQu
IFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3RzIHdlcmUgbW9kaWZpZWQgc28gdGhhdCB3ZSB3
YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMuCisKKyAgICAgICAgU2FtZSBzaXR1YXRpb24g
Zm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90IGludm9sdmUgcmVwYWludCByZWN0cyBidXQgdHJp
Z2dlciBhY2Nlc2liaWxpdHkKKyAgICAgICAgdHJlZSB1cGRhdGVzLiBXZSBtdXN0IGVuc3VyZSB0
aGF0IHdlIGxldCB0aGUgbm90aWZpY2F0aW9uIGJlIHRocm93biBiZWZvcmUgY2hlY2tpbmcgd2hl
dGhlciBvcgorICAgICAgICBub3QgaGFzIGJlZW4gZW1pdGVkLiBBcyBpdCdzIGRvbmUgYXN5bmNo
cm9ub3VzbHkgd2UgbXVzdCBsZXQgdGhlIG1haW4gdGhyZWFkIHJ1biBiZWZvcmUgY2hlY2tpbmcu
CisKKyAgICAgICAgTGFzdCBidXQgbm90IGxlYXN0LCBzb21lIG9mIHRoZSB0ZXN0cyBhcmUgdXNp
bmcgc2V0VGltZW91dCgpIGluc3RlYWQgb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkKKyAgICAg
ICAgYmVjYXVzZSB0aGUgcmVzdWx0cyB3aXRoIHRoZSBsYXR0ZXIgd2VyZSBub3QgYXMgcmVsaWFi
bGUgdW5kZXIgc3RyZXNzL2RlYnVnIGNvbmRpdGlvbnMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1j
YXJldC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRl
LWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGls
ZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJh
bnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVu
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3Zl
cmZsb3ctaGlkZGVuLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3Qv
cmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy1jYXRhbGluYS13azEvZmFzdC9yZXBhaW50L2ZvY3VzLXNldHRp
bmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMt
c2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhl
ZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2lu
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
OgorCiAyMDIyLTAxLTE5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAg
ICAgICAgIGZpbHRlclJlZ2lvbiBhbmQgb3V0c2V0cyBvZiByZWZlcmVuY2VkIFNWRyBmaWx0ZXIg
YXJlIGNhbGN1bGF0ZWQgaW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKaW5k
ZXggOGJkOTE5NTRiMmQ4ZmRjOTE0MjAwODI5ZDE4ZTFkYjM3Y2FlZjNiYS4uZDg4ZjUzODVjNmNm
OTUxOTZhODA5NGU2Y2YzMjU2YjQ5Mjg4ODc3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0
bWwKQEAgLTE2MiwyMCArMTYyLDMxIEBACiAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9
IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwog
ICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCi0gICAgICAg
IHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0
ZXh0Ym94LmZvY3VzKCk7Ci0KLSAgICAgICAgbW92ZSh0cnVlKTsKLQotICAgICAgICB0ZXh0Ym94
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7Ci0gICAgICAgIHRleHRib3guZm9j
dXMoKTsKKyAgICAgICAgZnVuY3Rpb24gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCkgeworICAgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShyZXNvbHZlKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CiAKLSAgICAgICAgbW92ZShmYWxzZSk7CisgICAgICAgIGZ1bmN0aW9u
IGZvY3VzRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgZWxlbWVudC5mb2N1cygp
OworICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JBbmltYXRpb25GcmFtZSgpOworICAgICAgICB9
CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0YXJlYSIp
OwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIG1vdmVBc3luYyhp
c1ZlcnRpY2FsKSB7CisgICAgICAgICAgICBtb3ZlKGlzVmVydGljYWwpOworICAgICAgICAgICAg
cmV0dXJuIHdhaXRGb3JBbmltYXRpb25GcmFtZSgpOworICAgICAgICB9CiAKLSAgICAgICAgbW92
ZSh0cnVlKTsKKyAgICAgICAgKGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGF3YWl0
IGZvY3VzRWxlbWVudCgidGV4dGJveCIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKHRy
dWUpOworICAgICAgICAgICAgYXdhaXQgZm9jdXNFbGVtZW50KCJpbnB1dCIpOworICAgICAgICAg
ICAgYXdhaXQgbW92ZUFzeW5jKGZhbHNlKTsKKyAgICAgICAgICAgIGF3YWl0IGZvY3VzRWxlbWVu
dCgidGV4dGFyZWEiKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVBc3luYyh0cnVlKTsKKyAgICAg
ICAgfSkoKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCmluZGV4
IGUxZWJkZWMwMjc0Mjg2OTk2NWM1Y2RkZGM2MTBmNmJiZDhlYjJhZGYuLmJiM2M4NmNmYzhhOTdh
MGM2Yzg3ZTc5MGI1NTNmODA5ZjVhODk3ZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAg
LTE5NSwxOSArMTk1LDg3IEBACiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIs
ICJ0cnVlIik7CiAKICAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKIAogICAgICAgICAvLyBUcmlnZ2Vy
IHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24o
KTsKLSAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgZm9yICh2YXIg
aSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgZ3Jh
bltpXSk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIsIGdyYW5baV0p
OworCisgICAgICAgIGZ1bmN0aW9uIGZvY3VzVGV4dEJveCgpIHsKKyAgICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dGJveC5mb2N1cygp
OworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG1vdmVTZWxl
Y3Rpb24oZGlyZWN0aW9uLCBncmFudWxhcml0eSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwg
ZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsK
KyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9Ci0gICAg
ICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0
Ym94LCAwKTsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5b
aV0pOworCisgICAgICAgIGZ1bmN0aW9uIGV4dGVuZFNlbGVjdGlvbihncmFudWxhcml0eSkgewor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW51bGFyaXR5KTsKKyAgICAg
ICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZXNldFBvc2l0aW9uKCkg
eworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgICAg
IHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisK
KyAgICAgICAgKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgZm9jdXNUZXh0
Qm94KCk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBh
d2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblswXSk7CisgICAgICAgICAgICBhd2Fp
dCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMF0pOworICAgICAgICAgICAgYXdhaXQg
bW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMV0pOworICAgICAgICAgICAgYXdhaXQgbW92
ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzFdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVT
ZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxl
Y3Rpb24oImJhY2t3YXJkIiwgZ3JhblsyXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0
aW9uKCJmb3J3YXJkIiwgZ3JhblszXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9u
KCJiYWNrd2FyZCIsIGdyYW5bM10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigi
Zm9yd2FyZCIsIGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFj
a3dhcmQiLCBncmFuWzRdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndh
cmQiLCBncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJk
IiwgZ3Jhbls1XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwg
Z3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdy
YW5bNl0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5b
N10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzdd
KTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzhdKTsK
KyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls4XSk7Cisg
ICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRl
bmRTZWxlY3Rpb24oZ3JhblswXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7
CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblsxXSk7CisgICAgICAgICAg
ICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rp
b24oZ3JhblsyXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAg
ICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblszXSk7CisgICAgICAgICAgICBhd2FpdCBy
ZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls0
XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2Fp
dCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls1XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0
aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls2XSk7CisgICAg
ICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRT
ZWxlY3Rpb24oZ3Jhbls3XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7Cisg
ICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls4XSk7CisgICAgICAgICAgfSko
KTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9y
LWFyaWEtdGV4dGJveC5odG1sCmluZGV4IGVlOWUwYTgwNWE1OTFhODFiMjE2YTVlYTU4ZThmNDgw
MjZiNWEwZGIuLjllNTE4NWZhMTU3NTJjNmU1NTBiZjJmMmE3YjI0ZDI5NjFmMjllMzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFu
Z2VzLWZvci1hcmlhLXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQz
LDEyICs0MywxNSBAQCBjb250ZW50IGluc2lkZQogICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlv
biBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAg
ICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgZm9yICh2YXIgayA9IDA7IGsg
PCAzOyBrKyspIHsKKyAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0
ZXIiKTsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAgICAgICAg
IHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7Ci0gICAgICAgIH0KLQot
ICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KLSAgICAgICAgZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOworICAgICAgICAgICAgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIs
ICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgdmFs
dWUgY2hhbmdlLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRU
ZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAg
ICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0
YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAppbmRleCA3MzRjZGNiMDZhMzYz
NjYzYjVkMDkxMDAxNGZkNjY0YjI1YTU0MGU4Li5lNDJlNDNiYTJiMmY3NDU0NGUyOWI1ZTZkZDc2
MTM5OGE0Y2M3MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVh
LXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbApAQCAtMTUsMTMgKzE1LDE3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIHRhLmZvY3VzKCk7CiAgICAgLy8gY2xpY2sKICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkw
LCAyMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0gMTcpCi0gICAg
ICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQgIiAr
IHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICBp
ZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwg
PSAiVGVzdCBTdWNjZWVkZWQiOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJl
cy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25F
bmQ7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IGNhbid0IHJ1biB3aXRo
b3V0IGV2ZW50IHNlbmRlciAocGFydCBvZiBEdW1wUmVuZGVyVHJlZSkuICIKICAgICAgICAgICAg
ICsgIlRvIHRlc3QgbWFudWFsbHksIGNsaWNrIGF0IHRoZSBtaWRkbGUgb2YgdGhlIGxpbmUgbWFy
a2VkIDkgYW5kIGNoZWNrIHRoYXQgdGhlIGNhcmV0IGFwcGVhcnMgYWZ0ZXIgdGhlIDkuIjsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRl
LWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAzYWJiMGY3MDg5YTNmM2JjYmM2
YWFkZjY5ZjczZDc3N2JmNzllMzBhLi5hY2VhNTRlMDUwZGY1ZDJhNzc1YTlkOTlkOWIwMWY3MDY2
YmE1YTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIs
NCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3
aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyBhcmUgaW52
YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRo
ZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQg
cmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDAg
MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCA3ZDQ3ZDEyNTkxZDliYzlmYTEy
MTY5MWQwZTc0MGY5YWVkYjNmNDcwLi5lNzgzMmQyYjRhMTE0ZWZhMzI3ZDgzNWI2ZTZjNWU2MmJj
MTk0MWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlw
ZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJl
cGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRl
c3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFp
bnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQs
IDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhU
TUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAg
ICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAg
ICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdj4KICAgICAgICAgPGRpdiBpZD0i
dGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rp
dj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNo
aWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGRiM2MzNzQxNjU2YjE3
NzhjOTE0MGY3MTU0YWU4N2M1ODA2YzQ2YjQuLjk3OWVmYTM5ZTU1MGNjMmUzMjU0NjMxMzI5YTkx
MmI3ZWY1OGYyOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhw
ZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24n
dCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNv
bHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHku
IFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2Fz
IGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCAwIDAg
MTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgMCAwIDEwMCAxMDApICkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJz
b2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxYjYxZWJmMmQ1MGIzYTRmMGQwMjM4
OTE2MTY0NDE3ZmUyOGU1NmE3Li45ODdkMTM1NWE2ZDlhNjI2ZmI3NDVhOTFmZjg5YzcyYTllODk2
MzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1m
bGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3
IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0
aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7Cisg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0
VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHJlcXVl
c3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFp
bnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsK
KyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9CiAgICAg
PC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9
Ii13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCI+CiAgICAgICAgIDxkaXYgaWQ9InRh
cmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+
CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUt
Y2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGI3YzMwOTdj
NmIxNzYxNmUyZjVkNzRlOThiN2U5ODU5NzFhNDVhMzEuLjVjYzk2MTVkMWUzMGQ4NzYwOWRhNDli
MzczM2RiMDVlOWU0NjExNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNv
bHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVj
dGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0
ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IHRyYW5zZm9ybWVkIGFyZSBpbnZh
bGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wbGV0ZWx5IGdyZWVuIGlmIHRo
ZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQg
cmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3Qg
NTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0
bWwKaW5kZXggMTdlZDM1YjFhMTU4NTEwOTI3NmY5ZGJlZjA2ODQ2MzYzZTQ2MDE2Zi4uMGQwNzgx
ZGM2ZTVhZTg4MDgxMjY1MzJlZDdlZTM4OGE1YzllZDVmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRt
bD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQor
ICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygp
OworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0
YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0g
d2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBp
bnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0
eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHls
ZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBv
c2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2
IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1l
ZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggOGRiZWQ0NDliYjllYWVjY2ZkNjYzOGI3
NTc2YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5Y2MzYTFjZDhjMmYzZjU5OTQ5ZGUzOGFjMjhl
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJh
bnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4
dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWlu
dCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgZml4ZWQgZWxlbWVu
dHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJv
eCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxp
ZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEwMCAx
MDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDApICkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZp
eGVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10
cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmluZGV4IDc0NWM1NWVjN2E5YzdkOTllNThjNDVl
MmJlNmI0YjIwYjgwMTU4YTMuLjY2NzY2MDg2NDljM2Y2NjRlYjIyNTQ2MDVhODczMTM2Mjk2OTBm
MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRy
YW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwy
NyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5j
dGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgewor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFy
dFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5k
RXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBh
aW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7
CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfQogICAg
IDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0eWxl
PSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxk
aXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogZml4ZWQ7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAg
PC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1p
bnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDg2MTIzMjZkZjhmYTE0ODAxN2JjM2E0ZTVm
OTY1ODY1MGMyZjlkYmYuLmIxOTkyYTkxMGRlZGQxYzBkZDlhNWUyNDQ0ZmM4NmU5ZjQ2N2I2NTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTIsNiArMiw1IEBAIEEK
IEEKIChyZXBhaW50IHJlY3RzCiAgIChyZWN0IDggNjggMjAgMTAwKQotICAocmVjdCA4IDY4IDIw
IDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggOTU5MTVlNjYwMGYxMjU1Y2JmNmYyMzlmOTg2
NDlkNzk4YTM3NjA0MS4uNGU3YzA5MjQzNDY3Y2Q3OTE1MzRlNWZiMTJhMGUxODUzNTdmNTc0OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynkt
cmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWlu
dGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi4KLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDc3NCAzOCAxOCA3OSkKLSkK
LQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM4IDE4IDc5KSApCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCmluZGV4IDAyNzg0NDBhMWZiNzI0
NDQyZDk2NDI5MjhlYTJlYjMyMzkzY2NhMjEuLmEwYWI0NWU1NjI0NWE0OGE5MWEzMjY5Mzg0MTA1
NGYyOTI2ZGY5MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tcnVieS1ybC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC5odG1sCkBAIC0zLDcgKzMsMTUgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9u
IHJlcGFpbnRUZXN0KCkgeworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30K
KworZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgIGlmIChl
dmVudFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDQwKTsK
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CkBAIC0xMSw2ICsxOSwxNiBAQCBmdW5j
dGlvbiByZXBhaW50VGVzdCgpIHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkw
LCAxMjApOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgfQorCisgICAgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAod2luZG93LmludGVy
bmFscykgeworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJyku
aW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAg
ICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgfSk7CiB9CiA8L3NjcmlwdD4KIApAQCAtMjYsNCArNDQsNSBAQCBUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+Cis8ZGl2
IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4t
ZXhwZWN0ZWQudHh0CmluZGV4IGJkOWY1ODlmOWNjZDljNjc0ODI1MTNhNzQ2NmZjZmJiZmY3ZDE5
NjguLmUyZDNlNTk3ZmRkMmIxZmI2NDRhNWUzOWJhYjM1Y2NhNGU2Y2IwZGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4t
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlv
bi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhh
dmUgZ3JlZW4gYmFja2dyb3VuZAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5OSAx
OCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgOCAxNiAxOTkgMTgpICkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4uaHRtbAppbmRleCBiY2M5ZTM0ZDE3NzgwZTAxNjAwZTU1ODNiY2FhYjFiMDIzYTE2MjYw
Li5iM2RkMTAyZGRhMGE2MzBmYjI5MDhhYTlhOTBmYjE1NmU4N2Y3ZDJhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93
LWhpZGRlbi5odG1sCkBAIC0xLDUgKzEsNCBAQAogPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij48L3NjcmlwdD4KIDxzdHlsZT4KICN0ZXN0IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
CkBAIC0xMiwxMSArMTEsMzAgQEAKIH0KIDwvc3R5bGU+CiA8c2NyaXB0PgotICAgIGZ1bmN0aW9u
IHJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpIHsKKyAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFj
a2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dCh0ZXN0LCAwLCB0ZXN0LCAxKTsKKworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAg
ICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdp
bmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50
ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfTsKIDwvc2NyaXB0PgogCiA8Ym9keSBvbmxv
YWQ9InJ1blJlcGFpbnRUZXN0KCkiPgogICAgIDxwIGlkPSJ0ZXN0Ij5TaG91bGQgaGF2ZSBncmVl
biBiYWNrZ3JvdW5kPC9wPgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTI5NzY4NzI4
ZmRmYmZiYzI0YmUxOWM1Y2FkNmI3MjhkY2NjY2M3Zi4uNTU3NTFjMDYwYzQxMmIxZjYzZmFjZDIz
ZmJiYTY1ZDU1MzhjMmM4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTE1NDIsOCArMTU0Miw2IEBAIHdlYmtpdC5vcmcvYi8xNTkxNDMgZmFzdC9kb20v
aG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwgWyBGYWlsdXJlIF0KICMgSW5jb21wbGV0
ZSBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNlbmRlciBjYXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwK
IHdlYmtpdC5vcmcvYi80MjE5NCBmYXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTM5MzU0IGZhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIFsgRmFpbHVyZSBdCi0KICMgTWlzc2luZyBnbHlwaCBz
eW1ib2wgaXMgbm90IHJlbmRlcmVkIHByb3Blcmx5Lgogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0
L2Nzcy9saW5lLWhlaWdodC1kZXRlcm1pbmVkLWJ5LXByaW1hcnktZm9udC5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvdGV4dC9kZWNvcmF0aW9ucy13aXRoLXRleHQt
Y29tYmluZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZjNTU5NTk3ZWVhMGU5MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1
MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3Ro
IGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uU29tZSBydWJ5CitUZXN0aW5n
IGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90
aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhp
dCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRl
c3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFu
ZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBh
aW50aW5nIG9mIHNlbGVjdGlvbi4KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4Mykg
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhw
ZWN0ZWQudHh0CmluZGV4IGEwYWU0NTYwZGZhM2Q2NjEyNWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAu
LjBmYTVkZGE1ZDQyMmE2NDJhZWExZGFhNzRlOWQ4ZTgwMWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZs
b3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFz
dC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAg
LTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJl
Y3RzCi0gIChyZWN0IDggMTYgMTk3IDE3KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2
IDE5NyAxNykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGU3NDk2YjgwZTU1YmJjMGJmMmJiM2I0YjUyMWM5MjM2NjdkYzcwYjcuLmEwZDc2
ODA1YjM5OWU5M2IzZTUzYWUyMTY3ZTgxMmQ2YjE0NDhiZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MzEsMyArMTUzMSw1IEBAIHdl
YmtpdC5vcmcvYi8yMzE5MTggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9pbnRlcmFjdGl2ZS1lCiAKIGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWFs
dGVybmF0ZS1pZnJhbWUtYm9keS1kaXItYXR0ci1kb2VzLW5vdC11cGRhdGUtc2Nyb2xsYmFyLXBs
YWNlbWVudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKK3dlYmtpdC5vcmcvYi8yMzEyOTgg
YWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi8yMzI2MzAgZmFzdC9mb3Jtcy9hdXRvZm9jdXMtb3BlcmEtMDAz
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5n
LW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1u
b3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ODM3OWNjMThlMjBiNTIyOTIy
Y2NlNjJhYzljZjI2NDFjZDRmNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5
bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKwor
IDEKKyAyCitUaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBmb2N1cyBvbiBhIHJlbmRlciBvYmplY3Qg
d2hlbiBpdCBkb2Vzbid0IHJlc3VsdCBpbiBhIHNlbGVjdGlvbiBjaGFuZ2Ugd29uJ3QgbGVhdmUg
aXNTeW5jaHJvbml6aW5nU2VsZWN0aW9uIHNldCB0byB0cnVlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikpIGlzIHRydWUKK1BBU1MgYXhUZXh0
U3RhdGVTeW5jT25lIGlzIHVuZGVmaW5lZAorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoIjEiKS5pc0ZvY3VzYWJsZSBpcyB0cnVlCitQQVNTIGF4VGV4
dFN0YXRlU3luY1R3byBpcyB1bmRlZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjViZjAxMGZhYzQ2MjdlMzE0NTFmMTQxYTM4NTFiNDYyNjZkN2QyOWQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKKworCisocmVwYWludCByZWN0cworICAo
cmVjdCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMTkgMTUgMzIp
CisgIChyZWN0IDggMjYgMSAxOCkKKyAgKHJlY3QgMSAzNyA3OTggMzIpCisgIChyZWN0IDggNDQg
Nzg0IDE4KQorICAocmVjdCAxIDUxIDc5OCAxOCkKKyAgKHJlY3QgMSA0NCA3OTggNykKKykKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhY2Q0YjAxODkw
MTg1NTgxYjkyN2I2NGI0NDc4MzE0ZmE0OGFlNWYzLi5hNDJmNDVlMGFlNmE1ZGUyODAyNDE2NTdl
OTVlZjk1MDExMjQ1MzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjQzMSwzICsyNDMxLDUgQEAgd2Via2l0Lm9yZy9iLzIyMTIzMCBbIEJpZ1N1cisg
XSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWQKIAogIyBU
aGlzIHRlc3QgaXMgc3BlY2lmaWMgdG8gQ29yZSBUZXh0LgogZmFzdC90ZXh0L2ZvbnQtbG9va3Vw
LWRvdC1wcmVmaXgtY2FzZS1zZW5zaXRpdmUuaHRtbCBbIFBhc3MgXQorCit3ZWJraXQub3JnL2Iv
MjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1zeW5jLmh0bWwgWyBTa2lwIF0gIyBU
aW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50
LzQ3NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVw
YWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWNhN2RjMThlOWU4ZDZjMDI1
NzYyNTM4ODE5ZDNjY2RmNGRkYTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACisKKworCisocmVwYWludCByZWN0cworICAocmVjdCAxIDM3IDc5OCAzMikKKyAgKHJlY3Qg
OCA0NCA3ODQgMTgpCisgIChyZWN0IDEgNTEgNzk4IDE4KQorICAocmVjdCAxIDQ0IDc5OCA3KQor
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4
dAppbmRleCBlMDJjMDkyYmE1MzNiNmU2ZDA2ZTIyMDg2ODNjNDFlMzRiODkyODI0Li41MDIzNTFh
YjcwMzRlODVkYmUwNDRhNjFlNTY2OTFhNGE1MjY0MzA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAx
MTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNm
b3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1lbnRzIGFyZSBpbnZhbGlkYXRlZCBjb3Jy
ZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFy
ZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4NCiANCiANCi0ocmVwYWludCByZWN0cw0KLSAg
KHJlY3QgMCAwIDEwMCAxMDApDQotKQ0KIA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBl
Y3RlZC50eHQKaW5kZXggNWE5MzRmNDczN2ZlNWY5ZmYxNjU0ZWE3YTJiMTMyZmY3ZWIyYjVjNy4u
ZmM1NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw0IEBAIFRlc3RpbmcgYm90aCBo
aXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0
ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rp
bmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM5
IDE4IDgzKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA3NzQgMzkgMTggODMpICkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rp
b24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dAppbmRleCAwYTc3MWQ0NjlhMWRiMGQ0YzdjNjdmNTUwNWE1ZWUyN2ViOWYwMzVlLi40MTkwNDAz
ODgzNTY1MTc0ODY2ZjMwODMxZTFiZDBhNWZlMTBkNjhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
MyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAogCi0ocmVwYWludCByZWN0cwotICAo
cmVjdCA4IDE2IDE5NyAxOCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgOCAxNiAxOTcgMTgp
ICkK
</data>
<flag name="commit-queue"
          id="475582"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449559</attachid>
            <date>2022-01-20 01:22:59 -0800</date>
            <delta_ts>2022-01-20 08:08:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224471-20220120102257.patch</filename>
            <type>text/plain</type>
            <size>41933</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDYwMWI0YTI1MWQzNDYx
MzkyNjczYTcwYTRhNDNhZjM0MWI5YzBhNy4uMzM5M2M1NmJiZTAzNmQ5YWI2ODQ4YjQ5ZTZhYTRl
ODM4NDk3ZTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOiBD
YWxsIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKSBmb3IKKyAgICAg
ICAgIUlzVXNlclRyaWdnZXJlZCBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3cpOiBSZW5hbWVkIGZyb20gdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUuCisgICAgICAgIEl0IGRvZXMgbm90IG5l
ZWQgdGhlIERvY3VtZW50JiBhdHRyaWJ1dGUgYmVjYXVzZSBpdCB3YXMgYWx3YXlzIGNhbGxlZCB3
aXRoIG1fZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6YWJzb2x1
dGVDYXJldEJvdW5kcyk6IFJlcGxhY2VkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlIHdpdGgKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJpbGl0eSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbik6IENhbGwgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rp
b25Jc05lZWRlZCk6IE5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTZWxlY3Rp
b25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFNlbGVjdGlvbklmTmVlZGVkKTogU2V0IHRoZSBVc2VyVHJpZ2dlcmVk
IGZsYWcgZm9yIGNhbGxpbmcgc2V0U2VsZWN0aW9uKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcpOiBDYWxs
IHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpLgorCiAyMDIyLTAxLTE4ICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZmxleGJveF0g
QWRkIHN1cHBvcnQgZm9yIGludHJpbnNpYyBzaXplcyB0byB0aGUgZmxleCBzaG9ydGhhbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYWRhYjlkMWE4Y2M3
YzA5ZGNmOWQ2Nzg2OGUzZmUwODk3MjM0ZGJmZi4uNjM3Y2Q3NmYwOTY4YmJhN2RjNDVjZTYzMDAz
Yjc1Mzk3MDE2ZGFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAKQEAgLTQ1NCw2ICs0NTQsMTEgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAo
ZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygp
KQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIShvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVk
KSkgeworICAgICAgICBzY2hlZHVsZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
aW50ZW50LCBvcHRpb25zLmNvbnRhaW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6
U21vb3RoIDogU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIG9wdGlvbnMuY29udGFpbnMoUmV2ZWFs
U2VsZWN0aW9uQm91bmRzKSA/IFJldmVhbEV4dGVudE9wdGlvbjo6RG9Ob3RSZXZlYWxFeHRlbnQg
OiBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAKICAgICBpZiAob3B0aW9ucyAm
IElzVXNlclRyaWdnZXJlZCkgewpAQCAtNDYyLDEzICs0NjcsMTYgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0
aW9uU2V0PFMKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRp
bmdMYXlvdXRPclN0eWxlKERvY3VtZW50JiBkb2N1bWVudCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKQogeworICAgIFJlZiBkb2N1bWVudCA9ICpt
X2RvY3VtZW50OwogI2lmIEVOQUJMRShURVhUX0NBUkVUKQotICAgIGRvY3VtZW50LnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50LT51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICNlbHNlCi0gICAgZG9jdW1lbnQudXBkYXRl
U3R5bGVJZk5lZWRlZCgpOworICAgIGRvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAj
ZW5kaWYKKyAgICBpZiAobV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQorICAgICAgICB1cGRhdGVB
cHBlYXJhbmNlKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9u
VXBkYXRlKFJldmVhbFNlbGVjdGlvbkFmdGVyVXBkYXRlIHJldmVhbE1vZGUpCkBAIC0xNjg2LDcg
KzE2OTQsNyBAQCBJbnRSZWN0IEZyYW1lU2VsZWN0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKGJv
b2wqIGluc2lkZUZpeGVkKQogewogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJu
IEludFJlY3QoKTsKLSAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgq
bV9kb2N1bWVudCk7CisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHJl
Y29tcHV0ZUNhcmV0UmVjdCgpOwogICAgIGlmIChpbnNpZGVGaXhlZCkKICAgICAgICAgKmluc2lk
ZUZpeGVkID0gbV9jYXJldEluc2lkZVBvc2l0aW9uRml4ZWQ7CkBAIC0yMjQ0LDcgKzIyNTIsNyBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRDYXJldFZpc2liaWxpdHkoQ2FyZXRWaXNpYmlsaXR5
IHZpc2liaWxpdHksIFNob3VsZFVwZGF0ZQogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCB0
cmlnZ2VyIGEgc3luY2hyb25vdXMgbGF5b3V0IGhlcmUuCiAgICAgaWYgKGRvQXBwZWFyYW5jZVVw
ZGF0ZSA9PSBTaG91bGRVcGRhdGVBcHBlYXJhbmNlOjpZZXMgJiYgbV9kb2N1bWVudCkKLSAgICAg
ICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOwor
ICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAKICNpZiBFTkFCTEUoVEVY
VF9DQVJFVCkKICAgICBpZiAobV9jYXJldFBhaW50KSB7CkBAIC0yMzUyLDcgKzIzNjAsNyBAQCBG
bG9hdFJlY3QgRnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyhDbGlwVG9WaXNpYmxlQ29u
dGVudCBjbGlwVG9WaXNpYmxlQ29udAogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0
dXJuIExheW91dFJlY3QoKTsKIAotICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlKCptX2RvY3VtZW50KTsKKyAgICBjb25zdF9jYXN0PEZyYW1lU2VsZWN0aW9uJj4oKnRo
aXMpLnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICBhdXRvKiByZW5kZXJWaWV3
ID0gbV9kb2N1bWVudC0+cmVuZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyVmlldykKICAgICAg
ICAgcmV0dXJuIExheW91dFJlY3QoKTsKQEAgLTI0NDgsNiArMjQ1Niw4IEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUs
IGNvbnN0IFNjcm9sCiAgICAgaWYgKGlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICB1
cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CisKICAgICBMYXlvdXRSZWN0IHJlY3Q7CiAg
ICAgYm9vbCBpbnNpZGVGaXhlZCA9IGZhbHNlOwogICAgIGlmIChpc0NhcmV0KCkpCkBAIC0yNTE5
LDYgKzI1MjksMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2hvdWxkU2hvd0Jsb2NrQ3Vy
c29yKGJvb2wgc2hvdWxkU2hvd0Jsb2NrQ3Vyc29yKQogICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsK
IH0KIAordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBwZWFyYW5jZUlmUmV2ZWFsaW5nU2Vs
ZWN0aW9uSXNOZWVkZWQoKQoreworICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlIHx8
IG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSA9PSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVh
bCkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsK
K30KKwogdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkK
IHsKICAgICBtX2FwcGVhcmFuY2VVcGRhdGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGQ2ZjFlZTZmMDVlNDM5NmYyNzhjNThmN2I4MWZk
NDQyZTYwM2ZiZS4uM2M5MTAxZTdlMTUzM2NhMWZkYzM1MGY4MjNmNGZhYTJlNTNkMjcwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMTUxLDYgKzE1MSw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxs
QmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAKKyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVh
bGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJM
YXlvdXQoKTsKICAgICB2b2lkIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFu
Z2UoKTsKIApAQCAtMjY3LDYgKzI2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21B
c3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rp
b25BcHBlYXJhbmNlTm93KCk7CiAgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2
aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJl
dmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IDIyMGIyNzE0MGNiNTU5NDFmZDllMjVlZDIyMjk0ODAzNWVkZmY5MDkuLmZmOWQzODMzMDE4
MmY5NjQ1MmMyYWNmZDgwYzFjOGI5M2FiMjczZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNl
dEVsZW1lbnQuaCIKQEAgLTQ5MSw2ICs0OTIsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OmZvY3VzQW5kU2hvd1ZhbGlkYXRpb25NZXNzYWdlKCkKIAogICAgIC8vIENhbGxpbmcgZm9j
dXMoKSB3aWxsIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXcuCiAgICAgZm9jdXMoKTsKKyAg
ICBSZWYgeyBkb2N1bWVudCgpIH0gLT4gc2VsZWN0aW9uKCkudXBkYXRlQXBwZWFyYW5jZUlmUmV2
ZWFsaW5nU2VsZWN0aW9uSXNOZWVkZWQoKTsKIAogICAgIC8vIGZvY3VzKCkgd2lsbCBzY3JvbGwg
dGhlIGVsZW1lbnQgaW50byB2aWV3IGFuZCB0aGlzIHNjcm9sbCBtYXkgaGFwcGVuIGFzeW5jaHJv
bm91c2x5LgogICAgIC8vIEJlY2F1c2Ugc2Nyb2xsaW5nIHRoZSB2aWV3IGhpZGVzIHRoZSB2YWxp
ZGF0aW9uIG1lc3NhZ2UsIHdlIG5lZWQgdG8gc2hvdyB0aGUgdmFsaWRhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDE2ZDUzODlkZmZmYWMzMjU0ZmNlZjRmYTc5YTA3
NjU1ZGQwMDMzMDIuLmZiMGFiY2VhMmFjZjBmMzBmMGUzN2Y2ODlmMDYzYzE3MWM4NDUyMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTQzNiw3ICs0MzYsNyBAQCB2b2lk
IEV2ZW50SGFuZGxlcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgbm9kZVRvQmVSZW1vdmVkKQog
c3RhdGljIHZvaWQgc2V0U2VsZWN0aW9uSWZOZWVkZWQoRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlv
biwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKQogewogICAgIGlmIChzZWxl
Y3Rpb24uc2VsZWN0aW9uKCkgIT0gbmV3U2VsZWN0aW9uICYmIHNlbGVjdGlvbi5zaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24pOworICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmln
Z2VyZWQpKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGRpc3BhdGNoU2VsZWN0U3RhcnQoTm9k
ZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDdiMjNiMjM3ZWNmNGU5MjBkZTY1NmYwNmE1
OWJmZjM1MzE4ZGYxODQuLjU1ZGE2Y2MzNDRlMTRmNDJjZmUzZjg1YjMyZGQ4Yzk5NzNkMWI0Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTY4NSw2ICsxNjg1LDEwIEBAIHZvaWQgUGFnZTo6ZG9B
ZnRlclVwZGF0ZVJlbmRlcmluZygpCiAgICAgICAgIGRvY3VtZW50LmVucXVldWVQYWludFRpbWlu
Z0VudHJ5SWZOZWVkZWQoKTsKICAgICB9KTsKIAorICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9j
dW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnNlbGVjdGlvbigpLnVwZGF0ZUFw
cGVhcmFuY2VBZnRlckxheW91dCgpOworICAgIH0pOworCiAgICAgZm9yRWFjaERvY3VtZW50KFtd
IChEb2N1bWVudCYgZG9jdW1lbnQpIHsKICAgICAgICAgZG9jdW1lbnQudXBkYXRlSGlnaGxpZ2h0
UG9zaXRpb25zKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2YxOTgzMzU2YzEwNGNlMGM0Yzc0NjE3OWE4
NzFiNzI2OWQ4ZjlkNS4uYWMxMDA0YmQ2N2QxOTI5ZTY0MjNhNjEyNzdhOTM5NmYyYjJiOThlZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTExLTAyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2UgYXNzZXJ0IGluIERvY3VtZW50
Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2Vk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ0NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgTW92ZWQgc29t
ZSB0ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFzZWQtcmVwYWludC5qcyBtb2RlbCBiZWNhdXNlIHNl
bGVjdGlvbiBpcyBub3cgdXBkYXRlZAorICAgICAgICBhbmQgcmV2ZWFsZWQgYXN5bmNocm9ub3Vz
bHkgaW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIgdHJpZ2dlcmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVt
IGlzIHRoYXQKKyAgICAgICAgYnkgdGhlIHRpbWUgdGhlIHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJp
ZWQgdGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBlbmVkIHlldC4gVGhhdCdzIHdoeQorICAgICAgICB0
aGUgdGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0aGF0IHdlIHdhaXQgdW50aWwgdGhlIHJlcGFpbnQg
aGFwcGVucy4KKworICAgICAgICBTYW1lIHNpdHVhdGlvbiBmb3Igb3RoZXIgdGVzdHMgdGhhdCBk
byBub3QgaW52b2x2ZSByZXBhaW50IHJlY3RzIGJ1dCB0cmlnZ2VyIGFjY2VzaWJpbGl0eQorICAg
ICAgICB0cmVlIHVwZGF0ZXMuIFdlIG11c3QgZW5zdXJlIHRoYXQgd2UgbGV0IHRoZSBub3RpZmlj
YXRpb24gYmUgdGhyb3duIGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIG9yCisgICAgICAgIG5vdCBo
YXMgYmVlbiBlbWl0ZWQuIEFzIGl0J3MgZG9uZSBhc3luY2hyb25vdXNseSB3ZSBtdXN0IGxldCB0
aGUgbWFpbiB0aHJlYWQgcnVuIGJlZm9yZSBjaGVja2luZy4KKworICAgICAgICBMYXN0IGJ1dCBu
b3QgbGVhc3QsIHNvbWUgb2YgdGhlIHRlc3RzIGFyZSB1c2luZyBzZXRUaW1lb3V0KCkgaW5zdGVh
ZCBvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKQorICAgICAgICBiZWNhdXNlIHRoZSByZXN1bHRz
IHdpdGggdGhlIGxhdHRlciB3ZXJlIG5vdCBhcyByZWxpYWJsZSB1bmRlciBzdHJlc3MvZGVidWcg
Y29uZGl0aW9ucy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3Vu
ZGFyeS11c2VyaW5mby5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlv
bi1jaGFuZ2UtdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxl
Y3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1j
aGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
ZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGls
ZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVw
YWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sOgorICAgICAgICAqIGZhc3QvcmVw
YWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9u
LW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWNh
dGFsaW5hLXdrMS9mYXN0L3JlcGFpbnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6
aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2Zh
c3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5j
cm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3Qv
cmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2Vs
ZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6CisKIDIwMjItMDEtMTkgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgZmlsdGVyUmVnaW9uIGFu
ZCBvdXRzZXRzIG9mIHJlZmVyZW5jZWQgU1ZHIGZpbHRlciBhcmUgY2FsY3VsYXRlZCBpbmNvcnJl
Y3RseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9u
LWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
ZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbAppbmRleCA4YmQ5MTk1NGIyZDhmZGM5MTQy
MDA4MjlkMThlMWRiMzdjYWVmM2JhLi5kODhmNTM4NWM2Y2Y5NTE5NmE4MDk0ZTZjZjMyNTZiNDky
ODg4NzcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rp
b24tYm91bmRhcnktdXNlcmluZm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbApAQCAtMTYyLDIwICsxNjIsMzEg
QEAKICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKLQotICAg
ICAgICBtb3ZlKHRydWUpOwotCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiaW5wdXQiKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlv
biB3YWl0Rm9yQW5pbWF0aW9uRnJhbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKHJlc29sdmUpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KIAotICAg
ICAgICBtb3ZlKGZhbHNlKTsKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNFbGVtZW50KGVsZW1lbnRJ
ZCkgeworICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJZCk7CisgICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4g
d2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAgIH0KIAotICAgICAgICB0ZXh0Ym94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRhcmVhIik7Ci0gICAgICAgIHRleHRib3guZm9j
dXMoKTsKKyAgICAgICAgZnVuY3Rpb24gbW92ZUFzeW5jKGlzVmVydGljYWwpIHsKKyAgICAgICAg
ICAgIG1vdmUoaXNWZXJ0aWNhbCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvckFuaW1hdGlv
bkZyYW1lKCk7CisgICAgICAgIH0KIAotICAgICAgICBtb3ZlKHRydWUpOworICAgICAgICAoYXN5
bmMgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXdhaXQgZm9jdXNFbGVtZW50KCJ0ZXh0Ym94
Iik7CisgICAgICAgICAgICBhd2FpdCBtb3ZlQXN5bmModHJ1ZSk7CisgICAgICAgICAgICBhd2Fp
dCBmb2N1c0VsZW1lbnQoImlucHV0Iik7CisgICAgICAgICAgICBhd2FpdCBtb3ZlQXN5bmMoZmFs
c2UpOworICAgICAgICAgICAgYXdhaXQgZm9jdXNFbGVtZW50KCJ0ZXh0YXJlYSIpOworICAgICAg
ICAgICAgYXdhaXQgbW92ZUFzeW5jKHRydWUpOworICAgICAgICB9KSgpOwogICAgIH0KIAogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rp
b24tY2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKaW5kZXggZTFlYmRlYzAyNzQyODY5OTY1YzVj
ZGRkYzYxMGY2YmJkOGViMmFkZi4uYmIzYzg2Y2ZjOGE5N2EwYzZjODdlNzkwYjU1M2Y4MDlmNWE4
OTdmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMTk1LDE5ICsxOTUsODcgQEAKICAg
ICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKIAogICAgICAgICB0
ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKLSAgICAgICAgdGV4
dGJveC5mb2N1cygpOwogCiAgICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAg
ICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotICAgICAgICBzLnNldFBvc2l0
aW9uKHRleHRib3gsIDApOwotICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKLSAgICAgICAg
ICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBncmFuW2ldKTsKLSAgICAgICAgICAgIHMu
bW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3JhbltpXSk7CisKKyAgICAgICAgZnVuY3Rpb24g
Zm9jdXNUZXh0Qm94KCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewor
ICAgICAgICAgICAgICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgICAgICAgICAgICAg
IHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbW92ZVNlbGVjdGlvbihkaXJlY3Rpb24sIGdyYW51
bGFyaXR5KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5
KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDAp
OworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KLSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFu
KSB7Ci0gICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICAgICAg
cy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbltpXSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZXh0ZW5kU2VsZWN0aW9uKGdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVu
ZCIsICJmb3J3YXJkIiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZl
KCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHJlc2V0UG9zaXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgcyA9IHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94
LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0s
IDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICAoYXN5bmMgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBhd2FpdCBmb2N1c1RleHRCb3goKTsKKyAgICAgICAgICAgIGF3
YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZv
cndhcmQiLCBncmFuWzBdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3
YXJkIiwgZ3JhblswXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJk
IiwgZ3JhblsxXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIs
IGdyYW5bMV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdy
YW5bMl0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFu
WzJdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzNd
KTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblszXSk7
CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls0XSk7Cisg
ICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNF0pOworICAg
ICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bNV0pOworICAgICAg
ICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzVdKTsKKyAgICAgICAg
ICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzZdKTsKKyAgICAgICAgICAg
IGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls2XSk7CisgICAgICAgICAgICBh
d2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls3XSk7CisgICAgICAgICAgICBhd2Fp
dCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bN10pOworICAgICAgICAgICAgYXdhaXQg
bW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bOF0pOworICAgICAgICAgICAgYXdhaXQgbW92
ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzhdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0
UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzBdKTsK
KyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4
dGVuZFNlbGVjdGlvbihncmFuWzFdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24o
KTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzJdKTsKKyAgICAgICAg
ICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVj
dGlvbihncmFuWzNdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAg
ICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzRdKTsKKyAgICAgICAgICAgIGF3YWl0
IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFu
WzVdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3
YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9z
aXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzddKTsKKyAg
ICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVu
ZFNlbGVjdGlvbihncmFuWzhdKTsKKyAgICAgICAgICB9KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFs
dWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5k
ZXggZWU5ZTBhODA1YTU5MWE4MWIyMTZhNWVhNThlOGY0ODAyNmI1YTBkYi4uOWU1MTg1ZmExNTc1
MmM2ZTU1MGJmMmYyYTdiMjRkMjk2MWYyOWUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1j
aGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbApAQCAtNDMsMTIgKzQzLDE1IEBAIGNvbnRlbnQg
aW5zaWRlCiAgICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZh
ciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRi
b3gsIDApOwotICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IDM7IGsrKykgeworICAgICAgICBz
Lm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAgICAgICByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9y
d2FyZCIsICJjaGFyYWN0ZXIiKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRyaWdnZXIgdmFs
dWUgY2hhbmdlLgotICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZh
bHNlLCAiaGVsbG8gIik7CisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4g
eworICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVy
Iik7CisgICAgICAgICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUt
Y2FyZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5k
bGluZS1jYXJldC5odG1sCmluZGV4IDczNGNkY2IwNmEzNjM2NjNiNWQwOTEwMDE0ZmQ2NjRiMjVh
NTQwZTguLmU0MmU0M2JhMmIyZjc0NTQ0ZTI5YjVlNmRkNzYxMzk4YTRjYzcxMzcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJl
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5k
bGluZS1jYXJldC5odG1sCkBAIC0xNSwxMyArMTUsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
dGEuZm9jdXMoKTsKICAgICAvLyBjbGljawogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
LSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKLSAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICAg
ICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9PSAxNykKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwg
PSAiVGVzdCBTdWNjZWVkZWQiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXMuaW5uZXJI
VE1MID0gIlRlc3QgRmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5kOworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAy
MCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0g
MTcpCisgICAgICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZh
aWxlZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICBy
ZXMuaW5uZXJIVE1MID0gIlRlc3QgY2FuJ3QgcnVuIHdpdGhvdXQgZXZlbnQgc2VuZGVyIChwYXJ0
IG9mIER1bXBSZW5kZXJUcmVlKS4gIgogICAgICAgICAgICAgKyAiVG8gdGVzdCBtYW51YWxseSwg
Y2xpY2sgYXQgdGhlIG1pZGRsZSBvZiB0aGUgbGluZSBtYXJrZWQgOSBhbmQgY2hlY2sgdGhhdCB0
aGUgY2FyZXQgYXBwZWFycyBhZnRlciB0aGUgOS4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhw
ZWN0ZWQudHh0CmluZGV4IDNhYmIwZjcwODlhM2YzYmNiYzZhYWRmNjlmNzNkNzc3YmY3OWUzMGEu
LmFjZWE1NGUwNTBkZjVkMmE3NzVhOWQ5OWQ5YjAxZjcwNjZiYTVhODEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNv
bHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVj
dGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0
ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRo
ZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGlu
dmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCAwIDAgMTAw
IDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgMCAwIDEwMCAxMDApICkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1j
aGlsZC5odG1sCmluZGV4IDdkNDdkMTI1OTFkOWJjOWZhMTIxNjkxZDBlNzQwZjlhZWRiM2Y0NzAu
LmU3ODMyZDJiNGExMTRlZmEzMjdkODM1YjZlNmM1ZTYyYmMxOTQxYzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hp
bGQuaHRtbApAQCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5S
ZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIg
dGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRT
ZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5n
LCAwKTsKKworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMu
cmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFj
a2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3
LDUgQEAKICAgICA8ZGl2PgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFi
c29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFp
bnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGls
ZC1leHBlY3RlZC50eHQKaW5kZXggZGIzYzM3NDE2NTZiMTc3OGM5MTQwZjcxNTRhZTg3YzU4MDZj
NDZiNC4uOTc5ZWZhMzllNTUwY2MyZTMyNTQ2MzEzMjlhOTEyYjdlZjU4ZjI5NyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0
ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0
IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdp
dGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0
IGZsaXBwZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBl
dGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5
LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWlu
dCByZWN0cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGls
ZC5odG1sCmluZGV4IDFiNjFlYmYyZDUwYjNhNGYwZDAyMzg5MTYxNjQ0MTdmZTI4ZTU2YTcuLjk4
N2QxMzU1YTZkOWE2MjZmYjc0NWE5MWZmODljNzJhOWU4OTYzNWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVk
LWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgog
PGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
ZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAg
ZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisK
ICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsK
ICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdl
dC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5k
b3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVy
bmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0pOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+
CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6
IHZlcnRpY2FsLXJsIj4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNv
bHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50
cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0
ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggYjdjMzA5N2M2YjE3NjE2ZTJmNWQ3NGU5OGI3ZTk4
NTk3MWE0NWEzMS4uNWNjOTYxNWQxZTMwZDg3NjA5ZGE0OWIzNzMzZGIwNWU5ZTQ2MTE3MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3Jt
ZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4
dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWlu
dCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxl
bWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhl
IGJveCB3aWxsIGJlIGNvbXBsZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGlu
dmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAx
MDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1l
ZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxN2VkMzViMWExNTg1
MTA5Mjc2ZjlkYmVmMDY4NDYzNjNlNDYwMTZmLi4wZDA3ODFkYzZlNWFlODgwODEyNjUzMmVkN2Vl
Mzg4YTVjOWVkNWY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0
bWwKQEAgLTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWlu
dFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAg
ICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0
aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7
CisKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFp
bnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdS
ZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0pOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBA
CiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4
KTsiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJy
Lz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4K
IDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVk
LnR4dAppbmRleCA4ZGJlZDQ0OWJiOWVhZWNjZmQ2NjM4Yjc1NzZiYWRiOGJiMDQzYzQ1Li5jNWEz
MTI4ZWE5MTljYzNhMWNkOGMyZjNmNTk5NDlkZTM4YWMyOGU1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
dHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcg
MTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5z
Zm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBmaXhlZCBlbGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1l
ZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdy
ZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAot
KHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxk
Lmh0bWwKaW5kZXggNzQ1YzU1ZWM3YTljN2Q5OWU1OGM0NWUyYmU2YjRiMjBiODAxNThhMy4uNjY3
NjYwODY0OWMzZjY2NGViMjI1NDYwNWE4NzMxMzYyOTY5MGYwYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4K
IDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAg
IGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwor
CiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7
CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJn
ZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2lu
ZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRl
cm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxl
PgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0
aW9uOiBmaXhlZDsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJy
ZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50
eHQKaW5kZXggODYxMjMyNmRmOGZhMTQ4MDE3YmMzYTRlNWY5NjU4NjUwYzJmOWRiZi4uYjE5OTJh
OTEwZGVkZDFjMGRkOWE1ZTI0NDRmYzg2ZTlmNDY3YjY1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDUgQEAgQQogQQogKHJlcGFpbnQgcmVjdHMKICAg
KHJlY3QgOCA2OCAyMCAxMDApCi0gIChyZWN0IDggNjggMjAgMTAwKQogKQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dAppbmRleCA5NTkxNWU2NjAwZjEyNTVjYmY2ZjIzOWY5ODY0OWQ3OThhMzc2MDQxLi40ZTdjMDky
NDM0NjdjZDc5MTUzNGU1ZmIxMmEwZTE4NTM1N2Y1NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgs
NyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0
aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24u
CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRl
c3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFp
bnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM4IDE4IDc5KQotKQotCisocmVwYWludCByZWN0cyAocmVj
dCA3NzQgMzggMTggNzkpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLmh0bWwKaW5kZXggMDI3ODQ0MGExZmI3MjQ0NDJkOTY0MjkyOGVhMmViMzIzOTNj
Y2EyMS4uYTBhYjQ1ZTU2MjQ1YTQ4YTkxYTMyNjkzODQxMDU0ZjI5MjZkZjkyNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKQEAgLTMsNyAr
MywxNSBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWlu
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBydW5SZXBhaW50
VGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgaWYgKGV2ZW50U2VuZGVyKSB7CiAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgNDApOwogICAgICAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKQEAgLTExLDYgKzE5LDE2IEBAIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewog
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDEyMCk7CiAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKICAgICB9CisKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50
ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BU
cmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9KTsKIH0K
IDwvc2NyaXB0PgogCkBAIC0yNiw0ICs0NCw1IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KKzxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4K
IDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYmQ5
ZjU4OWY5Y2NkOWM2NzQ4MjUxM2E3NDY2ZmNmYmJmZjdkMTk2OC4uZTJkM2U1OTdmZGQyYjFmYjY0
NGE1ZTM5YmFiMzVjY2E0ZTZjYjBkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAK
LShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk5IDE4KQotKQotCisocmVwYWludCByZWN0
cyAocmVjdCA4IDE2IDE5OSAxOCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCmluZGV4IGJjYzll
MzRkMTc3ODBlMDE2MDBlNTU4M2JjYWFiMWIwMjNhMTYyNjAuLmIzZGQxMDJkZGEwYTYzMGZiMjkw
OGFhOWE5MGZiMTU2ZTg3ZjdkMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKQEAgLTEsNSAr
MSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNl
ZC1yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogPHN0eWxlPgog
I3Rlc3QgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKQEAgLTEyLDExICsxMSwzMCBAQAog
fQogPC9zdHlsZT4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChm
YWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAg
ICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRlc3QsIDAsIHRlc3QsIDEpOwor
CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50
UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVw
YWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
KTsKICAgICB9OwogPC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3QoKSI+
CiAgICAgPHAgaWQ9InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQ8L3A+CisgICAg
PGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhMjk3Njg3MjhmZGZiZmJjMjRiZTE5YzVjYWQ2Yjcy
OGRjY2NjYzdmLi41NTc1MWMwNjBjNDEyYjFmNjNmYWNkMjNmYmJhNjVkNTUzOGMyYzhiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTU0Miw4ICsxNTQy
LDYgQEAgd2Via2l0Lm9yZy9iLzE1OTE0MyBmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1p
bi1ydGwuaHRtbCBbIEZhaWx1cmUgXQogIyBJbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGV2
ZW50U2VuZGVyIGNhdXNlcyB0aGlzIHRlc3QgdG8gZmFpbAogd2Via2l0Lm9yZy9iLzQyMTk0IGZh
c3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGlzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiAKLXdlYmtpdC5vcmcvYi8xMzkzNTQgZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0
bWwgWyBGYWlsdXJlIF0KLQogIyBNaXNzaW5nIGdseXBoIHN5bWJvbCBpcyBub3QgcmVuZGVyZWQg
cHJvcGVybHkuCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVy
bWluZWQtYnktcHJpbWFyeS1mb250Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDAy
NTIgZmFzdC90ZXh0L2RlY29yYXRpb25zLXdpdGgtdGV4dC1jb21iaW5lLmh0bWwgWyBGYWlsdXJl
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM1
NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi5Tb21lIHJ1YnkKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWlu
dGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
KHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM5IDE4IDgzKSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhp
ZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYTBhZTQ1
NjBkZmEzZDY2MTI1Y2YwZDQwMzA1MmRiMDgwNWU3MzgxMC4uMGZhNWRkYTVkNDIyYTY0MmFlYTFk
YWE3NGU5ZDhlODAxYWVjYTUyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rp
b24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBo
YXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcg
MTcpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk3IDE3KSApCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTc0OTZiODBlNTVi
YmMwYmYyYmIzYjRiNTIxYzkyMzY2N2RjNzBiNy4uYTBkNzY4MDViMzk5ZTkzYjNlNTNhZTIxNjdl
ODEyZDZiMTQ0OGJmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTUzMSwzICsxNTMxLDUgQEAgd2Via2l0Lm9yZy9iLzIzMTkxOCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWUK
IAogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtYWx0ZXJuYXRlLWlmcmFtZS1ib2R5LWRp
ci1hdHRyLWRvZXMtbm90LXVwZGF0ZS1zY3JvbGxiYXItcGxhY2VtZW50Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIAord2Via2l0Lm9yZy9iLzIzMTI5OCBhY2Nlc3NpYmlsaXR5L21hYy9zZWxl
Y3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIz
MjYzMCBmYXN0L2Zvcm1zL2F1dG9mb2N1cy1vcGVyYS0wMDMuaHRtbCBbIEZhaWx1cmUgXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9m
b2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9j
dXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzY4Mzc5Y2MxOGUyMGI1MjI5MjJjY2U2MmFjOWNmMjY0MWNkNGY1Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJp
bGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmlu
Zy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCisgMQorIDIKK1RoaXMgdGVzdHMgdGhh
dCBjYWxsaW5nIGZvY3VzIG9uIGEgcmVuZGVyIG9iamVjdCB3aGVuIGl0IGRvZXNuJ3QgcmVzdWx0
IGluIGEgc2VsZWN0aW9uIGNoYW5nZSB3b24ndCBsZWF2ZSBpc1N5bmNocm9uaXppbmdTZWxlY3Rp
b24gc2V0IHRvIHRydWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFk
ZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9j
dXNlZEVsZW1lbnQuaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxl
bWVudEJ5SWQoIjEiKSkgaXMgdHJ1ZQorUEFTUyBheFRleHRTdGF0ZVN5bmNPbmUgaXMgdW5kZWZp
bmVkCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgi
MSIpLmlzRm9jdXNhYmxlIGlzIHRydWUKK1BBU1MgYXhUZXh0U3RhdGVTeW5jVHdvIGlzIHVuZGVm
aW5lZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3
NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Jl
cGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJmMDEwZmFjNDYyN2UzMTQ1
MWYxNDFhMzg1MWI0NjI2NmQ3ZDI5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTQgQEAKKworCisKKyhyZXBhaW50IHJlY3RzCisgIChyZWN0IDEgMTkgMTUgMzIpCisgIChy
ZWN0IDggMjYgMSAxOCkKKyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJlY3QgOCAyNiAxIDE4KQor
ICAocmVjdCAxIDM3IDc5OCAzMikKKyAgKHJlY3QgOCA0NCA3ODQgMTgpCisgIChyZWN0IDEgNTEg
Nzk4IDE4KQorICAocmVjdCAxIDQ0IDc5OCA3KQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFjZDRiMDE4OTAxODU1ODFiOTI3YjY0YjQ0NzgzMTRm
YTQ4YWU1ZjMuLmE0MmY0NWUwYWU2YTVkZTI4MDI0MTY1N2U5NWVmOTUwMTEyNDUzMjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNDMxLDMgKzI0MzEs
NSBAQCB3ZWJraXQub3JnL2IvMjIxMjMwIFsgQmlnU3VyKyBdIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZAogCiAjIFRoaXMgdGVzdCBpcyBzcGVjaWZpYyB0
byBDb3JlIFRleHQuCiBmYXN0L3RleHQvZm9udC1sb29rdXAtZG90LXByZWZpeC1jYXNlLXNlbnNp
dGl2ZS5odG1sIFsgUGFzcyBdCisKK3dlYmtpdC5vcmcvYi8yMzEyOTggYWNjZXNzaWJpbGl0eS9t
YWMvc2VsZWN0aW9uLXN5bmMuaHRtbCBbIFNraXAgXSAjIFRpbWVvdXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ5Y2E3ZGMxOGU5ZThkNmMwMjU3NjI1Mzg4MTlkM2NjZGY0ZGRhMTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50
LzQ3NzY3NjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworCisKKyhyZXBhaW50IHJl
Y3RzCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3Qg
MSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcpCispCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGls
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGUwMmMwOTJiYTUzM2I2
ZTZkMDZlMjIwODY4M2M0MWUzNGI4OTI4MjQuLjUwMjM1MWFiNzAzNGU4NWRiZTA0NGE2MWU1NjY5
MWE0YTUyNjQzMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxk
LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMg
ZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQg
Zml4ZWQgZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJl
IGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29y
cmVjdGx5Lg0KIA0KIA0KLShyZXBhaW50IHJlY3RzDQotICAocmVjdCAwIDAgMTAwIDEwMCkNCi0p
DQogDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAppbmRleCA1YTkzNGY0
NzM3ZmU1ZjlmZjE2NTRlYTdhMmIxMzJmZjdlYjJiNWM3Li5mYzU1OTU5N2VlYTBlOTIwZDE5NWFk
Mjc1OGEwOTI3ZjFiMjYyNTExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rp
b24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzkgMTggODMpCi0pCi0KKyhyZXBhaW50
IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IDBhNzcxZDQ2OWExZGIw
ZDRjN2M2N2Y1NTA1YTVlZTI3ZWI5ZjAzNWUuLjQxOTA0MDM4ODM1NjUxNzQ4NjZmMzA4MzFlMWJk
MGE1ZmUxMGQ2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3Jl
cGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJm
bG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVl
biBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE4KQotKQot
CisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxOCkgKQo=
</data>
<flag name="commit-queue"
          id="475682"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449575</attachid>
            <date>2022-01-20 08:08:13 -0800</date>
            <delta_ts>2022-01-31 11:31:49 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224471-20220120170809.patch</filename>
            <type>text/plain</type>
            <size>42777</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDYwMWI0YTI1MWQzNDYx
MzkyNjczYTcwYTRhNDNhZjM0MWI5YzBhNy4uMzM5M2M1NmJiZTAzNmQ5YWI2ODQ4YjQ5ZTZhYTRl
ODM4NDk3ZTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOiBD
YWxsIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKSBmb3IKKyAgICAg
ICAgIUlzVXNlclRyaWdnZXJlZCBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3cpOiBSZW5hbWVkIGZyb20gdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUuCisgICAgICAgIEl0IGRvZXMgbm90IG5l
ZWQgdGhlIERvY3VtZW50JiBhdHRyaWJ1dGUgYmVjYXVzZSBpdCB3YXMgYWx3YXlzIGNhbGxlZCB3
aXRoIG1fZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6YWJzb2x1
dGVDYXJldEJvdW5kcyk6IFJlcGxhY2VkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlIHdpdGgKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJpbGl0eSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbik6IENhbGwgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rp
b25Jc05lZWRlZCk6IE5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTZWxlY3Rp
b25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFNlbGVjdGlvbklmTmVlZGVkKTogU2V0IHRoZSBVc2VyVHJpZ2dlcmVk
IGZsYWcgZm9yIGNhbGxpbmcgc2V0U2VsZWN0aW9uKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcpOiBDYWxs
IHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpLgorCiAyMDIyLTAxLTE4ICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZmxleGJveF0g
QWRkIHN1cHBvcnQgZm9yIGludHJpbnNpYyBzaXplcyB0byB0aGUgZmxleCBzaG9ydGhhbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYWRhYjlkMWE4Y2M3
YzA5ZGNmOWQ2Nzg2OGUzZmUwODk3MjM0ZGJmZi4uNjM3Y2Q3NmYwOTY4YmJhN2RjNDVjZTYzMDAz
Yjc1Mzk3MDE2ZGFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAKQEAgLTQ1NCw2ICs0NTQsMTEgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAo
ZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygp
KQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIShvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVk
KSkgeworICAgICAgICBzY2hlZHVsZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
aW50ZW50LCBvcHRpb25zLmNvbnRhaW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6
U21vb3RoIDogU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIG9wdGlvbnMuY29udGFpbnMoUmV2ZWFs
U2VsZWN0aW9uQm91bmRzKSA/IFJldmVhbEV4dGVudE9wdGlvbjo6RG9Ob3RSZXZlYWxFeHRlbnQg
OiBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAKICAgICBpZiAob3B0aW9ucyAm
IElzVXNlclRyaWdnZXJlZCkgewpAQCAtNDYyLDEzICs0NjcsMTYgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0
aW9uU2V0PFMKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRp
bmdMYXlvdXRPclN0eWxlKERvY3VtZW50JiBkb2N1bWVudCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKQogeworICAgIFJlZiBkb2N1bWVudCA9ICpt
X2RvY3VtZW50OwogI2lmIEVOQUJMRShURVhUX0NBUkVUKQotICAgIGRvY3VtZW50LnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50LT51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICNlbHNlCi0gICAgZG9jdW1lbnQudXBkYXRl
U3R5bGVJZk5lZWRlZCgpOworICAgIGRvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAj
ZW5kaWYKKyAgICBpZiAobV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQorICAgICAgICB1cGRhdGVB
cHBlYXJhbmNlKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9u
VXBkYXRlKFJldmVhbFNlbGVjdGlvbkFmdGVyVXBkYXRlIHJldmVhbE1vZGUpCkBAIC0xNjg2LDcg
KzE2OTQsNyBAQCBJbnRSZWN0IEZyYW1lU2VsZWN0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKGJv
b2wqIGluc2lkZUZpeGVkKQogewogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJu
IEludFJlY3QoKTsKLSAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgq
bV9kb2N1bWVudCk7CisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHJl
Y29tcHV0ZUNhcmV0UmVjdCgpOwogICAgIGlmIChpbnNpZGVGaXhlZCkKICAgICAgICAgKmluc2lk
ZUZpeGVkID0gbV9jYXJldEluc2lkZVBvc2l0aW9uRml4ZWQ7CkBAIC0yMjQ0LDcgKzIyNTIsNyBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRDYXJldFZpc2liaWxpdHkoQ2FyZXRWaXNpYmlsaXR5
IHZpc2liaWxpdHksIFNob3VsZFVwZGF0ZQogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCB0
cmlnZ2VyIGEgc3luY2hyb25vdXMgbGF5b3V0IGhlcmUuCiAgICAgaWYgKGRvQXBwZWFyYW5jZVVw
ZGF0ZSA9PSBTaG91bGRVcGRhdGVBcHBlYXJhbmNlOjpZZXMgJiYgbV9kb2N1bWVudCkKLSAgICAg
ICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOwor
ICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAKICNpZiBFTkFCTEUoVEVY
VF9DQVJFVCkKICAgICBpZiAobV9jYXJldFBhaW50KSB7CkBAIC0yMzUyLDcgKzIzNjAsNyBAQCBG
bG9hdFJlY3QgRnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyhDbGlwVG9WaXNpYmxlQ29u
dGVudCBjbGlwVG9WaXNpYmxlQ29udAogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0
dXJuIExheW91dFJlY3QoKTsKIAotICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlKCptX2RvY3VtZW50KTsKKyAgICBjb25zdF9jYXN0PEZyYW1lU2VsZWN0aW9uJj4oKnRo
aXMpLnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICBhdXRvKiByZW5kZXJWaWV3
ID0gbV9kb2N1bWVudC0+cmVuZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyVmlldykKICAgICAg
ICAgcmV0dXJuIExheW91dFJlY3QoKTsKQEAgLTI0NDgsNiArMjQ1Niw4IEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUs
IGNvbnN0IFNjcm9sCiAgICAgaWYgKGlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICB1
cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CisKICAgICBMYXlvdXRSZWN0IHJlY3Q7CiAg
ICAgYm9vbCBpbnNpZGVGaXhlZCA9IGZhbHNlOwogICAgIGlmIChpc0NhcmV0KCkpCkBAIC0yNTE5
LDYgKzI1MjksMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2hvdWxkU2hvd0Jsb2NrQ3Vy
c29yKGJvb2wgc2hvdWxkU2hvd0Jsb2NrQ3Vyc29yKQogICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsK
IH0KIAordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBwZWFyYW5jZUlmUmV2ZWFsaW5nU2Vs
ZWN0aW9uSXNOZWVkZWQoKQoreworICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlIHx8
IG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSA9PSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVh
bCkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsK
K30KKwogdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkK
IHsKICAgICBtX2FwcGVhcmFuY2VVcGRhdGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGQ2ZjFlZTZmMDVlNDM5NmYyNzhjNThmN2I4MWZk
NDQyZTYwM2ZiZS4uM2M5MTAxZTdlMTUzM2NhMWZkYzM1MGY4MjNmNGZhYTJlNTNkMjcwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMTUxLDYgKzE1MSw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxs
QmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAKKyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVh
bGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJM
YXlvdXQoKTsKICAgICB2b2lkIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFu
Z2UoKTsKIApAQCAtMjY3LDYgKzI2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21B
c3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rp
b25BcHBlYXJhbmNlTm93KCk7CiAgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2
aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJl
dmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IDIyMGIyNzE0MGNiNTU5NDFmZDllMjVlZDIyMjk0ODAzNWVkZmY5MDkuLjZkNDc4NDRjNjcw
ZDJmYWI5YThkN2UxMjRlMTEwNjA5N2ExMGU1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNl
dEVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAxNmQ1Mzg5
ZGZmZmFjMzI1NGZjZWY0ZmE3OWEwNzY1NWRkMDAzMzAyLi5mYjBhYmNlYTJhY2YwZjMwZjBlMzdm
Njg5ZjA2M2MxNzFjODQ1MjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC00MzYsNyArNDM2LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkKE5v
ZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVlZGVkKEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVj
dGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvbigpICE9IG5ld1NlbGVjdGlvbiAm
JiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBk
aXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA3YjIz
YjIzN2VjZjRlOTIwZGU2NTZmMDZhNTliZmYzNTMxOGRmMTg0Li41NWRhNmNjMzQ0ZTE0ZjQyY2Zl
M2Y4NWIzMmRkOGM5OTczZDFiNGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2ODUsNiArMTY4
NSwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcoKQogICAgICAgICBkb2N1
bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CiAgICAgfSk7CiAKKyAgICBm
b3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVu
dC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsKKwog
ICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRv
Y3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNmMTk4
MzM1NmMxMDRjZTBjNGM3NDYxNzlhODcxYjcyNjlkOGY5ZDUuLmJkZThjNjk0NTBiNzBhZDE1MGI0
MTkzZjcyMGQ0ZGVjYzY5NWJjMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMS0xMS0wMiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZWxl
YXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMgb3V0IG9mIHRoZSB0ZXh0LWJhc2VkLXJlcGFp
bnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24gaXMgbm93IHVwZGF0ZWQKKyAgICAgICAgYW5k
IHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRoZSBjYXNlIG9mIG5vbi11c2VyIHRyaWdnZXJl
ZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSBy
ZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1cGRhdGUgaGFzIG5vdCBoYXBwZW5lZCB5ZXQu
IFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3RzIHdlcmUgbW9kaWZpZWQgc28gdGhhdCB3ZSB3
YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMuCisKKyAgICAgICAgU2FtZSBzaXR1YXRpb24g
Zm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90IGludm9sdmUgcmVwYWludCByZWN0cyBidXQgdHJp
Z2dlciBhY2Nlc2liaWxpdHkKKyAgICAgICAgdHJlZSB1cGRhdGVzLiBXZSBtdXN0IGVuc3VyZSB0
aGF0IHdlIGxldCB0aGUgbm90aWZpY2F0aW9uIGJlIHRocm93biBiZWZvcmUgY2hlY2tpbmcgd2hl
dGhlciBvcgorICAgICAgICBub3QgaGFzIGJlZW4gZW1pdGVkLiBBcyBpdCdzIGRvbmUgYXN5bmNo
cm9ub3VzbHkgd2UgbXVzdCBsZXQgdGhlIG1haW4gdGhyZWFkIHJ1biBiZWZvcmUgY2hlY2tpbmcu
CisKKyAgICAgICAgTGFzdCBidXQgbm90IGxlYXN0LCBzb21lIG9mIHRoZSB0ZXN0cyBhcmUgdXNp
bmcgc2V0VGltZW91dCgpIGluc3RlYWQgb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkKKyAgICAg
ICAgYmVjYXVzZSB0aGUgcmVzdWx0cyB3aXRoIHRoZSBsYXR0ZXIgd2VyZSBub3QgYXMgcmVsaWFi
bGUgdW5kZXIgc3RyZXNzL2RlYnVnIGNvbmRpdGlvbnMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRp
b25lZC1lbXB0eS1jb250ZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS1z
Y3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1j
aGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAq
IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1l
ZC1maXhlZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFp
bnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlv
bi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC90
ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWNhdGFsaW5hLXdrMS9mYXN0L3Jl
cGFpbnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3Np
YmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFy
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhp
ZGRlbi1leHBlY3RlZC50eHQ6CisKIDIwMjItMDEtMTkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgZmlsdGVyUmVnaW9uIGFuZCBvdXRzZXRzIG9mIHJlZmVy
ZW5jZWQgU1ZHIGZpbHRlciBhcmUgY2FsY3VsYXRlZCBpbmNvcnJlY3RseQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnkt
dXNlcmluZm8uaHRtbAppbmRleCA4YmQ5MTk1NGIyZDhmZGM5MTQyMDA4MjlkMThlMWRiMzdjYWVm
M2JhLi5kODhmNTM4NWM2Y2Y5NTE5NmE4MDk0ZTZjZjMyNTZiNDkyODg4NzcxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmlu
Zm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91
bmRhcnktdXNlcmluZm8uaHRtbApAQCAtMTYyLDIwICsxNjIsMzEgQEAKICAgICAgICAgdmFyIGFk
ZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmlj
YXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0
cnVlIik7CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0
Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKLQotICAgICAgICBtb3ZlKHRydWUpOwot
Ci0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQiKTsKLSAg
ICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlvbiB3YWl0Rm9yQW5pbWF0aW9u
RnJhbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29s
dmUpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KIAotICAgICAgICBtb3ZlKGZhbHNlKTsK
KyAgICAgICAgZnVuY3Rpb24gZm9jdXNFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAg
ICBlbGVtZW50LmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZy
YW1lKCk7CisgICAgICAgIH0KIAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRleHRhcmVhIik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgZnVu
Y3Rpb24gbW92ZUFzeW5jKGlzVmVydGljYWwpIHsKKyAgICAgICAgICAgIG1vdmUoaXNWZXJ0aWNh
bCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAg
IH0KIAotICAgICAgICBtb3ZlKHRydWUpOworICAgICAgICAoYXN5bmMgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgYXdhaXQgZm9jdXNFbGVtZW50KCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICBh
d2FpdCBtb3ZlQXN5bmModHJ1ZSk7CisgICAgICAgICAgICBhd2FpdCBmb2N1c0VsZW1lbnQoImlu
cHV0Iik7CisgICAgICAgICAgICBhd2FpdCBtb3ZlQXN5bmMoZmFsc2UpOworICAgICAgICAgICAg
YXdhaXQgZm9jdXNFbGVtZW50KCJ0ZXh0YXJlYSIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFz
eW5jKHRydWUpOworICAgICAgICB9KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVz
ZXJpbmZvLmh0bWwKaW5kZXggZTFlYmRlYzAyNzQyODY5OTY1YzVjZGRkYzYxMGY2YmJkOGViMmFk
Zi4uYmIzYzg2Y2ZjOGE5N2EwYzZjODdlNzkwYjU1M2Y4MDlmNWE4OTdmMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbApAQCAtMTk1LDE5ICsxOTUsODcgQEAKICAgICAgICAgc2hvdWxkQmUoImFk
ZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKIAogICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwogCiAg
ICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2lu
ZG93LmdldFNlbGVjdGlvbigpOwotICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwot
ICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3Zl
IiwgImZvcndhcmQiLCBncmFuW2ldKTsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJh
Y2t3YXJkIiwgZ3JhbltpXSk7CisKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNUZXh0Qm94KCkgewor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAg
ICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gbW92ZVNlbGVjdGlvbihkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSB7CisgICAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
cy5tb2RpZnkoIm1vdmUiLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0KLSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBz
LnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIs
ICJmb3J3YXJkIiwgZ3JhbltpXSk7CisKKyAgICAgICAgZnVuY3Rpb24gZXh0ZW5kU2VsZWN0aW9u
KGdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3Jh
bnVsYXJpdHkpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAg
ICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHJlc2V0UG9zaXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAg
ICAgICAgICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICAoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBhd2FpdCBmb2N1c1RleHRCb3goKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24o
KTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzBdKTsK
KyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblswXSk7Cisg
ICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsxXSk7CisgICAg
ICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMV0pOworICAgICAg
ICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMl0pOworICAgICAgICAg
ICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzJdKTsKKyAgICAgICAgICAg
IGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzNdKTsKKyAgICAgICAgICAgIGF3
YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblszXSk7CisgICAgICAgICAgICBhd2Fp
dCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls0XSk7CisgICAgICAgICAgICBhd2FpdCBt
b3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQgbW92
ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bNV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNl
bGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxl
Y3Rpb24oImZvcndhcmQiLCBncmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rp
b24oImJhY2t3YXJkIiwgZ3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9u
KCJmb3J3YXJkIiwgZ3Jhbls3XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJi
YWNrd2FyZCIsIGdyYW5bN10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9y
d2FyZCIsIGdyYW5bOF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dh
cmQiLCBncmFuWzhdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAg
ICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzBdKTsKKyAgICAgICAgICAgIGF3YWl0
IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFu
WzFdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3
YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9z
aXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzNdKTsKKyAg
ICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVu
ZFNlbGVjdGlvbihncmFuWzRdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsK
KyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzVdKTsKKyAgICAgICAgICAg
IGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlv
bihncmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAg
ICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0IHJl
c2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzhd
KTsKKyAgICAgICAgICB9KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJp
YS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24t
dmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggZWU5ZTBhODA1YTU5MWE4
MWIyMTZhNWVhNThlOGY0ODAyNmI1YTBkYi4uYWU1MDVhMmQ1MDk2ZWY4YjAyOGY2NGFmMjM1MDYx
MDFjOTMxOTg5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2Vs
ZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRl
eHRib3guaHRtbApAQCAtNDMsMTIgKzQzLDE3IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIC8v
IFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNl
bGVjdGlvbigpOwogICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBm
b3IgKHZhciBrID0gMDsgayA8IDM7IGsrKykgeworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoKCkgPT4gewogICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFy
YWN0ZXIiKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgot
ICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8g
Iik7CisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAg
ICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAg
ICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAg
ICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAgICB9CiAKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24td2l0aC1h
YnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwK
aW5kZXggOWFkNjRhZDljNTZiNWNjMWU2ZWVlMTdlNDAwODFhYzRiNGMyNDYyYy4uZWU5ZWZlNDUx
MjViMjZmMDY1ZDkyZmQ5ZGVjMzRkZTAxNmI3MGQwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBv
c2l0aW9uZWQtZW1wdHktY29udGVudC5odG1sCkBAIC0xNCwxMyArMTQsMTcgQEAgc3BhbiB7CiA8
c2NyaXB0PgogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgIGludGVybmFscy5zdGFydFRyYWNraW5n
UmVwYWludHMoKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotd2luZG93LmdldFNlbGVjdGlvbigp
LnNlbGVjdEFsbENoaWxkcmVuKGZvb2Jhcik7Ci0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0g
IHJlc3VsdC5pbm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7Ci0gIGlu
dGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKIH0KLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihmb29iYXIpOworcmVxdWVzdEFuaW1hdGlv
bkZyYW1lKCgpID0+IHsKKyAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICByZXN1bHQuaW5u
ZXJUZXh0ID0gaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgIGludGVybmFscy5z
dG9wVHJhY2tpbmdSZXBhaW50cygpOworICB9CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQu
aHRtbAppbmRleCA3MzRjZGNiMDZhMzYzNjYzYjVkMDkxMDAxNGZkNjY0YjI1YTU0MGU4Li5lNDJl
NDNiYTJiMmY3NDU0NGUyOWI1ZTZkZDc2MTM5OGE0Y2M3MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQu
aHRtbApAQCAtMTUsMTMgKzE1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRhLmZvY3VzKCk7
CiAgICAgLy8gY2xpY2sKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIGlmICh0YS5z
ZWxlY3Rpb25FbmQgPT0gMTcpCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3Vj
Y2VlZGVkIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0
IEZhaWxlZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9
PiB7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CisgICAgICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQorICAgICAg
ICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0
IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzLmlubmVySFRN
TCA9ICJUZXN0IGNhbid0IHJ1biB3aXRob3V0IGV2ZW50IHNlbmRlciAocGFydCBvZiBEdW1wUmVu
ZGVyVHJlZSkuICIKICAgICAgICAgICAgICsgIlRvIHRlc3QgbWFudWFsbHksIGNsaWNrIGF0IHRo
ZSBtaWRkbGUgb2YgdGhlIGxpbmUgbWFya2VkIDkgYW5kIGNoZWNrIHRoYXQgdGhlIGNhcmV0IGFw
cGVhcnMgYWZ0ZXIgdGhlIDkuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApp
bmRleCAzYWJiMGY3MDg5YTNmM2JjYmM2YWFkZjY5ZjczZDc3N2JmNzllMzBhLi5hY2VhNTRlMDUw
ZGY1ZDJhNzc1YTlkOTlkOWIwMWY3MDY2YmE1YTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQt
ZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBk
b24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBh
YnNvbHV0ZSBlbGVtZW50cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwg
YmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBj
b3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0K
KyhyZXBhaW50IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbApp
bmRleCA3ZDQ3ZDEyNTkxZDliYzlmYTEyMTY5MWQwZTc0MGY5YWVkYjNmNDcwLi5lNzgzMmQyYjRh
MTE0ZWZhMzI3ZDgzNWI2ZTZjNWU2MmJjMTk0MWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKQEAg
LTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+
Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3Qo
KQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRl
cm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAg
ICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0
c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50
cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwog
ICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAg
PGRpdj4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjog
cmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxi
ci8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+
CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQu
dHh0CmluZGV4IGRiM2MzNzQxNjU2YjE3NzhjOTE0MGY3MTU0YWU4N2M1ODA2YzQ2YjQuLjk3OWVm
YTM5ZTU1MGNjMmUzMjU0NjMxMzI5YTkxMmI3ZWY1OGYyOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZs
aXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTEx
MDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9y
bXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFy
ZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4g
aWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVw
YWludCByZWN0cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJl
Y3QgMCAwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRl
eCAxYjYxZWJmMmQ1MGIzYTRmMGQwMjM4OTE2MTY0NDE3ZmUyOGU1NmE3Li45ODdkMTM1NWE2ZDlh
NjI2ZmI3NDVhOTFmZjg5YzcyYTllODk2MzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1j
aGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1
blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdl
dFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxp
bmcsIDApOworCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFs
cy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRy
YWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9KTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCAr
MzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1y
bCI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJl
ZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIv
PjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2Pgog
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhw
ZWN0ZWQudHh0CmluZGV4IGI3YzMwOTdjNmIxNzYxNmUyZjVkNzRlOThiN2U5ODU5NzFhNDVhMzEu
LjVjYzk2MTVkMWUzMGQ4NzYwOWRhNDliMzczM2RiMDVlOWU0NjExNzMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRl
LWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyAr
Miw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5
IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQg
Z2V0IHRyYW5zZm9ybWVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBi
ZSBjb21wbGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBj
b3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkK
LQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUt
Y2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5z
Zm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggMTdlZDM1YjFhMTU4NTEwOTI3NmY5ZGJl
ZjA2ODQ2MzYzZTQ2MDE2Zi4uMGQwNzgxZGM2ZTVhZTg4MDgxMjY1MzJlZDdlZTM4OGE1YzllZDVm
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJh
bnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDEx
ICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAg
IGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAg
ICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxz
LnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJh
c2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAg
IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
I3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1Rl
eHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9
CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYg
c3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAg
ICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDog
MTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJy
Lz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXgg
OGRiZWQ0NDliYjllYWVjY2ZkNjYzOGI3NTc2YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5Y2Mz
YTFjZDhjMmYzZjU5OTQ5ZGUzOGFjMjhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2Vs
ZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlz
IHRlc3RzIHRoYXQgZml4ZWQgZWxlbWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFs
aWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUg
c2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJl
Y3RzCi0gIChyZWN0IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUw
IDUwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmluZGV4
IDc0NWM1NWVjN2E5YzdkOTllNThjNDVlMmJlNmI0YjIwYjgwMTU4YTMuLjY2NzY2MDg2NDljM2Y2
NjRlYjIyNTQ2MDVhODczMTM2Mjk2OTBmMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQt
Y2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBy
dW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBn
ZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJs
aW5nLCAwKTsKKworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5h
bHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BU
cmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQg
KzM3LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUw
cHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQt
Y29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogZml4ZWQ7
Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwv
ZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDg2
MTIzMjZkZjhmYTE0ODAxN2JjM2E0ZTVmOTY1ODY1MGMyZjlkYmYuLmIxOTkyYTkxMGRlZGQxYzBk
ZDlhNWUyNDQ0ZmM4NmU5ZjQ2N2I2NTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTIsNiArMiw1IEBAIEEKIEEKIChyZXBhaW50IHJlY3RzCiAgIChyZWN0IDggNjgg
MjAgMTAwKQotICAocmVjdCA4IDY4IDIwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggOTU5
MTVlNjYwMGYxMjU1Y2JmNmYyMzlmOTg2NDlkNzk4YTM3NjA0MS4uNGU3YzA5MjQzNDY3Y2Q3OTE1
MzRlNWZiMTJhMGUxODUzNTdmNTc0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBU
ZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3Rp
bmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBi
b3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGgg
aGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KLShyZXBhaW50IHJlY3RzCi0g
IChyZWN0IDc3NCAzOCAxOCA3OSkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM4IDE4
IDc5KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1
YnktcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5o
dG1sCmluZGV4IDAyNzg0NDBhMWZiNzI0NDQyZDk2NDI5MjhlYTJlYjMyMzkzY2NhMjEuLmEwYWI0
NWU1NjI0NWE0OGE5MWEzMjY5Mzg0MTA1NGYyOTI2ZGY5MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCkBAIC0zLDcgKzMsMTUgQEAKIDxo
ZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKSB7Cisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5n
UmVwYWludHMoKTsKKwogICAgIGlmIChldmVudFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyg3OTAsIDQwKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
CkBAIC0xMSw2ICsxOSwxNiBAQCBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCAxMjApOwogICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7CiAgICAgfQorCisgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBh
aW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBh
aW50cygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSk7CiB9CiA8L3NjcmlwdD4K
IApAQCAtMjYsNCArNDQsNSBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi48YnI+Cis8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZs
b3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGJkOWY1ODlmOWNjZDlj
Njc0ODI1MTNhNzQ2NmZjZmJiZmY3ZDE5NjguLmUyZDNlNTk3ZmRkMmIxZmI2NDRhNWUzOWJhYjM1
Y2NhNGU2Y2IwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CkBA
IC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAogCi0ocmVwYWludCBy
ZWN0cwotICAocmVjdCA4IDE2IDE5OSAxOCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgOCAx
NiAxOTkgMTgpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90
ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCBiY2M5ZTM0ZDE3NzgwZTAx
NjAwZTU1ODNiY2FhYjFiMDIzYTE2MjYwLi5iM2RkMTAyZGRhMGE2MzBmYjI5MDhhYTlhOTBmYjE1
NmU4N2Y3ZDJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxl
Y3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0xLDUgKzEsNCBAQAogPCFE
T0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5q
cyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KIDxzdHlsZT4KICN0ZXN0IHsKICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CkBAIC0xMiwxMSArMTEsMzAgQEAKIH0KIDwvc3R5bGU+
CiA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5SZXBhaW50VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
ICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgZ2V0U2Vs
ZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXN0LCAwLCB0ZXN0LCAxKTsKKworICAgICAgICBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93
LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNy
ZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0
KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfTsK
IDwvc2NyaXB0PgogCiA8Ym9keSBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCkiPgogICAgIDxwIGlk
PSJ0ZXN0Ij5TaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kPC9wPgorICAgIDxkaXYgaWQ9InJl
cGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggYTI5NzY4NzI4ZmRmYmZiYzI0YmUxOWM1Y2FkNmI3MjhkY2NjY2M3Zi4u
NTU3NTFjMDYwYzQxMmIxZjYzZmFjZDIzZmJiYTY1ZDU1MzhjMmM4YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1NDIsOCArMTU0Miw2IEBAIHdlYmtp
dC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwg
WyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNlbmRlciBj
YXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcvYi80MjE5NCBmYXN0L3Njcm9sbGlu
Zy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQu
b3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIFsgRmFpbHVy
ZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90IHJlbmRlcmVkIHByb3Blcmx5Lgog
d2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhlaWdodC1kZXRlcm1pbmVkLWJ5LXBy
aW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvdGV4
dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5
LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNTU5NTk3ZWVhMGU5
MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rp
b24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4K
K1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5n
IGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KKyhyZXBhaW50IHJl
Y3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGEwYWU0NTYwZGZhM2Q2NjEy
NWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQyMmE2NDJhZWExZGFhNzRlOWQ4ZTgw
MWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFp
bnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93
LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBi
YWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE3KQotKQotCiso
cmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU3NDk2YjgwZTU1YmJjMGJmMmJiM2I0
YjUyMWM5MjM2NjdkYzcwYjcuLmEwZDc2ODA1YjM5OWU5M2IzZTUzYWUyMTY3ZTgxMmQ2YjE0NDhi
ZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTE1MzEsMyArMTUzMSw1IEBAIHdlYmtpdC5vcmcvYi8yMzE5MTggaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lCiAKIGZhc3Qvc2Ny
b2xsaW5nL3J0bC1zY3JvbGxiYXJzLWFsdGVybmF0ZS1pZnJhbWUtYm9keS1kaXItYXR0ci1kb2Vz
LW5vdC11cGRhdGUtc2Nyb2xsYmFyLXBsYWNlbWVudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiAKK3dlYmtpdC5vcmcvYi8yMzEyOTggYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5k
YXJ5LXVzZXJpbmZvLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMzI2MzAgZmFzdC9m
b3Jtcy9hdXRvZm9jdXMtb3BlcmEtMDAzLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGlu
Zy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmct
c2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM2ODM3OWNjMThlMjBiNTIyOTIyY2NlNjJhYzljZjI2NDFjZDRmNWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2Zv
Y3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTcgQEAKKworIDEKKyAyCitUaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBm
b2N1cyBvbiBhIHJlbmRlciBvYmplY3Qgd2hlbiBpdCBkb2Vzbid0IHJlc3VsdCBpbiBhIHNlbGVj
dGlvbiBjaGFuZ2Ugd29uJ3QgbGVhdmUgaXNTeW5jaHJvbml6aW5nU2VsZWN0aW9uIHNldCB0byB0
cnVlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNh
dGlvbiBpcyB0cnVlCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50
LmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIx
IikpIGlzIHRydWUKK1BBU1MgYXhUZXh0U3RhdGVTeW5jT25lIGlzIHVuZGVmaW5lZAorUEFTUyBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIjEiKS5pc0ZvY3Vz
YWJsZSBpcyB0cnVlCitQQVNTIGF4VGV4dFN0YXRlU3luY1R3byBpcyB1bmRlZmluZWQKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3
NjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZjAxMGZhYzQ2MjdlMzE0NTFmMTQxYTM4NTFi
NDYyNjZkN2QyOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisK
KworCisocmVwYWludCByZWN0cworICAocmVjdCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEg
MTgpCisgIChyZWN0IDEgMTkgMTUgMzIpCisgIChyZWN0IDggMjYgMSAxOCkKKyAgKHJlY3QgMSAz
NyA3OTggMzIpCisgIChyZWN0IDggNDQgNzg0IDE4KQorICAocmVjdCAxIDUxIDc5OCAxOCkKKyAg
KHJlY3QgMSA0NCA3OTggNykKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBhY2Q0YjAxODkwMTg1NTgxYjkyN2I2NGI0NDc4MzE0ZmE0OGFlNWYzLi5h
NDJmNDVlMGFlNmE1ZGUyODAyNDE2NTdlOTVlZjk1MDExMjQ1MzI3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQzMSwzICsyNDMxLDUgQEAgd2Via2l0
Lm9yZy9iLzIyMTIzMCBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhLXNvdXJjZS9tZWQKIAogIyBUaGlzIHRlc3QgaXMgc3BlY2lmaWMgdG8gQ29yZSBUZXh0
LgogZmFzdC90ZXh0L2ZvbnQtbG9va3VwLWRvdC1wcmVmaXgtY2FzZS1zZW5zaXRpdmUuaHRtbCBb
IFBhc3MgXQorCit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlv
bi1zeW5jLmh0bWwgWyBTa2lwIF0gIyBUaW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kOWNhN2RjMThlOWU4ZDZjMDI1NzYyNTM4ODE5ZDNjY2RmNGRkYTE4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworCisocmVwYWludCByZWN0cworICAocmVj
dCAxIDM3IDc5OCAzMikKKyAgKHJlY3QgOCA0NCA3ODQgMTgpCisgIChyZWN0IDEgNTEgNzk4IDE4
KQorICAocmVjdCAxIDQ0IDc5OCA3KQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBlMDJjMDkyYmE1MzNiNmU2ZDA2ZTIyMDg2
ODNjNDFlMzRiODkyODI0Li41MDIzNTFhYjcwMzRlODVkYmUwNDRhNjFlNTY2OTFhNGE1MjY0MzA4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50
eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFp
bnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1l
bnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkg
Z3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4NCiAN
CiANCi0ocmVwYWludCByZWN0cw0KLSAgKHJlY3QgMCAwIDEwMCAxMDApDQotKQ0KIA0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1
YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggNWE5MzRmNDczN2ZlNWY5ZmYx
NjU0ZWE3YTJiMTMyZmY3ZWIyYjVjNy4uZmM1NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2Yx
YjI2MjUxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgs
NyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0
aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24u
CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRl
c3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFp
bnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM5IDE4IDgzKQotKQotCisocmVwYWludCByZWN0cyAocmVj
dCA3NzQgMzkgMTggODMpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3Zl
cmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCAwYTc3MWQ0NjlhMWRiMGQ0YzdjNjdmNTUw
NWE1ZWUyN2ViOWYwMzVlLi40MTkwNDAzODgzNTY1MTc0ODY2ZjMwODMxZTFiZDBhNWZlMTBkNjhl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQt
c2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4t
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3Vu
ZAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5NyAxOCkKLSkKLQorKHJlcGFpbnQg
cmVjdHMgKHJlY3QgOCAxNiAxOTcgMTgpICkK
</data>
<flag name="commit-queue"
          id="475710"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450422</attachid>
            <date>2022-01-31 11:32:48 -0800</date>
            <delta_ts>2022-01-31 11:59:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224471-20220131203246.patch</filename>
            <type>text/plain</type>
            <size>43078</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVhNmFlZDFkNjE1NWE3
MThkYjNjOTNjZDFmMTA1YThlNjQ2NWRiNC4uNjFjZmE3Zjg0ZDg3ZDM2NGJiYzA2YWI2MjUzNDll
MzUxNzRiZTFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOiBD
YWxsIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKSBmb3IKKyAgICAg
ICAgIUlzVXNlclRyaWdnZXJlZCBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3cpOiBSZW5hbWVkIGZyb20gdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUuCisgICAgICAgIEl0IGRvZXMgbm90IG5l
ZWQgdGhlIERvY3VtZW50JiBhdHRyaWJ1dGUgYmVjYXVzZSBpdCB3YXMgYWx3YXlzIGNhbGxlZCB3
aXRoIG1fZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6YWJzb2x1
dGVDYXJldEJvdW5kcyk6IFJlcGxhY2VkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlIHdpdGgKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJpbGl0eSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbik6IENhbGwgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rp
b25Jc05lZWRlZCk6IE5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTZWxlY3Rp
b25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFNlbGVjdGlvbklmTmVlZGVkKTogU2V0IHRoZSBVc2VyVHJpZ2dlcmVk
IGZsYWcgZm9yIGNhbGxpbmcgc2V0U2VsZWN0aW9uKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcpOiBDYWxs
IHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpLgorCiAyMDIyLTAxLTI2ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAhaGFz
UGVuZGluZ1NoZWV0cygpIHVuZGVyIFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6flNjb3BlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYWRhYjlkMWE4Y2M3
YzA5ZGNmOWQ2Nzg2OGUzZmUwODk3MjM0ZGJmZi4uNjM3Y2Q3NmYwOTY4YmJhN2RjNDVjZTYzMDAz
Yjc1Mzk3MDE2ZGFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAKQEAgLTQ1NCw2ICs0NTQsMTEgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAo
ZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygp
KQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIShvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVk
KSkgeworICAgICAgICBzY2hlZHVsZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
aW50ZW50LCBvcHRpb25zLmNvbnRhaW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6
U21vb3RoIDogU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIG9wdGlvbnMuY29udGFpbnMoUmV2ZWFs
U2VsZWN0aW9uQm91bmRzKSA/IFJldmVhbEV4dGVudE9wdGlvbjo6RG9Ob3RSZXZlYWxFeHRlbnQg
OiBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAKICAgICBpZiAob3B0aW9ucyAm
IElzVXNlclRyaWdnZXJlZCkgewpAQCAtNDYyLDEzICs0NjcsMTYgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0
aW9uU2V0PFMKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRp
bmdMYXlvdXRPclN0eWxlKERvY3VtZW50JiBkb2N1bWVudCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKQogeworICAgIFJlZiBkb2N1bWVudCA9ICpt
X2RvY3VtZW50OwogI2lmIEVOQUJMRShURVhUX0NBUkVUKQotICAgIGRvY3VtZW50LnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50LT51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICNlbHNlCi0gICAgZG9jdW1lbnQudXBkYXRl
U3R5bGVJZk5lZWRlZCgpOworICAgIGRvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAj
ZW5kaWYKKyAgICBpZiAobV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQorICAgICAgICB1cGRhdGVB
cHBlYXJhbmNlKCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9u
VXBkYXRlKFJldmVhbFNlbGVjdGlvbkFmdGVyVXBkYXRlIHJldmVhbE1vZGUpCkBAIC0xNjg2LDcg
KzE2OTQsNyBAQCBJbnRSZWN0IEZyYW1lU2VsZWN0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKGJv
b2wqIGluc2lkZUZpeGVkKQogewogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJu
IEludFJlY3QoKTsKLSAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgq
bV9kb2N1bWVudCk7CisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHJl
Y29tcHV0ZUNhcmV0UmVjdCgpOwogICAgIGlmIChpbnNpZGVGaXhlZCkKICAgICAgICAgKmluc2lk
ZUZpeGVkID0gbV9jYXJldEluc2lkZVBvc2l0aW9uRml4ZWQ7CkBAIC0yMjQ0LDcgKzIyNTIsNyBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRDYXJldFZpc2liaWxpdHkoQ2FyZXRWaXNpYmlsaXR5
IHZpc2liaWxpdHksIFNob3VsZFVwZGF0ZQogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCB0
cmlnZ2VyIGEgc3luY2hyb25vdXMgbGF5b3V0IGhlcmUuCiAgICAgaWYgKGRvQXBwZWFyYW5jZVVw
ZGF0ZSA9PSBTaG91bGRVcGRhdGVBcHBlYXJhbmNlOjpZZXMgJiYgbV9kb2N1bWVudCkKLSAgICAg
ICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOwor
ICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAKICNpZiBFTkFCTEUoVEVY
VF9DQVJFVCkKICAgICBpZiAobV9jYXJldFBhaW50KSB7CkBAIC0yMzUyLDcgKzIzNjAsNyBAQCBG
bG9hdFJlY3QgRnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyhDbGlwVG9WaXNpYmxlQ29u
dGVudCBjbGlwVG9WaXNpYmxlQ29udAogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0
dXJuIExheW91dFJlY3QoKTsKIAotICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlKCptX2RvY3VtZW50KTsKKyAgICBjb25zdF9jYXN0PEZyYW1lU2VsZWN0aW9uJj4oKnRo
aXMpLnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICBhdXRvKiByZW5kZXJWaWV3
ID0gbV9kb2N1bWVudC0+cmVuZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyVmlldykKICAgICAg
ICAgcmV0dXJuIExheW91dFJlY3QoKTsKQEAgLTI0NDgsNiArMjQ1Niw4IEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUs
IGNvbnN0IFNjcm9sCiAgICAgaWYgKGlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICB1
cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CisKICAgICBMYXlvdXRSZWN0IHJlY3Q7CiAg
ICAgYm9vbCBpbnNpZGVGaXhlZCA9IGZhbHNlOwogICAgIGlmIChpc0NhcmV0KCkpCkBAIC0yNTE5
LDYgKzI1MjksMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2hvdWxkU2hvd0Jsb2NrQ3Vy
c29yKGJvb2wgc2hvdWxkU2hvd0Jsb2NrQ3Vyc29yKQogICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsK
IH0KIAordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBwZWFyYW5jZUlmUmV2ZWFsaW5nU2Vs
ZWN0aW9uSXNOZWVkZWQoKQoreworICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlIHx8
IG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSA9PSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVh
bCkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsK
K30KKwogdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkK
IHsKICAgICBtX2FwcGVhcmFuY2VVcGRhdGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGQ2ZjFlZTZmMDVlNDM5NmYyNzhjNThmN2I4MWZk
NDQyZTYwM2ZiZS4uM2M5MTAxZTdlMTUzM2NhMWZkYzM1MGY4MjNmNGZhYTJlNTNkMjcwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMTUxLDYgKzE1MSw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxs
QmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAKKyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVh
bGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJM
YXlvdXQoKTsKICAgICB2b2lkIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFu
Z2UoKTsKIApAQCAtMjY3LDYgKzI2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21B
c3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rp
b25BcHBlYXJhbmNlTm93KCk7CiAgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2
aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJl
dmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IDIyMGIyNzE0MGNiNTU5NDFmZDllMjVlZDIyMjk0ODAzNWVkZmY5MDkuLjZkNDc4NDRjNjcw
ZDJmYWI5YThkN2UxMjRlMTEwNjA5N2ExMGU1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNl
dEVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAxNmQ1Mzg5
ZGZmZmFjMzI1NGZjZWY0ZmE3OWEwNzY1NWRkMDAzMzAyLi5mYjBhYmNlYTJhY2YwZjMwZjBlMzdm
Njg5ZjA2M2MxNzFjODQ1MjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC00MzYsNyArNDM2LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkKE5v
ZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVlZGVkKEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVj
dGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlvbigpICE9IG5ld1NlbGVjdGlvbiAm
JiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBk
aXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjODgx
YjI2YmEyOGRkNTg3ZTE3ZjhlYjM4OWQ0MjUwYjQwODkxZmY3Li5iYzdkM2JjZjFjMTY1ODZhOThh
MzQxNzMwNGVhOTI4MWUxNDE1MDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2ODUsNiArMTY4
NSwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcoKQogICAgICAgICBkb2N1
bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CiAgICAgfSk7CiAKKyAgICBm
b3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVu
dC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsKKwog
ICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRv
Y3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYyODkx
MWI0ZGNhZDc1MDI0ZTc3NWE2ZGJjZTA5ZTRhYWQyMGFkNmEuLmRkYmYyNjExZDVkN2ZlNTMwZjY4
NjA0Nzg0NjBkMWI0NDcxNTRlNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMS0xMS0wMiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZWxl
YXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMgb3V0IG9mIHRoZSB0ZXh0LWJhc2VkLXJlcGFp
bnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24gaXMgbm93IHVwZGF0ZWQKKyAgICAgICAgYW5k
IHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRoZSBjYXNlIG9mIG5vbi11c2VyIHRyaWdnZXJl
ZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSBy
ZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1cGRhdGUgaGFzIG5vdCBoYXBwZW5lZCB5ZXQu
IFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3RzIHdlcmUgbW9kaWZpZWQgc28gdGhhdCB3ZSB3
YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMuCisKKyAgICAgICAgU2FtZSBzaXR1YXRpb24g
Zm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90IGludm9sdmUgcmVwYWludCByZWN0cyBidXQgdHJp
Z2dlciBhY2Nlc2liaWxpdHkKKyAgICAgICAgdHJlZSB1cGRhdGVzLiBXZSBtdXN0IGVuc3VyZSB0
aGF0IHdlIGxldCB0aGUgbm90aWZpY2F0aW9uIGJlIHRocm93biBiZWZvcmUgY2hlY2tpbmcgd2hl
dGhlciBvcgorICAgICAgICBub3QgaGFzIGJlZW4gZW1pdGVkLiBBcyBpdCdzIGRvbmUgYXN5bmNo
cm9ub3VzbHkgd2UgbXVzdCBsZXQgdGhlIG1haW4gdGhyZWFkIHJ1biBiZWZvcmUgY2hlY2tpbmcu
CisKKyAgICAgICAgTGFzdCBidXQgbm90IGxlYXN0LCBzb21lIG9mIHRoZSB0ZXN0cyBhcmUgdXNp
bmcgc2V0VGltZW91dCgpIGluc3RlYWQgb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkKKyAgICAg
ICAgYmVjYXVzZSB0aGUgcmVzdWx0cyB3aXRoIHRoZSBsYXR0ZXIgd2VyZSBub3QgYXMgcmVsaWFi
bGUgdW5kZXIgc3RyZXNzL2RlYnVnIGNvbmRpdGlvbnMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRp
b25lZC1lbXB0eS1jb250ZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS1z
Y3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1j
aGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAq
IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1l
ZC1maXhlZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFp
bnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlv
bi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC90
ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWNhdGFsaW5hLXdrMS9mYXN0L3Jl
cGFpbnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3Np
YmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFy
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhp
ZGRlbi1leHBlY3RlZC50eHQ6CisKIDIwMjItMDEtMjYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tL2dldENvbXB1dGVkU3R5bGUtZGV0YWNoZWQtc3VidHJlZS5odG1sIGlzIGZh
aWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlv
bi1ib3VuZGFyeS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKaW5kZXggOGJkOTE5NTRiMmQ4ZmRjOTE0
MjAwODI5ZDE4ZTFkYjM3Y2FlZjNiYS4uZDg4ZjUzODVjNmNmOTUxOTZhODA5NGU2Y2YzMjU2YjQ5
Mjg4ODc3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0
aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKQEAgLTE2MiwyMCArMTYyLDMx
IEBACiAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0
aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwogICAgICAgICBzaG91bGRCZSgiYWRk
ZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7Ci0KLSAg
ICAgICAgbW92ZSh0cnVlKTsKLQotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImlucHV0Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgZnVuY3Rp
b24gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHJlcXVlc3RB
bmltYXRpb25GcmFtZShyZXNvbHZlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAKLSAg
ICAgICAgbW92ZShmYWxzZSk7CisgICAgICAgIGZ1bmN0aW9uIGZvY3VzRWxlbWVudChlbGVtZW50
SWQpIHsKKyAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SWQpOworICAgICAgICAgICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICAgICAgcmV0dXJu
IHdhaXRGb3JBbmltYXRpb25GcmFtZSgpOworICAgICAgICB9CiAKLSAgICAgICAgdGV4dGJveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0YXJlYSIpOwotICAgICAgICB0ZXh0Ym94LmZv
Y3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIG1vdmVBc3luYyhpc1ZlcnRpY2FsKSB7CisgICAgICAg
ICAgICBtb3ZlKGlzVmVydGljYWwpOworICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JBbmltYXRp
b25GcmFtZSgpOworICAgICAgICB9CiAKLSAgICAgICAgbW92ZSh0cnVlKTsKKyAgICAgICAgKGFz
eW5jIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGF3YWl0IGZvY3VzRWxlbWVudCgidGV4dGJv
eCIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKHRydWUpOworICAgICAgICAgICAgYXdh
aXQgZm9jdXNFbGVtZW50KCJpbnB1dCIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKGZh
bHNlKTsKKyAgICAgICAgICAgIGF3YWl0IGZvY3VzRWxlbWVudCgidGV4dGFyZWEiKTsKKyAgICAg
ICAgICAgIGF3YWl0IG1vdmVBc3luYyh0cnVlKTsKKyAgICAgICAgfSkoKTsKICAgICB9CiAKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0
aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
c2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCmluZGV4IGUxZWJkZWMwMjc0Mjg2OTk2NWM1
Y2RkZGM2MTBmNmJiZDhlYjJhZGYuLmJiM2M4NmNmYzhhOTdhMGM2Yzg3ZTc5MGI1NTNmODA5ZjVh
ODk3ZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlv
bi1jaGFuZ2UtdXNlcmluZm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTE5NSwxOSArMTk1LDg3IEBACiAg
ICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKICAgICAgICAg
dGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRl
eHRib3guZm9jdXMoKTsKIAogICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgog
ICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgcy5zZXRQb3Np
dGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAg
ICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgZ3JhbltpXSk7Ci0gICAgICAgICAgICBz
Lm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9u
IGZvY3VzVGV4dEJveCgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICAgICAgICAgICAg
ICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG1vdmVTZWxlY3Rpb24oZGlyZWN0aW9uLCBncmFu
dWxhcml0eSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgZGlyZWN0aW9uLCBncmFudWxhcml0
eSk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9LCAw
KTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3Jh
bikgewotICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgICAg
IHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0
aW9uIGV4dGVuZFNlbGVjdGlvbihncmFudWxhcml0eSkgeworICAgICAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJleHRl
bmQiLCAiZm9yd2FyZCIsIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiByZXNldFBvc2l0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJv
eCwgMCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9
LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgKGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgZm9jdXNUZXh0Qm94KCk7CisgICAgICAgICAgICBh
d2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJm
b3J3YXJkIiwgZ3JhblswXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNr
d2FyZCIsIGdyYW5bMF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2Fy
ZCIsIGdyYW5bMV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQi
LCBncmFuWzFdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBn
cmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jh
blsyXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhblsz
XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bM10p
OworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bNF0pOwor
ICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzRdKTsKKyAg
ICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzVdKTsKKyAgICAg
ICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls1XSk7CisgICAgICAg
ICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls2XSk7CisgICAgICAgICAg
ICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNl0pOworICAgICAgICAgICAg
YXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bN10pOworICAgICAgICAgICAgYXdh
aXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0
IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzhdKTsKKyAgICAgICAgICAgIGF3YWl0IG1v
dmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls4XSk7CisgICAgICAgICAgICBhd2FpdCByZXNl
dFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblswXSk7
CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBl
eHRlbmRTZWxlY3Rpb24oZ3JhblsxXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9u
KCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblsyXSk7CisgICAgICAg
ICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxl
Y3Rpb24oZ3JhblszXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAg
ICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls0XSk7CisgICAgICAgICAgICBhd2Fp
dCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jh
bls1XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBh
d2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBv
c2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls3XSk7Cisg
ICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRl
bmRTZWxlY3Rpb24oZ3Jhbls4XSk7CisgICAgICAgICAgfSkoKTsKICAgICB9CiAKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCmlu
ZGV4IGVlOWUwYTgwNWE1OTFhODFiMjE2YTVlYTU4ZThmNDgwMjZiNWEwZGIuLmFlNTA1YTJkNTA5
NmVmOGIwMjhmNjRhZjIzNTA2MTAxYzkzMTk4OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3gu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUt
Y2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQzLDEyICs0MywxNyBAQCBjb250ZW50
IGluc2lkZQogICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2
YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0
Ym94LCAwKTsKLSAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCAzOyBrKyspIHsKKyAgICAgICAg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3Zl
IiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBUcmln
Z2VyIHZhbHVlIGNoYW5nZS4KLSAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRl
eHQiLCBmYWxzZSwgImhlbGxvICIpOworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCgpID0+IHsKKyAgICAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNo
YXJhY3RlciIpOworICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7
CisgICAgICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFj
dGVyIik7CisgICAgICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgorICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNl
LCAiaGVsbG8gIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQt
ZW1wdHktY29udGVudC5odG1sCmluZGV4IDlhZDY0YWQ5YzU2YjVjYzFlNmVlZTE3ZTQwMDgxYWM0
YjRjMjQ2MmMuLmVlOWVmZTQ1MTI1YjI2ZjA2NWQ5MmZkOWRlYzM0ZGUwMTZiNzBkMGYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRp
b25lZC1lbXB0eS1jb250ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbApAQCAtMTQsMTMg
KzE0LDE3IEBAIHNwYW4gewogPHNjcmlwdD4KIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICBpbnRl
cm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCitp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihmb29iYXIpOwotCi1pZiAod2lu
ZG93LmludGVybmFscykgewotICByZXN1bHQuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLnJlcGFpbnRS
ZWN0c0FzVGV4dCgpOwotICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9Ci08L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZm9vYmFy
KTsKK3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgcmVzdWx0LmlubmVyVGV4dCA9IGludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQo
KTsKKyAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgfQorICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQt
ZW5kbGluZS1jYXJldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3Jv
bGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKaW5kZXggNzM0Y2RjYjA2YTM2MzY2M2I1ZDA5MTAwMTRm
ZDY2NGIyNWE1NDBlOC4uZTQyZTQzYmEyYjJmNzQ1NDRlMjliNWU2ZGQ3NjEzOThhNGNjNzEzNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRs
aW5lLWNhcmV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3Jv
bGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKQEAgLTE1LDEzICsxNSwxNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICB0YS5mb2N1cygpOwogICAgIC8vIGNsaWNrCiAgICAgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgewotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOwotICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OwotICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQotICAgICAgICAgICAgcmVzLmlu
bmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJl
cy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25F
bmQ7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oOTAsIDIwKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgaWYgKHRhLnNlbGVjdGlv
bkVuZCA9PSAxNykKKyAgICAgICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3VjY2Vl
ZGVkIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXMuaW5uZXJIVE1MID0g
IlRlc3QgRmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5kOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBjYW4ndCBydW4gd2l0aG91dCBldmVudCBzZW5k
ZXIgKHBhcnQgb2YgRHVtcFJlbmRlclRyZWUpLiAiCiAgICAgICAgICAgICArICJUbyB0ZXN0IG1h
bnVhbGx5LCBjbGljayBhdCB0aGUgbWlkZGxlIG9mIHRoZSBsaW5lIG1hcmtlZCA5IGFuZCBjaGVj
ayB0aGF0IHRoZSBjYXJldCBhcHBlYXJzIGFmdGVyIHRoZSA5LiI7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1j
aGlsZC1leHBlY3RlZC50eHQKaW5kZXggM2FiYjBmNzA4OWEzZjNiY2JjNmFhZGY2OWY3M2Q3Nzdi
Zjc5ZTMwYS4uYWNlYTU0ZTA1MGRmNWQyYTc3NWE5ZDk5ZDliMDFmNzA2NmJhNWE4MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hp
bGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAw
MDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1z
CiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNvcnJl
Y3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJl
YSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1
dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFi
c29sdXRlLWNoaWxkLmh0bWwKaW5kZXggN2Q0N2QxMjU5MWQ5YmM5ZmExMjE2OTFkMGU3NDBmOWFl
ZGIzZjQ3MC4uZTc4MzJkMmI0YTExNGVmYTMyN2Q4MzViNmU2YzVlNjJiYzE5NDFjOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hp
bGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNv
bHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFk
PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0
aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAg
ICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAg
ICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4
dFNpYmxpbmcsIDApOworCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93Lmlu
dGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMu
c3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9KTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAt
MjEsNCArMzcsNSBAQAogICAgIDxkaXY+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3Np
dGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBp
ZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29s
dXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBkYjNjMzc0MTY1NmIxNzc4YzkxNDBmNzE1NGFl
ODdjNTgwNmM0NmI0Li45NzllZmEzOWU1NTBjYzJlMzI1NDYzMTMyOWE5MTJiN2VmNThmMjk3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVk
LWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAt
Miw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3Jy
ZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMg
dGhhdCBnZXQgZmxpcHBlZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwg
YmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBj
b3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0K
KyhyZXBhaW50IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29s
dXRlLWNoaWxkLmh0bWwKaW5kZXggMWI2MWViZjJkNTBiM2E0ZjBkMDIzODkxNjE2NDQxN2ZlMjhl
NTZhNy4uNDdhNGU2MGExMzYxYjJlZjVlN2M4M2U2YTExYzNkYzc4NjRkNTUxOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0
ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyOCBAQAogPCFkb2N0eXBl
IGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVw
YWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVz
dCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWlu
dHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwg
MCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICAvLyByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMuCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRv
dy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJu
YWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHls
ZT4KQEAgLTIxLDQgKzM4LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmwiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFi
c29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFp
bnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29s
dXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBiN2MzMDk3YzZiMTc2MTZlMmY1ZDc0ZTk4Yjdl
OTg1OTcxYTQ1YTMxLi41Y2M5NjE1ZDFlMzBkODc2MDlkYTQ5YjM3MzNkYjA1ZTllNDYxMTczIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQu
dHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBh
aW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBl
bGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBU
aGUgYm94IHdpbGwgYmUgY29tcGxldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMg
aW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDUwIDUw
IDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDApICkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDE3ZWQzNWIxYTE1
ODUxMDkyNzZmOWRiZWYwNjg0NjM2M2U0NjAxNmYuLmZhOWNiMGRlM2Y0MGVmZGRlMjE4ODM0YWMy
MWI1YmQyNzFlZDE0OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQu
aHRtbApAQCAtMSwxMSArMSwyOCBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBh
aW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
ICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxl
Y3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAw
KTsKKworICAgICAgICAvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJl
c3VsdHMuCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3Rz
QXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRz
KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7
CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM4LDUgQEAKICAg
ICA8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+
CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsg
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwv
ZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
dHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0
CmluZGV4IDhkYmVkNDQ5YmI5ZWFlY2NmZDY2MzhiNzU3NmJhZGI4YmIwNDNjNDUuLmM1YTMxMjhl
YTkxOWNjM2ExY2Q4YzJmM2Y1OTk0OWRlMzhhYzI4ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFu
c2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEw
MDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3Jt
cwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1lbnRzIHRoYXQgZ2V0IHRyYW5zZm9ybWVkIGFy
ZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4g
aWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVw
YWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAo
cmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRt
bAppbmRleCA3NDVjNTVlYzdhOWM3ZDk5ZTU4YzQ1ZTJiZTZiNGIyMGI4MDE1OGEzLi45OTNhYTVm
Y2FmNDY4YWZiMGJkNzVjZmYwMmNjZGU1YzMwN2YyYjBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWZpeGVkLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjggQEAKIDwhZG9jdHlwZSBodG1sPgogPGhl
YWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFs
c2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVu
Y3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAg
ICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAg
ICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5u
ZXh0U2libGluZywgMCk7CisKKyAgICAgICAgLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHByb2R1
Y2VzIGZsYWNreSByZXN1bHRzLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxz
LnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJh
Y2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0
ICszOCw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1
MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVk
OyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48
L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA4
NjEyMzI2ZGY4ZmExNDgwMTdiYzNhNGU1Zjk2NTg2NTBjMmY5ZGJmLi5iMTk5MmE5MTBkZWRkMWMw
ZGQ5YTVlMjQ0NGZjODZlOWY0NjdiNjU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0
ZWQudHh0CkBAIC0yLDYgKzIsNSBAQCBBCiBBCiAocmVwYWludCByZWN0cwogICAocmVjdCA4IDY4
IDIwIDEwMCkKLSAgKHJlY3QgOCA2OCAyMCAxMDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CmluZGV4IDk1
OTE1ZTY2MDBmMTI1NWNiZjZmMjM5Zjk4NjQ5ZDc5OGEzNzYwNDEuLjRlN2MwOTI0MzQ2N2NkNzkx
NTM0ZTVmYjEyYTBlMTg1MzU3ZjU3NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAg
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3Ro
IGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwot
ICAocmVjdCA3NzQgMzggMTggNzkpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOCAx
OCA3OSkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1y
dWJ5LXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwu
aHRtbAppbmRleCAwMjc4NDQwYTFmYjcyNDQ0MmQ5NjQyOTI4ZWEyZWIzMjM5M2NjYTIxLi5iNTk3
YmEzY2NjYzhjNDVhYTNiZGIzMzA3MjhmZTAzNWRkYzk0MDI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbApAQCAtMyw3ICszLDE1IEBACiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgewor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2lu
Z1JlcGFpbnRzKCk7CisKICAgICBpZiAoZXZlbnRTZW5kZXIpIHsKICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oNzkwLCA0MCk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwpAQCAtMTEsNiArMTksMTcgQEAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CiAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgMTIwKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOwogICAgIH0KKworICAgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSBwcm9kdWNlcyBm
bGFja3kgcmVzdWx0cy4KKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
I3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1Rl
eHQoKTsKKyAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7CiB9CiA8L3NjcmlwdD4KIApAQCAtMjYs
NCArNDUsNSBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi48YnI+Cis8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVu
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGJkOWY1ODlmOWNjZDljNjc0ODI1MTNh
NzQ2NmZjZmJiZmY3ZDE5NjguLmUyZDNlNTk3ZmRkMmIxZmI2NDRhNWUzOWJhYjM1Y2NhNGU2Y2Iw
ZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
MyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAogCi0ocmVwYWludCByZWN0cwotICAo
cmVjdCA4IDE2IDE5OSAxOCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgOCAxNiAxOTkgMTgp
ICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCBiY2M5ZTM0ZDE3NzgwZTAxNjAwZTU1ODNi
Y2FhYjFiMDIzYTE2MjYwLi5iM2RkMTAyZGRhMGE2MzBmYjI5MDhhYTlhOTBmYjE1NmU4N2Y3ZDJh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3Zl
cmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2Vs
ZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0xLDUgKzEsNCBAQAogPCFET0NUWVBFIGh0
bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KIDxzdHlsZT4KICN0ZXN0IHsKICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7CkBAIC0xMiwxMSArMTEsMzAgQEAKIH0KIDwvc3R5bGU+CiA8c2NyaXB0
PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5SZXBhaW50
VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRl
cm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0ZXN0LCAwLCB0ZXN0LCAxKTsKKworICAgICAgICByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycp
LmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAg
ICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfTsKIDwvc2NyaXB0
PgogCiA8Ym9keSBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCkiPgogICAgIDxwIGlkPSJ0ZXN0Ij5T
aG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kPC9wPgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48
L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggMTJmMzY4Y2EwNjU2YTBkOWNmMjAyNWU5NDUxNDY1Yjc4M2RmMDgyZi4uZGJiNTk0NTQ4
NGU5NDE5NjhmNDgxZTdmZDZjMzg2MmQxZjA1MmJmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1NDUsOCArMTU0NSw2IEBAIHdlYmtpdC5vcmcvYi8x
NTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwgWyBGYWlsdXJl
IF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNlbmRlciBjYXVzZXMgdGhp
cyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcvYi80MjE5NCBmYXN0L3Njcm9sbGluZy9zY3JvbGwt
c2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTM5
MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIFsgRmFpbHVyZSBdCi0KICMg
TWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90IHJlbmRlcmVkIHByb3Blcmx5Lgogd2Via2l0Lm9y
Zy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhlaWdodC1kZXRlcm1pbmVkLWJ5LXByaW1hcnktZm9u
dC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvdGV4dC9kZWNvcmF0
aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNTU5NTk3ZWVhMGU5MjBkMTk1YWQy
NzU4YTA5MjdmMWIyNjI1MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uU29t
ZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3Ro
IGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KKyhyZXBhaW50IHJlY3RzIChyZWN0
IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVy
Zmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGEwYWU0NTYwZGZhM2Q2NjEyNWNmMGQ0MDMw
NTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQyMmE2NDJhZWExZGFhNzRlOWQ4ZTgwMWFlY2E1MmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1z
ZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1l
eHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5k
CiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE3KQotKQotCisocmVwYWludCBy
ZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
MS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdkMzY5MDFhNDM2OGRjNDg3MDVlODk1MmNlMDkyYjlk
ZDI2YmE2YzEuLjQ5NDk3Y2FjYTQ0NWZjZjM4MTA3NWE1YjNkZjRkMDVjNjVlMjIzNjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1Nzcs
MyArMTU3Nyw1IEBAIHdlYmtpdC5vcmcvYi8yMzE5MTggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lCiAKIGZhc3Qvc2Nyb2xsaW5nL3J0
bC1zY3JvbGxiYXJzLWFsdGVybmF0ZS1pZnJhbWUtYm9keS1kaXItYXR0ci1kb2VzLW5vdC11cGRh
dGUtc2Nyb2xsYmFyLXBsYWNlbWVudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKK3dlYmtp
dC5vcmcvYi8yMzEyOTggYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJp
bmZvLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMzI2MzAgZmFzdC9mb3Jtcy9hdXRv
Zm9jdXMtb3BlcmEtMDAzLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rp
b24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9u
LXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ODM3
OWNjMThlMjBiNTIyOTIyY2NlNjJhYzljZjI2NDFjZDRmNWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRp
bmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTcgQEAKKworIDEKKyAyCitUaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBmb2N1cyBvbiBh
IHJlbmRlciBvYmplY3Qgd2hlbiBpdCBkb2Vzbid0IHJlc3VsdCBpbiBhIHNlbGVjdGlvbiBjaGFu
Z2Ugd29uJ3QgbGVhdmUgaXNTeW5jaHJvbml6aW5nU2VsZWN0aW9uIHNldCB0byB0cnVlLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0
cnVlCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmlzRXF1YWwo
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikpIGlzIHRy
dWUKK1BBU1MgYXhUZXh0U3RhdGVTeW5jT25lIGlzIHVuZGVmaW5lZAorUEFTUyBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIjEiKS5pc0ZvY3VzYWJsZSBpcyB0
cnVlCitQQVNTIGF4VGV4dFN0YXRlU3luY1R3byBpcyB1bmRlZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjViZjAxMGZhYzQ2MjdlMzE0NTFmMTQxYTM4NTFiNDYyNjZkN2Qy
OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3Qv
cmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKKworCisocmVw
YWludCByZWN0cworICAocmVjdCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChy
ZWN0IDEgMTkgMTUgMzIpCisgIChyZWN0IDggMjYgMSAxOCkKKyAgKHJlY3QgMSAzNyA3OTggMzIp
CisgIChyZWN0IDggNDQgNzg0IDE4KQorICAocmVjdCAxIDUxIDc5OCAxOCkKKyAgKHJlY3QgMSA0
NCA3OTggNykKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA3YmMxYjliYWYwODE1MDdkZGI3MjRjOGQxMjIwZWYwNmZlZTAzYTE1Li4xNTVkNmU4MDcy
MjY4NWEwZTFkZWM1NTNkODExMTU3MDc4ZGYyNmFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQzOCwzICsyNDM4LDUgQEAgZmFzdC90ZXh0L2ZvbnQt
bG9va3VwLWRvdC1wcmVmaXgtY2FzZS1zZW5zaXRpdmUuaHRtbCBbIFBhc3MgXQogIyA8cmRhcjov
L3Byb2JsZW0vODc5NDQ0MjY+CiBbIENhdGFsaW5hIEJpZ1N1ciBNb250ZXJleSBdIGZhc3QvdGV4
dC9sb2NhbGUtc2hhcGluZy0yLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQogWyBDYXRh
bGluYSBCaWdTdXIgTW9udGVyZXkgXSBmYXN0L3RleHQvbG9jYWxlLXNoYXBpbmctMy5odG1sIFsg
UGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KKword2Via2l0Lm9yZy9iLzIzMTI5OCBhY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3Rpb24tc3luYy5odG1sIFsgU2tpcCBdICMgVGltZW91dApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDljYTdkYzE4ZTllOGQ2YzAyNTc2MjUzODgxOWQzY2NkZjRk
ZGExOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3Jl
cGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCisKKworKHJlcGFp
bnQgcmVjdHMKKyAgKHJlY3QgMSAzNyA3OTggMzIpCisgIChyZWN0IDggNDQgNzg0IDE4KQorICAo
cmVjdCAxIDUxIDc5OCAxOCkKKyAgKHJlY3QgMSA0NCA3OTggNykKKykKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVk
LWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggZTAyYzA5MmJh
NTMzYjZlNmQwNmUyMjA4NjgzYzQxZTM0Yjg5MjgyNC4uNTAyMzUxYWI3MDM0ZTg1ZGJlMDQ0YTYx
ZTU2NjkxYTRhNTI2NDMwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQt
Y2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24g
Z2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMg
dGhhdCBmaXhlZCBlbGVtZW50cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdp
bGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRl
ZCBjb3JyZWN0bHkuDQogDQogDQotKHJlcGFpbnQgcmVjdHMNCi0gIChyZWN0IDAgMCAxMDAgMTAw
KQ0KLSkNCiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CmluZGV4IDVh
OTM0ZjQ3MzdmZTVmOWZmMTY1NGVhN2EyYjEzMmZmN2ViMmI1YzcuLmZjNTU5NTk3ZWVhMGU5MjBk
MTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhw
ZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBh
aW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRp
bmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBv
ZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNl
bGVjdGlvbi4KLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDc3NCAzOSAxOCA4MykKLSkKLQorKHJl
cGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM5IDE4IDgzKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggMGE3NzFkNDY5
YTFkYjBkNGM3YzY3ZjU1MDVhNWVlMjdlYjlmMDM1ZS4uNDE5MDQwMzg4MzU2NTE3NDg2NmYzMDgz
MWUxYmQwYTVmZTEwZDY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24t
b3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZl
IGdyZWVuIGJhY2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcgMTgp
Ci0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk3IDE4KSApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450429</attachid>
            <date>2022-01-31 12:12:44 -0800</date>
            <delta_ts>2022-02-01 07:28:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224471-20220131211241.patch</filename>
            <type>text/plain</type>
            <size>43270</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ1YWY4NWNlMDRmNTA0
OTU0YzI2ZmJhZjRlZTQ4YzMwNTJiOGQ5Yi4uMjY0ZGQ4ZTZhYjNkZTFiN2IwMDRlMzcwZTI0OWE3
NWM5ZjlhN2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOiBD
YWxsIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKSBmb3IKKyAgICAg
ICAgIUlzVXNlclRyaWdnZXJlZCBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3cpOiBSZW5hbWVkIGZyb20gdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUuCisgICAgICAgIEl0IGRvZXMgbm90IG5l
ZWQgdGhlIERvY3VtZW50JiBhdHRyaWJ1dGUgYmVjYXVzZSBpdCB3YXMgYWx3YXlzIGNhbGxlZCB3
aXRoIG1fZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6YWJzb2x1
dGVDYXJldEJvdW5kcyk6IFJlcGxhY2VkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlIHdpdGgKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJpbGl0eSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbik6IENhbGwgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rp
b25Jc05lZWRlZCk6IE5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTZWxlY3Rp
b25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFNlbGVjdGlvbklmTmVlZGVkKTogU2V0IHRoZSBVc2VyVHJpZ2dlcmVk
IGZsYWcgZm9yIGNhbGxpbmcgc2V0U2VsZWN0aW9uKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcpOiBDYWxs
IHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpLgorCiAyMDIyLTAxLTMxICBBc3VtdSBUYWtp
a2F3YSAgPGFzdW11QGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGhhbmRsaW5nIG9mIG1vZHVs
ZSBzY3JpcHQgZXJyb3JzIGluIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKaW5kZXggYWRhYjlkMWE4Y2M3YzA5ZGNmOWQ2Nzg2OGUzZmUwODk3MjM0ZGJm
Zi4uNjM3Y2Q3NmYwOTY4YmJhN2RjNDVjZTYzMDAzYjc1Mzk3MDE2ZGFmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTQ1NCw2ICs0NTQsMTEgQEAgdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5
b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBp
ZiAoIShvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVkKSkgeworICAgICAgICBzY2hlZHVsZUFwcGVh
cmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50LCBvcHRpb25zLmNvbnRhaW5zKFNt
b290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6U21vb3RoIDogU2Nyb2xsQmVoYXZpb3I6Oklu
c3RhbnQsIG9wdGlvbnMuY29udGFpbnMoUmV2ZWFsU2VsZWN0aW9uQm91bmRzKSA/IFJldmVhbEV4
dGVudE9wdGlvbjo6RG9Ob3RSZXZlYWxFeHRlbnQgOiBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVh
bEV4dGVudCk7CiAKICAgICBpZiAob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkgewpAQCAtNDYy
LDEzICs0NjcsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICB9CiB9CiAKLXN0YXRp
YyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKERvY3VtZW50JiBk
b2N1bWVudCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VO
b3coKQogeworICAgIFJlZiBkb2N1bWVudCA9ICptX2RvY3VtZW50OwogI2lmIEVOQUJMRShURVhU
X0NBUkVUKQotICAgIGRvY3VtZW50LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOworICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKICNlbHNlCi0gICAgZG9jdW1lbnQudXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIGRvY3Vt
ZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAjZW5kaWYKKyAgICBpZiAobV9wZW5kaW5nU2Vs
ZWN0aW9uVXBkYXRlKQorICAgICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKFJldmVhbFNlbGVjdGlvbkFmdGVy
VXBkYXRlIHJldmVhbE1vZGUpCkBAIC0xNjg2LDcgKzE2OTQsNyBAQCBJbnRSZWN0IEZyYW1lU2Vs
ZWN0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKGJvb2wqIGluc2lkZUZpeGVkKQogewogICAgIGlm
ICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKLSAgICB1cGRhdGVTZWxl
Y3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgdXBkYXRlU2Vs
ZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHJlY29tcHV0ZUNhcmV0UmVjdCgpOwogICAgIGlm
IChpbnNpZGVGaXhlZCkKICAgICAgICAgKmluc2lkZUZpeGVkID0gbV9jYXJldEluc2lkZVBvc2l0
aW9uRml4ZWQ7CkBAIC0yMjQ0LDcgKzIyNTIsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRD
YXJldFZpc2liaWxpdHkoQ2FyZXRWaXNpYmlsaXR5IHZpc2liaWxpdHksIFNob3VsZFVwZGF0ZQog
CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCB0cmlnZ2VyIGEgc3luY2hyb25vdXMgbGF5b3V0
IGhlcmUuCiAgICAgaWYgKGRvQXBwZWFyYW5jZVVwZGF0ZSA9PSBTaG91bGRVcGRhdGVBcHBlYXJh
bmNlOjpZZXMgJiYgbV9kb2N1bWVudCkKLSAgICAgICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGlu
Z0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBl
YXJhbmNlTm93KCk7CiAKICNpZiBFTkFCTEUoVEVYVF9DQVJFVCkKICAgICBpZiAobV9jYXJldFBh
aW50KSB7CkBAIC0yMzUyLDcgKzIzNjAsNyBAQCBGbG9hdFJlY3QgRnJhbWVTZWxlY3Rpb246OnNl
bGVjdGlvbkJvdW5kcyhDbGlwVG9WaXNpYmxlQ29udGVudCBjbGlwVG9WaXNpYmxlQ29udAogICAg
IGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKIAotICAgIHVw
ZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICBj
b25zdF9jYXN0PEZyYW1lU2VsZWN0aW9uJj4oKnRoaXMpLnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFu
Y2VOb3coKTsKICAgICBhdXRvKiByZW5kZXJWaWV3ID0gbV9kb2N1bWVudC0+cmVuZGVyVmlldygp
OwogICAgIGlmICghcmVuZGVyVmlldykKICAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKQEAg
LTI0NDgsNiArMjQ1Niw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihT
ZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgaWYgKGlzTm9u
ZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93
KCk7CisKICAgICBMYXlvdXRSZWN0IHJlY3Q7CiAgICAgYm9vbCBpbnNpZGVGaXhlZCA9IGZhbHNl
OwogICAgIGlmIChpc0NhcmV0KCkpCkBAIC0yNTE5LDYgKzI1MjksMTMgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6c2V0U2hvdWxkU2hvd0Jsb2NrQ3Vyc29yKGJvb2wgc2hvdWxkU2hvd0Jsb2NrQ3Vy
c29yKQogICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKIH0KIAordm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQXBwZWFyYW5jZUlmUmV2ZWFsaW5nU2VsZWN0aW9uSXNOZWVkZWQoKQoreworICAgIGlm
ICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlIHx8IG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSA9PSBT
ZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCkKKyAgICAgICAgcmV0dXJuOworICAgIHVw
ZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKK30KKwogdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkKIHsKICAgICBtX2FwcGVhcmFuY2VVcGRhdGVU
aW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXgg
MGQ2ZjFlZTZmMDVlNDM5NmYyNzhjNThmN2I4MWZkNDQyZTYwM2ZiZS4uM2M5MTAxZTdlMTUzM2Nh
MWZkYzM1MGY4MjNmNGZhYTJlNTNkMjcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaApAQCAtMTUxLDYgKzE1MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAKKyAg
ICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAg
ICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNjaGVkdWxl
QXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKIApAQCAtMjY3LDYgKzI2OCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHBy
aXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgdm9p
ZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQm
LCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRP
cHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRh
dGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDIyMGIyNzE0MGNiNTU5NDFmZDllMjVl
ZDIyMjk0ODAzNWVkZmY5MDkuLjZkNDc4NDRjNjcwZDJmYWI5YThkN2UxMjRlMTEwNjA5N2ExMGU1
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0
aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCAxNmQ1Mzg5ZGZmZmFjMzI1NGZjZWY0ZmE3OWEwNzY1NWRk
MDAzMzAyLi5mYjBhYmNlYTJhY2YwZjMwZjBlMzdmNjg5ZjA2M2MxNzFjODQ1MjJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC00MzYsNyArNDM2LDcgQEAgdm9pZCBFdmVu
dEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRp
YyB2b2lkIHNldFNlbGVjdGlvbklmTmVlZGVkKEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9u
LnNlbGVjdGlvbigpICE9IG5ld1NlbGVjdGlvbiAmJiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVk
KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBkaXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5v
ZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBmMjY0ZmFkYmJhMWIwMzVhZTA2ZDM5YmMwZjI1Yzhl
Y2JmZmZlMTY5Li5kYjk2ZTNmMzJkMzJiMDAxYjI5MmNkYzExY2MwN2RhNDg5ODY1NDVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKQEAgLTE3MDIsNiArMTcwMiwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJV
cGRhdGVSZW5kZXJpbmcoKQogICAgICAgICBkb2N1bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRy
eUlmTmVlZGVkKCk7CiAgICAgfSk7CiAKKyAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50
JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJh
bmNlQWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsKKwogICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9j
dW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRvY3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0
aW9ucygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM5OTdiNWFlZTcyNmZlZmIzZjFkZjhjZTJhZDg0YzRi
MTFjYmQ0ZGQuLjlhMzFmMTNhOTkwZmUxMTE3YzU5MDhlMjBhZmZhZGIyM2UzOTc0MTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1MyBAQAorMjAyMS0xMS0wMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxs
YXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZWxlYXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBk
YXRlTGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVz
dHMgb3V0IG9mIHRoZSB0ZXh0LWJhc2VkLXJlcGFpbnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rp
b24gaXMgbm93IHVwZGF0ZWQKKyAgICAgICAgYW5kIHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGlu
IHRoZSBjYXNlIG9mIG5vbi11c2VyIHRyaWdnZXJlZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0
aGF0CisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSByZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRo
ZSB1cGRhdGUgaGFzIG5vdCBoYXBwZW5lZCB5ZXQuIFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRl
c3RzIHdlcmUgbW9kaWZpZWQgc28gdGhhdCB3ZSB3YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBl
bnMuCisKKyAgICAgICAgU2FtZSBzaXR1YXRpb24gZm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90
IGludm9sdmUgcmVwYWludCByZWN0cyBidXQgdHJpZ2dlciBhY2Nlc2liaWxpdHkKKyAgICAgICAg
dHJlZSB1cGRhdGVzLiBXZSBtdXN0IGVuc3VyZSB0aGF0IHdlIGxldCB0aGUgbm90aWZpY2F0aW9u
IGJlIHRocm93biBiZWZvcmUgY2hlY2tpbmcgd2hldGhlciBvcgorICAgICAgICBub3QgaGFzIGJl
ZW4gZW1pdGVkLiBBcyBpdCdzIGRvbmUgYXN5bmNocm9ub3VzbHkgd2UgbXVzdCBsZXQgdGhlIG1h
aW4gdGhyZWFkIHJ1biBiZWZvcmUgY2hlY2tpbmcuCisKKyAgICAgICAgTGFzdCBidXQgbm90IGxl
YXN0LCBzb21lIG9mIHRoZSB0ZXN0cyBhcmUgdXNpbmcgc2V0VGltZW91dCgpIGluc3RlYWQgb2Yg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkKKyAgICAgICAgYmVjYXVzZSB0aGUgcmVzdWx0cyB3aXRo
IHRoZSBsYXR0ZXIgd2VyZSBub3QgYXMgcmVsaWFibGUgdW5kZXIgc3RyZXNzL2RlYnVnIGNvbmRp
dGlvbnMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnkt
dXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9u
LXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRl
LWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBl
ZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1h
YnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRk
ZW4uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5
LXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjLWNhdGFsaW5hLXdrMS9mYXN0L3JlcGFpbnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rp
b24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNl
bGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBh
aW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6CisKIDIwMjIt
MDEtMzEgIEFzdW11IFRha2lrYXdhICA8YXN1bXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXgg
aGFuZGxpbmcgb2YgbW9kdWxlIHNjcmlwdCBlcnJvcnMgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnkt
dXNlcmluZm8uaHRtbAppbmRleCA4YmQ5MTk1NGIyZDhmZGM5MTQyMDA4MjlkMThlMWRiMzdjYWVm
M2JhLi5kODhmNTM4NWM2Y2Y5NTE5NmE4MDk0ZTZjZjMyNTZiNDkyODg4NzcxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmlu
Zm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91
bmRhcnktdXNlcmluZm8uaHRtbApAQCAtMTYyLDIwICsxNjIsMzEgQEAKICAgICAgICAgdmFyIGFk
ZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmlj
YXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0
cnVlIik7CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0
Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKLQotICAgICAgICBtb3ZlKHRydWUpOwot
Ci0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQiKTsKLSAg
ICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlvbiB3YWl0Rm9yQW5pbWF0aW9u
RnJhbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29s
dmUpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KIAotICAgICAgICBtb3ZlKGZhbHNlKTsK
KyAgICAgICAgZnVuY3Rpb24gZm9jdXNFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAg
ICBlbGVtZW50LmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZy
YW1lKCk7CisgICAgICAgIH0KIAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRleHRhcmVhIik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgZnVu
Y3Rpb24gbW92ZUFzeW5jKGlzVmVydGljYWwpIHsKKyAgICAgICAgICAgIG1vdmUoaXNWZXJ0aWNh
bCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAg
IH0KIAotICAgICAgICBtb3ZlKHRydWUpOworICAgICAgICAoYXN5bmMgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgYXdhaXQgZm9jdXNFbGVtZW50KCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICBh
d2FpdCBtb3ZlQXN5bmModHJ1ZSk7CisgICAgICAgICAgICBhd2FpdCBmb2N1c0VsZW1lbnQoImlu
cHV0Iik7CisgICAgICAgICAgICBhd2FpdCBtb3ZlQXN5bmMoZmFsc2UpOworICAgICAgICAgICAg
YXdhaXQgZm9jdXNFbGVtZW50KCJ0ZXh0YXJlYSIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFz
eW5jKHRydWUpOworICAgICAgICB9KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVz
ZXJpbmZvLmh0bWwKaW5kZXggZTFlYmRlYzAyNzQyODY5OTY1YzVjZGRkYzYxMGY2YmJkOGViMmFk
Zi4uYmIzYzg2Y2ZjOGE5N2EwYzZjODdlNzkwYjU1M2Y4MDlmNWE4OTdmMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbApAQCAtMTk1LDE5ICsxOTUsODcgQEAKICAgICAgICAgc2hvdWxkQmUoImFk
ZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKIAogICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwogCiAg
ICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2lu
ZG93LmdldFNlbGVjdGlvbigpOwotICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwot
ICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3Zl
IiwgImZvcndhcmQiLCBncmFuW2ldKTsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJh
Y2t3YXJkIiwgZ3JhbltpXSk7CisKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNUZXh0Qm94KCkgewor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAg
ICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gbW92ZVNlbGVjdGlvbihkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSB7CisgICAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
cy5tb2RpZnkoIm1vdmUiLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0KLSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBz
LnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIs
ICJmb3J3YXJkIiwgZ3JhbltpXSk7CisKKyAgICAgICAgZnVuY3Rpb24gZXh0ZW5kU2VsZWN0aW9u
KGdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3Jh
bnVsYXJpdHkpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAg
ICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHJlc2V0UG9zaXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAg
ICAgICAgICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICAoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBhd2FpdCBmb2N1c1RleHRCb3goKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24o
KTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzBdKTsK
KyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblswXSk7Cisg
ICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsxXSk7CisgICAg
ICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMV0pOworICAgICAg
ICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMl0pOworICAgICAgICAg
ICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzJdKTsKKyAgICAgICAgICAg
IGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzNdKTsKKyAgICAgICAgICAgIGF3
YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblszXSk7CisgICAgICAgICAgICBhd2Fp
dCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls0XSk7CisgICAgICAgICAgICBhd2FpdCBt
b3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQgbW92
ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bNV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNl
bGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxl
Y3Rpb24oImZvcndhcmQiLCBncmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rp
b24oImJhY2t3YXJkIiwgZ3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9u
KCJmb3J3YXJkIiwgZ3Jhbls3XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJi
YWNrd2FyZCIsIGdyYW5bN10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9y
d2FyZCIsIGdyYW5bOF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dh
cmQiLCBncmFuWzhdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAg
ICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzBdKTsKKyAgICAgICAgICAgIGF3YWl0
IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFu
WzFdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3
YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9z
aXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzNdKTsKKyAg
ICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVu
ZFNlbGVjdGlvbihncmFuWzRdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsK
KyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzVdKTsKKyAgICAgICAgICAg
IGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlv
bihncmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAg
ICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0IHJl
c2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzhd
KTsKKyAgICAgICAgICB9KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJp
YS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24t
dmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggZWU5ZTBhODA1YTU5MWE4
MWIyMTZhNWVhNThlOGY0ODAyNmI1YTBkYi4uYWU1MDVhMmQ1MDk2ZWY4YjAyOGY2NGFmMjM1MDYx
MDFjOTMxOTg5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2Vs
ZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRl
eHRib3guaHRtbApAQCAtNDMsMTIgKzQzLDE3IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIC8v
IFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNl
bGVjdGlvbigpOwogICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBm
b3IgKHZhciBrID0gMDsgayA8IDM7IGsrKykgeworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoKCkgPT4gewogICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFy
YWN0ZXIiKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgot
ICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8g
Iik7CisgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAg
ICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAg
ICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAg
ICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAgICB9CiAKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24td2l0aC1h
YnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwK
aW5kZXggOWFkNjRhZDljNTZiNWNjMWU2ZWVlMTdlNDAwODFhYzRiNGMyNDYyYy4uZWU5ZWZlNDUx
MjViMjZmMDY1ZDkyZmQ5ZGVjMzRkZTAxNmI3MGQwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBv
c2l0aW9uZWQtZW1wdHktY29udGVudC5odG1sCkBAIC0xNCwxMyArMTQsMTcgQEAgc3BhbiB7CiA8
c2NyaXB0PgogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgIGludGVybmFscy5zdGFydFRyYWNraW5n
UmVwYWludHMoKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotd2luZG93LmdldFNlbGVjdGlvbigp
LnNlbGVjdEFsbENoaWxkcmVuKGZvb2Jhcik7Ci0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0g
IHJlc3VsdC5pbm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7Ci0gIGlu
dGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKIH0KLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihmb29iYXIpOworcmVxdWVzdEFuaW1hdGlv
bkZyYW1lKCgpID0+IHsKKyAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICByZXN1bHQuaW5u
ZXJUZXh0ID0gaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgIGludGVybmFscy5z
dG9wVHJhY2tpbmdSZXBhaW50cygpOworICB9CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQu
aHRtbAppbmRleCA3MzRjZGNiMDZhMzYzNjYzYjVkMDkxMDAxNGZkNjY0YjI1YTU0MGU4Li5lNDJl
NDNiYTJiMmY3NDU0NGUyOWI1ZTZkZDc2MTM5OGE0Y2M3MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQu
aHRtbApAQCAtMTUsMTMgKzE1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRhLmZvY3VzKCk7
CiAgICAgLy8gY2xpY2sKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIGlmICh0YS5z
ZWxlY3Rpb25FbmQgPT0gMTcpCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3Vj
Y2VlZGVkIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0
IEZhaWxlZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9
PiB7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CisgICAgICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQorICAgICAg
ICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0
IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzLmlubmVySFRN
TCA9ICJUZXN0IGNhbid0IHJ1biB3aXRob3V0IGV2ZW50IHNlbmRlciAocGFydCBvZiBEdW1wUmVu
ZGVyVHJlZSkuICIKICAgICAgICAgICAgICsgIlRvIHRlc3QgbWFudWFsbHksIGNsaWNrIGF0IHRo
ZSBtaWRkbGUgb2YgdGhlIGxpbmUgbWFya2VkIDkgYW5kIGNoZWNrIHRoYXQgdGhlIGNhcmV0IGFw
cGVhcnMgYWZ0ZXIgdGhlIDkuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApp
bmRleCAzYWJiMGY3MDg5YTNmM2JjYmM2YWFkZjY5ZjczZDc3N2JmNzllMzBhLi5hY2VhNTRlMDUw
ZGY1ZDJhNzc1YTlkOTlkOWIwMWY3MDY2YmE1YTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQt
ZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBk
b24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBh
YnNvbHV0ZSBlbGVtZW50cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwg
YmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBj
b3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0K
KyhyZXBhaW50IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbApp
bmRleCA3ZDQ3ZDEyNTkxZDliYzlmYTEyMTY5MWQwZTc0MGY5YWVkYjNmNDcwLi5lNzgzMmQyYjRh
MTE0ZWZhMzI3ZDgzNWI2ZTZjNWU2MmJjMTk0MWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKQEAg
LTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+
Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3Qo
KQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRl
cm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAg
ICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0
c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50
cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwog
ICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAg
PGRpdj4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjog
cmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxi
ci8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+
CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQu
dHh0CmluZGV4IGRiM2MzNzQxNjU2YjE3NzhjOTE0MGY3MTU0YWU4N2M1ODA2YzQ2YjQuLjk3OWVm
YTM5ZTU1MGNjMmUzMjU0NjMxMzI5YTkxMmI3ZWY1OGYyOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZs
aXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTEx
MDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9y
bXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFy
ZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4g
aWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVw
YWludCByZWN0cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJl
Y3QgMCAwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRl
eCAxYjYxZWJmMmQ1MGIzYTRmMGQwMjM4OTE2MTY0NDE3ZmUyOGU1NmE3Li40N2E0ZTYwYTEzNjFi
MmVmNWU3YzgzZTZhMTFjM2RjNzg2NGQ1NTE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1j
aGlsZC5odG1sCkBAIC0xLDExICsxLDI4IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1
blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdl
dFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxp
bmcsIDApOworCisgICAgICAgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSBwcm9kdWNlcyBmbGFj
a3kgcmVzdWx0cy4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50
UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVw
YWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
LCAwKTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzgsNSBA
QAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCI+CiAg
ICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2
Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJh
bnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQu
dHh0CmluZGV4IGI3YzMwOTdjNmIxNzYxNmUyZjVkNzRlOThiN2U5ODU5NzFhNDVhMzEuLjVjYzk2
MTVkMWUzMGQ4NzYwOWRhNDliMzczM2RiMDVlOWU0NjExNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxk
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBA
IEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGgg
dHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IHRy
YW5zZm9ybWVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21w
bGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0
bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJl
cGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggMTdlZDM1YjFhMTU4NTEwOTI3NmY5ZGJlZjA2ODQ2
MzYzZTQ2MDE2Zi4uZmE5Y2IwZGUzZjQwZWZkZGUyMTg4MzRhYzIxYjViZDI3MWVkMTQ5ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3Jt
ZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI4
IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0
aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7Cisg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0
VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIC8vIHJl
cXVlc3RBbmltYXRpb25GcmFtZSBwcm9kdWNlcyBmbGFja3kgcmVzdWx0cy4KKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5u
ZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3Jp
cHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzgsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0i
dGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rp
dj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1j
aGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggOGRiZWQ0NDliYjll
YWVjY2ZkNjYzOGI3NTc2YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5Y2MzYTFjZDhjMmYzZjU5
OTQ5ZGUzOGFjMjhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxk
LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMg
ZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQg
Zml4ZWQgZWxlbWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJl
Y3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJl
YSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDAp
ICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRy
YW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmluZGV4IDc0NWM1NWVjN2E5
YzdkOTllNThjNDVlMmJlNmI0YjIwYjgwMTU4YTMuLjk5M2FhNWZjYWY0NjhhZmIwYmQ3NWNmZjAy
Y2NkZTVjMzA3ZjJiMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbApA
QCAtMSwxMSArMSwyOCBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVz
dCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGlu
dGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24o
KS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKwor
ICAgICAgICAvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMu
CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93
LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNy
ZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0
KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAg
fQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM4LDUgQEAKICAgICA8ZGl2
IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAg
ICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogZml4ZWQ7Ij48YnIvPjwvZGl2Pjxici8+
CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlk
YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1w
YWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDg2MTIzMjZkZjhmYTE0ODAxN2Jj
M2E0ZTVmOTY1ODY1MGMyZjlkYmYuLmIxOTkyYTkxMGRlZGQxYzBkZDlhNWUyNDQ0ZmM4NmU5ZjQ2
N2I2NTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFp
bnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTIsNiArMiw1
IEBAIEEKIEEKIChyZXBhaW50IHJlY3RzCiAgIChyZWN0IDggNjggMjAgMTAwKQotICAocmVjdCA4
IDY4IDIwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggOTU5MTVlNjYwMGYxMjU1Y2JmNmYy
MzlmOTg2NDlkNzk4YTM3NjA0MS4uNGU3YzA5MjQzNDY3Y2Q3OTE1MzRlNWZiMTJhMGUxODUzNTdm
NTc0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5
LXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBUZXN0aW5nIGJvdGggaGl0IHRl
c3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFu
ZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBh
aW50aW5nIG9mIHNlbGVjdGlvbi4KLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDc3NCAzOCAxOCA3
OSkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM4IDE4IDc5KSApCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCmluZGV4IDAyNzg0NDBh
MWZiNzI0NDQyZDk2NDI5MjhlYTJlYjMyMzkzY2NhMjEuLmI1OTdiYTNjY2NjOGM0NWFhM2JkYjMz
MDcyOGZlMDM1ZGRjOTQwMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC5odG1sCkBAIC0zLDcgKzMsMTUgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1
bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKK30KKworZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAg
IGlmIChldmVudFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAs
IDQwKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CkBAIC0xMSw2ICsxOSwxNyBA
QCBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oNzkwLCAxMjApOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgfQorCisg
ICAgLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHByb2R1Y2VzIGZsYWNreSByZXN1bHRzLgorICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhU
TUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAg
aW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICB9LCAwKTsKIH0KIDwvc2NyaXB0PgogCkBAIC0yNiw0ICs0NSw1IEBAIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KKzxkaXYgaWQ9
InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQKaW5kZXggYmQ5ZjU4OWY5Y2NkOWM2NzQ4MjUxM2E3NDY2ZmNmYmJmZjdkMTk2OC4u
ZTJkM2U1OTdmZGQyYjFmYjY0NGE1ZTM5YmFiMzVjY2E0ZTZjYjBkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBn
cmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk5IDE4KQot
KQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5OSAxOCkgKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi5odG1sCmluZGV4IGJjYzllMzRkMTc3ODBlMDE2MDBlNTU4M2JjYWFiMWIwMjNhMTYyNjAuLmIz
ZGQxMDJkZGEwYTYzMGZiMjkwOGFhOWE5MGZiMTU2ZTg3ZjdkMmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLmh0bWwKQEAgLTEsNSArMSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwv
c2NyaXB0PgogPHN0eWxlPgogI3Rlc3QgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKQEAg
LTEyLDExICsxMSwzMCBAQAogfQogPC9zdHlsZT4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVw
YWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5n
UmVwYWludHMoKTsKKwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRl
c3QsIDAsIHRlc3QsIDEpOworCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93
LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5h
bHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9KTsKICAgICB9OwogPC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0i
cnVuUmVwYWludFRlc3QoKSI+CiAgICAgPHAgaWQ9InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJh
Y2tncm91bmQ8L3A+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlY2FjMzY1NzIxZWJh
ZDY1ZjAyNThhODk1ZGE1NDczYjJkZmUwMzc0Li40NzFlMzgwMTBkMzc1YWM2MTBlMjU5ZGFmOWY0
NGZlMTQzOGZhMjMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTUzNSw4ICsxNTM1LDYgQEAgd2Via2l0Lm9yZy9iLzE1OTE0MyBmYXN0L2RvbS9ob3Jp
em9udGFsLXNjcm9sbGJhci1pbi1ydGwuaHRtbCBbIEZhaWx1cmUgXQogIyBJbmNvbXBsZXRlIGlt
cGxlbWVudGF0aW9uIG9mIGV2ZW50U2VuZGVyIGNhdXNlcyB0aGlzIHRlc3QgdG8gZmFpbAogd2Vi
a2l0Lm9yZy9iLzQyMTk0IGZhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxlY3QtbGlzdC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xMzkzNTQgZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLmh0bWwgWyBGYWlsdXJlIF0KLQogIyBNaXNzaW5nIGdseXBoIHN5bWJv
bCBpcyBub3QgcmVuZGVyZWQgcHJvcGVybHkuCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvY3Nz
L2xpbmUtaGVpZ2h0LWRldGVybWluZWQtYnktcHJpbWFyeS1mb250Lmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi8xNDAyNTIgZmFzdC90ZXh0L2RlY29yYXRpb25zLXdpdGgtdGV4dC1jb21i
aW5lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmM1NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3Ro
IGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi5Tb21lIHJ1YnkKK1Rlc3RpbmcgYm90
aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhp
dCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRl
c3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFu
ZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBh
aW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRp
bmcgb2Ygc2VsZWN0aW9uLgorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM5IDE4IDgzKSApCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2Vs
ZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQKaW5kZXggYTBhZTQ1NjBkZmEzZDY2MTI1Y2YwZDQwMzA1MmRiMDgwNWU3MzgxMC4uMGZh
NWRkYTVkNDIyYTY0MmFlYTFkYWE3NGU5ZDhlODAxYWVjYTUyYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3Jl
cGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2
ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMK
LSAgKHJlY3QgOCAxNiAxOTcgMTcpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk3
IDE3KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggM2IyYzQ5ZDY1MDE2ZTI0OTBiMDUxYWJiNTRjNGI4OTg5MWRlMmRlNy4uYzA3M2NlNjg5
ZmZiNGMwNjBiMmUxYjcyYTRlMTU4NDQzMmE4NTE3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTU3OCw0ICsxNTc4LDYgQEAgd2Via2l0
Lm9yZy9iLzIzMTkxOCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2ludGVyYWN0aXZlLWUKIAogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtYWx0ZXJu
YXRlLWlmcmFtZS1ib2R5LWRpci1hdHRyLWRvZXMtbm90LXVwZGF0ZS1zY3JvbGxiYXItcGxhY2Vt
ZW50Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIzNTczMyBbIEJp
Z1N1cisgYXJtNjQgUmVsZWFzZSBdIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LW5ld2xpbmUt
aW4tcXVvdGVkLWNvbnRlbnQtY3Jhc2guaHRtbCBbIFNraXAgXQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKK3dlYmtpdC5vcmcvYi8yMzU3MzMgWyBCaWdTdXIrIGFybTY0IFJlbGVhc2UgXSBl
ZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1uZXdsaW5lLWluLXF1b3RlZC1jb250ZW50LWNyYXNo
Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8yMzEyOTggYWNjZXNzaWJpbGl0eS9tYWMvc2Vs
ZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8y
MzI2MzAgZmFzdC9mb3Jtcy9hdXRvZm9jdXMtb3BlcmEtMDAzLmh0bWwgWyBGYWlsdXJlIF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9tYWMv
Zm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2Zv
Y3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM2ODM3OWNjMThlMjBiNTIyOTIyY2NlNjJhYzljZjI2NDFjZDRmNWMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2li
aWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJp
bmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworIDEKKyAyCitUaGlzIHRlc3RzIHRo
YXQgY2FsbGluZyBmb2N1cyBvbiBhIHJlbmRlciBvYmplY3Qgd2hlbiBpdCBkb2Vzbid0IHJlc3Vs
dCBpbiBhIHNlbGVjdGlvbiBjaGFuZ2Ugd29uJ3QgbGVhdmUgaXNTeW5jaHJvbml6aW5nU2VsZWN0
aW9uIHNldCB0byB0cnVlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBh
ZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZv
Y3VzZWRFbGVtZW50LmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCIxIikpIGlzIHRydWUKK1BBU1MgYXhUZXh0U3RhdGVTeW5jT25lIGlzIHVuZGVm
aW5lZAorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
IjEiKS5pc0ZvY3VzYWJsZSBpcyB0cnVlCitQQVNTIGF4VGV4dFN0YXRlU3luY1R3byBpcyB1bmRl
ZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80
Nzc2NzY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9y
ZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZjAxMGZhYzQ2MjdlMzE0
NTFmMTQxYTM4NTFiNDYyNjZkN2QyOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE0IEBACisKKworCisocmVwYWludCByZWN0cworICAocmVjdCAxIDE5IDE1IDMyKQorICAo
cmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMTkgMTUgMzIpCisgIChyZWN0IDggMjYgMSAxOCkK
KyAgKHJlY3QgMSAzNyA3OTggMzIpCisgIChyZWN0IDggNDQgNzg0IDE4KQorICAocmVjdCAxIDUx
IDc5OCAxOCkKKyAgKHJlY3QgMSA0NCA3OTggNykKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwYzhmMjFkYjNkODNmMGM2NGQ5Y2M5ZTA0ZWIxZTIw
ZmRkNzk3NjllLi45ZTYxMDE5Y2QyYjg1NjAwZGYzYmYzY2U3MjJmYjZlYjFiNjRhNTVmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQ0MSwzICsyNDQx
LDUgQEAgZmFzdC90ZXh0L2ZvbnQtbG9va3VwLWRvdC1wcmVmaXgtY2FzZS1zZW5zaXRpdmUuaHRt
bCBbIFBhc3MgXQogIyA8cmRhcjovL3Byb2JsZW0vODc5NDQ0MjY+CiBbIENhdGFsaW5hIEJpZ1N1
ciBNb250ZXJleSBdIGZhc3QvdGV4dC9sb2NhbGUtc2hhcGluZy0yLmh0bWwgWyBQYXNzIEltYWdl
T25seUZhaWx1cmUgXQogWyBDYXRhbGluYSBCaWdTdXIgTW9udGVyZXkgXSBmYXN0L3RleHQvbG9j
YWxlLXNoYXBpbmctMy5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KKword2Via2l0Lm9y
Zy9iLzIzMTI5OCBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tc3luYy5odG1sIFsgU2tpcCBd
ICMgVGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVw
YWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0
L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDljYTdkYzE4ZTllOGQ2
YzAyNTc2MjUzODgxOWQzY2NkZjRkZGExOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAorCisKKworKHJlcGFpbnQgcmVjdHMKKyAgKHJlY3QgMSAzNyA3OTggMzIpCisgIChy
ZWN0IDggNDQgNzg0IDE4KQorICAocmVjdCAxIDUxIDc5OCAxOCkKKyAgKHJlY3QgMSA0NCA3OTgg
NykKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3Rl
ZC50eHQKaW5kZXggZTAyYzA5MmJhNTMzYjZlNmQwNmUyMjA4NjgzYzQxZTM0Yjg5MjgyNC4uNTAy
MzUxYWI3MDM0ZTg1ZGJlMDQ0YTYxZTU2NjkxYTRhNTI2NDMwOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxk
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBC
dWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRy
YW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBmaXhlZCBlbGVtZW50cyBhcmUgaW52YWxpZGF0ZWQg
Y29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3Rl
ZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuDQogDQogDQotKHJlcGFpbnQgcmVjdHMN
Ci0gIChyZWN0IDAgMCAxMDAgMTAwKQ0KLSkNCiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwt
ZXhwZWN0ZWQudHh0CmluZGV4IDVhOTM0ZjQ3MzdmZTVmOWZmMTY1NGVhN2EyYjEzMmZmN2ViMmI1
YzcuLmZjNTU5NTk3ZWVhMGU5MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBUZXN0aW5nIGJv
dGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBo
aXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0
ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rp
bmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDc3
NCAzOSAxOCA4MykKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM5IDE4IDgzKSApCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2Vs
ZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQKaW5kZXggMGE3NzFkNDY5YTFkYjBkNGM3YzY3ZjU1MDVhNWVlMjdlYjlmMDM1ZS4uNDE5
MDQwMzg4MzU2NTE3NDg2NmYzMDgzMWUxYmQwYTVmZTEwZDY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3Jl
cGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2
ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMK
LSAgKHJlY3QgOCAxNiAxOTcgMTgpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk3
IDE4KSApCg==
</data>
<flag name="commit-queue"
          id="476853"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450525</attachid>
            <date>2022-02-01 07:27:24 -0800</date>
            <delta_ts>2022-02-01 07:39:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20220201162721.patch</filename>
            <type>text/plain</type>
            <size>43874</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ1YWY4NWNlMDRmNTA0
OTU0YzI2ZmJhZjRlZTQ4YzMwNTJiOGQ5Yi4uMjY0ZGQ4ZTZhYjNkZTFiN2IwMDRlMzcwZTI0OWE3
NWM5ZjlhN2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOiBD
YWxsIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKSBmb3IKKyAgICAg
ICAgIUlzVXNlclRyaWdnZXJlZCBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3cpOiBSZW5hbWVkIGZyb20gdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUuCisgICAgICAgIEl0IGRvZXMgbm90IG5l
ZWQgdGhlIERvY3VtZW50JiBhdHRyaWJ1dGUgYmVjYXVzZSBpdCB3YXMgYWx3YXlzIGNhbGxlZCB3
aXRoIG1fZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6YWJzb2x1
dGVDYXJldEJvdW5kcyk6IFJlcGxhY2VkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlIHdpdGgKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJpbGl0eSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbik6IENhbGwgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rp
b25Jc05lZWRlZCk6IE5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTZWxlY3Rp
b25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFNlbGVjdGlvbklmTmVlZGVkKTogU2V0IHRoZSBVc2VyVHJpZ2dlcmVk
IGZsYWcgZm9yIGNhbGxpbmcgc2V0U2VsZWN0aW9uKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcpOiBDYWxs
IHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpLgorCiAyMDIyLTAxLTMxICBBc3VtdSBUYWtp
a2F3YSAgPGFzdW11QGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGhhbmRsaW5nIG9mIG1vZHVs
ZSBzY3JpcHQgZXJyb3JzIGluIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKaW5kZXggYWRhYjlkMWE4Y2M3YzA5ZGNmOWQ2Nzg2OGUzZmUwODk3MjM0ZGJm
Zi4uNjM3Y2Q3NmYwOTY4YmJhN2RjNDVjZTYzMDAzYjc1Mzk3MDE2ZGFmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTQ1NCw2ICs0NTQsMTEgQEAgdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5
b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBp
ZiAoIShvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVkKSkgeworICAgICAgICBzY2hlZHVsZUFwcGVh
cmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50LCBvcHRpb25zLmNvbnRhaW5zKFNt
b290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6U21vb3RoIDogU2Nyb2xsQmVoYXZpb3I6Oklu
c3RhbnQsIG9wdGlvbnMuY29udGFpbnMoUmV2ZWFsU2VsZWN0aW9uQm91bmRzKSA/IFJldmVhbEV4
dGVudE9wdGlvbjo6RG9Ob3RSZXZlYWxFeHRlbnQgOiBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVh
bEV4dGVudCk7CiAKICAgICBpZiAob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkgewpAQCAtNDYy
LDEzICs0NjcsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICB9CiB9CiAKLXN0YXRp
YyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKERvY3VtZW50JiBk
b2N1bWVudCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VO
b3coKQogeworICAgIFJlZiBkb2N1bWVudCA9ICptX2RvY3VtZW50OwogI2lmIEVOQUJMRShURVhU
X0NBUkVUKQotICAgIGRvY3VtZW50LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOworICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKICNlbHNlCi0gICAgZG9jdW1lbnQudXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIGRvY3Vt
ZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAjZW5kaWYKKyAgICBpZiAobV9wZW5kaW5nU2Vs
ZWN0aW9uVXBkYXRlKQorICAgICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKFJldmVhbFNlbGVjdGlvbkFmdGVy
VXBkYXRlIHJldmVhbE1vZGUpCkBAIC0xNjg2LDcgKzE2OTQsNyBAQCBJbnRSZWN0IEZyYW1lU2Vs
ZWN0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKGJvb2wqIGluc2lkZUZpeGVkKQogewogICAgIGlm
ICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKLSAgICB1cGRhdGVTZWxl
Y3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgdXBkYXRlU2Vs
ZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHJlY29tcHV0ZUNhcmV0UmVjdCgpOwogICAgIGlm
IChpbnNpZGVGaXhlZCkKICAgICAgICAgKmluc2lkZUZpeGVkID0gbV9jYXJldEluc2lkZVBvc2l0
aW9uRml4ZWQ7CkBAIC0yMjQ0LDcgKzIyNTIsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRD
YXJldFZpc2liaWxpdHkoQ2FyZXRWaXNpYmlsaXR5IHZpc2liaWxpdHksIFNob3VsZFVwZGF0ZQog
CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCB0cmlnZ2VyIGEgc3luY2hyb25vdXMgbGF5b3V0
IGhlcmUuCiAgICAgaWYgKGRvQXBwZWFyYW5jZVVwZGF0ZSA9PSBTaG91bGRVcGRhdGVBcHBlYXJh
bmNlOjpZZXMgJiYgbV9kb2N1bWVudCkKLSAgICAgICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGlu
Z0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBl
YXJhbmNlTm93KCk7CiAKICNpZiBFTkFCTEUoVEVYVF9DQVJFVCkKICAgICBpZiAobV9jYXJldFBh
aW50KSB7CkBAIC0yMzUyLDcgKzIzNjAsNyBAQCBGbG9hdFJlY3QgRnJhbWVTZWxlY3Rpb246OnNl
bGVjdGlvbkJvdW5kcyhDbGlwVG9WaXNpYmxlQ29udGVudCBjbGlwVG9WaXNpYmxlQ29udAogICAg
IGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKIAotICAgIHVw
ZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICBj
b25zdF9jYXN0PEZyYW1lU2VsZWN0aW9uJj4oKnRoaXMpLnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFu
Y2VOb3coKTsKICAgICBhdXRvKiByZW5kZXJWaWV3ID0gbV9kb2N1bWVudC0+cmVuZGVyVmlldygp
OwogICAgIGlmICghcmVuZGVyVmlldykKICAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKQEAg
LTI0NDgsNiArMjQ1Niw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihT
ZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgaWYgKGlzTm9u
ZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93
KCk7CisKICAgICBMYXlvdXRSZWN0IHJlY3Q7CiAgICAgYm9vbCBpbnNpZGVGaXhlZCA9IGZhbHNl
OwogICAgIGlmIChpc0NhcmV0KCkpCkBAIC0yNTE5LDYgKzI1MjksMTMgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6c2V0U2hvdWxkU2hvd0Jsb2NrQ3Vyc29yKGJvb2wgc2hvdWxkU2hvd0Jsb2NrQ3Vy
c29yKQogICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKIH0KIAordm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQXBwZWFyYW5jZUlmUmV2ZWFsaW5nU2VsZWN0aW9uSXNOZWVkZWQoKQoreworICAgIGlm
ICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlIHx8IG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSA9PSBT
ZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCkKKyAgICAgICAgcmV0dXJuOworICAgIHVw
ZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKK30KKwogdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkKIHsKICAgICBtX2FwcGVhcmFuY2VVcGRhdGVU
aW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXgg
MGQ2ZjFlZTZmMDVlNDM5NmYyNzhjNThmN2I4MWZkNDQyZTYwM2ZiZS4uM2M5MTAxZTdlMTUzM2Nh
MWZkYzM1MGY4MjNmNGZhYTJlNTNkMjcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaApAQCAtMTUxLDYgKzE1MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7CiAKKyAg
ICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCk7CiAg
ICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNjaGVkdWxl
QXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKIApAQCAtMjY3LDYgKzI2OCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHBy
aXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgdm9p
ZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQm
LCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxFeHRlbnRP
cHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9pZCB1cGRh
dGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAppbmRleCAxNmQ1Mzg5ZGZmZmFjMzI1NGZjZWY0ZmE3OWEwNzY1NWRkMDAzMzAyLi5m
YjBhYmNlYTJhY2YwZjMwZjBlMzdmNjg5ZjA2M2MxNzFjODQ1MjJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCkBAIC00MzYsNyArNDM2LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6
Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2b2lkIHNl
dFNlbGVjdGlvbklmTmVlZGVkKEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNlbGVjdGlv
bigpICE9IG5ld1NlbGVjdGlvbiAmJiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCi0gICAgICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
KTsKKyAgICAgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2Vs
ZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CiB9CiAK
IHN0YXRpYyBpbmxpbmUgYm9vbCBkaXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAppbmRleCBmMjY0ZmFkYmJhMWIwMzVhZTA2ZDM5YmMwZjI1YzhlY2JmZmZlMTY5
Li5kYjk2ZTNmMzJkMzJiMDAxYjI5MmNkYzExY2MwN2RhNDg5ODY1NDVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKQEAgLTE3MDIsNiArMTcwMiwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5k
ZXJpbmcoKQogICAgICAgICBkb2N1bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVk
KCk7CiAgICAgfSk7CiAKKyAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVu
dCkgeworICAgICAgICBkb2N1bWVudC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlQWZ0ZXJM
YXlvdXQoKTsKKyAgICB9KTsKKwogICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRv
Y3VtZW50KSB7CiAgICAgICAgIGRvY3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDM5OTdiNWFlZTcyNmZlZmIzZjFkZjhjZTJhZDg0YzRiMTFjYmQ0ZGQu
LjlhMzFmMTNhOTkwZmUxMTE3YzU5MDhlMjBhZmZhZGIyM2UzOTc0MTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1MyBAQAorMjAyMS0xMS0wMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZWxlYXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRlTGF5b3V0
KCkgdmlhIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMgb3V0IG9m
IHRoZSB0ZXh0LWJhc2VkLXJlcGFpbnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24gaXMgbm93
IHVwZGF0ZWQKKyAgICAgICAgYW5kIHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRoZSBjYXNl
IG9mIG5vbi11c2VyIHRyaWdnZXJlZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAg
ICAgIGJ5IHRoZSB0aW1lIHRoZSByZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1cGRhdGUg
aGFzIG5vdCBoYXBwZW5lZCB5ZXQuIFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3RzIHdlcmUg
bW9kaWZpZWQgc28gdGhhdCB3ZSB3YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMuCisKKyAg
ICAgICAgU2FtZSBzaXR1YXRpb24gZm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90IGludm9sdmUg
cmVwYWludCByZWN0cyBidXQgdHJpZ2dlciBhY2Nlc2liaWxpdHkKKyAgICAgICAgdHJlZSB1cGRh
dGVzLiBXZSBtdXN0IGVuc3VyZSB0aGF0IHdlIGxldCB0aGUgbm90aWZpY2F0aW9uIGJlIHRocm93
biBiZWZvcmUgY2hlY2tpbmcgd2hldGhlciBvcgorICAgICAgICBub3QgaGFzIGJlZW4gZW1pdGVk
LiBBcyBpdCdzIGRvbmUgYXN5bmNocm9ub3VzbHkgd2UgbXVzdCBsZXQgdGhlIG1haW4gdGhyZWFk
IHJ1biBiZWZvcmUgY2hlY2tpbmcuCisKKyAgICAgICAgTGFzdCBidXQgbm90IGxlYXN0LCBzb21l
IG9mIHRoZSB0ZXN0cyBhcmUgdXNpbmcgc2V0VGltZW91dCgpIGluc3RlYWQgb2YgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCkKKyAgICAgICAgYmVjYXVzZSB0aGUgcmVzdWx0cyB3aXRoIHRoZSBsYXR0
ZXIgd2VyZSBub3QgYXMgcmVsaWFibGUgdW5kZXIgc3RyZXNzL2RlYnVnIGNvbmRpdGlvbnMuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8u
aHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNo
YW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
LXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWw6CisgICAgICAgICog
ZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWw6CisgICAgICAg
ICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0
bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0
ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1j
aGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sOgorICAgICAgICAqIGZhc3Qv
cmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFj
LWNhdGFsaW5hLXdrMS9mYXN0L3JlcGFpbnQvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jv
bml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sx
L2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1z
eW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zh
c3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJs
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQt
c2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6CisKIDIwMjItMDEtMzEgIEFz
dW11IFRha2lrYXdhICA8YXN1bXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggaGFuZGxpbmcg
b2YgbW9kdWxlIHNjcmlwdCBlcnJvcnMgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8u
aHRtbAppbmRleCA4YmQ5MTk1NGIyZDhmZGM5MTQyMDA4MjlkMThlMWRiMzdjYWVmM2JhLi5kODhm
NTM4NWM2Y2Y5NTE5NmE4MDk0ZTZjZjMyNTZiNDkyODg4NzcxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNl
cmluZm8uaHRtbApAQCAtMTYyLDIwICsxNjIsMzEgQEAKICAgICAgICAgdmFyIGFkZGVkTm90aWZp
Y2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxs
YmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAK
LSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0g
ICAgICAgIHRleHRib3guZm9jdXMoKTsKLQotICAgICAgICBtb3ZlKHRydWUpOwotCi0gICAgICAg
IHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQiKTsKLSAgICAgICAgdGV4
dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlvbiB3YWl0Rm9yQW5pbWF0aW9uRnJhbWUoKSB7
CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KIAotICAgICAgICBtb3ZlKGZhbHNlKTsKKyAgICAgICAg
ZnVuY3Rpb24gZm9jdXNFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICBlbGVtZW50
LmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7Cisg
ICAgICAgIH0KIAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
eHRhcmVhIik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgZnVuY3Rpb24gbW92
ZUFzeW5jKGlzVmVydGljYWwpIHsKKyAgICAgICAgICAgIG1vdmUoaXNWZXJ0aWNhbCk7CisgICAg
ICAgICAgICByZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAgIH0KIAotICAg
ICAgICBtb3ZlKHRydWUpOworICAgICAgICAoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgYXdhaXQgZm9jdXNFbGVtZW50KCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICBhd2FpdCBtb3Zl
QXN5bmModHJ1ZSk7CisgICAgICAgICAgICBhd2FpdCBmb2N1c0VsZW1lbnQoImlucHV0Iik7Cisg
ICAgICAgICAgICBhd2FpdCBtb3ZlQXN5bmMoZmFsc2UpOworICAgICAgICAgICAgYXdhaXQgZm9j
dXNFbGVtZW50KCJ0ZXh0YXJlYSIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKHRydWUp
OworICAgICAgICB9KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0
bWwKaW5kZXggZTFlYmRlYzAyNzQyODY5OTY1YzVjZGRkYzYxMGY2YmJkOGViMmFkZi4uYmIzYzg2
Y2ZjOGE5N2EwYzZjODdlNzkwYjU1M2Y4MDlmNWE4OTdmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8u
aHRtbApAQCAtMTk1LDE5ICsxOTUsODcgQEAKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZp
Y2F0aW9uIiwgInRydWUiKTsKIAogICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRleHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwogCiAgICAgICAgIC8v
IFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNl
bGVjdGlvbigpOwotICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBm
b3IgKHZhciBpIGluIGdyYW4pIHsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndh
cmQiLCBncmFuW2ldKTsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwg
Z3JhbltpXSk7CisKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNUZXh0Qm94KCkgeworICAgICAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAgICB0ZXh0Ym94
LmZvY3VzKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAg
ICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
bW92ZVNlbGVjdGlvbihkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0KLSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLnNldFBvc2l0
aW9uKHRleHRib3gsIDApOwotICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJk
IiwgZ3JhbltpXSk7CisKKyAgICAgICAgZnVuY3Rpb24gZXh0ZW5kU2VsZWN0aW9uKGdyYW51bGFy
aXR5KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbnVsYXJpdHkp
OworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7
CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc2V0UG9z
aXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAg
ICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKworICAgICAgICAoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCBm
b2N1c1RleHRCb3goKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAg
ICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzBdKTsKKyAgICAgICAg
ICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblswXSk7CisgICAgICAgICAg
ICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsxXSk7CisgICAgICAgICAgICBh
d2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMV0pOworICAgICAgICAgICAgYXdh
aXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMl0pOworICAgICAgICAgICAgYXdhaXQg
bW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IG1v
dmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzNdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVT
ZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblszXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2Vs
ZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls0XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0
aW9uKCJiYWNrd2FyZCIsIGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlv
bigiZm9yd2FyZCIsIGdyYW5bNV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigi
YmFja3dhcmQiLCBncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZv
cndhcmQiLCBncmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3
YXJkIiwgZ3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJk
IiwgZ3Jhbls3XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIs
IGdyYW5bN10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdy
YW5bOF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFu
WzhdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3
YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzBdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9z
aXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzFdKTsKKyAg
ICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVu
ZFNlbGVjdGlvbihncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsK
KyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzNdKTsKKyAgICAgICAgICAg
IGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlv
bihncmFuWzRdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAg
ICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IHJl
c2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzZd
KTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0
IGV4dGVuZFNlbGVjdGlvbihncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRp
b24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzhdKTsKKyAgICAg
ICAgICB9KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggZWU5ZTBhODA1YTU5MWE4MWIyMTZhNWVh
NThlOGY0ODAyNmI1YTBkYi4uYWU1MDVhMmQ1MDk2ZWY4YjAyOGY2NGFmMjM1MDYxMDFjOTMxOTg5
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRt
bApAQCAtNDMsMTIgKzQzLDE3IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIC8vIFRyaWdnZXIg
c2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigp
OwogICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBmb3IgKHZhciBr
ID0gMDsgayA8IDM7IGsrKykgeworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4g
ewogICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsK
LSAgICAgICAgfQotCi0gICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgotICAgICAgICBk
b2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8gIik7CisgICAg
ICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgICAgIHMu
bW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcy5tb2Rp
ZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmV4
ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAgICB9CiAKIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1w
b3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwKaW5kZXggOWFk
NjRhZDljNTZiNWNjMWU2ZWVlMTdlNDAwODFhYzRiNGMyNDYyYy4uZWU5ZWZlNDUxMjViMjZmMDY1
ZDkyZmQ5ZGVjMzRkZTAxNmI3MGQwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQt
ZW1wdHktY29udGVudC5odG1sCkBAIC0xNCwxMyArMTQsMTcgQEAgc3BhbiB7CiA8c2NyaXB0Pgog
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMo
KTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFs
bENoaWxkcmVuKGZvb2Jhcik7Ci0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gIHJlc3VsdC5p
bm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7Ci0gIGludGVybmFscy5z
dG9wVHJhY2tpbmdSZXBhaW50cygpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0K
LTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dpbmRvdy5nZXRTZWxlY3Rp
b24oKS5zZWxlY3RBbGxDaGlsZHJlbihmb29iYXIpOworcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgp
ID0+IHsKKyAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICByZXN1bHQuaW5uZXJUZXh0ID0g
aW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgIGludGVybmFscy5zdG9wVHJhY2tp
bmdSZXBhaW50cygpOworICB9CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAppbmRl
eCA3MzRjZGNiMDZhMzYzNjYzYjVkMDkxMDAxNGZkNjY0YjI1YTU0MGU4Li5lNDJlNDNiYTJiMmY3
NDU0NGUyOWI1ZTZkZDc2MTM5OGE0Y2M3MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbApAQCAt
MTUsMTMgKzE1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRhLmZvY3VzKCk7CiAgICAgLy8g
Y2xpY2sKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKDkwLCAyMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwot
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIGlmICh0YS5zZWxlY3Rpb25F
bmQgPT0gMTcpCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDog
Y2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CisgICAgICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQorICAgICAgICAgICAgICAg
IHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0IGlzIGF0ICIg
KyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0
IGNhbid0IHJ1biB3aXRob3V0IGV2ZW50IHNlbmRlciAocGFydCBvZiBEdW1wUmVuZGVyVHJlZSku
ICIKICAgICAgICAgICAgICsgIlRvIHRlc3QgbWFudWFsbHksIGNsaWNrIGF0IHRoZSBtaWRkbGUg
b2YgdGhlIGxpbmUgbWFya2VkIDkgYW5kIGNoZWNrIHRoYXQgdGhlIGNhcmV0IGFwcGVhcnMgYWZ0
ZXIgdGhlIDkuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAzYWJi
MGY3MDg5YTNmM2JjYmM2YWFkZjY5ZjczZDc3N2JmNzllMzBhLi5hY2VhNTRlMDUwZGY1ZDJhNzc1
YTlkOTlkOWIwMWY3MDY2YmE1YTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQu
dHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBh
aW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBl
bGVtZW50cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0
ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHku
CiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50
IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCA3ZDQ3
ZDEyNTkxZDliYzlmYTEyMTY5MWQwZTc0MGY5YWVkYjNmNDcwLi5lNzgzMmQyYjRhMTE0ZWZhMzI3
ZDgzNWI2ZTZjNWU2MmJjMTk0MWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEs
MjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVu
Y3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsK
KyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3Rh
cnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVw
YWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgp
OworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwogICAgIH0KICAg
ICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdj4KICAg
ICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0
aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+
PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlw
cGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4
IGRiM2MzNzQxNjU2YjE3NzhjOTE0MGY3MTU0YWU4N2M1ODA2YzQ2YjQuLjk3OWVmYTM5ZTU1MGNj
MmUzMjU0NjMxMzI5YTkxMmI3ZWY1OGYyOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJz
b2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxl
Y3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMg
dGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFyZSBpbnZhbGlk
YXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNl
bGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0
cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgMCAwIDEw
MCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxYjYxZWJm
MmQ1MGIzYTRmMGQwMjM4OTE2MTY0NDE3ZmUyOGU1NmE3Li40N2E0ZTYwYTEzNjFiMmVmNWU3Yzgz
ZTZhMTFjM2RjNzg2NGQ1NTE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1s
CkBAIC0xLDExICsxLDI4IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRU
ZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAg
aW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlv
bigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOwor
CisgICAgICAgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSBwcm9kdWNlcyBmbGFja3kgcmVzdWx0
cy4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
I3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1Rl
eHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAg
ICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzgsNSBAQAogICAgIDxk
aXYgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCI+CiAgICAgICAgIDxk
aXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAg
ICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQt
YWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4
IGI3YzMwOTdjNmIxNzYxNmUyZjVkNzRlOThiN2U5ODU5NzFhNDVhMzEuLjVjYzk2MTVkMWUzMGQ4
NzYwOWRhNDliMzczM2RiMDVlOWU0NjExNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEw
MDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3Jt
cwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IHRyYW5zZm9ybWVk
IGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wbGV0ZWx5IGdy
ZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAot
KHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRl
LWNoaWxkLmh0bWwKaW5kZXggMTdlZDM1YjFhMTU4NTEwOTI3NmY5ZGJlZjA2ODQ2MzYzZTQ2MDE2
Zi4uZmE5Y2IwZGUzZjQwZWZkZGUyMTg4MzRhYzIxYjViZDI3MWVkMTQ5ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1
dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI4IEBACiA8IWRv
Y3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNl
ZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFp
bnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdS
ZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFy
Z2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIC8vIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSBwcm9kdWNlcyBmbGFja3kgcmVzdWx0cy4KKyAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0g
d2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBp
bnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAg
PHN0eWxlPgpAQCAtMjEsNCArMzgsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNm
b3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBz
dHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7
IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8
ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggOGRiZWQ0NDliYjllYWVjY2ZkNjYz
OGI3NTc2YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5Y2MzYTFjZDhjMmYzZjU5OTQ5ZGUzOGFj
MjhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
dHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVk
LnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVw
YWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgZml4ZWQgZWxl
bWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhl
IGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52
YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEw
MCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDApICkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWZpeGVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmluZGV4IDc0NWM1NWVjN2E5YzdkOTllNThj
NDVlMmJlNmI0YjIwYjgwMTU4YTMuLjk5M2FhNWZjYWY0NjhhZmIwYmQ3NWNmZjAyY2NkZTVjMzA3
ZjJiMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbApAQCAtMSwxMSAr
MSwyOCBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBm
dW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAg
eworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5z
dGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNl
QW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICAv
LyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMuCisgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycp
LmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAg
ICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwv
c2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM4LDUgQEAKICAgICA8ZGl2IHN0eWxlPSIt
d2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYg
aWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogZml4ZWQ7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9k
aXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZh
bGlkYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDg2MTIzMjZkZjhmYTE0ODAxN2JjM2E0ZTVmOTY1
ODY1MGMyZjlkYmYuLmIxOTkyYTkxMGRlZGQxYzBkZDlhNWUyNDQ0ZmM4NmU5ZjQ2N2I2NTggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxp
ZGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTIsNiArMiw1IEBAIEEKIEEK
IChyZXBhaW50IHJlY3RzCiAgIChyZWN0IDggNjggMjAgMTAwKQotICAocmVjdCA4IDY4IDIwIDEw
MCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1y
dWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggOTU5MTVlNjYwMGYxMjU1Y2JmNmYyMzlmOTg2NDlk
Nzk4YTM3NjA0MS4uNGU3YzA5MjQzNDY3Y2Q3OTE1MzRlNWZiMTJhMGUxODUzNTdmNTc0OCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwt
ZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5k
IHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFp
bnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDc3NCAzOCAxOCA3OSkKLSkKLQor
KHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM4IDE4IDc5KSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCmluZGV4IDAyNzg0NDBhMWZiNzI0NDQy
ZDk2NDI5MjhlYTJlYjMyMzkzY2NhMjEuLmI1OTdiYTNjY2NjOGM0NWFhM2JkYjMzMDcyOGZlMDM1
ZGRjOTQwMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVi
eS1ybC5odG1sCkBAIC0zLDcgKzMsMTUgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHJl
cGFpbnRUZXN0KCkgeworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKwor
ZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgIGlmIChldmVu
dFNlbmRlcikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDQwKTsKICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CkBAIC0xMSw2ICsxOSwxNyBAQCBmdW5jdGlv
biByZXBhaW50VGVzdCgpIHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCAx
MjApOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgfQorCisgICAgLy8gcmVx
dWVzdEFuaW1hdGlvbkZyYW1lIHByb2R1Y2VzIGZsYWNreSByZXN1bHRzLgorICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
ICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5k
b3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgaW50ZXJuYWxz
LnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9
LCAwKTsKIH0KIDwvc2NyaXB0PgogCkBAIC0yNiw0ICs0NSw1IEBAIFRlc3RpbmcgYm90aCBoaXQg
dGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQg
dGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQg
dGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQg
dGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KKzxkaXYgaWQ9InJlcGFpbnRz
Ij48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90
ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQK
aW5kZXggYmQ5ZjU4OWY5Y2NkOWM2NzQ4MjUxM2E3NDY2ZmNmYmJmZjdkMTk2OC4uZTJkM2U1OTdm
ZGQyYjFmYjY0NGE1ZTM5YmFiMzVjY2E0ZTZjYjBkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhp
ZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNr
Z3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk5IDE4KQotKQotCisocmVw
YWludCByZWN0cyAocmVjdCA4IDE2IDE5OSAxOCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCmlu
ZGV4IGJjYzllMzRkMTc3ODBlMDE2MDBlNTU4M2JjYWFiMWIwMjNhMTYyNjAuLmIzZGQxMDJkZGEw
YTYzMGZiMjkwOGFhOWE5MGZiMTU2ZTg3ZjdkMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwK
QEAgLTEsNSArMSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGV4dC1iYXNlZC1yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgog
PHN0eWxlPgogI3Rlc3QgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKQEAgLTEyLDExICsx
MSwzMCBAQAogfQogPC9zdHlsZT4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3Qo
KSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgICAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMo
KTsKKwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRlc3QsIDAsIHRl
c3QsIDEpOworCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFs
cy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRy
YWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9KTsKICAgICB9OwogPC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0icnVuUmVwYWlu
dFRlc3QoKSI+CiAgICAgPHAgaWQ9InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQ8
L3A+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3MtbXVsdGlw
bGUtZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbmNvcnJlY3QtZGVzZWxl
Y3Rpb24tYWNyb3NzLW11bHRpcGxlLWVsZW1lbnRzLmh0bWwKaW5kZXggZTA4YjFiNzExNjQxNjdl
MWE5ZGVkNDJkZTIxZTYyNTgzMjBjMmEyYy4uZWZlOTY0ZWI1N2YxYzMwNTVjNTJlY2E5YjVjYTc2
OWY2NDdhMjgyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1k
ZXNlbGVjdGlvbi1hY3Jvc3MtbXVsdGlwbGUtZWxlbWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9zcy1tdWx0aXBsZS1lbGVtZW50
cy5odG1sCkBAIC0yMCwxMSArMjAsMTMgQEAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygp
OwogICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oc2Vjb25kKTsKLSAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICByZXN1bHQuaW5uZXJUZXh0ID0gaW50ZXJuYWxz
LnJlcGFpbnRSZWN0c0FzVGV4dCgpLmluZGV4T2YoIjc4NCA3MCIpID09IC0xID8gIkZBSUwiIDog
IlBBU1MiOwotICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOwotICB9Ci0gIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
cmVzdWx0LmlubmVyVGV4dCA9IGludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKS5pbmRleE9m
KCI3ODQgNzAiKSA9PSAtMSA/ICJGQUlMIiA6ICJQQVNTIjsKKyAgICAgIGludGVybmFscy5zdG9w
VHJhY2tpbmdSZXBhaW50cygpOworICAgIH0KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgfSwgMCk7CiB9LCAwKTsKIDwvc2NyaXB0
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggZWNhYzM2NTcyMWViYWQ2NWYwMjU4YTg5NWRhNTQ3M2IyZGZl
MDM3NC4uNDcxZTM4MDEwZDM3NWFjNjEwZTI1OWRhZjlmNDRmZTE0MzhmYTIzMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MzUsOCArMTUzNSw2IEBA
IHdlYmtpdC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRs
Lmh0bWwgWyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNl
bmRlciBjYXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcvYi80MjE5NCBmYXN0L3Nj
cm9sbGluZy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13
ZWJraXQub3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIFsg
RmFpbHVyZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90IHJlbmRlcmVkIHByb3Bl
cmx5Lgogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhlaWdodC1kZXRlcm1pbmVk
LWJ5LXByaW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZh
c3QvdGV4dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1sIFsgRmFpbHVyZSBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NTgwOThl
NjNhODAyMjVlNzBhZjQ4YTY1MzgwMjI5MTJhZDkxODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBh
aW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRp
bmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBv
ZiBzZWxlY3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitU
ZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KKyhyZXBh
aW50IHJlY3RzIChyZWN0IDc3NSAzNyAxNyA4NCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGEwYWU0NTYwZGZh
M2Q2NjEyNWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQyMmE2NDJhZWExZGFhNzRl
OWQ4ZTgwMWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0
L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBn
cmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE3KQot
KQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDNiMmM0OWQ2NTAxNmUyNDkw
YjA1MWFiYjU0YzRiODk4OTFkZTJkZTcuLmMwNzNjZTY4OWZmYjRjMDYwYjJlMWI3MmE0ZTE1ODQ0
MzJhODUxNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTE1NzgsNCArMTU3OCw2IEBAIHdlYmtpdC5vcmcvYi8yMzE5MTggaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lCiAKIGZh
c3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWFsdGVybmF0ZS1pZnJhbWUtYm9keS1kaXItYXR0
ci1kb2VzLW5vdC11cGRhdGUtc2Nyb2xsYmFyLXBsYWNlbWVudC5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMzU3MzMgWyBCaWdTdXIrIGFybTY0IFJlbGVhc2UgXSBl
ZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1uZXdsaW5lLWluLXF1b3RlZC1jb250ZW50LWNyYXNo
Lmh0bWwgWyBTa2lwIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXQub3JnL2Iv
MjM1NzMzIFsgQmlnU3VyKyBhcm02NCBSZWxlYXNlIF0gZWRpdGluZy9leGVjQ29tbWFuZC9pbnNl
cnQtbmV3bGluZS1pbi1xdW90ZWQtY29udGVudC1jcmFzaC5odG1sIFsgU2tpcCBdCit3ZWJraXQu
b3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5m
by5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjMyNjMwIGZhc3QvZm9ybXMvYXV0b2Zv
Y3VzLW9wZXJhLTAwMy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9u
LXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1z
eW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjgzNzlj
YzE4ZTIwYjUyMjkyMmNjZTYyYWM5Y2YyNjQxY2Q0ZjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5n
LXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE3IEBACisKKyAxCisgMgorVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgZm9jdXMgb24gYSBy
ZW5kZXIgb2JqZWN0IHdoZW4gaXQgZG9lc24ndCByZXN1bHQgaW4gYSBzZWxlY3Rpb24gY2hhbmdl
IHdvbid0IGxlYXZlIGlzU3luY2hyb25pemluZ1NlbGVjdGlvbiBzZXQgdG8gdHJ1ZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1
ZQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5pc0VxdWFsKGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiMSIpKSBpcyB0cnVl
CitQQVNTIGF4VGV4dFN0YXRlU3luY09uZSBpcyB1bmRlZmluZWQKK1BBU1MgYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikuaXNGb2N1c2FibGUgaXMgdHJ1
ZQorUEFTUyBheFRleHRTdGF0ZVN5bmNUd28gaXMgdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YmYwMTBmYWM0NjI3ZTMxNDUxZjE0MWEzODUxYjQ2MjY2ZDdkMjlk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Jl
cGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCisKKworKHJlcGFp
bnQgcmVjdHMKKyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJlY3QgOCAyNiAxIDE4KQorICAocmVj
dCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMzcgNzk4IDMyKQor
ICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQg
Nzk4IDcpCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggMGM4ZjIxZGIzZDgzZjBjNjRkOWNjOWUwNGViMWUyMGZkZDc5NzY5ZS4uOWU2MTAxOWNkMmI4
NTYwMGRmM2JmM2NlNzIyZmI2ZWIxYjY0YTU1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI0NDEsMyArMjQ0MSw1IEBAIGZhc3QvdGV4dC9mb250LWxv
b2t1cC1kb3QtcHJlZml4LWNhc2Utc2Vuc2l0aXZlLmh0bWwgWyBQYXNzIF0KICMgPHJkYXI6Ly9w
cm9ibGVtLzg3OTQ0NDI2PgogWyBDYXRhbGluYSBCaWdTdXIgTW9udGVyZXkgXSBmYXN0L3RleHQv
bG9jYWxlLXNoYXBpbmctMi5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KIFsgQ2F0YWxp
bmEgQmlnU3VyIE1vbnRlcmV5IF0gZmFzdC90ZXh0L2xvY2FsZS1zaGFwaW5nLTMuaHRtbCBbIFBh
c3MgSW1hZ2VPbmx5RmFpbHVyZSBdCisKK3dlYmtpdC5vcmcvYi8yMzEyOTggYWNjZXNzaWJpbGl0
eS9tYWMvc2VsZWN0aW9uLXN5bmMuaHRtbCBbIFNraXAgXSAjIFRpbWVvdXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ5Y2E3ZGMxOGU5ZThkNmMwMjU3NjI1Mzg4MTlkM2NjZGY0ZGRh
MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBh
aW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworCisKKyhyZXBhaW50
IHJlY3RzCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJl
Y3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcpCispCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1j
aGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGUwMmMwOTJiYTUz
M2I2ZTZkMDZlMjIwODY4M2M0MWUzNGI4OTI4MjQuLjUwMjM1MWFiNzAzNGU4NWRiZTA0NGE2MWU1
NjY5MWE0YTUyNjQzMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNo
aWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdh
cHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRo
YXQgZml4ZWQgZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxs
IGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQg
Y29ycmVjdGx5Lg0KIA0KIA0KLShyZXBhaW50IHJlY3RzDQotICAocmVjdCAwIDAgMTAwIDEwMCkN
Ci0pDQogDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAppbmRleCA1YTkz
NGY0NzM3ZmU1ZjlmZjE2NTRlYTdhMmIxMzJmZjdlYjJiNWM3Li5mYzU1OTU5N2VlYTBlOTIwZDE5
NWFkMjc1OGEwOTI3ZjFiMjYyNTExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVj
dGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWlu
dGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzkgMTggODMpCi0pCi0KKyhyZXBh
aW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IDBhNzcxZDQ2OWEx
ZGIwZDRjN2M2N2Y1NTA1YTVlZTI3ZWI5ZjAzNWUuLjQxOTA0MDM4ODM1NjUxNzQ4NjZmMzA4MzFl
MWJkMGE1ZmUxMGQ2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0
L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBn
cmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE4KQot
KQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxOCkgKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450526</attachid>
            <date>2022-02-01 07:41:16 -0800</date>
            <delta_ts>2022-03-09 04:15:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20220201164113.patch</filename>
            <type>text/plain</type>
            <size>43838</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRjMzQ4NjllOGRmMmYy
MDIxZTQzNDllMTg1NDFjMDY0MWEwMTQ3Zi4uZjJjMGY3ZGY0YzU2ZjczNmNiODFmYWQxZmJlYWJh
YmE3ZTUwZTAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOiBD
YWxsIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKSBmb3IKKyAgICAg
ICAgIUlzVXNlclRyaWdnZXJlZCBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3cpOiBSZW5hbWVkIGZyb20gdXBkYXRl
U2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUuCisgICAgICAgIEl0IGRvZXMgbm90IG5l
ZWQgdGhlIERvY3VtZW50JiBhdHRyaWJ1dGUgYmVjYXVzZSBpdCB3YXMgYWx3YXlzIGNhbGxlZCB3
aXRoIG1fZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6YWJzb2x1
dGVDYXJldEJvdW5kcyk6IFJlcGxhY2VkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlIHdpdGgKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJpbGl0eSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkJvdW5kcyBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbik6IENhbGwgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpLgorICAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rp
b25Jc05lZWRlZCk6IE5ldyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTZWxlY3Rp
b25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFNlbGVjdGlvbklmTmVlZGVkKTogU2V0IHRoZSBVc2VyVHJpZ2dlcmVk
IGZsYWcgZm9yIGNhbGxpbmcgc2V0U2VsZWN0aW9uKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcpOiBDYWxs
IHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpLgorCiAyMDIyLTAyLTAxICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogbnVsbHB0ciBjcmFzaCB1bmRl
ciBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBhZGFiOWQx
YThjYzdjMDlkY2Y5ZDY3ODY4ZTNmZTA4OTcyMzRkYmZmLi42MzdjZDc2ZjA5NjhiYmE3ZGM0NWNl
NjMwMDNiNzUzOTcwMTZkYWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcApAQCAtNDU0LDYgKzQ1NCwxMSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAg
IGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5k
aW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICghKG9wdGlvbnMgJiBJc1VzZXJUcmln
Z2VyZWQpKSB7CisgICAgICAgIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFu
Z2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbihpbnRlbnQsIG9wdGlvbnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2
aW9yOjpTbW9vdGggOiBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgb3B0aW9ucy5jb250YWlucyhS
ZXZlYWxTZWxlY3Rpb25Cb3VuZHMpID8gUmV2ZWFsRXh0ZW50T3B0aW9uOjpEb05vdFJldmVhbEV4
dGVudCA6IFJldmVhbEV4dGVudE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKIAogICAgIGlmIChvcHRp
b25zICYgSXNVc2VyVHJpZ2dlcmVkKSB7CkBAIC00NjIsMTMgKzQ2NywxNiBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
LCBPcHRpb25TZXQ8UwogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlV
cGRhdGluZ0xheW91dE9yU3R5bGUoRG9jdW1lbnQmIGRvY3VtZW50KQordm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpCiB7CisgICAgUmVmIGRvY3VtZW50
ID0gKm1fZG9jdW1lbnQ7CiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCi0gICAgZG9jdW1lbnQudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQtPnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogI2Vsc2UKLSAgICBkb2N1bWVudC51
cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQo
KTsKICNlbmRpZgorICAgIGlmIChtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCisgICAgICAgIHVw
ZGF0ZUFwcGVhcmFuY2UoKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxl
Y3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJVcGRhdGUgcmV2ZWFsTW9kZSkKQEAgLTE2
ODYsNyArMTY5NCw3IEBAIEludFJlY3QgRnJhbWVTZWxlY3Rpb246OmFic29sdXRlQ2FyZXRCb3Vu
ZHMoYm9vbCogaW5zaWRlRml4ZWQpCiB7CiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICBy
ZXR1cm4gSW50UmVjdCgpOwotICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0
eWxlKCptX2RvY3VtZW50KTsKKyAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAg
ICAgcmVjb21wdXRlQ2FyZXRSZWN0KCk7CiAgICAgaWYgKGluc2lkZUZpeGVkKQogICAgICAgICAq
aW5zaWRlRml4ZWQgPSBtX2NhcmV0SW5zaWRlUG9zaXRpb25GaXhlZDsKQEAgLTIyNDQsNyArMjI1
Miw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldENhcmV0VmlzaWJpbGl0eShDYXJldFZpc2li
aWxpdHkgdmlzaWJpbGl0eSwgU2hvdWxkVXBkYXRlCiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
bid0IHRyaWdnZXIgYSBzeW5jaHJvbm91cyBsYXlvdXQgaGVyZS4KICAgICBpZiAoZG9BcHBlYXJh
bmNlVXBkYXRlID09IFNob3VsZFVwZGF0ZUFwcGVhcmFuY2U6OlllcyAmJiBtX2RvY3VtZW50KQot
ICAgICAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVu
dCk7CisgICAgICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKIAogI2lmIEVOQUJM
RShURVhUX0NBUkVUKQogICAgIGlmIChtX2NhcmV0UGFpbnQpIHsKQEAgLTIzNTIsNyArMjM2MCw3
IEBAIEZsb2F0UmVjdCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2li
bGVDb250ZW50IGNsaXBUb1Zpc2libGVDb250CiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAg
ICByZXR1cm4gTGF5b3V0UmVjdCgpOwogCi0gICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xh
eW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIGNvbnN0X2Nhc3Q8RnJhbWVTZWxlY3Rpb24m
PigqdGhpcykudXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIGF1dG8qIHJlbmRl
clZpZXcgPSBtX2RvY3VtZW50LT5yZW5kZXJWaWV3KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQog
ICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwpAQCAtMjQ0OCw2ICsyNDU2LDggQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFs
TW9kZSwgY29uc3QgU2Nyb2wKICAgICBpZiAoaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKKwogICAgIExheW91dFJlY3QgcmVj
dDsKICAgICBib29sIGluc2lkZUZpeGVkID0gZmFsc2U7CiAgICAgaWYgKGlzQ2FyZXQoKSkKQEAg
LTI1MTksNiArMjUyOSwxMyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTaG91bGRTaG93Qmxv
Y2tDdXJzb3IoYm9vbCBzaG91bGRTaG93QmxvY2tDdXJzb3IpCiAgICAgdXBkYXRlQXBwZWFyYW5j
ZSgpOwogfQogCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxp
bmdTZWxlY3Rpb25Jc05lZWRlZCgpCit7CisgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRh
dGUgfHwgbV9zZWxlY3Rpb25SZXZlYWxNb2RlID09IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90
UmV2ZWFsKQorICAgICAgICByZXR1cm47CisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5v
dygpOworfQorCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlv
dXQoKQogewogICAgIG1fYXBwZWFyYW5jZVVwZGF0ZVRpbWVyLnN0b3AoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZDZmMWVlNmYwNWU0Mzk2ZjI3OGM1OGY3
YjgxZmQ0NDJlNjAzZmJlLi4zYzkxMDFlN2UxNTMzY2ExZmRjMzUwZjgyM2Y0ZmFhMmU1M2QyNzAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0xNTEsNiArMTUx
LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKICAgICB2b2lk
IHdpbGxCZVJlbW92ZWRGcm9tRnJhbWUoKTsKIAorICAgIHZvaWQgdXBkYXRlQXBwZWFyYW5jZUlm
UmV2ZWFsaW5nU2VsZWN0aW9uSXNOZWVkZWQoKTsKICAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VB
ZnRlckxheW91dCgpOwogICAgIHZvaWQgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHls
ZUNoYW5nZSgpOwogCkBAIC0yNjcsNiArMjY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRl
RnJvbUFzc29jaWF0ZWRMaXZlUmFuZ2UoKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHVwZGF0ZVNl
bGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlv
bihjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xs
QmVoYXZpb3I6Okluc3RhbnQsIFJldmVhbEV4dGVudE9wdGlvbiA9IFJldmVhbEV4dGVudE9wdGlv
bjo6UmV2ZWFsRXh0ZW50KTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rp
b24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDI3NTE3YzIyZTc3
MDllYWFlNTUxMjNmOTllZTY5N2VkNjY4NWE5MDEuLmNhYjVjZWExZmU0MDc0ODE4MDMwNzc0NmZj
MzhmYWFlYWEzMWQxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTQz
Niw3ICs0MzYsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYg
bm9kZVRvQmVSZW1vdmVkKQogc3RhdGljIHZvaWQgc2V0U2VsZWN0aW9uSWZOZWVkZWQoRnJhbWVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9u
KQogewogICAgIGlmIChzZWxlY3Rpb24uc2VsZWN0aW9uKCkgIT0gbmV3U2VsZWN0aW9uICYmIHNl
bGVjdGlvbi5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBzZWxlY3Rpb24uc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGRpc3Bh
dGNoU2VsZWN0U3RhcnQoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGYyNjRmYWRi
YmExYjAzNWFlMDZkMzliYzBmMjVjOGVjYmZmZmUxNjkuLmRiOTZlM2YzMmQzMmIwMDFiMjkyY2Rj
MTFjYzA3ZGE0ODk4NjU0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTcwMiw2ICsxNzAyLDEw
IEBAIHZvaWQgUGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZygpCiAgICAgICAgIGRvY3VtZW50
LmVucXVldWVQYWludFRpbWluZ0VudHJ5SWZOZWVkZWQoKTsKICAgICB9KTsKIAorICAgIGZvckVh
Y2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnNl
bGVjdGlvbigpLnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpOworICAgIH0pOworCiAgICAg
Zm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKICAgICAgICAgZG9jdW1l
bnQudXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmRkMzVkNjBh
MjA0OWUxMTY4ODVmZDk2NWQwOGU0Yzk3YjQ2M2QxOS4uNDhhMmE4YzRhMjBiMjAxNmM0MDVkM2Vl
ZGIzZjliOTIwNmU4NWRlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTExLTAyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgTW92ZWQgc29tZSB0ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFzZWQtcmVwYWludC5q
cyBtb2RlbCBiZWNhdXNlIHNlbGVjdGlvbiBpcyBub3cgdXBkYXRlZAorICAgICAgICBhbmQgcmV2
ZWFsZWQgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIgdHJpZ2dlcmVkIGNo
YW5nZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKKyAgICAgICAgYnkgdGhlIHRpbWUgdGhlIHJlcGFp
bnQgcmVjdHMgYXJlIHF1ZXJpZWQgdGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBlbmVkIHlldC4gVGhh
dCdzIHdoeQorICAgICAgICB0aGUgdGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0aGF0IHdlIHdhaXQg
dW50aWwgdGhlIHJlcGFpbnQgaGFwcGVucy4KKworICAgICAgICBTYW1lIHNpdHVhdGlvbiBmb3Ig
b3RoZXIgdGVzdHMgdGhhdCBkbyBub3QgaW52b2x2ZSByZXBhaW50IHJlY3RzIGJ1dCB0cmlnZ2Vy
IGFjY2VzaWJpbGl0eQorICAgICAgICB0cmVlIHVwZGF0ZXMuIFdlIG11c3QgZW5zdXJlIHRoYXQg
d2UgbGV0IHRoZSBub3RpZmljYXRpb24gYmUgdGhyb3duIGJlZm9yZSBjaGVja2luZyB3aGV0aGVy
IG9yCisgICAgICAgIG5vdCBoYXMgYmVlbiBlbWl0ZWQuIEFzIGl0J3MgZG9uZSBhc3luY2hyb25v
dXNseSB3ZSBtdXN0IGxldCB0aGUgbWFpbiB0aHJlYWQgcnVuIGJlZm9yZSBjaGVja2luZy4KKwor
ICAgICAgICBMYXN0IGJ1dCBub3QgbGVhc3QsIHNvbWUgb2YgdGhlIHRlc3RzIGFyZSB1c2luZyBz
ZXRUaW1lb3V0KCkgaW5zdGVhZCBvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKQorICAgICAgICBi
ZWNhdXNlIHRoZSByZXN1bHRzIHdpdGggdGhlIGxhdHRlciB3ZXJlIG5vdCBhcyByZWxpYWJsZSB1
bmRlciBzdHJlc3MvZGVidWcgY29uZGl0aW9ucy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0
bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVk
LWVtcHR5LWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9s
bGVkLWVuZGxpbmUtY2FyZXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxk
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQt
YWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZp
eGVkLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1p
bnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rp
b24tcnVieS1ybC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3RleHQt
c2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtY2F0YWxpbmEtd2sxL2Zhc3QvcmVwYWlu
dC9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxp
dHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVu
LWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBTd2l0Y2ggdG8gdXNlIEFUU1BJ
IGluc3RlYWQgb2YgQVRLCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sCmluZGV4IDhiZDkxOTU0
YjJkOGZkYzkxNDIwMDgyOWQxOGUxZGIzN2NhZWYzYmEuLmQ4OGY1Mzg1YzZjZjk1MTk2YTgwOTRl
NmNmMzI1NmI0OTI4ODg3NzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sCisrKyBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sCkBAIC0xNjIs
MjAgKzE2MiwzMSBAQAogICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFk
ZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hv
dWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKIAotICAgICAgICB0ZXh0Ym94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1
cygpOwotCi0gICAgICAgIG1vdmUodHJ1ZSk7Ci0KLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAg
ICAgIGZ1bmN0aW9uIHdhaXRGb3JBbmltYXRpb25GcmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQogCi0gICAgICAgIG1vdmUoZmFsc2UpOworICAgICAgICBmdW5jdGlvbiBmb2N1c0VsZW1l
bnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTsKKyAgICAgICAg
ICAgIHJldHVybiB3YWl0Rm9yQW5pbWF0aW9uRnJhbWUoKTsKKyAgICAgICAgfQogCi0gICAgICAg
IHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGFyZWEiKTsKLSAgICAgICAg
dGV4dGJveC5mb2N1cygpOworICAgICAgICBmdW5jdGlvbiBtb3ZlQXN5bmMoaXNWZXJ0aWNhbCkg
eworICAgICAgICAgICAgbW92ZShpc1ZlcnRpY2FsKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0
Rm9yQW5pbWF0aW9uRnJhbWUoKTsKKyAgICAgICAgfQogCi0gICAgICAgIG1vdmUodHJ1ZSk7Cisg
ICAgICAgIChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhd2FpdCBmb2N1c0VsZW1l
bnQoInRleHRib3giKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVBc3luYyh0cnVlKTsKKyAgICAg
ICAgICAgIGF3YWl0IGZvY3VzRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgICAgIGF3YWl0IG1v
dmVBc3luYyhmYWxzZSk7CisgICAgICAgICAgICBhd2FpdCBmb2N1c0VsZW1lbnQoInRleHRhcmVh
Iik7CisgICAgICAgICAgICBhd2FpdCBtb3ZlQXN5bmModHJ1ZSk7CisgICAgICAgIH0pKCk7CiAg
ICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAppbmRleCBlMWViZGVjMDI3
NDI4Njk5NjVjNWNkZGRjNjEwZjZiYmQ4ZWIyYWRmLi5iYjNjODZjZmM4YTk3YTBjNmM4N2U3OTBi
NTUzZjgwOWY1YTg5N2YyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0xOTUsMTkgKzE5
NSw4NyBAQAogICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwog
CiAgICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwot
ICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CiAKICAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24g
Y2hhbmdlcy4KICAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAg
IHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3Jhbikg
ewotICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOwotICAg
ICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKworICAgICAg
ICBmdW5jdGlvbiBmb2N1c1RleHRCb3goKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91
dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBtb3ZlU2VsZWN0aW9uKGRpcmVj
dGlvbiwgZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsIGRpcmVjdGlvbiwg
Z3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHZh
ciBpIGluIGdyYW4pIHsKLSAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0g
ICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKworICAg
ICAgICBmdW5jdGlvbiBleHRlbmRTZWxlY3Rpb24oZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzLm1v
ZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOwog
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVzZXRQb3NpdGlvbigpIHsKKyAgICAgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBz
ID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgICAgICAgICAgICAgICAgICBzLnNldFBvc2l0
aW9uKHRleHRib3gsIDApOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAg
ICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIChh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IGZvY3VzVGV4dEJveCgpOworICAg
ICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgbW92ZVNl
bGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVj
dGlvbigiYmFja3dhcmQiLCBncmFuWzBdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rp
b24oImZvcndhcmQiLCBncmFuWzFdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24o
ImJhY2t3YXJkIiwgZ3JhblsxXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJm
b3J3YXJkIiwgZ3JhblsyXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNr
d2FyZCIsIGdyYW5bMl0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2Fy
ZCIsIGdyYW5bM10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQi
LCBncmFuWzNdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBn
cmFuWzRdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jh
bls0XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls1
XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNV0p
OworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bNl0pOwor
ICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzZdKTsKKyAg
ICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzddKTsKKyAgICAg
ICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls3XSk7CisgICAgICAg
ICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls4XSk7CisgICAgICAgICAg
ICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bOF0pOworICAgICAgICAgICAg
YXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9u
KGdyYW5bMF0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAg
ICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMV0pOworICAgICAgICAgICAgYXdhaXQgcmVz
ZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMl0p
OworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQg
ZXh0ZW5kU2VsZWN0aW9uKGdyYW5bM10pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlv
bigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNF0pOworICAgICAg
ICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2Vs
ZWN0aW9uKGdyYW5bNV0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAg
ICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNl0pOworICAgICAgICAgICAgYXdh
aXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdy
YW5bN10pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAg
YXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bOF0pOworICAgICAgICAgIH0pKCk7CiAgICAgfQog
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Nl
bGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbCBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRi
b3guaHRtbAppbmRleCBlZTllMGE4MDVhNTkxYTgxYjIxNmE1ZWE1OGU4ZjQ4MDI2YjVhMGRiLi5h
ZTUwNWEyZDUwOTZlZjhiMDI4ZjY0YWYyMzUwNjEwMWM5MzE5ODk2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJp
YS10ZXh0Ym94Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0
aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCkBAIC00MywxMiArNDMsMTcg
QEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4K
ICAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiAgICAgICAgIHMuc2V0UG9z
aXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgMzsgaysrKSB7
CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CiAgICAgICAgICAgICBzLm1v
ZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCi0gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAgICAgICAgICAgIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9y
d2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoKCkgPT4geworICAgICAgICAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJk
IiwgImNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNo
YW5nZS4KKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRl
eHQiLCBmYWxzZSwgImhlbGxvICIpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHktY29u
dGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1w
b3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbAppbmRleCA5YWQ2NGFkOWM1NmI1Y2MxZTZlZWUx
N2U0MDA4MWFjNGI0YzI0NjJjLi5lZTllZmU0NTEyNWIyNmYwNjVkOTJmZDlkZWMzNGRlMDE2Yjcw
ZDBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29s
dXRlLXBvc2l0aW9uZWQtZW1wdHktY29udGVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwK
QEAgLTE0LDEzICsxNCwxNyBAQCBzcGFuIHsKIDxzY3JpcHQ+CiBpZiAod2luZG93LmludGVybmFs
cykKICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotCi13aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZm9vYmFyKTsK
LQotaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgcmVzdWx0LmlubmVyVGV4dCA9IGludGVybmFs
cy5yZXBhaW50UmVjdHNBc1RleHQoKTsKLSAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRz
KCk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQotPC9zY3JpcHQ+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQord2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxk
cmVuKGZvb2Jhcik7CityZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICBpZiAod2luZG93
LmludGVybmFscykgeworICAgIHJlc3VsdC5pbm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWludFJl
Y3RzQXNUZXh0KCk7CisgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgIH0K
KyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30p
OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVh
LXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4
dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCmluZGV4IDczNGNkY2IwNmEzNjM2NjNi
NWQwOTEwMDE0ZmQ2NjRiMjVhNTQwZTguLmU0MmU0M2JhMmIyZjc0NTQ0ZTI5YjVlNmRkNzYxMzk4
YTRjYzcxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Ny
b2xsZWQtZW5kbGluZS1jYXJldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4
dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCkBAIC0xNSwxMyArMTUsMTcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgdGEuZm9jdXMoKTsKICAgICAvLyBjbGljawogICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIw
KTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlVXAoKTsKLSAgICAgICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9PSAxNykKLSAgICAgICAg
ICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgRmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEu
c2VsZWN0aW9uRW5kOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKDkwLCAyMCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgIGlmICh0
YS5zZWxlY3Rpb25FbmQgPT0gMTcpCisgICAgICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJU
ZXN0IFN1Y2NlZWRlZCI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzLmlu
bmVySFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9
IGVsc2UgewogICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgY2FuJ3QgcnVuIHdpdGhvdXQg
ZXZlbnQgc2VuZGVyIChwYXJ0IG9mIER1bXBSZW5kZXJUcmVlKS4gIgogICAgICAgICAgICAgKyAi
VG8gdGVzdCBtYW51YWxseSwgY2xpY2sgYXQgdGhlIG1pZGRsZSBvZiB0aGUgbGluZSBtYXJrZWQg
OSBhbmQgY2hlY2sgdGhhdCB0aGUgY2FyZXQgYXBwZWFycyBhZnRlciB0aGUgOS4iOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hp
bGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
YWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDNhYmIwZjcwODlhM2YzYmNiYzZhYWRm
NjlmNzNkNzc3YmY3OWUzMGEuLmFjZWE1NGUwNTBkZjVkMmE3NzVhOWQ5OWQ5YjAxZjcwNjZiYTVh
ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFi
c29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBA
IEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGgg
dHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIGFyZSBpbnZhbGlk
YXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNl
bGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0
cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgMCAwIDEw
MCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDdkNDdkMTI1OTFkOWJjOWZhMTIxNjkx
ZDBlNzQwZjlhZWRiM2Y0NzAuLmU3ODMyZDJiNGExMTRlZmEzMjdkODM1YjZlNmM1ZTYyYmMxOTQx
YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFi
c29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyNyBAQAogPCFkb2N0eXBlIGh0
bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWlu
dC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgp
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0K
KyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMo
KTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwg
dGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9
IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAg
aW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxz
dHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2PgogICAgICAgICA8ZGl2IGlkPSJ0YXJn
ZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAx
MDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2Pgor
ICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxp
cHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggZGIzYzM3NDE2NTZiMTc3OGM5
MTQwZjcxNTRhZTg3YzU4MDZjNDZiNC4uOTc5ZWZhMzllNTUwY2MyZTMyNTQ2MzEzMjlhOTEyYjdl
ZjU4ZjI5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJl
cGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRl
IGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhl
IGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52
YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAgMCAxMDAg
MTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0
ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxp
cHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDFiNjFlYmYyZDUwYjNhNGYwZDAyMzg5MTYx
NjQ0MTdmZTI4ZTU2YTcuLjQ3YTRlNjBhMTM2MWIyZWY1ZTdjODNlNmExMWMzZGM3ODY0ZDU1MTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBw
ZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjggQEAK
IDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0
LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24g
cmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFj
a2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgLy8gcmVxdWVz
dEFuaW1hdGlvbkZyYW1lIHByb2R1Y2VzIGZsYWNreSByZXN1bHRzLgorICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhU
TUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAg
ICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4K
ICAgICA8c3R5bGU+CkBAIC0yMSw0ICszOCw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC13
cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsIj4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHls
ZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBv
c2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2
IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggYjdjMzA5N2M2YjE3NjE2ZTJm
NWQ3NGU5OGI3ZTk4NTk3MWE0NWEzMS4uNWNjOTYxNWQxZTMwZDg3NjA5ZGE0OWIzNzMzZGIwNWU5
ZTQ2MTE3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxk
LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMg
ZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQg
YWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNv
cnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBsZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVk
IGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAo
cmVjdCA1MCA1MCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAg
MTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAx
N2VkMzViMWExNTg1MTA5Mjc2ZjlkYmVmMDY4NDYzNjNlNDYwMTZmLi5mYTljYjBkZTNmNDBlZmRk
ZTIxODgzNGFjMjFiNWJkMjcxZWQxNDlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29s
dXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjggQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2Up
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rp
b24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAg
ICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAg
ICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0
U2libGluZywgMCk7CisKKyAgICAgICAgLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHByb2R1Y2Vz
IGZsYWNreSByZXN1bHRzLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJl
cGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tp
bmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICsz
OCw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4
LCA1MHB4KTsiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRl
OyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48
L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4
cGVjdGVkLnR4dAppbmRleCA4ZGJlZDQ0OWJiOWVhZWNjZmQ2NjM4Yjc1NzZiYWRiOGJiMDQzYzQ1
Li5jNWEzMTI4ZWE5MTljYzNhMWNkOGMyZjNmNTk5NDlkZTM4YWMyOGU1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1j
aGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBA
QCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRo
IHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBmaXhlZCBlbGVtZW50cyB0aGF0IGdldCB0cmFu
c2Zvcm1lZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0
ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHku
CiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFp
bnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVk
LWNoaWxkLmh0bWwKaW5kZXggNzQ1YzU1ZWM3YTljN2Q5OWU1OGM0NWUyYmU2YjRiMjBiODAxNThh
My4uOTkzYWE1ZmNhZjQ2OGFmYjBiZDc1Y2ZmMDJjY2RlNWMzMDdmMmIwZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQt
Y2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10
cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI4IEBACiA8IWRvY3R5cGUg
aHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBh
aW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0
KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50
cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAw
LCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIC8vIHJlcXVlc3RBbmltYXRpb25G
cmFtZSBwcm9kdWNlcyBmbGFja3kgcmVzdWx0cy4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93
LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5h
bHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxl
PgpAQCAtMjEsNCArMzgsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0
aW9uOiBmaXhlZDsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJy
ZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50
eHQKaW5kZXggODYxMjMyNmRmOGZhMTQ4MDE3YmMzYTRlNWY5NjU4NjUwYzJmOWRiZi4uYjE5OTJh
OTEwZGVkZDFjMGRkOWE1ZTI0NDRmYzg2ZTlmNDY3YjY1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDUgQEAgQQogQQogKHJlcGFpbnQgcmVjdHMKICAg
KHJlY3QgOCA2OCAyMCAxMDApCi0gIChyZWN0IDggNjggMjAgMTAwKQogKQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dAppbmRleCA5NTkxNWU2NjAwZjEyNTVjYmY2ZjIzOWY5ODY0OWQ3OThhMzc2MDQxLi40ZTdjMDky
NDM0NjdjZDc5MTUzNGU1ZmIxMmEwZTE4NTM1N2Y1NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgs
NyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0
aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24u
CiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRl
c3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFp
bnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM4IDE4IDc5KQotKQotCisocmVwYWludCByZWN0cyAocmVj
dCA3NzQgMzggMTggNzkpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLmh0bWwKaW5kZXggMDI3ODQ0MGExZmI3MjQ0NDJkOTY0MjkyOGVhMmViMzIzOTNj
Y2EyMS4uYjU5N2JhM2NjY2M4YzQ1YWEzYmRiMzMwNzI4ZmUwMzVkZGM5NDAyNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKQEAgLTMsNyAr
MywxNSBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWlu
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBydW5SZXBhaW50
VGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnN0
YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgaWYgKGV2ZW50U2VuZGVyKSB7CiAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgNDApOwogICAgICAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKQEAgLTExLDYgKzE5LDE3IEBAIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewog
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDEyMCk7CiAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKICAgICB9CisKKyAgICAvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUg
cHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMuCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWlu
dFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWlu
dHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOwogfQogPC9zY3JpcHQ+
CiAKQEAgLTI2LDQgKzQ1LDUgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uPGJyPgorPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJm
bG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1z
ZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCBiZDlmNTg5ZjljY2Q5
YzY3NDgyNTEzYTc0NjZmY2ZiYmZmN2QxOTY4Li5lMmQzZTU5N2ZkZDJiMWZiNjQ0YTVlMzliYWIz
NWNjYTRlNmNiMGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1z
ZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dApA
QCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJlcGFpbnQg
cmVjdHMKLSAgKHJlY3QgOCAxNiAxOTkgMTgpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDgg
MTYgMTk5IDE4KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1z
ZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKaW5kZXggYmNjOWUzNGQxNzc4MGUw
MTYwMGU1NTgzYmNhYWIxYjAyM2ExNjI2MC4uYjNkZDEwMmRkYTBhNjMwZmIyOTA4YWE5YTkwZmIx
NTZlODdmN2QyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2Vs
ZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbApAQCAtMSw1ICsxLDQgQEAKIDwh
RE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQu
anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiA8c3R5bGU+CiAjdGVzdCB7CiAg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwpAQCAtMTIsMTEgKzExLDMwIEBACiB9CiA8L3N0eWxl
PgogPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuUmVwYWludFRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIGdldFNl
bGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGVzdCwgMCwgdGVzdCwgMSk7CisKKyAgICAgICAg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcj
cmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4
dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwogICAgIH07
CiA8L3NjcmlwdD4KIAogPGJvZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgpIj4KICAgICA8cCBp
ZD0idGVzdCI+U2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZDwvcD4KKyAgICA8ZGl2IGlkPSJy
ZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9zcy1tdWx0aXBsZS1lbGVtZW50cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3MtbXVsdGlw
bGUtZWxlbWVudHMuaHRtbAppbmRleCBlMDhiMWI3MTE2NDE2N2UxYTlkZWQ0MmRlMjFlNjI1ODMy
MGMyYTJjLi5lZmU5NjRlYjU3ZjFjMzA1NWM1MmVjYTliNWNhNzY5ZjY0N2EyODI5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9zcy1t
dWx0aXBsZS1lbGVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbmNvcnJl
Y3QtZGVzZWxlY3Rpb24tYWNyb3NzLW11bHRpcGxlLWVsZW1lbnRzLmh0bWwKQEAgLTIwLDExICsy
MCwxMyBAQCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICBpZiAod2luZG93LmludGVybmFscykK
ICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CiAgIHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihzZWNvbmQpOwotICBpZiAod2luZG93LmludGVybmFs
cykgewotICAgIHJlc3VsdC5pbm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0
KCkuaW5kZXhPZigiNzg0IDcwIikgPT0gLTEgPyAiRkFJTCIgOiAiUEFTUyI7Ci0gICAgaW50ZXJu
YWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7Ci0gIH0KLSAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICByZXN1bHQuaW5uZXJUZXh0ID0g
aW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpLmluZGV4T2YoIjc4NCA3MCIpID09IC0xID8g
IkZBSUwiIDogIlBBU1MiOworICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7
CisgICAgfQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICB9LCAwKTsKIH0sIDApOwogPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBkYzg4NjBkMzU0YmRkN2YzYzA0ZDIyY2FlMmI5MGVlYzBiZjQwNWVhLi40MGJjMWE4ZWYzYmFi
MmU2OTNkZjM4ZjQ5YWVlYzBhMzhiNTU5NTVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTU0NCw4ICsxNTQ0LDYgQEAgd2Via2l0Lm9yZy9iLzE1OTE0
MyBmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1pbi1ydGwuaHRtbCBbIEZhaWx1cmUgXQog
IyBJbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGV2ZW50U2VuZGVyIGNhdXNlcyB0aGlzIHRl
c3QgdG8gZmFpbAogd2Via2l0Lm9yZy9iLzQyMTk0IGZhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1zZWxl
Y3QtbGlzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xMzkzNTQg
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgWyBGYWlsdXJlIF0KLQogIyBNaXNz
aW5nIGdseXBoIHN5bWJvbCBpcyBub3QgcmVuZGVyZWQgcHJvcGVybHkuCiB3ZWJraXQub3JnL2Iv
MTQwMjUyIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVybWluZWQtYnktcHJpbWFyeS1mb250Lmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDAyNTIgZmFzdC90ZXh0L2RlY29yYXRpb25z
LXdpdGgtdGV4dC1jb21iaW5lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVi
eS1ybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg1ODA5OGU2M2E4MDIyNWU3MGFmNDhhNjUz
ODAyMjkxMmFkOTE4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTEgQEAKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitU
ZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi5Tb21lIHJ1
YnkKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3Ro
IGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVz
dGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc1
IDM3IDE3IDg0KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9y
ZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93
LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYTBhZTQ1NjBkZmEzZDY2MTI1Y2YwZDQwMzA1MmRi
MDgwNWU3MzgxMC4uMGZhNWRkYTVkNDIyYTY0MmFlYTFkYWE3NGU5ZDhlODAxYWVjYTUyYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVj
dGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQKIAot
KHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcgMTcpCi0pCi0KKyhyZXBhaW50IHJlY3Rz
IChyZWN0IDggMTYgMTk3IDE3KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggODZkZjI3ZDViYWJiYWI3Y2QwMjZlZjJkYzUyMjZmNTJhNjBk
M2VhNy4uOWYxNjk4NGU2Y2I2NGJiZDZhZGRjODNlOWQ2YzNiZTczOWMwYTg0MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTU4MSwzICsx
NTgxLDYgQEAgZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtYWx0ZXJuYXRlLWlmcmFtZS1i
b2R5LWRpci1hdHRyLWRvZXMtbm90LXVwZGF0ZS1zY3IKICMgd2Via2l0Lm9yZy9iLzIzNTczMyBT
a2lwIDIgZWRpdGluZy9leGVjQ29tbWFuZCB0ZXN0cyBmb3IgbWFraW5nIHN1YnNlcXVlbnQgdGVz
dHMgZmFpbCBvbiB3azEgQXBwbGUgU2lsaWNvbiBtYWNzLiAgCiBbIEJpZ1N1cisgYXJtNjQgXSBl
ZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1uZXdsaW5lLWluLXF1b3RlZC1jb250ZW50LWNyYXNo
Lmh0bWwgWyBTa2lwIF0KIFsgQmlnU3VyKyBhcm02NCBdIGVkaXRpbmcvZXhlY0NvbW1hbmQvcGFz
dGUtYXMtcXVvdGF0aW9uLWRpc2Nvbm5lY3RlZC1wYXJhZ3JhcGgtYW5jZXN0b3ItY3Jhc2guaHRt
bCBbIFNraXAgXQorCit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVj
dGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjMy
NjMwIGZhc3QvZm9ybXMvYXV0b2ZvY3VzLW9wZXJhLTAwMy5odG1sIFsgRmFpbHVyZSBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2Zv
Y3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1
cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNjgzNzljYzE4ZTIwYjUyMjkyMmNjZTYyYWM5Y2YyNjQxY2Q0ZjVjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmls
aXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5n
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKKyAxCisgMgorVGhpcyB0ZXN0cyB0aGF0
IGNhbGxpbmcgZm9jdXMgb24gYSByZW5kZXIgb2JqZWN0IHdoZW4gaXQgZG9lc24ndCByZXN1bHQg
aW4gYSBzZWxlY3Rpb24gY2hhbmdlIHdvbid0IGxlYXZlIGlzU3luY2hyb25pemluZ1NlbGVjdGlv
biBzZXQgdG8gdHJ1ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRk
ZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1
c2VkRWxlbWVudC5pc0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZCgiMSIpKSBpcyB0cnVlCitQQVNTIGF4VGV4dFN0YXRlU3luY09uZSBpcyB1bmRlZmlu
ZWQKK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIx
IikuaXNGb2N1c2FibGUgaXMgdHJ1ZQorUEFTUyBheFRleHRTdGF0ZVN5bmNUd28gaXMgdW5kZWZp
bmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3
Njc2NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVw
YWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmYwMTBmYWM0NjI3ZTMxNDUx
ZjE0MWEzODUxYjQ2MjY2ZDdkMjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNCBAQAorCisKKworKHJlcGFpbnQgcmVjdHMKKyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJl
Y3QgOCAyNiAxIDE4KQorICAocmVjdCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisg
IChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3
OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcpCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGM4ZjIxZGIzZDgzZjBjNjRkOWNjOWUwNGViMWUyMGZk
ZDc5NzY5ZS4uOWU2MTAxOWNkMmI4NTYwMGRmM2JmM2NlNzIyZmI2ZWIxYjY0YTU1ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI0NDEsMyArMjQ0MSw1
IEBAIGZhc3QvdGV4dC9mb250LWxvb2t1cC1kb3QtcHJlZml4LWNhc2Utc2Vuc2l0aXZlLmh0bWwg
WyBQYXNzIF0KICMgPHJkYXI6Ly9wcm9ibGVtLzg3OTQ0NDI2PgogWyBDYXRhbGluYSBCaWdTdXIg
TW9udGVyZXkgXSBmYXN0L3RleHQvbG9jYWxlLXNoYXBpbmctMi5odG1sIFsgUGFzcyBJbWFnZU9u
bHlGYWlsdXJlIF0KIFsgQ2F0YWxpbmEgQmlnU3VyIE1vbnRlcmV5IF0gZmFzdC90ZXh0L2xvY2Fs
ZS1zaGFwaW5nLTMuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCisKK3dlYmtpdC5vcmcv
Yi8yMzEyOTggYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXN5bmMuaHRtbCBbIFNraXAgXSAj
IFRpbWVvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFp
bnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9y
ZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5Y2E3ZGMxOGU5ZThkNmMw
MjU3NjI1Mzg4MTlkM2NjZGY0ZGRhMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKKworCisKKyhyZXBhaW50IHJlY3RzCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVj
dCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcp
CispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQu
dHh0CmluZGV4IGUwMmMwOTJiYTUzM2I2ZTZkMDZlMjIwODY4M2M0MWUzNGI4OTI4MjQuLjUwMjM1
MWFiNzAzNGU4NWRiZTA0NGE2MWU1NjY5MWE0YTUyNjQzMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVn
IDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFu
c2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgZml4ZWQgZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNv
cnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQg
YXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5Lg0KIA0KIA0KLShyZXBhaW50IHJlY3RzDQot
ICAocmVjdCAwIDAgMTAwIDEwMCkNCi0pDQogDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4
cGVjdGVkLnR4dAppbmRleCA1YTkzNGY0NzM3ZmU1ZjlmZjE2NTRlYTdhMmIxMzJmZjdlYjJiNWM3
Li5mYzU1OTU5N2VlYTBlOTIwZDE5NWFkMjc1OGEwOTI3ZjFiMjYyNTExIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3Ro
IGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVz
dGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5n
IGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQg
MzkgMTggODMpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQu
dHh0CmluZGV4IDBhNzcxZDQ2OWExZGIwZDRjN2M2N2Y1NTA1YTVlZTI3ZWI5ZjAzNWUuLjQxOTA0
MDM4ODM1NjUxNzQ4NjZmMzA4MzFlMWJkMGE1ZmUxMGQ2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBh
aW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0g
IChyZWN0IDggMTYgMTk3IDE4KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAx
OCkgKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454226</attachid>
            <date>2022-03-09 04:13:43 -0800</date>
            <delta_ts>2022-03-09 07:11:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20220309131342.patch</filename>
            <type>text/plain</type>
            <size>47727</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRjZGFmNDQzOWQyYTQ0
M2RkODFiMTRjNmUwYTBjNzY2YzA0YTJiNC4uYmQyODIxZTMzZGQxOGI2N2NiMmExMmE4NmMyN2Ni
OTMzYjcyZGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIyLTAzLTA5ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgVGhlIEFwcCBIaWdobGlnaHQgcmVzdG9y
YXRpb24gY29kZSBoYWQgdG8gYmUgdHVuZWQgYXMgd2VsbCAod2hlbiByZXN0b3JpbmcgYW5kIHNj
cm9sbGluZyB0byByZXZlYWwKKyAgICAgICAgYSBRdWljayBOb3RlIG9uIGlPUyBNYWNPUykuIEl0
IHVzZXMgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHRvIHNlbGVjdCBhbmQgc2Nyb2xsIHRvIHJl
dmVhbCB0aGUgaGlnaGxpZ2h0CisgICAgICAgIHJhbmdlOyB0aGUgY29kZSBhc3N1bWVkIHRoYXQg
dGhpcyBzY3JvbGxpbmcgaGFwcGVucyBzeW5jaHJvbm91c2x5LCBzaW5jZSBpdCByZXZlcnRzIHRo
ZSBzZWxlY3Rpb24gdG8KKyAgICAgICAgdGhlIG9yaWdpbmFsIHJhbmdlIGF0IHRoZSBlbmQgb2Yg
YEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGxg
IHdoZW4gdGhlCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBmYWxscyBvdXQgb2Yg
c2NvcGUuIFRoYXQgaXMgaG93ZXZlciBubyBsb25nZXIgdGhlIGNhc2UuIEFjdHVhbGx5IG5vIHNj
cm9sbGluZworICAgICAgICBoYXBwZW5lZCBhZnRlciB0aGlzIHBhdGNoIGJlY2F1c2Ugd2UgZW5k
IHVwIG9ubHkgc2NoZWR1bGluZyB0aGUgYXBwZWFyYW5jZSB1cGRhdGUgdGltZXIgYmVmb3JlIHNl
dHRpbmcKKyAgICAgICAgdGhlIHNlbGVjdGlvbiBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZSB3
aXRoIGBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbGAuIFNpbmNlIHRoaXMgb25seSBo
YXBwZW5zCisgICAgICAgIHdoZW4gdGhlIHVzZXIgaW50ZXJhY3RzIGluIHRoZSBOb3RlcyBhcHAs
IGl0IHNlZW1zIHNlbnNpYmxlIHRvIGNvbnNpZGVyIGl0IGFzIGEgdXNlciB0cmlnZ2VyZWQgZXZl
bnQuCisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3Rv
cmVIaWdobGlnaHRBbmRTY3JvbGwpOiBDb25zaWRlciB0aGUgc2VsZWN0aW9uIGNoYW5nZQorICAg
ICAgICBhcyB1c2VyIHRyaWdnZXJlZCBzbyBzY3JvbGxpbmcgYWN0dWFsbHkgaGFwcGVucy4KKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlT
ZWxlY3Rpb25DaGFuZ2U6OnNldFNlbGVjdGlvbik6IENoZWNrIHRoZSBVc2VyVHJpZ2dlcmVkIGZs
YWdzIGZvciBkZWZhdWx0IG9wdGlvbnMuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDogQWRk
ZWQgYSBuZXcgVXNlclRyaWdnZXJlZCBmbGFnLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgor
ICAgICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBu
b3QgbmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2Fs
bGVkIHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjph
YnNvbHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xh
eW91dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCku
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRz
IGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFs
U2VsZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1Nl
bGVjdGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNl
bGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmln
Z2VyZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1Bh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6
IENhbGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjItMDMtMDkgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBHcmFwaGljc0NvbnRl
eHRHTENvY29hIG1hbmFnZXMgRUdMIG5hdGl2ZSBkaXNwbGF5cyBtYW51YWxseQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdl
LmNwcAppbmRleCA3YjJlMTViMGJhYzZiNWVlZGU2YWZhZmY2OWQ0ZmJkZjJmZjgzNDE2Li4yMDBi
MmU3NDhkODcxMTIxYTlhODBiMjZkMzNjNmY1OWM5ZWY1MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcApA
QCAtMjcyLDcgKzI3Miw3IEBAIGJvb2wgQXBwSGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVz
dG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBIaWdobGlnaHRSYW5nZURhCiAgICAgICAgIGlmICh0
ZXh0SW5kaWNhdG9yKQogICAgICAgICAgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3ItPmRhdGEoKSk7CiAKLSAgICAg
ICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ryb25nRG9jdW1l
bnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6RGVsZWdh
dGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Nyb2xs
LCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlJldmVhbFNlbGVjdGlvbkJvdW5kcyB9KTsKKyAg
ICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ryb25nRG9j
dW1lbnQsIHsgKnJhbmdlIH0sIHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpEZWxlZ2F0ZU1h
aW5GcmFtZVNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTbW9vdGhTY3JvbGwsIFRl
bXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6UmV2ZWFsU2VsZWN0aW9uQm91bmRzLCAsIFRlbXBvcmFy
eVNlbGVjdGlvbk9wdGlvbjo6VXNlclRyaWdnZXJlZCB9KTsKICAgICB9CiAKICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAzNDQ2NDVjMzRiZDJjNTVlZTdh
ZjUyODQ1Y2ExZTY3OTFmMzhiNzk1Li40OTZmZjBmZWRiODlmZjFjMzAwM2NiOTFlNGYzOGI5ODlk
MTUzNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yNTIsNyArMjUyLDcgQEAg
VGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlOjp+VGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlKCkKIAog
dm9pZCBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIElzVGVtcG9yYXJ5U2VsZWN0aW9uIGlzVGVtcG9yYXJ5U2Vs
ZWN0aW9uKQogewotICAgIGF1dG8gb3B0aW9ucyA9IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpOworICAgIGF1dG8gb3B0aW9ucyA9IEZyYW1lU2VsZWN0aW9uOjpk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhtX29wdGlvbnMuY29udGFpbnMoVGVtcG9yYXJ5U2Vs
ZWN0aW9uT3B0aW9uOjpVc2VyVHJpZ2dlcmVkKSA/IFVzZXJUcmlnZ2VyZWQgOiBOb3RVc2VyVHJp
Z2dlcmVkKTsKICAgICBpZiAobV9vcHRpb25zICYgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpE
b05vdFNldEZvY3VzKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RG9Ob3RT
ZXRGb2N1cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDlmNzI2ZmQyNzMxMjNjYTI1
OGM0ODgzNWM0NzZlNWMwYTc2OWY5YjIuLjA2YjUyZjNmZDA0NzkyZTU1MDlhYTNhZjQwODhjOTAw
MDgxNWQ0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTI1LDYgKzEyNSw4IEBAIGVu
dW0gY2xhc3MgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uIDogdWludDhfdCB7CiAgICAgRGVsZWdh
dGVNYWluRnJhbWVTY3JvbGwgPSAxIDw8IDUsCiAgICAgCiAgICAgUmV2ZWFsU2VsZWN0aW9uQm91
bmRzID0gMSA8PCA2LAorCisgICAgVXNlclRyaWdnZXJlZCA9IDEgPDwgNywKIH07CiAKIGNsYXNz
IFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCmluZGV4IGFkYWI5ZDFhOGNjN2MwOWRjZjlkNjc4NjhlM2ZlMDg5NzIzNGRi
ZmYuLjYzN2NkNzZmMDk2OGJiYTdkYzQ1Y2U2MzAwM2I3NTM5NzAxNmRhZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTQsNiArNDU0LDExIEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxh
eW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKCEob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsKKyAgICAgICAgc2NoZWR1bGVBcHBl
YXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCwgb3B0aW9ucy5jb250YWlucyhT
bW9vdGhTY3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJ
bnN0YW50LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVjdGlvbkJvdW5kcykgPyBSZXZlYWxF
eHRlbnRPcHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZl
YWxFeHRlbnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2
MiwxMyArNDY3LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgfQogfQogCi1zdGF0
aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShEb2N1bWVudCYg
ZG9jdW1lbnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNl
Tm93KCkKIHsKKyAgICBSZWYgZG9jdW1lbnQgPSAqbV9kb2N1bWVudDsKICNpZiBFTkFCTEUoVEVY
VF9DQVJFVCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAjZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBkb2N1
bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVuZGluZ1Nl
bGVjdGlvblVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rpb25BZnRl
clVwZGF0ZSByZXZlYWxNb2RlKQpAQCAtMTY4Niw3ICsxNjk0LDcgQEAgSW50UmVjdCBGcmFtZVNl
bGVjdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsKICAgICBp
ZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBkYXRlU2Vs
ZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVwZGF0ZVNl
bGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsKICAgICBp
ZiAoaW5zaWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNpZGVQb3Np
dGlvbkZpeGVkOwpAQCAtMjI0NCw3ICsyMjUyLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRVcGRhdGUK
IAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3VzIGxheW91
dCBoZXJlLgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRlQXBwZWFy
YW5jZTo6WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRp
bmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBw
ZWFyYW5jZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1fY2FyZXRQ
YWludCkgewpAQCAtMjM1Miw3ICsyMzYwLDcgQEAgRmxvYXRSZWN0IEZyYW1lU2VsZWN0aW9uOjpz
ZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQgY2xpcFRvVmlzaWJsZUNvbnQKICAg
ICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAKLSAgICB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAg
Y29uc3RfY2FzdDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlzKS51cGRhdGVTZWxlY3Rpb25BcHBlYXJh
bmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQtPnJlbmRlclZpZXco
KTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CkBA
IC0yNDQ4LDYgKzI0NTYsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24o
U2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgIGlmIChpc05v
bmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5v
dygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRlRml4ZWQgPSBmYWxz
ZTsKICAgICBpZiAoaXNDYXJldCgpKQpAQCAtMjUxOSw2ICsyNTI5LDEzIEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dCbG9ja0N1
cnNvcikKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVkKCkKK3sKKyAgICBp
ZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSB8fCBtX3NlbGVjdGlvblJldmVhbE1vZGUgPT0g
U2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAgICAgIHJldHVybjsKKyAgICB1
cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7Cit9CisKIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpCiB7CiAgICAgbV9hcHBlYXJhbmNlVXBkYXRl
VGltZXIuc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4
IDBkNmYxZWU2ZjA1ZTQzOTZmMjc4YzU4ZjdiODFmZDQ0MmU2MDNmYmUuLjNjOTEwMWU3ZTE1MzNj
YTFmZGMzNTBmODIzZjRmYWEyZTUzZDI3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmgKQEAgLTE1MSw2ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBjbGVhcigpOwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21GcmFtZSgpOwogCisg
ICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpOwog
ICAgIHZvaWQgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCk7CiAgICAgdm9pZCBzY2hlZHVs
ZUFwcGVhcmFuY2VVcGRhdGVBZnRlclN0eWxlQ2hhbmdlKCk7CiAKQEAgLTI2Nyw2ICsyNjgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgpOwogCiBw
cml2YXRlOgorICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHZv
aWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgUmV2ZWFsRXh0ZW50
T3B0aW9uID0gUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogICAgIHZvaWQgdXBk
YXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKaW5kZXggN2QyZTU2ODllNGY5MzJkYmQxM2I0NTdlMzE5NTdkMTU4MDZkYmQwZS4u
NzZiYjk4NDIwMjI3NjY4YWY0YTMzNTJlZjViYjQyNTE2ZWJlOWY3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDQzLDcgKzQ0Myw3IEBAIHZvaWQgRXZlbnRIYW5kbGVy
Ojpub2RlV2lsbEJlUmVtb3ZlZChOb2RlJiBub2RlVG9CZVJlbW92ZWQpCiBzdGF0aWMgdm9pZCBz
ZXRTZWxlY3Rpb25JZk5lZWRlZChGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24pCiB7CiAgICAgaWYgKHNlbGVjdGlvbi5zZWxlY3Rp
b24oKSAhPSBuZXdTZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnNob3VsZENoYW5nZVNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pKQotICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
bik7CisgICAgICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOwogfQog
CiBzdGF0aWMgaW5saW5lIGJvb2wgZGlzcGF0Y2hTZWxlY3RTdGFydChOb2RlKiBub2RlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggNjYzZjk4NGI1N2Q0ZDBlZDM0MzlmMDkxM2MxNGIxY2IxZTE4ZmMx
Ny4uNzgyODgwYzY3ZGEzYTk3NjI2YWIwMTQ3Njg2NjQ0NDU2OGU4NDdlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0xNzExLDYgKzE3MTEsMTAgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBkYXRlUmVu
ZGVyaW5nKCkKICAgICAgICAgZG9jdW1lbnQuZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRl
ZCgpOwogICAgIH0pOwogCisgICAgZm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1l
bnQpIHsKKyAgICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uKCkudXBkYXRlQXBwZWFyYW5jZUFmdGVy
TGF5b3V0KCk7CisgICAgfSk7CisKICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBk
b2N1bWVudCkgewogICAgICAgICBkb2N1bWVudC51cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsK
ICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA0ZmRmOWNiMjkxOTJhYTVlOTY2YmRiNzU4MDY5MDNhYjg2MzE4YjJl
Li5mNWFkOTRkODY4ZDVlNTZiYjJjZDMxNjgwZWQ0YjMyZWE1YzY5OGY1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTMgQEAKKzIwMjEtMTEtMDIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmVsZWFzZSBhc3NlcnQgaW4gRG9jdW1lbnQ6OnVwZGF0ZUxheW91
dCgpIHZpYSBIVE1MVGV4dEFyZWFFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ3MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBNb3ZlZCBzb21lIHRlc3RzIG91dCBv
ZiB0aGUgdGV4dC1iYXNlZC1yZXBhaW50LmpzIG1vZGVsIGJlY2F1c2Ugc2VsZWN0aW9uIGlzIG5v
dyB1cGRhdGVkCisgICAgICAgIGFuZCByZXZlYWxlZCBhc3luY2hyb25vdXNseSBpbiB0aGUgY2Fz
ZSBvZiBub24tdXNlciB0cmlnZ2VyZWQgY2hhbmdlcy4gVGhlIHByb2JsZW0gaXMgdGhhdAorICAg
ICAgICBieSB0aGUgdGltZSB0aGUgcmVwYWludCByZWN0cyBhcmUgcXVlcmllZCB0aGUgdXBkYXRl
IGhhcyBub3QgaGFwcGVuZWQgeWV0LiBUaGF0J3Mgd2h5CisgICAgICAgIHRoZSB0ZXN0cyB3ZXJl
IG1vZGlmaWVkIHNvIHRoYXQgd2Ugd2FpdCB1bnRpbCB0aGUgcmVwYWludCBoYXBwZW5zLgorCisg
ICAgICAgIFNhbWUgc2l0dWF0aW9uIGZvciBvdGhlciB0ZXN0cyB0aGF0IGRvIG5vdCBpbnZvbHZl
IHJlcGFpbnQgcmVjdHMgYnV0IHRyaWdnZXIgYWNjZXNpYmlsaXR5CisgICAgICAgIHRyZWUgdXBk
YXRlcy4gV2UgbXVzdCBlbnN1cmUgdGhhdCB3ZSBsZXQgdGhlIG5vdGlmaWNhdGlvbiBiZSB0aHJv
d24gYmVmb3JlIGNoZWNraW5nIHdoZXRoZXIgb3IKKyAgICAgICAgbm90IGhhcyBiZWVuIGVtaXRl
ZC4gQXMgaXQncyBkb25lIGFzeW5jaHJvbm91c2x5IHdlIG11c3QgbGV0IHRoZSBtYWluIHRocmVh
ZCBydW4gYmVmb3JlIGNoZWNraW5nLgorCisgICAgICAgIExhc3QgYnV0IG5vdCBsZWFzdCwgc29t
ZSBvZiB0aGUgdGVzdHMgYXJlIHVzaW5nIHNldFRpbWVvdXQoKSBpbnN0ZWFkIG9mIHJlcXVlc3RB
bmltYXRpb25GcmFtZSgpCisgICAgICAgIGJlY2F1c2UgdGhlIHJlc3VsdHMgd2l0aCB0aGUgbGF0
dGVyIHdlcmUgbm90IGFzIHJlbGlhYmxlIHVuZGVyIHN0cmVzcy9kZWJ1ZyBjb25kaXRpb25zLgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZv
Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2Vy
aW5mby5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1j
aGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHktY29udGVudC5odG1sOgorICAgICAgICAq
IGZhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5o
dG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1
dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUt
Y2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWw6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBl
Y3RlZC50eHQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy1jYXRhbGluYS13azEvZmFzdC9yZXBhaW50L2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNy
b25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdr
MS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24t
c3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9m
YXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0
LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAzLTA5ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTY29wZSBjYXB0dXJl
IHNvdXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbApp
bmRleCA4YmQ5MTk1NGIyZDhmZGM5MTQyMDA4MjlkMThlMWRiMzdjYWVmM2JhLi5kODhmNTM4NWM2
Y2Y5NTE5NmE4MDk0ZTZjZjMyNTZiNDkyODg4NzcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8u
aHRtbApAQCAtMTYyLDIwICsxNjIsMzEgQEAKICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9u
ID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7
CiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKLSAgICAg
ICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAg
IHRleHRib3guZm9jdXMoKTsKLQotICAgICAgICBtb3ZlKHRydWUpOwotCi0gICAgICAgIHRleHRi
b3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQiKTsKLSAgICAgICAgdGV4dGJveC5m
b2N1cygpOworICAgICAgICBmdW5jdGlvbiB3YWl0Rm9yQW5pbWF0aW9uRnJhbWUoKSB7CisgICAg
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KIAotICAgICAgICBtb3ZlKGZhbHNlKTsKKyAgICAgICAgZnVuY3Rp
b24gZm9jdXNFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICBlbGVtZW50LmZvY3Vz
KCk7CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAg
IH0KIAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRhcmVh
Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgZnVuY3Rpb24gbW92ZUFzeW5j
KGlzVmVydGljYWwpIHsKKyAgICAgICAgICAgIG1vdmUoaXNWZXJ0aWNhbCk7CisgICAgICAgICAg
ICByZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAgIH0KIAotICAgICAgICBt
b3ZlKHRydWUpOworICAgICAgICAoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXdh
aXQgZm9jdXNFbGVtZW50KCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICBhd2FpdCBtb3ZlQXN5bmMo
dHJ1ZSk7CisgICAgICAgICAgICBhd2FpdCBmb2N1c0VsZW1lbnQoImlucHV0Iik7CisgICAgICAg
ICAgICBhd2FpdCBtb3ZlQXN5bmMoZmFsc2UpOworICAgICAgICAgICAgYXdhaXQgZm9jdXNFbGVt
ZW50KCJ0ZXh0YXJlYSIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKHRydWUpOworICAg
ICAgICB9KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKaW5k
ZXggZTFlYmRlYzAyNzQyODY5OTY1YzVjZGRkYzYxMGY2YmJkOGViMmFkZi4uYmIzYzg2Y2ZjOGE5
N2EwYzZjODdlNzkwYjU1M2Y4MDlmNWE4OTdmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApA
QCAtMTk1LDE5ICsxOTUsODcgQEAKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9u
IiwgInRydWUiKTsKIAogICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRleHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwogCiAgICAgICAgIC8vIFRyaWdn
ZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlv
bigpOwotICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBmb3IgKHZh
ciBpIGluIGdyYW4pIHsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBn
cmFuW2ldKTsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3Jhbltp
XSk7CisKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNUZXh0Qm94KCkgeworICAgICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAg
ICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAgICB0ZXh0Ym94LmZvY3Vz
KCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9LCAw
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbW92ZVNl
bGVjdGlvbihkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KLSAg
ICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRl
eHRib3gsIDApOwotICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3Jh
bltpXSk7CisKKyAgICAgICAgZnVuY3Rpb24gZXh0ZW5kU2VsZWN0aW9uKGdyYW51bGFyaXR5KSB7
CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbnVsYXJpdHkpOworICAg
ICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAg
ICAgICAgICB9KTsKICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc2V0UG9zaXRpb24o
KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgICAgICAg
ICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KworICAgICAgICAoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCBmb2N1c1Rl
eHRCb3goKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAg
IGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzBdKTsKKyAgICAgICAgICAgIGF3
YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblswXSk7CisgICAgICAgICAgICBhd2Fp
dCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsxXSk7CisgICAgICAgICAgICBhd2FpdCBt
b3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMV0pOworICAgICAgICAgICAgYXdhaXQgbW92
ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMl0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNl
bGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxl
Y3Rpb24oImZvcndhcmQiLCBncmFuWzNdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rp
b24oImJhY2t3YXJkIiwgZ3JhblszXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9u
KCJmb3J3YXJkIiwgZ3Jhbls0XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJi
YWNrd2FyZCIsIGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9y
d2FyZCIsIGdyYW5bNV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dh
cmQiLCBncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQi
LCBncmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwg
Z3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jh
bls3XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5b
N10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bOF0p
OworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzhdKTsK
KyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4
dGVuZFNlbGVjdGlvbihncmFuWzBdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24o
KTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzFdKTsKKyAgICAgICAg
ICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVj
dGlvbihncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAg
ICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzNdKTsKKyAgICAgICAgICAgIGF3YWl0
IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFu
WzRdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3
YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9z
aXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzZdKTsKKyAg
ICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVu
ZFNlbGVjdGlvbihncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsK
KyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzhdKTsKKyAgICAgICAgICB9
KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggZWU5ZTBhODA1YTU5MWE4MWIyMTZhNWVhNThlOGY0
ODAyNmI1YTBkYi4uYWU1MDVhMmQ1MDk2ZWY4YjAyOGY2NGFmMjM1MDYxMDFjOTMxOTg5NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNo
YW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbApAQCAt
NDMsMTIgKzQzLDE3IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0
aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogICAg
ICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBmb3IgKHZhciBrID0gMDsg
ayA8IDM7IGsrKykgeworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAg
ICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgotICAgICAgICBkb2N1bWVu
dC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8gIik7CisgICAgICAgICAg
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgICAgIHMubW9kaWZ5
KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1v
dmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gVHJp
Z2dlciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlv
bmVkLWVtcHR5LWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLXdp
dGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwKaW5kZXggOWFkNjRhZDlj
NTZiNWNjMWU2ZWVlMTdlNDAwODFhYzRiNGMyNDYyYy4uZWU5ZWZlNDUxMjViMjZmMDY1ZDkyZmQ5
ZGVjMzRkZTAxNmI3MGQwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHkt
Y29udGVudC5odG1sCkBAIC0xNCwxMyArMTQsMTcgQEAgc3BhbiB7CiA8c2NyaXB0PgogaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCiAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKLWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLQotd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxk
cmVuKGZvb2Jhcik7Ci0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gIHJlc3VsdC5pbm5lclRl
eHQgPSBpbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7Ci0gIGludGVybmFscy5zdG9wVHJh
Y2tpbmdSZXBhaW50cygpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KLTwvc2Ny
aXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5z
ZWxlY3RBbGxDaGlsZHJlbihmb29iYXIpOworcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsK
KyAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICByZXN1bHQuaW5uZXJUZXh0ID0gaW50ZXJu
YWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBh
aW50cygpOworICB9CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAppbmRleCA3MzRj
ZGNiMDZhMzYzNjYzYjVkMDkxMDAxNGZkNjY0YjI1YTU0MGU4Li5lNDJlNDNiYTJiMmY3NDU0NGUy
OWI1ZTZkZDc2MTM5OGE0Y2M3MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbApAQCAtMTUsMTMg
KzE1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRhLmZvY3VzKCk7CiAgICAgLy8gY2xpY2sK
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKDkwLCAyMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0g
MTcpCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQg
aXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOworICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAg
ICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQorICAgICAgICAgICAgICAgIHJlcy5p
bm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0IGlzIGF0ICIgKyB0YS5z
ZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IGNhbid0
IHJ1biB3aXRob3V0IGV2ZW50IHNlbmRlciAocGFydCBvZiBEdW1wUmVuZGVyVHJlZSkuICIKICAg
ICAgICAgICAgICsgIlRvIHRlc3QgbWFudWFsbHksIGNsaWNrIGF0IHRoZSBtaWRkbGUgb2YgdGhl
IGxpbmUgbWFya2VkIDkgYW5kIGNoZWNrIHRoYXQgdGhlIGNhcmV0IGFwcGVhcnMgYWZ0ZXIgdGhl
IDkuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAzYWJiMGY3MDg5
YTNmM2JjYmM2YWFkZjY5ZjczZDc3N2JmNzllMzBhLi5hY2VhNTRlMDUwZGY1ZDJhNzc1YTlkOTlk
OWIwMWY3MDY2YmE1YTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBA
IC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNv
cnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50
cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdy
ZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAot
KHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3Rz
IChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCA3ZDQ3ZDEyNTkx
ZDliYzlmYTEyMTY5MWQwZTc0MGY5YWVkYjNmNDcwLi5lNzgzMmQyYjRhMTE0ZWZhMzI3ZDgzNWI2
ZTZjNWU2MmJjMTk0MWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAK
IDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0
LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24g
cmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFj
a2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAg
ICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwogICAgIH0KICAgICA8L3Nj
cmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdj4KICAgICAgICAg
PGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAw
cHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4K
ICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFi
c29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGRiM2Mz
NzQxNjU2YjE3NzhjOTE0MGY3MTU0YWU4N2M1ODA2YzQ2YjQuLjk3OWVmYTM5ZTU1MGNjMmUzMjU0
NjMxMzI5YTkxMmI3ZWY1OGYyOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUt
Y2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24g
Z2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMg
dGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCBmbGlwcGVkIGFyZSBpbnZhbGlkYXRlZCBj
b3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVk
IGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAo
cmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgMCAwIDEwMCAxMDAp
ICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZs
aXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxYjYxZWJmMmQ1MGIz
YTRmMGQwMjM4OTE2MTY0NDE3ZmUyOGU1NmE3Li40N2E0ZTYwYTEzNjFiMmVmNWU3YzgzZTZhMTFj
M2RjNzg2NGQ1NTE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0x
LDExICsxLDI4IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0Pgot
ICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkK
ICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJu
YWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAg
ICAgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSBwcm9kdWNlcyBmbGFja3kgcmVzdWx0cy4KKyAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFp
bnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsK
KyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAg
ICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzgsNSBAQAogICAgIDxkaXYgc3R5
bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCI+CiAgICAgICAgIDxkaXYgaWQ9
InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9k
aXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1
dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGI3YzMw
OTdjNmIxNzYxNmUyZjVkNzRlOThiN2U5ODU5NzFhNDVhMzEuLjVjYzk2MTVkMWUzMGQ4NzYwOWRh
NDliMzczM2RiMDVlOWU0NjExNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1h
YnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNl
bGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhp
cyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IHRyYW5zZm9ybWVkIGFyZSBp
bnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wbGV0ZWx5IGdyZWVuIGlm
IHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFp
bnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJl
Y3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxk
Lmh0bWwKaW5kZXggMTdlZDM1YjFhMTU4NTEwOTI3NmY5ZGJlZjA2ODQ2MzYzZTQ2MDE2Zi4uZmE5
Y2IwZGUzZjQwZWZkZGUyMTg4MzRhYzIxYjViZDI3MWVkMTQ5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hp
bGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFu
c2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI4IEBACiA8IWRvY3R5cGUg
aHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBh
aW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0
KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50
cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAw
LCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIC8vIHJlcXVlc3RBbmltYXRpb25G
cmFtZSBwcm9kdWNlcyBmbGFja3kgcmVzdWx0cy4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93
LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5h
bHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxl
PgpAQCAtMjEsNCArMzgsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0
aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlk
PSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1m
aXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggOGRiZWQ0NDliYjllYWVjY2ZkNjYzOGI3NTc2
YmFkYjhiYjA0M2M0NS4uYzVhMzEyOGVhOTE5Y2MzYTFjZDhjMmYzZjU5OTQ5ZGUzOGFjMjhlNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dApA
QCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBj
b3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgZml4ZWQgZWxlbWVudHMg
dGhhdCBnZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3
aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0
ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEwMCAxMDAp
Ci0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDUwIDUwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVk
LWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFu
c2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCmluZGV4IDc0NWM1NWVjN2E5YzdkOTllNThjNDVlMmJl
NmI0YjIwYjgwMTU4YTMuLjk5M2FhNWZjYWY0NjhhZmIwYmQ3NWNmZjAyY2NkZTVjMzA3ZjJiMGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5z
Zm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyOCBA
QAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
eHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlv
biByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRy
YWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0
ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICAvLyByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMuCisgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgewor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVy
SFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAg
ICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0
PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM4LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0
LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRh
cmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDEwMHB4OyBwb3NpdGlvbjogZml4ZWQ7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+Cisg
ICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRp
b24tZXhwZWN0ZWQudHh0CmluZGV4IDg2MTIzMjZkZjhmYTE0ODAxN2JjM2E0ZTVmOTY1ODY1MGMy
ZjlkYmYuLmIxOTkyYTkxMGRlZGQxYzBkZDlhNWUyNDQ0ZmM4NmU5ZjQ2N2I2NTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9u
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBh
aW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTIsNiArMiw1IEBAIEEKIEEKIChyZXBh
aW50IHJlY3RzCiAgIChyZWN0IDggNjggMjAgMTAwKQotICAocmVjdCA4IDY4IDIwIDEwMCkKICkK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJs
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC1leHBlY3RlZC50eHQKaW5kZXggOTU5MTVlNjYwMGYxMjU1Y2JmNmYyMzlmOTg2NDlkNzk4YTM3
NjA0MS4uNGU3YzA5MjQzNDY3Y2Q3OTE1MzRlNWZiMTJhMGUxODUzNTdmNTc0OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0
ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi4KLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDc3NCAzOCAxOCA3OSkKLSkKLQorKHJlcGFp
bnQgcmVjdHMgKHJlY3QgNzc0IDM4IDE4IDc5KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sCmluZGV4IDAyNzg0NDBhMWZiNzI0NDQyZDk2NDI5
MjhlYTJlYjMyMzkzY2NhMjEuLmI1OTdiYTNjY2NjOGM0NWFhM2JkYjMzMDcyOGZlMDM1ZGRjOTQw
MjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5o
dG1sCkBAIC0zLDcgKzMsMTUgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0
LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHJlcGFpbnRU
ZXN0KCkgeworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rp
b24gcnVuUmVwYWludFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgIGlmIChldmVudFNlbmRl
cikgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDQwKTsKICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CkBAIC0xMSw2ICsxOSwxNyBAQCBmdW5jdGlvbiByZXBh
aW50VGVzdCgpIHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCAxMjApOwog
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgfQorCisgICAgLy8gcmVxdWVzdEFu
aW1hdGlvbkZyYW1lIHByb2R1Y2VzIGZsYWNreSByZXN1bHRzLgorICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50
ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BU
cmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9LCAwKTsK
IH0KIDwvc2NyaXB0PgogCkBAIC0yNiw0ICs0NSw1IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLjxicj4KKzxkaXYgaWQ9InJlcGFpbnRzIj48L2Rp
dj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXgg
YmQ5ZjU4OWY5Y2NkOWM2NzQ4MjUxM2E3NDY2ZmNmYmJmZjdkMTk2OC4uZTJkM2U1OTdmZGQyYjFm
YjY0NGE1ZTM5YmFiMzVjY2E0ZTZjYjBkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1l
eHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5k
CiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk5IDE4KQotKQotCisocmVwYWludCBy
ZWN0cyAocmVjdCA4IDE2IDE5OSAxOCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCmluZGV4IGJj
YzllMzRkMTc3ODBlMDE2MDBlNTU4M2JjYWFiMWIwMjNhMTYyNjAuLmIzZGQxMDJkZGEwYTYzMGZi
MjkwOGFhOWE5MGZiMTU2ZTg3ZjdkMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKQEAgLTEs
NSArMSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1i
YXNlZC1yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogPHN0eWxl
PgogI3Rlc3QgewogICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKQEAgLTEyLDExICsxMSwzMCBA
QAogfQogPC9zdHlsZT4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwog
ICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRlc3QsIDAsIHRlc3QsIDEp
OworCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBh
aW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5n
UmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9KTsKICAgICB9OwogPC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3Qo
KSI+CiAgICAgPHAgaWQ9InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQ8L3A+Cisg
ICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3MtbXVsdGlwbGUtZWxl
bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbmNvcnJlY3QtZGVzZWxlY3Rpb24t
YWNyb3NzLW11bHRpcGxlLWVsZW1lbnRzLmh0bWwKaW5kZXggZTA4YjFiNzExNjQxNjdlMWE5ZGVk
NDJkZTIxZTYyNTgzMjBjMmEyYy4uZWZlOTY0ZWI1N2YxYzMwNTVjNTJlY2E5YjVjYTc2OWY2NDdh
MjgyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVj
dGlvbi1hY3Jvc3MtbXVsdGlwbGUtZWxlbWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9zcy1tdWx0aXBsZS1lbGVtZW50cy5odG1s
CkBAIC0yMCwxMSArMjAsMTMgQEAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCiAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oc2Vjb25kKTsKLSAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKLSAgICByZXN1bHQuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLnJlcGFp
bnRSZWN0c0FzVGV4dCgpLmluZGV4T2YoIjc4NCA3MCIpID09IC0xID8gIkZBSUwiIDogIlBBU1Mi
OwotICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOwotICB9Ci0gIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgcmVzdWx0
LmlubmVyVGV4dCA9IGludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKS5pbmRleE9mKCI3ODQg
NzAiKSA9PSAtMSA/ICJGQUlMIiA6ICJQQVNTIjsKKyAgICAgIGludGVybmFscy5zdG9wVHJhY2tp
bmdSZXBhaW50cygpOworICAgIH0KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgfSwgMCk7CiB9LCAwKTsKIDwvc2NyaXB0PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNjUwOTRkMTM5NTY4YjAyMGQ0YjEwNDcyNDA3NGRlMGYzY2VkMGExOC4u
MTZhOGM1OTFiZTNhY2IxZDNjZDJiY2I4Y2JkMjAwYWJhMWJiMzg5OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MzksOCArMTUzOSw2IEBAIHdlYmtp
dC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwg
WyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNlbmRlciBj
YXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcvYi80MjE5NCBmYXN0L3Njcm9sbGlu
Zy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQu
b3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIFsgRmFpbHVy
ZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90IHJlbmRlcmVkIHByb3Blcmx5Lgog
d2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhlaWdodC1kZXRlcm1pbmVkLWJ5LXBy
aW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvdGV4
dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5
LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NTgwOThlNjNhODAy
MjVlNzBhZjQ4YTY1MzgwMjI5MTJhZDkxODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rp
b24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4K
K1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5n
IGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KKyhyZXBhaW50IHJl
Y3RzIChyZWN0IDc3NSAzNyAxNyA4NCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGEwYWU0NTYwZGZhM2Q2NjEy
NWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQyMmE2NDJhZWExZGFhNzRlOWQ4ZTgw
MWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFp
bnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93
LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBi
YWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE3KQotKQotCiso
cmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ0YjMxYjNmY2I3MDEzMGM1YzJhOWVh
OWRlMzUwNzM3M2Y2NjU0MzMuLjJjNzYzYjE3Zjg5OWVhMmQzM2NhMTUwY2Y1MjBmMzZmMDZkNGY0
YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTE3OTAsMyArMTc5MCw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9p
bnRlcmV2ZW50cy9wb2ludGVyZXZlbnRfZWxlbWVudF9oYXNwb2ludGVyY2FwCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X21vdXNlX2Nh
cHR1cmVfY2hhbmdlX2hvdmVyLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF9tb3VzZV9wb2ludGVy
Y2FwdHVyZV9pbl9mcmFtZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cy9wb2ludGVyZXZlbnRfcG9pbnRlcmNhcHR1cmUt
aW4tY3VzdG9tLWVsZW1lbnQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKK3dlYmtpdC5vcmcvYi8y
MzEyOTggYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMzI2MzAgZmFzdC9mb3Jtcy9hdXRvZm9jdXMtb3Bl
cmEtMDAzLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jv
bml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25p
emluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ODM3OWNjMThlMjBi
NTIyOTIyY2NlNjJhYzljZjI2NDFjZDRmNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0
aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcg
QEAKKworIDEKKyAyCitUaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBmb2N1cyBvbiBhIHJlbmRlciBv
YmplY3Qgd2hlbiBpdCBkb2Vzbid0IHJlc3VsdCBpbiBhIHNlbGVjdGlvbiBjaGFuZ2Ugd29uJ3Qg
bGVhdmUgaXNTeW5jaHJvbml6aW5nU2VsZWN0aW9uIHNldCB0byB0cnVlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNT
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmlzRXF1YWwoYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikpIGlzIHRydWUKK1BBU1Mg
YXhUZXh0U3RhdGVTeW5jT25lIGlzIHVuZGVmaW5lZAorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIjEiKS5pc0ZvY3VzYWJsZSBpcyB0cnVlCitQQVNT
IGF4VGV4dFN0YXRlU3luY1R3byBpcyB1bmRlZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjViZjAxMGZhYzQ2MjdlMzE0NTFmMTQxYTM4NTFiNDYyNjZkN2QyOWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80
Nzc2NzY1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKKworCisocmVwYWludCByZWN0
cworICAocmVjdCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMTkg
MTUgMzIpCisgIChyZWN0IDggMjYgMSAxOCkKKyAgKHJlY3QgMSAzNyA3OTggMzIpCisgIChyZWN0
IDggNDQgNzg0IDE4KQorICAocmVjdCAxIDUxIDc5OCAxOCkKKyAgKHJlY3QgMSA0NCA3OTggNykK
KykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkYjg1
OGQwNTYyYjQ3OWM2NzAzODI2YjJhMmQ4MGM4N2FkNjBjMzQ5Li5mNzk5ZDJlZjY3NTcwNGQ2ODQ3
MmFmYTI2MTEyZDU2OTc5MWY5M2RhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMjQzMCw0ICsyNDMwLDYgQEAgZmFzdC90ZXh0L2ZvbnQtbG9va3VwLWRv
dC1wcmVmaXgtY2FzZS1zZW5zaXRpdmUuaHRtbCBbIFBhc3MgXQogIyBXYXMgaW4gTGF5b3V0VGVz
dHMvRXhwZWN0YXRpb25zLCBub3cgb25seSBoYXBwZW5pbmcgb24gTWFjCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3hoci9ldmVudC10aW1lb3V0LW9yZGVyLmFueS53b3JrZXIuaHRt
bCBbIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMjM3MTY2IFsgQmlnU3VyKyBdIHdlYmdsL3Bl
bmRpbmcvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy90ZXgtaW1hZ2UtdmlkZW8tcmVwZWF0ZWQu
aHRtbCBbIFBhc3MgVGltZW91dCBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0
Lm9yZy9iLzIzNzE2NiBbIEJpZ1N1cisgXSB3ZWJnbC9wZW5kaW5nL2NvbmZvcm1hbmNlL3RleHR1
cmVzL21pc2MvdGV4LWltYWdlLXZpZGVvLXJlcGVhdGVkLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQor
Cit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1zeW5jLmh0
bWwgWyBTa2lwIF0gIyBUaW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWNh
N2RjMThlOWU4ZDZjMDI1NzYyNTM4ODE5ZDNjY2RmNGRkYTE4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACisKKworCisocmVwYWludCByZWN0cworICAocmVjdCAxIDM3IDc5
OCAzMikKKyAgKHJlY3QgOCA0NCA3ODQgMTgpCisgIChyZWN0IDEgNTEgNzk4IDE4KQorICAocmVj
dCAxIDQ0IDc5OCA3KQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNo
aWxkLWV4cGVjdGVkLnR4dAppbmRleCBlMDJjMDkyYmE1MzNiNmU2ZDA2ZTIyMDg2ODNjNDFlMzRi
ODkyODI0Li41MDIzNTFhYjcwMzRlODVkYmUwNDRhNjFlNTY2OTFhNGE1MjY0MzA4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
Zml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIs
NyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVj
dGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1lbnRzIGFyZSBp
bnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYg
dGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4NCiANCiANCi0ocmVw
YWludCByZWN0cw0KLSAgKHJlY3QgMCAwIDEwMCAxMDApDQotKQ0KIA0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tcnVieS1ybC1leHBlY3RlZC50eHQKaW5kZXggNWE5MzRmNDczN2ZlNWY5ZmYxNjU0ZWE3YTJi
MTMyZmY3ZWIyYjVjNy4uZmM1NTk1OTdlZWEwZTkyMGQxOTVhZDI3NThhMDkyN2YxYjI2MjUxMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tcnVieS1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw0IEBA
IFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5n
IGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90
aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFpbnQgcmVjdHMK
LSAgKHJlY3QgNzc0IDM5IDE4IDgzKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA3NzQgMzkg
MTggODMpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFp
bnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLWV4cGVjdGVkLnR4dAppbmRleCAwYTc3MWQ0NjlhMWRiMGQ0YzdjNjdmNTUwNWE1ZWUyN2Vi
OWYwMzVlLi40MTkwNDAzODgzNTY1MTc0ODY2ZjMwODMxZTFiZDBhNWZlMTBkNjhlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9u
LW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQu
dHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAogCi0ocmVw
YWludCByZWN0cwotICAocmVjdCA4IDE2IDE5NyAxOCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJl
Y3QgOCAxNiAxOTcgMTgpICkK
</data>
<flag name="commit-queue"
          id="481822"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454235</attachid>
            <date>2022-03-09 07:11:20 -0800</date>
            <delta_ts>2022-03-22 09:20:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20220309161119.patch</filename>
            <type>text/plain</type>
            <size>47725</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRjZGFmNDQzOWQyYTQ0
M2RkODFiMTRjNmUwYTBjNzY2YzA0YTJiNC4uYmQyODIxZTMzZGQxOGI2N2NiMmExMmE4NmMyN2Ni
OTMzYjcyZGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIyLTAzLTA5ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgVGhlIEFwcCBIaWdobGlnaHQgcmVzdG9y
YXRpb24gY29kZSBoYWQgdG8gYmUgdHVuZWQgYXMgd2VsbCAod2hlbiByZXN0b3JpbmcgYW5kIHNj
cm9sbGluZyB0byByZXZlYWwKKyAgICAgICAgYSBRdWljayBOb3RlIG9uIGlPUyBNYWNPUykuIEl0
IHVzZXMgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHRvIHNlbGVjdCBhbmQgc2Nyb2xsIHRvIHJl
dmVhbCB0aGUgaGlnaGxpZ2h0CisgICAgICAgIHJhbmdlOyB0aGUgY29kZSBhc3N1bWVkIHRoYXQg
dGhpcyBzY3JvbGxpbmcgaGFwcGVucyBzeW5jaHJvbm91c2x5LCBzaW5jZSBpdCByZXZlcnRzIHRo
ZSBzZWxlY3Rpb24gdG8KKyAgICAgICAgdGhlIG9yaWdpbmFsIHJhbmdlIGF0IHRoZSBlbmQgb2Yg
YEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGxg
IHdoZW4gdGhlCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBmYWxscyBvdXQgb2Yg
c2NvcGUuIFRoYXQgaXMgaG93ZXZlciBubyBsb25nZXIgdGhlIGNhc2UuIEFjdHVhbGx5IG5vIHNj
cm9sbGluZworICAgICAgICBoYXBwZW5lZCBhZnRlciB0aGlzIHBhdGNoIGJlY2F1c2Ugd2UgZW5k
IHVwIG9ubHkgc2NoZWR1bGluZyB0aGUgYXBwZWFyYW5jZSB1cGRhdGUgdGltZXIgYmVmb3JlIHNl
dHRpbmcKKyAgICAgICAgdGhlIHNlbGVjdGlvbiBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZSB3
aXRoIGBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbGAuIFNpbmNlIHRoaXMgb25seSBo
YXBwZW5zCisgICAgICAgIHdoZW4gdGhlIHVzZXIgaW50ZXJhY3RzIGluIHRoZSBOb3RlcyBhcHAs
IGl0IHNlZW1zIHNlbnNpYmxlIHRvIGNvbnNpZGVyIGl0IGFzIGEgdXNlciB0cmlnZ2VyZWQgZXZl
bnQuCisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3Rv
cmVIaWdobGlnaHRBbmRTY3JvbGwpOiBDb25zaWRlciB0aGUgc2VsZWN0aW9uIGNoYW5nZQorICAg
ICAgICBhcyB1c2VyIHRyaWdnZXJlZCBzbyBzY3JvbGxpbmcgYWN0dWFsbHkgaGFwcGVucy4KKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlT
ZWxlY3Rpb25DaGFuZ2U6OnNldFNlbGVjdGlvbik6IENoZWNrIHRoZSBVc2VyVHJpZ2dlcmVkIGZs
YWdzIGZvciBkZWZhdWx0IG9wdGlvbnMuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDogQWRk
ZWQgYSBuZXcgVXNlclRyaWdnZXJlZCBmbGFnLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgor
ICAgICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBu
b3QgbmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2Fs
bGVkIHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjph
YnNvbHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xh
eW91dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCku
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRz
IGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFs
U2VsZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1Nl
bGVjdGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNl
bGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmln
Z2VyZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1Bh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6
IENhbGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjItMDMtMDkgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBHcmFwaGljc0NvbnRl
eHRHTENvY29hIG1hbmFnZXMgRUdMIG5hdGl2ZSBkaXNwbGF5cyBtYW51YWxseQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdl
LmNwcAppbmRleCA3YjJlMTViMGJhYzZiNWVlZGU2YWZhZmY2OWQ0ZmJkZjJmZjgzNDE2Li5hMjYz
NmUwOTJlYzY5NDJjMDhlNzZjNzVkYWJmZTk2MDIwYjkzNDc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcApA
QCAtMjcyLDcgKzI3Miw3IEBAIGJvb2wgQXBwSGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVz
dG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBIaWdobGlnaHRSYW5nZURhCiAgICAgICAgIGlmICh0
ZXh0SW5kaWNhdG9yKQogICAgICAgICAgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3ItPmRhdGEoKSk7CiAKLSAgICAg
ICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ryb25nRG9jdW1l
bnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6RGVsZWdh
dGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Nyb2xs
LCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlJldmVhbFNlbGVjdGlvbkJvdW5kcyB9KTsKKyAg
ICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ryb25nRG9j
dW1lbnQsIHsgKnJhbmdlIH0sIHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpEZWxlZ2F0ZU1h
aW5GcmFtZVNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTbW9vdGhTY3JvbGwsIFRl
bXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6UmV2ZWFsU2VsZWN0aW9uQm91bmRzLCBUZW1wb3JhcnlT
ZWxlY3Rpb25PcHRpb246OlVzZXJUcmlnZ2VyZWQgfSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRy
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMzQ0NjQ1YzM0YmQyYzU1ZWU3YWY1
Mjg0NWNhMWU2NzkxZjM4Yjc5NS4uNDk2ZmYwZmVkYjg5ZmYxYzMwMDNjYjkxZTRmMzhiOTg5ZDE1
MzRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjUyLDcgKzI1Miw3IEBAIFRl
bXBvcmFyeVNlbGVjdGlvbkNoYW5nZTo6flRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSgpCiAKIHZv
aWQgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBJc1RlbXBvcmFyeVNlbGVjdGlvbiBpc1RlbXBvcmFyeVNlbGVj
dGlvbikKIHsKLSAgICBhdXRvIG9wdGlvbnMgPSBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKTsKKyAgICBhdXRvIG9wdGlvbnMgPSBGcmFtZVNlbGVjdGlvbjo6ZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMobV9vcHRpb25zLmNvbnRhaW5zKFRlbXBvcmFyeVNlbGVj
dGlvbk9wdGlvbjo6VXNlclRyaWdnZXJlZCkgPyBVc2VyVHJpZ2dlcmVkIDogTm90VXNlclRyaWdn
ZXJlZCk7CiAgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6RG9O
b3RTZXRGb2N1cykKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OkRvTm90U2V0
Rm9jdXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA5ZjcyNmZkMjczMTIzY2EyNThj
NDg4MzVjNDc2ZTVjMGE3NjlmOWIyLi4wNmI1MmYzZmQwNDc5MmU1NTA5YWEzYWY0MDg4YzkwMDA4
MTVkNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTEyNSw2ICsxMjUsOCBAQCBlbnVt
IGNsYXNzIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbiA6IHVpbnQ4X3QgewogICAgIERlbGVnYXRl
TWFpbkZyYW1lU2Nyb2xsID0gMSA8PCA1LAogICAgIAogICAgIFJldmVhbFNlbGVjdGlvbkJvdW5k
cyA9IDEgPDwgNiwKKworICAgIFVzZXJUcmlnZ2VyZWQgPSAxIDw8IDcsCiB9OwogCiBjbGFzcyBU
ZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcAppbmRleCBhZGFiOWQxYThjYzdjMDlkY2Y5ZDY3ODY4ZTNmZTA4OTcyMzRkYmZm
Li42MzdjZDc2ZjA5NjhiYmE3ZGM0NWNlNjMwMDNiNzUzOTcwMTZkYWZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtNDU0LDYgKzQ1NCwxMSBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlv
dXRDb250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlm
ICghKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpKSB7CisgICAgICAgIHNjaGVkdWxlQXBwZWFy
YW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQsIG9wdGlvbnMuY29udGFpbnMoU21v
b3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGggOiBTY3JvbGxCZWhhdmlvcjo6SW5z
dGFudCwgb3B0aW9ucy5jb250YWlucyhSZXZlYWxTZWxlY3Rpb25Cb3VuZHMpID8gUmV2ZWFsRXh0
ZW50T3B0aW9uOjpEb05vdFJldmVhbEV4dGVudCA6IFJldmVhbEV4dGVudE9wdGlvbjo6UmV2ZWFs
RXh0ZW50KTsKIAogICAgIGlmIChvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVkKSB7CkBAIC00NjIs
MTMgKzQ2NywxNiBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIH0KIH0KIAotc3RhdGlj
IHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5v
dygpCiB7CisgICAgUmVmIGRvY3VtZW50ID0gKm1fZG9jdW1lbnQ7CiAjaWYgRU5BQkxFKFRFWFRf
Q0FSRVQpCi0gICAgZG9jdW1lbnQudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CisgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OwogI2Vsc2UKLSAgICBkb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgZG9jdW1l
bnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICNlbmRpZgorICAgIGlmIChtX3BlbmRpbmdTZWxl
Y3Rpb25VcGRhdGUpCisgICAgICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKIH0KIAogdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJV
cGRhdGUgcmV2ZWFsTW9kZSkKQEAgLTE2ODYsNyArMTY5NCw3IEBAIEludFJlY3QgRnJhbWVTZWxl
Y3Rpb246OmFic29sdXRlQ2FyZXRCb3VuZHMoYm9vbCogaW5zaWRlRml4ZWQpCiB7CiAgICAgaWYg
KCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwotICAgIHVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICB1cGRhdGVTZWxl
Y3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgcmVjb21wdXRlQ2FyZXRSZWN0KCk7CiAgICAgaWYg
KGluc2lkZUZpeGVkKQogICAgICAgICAqaW5zaWRlRml4ZWQgPSBtX2NhcmV0SW5zaWRlUG9zaXRp
b25GaXhlZDsKQEAgLTIyNDQsNyArMjI1Miw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldENh
cmV0VmlzaWJpbGl0eShDYXJldFZpc2liaWxpdHkgdmlzaWJpbGl0eSwgU2hvdWxkVXBkYXRlCiAK
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IHRyaWdnZXIgYSBzeW5jaHJvbm91cyBsYXlvdXQg
aGVyZS4KICAgICBpZiAoZG9BcHBlYXJhbmNlVXBkYXRlID09IFNob3VsZFVwZGF0ZUFwcGVhcmFu
Y2U6OlllcyAmJiBtX2RvY3VtZW50KQotICAgICAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5n
TGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVh
cmFuY2VOb3coKTsKIAogI2lmIEVOQUJMRShURVhUX0NBUkVUKQogICAgIGlmIChtX2NhcmV0UGFp
bnQpIHsKQEAgLTIzNTIsNyArMjM2MCw3IEBAIEZsb2F0UmVjdCBGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zpc2libGVDb250CiAgICAg
aWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwogCi0gICAgdXBk
YXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIGNv
bnN0X2Nhc3Q8RnJhbWVTZWxlY3Rpb24mPigqdGhpcykudXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5j
ZU5vdygpOwogICAgIGF1dG8qIHJlbmRlclZpZXcgPSBtX2RvY3VtZW50LT5yZW5kZXJWaWV3KCk7
CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwpAQCAt
MjQ0OCw2ICsyNDU2LDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9uKFNl
bGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgU2Nyb2wKICAgICBpZiAoaXNOb25l
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3co
KTsKKwogICAgIExheW91dFJlY3QgcmVjdDsKICAgICBib29sIGluc2lkZUZpeGVkID0gZmFsc2U7
CiAgICAgaWYgKGlzQ2FyZXQoKSkKQEAgLTI1MTksNiArMjUyOSwxMyBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTaG91bGRTaG93QmxvY2tDdXJzb3IoYm9vbCBzaG91bGRTaG93QmxvY2tDdXJz
b3IpCiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1
cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgpCit7CisgICAgaWYg
KCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgfHwgbV9zZWxlY3Rpb25SZXZlYWxNb2RlID09IFNl
bGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsKQorICAgICAgICByZXR1cm47CisgICAgdXBk
YXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOworfQorCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1
cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKQogewogICAgIG1fYXBwZWFyYW5jZVVwZGF0ZVRp
bWVyLnN0b3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAw
ZDZmMWVlNmYwNWU0Mzk2ZjI3OGM1OGY3YjgxZmQ0NDJlNjAzZmJlLi4zYzkxMDFlN2UxNTMzY2Ex
ZmRjMzUwZjgyM2Y0ZmFhMmU1M2QyNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oCkBAIC0xNTEsNiArMTUxLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY2xlYXIoKTsKICAgICB2b2lkIHdpbGxCZVJlbW92ZWRGcm9tRnJhbWUoKTsKIAorICAg
IHZvaWQgdXBkYXRlQXBwZWFyYW5jZUlmUmV2ZWFsaW5nU2VsZWN0aW9uSXNOZWVkZWQoKTsKICAg
ICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpOwogICAgIHZvaWQgc2NoZWR1bGVB
cHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOwogCkBAIC0yNjcsNiArMjY4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgdXBkYXRlRnJvbUFzc29jaWF0ZWRMaXZlUmFuZ2UoKTsKIAogcHJp
dmF0ZToKKyAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICB2b2lk
IHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYs
IFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIFJldmVhbEV4dGVudE9w
dGlvbiA9IFJldmVhbEV4dGVudE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKICAgICB2b2lkIHVwZGF0
ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDdkMmU1Njg5ZTRmOTMyZGJkMTNiNDU3ZTMxOTU3ZDE1ODA2ZGJkMGUuLjc2
YmI5ODQyMDIyNzY2OGFmNGEzMzUyZWY1YmI0MjUxNmViZTlmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgbm9kZVRvQmVSZW1vdmVkKQogc3RhdGljIHZvaWQgc2V0
U2VsZWN0aW9uSWZOZWVkZWQoRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKQogewogICAgIGlmIChzZWxlY3Rpb24uc2VsZWN0aW9u
KCkgIT0gbmV3U2VsZWN0aW9uICYmIHNlbGVjdGlvbi5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKSkKLSAgICAgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24p
OworICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxl
Y3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKIH0KIAog
c3RhdGljIGlubGluZSBib29sIGRpc3BhdGNoU2VsZWN0U3RhcnQoTm9kZSogbm9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IDY2M2Y5ODRiNTdkNGQwZWQzNDM5ZjA5MTNjMTRiMWNiMWUxOGZjMTcu
Ljc4Mjg4MGM2N2RhM2E5NzYyNmFiMDE0NzY4NjY0NDQ1NjhlODQ3ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMTcxMSw2ICsxNzExLDEwIEBAIHZvaWQgUGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRl
cmluZygpCiAgICAgICAgIGRvY3VtZW50LmVucXVldWVQYWludFRpbWluZ0VudHJ5SWZOZWVkZWQo
KTsKICAgICB9KTsKIAorICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50
KSB7CisgICAgICAgIGRvY3VtZW50LnNlbGVjdGlvbigpLnVwZGF0ZUFwcGVhcmFuY2VBZnRlckxh
eW91dCgpOworICAgIH0pOworCiAgICAgZm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9j
dW1lbnQpIHsKICAgICAgICAgZG9jdW1lbnQudXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCk7CiAg
ICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNGZkZjljYjI5MTkyYWE1ZTk2NmJkYjc1ODA2OTAzYWI4NjMxOGIyZS4u
ZjVhZDk0ZDg2OGQ1ZTU2YmIyY2QzMTY4MGVkNGIzMmVhNWM2OThmNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDUzIEBACisyMDIxLTExLTAyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJlbGVhc2UgYXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQo
KSB2aWEgSFRNTFRleHRBcmVhRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgTW92ZWQgc29tZSB0ZXN0cyBvdXQgb2Yg
dGhlIHRleHQtYmFzZWQtcmVwYWludC5qcyBtb2RlbCBiZWNhdXNlIHNlbGVjdGlvbiBpcyBub3cg
dXBkYXRlZAorICAgICAgICBhbmQgcmV2ZWFsZWQgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGNhc2Ug
b2Ygbm9uLXVzZXIgdHJpZ2dlcmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKKyAgICAg
ICAgYnkgdGhlIHRpbWUgdGhlIHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJpZWQgdGhlIHVwZGF0ZSBo
YXMgbm90IGhhcHBlbmVkIHlldC4gVGhhdCdzIHdoeQorICAgICAgICB0aGUgdGVzdHMgd2VyZSBt
b2RpZmllZCBzbyB0aGF0IHdlIHdhaXQgdW50aWwgdGhlIHJlcGFpbnQgaGFwcGVucy4KKworICAg
ICAgICBTYW1lIHNpdHVhdGlvbiBmb3Igb3RoZXIgdGVzdHMgdGhhdCBkbyBub3QgaW52b2x2ZSBy
ZXBhaW50IHJlY3RzIGJ1dCB0cmlnZ2VyIGFjY2VzaWJpbGl0eQorICAgICAgICB0cmVlIHVwZGF0
ZXMuIFdlIG11c3QgZW5zdXJlIHRoYXQgd2UgbGV0IHRoZSBub3RpZmljYXRpb24gYmUgdGhyb3du
IGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIG9yCisgICAgICAgIG5vdCBoYXMgYmVlbiBlbWl0ZWQu
IEFzIGl0J3MgZG9uZSBhc3luY2hyb25vdXNseSB3ZSBtdXN0IGxldCB0aGUgbWFpbiB0aHJlYWQg
cnVuIGJlZm9yZSBjaGVja2luZy4KKworICAgICAgICBMYXN0IGJ1dCBub3QgbGVhc3QsIHNvbWUg
b2YgdGhlIHRlc3RzIGFyZSB1c2luZyBzZXRUaW1lb3V0KCkgaW5zdGVhZCBvZiByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoKQorICAgICAgICBiZWNhdXNlIHRoZSByZXN1bHRzIHdpdGggdGhlIGxhdHRl
ciB3ZXJlIG5vdCBhcyByZWxpYWJsZSB1bmRlciBzdHJlc3MvZGVidWcgY29uZGl0aW9ucy4KKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5o
dG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmlu
Zm8uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24t
d2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRl
LWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNo
aWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3Jt
ZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWw6CisgICAgICAgICogZmFzdC9y
ZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rp
b24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
Y2F0YWxpbmEtd2sxL2Zhc3QvcmVwYWludC9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9u
aXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEv
ZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5
bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFz
dC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1z
ZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0wOSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2NvcGUgY2FwdHVyZSBz
b3VyY2VzIGJ5IHBhZ2UgaWRlbnRpZmllcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKaW5k
ZXggOGJkOTE5NTRiMmQ4ZmRjOTE0MjAwODI5ZDE4ZTFkYjM3Y2FlZjNiYS4uZDg4ZjUzODVjNmNm
OTUxOTZhODA5NGU2Y2YzMjU2YjQ5Mjg4ODc3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0
bWwKQEAgLTE2MiwyMCArMTYyLDMxIEBACiAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9
IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwog
ICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCi0gICAgICAg
IHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0
ZXh0Ym94LmZvY3VzKCk7Ci0KLSAgICAgICAgbW92ZSh0cnVlKTsKLQotICAgICAgICB0ZXh0Ym94
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7Ci0gICAgICAgIHRleHRib3guZm9j
dXMoKTsKKyAgICAgICAgZnVuY3Rpb24gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCkgeworICAgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShyZXNvbHZlKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CiAKLSAgICAgICAgbW92ZShmYWxzZSk7CisgICAgICAgIGZ1bmN0aW9u
IGZvY3VzRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgZWxlbWVudC5mb2N1cygp
OworICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JBbmltYXRpb25GcmFtZSgpOworICAgICAgICB9
CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0YXJlYSIp
OwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIG1vdmVBc3luYyhp
c1ZlcnRpY2FsKSB7CisgICAgICAgICAgICBtb3ZlKGlzVmVydGljYWwpOworICAgICAgICAgICAg
cmV0dXJuIHdhaXRGb3JBbmltYXRpb25GcmFtZSgpOworICAgICAgICB9CiAKLSAgICAgICAgbW92
ZSh0cnVlKTsKKyAgICAgICAgKGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGF3YWl0
IGZvY3VzRWxlbWVudCgidGV4dGJveCIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKHRy
dWUpOworICAgICAgICAgICAgYXdhaXQgZm9jdXNFbGVtZW50KCJpbnB1dCIpOworICAgICAgICAg
ICAgYXdhaXQgbW92ZUFzeW5jKGZhbHNlKTsKKyAgICAgICAgICAgIGF3YWl0IGZvY3VzRWxlbWVu
dCgidGV4dGFyZWEiKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVBc3luYyh0cnVlKTsKKyAgICAg
ICAgfSkoKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCmluZGV4
IGUxZWJkZWMwMjc0Mjg2OTk2NWM1Y2RkZGM2MTBmNmJiZDhlYjJhZGYuLmJiM2M4NmNmYzhhOTdh
MGM2Yzg3ZTc5MGI1NTNmODA5ZjVhODk3ZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAg
LTE5NSwxOSArMTk1LDg3IEBACiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIs
ICJ0cnVlIik7CiAKICAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKIAogICAgICAgICAvLyBUcmlnZ2Vy
IHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24o
KTsKLSAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgZm9yICh2YXIg
aSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgZ3Jh
bltpXSk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIsIGdyYW5baV0p
OworCisgICAgICAgIGZ1bmN0aW9uIGZvY3VzVGV4dEJveCgpIHsKKyAgICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dGJveC5mb2N1cygp
OworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG1vdmVTZWxl
Y3Rpb24oZGlyZWN0aW9uLCBncmFudWxhcml0eSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwg
ZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsK
KyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9Ci0gICAg
ICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0
Ym94LCAwKTsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5b
aV0pOworCisgICAgICAgIGZ1bmN0aW9uIGV4dGVuZFNlbGVjdGlvbihncmFudWxhcml0eSkgewor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW51bGFyaXR5KTsKKyAgICAg
ICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZXNldFBvc2l0aW9uKCkg
eworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgICAg
IHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisK
KyAgICAgICAgKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgZm9jdXNUZXh0
Qm94KCk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBh
d2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblswXSk7CisgICAgICAgICAgICBhd2Fp
dCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMF0pOworICAgICAgICAgICAgYXdhaXQg
bW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMV0pOworICAgICAgICAgICAgYXdhaXQgbW92
ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzFdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVT
ZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxl
Y3Rpb24oImJhY2t3YXJkIiwgZ3JhblsyXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0
aW9uKCJmb3J3YXJkIiwgZ3JhblszXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9u
KCJiYWNrd2FyZCIsIGdyYW5bM10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigi
Zm9yd2FyZCIsIGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFj
a3dhcmQiLCBncmFuWzRdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndh
cmQiLCBncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJk
IiwgZ3Jhbls1XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwg
Z3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdy
YW5bNl0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5b
N10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzdd
KTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzhdKTsK
KyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls4XSk7Cisg
ICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRl
bmRTZWxlY3Rpb24oZ3JhblswXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7
CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblsxXSk7CisgICAgICAgICAg
ICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rp
b24oZ3JhblsyXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAg
ICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblszXSk7CisgICAgICAgICAgICBhd2FpdCBy
ZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls0
XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2Fp
dCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls1XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0
aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls2XSk7CisgICAg
ICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRT
ZWxlY3Rpb24oZ3Jhbls3XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7Cisg
ICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls4XSk7CisgICAgICAgICAgfSko
KTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9y
LWFyaWEtdGV4dGJveC5odG1sCmluZGV4IGVlOWUwYTgwNWE1OTFhODFiMjE2YTVlYTU4ZThmNDgw
MjZiNWEwZGIuLmFlNTA1YTJkNTA5NmVmOGIwMjhmNjRhZjIzNTA2MTAxYzkzMTk4OTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFu
Z2VzLWZvci1hcmlhLXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQz
LDEyICs0MywxNyBAQCBjb250ZW50IGluc2lkZQogICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlv
biBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAg
ICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgZm9yICh2YXIgayA9IDA7IGsg
PCAzOyBrKyspIHsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKICAgICAg
ICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7Ci0gICAgICAg
IH0KLQotICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KLSAgICAgICAgZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOworICAgICAgICAgICAg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgICAgICBzLm1vZGlmeSgi
bW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHJlcXVlc3RB
bmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3Zl
IiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgICAgIC8vIFRyaWdn
ZXIgdmFsdWUgY2hhbmdlLgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8gIik7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25l
ZC1lbXB0eS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRo
LWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHktY29udGVudC5odG1sCmluZGV4IDlhZDY0YWQ5YzU2
YjVjYzFlNmVlZTE3ZTQwMDgxYWM0YjRjMjQ2MmMuLmVlOWVmZTQ1MTI1YjI2ZjA2NWQ5MmZkOWRl
YzM0ZGUwMTZiNzBkMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
LXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNv
bnRlbnQuaHRtbApAQCAtMTQsMTMgKzE0LDE3IEBAIHNwYW4gewogPHNjcmlwdD4KIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQogICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7Ci1pZiAo
d2luZG93LnRlc3RSdW5uZXIpCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0KLXdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJl
bihmb29iYXIpOwotCi1pZiAod2luZG93LmludGVybmFscykgewotICByZXN1bHQuaW5uZXJUZXh0
ID0gaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOwotICBpbnRlcm5hbHMuc3RvcFRyYWNr
aW5nUmVwYWludHMoKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9Ci08L3Njcmlw
dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2Vs
ZWN0QWxsQ2hpbGRyZW4oZm9vYmFyKTsKK3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Cisg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgcmVzdWx0LmlubmVyVGV4dCA9IGludGVybmFs
cy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWlu
dHMoKTsKKyAgfQorICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKaW5kZXggNzM0Y2Rj
YjA2YTM2MzY2M2I1ZDA5MTAwMTRmZDY2NGIyNWE1NDBlOC4uZTQyZTQzYmEyYjJmNzQ1NDRlMjli
NWU2ZGQ3NjEzOThhNGNjNzEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90
ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKQEAgLTE1LDEzICsx
NSwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB0YS5mb2N1cygpOwogICAgIC8vIGNsaWNrCiAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyg5MCwgMjApOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3
KQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0IGlz
IGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAg
ICAgICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9PSAxNykKKyAgICAgICAgICAgICAgICByZXMuaW5u
ZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgRmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEuc2Vs
ZWN0aW9uRW5kOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBjYW4ndCBy
dW4gd2l0aG91dCBldmVudCBzZW5kZXIgKHBhcnQgb2YgRHVtcFJlbmRlclRyZWUpLiAiCiAgICAg
ICAgICAgICArICJUbyB0ZXN0IG1hbnVhbGx5LCBjbGljayBhdCB0aGUgbWlkZGxlIG9mIHRoZSBs
aW5lIG1hcmtlZCA5IGFuZCBjaGVjayB0aGF0IHRoZSBjYXJldCBhcHBlYXJzIGFmdGVyIHRoZSA5
LiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1h
YnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggM2FiYjBmNzA4OWEz
ZjNiY2JjNmFhZGY2OWY3M2Q3NzdiZjc5ZTMwYS4uYWNlYTU0ZTA1MGRmNWQyYTc3NWE5ZDk5ZDli
MDFmNzA2NmJhNWE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAt
Miw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3Jy
ZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMg
YXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVl
biBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShy
ZXBhaW50IHJlY3RzCi0gIChyZWN0IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAo
cmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggN2Q0N2QxMjU5MWQ5
YmM5ZmExMjE2OTFkMGU3NDBmOWFlZGIzZjQ3MC4uZTc4MzJkMmI0YTExNGVmYTMyN2Q4MzViNmU2
YzVlNjJiYzE5NDFjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8
IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1i
YXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJl
cGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tp
bmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQo
dGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHJlcXVlc3RBbmlt
YXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJyku
aW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAg
ICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKICAgICB9CiAgICAgPC9zY3Jp
cHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXY+CiAgICAgICAgIDxk
aXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAg
ICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNv
bHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBkYjNjMzc0
MTY1NmIxNzc4YzkxNDBmNzE1NGFlODdjNTgwNmM0NmI0Li45NzllZmEzOWU1NTBjYzJlMzI1NDYz
MTMyOWE5MTJiN2VmNThmMjk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNo
aWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdh
cHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRo
YXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQgZmxpcHBlZCBhcmUgaW52YWxpZGF0ZWQgY29y
cmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBh
cmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJl
Y3QgMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSAp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlw
cGVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggMWI2MWViZjJkNTBiM2E0
ZjBkMDIzODkxNjE2NDQxN2ZlMjhlNTZhNy4uNDdhNGU2MGExMzYxYjJlZjVlN2M4M2U2YTExYzNk
Yzc4NjRkNTUxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwx
MSArMSwyOCBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAg
ICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAg
ICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFs
cy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRC
YXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAg
ICAvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMuCisgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVy
bmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50
cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7Cisg
ICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAg
IDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM4LDUgQEAKICAgICA8ZGl2IHN0eWxl
PSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmwiPgogICAgICAgICA8ZGl2IGlkPSJ0
YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0
OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2
PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRl
LWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBiN2MzMDk3
YzZiMTc2MTZlMmY1ZDc0ZTk4YjdlOTg1OTcxYTQ1YTMxLi41Y2M5NjE1ZDFlMzBkODc2MDlkYTQ5
YjM3MzNkYjA1ZTllNDYxMTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJz
b2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxl
Y3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMg
dGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUgaW52
YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGxldGVseSBncmVlbiBpZiB0
aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50
IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0
IDUwIDUwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5o
dG1sCmluZGV4IDE3ZWQzNWIxYTE1ODUxMDkyNzZmOWRiZWYwNjg0NjM2M2U0NjAxNmYuLmZhOWNi
MGRlM2Y0MGVmZGRlMjE4ODM0YWMyMWI1YmQyNzFlZDE0OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyOCBAQAogPCFkb2N0eXBlIGh0
bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWlu
dC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgp
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0K
KyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMo
KTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwg
dGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICAvLyByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUgcHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMuCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAg
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5p
bnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxz
LnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4K
QEAgLTIxLDQgKzM4LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJh
Y2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlv
bjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0i
cmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4
ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDhkYmVkNDQ5YmI5ZWFlY2NmZDY2MzhiNzU3NmJh
ZGI4YmIwNDNjNDUuLmM1YTMxMjhlYTkxOWNjM2ExY2Q4YzJmM2Y1OTk0OWRlMzhhYzI4ZTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKQEAg
LTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29y
cmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1lbnRzIHRo
YXQgZ2V0IHRyYW5zZm9ybWVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2ls
bCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVk
IGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQot
KQotCisocmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1j
aGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtZml4ZWQtY2hpbGQuaHRtbAppbmRleCA3NDVjNTVlYzdhOWM3ZDk5ZTU4YzQ1ZTJiZTZi
NGIyMGI4MDE1OGEzLi45OTNhYTVmY2FmNDY4YWZiMGJkNzVjZmYwMmNjZGU1YzMwN2YyYjBmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjggQEAK
IDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0
LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24g
cmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFj
a2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgLy8gcmVxdWVz
dEFuaW1hdGlvbkZyYW1lIHByb2R1Y2VzIGZsYWNreSByZXN1bHRzLgorICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhU
TUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAg
ICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4K
ICAgICA8c3R5bGU+CkBAIC0yMSw0ICszOCw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC10
cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJn
ZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAx
MDBweDsgcG9zaXRpb246IGZpeGVkOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAg
IDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9u
LWV4cGVjdGVkLnR4dAppbmRleCA4NjEyMzI2ZGY4ZmExNDgwMTdiYzNhNGU1Zjk2NTg2NTBjMmY5
ZGJmLi5iMTk5MmE5MTBkZWRkMWMwZGQ5YTVlMjQ0NGZjODZlOWY0NjdiNjU4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWlu
dC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0yLDYgKzIsNSBAQCBBCiBBCiAocmVwYWlu
dCByZWN0cwogICAocmVjdCA4IDY4IDIwIDEwMCkKLSAgKHJlY3QgOCA2OCAyMCAxMDApCiApCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwt
ZXhwZWN0ZWQudHh0CmluZGV4IDk1OTE1ZTY2MDBmMTI1NWNiZjZmMjM5Zjk4NjQ5ZDc5OGEzNzYw
NDEuLjRlN2MwOTI0MzQ2N2NkNzkxNTM0ZTVmYjEyYTBlMTg1MzU3ZjU3NDggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rp
b24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzggMTggNzkpCi0pCi0KKyhyZXBhaW50
IHJlY3RzIChyZWN0IDc3NCAzOCAxOCA3OSkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbAppbmRleCAwMjc4NDQwYTFmYjcyNDQ0MmQ5NjQyOTI4
ZWEyZWIzMjM5M2NjYTIxLi5iNTk3YmEzY2NjYzhjNDVhYTNiZGIzMzA3MjhmZTAzNWRkYzk0MDI3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynktcmwu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRt
bApAQCAtMyw3ICszLDE1IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1i
YXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiByZXBhaW50VGVz
dCgpIHsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dChmYWxzZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9u
IHJ1blJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBp
bnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICBpZiAoZXZlbnRTZW5kZXIp
IHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCA0MCk7CiAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOwpAQCAtMTEsNiArMTksMTcgQEAgZnVuY3Rpb24gcmVwYWlu
dFRlc3QoKSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgMTIwKTsKICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgIH0KKworICAgIC8vIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSBwcm9kdWNlcyBmbGFja3kgcmVzdWx0cy4KKyAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVy
bmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJh
Y2tpbmdSZXBhaW50cygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7CiB9
CiA8L3NjcmlwdD4KIApAQCAtMjYsNCArNDUsNSBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+Cis8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+
CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxl
Y3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGJk
OWY1ODlmOWNjZDljNjc0ODI1MTNhNzQ2NmZjZmJiZmY3ZDE5NjguLmUyZDNlNTk3ZmRkMmIxZmI2
NDRhNWUzOWJhYjM1Y2NhNGU2Y2IwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhw
ZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAog
Ci0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5OSAxOCkKLSkKLQorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgOCAxNiAxOTkgMTgpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCBiY2M5
ZTM0ZDE3NzgwZTAxNjAwZTU1ODNiY2FhYjFiMDIzYTE2MjYwLi5iM2RkMTAyZGRhMGE2MzBmYjI5
MDhhYTlhOTBmYjE1NmU4N2Y3ZDJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0xLDUg
KzEsNCBAQAogPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFz
ZWQtcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KIDxzdHlsZT4K
ICN0ZXN0IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CkBAIC0xMiwxMSArMTEsMzAgQEAK
IH0KIDwvc3R5bGU+CiA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
ZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAg
ICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXN0LCAwLCB0ZXN0LCAxKTsK
KworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWlu
dFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1Jl
cGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
fSk7CiAgICAgfTsKIDwvc2NyaXB0PgogCiA8Ym9keSBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCki
PgogICAgIDxwIGlkPSJ0ZXN0Ij5TaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kPC9wPgorICAg
IDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9pbmNvcnJlY3QtZGVzZWxlY3Rpb24tYWNyb3NzLW11bHRpcGxlLWVsZW1l
bnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFj
cm9zcy1tdWx0aXBsZS1lbGVtZW50cy5odG1sCmluZGV4IGUwOGIxYjcxMTY0MTY3ZTFhOWRlZDQy
ZGUyMWU2MjU4MzIwYzJhMmMuLmVmZTk2NGViNTdmMWMzMDU1YzUyZWNhOWI1Y2E3NjlmNjQ3YTI4
MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbmNvcnJlY3QtZGVzZWxlY3Rp
b24tYWNyb3NzLW11bHRpcGxlLWVsZW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3MtbXVsdGlwbGUtZWxlbWVudHMuaHRtbApA
QCAtMjAsMTEgKzIwLDEzIEBAIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQogICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKICAgd2lu
ZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKHNlY29uZCk7Ci0gIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7Ci0gICAgcmVzdWx0LmlubmVyVGV4dCA9IGludGVybmFscy5yZXBhaW50
UmVjdHNBc1RleHQoKS5pbmRleE9mKCI3ODQgNzAiKSA9PSAtMSA/ICJGQUlMIiA6ICJQQVNTIjsK
LSAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKLSAgfQotICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgIHJlc3VsdC5p
bm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCkuaW5kZXhPZigiNzg0IDcw
IikgPT0gLTEgPyAiRkFJTCIgOiAiUEFTUyI7CisgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5n
UmVwYWludHMoKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgIH0sIDApOwogfSwgMCk7CiA8L3NjcmlwdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDY1MDk0ZDEzOTU2OGIwMjBkNGIxMDQ3MjQwNzRkZTBmM2NlZDBhMTguLjE2
YThjNTkxYmUzYWNiMWQzY2QyYmNiOGNiZDIwMGFiYTFiYjM4OTkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNTM5LDggKzE1MzksNiBAQCB3ZWJraXQu
b3JnL2IvMTU5MTQzIGZhc3QvZG9tL2hvcml6b250YWwtc2Nyb2xsYmFyLWluLXJ0bC5odG1sIFsg
RmFpbHVyZSBdCiAjIEluY29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YgZXZlbnRTZW5kZXIgY2F1
c2VzIHRoaXMgdGVzdCB0byBmYWlsCiB3ZWJraXQub3JnL2IvNDIxOTQgZmFzdC9zY3JvbGxpbmcv
c2Nyb2xsLXNlbGVjdC1saXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAotd2Via2l0Lm9y
Zy9iLzEzOTM1NCBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbCBbIEZhaWx1cmUg
XQotCiAjIE1pc3NpbmcgZ2x5cGggc3ltYm9sIGlzIG5vdCByZW5kZXJlZCBwcm9wZXJseS4KIHdl
YmtpdC5vcmcvYi8xNDAyNTIgZmFzdC9jc3MvbGluZS1oZWlnaHQtZGV0ZXJtaW5lZC1ieS1wcmlt
YXJ5LWZvbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L3RleHQv
ZGVjb3JhdGlvbnMtd2l0aC10ZXh0LWNvbWJpbmUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODU4MDk4ZTYzYTgwMjI1
ZTcwYWY0OGE2NTM4MDIyOTEyYWQ5MTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBv
ZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNl
bGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0
aW9uLlNvbWUgcnVieQorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitU
ZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rp
bmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBi
b3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCisocmVwYWludCByZWN0
cyAocmVjdCA3NzUgMzcgMTcgODQpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rp
b24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAppbmRleCBhMGFlNDU2MGRmYTNkNjYxMjVj
ZjBkNDAzMDUyZGIwODA1ZTczODEwLi4wZmE1ZGRhNWQ0MjJhNjQyYWVhMWRhYTc0ZTlkOGU4MDFh
ZWNhNTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFj
a2dyb3VuZAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5NyAxNykKLSkKLQorKHJl
cGFpbnQgcmVjdHMgKHJlY3QgOCAxNiAxOTcgMTcpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0NGIzMWIzZmNiNzAxMzBjNWMyYTllYTlk
ZTM1MDczNzNmNjY1NDMzLi4yYzc2M2IxN2Y4OTllYTJkMzNjYTE1MGNmNTIwZjM2ZjA2ZDRmNGI5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xNzkwLDMgKzE3OTAsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50
ZXJldmVudHMvcG9pbnRlcmV2ZW50X2VsZW1lbnRfaGFzcG9pbnRlcmNhcAogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF9tb3VzZV9jYXB0
dXJlX2NoYW5nZV9ob3Zlci5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cy9wb2ludGVyZXZlbnRfbW91c2VfcG9pbnRlcmNh
cHR1cmVfaW5fZnJhbWUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3BvaW50ZXJjYXB0dXJlLWlu
LWN1c3RvbS1lbGVtZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCit3ZWJraXQub3JnL2IvMjMx
Mjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sIFsg
RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjMyNjMwIGZhc3QvZm9ybXMvYXV0b2ZvY3VzLW9wZXJh
LTAwMy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25p
emluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXpp
bmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjgzNzljYzE4ZTIwYjUy
MjkyMmNjZTYyYWM5Y2YyNjQxY2Q0ZjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlv
bi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBA
CisKKyAxCisgMgorVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgZm9jdXMgb24gYSByZW5kZXIgb2Jq
ZWN0IHdoZW4gaXQgZG9lc24ndCByZXN1bHQgaW4gYSBzZWxlY3Rpb24gY2hhbmdlIHdvbid0IGxl
YXZlIGlzU3luY2hyb25pemluZ1NlbGVjdGlvbiBzZXQgdG8gdHJ1ZS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5pc0VxdWFsKGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiMSIpKSBpcyB0cnVlCitQQVNTIGF4
VGV4dFN0YXRlU3luY09uZSBpcyB1bmRlZmluZWQKK1BBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikuaXNGb2N1c2FibGUgaXMgdHJ1ZQorUEFTUyBh
eFRleHRTdGF0ZVN5bmNUd28gaXMgdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41YmYwMTBmYWM0NjI3ZTMxNDUxZjE0MWEzODUxYjQ2MjY2ZDdkMjlkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3
Njc2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCisKKworKHJlcGFpbnQgcmVjdHMK
KyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJlY3QgOCAyNiAxIDE4KQorICAocmVjdCAxIDE5IDE1
IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVjdCA4
IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcpCisp
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGI4NThk
MDU2MmI0NzljNjcwMzgyNmIyYTJkODBjODdhZDYwYzM0OS4uZjc5OWQyZWY2NzU3MDRkNjg0NzJh
ZmEyNjExMmQ1Njk3OTFmOTNkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTI0MzAsNCArMjQzMCw2IEBAIGZhc3QvdGV4dC9mb250LWxvb2t1cC1kb3Qt
cHJlZml4LWNhc2Utc2Vuc2l0aXZlLmh0bWwgWyBQYXNzIF0KICMgV2FzIGluIExheW91dFRlc3Rz
L0V4cGVjdGF0aW9ucywgbm93IG9ubHkgaGFwcGVuaW5nIG9uIE1hYwogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy94aHIvZXZlbnQtdGltZW91dC1vcmRlci5hbnkud29ya2VyLmh0bWwg
WyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIzNzE2NiBbIEJpZ1N1cisgXSB3ZWJnbC9wZW5k
aW5nL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdGV4LWltYWdlLXZpZGVvLXJlcGVhdGVkLmh0
bWwgWyBQYXNzIFRpbWVvdXQgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dlYmtpdC5v
cmcvYi8yMzcxNjYgWyBCaWdTdXIrIF0gd2ViZ2wvcGVuZGluZy9jb25mb3JtYW5jZS90ZXh0dXJl
cy9taXNjL3RleC1pbWFnZS12aWRlby1yZXBlYXRlZC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KKwor
d2Via2l0Lm9yZy9iLzIzMTI5OCBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tc3luYy5odG1s
IFsgU2tpcCBdICMgVGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDljYTdk
YzE4ZTllOGQ2YzAyNTc2MjUzODgxOWQzY2NkZjRkZGExOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorCisKKworKHJlcGFpbnQgcmVjdHMKKyAgKHJlY3QgMSAzNyA3OTgg
MzIpCisgIChyZWN0IDggNDQgNzg0IDE4KQorICAocmVjdCAxIDUxIDc5OCAxOCkKKyAgKHJlY3Qg
MSA0NCA3OTggNykKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGls
ZC1leHBlY3RlZC50eHQKaW5kZXggZTAyYzA5MmJhNTMzYjZlNmQwNmUyMjA4NjgzYzQxZTM0Yjg5
MjgyNC4uNTAyMzUxYWI3MDM0ZTg1ZGJlMDQ0YTYxZTU2NjkxYTRhNTI2NDMwOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZp
eGVkLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcg
KzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3Rs
eSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBmaXhlZCBlbGVtZW50cyBhcmUgaW52
YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRo
ZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuDQogDQogDQotKHJlcGFp
bnQgcmVjdHMNCi0gIChyZWN0IDAgMCAxMDAgMTAwKQ0KLSkNCiANCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0CmluZGV4IDVhOTM0ZjQ3MzdmZTVmOWZmMTY1NGVhN2EyYjEz
MmZmN2ViMmI1YzcuLmZjNTU5NTk3ZWVhMGU5MjBkMTk1YWQyNzU4YTA5MjdmMWIyNjI1MTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNCBAQCBU
ZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3Rp
bmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBi
b3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGgg
aGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KLShyZXBhaW50IHJlY3RzCi0g
IChyZWN0IDc3NCAzOSAxOCA4MykKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNzc0IDM5IDE4
IDgzKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi1leHBlY3RlZC50eHQKaW5kZXggMGE3NzFkNDY5YTFkYjBkNGM3YzY3ZjU1MDVhNWVlMjdlYjlm
MDM1ZS4uNDE5MDQwMzg4MzU2NTE3NDg2NmYzMDgzMWUxYmQwYTVmZTEwZDY4ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJlcGFp
bnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcgMTgpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0
IDggMTYgMTk3IDE4KSApCg==
</data>
<flag name="commit-queue"
          id="481904"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455379</attachid>
            <date>2022-03-22 09:19:17 -0700</date>
            <delta_ts>2022-05-11 16:35:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224471-20220322171915.patch</filename>
            <type>text/plain</type>
            <size>48680</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZkMmFlNTE1MjczM2Mw
YjJhZDgxNzViM2Q2Mjk1OTRlNGIxZTA1Yi4uYWNhYWM0YTkzNTAyZWE2NTliOWQ3OTA3NjU0ZTI0
OWE4NWYzYmUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIyLTAzLTA5ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgVGhlIEFwcCBIaWdobGlnaHQgcmVzdG9y
YXRpb24gY29kZSBoYWQgdG8gYmUgdHVuZWQgYXMgd2VsbCAod2hlbiByZXN0b3JpbmcgYW5kIHNj
cm9sbGluZyB0byByZXZlYWwKKyAgICAgICAgYSBRdWljayBOb3RlIG9uIGlPUyBNYWNPUykuIEl0
IHVzZXMgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHRvIHNlbGVjdCBhbmQgc2Nyb2xsIHRvIHJl
dmVhbCB0aGUgaGlnaGxpZ2h0CisgICAgICAgIHJhbmdlOyB0aGUgY29kZSBhc3N1bWVkIHRoYXQg
dGhpcyBzY3JvbGxpbmcgaGFwcGVucyBzeW5jaHJvbm91c2x5LCBzaW5jZSBpdCByZXZlcnRzIHRo
ZSBzZWxlY3Rpb24gdG8KKyAgICAgICAgdGhlIG9yaWdpbmFsIHJhbmdlIGF0IHRoZSBlbmQgb2Yg
YEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGxg
IHdoZW4gdGhlCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBmYWxscyBvdXQgb2Yg
c2NvcGUuIFRoYXQgaXMgaG93ZXZlciBubyBsb25nZXIgdGhlIGNhc2UuIEFjdHVhbGx5IG5vIHNj
cm9sbGluZworICAgICAgICBoYXBwZW5lZCBhZnRlciB0aGlzIHBhdGNoIGJlY2F1c2Ugd2UgZW5k
IHVwIG9ubHkgc2NoZWR1bGluZyB0aGUgYXBwZWFyYW5jZSB1cGRhdGUgdGltZXIgYmVmb3JlIHNl
dHRpbmcKKyAgICAgICAgdGhlIHNlbGVjdGlvbiBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZSB3
aXRoIGBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbGAuIFNpbmNlIHRoaXMgb25seSBo
YXBwZW5zCisgICAgICAgIHdoZW4gdGhlIHVzZXIgaW50ZXJhY3RzIGluIHRoZSBOb3RlcyBhcHAs
IGl0IHNlZW1zIHNlbnNpYmxlIHRvIGNvbnNpZGVyIGl0IGFzIGEgdXNlciB0cmlnZ2VyZWQgZXZl
bnQuCisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3Rv
cmVIaWdobGlnaHRBbmRTY3JvbGwpOiBDb25zaWRlciB0aGUgc2VsZWN0aW9uIGNoYW5nZQorICAg
ICAgICBhcyB1c2VyIHRyaWdnZXJlZCBzbyBzY3JvbGxpbmcgYWN0dWFsbHkgaGFwcGVucy4KKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlT
ZWxlY3Rpb25DaGFuZ2U6OnNldFNlbGVjdGlvbik6IENoZWNrIHRoZSBVc2VyVHJpZ2dlcmVkIGZs
YWdzIGZvciBkZWZhdWx0IG9wdGlvbnMuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDogQWRk
ZWQgYSBuZXcgVXNlclRyaWdnZXJlZCBmbGFnLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgor
ICAgICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBu
b3QgbmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2Fs
bGVkIHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjph
YnNvbHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xh
eW91dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCku
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRz
IGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFs
U2VsZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1Nl
bGVjdGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNl
bGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmln
Z2VyZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1Bh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6
IENhbGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjItMDMtMjIgIEFsZWph
bmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBW
aWRlb0ZyYW1lR1N0cmVhbWVyIG1pc3NpbmcgaW5jbHVkZSBhZnRlciAtcjI5MTYxMCByZWZhY3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxp
Z2h0U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdo
bGlnaHRTdG9yYWdlLmNwcAppbmRleCA3YjJlMTViMGJhYzZiNWVlZGU2YWZhZmY2OWQ0ZmJkZjJm
ZjgzNDE2Li5hMjYzNmUwOTJlYzY5NDJjMDhlNzZjNzVkYWJmZTk2MDIwYjkzNDc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRT
dG9yYWdlLmNwcApAQCAtMjcyLDcgKzI3Miw3IEBAIGJvb2wgQXBwSGlnaGxpZ2h0U3RvcmFnZTo6
YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBIaWdobGlnaHRSYW5nZURhCiAg
ICAgICAgIGlmICh0ZXh0SW5kaWNhdG9yKQogICAgICAgICAgICAgbV9kb2N1bWVudC0+cGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3ItPmRhdGEo
KSk7CiAKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgq
c3Ryb25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9w
dGlvbjo6RGVsZWdhdGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
U21vb3RoU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlJldmVhbFNlbGVjdGlvbkJv
dW5kcyB9KTsKKyAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5n
ZSgqc3Ryb25nRG9jdW1lbnQsIHsgKnJhbmdlIH0sIHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9u
OjpEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTbW9v
dGhTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6UmV2ZWFsU2VsZWN0aW9uQm91bmRz
LCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlVzZXJUcmlnZ2VyZWQgfSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYzM5MTZiZjhm
N2JmYzg4OGU0YmU0MmZiYzhkYzQ3NjkxNzFhMDU3My4uYWUwODFkYWJkNjRhYWM2ZjRiNmQyNmUx
ZWVlZDFhODQ5NDU1ZmQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjUyLDcg
KzI1Miw3IEBAIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZTo6flRlbXBvcmFyeVNlbGVjdGlvbkNo
YW5nZSgpCiAKIHZvaWQgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBJc1RlbXBvcmFyeVNlbGVjdGlvbiBpc1Rl
bXBvcmFyeVNlbGVjdGlvbikKIHsKLSAgICBhdXRvIG9wdGlvbnMgPSBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKTsKKyAgICBhdXRvIG9wdGlvbnMgPSBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMobV9vcHRpb25zLmNvbnRhaW5zKFRl
bXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6VXNlclRyaWdnZXJlZCkgPyBVc2VyVHJpZ2dlcmVkIDog
Tm90VXNlclRyaWdnZXJlZCk7CiAgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlv
bk9wdGlvbjo6RG9Ob3RTZXRGb2N1cykKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rp
b246OkRvTm90U2V0Rm9jdXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA5ZjcyNmZk
MjczMTIzY2EyNThjNDg4MzVjNDc2ZTVjMGE3NjlmOWIyLi4wNmI1MmYzZmQwNDc5MmU1NTA5YWEz
YWY0MDg4YzkwMDA4MTVkNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTEyNSw2ICsx
MjUsOCBAQCBlbnVtIGNsYXNzIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbiA6IHVpbnQ4X3Qgewog
ICAgIERlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsID0gMSA8PCA1LAogICAgIAogICAgIFJldmVhbFNl
bGVjdGlvbkJvdW5kcyA9IDEgPDwgNiwKKworICAgIFVzZXJUcmlnZ2VyZWQgPSAxIDw8IDcsCiB9
OwogCiBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2UgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBjZWQzMjM1ZWZiODlmYWI3NGFmMjljNmQ1ZTgy
MGY0NzE4YjY2ZGFmLi4yNWVkZWM4ZTIwNGIxMDM3MzczYzAyMTBhNGU5YTNjYzQyYTE2NjY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtNDU0LDYgKzQ1
NCwxMSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJh
bWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIGlmICghKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpKSB7CisgICAgICAgIHNj
aGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQsIG9wdGlvbnMu
Y29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGggOiBTY3JvbGxC
ZWhhdmlvcjo6SW5zdGFudCwgb3B0aW9ucy5jb250YWlucyhSZXZlYWxTZWxlY3Rpb25Cb3VuZHMp
ID8gUmV2ZWFsRXh0ZW50T3B0aW9uOjpEb05vdFJldmVhbEV4dGVudCA6IFJldmVhbEV4dGVudE9w
dGlvbjo6UmV2ZWFsRXh0ZW50KTsKIAogICAgIGlmIChvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVk
KSB7CkBAIC00NjIsMTMgKzQ2NywxNiBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIH0K
IH0KIAotc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUo
RG9jdW1lbnQmIGRvY3VtZW50KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9u
QXBwZWFyYW5jZU5vdygpCiB7CisgICAgUmVmIGRvY3VtZW50ID0gKm1fZG9jdW1lbnQ7CiAjaWYg
RU5BQkxFKFRFWFRfQ0FSRVQpCi0gICAgZG9jdW1lbnQudXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOwogI2Vsc2UKLSAgICBkb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7
CisgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICNlbmRpZgorICAgIGlmICht
X3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCisgICAgICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKIH0K
IAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoUmV2ZWFsU2Vs
ZWN0aW9uQWZ0ZXJVcGRhdGUgcmV2ZWFsTW9kZSkKQEAgLTE3MDEsNyArMTcwOSw3IEBAIEludFJl
Y3QgRnJhbWVTZWxlY3Rpb246OmFic29sdXRlQ2FyZXRCb3VuZHMoYm9vbCogaW5zaWRlRml4ZWQp
CiB7CiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwotICAg
IHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAg
ICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgcmVjb21wdXRlQ2FyZXRSZWN0
KCk7CiAgICAgaWYgKGluc2lkZUZpeGVkKQogICAgICAgICAqaW5zaWRlRml4ZWQgPSBtX2NhcmV0
SW5zaWRlUG9zaXRpb25GaXhlZDsKQEAgLTIyNTksNyArMjI2Nyw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnNldENhcmV0VmlzaWJpbGl0eShDYXJldFZpc2liaWxpdHkgdmlzaWJpbGl0eSwgU2hv
dWxkVXBkYXRlCiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IHRyaWdnZXIgYSBzeW5jaHJv
bm91cyBsYXlvdXQgaGVyZS4KICAgICBpZiAoZG9BcHBlYXJhbmNlVXBkYXRlID09IFNob3VsZFVw
ZGF0ZUFwcGVhcmFuY2U6OlllcyAmJiBtX2RvY3VtZW50KQotICAgICAgICB1cGRhdGVTZWxlY3Rp
b25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgICAgIHVwZGF0ZVNl
bGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKIAogI2lmIEVOQUJMRShURVhUX0NBUkVUKQogICAgIGlm
IChtX2NhcmV0UGFpbnQpIHsKQEAgLTIzNjcsNyArMjM3NSw3IEBAIEZsb2F0UmVjdCBGcmFtZVNl
bGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zpc2li
bGVDb250CiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgp
OwogCi0gICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1l
bnQpOworICAgIGNvbnN0X2Nhc3Q8RnJhbWVTZWxlY3Rpb24mPigqdGhpcykudXBkYXRlU2VsZWN0
aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIGF1dG8qIHJlbmRlclZpZXcgPSBtX2RvY3VtZW50LT5y
ZW5kZXJWaWV3KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0
UmVjdCgpOwpAQCAtMjQ2Myw2ICsyNDcxLDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cmV2ZWFs
U2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgU2Nyb2wKICAg
ICBpZiAoaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHVwZGF0ZVNlbGVjdGlvbkFw
cGVhcmFuY2VOb3coKTsKKwogICAgIExheW91dFJlY3QgcmVjdDsKICAgICBib29sIGluc2lkZUZp
eGVkID0gZmFsc2U7CiAgICAgaWYgKGlzQ2FyZXQoKSkKQEAgLTI1MzQsNiArMjU0NCwxMyBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTaG91bGRTaG93QmxvY2tDdXJzb3IoYm9vbCBzaG91bGRT
aG93QmxvY2tDdXJzb3IpCiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlSWZSZXZlYWxpbmdTZWxlY3Rpb25Jc05lZWRlZCgp
Cit7CisgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgfHwgbV9zZWxlY3Rpb25SZXZl
YWxNb2RlID09IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsKQorICAgICAgICByZXR1
cm47CisgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOworfQorCiB2b2lkIEZyYW1l
U2VsZWN0aW9uOjp1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKQogewogICAgIG1fYXBwZWFy
YW5jZVVwZGF0ZVRpbWVyLnN0b3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uaAppbmRleCBhOWFhNjI5ZTMwOTg4MjZhYzI2MWQwMTIzNTUzMTE3ODlmYzIyOWQwLi5kYzdi
MzZkMGVlNzUxMjQyNmU5YmRjYTgxZDg2NTc4ODNjYzZkOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0xNTEsNiArMTUxLDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKICAgICB2b2lkIHdpbGxCZVJlbW92ZWRGcm9tRnJh
bWUoKTsKIAorICAgIHZvaWQgdXBkYXRlQXBwZWFyYW5jZUlmUmV2ZWFsaW5nU2VsZWN0aW9uSXNO
ZWVkZWQoKTsKICAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpOwogICAgIHZv
aWQgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOwogCkBAIC0yNjcs
NiArMjY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlRnJvbUFzc29jaWF0ZWRMaXZlUmFu
Z2UoKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3co
KTsKICAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihjb25zdCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCYsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIFJl
dmVhbEV4dGVudE9wdGlvbiA9IFJldmVhbEV4dGVudE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKICAg
ICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDdkMmU1Njg5ZTRmOTMyZGJkMTNiNDU3ZTMxOTU3ZDE1
ODA2ZGJkMGUuLjc2YmI5ODQyMDIyNzY2OGFmNGEzMzUyZWY1YmI0MjUxNmViZTlmN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgbm9kZVRvQmVSZW1vdmVkKQogc3Rh
dGljIHZvaWQgc2V0U2VsZWN0aW9uSWZOZWVkZWQoRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKQogewogICAgIGlmIChzZWxlY3Rp
b24uc2VsZWN0aW9uKCkgIT0gbmV3U2VsZWN0aW9uICYmIHNlbGVjdGlvbi5zaG91bGRDaGFuZ2VT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pOworICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2Vy
ZWQpKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGRpc3BhdGNoU2VsZWN0U3RhcnQoTm9kZSog
bm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDY2M2Y5ODRiNTdkNGQwZWQzNDM5ZjA5MTNjMTRi
MWNiMWUxOGZjMTcuLjc4Mjg4MGM2N2RhM2E5NzYyNmFiMDE0NzY4NjY0NDQ1NjhlODQ3ZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcApAQCAtMTcxMSw2ICsxNzExLDEwIEBAIHZvaWQgUGFnZTo6ZG9BZnRl
clVwZGF0ZVJlbmRlcmluZygpCiAgICAgICAgIGRvY3VtZW50LmVucXVldWVQYWludFRpbWluZ0Vu
dHJ5SWZOZWVkZWQoKTsKICAgICB9KTsKIAorICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1l
bnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnNlbGVjdGlvbigpLnVwZGF0ZUFwcGVh
cmFuY2VBZnRlckxheW91dCgpOworICAgIH0pOworCiAgICAgZm9yRWFjaERvY3VtZW50KFtdIChE
b2N1bWVudCYgZG9jdW1lbnQpIHsKICAgICAgICAgZG9jdW1lbnQudXBkYXRlSGlnaGxpZ2h0UG9z
aXRpb25zKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmM3MjgxZTM1ODEwNDI3MzE2NmUwY2MxNWZmZTdj
NWQ4M2I0NTQzMC4uNmY3NGFiODA0NDRmMDhhNTQ2YzE5NTdkOTVmZTAxY2NlYTY4MDVmMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTExLTAyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3Zp
bGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2UgYXNzZXJ0IGluIERvY3VtZW50Ojp1
cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ0NzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgTW92ZWQgc29tZSB0
ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFzZWQtcmVwYWludC5qcyBtb2RlbCBiZWNhdXNlIHNlbGVj
dGlvbiBpcyBub3cgdXBkYXRlZAorICAgICAgICBhbmQgcmV2ZWFsZWQgYXN5bmNocm9ub3VzbHkg
aW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIgdHJpZ2dlcmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVtIGlz
IHRoYXQKKyAgICAgICAgYnkgdGhlIHRpbWUgdGhlIHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJpZWQg
dGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBlbmVkIHlldC4gVGhhdCdzIHdoeQorICAgICAgICB0aGUg
dGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0aGF0IHdlIHdhaXQgdW50aWwgdGhlIHJlcGFpbnQgaGFw
cGVucy4KKworICAgICAgICBTYW1lIHNpdHVhdGlvbiBmb3Igb3RoZXIgdGVzdHMgdGhhdCBkbyBu
b3QgaW52b2x2ZSByZXBhaW50IHJlY3RzIGJ1dCB0cmlnZ2VyIGFjY2VzaWJpbGl0eQorICAgICAg
ICB0cmVlIHVwZGF0ZXMuIFdlIG11c3QgZW5zdXJlIHRoYXQgd2UgbGV0IHRoZSBub3RpZmljYXRp
b24gYmUgdGhyb3duIGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIG9yCisgICAgICAgIG5vdCBoYXMg
YmVlbiBlbWl0ZWQuIEFzIGl0J3MgZG9uZSBhc3luY2hyb25vdXNseSB3ZSBtdXN0IGxldCB0aGUg
bWFpbiB0aHJlYWQgcnVuIGJlZm9yZSBjaGVja2luZy4KKworICAgICAgICBMYXN0IGJ1dCBub3Qg
bGVhc3QsIHNvbWUgb2YgdGhlIHRlc3RzIGFyZSB1c2luZyBzZXRUaW1lb3V0KCkgaW5zdGVhZCBv
ZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKQorICAgICAgICBiZWNhdXNlIHRoZSByZXN1bHRzIHdp
dGggdGhlIGxhdHRlciB3ZXJlIG5vdCBhcyByZWxpYWJsZSB1bmRlciBzdHJlc3MvZGVidWcgY29u
ZGl0aW9ucy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFy
eS11c2VyaW5mby5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rp
b24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1
dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlw
cGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWFic29sdXRlLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWw6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWw6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhp
ZGRlbi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0
ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1
YnktcmwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtY2F0YWxpbmEtd2sxL2Zhc3QvcmVwYWludC9mb2N1cy1zZXR0aW5nLXNlbGVj
dGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmct
c2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1j
aGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0Ogor
CiAyMDIyLTAzLTIyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXVtXUEVdIFJlbW92ZSB0aGUgQVRLIGltcGxlbWVudGF0aW9uCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnkt
dXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1i
b3VuZGFyeS11c2VyaW5mby5odG1sCmluZGV4IDhiZDkxOTU0YjJkOGZkYzkxNDIwMDgyOWQxOGUx
ZGIzN2NhZWYzYmEuLmQ4OGY1Mzg1YzZjZjk1MTk2YTgwOTRlNmNmMzI1NmI0OTI4ODg3NzEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFy
eS11c2VyaW5mby5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVj
dGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sCkBAIC0xNjIsMjAgKzE2MiwzMSBAQAogICAgICAg
ICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVy
KG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0
aW9uIiwgInRydWUiKTsKIAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRleHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwotCi0gICAgICAgIG1vdmUo
dHJ1ZSk7Ci0KLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1
dCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIHdhaXRGb3JB
bmltYXRpb25GcmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUocmVzb2x2ZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQogCi0gICAgICAgIG1vdmUo
ZmFsc2UpOworICAgICAgICBmdW5jdGlvbiBmb2N1c0VsZW1lbnQoZWxlbWVudElkKSB7CisgICAg
ICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAg
ICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yQW5p
bWF0aW9uRnJhbWUoKTsKKyAgICAgICAgfQogCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGV4dGFyZWEiKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAg
ICAgICBmdW5jdGlvbiBtb3ZlQXN5bmMoaXNWZXJ0aWNhbCkgeworICAgICAgICAgICAgbW92ZShp
c1ZlcnRpY2FsKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yQW5pbWF0aW9uRnJhbWUoKTsK
KyAgICAgICAgfQogCi0gICAgICAgIG1vdmUodHJ1ZSk7CisgICAgICAgIChhc3luYyBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICBhd2FpdCBmb2N1c0VsZW1lbnQoInRleHRib3giKTsKKyAgICAg
ICAgICAgIGF3YWl0IG1vdmVBc3luYyh0cnVlKTsKKyAgICAgICAgICAgIGF3YWl0IGZvY3VzRWxl
bWVudCgiaW5wdXQiKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVBc3luYyhmYWxzZSk7CisgICAg
ICAgICAgICBhd2FpdCBmb2N1c0VsZW1lbnQoInRleHRhcmVhIik7CisgICAgICAgICAgICBhd2Fp
dCBtb3ZlQXN5bmModHJ1ZSk7CisgICAgICAgIH0pKCk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8uaHRtbAppbmRleCBlMWViZGVjMDI3NDI4Njk5NjVjNWNkZGRjNjEwZjZi
YmQ4ZWIyYWRmLi5iYjNjODZjZmM4YTk3YTBjNmM4N2U3OTBiNTUzZjgwOWY1YTg5N2YyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVz
ZXJpbmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0xOTUsMTkgKzE5NSw4NyBAQAogICAgICAgICBzaG91
bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCiAgICAgICAgIHRleHRib3ggPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3Vz
KCk7CiAKICAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KICAgICAgICAgdmFy
IHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJv
eCwgMCk7Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAgICAgICAgICAgcy5tb2Rp
ZnkoIm1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOwotICAgICAgICAgICAgcy5tb2RpZnkoIm1v
dmUiLCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKworICAgICAgICBmdW5jdGlvbiBmb2N1c1RleHRC
b3goKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBtb3ZlU2VsZWN0aW9uKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpIHsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qp
IHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBzLm1vZGlmeSgibW92ZSIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOworICAgICAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAg
ICAgICB9KTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKLSAgICAg
ICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgi
ZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKworICAgICAgICBmdW5jdGlvbiBleHRlbmRT
ZWxlY3Rpb24oZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndh
cmQiLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gcmVzZXRQb3NpdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzID0gd2luZG93LmdldFNlbGVjdGlv
bigpOworICAgICAgICAgICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAg
ICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIChhc3luYyBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGF3YWl0IGZvY3VzVGV4dEJveCgpOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQ
b3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdy
YW5bMF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFu
WzBdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzFd
KTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblsxXSk7
CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsyXSk7Cisg
ICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMl0pOworICAg
ICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bM10pOworICAgICAg
ICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzNdKTsKKyAgICAgICAg
ICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzRdKTsKKyAgICAgICAgICAg
IGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls0XSk7CisgICAgICAgICAgICBh
d2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls1XSk7CisgICAgICAgICAgICBhd2Fp
dCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNV0pOworICAgICAgICAgICAgYXdhaXQg
bW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bNl0pOworICAgICAgICAgICAgYXdhaXQgbW92
ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVT
ZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxl
Y3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls3XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0
aW9uKCJmb3J3YXJkIiwgZ3Jhbls4XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9u
KCJiYWNrd2FyZCIsIGdyYW5bOF0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigp
OworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMF0pOworICAgICAgICAg
ICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0
aW9uKGdyYW5bMV0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAg
ICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMl0pOworICAgICAgICAgICAgYXdhaXQg
cmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5b
M10pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdh
aXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3Np
dGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNV0pOworICAg
ICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5k
U2VsZWN0aW9uKGdyYW5bNl0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOwor
ICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bN10pOworICAgICAgICAgICAg
YXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9u
KGdyYW5bOF0pOworICAgICAgICAgIH0pKCk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2Vz
LWZvci1hcmlhLXRleHRib3guaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Nl
bGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbAppbmRleCBlZTllMGE4
MDVhNTkxYTgxYjIxNmE1ZWE1OGU4ZjQ4MDI2YjVhMGRiLi5hZTUwNWEyZDUwOTZlZjhiMDI4ZjY0
YWYyMzUwNjEwMWM5MzE5ODk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9y
LWFyaWEtdGV4dGJveC5odG1sCkBAIC00MywxMiArNDMsMTcgQEAgY29udGVudCBpbnNpZGUKICAg
ICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KICAgICAgICAgdmFyIHMgPSB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCk7CiAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0g
ICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgMzsgaysrKSB7CisgICAgICAgIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSgoKSA9PiB7CiAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJk
IiwgImNoYXJhY3RlciIpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBj
aGFuZ2UuCi0gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2Us
ICJoZWxsbyAiKTsKKyAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Cisg
ICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsK
KyAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAg
ICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAg
ICAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KKyAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAg
IH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHktY29udGVudC5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRl
bnQuaHRtbAppbmRleCA5YWQ2NGFkOWM1NmI1Y2MxZTZlZWUxN2U0MDA4MWFjNGI0YzI0NjJjLi41
OTM1ZGM1OTk4NDllODMxMmZmNWEwNTJmZTJhNThhZjM4ZDM1NjZkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHkt
Y29udGVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLXdpdGgtYWJz
b2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwKQEAgLTE0LDEzICsxNCwxNyBAQCBz
cGFuIHsKIDxzY3JpcHQ+CiBpZiAod2luZG93LmludGVybmFscykKICAgaW50ZXJuYWxzLnN0YXJ0
VHJhY2tpbmdSZXBhaW50cygpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi13aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZm9vYmFyKTsKLQotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKLSAgcmVzdWx0LmlubmVyVGV4dCA9IGludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQo
KTsKLSAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogfQotPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor
d2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGZvb2Jhcik7CitzZXRUaW1l
b3V0KCgpID0+IHsKKyAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICByZXN1bHQuaW5uZXJU
ZXh0ID0gaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgIGludGVybmFscy5zdG9w
VHJhY2tpbmdSZXBhaW50cygpOworICB9CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9LCAwKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQu
aHRtbAppbmRleCA3MzRjZGNiMDZhMzYzNjYzYjVkMDkxMDAxNGZkNjY0YjI1YTU0MGU4Li5lNDJl
NDNiYTJiMmY3NDU0NGUyOWI1ZTZkZDc2MTM5OGE0Y2M3MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQu
aHRtbApAQCAtMTUsMTMgKzE1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRhLmZvY3VzKCk7
CiAgICAgLy8gY2xpY2sKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIGlmICh0YS5z
ZWxlY3Rpb25FbmQgPT0gMTcpCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3Vj
Y2VlZGVkIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0
IEZhaWxlZDogY2FyZXQgaXMgYXQgIiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9
PiB7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CisgICAgICAgICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQorICAgICAg
ICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQiOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0
IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzLmlubmVySFRN
TCA9ICJUZXN0IGNhbid0IHJ1biB3aXRob3V0IGV2ZW50IHNlbmRlciAocGFydCBvZiBEdW1wUmVu
ZGVyVHJlZSkuICIKICAgICAgICAgICAgICsgIlRvIHRlc3QgbWFudWFsbHksIGNsaWNrIGF0IHRo
ZSBtaWRkbGUgb2YgdGhlIGxpbmUgbWFya2VkIDkgYW5kIGNoZWNrIHRoYXQgdGhlIGNhcmV0IGFw
cGVhcnMgYWZ0ZXIgdGhlIDkuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApp
bmRleCAzYWJiMGY3MDg5YTNmM2JjYmM2YWFkZjY5ZjczZDc3N2JmNzllMzBhLi5hY2VhNTRlMDUw
ZGY1ZDJhNzc1YTlkOTlkOWIwMWY3MDY2YmE1YTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQt
ZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBk
b24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBh
YnNvbHV0ZSBlbGVtZW50cyBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwg
YmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBj
b3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0K
KyhyZXBhaW50IHJlY3RzIChyZWN0IDAgMCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbApp
bmRleCA3ZDQ3ZDEyNTkxZDliYzlmYTEyMTY5MWQwZTc0MGY5YWVkYjNmNDcwLi5hMTBiOWI1Mjg4
YWEzMmYzNjMxNTgwYjVjYjg5ZThiZWI1Njk0N2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKQEAg
LTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+
Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3Qo
KQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRl
cm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFp
bnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsK
KyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAg
ICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXY+CiAg
ICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2
Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxp
cHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRl
eCBkYjNjMzc0MTY1NmIxNzc4YzkxNDBmNzE1NGFlODdjNTgwNmM0NmI0Li45NzllZmEzOWU1NTBj
YzJlMzI1NDYzMTMyOWE5MTJiN2VmNThmMjk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFi
c29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2Vs
ZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlz
IHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQgZmxpcHBlZCBhcmUgaW52YWxp
ZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBz
ZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVj
dHMKLSAgKHJlY3QgMCAwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDAgMCAx
MDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKaW5kZXggMWI2MWVi
ZjJkNTBiM2E0ZjBkMDIzODkxNjE2NDQxN2ZlMjhlNTZhNy4uNDdhNGU2MGExMzYxYjJlZjVlN2M4
M2U2YTExYzNkYzc4NjRkNTUxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRt
bApAQCAtMSwxMSArMSwyOCBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50
VGVzdCgpCiAgICAgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAg
IGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rp
b24oKS5zZXRCYXNlQW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsK
KworICAgICAgICAvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJlc3Vs
dHMuCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
JyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNU
ZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAg
ICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM4LDUgQEAKICAgICA8
ZGl2IHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmwiPgogICAgICAgICA8
ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgog
ICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVk
LWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRl
eCBiN2MzMDk3YzZiMTc2MTZlMmY1ZDc0ZTk4YjdlOTg1OTcxYTQ1YTMxLi41Y2M5NjE1ZDFlMzBk
ODc2MDlkYTQ5YjM3MzNkYjA1ZTllNDYxMTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTEx
MDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9y
bXMKIFRoaXMgdGVzdHMgdGhhdCBhYnNvbHV0ZSBlbGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1l
ZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGxldGVseSBn
cmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAK
LShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDUwIDUwIDEwMCAxMDApCi0pCi0KKyhyZXBhaW50IHJl
Y3RzIChyZWN0IDUwIDUwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0
ZS1jaGlsZC5odG1sCmluZGV4IDE3ZWQzNWIxYTE1ODUxMDkyNzZmOWRiZWYwNjg0NjM2M2U0NjAx
NmYuLmZhOWNiMGRlM2Y0MGVmZGRlMjE4ODM0YWMyMWI1YmQyNzFlZDE0OWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29s
dXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSArMSwyOCBAQAogPCFk
b2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFz
ZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBh
aW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAgeworICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5n
UmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRh
cmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICAvLyByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMuCisgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9
IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAg
aW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAg
IDxzdHlsZT4KQEAgLTIxLDQgKzM4LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIg
c3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAg
PGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDhkYmVkNDQ5YmI5ZWFlY2NmZDY2
MzhiNzU3NmJhZGI4YmIwNDNjNDUuLmM1YTMxMjhlYTkxOWNjM2ExY2Q4YzJmM2Y1OTk0OWRlMzhh
YzI4ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2Fw
LXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3Rl
ZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJl
cGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVs
ZW1lbnRzIHRoYXQgZ2V0IHRyYW5zZm9ybWVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRo
ZSBib3ggd2lsbCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGlu
dmFsaWRhdGVkIGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAx
MDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1l
ZC1maXhlZC1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbAppbmRleCA3NDVjNTVlYzdhOWM3ZDk5ZTU4
YzQ1ZTJiZTZiNGIyMGI4MDE1OGEzLi45OTNhYTVmY2FmNDY4YWZiMGJkNzVjZmYwMmNjZGU1YzMw
N2YyYjBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKQEAgLTEsMTEg
KzEsMjggQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAg
ZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAg
IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMu
c3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAg
Ly8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHByb2R1Y2VzIGZsYWNreSByZXN1bHRzLgorICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAg
ICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8
L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszOCw1IEBACiAgICAgPGRpdiBzdHlsZT0i
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2
IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsg
aGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVkOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwv
ZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA4NjEyMzI2ZGY4ZmExNDgwMTdiYzNhNGU1Zjk2
NTg2NTBjMmY5ZGJmLi5iMTk5MmE5MTBkZWRkMWMwZGQ5YTVlMjQ0NGZjODZlOWY0NjdiNjU4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFs
aWRhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0yLDYgKzIsNSBAQCBBCiBB
CiAocmVwYWludCByZWN0cwogICAocmVjdCA4IDY4IDIwIDEwMCkKLSAgKHJlY3QgOCA2OCAyMCAx
MDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0CmluZGV4IDk1OTE1ZTY2MDBmMTI1NWNiZjZmMjM5Zjk4NjQ5
ZDc5OGEzNzYwNDEuLjRlN2MwOTI0MzQ2N2NkNzkxNTM0ZTVmYjEyYTBlMTg1MzU3ZjU3NDggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJs
LWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFu
ZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBh
aW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRp
bmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBv
ZiBzZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzggMTggNzkpCi0pCi0K
KyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOCAxOCA3OSkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbAppbmRleCAwMjc4NDQwYTFmYjcyNDQ0
MmQ5NjQyOTI4ZWEyZWIzMjM5M2NjYTIxLi5iNTk3YmEzY2NjYzhjNDVhYTNiZGIzMzA3MjhmZTAz
NWRkYzk0MDI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1
YnktcmwuaHRtbApAQCAtMyw3ICszLDE1IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBy
ZXBhaW50VGVzdCgpIHsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dChmYWxzZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisK
K2Z1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICBpZiAoZXZl
bnRTZW5kZXIpIHsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzkwLCA0MCk7CiAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwpAQCAtMTEsNiArMTksMTcgQEAgZnVuY3Rp
b24gcmVwYWludFRlc3QoKSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwg
MTIwKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgIH0KKworICAgIC8vIHJl
cXVlc3RBbmltYXRpb25GcmFtZSBwcm9kdWNlcyBmbGFja3kgcmVzdWx0cy4KKyAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2lu
ZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgIGludGVybmFs
cy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
fSwgMCk7CiB9CiA8L3NjcmlwdD4KIApAQCAtMjYsNCArNDUsNSBAQCBUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0
IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+Cis8ZGl2IGlkPSJyZXBhaW50
cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
CmluZGV4IGJkOWY1ODlmOWNjZDljNjc0ODI1MTNhNzQ2NmZjZmJiZmY3ZDE5NjguLmUyZDNlNTk3
ZmRkMmIxZmI2NDRhNWUzOWJhYjM1Y2NhNGU2Y2IwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFj
a2dyb3VuZAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5OSAxOCkKLSkKLQorKHJl
cGFpbnQgcmVjdHMgKHJlY3QgOCAxNiAxOTkgMTgpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbApp
bmRleCBiY2M5ZTM0ZDE3NzgwZTAxNjAwZTU1ODNiY2FhYjFiMDIzYTE2MjYwLi44YTQzZjliYWEy
ZTQ3NDI0M2EzNjk2ZTdjMjU2MzFjMjM5MDYyY2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1s
CkBAIC0xLDUgKzEsNCBAQAogPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3RleHQtYmFzZWQtcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4K
IDxzdHlsZT4KICN0ZXN0IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CkBAIC0xMiwxMSAr
MTEsMzAgQEAKIH0KIDwvc3R5bGU+CiA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0
KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRz
KCk7CisKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXN0LCAwLCB0
ZXN0LCAxKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRS
ZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBh
aW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0s
IDApOwogICAgIH07CiA8L3NjcmlwdD4KIAogPGJvZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgp
Ij4KICAgICA8cCBpZD0idGVzdCI+U2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZDwvcD4KKyAg
ICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9zcy1tdWx0aXBsZS1lbGVt
ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1h
Y3Jvc3MtbXVsdGlwbGUtZWxlbWVudHMuaHRtbAppbmRleCBlMDhiMWI3MTE2NDE2N2UxYTlkZWQ0
MmRlMjFlNjI1ODMyMGMyYTJjLi5lZmU5NjRlYjU3ZjFjMzA1NWM1MmVjYTliNWNhNzY5ZjY0N2Ey
ODI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0
aW9uLWFjcm9zcy1tdWx0aXBsZS1lbGVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9pbmNvcnJlY3QtZGVzZWxlY3Rpb24tYWNyb3NzLW11bHRpcGxlLWVsZW1lbnRzLmh0bWwK
QEAgLTIwLDExICsyMCwxMyBAQCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICBpZiAod2luZG93
LmludGVybmFscykKICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CiAgIHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihzZWNvbmQpOwotICBpZiAod2lu
ZG93LmludGVybmFscykgewotICAgIHJlc3VsdC5pbm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWlu
dFJlY3RzQXNUZXh0KCkuaW5kZXhPZigiNzg0IDcwIikgPT0gLTEgPyAiRkFJTCIgOiAiUEFTUyI7
Ci0gICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7Ci0gIH0KLSAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICByZXN1bHQu
aW5uZXJUZXh0ID0gaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpLmluZGV4T2YoIjc4NCA3
MCIpID09IC0xID8gIkZBSUwiIDogIlBBU1MiOworICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2lu
Z1JlcGFpbnRzKCk7CisgICAgfQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICB9LCAwKTsKIH0sIDApOwogPC9zY3JpcHQ+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBmOTI3YTRlOTBjMThhOGMwNGUwZWVjZTU2M2EyYjViOWRkNWU0NjRlLi4x
Mzg0ZDE3OWJkYzU5ZWJhNjJjMTNjMWQ5MmEyMTI0ZDUyNmFlZGY4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTUzMiw4ICsxNTMyLDYgQEAgd2Via2l0
Lm9yZy9iLzE1OTE0MyBmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1pbi1ydGwuaHRtbCBb
IEZhaWx1cmUgXQogIyBJbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGV2ZW50U2VuZGVyIGNh
dXNlcyB0aGlzIHRlc3QgdG8gZmFpbAogd2Via2l0Lm9yZy9iLzQyMTk0IGZhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1zZWxlY3QtbGlzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xMzkzNTQgZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgWyBGYWlsdXJl
IF0KLQogIyBNaXNzaW5nIGdseXBoIHN5bWJvbCBpcyBub3QgcmVuZGVyZWQgcHJvcGVybHkuCiB3
ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVybWluZWQtYnktcHJp
bWFyeS1mb250Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDAyNTIgZmFzdC90ZXh0
L2RlY29yYXRpb25zLXdpdGgtdGV4dC1jb21iaW5lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1Ynkt
cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9z
ZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg1ODA5OGU2M2E4MDIy
NWU3MGFmNDhhNjUzODAyMjkxMmFkOTE4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi5Tb21lIHJ1YnkKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlv
bi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgor
VGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0
aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rpbmcg
Ym90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgNzc1IDM3IDE3IDg0KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYTBhZTQ1NjBkZmEzZDY2MTI1
Y2YwZDQwMzA1MmRiMDgwNWU3MzgxMC4uMGZhNWRkYTVkNDIyYTY0MmFlYTFkYWE3NGU5ZDhlODAx
YWVjYTUyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ct
aGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJh
Y2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcgMTcpCi0pCi0KKyhy
ZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk3IDE3KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGUyOGY4OWNhMTIxYjcwNGI4YzU5NDFh
NDQ2NjZkZDk4NzcxYTU4NS4uMjQ3OGEwYmEzNTkxYzY5N2E2YTc2NTg5MWE0OThkZmRjM2VhZjFi
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTgwMSw0ICsxODAxLDcgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2lu
dGVyZXZlbnRzL3BvaW50ZXJldmVudF9tb3VzZV9jYXB0dXJlX2NoYW5nZV8KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cy9wb2ludGVyZXZlbnRfbW91c2VfcG9p
bnRlcmNhcHR1cmVfaW5fZnJhbWUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3BvaW50ZXJjYXB0
dXJlLWluLWN1c3RvbS1lbGVtZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3Jn
L2IvMjM2MTI4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC91c2VyLWFjdGl2
YXRpb24vYWN0aXZhdGlvbi10cmlnZ2VyLW1vdXNlLXJpZ2h0Lmh0bWwgWyBTa2lwIF0KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXQub3JnL2IvMjM2MTI4IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC91c2VyLWFjdGl2YXRpb24vYWN0aXZhdGlvbi10cmlnZ2Vy
LW1vdXNlLXJpZ2h0Lmh0bWwgWyBTa2lwIF0KKword2Via2l0Lm9yZy9iLzIzMTI5OCBhY2Nlc3Np
YmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbCBbIEZhaWx1cmUgXQor
d2Via2l0Lm9yZy9iLzIzMjYzMCBmYXN0L2Zvcm1zL2F1dG9mb2N1cy1vcGVyYS0wMDMuaHRtbCBb
IEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nl
c3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNs
ZWFyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNz
aWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVh
cmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY4Mzc5Y2MxOGUyMGI1MjI5MjJjY2U2MmFj
OWNmMjY0MWNkNGY1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6
aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCisgMQorIDIK
K1RoaXMgdGVzdHMgdGhhdCBjYWxsaW5nIGZvY3VzIG9uIGEgcmVuZGVyIG9iamVjdCB3aGVuIGl0
IGRvZXNuJ3QgcmVzdWx0IGluIGEgc2VsZWN0aW9uIGNoYW5nZSB3b24ndCBsZWF2ZSBpc1N5bmNo
cm9uaXppbmdTZWxlY3Rpb24gc2V0IHRvIHRydWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIjEiKSkgaXMgdHJ1ZQorUEFTUyBheFRleHRTdGF0ZVN5
bmNPbmUgaXMgdW5kZWZpbmVkCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgiMSIpLmlzRm9jdXNhYmxlIGlzIHRydWUKK1BBU1MgYXhUZXh0U3RhdGVT
eW5jVHdvIGlzIHVuZGVmaW5lZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
ZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJm
MDEwZmFjNDYyN2UzMTQ1MWYxNDFhMzg1MWI0NjI2NmQ3ZDI5ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKworCisKKyhyZXBhaW50IHJlY3RzCisgIChyZWN0IDEg
MTkgMTUgMzIpCisgIChyZWN0IDggMjYgMSAxOCkKKyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJl
Y3QgOCAyNiAxIDE4KQorICAocmVjdCAxIDM3IDc5OCAzMikKKyAgKHJlY3QgOCA0NCA3ODQgMTgp
CisgIChyZWN0IDEgNTEgNzk4IDE4KQorICAocmVjdCAxIDQ0IDc5OCA3KQorKQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXRhcmdldC1tYXJnaW4t
MDA1LWV4cGVjdGVkLnR4dAppbmRleCA0ODAwMjgwOTZhMjU5ZDJkNTE3ODYyYjk4ZjQ0ZjU3NjZh
NGM0OWM5Li42YjQ5NWQzYzIzNzhlNGZmMGQyMjU5ZTY4Mjc3NTdhMWI1ODViYjc3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC10YXJnZXQtbWFy
Z2luLTAwNS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKIAotRkFJTCBzY3JvbGwtbWFy
Z2luIG9uIGlucHV0IHdpZGdldCBhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmU6IFNob3VsZCBob25v
ciBkYXRlIGlucHV0IHNjcm9sbC1tYXJnaW4gZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0aGFu
IDQ3NTAgYW5kIGxlc3MgdGhhbiA0ODUwIGJ1dCBnb3QgNDcyMAorRkFJTCBzY3JvbGwtbWFyZ2lu
IG9uIGlucHV0IHdpZGdldCBhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmU6IFNob3VsZCBob25vciBk
YXRlIGlucHV0IHNjcm9sbC1tYXJnaW4gZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDQ3
NTAgYW5kIGxlc3MgdGhhbiA0ODUwIGJ1dCBnb3QgOTQzOQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDYyNTU1YTFlMGY0MzBjNjMwODJiYWU0OWU3ZmYx
OGEyMDQwMjRiZDEuLjhlODNiM2U0YTlkZTI3MmY2YjNhNjcwYWExZmY4ZmIyMjJiMWZkMGQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNDE2LDMgKzI0
MTYsNCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9ldmVudC10aW1lb3V0
LW9yZGVyLmFueS53b3JrZXIuaHRtbCBbIEZhaWx1cgogCiB3ZWJraXQub3JnL2IvMjM3MTY2IFsg
QmlnU3VyKyBdIHdlYmdsL3BlbmRpbmcvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy90ZXgtaW1h
Z2UtdmlkZW8tcmVwZWF0ZWQuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKK3dlYmtpdC5vcmcvYi8y
MzEyOTggYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXN5bmMuaHRtbCBbIFNraXAgXSAjIFRp
bWVvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQv
NDc3Njc2NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBh
aW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5Y2E3ZGMxOGU5ZThkNmMwMjU3
NjI1Mzg4MTlkM2NjZGY0ZGRhMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKKworCisKKyhyZXBhaW50IHJlY3RzCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVjdCA4
IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcpCisp
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2Vs
ZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0
CmluZGV4IGUwMmMwOTJiYTUzM2I2ZTZkMDZlMjIwODY4M2M0MWUzNGI4OTI4MjQuLjUwMjM1MWFi
NzAzNGU4NWRiZTA0NGE2MWU1NjY5MWE0YTUyNjQzMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDEx
MTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zv
cm1zCiBUaGlzIHRlc3RzIHRoYXQgZml4ZWQgZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNvcnJl
Y3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJl
YSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5Lg0KIA0KIA0KLShyZXBhaW50IHJlY3RzDQotICAo
cmVjdCAwIDAgMTAwIDEwMCkNCi0pDQogDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVj
dGVkLnR4dAppbmRleCA1YTkzNGY0NzM3ZmU1ZjlmZjE2NTRlYTdhMmIxMzJmZjdlYjJiNWM3Li5m
YzU1OTU5N2VlYTBlOTIwZDE5NWFkMjc1OGEwOTI3ZjFiMjYyNTExIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhp
dCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRl
c3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGlu
ZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFu
ZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzkg
MTggODMpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlv
bi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
CmluZGV4IDBhNzcxZDQ2OWExZGIwZDRjN2M2N2Y1NTA1YTVlZTI3ZWI5ZjAzNWUuLjQxOTA0MDM4
ODM1NjUxNzQ4NjZmMzA4MzFlMWJkMGE1ZmUxMGQ2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVu
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwz
IEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChy
ZWN0IDggMTYgMTk3IDE4KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxOCkg
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459188</attachid>
            <date>2022-05-11 16:35:09 -0700</date>
            <delta_ts>2022-05-12 10:00:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20220511163508.patch</filename>
            <type>text/plain</type>
            <size>48425</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYxYWY5MDhlY2Y4YjYz
OTljOWNmZmY5NjY2MjQ5N2Q3NDgzODgwNS4uODFjMzgxZTE2YmI2ZTA5OGY1OWM2MWYzNjQyZDcx
MmJmNDgwNGYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIyLTA1LTExICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgVGhlIEFwcCBIaWdobGlnaHQgcmVzdG9y
YXRpb24gY29kZSBoYWQgdG8gYmUgdHVuZWQgYXMgd2VsbCAod2hlbiByZXN0b3JpbmcgYW5kIHNj
cm9sbGluZyB0byByZXZlYWwKKyAgICAgICAgYSBRdWljayBOb3RlIG9uIGlPUyBNYWNPUykuIEl0
IHVzZXMgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHRvIHNlbGVjdCBhbmQgc2Nyb2xsIHRvIHJl
dmVhbCB0aGUgaGlnaGxpZ2h0CisgICAgICAgIHJhbmdlOyB0aGUgY29kZSBhc3N1bWVkIHRoYXQg
dGhpcyBzY3JvbGxpbmcgaGFwcGVucyBzeW5jaHJvbm91c2x5LCBzaW5jZSBpdCByZXZlcnRzIHRo
ZSBzZWxlY3Rpb24gdG8KKyAgICAgICAgdGhlIG9yaWdpbmFsIHJhbmdlIGF0IHRoZSBlbmQgb2Yg
YEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGxg
IHdoZW4gdGhlCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBmYWxscyBvdXQgb2Yg
c2NvcGUuIFRoYXQgaXMgaG93ZXZlciBubyBsb25nZXIgdGhlIGNhc2UuIEFjdHVhbGx5IG5vIHNj
cm9sbGluZworICAgICAgICBoYXBwZW5lZCBhZnRlciB0aGlzIHBhdGNoIGJlY2F1c2Ugd2UgZW5k
IHVwIG9ubHkgc2NoZWR1bGluZyB0aGUgYXBwZWFyYW5jZSB1cGRhdGUgdGltZXIgYmVmb3JlIHNl
dHRpbmcKKyAgICAgICAgdGhlIHNlbGVjdGlvbiBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZSB3
aXRoIGBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbGAuIFNpbmNlIHRoaXMgb25seSBo
YXBwZW5zCisgICAgICAgIHdoZW4gdGhlIHVzZXIgaW50ZXJhY3RzIGluIHRoZSBOb3RlcyBhcHAs
IGl0IHNlZW1zIHNlbnNpYmxlIHRvIGNvbnNpZGVyIGl0IGFzIGEgdXNlciB0cmlnZ2VyZWQgZXZl
bnQuCisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3Rv
cmVIaWdobGlnaHRBbmRTY3JvbGwpOiBDb25zaWRlciB0aGUgc2VsZWN0aW9uIGNoYW5nZQorICAg
ICAgICBhcyB1c2VyIHRyaWdnZXJlZCBzbyBzY3JvbGxpbmcgYWN0dWFsbHkgaGFwcGVucy4KKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlT
ZWxlY3Rpb25DaGFuZ2U6OnNldFNlbGVjdGlvbik6IENoZWNrIHRoZSBVc2VyVHJpZ2dlcmVkIGZs
YWdzIGZvciBkZWZhdWx0IG9wdGlvbnMuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDogQWRk
ZWQgYSBuZXcgVXNlclRyaWdnZXJlZCBmbGFnLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgor
ICAgICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBu
b3QgbmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2Fs
bGVkIHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjph
YnNvbHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xh
eW91dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCku
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRz
IGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFs
U2VsZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1Nl
bGVjdGlvbklzTmVlZGVkKTogTmV3IG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNl
bGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0U2VsZWN0aW9uSWZOZWVkZWQpOiBTZXQgdGhlIFVzZXJUcmln
Z2VyZWQgZmxhZyBmb3IgY2FsbGluZyBzZXRTZWxlY3Rpb24oKS4KKyAgICAgICAgKiBwYWdlL1Bh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZG9BZnRlclVwZGF0ZVJlbmRlcmluZyk6
IENhbGwgdXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkuCisKIDIwMjItMDUtMTEgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhIGNhbnZh
cy1kcmF3SW1hZ2Ugc3BlY2lmaWMgbWV0aG9kIHRvIGdldCBhIE5hdGl2ZUltYWdlIGZyb20gYSB2
aWRlbyBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwCmluZGV4IDI0ZjY1NTJiM2YxNDYxZTAwZTA0MjY4
NDYzNTU4YTU2ODk2NmQ2ODguLjk1NGIyZTFiMGI3ZmFmYzhjODVlZjUyMmFjZTEzMmIwNWJiMDA0
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hs
aWdodFN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0Fw
cEhpZ2hsaWdodFN0b3JhZ2UuY3BwCkBAIC0yNzEsNyArMjcxLDcgQEAgYm9vbCBBcHBIaWdobGln
aHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKEFwcEhpZ2hsaWdo
dFJhbmdlRGEKICAgICAgICAgaWYgKHRleHRJbmRpY2F0b3IpCiAgICAgICAgICAgICBtX2RvY3Vt
ZW50LT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldFRleHRJbmRpY2F0b3IodGV4dEluZGlj
YXRvci0+ZGF0YSgpKTsKIAotICAgICAgICBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2Ugc2VsZWN0
aW9uQ2hhbmdlKCpzdHJvbmdEb2N1bWVudCwgeyByYW5nZS52YWx1ZSgpIH0sIHsgVGVtcG9yYXJ5
U2VsZWN0aW9uT3B0aW9uOjpEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0
aW9uT3B0aW9uOjpTbW9vdGhTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6UmV2ZWFs
U2VsZWN0aW9uQm91bmRzIH0pOworICAgICAgICBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2Ugc2Vs
ZWN0aW9uQ2hhbmdlKCpzdHJvbmdEb2N1bWVudCwgeyAqcmFuZ2UgfSwgeyBUZW1wb3JhcnlTZWxl
Y3Rpb25PcHRpb246OkRlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rpb25P
cHRpb246OlNtb290aFNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxTZWxl
Y3Rpb25Cb3VuZHMsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6VXNlclRyaWdnZXJlZCB9KTsK
ICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRl
eCBkMTk4MDFhYmM2MTBmOTFmN2ZlMWM2MTU3NWVlNDc2YmZkMDQ0ZTA1Li4yMmJmNTc4NDEwODNm
MmNkOWQzMzMxYjNlNWE5MjdlZWIxOWI5NzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CkBAIC0yNjIsNyArMjYyLDcgQEAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlOjp+VGVtcG9yYXJ5
U2VsZWN0aW9uQ2hhbmdlKCkKIAogdm9pZCBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIElzVGVtcG9yYXJ5U2Vs
ZWN0aW9uIGlzVGVtcG9yYXJ5U2VsZWN0aW9uKQogewotICAgIGF1dG8gb3B0aW9ucyA9IEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpOworICAgIGF1dG8gb3B0aW9u
cyA9IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhtX29wdGlvbnMu
Y29udGFpbnMoVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpVc2VyVHJpZ2dlcmVkKSA/IFVzZXJU
cmlnZ2VyZWQgOiBOb3RVc2VyVHJpZ2dlcmVkKTsKICAgICBpZiAobV9vcHRpb25zICYgVGVtcG9y
YXJ5U2VsZWN0aW9uT3B0aW9uOjpEb05vdFNldEZvY3VzKQogICAgICAgICBvcHRpb25zLmFkZChG
cmFtZVNlbGVjdGlvbjo6RG9Ob3RTZXRGb2N1cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmlu
ZGV4IGU0NTFjOWNjZWE3ZGE5ZDIwMWU3MzE2MGVlN2E1NzA5NjlkNjM5NjUuLjk5YzAyYTVlOGIy
ZjRjZGExYzhlZDYyMmY4NjFkNjE0MDIzYjg2ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApA
QCAtMTI2LDYgKzEyNiw4IEBAIGVudW0gY2xhc3MgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uIDog
dWludDhfdCB7CiAgICAgRGVsZWdhdGVNYWluRnJhbWVTY3JvbGwgPSAxIDw8IDUsCiAgICAgCiAg
ICAgUmV2ZWFsU2VsZWN0aW9uQm91bmRzID0gMSA8PCA2LAorCisgICAgVXNlclRyaWdnZXJlZCA9
IDEgPDwgNywKIH07CiAKIGNsYXNzIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDFjZmIyNGNjNWNkODUzMTUz
MTM1MjVmM2U5NjU2YmZhYTA4ODFmNWYuLjUwMGEzYjk1MzE3MDFkZDIyYzZhMzllODY2YjI0YTk3
MTU1MDBhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBA
IC00NTQsNiArNDU0LDExIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAgaWYgKGZyYW1l
VmlldyAmJiBmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgaWYgKCEob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkpIHsK
KyAgICAgICAgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVu
dCwgb3B0aW9ucy5jb250YWlucyhTbW9vdGhTY3JvbGwpID8gU2Nyb2xsQmVoYXZpb3I6OlNtb290
aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBvcHRpb25zLmNvbnRhaW5zKFJldmVhbFNlbGVj
dGlvbkJvdW5kcykgPyBSZXZlYWxFeHRlbnRPcHRpb246OkRvTm90UmV2ZWFsRXh0ZW50IDogUmV2
ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogCiAgICAgaWYgKG9wdGlvbnMgJiBJc1Vz
ZXJUcmlnZ2VyZWQpIHsKQEAgLTQ2MiwxMyArNDY3LDE5IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNl
dDxTCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5
b3V0T3JTdHlsZShEb2N1bWVudCYgZG9jdW1lbnQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRh
dGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkKIHsKKyAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIFJlZiBkb2N1bWVudCA9ICptX2RvY3VtZW50OwogI2lmIEVOQUJM
RShURVhUX0NBUkVUKQotICAgIGRvY3VtZW50LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOworICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKICNlbHNlCi0gICAgZG9jdW1lbnQudXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAg
IGRvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAjZW5kaWYKKyAgICBpZiAobV9wZW5k
aW5nU2VsZWN0aW9uVXBkYXRlKQorICAgICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKFJldmVhbFNlbGVjdGlv
bkFmdGVyVXBkYXRlIHJldmVhbE1vZGUpCkBAIC0xNzAwLDcgKzE3MTEsNyBAQCBJbnRSZWN0IEZy
YW1lU2VsZWN0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKGJvb2wqIGluc2lkZUZpeGVkKQogewog
ICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKLSAgICB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSgqbV9kb2N1bWVudCk7CisgICAgdXBk
YXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogICAgIHJlY29tcHV0ZUNhcmV0UmVjdCgpOwog
ICAgIGlmIChpbnNpZGVGaXhlZCkKICAgICAgICAgKmluc2lkZUZpeGVkID0gbV9jYXJldEluc2lk
ZVBvc2l0aW9uRml4ZWQ7CkBAIC0yMjU4LDcgKzIyNjksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZXRDYXJldFZpc2liaWxpdHkoQ2FyZXRWaXNpYmlsaXR5IHZpc2liaWxpdHksIFNob3VsZFVw
ZGF0ZQogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCB0cmlnZ2VyIGEgc3luY2hyb25vdXMg
bGF5b3V0IGhlcmUuCiAgICAgaWYgKGRvQXBwZWFyYW5jZVVwZGF0ZSA9PSBTaG91bGRVcGRhdGVB
cHBlYXJhbmNlOjpZZXMgJiYgbV9kb2N1bWVudCkKLSAgICAgICAgdXBkYXRlU2VsZWN0aW9uQnlV
cGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgICAgICB1cGRhdGVTZWxlY3Rp
b25BcHBlYXJhbmNlTm93KCk7CiAKICNpZiBFTkFCTEUoVEVYVF9DQVJFVCkKICAgICBpZiAobV9j
YXJldFBhaW50KSB7CkBAIC0yMzY2LDcgKzIzNzcsNyBAQCBGbG9hdFJlY3QgRnJhbWVTZWxlY3Rp
b246OnNlbGVjdGlvbkJvdW5kcyhDbGlwVG9WaXNpYmxlQ29udGVudCBjbGlwVG9WaXNpYmxlQ29u
dAogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKIAot
ICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsK
KyAgICBjb25zdF9jYXN0PEZyYW1lU2VsZWN0aW9uJj4oKnRoaXMpLnVwZGF0ZVNlbGVjdGlvbkFw
cGVhcmFuY2VOb3coKTsKICAgICBhdXRvKiByZW5kZXJWaWV3ID0gbV9kb2N1bWVudC0+cmVuZGVy
VmlldygpOwogICAgIGlmICghcmVuZGVyVmlldykKICAgICAgICAgcmV0dXJuIExheW91dFJlY3Qo
KTsKQEAgLTI0NjIsNiArMjQ3Myw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgaWYg
KGlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJh
bmNlTm93KCk7CisKICAgICBMYXlvdXRSZWN0IHJlY3Q7CiAgICAgYm9vbCBpbnNpZGVGaXhlZCA9
IGZhbHNlOwogICAgIGlmIChpc0NhcmV0KCkpCkBAIC0yNTMzLDYgKzI1NDYsMTMgQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2hvdWxkU2hvd0Jsb2NrQ3Vyc29yKGJvb2wgc2hvdWxkU2hvd0Js
b2NrQ3Vyc29yKQogICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKIH0KIAordm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlQXBwZWFyYW5jZUlmUmV2ZWFsaW5nU2VsZWN0aW9uSXNOZWVkZWQoKQorewor
ICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlIHx8IG1fc2VsZWN0aW9uUmV2ZWFsTW9k
ZSA9PSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKK30KKwogdm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlQXBwZWFyYW5jZUFmdGVyTGF5b3V0KCkKIHsKICAgICBtX2FwcGVhcmFuY2VV
cGRhdGVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgK
aW5kZXggYTNkNzQzNGNhNWQ5NGUzMmNhZGJlZDg3ZTc3MWVmMTJjYWI4OGNiMS4uYjJlYTllYzgz
OTgxODcxZjcyOTJiM2FjYjQzZjViZGZkYTZiZmE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaApAQCAtMTUxLDYgKzE1MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbUZyYW1lKCk7
CiAKKyAgICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2VJZlJldmVhbGluZ1NlbGVjdGlvbklzTmVlZGVk
KCk7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlQWZ0ZXJMYXlvdXQoKTsKICAgICB2b2lkIHNj
aGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKIApAQCAtMjY3LDYgKzI2
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7
CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAg
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmLCBTY3JvbGxCZWhhdmlvciA9IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50LCBSZXZlYWxF
eHRlbnRPcHRpb24gPSBSZXZlYWxFeHRlbnRPcHRpb246OlJldmVhbEV4dGVudCk7CiAgICAgdm9p
ZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAppbmRleCAwYzY2NDEwZDVjNGZiYmI5YzM2Mjc0MzI2Mjk3OWY2Nzc4MDlk
OWM4Li5hYzcyNWQ0Njc1OGY5YzMyNWE5Zjg0MDc1YWJhNDNjMDE2NmJiMzdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCBFdmVudEhh
bmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmIG5vZGVUb0JlUmVtb3ZlZCkKIHN0YXRpYyB2
b2lkIHNldFNlbGVjdGlvbklmTmVlZGVkKEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbikKIHsKICAgICBpZiAoc2VsZWN0aW9uLnNl
bGVjdGlvbigpICE9IG5ld1NlbGVjdGlvbiAmJiBzZWxlY3Rpb24uc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uKTsKKyAgICAgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZy
YW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBkaXNwYXRjaFNlbGVjdFN0YXJ0KE5vZGUqIG5vZGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAppbmRleCA3ZDQyNDgwMmQ2OWU1Mjk4NGEwZDdjOWQyNmUxYWJjOWM0
NGVhODI0Li42NzQyYmIwOTc0OWYyMTcwNjI2ZTQwNGZmZWYyZTYxMzYwNDZiMmMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTE3MzQsNiArMTczNCwxMCBAQCB2b2lkIFBhZ2U6OmRvQWZ0ZXJVcGRh
dGVSZW5kZXJpbmcoKQogICAgICAgICBkb2N1bWVudC5lbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlm
TmVlZGVkKCk7CiAgICAgfSk7CiAKKyAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50JiBk
b2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNl
QWZ0ZXJMYXlvdXQoKTsKKyAgICB9KTsKKwogICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1l
bnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRvY3VtZW50LnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9u
cygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZjN2M2YjVjMmU2MzIyN2U2ZTg4Y2ZjYjE0M2U3ZGJkNzA1
NTNlYjQuLjE0Mjg0ZmZjMDRlZTM2Mzg0NTBiMWMzMjIyOTIzYjE0NTRiZjdkMDEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1NCBAQAorMjAyMi0wNS0xMSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJA
aWdhbGlhLmNvbT4KKworICAgICAgICBSZWxlYXNlIGFzc2VydCBpbiBEb2N1bWVudDo6dXBkYXRl
TGF5b3V0KCkgdmlhIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIE1vdmVkIHNvbWUgdGVzdHMg
b3V0IG9mIHRoZSB0ZXh0LWJhc2VkLXJlcGFpbnQuanMgbW9kZWwgYmVjYXVzZSBzZWxlY3Rpb24g
aXMgbm93IHVwZGF0ZWQKKyAgICAgICAgYW5kIHJldmVhbGVkIGFzeW5jaHJvbm91c2x5IGluIHRo
ZSBjYXNlIG9mIG5vbi11c2VyIHRyaWdnZXJlZCBjaGFuZ2VzLiBUaGUgcHJvYmxlbSBpcyB0aGF0
CisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSByZXBhaW50IHJlY3RzIGFyZSBxdWVyaWVkIHRoZSB1
cGRhdGUgaGFzIG5vdCBoYXBwZW5lZCB5ZXQuIFRoYXQncyB3aHkKKyAgICAgICAgdGhlIHRlc3Rz
IHdlcmUgbW9kaWZpZWQgc28gdGhhdCB3ZSB3YWl0IHVudGlsIHRoZSByZXBhaW50IGhhcHBlbnMu
CisKKyAgICAgICAgU2FtZSBzaXR1YXRpb24gZm9yIG90aGVyIHRlc3RzIHRoYXQgZG8gbm90IGlu
dm9sdmUgcmVwYWludCByZWN0cyBidXQgdHJpZ2dlciBhY2Nlc2liaWxpdHkKKyAgICAgICAgdHJl
ZSB1cGRhdGVzLiBXZSBtdXN0IGVuc3VyZSB0aGF0IHdlIGxldCB0aGUgbm90aWZpY2F0aW9uIGJl
IHRocm93biBiZWZvcmUgY2hlY2tpbmcgd2hldGhlciBvcgorICAgICAgICBub3QgaGFzIGJlZW4g
ZW1pdGVkLiBBcyBpdCdzIGRvbmUgYXN5bmNocm9ub3VzbHkgd2UgbXVzdCBsZXQgdGhlIG1haW4g
dGhyZWFkIHJ1biBiZWZvcmUgY2hlY2tpbmcuCisKKyAgICAgICAgTGFzdCBidXQgbm90IGxlYXN0
LCBzb21lIG9mIHRoZSB0ZXN0cyBhcmUgdXNpbmcgc2V0VGltZW91dCgpIGluc3RlYWQgb2YgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKCkKKyAgICAgICAgYmVjYXVzZSB0aGUgcmVzdWx0cyB3aXRoIHRo
ZSBsYXR0ZXIgd2VyZSBub3QgYXMgcmVsaWFibGUgdW5kZXIgc3RyZXNzL2RlYnVnIGNvbmRpdGlv
bnMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNl
cmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNo
aWxkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1h
YnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNv
bHV0ZS1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRy
YW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sOgorICAgICAgICAq
IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sOgorICAgICAgICAq
IGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4u
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9zcy1t
dWx0aXBsZS1lbGVtZW50cy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1
YnktcmwtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlv
bi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC10YXJnZXQtbWFyZ2luLTAwNS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZp
eGVkLWNoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50
eHQ6CisKIDIwMjItMDUtMTEgIEthcmwgUmFja2xlciAgPHJhY2tsZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtHYXJkZW5pbmddWyBtYWNPUyBEZWJ1ZyB3azIgXSBmYXN0L2Nzcy92YXJpYWJsZXMv
dGVzdC1zdWl0ZS8xNjguaHRtbCBpcyBhIGZsYWt5IGltYWdlIGZhaWx1cmUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5m
by5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5
LXVzZXJpbmZvLmh0bWwKaW5kZXggOGJkOTE5NTRiMmQ4ZmRjOTE0MjAwODI5ZDE4ZTFkYjM3Y2Fl
ZjNiYS4uZDg4ZjUzODVjNmNmOTUxOTZhODA5NGU2Y2YzMjU2YjQ5Mjg4ODc3MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJp
bmZvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJv
dW5kYXJ5LXVzZXJpbmZvLmh0bWwKQEAgLTE2MiwyMCArMTYyLDMxIEBACiAgICAgICAgIHZhciBh
ZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZp
Y2F0aW9uQ2FsbGJhY2spOwogICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAi
dHJ1ZSIpOwogCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4
dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7Ci0KLSAgICAgICAgbW92ZSh0cnVlKTsK
LQotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7Ci0g
ICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgZnVuY3Rpb24gd2FpdEZvckFuaW1hdGlv
bkZyYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShyZXNv
bHZlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAKLSAgICAgICAgbW92ZShmYWxzZSk7
CisgICAgICAgIGZ1bmN0aW9uIGZvY3VzRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAg
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAg
ICAgZWxlbWVudC5mb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JBbmltYXRpb25G
cmFtZSgpOworICAgICAgICB9CiAKLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXh0YXJlYSIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1
bmN0aW9uIG1vdmVBc3luYyhpc1ZlcnRpY2FsKSB7CisgICAgICAgICAgICBtb3ZlKGlzVmVydGlj
YWwpOworICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JBbmltYXRpb25GcmFtZSgpOworICAgICAg
ICB9CiAKLSAgICAgICAgbW92ZSh0cnVlKTsKKyAgICAgICAgKGFzeW5jIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIGF3YWl0IGZvY3VzRWxlbWVudCgidGV4dGJveCIpOworICAgICAgICAgICAg
YXdhaXQgbW92ZUFzeW5jKHRydWUpOworICAgICAgICAgICAgYXdhaXQgZm9jdXNFbGVtZW50KCJp
bnB1dCIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKGZhbHNlKTsKKyAgICAgICAgICAg
IGF3YWl0IGZvY3VzRWxlbWVudCgidGV4dGFyZWEiKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVB
c3luYyh0cnVlKTsKKyAgICAgICAgfSkoKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5m
by5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11
c2VyaW5mby5odG1sCmluZGV4IGUxZWJkZWMwMjc0Mjg2OTk2NWM1Y2RkZGM2MTBmNmJiZDhlYjJh
ZGYuLmJiM2M4NmNmYzhhOTdhMGM2Yzg3ZTc5MGI1NTNmODA5ZjVhODk3ZjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwKQEAgLTE5NSwxOSArMTk1LDg3IEBACiAgICAgICAgIHNob3VsZEJlKCJh
ZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKICAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKIAog
ICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsK
LSAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92
ZSIsICJmb3J3YXJkIiwgZ3JhbltpXSk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJi
YWNrd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGZvY3VzVGV4dEJveCgpIHsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qp
IHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIG1vdmVTZWxlY3Rpb24oZGlyZWN0aW9uLCBncmFudWxhcml0eSkgeworICAgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IHMubW9kaWZ5KCJtb3ZlIiwgZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAg
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0p
OwogICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAgICAgICAgICAg
cy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQi
LCAiZm9yd2FyZCIsIGdyYW5baV0pOworCisgICAgICAgIGZ1bmN0aW9uIGV4dGVuZFNlbGVjdGlv
bihncmFudWxhcml0eSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdy
YW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAg
ICAgIH0sIDApOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biByZXNldFBvc2l0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0
aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Cisg
ICAgICAgICAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAg
ICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisKKyAgICAgICAgKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgYXdhaXQgZm9jdXNUZXh0Qm94KCk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9u
KCk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblswXSk7
CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMF0pOwor
ICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMV0pOworICAg
ICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzFdKTsKKyAgICAg
ICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzJdKTsKKyAgICAgICAg
ICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblsyXSk7CisgICAgICAgICAg
ICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblszXSk7CisgICAgICAgICAgICBh
d2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bM10pOworICAgICAgICAgICAgYXdh
aXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQg
bW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzRdKTsKKyAgICAgICAgICAgIGF3YWl0IG1v
dmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVT
ZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls1XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2Vs
ZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0
aW9uKCJiYWNrd2FyZCIsIGdyYW5bNl0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlv
bigiZm9yd2FyZCIsIGdyYW5bN10pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigi
YmFja3dhcmQiLCBncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZv
cndhcmQiLCBncmFuWzhdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3
YXJkIiwgZ3Jhbls4XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAg
ICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblswXSk7CisgICAgICAgICAgICBhd2Fp
dCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jh
blsxXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBh
d2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblsyXSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBv
c2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3JhblszXSk7Cisg
ICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRl
bmRTZWxlY3Rpb24oZ3Jhbls0XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7
CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls1XSk7CisgICAgICAgICAg
ICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rp
b24oZ3Jhbls2XSk7CisgICAgICAgICAgICBhd2FpdCByZXNldFBvc2l0aW9uKCk7CisgICAgICAg
ICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls3XSk7CisgICAgICAgICAgICBhd2FpdCBy
ZXNldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBhd2FpdCBleHRlbmRTZWxlY3Rpb24oZ3Jhbls4
XSk7CisgICAgICAgICAgfSkoKTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFy
aWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9u
LXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCmluZGV4IGVlOWUwYTgwNWE1OTFh
ODFiMjE2YTVlYTU4ZThmNDgwMjZiNWEwZGIuLmFlNTA1YTJkNTA5NmVmOGIwMjhmNjRhZjIzNTA2
MTAxYzkzMTk4OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Nl
bGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10
ZXh0Ym94Lmh0bWwKQEAgLTQzLDEyICs0MywxNyBAQCBjb250ZW50IGluc2lkZQogICAgICAgICAv
LyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKLSAgICAgICAg
Zm9yICh2YXIgayA9IDA7IGsgPCAzOyBrKyspIHsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCgpID0+IHsKICAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hh
cmFjdGVyIik7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4K
LSAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxv
ICIpOworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAg
ICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAgICAg
ICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAgICAg
ICAgICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgorICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8gIik7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAgICAgfQogCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLXdpdGgt
YWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHktY29udGVudC5odG1s
CmluZGV4IDlhZDY0YWQ5YzU2YjVjYzFlNmVlZTE3ZTQwMDgxYWM0YjRjMjQ2MmMuLmVlOWVmZTQ1
MTI1YjI2ZjA2NWQ5MmZkOWRlYzM0ZGUwMTZiNzBkMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1w
b3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbApAQCAtMTQsMTMgKzE0LDE3IEBAIHNwYW4gewog
PHNjcmlwdD4KIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICBpbnRlcm5hbHMuc3RhcnRUcmFja2lu
Z1JlcGFpbnRzKCk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCitpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXdpbmRvdy5nZXRTZWxlY3Rpb24o
KS5zZWxlY3RBbGxDaGlsZHJlbihmb29iYXIpOwotCi1pZiAod2luZG93LmludGVybmFscykgewot
ICByZXN1bHQuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOwotICBp
bnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiB9Ci08L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZm9vYmFyKTsKK3JlcXVlc3RBbmltYXRp
b25GcmFtZSgoKSA9PiB7CisgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgcmVzdWx0Lmlu
bmVyVGV4dCA9IGludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICBpbnRlcm5hbHMu
c3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgfQorICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0
Lmh0bWwKaW5kZXggNzM0Y2RjYjA2YTM2MzY2M2I1ZDA5MTAwMTRmZDY2NGIyNWE1NDBlOC4uZTQy
ZTQzYmEyYjJmNzQ1NDRlMjliNWU2ZGQ3NjEzOThhNGNjNzEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNhcmV0
Lmh0bWwKQEAgLTE1LDEzICsxNSwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB0YS5mb2N1cygp
OwogICAgIC8vIGNsaWNrCiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOwotICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgICAgICBpZiAodGEu
c2VsZWN0aW9uRW5kID09IDE3KQotICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1
Y2NlZWRlZCI7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVz
dCBGYWlsZWQ6IGNhcmV0IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkg
PT4geworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworICAgICAgICAgICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9PSAxNykKKyAgICAg
ICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgRmFpbGVkOiBjYXJl
dCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5kOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJlcy5pbm5lckhU
TUwgPSAiVGVzdCBjYW4ndCBydW4gd2l0aG91dCBldmVudCBzZW5kZXIgKHBhcnQgb2YgRHVtcFJl
bmRlclRyZWUpLiAiCiAgICAgICAgICAgICArICJUbyB0ZXN0IG1hbnVhbGx5LCBjbGljayBhdCB0
aGUgbWlkZGxlIG9mIHRoZSBsaW5lIG1hcmtlZCA5IGFuZCBjaGVjayB0aGF0IHRoZSBjYXJldCBh
cHBlYXJzIGFmdGVyIHRoZSA5LiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQK
aW5kZXggM2FiYjBmNzA4OWEzZjNiY2JjNmFhZGY2OWY3M2Q3NzdiZjc5ZTMwYS4uYWNlYTU0ZTA1
MGRmNWQyYTc3NWE5ZDk5ZDliMDFmNzA2NmJhNWE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxk
LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMg
ZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQg
YWJzb2x1dGUgZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxs
IGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQg
Y29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAgMCAxMDAgMTAwKQotKQot
CisocmVwYWludCByZWN0cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwK
aW5kZXggN2Q0N2QxMjU5MWQ5YmM5ZmExMjE2OTFkMGU3NDBmOWFlZGIzZjQ3MC4uYTEwYjliNTI4
OGFhMzJmMzYzMTU4MGI1Y2I4OWU4YmViNTY5NDdlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBA
IC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0
KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50
ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigp
LnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBh
aW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7
CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQog
ICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2Pgog
ICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdp
ZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rp
dj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZs
aXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5k
ZXggZGIzYzM3NDE2NTZiMTc3OGM5MTQwZjcxNTRhZTg3YzU4MDZjNDZiNC4uOTc5ZWZhMzllNTUw
Y2MyZTMyNTQ2MzEzMjlhOTEyYjdlZjU4ZjI5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1h
YnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNl
bGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhp
cyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJlIGludmFs
aWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUg
c2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJl
Y3RzCi0gIChyZWN0IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCAwIDAg
MTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDFiNjFl
YmYyZDUwYjNhNGYwZDAyMzg5MTYxNjQ0MTdmZTI4ZTU2YTcuLjQ3YTRlNjBhMTM2MWIyZWY1ZTdj
ODNlNmExMWMzZGM3ODY0ZDU1MTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0
bWwKQEAgLTEsMTEgKzEsMjggQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWlu
dFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAg
ICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0
aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7
CisKKyAgICAgICAgLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHByb2R1Y2VzIGZsYWNreSByZXN1
bHRzLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0Fz
VGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwog
ICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszOCw1IEBACiAgICAg
PGRpdiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsIj4KICAgICAgICAg
PGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAw
cHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4K
ICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1l
ZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5k
ZXggYjdjMzA5N2M2YjE3NjE2ZTJmNWQ3NGU5OGI3ZTk4NTk3MWE0NWEzMS4uNWNjOTYxNWQxZTMw
ZDg3NjA5ZGE0OWIzNzMzZGIwNWU5ZTQ2MTE3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5z
Zm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDEx
MTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zv
cm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBnZXQgdHJhbnNmb3Jt
ZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBsZXRlbHkg
Z3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3RseS4KIAog
Ci0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQotKQotCisocmVwYWludCBy
ZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1
dGUtY2hpbGQuaHRtbAppbmRleCAxN2VkMzViMWExNTg1MTA5Mjc2ZjlkYmVmMDY4NDYzNjNlNDYw
MTZmLi5mYTljYjBkZTNmNDBlZmRkZTIxODgzNGFjMjFiNWJkMjcxZWQxNDlkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNv
bHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjggQEAKIDwh
ZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJh
c2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVw
YWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2lu
Z1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0
YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgLy8gcmVxdWVzdEFu
aW1hdGlvbkZyYW1lIHByb2R1Y2VzIGZsYWNreSByZXN1bHRzLgorICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwg
PSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAg
IGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAg
ICA8c3R5bGU+CkBAIC0yMSw0ICszOCw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFu
c2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQi
IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBw
eDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAg
IDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5z
Zm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCA4ZGJlZDQ0OWJiOWVhZWNjZmQ2
NjM4Yjc1NzZiYWRiOGJiMDQzYzQ1Li5jNWEzMTI4ZWE5MTljYzNhMWNkOGMyZjNmNTk5NDlkZTM4
YWMyOGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0
ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24gZ2FwcyBkb24ndCBy
ZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMgdGhhdCBmaXhlZCBl
bGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiBU
aGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBp
bnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAg
MTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3Jt
ZWQtZml4ZWQtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
Z2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKaW5kZXggNzQ1YzU1ZWM3YTljN2Q5OWU1
OGM0NWUyYmU2YjRiMjBiODAxNThhMy4uOTkzYWE1ZmNhZjQ2OGFmYjBiZDc1Y2ZmMDJjY2RlNWMz
MDdmMmIwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5odG1sCkBAIC0xLDEx
ICsxLDI4IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAg
IGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAg
ICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxz
LnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJh
c2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAg
IC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSBwcm9kdWNlcyBmbGFja3kgcmVzdWx0cy4KKyAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRz
JykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAg
ICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAg
PC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzgsNSBAQAogICAgIDxkaXYgc3R5bGU9
Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRp
diBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7
IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBmaXhlZDsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWlu
dmFsaWRhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggODYxMjMyNmRmOGZhMTQ4MDE3YmMzYTRlNWY5
NjU4NjUwYzJmOWRiZi4uYjE5OTJhOTEwZGVkZDFjMGRkOWE1ZTI0NDRmYzg2ZTlmNDY3YjY1OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZh
bGlkYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDUgQEAgQQog
QQogKHJlcGFpbnQgcmVjdHMKICAgKHJlY3QgOCA2OCAyMCAxMDApCi0gIChyZWN0IDggNjggMjAg
MTAwKQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAppbmRleCA5NTkxNWU2NjAwZjEyNTVjYmY2ZjIzOWY5ODY0
OWQ3OThhMzc2MDQxLi40ZTdjMDkyNDM0NjdjZDc5MTUzNGU1ZmIxMmEwZTE4NTM1N2Y1NzQ4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1y
bC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM4IDE4IDc5KQotKQot
CisocmVwYWludCByZWN0cyAocmVjdCA3NzQgMzggMTggNzkpICkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKaW5kZXggMDI3ODQ0MGExZmI3MjQ0
NDJkOTY0MjkyOGVhMmViMzIzOTNjY2EyMS4uYjU5N2JhM2NjY2M4YzQ1YWEzYmRiMzMwNzI4ZmUw
MzVkZGM5NDAyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1y
dWJ5LXJsLmh0bWwKQEAgLTMsNyArMywxNSBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24g
cmVwYWludFRlc3QoKSB7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoZmFsc2UpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgaWYgKGV2
ZW50U2VuZGVyKSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgNDApOwog
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKQEAgLTExLDYgKzE5LDE3IEBAIGZ1bmN0
aW9uIHJlcGFpbnRUZXN0KCkgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAs
IDEyMCk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICB9CisKKyAgICAvLyBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMuCisgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdp
bmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICBpbnRlcm5h
bHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
IH0sIDApOwogfQogPC9zY3JpcHQ+CiAKQEAgLTI2LDQgKzQ1LDUgQEAgVGVzdGluZyBib3RoIGhp
dCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhp
dCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhp
dCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVzdGluZyBib3RoIGhp
dCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgorPGRpdiBpZD0icmVwYWlu
dHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dAppbmRleCBiZDlmNTg5ZjljY2Q5YzY3NDgyNTEzYTc0NjZmY2ZiYmZmN2QxOTY4Li5lMmQzZTU5
N2ZkZDJiMWZiNjQ0YTVlMzliYWIzNWNjYTRlNmNiMGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ct
aGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJh
Y2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTkgMTgpCi0pCi0KKyhy
ZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk5IDE4KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwK
aW5kZXggYmNjOWUzNGQxNzc4MGUwMTYwMGU1NTgzYmNhYWIxYjAyM2ExNjI2MC4uOGE0M2Y5YmFh
MmU0NzQyNDNhMzY5NmU3YzI1NjMxYzIzOTA2MmNiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRt
bApAQCAtMSw1ICsxLDQgQEAKIDwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+
CiA8c3R5bGU+CiAjdGVzdCB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwpAQCAtMTIsMTEg
KzExLDMwIEBACiB9CiA8L3N0eWxlPgogPHNjcmlwdD4KLSAgICBmdW5jdGlvbiByZXBhaW50VGVz
dCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKSB7CisgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50
cygpOworCiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGVzdCwgMCwg
dGVzdCwgMSk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50
UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVw
YWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
LCAwKTsKICAgICB9OwogPC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0icnVuUmVwYWludFRlc3Qo
KSI+CiAgICAgPHAgaWQ9InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQ8L3A+Cisg
ICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3MtbXVsdGlwbGUtZWxl
bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbmNvcnJlY3QtZGVzZWxlY3Rpb24t
YWNyb3NzLW11bHRpcGxlLWVsZW1lbnRzLmh0bWwKaW5kZXggZTA4YjFiNzExNjQxNjdlMWE5ZGVk
NDJkZTIxZTYyNTgzMjBjMmEyYy4uZWZlOTY0ZWI1N2YxYzMwNTVjNTJlY2E5YjVjYTc2OWY2NDdh
MjgyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVj
dGlvbi1hY3Jvc3MtbXVsdGlwbGUtZWxlbWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9zcy1tdWx0aXBsZS1lbGVtZW50cy5odG1s
CkBAIC0yMCwxMSArMjAsMTMgQEAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCiAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwogICB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oc2Vjb25kKTsKLSAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKLSAgICByZXN1bHQuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLnJlcGFp
bnRSZWN0c0FzVGV4dCgpLmluZGV4T2YoIjc4NCA3MCIpID09IC0xID8gIkZBSUwiIDogIlBBU1Mi
OwotICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOwotICB9Ci0gIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgcmVzdWx0
LmlubmVyVGV4dCA9IGludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKS5pbmRleE9mKCI3ODQg
NzAiKSA9PSAtMSA/ICJGQUlMIiA6ICJQQVNTIjsKKyAgICAgIGludGVybmFscy5zdG9wVHJhY2tp
bmdSZXBhaW50cygpOworICAgIH0KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgfSwgMCk7CiB9LCAwKTsKIDwvc2NyaXB0PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggOGNkYzQ0ZWE3ZjU5M2FkYjI2MmQ1ZGZhYmQ0YWZmMDI1YjQwMWQxZi4u
OWNjMWI2YzYwZjNmMTcxOGQ2MmUyNWYzMzM0NWRmZTgxNjliNTM4YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MzUsOCArMTUzNSw2IEBAIHdlYmtp
dC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwg
WyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNlbmRlciBj
YXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcvYi80MjE5NCBmYXN0L3Njcm9sbGlu
Zy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQu
b3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIFsgRmFpbHVy
ZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90IHJlbmRlcmVkIHByb3Blcmx5Lgog
d2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhlaWdodC1kZXRlcm1pbmVkLWJ5LXBy
aW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQwMjUyIGZhc3QvdGV4
dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5
LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NTgwOThlNjNhODAy
MjVlNzBhZjQ4YTY1MzgwMjI5MTJhZDkxODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5n
IG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Yg
c2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxl
Y3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rp
b24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4K
K1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5n
IGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KKyhyZXBhaW50IHJl
Y3RzIChyZWN0IDc3NSAzNyAxNyA4NCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVj
dGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGEwYWU0NTYwZGZhM2Q2NjEy
NWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQyMmE2NDJhZWExZGFhNzRlOWQ4ZTgw
MWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFp
bnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93
LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBi
YWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE3KQotKQotCiso
cmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQyN2E5MjgyNWMwY2YzYmUwYTM5ZGY4
NjhhNjNkZTlkMmI5ZjAxYWYuLmU2ZTkzYWEwZWRkYjQ1MGU4YTIxYjkwOGYzOTQwODg5OTBlNjIw
MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTE4NDMsMyArMTg0Myw2IEBAIHdlYmtpdC5vcmcvYi8yNDAwODEgWyBEZWJ1ZyBdICB3ZWJh
dWRpby9BdWRpb0J1ZmZlci9odWdlLWJ1ZmZlci5odG1sIFsgUGFzcyBTbG93CiAKICMgcmRhcjov
LzgyMzk5OTkwIChbIENhdGFsaW5hIEVXUyBdIHdlYmdsLzIuMC4wLyogdGVzdHMgYXJlIGZsYWt5
IGNyYXNoaW5nIEFTU0VSVElPTiBGQUlMRUQ6ICFuZWVkc0xheW91dCgpICgyMjk1ODApKSBEaXNh
YmxlIHdlYmdsIHRlc3RzIGZvciBtYWMtd2sxCiB3ZWJnbCBbIFNraXAgXQorCit3ZWJraXQub3Jn
L2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjMyNjMwIGZhc3QvZm9ybXMvYXV0b2ZvY3Vz
LW9wZXJhLTAwMy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5
bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5j
cm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjgzNzljYzE4
ZTIwYjUyMjkyMmNjZTYyYWM5Y2YyNjQxY2Q0ZjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNl
bGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE3IEBACisKKyAxCisgMgorVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgZm9jdXMgb24gYSByZW5k
ZXIgb2JqZWN0IHdoZW4gaXQgZG9lc24ndCByZXN1bHQgaW4gYSBzZWxlY3Rpb24gY2hhbmdlIHdv
bid0IGxlYXZlIGlzU3luY2hyb25pemluZ1NlbGVjdGlvbiBzZXQgdG8gdHJ1ZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQor
UEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5pc0VxdWFsKGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiMSIpKSBpcyB0cnVlCitQ
QVNTIGF4VGV4dFN0YXRlU3luY09uZSBpcyB1bmRlZmluZWQKK1BBU1MgYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikuaXNGb2N1c2FibGUgaXMgdHJ1ZQor
UEFTUyBheFRleHRTdGF0ZVN5bmNUd28gaXMgdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YmYwMTBmYWM0NjI3ZTMxNDUxZjE0MWEzODUxYjQ2MjY2ZDdkMjlkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFp
bnQvNDc3Njc2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCisKKworKHJlcGFpbnQg
cmVjdHMKKyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJlY3QgOCAyNiAxIDE4KQorICAocmVjdCAx
IDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAo
cmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4
IDcpCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC10YXJn
ZXQtbWFyZ2luLTAwNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3Jv
bGwtdGFyZ2V0LW1hcmdpbi0wMDUtZXhwZWN0ZWQudHh0CmluZGV4IDQ4MDAyODA5NmEyNTlkMmQ1
MTc4NjJiOThmNDRmNTc2NmE0YzQ5YzkuLjZiNDk1ZDNjMjM3OGU0ZmYwZDIyNTllNjgyNzc1N2Ex
YjU4NWJiNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC10YXJn
ZXQtbWFyZ2luLTAwNS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAv
c2Nyb2xsLXRhcmdldC1tYXJnaW4tMDA1LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAog
Ci1GQUlMIHNjcm9sbC1tYXJnaW4gb24gaW5wdXQgd2lkZ2V0IGFzc2VydF9iZXR3ZWVuX2V4Y2x1
c2l2ZTogU2hvdWxkIGhvbm9yIGRhdGUgaW5wdXQgc2Nyb2xsLW1hcmdpbiBleHBlY3RlZCBhIG51
bWJlciBncmVhdGVyIHRoYW4gNDc1MCBhbmQgbGVzcyB0aGFuIDQ4NTAgYnV0IGdvdCA0NzIwCitG
QUlMIHNjcm9sbC1tYXJnaW4gb24gaW5wdXQgd2lkZ2V0IGFzc2VydF9iZXR3ZWVuX2V4Y2x1c2l2
ZTogU2hvdWxkIGhvbm9yIGRhdGUgaW5wdXQgc2Nyb2xsLW1hcmdpbiBleHBlY3RlZCBhIG51bWJl
ciBncmVhdGVyIHRoYW4gNDc1MCBhbmQgbGVzcyB0aGFuIDQ4NTAgYnV0IGdvdCA5NDM5CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNThhNTRkNmQ0MDQw
ZjVkZDhhN2IzMjFhODRmMmMxODI1MjQxN2U3OC4uNjRiNTZkYzUxNGQ3NWY2NGU2MzJjY2VkMjll
NTNkZDVhMGUxNTExMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTIzMDMsMyArMjMwMyw0IEBAIHdlYmtpdC5vcmcvYi8yMzk5OTAgY3NzMy9jYWxjL3Ry
YW5zaXRpb25zLWRlcGVuZGVudC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9i
LzI0MDA3NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tdXBkYXRldmlhY2FjaGUuaHR0cHMuaHRtbCBbIFBh
c3MgRmFpbHVyZSBdCiAKK3dlYmtpdC5vcmcvYi8yMzEyOTggYWNjZXNzaWJpbGl0eS9tYWMvc2Vs
ZWN0aW9uLXN5bmMuaHRtbCBbIFNraXAgXSAjIFRpbWVvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ5Y2E3ZGMxOGU5ZThkNmMwMjU3NjI1Mzg4MTlkM2NjZGY0ZGRhMTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3
NjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworCisKKyhyZXBhaW50IHJlY3RzCisg
IChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3
OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcpCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGUwMmMwOTJiYTUzM2I2ZTZkMDZl
MjIwODY4M2M0MWUzNGI4OTI4MjQuLjUwMjM1MWFiNzAzNGU4NWRiZTA0NGE2MWU1NjY5MWE0YTUy
NjQzMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLWV4cGVj
dGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3Qg
cmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgZml4ZWQg
ZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBl
dGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5
Lg0KIA0KIA0KLShyZXBhaW50IHJlY3RzDQotICAocmVjdCAwIDAgMTAwIDEwMCkNCi0pDQogDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAppbmRleCA1YTkzNGY0NzM3ZmU1
ZjlmZjE2NTRlYTdhMmIxMzJmZjdlYjJiNWM3Li5mYzU1OTU5N2VlYTBlOTIwZDE5NWFkMjc1OGEw
OTI3ZjFiMjYyNTExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApA
QCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCi0o
cmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzkgMTggODMpCi0pCi0KKyhyZXBhaW50IHJlY3Rz
IChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlv
bi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IDBhNzcxZDQ2OWExZGIwZDRjN2M2
N2Y1NTA1YTVlZTI3ZWI5ZjAzNWUuLjQxOTA0MDM4ODM1NjUxNzQ4NjZmMzA4MzFlMWJkMGE1ZmUx
MGQ2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQv
dGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhp
ZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2ZSBncmVlbiBiYWNr
Z3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE4KQotKQotCisocmVw
YWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxOCkgKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459235</attachid>
            <date>2022-05-12 10:00:19 -0700</date>
            <delta_ts>2022-05-16 14:21:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20220512100018.patch</filename>
            <type>text/plain</type>
            <size>48038</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYxYWY5MDhlY2Y4YjYz
OTljOWNmZmY5NjY2MjQ5N2Q3NDgzODgwNS4uM2NhODhhMzVlYmQxZWY0OGM1ZWRhMGI3MzIzOWNj
MzQyZTI0MzRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTA1LTExICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbGVhc2Ug
YXNzZXJ0IGluIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKSB2aWEgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQ0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBjb21tYW5kcyBpbiBhIHRleHQgYXJlYSBt
aWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0aGluZ3MKKyAgICAgICAgbGlrZSBjYXJl
dCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRpb24gYW5kIGV4dGVudC4gVW5kZXIgc29t
ZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdoZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8g
Y29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVuZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxh
eW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZlIGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBk
YXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4g
c3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBkYXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNo
cm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2YgaGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dl
cmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8gaXQgaW5zaWRlCisgICAgICAgIGEgcmVz
dHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAgVGhlIEFwcCBIaWdobGlnaHQgcmVzdG9y
YXRpb24gY29kZSBoYWQgdG8gYmUgdHVuZWQgYXMgd2VsbCAod2hlbiByZXN0b3JpbmcgYW5kIHNj
cm9sbGluZyB0byByZXZlYWwKKyAgICAgICAgYSBRdWljayBOb3RlIG9uIGlPUyBNYWNPUykuIEl0
IHVzZXMgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHRvIHNlbGVjdCBhbmQgc2Nyb2xsIHRvIHJl
dmVhbCB0aGUgaGlnaGxpZ2h0CisgICAgICAgIHJhbmdlOyB0aGUgY29kZSBhc3N1bWVkIHRoYXQg
dGhpcyBzY3JvbGxpbmcgaGFwcGVucyBzeW5jaHJvbm91c2x5LCBzaW5jZSBpdCByZXZlcnRzIHRo
ZSBzZWxlY3Rpb24gdG8KKyAgICAgICAgdGhlIG9yaWdpbmFsIHJhbmdlIGF0IHRoZSBlbmQgb2Yg
YEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGxg
IHdoZW4gdGhlCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBmYWxscyBvdXQgb2Yg
c2NvcGUuIFRoYXQgaXMgaG93ZXZlciBubyBsb25nZXIgdGhlIGNhc2UuIEFjdHVhbGx5IG5vIHNj
cm9sbGluZworICAgICAgICBoYXBwZW5lZCBhZnRlciB0aGlzIHBhdGNoIGJlY2F1c2Ugd2UgZW5k
IHVwIG9ubHkgc2NoZWR1bGluZyB0aGUgYXBwZWFyYW5jZSB1cGRhdGUgdGltZXIgYmVmb3JlIHNl
dHRpbmcKKyAgICAgICAgdGhlIHNlbGVjdGlvbiBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZSB3
aXRoIGBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbGAuIFNpbmNlIHRoaXMgb25seSBo
YXBwZW5zCisgICAgICAgIHdoZW4gdGhlIHVzZXIgaW50ZXJhY3RzIGluIHRoZSBOb3RlcyBhcHAs
IGl0IHNlZW1zIHNlbnNpYmxlIHRvIGNvbnNpZGVyIGl0IGFzIGEgdXNlciB0cmlnZ2VyZWQgZXZl
bnQuCisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3Rv
cmVIaWdobGlnaHRBbmRTY3JvbGwpOiBDb25zaWRlciB0aGUgc2VsZWN0aW9uIGNoYW5nZQorICAg
ICAgICBhcyB1c2VyIHRyaWdnZXJlZCBzbyBzY3JvbGxpbmcgYWN0dWFsbHkgaGFwcGVucy4KKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZW1wb3JhcnlT
ZWxlY3Rpb25DaGFuZ2U6OnNldFNlbGVjdGlvbik6IENoZWNrIHRoZSBVc2VyVHJpZ2dlcmVkIGZs
YWdzIGZvciBkZWZhdWx0IG9wdGlvbnMuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDogQWRk
ZWQgYSBuZXcgVXNlclRyaWdnZXJlZCBmbGFnLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgor
ICAgICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZS4KKyAgICAgICAgSXQgZG9lcyBu
b3QgbmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdhcyBhbHdheXMgY2Fs
bGVkIHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjph
YnNvbHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xh
eW91dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCku
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRz
IGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFs
U2VsZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAg
IChXZWJDb3JlOjp1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZSk6IERlbGV0
ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldFNlbGVjdGlvbklmTmVlZGVk
KTogU2V0IHRoZSBVc2VyVHJpZ2dlcmVkIGZsYWcgZm9yIGNhbGxpbmcgc2V0U2VsZWN0aW9uKCku
CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRvQWZ0
ZXJVcGRhdGVSZW5kZXJpbmcpOiBDYWxsIHVwZGF0ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpLgor
CiAyMDIyLTA1LTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJbnRyb2R1Y2UgYSBjYW52YXMtZHJhd0ltYWdlIHNwZWNpZmljIG1ldGhvZCB0byBnZXQgYSBO
YXRpdmVJbWFnZSBmcm9tIGEgdmlkZW8gZWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcAppbmRleCAyNGY2
NTUyYjNmMTQ2MWUwMGUwNDI2ODQ2MzU1OGE1Njg5NjZkNjg4Li45NTRiMmUxYjBiN2ZhZmM4Yzg1
ZWY1MjJhY2UxMzJiMDViYjAwNDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcApAQCAtMjcxLDcgKzI3MSw3
IEBAIGJvb2wgQXBwSGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFu
ZFNjcm9sbChBcHBIaWdobGlnaHRSYW5nZURhCiAgICAgICAgIGlmICh0ZXh0SW5kaWNhdG9yKQog
ICAgICAgICAgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXRUZXh0
SW5kaWNhdG9yKHRleHRJbmRpY2F0b3ItPmRhdGEoKSk7CiAKLSAgICAgICAgVGVtcG9yYXJ5U2Vs
ZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ryb25nRG9jdW1lbnQsIHsgcmFuZ2UudmFs
dWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6RGVsZWdhdGVNYWluRnJhbWVTY3Jv
bGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Nyb2xsLCBUZW1wb3JhcnlTZWxl
Y3Rpb25PcHRpb246OlJldmVhbFNlbGVjdGlvbkJvdW5kcyB9KTsKKyAgICAgICAgVGVtcG9yYXJ5
U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ryb25nRG9jdW1lbnQsIHsgKnJhbmdl
IH0sIHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCwg
VGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTbW9vdGhTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlv
bk9wdGlvbjo6UmV2ZWFsU2VsZWN0aW9uQm91bmRzLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246
OlVzZXJUcmlnZ2VyZWQgfSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggZDE5ODAxYWJjNjEwZjkxZjdmZTFjNjE1NzVlZTQ3NmJmZDA0
NGUwNS4uMjJiZjU3ODQxMDgzZjJjZDlkMzMzMWIzZTVhOTI3ZWViMTliOTc4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjYyLDcgKzI2Miw3IEBAIFRlbXBvcmFyeVNlbGVjdGlv
bkNoYW5nZTo6flRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSgpCiAKIHZvaWQgVGVtcG9yYXJ5U2Vs
ZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBJc1RlbXBvcmFyeVNlbGVjdGlvbiBpc1RlbXBvcmFyeVNlbGVjdGlvbikKIHsKLSAgICBh
dXRvIG9wdGlvbnMgPSBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KTsKKyAgICBhdXRvIG9wdGlvbnMgPSBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMobV9vcHRpb25zLmNvbnRhaW5zKFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6VXNl
clRyaWdnZXJlZCkgPyBVc2VyVHJpZ2dlcmVkIDogTm90VXNlclRyaWdnZXJlZCk7CiAgICAgaWYg
KG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6RG9Ob3RTZXRGb2N1cykKICAg
ICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OkRvTm90U2V0Rm9jdXMpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAppbmRleCBlNDUxYzljY2VhN2RhOWQyMDFlNzMxNjBlZTdhNTcwOTY5
ZDYzOTY1Li45OWMwMmE1ZThiMmY0Y2RhMWM4ZWQ2MjJmODYxZDYxNDAyM2I4NmQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKQEAgLTEyNiw2ICsxMjYsOCBAQCBlbnVtIGNsYXNzIFRlbXBvcmFy
eVNlbGVjdGlvbk9wdGlvbiA6IHVpbnQ4X3QgewogICAgIERlbGVnYXRlTWFpbkZyYW1lU2Nyb2xs
ID0gMSA8PCA1LAogICAgIAogICAgIFJldmVhbFNlbGVjdGlvbkJvdW5kcyA9IDEgPDwgNiwKKwor
ICAgIFVzZXJUcmlnZ2VyZWQgPSAxIDw8IDcsCiB9OwogCiBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rp
b25DaGFuZ2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRl
eCAxY2ZiMjRjYzVjZDg1MzE1MzEzNTI1ZjNlOTY1NmJmYWEwODgxZjVmLi4yYzI3NzNjZTMxOTVh
ZmI2Mzc3OTE5YmUyOTJjZjlhNmU0MzZjYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcApAQCAtNDU0LDYgKzQ1NCwxMSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25T
ZXQ8UwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNM
YXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICghKG9wdGlvbnMgJiBJ
c1VzZXJUcmlnZ2VyZWQpKSB7CisgICAgICAgIHNjaGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVy
U3R5bGVDaGFuZ2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbihpbnRlbnQsIG9wdGlvbnMuY29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNj
cm9sbEJlaGF2aW9yOjpTbW9vdGggOiBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgb3B0aW9ucy5j
b250YWlucyhSZXZlYWxTZWxlY3Rpb25Cb3VuZHMpID8gUmV2ZWFsRXh0ZW50T3B0aW9uOjpEb05v
dFJldmVhbEV4dGVudCA6IFJldmVhbEV4dGVudE9wdGlvbjo6UmV2ZWFsRXh0ZW50KTsKIAogICAg
IGlmIChvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVkKSB7CkBAIC00NjIsMTMgKzQ2NywxOSBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRG9jdW1lbnQmIGRvY3VtZW50KQordm9pZCBG
cmFtZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpCiB7CisgICAgaWYg
KCFtX2RvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBSZWYgZG9jdW1lbnQgPSAqbV9k
b2N1bWVudDsKICNpZiBFTkFCTEUoVEVYVF9DQVJFVCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAjZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0
eWxlSWZOZWVkZWQoKTsKKyAgICBkb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2Vu
ZGlmCisgICAgaWYgKG1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBw
ZWFyYW5jZSgpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVw
ZGF0ZShSZXZlYWxTZWxlY3Rpb25BZnRlclVwZGF0ZSByZXZlYWxNb2RlKQpAQCAtMTcwMCw3ICsx
NzExLDcgQEAgSW50UmVjdCBGcmFtZVNlbGVjdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29s
KiBpbnNpZGVGaXhlZCkKIHsKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJ
bnRSZWN0KCk7Ci0gICAgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1f
ZG9jdW1lbnQpOworICAgIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNv
bXB1dGVDYXJldFJlY3QoKTsKICAgICBpZiAoaW5zaWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVG
aXhlZCA9IG1fY2FyZXRJbnNpZGVQb3NpdGlvbkZpeGVkOwpAQCAtMjI1OCw3ICsyMjY5LDcgQEAg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRWaXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2
aXNpYmlsaXR5LCBTaG91bGRVcGRhdGUKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJp
Z2dlciBhIHN5bmNocm9ub3VzIGxheW91dCBoZXJlLgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRh
dGUgPT0gU2hvdWxkVXBkYXRlQXBwZWFyYW5jZTo6WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAg
IHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAg
ICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRf
Q0FSRVQpCiAgICAgaWYgKG1fY2FyZXRQYWludCkgewpAQCAtMjM2Niw3ICsyMzc3LDcgQEAgRmxv
YXRSZWN0IEZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25Cb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRl
bnQgY2xpcFRvVmlzaWJsZUNvbnQKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVy
biBMYXlvdXRSZWN0KCk7CiAKLSAgICB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JT
dHlsZSgqbV9kb2N1bWVudCk7CisgICAgY29uc3RfY2FzdDxGcmFtZVNlbGVjdGlvbiY+KCp0aGlz
KS51cGRhdGVTZWxlY3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9
IG1fZG9jdW1lbnQtPnJlbmRlclZpZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAg
IHJldHVybiBMYXlvdXRSZWN0KCk7CkBAIC0yNDYyLDYgKzI0NzMsOCBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBj
b25zdCBTY3JvbAogICAgIGlmIChpc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBk
YXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAg
IGJvb2wgaW5zaWRlRml4ZWQgPSBmYWxzZTsKICAgICBpZiAoaXNDYXJldCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IGEzZDc0MzRjYTVkOTRlMzJjYWRiZWQ4
N2U3NzFlZjEyY2FiODhjYjEuLjI4NzQwYmYzN2NjMWI5OTUyNDU2NjgzNDUzMDA2YTlkZjAxMGQ0
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2Nyw2ICsy
NjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVGcm9tQXNzb2NpYXRlZExpdmVSYW5nZSgp
OwogCiBwcml2YXRlOgorICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5jZU5vdygpOwog
ICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgUmV2ZWFs
RXh0ZW50T3B0aW9uID0gUmV2ZWFsRXh0ZW50T3B0aW9uOjpSZXZlYWxFeHRlbnQpOwogICAgIHZv
aWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKaW5kZXggMGM2NjQxMGQ1YzRmYmJiOWMzNjI3NDMyNjI5NzlmNjc3ODA5
ZDljOC4uYWM3MjVkNDY3NThmOWMzMjVhOWY4NDA3NWFiYTQzYzAxNjZiYjM3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgRXZlbnRI
YW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChOb2RlJiBub2RlVG9CZVJlbW92ZWQpCiBzdGF0aWMg
dm9pZCBzZXRTZWxlY3Rpb25JZk5lZWRlZChGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24pCiB7CiAgICAgaWYgKHNlbGVjdGlvbi5z
ZWxlY3Rpb24oKSAhPSBuZXdTZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnNob3VsZENoYW5nZVNlbGVj
dGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbik7CisgICAgICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkp
OwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZGlzcGF0Y2hTZWxlY3RTdGFydChOb2RlKiBub2Rl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggN2Q0MjQ4MDJkNjllNTI5ODRhMGQ3YzlkMjZlMWFiYzlj
NDRlYTgyNC4uNjc0MmJiMDk3NDlmMjE3MDYyNmU0MDRmZmVmMmU2MTM2MDQ2YjJjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0xNzM0LDYgKzE3MzQsMTAgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBk
YXRlUmVuZGVyaW5nKCkKICAgICAgICAgZG9jdW1lbnQuZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJ
Zk5lZWRlZCgpOwogICAgIH0pOwogCisgICAgZm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYg
ZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uKCkudXBkYXRlQXBwZWFyYW5j
ZUFmdGVyTGF5b3V0KCk7CisgICAgfSk7CisKICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3Vt
ZW50JiBkb2N1bWVudCkgewogICAgICAgICBkb2N1bWVudC51cGRhdGVIaWdobGlnaHRQb3NpdGlv
bnMoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YzdjNmI1YzJlNjMyMjdlNmU4OGNmY2IxNDNlN2RiZDcw
NTUzZWI0Li4xNDI4NGZmYzA0ZWUzNjM4NDUwYjFjMzIyMjkyM2IxNDU0YmY3ZDAxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMjItMDUtMTEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFy
QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVsZWFzZSBhc3NlcnQgaW4gRG9jdW1lbnQ6OnVwZGF0
ZUxheW91dCgpIHZpYSBIVE1MVGV4dEFyZWFFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ3MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBNb3ZlZCBzb21lIHRlc3Rz
IG91dCBvZiB0aGUgdGV4dC1iYXNlZC1yZXBhaW50LmpzIG1vZGVsIGJlY2F1c2Ugc2VsZWN0aW9u
IGlzIG5vdyB1cGRhdGVkCisgICAgICAgIGFuZCByZXZlYWxlZCBhc3luY2hyb25vdXNseSBpbiB0
aGUgY2FzZSBvZiBub24tdXNlciB0cmlnZ2VyZWQgY2hhbmdlcy4gVGhlIHByb2JsZW0gaXMgdGhh
dAorICAgICAgICBieSB0aGUgdGltZSB0aGUgcmVwYWludCByZWN0cyBhcmUgcXVlcmllZCB0aGUg
dXBkYXRlIGhhcyBub3QgaGFwcGVuZWQgeWV0LiBUaGF0J3Mgd2h5CisgICAgICAgIHRoZSB0ZXN0
cyB3ZXJlIG1vZGlmaWVkIHNvIHRoYXQgd2Ugd2FpdCB1bnRpbCB0aGUgcmVwYWludCBoYXBwZW5z
LgorCisgICAgICAgIFNhbWUgc2l0dWF0aW9uIGZvciBvdGhlciB0ZXN0cyB0aGF0IGRvIG5vdCBp
bnZvbHZlIHJlcGFpbnQgcmVjdHMgYnV0IHRyaWdnZXIgYWNjZXNpYmlsaXR5CisgICAgICAgIHRy
ZWUgdXBkYXRlcy4gV2UgbXVzdCBlbnN1cmUgdGhhdCB3ZSBsZXQgdGhlIG5vdGlmaWNhdGlvbiBi
ZSB0aHJvd24gYmVmb3JlIGNoZWNraW5nIHdoZXRoZXIgb3IKKyAgICAgICAgbm90IGhhcyBiZWVu
IGVtaXRlZC4gQXMgaXQncyBkb25lIGFzeW5jaHJvbm91c2x5IHdlIG11c3QgbGV0IHRoZSBtYWlu
IHRocmVhZCBydW4gYmVmb3JlIGNoZWNraW5nLgorCisgICAgICAgIExhc3QgYnV0IG5vdCBsZWFz
dCwgc29tZSBvZiB0aGUgdGVzdHMgYXJlIHVzaW5nIHNldFRpbWVvdXQoKSBpbnN0ZWFkIG9mIHJl
cXVlc3RBbmltYXRpb25GcmFtZSgpCisgICAgICAgIGJlY2F1c2UgdGhlIHJlc3VsdHMgd2l0aCB0
aGUgbGF0dGVyIHdlcmUgbm90IGFzIHJlbGlhYmxlIHVuZGVyIHN0cmVzcy9kZWJ1ZyBjb25kaXRp
b25zLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVz
ZXJpbmZvLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12
YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHktY29udGVudC5odG1sOgorICAg
ICAgICAqIGZhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sOgor
ICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1j
aGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQt
YWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Jl
cGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJz
b2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10
cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwuaHRtbDoKKyAgICAgICAg
KiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVu
Lmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3Mt
bXVsdGlwbGUtZWxlbWVudHMuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1y
dWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rp
b24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1m
aXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQu
dHh0OgorCiAyMDIyLTA1LTExICBLYXJsIFJhY2tsZXIgIDxyYWNrbGVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR2FyZGVuaW5nXVsgbWFjT1MgRGVidWcgd2syIF0gZmFzdC9jc3MvdmFyaWFibGVz
L3Rlc3Qtc3VpdGUvMTY4Lmh0bWwgaXMgYSBmbGFreSBpbWFnZSBmYWlsdXJlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmlu
Zm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFy
eS11c2VyaW5mby5odG1sCmluZGV4IDhiZDkxOTU0YjJkOGZkYzkxNDIwMDgyOWQxOGUxZGIzN2Nh
ZWYzYmEuLmQ4OGY1Mzg1YzZjZjk1MTk2YTgwOTRlNmNmMzI1NmI0OTI4ODg3NzEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2Vy
aW5mby5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1i
b3VuZGFyeS11c2VyaW5mby5odG1sCkBAIC0xNjIsMjAgKzE2MiwzMSBAQAogICAgICAgICB2YXIg
YWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlm
aWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwg
InRydWUiKTsKIAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
eHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwotCi0gICAgICAgIG1vdmUodHJ1ZSk7
Ci0KLSAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIpOwot
ICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisgICAgICAgIGZ1bmN0aW9uIHdhaXRGb3JBbmltYXRp
b25GcmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVz
b2x2ZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQogCi0gICAgICAgIG1vdmUoZmFsc2Up
OworICAgICAgICBmdW5jdGlvbiBmb2N1c0VsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAg
ICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAg
ICAgIGVsZW1lbnQuZm9jdXMoKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yQW5pbWF0aW9u
RnJhbWUoKTsKKyAgICAgICAgfQogCi0gICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGV4dGFyZWEiKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOworICAgICAgICBm
dW5jdGlvbiBtb3ZlQXN5bmMoaXNWZXJ0aWNhbCkgeworICAgICAgICAgICAgbW92ZShpc1ZlcnRp
Y2FsKTsKKyAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yQW5pbWF0aW9uRnJhbWUoKTsKKyAgICAg
ICAgfQogCi0gICAgICAgIG1vdmUodHJ1ZSk7CisgICAgICAgIChhc3luYyBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICBhd2FpdCBmb2N1c0VsZW1lbnQoInRleHRib3giKTsKKyAgICAgICAgICAg
IGF3YWl0IG1vdmVBc3luYyh0cnVlKTsKKyAgICAgICAgICAgIGF3YWl0IGZvY3VzRWxlbWVudCgi
aW5wdXQiKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVBc3luYyhmYWxzZSk7CisgICAgICAgICAg
ICBhd2FpdCBmb2N1c0VsZW1lbnQoInRleHRhcmVhIik7CisgICAgICAgICAgICBhd2FpdCBtb3Zl
QXN5bmModHJ1ZSk7CisgICAgICAgIH0pKCk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmlu
Zm8uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbAppbmRleCBlMWViZGVjMDI3NDI4Njk5NjVjNWNkZGRjNjEwZjZiYmQ4ZWIy
YWRmLi5iYjNjODZjZmM4YTk3YTBjNmM4N2U3OTBiNTUzZjgwOWY1YTg5N2YyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZv
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sCkBAIC0xOTUsMTkgKzE5NSw4NyBAQAogICAgICAgICBzaG91bGRCZSgi
YWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCiAgICAgICAgIHRleHRib3ggPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwotICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CiAK
ICAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KICAgICAgICAgdmFyIHMgPSB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7
Ci0gICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgewotICAgICAgICAgICAgcy5tb2RpZnkoIm1v
dmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOwotICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAi
YmFja3dhcmQiLCBncmFuW2ldKTsKKworICAgICAgICBmdW5jdGlvbiBmb2N1c1RleHRCb3goKSB7
CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBtb3ZlU2VsZWN0aW9uKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpIHsKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBzLm1vZGlmeSgibW92ZSIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAg
ICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9
KTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKLSAgICAgICAgICAg
IHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5k
IiwgImZvcndhcmQiLCBncmFuW2ldKTsKKworICAgICAgICBmdW5jdGlvbiBleHRlbmRTZWxlY3Rp
b24oZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBn
cmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAg
ICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gcmVzZXRQb3NpdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwor
ICAgICAgICAgICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGF3YWl0IGZvY3VzVGV4dEJveCgpOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlv
bigpOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMF0p
OworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzBdKTsK
KyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzFdKTsKKyAg
ICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblsxXSk7CisgICAg
ICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsyXSk7CisgICAgICAg
ICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMl0pOworICAgICAgICAg
ICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bM10pOworICAgICAgICAgICAg
YXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzNdKTsKKyAgICAgICAgICAgIGF3
YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzRdKTsKKyAgICAgICAgICAgIGF3YWl0
IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jhbls0XSk7CisgICAgICAgICAgICBhd2FpdCBt
b3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls1XSk7CisgICAgICAgICAgICBhd2FpdCBtb3Zl
U2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bNV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNl
bGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bNl0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVj
dGlvbigiYmFja3dhcmQiLCBncmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rp
b24oImZvcndhcmQiLCBncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24o
ImJhY2t3YXJkIiwgZ3Jhbls3XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJm
b3J3YXJkIiwgZ3Jhbls4XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNr
d2FyZCIsIGdyYW5bOF0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAg
ICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMF0pOworICAgICAgICAgICAgYXdh
aXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdy
YW5bMV0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAg
YXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bMl0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQ
b3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bM10pOwor
ICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0
ZW5kU2VsZWN0aW9uKGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigp
OworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bNV0pOworICAgICAgICAg
ICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0
aW9uKGdyYW5bNl0pOworICAgICAgICAgICAgYXdhaXQgcmVzZXRQb3NpdGlvbigpOworICAgICAg
ICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5bN10pOworICAgICAgICAgICAgYXdhaXQg
cmVzZXRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdhaXQgZXh0ZW5kU2VsZWN0aW9uKGdyYW5b
OF0pOworICAgICAgICAgIH0pKCk7CiAgICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1h
cmlhLXRleHRib3guaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlv
bi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbAppbmRleCBlZTllMGE4MDVhNTkx
YTgxYjIxNmE1ZWE1OGU4ZjQ4MDI2YjVhMGRiLi5hZTUwNWEyZDUwOTZlZjhiMDI4ZjY0YWYyMzUw
NjEwMWM5MzE5ODk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
ZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEt
dGV4dGJveC5odG1sCkBAIC00MywxMiArNDMsMTcgQEAgY29udGVudCBpbnNpZGUKICAgICAgICAg
Ly8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KICAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0
U2VsZWN0aW9uKCk7CiAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Ci0gICAgICAg
IGZvciAodmFyIGsgPSAwOyBrIDwgMzsgaysrKSB7CisgICAgICAgIHJlcXVlc3RBbmltYXRpb25G
cmFtZSgoKSA9PiB7CiAgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNo
YXJhY3RlciIpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
Ci0gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKKyAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAg
ICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgICAg
ICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOworICAgICAgICAg
ICAgICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0KIAog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRo
LWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHktY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRt
bAppbmRleCA5YWQ2NGFkOWM1NmI1Y2MxZTZlZWUxN2U0MDA4MWFjNGI0YzI0NjJjLi4wOWM5OGVl
NzZlMDRlMzU1NWUyY2E0MzU1MDNhYWMzMzcyNjQ2YmYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHktY29udGVu
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLXdpdGgtYWJzb2x1dGUt
cG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwKQEAgLTEyLDE1ICsxMiwyNiBAQCBzcGFuIHsK
IDxkaXY+PGEgaWQ9Zm9vYmFyIHN0eWxlPSJjb2xvcjogYmxhY2siIGhyZWY9IiI+c2VsZWN0IHRo
aXMgdGV4dDxzcGFuPjwvc3Bhbj48L2E+IGJ1dCBub3QgdGhpczwvZGl2PgogPHByZSBpZD1yZXN1
bHQ+PC9wcmU+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gIGludGVybmFscy5z
dGFydFRyYWNraW5nUmVwYWludHMoKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGls
ZHJlbihmb29iYXIpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CiAKLWlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7Ci0gIHJlc3VsdC5pbm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWlu
dFJlY3RzQXNUZXh0KCk7Ci0gIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworZnVu
Y3Rpb24gdGltZXJBZnRlclJBRihjYWxsYmFjaykgeworICAgIHJldHVybiByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoKCkgPT4gc2V0VGltZW91dChjYWxsYmFjaywgMCkpOwogfQotPC9zY3JpcHQ+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorCit0aW1lckFmdGVyUkFGKCgpID0+IHsKKyAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBh
aW50cygpOworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihmb29i
YXIpOworICAgIHRpbWVyQWZ0ZXJSQUYoKCkgPT4geworICAgICAgICBpZiAod2luZG93LmludGVy
bmFscykgeworICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9IGludGVybmFscy5yZXBhaW50
UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50
cygpOworICAgICAgICB9CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGlu
ZS1jYXJldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1l
bmRsaW5lLWNhcmV0Lmh0bWwKaW5kZXggNzM0Y2RjYjA2YTM2MzY2M2I1ZDA5MTAwMTRmZDY2NGIy
NWE1NDBlOC4uZTQyZTQzYmEyYjJmNzQ1NDRlMjliNWU2ZGQ3NjEzOThhNGNjNzEzNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1lbmRsaW5lLWNh
cmV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1zY3JvbGxlZC1l
bmRsaW5lLWNhcmV0Lmh0bWwKQEAgLTE1LDEzICsxNSwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB0YS5mb2N1cygpOwogICAgIC8vIGNsaWNrCiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
ewotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg5MCwgMjApOwotICAgICAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAg
ICAgICBpZiAodGEuc2VsZWN0aW9uRW5kID09IDE3KQotICAgICAgICAgICAgcmVzLmlubmVySFRN
TCA9ICJUZXN0IFN1Y2NlZWRlZCI7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlcy5pbm5l
ckhUTUwgPSAiVGVzdCBGYWlsZWQ6IGNhcmV0IGlzIGF0ICIgKyB0YS5zZWxlY3Rpb25FbmQ7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oOTAs
IDIwKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgaWYgKHRhLnNlbGVjdGlvbkVuZCA9
PSAxNykKKyAgICAgICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgU3VjY2VlZGVkIjsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3Qg
RmFpbGVkOiBjYXJldCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5kOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHJlcy5pbm5lckhUTUwgPSAiVGVzdCBjYW4ndCBydW4gd2l0aG91dCBldmVudCBzZW5kZXIgKHBh
cnQgb2YgRHVtcFJlbmRlclRyZWUpLiAiCiAgICAgICAgICAgICArICJUbyB0ZXN0IG1hbnVhbGx5
LCBjbGljayBhdCB0aGUgbWlkZGxlIG9mIHRoZSBsaW5lIG1hcmtlZCA5IGFuZCBjaGVjayB0aGF0
IHRoZSBjYXJldCBhcHBlYXJzIGFmdGVyIHRoZSA5LiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1l
eHBlY3RlZC50eHQKaW5kZXggM2FiYjBmNzA4OWEzZjNiY2JjNmFhZGY2OWY3M2Q3NzdiZjc5ZTMw
YS4uYWNlYTU0ZTA1MGRmNWQyYTc3NWE5ZDk5ZDliMDFmNzA2NmJhNWE4MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFi
c29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2Vs
ZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlz
IHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4g
VGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMg
aW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAgMCAx
MDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hp
bGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRl
LWNoaWxkLmh0bWwKaW5kZXggN2Q0N2QxMjU5MWQ5YmM5ZmExMjE2OTFkMGU3NDBmOWFlZGIzZjQ3
MC4uYTEwYjliNTI4OGFhMzJmMzYzMTU4MGI1Y2I4OWU4YmViNTY5NDdlZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1j
aGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1
blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdl
dFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxp
bmcsIDApOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJl
Y3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFp
bnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwg
MCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM3LDUgQEAK
ICAgICA8ZGl2PgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRl
OyI+PGJyLz48L2Rpdj48YnIvPgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48
L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBl
Y3RlZC50eHQKaW5kZXggZGIzYzM3NDE2NTZiMTc3OGM5MTQwZjcxNTRhZTg3YzU4MDZjNDZiNC4u
OTc5ZWZhMzllNTUwY2MyZTMyNTQ2MzEzMjlhOTEyYjdlZjU4ZjI5NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGls
ZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1
ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJh
bnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBw
ZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBn
cmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAK
LShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0
cyAocmVjdCAwIDAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1s
CmluZGV4IDFiNjFlYmYyZDUwYjNhNGYwZDAyMzg5MTYxNjQ0MTdmZTI4ZTU2YTcuLjQ3YTRlNjBh
MTM2MWIyZWY1ZTdjODNlNmExMWMzZGM3ODY0ZDU1MTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29s
dXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjggQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2Up
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rp
b24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAg
ICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAg
ICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0
U2libGluZywgMCk7CisKKyAgICAgICAgLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHByb2R1Y2Vz
IGZsYWNreSByZXN1bHRzLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJl
cGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tp
bmdSZXBhaW50cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0sIDApOwogICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICsz
OCw1IEBACiAgICAgPGRpdiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJs
Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVk
OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+
PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdh
cC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBl
Y3RlZC50eHQKaW5kZXggYjdjMzA5N2M2YjE3NjE2ZTJmNWQ3NGU5OGI3ZTk4NTk3MWE0NWEzMS4u
NWNjOTYxNWQxZTMwZDg3NjA5ZGE0OWIzNzMzZGIwNWU5ZTQ2MTE3MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUt
Y2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsy
LDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9uIGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkg
d2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3RzIHRoYXQgYWJzb2x1dGUgZWxlbWVudHMgdGhhdCBn
ZXQgdHJhbnNmb3JtZWQgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJl
IGNvbXBsZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNv
cnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQotKQot
CisocmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1hYnNvbHV0ZS1j
aGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAppbmRleCAxN2VkMzViMWExNTg1MTA5Mjc2ZjlkYmVm
MDY4NDYzNjNlNDYwMTZmLi5mYTljYjBkZTNmNDBlZmRkZTIxODgzNGFjMjFiNWJkMjcxZWQxNDlk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFu
c2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAgLTEsMTEg
KzEsMjggQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAg
ZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAg
IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMu
c3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAg
Ly8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHByb2R1Y2VzIGZsYWNreSByZXN1bHRzLgorICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMn
KS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAg
ICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8
L3NjcmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszOCw1IEBACiAgICAgPGRpdiBzdHlsZT0i
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KTsiPgogICAgICAgICA8ZGl2
IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRoOiAxMDBweDsg
aGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGFic29sdXRlOyI+PGJyLz48L2Rpdj48YnIvPgogICAg
IDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZp
eGVkLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rp
b24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCA4ZGJlZDQ0
OWJiOWVhZWNjZmQ2NjM4Yjc1NzZiYWRiOGJiMDQzYzQ1Li5jNWEzMTI4ZWE5MTljYzNhMWNkOGMy
ZjNmNTk5NDlkZTM4YWMyOGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQt
Y2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNCBAQCBCdWcgMTExMDAwOiBTZWxlY3Rpb24g
Z2FwcyBkb24ndCByZXBhaW50IGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMKIFRoaXMgdGVzdHMg
dGhhdCBmaXhlZCBlbGVtZW50cyB0aGF0IGdldCB0cmFuc2Zvcm1lZCBhcmUgaW52YWxpZGF0ZWQg
Y29ycmVjdGx5LiBUaGUgYm94IHdpbGwgYmUgY29tcGV0ZWx5IGdyZWVuIGlmIHRoZSBzZWxlY3Rl
ZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFpbnQgcmVjdHMKLSAg
KHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJlY3QgNTAgNTAgMTAw
IDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1n
YXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKaW5kZXggNzQ1YzU1
ZWM3YTljN2Q5OWU1OGM0NWUyYmU2YjRiMjBiODAxNThhMy4uOTkzYWE1ZmNhZjQ2OGFmYjBiZDc1
Y2ZmMDJjY2RlNWMzMDdmMmIwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC5o
dG1sCkBAIC0xLDExICsxLDI4IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBhaW50LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIHJ1blJlcGFp
bnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAg
ICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIHZhciB0YXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIGdldFNlbGVj
dGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAwLCB0YXJnZXQubmV4dFNpYmxpbmcsIDAp
OworCisgICAgICAgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSBwcm9kdWNlcyBmbGFja3kgcmVz
dWx0cy4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNB
c1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMo
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsK
ICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzgsNSBAQAogICAg
IDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4K
ICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3
aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBmaXhlZDsiPjxici8+PC9kaXY+
PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWlu
dmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0
aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggODYxMjMyNmRmOGZhMTQ4
MDE3YmMzYTRlNWY5NjU4NjUwYzJmOWRiZi4uYjE5OTJhOTEwZGVkZDFjMGRkOWE1ZTI0NDRmYzg2
ZTlmNDY3YjY1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1wYWludC1pbnZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tcGFpbnQtaW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMiw2
ICsyLDUgQEAgQQogQQogKHJlcGFpbnQgcmVjdHMKICAgKHJlY3QgOCA2OCAyMCAxMDApCi0gIChy
ZWN0IDggNjggMjAgMTAwKQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAppbmRleCA5NTkxNWU2NjAwZjEyNTVj
YmY2ZjIzOWY5ODY0OWQ3OThhMzc2MDQxLi40ZTdjMDkyNDM0NjdjZDc5MTUzNGU1ZmIxMmEwZTE4
NTM1N2Y1NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXJ1YnktcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw0IEBAIFRlc3RpbmcgYm90aCBo
aXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0
ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rp
bmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM4
IDE4IDc5KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA3NzQgMzggMTggNzkpICkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKaW5kZXggMDI3
ODQ0MGExZmI3MjQ0NDJkOTY0MjkyOGVhMmViMzIzOTNjY2EyMS4uYjU5N2JhM2NjY2M4YzQ1YWEz
YmRiMzMwNzI4ZmUwMzVkZGM5NDAyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKQEAgLTMsNyArMywxNSBAQAogPGhlYWQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
PgotZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworfQorCitmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpIHsKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOwor
CiAgICAgaWYgKGV2ZW50U2VuZGVyKSB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KDc5MCwgNDApOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKQEAgLTExLDYgKzE5
LDE3IEBAIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewogICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyg3OTAsIDEyMCk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICB9
CisKKyAgICAvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgcHJvZHVjZXMgZmxhY2t5IHJlc3VsdHMu
CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlu
bmVySFRNTCA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAg
ICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgIH0sIDApOwogfQogPC9zY3JpcHQ+CiAKQEAgLTI2LDQgKzQ1LDUgQEAgVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgogVGVz
dGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uPGJyPgorPGRp
diBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVu
LWV4cGVjdGVkLnR4dAppbmRleCBiZDlmNTg5ZjljY2Q5YzY3NDgyNTEzYTc0NjZmY2ZiYmZmN2Qx
OTY4Li5lMmQzZTU5N2ZkZDJiMWZiNjQ0YTVlMzliYWIzNWNjYTRlNmNiMGRiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVu
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rp
b24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBo
YXZlIGdyZWVuIGJhY2tncm91bmQKIAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTkg
MTgpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDggMTYgMTk5IDE4KSApCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ct
aGlkZGVuLmh0bWwKaW5kZXggYmNjOWUzNGQxNzc4MGUwMTYwMGU1NTgzYmNhYWIxYjAyM2ExNjI2
MC4uOGE0M2Y5YmFhMmU0NzQyNDNhMzY5NmU3YzI1NjMxYzIzOTA2MmNiMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxv
dy1oaWRkZW4uaHRtbApAQCAtMSw1ICsxLDQgQEAKIDwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCI+PC9zY3JpcHQ+CiA8c3R5bGU+CiAjdGVzdCB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVk
OwpAQCAtMTIsMTEgKzExLDMwIEBACiB9CiA8L3N0eWxlPgogPHNjcmlwdD4KLSAgICBmdW5jdGlv
biByZXBhaW50VGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKSB7CisgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJh
Y2tpbmdSZXBhaW50cygpOworCiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQodGVzdCwgMCwgdGVzdCwgMSk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVy
bmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3Rv
cFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB9LCAwKTsKICAgICB9OwogPC9zY3JpcHQ+CiAKIDxib2R5IG9ubG9hZD0icnVu
UmVwYWludFRlc3QoKSI+CiAgICAgPHAgaWQ9InRlc3QiPlNob3VsZCBoYXZlIGdyZWVuIGJhY2tn
cm91bmQ8L3A+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3Mt
bXVsdGlwbGUtZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbmNvcnJlY3Qt
ZGVzZWxlY3Rpb24tYWNyb3NzLW11bHRpcGxlLWVsZW1lbnRzLmh0bWwKaW5kZXggZTA4YjFiNzEx
NjQxNjdlMWE5ZGVkNDJkZTIxZTYyNTgzMjBjMmEyYy4uZWZlOTY0ZWI1N2YxYzMwNTVjNTJlY2E5
YjVjYTc2OWY2NDdhMjgyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2luY29y
cmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3MtbXVsdGlwbGUtZWxlbWVudHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9zcy1tdWx0aXBsZS1l
bGVtZW50cy5odG1sCkBAIC0yMCwxMSArMjAsMTMgQEAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBh
aW50cygpOwogICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oc2Vjb25k
KTsKLSAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICByZXN1bHQuaW5uZXJUZXh0ID0gaW50
ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpLmluZGV4T2YoIjc4NCA3MCIpID09IC0xID8gIkZB
SUwiIDogIlBBU1MiOwotICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOwotICB9
Ci0gIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykgewor
ICAgICAgcmVzdWx0LmlubmVyVGV4dCA9IGludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKS5p
bmRleE9mKCI3ODQgNzAiKSA9PSAtMSA/ICJGQUlMIiA6ICJQQVNTIjsKKyAgICAgIGludGVybmFs
cy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgIH0KKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgfSwgMCk7CiB9LCAwKTsKIDwv
c2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGNkYzQ0ZWE3ZjU5M2FkYjI2MmQ1ZGZhYmQ0YWZm
MDI1YjQwMWQxZi4uOWNjMWI2YzYwZjNmMTcxOGQ2MmUyNWYzMzM0NWRmZTgxNjliNTM4YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MzUsOCArMTUz
NSw2IEBAIHdlYmtpdC5vcmcvYi8xNTkxNDMgZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXIt
aW4tcnRsLmh0bWwgWyBGYWlsdXJlIF0KICMgSW5jb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBl
dmVudFNlbmRlciBjYXVzZXMgdGhpcyB0ZXN0IHRvIGZhaWwKIHdlYmtpdC5vcmcvYi80MjE5NCBm
YXN0L3Njcm9sbGluZy9zY3JvbGwtc2VsZWN0LWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQogCi13ZWJraXQub3JnL2IvMTM5MzU0IGZhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5o
dG1sIFsgRmFpbHVyZSBdCi0KICMgTWlzc2luZyBnbHlwaCBzeW1ib2wgaXMgbm90IHJlbmRlcmVk
IHByb3Blcmx5Lgogd2Via2l0Lm9yZy9iLzE0MDI1MiBmYXN0L2Nzcy9saW5lLWhlaWdodC1kZXRl
cm1pbmVkLWJ5LXByaW1hcnktZm9udC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQw
MjUyIGZhc3QvdGV4dC9kZWNvcmF0aW9ucy13aXRoLXRleHQtY29tYmluZS5odG1sIFsgRmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4
NTgwOThlNjNhODAyMjVlNzBhZjQ4YTY1MzgwMjI5MTJhZDkxODEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQg
cGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWlu
dGluZyBvZiBzZWxlY3Rpb24uU29tZSBydWJ5CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5k
IHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFp
bnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGlu
ZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9m
IHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2Vs
ZWN0aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rp
b24uCitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4K
KyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NSAzNyAxNyA4NCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWlu
dC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGEwYWU0
NTYwZGZhM2Q2NjEyNWNmMGQ0MDMwNTJkYjA4MDVlNzM4MTAuLjBmYTVkZGE1ZDQyMmE2NDJhZWEx
ZGFhNzRlOWQ4ZTgwMWFlY2E1MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQg
aGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3
IDE3KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxNykgKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQyN2E5MjgyNWMw
Y2YzYmUwYTM5ZGY4NjhhNjNkZTlkMmI5ZjAxYWYuLmU2ZTkzYWEwZWRkYjQ1MGU4YTIxYjkwOGYz
OTQwODg5OTBlNjIwMzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTE4NDMsMyArMTg0Myw2IEBAIHdlYmtpdC5vcmcvYi8yNDAwODEgWyBE
ZWJ1ZyBdICB3ZWJhdWRpby9BdWRpb0J1ZmZlci9odWdlLWJ1ZmZlci5odG1sIFsgUGFzcyBTbG93
CiAKICMgcmRhcjovLzgyMzk5OTkwIChbIENhdGFsaW5hIEVXUyBdIHdlYmdsLzIuMC4wLyogdGVz
dHMgYXJlIGZsYWt5IGNyYXNoaW5nIEFTU0VSVElPTiBGQUlMRUQ6ICFuZWVkc0xheW91dCgpICgy
Mjk1ODApKSBEaXNhYmxlIHdlYmdsIHRlc3RzIGZvciBtYWMtd2sxCiB3ZWJnbCBbIFNraXAgXQor
Cit3ZWJraXQub3JnL2IvMjMxMjk4IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFy
eS11c2VyaW5mby5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjMyNjMwIGZhc3QvZm9y
bXMvYXV0b2ZvY3VzLW9wZXJhLTAwMy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmct
c2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1cy1zZXR0aW5nLXNl
bGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNjgzNzljYzE4ZTIwYjUyMjkyMmNjZTYyYWM5Y2YyNjQxY2Q0ZjVjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L21hYy9mb2N1
cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5nLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE3IEBACisKKyAxCisgMgorVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgZm9j
dXMgb24gYSByZW5kZXIgb2JqZWN0IHdoZW4gaXQgZG9lc24ndCByZXN1bHQgaW4gYSBzZWxlY3Rp
b24gY2hhbmdlIHdvbid0IGxlYXZlIGlzU3luY2hyb25pemluZ1NlbGVjdGlvbiBzZXQgdG8gdHJ1
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRp
b24gaXMgdHJ1ZQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5p
c0VxdWFsKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiMSIp
KSBpcyB0cnVlCitQQVNTIGF4VGV4dFN0YXRlU3luY09uZSBpcyB1bmRlZmluZWQKK1BBU1MgYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikuaXNGb2N1c2Fi
bGUgaXMgdHJ1ZQorUEFTUyBheFRleHRTdGF0ZVN5bmNUd28gaXMgdW5kZWZpbmVkCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmYwMTBmYWM0NjI3ZTMxNDUxZjE0MWEzODUxYjQ2
MjY2ZDdkMjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
MS9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCisK
KworKHJlcGFpbnQgcmVjdHMKKyAgKHJlY3QgMSAxOSAxNSAzMikKKyAgKHJlY3QgOCAyNiAxIDE4
KQorICAocmVjdCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMzcg
Nzk4IDMyKQorICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAgKHJlY3QgMSA1MSA3OTggMTgpCisgIChy
ZWN0IDEgNDQgNzk4IDcpCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFw
L3Njcm9sbC10YXJnZXQtbWFyZ2luLTAwNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3Jv
bGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDUtZXhwZWN0ZWQudHh0CmluZGV4IDQ4MDAy
ODA5NmEyNTlkMmQ1MTc4NjJiOThmNDRmNTc2NmE0YzQ5YzkuLjZiNDk1ZDNjMjM3OGU0ZmYwZDIy
NTllNjgyNzc1N2ExYjU4NWJiNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFw
L3Njcm9sbC10YXJnZXQtbWFyZ2luLTAwNS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2Nyb2xsLXNuYXAvc2Nyb2xsLXRhcmdldC1tYXJnaW4tMDA1LWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKIAogCi1GQUlMIHNjcm9sbC1tYXJnaW4gb24gaW5wdXQgd2lkZ2V0IGFzc2VydF9i
ZXR3ZWVuX2V4Y2x1c2l2ZTogU2hvdWxkIGhvbm9yIGRhdGUgaW5wdXQgc2Nyb2xsLW1hcmdpbiBl
eHBlY3RlZCBhIG51bWJlciBncmVhdGVyIHRoYW4gNDc1MCBhbmQgbGVzcyB0aGFuIDQ4NTAgYnV0
IGdvdCA0NzIwCitGQUlMIHNjcm9sbC1tYXJnaW4gb24gaW5wdXQgd2lkZ2V0IGFzc2VydF9iZXR3
ZWVuX2V4Y2x1c2l2ZTogU2hvdWxkIGhvbm9yIGRhdGUgaW5wdXQgc2Nyb2xsLW1hcmdpbiBleHBl
Y3RlZCBhIG51bWJlciBncmVhdGVyIHRoYW4gNDc1MCBhbmQgbGVzcyB0aGFuIDQ4NTAgYnV0IGdv
dCA5NDM5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
NThhNTRkNmQ0MDQwZjVkZDhhN2IzMjFhODRmMmMxODI1MjQxN2U3OC4uNjRiNTZkYzUxNGQ3NWY2
NGU2MzJjY2VkMjllNTNkZDVhMGUxNTExMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTIzMDMsMyArMjMwMyw0IEBAIHdlYmtpdC5vcmcvYi8yMzk5OTAg
Y3NzMy9jYWxjL3RyYW5zaXRpb25zLWRlcGVuZGVudC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAog
d2Via2l0Lm9yZy9iLzI0MDA3NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tdXBkYXRldmlhY2FjaGUuaHR0
cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKK3dlYmtpdC5vcmcvYi8yMzEyOTggYWNjZXNzaWJp
bGl0eS9tYWMvc2VsZWN0aW9uLXN5bmMuaHRtbCBbIFNraXAgXSAjIFRpbWVvdXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5Y2E3ZGMxOGU5ZThkNmMwMjU3NjI1Mzg4MTlkM2NjZGY0
ZGRhMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9y
ZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworCisKKyhyZXBh
aW50IHJlY3RzCisgIChyZWN0IDEgMzcgNzk4IDMyKQorICAocmVjdCA4IDQ0IDc4NCAxOCkKKyAg
KHJlY3QgMSA1MSA3OTggMTgpCisgIChyZWN0IDEgNDQgNzk4IDcpCispCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhl
ZC1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGUwMmMwOTJi
YTUzM2I2ZTZkMDZlMjIwODY4M2M0MWUzNGI4OTI4MjQuLjUwMjM1MWFiNzAzNGU4NWRiZTA0NGE2
MWU1NjY5MWE0YTUyNjQzMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVk
LWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDQgQEAgQnVnIDExMTAwMDogU2VsZWN0aW9u
IGdhcHMgZG9uJ3QgcmVwYWludCBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zCiBUaGlzIHRlc3Rz
IHRoYXQgZml4ZWQgZWxlbWVudHMgYXJlIGludmFsaWRhdGVkIGNvcnJlY3RseS4gVGhlIGJveCB3
aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0ZWQgYXJlYSB3YXMgaW52YWxpZGF0
ZWQgY29ycmVjdGx5Lg0KIA0KIA0KLShyZXBhaW50IHJlY3RzDQotICAocmVjdCAwIDAgMTAwIDEw
MCkNCi0pDQogDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAppbmRleCA1
YTkzNGY0NzM3ZmU1ZjlmZjE2NTRlYTdhMmIxMzJmZjdlYjJiNWM3Li5mYzU1OTU5N2VlYTBlOTIw
ZDE5NWFkMjc1OGEwOTI3ZjFiMjYyNTExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4
cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50
aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzkgMTggODMpCi0pCi0KKyhy
ZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRk
ZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90
ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IDBhNzcxZDQ2
OWExZGIwZDRjN2M2N2Y1NTA1YTVlZTI3ZWI5ZjAzNWUuLjQxOTA0MDM4ODM1NjUxNzQ4NjZmMzA4
MzFlMWJkMGE1ZmUxMGQ2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9m
YXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9u
LW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACiBTaG91bGQgaGF2
ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0IDggMTYgMTk3IDE4
KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxOCkgKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459454</attachid>
            <date>2022-05-16 14:21:17 -0700</date>
            <delta_ts>2022-05-16 21:14:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224471-20220516142116.patch</filename>
            <type>text/plain</type>
            <size>49418</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM5ZDhlZGM1MGE2N2Ex
MzQ1NzZkZGRlMGZhZTMxYzMzNzNiNTMxNS4uNmJiMTVkM2I1NzFlNDFhNTJmNTQwYjc2MTdhMTRi
YmJkYzE5MjE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIyLTA1LTEzIEdhYnJp
ZWwgTmF2YSBNYXJpbm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVsZWFz
ZSBhc3NlcnQgaW4gRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpIHZpYSBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gYW5vdGhlciBwYXRjaCBtYWRlIGJ5
IFNlcmdpbyBWaWxsYXIgU2VuaW4uCisKKyAgICAgICAgRXhlY3V0aW5nIHNvbWUgZWRpdGluZyBj
b21tYW5kcyBpbiBhIHRleHQgYXJlYSBtaWdodCBmb3JjZSB0aGUgcmVjb21wdXRhdGlvbiBvZiB0
aGluZ3MKKyAgICAgICAgbGlrZSBjYXJldCBvciB0aGUgdmlzaWJsZSBzZWxlY3Rpb24gcG9zaXRp
b24gYW5kIGV4dGVudC4gVW5kZXIgc29tZSBjaXJjdW1zdGFuY2VzIChsaWtlCisgICAgICAgIHdo
ZW4gdGhlIHRleHQgYXJlYSBoYXMgbm8gY29udGVudCBhbmQgY2hpbGRyZW4pIHdlIG1pZ2h0IGVu
ZCB1cCB0cnlpbmcgdG8gdXBkYXRlIGxheW91dAorICAgICAgICB3aGVuIGl0IGlzIG5vdCBzYWZl
IGFzIGEgc2lkZSBlZmZlY3Qgb2YgdXBkYXRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIEluIG9y
ZGVyIHRvIGZpeCB0aGF0LCB3ZSBjYW4gc3dpdGNoIHRvIGEgbW9kZWwgaW4gd2hpY2ggd2UgdXBk
YXRlIHRoZSBzZWxlY3Rpb24gYXN5bmNocm9ub3VzbHkKKyAgICAgICAgaW4gdGhlIGNhc2Ugb2Yg
aGF2aW5nIGEgbm9uLXVzZXIgdHJpZ2dlcmVkIGNoYW5nZS4gVGhhdCB3YXkgd2UgZG9uJ3QgZG8g
aXQgaW5zaWRlCisgICAgICAgIGEgcmVzdHJpY3RlZCBsYXlvdXQgc2NvcGUuCisKKyAgICAgICAg
VGhlIEFwcCBIaWdobGlnaHQgcmVzdG9yYXRpb24gY29kZSBoYWQgdG8gYmUgdHVuZWQgYXMgd2Vs
bCAod2hlbiByZXN0b3JpbmcgYW5kIHNjcm9sbGluZyB0byByZXZlYWwKKyAgICAgICAgYSBRdWlj
ayBOb3RlIG9uIGlPUyBNYWNPUykuIEl0IHVzZXMgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHRv
IHNlbGVjdCBhbmQgc2Nyb2xsIHRvIHJldmVhbCB0aGUgaGlnaGxpZ2h0CisgICAgICAgIHJhbmdl
OyB0aGUgY29kZSBhc3N1bWVkIHRoYXQgdGhpcyBzY3JvbGxpbmcgaGFwcGVucyBzeW5jaHJvbm91
c2x5LCBzaW5jZSBpdCByZXZlcnRzIHRoZSBzZWxlY3Rpb24gdG8KKyAgICAgICAgdGhlIG9yaWdp
bmFsIHJhbmdlIGF0IHRoZSBlbmQgb2YgYEFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jl
c3RvcmVIaWdobGlnaHRBbmRTY3JvbGxgIHdoZW4gdGhlCisgICAgICAgIFRlbXBvcmFyeVNlbGVj
dGlvbkNoYW5nZSBmYWxscyBvdXQgb2Ygc2NvcGUuIFRoYXQgaXMgaG93ZXZlciBubyBsb25nZXIg
dGhlIGNhc2UuIEFjdHVhbGx5IG5vIHNjcm9sbGluZworICAgICAgICBoYXBwZW5lZCBhZnRlciB0
aGlzIHBhdGNoIGJlY2F1c2Ugd2UgZW5kIHVwIG9ubHkgc2NoZWR1bGluZyB0aGUgYXBwZWFyYW5j
ZSB1cGRhdGUgdGltZXIgYmVmb3JlIHNldHRpbmcKKyAgICAgICAgdGhlIHNlbGVjdGlvbiBiYWNr
IHRvIHRoZSBvcmlnaW5hbCBzdGF0ZSB3aXRoIGBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJl
dmVhbGAuIFNpbmNlIHRoaXMgb25seSBoYXBwZW5zCisgICAgICAgIHdoZW4gdGhlIHVzZXIgaW50
ZXJhY3RzIGluIHRoZSBOb3RlcyBhcHAsIGl0IHNlZW1zIHNlbnNpYmxlIHRvIGNvbnNpZGVyIGl0
IGFzIGEgdXNlciB0cmlnZ2VyZWQgZXZlbnQuCisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdo
dC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdo
dFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGwpOiBDb25zaWRlciB0
aGUgc2VsZWN0aW9uIGNoYW5nZQorICAgICAgICBhcyB1c2VyIHRyaWdnZXJlZCBzbyBzY3JvbGxp
bmcgYWN0dWFsbHkgaGFwcGVucy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2U6OnNldFNlbGVjdGlvbik6IENo
ZWNrIHRoZSBVc2VyVHJpZ2dlcmVkIGZsYWdzIGZvciBkZWZhdWx0IG9wdGlvbnMuCisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuaDogQWRkZWQgYSBuZXcgVXNlclRyaWdnZXJlZCBmbGFnLgorICAg
ICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6IENhbGwgc2NoZWR1bGVBcHBlYXJhbmNlVXBkYXRl
QWZ0ZXJTdHlsZUNoYW5nZSgpIGZvcgorICAgICAgICAhSXNVc2VyVHJpZ2dlcmVkIGNoYW5nZXMu
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9uQXBwZWFy
YW5jZU5vdyk6IFJlbmFtZWQgZnJvbSB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JT
dHlsZS4KKyAgICAgICAgSXQgZG9lcyBub3QgbmVlZCB0aGUgRG9jdW1lbnQmIGF0dHJpYnV0ZSBi
ZWNhdXNlIGl0IHdhcyBhbHdheXMgY2FsbGVkIHdpdGggbV9kb2N1bWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKTogUmVwbGFjZWQgdXBk
YXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUgd2l0aAorICAgICAgICB1cGRhdGVT
ZWxlY3Rpb25BcHBlYXJhbmNlTm93KCkuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6c2V0Q2FyZXRWaXNpYmlsaXR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9uKTogQ2FsbCB1cGRhdGVTZWxlY3Rpb25B
cHBlYXJhbmNlTm93KCkuCisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTZWxlY3Rpb25CeVVwZGF0
aW5nTGF5b3V0T3JTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNldFNlbGVjdGlvbklmTmVlZGVkKTogU2V0IHRoZSBVc2VyVHJpZ2dlcmVkIGZsYWcgZm9y
IGNhbGxpbmcgc2V0U2VsZWN0aW9uKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OmRvQWZ0ZXJVcGRhdGVSZW5kZXJpbmcpOiBDYWxsIHVwZGF0ZUFw
cGVhcmFuY2VBZnRlckxheW91dCgpLgorCiAyMDIyLTA1LTEyICBMb8OvYyBMZSBQYWdlICA8bGxl
cGFnZUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW1ZpZGVvQ2FwdHVyZV0gQWRk
IHN1cHBvcnQgZm9yIGNhcHR1cmluZyBlbmNvZGVkIHZpZGVvIHN0cmVhbXMgZnJvbSBhIHdlYmNh
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGlnaGxp
Z2h0U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdo
bGlnaHRTdG9yYWdlLmNwcAppbmRleCAyNGY2NTUyYjNmMTQ2MWUwMGUwNDI2ODQ2MzU1OGE1Njg5
NjZkNjg4Li45NTRiMmUxYjBiN2ZhZmM4Yzg1ZWY1MjJhY2UxMzJiMDViYjAwNDRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRT
dG9yYWdlLmNwcApAQCAtMjcxLDcgKzI3MSw3IEBAIGJvb2wgQXBwSGlnaGxpZ2h0U3RvcmFnZTo6
YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBIaWdobGlnaHRSYW5nZURhCiAg
ICAgICAgIGlmICh0ZXh0SW5kaWNhdG9yKQogICAgICAgICAgICAgbV9kb2N1bWVudC0+cGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3ItPmRhdGEo
KSk7CiAKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgq
c3Ryb25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB7IFRlbXBvcmFyeVNlbGVjdGlvbk9w
dGlvbjo6RGVsZWdhdGVNYWluRnJhbWVTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
U21vb3RoU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlJldmVhbFNlbGVjdGlvbkJv
dW5kcyB9KTsKKyAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5n
ZSgqc3Ryb25nRG9jdW1lbnQsIHsgKnJhbmdlIH0sIHsgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9u
OjpEZWxlZ2F0ZU1haW5GcmFtZVNjcm9sbCwgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTbW9v
dGhTY3JvbGwsIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6UmV2ZWFsU2VsZWN0aW9uQm91bmRz
LCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlVzZXJUcmlnZ2VyZWQgfSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZDE5ODAxYWJj
NjEwZjkxZjdmZTFjNjE1NzVlZTQ3NmJmZDA0NGUwNS4uMjJiZjU3ODQxMDgzZjJjZDlkMzMzMWIz
ZTVhOTI3ZWViMTliOTc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjYyLDcg
KzI2Miw3IEBAIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZTo6flRlbXBvcmFyeVNlbGVjdGlvbkNo
YW5nZSgpCiAKIHZvaWQgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBJc1RlbXBvcmFyeVNlbGVjdGlvbiBpc1Rl
bXBvcmFyeVNlbGVjdGlvbikKIHsKLSAgICBhdXRvIG9wdGlvbnMgPSBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKTsKKyAgICBhdXRvIG9wdGlvbnMgPSBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMobV9vcHRpb25zLmNvbnRhaW5zKFRl
bXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6VXNlclRyaWdnZXJlZCkgPyBVc2VyVHJpZ2dlcmVkIDog
Tm90VXNlclRyaWdnZXJlZCk7CiAgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlv
bk9wdGlvbjo6RG9Ob3RTZXRGb2N1cykKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rp
b246OkRvTm90U2V0Rm9jdXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCBlNDUxYzlj
Y2VhN2RhOWQyMDFlNzMxNjBlZTdhNTcwOTY5ZDYzOTY1Li45OWMwMmE1ZThiMmY0Y2RhMWM4ZWQ2
MjJmODYxZDYxNDAyM2I4NmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTEyNiw2ICsx
MjYsOCBAQCBlbnVtIGNsYXNzIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbiA6IHVpbnQ4X3Qgewog
ICAgIERlbGVnYXRlTWFpbkZyYW1lU2Nyb2xsID0gMSA8PCA1LAogICAgIAogICAgIFJldmVhbFNl
bGVjdGlvbkJvdW5kcyA9IDEgPDwgNiwKKworICAgIFVzZXJUcmlnZ2VyZWQgPSAxIDw8IDcsCiB9
OwogCiBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2UgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCAxY2ZiMjRjYzVjZDg1MzE1MzEzNTI1ZjNlOTY1
NmJmYWEwODgxZjVmLi5lODU0OTdiZDExYWYzYzk2MjA0Y2I1NzExMTIzYjNiOGMzMDkxOGNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtNDU0LDYgKzQ1
NCwxMSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJh
bWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIGlmICghKG9wdGlvbnMgJiBJc1VzZXJUcmlnZ2VyZWQpKSB7CisgICAgICAgIHNj
aGVkdWxlQXBwZWFyYW5jZVVwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQsIG9wdGlvbnMu
Y29udGFpbnMoU21vb3RoU2Nyb2xsKSA/IFNjcm9sbEJlaGF2aW9yOjpTbW9vdGggOiBTY3JvbGxC
ZWhhdmlvcjo6SW5zdGFudCwgb3B0aW9ucy5jb250YWlucyhSZXZlYWxTZWxlY3Rpb25Cb3VuZHMp
ID8gUmV2ZWFsRXh0ZW50T3B0aW9uOjpEb05vdFJldmVhbEV4dGVudCA6IFJldmVhbEV4dGVudE9w
dGlvbjo6UmV2ZWFsRXh0ZW50KTsKIAogICAgIGlmIChvcHRpb25zICYgSXNVc2VyVHJpZ2dlcmVk
KSB7CkBAIC00NjIsMTMgKzQ2NywxOSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIH0K
IH0KIAotc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUo
RG9jdW1lbnQmIGRvY3VtZW50KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9u
QXBwZWFyYW5jZU5vdygpCiB7CisgICAgaWYgKCFtX2RvY3VtZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBSZWYgZG9jdW1lbnQgPSAqbV9kb2N1bWVudDsKICNpZiBFTkFCTEUoVEVYVF9DQVJF
VCkKLSAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
KyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAj
ZWxzZQotICAgIGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBkb2N1bWVudC0+
dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogI2VuZGlmCisgICAgaWYgKG1fcGVuZGluZ1NlbGVjdGlv
blVwZGF0ZSkKKyAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCiB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZShSZXZlYWxTZWxlY3Rpb25BZnRlclVwZGF0
ZSByZXZlYWxNb2RlKQpAQCAtMTcwMCw3ICsxNzExLDcgQEAgSW50UmVjdCBGcmFtZVNlbGVjdGlv
bjo6YWJzb2x1dGVDYXJldEJvdW5kcyhib29sKiBpbnNpZGVGaXhlZCkKIHsKICAgICBpZiAoIW1f
ZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgdXBkYXRlU2VsZWN0aW9u
QnlVcGRhdGluZ0xheW91dE9yU3R5bGUoKm1fZG9jdW1lbnQpOworICAgIHVwZGF0ZVNlbGVjdGlv
bkFwcGVhcmFuY2VOb3coKTsKICAgICByZWNvbXB1dGVDYXJldFJlY3QoKTsKICAgICBpZiAoaW5z
aWRlRml4ZWQpCiAgICAgICAgICppbnNpZGVGaXhlZCA9IG1fY2FyZXRJbnNpZGVQb3NpdGlvbkZp
eGVkOwpAQCAtMjI1OCw3ICsyMjY5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Q2FyZXRW
aXNpYmlsaXR5KENhcmV0VmlzaWJpbGl0eSB2aXNpYmlsaXR5LCBTaG91bGRVcGRhdGUKIAogICAg
IC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgdHJpZ2dlciBhIHN5bmNocm9ub3VzIGxheW91dCBoZXJl
LgogICAgIGlmIChkb0FwcGVhcmFuY2VVcGRhdGUgPT0gU2hvdWxkVXBkYXRlQXBwZWFyYW5jZTo6
WWVzICYmIG1fZG9jdW1lbnQpCi0gICAgICAgIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlv
dXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uQXBwZWFyYW5j
ZU5vdygpOwogCiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQpCiAgICAgaWYgKG1fY2FyZXRQYWludCkg
ewpAQCAtMjM2MSwxMiArMjM3MiwxMiBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzaG91bGREZWxl
dGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKSBjbwogICAgIHJl
dHVybiBtX2RvY3VtZW50LT5lZGl0b3IoKS5jbGllbnQoKS0+c2hvdWxkRGVsZXRlUmFuZ2Uoc2Vs
ZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCkpOwogfQogCi1GbG9hdFJlY3QgRnJhbWVTZWxlY3Rp
b246OnNlbGVjdGlvbkJvdW5kcyhDbGlwVG9WaXNpYmxlQ29udGVudCBjbGlwVG9WaXNpYmxlQ29u
dGVudCkgY29uc3QKK0Zsb2F0UmVjdCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uQm91bmRzKENs
aXBUb1Zpc2libGVDb250ZW50IGNsaXBUb1Zpc2libGVDb250ZW50KQogewogICAgIGlmICghbV9k
b2N1bWVudCkKICAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKIAotICAgIHVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKCptX2RvY3VtZW50KTsKKyAgICB1cGRhdGVTZWxl
Y3Rpb25BcHBlYXJhbmNlTm93KCk7CiAgICAgYXV0byogcmVuZGVyVmlldyA9IG1fZG9jdW1lbnQt
PnJlbmRlclZpZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBMYXlv
dXRSZWN0KCk7CkBAIC0yNDYyLDYgKzI0NzMsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZl
YWxTZWxlY3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAog
ICAgIGlmIChpc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdXBkYXRlU2VsZWN0aW9u
QXBwZWFyYW5jZU5vdygpOworCiAgICAgTGF5b3V0UmVjdCByZWN0OwogICAgIGJvb2wgaW5zaWRl
Rml4ZWQgPSBmYWxzZTsKICAgICBpZiAoaXNDYXJldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oCmluZGV4IGEzZDc0MzRjYTVkOTRlMzJjYWRiZWQ4N2U3NzFlZjEyY2Fi
ODhjYjEuLmZhMDRiMjgzZTczOTBhMGIwNDRiMjYwYjcxY2JhM2QzYzZhMmQwZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI0NSw3ICsyNDUsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjbGVhclR5cGluZ1N0eWxlKCk7CiAKICAgICBlbnVtIGNsYXNzIENsaXBU
b1Zpc2libGVDb250ZW50IDogdWludDhfdCB7IE5vLCBZZXMgfTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBGbG9hdFJlY3Qgc2VsZWN0aW9uQm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50ID0gQ2xpcFRv
VmlzaWJsZUNvbnRlbnQ6OlllcykgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0
IHNlbGVjdGlvbkJvdW5kcyhDbGlwVG9WaXNpYmxlQ29udGVudCA9IENsaXBUb1Zpc2libGVDb250
ZW50OjpZZXMpOwogCiAgICAgZW51bSBjbGFzcyBUZXh0UmVjdGFuZ2xlSGVpZ2h0IHsgVGV4dEhl
aWdodCwgU2VsZWN0aW9uSGVpZ2h0IH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRDbGlw
cGVkVmlzaWJsZVRleHRSZWN0YW5nbGVzKFZlY3RvcjxGbG9hdFJlY3Q+JiwgVGV4dFJlY3Rhbmds
ZUhlaWdodCA9IFRleHRSZWN0YW5nbGVIZWlnaHQ6OlNlbGVjdGlvbkhlaWdodCkgY29uc3Q7CkBA
IC0yNjcsNiArMjY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlRnJvbUFzc29jaWF0ZWRM
aXZlUmFuZ2UoKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFu
Y2VOb3coKTsKICAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihjb25zdCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCYsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6Okluc3Rh
bnQsIFJldmVhbEV4dGVudE9wdGlvbiA9IFJldmVhbEV4dGVudE9wdGlvbjo6UmV2ZWFsRXh0ZW50
KTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDBjNjY0MTBkNWM0ZmJiYjljMzYyNzQzMjYy
OTc5ZjY3NzgwOWQ5YzguLmFjNzI1ZDQ2NzU4ZjljMzI1YTlmODQwNzVhYmE0M2MwMTY2YmIzN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2
b2lkIEV2ZW50SGFuZGxlcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgbm9kZVRvQmVSZW1vdmVk
KQogc3RhdGljIHZvaWQgc2V0U2VsZWN0aW9uSWZOZWVkZWQoRnJhbWVTZWxlY3Rpb24mIHNlbGVj
dGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKQogewogICAgIGlmIChz
ZWxlY3Rpb24uc2VsZWN0aW9uKCkgIT0gbmV3U2VsZWN0aW9uICYmIHNlbGVjdGlvbi5zaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2VsZWN0aW9uLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJU
cmlnZ2VyZWQpKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGRpc3BhdGNoU2VsZWN0U3RhcnQo
Tm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDdkNDI0ODAyZDY5ZTUyOTg0YTBkN2M5
ZDI2ZTFhYmM5YzQ0ZWE4MjQuLjY3NDJiYjA5NzQ5ZjIxNzA2MjZlNDA0ZmZlZjJlNjEzNjA0NmIy
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTczNCw2ICsxNzM0LDEwIEBAIHZvaWQgUGFnZTo6
ZG9BZnRlclVwZGF0ZVJlbmRlcmluZygpCiAgICAgICAgIGRvY3VtZW50LmVucXVldWVQYWludFRp
bWluZ0VudHJ5SWZOZWVkZWQoKTsKICAgICB9KTsKIAorICAgIGZvckVhY2hEb2N1bWVudChbXSAo
RG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnNlbGVjdGlvbigpLnVwZGF0
ZUFwcGVhcmFuY2VBZnRlckxheW91dCgpOworICAgIH0pOworCiAgICAgZm9yRWFjaERvY3VtZW50
KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKICAgICAgICAgZG9jdW1lbnQudXBkYXRlSGlnaGxp
Z2h0UG9zaXRpb25zKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmFkZThjOWQ1YjRmNzA4YjNmYjVkNGMx
ZmU2YWQ2ODIyYjgyYjhlMC4uNzM1YWVjYWU0ZDA2MTRiNmQwNzU2MDg3NTc2MTJlZGVjZTY2ZDQ0
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTA1LTEzIEdhYnJpZWwgTmF2YSBNYXJpbm8g
IDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVsZWFzZSBhc3NlcnQgaW4gRG9j
dW1lbnQ6OnVwZGF0ZUxheW91dCgpIHZpYSBIVE1MVGV4dEFyZWFFbGVtZW50OjpjaGlsZHJlbkNo
YW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaXMgYmFzZWQgb24gYW5vdGhlciBwYXRjaCBtYWRlIGJ5IFNlcmdpbyBWaWxsYXIg
U2VuaW4uCisKKyAgICAgICAgTW92ZWQgc29tZSB0ZXN0cyBvdXQgb2YgdGhlIHRleHQtYmFzZWQt
cmVwYWludC5qcyBtb2RlbCBiZWNhdXNlIHNlbGVjdGlvbiBpcyBub3cgdXBkYXRlZAorICAgICAg
ICBhbmQgcmV2ZWFsZWQgYXN5bmNocm9ub3VzbHkgaW4gdGhlIGNhc2Ugb2Ygbm9uLXVzZXIgdHJp
Z2dlcmVkIGNoYW5nZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKKyAgICAgICAgYnkgdGhlIHRpbWUg
dGhlIHJlcGFpbnQgcmVjdHMgYXJlIHF1ZXJpZWQgdGhlIHVwZGF0ZSBoYXMgbm90IGhhcHBlbmVk
IHlldC4gVGhhdCdzIHdoeQorICAgICAgICB0aGUgdGVzdHMgd2VyZSBtb2RpZmllZCBzbyB0aGF0
IHdlIHdhaXQgdW50aWwgdGhlIHJlcGFpbnQgaGFwcGVucy4KKworICAgICAgICBTYW1lIHNpdHVh
dGlvbiBmb3Igb3RoZXIgdGVzdHMgdGhhdCBkbyBub3QgaW52b2x2ZSByZXBhaW50IHJlY3RzIGJ1
dCB0cmlnZ2VyIGFjY2VzaWJpbGl0eQorICAgICAgICB0cmVlIHVwZGF0ZXMuIFdlIG11c3QgZW5z
dXJlIHRoYXQgd2UgbGV0IHRoZSBub3RpZmljYXRpb24gYmUgdGhyb3duIGJlZm9yZSBjaGVja2lu
ZyB3aGV0aGVyIG9yCisgICAgICAgIG5vdCBoYXMgYmVlbiBlbWl0ZWQuIEFzIGl0J3MgZG9uZSBh
c3luY2hyb25vdXNseSB3ZSBtdXN0IGxldCB0aGUgbWFpbiB0aHJlYWQgcnVuIGJlZm9yZSBjaGVj
a2luZy4KKworICAgICAgICBMYXN0IGJ1dCBub3QgbGVhc3QsIHNvbWUgb2YgdGhlIHRlc3RzIGFy
ZSB1c2luZyBzZXRUaW1lb3V0KCkgaW5zdGVhZCBvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKQor
ICAgICAgICBiZWNhdXNlIHRoZSByZXN1bHRzIHdpdGggdGhlIGxhdHRlciB3ZXJlIG5vdCBhcyBy
ZWxpYWJsZSB1bmRlciBzdHJlc3MvZGVidWcgY29uZGl0aW9ucy4KKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10
ZXh0Ym94Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1w
b3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3RleHRh
cmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC5odG1sOgorICAgICAgICAqIGZh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1
dGUtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFu
c2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtZml4ZWQtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2VsZWN0aW9u
LXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
c2VsZWN0aW9uLXJ1YnktcmwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdGV4dC1zZWxl
Y3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFp
bnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWw6CisgICAgICAgICogZmFzdC90
ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3MtbXVsdGlwbGUtZWxlbWVudHMuaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVkLnR4dDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvYWNjZXNz
aWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVh
cmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvZmFz
dC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwt
c25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0
L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wNS0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgYmV0dGVyIG1vY2sgZm9yIGF1ZGlvIHVuaXRzIHVz
ZWQgYnkgQ29yZUF1ZGlvU2hhcmVkVW5pdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbAppbmRl
eCA4YmQ5MTk1NGIyZDhmZGM5MTQyMDA4MjlkMThlMWRiMzdjYWVmM2JhLi5kODhmNTM4NWM2Y2Y5
NTE5NmE4MDk0ZTZjZjMyNTZiNDkyODg4NzcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRt
bApAQCAtMTYyLDIwICsxNjIsMzEgQEAKICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0g
d2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAg
ICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKLSAgICAgICAg
dGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7Ci0gICAgICAgIHRl
eHRib3guZm9jdXMoKTsKLQotICAgICAgICBtb3ZlKHRydWUpOwotCi0gICAgICAgIHRleHRib3gg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQiKTsKLSAgICAgICAgdGV4dGJveC5mb2N1
cygpOworICAgICAgICBmdW5jdGlvbiB3YWl0Rm9yQW5pbWF0aW9uRnJhbWUoKSB7CisgICAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KIAotICAgICAgICBtb3ZlKGZhbHNlKTsKKyAgICAgICAgZnVuY3Rpb24g
Zm9jdXNFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7
CisgICAgICAgICAgICByZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAgIH0K
IAotICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRhcmVhIik7
Ci0gICAgICAgIHRleHRib3guZm9jdXMoKTsKKyAgICAgICAgZnVuY3Rpb24gbW92ZUFzeW5jKGlz
VmVydGljYWwpIHsKKyAgICAgICAgICAgIG1vdmUoaXNWZXJ0aWNhbCk7CisgICAgICAgICAgICBy
ZXR1cm4gd2FpdEZvckFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAgIH0KIAotICAgICAgICBtb3Zl
KHRydWUpOworICAgICAgICAoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXdhaXQg
Zm9jdXNFbGVtZW50KCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICBhd2FpdCBtb3ZlQXN5bmModHJ1
ZSk7CisgICAgICAgICAgICBhd2FpdCBmb2N1c0VsZW1lbnQoImlucHV0Iik7CisgICAgICAgICAg
ICBhd2FpdCBtb3ZlQXN5bmMoZmFsc2UpOworICAgICAgICAgICAgYXdhaXQgZm9jdXNFbGVtZW50
KCJ0ZXh0YXJlYSIpOworICAgICAgICAgICAgYXdhaXQgbW92ZUFzeW5jKHRydWUpOworICAgICAg
ICB9KSgpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKaW5kZXgg
ZTFlYmRlYzAyNzQyODY5OTY1YzVjZGRkYzYxMGY2YmJkOGViMmFkZi4uYmIzYzg2Y2ZjOGE5N2Ew
YzZjODdlNzkwYjU1M2Y4MDlmNWE4OTdmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAt
MTk1LDE5ICsxOTUsODcgQEAKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwg
InRydWUiKTsKIAogICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
eHRib3giKTsKLSAgICAgICAgdGV4dGJveC5mb2N1cygpOwogCiAgICAgICAgIC8vIFRyaWdnZXIg
c2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigp
OwotICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBmb3IgKHZhciBp
IGluIGdyYW4pIHsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBncmFu
W2ldKTsKLSAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3JhbltpXSk7
CisKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNUZXh0Qm94KCkgeworICAgICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7
CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbW92ZVNlbGVj
dGlvbihkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCBk
aXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KLSAgICAg
ICAgZm9yICh2YXIgaSBpbiBncmFuKSB7Ci0gICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRi
b3gsIDApOwotICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3Jhbltp
XSk7CisKKyAgICAgICAgZnVuY3Rpb24gZXh0ZW5kU2VsZWN0aW9uKGdyYW51bGFyaXR5KSB7Cisg
ICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbnVsYXJpdHkpOworICAgICAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAg
ICAgICB9KTsKICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc2V0UG9zaXRpb24oKSB7
CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgICAgICAgICAg
cy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwor
ICAgICAgICAoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCBmb2N1c1RleHRC
b3goKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3
YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBncmFuWzBdKTsKKyAgICAgICAgICAgIGF3YWl0
IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3JhblswXSk7CisgICAgICAgICAgICBhd2FpdCBt
b3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3JhblsxXSk7CisgICAgICAgICAgICBhd2FpdCBtb3Zl
U2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bMV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNl
bGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bMl0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVj
dGlvbigiYmFja3dhcmQiLCBncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rp
b24oImZvcndhcmQiLCBncmFuWzNdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24o
ImJhY2t3YXJkIiwgZ3JhblszXSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJm
b3J3YXJkIiwgZ3Jhbls0XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNr
d2FyZCIsIGdyYW5bNF0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2Fy
ZCIsIGdyYW5bNV0pOworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQi
LCBncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImZvcndhcmQiLCBn
cmFuWzZdKTsKKyAgICAgICAgICAgIGF3YWl0IG1vdmVTZWxlY3Rpb24oImJhY2t3YXJkIiwgZ3Jh
bls2XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJmb3J3YXJkIiwgZ3Jhbls3
XSk7CisgICAgICAgICAgICBhd2FpdCBtb3ZlU2VsZWN0aW9uKCJiYWNrd2FyZCIsIGdyYW5bN10p
OworICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiZm9yd2FyZCIsIGdyYW5bOF0pOwor
ICAgICAgICAgICAgYXdhaXQgbW92ZVNlbGVjdGlvbigiYmFja3dhcmQiLCBncmFuWzhdKTsKKyAg
ICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVu
ZFNlbGVjdGlvbihncmFuWzBdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsK
KyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzFdKTsKKyAgICAgICAgICAg
IGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlv
bihncmFuWzJdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAg
ICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzNdKTsKKyAgICAgICAgICAgIGF3YWl0IHJl
c2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzRd
KTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0
IGV4dGVuZFNlbGVjdGlvbihncmFuWzVdKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRp
b24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzZdKTsKKyAgICAg
ICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3YWl0IGV4dGVuZFNl
bGVjdGlvbihncmFuWzddKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0UG9zaXRpb24oKTsKKyAg
ICAgICAgICAgIGF3YWl0IGV4dGVuZFNlbGVjdGlvbihncmFuWzhdKTsKKyAgICAgICAgICB9KSgp
OwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3It
YXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggZWU5ZTBhODA1YTU5MWE4MWIyMTZhNWVhNThlOGY0ODAy
NmI1YTBkYi4uYWU1MDVhMmQ1MDk2ZWY4YjAyOGY2NGFmMjM1MDYxMDFjOTMxOTg5NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5n
ZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbApAQCAtNDMs
MTIgKzQzLDE3IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9u
IGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogICAgICAg
ICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwotICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8
IDM7IGsrKykgeworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgICAg
ICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKLSAgICAgICAg
fQotCi0gICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgotICAgICAgICBkb2N1bWVudC5l
eGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8gIik7CisgICAgICAgICAgICBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgICAgIHMubW9kaWZ5KCJt
b3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gVHJpZ2dl
ciB2YWx1ZSBjaGFuZ2UuCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAgICB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24td2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVk
LWVtcHR5LWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLXdpdGgt
YWJzb2x1dGUtcG9zaXRpb25lZC1lbXB0eS1jb250ZW50Lmh0bWwKaW5kZXggOWFkNjRhZDljNTZi
NWNjMWU2ZWVlMTdlNDAwODFhYzRiNGMyNDYyYy4uMDljOThlZTc2ZTA0ZTM1NTVlMmNhNDM1NTAz
YWFjMzM3MjY0NmJmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24t
d2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWVtcHR5LWNvbnRlbnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtZW1wdHktY29u
dGVudC5odG1sCkBAIC0xMiwxNSArMTIsMjYgQEAgc3BhbiB7CiA8ZGl2PjxhIGlkPWZvb2JhciBz
dHlsZT0iY29sb3I6IGJsYWNrIiBocmVmPSIiPnNlbGVjdCB0aGlzIHRleHQ8c3Bhbj48L3NwYW4+
PC9hPiBidXQgbm90IHRoaXM8L2Rpdj4KIDxwcmUgaWQ9cmVzdWx0PjwvcHJlPgogPHNjcmlwdD4K
LWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRz
KCk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
Ci13aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZm9vYmFyKTsKK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQogCi1pZiAod2luZG93LmludGVybmFscykgewot
ICByZXN1bHQuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOwotICBp
bnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKK2Z1bmN0aW9uIHRpbWVyQWZ0ZXJSQUYo
Y2FsbGJhY2spIHsKKyAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHNldFRp
bWVvdXQoY2FsbGJhY2ssIDApKTsKIH0KLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKKwordGltZXJBZnRlclJBRigoKSA9PiB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIGludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKyAgICB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZm9vYmFyKTsKKyAgICB0aW1lckFmdGVy
UkFGKCgpID0+IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAg
IHJlc3VsdC5pbm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAg
ICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3RleHRhcmVhLXNjcm9sbGVkLWVuZGxpbmUtY2FyZXQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCmlu
ZGV4IDczNGNkY2IwNmEzNjM2NjNiNWQwOTEwMDE0ZmQ2NjRiMjVhNTQwZTguLmU0MmU0M2JhMmIy
Zjc0NTQ0ZTI5YjVlNmRkNzYxMzk4YTRjYzcxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtc2Nyb2xsZWQtZW5kbGluZS1jYXJldC5odG1sCkBA
IC0xNSwxMyArMTUsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdGEuZm9jdXMoKTsKICAgICAv
LyBjbGljawogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oOTAsIDIwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICAgICAgaWYgKHRhLnNlbGVjdGlv
bkVuZCA9PSAxNykKLSAgICAgICAgICAgIHJlcy5pbm5lckhUTUwgPSAiVGVzdCBTdWNjZWVkZWQi
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRlc3QgRmFpbGVk
OiBjYXJldCBpcyBhdCAiICsgdGEuc2VsZWN0aW9uRW5kOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDkwLCAyMCk7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKKyAgICAgICAgICAgIGlmICh0YS5zZWxlY3Rpb25FbmQgPT0gMTcpCisgICAgICAgICAgICAg
ICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IFN1Y2NlZWRlZCI7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgcmVzLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogY2FyZXQgaXMgYXQg
IiArIHRhLnNlbGVjdGlvbkVuZDsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICByZXMuaW5uZXJIVE1MID0gIlRl
c3QgY2FuJ3QgcnVuIHdpdGhvdXQgZXZlbnQgc2VuZGVyIChwYXJ0IG9mIER1bXBSZW5kZXJUcmVl
KS4gIgogICAgICAgICAgICAgKyAiVG8gdGVzdCBtYW51YWxseSwgY2xpY2sgYXQgdGhlIG1pZGRs
ZSBvZiB0aGUgbGluZSBtYXJrZWQgOSBhbmQgY2hlY2sgdGhhdCB0aGUgY2FyZXQgYXBwZWFycyBh
ZnRlciB0aGUgOS4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVj
dGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDNh
YmIwZjcwODlhM2YzYmNiYzZhYWRmNjlmNzNkNzc3YmY3OWUzMGEuLmFjZWE1NGUwNTBkZjVkMmE3
NzVhOWQ5OWQ5YjAxZjcwNjZiYTVhODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJl
cGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGFic29sdXRl
IGVsZW1lbnRzIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21w
ZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVkIGNvcnJlY3Rs
eS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCAwIDAgMTAwIDEwMCkKLSkKLQorKHJlcGFp
bnQgcmVjdHMgKHJlY3QgMCAwIDEwMCAxMDApICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDdk
NDdkMTI1OTFkOWJjOWZhMTIxNjkxZDBlNzQwZjlhZWRiM2Y0NzAuLmExMGI5YjUyODhhYTMyZjM2
MzE1ODBiNWNiODllOGJlYjU2OTQ3ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zZWxlY3Rpb24tZ2FwLWFic29sdXRlLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtYWJzb2x1dGUtY2hpbGQuaHRtbApAQCAtMSwxMSAr
MSwyNyBAQAogPCFkb2N0eXBlIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3RleHQtYmFzZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICBm
dW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpCiAgICAg
eworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5z
dGFydFRyYWNraW5nUmVwYWludHMoKTsKKwogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNl
QW5kRXh0ZW50KHRhcmdldCwgMCwgdGFyZ2V0Lm5leHRTaWJsaW5nLCAwKTsKKworICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVwYWludHMnKS5p
bm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgICAg
ICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAgIH0KICAgICA8L3Nj
cmlwdD4KICAgICA8c3R5bGU+CkBAIC0yMSw0ICszNyw1IEBACiAgICAgPGRpdj4KICAgICAgICAg
PGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAw
cHg7IGhlaWdodDogMTAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjxici8+PC9kaXY+PGJyLz4K
ICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGls
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZml4ZWQtY2hp
bGQuaHRtbAppbmRleCA2OTMxYzgyYjM1MzIzZTdhYTA0ZWU1ZGMzNDQ3NDMxOWNjZjEzZmEwLi5j
NDBkZGZmZmViYjA0Y2NhMzdmN2U5MWU2OTM2ZTQ2YmEzNGFkMTRkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1maXhlZC1jaGlsZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZpeGVkLWNoaWxkLmh0bWwK
QEAgLTEsMTEgKzEsMjYgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQ+Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRl
c3QoKQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBp
bnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9u
KCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisK
KyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Jl
cGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQo
KTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CiAgICAgfQogICAg
IDwvc2NyaXB0PgogICAgIDxzdHlsZT4KQEAgLTIxLDQgKzM2LDUgQEAKICAgICA8ZGl2PgogICAg
ICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IHdpZHRo
OiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgcG9zaXRpb246IGZpeGVkOyI+PGJyLz48L2Rpdj48YnIv
PgogICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9InJlcGFpbnRzIj48L2Rpdj4KIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLWZsaXBwZWQt
YWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggZGIz
YzM3NDE2NTZiMTc3OGM5MTQwZjcxNTRhZTg3YzU4MDZjNDZiNC4uOTc5ZWZhMzllNTUwY2MyZTMy
NTQ2MzEzMjlhOTEyYjdlZjU4ZjI5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0
ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlv
biBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0
cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IGZsaXBwZWQgYXJlIGludmFsaWRhdGVk
IGNvcnJlY3RseS4gVGhlIGJveCB3aWxsIGJlIGNvbXBldGVseSBncmVlbiBpZiB0aGUgc2VsZWN0
ZWQgYXJlYSB3YXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LgogCiAKLShyZXBhaW50IHJlY3RzCi0g
IChyZWN0IDAgMCAxMDAgMTAwKQotKQotCisocmVwYWludCByZWN0cyAocmVjdCAwIDAgMTAwIDEw
MCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAt
ZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nl
bGVjdGlvbi1nYXAtZmxpcHBlZC1hYnNvbHV0ZS1jaGlsZC5odG1sCmluZGV4IDFiNjFlYmYyZDUw
YjNhNGYwZDAyMzg5MTYxNjQ0MTdmZTI4ZTU2YTcuLjM4ZmY5MmU3YTkzODM1OWVlMDgxNTFjMzAw
ODZkOTJiNWQ5MDE1NTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLWZsaXBwZWQtYWJzb2x1dGUtY2hpbGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWFic29sdXRlLWNoaWxkLmh0bWwKQEAg
LTEsMTEgKzEsMjcgQEAKIDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXh0LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+
Ci0gICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3Qo
KQogICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRl
cm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFp
bnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsK
KyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAg
ICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5
bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCI+CiAgICAgICAgIDxkaXYgaWQ9
InRhcmdldCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9k
aXY+CisgICAgPGRpdiBpZD0icmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1
dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGI3YzMw
OTdjNmIxNzYxNmUyZjVkNzRlOThiN2U5ODU5NzFhNDVhMzEuLjVjYzk2MTVkMWUzMGQ4NzYwOWRh
NDliMzczM2RiMDVlOWU0NjExNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxkLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1h
YnNvbHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNl
bGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29ycmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhp
cyB0ZXN0cyB0aGF0IGFic29sdXRlIGVsZW1lbnRzIHRoYXQgZ2V0IHRyYW5zZm9ybWVkIGFyZSBp
bnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2lsbCBiZSBjb21wbGV0ZWx5IGdyZWVuIGlm
IHRoZSBzZWxlY3RlZCBhcmVhIHdhcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuCiAKIAotKHJlcGFp
bnQgcmVjdHMKLSAgKHJlY3QgNTAgNTAgMTAwIDEwMCkKLSkKLQorKHJlcGFpbnQgcmVjdHMgKHJl
Y3QgNTAgNTAgMTAwIDEwMCkgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWFic29sdXRlLWNoaWxk
Lmh0bWwKaW5kZXggMTdlZDM1YjFhMTU4NTEwOTI3NmY5ZGJlZjA2ODQ2MzYzZTQ2MDE2Zi4uNDMx
YWMzNTZiYzY0YWQ2MmE4ZjkyYmI5YWQzNDNiYjc0NGQ2ODQ0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtYWJzb2x1dGUtY2hp
bGQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFu
c2Zvcm1lZC1hYnNvbHV0ZS1jaGlsZC5odG1sCkBAIC0xLDExICsxLDI3IEBACiA8IWRvY3R5cGUg
aHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGV4dC1iYXNlZC1yZXBh
aW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0
KCkKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorICAgIGZ1bmN0aW9uIHJ1blJlcGFpbnRUZXN0KCkKICAgICB7CisgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50
cygpOworCiAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LCAw
LCB0YXJnZXQubmV4dFNpYmxpbmcsIDApOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAg
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBhaW50cycpLmlubmVySFRNTCA9IHdpbmRvdy5p
bnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxz
LnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4K
QEAgLTIxLDQgKzM3LDUgQEAKICAgICA8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlKDUwcHgsIDUwcHgpOyI+CiAgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9ImJh
Y2tncm91bmQtY29sb3I6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBwb3NpdGlv
bjogYWJzb2x1dGU7Ij48YnIvPjwvZGl2Pjxici8+CiAgICAgPC9kaXY+CisgICAgPGRpdiBpZD0i
cmVwYWludHMiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNmb3JtZWQtZml4
ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDhkYmVkNDQ5YmI5ZWFlY2NmZDY2MzhiNzU3NmJh
ZGI4YmIwNDNjNDUuLmM1YTMxMjhlYTkxOWNjM2ExY2Q4YzJmM2Y1OTk0OWRlMzhhYzI4ZTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tZ2FwLXRyYW5zZm9y
bWVkLWZpeGVkLWNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKQEAg
LTIsNyArMiw0IEBAIEJ1ZyAxMTEwMDA6IFNlbGVjdGlvbiBnYXBzIGRvbid0IHJlcGFpbnQgY29y
cmVjdGx5IHdpdGggdHJhbnNmb3JtcwogVGhpcyB0ZXN0cyB0aGF0IGZpeGVkIGVsZW1lbnRzIHRo
YXQgZ2V0IHRyYW5zZm9ybWVkIGFyZSBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuIFRoZSBib3ggd2ls
bCBiZSBjb21wZXRlbHkgZ3JlZW4gaWYgdGhlIHNlbGVjdGVkIGFyZWEgd2FzIGludmFsaWRhdGVk
IGNvcnJlY3RseS4KIAogCi0ocmVwYWludCByZWN0cwotICAocmVjdCA1MCA1MCAxMDAgMTAwKQot
KQotCisocmVwYWludCByZWN0cyAocmVjdCA1MCA1MCAxMDAgMTAwKSApCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zvcm1lZC1maXhlZC1j
aGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtdHJhbnNm
b3JtZWQtZml4ZWQtY2hpbGQuaHRtbAppbmRleCA3NDVjNTVlYzdhOWM3ZDk5ZTU4YzQ1ZTJiZTZi
NGIyMGI4MDE1OGEzLi4zNTlmOWY1Nzc3YzMyYTIzMzE2NDU2NThhMWMwODZhOTEzMTljNTdiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC10cmFuc2Zv
cm1lZC1maXhlZC1jaGlsZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxl
Y3Rpb24tZ2FwLXRyYW5zZm9ybWVkLWZpeGVkLWNoaWxkLmh0bWwKQEAgLTEsMTEgKzEsMjcgQEAK
IDwhZG9jdHlwZSBodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXh0
LWJhc2VkLXJlcGFpbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24g
cmVwYWludFRlc3QoKQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gcnVuUmVwYWludFRlc3QoKQogICAgIHsKKyAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFj
a2luZ1JlcGFpbnRzKCk7CisKICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dCh0YXJnZXQsIDAsIHRhcmdldC5uZXh0U2libGluZywgMCk7CisKKyAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1M
ID0gd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgICAg
ICBpbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgPC9zY3JpcHQ+CiAg
ICAgPHN0eWxlPgpAQCAtMjEsNCArMzcsNSBAQAogICAgIDxkaXYgc3R5bGU9Ii13ZWJraXQtdHJh
bnNmb3JtOiB0cmFuc2xhdGUoNTBweCwgNTBweCk7Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0
IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAw
cHg7IHBvc2l0aW9uOiBmaXhlZDsiPjxici8+PC9kaXY+PGJyLz4KICAgICA8L2Rpdj4KKyAgICA8
ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXBhaW50LWludmFsaWRhdGlvbi1l
eHBlY3RlZC50eHQKaW5kZXggODYxMjMyNmRmOGZhMTQ4MDE3YmMzYTRlNWY5NjU4NjUwYzJmOWRi
Zi4uYjE5OTJhOTEwZGVkZDFjMGRkOWE1ZTI0NDRmYzg2ZTlmNDY3YjY1OCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1wYWludC1pbnZhbGlkYXRpb24tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcGFpbnQt
aW52YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDUgQEAgQQogQQogKHJlcGFpbnQg
cmVjdHMKICAgKHJlY3QgOCA2OCAyMCAxMDApCi0gIChyZWN0IDggNjggMjAgMTAwKQogKQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4
cGVjdGVkLnR4dAppbmRleCA5NTkxNWU2NjAwZjEyNTVjYmY2ZjIzOWY5ODY0OWQ3OThhMzc2MDQx
Li40ZTdjMDkyNDM0NjdjZDc5MTUzNGU1ZmIxMmEwZTE4NTM1N2Y1NzQ4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50
eHQKQEAgLTgsNyArOCw0IEBAIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcg
b2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBz
ZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVj
dGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LgotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgNzc0IDM4IDE4IDc5KQotKQotCisocmVwYWludCBy
ZWN0cyAocmVjdCA3NzQgMzggMTggNzkpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwKaW5kZXggMDI3ODQ0MGExZmI3MjQ0NDJkOTY0MjkyOGVh
MmViMzIzOTNjY2EyMS4uZWE0MjUxNmQ0OGIzMTBjM2M5YzQ0N2EwMDdhMTY4YTAxZjU5MGY2MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwK
QEAgLTMsNyArMywxNSBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFz
ZWQtcmVwYWludC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gcmVwYWludFRlc3Qo
KSB7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
ZmFsc2UpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBy
dW5SZXBhaW50VGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnN0YXJ0VHJhY2tpbmdSZXBhaW50cygpOworCiAgICAgaWYgKGV2ZW50U2VuZGVyKSB7
CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDc5MCwgNDApOwogICAgICAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKQEAgLTExLDYgKzE5LDE2IEBAIGZ1bmN0aW9uIHJlcGFpbnRU
ZXN0KCkgewogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3OTAsIDEyMCk7CiAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICB9CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignI3JlcGFpbnRzJykuaW5uZXJIVE1MID0gd2luZG93LmludGVy
bmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKKyAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJh
Y2tpbmdSZXBhaW50cygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7CiB9
CiA8L3NjcmlwdD4KIApAQCAtMjYsNCArNDQsNSBAQCBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+CiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rpbmcg
YW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi48YnI+Cis8ZGl2IGlkPSJyZXBhaW50cyI+PC9kaXY+
CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1zZWxl
Y3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CmluZGV4IGJk
OWY1ODlmOWNjZDljNjc0ODI1MTNhNzQ2NmZjZmJiZmY3ZDE5NjguLmUyZDNlNTk3ZmRkMmIxZmI2
NDRhNWUzOWJhYjM1Y2NhNGU2Y2IwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhw
ZWN0ZWQudHh0CkBAIC0xLDYgKzEsMyBAQAogU2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZAog
Ci0ocmVwYWludCByZWN0cwotICAocmVjdCA4IDE2IDE5OSAxOCkKLSkKLQorKHJlcGFpbnQgcmVj
dHMgKHJlY3QgOCAxNiAxOTkgMTgpICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCBiY2M5
ZTM0ZDE3NzgwZTAxNjAwZTU1ODNiY2FhYjFiMDIzYTE2MjYwLi44YTQzZjliYWEyZTQ3NDI0M2Ez
Njk2ZTdjMjU2MzFjMjM5MDYyY2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0xLDUg
KzEsNCBAQAogPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQtYmFz
ZWQtcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KIDxzdHlsZT4K
ICN0ZXN0IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CkBAIC0xMiwxMSArMTEsMzAgQEAK
IH0KIDwvc3R5bGU+CiA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
ZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5SZXBhaW50VGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CisKICAg
ICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXN0LCAwLCB0ZXN0LCAxKTsK
KworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcj
cmVwYWludHMnKS5pbm5lckhUTUwgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4
dCgpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOwogICAg
IH07CiA8L3NjcmlwdD4KIAogPGJvZHkgb25sb2FkPSJydW5SZXBhaW50VGVzdCgpIj4KICAgICA8
cCBpZD0idGVzdCI+U2hvdWxkIGhhdmUgZ3JlZW4gYmFja2dyb3VuZDwvcD4KKyAgICA8ZGl2IGlk
PSJyZXBhaW50cyI+PC9kaXY+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9zcy1tdWx0aXBsZS1lbGVtZW50cy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2luY29ycmVjdC1kZXNlbGVjdGlvbi1hY3Jvc3MtbXVs
dGlwbGUtZWxlbWVudHMuaHRtbAppbmRleCBlMDhiMWI3MTE2NDE2N2UxYTlkZWQ0MmRlMjFlNjI1
ODMyMGMyYTJjLi5lZmU5NjRlYjU3ZjFjMzA1NWM1MmVjYTliNWNhNzY5ZjY0N2EyODI5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW5jb3JyZWN0LWRlc2VsZWN0aW9uLWFjcm9z
cy1tdWx0aXBsZS1lbGVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbmNv
cnJlY3QtZGVzZWxlY3Rpb24tYWNyb3NzLW11bHRpcGxlLWVsZW1lbnRzLmh0bWwKQEAgLTIwLDEx
ICsyMCwxMyBAQCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICBpZiAod2luZG93LmludGVybmFs
cykKICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CiAgIHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihzZWNvbmQpOwotICBpZiAod2luZG93LmludGVy
bmFscykgewotICAgIHJlc3VsdC5pbm5lclRleHQgPSBpbnRlcm5hbHMucmVwYWludFJlY3RzQXNU
ZXh0KCkuaW5kZXhPZigiNzg0IDcwIikgPT0gLTEgPyAiRkFJTCIgOiAiUEFTUyI7Ci0gICAgaW50
ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7Ci0gIH0KLSAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICByZXN1bHQuaW5uZXJUZXh0
ID0gaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpLmluZGV4T2YoIjc4NCA3MCIpID09IC0x
ID8gIkZBSUwiIDogIlBBU1MiOworICAgICAgaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRz
KCk7CisgICAgfQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICB9LCAwKTsKIH0sIDApOwogPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA4Y2RjNDRlYTdmNTkzYWRiMjYyZDVkZmFiZDRhZmYwMjViNDAxZDFmLi45Y2MxYjZjNjBm
M2YxNzE4ZDYyZTI1ZjMzMzQ1ZGZlODE2OWI1MzhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTUzNSw4ICsxNTM1LDYgQEAgd2Via2l0Lm9yZy9iLzE1
OTE0MyBmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1pbi1ydGwuaHRtbCBbIEZhaWx1cmUg
XQogIyBJbmNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIGV2ZW50U2VuZGVyIGNhdXNlcyB0aGlz
IHRlc3QgdG8gZmFpbAogd2Via2l0Lm9yZy9iLzQyMTk0IGZhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1z
ZWxlY3QtbGlzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xMzkz
NTQgZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLmh0bWwgWyBGYWlsdXJlIF0KLQogIyBN
aXNzaW5nIGdseXBoIHN5bWJvbCBpcyBub3QgcmVuZGVyZWQgcHJvcGVybHkuCiB3ZWJraXQub3Jn
L2IvMTQwMjUyIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LWRldGVybWluZWQtYnktcHJpbWFyeS1mb250
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDAyNTIgZmFzdC90ZXh0L2RlY29yYXRp
b25zLXdpdGgtdGV4dC1jb21iaW5lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24t
cnVieS1ybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg1ODA5OGU2M2E4MDIyNWU3MGFmNDhh
NjUzODAyMjkxMmFkOTE4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9mYXN0L3JlcGFpbnQvc2VsZWN0aW9uLXJ1YnktcmwtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTEgQEAKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0
aW9uLgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24u
CitUZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi5Tb21l
IHJ1YnkKK1Rlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9u
LgorVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitU
ZXN0aW5nIGJvdGggaGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3Rp
bmcgYm90aCBoaXQgdGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorVGVzdGluZyBi
b3RoIGhpdCB0ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCitUZXN0aW5nIGJvdGgg
aGl0IHRlc3RpbmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KK1Rlc3RpbmcgYm90aCBoaXQg
dGVzdGluZyBhbmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgorKHJlcGFpbnQgcmVjdHMgKHJlY3Qg
Nzc1IDM3IDE3IDg0KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFz
dC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9yZXBhaW50L3RleHQtc2VsZWN0aW9uLW92ZXJm
bG93LWhpZGRlbi1leHBlY3RlZC50eHQKaW5kZXggYTBhZTQ1NjBkZmEzZDY2MTI1Y2YwZDQwMzA1
MmRiMDgwNWU3MzgxMC4uMGZhNWRkYTVkNDIyYTY0MmFlYTFkYWE3NGU5ZDhlODAxYWVjYTUyYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVwYWludC90ZXh0LXNl
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4
cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIFNob3VsZCBoYXZlIGdyZWVuIGJhY2tncm91bmQK
IAotKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgOCAxNiAxOTcgMTcpCi0pCi0KKyhyZXBhaW50IHJl
Y3RzIChyZWN0IDggMTYgMTk3IDE3KSApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDI3YTkyODI1YzBjZjNiZTBhMzlkZjg2OGE2M2RlOWQy
YjlmMDFhZi4uZTZlOTNhYTBlZGRiNDUwZThhMjFiOTA4ZjM5NDA4ODk5MGU2MjAzOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg0Mywz
ICsxODQzLDYgQEAgd2Via2l0Lm9yZy9iLzI0MDA4MSBbIERlYnVnIF0gIHdlYmF1ZGlvL0F1ZGlv
QnVmZmVyL2h1Z2UtYnVmZmVyLmh0bWwgWyBQYXNzIFNsb3cKIAogIyByZGFyOi8vODIzOTk5OTAg
KFsgQ2F0YWxpbmEgRVdTIF0gd2ViZ2wvMi4wLjAvKiB0ZXN0cyBhcmUgZmxha3kgY3Jhc2hpbmcg
QVNTRVJUSU9OIEZBSUxFRDogIW5lZWRzTGF5b3V0KCkgKDIyOTU4MCkpIERpc2FibGUgd2ViZ2wg
dGVzdHMgZm9yIG1hYy13azEKIHdlYmdsIFsgU2tpcCBdCisKK3dlYmtpdC5vcmcvYi8yMzEyOTgg
YWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWJvdW5kYXJ5LXVzZXJpbmZvLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi8yMzI2MzAgZmFzdC9mb3Jtcy9hdXRvZm9jdXMtb3BlcmEtMDAz
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5n
LW5vdC1jbGVhcmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1u
b3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ODM3OWNjMThlMjBiNTIyOTIy
Y2NlNjJhYzljZjI2NDFjZDRmNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5
bmNyb25pemluZy1ub3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKwor
IDEKKyAyCitUaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBmb2N1cyBvbiBhIHJlbmRlciBvYmplY3Qg
d2hlbiBpdCBkb2Vzbid0IHJlc3VsdCBpbiBhIHNlbGVjdGlvbiBjaGFuZ2Ugd29uJ3QgbGVhdmUg
aXNTeW5jaHJvbml6aW5nU2VsZWN0aW9uIHNldCB0byB0cnVlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCIxIikpIGlzIHRydWUKK1BBU1MgYXhUZXh0
U3RhdGVTeW5jT25lIGlzIHVuZGVmaW5lZAorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoIjEiKS5pc0ZvY3VzYWJsZSBpcyB0cnVlCitQQVNTIGF4VGV4
dFN0YXRlU3luY1R3byBpcyB1bmRlZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvZmFzdC9yZXBhaW50LzQ3NzY3NjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjViZjAxMGZhYzQ2MjdlMzE0NTFmMTQxYTM4NTFiNDYyNjZkN2QyOWQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvcmVwYWludC80Nzc2NzY1
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKKworCisocmVwYWludCByZWN0cworICAo
cmVjdCAxIDE5IDE1IDMyKQorICAocmVjdCA4IDI2IDEgMTgpCisgIChyZWN0IDEgMTkgMTUgMzIp
CisgIChyZWN0IDggMjYgMSAxOCkKKyAgKHJlY3QgMSAzNyA3OTggMzIpCisgIChyZWN0IDggNDQg
Nzg0IDE4KQorICAocmVjdCAxIDUxIDc5OCAxOCkKKyAgKHJlY3QgMSA0NCA3OTggNykKKykKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXRhcmdldC1tYXJnaW4t
MDA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC10YXJnZXQt
bWFyZ2luLTAwNS1leHBlY3RlZC50eHQKaW5kZXggNDgwMDI4MDk2YTI1OWQyZDUxNzg2MmI5OGY0
NGY1NzY2YTRjNDljOS4uNmI0OTVkM2MyMzc4ZTRmZjBkMjI1OWU2ODI3NzU3YTFiNTg1YmI3NyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXRhcmdldC1tYXJnaW4t
MDA1LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFy
Z2V0LW1hcmdpbi0wMDUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiAKLUZBSUwgc2Ny
b2xsLW1hcmdpbiBvbiBpbnB1dCB3aWRnZXQgYXNzZXJ0X2JldHdlZW5fZXhjbHVzaXZlOiBTaG91
bGQgaG9ub3IgZGF0ZSBpbnB1dCBzY3JvbGwtbWFyZ2luIGV4cGVjdGVkIGEgbnVtYmVyIGdyZWF0
ZXIgdGhhbiA0NzUwIGFuZCBsZXNzIHRoYW4gNDg1MCBidXQgZ290IDQ3MjAKK0ZBSUwgc2Nyb2xs
LW1hcmdpbiBvbiBpbnB1dCB3aWRnZXQgYXNzZXJ0X2JldHdlZW5fZXhjbHVzaXZlOiBTaG91bGQg
aG9ub3IgZGF0ZSBpbnB1dCBzY3JvbGwtbWFyZ2luIGV4cGVjdGVkIGEgbnVtYmVyIGdyZWF0ZXIg
dGhhbiA0NzUwIGFuZCBsZXNzIHRoYW4gNDg1MCBidXQgZ290IDk0MzkKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkNDE3NDgwZmEwNGEyNGE0YWIyNDA0
YWJiMDA0MTcwY2NhYmY3NDc0Li5jZmQ2OWQ4NTVlOTk3OTFiOTUzY2I0OTExYjVjZWU4OWM3NzI4
NDg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjMw
NSwzICsyMzA1LDQgQEAgd2Via2l0Lm9yZy9iLzIzOTk5MCBjc3MzL2NhbGMvdHJhbnNpdGlvbnMt
ZGVwZW5kZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjQwMDc0IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIAord2Via2l0Lm9yZy9iLzIzMTI5OCBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tc3lu
Yy5odG1sIFsgU2tpcCBdICMgVGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL2Zhc3QvcmVwYWludC80Nzc2NzY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDljYTdkYzE4ZTllOGQ2YzAyNTc2MjUzODgxOWQzY2NkZjRkZGExOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCisKKworKHJlcGFpbnQgcmVjdHMKKyAgKHJlY3QgMSAz
NyA3OTggMzIpCisgIChyZWN0IDggNDQgNzg0IDE4KQorICAocmVjdCAxIDUxIDc5OCAxOCkKKyAg
KHJlY3QgMSA0NCA3OTggNykKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2Zhc3QvcmVwYWludC9zZWxlY3Rpb24tcnVieS1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dAppbmRleCA1YTkzNGY0NzM3ZmU1ZjlmZjE2NTRlYTdhMmIxMzJmZjdlYjJiNWM3Li5mYzU1
OTU5N2VlYTBlOTIwZDE5NWFkMjc1OGEwOTI3ZjFiMjYyNTExIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1ydWJ5LXJsLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3NlbGVjdGlv
bi1ydWJ5LXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDQgQEAgVGVzdGluZyBib3RoIGhpdCB0
ZXN0aW5nIGFuZCBwYWludGluZyBvZiBzZWxlY3Rpb24uCiBUZXN0aW5nIGJvdGggaGl0IHRlc3Rp
bmcgYW5kIHBhaW50aW5nIG9mIHNlbGVjdGlvbi4KIFRlc3RpbmcgYm90aCBoaXQgdGVzdGluZyBh
bmQgcGFpbnRpbmcgb2Ygc2VsZWN0aW9uLgogVGVzdGluZyBib3RoIGhpdCB0ZXN0aW5nIGFuZCBw
YWludGluZyBvZiBzZWxlY3Rpb24uCi0ocmVwYWludCByZWN0cwotICAocmVjdCA3NzQgMzkgMTgg
ODMpCi0pCi0KKyhyZXBhaW50IHJlY3RzIChyZWN0IDc3NCAzOSAxOCA4MykgKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1v
dmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zh
c3QvcmVwYWludC90ZXh0LXNlbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0Cmlu
ZGV4IDBhNzcxZDQ2OWExZGIwZDRjN2M2N2Y1NTA1YTVlZTI3ZWI5ZjAzNWUuLjQxOTA0MDM4ODM1
NjUxNzQ4NjZmMzA4MzFlMWJkMGE1ZmUxMGQ2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9mYXN0L3JlcGFpbnQvdGV4dC1zZWxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9yZXBhaW50L3Rl
eHQtc2VsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBA
CiBTaG91bGQgaGF2ZSBncmVlbiBiYWNrZ3JvdW5kCiAKLShyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDggMTYgMTk3IDE4KQotKQotCisocmVwYWludCByZWN0cyAocmVjdCA4IDE2IDE5NyAxOCkgKQo=
</data>
<flag name="review"
          id="488567"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="488581"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>