<?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>202432</bug_id>
          
          <creation_ts>2019-10-01 14:01:12 -0700</creation_ts>
          <short_desc>focus pseudo class should match a shadow host whose shadow tree contains the focused element</short_desc>
          <delta_ts>2019-10-15 15:13:52 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
    
    <blocked>166484</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>emilio</cc>
    
    <cc>eoconnor</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1575724</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-01 14:01:12 -0700</bug_when>
    <thetext>Per https://github.com/whatwg/html/pull/4731, `:focus` pseudo class should match a shadow host element
whose shadow root (shadow inclusively) contains the currently focused element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576721</commentid>
    <comment_count>1</comment_count>
      <attachid>380187</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-03 22:25:00 -0700</bug_when>
    <thetext>Created attachment 380187
Updates the behavior</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576722</commentid>
    <comment_count>2</comment_count>
      <attachid>380188</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-03 22:26:49 -0700</bug_when>
    <thetext>Created attachment 380188
Updates the behavior</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576744</commentid>
    <comment_count>3</comment_count>
      <attachid>380188</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-03 23:56:04 -0700</bug_when>
    <thetext>Comment on attachment 380188
Updates the behavior

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

&gt; Source/WebCore/dom/Element.cpp:682
&gt; +        root-&gt;setContainsFocusedElement(flag);

I suppose setFocus is already guaranteed to be called consistently in all DOM mutations? This sort of stuff easily leaves stuck flags behind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576747</commentid>
    <comment_count>4</comment_count>
      <attachid>380188</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-04 00:21:56 -0700</bug_when>
    <thetext>Comment on attachment 380188
Updates the behavior

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

&gt;&gt; Source/WebCore/dom/Element.cpp:682
&gt;&gt; +        root-&gt;setContainsFocusedElement(flag);
&gt; 
&gt; I suppose setFocus is already guaranteed to be called consistently in all DOM mutations? This sort of stuff easily leaves stuck flags behind.

Yeah, it&apos;s called whenever the focus state is changed.

And if the tree relationship between any of ancestor nodes were to change,
then this element would have lost the focus so setFocus would have to be called first anyway.

It&apos;s done as the last step before removing nodes in ContainerNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577124</commentid>
    <comment_count>5</comment_count>
      <attachid>380277</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-04 21:35:27 -0700</bug_when>
    <thetext>Created attachment 380277
Fixed the tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577125</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-04 21:36:26 -0700</bug_when>
    <thetext>Antti: asking for another review because I had to introduce a new pseudo class.

Here&apos;s one question I have. Should we add -webkit-direct-focus to SelectorChecker::isCommonPseudoClassSelector?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577193</commentid>
    <comment_count>7</comment_count>
      <attachid>380278</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-04 23:26:54 -0700</bug_when>
    <thetext>Created attachment 380278
Reverted unintended test change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577200</commentid>
    <comment_count>8</comment_count>
      <attachid>380278</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-05 01:40:05 -0700</bug_when>
    <thetext>Comment on attachment 380278
Reverted unintended test change

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

&gt; Source/WebCore/css/CSSSelector.cpp:443
&gt; +            case CSSSelector::PseudoClassDirectFocus:
&gt; +                str.appendLiteral(&quot;:-webkit-direct-focus&quot;);
&gt; +                break;

I suppose some code generator strips &apos;webkit&apos; out from the enum values? I wonder if we could avoid that for internal properties (have PseudoClassWebKitDirectFocus)

&gt; Source/WebCore/css/html.css:1168
&gt; -:focus {
&gt; +:-webkit-direct-focus {

Do other instances of :focus on UA sheets also need to be changed to :-webkit-direct-focus? html4.css has more, and svg.css and mathml.css also have instances.

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:501
&gt; +            if (m_context.mode != UASheetMode &amp;&amp; selector-&gt;pseudoClassType() == CSSSelector::PseudoClassDirectFocus)
&gt; +                return nullptr;

We should have some sort of more general mechanism for hiding internal pseudo classes. (like hide based on the name)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577202</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-05 01:47:21 -0700</bug_when>
    <thetext>&gt; Do other instances of :focus on UA sheets also need to be changed to
&gt; :-webkit-direct-focus? html4.css has more, and svg.css and mathml.css also
&gt; have instances.

If all UA sheet instances should be direct focus then we could just do the mapping to PseudoClassDirectFocus in the parser and avoid adding a new pseudo class string. But maybe that is overly opaque.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577491</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 13:55:34 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #8)
&gt; Comment on attachment 380278 [details]
&gt; Reverted unintended test change
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380278&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSSelector.cpp:443
&gt; &gt; +            case CSSSelector::PseudoClassDirectFocus:
&gt; &gt; +                str.appendLiteral(&quot;:-webkit-direct-focus&quot;);
&gt; &gt; +                break;
&gt; 
&gt; I suppose some code generator strips &apos;webkit&apos; out from the enum values? I
&gt; wonder if we could avoid that for internal properties (have
&gt; PseudoClassWebKitDirectFocus)

Yeah, that would be a nice refactoring. I stayed away from it because it seemed like it&apos;s going to be a pretty big change. I think if we end up having to a few more of these, it probably makes sense to have the generator support it directly so that we can specify it as an option; e.g. UAOnly
&gt; &gt; Source/WebCore/css/html.css:1168
&gt; &gt; -:focus {
&gt; &gt; +:-webkit-direct-focus {
&gt; 
&gt; Do other instances of :focus on UA sheets also need to be changed to
&gt; :-webkit-direct-focus? html4.css has more, and svg.css and mathml.css also
&gt; have instances.

As far as I can tell not. Because elements like select and input don&apos;t support a shadow root and neither does SVG and MathML.
&gt; &gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:501
&gt; &gt; +            if (m_context.mode != UASheetMode &amp;&amp; selector-&gt;pseudoClassType() == CSSSelector::PseudoClassDirectFocus)
&gt; &gt; +                return nullptr;
&gt; 
&gt; We should have some sort of more general mechanism for hiding internal
&gt; pseudo classes. (like hide based on the name)

Indeed. I think it makes sense to add it as a generator option in SelectorPseudoClassAndCompatibilityElementMap.in but probably needs to be done in a separate patch because it seems pretty involved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577492</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 13:55:49 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577494</commentid>
    <comment_count>12</comment_count>
      <attachid>380278</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 13:58:05 -0700</bug_when>
    <thetext>Comment on attachment 380278
Reverted unintended test change

Clearing flags on attachment: 380278

Committed r250788: &lt;https://trac.webkit.org/changeset/250788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577495</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 13:58:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577496</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-07 13:59:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/56049598&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579991</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2019-10-14 22:03:56 -0700</bug_when>
    <thetext>I think :-webkit-direct-focus should be renamed to :focus-visible.

https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580010</commentid>
    <comment_count>16</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-15 00:17:33 -0700</bug_when>
    <thetext>&gt; As far as I can tell not. Because elements like select and input don&apos;t
&gt; support a shadow root and neither does SVG and MathML.

We have

html:focus, body:focus, input[readonly]:focus, applet:focus, embed:focus, iframe:focus, object:focus {
    outline: none;
}

and canAttachAuthorShadowRoot returns true for body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580305</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-15 15:13:52 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #16)
&gt; &gt; As far as I can tell not. Because elements like select and input don&apos;t
&gt; &gt; support a shadow root and neither does SVG and MathML.
&gt; 
&gt; We have
&gt; 
&gt; html:focus, body:focus, input[readonly]:focus, applet:focus, embed:focus,
&gt; iframe:focus, object:focus {
&gt;     outline: none;
&gt; }
&gt; 
&gt; and canAttachAuthorShadowRoot returns true for body.

But that&apos;s okay because they&apos;re simply removing the outline by default. Even if body which is a shadow host which contains the focused element matched this rule, it would simply disable the outline on the body, which is the correct behavior anyway.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380187</attachid>
            <date>2019-10-03 22:25:00 -0700</date>
            <delta_ts>2019-10-03 22:26:46 -0700</delta_ts>
            <desc>Updates the behavior</desc>
            <filename>bug-202432-20191003222459.patch</filename>
            <type>text/plain</type>
            <size>15704</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhOWFlZDM5Y2FjOTUy
MTRjYjc2OTk2MjkyOGJjODQ1YmZhYjhjNC4uNjhhMTEzMWE5MGNlYjYwOWI2YTk2N2VhMzcxYmZm
YzkyZWIyOGE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEwLTAzICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIDpmb2N1cyBzaG91bGQgYXBw
bHkgdG8gYSBzaGFkb3cgaG9zdCB3aXRoIGEgZm9jdXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGJlaGF2aW9yIG9mIGZvY3VzIHBz
ZXVkbyBjbGFzc3MgdG8gbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aGljaCBpbmNsdWRlcyB0aGUgZm9j
dXNlZCBlbGVtZW50OgorCWh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3Nl
bWFudGljcy1vdGhlci5odG1sI3NlbGVjdG9yLWZvY3VzIFsxXQorCisgICAgICAgIE5vdGUgdGhh
dCBmb2N1cyBwc2V1ZG8gY2xhc3MgZG9lcyBub3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aGVuIGl0
cyBzaGFkb3cgdHJlZSBjb250YWlucyBhIHNsb3QgZWxlbWVudAorICAgICAgICB3aXRoIGEgZm9j
dXNlZCBlbGVtZW50IG9yIGl0cyBhbmNlc3RvciBhc3NpZ25lZCBzaW5jZSBzdWNoIGEgc2hhZG93
IGhvc3QgaGFzIHRoZSBhY3R1YWwgZm9jdXNlZCBlbGVtZW50CisgICAgICAgIGluIHRoZSBzYW1l
IHRyZWUgYXMgdGhlIHNoYWRvdyBob3N0LiAoZS5nLiB0aGUgZm9jdXNlZCBlbGVtZW50IGNhbiBi
ZSBhIGRpcmVjdCBjaGlsZCBvZiB0aGUgaG9zdCkuCisKKyAgICAgICAgWzFdIEFsc28gc2VlIGh0
dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9wdWxsLzQ3MzEKKworICAgICAgICBUZXN0czog
ZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1ob3N0Lmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhv
c3QtMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9u
LXNoYWRvdy1ob3N0LTIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9zaGFkb3ctZG9tL2ZvY3Vz
LXBzZXVkby1vbi1zaGFkb3ctaG9zdC0zLmh0bWwKKworICAgICAgICAqIGNzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNFbGVtZW50Q29uc2lkZXJlZEZvY3VzZWQp
OiBBZGRlZCB0byBpbXBsZW1lbnQgdGhlIG5ldyBiZWhhdmlvci4KKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ2hlY2tlcjo6bWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MpOgorICAgICAgICAqIGRv
bS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldEZvY3VzKTogQ2Fs
bCBzZXRDb250YWluc0ZvY3VzZWRFbGVtZW50IG9uIGVhY2ggc2hhZG93IHJvb3Qgd2hpY2gKKyAg
ICAgICAgY29udGFpbnMgdGhlIG5ld2x5IGZvY3VzZWQgZWxlbWVudCBoYXMgaXRzIHNoYWRvdy1p
bmNsdWRpbmcgZGVzY2VuZGFudC4KKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6Y29udGFpbnNGb2N1c2VkRWxlbWVudCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6c2V0Q29udGFpbnNGb2N1c2VkRWxlbWVudCk6
IEFkZGVkLgorCiAyMDE5LTEwLTAzICBKYW1lcyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBGaXggV2ViR0wgMSBjb25mb3JtYW5jZSByZWdyZXNzaW9ucyB3
aGVuIFVTRV9BTkdMRT0xCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4
IDI5ZDBjYjBjMzk5MDIwNzUzNzM0OWVjMjUzZWEzZDM4MTEzMmEwZjUuLmRjYzljMzE4MmM2MDA5
NGUzM2VjNzA2NmUzNTVhN2RjODVlNTlhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwCkBAIC0xMjU3LDYgKzEyNTcsMTUgQEAgdW5zaWduZWQgU2VsZWN0b3JDaGVja2Vy
OjpkZXRlcm1pbmVMaW5rTWF0Y2hUeXBlKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKICAg
ICByZXR1cm4gbGlua01hdGNoVHlwZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGlzRWxlbWVu
dENvbnNpZGVyZWRGb2N1c2VkKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKGVs
ZW1lbnQuZm9jdXNlZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGF1dG8qIHNoYWRv
d1Jvb3QgPSBlbGVtZW50LnNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gc2hhZG93Um9vdCAmJiBz
aGFkb3dSb290LT5jb250YWluc0ZvY3VzZWRFbGVtZW50KCk7Cit9CisKIHN0YXRpYyBib29sIGlz
RnJhbWVGb2N1c2VkKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIGVsZW1l
bnQuZG9jdW1lbnQoKS5mcmFtZSgpICYmIGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zZWxl
Y3Rpb24oKS5pc0ZvY3VzZWRBbmRBY3RpdmUoKTsKQEAgLTEyNjYsNyArMTI3NSw4IEBAIGJvb2wg
U2VsZWN0b3JDaGVja2VyOjptYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyhjb25zdCBFbGVtZW50JiBl
bGVtZW50KQogewogICAgIGlmIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZvcmNlUHNldWRv
U3RhdGUoZWxlbWVudCwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXMpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZWxlbWVudC5mb2N1c2VkKCkgJiYgaXNGcmFtZUZvY3Vz
ZWQoZWxlbWVudCk7CisKKyAgICByZXR1cm4gaXNFbGVtZW50Q29uc2lkZXJlZEZvY3VzZWQoZWxl
bWVudCkgJiYgaXNGcmFtZUZvY3VzZWQoZWxlbWVudCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAppbmRleCAwYjljMTM4YWFmN2YyNzM4NzE3NTRmZjczODc1OGIyNGMzZjBmMWQ5Li4wNzUx
ODY3NzM4MzkyZGU4YzY1N2FmM2RjNzBhNzY4ZmZhMzE2MWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCkBAIC02NzcsNiArNjc3LDEyIEBAIHZvaWQgRWxlbWVudDo6c2V0Rm9jdXMoYm9vbCBmbGFn
KQogICAgIGRvY3VtZW50KCkudXNlckFjdGlvbkVsZW1lbnRzKCkuc2V0Rm9jdXNlZCgqdGhpcywg
ZmxhZyk7CiAgICAgaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwogCisgICAgLy8gU2hhZG93
IGhvc3Qgd2l0aCBhIHNsb3QgdGhhdCBjb250YWluIGZvY3VzZWQgZWxlbWVudCBpcyBub3QgY29u
c2lkZXJlZCBmb2N1c2VkLgorICAgIGZvciAoYXV0byogcm9vdCA9IGNvbnRhaW5pbmdTaGFkb3dS
b290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5ob3N0KCktPmNvbnRhaW5pbmdTaGFkb3dSb290KCkp
IHsKKyAgICAgICAgcm9vdC0+c2V0Q29udGFpbnNGb2N1c2VkRWxlbWVudChmbGFnKTsKKyAgICAg
ICAgcm9vdC0+aG9zdCgpLT5pbnZhbGlkYXRlU3R5bGUoKTsKKyAgICB9CisKICAgICBmb3IgKEVs
ZW1lbnQqIGVsZW1lbnQgPSB0aGlzOyBlbGVtZW50OyBlbGVtZW50ID0gZWxlbWVudC0+cGFyZW50
RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpCiAgICAgICAgIGVsZW1lbnQtPnNldEhhc0ZvY3VzV2l0
aGluKGZsYWcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggOWNiZWU1YTc1NTYyZTIx
MTNjZDNlOGNlYWU3YTlmOTI3NTQ2NTc3OS4uMTMwN2YyZDUzZTFlYTNjMzUzOTUxODQ5NTI2NmMw
NjZhNTRhOGFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC02MCw2ICs2MCw5IEBAIHB1
YmxpYzoKICAgICBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzZXRTdHlsZUluaGVyaXRhbmNlOyB9CiAgICAgdm9pZCBzZXRSZXNldFN0eWxlSW5oZXJpdGFu
Y2UoYm9vbCk7CiAKKyAgICBib29sIGNvbnRhaW5zRm9jdXNlZEVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnRhaW5zRm9jdXNlZEVsZW1lbnQ7IH0KKyAgICB2b2lkIHNldENvbnRhaW5zRm9j
dXNlZEVsZW1lbnQoYm9vbCBmbGFnKSB7IG1fY29udGFpbnNGb2N1c2VkRWxlbWVudCA9IGZsYWc7
IH0KKwogICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdCB7IHJldHVybiBtX2hvc3Q7IH0KICAgICB2
b2lkIHNldEhvc3QoRWxlbWVudCogaG9zdCkgeyBtX2hvc3QgPSBob3N0OyB9CiAKQEAgLTEwOSw2
ICsxMTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc0JlZ3VuRGVsZXRpbmdEZXRhY2hlZENoaWxkcmVuIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fY29udGFpbnNGb2N1c2VkRWxlbWVudCB7IGZhbHNlIH07CiAg
ICAgU2hhZG93Um9vdE1vZGUgbV90eXBlIHsgU2hhZG93Um9vdE1vZGU6OlVzZXJBZ2VudCB9Owog
CiAgICAgRWxlbWVudCogbV9ob3N0IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYxODdhNzc2ZDI4OTcz
ZDA3YTc2ZThjZjA5YWZhOWUyYzdlNDM5NjguLjkzZjRlMzFkYzk2NzExNmJhNzc0NDQ1YTUwZDVl
ZmE4ZTliMzlmZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0xMC0wMyAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICA6Zm9jdXMgc2hvdWxkIGFwcGx5IHRv
IGEgc2hhZG93IGhvc3Qgd2l0aCBhIGZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCBXM0Mgc3R5bGUgdGVzdGhhcm5lc3MgdGVzdHMgYW5k
IHJlZiB0ZXN0cy4KKworICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0
Y2hlcy1vbi1zaGFkb3ctaG9zdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
c2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0Y2hlcy1vbi1zaGFkb3ctaG9zdC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0
LTEtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zaGFkb3ctZG9tL2ZvY3Vz
LXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hh
ZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMi1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0
LTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1v
bi1zaGFkb3ctaG9zdC0zLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hh
ZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMy5odG1sOiBBZGRlZC4KKwogMjAx
OS0xMC0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXN5
bmMgV1BUIHNoYWRvdyBET00gdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hh
ZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0Y2hlcy1vbi1zaGFkb3ctaG9zdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW1hdGNoZXMtb24tc2hh
ZG93LWhvc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1YmViMjZjZmZlYTdkNDFlNmUwZDBl
N2Q2ZWNkMTIyNmUwZjFmNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vZm9jdXMtcHNldWRvLW1hdGNoZXMtb24tc2hhZG93LWhvc3QtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOSBAQAorCisKK1BBU1MgOmZvY3VzIG11c3Qgbm90IG1hdGNoIGEgc2hhZG93
IGhvc3Qgd2l0aCBvcGVuIG1vZGUgc2hhZG93IHJvb3QgdGhhdCBkb2VzIG5vdCBjb250YWluIHRo
ZSBmb2N1c2VkIGVsZW1lbnQgCitQQVNTIDpmb2N1cyBtdXN0IG1hdGNoIGEgc2hhZG93IGhvc3Qg
d2l0aCBvcGVuIG1vZGUgc2hhZG93IHJvb3QgdGhhdCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVt
ZW50IAorUEFTUyA6Zm9jdXMgbXVzdCBub3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoIG9wZW4g
bW9kZSBzaGFkb3cgcm9vdCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRv
IGEgc2xvdCAKK1BBU1MgOmZvY3VzIG11c3Qgbm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBj
bG9zZWQgbW9kZSBzaGFkb3cgcm9vdCB0aGF0IGRvZXMgbm90IGNvbnRhaW4gdGhlIGZvY3VzZWQg
ZWxlbWVudCAKK1BBU1MgOmZvY3VzIG11c3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoIGNsb3Nl
ZCBtb2RlIHNoYWRvdyByb290IHRoYXQgY29udGFpbnMgdGhlIGZvY3VzZWQgZWxlbWVudCAKK1BB
U1MgOmZvY3VzIG11c3Qgbm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBjbG9zZWQgbW9kZSBz
aGFkb3cgcm9vdCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEgc2xv
dCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVk
by1tYXRjaGVzLW9uLXNoYWRvdy1ob3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1k
b20vZm9jdXMtcHNldWRvLW1hdGNoZXMtb24tc2hhZG93LWhvc3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZTA3NzdhOWQ3MWY2ZDk2NDJlMjVkYWU1MWVkZjY4MjQzMTU0ODQ2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1tYXRjaGVzLW9uLXNo
YWRvdy1ob3N0Lmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJt
YWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ijpm
b2N1cyBzaG91bGQgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aGljaCBjb250YWlucyB0aGUgZm9jdXNl
ZCBlbGVtZW50Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy8jZWxlbWVudC1oYXMtdGhlLWZvY3VzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxp
bnB1dCBpZD0iZGVmYXVsdEZvY3VzIiBhdXRvZm9jdXM+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2xldCBmb2N1c2VkRGVmYXVs
dCA9IGZhbHNlOworZnVuY3Rpb24gZGlkRm9jdXNEZWZhdWx0KCkgeyB9CitmdW5jdGlvbiBjaGVj
a0ZvY3VzTWF0Y2goKSB7CisgICAgaWYgKGRlZmF1bHRGb2N1cy5tYXRjaGVzKCc6Zm9jdXMnKSkg
eworICAgICAgICBmb2N1c2VkRGVmYXVsdCA9IHRydWU7CisgICAgICAgIGRpZEZvY3VzRGVmYXVs
dCgpOworICAgIH0gZWxzZQorICAgICAgICBzZXRUaW1lb3V0KGNoZWNrRm9jdXNNYXRjaCwgMTAw
KTsKK30KK2RlZmF1bHRGb2N1cy5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGNoZWNrRm9jdXNN
YXRjaCk7CisKK2Z1bmN0aW9uIHByZXBhcmUodGVzdCkKK3sKKyAgICB0ZXN0LmFkZF9jbGVhbnVw
KCgpID0+IHsKKyAgICAgICAgZGVmYXVsdEZvY3VzLmZvY3VzKCk7CisgICAgICAgIGNvbnRhaW5l
ci50ZXh0Q29udGVudCA9ICcnOworICAgIH0pOworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geworICAgICAgICBpZiAoZm9jdXNlZERlZmF1bHQpCisgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpZEZvY3VzRGVmYXVsdCA9IHJlc29s
dmU7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbk1vZGUobW9kZSkgeworICAgIHByb21p
c2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgICAgIGF3YWl0IHByZXBhcmUodGhpcyk7
CisgICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAg
ICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICBjb25zdCBzaGFkb3dS
b290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGV9KTsKKyAgICAgICAgc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAnPGlucHV0Pic7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZl
RWxlbWVudCwgZGVmYXVsdEZvY3VzKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dSb290
LmFjdGl2ZUVsZW1lbnQsIG51bGwpOworICAgICAgICBhc3NlcnRfZmFsc2UoaG9zdC5tYXRjaGVz
KCc6Zm9jdXMnKSk7CisgICAgfSwgYDpmb2N1cyBtdXN0IG5vdCBtYXRjaCBhIHNoYWRvdyBob3N0
IHdpdGggJHttb2RlfSBtb2RlIHNoYWRvdyByb290IHRoYXQgZG9lcyBub3QgY29udGFpbiB0aGUg
Zm9jdXNlZCBlbGVtZW50YCk7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkg
eworICAgICAgICBhd2FpdCBwcmVwYXJlKHRoaXMpOworICAgICAgICBjb25zdCBob3N0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaG9zdCk7CisgICAgICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRv
dyh7bW9kZX0pOworICAgICAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8aW5wdXQ+JzsKKyAg
ICAgICAgc2hhZG93Um9vdC5maXJzdENoaWxkLmZvY3VzKCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwgaG9zdCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2hhZG93Um9vdC5hY3RpdmVFbGVtZW50LCBzaGFkb3dSb290LmZpcnN0Q2hpbGQpOworICAgICAg
ICBhc3NlcnRfdHJ1ZShob3N0Lm1hdGNoZXMoJzpmb2N1cycpKTsKKyAgICB9LCBgOmZvY3VzIG11
c3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoICR7bW9kZX0gbW9kZSBzaGFkb3cgcm9vdCB0aGF0
IGNvbnRhaW5zIHRoZSBmb2N1c2VkIGVsZW1lbnRgKTsKKworICAgIHByb21pc2VfdGVzdChhc3lu
YyBmdW5jdGlvbiAoKSB7CisgICAgICAgIGF3YWl0IHByZXBhcmUodGhpcyk7CisgICAgICAgIGNv
bnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgY29udGFp
bmVyLmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICBjb25zdCBzaGFkb3dSb290ID0gaG9zdC5h
dHRhY2hTaGFkb3coe21vZGV9KTsKKyAgICAgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHNs
b3Q+JzsKKyAgICAgICAgaG9zdC5pbm5lckhUTUwgPSAnPGlucHV0Pic7CisgICAgICAgIGhvc3Qu
Zmlyc3RDaGlsZC5mb2N1cygpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQsIGhvc3QuZmlyc3RDaGlsZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93
Um9vdC5hY3RpdmVFbGVtZW50LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGhvc3QubWF0
Y2hlcygnOmZvY3VzJykpOworICAgIH0sIGA6Zm9jdXMgbXVzdCBub3QgbWF0Y2ggYSBzaGFkb3cg
aG9zdCB3aXRoICR7bW9kZX0gbW9kZSBzaGFkb3cgcm9vdCBjb250YWlucyB0aGUgZm9jdXNlZCBl
bGVtZW50IGFzc2lnbmVkIHRvIGEgc2xvdGApOworCit9CisKK3Rlc3RJbk1vZGUoJ29wZW4nKTsK
K3Rlc3RJbk1vZGUoJ2Nsb3NlZCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hh
ZG93LWhvc3QtMS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2Zv
Y3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRh
NzEzYTdlZGEzZjAxNTViMDJmNjJhY2Y0MzJhYzMzN2RlOTYzZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3Qt
MS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSAx
MDBweCBieSAxMDBweCBncmVlbiBib3ggYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IHN0eWxlPSJ3
aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ct
ZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTEuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMGQyODkzMWY0M2YyZWJjMzFlYmUzNGM1YzQzZmUzMzdmM2JhNTRiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ct
aG9zdC0xLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWls
dG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ijpmb2N1
cyBzaG91bGQgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aGljaCBjb250YWlucyB0aGUgZm9jdXNlZCBl
bGVtZW50Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy8jZWxlbWVudC1oYXMtdGhlLWZvY3VzIj4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBw
YXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSAxMDBweCBieSAxMDBweCBncmVlbiBib3ggYmVsb3cu
PC9wPgorPGRpdiBpZD0iaG9zdCI+PC9kaXY+Cis8c3R5bGU+CisjaG9zdCB7IGJhY2tncm91bmQ6
IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBvdXRsaW5lOiBub25lOyB9CisjaG9z
dDpmb2N1cyB7IGJhY2tncm91bmQ6IGdyZWVuOyB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKworY29u
c3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdiB0YWJpbmRleD0iMCIgc3R5bGU9Im91dGxpbmU6IG5v
bmU7Ij48L2Rpdj4nOworc2hhZG93Um9vdC5maXJzdENoaWxkLmZvY3VzKCk7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ct
ZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0yLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTItZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZGE3MTNhN2VkYTNmMDE1NWIwMmY2MmFjZjQzMmFjMzM3ZGU5
NjNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3Vz
LXBzZXVkby1vbi1zaGFkb3ctaG9zdC0yLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IHBhc3Nl
cyBpZiB5b3Ugc2VlIGEgc2luZ2xlIDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBiZWxvdy48L3A+
CisgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dy
b3VuZDogZ3JlZW47Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTIu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93
LWhvc3QtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4NDQ3YjRiMWYwMTliOWI4NTUxODFiOTdjMjNlMWIx
OTU2ZmZkODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
Zm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTIuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJS
eW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9
ImFzc2VydCIgY29udGVudD0iOmZvY3VzIHNob3VsZCBtYXRjaCBhIHNoYWRvdyBob3N0IHdoaWNo
IGNvbnRhaW5zIHRoZSBmb2N1c2VkIGVsZW1lbnQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNlbGVtZW50LWhhcy10aGUtZm9jdXMiPgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIDEwMHB4IGJ5
IDEwMHB4IGdyZWVuIGJveCBiZWxvdy48L3A+Cis8ZGl2IGlkPSJob3N0Ij48c3Bhbj5GQUlMPC9z
cGFuPjwvZGl2PgorPHN0eWxlPgorI2hvc3QgeyBiYWNrZ3JvdW5kOiBncmVlbjsgd2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDEwMHB4OyBvdXRsaW5lOiBub25lOyB9CisjaG9zdCBzcGFuIHsgYmFja2dy
b3VuZDogcmVkOyB9CisjaG9zdDpmb2N1cyBzcGFuIHsgYmFja2dyb3VuZDogZ3JlZW47IGNvbG9y
OiBncmVlbjsgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0
LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
JzxkaXYgdGFiaW5kZXg9IjAiIHN0eWxlPSJvdXRsaW5lOiBub25lOyI+PHNsb3Q+PC9zbG90Pjwv
ZGl2Pic7CitzaGFkb3dSb290LmZpcnN0Q2hpbGQuZm9jdXMoKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9j
dXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMy1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVkYTcxM2E3ZWRhM2YwMTU1YjAyZjYyYWNmNDMyYWMzMzdkZTk2M2QKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRv
LW9uLXNoYWRvdy1ob3N0LTMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlv
dSBzZWUgYSBzaW5nbGUgMTAwcHggYnkgMTAwcHggZ3JlZW4gYm94IGJlbG93LjwvcD4KKyAgICAg
ICAgPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBn
cmVlbjsiPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0z
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWQwMTc3MzAwMDM0MTQ0OWY0ODBjNmM5OGRjNTg3NTkyMGVmZTc0
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1w
c2V1ZG8tb24tc2hhZG93LWhvc3QtMy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2Ug
Tml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0
IiBjb250ZW50PSI6Zm9jdXMgc2hvdWxkIG5vdCBtYXRjaCBhIHNoYWRvdyBob3N0IGlmIHRoZSBm
b2N1c2VkIGVsZW1lbnQgaXMgYSBzbG90dGVkIGNvbnRlbnQiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNlbGVtZW50LWhhcy10aGUtZm9jdXMi
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIDEw
MHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBiZWxvdy48L3A+Cis8ZGl2IGlkPSJob3N0Ij48ZGl2IGlk
PSJ0YXJnZXQiIHRhYmluZGV4PSIwIj48L2Rpdj48L2Rpdj4KKzxzdHlsZT4KKyNob3N0IHsgYmFj
a2dyb3VuZDogZ3JlZW47IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgfQorI2hvc3Q6Zm9j
dXMgI3RhcmdldCB7IGJhY2tncm91bmQ6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
OyB9CisjdGFyZ2V0IHsgb3V0bGluZTogbm9uZTsgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisKK2Nv
bnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3No
YWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzbG90Pjwvc2xvdD4nOwordGFyZ2V0LmZvY3VzKCk7CisK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380188</attachid>
            <date>2019-10-03 22:26:49 -0700</date>
            <delta_ts>2019-10-04 21:35:26 -0700</delta_ts>
            <desc>Updates the behavior</desc>
            <filename>bug-202432-20191003222648.patch</filename>
            <type>text/plain</type>
            <size>15797</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhOWFlZDM5Y2FjOTUy
MTRjYjc2OTk2MjkyOGJjODQ1YmZhYjhjNC4uN2ViZmE3ZGYyZDQ3YzRiMzFlYjY5YjA1ZjI0NDU4
YjY0Yzk4NmY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEwLTAzICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGZvY3VzIHBzZXVkbyBjbGFz
cyBzaG91bGQgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aG9zZSBzaGFkb3cgdHJlZSBjb250YWlucyB0
aGUgZm9jdXNlZCBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI0MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGVkIHRoZSBiZWhhdmlvciBvZiBmb2N1cyBwc2V1ZG8gY2xhc3NzIHRv
IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2hpY2ggaW5jbHVkZXMgdGhlIGZvY3VzZWQgZWxlbWVudDoK
KyAgICAgICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2VtYW50aWNz
LW90aGVyLmh0bWwjc2VsZWN0b3ItZm9jdXMgWzFdCisKKyAgICAgICAgTm90ZSB0aGF0IGZvY3Vz
IHBzZXVkbyBjbGFzcyBkb2VzIG5vdCBtYXRjaCBhIHNoYWRvdyBob3N0IHdoZW4gaXRzIHNoYWRv
dyB0cmVlIGNvbnRhaW5zIGEgc2xvdCBlbGVtZW50CisgICAgICAgIHdpdGggYSBmb2N1c2VkIGVs
ZW1lbnQgb3IgaXRzIGFuY2VzdG9yIGFzc2lnbmVkIHNpbmNlIHN1Y2ggYSBzaGFkb3cgaG9zdCBo
YXMgdGhlIGFjdHVhbCBmb2N1c2VkIGVsZW1lbnQKKyAgICAgICAgaW4gdGhlIHNhbWUgdHJlZSBh
cyB0aGUgc2hhZG93IGhvc3QuIChlLmcuIHRoZSBmb2N1c2VkIGVsZW1lbnQgY2FuIGJlIGEgZGly
ZWN0IGNoaWxkIG9mIHRoZSBob3N0KS4KKworICAgICAgICBbMV0gQWxzbyBzZWUgaHR0cHM6Ly9n
aXRodWIuY29tL3doYXR3Zy9odG1sL3B1bGwvNDczMQorCisgICAgICAgIFRlc3RzOiBmYXN0L3No
YWRvdy1kb20vZm9jdXMtcHNldWRvLW1hdGNoZXMtb24tc2hhZG93LWhvc3QuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93
LWhvc3QtMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRv
LW9uLXNoYWRvdy1ob3N0LTMuaHRtbAorCisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjppc0VsZW1lbnRDb25zaWRlcmVkRm9jdXNlZCk6IEFkZGVk
IHRvIGltcGxlbWVudCB0aGUgbmV3IGJlaGF2aW9yLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JDaGVja2VyOjptYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyk6CisgICAgICAgICogZG9tL0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Rm9jdXMpOiBDYWxsIHNldENv
bnRhaW5zRm9jdXNlZEVsZW1lbnQgb24gZWFjaCBzaGFkb3cgcm9vdCB3aGljaAorICAgICAgICBj
b250YWlucyB0aGUgbmV3bHkgZm9jdXNlZCBlbGVtZW50IGhhcyBpdHMgc2hhZG93LWluY2x1ZGlu
ZyBkZXNjZW5kYW50LgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290Ojpjb250YWluc0ZvY3VzZWRFbGVtZW50KTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dSb290OjpzZXRDb250YWluc0ZvY3VzZWRFbGVtZW50KTogQWRkZWQu
CisKIDIwMTktMTAtMDMgIEphbWVzIERhcnBpbmlhbiAgPGpkYXJwaW5pYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEZpeCBXZWJHTCAxIGNvbmZvcm1hbmNlIHJlZ3Jlc3Npb25zIHdoZW4gVVNF
X0FOR0xFPTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggMjlkMGNi
MGMzOTkwMjA3NTM3MzQ5ZWMyNTNlYTNkMzgxMTMyYTBmNS4uZGNjOWMzMTgyYzYwMDk0ZTMzZWM3
MDY2ZTM1NWE3ZGM4NWU1OWFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVj
dG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5j
cHAKQEAgLTEyNTcsNiArMTI1NywxNSBAQCB1bnNpZ25lZCBTZWxlY3RvckNoZWNrZXI6OmRldGVy
bWluZUxpbmtNYXRjaFR5cGUoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQogICAgIHJldHVy
biBsaW5rTWF0Y2hUeXBlOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgaXNFbGVtZW50Q29uc2lk
ZXJlZEZvY3VzZWQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoZWxlbWVudC5m
b2N1c2VkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgYXV0byogc2hhZG93Um9vdCA9
IGVsZW1lbnQuc2hhZG93Um9vdCgpOworICAgIHJldHVybiBzaGFkb3dSb290ICYmIHNoYWRvd1Jv
b3QtPmNvbnRhaW5zRm9jdXNlZEVsZW1lbnQoKTsKK30KKwogc3RhdGljIGJvb2wgaXNGcmFtZUZv
Y3VzZWQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICByZXR1cm4gZWxlbWVudC5kb2N1
bWVudCgpLmZyYW1lKCkgJiYgZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPnNlbGVjdGlvbigp
LmlzRm9jdXNlZEFuZEFjdGl2ZSgpOwpAQCAtMTI2Niw3ICsxMjc1LDggQEAgYm9vbCBTZWxlY3Rv
ckNoZWNrZXI6Om1hdGNoZXNGb2N1c1BzZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQp
CiB7CiAgICAgaWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0ZShl
bGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1cykpCiAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIHJldHVybiBlbGVtZW50LmZvY3VzZWQoKSAmJiBpc0ZyYW1lRm9jdXNlZChlbGVt
ZW50KTsKKworICAgIHJldHVybiBpc0VsZW1lbnRDb25zaWRlcmVkRm9jdXNlZChlbGVtZW50KSAm
JiBpc0ZyYW1lRm9jdXNlZChlbGVtZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IDBiOWMxMzhhYWY3ZjI3Mzg3MTc1NGZmNzM4NzU4YjI0YzNmMGYxZDkuLjA3NTE4Njc3Mzgz
OTJkZThjNjU3YWYzZGM3MGE3NjhmZmEzMTYxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTY3Nyw2ICs2NzcsMTIgQEAgdm9pZCBFbGVtZW50OjpzZXRGb2N1cyhib29sIGZsYWcpCiAgICAg
ZG9jdW1lbnQoKS51c2VyQWN0aW9uRWxlbWVudHMoKS5zZXRGb2N1c2VkKCp0aGlzLCBmbGFnKTsK
ICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAKKyAgICAvLyBTaGFkb3cgaG9zdCB3
aXRoIGEgc2xvdCB0aGF0IGNvbnRhaW4gZm9jdXNlZCBlbGVtZW50IGlzIG5vdCBjb25zaWRlcmVk
IGZvY3VzZWQuCisgICAgZm9yIChhdXRvKiByb290ID0gY29udGFpbmluZ1NoYWRvd1Jvb3QoKTsg
cm9vdDsgcm9vdCA9IHJvb3QtPmhvc3QoKS0+Y29udGFpbmluZ1NoYWRvd1Jvb3QoKSkgeworICAg
ICAgICByb290LT5zZXRDb250YWluc0ZvY3VzZWRFbGVtZW50KGZsYWcpOworICAgICAgICByb290
LT5ob3N0KCktPmludmFsaWRhdGVTdHlsZSgpOworICAgIH0KKwogICAgIGZvciAoRWxlbWVudCog
ZWxlbWVudCA9IHRoaXM7IGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50
SW5Db21wb3NlZFRyZWUoKSkKICAgICAgICAgZWxlbWVudC0+c2V0SGFzRm9jdXNXaXRoaW4oZmxh
Zyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCA5Y2JlZTVhNzU1NjJlMjExM2NkM2U4
Y2VhZTdhOWY5Mjc1NDY1Nzc5Li4xMzA3ZjJkNTNlMWVhM2MzNTM5NTE4NDk1MjY2YzA2NmE1NGE4
YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTYwLDYgKzYwLDkgQEAgcHVibGljOgog
ICAgIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNldFN0
eWxlSW5oZXJpdGFuY2U7IH0KICAgICB2b2lkIHNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29s
KTsKIAorICAgIGJvb2wgY29udGFpbnNGb2N1c2VkRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y29udGFpbnNGb2N1c2VkRWxlbWVudDsgfQorICAgIHZvaWQgc2V0Q29udGFpbnNGb2N1c2VkRWxl
bWVudChib29sIGZsYWcpIHsgbV9jb250YWluc0ZvY3VzZWRFbGVtZW50ID0gZmxhZzsgfQorCiAg
ICAgRWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1faG9zdDsgfQogICAgIHZvaWQgc2V0
SG9zdChFbGVtZW50KiBob3N0KSB7IG1faG9zdCA9IGhvc3Q7IH0KIApAQCAtMTA5LDYgKzExMiw3
IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faGFzQmVndW5EZWxldGluZ0RldGFjaGVkQ2hpbGRyZW4geyBmYWxzZSB9
OworICAgIGJvb2wgbV9jb250YWluc0ZvY3VzZWRFbGVtZW50IHsgZmFsc2UgfTsKICAgICBTaGFk
b3dSb290TW9kZSBtX3R5cGUgeyBTaGFkb3dSb290TW9kZTo6VXNlckFnZW50IH07CiAKICAgICBF
bGVtZW50KiBtX2hvc3QgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjE4N2E3NzZkMjg5NzNkMDdhNzZl
OGNmMDlhZmE5ZTJjN2U0Mzk2OC4uMWVjNTFmZTNhZGUxM2IyMjdmMTIwMTExZTM4NjNhMDZhODYz
YTgxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEwLTAzICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGZvY3VzIHBzZXVkbyBjbGFzcyBzaG91bGQgbWF0
Y2ggYSBzaGFkb3cgaG9zdCB3aG9zZSBzaGFkb3cgdHJlZSBjb250YWlucyB0aGUgZm9jdXNlZCBl
bGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDI0MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBXM0Mgc3R5bGUgdGVzdGhhcm5lc3MgdGVzdHMgYW5kIHJlZiB0ZXN0cy4KKworICAgICAg
ICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0Y2hlcy1vbi1zaGFkb3ctaG9zdC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1
ZG8tbWF0Y2hlcy1vbi1zaGFkb3ctaG9zdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3No
YWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTEtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9z
dC0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8t
b24tc2hhZG93LWhvc3QtMi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3No
YWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0zLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8t
b24tc2hhZG93LWhvc3QtMy5odG1sOiBBZGRlZC4KKwogMjAxOS0xMC0wMyAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXN5bmMgV1BUIHNoYWRvdyBET00gdGVz
dHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8t
bWF0Y2hlcy1vbi1zaGFkb3ctaG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vZm9jdXMtcHNldWRvLW1hdGNoZXMtb24tc2hhZG93LWhvc3QtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg1YmViMjZjZmZlYTdkNDFlNmUwZDBlN2Q2ZWNkMTIyNmUwZjFmNWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRv
LW1hdGNoZXMtb24tc2hhZG93LWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCisK
K1BBU1MgOmZvY3VzIG11c3Qgbm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBvcGVuIG1vZGUg
c2hhZG93IHJvb3QgdGhhdCBkb2VzIG5vdCBjb250YWluIHRoZSBmb2N1c2VkIGVsZW1lbnQgCitQ
QVNTIDpmb2N1cyBtdXN0IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBvcGVuIG1vZGUgc2hhZG93
IHJvb3QgdGhhdCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IAorUEFTUyA6Zm9jdXMgbXVz
dCBub3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoIG9wZW4gbW9kZSBzaGFkb3cgcm9vdCBjb250
YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEgc2xvdCAKK1BBU1MgOmZvY3Vz
IG11c3Qgbm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBjbG9zZWQgbW9kZSBzaGFkb3cgcm9v
dCB0aGF0IGRvZXMgbm90IGNvbnRhaW4gdGhlIGZvY3VzZWQgZWxlbWVudCAKK1BBU1MgOmZvY3Vz
IG11c3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoIGNsb3NlZCBtb2RlIHNoYWRvdyByb290IHRo
YXQgY29udGFpbnMgdGhlIGZvY3VzZWQgZWxlbWVudCAKK1BBU1MgOmZvY3VzIG11c3Qgbm90IG1h
dGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBjbG9zZWQgbW9kZSBzaGFkb3cgcm9vdCBjb250YWlucyB0
aGUgZm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEgc2xvdCAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1o
b3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW1hdGNo
ZXMtb24tc2hhZG93LWhvc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTA3NzdhOWQ3MWY2ZDk2NDJlMjVk
YWU1MWVkZjY4MjQzMTU0ODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
aGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1ob3N0Lmh0bWwKQEAgLTAs
MCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0i
YXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9y
ZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ijpmb2N1cyBzaG91bGQgbWF0Y2ggYSBz
aGFkb3cgaG9zdCB3aGljaCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50Ij4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZWxlbWVudC1oYXMt
dGhlLWZvY3VzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCBpZD0iZGVmYXVsdEZvY3Vz
IiBhdXRvZm9jdXM+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPGRpdiBpZD0iY29udGFpbmVyIj48
L2Rpdj4KKzxzY3JpcHQ+CisKK2xldCBmb2N1c2VkRGVmYXVsdCA9IGZhbHNlOworZnVuY3Rpb24g
ZGlkRm9jdXNEZWZhdWx0KCkgeyB9CitmdW5jdGlvbiBjaGVja0ZvY3VzTWF0Y2goKSB7CisgICAg
aWYgKGRlZmF1bHRGb2N1cy5tYXRjaGVzKCc6Zm9jdXMnKSkgeworICAgICAgICBmb2N1c2VkRGVm
YXVsdCA9IHRydWU7CisgICAgICAgIGRpZEZvY3VzRGVmYXVsdCgpOworICAgIH0gZWxzZQorICAg
ICAgICBzZXRUaW1lb3V0KGNoZWNrRm9jdXNNYXRjaCwgMTAwKTsKK30KK2RlZmF1bHRGb2N1cy5h
ZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGNoZWNrRm9jdXNNYXRjaCk7CisKK2Z1bmN0aW9uIHBy
ZXBhcmUodGVzdCkKK3sKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IHsKKyAgICAgICAgZGVm
YXVsdEZvY3VzLmZvY3VzKCk7CisgICAgICAgIGNvbnRhaW5lci50ZXh0Q29udGVudCA9ICcnOwor
ICAgIH0pOworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICBp
ZiAoZm9jdXNlZERlZmF1bHQpCisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGRpZEZvY3VzRGVmYXVsdCA9IHJlc29sdmU7CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RJbk1vZGUobW9kZSkgeworICAgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlv
biAoKSB7CisgICAgICAgIGF3YWl0IHByZXBhcmUodGhpcyk7CisgICAgICAgIGNvbnN0IGhvc3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgY29udGFpbmVyLmFwcGVu
ZENoaWxkKGhvc3QpOworICAgICAgICBjb25zdCBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFk
b3coe21vZGV9KTsKKyAgICAgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGlucHV0Pic7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwgZGVmYXVsdEZvY3Vz
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQsIG51bGwp
OworICAgICAgICBhc3NlcnRfZmFsc2UoaG9zdC5tYXRjaGVzKCc6Zm9jdXMnKSk7CisgICAgfSwg
YDpmb2N1cyBtdXN0IG5vdCBtYXRjaCBhIHNoYWRvdyBob3N0IHdpdGggJHttb2RlfSBtb2RlIHNo
YWRvdyByb290IHRoYXQgZG9lcyBub3QgY29udGFpbiB0aGUgZm9jdXNlZCBlbGVtZW50YCk7CisK
KyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgICAgICBhd2FpdCBwcmVw
YXJlKHRoaXMpOworICAgICAgICBjb25zdCBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7CisgICAgICAg
IGNvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZX0pOworICAgICAgICBz
aGFkb3dSb290LmlubmVySFRNTCA9ICc8aW5wdXQ+JzsKKyAgICAgICAgc2hhZG93Um9vdC5maXJz
dENoaWxkLmZvY3VzKCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZlRWxl
bWVudCwgaG9zdCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Um9vdC5hY3RpdmVFbGVt
ZW50LCBzaGFkb3dSb290LmZpcnN0Q2hpbGQpOworICAgICAgICBhc3NlcnRfdHJ1ZShob3N0Lm1h
dGNoZXMoJzpmb2N1cycpKTsKKyAgICB9LCBgOmZvY3VzIG11c3QgbWF0Y2ggYSBzaGFkb3cgaG9z
dCB3aXRoICR7bW9kZX0gbW9kZSBzaGFkb3cgcm9vdCB0aGF0IGNvbnRhaW5zIHRoZSBmb2N1c2Vk
IGVsZW1lbnRgKTsKKworICAgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAg
ICAgIGF3YWl0IHByZXBhcmUodGhpcyk7CisgICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3Qp
OworICAgICAgICBjb25zdCBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGV9KTsK
KyAgICAgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHNsb3Q+JzsKKyAgICAgICAgaG9zdC5p
bm5lckhUTUwgPSAnPGlucHV0Pic7CisgICAgICAgIGhvc3QuZmlyc3RDaGlsZC5mb2N1cygpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsIGhvc3QuZmlyc3RD
aGlsZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50LCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGhvc3QubWF0Y2hlcygnOmZvY3VzJykpOworICAg
IH0sIGA6Zm9jdXMgbXVzdCBub3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoICR7bW9kZX0gbW9k
ZSBzaGFkb3cgcm9vdCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEg
c2xvdGApOworCit9CisKK3Rlc3RJbk1vZGUoJ29wZW4nKTsKK3Rlc3RJbk1vZGUoJ2Nsb3NlZCcp
OworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMS1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ct
aG9zdC0xLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRhNzEzYTdlZGEzZjAxNTViMDJmNjJh
Y2Y0MzJhYzMzN2RlOTYzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hh
ZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMS1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAgICAg
PHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSAxMDBweCBieSAxMDBweCBncmVlbiBi
b3ggYmVsb3cuPC9wPgorICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
MTAwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1z
aGFkb3ctaG9zdC0xLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNl
dWRvLW9uLXNoYWRvdy1ob3N0LTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGQyODkzMWY0M2YyZWJjMzFl
YmUzNGM1YzQzZmUzMzdmM2JhNTRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0bWwKQEAgLTAsMCAr
MSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0iYXV0
aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+
Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ijpmb2N1cyBzaG91bGQgbWF0Y2ggYSBzaGFk
b3cgaG9zdCB3aGljaCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50Ij4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZWxlbWVudC1oYXMtdGhl
LWZvY3VzIj4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNp
bmdsZSAxMDBweCBieSAxMDBweCBncmVlbiBib3ggYmVsb3cuPC9wPgorPGRpdiBpZD0iaG9zdCI+
PC9kaXY+Cis8c3R5bGU+CisjaG9zdCB7IGJhY2tncm91bmQ6IHJlZDsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDEwMHB4OyBvdXRsaW5lOiBub25lOyB9CisjaG9zdDpmb2N1cyB7IGJhY2tncm91bmQ6
IGdyZWVuOyB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKworY29uc3Qgc2hhZG93Um9vdCA9IGhvc3Qu
YXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworc2hhZG93Um9vdC5pbm5lckhUTUwgPSAn
PGRpdiB0YWJpbmRleD0iMCIgc3R5bGU9Im91dGxpbmU6IG5vbmU7Ij48L2Rpdj4nOworc2hhZG93
Um9vdC5maXJzdENoaWxkLmZvY3VzKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1z
aGFkb3ctaG9zdC0yLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
Zm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZGE3MTNhN2VkYTNmMDE1NWIwMmY2MmFjZjQzMmFjMzM3ZGU5NjNkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9z
dC0yLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xl
IDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBiZWxvdy48L3A+CisgICAgICAgIDxkaXYgc3R5bGU9
IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRv
dy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY4NDQ3YjRiMWYwMTliOWI4NTUxODFiOTdjMjNlMWIxOTU2ZmZkODIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRv
dy1ob3N0LTIuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1h
aWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iOmZv
Y3VzIHNob3VsZCBtYXRjaCBhIHNoYWRvdyBob3N0IHdoaWNoIGNvbnRhaW5zIHRoZSBmb2N1c2Vk
IGVsZW1lbnQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnLyNlbGVtZW50LWhhcy10aGUtZm9jdXMiPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0
IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBiZWxv
dy48L3A+Cis8ZGl2IGlkPSJob3N0Ij48c3Bhbj5GQUlMPC9zcGFuPjwvZGl2PgorPHN0eWxlPgor
I2hvc3QgeyBiYWNrZ3JvdW5kOiBncmVlbjsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBv
dXRsaW5lOiBub25lOyB9CisjaG9zdCBzcGFuIHsgYmFja2dyb3VuZDogcmVkOyB9CisjaG9zdDpm
b2N1cyBzcGFuIHsgYmFja2dyb3VuZDogZ3JlZW47IGNvbG9yOiBncmVlbjsgfQorPC9zdHlsZT4K
KzxzY3JpcHQ+CisKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTog
J2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXYgdGFiaW5kZXg9IjAiIHN0
eWxlPSJvdXRsaW5lOiBub25lOyI+PHNsb3Q+PC9zbG90PjwvZGl2Pic7CitzaGFkb3dSb290LmZp
cnN0Q2hpbGQuZm9jdXMoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1o
b3N0LTMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1w
c2V1ZG8tb24tc2hhZG93LWhvc3QtMy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYTcxM2E3
ZWRhM2YwMTU1YjAyZjYyYWNmNDMyYWMzMzdkZTk2M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTMtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAg
PGJvZHk+CisgICAgICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUgMTAwcHgg
YnkgMTAwcHggZ3JlZW4gYm94IGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9m
b2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFk
b3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0zLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQw
MTc3MzAwMDM0MTQ0OWY0ODBjNmM5OGRjNTg3NTkyMGVmZTc0NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3Qt
My5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJu
aXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSI6Zm9jdXMgc2hv
dWxkIG5vdCBtYXRjaCBhIHNoYWRvdyBob3N0IGlmIHRoZSBmb2N1c2VkIGVsZW1lbnQgaXMgYSBz
bG90dGVkIGNvbnRlbnQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnLyNlbGVtZW50LWhhcy10aGUtZm9jdXMiPgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJv
eCBiZWxvdy48L3A+Cis8ZGl2IGlkPSJob3N0Ij48ZGl2IGlkPSJ0YXJnZXQiIHRhYmluZGV4PSIw
Ij48L2Rpdj48L2Rpdj4KKzxzdHlsZT4KKyNob3N0IHsgYmFja2dyb3VuZDogZ3JlZW47IHdpZHRo
OiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgfQorI2hvc3Q6Zm9jdXMgI3RhcmdldCB7IGJhY2tncm91
bmQ6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB9CisjdGFyZ2V0IHsgb3V0bGlu
ZTogbm9uZTsgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0
LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
JzxzbG90Pjwvc2xvdD4nOwordGFyZ2V0LmZvY3VzKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380277</attachid>
            <date>2019-10-04 21:35:27 -0700</date>
            <delta_ts>2019-10-04 23:26:53 -0700</delta_ts>
            <desc>Fixed the tests</desc>
            <filename>bug-202432-20191004213527.patch</filename>
            <type>text/plain</type>
            <size>29924</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDc2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBACisyMDE5LTEwLTA0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGZvY3VzIHBzZXVkbyBjbGFzcyBz
aG91bGQgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aG9zZSBzaGFkb3cgdHJlZSBjb250YWlucyB0aGUg
Zm9jdXNlZCBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDI0MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOb3RlIHRoYXQgZm9jdXMgcHNldWRvIGNsYXNzIGRvZXMgbm90IG1hdGNoIGEgc2hh
ZG93IGhvc3Qgd2hlbiBpdHMgc2hhZG93IHRyZWUgY29udGFpbnMgYSBzbG90IGVsZW1lbnQKKyAg
ICAgICAgd2l0aCBhIGZvY3VzZWQgZWxlbWVudCBvciBpdHMgYW5jZXN0b3IgYXNzaWduZWQgc2lu
Y2Ugc3VjaCBhIHNoYWRvdyBob3N0IGhhcyB0aGUgYWN0dWFsIGZvY3VzZWQgZWxlbWVudAorICAg
ICAgICBpbiB0aGUgc2FtZSB0cmVlIGFzIHRoZSBzaGFkb3cgaG9zdC4gKGUuZy4gdGhlIGZvY3Vz
ZWQgZWxlbWVudCBjYW4gYmUgYSBkaXJlY3QgY2hpbGQgb2YgdGhlIGhvc3QpLgorCisgICAgICAg
IEluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBiZWhhdmlvciBvZiBmb2N1cyByaW5nLCB3aGljaCBz
aG91bGQgYmUgb25seSBkcmF3biBvbiB0aGUgY3VycmVudGx5IGZvY3VzZWQKKyAgICAgICAgZWxl
bWVudCBhbmQgbm90IGFueSBzaGFkb3cgaG9zdCB3aGljaCBjb250YWlucyBzdWNoIGFuIGVsZW1l
bnQsIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBwc2V1ZG8gY2xhc3MsCisgICAgICAgIC13
ZWJraXQtZGlyZWN0LWZvY3VzLCB3aGljaCBpcyBvbmx5IGF2YWlsYWJsZSBpbiB0aGUgdXNlciBh
Z2VudCBzdHlsZXNoZWV0LiBQdXR0aW5nIDpob3N0KDpmb2N1cykgcnVsZQorICAgICAgICBpc24n
dCBzdWZmaWNpZW50IGJlY2F1c2Ugc3R5bGUgcnVsZXMgaW5zaWRlIHNoYWRvdyB0cmVlcyBhbHdh
eXMgaGFzIGEgbG93ZXIgcHJlY2VuZGVuY2UgdGhhbiBydWxlcworICAgICAgICBvdXRzaWRlIHRo
ZSBzaGFkb3cgdHJlZSAodGhlIHRyZWUgb2YgaXRzIHNoYWRvdyBob3N0KS4KKworICAgICAgICBb
MV0gQWxzbyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL3B1bGwvNDczMQorCisg
ICAgICAgIFRlc3RzOiBmYXN0L3NoYWRvdy1kb20vZGlyZWN0LWZvY3VzLXBzZXVkby1kb2VzLW5v
dC1tYXRjaC1pbi1hdXRob3Itc3R5bGVzaGVldC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3No
YWRvdy1kb20vZm9jdXMtcHNldWRvLW1hdGNoZXMtb24tc2hhZG93LWhvc3QuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93
LWhvc3QtMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRv
LW9uLXNoYWRvdy1ob3N0LTMuaHRtbAorCisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQgY29uc3QpOiBBZGRl
ZCB0aGUgc3VwcG9ydCBmb3IgLXdlYmtpdC1kaXJlY3QtZm9jdXMuCisgICAgICAgICogY3NzL0NT
U1NlbGVjdG9yLmg6CisgICAgICAgICogY3NzL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UnVsZVNldDo6YWRkUnVsZSk6IERpdHRvLgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSBjb25z
dCk6OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmRvZXNTaGFkb3dUcmVlQ29udGFpbkZvY3Vz
ZWRFbGVtZW50KTo6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpt
YXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyk6IEltcGxlbWVudGVkIHRoZSBuZXcgYmVoYXZpb3IuCisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6Om1hdGNoZXNEaXJlY3RGb2N1c1BzZXVk
b0NsYXNzKTogQWRkZWQuIEltcGxlbWVudHMgdGhlIG9sZCBiZWhhdmlvciBmb3IKKyAgICAgICAg
dGhlIGZvY3VzIHJpbmcgdmlhIC13ZWJraXQtZGlyZWN0LWZvY3VzIHBzZXVkbyBjbGFzcy4KKyAg
ICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmg6CisgICAgICAgICogY3NzL1NlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbjogQWRkZWQgLXdlYmtpdC1kaXJl
Y3QtZm9jdXMuCisgICAgICAgICogY3NzL2h0bWwuY3NzOiBVc2UgLXdlYmtpdC1kaXJlY3QtZm9j
dXMgcHNldWRvIGNsYXNzIHRvIHByZXNlcnZlIHRoZSBleGlzdGluZyBiZWhhdmlvciBvZiBmb2N1
cyByaW5nLgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OmNvbnN1bWVQc2V1ZG8pOiBJZ25vcmUg
LXdlYmtpdC1kaXJlY3QtZm9jdXMgaW4gYXV0aG9yIGFuZCB1c2VyIHN0eWxlc2hlZXRzLgorICAg
ICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb0NsYXNzVHlwZSk6IEFkZGVkIHRoZSBzdXBwb3J0IGZv
ciAtd2Via2l0LWRpcmVjdC1mb2N1cy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRGb2N1cyk6IEludm9rZSBzZXRDb250YWluc0ZvY3Vz
ZWRFbGVtZW50IG9uIGVhY2ggc2hhZG93IGFuY2VzdG9yIHJvb3Qgb2YKKyAgICAgICAgdGhlIG5l
d2x5IGZvY3VzZWQgZWxlbWVudC4gTm90ZSB0aGF0IHdlIGNhbid0IHVzZSA6Zm9jdXMtd2l0aGlu
IHBzZXVkbyBjbGFzcyBzaW5jZSB0aGF0IHdvdWxkIGFsc28gbWF0Y2gKKyAgICAgICAgdGhlIGhv
c3Qgb2YgYSBzaGFkb3cgcm9vdCB3aGljaCBjb250YWlucyBhIHNsb3R0ZWQgZm9jdXNlZCBlbGVt
ZW50LCBjYXVzaW5nIGJvdGggdGhlIHNoYWRvdyBob3N0IGFuZAorICAgICAgICB0aGUgc2xvdHRl
ZCBlbGVtZW50IHRvIG1hdGNoIDpmb2N1cyBwc2V1ZG8gY2xhc3MgaW4gdGhlIGhvc3QncyB0cmVl
LgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisKIDIwMTktMTAtMDQgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2hhbmdlICJJbnZhbGlkU3RhdGVFcnJv
ciIgdG8gIk5vdFN1cHBvcnRlZEVycm9yIiBmb3IgYXR0YWNoU2hhZG93KCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAkocmV2aXNpb24gMjUwNzQzKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM4LDYgKzQzOCw5IEBA
IFN0cmluZyBDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KGNvbnN0IFMKICAgICAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzQXV0b2ZpbGxTdHJvbmdQYXNzd29yZFZpZXdhYmxl
OgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1hdXRvZmlsbC1z
dHJvbmctcGFzc3dvcmQtdmlld2FibGUiKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGlyZWN0Rm9jdXM6CisgICAgICAg
ICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWRpcmVjdC1mb2N1cyIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NEcmFnOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1k
cmFnIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaAkocmV2aXNpb24gMjUwNzQzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCw2ICsxMTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICBQc2V1ZG9DbGFzc0F1dG9maWxsU3Ryb25nUGFzc3dvcmQsCiAgICAgICAg
ICAgICBQc2V1ZG9DbGFzc0F1dG9maWxsU3Ryb25nUGFzc3dvcmRWaWV3YWJsZSwKICAgICAgICAg
ICAgIFBzZXVkb0NsYXNzSG92ZXIsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0RpcmVjdEZvY3Vz
LAogICAgICAgICAgICAgUHNldWRvQ2xhc3NEcmFnLAogICAgICAgICAgICAgUHNldWRvQ2xhc3NG
b2N1cywKICAgICAgICAgICAgIFBzZXVkb0NsYXNzRm9jdXNXaXRoaW4sCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L1J1bGVTZXQuY3BwCShyZXZpc2lvbiAyNTA3NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OCw2ICsyNzgsNyBAQCB2b2lkIFJ1bGVTZXQ6
OmFkZFJ1bGUoU3R5bGVSdWxlKiBydWxlLCB1CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0FueUxpbmtEZXByZWNhdGVkOgogICAgICAgICAgICAgICAgIGxpbmtTZWxl
Y3RvciA9IHNlbGVjdG9yOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NEaXJlY3RGb2N1czoKICAgICAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXM6CiAgICAgICAgICAgICAgICAgZm9jdXNTZWxl
Y3RvciA9IHNlbGVjdG9yOwogICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAJKHJldmlzaW9uIDI1MDc0MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05ODUsNiAr
OTg1LDggQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKENoZWNraW5nQwogICAgICAg
ICAgICAgaWYgKGNvbnRleHQuaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3MpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaXNMaW5rKCkgJiYg
Y29udGV4dC52aXNpdGVkTWF0Y2hUeXBlID09IFZpc2l0ZWRNYXRjaFR5cGU6OkVuYWJsZWQ7Cisg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGlyZWN0Rm9jdXM6CisgICAgICAg
ICAgICByZXR1cm4gbWF0Y2hlc0RpcmVjdEZvY3VzUHNldWRvQ2xhc3MoZWxlbWVudCk7CiAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRHJhZzoKICAgICAgICAgICAgIGFkZFN0
eWxlUmVsYXRpb24oY2hlY2tpbmdDb250ZXh0LCBlbGVtZW50LCBTdHlsZTo6UmVsYXRpb246OkFm
ZmVjdGVkQnlEcmFnKTsKIApAQCAtMTI4MiwxMCArMTI4NCwyNyBAQCBzdGF0aWMgYm9vbCBpc0Zy
YW1lRm9jdXNlZChjb25zdCBFbGVtZW50CiAgICAgcmV0dXJuIGVsZW1lbnQuZG9jdW1lbnQoKS5m
cmFtZSgpICYmIGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zZWxlY3Rpb24oKS5pc0ZvY3Vz
ZWRBbmRBY3RpdmUoKTsKIH0KIAorc3RhdGljIGJvb2wgZG9lc1NoYWRvd1RyZWVDb250YWluRm9j
dXNlZEVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBhdXRvKiBzaGFkb3dS
b290ID0gZWxlbWVudC5zaGFkb3dSb290KCk7CisgICAgcmV0dXJuIHNoYWRvd1Jvb3QgJiYgc2hh
ZG93Um9vdC0+Y29udGFpbnNGb2N1c2VkRWxlbWVudCgpOworfQorCiBib29sIFNlbGVjdG9yQ2hl
Y2tlcjo6bWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsK
ICAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVkb1N0YXRlKGVsZW1l
bnQsIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ZvY3VzKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICByZXR1cm4gKGVsZW1lbnQuZm9jdXNlZCgpIHx8IGRvZXNTaGFkb3dUcmVlQ29udGFp
bkZvY3VzZWRFbGVtZW50KGVsZW1lbnQpKSAmJiBpc0ZyYW1lRm9jdXNlZChlbGVtZW50KTsKK30K
KworLy8gVGhpcyBuZWVkcyB0byBtYXRjaCBhIHN1YnNldCBvZiBlbGVtZW50cyBtYXRjaGVzRm9j
dXNQc2V1ZG9DbGFzcyBtYXRjaCBzaW5jZSBkaXJlY3QgZm9jdXMgaXMgdHJlYXRlZAorLy8gYXMg
YSBwYXJ0IG9mIGZvY3VzIHBzZXVkbyBjbGFzcyBzZWxlY3RvcnMgaW4gRWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzLgorYm9vbCBTZWxlY3RvckNoZWNrZXI6Om1hdGNo
ZXNEaXJlY3RGb2N1c1BzZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAg
aWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0ZShlbGVtZW50LCBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1cykpCisgICAgICAgIHJldHVybiB0cnVlOworCiAg
ICAgcmV0dXJuIGVsZW1lbnQuZm9jdXNlZCgpICYmIGlzRnJhbWVGb2N1c2VkKGVsZW1lbnQpOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCShyZXZpc2lvbiAyNTA3
NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk3LDYgKzk3LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaXNDb21tb25Q
c2V1ZG9DbGFzc1NlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKik7CiAgICAgc3RhdGljIGJvb2wg
bWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MoY29uc3QgRWxlbWVudCYpOworICAgIHN0YXRpYyBib29s
IG1hdGNoZXNEaXJlY3RGb2N1c1BzZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQmKTsKICAgICBzdGF0
aWMgYm9vbCBhdHRyaWJ1dGVTZWxlY3Rvck1hdGNoZXMoY29uc3QgRWxlbWVudCYsIGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSwgY29uc3QgQ1NT
U2VsZWN0b3ImKTsKIAogICAgIGVudW0gTGlua01hdGNoTWFzayB7IE1hdGNoRGVmYXVsdCA9IDAs
IE1hdGNoTGluayA9IDEsIE1hdGNoVmlzaXRlZCA9IDIsIE1hdGNoQWxsID0gTWF0Y2hMaW5rIHwg
TWF0Y2hWaXNpdGVkIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9D
bGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAu
aW4JKHJldmlzaW9uIDI1MDc0MykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTQs
NiArNCw3IEBACiAtd2Via2l0LWF1dG9maWxsCiAtd2Via2l0LWF1dG9maWxsLXN0cm9uZy1wYXNz
d29yZAogLXdlYmtpdC1hdXRvZmlsbC1zdHJvbmctcGFzc3dvcmQtdmlld2FibGUKKy13ZWJraXQt
ZGlyZWN0LWZvY3VzCiAtd2Via2l0LWRyYWcKIC13ZWJraXQtZnVsbC1wYWdlLW1lZGlhCiBhY3Rp
dmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MJKHJldmlzaW9uIDI1MDc0MykKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9odG1sLmNzcwkod29ya2luZyBjb3B5KQpAQCAtMTE2NSw3ICsxMTY1LDcgQEAgbm9i
ciB7CiAKIC8qIHN0YXRlcyAqLwogCi06Zm9jdXMgeworOi13ZWJraXQtZGlyZWN0LWZvY3VzIHsK
ICNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9JT1NfRkFNSUxZKSAmJiBXVEZfUExBVEZPUk1fSU9T
X0ZBTUlMWQogICAgIG91dGxpbmU6IGF1dG8gM3B4IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsK
ICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9y
UGFyc2VyLmNwcAkocmV2aXNpb24gMjUwNzQzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NTZWxlY3RvclBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5NCwxMCArNDk0LDE2
IEBAIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTU2UKICAgICAKICAgICBp
ZiAoY29sb25zID09IDEpIHsKICAgICAgICAgc2VsZWN0b3IgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6
cGFyc2VQc2V1ZG9DbGFzc1NlbGVjdG9yKHRva2VuLnZhbHVlKCkpOwotI2lmIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCi0gICAgICAgIGlmICghbV9jb250ZXh0LmF0dGFjaG1lbnRFbmFibGVk
ICYmIHNlbGVjdG9yICYmIHNlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzcyAmJiBzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzSGFzQXR0YWNobWVudCkKKyAgICAgICAgaWYgKCFzZWxlY3RvcikKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICBpZiAoc2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzKSB7CisgICAgICAgICAgICBpZiAobV9jb250ZXh0Lm1vZGUgIT0g
VUFTaGVldE1vZGUgJiYgc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpID09IENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0RpcmVjdEZvY3VzKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisgICAgICAgICAgICBpZiAoIW1fY29u
dGV4dC5hdHRhY2htZW50RW5hYmxlZCAmJiBzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgPT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzSGFzQXR0YWNobWVudCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICNlbmRpZgorICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAg
c2VsZWN0b3IgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50U2VsZWN0b3Io
dG9rZW4udmFsdWUoKSk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpJbmRleDogU291cmNlL1dl
YkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAkocmV2aXNpb24gMjUwNzQzKQorKysg
U291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NTgsNiArNTU4LDkgQEAgc3RhdGljIGlubGluZSBGdW5jdGlvblR5cGUgYWRkUHNldWRv
Q2xhcwogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGVmaW5lZDoKICAgICAgICAg
ZnJhZ21lbnQudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6OkZ1bmN0aW9uUHRy
PENTU09wZXJhdGlvblB0clRhZz4oaXNEZWZpbmVkRWxlbWVudCkpOwogICAgICAgICByZXR1cm4g
RnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NEaXJlY3RGb2N1czoKKyAgICAgICAgZnJhZ21lbnQudW5vcHRpbWl6ZWRQ
c2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6OkZ1bmN0aW9uUHRyPENTU09wZXJhdGlvblB0clRhZz4o
U2VsZWN0b3JDaGVja2VyOjptYXRjaGVzRGlyZWN0Rm9jdXNQc2V1ZG9DbGFzcykpOworICAgICAg
ICByZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CiAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1czoKICAgICAgICAgZnJhZ21lbnQudW5vcHRpbWl6
ZWRQc2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6OkZ1bmN0aW9uUHRyPENTU09wZXJhdGlvblB0clRh
Zz4oU2VsZWN0b3JDaGVja2VyOjptYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcykpOwogICAgICAgICBy
ZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyNTA3NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3Nyw2ICs2NzcsMTIgQEAgdm9pZCBFbGVtZW50
OjpzZXRGb2N1cyhib29sIGZsYWcpCiAgICAgZG9jdW1lbnQoKS51c2VyQWN0aW9uRWxlbWVudHMo
KS5zZXRGb2N1c2VkKCp0aGlzLCBmbGFnKTsKICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVl
KCk7CiAKKyAgICAvLyBTaGFkb3cgaG9zdCB3aXRoIGEgc2xvdCB0aGF0IGNvbnRhaW4gZm9jdXNl
ZCBlbGVtZW50IGlzIG5vdCBjb25zaWRlcmVkIGZvY3VzZWQuCisgICAgZm9yIChhdXRvKiByb290
ID0gY29udGFpbmluZ1NoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPmhvc3QoKS0+Y29u
dGFpbmluZ1NoYWRvd1Jvb3QoKSkgeworICAgICAgICByb290LT5zZXRDb250YWluc0ZvY3VzZWRF
bGVtZW50KGZsYWcpOworICAgICAgICByb290LT5ob3N0KCktPmludmFsaWRhdGVTdHlsZSgpOwor
ICAgIH0KKwogICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IHRoaXM7IGVsZW1lbnQ7IGVsZW1l
bnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkKICAgICAgICAgZWxl
bWVudC0+c2V0SGFzRm9jdXNXaXRoaW4oZmxhZyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmgJKHJldmlzaW9uIDI1MDc0MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAgIGJvb2wgcmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNldFN0eWxlSW5oZXJpdGFu
Y2U7IH0KICAgICB2b2lkIHNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sKTsKIAorICAgIGJv
b2wgY29udGFpbnNGb2N1c2VkRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNGb2N1
c2VkRWxlbWVudDsgfQorICAgIHZvaWQgc2V0Q29udGFpbnNGb2N1c2VkRWxlbWVudChib29sIGZs
YWcpIHsgbV9jb250YWluc0ZvY3VzZWRFbGVtZW50ID0gZmxhZzsgfQorCiAgICAgRWxlbWVudCog
aG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1faG9zdDsgfQogICAgIHZvaWQgc2V0SG9zdChFbGVtZW50
KiBob3N0KSB7IG1faG9zdCA9IGhvc3Q7IH0KIApAQCAtMTEzLDYgKzExNiw3IEBAIHByaXZhdGU6
CiAKICAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlIHsgZmFsc2UgfTsKICAgICBib29s
IG1faGFzQmVndW5EZWxldGluZ0RldGFjaGVkQ2hpbGRyZW4geyBmYWxzZSB9OworICAgIGJvb2wg
bV9jb250YWluc0ZvY3VzZWRFbGVtZW50IHsgZmFsc2UgfTsKICAgICBTaGFkb3dSb290TW9kZSBt
X3R5cGUgeyBTaGFkb3dSb290TW9kZTo6VXNlckFnZW50IH07CiAKICAgICBFbGVtZW50KiBtX2hv
c3QgeyBudWxscHRyIH07CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA3NDMpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMC0wNCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBmb2N1cyBwc2V1ZG8g
Y2xhc3Mgc2hvdWxkIG1hdGNoIGEgc2hhZG93IGhvc3Qgd2hvc2Ugc2hhZG93IHRyZWUgY29udGFp
bnMgdGhlIGZvY3VzZWQgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgVzNDIHN0eWxlIHRlc3RoYXJuZXNzIHRlc3RzIGFuZCByZWYg
dGVzdHMuCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vZGlyZWN0LWZvY3VzLXBzZXVkby1k
b2VzLW5vdC1tYXRjaC1pbi1hdXRob3Itc3R5bGVzaGVldC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9kaXJlY3QtZm9jdXMtcHNldWRvLWRvZXMtbm90LW1h
dGNoLWluLWF1dGhvci1zdHlsZXNoZWV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hh
ZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0Y2hlcy1vbi1zaGFkb3ctaG9zdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0Y2hlcy1v
bi1zaGFkb3ctaG9zdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vZm9j
dXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTEtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhv
c3QtMi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vZm9j
dXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
aGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0zLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhv
c3QtMy5odG1sOiBBZGRlZC4KKwogMjAxOS0xMC0wNCAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxA
YXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvMmRjb250ZXh0L2xpbmUtc3R5bGVzLzJkLmxpbmUuY2FwLnJvdW5kLmh0bWwgaXMg
ZmFpbGluZwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2RpcmVjdC1mb2N1cy1w
c2V1ZG8tZG9lcy1ub3QtbWF0Y2gtaW4tYXV0aG9yLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9kaXJlY3QtZm9jdXMtcHNl
dWRvLWRvZXMtbm90LW1hdGNoLWluLWF1dGhvci1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZGlyZWN0LWZvY3VzLXBz
ZXVkby1kb2VzLW5vdC1tYXRjaC1pbi1hdXRob3Itc3R5bGVzaGVldC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyB0aGF0IC13ZWJraXQtZGly
ZWN0LWZvY3VzIGlzIG5vdCByZWNvZ25pemVkIGluIGF1dGhvciBzdHlsZXNoZWV0cworCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkZWZhdWx0Rm9jdXMubWF0Y2hlcygiOmZv
Y3VzIikgaXMgdHJ1ZQorUEFTUyBkZWZhdWx0Rm9jdXMubWF0Y2hlcygiOi13ZWJraXQtZGlyZWN0
LWZvY3VzIikgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3Qg
bWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uLgorUEFTUyBpbnB1dEluU2hhZG93Um9vdC5tYXRj
aGVzKCI6Zm9jdXMiKSBpcyB0cnVlCitQQVNTIGlucHV0SW5TaGFkb3dSb290Lm1hdGNoZXMoIjot
d2Via2l0LWRpcmVjdC1mb2N1cyIpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVGhlIHN0
cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLi4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3Qvc2hhZG93LWRvbS9kaXJlY3QtZm9jdXMtcHNldWRvLWRvZXMtbm90LW1hdGNoLWluLWF1
dGhvci1zdHlsZXNoZWV0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFk
b3ctZG9tL2RpcmVjdC1mb2N1cy1wc2V1ZG8tZG9lcy1ub3QtbWF0Y2gtaW4tYXV0aG9yLXN0eWxl
c2hlZXQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
ZGlyZWN0LWZvY3VzLXBzZXVkby1kb2VzLW5vdC1tYXRjaC1pbi1hdXRob3Itc3R5bGVzaGVldC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8aW5wdXQgaWQ9ImRlZmF1bHRGb2N1cyIgYXV0b2ZvY3VzPgorPHNjcmlwdD4KKwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIHRoYXQgLXdl
YmtpdC1kaXJlY3QtZm9jdXMgaXMgbm90IHJlY29nbml6ZWQgaW4gYXV0aG9yIHN0eWxlc2hlZXRz
Jyk7CisKK2xldCBmb2N1c2VkRGVmYXVsdCA9IGZhbHNlOworZnVuY3Rpb24gZGlkRm9jdXNEZWZh
dWx0KCkgeyB9CitmdW5jdGlvbiBjaGVja0ZvY3VzTWF0Y2goKSB7CisgICAgaWYgKGRlZmF1bHRG
b2N1cy5tYXRjaGVzKCc6Zm9jdXMnKSkgeworICAgICAgICBmb2N1c2VkRGVmYXVsdCA9IHRydWU7
CisgICAgICAgIGRpZEZvY3VzRGVmYXVsdCgpOworICAgIH0gZWxzZQorICAgICAgICBzZXRUaW1l
b3V0KGNoZWNrRm9jdXNNYXRjaCwgMTAwKTsKK30KK2RlZmF1bHRGb2N1cy5hZGRFdmVudExpc3Rl
bmVyKCdmb2N1cycsIGNoZWNrRm9jdXNNYXRjaCk7CisKK2Z1bmN0aW9uIHdhaXRGb3JGcmFtZVRv
QmVGb2N1c2VkKHRlc3QpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
CisgICAgICAgIGlmIChmb2N1c2VkRGVmYXVsdCkKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgZGlkRm9jdXNEZWZhdWx0ID0gcmVzb2x2ZTsKKyAgICB9
KTsKK30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBhd2FpdCB3YWl0Rm9yRnJh
bWVUb0JlRm9jdXNlZCgpOworCisgICAgc2hvdWxkQmVUcnVlKCdkZWZhdWx0Rm9jdXMubWF0Y2hl
cygiOmZvY3VzIiknKTsKKyAgICBzaG91bGRUaHJvd0Vycm9yTmFtZSgnZGVmYXVsdEZvY3VzLm1h
dGNoZXMoIjotd2Via2l0LWRpcmVjdC1mb2N1cyIpJywgJ1N5bnRheEVycm9yJyk7CisKKyAgICBj
b25zdCBob3N0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKSk7CisgICAgY29uc3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHtt
b2RlOiAnY2xvc2VkJ30pOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxpbnB1dD4nOwor
ICAgIHdpbmRvdy5pbnB1dEluU2hhZG93Um9vdCA9IHNoYWRvd1Jvb3QuZmlyc3RDaGlsZDsKKyAg
ICBpbnB1dEluU2hhZG93Um9vdC5mb2N1cygpOworCisgICAgc2hvdWxkQmVUcnVlKCdpbnB1dElu
U2hhZG93Um9vdC5tYXRjaGVzKCI6Zm9jdXMiKScpOworICAgIHNob3VsZFRocm93RXJyb3JOYW1l
KCdpbnB1dEluU2hhZG93Um9vdC5tYXRjaGVzKCI6LXdlYmtpdC1kaXJlY3QtZm9jdXMiKScsICdT
eW50YXhFcnJvcicpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQg
PSBydW5UZXN0OworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0Y2hlcy1vbi1zaGFkb3ctaG9zdC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2Zv
Y3VzLXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1ob3N0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW1hdGNoZXMt
b24tc2hhZG93LWhvc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBA
QAorCisKK1BBU1MgOmZvY3VzIG11c3Qgbm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBvcGVu
IG1vZGUgc2hhZG93IHJvb3QgdGhhdCBkb2VzIG5vdCBjb250YWluIHRoZSBmb2N1c2VkIGVsZW1l
bnQgCitQQVNTIDpmb2N1cyBtdXN0IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBvcGVuIG1vZGUg
c2hhZG93IHJvb3QgdGhhdCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IAorUEFTUyA6Zm9j
dXMgbXVzdCBub3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoIG9wZW4gbW9kZSBzaGFkb3cgcm9v
dCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEgc2xvdCAKK1BBU1Mg
OmZvY3VzIG11c3Qgbm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBjbG9zZWQgbW9kZSBzaGFk
b3cgcm9vdCB0aGF0IGRvZXMgbm90IGNvbnRhaW4gdGhlIGZvY3VzZWQgZWxlbWVudCAKK1BBU1Mg
OmZvY3VzIG11c3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoIGNsb3NlZCBtb2RlIHNoYWRvdyBy
b290IHRoYXQgY29udGFpbnMgdGhlIGZvY3VzZWQgZWxlbWVudCAKK1BBU1MgOmZvY3VzIG11c3Qg
bm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBjbG9zZWQgbW9kZSBzaGFkb3cgcm9vdCBjb250
YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEgc2xvdCAKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1o
b3N0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3Vz
LXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1ob3N0Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1o
b3N0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdh
IiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9Ijpmb2N1cyBzaG91bGQgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aGljaCBjb250YWlucyB0
aGUgZm9jdXNlZCBlbGVtZW50Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jZWxlbWVudC1oYXMtdGhlLWZvY3VzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxpbnB1dCBpZD0iZGVmYXVsdEZvY3VzIiBhdXRvZm9jdXM+Cis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2xldCBmb2N1
c2VkRGVmYXVsdCA9IGZhbHNlOworZnVuY3Rpb24gZGlkRm9jdXNEZWZhdWx0KCkgeyB9CitmdW5j
dGlvbiBjaGVja0ZvY3VzTWF0Y2goKSB7CisgICAgaWYgKGRlZmF1bHRGb2N1cy5tYXRjaGVzKCc6
Zm9jdXMnKSkgeworICAgICAgICBmb2N1c2VkRGVmYXVsdCA9IHRydWU7CisgICAgICAgIGRpZEZv
Y3VzRGVmYXVsdCgpOworICAgIH0gZWxzZQorICAgICAgICBzZXRUaW1lb3V0KGNoZWNrRm9jdXNN
YXRjaCwgMTAwKTsKK30KK2RlZmF1bHRGb2N1cy5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGNo
ZWNrRm9jdXNNYXRjaCk7CisKK2Z1bmN0aW9uIHByZXBhcmUodGVzdCkKK3sKKyAgICB0ZXN0LmFk
ZF9jbGVhbnVwKCgpID0+IHsKKyAgICAgICAgZGVmYXVsdEZvY3VzLmZvY3VzKCk7CisgICAgICAg
IGNvbnRhaW5lci50ZXh0Q29udGVudCA9ICcnOworICAgIH0pOworICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICBpZiAoZm9jdXNlZERlZmF1bHQpCisgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpZEZvY3VzRGVmYXVs
dCA9IHJlc29sdmU7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbk1vZGUobW9kZSkgewor
ICAgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgICAgIGF3YWl0IHByZXBh
cmUodGhpcyk7CisgICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICBjb25z
dCBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGV9KTsKKyAgICAgICAgc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAnPGlucHV0Pic7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1l
bnQuYWN0aXZlRWxlbWVudCwgZGVmYXVsdEZvY3VzKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
aGFkb3dSb290LmFjdGl2ZUVsZW1lbnQsIG51bGwpOworICAgICAgICBhc3NlcnRfZmFsc2UoaG9z
dC5tYXRjaGVzKCc6Zm9jdXMnKSk7CisgICAgfSwgYDpmb2N1cyBtdXN0IG5vdCBtYXRjaCBhIHNo
YWRvdyBob3N0IHdpdGggJHttb2RlfSBtb2RlIHNoYWRvdyByb290IHRoYXQgZG9lcyBub3QgY29u
dGFpbiB0aGUgZm9jdXNlZCBlbGVtZW50YCk7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgZnVu
Y3Rpb24gKCkgeworICAgICAgICBhd2FpdCBwcmVwYXJlKHRoaXMpOworICAgICAgICBjb25zdCBo
b3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaG9zdCk7CisgICAgICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0
dGFjaFNoYWRvdyh7bW9kZX0pOworICAgICAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8aW5w
dXQ+JzsKKyAgICAgICAgc2hhZG93Um9vdC5maXJzdENoaWxkLmZvY3VzKCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwgaG9zdCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50LCBzaGFkb3dSb290LmZpcnN0Q2hpbGQp
OworICAgICAgICBhc3NlcnRfdHJ1ZShob3N0Lm1hdGNoZXMoJzpmb2N1cycpKTsKKyAgICB9LCBg
OmZvY3VzIG11c3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoICR7bW9kZX0gbW9kZSBzaGFkb3cg
cm9vdCB0aGF0IGNvbnRhaW5zIHRoZSBmb2N1c2VkIGVsZW1lbnRgKTsKKworICAgIHByb21pc2Vf
dGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgICAgIGF3YWl0IHByZXBhcmUodGhpcyk7Cisg
ICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAg
ICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICBjb25zdCBzaGFkb3dSb290
ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGV9KTsKKyAgICAgICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPHNsb3Q+JzsKKyAgICAgICAgaG9zdC5pbm5lckhUTUwgPSAnPGlucHV0Pic7CisgICAg
ICAgIGhvc3QuZmlyc3RDaGlsZC5mb2N1cygpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQsIGhvc3QuZmlyc3RDaGlsZCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNl
KGhvc3QubWF0Y2hlcygnOmZvY3VzJykpOworICAgIH0sIGA6Zm9jdXMgbXVzdCBub3QgbWF0Y2gg
YSBzaGFkb3cgaG9zdCB3aXRoICR7bW9kZX0gbW9kZSBzaGFkb3cgcm9vdCBjb250YWlucyB0aGUg
Zm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEgc2xvdGApOworCit9CisKK3Rlc3RJbk1vZGUo
J29wZW4nKTsKK3Rlc3RJbk1vZGUoJ2Nsb3NlZCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24t
c2hhZG93LWhvc3QtMS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMS1leHBlY3RlZC5odG1s
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1
ZG8tb24tc2hhZG93LWhvc3QtMS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+
VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSAxMDBweCBieSAxMDBweCBncmVlbiBib3gg
YmVsb3cuPC9wPgorICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAw
cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9z
dC0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3Vz
LXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWls
dG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ijpmb2N1
cyBzaG91bGQgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aGljaCBjb250YWlucyB0aGUgZm9jdXNlZCBl
bGVtZW50Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy8jZWxlbWVudC1oYXMtdGhlLWZvY3VzIj4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBw
YXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSAxMDBweCBieSAxMDBweCBncmVlbiBib3ggYmVsb3cu
PC9wPgorPGRpdiBpZD0iaG9zdCI+PC9kaXY+Cis8c3R5bGU+CisjaG9zdCB7IGJhY2tncm91bmQ6
IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB9CisjaG9zdDpmb2N1cyB7IGJhY2tn
cm91bmQ6IGdyZWVuOyB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKworY29uc3Qgc2hhZG93Um9vdCA9
IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPGRpdiB0YWJpbmRleD0iMCIgc3R5bGU9Im91dGxpbmU6IG5vbmU7Ij48L2Rpdj4nOwor
c2hhZG93Um9vdC5maXJzdENoaWxkLmZvY3VzKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1z
aGFkb3ctaG9zdC0yLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0yLWV4cGVjdGVkLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVk
by1vbi1zaGFkb3ctaG9zdC0yLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxib2R5PgorICAgICAgICA8cD5U
ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBi
ZWxvdy48L3A+CisgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBw
eDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0
LTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMt
cHNldWRvLW9uLXNoYWRvdy1ob3N0LTIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTIuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0
bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iOmZvY3Vz
IHNob3VsZCBtYXRjaCBhIHNoYWRvdyBob3N0IHdoaWNoIGNvbnRhaW5zIHRoZSBmb2N1c2VkIGVs
ZW1lbnQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnLyNlbGVtZW50LWhhcy10aGUtZm9jdXMiPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IHBh
c3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBiZWxvdy48
L3A+Cis8ZGl2IGlkPSJob3N0Ij48c3Bhbj5GQUlMPC9zcGFuPjwvZGl2PgorPHN0eWxlPgorI2hv
c3QgeyBiYWNrZ3JvdW5kOiBncmVlbjsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB9Cisj
aG9zdCBzcGFuIHsgYmFja2dyb3VuZDogcmVkOyB9CisjaG9zdDpmb2N1cyBzcGFuIHsgYmFja2dy
b3VuZDogZ3JlZW47IGNvbG9yOiBncmVlbjsgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisKK2NvbnN0
IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gJzxkaXYgdGFiaW5kZXg9IjAiIHN0eWxlPSJvdXRsaW5lOiBub25l
OyI+PHNsb3Q+PC9zbG90PjwvZGl2Pic7CitzaGFkb3dSb290LmZpcnN0Q2hpbGQuZm9jdXMoKTsK
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTMtZXhwZWN0ZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNo
YWRvdy1ob3N0LTMtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTMtZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUg
MTAwcHggYnkgMTAwcHggZ3JlZW4gYm94IGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBzdHlsZT0i
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9m
b2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMy5odG1sCShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8t
b24tc2hhZG93LWhvc3QtMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9
IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFt
ZT0iYXNzZXJ0IiBjb250ZW50PSI6Zm9jdXMgc2hvdWxkIG5vdCBtYXRjaCBhIHNoYWRvdyBob3N0
IGlmIHRoZSBmb2N1c2VkIGVsZW1lbnQgaXMgYSBzbG90dGVkIGNvbnRlbnQiPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNlbGVtZW50LWhhcy10
aGUtZm9jdXMiPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEg
c2luZ2xlIDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBiZWxvdy48L3A+Cis8ZGl2IGlkPSJob3N0
Ij48ZGl2IGlkPSJ0YXJnZXQiIHRhYmluZGV4PSIwIj48L2Rpdj48L2Rpdj4KKzxzdHlsZT4KKyNo
b3N0IHsgYmFja2dyb3VuZDogZ3JlZW47IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgfQor
I2hvc3Q6Zm9jdXMgI3RhcmdldCB7IGJhY2tncm91bmQ6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyB9CisjdGFyZ2V0IHsgb3V0bGluZTogbm9uZTsgfQorPC9zdHlsZT4KKzxzY3Jp
cHQ+CisKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3Nl
ZCd9KTsKK3NoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzbG90Pjwvc2xvdD4nOwordGFyZ2V0LmZv
Y3VzKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2ZvY3VzL2ZvY3VzLXNl
bGVjdG9yLWRlbGVnYXRlc0ZvY3VzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZm9jdXMvZm9j
dXMtc2VsZWN0b3ItZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNTA3NDMp
CisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1k
b20vZm9jdXMvZm9jdXMtc2VsZWN0b3ItZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDEyICsxLDEyIEBACiBmb28KIGZvbwogCi1GQUlMIDpmb2N1cyBhcHBs
aWVzIHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz10cnVlIHdoZW4gdGhlIHNoYWRvdyByb290
J3MgZGVzY2VuZGFudCBoYXMgZm9jdXMgYXNzZXJ0X3RydWU6IGhvc3QgbWF0Y2hlcyA6Zm9jdXMg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgOmZvY3VzIGFwcGxpZXMgdG8gaG9zdCB3aXRo
IGRlbGVnYXRlc0ZvY3VzPXRydWUgd2hlbiB0aGUgc2hhZG93IHJvb3QncyBkZXNjZW5kYW50IGhh
cyBmb2N1cyAKIEZBSUwgOmZvY3VzIGFwcGxpZXMgdG8gaG9zdCB3aXRoIGRlbGVnYXRlc0ZvY3Vz
PXRydWUgd2hlbiBzbG90dGVkIGVsZW1lbnQgaGFzIGZvY3VzIGFzc2VydF90cnVlOiBob3N0IG1h
dGNoZXMgOmZvY3VzIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIDpmb2N1cyBhcHBsaWVz
IHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz10cnVlIHdoZW4gYW4gZWxlbWVudCBpbiBhIG5l
c3RlZCBzaGFkb3cgdHJlZSB3aXRoIGRlbGVnYXRlc0ZvY3VzPXRydWUgaXMgZm9jdXNlZCBhc3Nl
cnRfdHJ1ZTogaG9zdCBvZiBuZXN0ZWQgc2hhZG93IHRyZWUgbWF0Y2hlcyBmb2N1cyBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCA6Zm9jdXMgYXBwbGllcyB0byBob3N0IHdpdGggZGVsZWdh
dGVzRm9jdXM9dHJ1ZSB3aGVuIGFuIGVsZW1lbnQgaW4gYSBuZXN0ZWQgc2hhZG93IHRyZWUgd2l0
aCBkZWxlZ2F0ZXNGb2N1cz1mYWxzZSBpcyBmb2N1c2VkIGFzc2VydF90cnVlOiBob3N0IG9mIG5l
c3RlZCBzaGFkb3cgdHJlZSBtYXRjaGVzIGZvY3VzIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIDpmb2N1cyBhcHBsaWVzIHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz1mYWxzZSB3aGVu
IHRoZSBzaGFkb3cgcm9vdCdzIGRlc2NlbmRhbnQgaGFzIGZvY3VzIGFzc2VydF90cnVlOiBob3N0
IG1hdGNoZXMgOmZvY3VzIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIDpmb2N1cyBhcHBs
aWVzIHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz10cnVlIHdoZW4gYW4gZWxlbWVudCBpbiBh
IG5lc3RlZCBzaGFkb3cgdHJlZSB3aXRoIGRlbGVnYXRlc0ZvY3VzPXRydWUgaXMgZm9jdXNlZCAK
K1BBU1MgOmZvY3VzIGFwcGxpZXMgdG8gaG9zdCB3aXRoIGRlbGVnYXRlc0ZvY3VzPXRydWUgd2hl
biBhbiBlbGVtZW50IGluIGEgbmVzdGVkIHNoYWRvdyB0cmVlIHdpdGggZGVsZWdhdGVzRm9jdXM9
ZmFsc2UgaXMgZm9jdXNlZCAKK1BBU1MgOmZvY3VzIGFwcGxpZXMgdG8gaG9zdCB3aXRoIGRlbGVn
YXRlc0ZvY3VzPWZhbHNlIHdoZW4gdGhlIHNoYWRvdyByb290J3MgZGVzY2VuZGFudCBoYXMgZm9j
dXMgCiBGQUlMIDpmb2N1cyBhcHBsaWVzIHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz1mYWxz
ZSB3aGVuIHNsb3R0ZWQgZWxlbWVudCBoYXMgZm9jdXMgYXNzZXJ0X3RydWU6IGhvc3QgbWF0Y2hl
cyA6Zm9jdXMgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgOmZvY3VzIGFwcGxpZXMgdG8g
aG9zdCB3aXRoIGRlbGVnYXRlc0ZvY3VzPWZhbHNlIHdoZW4gYW4gZWxlbWVudCBpbiBhIG5lc3Rl
ZCBzaGFkb3cgdHJlZSB3aXRoIGRlbGVnYXRlc0ZvY3VzPXRydWUgaXMgZm9jdXNlZCBhc3NlcnRf
dHJ1ZTogaG9zdCBvZiBuZXN0ZWQgc2hhZG93IHRyZWUgbWF0Y2hlcyBmb2N1cyBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCA6Zm9jdXMgYXBwbGllcyB0byBob3N0IHdpdGggZGVsZWdhdGVz
Rm9jdXM9ZmFsc2Ugd2hlbiBhbiBlbGVtZW50IGluIGEgbmVzdGVkIHNoYWRvdyB0cmVlIHdpdGgg
ZGVsZWdhdGVzRm9jdXM9ZmFsc2UgaXMgZm9jdXNlZCBhc3NlcnRfdHJ1ZTogaG9zdCBvZiBuZXN0
ZWQgc2hhZG93IHRyZWUgbWF0Y2hlcyBmb2N1cyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyA6Zm9jdXMgYXBwbGllcyB0byBob3N0IHdpdGggZGVsZWdhdGVzRm9jdXM9ZmFsc2Ugd2hlbiBh
biBlbGVtZW50IGluIGEgbmVzdGVkIHNoYWRvdyB0cmVlIHdpdGggZGVsZWdhdGVzRm9jdXM9dHJ1
ZSBpcyBmb2N1c2VkIAorUEFTUyA6Zm9jdXMgYXBwbGllcyB0byBob3N0IHdpdGggZGVsZWdhdGVz
Rm9jdXM9ZmFsc2Ugd2hlbiBhbiBlbGVtZW50IGluIGEgbmVzdGVkIHNoYWRvdyB0cmVlIHdpdGgg
ZGVsZWdhdGVzRm9jdXM9ZmFsc2UgaXMgZm9jdXNlZCAKIApJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2ZvY3VzL2ZvY3VzLXNlbGVj
dG9yLWRlbGVnYXRlc0ZvY3VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2ZvY3VzL2ZvY3VzLXNlbGVjdG9y
LWRlbGVnYXRlc0ZvY3VzLmh0bWwJKHJldmlzaW9uIDI1MDc0MykKKysrIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS9mb2N1cy9mb2N1cy1zZWxl
Y3Rvci1kZWxlZ2F0ZXNGb2N1cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MSw4ICs1MSw4IEBA
IGZvciAoY29uc3QgZGVsZWdhdGVzRm9jdXMgb2YgZGVsZWdhdGVzRm8KIAogICAgIHNsb3R0ZWQu
Zm9jdXMoKTsKICAgICBhc3NlcnRfdHJ1ZShzbG90dGVkLm1hdGNoZXMoIjpmb2N1cyIpLCAic2xv
dHRlZCBlbGVtZW50IG1hdGNoZXMgOmZvY3VzIik7Ci0gICAgYXNzZXJ0X3RydWUoaG9zdC5tYXRj
aGVzKCI6Zm9jdXMiKSwgImhvc3QgbWF0Y2hlcyA6Zm9jdXMiKTsKLSAgfSwgYDpmb2N1cyBhcHBs
aWVzIHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz0ke2RlbGVnYXRlc0ZvY3VzfSB3aGVuIHNs
b3R0ZWQgZWxlbWVudCBoYXMgZm9jdXNgKTsKKyAgICBhc3NlcnRfZmFsc2UoaG9zdC5tYXRjaGVz
KCI6Zm9jdXMiKSwgImhvc3QgbWF0Y2hlcyA6Zm9jdXMiKTsKKyAgfSwgYDpmb2N1cyBkb2VzIG5v
dCBhcHBseSB0byBob3N0IHdpdGggZGVsZWdhdGVzRm9jdXM9JHtkZWxlZ2F0ZXNGb2N1c30gd2hl
biBzbG90dGVkIGVsZW1lbnQgaGFzIGZvY3VzYCk7CiAKICAgZm9yIChjb25zdCBuZXN0ZWREZWxl
Z2F0ZXNGb2N1cyBvZiBkZWxlZ2F0ZXNGb2N1c1ZhbHVlcykgewogICAgIHRlc3QoKCkgPT4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380278</attachid>
            <date>2019-10-04 23:26:54 -0700</date>
            <delta_ts>2019-10-07 13:58:05 -0700</delta_ts>
            <desc>Reverted unintended test change</desc>
            <filename>bug-202432-20191004232654.patch</filename>
            <type>text/plain</type>
            <size>28934</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDc2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBACisyMDE5LTEwLTA0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGZvY3VzIHBzZXVkbyBjbGFzcyBz
aG91bGQgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aG9zZSBzaGFkb3cgdHJlZSBjb250YWlucyB0aGUg
Zm9jdXNlZCBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDI0MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOb3RlIHRoYXQgZm9jdXMgcHNldWRvIGNsYXNzIGRvZXMgbm90IG1hdGNoIGEgc2hh
ZG93IGhvc3Qgd2hlbiBpdHMgc2hhZG93IHRyZWUgY29udGFpbnMgYSBzbG90IGVsZW1lbnQKKyAg
ICAgICAgd2l0aCBhIGZvY3VzZWQgZWxlbWVudCBvciBpdHMgYW5jZXN0b3IgYXNzaWduZWQgc2lu
Y2Ugc3VjaCBhIHNoYWRvdyBob3N0IGhhcyB0aGUgYWN0dWFsIGZvY3VzZWQgZWxlbWVudAorICAg
ICAgICBpbiB0aGUgc2FtZSB0cmVlIGFzIHRoZSBzaGFkb3cgaG9zdC4gKGUuZy4gdGhlIGZvY3Vz
ZWQgZWxlbWVudCBjYW4gYmUgYSBkaXJlY3QgY2hpbGQgb2YgdGhlIGhvc3QpLgorCisgICAgICAg
IEluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBiZWhhdmlvciBvZiBmb2N1cyByaW5nLCB3aGljaCBz
aG91bGQgYmUgb25seSBkcmF3biBvbiB0aGUgY3VycmVudGx5IGZvY3VzZWQKKyAgICAgICAgZWxl
bWVudCBhbmQgbm90IGFueSBzaGFkb3cgaG9zdCB3aGljaCBjb250YWlucyBzdWNoIGFuIGVsZW1l
bnQsIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBwc2V1ZG8gY2xhc3MsCisgICAgICAgIC13
ZWJraXQtZGlyZWN0LWZvY3VzLCB3aGljaCBpcyBvbmx5IGF2YWlsYWJsZSBpbiB0aGUgdXNlciBh
Z2VudCBzdHlsZXNoZWV0LiBQdXR0aW5nIDpob3N0KDpmb2N1cykgcnVsZQorICAgICAgICBpc24n
dCBzdWZmaWNpZW50IGJlY2F1c2Ugc3R5bGUgcnVsZXMgaW5zaWRlIHNoYWRvdyB0cmVlcyBhbHdh
eXMgaGFzIGEgbG93ZXIgcHJlY2VuZGVuY2UgdGhhbiBydWxlcworICAgICAgICBvdXRzaWRlIHRo
ZSBzaGFkb3cgdHJlZSAodGhlIHRyZWUgb2YgaXRzIHNoYWRvdyBob3N0KS4KKworICAgICAgICBb
MV0gQWxzbyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL3B1bGwvNDczMQorCisg
ICAgICAgIFRlc3RzOiBmYXN0L3NoYWRvdy1kb20vZGlyZWN0LWZvY3VzLXBzZXVkby1kb2VzLW5v
dC1tYXRjaC1pbi1hdXRob3Itc3R5bGVzaGVldC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3No
YWRvdy1kb20vZm9jdXMtcHNldWRvLW1hdGNoZXMtb24tc2hhZG93LWhvc3QuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93
LWhvc3QtMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRv
LW9uLXNoYWRvdy1ob3N0LTMuaHRtbAorCisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQgY29uc3QpOiBBZGRl
ZCB0aGUgc3VwcG9ydCBmb3IgLXdlYmtpdC1kaXJlY3QtZm9jdXMuCisgICAgICAgICogY3NzL0NT
U1NlbGVjdG9yLmg6CisgICAgICAgICogY3NzL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UnVsZVNldDo6YWRkUnVsZSk6IERpdHRvLgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSBjb25z
dCk6OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmRvZXNTaGFkb3dUcmVlQ29udGFpbkZvY3Vz
ZWRFbGVtZW50KTo6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpt
YXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyk6IEltcGxlbWVudGVkIHRoZSBuZXcgYmVoYXZpb3IuCisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6Om1hdGNoZXNEaXJlY3RGb2N1c1BzZXVk
b0NsYXNzKTogQWRkZWQuIEltcGxlbWVudHMgdGhlIG9sZCBiZWhhdmlvciBmb3IKKyAgICAgICAg
dGhlIGZvY3VzIHJpbmcgdmlhIC13ZWJraXQtZGlyZWN0LWZvY3VzIHBzZXVkbyBjbGFzcy4KKyAg
ICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmg6CisgICAgICAgICogY3NzL1NlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbjogQWRkZWQgLXdlYmtpdC1kaXJl
Y3QtZm9jdXMuCisgICAgICAgICogY3NzL2h0bWwuY3NzOiBVc2UgLXdlYmtpdC1kaXJlY3QtZm9j
dXMgcHNldWRvIGNsYXNzIHRvIHByZXNlcnZlIHRoZSBleGlzdGluZyBiZWhhdmlvciBvZiBmb2N1
cyByaW5nLgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OmNvbnN1bWVQc2V1ZG8pOiBJZ25vcmUg
LXdlYmtpdC1kaXJlY3QtZm9jdXMgaW4gYXV0aG9yIGFuZCB1c2VyIHN0eWxlc2hlZXRzLgorICAg
ICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb0NsYXNzVHlwZSk6IEFkZGVkIHRoZSBzdXBwb3J0IGZv
ciAtd2Via2l0LWRpcmVjdC1mb2N1cy4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRGb2N1cyk6IEludm9rZSBzZXRDb250YWluc0ZvY3Vz
ZWRFbGVtZW50IG9uIGVhY2ggc2hhZG93IGFuY2VzdG9yIHJvb3Qgb2YKKyAgICAgICAgdGhlIG5l
d2x5IGZvY3VzZWQgZWxlbWVudC4gTm90ZSB0aGF0IHdlIGNhbid0IHVzZSA6Zm9jdXMtd2l0aGlu
IHBzZXVkbyBjbGFzcyBzaW5jZSB0aGF0IHdvdWxkIGFsc28gbWF0Y2gKKyAgICAgICAgdGhlIGhv
c3Qgb2YgYSBzaGFkb3cgcm9vdCB3aGljaCBjb250YWlucyBhIHNsb3R0ZWQgZm9jdXNlZCBlbGVt
ZW50LCBjYXVzaW5nIGJvdGggdGhlIHNoYWRvdyBob3N0IGFuZAorICAgICAgICB0aGUgc2xvdHRl
ZCBlbGVtZW50IHRvIG1hdGNoIDpmb2N1cyBwc2V1ZG8gY2xhc3MgaW4gdGhlIGhvc3QncyB0cmVl
LgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisKIDIwMTktMTAtMDQgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2hhbmdlICJJbnZhbGlkU3RhdGVFcnJv
ciIgdG8gIk5vdFN1cHBvcnRlZEVycm9yIiBmb3IgYXR0YWNoU2hhZG93KCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAkocmV2aXNpb24gMjUwNzQzKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM4LDYgKzQzOCw5IEBA
IFN0cmluZyBDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KGNvbnN0IFMKICAgICAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzQXV0b2ZpbGxTdHJvbmdQYXNzd29yZFZpZXdhYmxl
OgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1hdXRvZmlsbC1z
dHJvbmctcGFzc3dvcmQtdmlld2FibGUiKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGlyZWN0Rm9jdXM6CisgICAgICAg
ICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWRpcmVjdC1mb2N1cyIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NEcmFnOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1k
cmFnIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaAkocmV2aXNpb24gMjUwNzQzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCw2ICsxMTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICBQc2V1ZG9DbGFzc0F1dG9maWxsU3Ryb25nUGFzc3dvcmQsCiAgICAgICAg
ICAgICBQc2V1ZG9DbGFzc0F1dG9maWxsU3Ryb25nUGFzc3dvcmRWaWV3YWJsZSwKICAgICAgICAg
ICAgIFBzZXVkb0NsYXNzSG92ZXIsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0RpcmVjdEZvY3Vz
LAogICAgICAgICAgICAgUHNldWRvQ2xhc3NEcmFnLAogICAgICAgICAgICAgUHNldWRvQ2xhc3NG
b2N1cywKICAgICAgICAgICAgIFBzZXVkb0NsYXNzRm9jdXNXaXRoaW4sCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L1J1bGVTZXQuY3BwCShyZXZpc2lvbiAyNTA3NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OCw2ICsyNzgsNyBAQCB2b2lkIFJ1bGVTZXQ6
OmFkZFJ1bGUoU3R5bGVSdWxlKiBydWxlLCB1CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0FueUxpbmtEZXByZWNhdGVkOgogICAgICAgICAgICAgICAgIGxpbmtTZWxl
Y3RvciA9IHNlbGVjdG9yOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NEaXJlY3RGb2N1czoKICAgICAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXM6CiAgICAgICAgICAgICAgICAgZm9jdXNTZWxl
Y3RvciA9IHNlbGVjdG9yOwogICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAJKHJldmlzaW9uIDI1MDc0MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05ODUsNiAr
OTg1LDggQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKENoZWNraW5nQwogICAgICAg
ICAgICAgaWYgKGNvbnRleHQuaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3MpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaXNMaW5rKCkgJiYg
Y29udGV4dC52aXNpdGVkTWF0Y2hUeXBlID09IFZpc2l0ZWRNYXRjaFR5cGU6OkVuYWJsZWQ7Cisg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGlyZWN0Rm9jdXM6CisgICAgICAg
ICAgICByZXR1cm4gbWF0Y2hlc0RpcmVjdEZvY3VzUHNldWRvQ2xhc3MoZWxlbWVudCk7CiAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRHJhZzoKICAgICAgICAgICAgIGFkZFN0
eWxlUmVsYXRpb24oY2hlY2tpbmdDb250ZXh0LCBlbGVtZW50LCBTdHlsZTo6UmVsYXRpb246OkFm
ZmVjdGVkQnlEcmFnKTsKIApAQCAtMTI4MiwxMCArMTI4NCwyNyBAQCBzdGF0aWMgYm9vbCBpc0Zy
YW1lRm9jdXNlZChjb25zdCBFbGVtZW50CiAgICAgcmV0dXJuIGVsZW1lbnQuZG9jdW1lbnQoKS5m
cmFtZSgpICYmIGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zZWxlY3Rpb24oKS5pc0ZvY3Vz
ZWRBbmRBY3RpdmUoKTsKIH0KIAorc3RhdGljIGJvb2wgZG9lc1NoYWRvd1RyZWVDb250YWluRm9j
dXNlZEVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBhdXRvKiBzaGFkb3dS
b290ID0gZWxlbWVudC5zaGFkb3dSb290KCk7CisgICAgcmV0dXJuIHNoYWRvd1Jvb3QgJiYgc2hh
ZG93Um9vdC0+Y29udGFpbnNGb2N1c2VkRWxlbWVudCgpOworfQorCiBib29sIFNlbGVjdG9yQ2hl
Y2tlcjo6bWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsK
ICAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVkb1N0YXRlKGVsZW1l
bnQsIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ZvY3VzKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICByZXR1cm4gKGVsZW1lbnQuZm9jdXNlZCgpIHx8IGRvZXNTaGFkb3dUcmVlQ29udGFp
bkZvY3VzZWRFbGVtZW50KGVsZW1lbnQpKSAmJiBpc0ZyYW1lRm9jdXNlZChlbGVtZW50KTsKK30K
KworLy8gVGhpcyBuZWVkcyB0byBtYXRjaCBhIHN1YnNldCBvZiBlbGVtZW50cyBtYXRjaGVzRm9j
dXNQc2V1ZG9DbGFzcyBtYXRjaCBzaW5jZSBkaXJlY3QgZm9jdXMgaXMgdHJlYXRlZAorLy8gYXMg
YSBwYXJ0IG9mIGZvY3VzIHBzZXVkbyBjbGFzcyBzZWxlY3RvcnMgaW4gRWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzLgorYm9vbCBTZWxlY3RvckNoZWNrZXI6Om1hdGNo
ZXNEaXJlY3RGb2N1c1BzZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAg
aWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0ZShlbGVtZW50LCBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1cykpCisgICAgICAgIHJldHVybiB0cnVlOworCiAg
ICAgcmV0dXJuIGVsZW1lbnQuZm9jdXNlZCgpICYmIGlzRnJhbWVGb2N1c2VkKGVsZW1lbnQpOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCShyZXZpc2lvbiAyNTA3
NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk3LDYgKzk3LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaXNDb21tb25Q
c2V1ZG9DbGFzc1NlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKik7CiAgICAgc3RhdGljIGJvb2wg
bWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MoY29uc3QgRWxlbWVudCYpOworICAgIHN0YXRpYyBib29s
IG1hdGNoZXNEaXJlY3RGb2N1c1BzZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQmKTsKICAgICBzdGF0
aWMgYm9vbCBhdHRyaWJ1dGVTZWxlY3Rvck1hdGNoZXMoY29uc3QgRWxlbWVudCYsIGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSwgY29uc3QgQ1NT
U2VsZWN0b3ImKTsKIAogICAgIGVudW0gTGlua01hdGNoTWFzayB7IE1hdGNoRGVmYXVsdCA9IDAs
IE1hdGNoTGluayA9IDEsIE1hdGNoVmlzaXRlZCA9IDIsIE1hdGNoQWxsID0gTWF0Y2hMaW5rIHwg
TWF0Y2hWaXNpdGVkIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9D
bGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAu
aW4JKHJldmlzaW9uIDI1MDc0MykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTQs
NiArNCw3IEBACiAtd2Via2l0LWF1dG9maWxsCiAtd2Via2l0LWF1dG9maWxsLXN0cm9uZy1wYXNz
d29yZAogLXdlYmtpdC1hdXRvZmlsbC1zdHJvbmctcGFzc3dvcmQtdmlld2FibGUKKy13ZWJraXQt
ZGlyZWN0LWZvY3VzCiAtd2Via2l0LWRyYWcKIC13ZWJraXQtZnVsbC1wYWdlLW1lZGlhCiBhY3Rp
dmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MJKHJldmlzaW9uIDI1MDc0MykKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9odG1sLmNzcwkod29ya2luZyBjb3B5KQpAQCAtMTE2NSw3ICsxMTY1LDcgQEAgbm9i
ciB7CiAKIC8qIHN0YXRlcyAqLwogCi06Zm9jdXMgeworOi13ZWJraXQtZGlyZWN0LWZvY3VzIHsK
ICNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9JT1NfRkFNSUxZKSAmJiBXVEZfUExBVEZPUk1fSU9T
X0ZBTUlMWQogICAgIG91dGxpbmU6IGF1dG8gM3B4IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsK
ICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9y
UGFyc2VyLmNwcAkocmV2aXNpb24gMjUwNzQzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NTZWxlY3RvclBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5NCwxMCArNDk0LDE2
IEBAIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTU2UKICAgICAKICAgICBp
ZiAoY29sb25zID09IDEpIHsKICAgICAgICAgc2VsZWN0b3IgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6
cGFyc2VQc2V1ZG9DbGFzc1NlbGVjdG9yKHRva2VuLnZhbHVlKCkpOwotI2lmIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCi0gICAgICAgIGlmICghbV9jb250ZXh0LmF0dGFjaG1lbnRFbmFibGVk
ICYmIHNlbGVjdG9yICYmIHNlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzcyAmJiBzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzSGFzQXR0YWNobWVudCkKKyAgICAgICAgaWYgKCFzZWxlY3RvcikKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICBpZiAoc2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzKSB7CisgICAgICAgICAgICBpZiAobV9jb250ZXh0Lm1vZGUgIT0g
VUFTaGVldE1vZGUgJiYgc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpID09IENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0RpcmVjdEZvY3VzKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisgICAgICAgICAgICBpZiAoIW1fY29u
dGV4dC5hdHRhY2htZW50RW5hYmxlZCAmJiBzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgPT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzSGFzQXR0YWNobWVudCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICNlbmRpZgorICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAg
c2VsZWN0b3IgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50U2VsZWN0b3Io
dG9rZW4udmFsdWUoKSk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpJbmRleDogU291cmNlL1dl
YkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAkocmV2aXNpb24gMjUwNzQzKQorKysg
U291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NTgsNiArNTU4LDkgQEAgc3RhdGljIGlubGluZSBGdW5jdGlvblR5cGUgYWRkUHNldWRv
Q2xhcwogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGVmaW5lZDoKICAgICAgICAg
ZnJhZ21lbnQudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6OkZ1bmN0aW9uUHRy
PENTU09wZXJhdGlvblB0clRhZz4oaXNEZWZpbmVkRWxlbWVudCkpOwogICAgICAgICByZXR1cm4g
RnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NEaXJlY3RGb2N1czoKKyAgICAgICAgZnJhZ21lbnQudW5vcHRpbWl6ZWRQ
c2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6OkZ1bmN0aW9uUHRyPENTU09wZXJhdGlvblB0clRhZz4o
U2VsZWN0b3JDaGVja2VyOjptYXRjaGVzRGlyZWN0Rm9jdXNQc2V1ZG9DbGFzcykpOworICAgICAg
ICByZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CiAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1czoKICAgICAgICAgZnJhZ21lbnQudW5vcHRpbWl6
ZWRQc2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6OkZ1bmN0aW9uUHRyPENTU09wZXJhdGlvblB0clRh
Zz4oU2VsZWN0b3JDaGVja2VyOjptYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcykpOwogICAgICAgICBy
ZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyNTA3NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3Nyw2ICs2NzcsMTIgQEAgdm9pZCBFbGVtZW50
OjpzZXRGb2N1cyhib29sIGZsYWcpCiAgICAgZG9jdW1lbnQoKS51c2VyQWN0aW9uRWxlbWVudHMo
KS5zZXRGb2N1c2VkKCp0aGlzLCBmbGFnKTsKICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVl
KCk7CiAKKyAgICAvLyBTaGFkb3cgaG9zdCB3aXRoIGEgc2xvdCB0aGF0IGNvbnRhaW4gZm9jdXNl
ZCBlbGVtZW50IGlzIG5vdCBjb25zaWRlcmVkIGZvY3VzZWQuCisgICAgZm9yIChhdXRvKiByb290
ID0gY29udGFpbmluZ1NoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPmhvc3QoKS0+Y29u
dGFpbmluZ1NoYWRvd1Jvb3QoKSkgeworICAgICAgICByb290LT5zZXRDb250YWluc0ZvY3VzZWRF
bGVtZW50KGZsYWcpOworICAgICAgICByb290LT5ob3N0KCktPmludmFsaWRhdGVTdHlsZSgpOwor
ICAgIH0KKwogICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IHRoaXM7IGVsZW1lbnQ7IGVsZW1l
bnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkKICAgICAgICAgZWxl
bWVudC0+c2V0SGFzRm9jdXNXaXRoaW4oZmxhZyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmgJKHJldmlzaW9uIDI1MDc0MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAgIGJvb2wgcmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNldFN0eWxlSW5oZXJpdGFu
Y2U7IH0KICAgICB2b2lkIHNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sKTsKIAorICAgIGJv
b2wgY29udGFpbnNGb2N1c2VkRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNGb2N1
c2VkRWxlbWVudDsgfQorICAgIHZvaWQgc2V0Q29udGFpbnNGb2N1c2VkRWxlbWVudChib29sIGZs
YWcpIHsgbV9jb250YWluc0ZvY3VzZWRFbGVtZW50ID0gZmxhZzsgfQorCiAgICAgRWxlbWVudCog
aG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1faG9zdDsgfQogICAgIHZvaWQgc2V0SG9zdChFbGVtZW50
KiBob3N0KSB7IG1faG9zdCA9IGhvc3Q7IH0KIApAQCAtMTEzLDYgKzExNiw3IEBAIHByaXZhdGU6
CiAKICAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlIHsgZmFsc2UgfTsKICAgICBib29s
IG1faGFzQmVndW5EZWxldGluZ0RldGFjaGVkQ2hpbGRyZW4geyBmYWxzZSB9OworICAgIGJvb2wg
bV9jb250YWluc0ZvY3VzZWRFbGVtZW50IHsgZmFsc2UgfTsKICAgICBTaGFkb3dSb290TW9kZSBt
X3R5cGUgeyBTaGFkb3dSb290TW9kZTo6VXNlckFnZW50IH07CiAKICAgICBFbGVtZW50KiBtX2hv
c3QgeyBudWxscHRyIH07CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA3NDMpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMC0wNCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBmb2N1cyBwc2V1ZG8g
Y2xhc3Mgc2hvdWxkIG1hdGNoIGEgc2hhZG93IGhvc3Qgd2hvc2Ugc2hhZG93IHRyZWUgY29udGFp
bnMgdGhlIGZvY3VzZWQgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgVzNDIHN0eWxlIHRlc3RoYXJuZXNzIHRlc3RzIGFuZCByZWYg
dGVzdHMuCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vZGlyZWN0LWZvY3VzLXBzZXVkby1k
b2VzLW5vdC1tYXRjaC1pbi1hdXRob3Itc3R5bGVzaGVldC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9kaXJlY3QtZm9jdXMtcHNldWRvLWRvZXMtbm90LW1h
dGNoLWluLWF1dGhvci1zdHlsZXNoZWV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hh
ZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0Y2hlcy1vbi1zaGFkb3ctaG9zdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0Y2hlcy1v
bi1zaGFkb3ctaG9zdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vZm9j
dXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTEtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhv
c3QtMi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vZm9j
dXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
aGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0zLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhv
c3QtMy5odG1sOiBBZGRlZC4KKwogMjAxOS0xMC0wNCAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxA
YXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvMmRjb250ZXh0L2xpbmUtc3R5bGVzLzJkLmxpbmUuY2FwLnJvdW5kLmh0bWwgaXMg
ZmFpbGluZwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2RpcmVjdC1mb2N1cy1w
c2V1ZG8tZG9lcy1ub3QtbWF0Y2gtaW4tYXV0aG9yLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9kaXJlY3QtZm9jdXMtcHNl
dWRvLWRvZXMtbm90LW1hdGNoLWluLWF1dGhvci1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZGlyZWN0LWZvY3VzLXBz
ZXVkby1kb2VzLW5vdC1tYXRjaC1pbi1hdXRob3Itc3R5bGVzaGVldC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0cyB0aGF0IC13ZWJraXQtZGly
ZWN0LWZvY3VzIGlzIG5vdCByZWNvZ25pemVkIGluIGF1dGhvciBzdHlsZXNoZWV0cworCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkZWZhdWx0Rm9jdXMubWF0Y2hlcygiOmZv
Y3VzIikgaXMgdHJ1ZQorUEFTUyBkZWZhdWx0Rm9jdXMubWF0Y2hlcygiOi13ZWJraXQtZGlyZWN0
LWZvY3VzIikgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3Qg
bWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uLgorUEFTUyBpbnB1dEluU2hhZG93Um9vdC5tYXRj
aGVzKCI6Zm9jdXMiKSBpcyB0cnVlCitQQVNTIGlucHV0SW5TaGFkb3dSb290Lm1hdGNoZXMoIjot
d2Via2l0LWRpcmVjdC1mb2N1cyIpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVGhlIHN0
cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLi4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3Qvc2hhZG93LWRvbS9kaXJlY3QtZm9jdXMtcHNldWRvLWRvZXMtbm90LW1hdGNoLWluLWF1
dGhvci1zdHlsZXNoZWV0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFk
b3ctZG9tL2RpcmVjdC1mb2N1cy1wc2V1ZG8tZG9lcy1ub3QtbWF0Y2gtaW4tYXV0aG9yLXN0eWxl
c2hlZXQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
ZGlyZWN0LWZvY3VzLXBzZXVkby1kb2VzLW5vdC1tYXRjaC1pbi1hdXRob3Itc3R5bGVzaGVldC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8aW5wdXQgaWQ9ImRlZmF1bHRGb2N1cyIgYXV0b2ZvY3VzPgorPHNjcmlwdD4KKwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIHRoYXQgLXdl
YmtpdC1kaXJlY3QtZm9jdXMgaXMgbm90IHJlY29nbml6ZWQgaW4gYXV0aG9yIHN0eWxlc2hlZXRz
Jyk7CisKK2xldCBmb2N1c2VkRGVmYXVsdCA9IGZhbHNlOworZnVuY3Rpb24gZGlkRm9jdXNEZWZh
dWx0KCkgeyB9CitmdW5jdGlvbiBjaGVja0ZvY3VzTWF0Y2goKSB7CisgICAgaWYgKGRlZmF1bHRG
b2N1cy5tYXRjaGVzKCc6Zm9jdXMnKSkgeworICAgICAgICBmb2N1c2VkRGVmYXVsdCA9IHRydWU7
CisgICAgICAgIGRpZEZvY3VzRGVmYXVsdCgpOworICAgIH0gZWxzZQorICAgICAgICBzZXRUaW1l
b3V0KGNoZWNrRm9jdXNNYXRjaCwgMTAwKTsKK30KK2RlZmF1bHRGb2N1cy5hZGRFdmVudExpc3Rl
bmVyKCdmb2N1cycsIGNoZWNrRm9jdXNNYXRjaCk7CisKK2Z1bmN0aW9uIHdhaXRGb3JGcmFtZVRv
QmVGb2N1c2VkKHRlc3QpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
CisgICAgICAgIGlmIChmb2N1c2VkRGVmYXVsdCkKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgZGlkRm9jdXNEZWZhdWx0ID0gcmVzb2x2ZTsKKyAgICB9
KTsKK30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBhd2FpdCB3YWl0Rm9yRnJh
bWVUb0JlRm9jdXNlZCgpOworCisgICAgc2hvdWxkQmVUcnVlKCdkZWZhdWx0Rm9jdXMubWF0Y2hl
cygiOmZvY3VzIiknKTsKKyAgICBzaG91bGRUaHJvd0Vycm9yTmFtZSgnZGVmYXVsdEZvY3VzLm1h
dGNoZXMoIjotd2Via2l0LWRpcmVjdC1mb2N1cyIpJywgJ1N5bnRheEVycm9yJyk7CisKKyAgICBj
b25zdCBob3N0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKSk7CisgICAgY29uc3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHtt
b2RlOiAnY2xvc2VkJ30pOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxpbnB1dD4nOwor
ICAgIHdpbmRvdy5pbnB1dEluU2hhZG93Um9vdCA9IHNoYWRvd1Jvb3QuZmlyc3RDaGlsZDsKKyAg
ICBpbnB1dEluU2hhZG93Um9vdC5mb2N1cygpOworCisgICAgc2hvdWxkQmVUcnVlKCdpbnB1dElu
U2hhZG93Um9vdC5tYXRjaGVzKCI6Zm9jdXMiKScpOworICAgIHNob3VsZFRocm93RXJyb3JOYW1l
KCdpbnB1dEluU2hhZG93Um9vdC5tYXRjaGVzKCI6LXdlYmtpdC1kaXJlY3QtZm9jdXMiKScsICdT
eW50YXhFcnJvcicpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQg
PSBydW5UZXN0OworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tbWF0Y2hlcy1vbi1zaGFkb3ctaG9zdC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2Zv
Y3VzLXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1ob3N0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW1hdGNoZXMt
b24tc2hhZG93LWhvc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBA
QAorCisKK1BBU1MgOmZvY3VzIG11c3Qgbm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBvcGVu
IG1vZGUgc2hhZG93IHJvb3QgdGhhdCBkb2VzIG5vdCBjb250YWluIHRoZSBmb2N1c2VkIGVsZW1l
bnQgCitQQVNTIDpmb2N1cyBtdXN0IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBvcGVuIG1vZGUg
c2hhZG93IHJvb3QgdGhhdCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IAorUEFTUyA6Zm9j
dXMgbXVzdCBub3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoIG9wZW4gbW9kZSBzaGFkb3cgcm9v
dCBjb250YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEgc2xvdCAKK1BBU1Mg
OmZvY3VzIG11c3Qgbm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBjbG9zZWQgbW9kZSBzaGFk
b3cgcm9vdCB0aGF0IGRvZXMgbm90IGNvbnRhaW4gdGhlIGZvY3VzZWQgZWxlbWVudCAKK1BBU1Mg
OmZvY3VzIG11c3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoIGNsb3NlZCBtb2RlIHNoYWRvdyBy
b290IHRoYXQgY29udGFpbnMgdGhlIGZvY3VzZWQgZWxlbWVudCAKK1BBU1MgOmZvY3VzIG11c3Qg
bm90IG1hdGNoIGEgc2hhZG93IGhvc3Qgd2l0aCBjbG9zZWQgbW9kZSBzaGFkb3cgcm9vdCBjb250
YWlucyB0aGUgZm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEgc2xvdCAKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1o
b3N0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3Vz
LXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1ob3N0Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1tYXRjaGVzLW9uLXNoYWRvdy1o
b3N0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdh
IiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9Ijpmb2N1cyBzaG91bGQgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aGljaCBjb250YWlucyB0
aGUgZm9jdXNlZCBlbGVtZW50Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jZWxlbWVudC1oYXMtdGhlLWZvY3VzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxpbnB1dCBpZD0iZGVmYXVsdEZvY3VzIiBhdXRvZm9jdXM+Cis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2xldCBmb2N1
c2VkRGVmYXVsdCA9IGZhbHNlOworZnVuY3Rpb24gZGlkRm9jdXNEZWZhdWx0KCkgeyB9CitmdW5j
dGlvbiBjaGVja0ZvY3VzTWF0Y2goKSB7CisgICAgaWYgKGRlZmF1bHRGb2N1cy5tYXRjaGVzKCc6
Zm9jdXMnKSkgeworICAgICAgICBmb2N1c2VkRGVmYXVsdCA9IHRydWU7CisgICAgICAgIGRpZEZv
Y3VzRGVmYXVsdCgpOworICAgIH0gZWxzZQorICAgICAgICBzZXRUaW1lb3V0KGNoZWNrRm9jdXNN
YXRjaCwgMTAwKTsKK30KK2RlZmF1bHRGb2N1cy5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGNo
ZWNrRm9jdXNNYXRjaCk7CisKK2Z1bmN0aW9uIHByZXBhcmUodGVzdCkKK3sKKyAgICB0ZXN0LmFk
ZF9jbGVhbnVwKCgpID0+IHsKKyAgICAgICAgZGVmYXVsdEZvY3VzLmZvY3VzKCk7CisgICAgICAg
IGNvbnRhaW5lci50ZXh0Q29udGVudCA9ICcnOworICAgIH0pOworICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICBpZiAoZm9jdXNlZERlZmF1bHQpCisgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpZEZvY3VzRGVmYXVs
dCA9IHJlc29sdmU7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbk1vZGUobW9kZSkgewor
ICAgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgICAgIGF3YWl0IHByZXBh
cmUodGhpcyk7CisgICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICBjb25z
dCBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGV9KTsKKyAgICAgICAgc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAnPGlucHV0Pic7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZG9jdW1l
bnQuYWN0aXZlRWxlbWVudCwgZGVmYXVsdEZvY3VzKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
aGFkb3dSb290LmFjdGl2ZUVsZW1lbnQsIG51bGwpOworICAgICAgICBhc3NlcnRfZmFsc2UoaG9z
dC5tYXRjaGVzKCc6Zm9jdXMnKSk7CisgICAgfSwgYDpmb2N1cyBtdXN0IG5vdCBtYXRjaCBhIHNo
YWRvdyBob3N0IHdpdGggJHttb2RlfSBtb2RlIHNoYWRvdyByb290IHRoYXQgZG9lcyBub3QgY29u
dGFpbiB0aGUgZm9jdXNlZCBlbGVtZW50YCk7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgZnVu
Y3Rpb24gKCkgeworICAgICAgICBhd2FpdCBwcmVwYXJlKHRoaXMpOworICAgICAgICBjb25zdCBo
b3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaG9zdCk7CisgICAgICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0
dGFjaFNoYWRvdyh7bW9kZX0pOworICAgICAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8aW5w
dXQ+JzsKKyAgICAgICAgc2hhZG93Um9vdC5maXJzdENoaWxkLmZvY3VzKCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwgaG9zdCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50LCBzaGFkb3dSb290LmZpcnN0Q2hpbGQp
OworICAgICAgICBhc3NlcnRfdHJ1ZShob3N0Lm1hdGNoZXMoJzpmb2N1cycpKTsKKyAgICB9LCBg
OmZvY3VzIG11c3QgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aXRoICR7bW9kZX0gbW9kZSBzaGFkb3cg
cm9vdCB0aGF0IGNvbnRhaW5zIHRoZSBmb2N1c2VkIGVsZW1lbnRgKTsKKworICAgIHByb21pc2Vf
dGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgICAgIGF3YWl0IHByZXBhcmUodGhpcyk7Cisg
ICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAg
ICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICBjb25zdCBzaGFkb3dSb290
ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGV9KTsKKyAgICAgICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPHNsb3Q+JzsKKyAgICAgICAgaG9zdC5pbm5lckhUTUwgPSAnPGlucHV0Pic7CisgICAg
ICAgIGhvc3QuZmlyc3RDaGlsZC5mb2N1cygpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQsIGhvc3QuZmlyc3RDaGlsZCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNl
KGhvc3QubWF0Y2hlcygnOmZvY3VzJykpOworICAgIH0sIGA6Zm9jdXMgbXVzdCBub3QgbWF0Y2gg
YSBzaGFkb3cgaG9zdCB3aXRoICR7bW9kZX0gbW9kZSBzaGFkb3cgcm9vdCBjb250YWlucyB0aGUg
Zm9jdXNlZCBlbGVtZW50IGFzc2lnbmVkIHRvIGEgc2xvdGApOworCit9CisKK3Rlc3RJbk1vZGUo
J29wZW4nKTsKK3Rlc3RJbk1vZGUoJ2Nsb3NlZCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24t
c2hhZG93LWhvc3QtMS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMS1leHBlY3RlZC5odG1s
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1
ZG8tb24tc2hhZG93LWhvc3QtMS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+
VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSAxMDBweCBieSAxMDBweCBncmVlbiBib3gg
YmVsb3cuPC9wPgorICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAw
cHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9z
dC0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3Vz
LXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0xLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWls
dG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ijpmb2N1
cyBzaG91bGQgbWF0Y2ggYSBzaGFkb3cgaG9zdCB3aGljaCBjb250YWlucyB0aGUgZm9jdXNlZCBl
bGVtZW50Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy8jZWxlbWVudC1oYXMtdGhlLWZvY3VzIj4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBw
YXNzZXMgaWYgeW91IHNlZSBhIHNpbmdsZSAxMDBweCBieSAxMDBweCBncmVlbiBib3ggYmVsb3cu
PC9wPgorPGRpdiBpZD0iaG9zdCI+PC9kaXY+Cis8c3R5bGU+CisjaG9zdCB7IGJhY2tncm91bmQ6
IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB9CisjaG9zdDpmb2N1cyB7IGJhY2tn
cm91bmQ6IGdyZWVuOyB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKworY29uc3Qgc2hhZG93Um9vdCA9
IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPGRpdiB0YWJpbmRleD0iMCIgc3R5bGU9Im91dGxpbmU6IG5vbmU7Ij48L2Rpdj4nOwor
c2hhZG93Um9vdC5maXJzdENoaWxkLmZvY3VzKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1z
aGFkb3ctaG9zdC0yLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVkby1vbi1zaGFkb3ctaG9zdC0yLWV4cGVjdGVkLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2ZvY3VzLXBzZXVk
by1vbi1zaGFkb3ctaG9zdC0yLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxib2R5PgorICAgICAgICA8cD5U
ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBi
ZWxvdy48L3A+CisgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBw
eDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0
LTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMt
cHNldWRvLW9uLXNoYWRvdy1ob3N0LTIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTIuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0
bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iOmZvY3Vz
IHNob3VsZCBtYXRjaCBhIHNoYWRvdyBob3N0IHdoaWNoIGNvbnRhaW5zIHRoZSBmb2N1c2VkIGVs
ZW1lbnQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnLyNlbGVtZW50LWhhcy10aGUtZm9jdXMiPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IHBh
c3NlcyBpZiB5b3Ugc2VlIGEgc2luZ2xlIDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBiZWxvdy48
L3A+Cis8ZGl2IGlkPSJob3N0Ij48c3Bhbj5GQUlMPC9zcGFuPjwvZGl2PgorPHN0eWxlPgorI2hv
c3QgeyBiYWNrZ3JvdW5kOiBncmVlbjsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB9Cisj
aG9zdCBzcGFuIHsgYmFja2dyb3VuZDogcmVkOyB9CisjaG9zdDpmb2N1cyBzcGFuIHsgYmFja2dy
b3VuZDogZ3JlZW47IGNvbG9yOiBncmVlbjsgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisKK2NvbnN0
IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gJzxkaXYgdGFiaW5kZXg9IjAiIHN0eWxlPSJvdXRsaW5lOiBub25l
OyI+PHNsb3Q+PC9zbG90PjwvZGl2Pic7CitzaGFkb3dSb290LmZpcnN0Q2hpbGQuZm9jdXMoKTsK
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTMtZXhwZWN0ZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNo
YWRvdy1ob3N0LTMtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3NoYWRvdy1kb20vZm9jdXMtcHNldWRvLW9uLXNoYWRvdy1ob3N0LTMtZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgYSBzaW5nbGUg
MTAwcHggYnkgMTAwcHggZ3JlZW4gYm94IGJlbG93LjwvcD4KKyAgICAgICAgPGRpdiBzdHlsZT0i
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBncmVlbjsiPjwvZGl2Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9m
b2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8tb24tc2hhZG93LWhvc3QtMy5odG1sCShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9mb2N1cy1wc2V1ZG8t
b24tc2hhZG93LWhvc3QtMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9
IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFt
ZT0iYXNzZXJ0IiBjb250ZW50PSI6Zm9jdXMgc2hvdWxkIG5vdCBtYXRjaCBhIHNoYWRvdyBob3N0
IGlmIHRoZSBmb2N1c2VkIGVsZW1lbnQgaXMgYSBzbG90dGVkIGNvbnRlbnQiPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNlbGVtZW50LWhhcy10
aGUtZm9jdXMiPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIGEg
c2luZ2xlIDEwMHB4IGJ5IDEwMHB4IGdyZWVuIGJveCBiZWxvdy48L3A+Cis8ZGl2IGlkPSJob3N0
Ij48ZGl2IGlkPSJ0YXJnZXQiIHRhYmluZGV4PSIwIj48L2Rpdj48L2Rpdj4KKzxzdHlsZT4KKyNo
b3N0IHsgYmFja2dyb3VuZDogZ3JlZW47IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgfQor
I2hvc3Q6Zm9jdXMgI3RhcmdldCB7IGJhY2tncm91bmQ6IHJlZDsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyB9CisjdGFyZ2V0IHsgb3V0bGluZTogbm9uZTsgfQorPC9zdHlsZT4KKzxzY3Jp
cHQ+CisKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3Nl
ZCd9KTsKK3NoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzbG90Pjwvc2xvdD4nOwordGFyZ2V0LmZv
Y3VzKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL2ZvY3VzL2ZvY3VzLXNl
bGVjdG9yLWRlbGVnYXRlc0ZvY3VzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vZm9jdXMvZm9j
dXMtc2VsZWN0b3ItZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNTA3NDMp
CisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1k
b20vZm9jdXMvZm9jdXMtc2VsZWN0b3ItZGVsZWdhdGVzRm9jdXMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDEyICsxLDEyIEBACiBmb28KIGZvbwogCi1GQUlMIDpmb2N1cyBhcHBs
aWVzIHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz10cnVlIHdoZW4gdGhlIHNoYWRvdyByb290
J3MgZGVzY2VuZGFudCBoYXMgZm9jdXMgYXNzZXJ0X3RydWU6IGhvc3QgbWF0Y2hlcyA6Zm9jdXMg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgOmZvY3VzIGFwcGxpZXMgdG8gaG9zdCB3aXRo
IGRlbGVnYXRlc0ZvY3VzPXRydWUgd2hlbiB0aGUgc2hhZG93IHJvb3QncyBkZXNjZW5kYW50IGhh
cyBmb2N1cyAKIEZBSUwgOmZvY3VzIGFwcGxpZXMgdG8gaG9zdCB3aXRoIGRlbGVnYXRlc0ZvY3Vz
PXRydWUgd2hlbiBzbG90dGVkIGVsZW1lbnQgaGFzIGZvY3VzIGFzc2VydF90cnVlOiBob3N0IG1h
dGNoZXMgOmZvY3VzIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIDpmb2N1cyBhcHBsaWVz
IHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz10cnVlIHdoZW4gYW4gZWxlbWVudCBpbiBhIG5l
c3RlZCBzaGFkb3cgdHJlZSB3aXRoIGRlbGVnYXRlc0ZvY3VzPXRydWUgaXMgZm9jdXNlZCBhc3Nl
cnRfdHJ1ZTogaG9zdCBvZiBuZXN0ZWQgc2hhZG93IHRyZWUgbWF0Y2hlcyBmb2N1cyBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCA6Zm9jdXMgYXBwbGllcyB0byBob3N0IHdpdGggZGVsZWdh
dGVzRm9jdXM9dHJ1ZSB3aGVuIGFuIGVsZW1lbnQgaW4gYSBuZXN0ZWQgc2hhZG93IHRyZWUgd2l0
aCBkZWxlZ2F0ZXNGb2N1cz1mYWxzZSBpcyBmb2N1c2VkIGFzc2VydF90cnVlOiBob3N0IG9mIG5l
c3RlZCBzaGFkb3cgdHJlZSBtYXRjaGVzIGZvY3VzIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIDpmb2N1cyBhcHBsaWVzIHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz1mYWxzZSB3aGVu
IHRoZSBzaGFkb3cgcm9vdCdzIGRlc2NlbmRhbnQgaGFzIGZvY3VzIGFzc2VydF90cnVlOiBob3N0
IG1hdGNoZXMgOmZvY3VzIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIDpmb2N1cyBhcHBs
aWVzIHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz10cnVlIHdoZW4gYW4gZWxlbWVudCBpbiBh
IG5lc3RlZCBzaGFkb3cgdHJlZSB3aXRoIGRlbGVnYXRlc0ZvY3VzPXRydWUgaXMgZm9jdXNlZCAK
K1BBU1MgOmZvY3VzIGFwcGxpZXMgdG8gaG9zdCB3aXRoIGRlbGVnYXRlc0ZvY3VzPXRydWUgd2hl
biBhbiBlbGVtZW50IGluIGEgbmVzdGVkIHNoYWRvdyB0cmVlIHdpdGggZGVsZWdhdGVzRm9jdXM9
ZmFsc2UgaXMgZm9jdXNlZCAKK1BBU1MgOmZvY3VzIGFwcGxpZXMgdG8gaG9zdCB3aXRoIGRlbGVn
YXRlc0ZvY3VzPWZhbHNlIHdoZW4gdGhlIHNoYWRvdyByb290J3MgZGVzY2VuZGFudCBoYXMgZm9j
dXMgCiBGQUlMIDpmb2N1cyBhcHBsaWVzIHRvIGhvc3Qgd2l0aCBkZWxlZ2F0ZXNGb2N1cz1mYWxz
ZSB3aGVuIHNsb3R0ZWQgZWxlbWVudCBoYXMgZm9jdXMgYXNzZXJ0X3RydWU6IGhvc3QgbWF0Y2hl
cyA6Zm9jdXMgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgOmZvY3VzIGFwcGxpZXMgdG8g
aG9zdCB3aXRoIGRlbGVnYXRlc0ZvY3VzPWZhbHNlIHdoZW4gYW4gZWxlbWVudCBpbiBhIG5lc3Rl
ZCBzaGFkb3cgdHJlZSB3aXRoIGRlbGVnYXRlc0ZvY3VzPXRydWUgaXMgZm9jdXNlZCBhc3NlcnRf
dHJ1ZTogaG9zdCBvZiBuZXN0ZWQgc2hhZG93IHRyZWUgbWF0Y2hlcyBmb2N1cyBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCA6Zm9jdXMgYXBwbGllcyB0byBob3N0IHdpdGggZGVsZWdhdGVz
Rm9jdXM9ZmFsc2Ugd2hlbiBhbiBlbGVtZW50IGluIGEgbmVzdGVkIHNoYWRvdyB0cmVlIHdpdGgg
ZGVsZWdhdGVzRm9jdXM9ZmFsc2UgaXMgZm9jdXNlZCBhc3NlcnRfdHJ1ZTogaG9zdCBvZiBuZXN0
ZWQgc2hhZG93IHRyZWUgbWF0Y2hlcyBmb2N1cyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyA6Zm9jdXMgYXBwbGllcyB0byBob3N0IHdpdGggZGVsZWdhdGVzRm9jdXM9ZmFsc2Ugd2hlbiBh
biBlbGVtZW50IGluIGEgbmVzdGVkIHNoYWRvdyB0cmVlIHdpdGggZGVsZWdhdGVzRm9jdXM9dHJ1
ZSBpcyBmb2N1c2VkIAorUEFTUyA6Zm9jdXMgYXBwbGllcyB0byBob3N0IHdpdGggZGVsZWdhdGVz
Rm9jdXM9ZmFsc2Ugd2hlbiBhbiBlbGVtZW50IGluIGEgbmVzdGVkIHNoYWRvdyB0cmVlIHdpdGgg
ZGVsZWdhdGVzRm9jdXM9ZmFsc2UgaXMgZm9jdXNlZCAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>