<?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>133314</bug_id>
          
          <creation_ts>2014-05-27 10:30:34 -0700</creation_ts>
          <short_desc>CSS JIT: add support for the &quot;not&quot; pseudo class</short_desc>
          <delta_ts>2014-06-02 00:01:28 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>133295</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012010</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-05-27 10:30:34 -0700</bug_when>
    <thetext>Add support for the &quot;not&quot; pseudo class.
After &quot;active&quot; and &quot;hover&quot; support is done, I&apos;ll start to implement this.

NOTE:
We need to consider about this change[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=133063</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012567</commentid>
    <comment_count>1</comment_count>
      <attachid>232280</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-05-29 22:24:47 -0700</bug_when>
    <thetext>Created attachment 232280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012569</commentid>
    <comment_count>2</comment_count>
      <attachid>232280</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-05-29 22:50:27 -0700</bug_when>
    <thetext>Comment on attachment 232280
Patch

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

Added comments to review it easily.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:430
&gt; +                return FunctionType::CannotCompile;

Is this check necessary? I took the conservative.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:433
&gt; +            subFragment.inFunctionalPseudoClass = true;

Set `inFunctionalPseudoClass` as true.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:439
&gt; +            // FIXME(Yusuke Suzuki): Currently we don&apos;t support visitedMatchType.

Currently, this implementation doesn&apos;t support visitedMatchType. When link pseudo class is found in the :not, fallback to the non-JIT implementation.
After this issue, I&apos;m planning to implement :visited, :any.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:468
&gt; +        computeBacktrackingInformation(m_selectorFragments, m_needsAdjacentBacktrackingStart);

Splitted these sequences to `constructFragments` and `computeBacktrackingInformation` since :not doesn&apos;t need `computeBacktrackingInformation`.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:471
&gt; +static FunctionType constructFragments(const CSSSelector *rootSelector, SelectorContext selectorContext, SelectorFragmentList&amp; selectorFragments)

Made it a static function.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:540
&gt; +            functionType = mostRestrictiveFunctionType(functionType, relationFunctionType);

Used `mostRestrictiveFunctionType` instead of using `std::max` directly.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:563
&gt; +static inline unsigned minimumRegisterRequirements(const SelectorFragment&amp; selectorFragment)

Splitted it to 2 functions, one for Fragment, and one for FragmentList.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:590
&gt; +        unsigned notFilterMinimum = minimumRegisterRequirements(subFragment);

Calculating register requirements for notFilters.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:1637
&gt; +    if (!fragment.notFilters.isEmpty())

Implemented notFilters check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012696</commentid>
    <comment_count>3</comment_count>
      <attachid>232280</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-30 16:25:14 -0700</bug_when>
    <thetext>Comment on attachment 232280
Patch

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

The patch is great. Some little comments below.
I think the test coverage could go deeper.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:159
&gt; +    Vector&lt;SelectorFragment, 0&gt; notFilters;

You don&apos;t need to specify an initial capacity of zero, that is the default.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:430
&gt;&gt; +                return FunctionType::CannotCompile;
&gt; 
&gt; Is this check necessary? I took the conservative.

Long term, we want to remove FunctionType::CannotCompile and be able to compile everything as a fast selector.
I think you could return CannotMatchAnything here.

You could also add a regular assertion ASSERT(notFragments.size() != 1) before the if() to catch any bug in the parser during development.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:437
&gt; +            // Always pass the filters. Don&apos;t append the fragment to notFilters.
&gt; +            if (subFragment.pseudoClasses.contains(CSSSelector::PseudoClassVisited))
&gt; +                return FunctionType::SimpleSelectorChecker;

You don&apos;t need to do this yet. We will need to revisit PseudoClassVisited, I am suspicious the implementation in the slow SelectorChecker may have bugs.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:439
&gt;&gt; +            // FIXME(Yusuke Suzuki): Currently we don&apos;t support visitedMatchType.
&gt; 
&gt; Currently, this implementation doesn&apos;t support visitedMatchType. When link pseudo class is found in the :not, fallback to the non-JIT implementation.
&gt; After this issue, I&apos;m planning to implement :visited, :any.

This is another case where I have doubts about the old SelectorChecker. Returning CannotCompile is reasonable until it is investigated.
You should remove your name from the FIXME, the bugs are open to everyone.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:471
&gt;&gt; +static FunctionType constructFragments(const CSSSelector *rootSelector, SelectorContext selectorContext, SelectorFragmentList&amp; selectorFragments)
&gt; 
&gt; Made it a static function.

WebKit style: the star is on the wrong side on &quot;const CSSSelector *rootSelector&quot;.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:540
&gt;&gt; +            functionType = mostRestrictiveFunctionType(functionType, relationFunctionType);
&gt; 
&gt; Used `mostRestrictiveFunctionType` instead of using `std::max` directly.

Good idea.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:567
&gt;      // Element + BacktrackingRegister + ElementData + a pointer to values + an index on that pointer + the value we expect;
&gt;      unsigned minimum = 6;

This number and comment is spread in 3 places now. Let&apos;s put it in a constant outside the function, and have the comment there.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:572
&gt; +        // Element + ElementData + scratchRegister + attributeArrayPointer + expectedLocalName + (qualifiedNameImpl &amp;&amp; expectedValue).

You can remove this comment.

&gt; LayoutTests/ChangeLog:13
&gt; +        * fast/selectors/pseudo-class-not-expected.txt: Added.
&gt; +        * fast/selectors/pseudo-class-not.html: Added.

It would be good to add the following tests:
    -:not() with backtracking.
    -:not() with the maximum register allocation.
    -:not() with :active and/or :hover to test the new inFunctionalPseudoClass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012732</commentid>
    <comment_count>4</comment_count>
      <attachid>232280</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-05-30 23:50:00 -0700</bug_when>
    <thetext>Comment on attachment 232280
Patch

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

Thank you for your review, Benjamin.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:159
&gt;&gt; +    Vector&lt;SelectorFragment, 0&gt; notFilters;
&gt; 
&gt; You don&apos;t need to specify an initial capacity of zero, that is the default.

Removed initial capacity.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:437
&gt;&gt; +                return FunctionType::SimpleSelectorChecker;
&gt; 
&gt; You don&apos;t need to do this yet. We will need to revisit PseudoClassVisited, I am suspicious the implementation in the slow SelectorChecker may have bugs.

Ah, right. I don&apos;t know why adjacent :visited causes security risk. We need to investigate it.
So removed this.

&gt;&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:439
&gt;&gt;&gt; +            // FIXME(Yusuke Suzuki): Currently we don&apos;t support visitedMatchType.
&gt;&gt; 
&gt;&gt; Currently, this implementation doesn&apos;t support visitedMatchType. When link pseudo class is found in the :not, fallback to the non-JIT implementation.
&gt;&gt; After this issue, I&apos;m planning to implement :visited, :any.
&gt; 
&gt; This is another case where I have doubts about the old SelectorChecker. Returning CannotCompile is reasonable until it is investigated.
&gt; You should remove your name from the FIXME, the bugs are open to everyone.

Right. Removed my name from the FIXME.

&gt;&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:471
&gt;&gt;&gt; +static FunctionType constructFragments(const CSSSelector *rootSelector, SelectorContext selectorContext, SelectorFragmentList&amp; selectorFragments)
&gt;&gt; 
&gt;&gt; Made it a static function.
&gt; 
&gt; WebKit style: the star is on the wrong side on &quot;const CSSSelector *rootSelector&quot;.

Thank you! Fixed it.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:567
&gt;&gt;      unsigned minimum = 6;
&gt; 
&gt; This number and comment is spread in 3 places now. Let&apos;s put it in a constant outside the function, and have the comment there.

That&apos;s very nice. Extracted it.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:572
&gt;&gt; +        // Element + ElementData + scratchRegister + attributeArrayPointer + expectedLocalName + (qualifiedNameImpl &amp;&amp; expectedValue).
&gt; 
&gt; You can remove this comment.

This `6` and `minimum`&apos;s `6` have different meaning. So extracted these constants to `numberOfMinimumRequiredRegisters` and `numberOfMinimumRequiredRegistersForAttributeFilter`.

&gt;&gt; LayoutTests/ChangeLog:13
&gt;&gt; +        * fast/selectors/pseudo-class-not.html: Added.
&gt; 
&gt; It would be good to add the following tests:
&gt;     -:not() with backtracking.
&gt;     -:not() with the maximum register allocation.
&gt;     -:not() with :active and/or :hover to test the new inFunctionalPseudoClass

Right. I&apos;ll add more LayoutTests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012825</commentid>
    <comment_count>5</comment_count>
      <attachid>232342</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-06-01 08:31:58 -0700</bug_when>
    <thetext>Created attachment 232342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012826</commentid>
    <comment_count>6</comment_count>
      <attachid>232343</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-06-01 08:34:40 -0700</bug_when>
    <thetext>Created attachment 232343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012877</commentid>
    <comment_count>7</comment_count>
      <attachid>232343</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-01 16:31:31 -0700</bug_when>
    <thetext>Comment on attachment 232343
Patch

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

Great patch

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:158
&gt;      Vector&lt;std::pair&lt;int, int&gt;&gt; nthChildfilters;

Ooops,I forgot to capitalize Filters here :|

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:233
&gt; +    void generateElementIsNotMatchedToNegation(Assembler::JumpList&amp; failureCases, const SelectorFragment&amp;);

I realize the name &quot;generateElementIsNotMatchedToNegation&quot; is confusing. What do you think of generateElementMatchesNotPseudoClass?

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:1659
&gt; -    generateElementAttributesMatching(failureCases, elementDataAddress, fragment);
&gt; +        generateElementAttributesMatching(failureCases, elementDataAddress, fragment);

Oops.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:2560
&gt; +    Assembler::JumpList localFailureCases;

This could be moved in the for() loop.

&gt; LayoutTests/ChangeLog:23
&gt; +        * fast/selectors/not-active-hover-quirks-expected.txt: Added.
&gt; +        * fast/selectors/not-active-hover-quirks.html: Added.
&gt; +        * fast/selectors/not-active-hover-strict-expected.txt: Added.
&gt; +        * fast/selectors/not-active-hover-strict.html: Added.
&gt; +        * fast/selectors/pseudo-class-not-expected.txt: Added.
&gt; +        * fast/selectors/pseudo-class-not.html: Added.
&gt; +        * fast/selectors/resources/not-hover-active-quirks-utility.js: Added.
&gt; +        (testQuerySelector):
&gt; +        (test):
&gt; +        * fast/selectors/resources/not-hover-active-strict-utility.js: Added.
&gt; +        (testQuerySelector):
&gt; +        (test):

Wow, that&apos;s a lot of tests :)

&gt; LayoutTests/fast/selectors/not-active-hover-quirks.html:15
&gt; +description(&apos;Test the :not(:active) and :not(:hover) selector when the document is in quirks mode. To test manually, ensure that not move the cursor over the green rectangle and press the gray START div until the test is finished.&apos;);

Typo here: &quot;ensure that not move&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012901</commentid>
    <comment_count>8</comment_count>
      <attachid>232343</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-06-01 21:56:32 -0700</bug_when>
    <thetext>Comment on attachment 232343
Patch

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

Thank you for your review! I&apos;ll upload the revised patch soon.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:158
&gt;&gt;      Vector&lt;std::pair&lt;int, int&gt;&gt; nthChildfilters;
&gt; 
&gt; Ooops,I forgot to capitalize Filters here :|

Oh! I&apos;ve renamed it :)

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:233
&gt;&gt; +    void generateElementIsNotMatchedToNegation(Assembler::JumpList&amp; failureCases, const SelectorFragment&amp;);
&gt; 
&gt; I realize the name &quot;generateElementIsNotMatchedToNegation&quot; is confusing. What do you think of generateElementMatchesNotPseudoClass?

`generateElementMatchesNotPseudoClass` looks nice to me. `NotPseudoClass` seems very clear to code readers.
I&apos;ve renamed it!

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:2560
&gt;&gt; +    Assembler::JumpList localFailureCases;
&gt; 
&gt; This could be moved in the for() loop.

Right, done :)

&gt;&gt; LayoutTests/fast/selectors/not-active-hover-quirks.html:15
&gt;&gt; +description(&apos;Test the :not(:active) and :not(:hover) selector when the document is in quirks mode. To test manually, ensure that not move the cursor over the green rectangle and press the gray START div until the test is finished.&apos;);
&gt; 
&gt; Typo here: &quot;ensure that not move&quot;.

Changed to &quot;make sure not to move ... over ...&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012902</commentid>
    <comment_count>9</comment_count>
      <attachid>232367</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-06-01 21:57:49 -0700</bug_when>
    <thetext>Created attachment 232367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012909</commentid>
    <comment_count>10</comment_count>
      <attachid>232367</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-02 00:01:24 -0700</bug_when>
    <thetext>Comment on attachment 232367
Patch

Clearing flags on attachment: 232367

Committed r169525: &lt;http://trac.webkit.org/changeset/169525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012910</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-02 00:01:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232280</attachid>
            <date>2014-05-29 22:24:47 -0700</date>
            <delta_ts>2014-06-01 08:31:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133314-20140530142452.patch</filename>
            <type>text/plain</type>
            <size>25307</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRhZTkwNTMxN2RjMTFh
ZjUzMWY0ZjFkMzEwNDU4ZDNkYmNlYTc0My4uNTAzZGVmNjcyMDY4NDQ2ZjEzZmVkMTk4OGNhYmY2
Njg4NjNjNmZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA1LTI5ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IGFk
ZCBzdXBwb3J0IGZvciB0aGUgIm5vdCIgcHNldWRvIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMzMTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgOm5vdCBwc2V1ZG8gY2xhc3Mgc3VwcG9y
dCB0byBDU1MgSklULiBDdXJyZW50IGltcGxlbWVudGF0aW9uCisgICAgICAgIGRvZXNuJ3Qgc3Vw
cG9ydCB2aXNpdGVkTWF0Y2hUeXBlLiBTbyB3aGVuIGxpbmsgcHNldWRvIGNsYXNzIGFwcGVhcnMg
aW4KKyAgICAgICAgOm5vdCBzdWIgZnJhZ21lbnQsIGZhbGxiYWNrIHRvIHRoZSBub24tSklUIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc2VsZWN0b3JzL3BzZXVkby1jbGFz
cy1ub3QuaHRtbAorCisgICAgICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6YWRkUHNldWRvQ2xhc3NUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6
U2VsZWN0b3JDb2RlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGls
ZXI6OmNvbnN0cnVjdEZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBp
bGVyOjptaW5pbXVtUmVnaXN0ZXJSZXF1aXJlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJh
dGVTZWxlY3RvckNoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6
U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRNYXRjaGluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVy
YXRlRWxlbWVudElzTm90TWF0Y2hlZFRvTmVnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21wdXRlQmFja3RyYWNraW5n
SW5mb3JtYXRpb24pOiBEZWxldGVkLgorCiAyMDE0LTA1LTI5ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUHJlcGFyZSBjc3Mgaml0IGZvciBh
cm02NCBhbmQgb3RoZXIgYXJjaGl0ZWN0dXJlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxl
Y3RvckNvbXBpbGVyLmNwcAppbmRleCA3MjVjNDk2NmE0YTU5YTk4N2YwZDc2YmExODI2ODA0YjJm
ODc5MWJiLi5mMzA2MjljNjYyOGU1NjI3NDgzYzI0OTY2YTI5YzUwYzMwYWU4MWFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAKICNpbmNsdWRlICJDU1NTZWxlY3Rvci5o
IgorI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNp
bmNsdWRlICJFbGVtZW50RGF0YS5oIgogI2luY2x1ZGUgIkVsZW1lbnRSYXJlRGF0YS5oIgpAQCAt
MTU1LDYgKzE1Niw3IEBAIHN0cnVjdCBTZWxlY3RvckZyYWdtZW50IHsKICAgICBWZWN0b3I8SlND
OjpGdW5jdGlvblB0cj4gdW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzOwogICAgIFZlY3RvcjxBdHRy
aWJ1dGVNYXRjaGluZ0luZm8+IGF0dHJpYnV0ZXM7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxpbnQs
IGludD4+IG50aENoaWxkZmlsdGVyczsKKyAgICBWZWN0b3I8U2VsZWN0b3JGcmFnbWVudCwgMD4g
bm90RmlsdGVyczsKIAogICAgIGJvb2wgaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3M7CiB9OwpAQCAt
MTg0LDcgKzE4Niw2IEBAIGNsYXNzIFNlbGVjdG9yQ29kZUdlbmVyYXRvciB7CiAgICAgc3RhdGlj
IGNvbnN0IEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBjaGVja2luZ0NvbnRleHRSZWdpc3RlcjsKICAg
ICBzdGF0aWMgY29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIGNhbGxGcmFtZVJlZ2lzdGVyOwog
Ci0gICAgdm9pZCBjb21wdXRlQmFja3RyYWNraW5nSW5mb3JtYXRpb24oKTsKICAgICB2b2lkIGdl
bmVyYXRlU2VsZWN0b3JDaGVja2VyKCk7CiAKICAgICAvLyBFbGVtZW50IHJlbGF0aW9ucyB0cmVl
IHdhbGtlci4KQEAgLTIyOSw2ICsyMzAsNyBAQCBjbGFzcyBTZWxlY3RvckNvZGVHZW5lcmF0b3Ig
ewogICAgIHZvaWQgZ2VuZXJhdGVFbGVtZW50SGFzQ2xhc3NlcyhBc3NlbWJsZXI6Okp1bXBMaXN0
JiBmYWlsdXJlQ2FzZXMsIGNvbnN0IExvY2FsUmVnaXN0ZXImIGVsZW1lbnREYXRhQWRkcmVzcywg
Y29uc3QgVmVjdG9yPGNvbnN0IEF0b21pY1N0cmluZ0ltcGwqPiYgY2xhc3NOYW1lcyk7CiAgICAg
dm9pZCBnZW5lcmF0ZUVsZW1lbnRJc0xpbmsoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNh
c2VzKTsKICAgICB2b2lkIGdlbmVyYXRlRWxlbWVudElzTnRoQ2hpbGQoQXNzZW1ibGVyOjpKdW1w
TGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50Jik7CisgICAgdm9pZCBn
ZW5lcmF0ZUVsZW1lbnRJc05vdE1hdGNoZWRUb05lZ2F0aW9uKEFzc2VtYmxlcjo6SnVtcExpc3Qm
IGZhaWx1cmVDYXNlcywgY29uc3QgU2VsZWN0b3JGcmFnbWVudCYpOwogICAgIHZvaWQgZ2VuZXJh
dGVFbGVtZW50SXNSb290KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcyk7CiAgICAg
dm9pZCBnZW5lcmF0ZUVsZW1lbnRJc1RhcmdldChBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJl
Q2FzZXMpOwogCkBAIC0yNDIsNyArMjQ0LDcgQEAgY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
IHsKICAgICBib29sIGdlbmVyYXRlUHJvbG9ndWUoKTsKICAgICB2b2lkIGdlbmVyYXRlRXBpbG9n
dWUoKTsKICAgICBWZWN0b3I8U3RhY2tBbGxvY2F0b3I6OlN0YWNrUmVmZXJlbmNlPiBtX3Byb2xv
Z3VlU3RhY2tSZWZlcmVuY2VzOwotICAgIAorCiAgICAgQXNzZW1ibGVyIG1fYXNzZW1ibGVyOwog
ICAgIFJlZ2lzdGVyQWxsb2NhdG9yIG1fcmVnaXN0ZXJBbGxvY2F0b3I7CiAgICAgU3RhY2tBbGxv
Y2F0b3IgbV9zdGFja0FsbG9jYXRvcjsKQEAgLTI3NCw2ICsyNzYsMTAgQEAgY2xhc3MgU2VsZWN0
b3JDb2RlR2VuZXJhdG9yIHsKIGNvbnN0IEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmNoZWNraW5nQ29udGV4dFJlZ2lzdGVyID0gSlNDOjpHUFJJbmZvOjphcmd1
bWVudEdQUjE7CiBjb25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgU2VsZWN0b3JDb2RlR2VuZXJh
dG9yOjpjYWxsRnJhbWVSZWdpc3RlciA9IEpTQzo6R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXI7
CiAKK3N0YXRpYyBGdW5jdGlvblR5cGUgY29uc3RydWN0RnJhZ21lbnRzKGNvbnN0IENTU1NlbGVj
dG9yICpyb290U2VsZWN0b3IsIFNlbGVjdG9yQ29udGV4dCwgU2VsZWN0b3JGcmFnbWVudExpc3Qm
IHNlbGVjdG9yRnJhZ21lbnRzKTsKKworc3RhdGljIHZvaWQgY29tcHV0ZUJhY2t0cmFja2luZ0lu
Zm9ybWF0aW9uKFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3RvckZyYWdtZW50cywgYm9vbCYg
bmVlZHNBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KTsKKwogU2VsZWN0b3JDb21waWxhdGlvblN0
YXR1cyBjb21waWxlU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIGxhc3RTZWxlY3RvciwgSlND
OjpWTSogdm0sIFNlbGVjdG9yQ29udGV4dCBzZWxlY3RvckNvbnRleHQsIEpTQzo6TWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmJiBjb2RlUmVmKQogewogICAgIGlmICghdm0tPmNhblVzZUpJVCgpKQpAQCAt
NDAyLDYgKzQwOCw0MiBAQCBzdGF0aWMgaW5saW5lIEZ1bmN0aW9uVHlwZSBhZGRQc2V1ZG9DbGFz
c1R5cGUoY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yLCBTZWxlYwogICAgICAgICAgICAgICAg
IHJldHVybiBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKICAgICAgICAgICAg
IHJldHVybiBGdW5jdGlvblR5cGU6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQ7
CiAgICAgICAgIH0KKworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTm90OgorICAg
ICAgICB7CisgICAgICAgICAgICBjb25zdCBDU1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCA9
IHNlbGVjdG9yLnNlbGVjdG9yTGlzdCgpOworCisgICAgICAgICAgICBpZiAoIXNlbGVjdG9yTGlz
dCkKKyAgICAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRo
aW5nOworCisgICAgICAgICAgICBTZWxlY3RvckZyYWdtZW50TGlzdCBub3RGcmFnbWVudHM7Cisg
ICAgICAgICAgICBGdW5jdGlvblR5cGUgZnVuY3Rpb25UeXBlID0gY29uc3RydWN0RnJhZ21lbnRz
KHNlbGVjdG9yTGlzdC0+Zmlyc3QoKSwgc2VsZWN0b3JDb250ZXh0LCBub3RGcmFnbWVudHMpOwor
CisgICAgICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIG5lZ2F0aW9uIHBzZXVkbyBjbGFzcywgQ2Fu
bm90TWF0Y2hBbnl0aGluZyBpbXBsaWVzIHRoaXMgZmlsdGVyIGFsd2F5cyBwYXNzZXMuCisgICAg
ICAgICAgICBpZiAoZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0
aGluZykKKyAgICAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3Rv
ckNoZWNrZXI7CisKKyAgICAgICAgICAgIGlmIChmdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBl
OjpDYW5ub3RDb21waWxlKQorICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvblR5cGU7CisK
KyAgICAgICAgICAgIGlmIChub3RGcmFnbWVudHMuc2l6ZSgpICE9IDEpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZTsKKworICAgICAgICAgICAgU2Vs
ZWN0b3JGcmFnbWVudCBzdWJGcmFnbWVudCA9IG5vdEZyYWdtZW50cy5maXJzdCgpOworICAgICAg
ICAgICAgc3ViRnJhZ21lbnQuaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3MgPSB0cnVlOworCisgICAg
ICAgICAgICAvLyBBbHdheXMgcGFzcyB0aGUgZmlsdGVycy4gRG9uJ3QgYXBwZW5kIHRoZSBmcmFn
bWVudCB0byBub3RGaWx0ZXJzLgorICAgICAgICAgICAgaWYgKHN1YkZyYWdtZW50LnBzZXVkb0Ns
YXNzZXMuY29udGFpbnMoQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVmlzaXRlZCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOworCisg
ICAgICAgICAgICAvLyBGSVhNRShZdXN1a2UgU3V6dWtpKTogQ3VycmVudGx5IHdlIGRvbid0IHN1
cHBvcnQgdmlzaXRlZE1hdGNoVHlwZS4KKyAgICAgICAgICAgIGlmIChzdWJGcmFnbWVudC5wc2V1
ZG9DbGFzc2VzLmNvbnRhaW5zKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xpbmspKQorICAgICAg
ICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGU7CisKKyAgICAgICAg
ICAgIGZyYWdtZW50Lm5vdEZpbHRlcnMuYXBwZW5kKHN1YkZyYWdtZW50KTsKKyAgICAgICAgICAg
IHJldHVybiBmdW5jdGlvblR5cGU7CisgICAgICAgIH0KKwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IGJyZWFrOwogICAgIH0KQEAgLTQyMSw4ICs0NjMsMTYgQEAgaW5saW5lIFNlbGVjdG9yQ29kZUdl
bmVyYXRvcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yKGNvbnN0IENTU1NlbGVjdG9yKiByb290U2Vs
ZWMKICAgICBkYXRhTG9nRigiQ29tcGlsaW5nIFwiJXNcIlxuIiwgbV9vcmlnaW5hbFNlbGVjdG9y
LT5zZWxlY3RvclRleHQoKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCisgICAgbV9mdW5jdGlv
blR5cGUgPSBjb25zdHJ1Y3RGcmFnbWVudHMocm9vdFNlbGVjdG9yLCBtX3NlbGVjdG9yQ29udGV4
dCwgbV9zZWxlY3RvckZyYWdtZW50cyk7CisgICAgaWYgKG1fZnVuY3Rpb25UeXBlICE9IEZ1bmN0
aW9uVHlwZTo6Q2Fubm90Q29tcGlsZSAmJiBtX2Z1bmN0aW9uVHlwZSAhPSBGdW5jdGlvblR5cGU6
OkNhbm5vdE1hdGNoQW55dGhpbmcpCisgICAgICAgIGNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1h
dGlvbihtX3NlbGVjdG9yRnJhZ21lbnRzLCBtX25lZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFy
dCk7Cit9CisKK3N0YXRpYyBGdW5jdGlvblR5cGUgY29uc3RydWN0RnJhZ21lbnRzKGNvbnN0IENT
U1NlbGVjdG9yICpyb290U2VsZWN0b3IsIFNlbGVjdG9yQ29udGV4dCBzZWxlY3RvckNvbnRleHQs
IFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3RvckZyYWdtZW50cykKK3sKICAgICBTZWxlY3Rv
ckZyYWdtZW50IGZyYWdtZW50OwogICAgIEZyYWdtZW50UmVsYXRpb24gcmVsYXRpb25Ub1ByZXZp
b3VzRnJhZ21lbnQgPSBGcmFnbWVudFJlbGF0aW9uOjpSaWdodG1vc3Q7CisgICAgRnVuY3Rpb25U
eXBlIGZ1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwog
ICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdFNlbGVjdG9yOyBzZWxl
Y3Rvcjsgc2VsZWN0b3IgPSBzZWxlY3Rvci0+dGFnSGlzdG9yeSgpKSB7CiAgICAgICAgIHN3aXRj
aCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6VGFnOgpA
QCAtNDMzLDggKzQ4Myw3IEBAIGlubGluZSBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OlNlbGVjdG9y
Q29kZUdlbmVyYXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9vdFNlbGVjCiAgICAgICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGlkID0gc2VsZWN0b3ItPnZhbHVlKCk7CiAgICAgICAgICAgICBp
ZiAoZnJhZ21lbnQuaWQpIHsKICAgICAgICAgICAgICAgICBpZiAoaWQgIT0gKmZyYWdtZW50Lmlk
KSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fZnVuY3Rpb25UeXBlID0gRnVuY3Rpb25UeXBlOjpD
YW5ub3RNYXRjaEFueXRoaW5nOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgZnJh
Z21lbnQuaWQgPSAmKHNlbGVjdG9yLT52YWx1ZSgpKTsKQEAgLTQ0NCwyMiArNDkzLDIwIEBAIGlu
bGluZSBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcihjb25zdCBD
U1NTZWxlY3Rvciogcm9vdFNlbGVjCiAgICAgICAgICAgICBmcmFnbWVudC5jbGFzc05hbWVzLmFw
cGVuZChzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzOgotICAgICAgICAgICAgbV9mdW5jdGlv
blR5cGUgPSBtb3N0UmVzdHJpY3RpdmVGdW5jdGlvblR5cGUobV9mdW5jdGlvblR5cGUsIGFkZFBz
ZXVkb0NsYXNzVHlwZSgqc2VsZWN0b3IsIGZyYWdtZW50LCBtX3NlbGVjdG9yQ29udGV4dCkpOwot
ICAgICAgICAgICAgaWYgKG1fZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29t
cGlsZSB8fCBtX2Z1bmN0aW9uVHlwZSA9PSBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhp
bmcpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZnVuY3Rpb25UeXBlID0g
bW9zdFJlc3RyaWN0aXZlRnVuY3Rpb25UeXBlKGZ1bmN0aW9uVHlwZSwgYWRkUHNldWRvQ2xhc3NU
eXBlKCpzZWxlY3RvciwgZnJhZ21lbnQsIHNlbGVjdG9yQ29udGV4dCkpOworICAgICAgICAgICAg
aWYgKGZ1bmN0aW9uVHlwZSA9PSBGdW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGUgfHwgZnVuY3Rp
b25UeXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0aGluZykKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZnVuY3Rpb25UeXBlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6Okxpc3Q6CiAgICAgICAgICAgICBpZiAoc2VsZWN0b3ItPnZhbHVlKCku
Y29udGFpbnMoJyAnKSkgewotICAgICAgICAgICAgICAgIG1fZnVuY3Rpb25UeXBlID0gRnVuY3Rp
b25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OkJlZ2luOgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpFbmQ6CiAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRhaW46CiAgICAgICAgICAgICBpZiAoc2VsZWN0b3ItPnZh
bHVlKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgbV9mdW5jdGlvblR5cGUgPSBGdW5j
dGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBGQUxMVEhST1VHSDsKICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6RXhhY3Q6CkBAIC00NzQsMTAgKzUyMSw5IEBAIGlubGluZSBTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9v
dFNlbGVjCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6VW5r
bm93bjoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgbV9m
dW5jdGlvblR5cGUgPSBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7Ci0gICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRj
aEFueXRoaW5nOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50OgotICAg
ICAgICAgICAgZ290byBDYW5ub3RIYW5kbGVTZWxlY3RvcjsKKyAgICAgICAgICAgIHJldHVybiBG
dW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGU7CiAgICAgICAgIH0KIAogICAgICAgICBDU1NTZWxl
Y3Rvcjo6UmVsYXRpb24gcmVsYXRpb24gPSBzZWxlY3Rvci0+cmVsYXRpb24oKTsKQEAgLTQ4NSwy
OCArNTMxLDIzIEBAIGlubGluZSBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OlNlbGVjdG9yQ29kZUdl
bmVyYXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9vdFNlbGVjCiAgICAgICAgICAgICBjb250aW51
ZTsKIAogICAgICAgICBpZiAocmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRh
bnQgJiYgIXNlbGVjdG9yLT5pc0xhc3RJblRhZ0hpc3RvcnkoKSkKLSAgICAgICAgICAgIGdvdG8g
Q2Fubm90SGFuZGxlU2VsZWN0b3I7CisgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpD
YW5ub3RDb21waWxlOwogCiAgICAgICAgIGlmIChyZWxhdGlvbiA9PSBDU1NTZWxlY3Rvcjo6RGly
ZWN0QWRqYWNlbnQgfHwgcmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQp
IHsKICAgICAgICAgICAgIEZ1bmN0aW9uVHlwZSByZWxhdGlvbkZ1bmN0aW9uVHlwZSA9IEZ1bmN0
aW9uVHlwZTo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dDsKLSAgICAgICAgICAg
IGlmIChtX3NlbGVjdG9yQ29udGV4dCA9PSBTZWxlY3RvckNvbnRleHQ6OlF1ZXJ5U2VsZWN0b3Ip
CisgICAgICAgICAgICBpZiAoc2VsZWN0b3JDb250ZXh0ID09IFNlbGVjdG9yQ29udGV4dDo6UXVl
cnlTZWxlY3RvcikKICAgICAgICAgICAgICAgICByZWxhdGlvbkZ1bmN0aW9uVHlwZSA9IEZ1bmN0
aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwotICAgICAgICAgICAgbV9mdW5jdGlvblR5
cGUgPSBzdGQ6Om1heChtX2Z1bmN0aW9uVHlwZSwgcmVsYXRpb25GdW5jdGlvblR5cGUpOworICAg
ICAgICAgICAgZnVuY3Rpb25UeXBlID0gbW9zdFJlc3RyaWN0aXZlRnVuY3Rpb25UeXBlKGZ1bmN0
aW9uVHlwZSwgcmVsYXRpb25GdW5jdGlvblR5cGUpOwogICAgICAgICB9CiAKICAgICAgICAgZnJh
Z21lbnQucmVsYXRpb25Ub0xlZnRGcmFnbWVudCA9IGZyYWdtZW50UmVsYXRpb25Gb3JTZWxlY3Rv
clJlbGF0aW9uKHJlbGF0aW9uKTsKICAgICAgICAgZnJhZ21lbnQucmVsYXRpb25Ub1JpZ2h0RnJh
Z21lbnQgPSByZWxhdGlvblRvUHJldmlvdXNGcmFnbWVudDsKICAgICAgICAgcmVsYXRpb25Ub1By
ZXZpb3VzRnJhZ21lbnQgPSBmcmFnbWVudC5yZWxhdGlvblRvTGVmdEZyYWdtZW50OwogCi0gICAg
ICAgIG1fc2VsZWN0b3JGcmFnbWVudHMuYXBwZW5kKGZyYWdtZW50KTsKKyAgICAgICAgc2VsZWN0
b3JGcmFnbWVudHMuYXBwZW5kKGZyYWdtZW50KTsKICAgICAgICAgZnJhZ21lbnQgPSBTZWxlY3Rv
ckZyYWdtZW50KCk7CiAgICAgfQotCi0gICAgY29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9u
KCk7Ci0KLSAgICByZXR1cm47Ci1DYW5ub3RIYW5kbGVTZWxlY3RvcjoKLSAgICBtX2Z1bmN0aW9u
VHlwZSA9IEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZTsKKyAgICByZXR1cm4gZnVuY3Rpb25U
eXBlOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgYXR0cmlidXRlTmFtZVRlc3RpbmdSZXF1aXJl
c05hbWVzcGFjZVJlZ2lzdGVyKGNvbnN0IENTU1NlbGVjdG9yJiBhdHRyaWJ1dGVTZWxlY3RvcikK
QEAgLTUxOSwzNSArNTYwLDUzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhdHRyaWJ1dGVWYWx1ZVRl
c3RpbmdSZXF1aXJlc0Nhc2VGb2xkaW5nUmVnaXN0ZXIoY29uc3QgQXR0cmliCiAgICAgcmV0dXJu
ICFhdHRyaWJ1dGVJbmZvLmNhbkRlZmF1bHRUb0Nhc2VTZW5zaXRpdmVWYWx1ZU1hdGNoKCk7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKGNv
bnN0IFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3RvckZyYWdtZW50cykKK3N0YXRpYyBpbmxp
bmUgdW5zaWduZWQgbWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKGNvbnN0IFNlbGVjdG9yRnJh
Z21lbnQmIHNlbGVjdG9yRnJhZ21lbnQpCiB7CiAgICAgLy8gU3RyaWN0IG1pbmltdW0gdG8gbWF0
Y2ggYW55dGhpbmcgaW50ZXJlc3Rpbmc6CiAgICAgLy8gRWxlbWVudCArIEJhY2t0cmFja2luZ1Jl
Z2lzdGVyICsgRWxlbWVudERhdGEgKyBhIHBvaW50ZXIgdG8gdmFsdWVzICsgYW4gaW5kZXggb24g
dGhhdCBwb2ludGVyICsgdGhlIHZhbHVlIHdlIGV4cGVjdDsKICAgICB1bnNpZ25lZCBtaW5pbXVt
ID0gNjsKKyAgICBjb25zdCBWZWN0b3I8QXR0cmlidXRlTWF0Y2hpbmdJbmZvPiYgYXR0cmlidXRl
cyA9IHNlbGVjdG9yRnJhZ21lbnQuYXR0cmlidXRlczsKIAotICAgIC8vIEF0dHJpYnV0ZXMgY2F1
c2Ugc29tZSByZWdpc3RlciBwcmVzc3VyZS4KLSAgICBmb3IgKHVuc2lnbmVkIHNlbGVjdG9yRnJh
Z21lbnRJbmRleCA9IDA7IHNlbGVjdG9yRnJhZ21lbnRJbmRleCA8IHNlbGVjdG9yRnJhZ21lbnRz
LnNpemUoKTsgKytzZWxlY3RvckZyYWdtZW50SW5kZXgpIHsKLSAgICAgICAgY29uc3QgU2VsZWN0
b3JGcmFnbWVudCYgc2VsZWN0b3JGcmFnbWVudCA9IHNlbGVjdG9yRnJhZ21lbnRzW3NlbGVjdG9y
RnJhZ21lbnRJbmRleF07Ci0gICAgICAgIGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGVNYXRjaGluZ0lu
Zm8+JiBhdHRyaWJ1dGVzID0gc2VsZWN0b3JGcmFnbWVudC5hdHRyaWJ1dGVzOworICAgIHVuc2ln
bmVkIGF0dHJpYnV0ZUNvdW50ID0gYXR0cmlidXRlcy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25l
ZCBhdHRyaWJ1dGVJbmRleCA9IDA7IGF0dHJpYnV0ZUluZGV4IDwgYXR0cmlidXRlQ291bnQ7ICsr
YXR0cmlidXRlSW5kZXgpIHsKKyAgICAgICAgLy8gRWxlbWVudCArIEVsZW1lbnREYXRhICsgc2Ny
YXRjaFJlZ2lzdGVyICsgYXR0cmlidXRlQXJyYXlQb2ludGVyICsgZXhwZWN0ZWRMb2NhbE5hbWUg
KyAocXVhbGlmaWVkTmFtZUltcGwgJiYgZXhwZWN0ZWRWYWx1ZSkuCisgICAgICAgIHVuc2lnbmVk
IGF0dHJpYnV0ZU1pbmltdW0gPSA2OworICAgICAgICBpZiAoc2VsZWN0b3JGcmFnbWVudC5iYWNr
dHJhY2tpbmdGbGFncyAmIEJhY2t0cmFja2luZ0ZsYWc6OkluQ2hhaW5XaXRoRGVzY2VuZGFudFRh
aWwpCisgICAgICAgICAgICBhdHRyaWJ1dGVNaW5pbXVtICs9IDE7IC8vIElmIHRoZXJlIGlzIGEg
RGVzY2VuZGFudFRhaWwsIHRoZXJlIGlzIGEgYmFja3RyYWNraW5nIHJlZ2lzdGVyLgorCisgICAg
ICAgIGlmIChhdHRyaWJ1dGVJbmRleCArIDEgPCBhdHRyaWJ1dGVDb3VudCkKKyAgICAgICAgICAg
IGF0dHJpYnV0ZU1pbmltdW0gKz0gMjsgLy8gRm9yIHRoZSBsb2NhbCBjb3B5IG9mIHRoZSBjb3Vu
dGVyIGFuZCBhdHRyaWJ1dGVBcnJheVBvaW50ZXIuCiAKLSAgICAgICAgdW5zaWduZWQgYXR0cmli
dXRlQ291bnQgPSBhdHRyaWJ1dGVzLnNpemUoKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBhdHRy
aWJ1dGVJbmRleCA9IDA7IGF0dHJpYnV0ZUluZGV4IDwgYXR0cmlidXRlQ291bnQ7ICsrYXR0cmli
dXRlSW5kZXgpIHsKLSAgICAgICAgICAgIC8vIEVsZW1lbnQgKyBFbGVtZW50RGF0YSArIHNjcmF0
Y2hSZWdpc3RlciArIGF0dHJpYnV0ZUFycmF5UG9pbnRlciArIGV4cGVjdGVkTG9jYWxOYW1lICsg
KHF1YWxpZmllZE5hbWVJbXBsICYmIGV4cGVjdGVkVmFsdWUpLgotICAgICAgICAgICAgdW5zaWdu
ZWQgYXR0cmlidXRlTWluaW11bSA9IDY7Ci0gICAgICAgICAgICBpZiAoc2VsZWN0b3JGcmFnbWVu
dC5iYWNrdHJhY2tpbmdGbGFncyAmIEJhY2t0cmFja2luZ0ZsYWc6OkluQ2hhaW5XaXRoRGVzY2Vu
ZGFudFRhaWwpCi0gICAgICAgICAgICAgICAgYXR0cmlidXRlTWluaW11bSArPSAxOyAvLyBJZiB0
aGVyZSBpcyBhIERlc2NlbmRhbnRUYWlsLCB0aGVyZSBpcyBhIGJhY2t0cmFja2luZyByZWdpc3Rl
ci4KKyAgICAgICAgY29uc3QgQXR0cmlidXRlTWF0Y2hpbmdJbmZvJiBhdHRyaWJ1dGVJbmZvID0g
YXR0cmlidXRlc1thdHRyaWJ1dGVJbmRleF07CisgICAgICAgIGNvbnN0IENTU1NlbGVjdG9yJiBh
dHRyaWJ1dGVTZWxlY3RvciA9IGF0dHJpYnV0ZUluZm8uc2VsZWN0b3IoKTsKKyAgICAgICAgaWYg
KGF0dHJpYnV0ZU5hbWVUZXN0aW5nUmVxdWlyZXNOYW1lc3BhY2VSZWdpc3RlcihhdHRyaWJ1dGVT
ZWxlY3RvcikKKyAgICAgICAgICAgIHx8IGF0dHJpYnV0ZVZhbHVlVGVzdGluZ1JlcXVpcmVzQ2Fz
ZUZvbGRpbmdSZWdpc3RlcihhdHRyaWJ1dGVJbmZvKSkKKyAgICAgICAgICAgIGF0dHJpYnV0ZU1p
bmltdW0gKz0gMTsKIAotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZUluZGV4ICsgMSA8IGF0dHJp
YnV0ZUNvdW50KQotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU1pbmltdW0gKz0gMjsgLy8gRm9y
IHRoZSBsb2NhbCBjb3B5IG9mIHRoZSBjb3VudGVyIGFuZCBhdHRyaWJ1dGVBcnJheVBvaW50ZXIu
CisgICAgICAgIG1pbmltdW0gPSBzdGQ6Om1heChtaW5pbXVtLCBhdHRyaWJ1dGVNaW5pbXVtKTsK
KyAgICB9CiAKLSAgICAgICAgICAgIGNvbnN0IEF0dHJpYnV0ZU1hdGNoaW5nSW5mbyYgYXR0cmli
dXRlSW5mbyA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlSW5kZXhdOwotICAgICAgICAgICAgY29uc3Qg
Q1NTU2VsZWN0b3ImIGF0dHJpYnV0ZVNlbGVjdG9yID0gYXR0cmlidXRlSW5mby5zZWxlY3Rvcigp
OwotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWVUZXN0aW5nUmVxdWlyZXNOYW1lc3BhY2VS
ZWdpc3RlcihhdHRyaWJ1dGVTZWxlY3RvcikKLSAgICAgICAgICAgICAgICB8fCBhdHRyaWJ1dGVW
YWx1ZVRlc3RpbmdSZXF1aXJlc0Nhc2VGb2xkaW5nUmVnaXN0ZXIoYXR0cmlidXRlSW5mbykpCi0g
ICAgICAgICAgICAgICAgYXR0cmlidXRlTWluaW11bSArPSAxOworICAgIGZvciAoY29uc3QgU2Vs
ZWN0b3JGcmFnbWVudCYgc3ViRnJhZ21lbnQgOiBzZWxlY3RvckZyYWdtZW50Lm5vdEZpbHRlcnMp
IHsKKyAgICAgICAgdW5zaWduZWQgbm90RmlsdGVyTWluaW11bSA9IG1pbmltdW1SZWdpc3RlclJl
cXVpcmVtZW50cyhzdWJGcmFnbWVudCk7CiAKLSAgICAgICAgICAgIG1pbmltdW0gPSBzdGQ6Om1h
eChtaW5pbXVtLCBhdHRyaWJ1dGVNaW5pbXVtKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoc2Vs
ZWN0b3JGcmFnbWVudC5iYWNrdHJhY2tpbmdGbGFncyAmIEJhY2t0cmFja2luZ0ZsYWc6OkluQ2hh
aW5XaXRoRGVzY2VuZGFudFRhaWwpCisgICAgICAgICAgICBub3RGaWx0ZXJNaW5pbXVtICs9IDE7
IC8vIElmIHRoZXJlIGlzIGEgRGVzY2VuZGFudFRhaWwsIHRoZXJlIGlzIGEgYmFja3RyYWNraW5n
IHJlZ2lzdGVyLgorCisgICAgICAgIG1pbmltdW0gPSBzdGQ6Om1heChtaW5pbXVtLCBub3RGaWx0
ZXJNaW5pbXVtKTsKKyAgICB9CisgICAgcmV0dXJuIG1pbmltdW07Cit9CisKK3N0YXRpYyBpbmxp
bmUgdW5zaWduZWQgbWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKGNvbnN0IFNlbGVjdG9yRnJh
Z21lbnRMaXN0JiBzZWxlY3RvckZyYWdtZW50cykKK3sKKyAgICAvLyBTdHJpY3QgbWluaW11bSB0
byBtYXRjaCBhbnl0aGluZyBpbnRlcmVzdGluZzoKKyAgICAvLyBFbGVtZW50ICsgQmFja3RyYWNr
aW5nUmVnaXN0ZXIgKyBFbGVtZW50RGF0YSArIGEgcG9pbnRlciB0byB2YWx1ZXMgKyBhbiBpbmRl
eCBvbiB0aGF0IHBvaW50ZXIgKyB0aGUgdmFsdWUgd2UgZXhwZWN0OworICAgIHVuc2lnbmVkIG1p
bmltdW0gPSA2OworCisgICAgLy8gQXR0cmlidXRlcyBjYXVzZSBzb21lIHJlZ2lzdGVyIHByZXNz
dXJlLgorICAgIGZvciAodW5zaWduZWQgc2VsZWN0b3JGcmFnbWVudEluZGV4ID0gMDsgc2VsZWN0
b3JGcmFnbWVudEluZGV4IDwgc2VsZWN0b3JGcmFnbWVudHMuc2l6ZSgpOyArK3NlbGVjdG9yRnJh
Z21lbnRJbmRleCkgeworICAgICAgICBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBzZWxlY3RvckZy
YWdtZW50ID0gc2VsZWN0b3JGcmFnbWVudHNbc2VsZWN0b3JGcmFnbWVudEluZGV4XTsKKyAgICAg
ICAgbWluaW11bSA9IHN0ZDo6bWF4KG1pbmltdW0sIG1pbmltdW1SZWdpc3RlclJlcXVpcmVtZW50
cyhzZWxlY3RvckZyYWdtZW50KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1pbmltdW07CkBAIC04
NzMsNyArOTMyLDcgQEAgc3RhdGljIGJvb2wgcmVxdWlyZXNEZXNjZW5kYW50VGFpbChjb25zdCBT
ZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkKICAgICByZXR1cm4gZnJhZ21lbnQubWF0Y2hpbmdU
YWdOYW1lQmFja3RyYWNraW5nQWN0aW9uID09IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVz
Y2VuZGFudFRhaWwgfHwgZnJhZ21lbnQubWF0Y2hpbmdQb3N0VGFnTmFtZUJhY2t0cmFja2luZ0Fj
dGlvbiA9PSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsIHx8IGZyYWdt
ZW50LnRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbiA9PSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1
bXBUb0Rlc2NlbmRhbnRUYWlsOwogfQogCi12b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29t
cHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKK3ZvaWQgY29tcHV0ZUJhY2t0cmFja2luZ0lu
Zm9ybWF0aW9uKFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3RvckZyYWdtZW50cywgYm9vbCYg
bmVlZHNBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KQogewogICAgIGJvb2wgaGFzRGVzY2VuZGFu
dFJlbGF0aW9uT25UaGVSaWdodCA9IGZhbHNlOwogICAgIHVuc2lnbmVkIGFuY2VzdG9yUG9zaXRp
b25TaW5jZURlc2NlbmRhbnRSZWxhdGlvbiA9IDA7CkBAIC04OTAsOCArOTQ5LDggQEAgdm9pZCBT
ZWxlY3RvckNvZGVHZW5lcmF0b3I6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbigpCiAg
ICAgY29uc3QgU2VsZWN0b3JGcmFnbWVudCogcHJldmlvdXNDaGlsZEZyYWdtZW50SW5DaGlsZENo
YWluID0gbnVsbHB0cjsKICAgICBjb25zdCBTZWxlY3RvckZyYWdtZW50KiBwcmV2aW91c0RpcmVj
dEFkamFjZW50RnJhZ21lbnRJbkRpcmVjdEFkamFjZW50Q2hhaW4gPSBudWxscHRyOwogCi0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2VsZWN0b3JGcmFnbWVudHMuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgU2VsZWN0b3JGcmFnbWVudCYgZnJhZ21lbnQgPSBtX3NlbGVjdG9yRnJhZ21l
bnRzW2ldOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZWxlY3RvckZyYWdtZW50cy5z
aXplKCk7ICsraSkgeworICAgICAgICBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCA9IHNlbGVj
dG9yRnJhZ21lbnRzW2ldOwogCiAgICAgICAgIHVwZGF0ZUNoYWluU3RhdGVzKGZyYWdtZW50LCBo
YXNEZXNjZW5kYW50UmVsYXRpb25PblRoZVJpZ2h0LCBhbmNlc3RvclBvc2l0aW9uU2luY2VEZXNj
ZW5kYW50UmVsYXRpb24sIGhhc0luZGlyZWN0QWRqYWNlbnRSZWxhdGlvbk9uVGhlUmlnaHRPZkRp
cmVjdEFkamFjZW50Q2hhaW4sIGFkamFjZW50UG9zaXRpb25TaW5jZUluZGlyZWN0QWRqYWNlbnRU
cmVlV2Fsayk7CiAKQEAgLTkyNiw4ICs5ODUsOCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKICAgICAgICAgICAgICAgICBBU1NF
UlQoZnJhZ21lbnQucmVsYXRpb25Ub1JpZ2h0RnJhZ21lbnQgPT0gRnJhZ21lbnRSZWxhdGlvbjo6
RGlyZWN0QWRqYWNlbnQpOwogICAgICAgICAgICAgICAgIEFTU0VSVChzYXZlSW5kaXJlY3RBZGph
Y2VudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleCAhPSBzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkpOwogICAgICAgICAgICAgICAgIGZyYWdtZW50LmJhY2t0cmFja2lu
Z0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OkRpcmVjdEFkamFjZW50VGFpbDsKLSAgICAgICAg
ICAgICAgICBtX3NlbGVjdG9yRnJhZ21lbnRzW3NhdmVJbmRpcmVjdEFkamFjZW50QmFja3RyYWNr
aW5nU3RhcnRGcmFnbWVudEluZGV4XS5iYWNrdHJhY2tpbmdGbGFncyB8PSBCYWNrdHJhY2tpbmdG
bGFnOjpTYXZlQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydDsKLSAgICAgICAgICAgICAgICBtX25l
ZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2Vs
ZWN0b3JGcmFnbWVudHNbc2F2ZUluZGlyZWN0QWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydEZyYWdt
ZW50SW5kZXhdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OlNhdmVBZGph
Y2VudEJhY2t0cmFja2luZ1N0YXJ0OworICAgICAgICAgICAgICAgIG5lZWRzQWRqYWNlbnRCYWNr
dHJhY2tpbmdTdGFydCA9IHRydWU7CiAgICAgICAgICAgICAgICAgbmVlZHNBZGphY2VudFRhaWwg
PSBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNhdmVJbmRpcmVjdEFkamFjZW50
QmFja3RyYWNraW5nU3RhcnRGcmFnbWVudEluZGV4ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNp
Z25lZD46Om1heCgpOwpAQCAtOTM2LDEwICs5OTUsMTAgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbigpCiAgICAgICAgICAgICBpZiAo
bmVlZHNEZXNjZW5kYW50VGFpbCkgewogICAgICAgICAgICAgICAgIEFTU0VSVChzYXZlRGVzY2Vu
ZGFudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleCAhPSBzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkpOwogICAgICAgICAgICAgICAgIGZyYWdtZW50LmJhY2t0cmFja2lu
Z0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OkRlc2NlbmRhbnRUYWlsOwotICAgICAgICAgICAg
ICAgIG1fc2VsZWN0b3JGcmFnbWVudHNbc2F2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdTdGFydEZy
YWdtZW50SW5kZXhdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OlNhdmVE
ZXNjZW5kYW50QmFja3RyYWNraW5nU3RhcnQ7CisgICAgICAgICAgICAgICAgc2VsZWN0b3JGcmFn
bWVudHNbc2F2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdTdGFydEZyYWdtZW50SW5kZXhdLmJhY2t0
cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OlNhdmVEZXNjZW5kYW50QmFja3RyYWNr
aW5nU3RhcnQ7CiAgICAgICAgICAgICAgICAgbmVlZHNEZXNjZW5kYW50VGFpbCA9IGZhbHNlOwog
ICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IHNhdmVEZXNjZW5kYW50QmFja3RyYWNr
aW5nU3RhcnRGcmFnbWVudEluZGV4OyBqIDw9IGk7ICsraikKLSAgICAgICAgICAgICAgICAgICAg
bV9zZWxlY3RvckZyYWdtZW50c1tqXS5iYWNrdHJhY2tpbmdGbGFncyB8PSBCYWNrdHJhY2tpbmdG
bGFnOjpJbkNoYWluV2l0aERlc2NlbmRhbnRUYWlsOworICAgICAgICAgICAgICAgICAgICBzZWxl
Y3RvckZyYWdtZW50c1tqXS5iYWNrdHJhY2tpbmdGbGFncyB8PSBCYWNrdHJhY2tpbmdGbGFnOjpJ
bkNoYWluV2l0aERlc2NlbmRhbnRUYWlsOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2F2
ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdTdGFydEZyYWdtZW50SW5kZXggPSBzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAgICAgICAgIH0KQEAgLTk2Miw3ICsxMDIxLDcgQEAg
aW5saW5lIGJvb2wgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVByb2xvZ3VlKCkKICNl
bmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KLSAgICAKKwogaW5saW5lIHZvaWQgU2VsZWN0b3JD
b2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVwaWxvZ3VlKCkKIHsKICNpZiBDUFUoQVJNNjQpCkBAIC05
NzYsMTEgKzEwMzUsMTEgQEAgaW5saW5lIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5l
cmF0ZUVwaWxvZ3VlKCkKICAgICBtX3N0YWNrQWxsb2NhdG9yLnBvcChtX3Byb2xvZ3VlU3RhY2tS
ZWZlcmVuY2VzLCBwcm9sb2d1ZVJlZ2lzdGVyKTsKICNlbmRpZgogfQotICAgIAorCiB2b2lkIFNl
bGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogewogICAgIGJv
b2wgbmVlZHNFcGlsb2d1ZSA9IGdlbmVyYXRlUHJvbG9ndWUoKTsKLSAgICAKKwogICAgIFZlY3Rv
cjxTdGFja0FsbG9jYXRvcjo6U3RhY2tSZWZlcmVuY2U+IGNhbGxlZVNhdmVkUmVnaXN0ZXJTdGFj
a1JlZmVyZW5jZXM7CiAgICAgYm9vbCByZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzID0gZmFs
c2U7CiAgICAgdW5zaWduZWQgYXZhaWxhYmxlUmVnaXN0ZXJDb3VudCA9IG1fcmVnaXN0ZXJBbGxv
Y2F0b3IuYXZhaWxhYmxlUmVnaXN0ZXJDb3VudCgpOwpAQCAtMTU3NSw2ICsxNjM0LDggQEAgdm9p
ZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudE1hdGNoaW5nKEFzc2VtYmxl
cjo6SnVtcExpc3QmIG1hdGNoaW4KICAgICAgICAgZ2VuZXJhdGVFbGVtZW50SXNMYXN0Q2hpbGQo
bWF0Y2hpbmdQb3N0VGFnTmFtZUZhaWx1cmVDYXNlcywgZnJhZ21lbnQpOwogICAgIGlmICghZnJh
Z21lbnQubnRoQ2hpbGRmaWx0ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgZ2VuZXJhdGVFbGVtZW50
SXNOdGhDaGlsZChtYXRjaGluZ1Bvc3RUYWdOYW1lRmFpbHVyZUNhc2VzLCBmcmFnbWVudCk7Cisg
ICAgaWYgKCFmcmFnbWVudC5ub3RGaWx0ZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgZ2VuZXJhdGVF
bGVtZW50SXNOb3RNYXRjaGVkVG9OZWdhdGlvbihtYXRjaGluZ1Bvc3RUYWdOYW1lRmFpbHVyZUNh
c2VzLCBmcmFnbWVudCk7CiB9CiAKIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0
ZUVsZW1lbnREYXRhTWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBj
b25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkKQEAgLTI0OTQsNiArMjU1NSwxNyBAQCB2
b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50SXNOdGhDaGlsZChBc3Nl
bWJsZXI6Okp1bXBMaXN0JiBmYWlsdQogICAgIH0KIH0KIAordm9pZCBTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OmdlbmVyYXRlRWxlbWVudElzTm90TWF0Y2hlZFRvTmVnYXRpb24oQXNzZW1ibGVyOjpK
dW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkK
K3sKKyAgICBBc3NlbWJsZXI6Okp1bXBMaXN0IGxvY2FsRmFpbHVyZUNhc2VzOworICAgIGZvciAo
Y29uc3QgYXV0byYgc3ViRnJhZ21lbnQgOiBmcmFnbWVudC5ub3RGaWx0ZXJzKSB7CisgICAgICAg
IGdlbmVyYXRlRWxlbWVudE1hdGNoaW5nKGxvY2FsRmFpbHVyZUNhc2VzLCBsb2NhbEZhaWx1cmVD
YXNlcywgc3ViRnJhZ21lbnQpOworICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIGEgbmVnYXRpb24g
ZmlsdGVyLCByZWFjaGluZyBoZXJlIGlzIGZhaWx1cmUuCisgICAgICAgIGZhaWx1cmVDYXNlcy5h
cHBlbmQobV9hc3NlbWJsZXIuanVtcCgpKTsKKyAgICAgICAgbG9jYWxGYWlsdXJlQ2FzZXMubGlu
aygmbV9hc3NlbWJsZXIpOworICAgIH0KK30KKwogdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlRWxlbWVudElzUm9vdChBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMp
CiB7CiAgICAgTG9jYWxSZWdpc3RlciBkb2N1bWVudChtX3JlZ2lzdGVyQWxsb2NhdG9yKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBiNTU3NzZjZGM2MTQ1ZDU0NTQ2MjU3NjA4NjI5ZmJkYTYxYjZmMzUxLi5hNjJlMzkwMTUy
ODI0NjBiYWZlY2E2YTY0YzJkOTUyODQ1MTZjMGZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTQtMDUtMjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgQ1NTIEpJVDogYWRkIHN1cHBvcnQgZm9yIHRoZSAibm90IiBwc2V1ZG8gY2xhc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzMxNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCA6bm90IHBzZXVk
byBjbGFzcyBzdXBwb3J0IHRvIENTUyBKSVQuIEN1cnJlbnQgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgZG9lc24ndCBzdXBwb3J0IHZpc2l0ZWRNYXRjaFR5cGUuIFNvIHdoZW4gbGluayBwc2V1ZG8g
Y2xhc3MgYXBwZWFycyBpbgorICAgICAgICA6bm90IHN1YiBmcmFnbWVudCwgZmFsbGJhY2sgdG8g
dGhlIG5vbi1KSVQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9w
c2V1ZG8tY2xhc3Mtbm90LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxl
Y3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1sOiBBZGRlZC4KKwogMjAxNC0wNS0yOCAgSm9uIEhv
bmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJvbGwgcjE2ODY2OCBi
YWNrIGluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNs
YXNzLW5vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8t
Y2xhc3Mtbm90LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYWQ0N2ZiZDBlMWVlMGVhNjViYjUx
YTA3Yjg5ZGEzNzM3NTY0MTliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
ZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAor
VGhlIHBzZXVkbyBjbGFzcyA6bm90CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCis6
bm90IHNlbGVjdG9yIG1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldDEiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCki
Cis6bm90IHNlbGVjdG9yIHVubWF0Y2hlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MiIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxLCAy
LCAzKSIKK211bHRpcGxlIDpub3Qgc2VsZWN0b3IgbWF0Y2hlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MyIpKS5iYWNrZ3JvdW5kQ29sb3Ig
aXMgInJnYigyLCAzLCA0KSIKK211bHRpcGxlIDpub3Qgc2VsZWN0b3IgbWF0Y2hlZC4KK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NCIpKS5iYWNr
Z3JvdW5kQ29sb3IgaXMgInJnYigyLCAzLCA0KSIKK211bHRpcGxlIDpub3Qgc2VsZWN0b3IgdW5t
YXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQ1IikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDAsIDAsIDApIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3BzZXVkby1jbGFzcy1ub3QuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2VsZWN0b3JzL3BzZXVkby1jbGFzcy1ub3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDBiMDM3
YTYzNDdhYTU3NTQ0MWJlYWZiZjFiZTI2NDE1M2JmNDAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1sCkBAIC0wLDAgKzEs
NjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorc3Bhbi50YXJn
ZXQgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDAsMCwwKTsKK30KK3NwYW4udGFyZ2V0LnJh
YmJpdDpub3QoLmhvcnNlKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMSwyLDMpOworfQor
CitzcGFuLnRhcmdldDpub3QoLnJhYmJpdCk6bm90KC5ob3JzZSkgeworICAgIGJhY2tncm91bmQt
Y29sb3I6cmdiKDIsMyw0KTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5
bGU9ImRpc3BsYXk6bm9uZSI+CisgICAgPCEtLSBzcGFuLnRhcmdldC5yYWJiaXQ6bm90KC5ob3Jz
ZSkgLS0+CisgICAgPHRhcmdldDE+CisgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IHJh
YmJpdCBob3JzZSIgaWQ9InRhcmdldDEiPjwvc3Bhbj4KKyAgICA8L3RhcmdldDE+CisKKyAgICA8
IS0tIHNwYW4udGFyZ2V0LnJhYmJpdDpub3QoLmhvcnNlKSAtLT4KKyAgICA8dGFyZ2V0Mj4KKyAg
ICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQgcmFiYml0IGhvdXNlIiBpZD0idGFyZ2V0MiI+
PC9zcGFuPgorICAgIDwvdGFyZ2V0Mj4KKworICAgIDwhLS0gc3Bhbi50YXJnZXQ6bm90KC5yYWJi
aXQpOm5vdCguaG9yc2UpIC0tPgorICAgIDx0YXJnZXQzPgorICAgICAgICAgICAgPHNwYW4gY2xh
c3M9InRhcmdldCIgaWQ9InRhcmdldDMiPjwvc3Bhbj4KKyAgICA8L3RhcmdldDM+CisKKyAgICA8
IS0tIHNwYW4udGFyZ2V0Om5vdCgucmFiYml0KTpub3QoLmhvcnNlKSAtLT4KKyAgICA8dGFyZ2V0
ND4KKyAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQgaG91c2UiIGlkPSJ0YXJnZXQ0Ij48
L3NwYW4+CisgICAgPC90YXJnZXQ0PgorCisgICAgPCEtLSBzcGFuLnRhcmdldDpub3QoLnJhYmJp
dCk6bm90KC5ob3JzZSkgLS0+CisgICAgPHRhcmdldDU+CisgICAgICAgICAgICA8c3BhbiBjbGFz
cz0idGFyZ2V0IGhvcnNlIiBpZD0idGFyZ2V0NSI+PC9zcGFuPgorICAgIDwvdGFyZ2V0NT4KKzwv
ZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUaGUgcHNldWRvIGNsYXNzIDpu
b3QnKTsKKworZGVidWcoIjpub3Qgc2VsZWN0b3IgbWF0Y2hlZC4iKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
MSIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCI6bm90IHNl
bGVjdG9yIHVubWF0Y2hlZC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MiIpKS5iYWNrZ3JvdW5kQ29sb3In
LCAncmdiKDEsIDIsIDMpJyk7CisKK2RlYnVnKCJtdWx0aXBsZSA6bm90IHNlbGVjdG9yIG1hdGNo
ZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldDMiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigyLCAzLCA0
KScpOworCitkZWJ1ZygibXVsdGlwbGUgOm5vdCBzZWxlY3RvciBtYXRjaGVkLiIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQ0IikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMiwgMywgNCknKTsKKworZGVidWco
Im11bHRpcGxlIDpub3Qgc2VsZWN0b3IgdW5tYXRjaGVkLiIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ1Iikp
LmJhY2tncm91bmRDb2xvcicsICdyZ2IoMCwgMCwgMCknKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232342</attachid>
            <date>2014-06-01 08:31:58 -0700</date>
            <delta_ts>2014-06-01 08:34:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133314-20140602003207.patch</filename>
            <type>text/plain</type>
            <size>70952</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWIzNmJiZGZlZjdmYzM1
OTRmZDU3NGMyZmE0MDlkYjg4OGExNGI5Yy4uNTkyOTdhMTIyMTdiYjk3ODAxZDQ1ZmQ3ZGNkNGY5
MmMxY2E3NzhmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTAxICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IGFk
ZCBzdXBwb3J0IGZvciB0aGUgIm5vdCIgcHNldWRvIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMzMTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgOm5vdCBwc2V1ZG8gY2xhc3Mgc3VwcG9y
dCB0byBDU1MgSklULiBDdXJyZW50IGltcGxlbWVudGF0aW9uCisgICAgICAgIGRvZXNuJ3Qgc3Vw
cG9ydCB2aXNpdGVkTWF0Y2hUeXBlLiBTbyB3aGVuIGxpbmsgcHNldWRvIGNsYXNzIGFwcGVhcnMg
aW4KKyAgICAgICAgOm5vdCBzdWIgZnJhZ21lbnQsIGZhbGxiYWNrIHRvIHRoZSBub24tSklUIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZl
LWhvdmVyLXF1aXJrcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NlbGVjdG9ycy9ub3QtYWN0
aXZlLWhvdmVyLXN0cmljdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NlbGVjdG9ycy9wc2V1
ZG8tY2xhc3Mtbm90Lmh0bWwKKworICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb0NsYXNzVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rv
ckNvbXBpbGVyOjpjb25zdHJ1Y3RGcmFnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JDb21waWxlcjo6bWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdG9yQ29tcGlsZXI6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29t
cGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpnZW5lcmF0ZUVsZW1lbnREYXRhTWF0Y2hpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRJc05vdE1h
dGNoZWRUb05lZ2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNl
bGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKTogRGVs
ZXRlZC4KKwogMjAxNC0wNS0zMCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKFdlYktpdDIpOiBzcGFjZSBzcGFjZSB0byBpbnNlcnQgcGVy
aW9kIGRvZXNuJ3Qgd29yayBpbiB3ZWIgZm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5jcHAKaW5kZXggNzI1YzQ5NjZhNGE1OWE5ODdmMGQ3NmJhMTgyNjgwNGIy
Zjg3OTFiYi4uYmJhMjMyYzAxZmY3NGI3OTMyYjY1NGM0ZDVlZGIyZmUzNzQ2ZDA0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3Iu
aCIKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiRWxlbWVudERhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKQEAg
LTE1NSw2ICsxNTYsNyBAQCBzdHJ1Y3QgU2VsZWN0b3JGcmFnbWVudCB7CiAgICAgVmVjdG9yPEpT
Qzo6RnVuY3Rpb25QdHI+IHVub3B0aW1pemVkUHNldWRvQ2xhc3NlczsKICAgICBWZWN0b3I8QXR0
cmlidXRlTWF0Y2hpbmdJbmZvPiBhdHRyaWJ1dGVzOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8aW50
LCBpbnQ+PiBudGhDaGlsZGZpbHRlcnM7CisgICAgVmVjdG9yPFNlbGVjdG9yRnJhZ21lbnQ+IG5v
dEZpbHRlcnM7CiAKICAgICBib29sIGluRnVuY3Rpb25hbFBzZXVkb0NsYXNzOwogfTsKQEAgLTE4
NCw3ICsxODYsNiBAQCBjbGFzcyBTZWxlY3RvckNvZGVHZW5lcmF0b3IgewogICAgIHN0YXRpYyBj
b25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgY2hlY2tpbmdDb250ZXh0UmVnaXN0ZXI7CiAgICAg
c3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlcjsKIAot
ICAgIHZvaWQgY29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCk7CiAgICAgdm9pZCBnZW5l
cmF0ZVNlbGVjdG9yQ2hlY2tlcigpOwogCiAgICAgLy8gRWxlbWVudCByZWxhdGlvbnMgdHJlZSB3
YWxrZXIuCkBAIC0yMjksNiArMjMwLDcgQEAgY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIHsK
ICAgICB2b2lkIGdlbmVyYXRlRWxlbWVudEhhc0NsYXNzZXMoQXNzZW1ibGVyOjpKdW1wTGlzdCYg
ZmFpbHVyZUNhc2VzLCBjb25zdCBMb2NhbFJlZ2lzdGVyJiBlbGVtZW50RGF0YUFkZHJlc3MsIGNv
bnN0IFZlY3Rvcjxjb25zdCBBdG9taWNTdHJpbmdJbXBsKj4mIGNsYXNzTmFtZXMpOwogICAgIHZv
aWQgZ2VuZXJhdGVFbGVtZW50SXNMaW5rKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNl
cyk7CiAgICAgdm9pZCBnZW5lcmF0ZUVsZW1lbnRJc050aENoaWxkKEFzc2VtYmxlcjo6SnVtcExp
c3QmIGZhaWx1cmVDYXNlcywgY29uc3QgU2VsZWN0b3JGcmFnbWVudCYpOworICAgIHZvaWQgZ2Vu
ZXJhdGVFbGVtZW50SXNOb3RNYXRjaGVkVG9OZWdhdGlvbihBc3NlbWJsZXI6Okp1bXBMaXN0JiBm
YWlsdXJlQ2FzZXMsIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmKTsKICAgICB2b2lkIGdlbmVyYXRl
RWxlbWVudElzUm9vdChBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpOwogICAgIHZv
aWQgZ2VuZXJhdGVFbGVtZW50SXNUYXJnZXQoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNh
c2VzKTsKIApAQCAtMjQyLDcgKzI0NCw3IEBAIGNsYXNzIFNlbGVjdG9yQ29kZUdlbmVyYXRvciB7
CiAgICAgYm9vbCBnZW5lcmF0ZVByb2xvZ3VlKCk7CiAgICAgdm9pZCBnZW5lcmF0ZUVwaWxvZ3Vl
KCk7CiAgICAgVmVjdG9yPFN0YWNrQWxsb2NhdG9yOjpTdGFja1JlZmVyZW5jZT4gbV9wcm9sb2d1
ZVN0YWNrUmVmZXJlbmNlczsKLSAgICAKKwogICAgIEFzc2VtYmxlciBtX2Fzc2VtYmxlcjsKICAg
ICBSZWdpc3RlckFsbG9jYXRvciBtX3JlZ2lzdGVyQWxsb2NhdG9yOwogICAgIFN0YWNrQWxsb2Nh
dG9yIG1fc3RhY2tBbGxvY2F0b3I7CkBAIC0yNzQsNiArMjc2LDEwIEBAIGNsYXNzIFNlbGVjdG9y
Q29kZUdlbmVyYXRvciB7CiBjb25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgU2VsZWN0b3JDb2Rl
R2VuZXJhdG9yOjpjaGVja2luZ0NvbnRleHRSZWdpc3RlciA9IEpTQzo6R1BSSW5mbzo6YXJndW1l
bnRHUFIxOwogY29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIFNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Y2FsbEZyYW1lUmVnaXN0ZXIgPSBKU0M6OkdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyOwog
CitzdGF0aWMgRnVuY3Rpb25UeXBlIGNvbnN0cnVjdEZyYWdtZW50cyhjb25zdCBDU1NTZWxlY3Rv
ciogcm9vdFNlbGVjdG9yLCBTZWxlY3RvckNvbnRleHQsIFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBz
ZWxlY3RvckZyYWdtZW50cyk7CisKK3N0YXRpYyB2b2lkIGNvbXB1dGVCYWNrdHJhY2tpbmdJbmZv
cm1hdGlvbihTZWxlY3RvckZyYWdtZW50TGlzdCYgc2VsZWN0b3JGcmFnbWVudHMsIGJvb2wmIG5l
ZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCk7CisKIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0
dXMgY29tcGlsZVNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKiBsYXN0U2VsZWN0b3IsIEpTQzo6
Vk0qIHZtLCBTZWxlY3RvckNvbnRleHQgc2VsZWN0b3JDb250ZXh0LCBKU0M6Ok1hY3JvQXNzZW1i
bGVyQ29kZVJlZiYgY29kZVJlZikKIHsKICAgICBpZiAoIXZtLT5jYW5Vc2VKSVQoKSkKQEAgLTQw
Miw2ICs0MDgsMzkgQEAgc3RhdGljIGlubGluZSBGdW5jdGlvblR5cGUgYWRkUHNldWRvQ2xhc3NU
eXBlKGNvbnN0IENTU1NlbGVjdG9yJiBzZWxlY3RvciwgU2VsZWMKICAgICAgICAgICAgICAgICBy
ZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CiAgICAgICAgICAgICBy
ZXR1cm4gRnVuY3Rpb25UeXBlOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0Owog
ICAgICAgICB9CisKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc05vdDoKKyAgICAg
ICAgeworICAgICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QgPSBz
ZWxlY3Rvci5zZWxlY3Rvckxpc3QoKTsKKworICAgICAgICAgICAgaWYgKCFzZWxlY3Rvckxpc3Qp
CisgICAgICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0aGlu
ZzsKKworICAgICAgICAgICAgU2VsZWN0b3JGcmFnbWVudExpc3Qgbm90RnJhZ21lbnRzOworICAg
ICAgICAgICAgRnVuY3Rpb25UeXBlIGZ1bmN0aW9uVHlwZSA9IGNvbnN0cnVjdEZyYWdtZW50cyhz
ZWxlY3Rvckxpc3QtPmZpcnN0KCksIHNlbGVjdG9yQ29udGV4dCwgbm90RnJhZ21lbnRzKTsKKwor
ICAgICAgICAgICAgLy8gU2luY2UgdGhpcyBpcyBuZWdhdGlvbiBwc2V1ZG8gY2xhc3MsIENhbm5v
dE1hdGNoQW55dGhpbmcgaW1wbGllcyB0aGlzIGZpbHRlciBhbHdheXMgcGFzc2VzLgorICAgICAg
ICAgICAgaWYgKGZ1bmN0aW9uVHlwZSA9PSBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhp
bmcpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JD
aGVja2VyOworCisgICAgICAgICAgICBpZiAoZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6
Q2Fubm90Q29tcGlsZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25UeXBlOworCisg
ICAgICAgICAgICBBU1NFUlQobm90RnJhZ21lbnRzLnNpemUoKSA9PSAxKTsKKyAgICAgICAgICAg
IGlmIChub3RGcmFnbWVudHMuc2l6ZSgpICE9IDEpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZ1
bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZTsKKworICAgICAgICAgICAgU2VsZWN0b3JGcmFnbWVu
dCBzdWJGcmFnbWVudCA9IG5vdEZyYWdtZW50cy5maXJzdCgpOworICAgICAgICAgICAgc3ViRnJh
Z21lbnQuaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3MgPSB0cnVlOworCisgICAgICAgICAgICAvLyBG
SVhNRTogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBvcnQgdmlzaXRlZE1hdGNoVHlwZS4KKyAgICAg
ICAgICAgIGlmIChzdWJGcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmNvbnRhaW5zKENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0xpbmspKQorICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6
OkNhbm5vdENvbXBpbGU7CisKKyAgICAgICAgICAgIGZyYWdtZW50Lm5vdEZpbHRlcnMuYXBwZW5k
KHN1YkZyYWdtZW50KTsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvblR5cGU7CisgICAgICAg
IH0KKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTQyMSw4ICs0NjAs
MTYgQEAgaW5saW5lIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9y
KGNvbnN0IENTU1NlbGVjdG9yKiByb290U2VsZWMKICAgICBkYXRhTG9nRigiQ29tcGlsaW5nIFwi
JXNcIlxuIiwgbV9vcmlnaW5hbFNlbGVjdG9yLT5zZWxlY3RvclRleHQoKS51dGY4KCkuZGF0YSgp
KTsKICNlbmRpZgogCisgICAgbV9mdW5jdGlvblR5cGUgPSBjb25zdHJ1Y3RGcmFnbWVudHMocm9v
dFNlbGVjdG9yLCBtX3NlbGVjdG9yQ29udGV4dCwgbV9zZWxlY3RvckZyYWdtZW50cyk7CisgICAg
aWYgKG1fZnVuY3Rpb25UeXBlICE9IEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZSAmJiBtX2Z1
bmN0aW9uVHlwZSAhPSBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmcpCisgICAgICAg
IGNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbihtX3NlbGVjdG9yRnJhZ21lbnRzLCBtX25l
ZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCk7Cit9CisKK3N0YXRpYyBGdW5jdGlvblR5cGUg
Y29uc3RydWN0RnJhZ21lbnRzKGNvbnN0IENTU1NlbGVjdG9yKiByb290U2VsZWN0b3IsIFNlbGVj
dG9yQ29udGV4dCBzZWxlY3RvckNvbnRleHQsIFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3Rv
ckZyYWdtZW50cykKK3sKICAgICBTZWxlY3RvckZyYWdtZW50IGZyYWdtZW50OwogICAgIEZyYWdt
ZW50UmVsYXRpb24gcmVsYXRpb25Ub1ByZXZpb3VzRnJhZ21lbnQgPSBGcmFnbWVudFJlbGF0aW9u
OjpSaWdodG1vc3Q7CisgICAgRnVuY3Rpb25UeXBlIGZ1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlw
ZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwogICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIHNl
bGVjdG9yID0gcm9vdFNlbGVjdG9yOyBzZWxlY3Rvcjsgc2VsZWN0b3IgPSBzZWxlY3Rvci0+dGFn
SGlzdG9yeSgpKSB7CiAgICAgICAgIHN3aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6VGFnOgpAQCAtNDMzLDggKzQ4MCw3IEBAIGlubGluZSBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcihjb25zdCBDU1NTZWxlY3Rv
ciogcm9vdFNlbGVjCiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGlkID0gc2VsZWN0
b3ItPnZhbHVlKCk7CiAgICAgICAgICAgICBpZiAoZnJhZ21lbnQuaWQpIHsKICAgICAgICAgICAg
ICAgICBpZiAoaWQgIT0gKmZyYWdtZW50LmlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fZnVu
Y3Rpb25UeXBlID0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwotICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5
cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICAgICAgZnJhZ21lbnQuaWQgPSAmKHNlbGVjdG9yLT52YWx1ZSgp
KTsKQEAgLTQ0NCwyMiArNDkwLDIwIEBAIGlubGluZSBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OlNl
bGVjdG9yQ29kZUdlbmVyYXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9vdFNlbGVjCiAgICAgICAg
ICAgICBmcmFnbWVudC5jbGFzc05hbWVzLmFwcGVuZChzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzOgotICAgICAgICAgICAgbV9mdW5jdGlvblR5cGUgPSBtb3N0UmVzdHJpY3RpdmVGdW5jdGlv
blR5cGUobV9mdW5jdGlvblR5cGUsIGFkZFBzZXVkb0NsYXNzVHlwZSgqc2VsZWN0b3IsIGZyYWdt
ZW50LCBtX3NlbGVjdG9yQ29udGV4dCkpOwotICAgICAgICAgICAgaWYgKG1fZnVuY3Rpb25UeXBl
ID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZSB8fCBtX2Z1bmN0aW9uVHlwZSA9PSBGdW5j
dGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmcpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgZnVuY3Rpb25UeXBlID0gbW9zdFJlc3RyaWN0aXZlRnVuY3Rpb25UeXBlKGZ1
bmN0aW9uVHlwZSwgYWRkUHNldWRvQ2xhc3NUeXBlKCpzZWxlY3RvciwgZnJhZ21lbnQsIHNlbGVj
dG9yQ29udGV4dCkpOworICAgICAgICAgICAgaWYgKGZ1bmN0aW9uVHlwZSA9PSBGdW5jdGlvblR5
cGU6OkNhbm5vdENvbXBpbGUgfHwgZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90
TWF0Y2hBbnl0aGluZykKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25UeXBlOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6Okxpc3Q6CiAgICAgICAg
ICAgICBpZiAoc2VsZWN0b3ItPnZhbHVlKCkuY29udGFpbnMoJyAnKSkgewotICAgICAgICAgICAg
ICAgIG1fZnVuY3Rpb25UeXBlID0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwot
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25U
eXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgRkFM
TFRIUk9VR0g7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkJlZ2luOgogICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpFbmQ6CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRhaW46CiAg
ICAgICAgICAgICBpZiAoc2VsZWN0b3ItPnZhbHVlKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICAgICAgbV9mdW5jdGlvblR5cGUgPSBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlv
blR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBG
QUxMVEhST1VHSDsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6CkBAIC00NzQsMTAg
KzUxOCw5IEBAIGlubGluZSBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVy
YXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9vdFNlbGVjCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6VW5rbm93bjoKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgbV9mdW5jdGlvblR5cGUgPSBGdW5jdGlvblR5cGU6OkNh
bm5vdE1hdGNoQW55dGhpbmc7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1
cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwogICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9FbGVtZW50OgotICAgICAgICAgICAgZ290byBDYW5ub3RIYW5kbGVTZWxl
Y3RvcjsKKyAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGU7CiAg
ICAgICAgIH0KIAogICAgICAgICBDU1NTZWxlY3Rvcjo6UmVsYXRpb24gcmVsYXRpb24gPSBzZWxl
Y3Rvci0+cmVsYXRpb24oKTsKQEAgLTQ4NSwyOCArNTI4LDIzIEBAIGlubGluZSBTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9v
dFNlbGVjCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAocmVsYXRpb24gPT0g
Q1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQgJiYgIXNlbGVjdG9yLT5pc0xhc3RJblRhZ0hp
c3RvcnkoKSkKLSAgICAgICAgICAgIGdvdG8gQ2Fubm90SGFuZGxlU2VsZWN0b3I7CisgICAgICAg
ICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOwogCiAgICAgICAgIGlmIChy
ZWxhdGlvbiA9PSBDU1NTZWxlY3Rvcjo6RGlyZWN0QWRqYWNlbnQgfHwgcmVsYXRpb24gPT0gQ1NT
U2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQpIHsKICAgICAgICAgICAgIEZ1bmN0aW9uVHlwZSBy
ZWxhdGlvbkZ1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6U2VsZWN0b3JDaGVja2VyV2l0aENo
ZWNraW5nQ29udGV4dDsKLSAgICAgICAgICAgIGlmIChtX3NlbGVjdG9yQ29udGV4dCA9PSBTZWxl
Y3RvckNvbnRleHQ6OlF1ZXJ5U2VsZWN0b3IpCisgICAgICAgICAgICBpZiAoc2VsZWN0b3JDb250
ZXh0ID09IFNlbGVjdG9yQ29udGV4dDo6UXVlcnlTZWxlY3RvcikKICAgICAgICAgICAgICAgICBy
ZWxhdGlvbkZ1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2Vy
OwotICAgICAgICAgICAgbV9mdW5jdGlvblR5cGUgPSBzdGQ6Om1heChtX2Z1bmN0aW9uVHlwZSwg
cmVsYXRpb25GdW5jdGlvblR5cGUpOworICAgICAgICAgICAgZnVuY3Rpb25UeXBlID0gbW9zdFJl
c3RyaWN0aXZlRnVuY3Rpb25UeXBlKGZ1bmN0aW9uVHlwZSwgcmVsYXRpb25GdW5jdGlvblR5cGUp
OwogICAgICAgICB9CiAKICAgICAgICAgZnJhZ21lbnQucmVsYXRpb25Ub0xlZnRGcmFnbWVudCA9
IGZyYWdtZW50UmVsYXRpb25Gb3JTZWxlY3RvclJlbGF0aW9uKHJlbGF0aW9uKTsKICAgICAgICAg
ZnJhZ21lbnQucmVsYXRpb25Ub1JpZ2h0RnJhZ21lbnQgPSByZWxhdGlvblRvUHJldmlvdXNGcmFn
bWVudDsKICAgICAgICAgcmVsYXRpb25Ub1ByZXZpb3VzRnJhZ21lbnQgPSBmcmFnbWVudC5yZWxh
dGlvblRvTGVmdEZyYWdtZW50OwogCi0gICAgICAgIG1fc2VsZWN0b3JGcmFnbWVudHMuYXBwZW5k
KGZyYWdtZW50KTsKKyAgICAgICAgc2VsZWN0b3JGcmFnbWVudHMuYXBwZW5kKGZyYWdtZW50KTsK
ICAgICAgICAgZnJhZ21lbnQgPSBTZWxlY3RvckZyYWdtZW50KCk7CiAgICAgfQotCi0gICAgY29t
cHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCk7Ci0KLSAgICByZXR1cm47Ci1DYW5ub3RIYW5k
bGVTZWxlY3RvcjoKLSAgICBtX2Z1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29t
cGlsZTsKKyAgICByZXR1cm4gZnVuY3Rpb25UeXBlOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
YXR0cmlidXRlTmFtZVRlc3RpbmdSZXF1aXJlc05hbWVzcGFjZVJlZ2lzdGVyKGNvbnN0IENTU1Nl
bGVjdG9yJiBhdHRyaWJ1dGVTZWxlY3RvcikKQEAgLTUxOSwzNSArNTU3LDUzIEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBhdHRyaWJ1dGVWYWx1ZVRlc3RpbmdSZXF1aXJlc0Nhc2VGb2xkaW5nUmVnaXN0
ZXIoY29uc3QgQXR0cmliCiAgICAgcmV0dXJuICFhdHRyaWJ1dGVJbmZvLmNhbkRlZmF1bHRUb0Nh
c2VTZW5zaXRpdmVWYWx1ZU1hdGNoKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbWlu
aW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKGNvbnN0IFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxl
Y3RvckZyYWdtZW50cykKKy8vIFN0cmljdCBtaW5pbXVtIHRvIG1hdGNoIGFueXRoaW5nIGludGVy
ZXN0aW5nOgorLy8gRWxlbWVudCArIEJhY2t0cmFja2luZ1JlZ2lzdGVyICsgRWxlbWVudERhdGEg
KyBhIHBvaW50ZXIgdG8gdmFsdWVzICsgYW4gaW5kZXggb24gdGhhdCBwb2ludGVyICsgdGhlIHZh
bHVlIHdlIGV4cGVjdDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtUmVxdWlyZWRSZWdp
c3RlckNvdW50ID0gNjsKKy8vIEVsZW1lbnQgKyBFbGVtZW50RGF0YSArIHNjcmF0Y2hSZWdpc3Rl
ciArIGF0dHJpYnV0ZUFycmF5UG9pbnRlciArIGV4cGVjdGVkTG9jYWxOYW1lICsgKHF1YWxpZmll
ZE5hbWVJbXBsICYmIGV4cGVjdGVkVmFsdWUpLgorc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbmlt
dW1SZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JBdHRyaWJ1dGVGaWx0ZXIgPSA2OworCitzdGF0aWMg
aW5saW5lIHVuc2lnbmVkIG1pbmltdW1SZWdpc3RlclJlcXVpcmVtZW50cyhjb25zdCBTZWxlY3Rv
ckZyYWdtZW50JiBzZWxlY3RvckZyYWdtZW50KQogewotICAgIC8vIFN0cmljdCBtaW5pbXVtIHRv
IG1hdGNoIGFueXRoaW5nIGludGVyZXN0aW5nOgotICAgIC8vIEVsZW1lbnQgKyBCYWNrdHJhY2tp
bmdSZWdpc3RlciArIEVsZW1lbnREYXRhICsgYSBwb2ludGVyIHRvIHZhbHVlcyArIGFuIGluZGV4
IG9uIHRoYXQgcG9pbnRlciArIHRoZSB2YWx1ZSB3ZSBleHBlY3Q7Ci0gICAgdW5zaWduZWQgbWlu
aW11bSA9IDY7CisgICAgdW5zaWduZWQgbWluaW11bSA9IG1pbmltdW1SZXF1aXJlZFJlZ2lzdGVy
Q291bnQ7CisgICAgY29uc3QgVmVjdG9yPEF0dHJpYnV0ZU1hdGNoaW5nSW5mbz4mIGF0dHJpYnV0
ZXMgPSBzZWxlY3RvckZyYWdtZW50LmF0dHJpYnV0ZXM7CisKKyAgICB1bnNpZ25lZCBiYWNrdHJh
Y2tpbmdSZWdpc3RlclJlcXVpcmVtZW50cyA9IDA7CisgICAgaWYgKHNlbGVjdG9yRnJhZ21lbnQu
YmFja3RyYWNraW5nRmxhZ3MgJiBCYWNrdHJhY2tpbmdGbGFnOjpJbkNoYWluV2l0aERlc2NlbmRh
bnRUYWlsKQorICAgICAgICBiYWNrdHJhY2tpbmdSZWdpc3RlclJlcXVpcmVtZW50cyA9IDE7IC8v
IElmIHRoZXJlIGlzIGEgRGVzY2VuZGFudFRhaWwsIHRoZXJlIGlzIGEgYmFja3RyYWNraW5nIHJl
Z2lzdGVyLgogCiAgICAgLy8gQXR0cmlidXRlcyBjYXVzZSBzb21lIHJlZ2lzdGVyIHByZXNzdXJl
LgotICAgIGZvciAodW5zaWduZWQgc2VsZWN0b3JGcmFnbWVudEluZGV4ID0gMDsgc2VsZWN0b3JG
cmFnbWVudEluZGV4IDwgc2VsZWN0b3JGcmFnbWVudHMuc2l6ZSgpOyArK3NlbGVjdG9yRnJhZ21l
bnRJbmRleCkgewotICAgICAgICBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBzZWxlY3RvckZyYWdt
ZW50ID0gc2VsZWN0b3JGcmFnbWVudHNbc2VsZWN0b3JGcmFnbWVudEluZGV4XTsKLSAgICAgICAg
Y29uc3QgVmVjdG9yPEF0dHJpYnV0ZU1hdGNoaW5nSW5mbz4mIGF0dHJpYnV0ZXMgPSBzZWxlY3Rv
ckZyYWdtZW50LmF0dHJpYnV0ZXM7CisgICAgdW5zaWduZWQgYXR0cmlidXRlQ291bnQgPSBhdHRy
aWJ1dGVzLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGF0dHJpYnV0ZUluZGV4ID0gMDsgYXR0
cmlidXRlSW5kZXggPCBhdHRyaWJ1dGVDb3VudDsgKythdHRyaWJ1dGVJbmRleCkgeworICAgICAg
ICB1bnNpZ25lZCBhdHRyaWJ1dGVNaW5pbXVtID0gbWluaW11bVJlcXVpcmVkUmVnaXN0ZXJDb3Vu
dEZvckF0dHJpYnV0ZUZpbHRlciArIGJhY2t0cmFja2luZ1JlZ2lzdGVyUmVxdWlyZW1lbnRzOwog
Ci0gICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZUNvdW50ID0gYXR0cmlidXRlcy5zaXplKCk7Ci0g
ICAgICAgIGZvciAodW5zaWduZWQgYXR0cmlidXRlSW5kZXggPSAwOyBhdHRyaWJ1dGVJbmRleCA8
IGF0dHJpYnV0ZUNvdW50OyArK2F0dHJpYnV0ZUluZGV4KSB7Ci0gICAgICAgICAgICAvLyBFbGVt
ZW50ICsgRWxlbWVudERhdGEgKyBzY3JhdGNoUmVnaXN0ZXIgKyBhdHRyaWJ1dGVBcnJheVBvaW50
ZXIgKyBleHBlY3RlZExvY2FsTmFtZSArIChxdWFsaWZpZWROYW1lSW1wbCAmJiBleHBlY3RlZFZh
bHVlKS4KLSAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZU1pbmltdW0gPSA2OwotICAgICAg
ICAgICAgaWYgKHNlbGVjdG9yRnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgJiBCYWNrdHJhY2tp
bmdGbGFnOjpJbkNoYWluV2l0aERlc2NlbmRhbnRUYWlsKQotICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZU1pbmltdW0gKz0gMTsgLy8gSWYgdGhlcmUgaXMgYSBEZXNjZW5kYW50VGFpbCwgdGhlcmUg
aXMgYSBiYWNrdHJhY2tpbmcgcmVnaXN0ZXIuCisgICAgICAgIGlmIChhdHRyaWJ1dGVJbmRleCAr
IDEgPCBhdHRyaWJ1dGVDb3VudCkKKyAgICAgICAgICAgIGF0dHJpYnV0ZU1pbmltdW0gKz0gMjsg
Ly8gRm9yIHRoZSBsb2NhbCBjb3B5IG9mIHRoZSBjb3VudGVyIGFuZCBhdHRyaWJ1dGVBcnJheVBv
aW50ZXIuCiAKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVJbmRleCArIDEgPCBhdHRyaWJ1dGVD
b3VudCkKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVNaW5pbXVtICs9IDI7IC8vIEZvciB0aGUg
bG9jYWwgY29weSBvZiB0aGUgY291bnRlciBhbmQgYXR0cmlidXRlQXJyYXlQb2ludGVyLgorICAg
ICAgICBjb25zdCBBdHRyaWJ1dGVNYXRjaGluZ0luZm8mIGF0dHJpYnV0ZUluZm8gPSBhdHRyaWJ1
dGVzW2F0dHJpYnV0ZUluZGV4XTsKKyAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3ImIGF0dHJpYnV0
ZVNlbGVjdG9yID0gYXR0cmlidXRlSW5mby5zZWxlY3RvcigpOworICAgICAgICBpZiAoYXR0cmli
dXRlTmFtZVRlc3RpbmdSZXF1aXJlc05hbWVzcGFjZVJlZ2lzdGVyKGF0dHJpYnV0ZVNlbGVjdG9y
KQorICAgICAgICAgICAgfHwgYXR0cmlidXRlVmFsdWVUZXN0aW5nUmVxdWlyZXNDYXNlRm9sZGlu
Z1JlZ2lzdGVyKGF0dHJpYnV0ZUluZm8pKQorICAgICAgICAgICAgYXR0cmlidXRlTWluaW11bSAr
PSAxOwogCi0gICAgICAgICAgICBjb25zdCBBdHRyaWJ1dGVNYXRjaGluZ0luZm8mIGF0dHJpYnV0
ZUluZm8gPSBhdHRyaWJ1dGVzW2F0dHJpYnV0ZUluZGV4XTsKLSAgICAgICAgICAgIGNvbnN0IENT
U1NlbGVjdG9yJiBhdHRyaWJ1dGVTZWxlY3RvciA9IGF0dHJpYnV0ZUluZm8uc2VsZWN0b3IoKTsK
LSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lVGVzdGluZ1JlcXVpcmVzTmFtZXNwYWNlUmVn
aXN0ZXIoYXR0cmlidXRlU2VsZWN0b3IpCi0gICAgICAgICAgICAgICAgfHwgYXR0cmlidXRlVmFs
dWVUZXN0aW5nUmVxdWlyZXNDYXNlRm9sZGluZ1JlZ2lzdGVyKGF0dHJpYnV0ZUluZm8pKQotICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZU1pbmltdW0gKz0gMTsKKyAgICAgICAgbWluaW11bSA9IHN0
ZDo6bWF4KG1pbmltdW0sIGF0dHJpYnV0ZU1pbmltdW0pOworICAgIH0KIAotICAgICAgICAgICAg
bWluaW11bSA9IHN0ZDo6bWF4KG1pbmltdW0sIGF0dHJpYnV0ZU1pbmltdW0pOwotICAgICAgICB9
CisgICAgLy8gOm5vdCBwc2V1ZG8gY2xhc3MgZmlsdGVycyBjYXVzZSBzb21lIHJlZ2lzdGVyIHBy
ZXNzdXJlLgorICAgIGZvciAoY29uc3QgU2VsZWN0b3JGcmFnbWVudCYgc3ViRnJhZ21lbnQgOiBz
ZWxlY3RvckZyYWdtZW50Lm5vdEZpbHRlcnMpIHsKKyAgICAgICAgdW5zaWduZWQgbm90RmlsdGVy
TWluaW11bSA9IG1pbmltdW1SZWdpc3RlclJlcXVpcmVtZW50cyhzdWJGcmFnbWVudCkgKyBiYWNr
dHJhY2tpbmdSZWdpc3RlclJlcXVpcmVtZW50czsKKyAgICAgICAgbWluaW11bSA9IHN0ZDo6bWF4
KG1pbmltdW0sIG5vdEZpbHRlck1pbmltdW0pOworICAgIH0KKyAgICByZXR1cm4gbWluaW11bTsK
K30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBtaW5pbXVtUmVnaXN0ZXJSZXF1aXJlbWVudHMo
Y29uc3QgU2VsZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9yRnJhZ21lbnRzKQoreworICAgIHVu
c2lnbmVkIG1pbmltdW0gPSBtaW5pbXVtUmVxdWlyZWRSZWdpc3RlckNvdW50OworCisgICAgZm9y
ICh1bnNpZ25lZCBzZWxlY3RvckZyYWdtZW50SW5kZXggPSAwOyBzZWxlY3RvckZyYWdtZW50SW5k
ZXggPCBzZWxlY3RvckZyYWdtZW50cy5zaXplKCk7ICsrc2VsZWN0b3JGcmFnbWVudEluZGV4KSB7
CisgICAgICAgIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmIHNlbGVjdG9yRnJhZ21lbnQgPSBzZWxl
Y3RvckZyYWdtZW50c1tzZWxlY3RvckZyYWdtZW50SW5kZXhdOworICAgICAgICBtaW5pbXVtID0g
c3RkOjptYXgobWluaW11bSwgbWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKHNlbGVjdG9yRnJh
Z21lbnQpKTsKICAgICB9CiAKICAgICByZXR1cm4gbWluaW11bTsKQEAgLTg3Myw3ICs5MjksNyBA
QCBzdGF0aWMgYm9vbCByZXF1aXJlc0Rlc2NlbmRhbnRUYWlsKGNvbnN0IFNlbGVjdG9yRnJhZ21l
bnQmIGZyYWdtZW50KQogICAgIHJldHVybiBmcmFnbWVudC5tYXRjaGluZ1RhZ05hbWVCYWNrdHJh
Y2tpbmdBY3Rpb24gPT0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VGFpbCB8
fCBmcmFnbWVudC5tYXRjaGluZ1Bvc3RUYWdOYW1lQmFja3RyYWNraW5nQWN0aW9uID09IEJhY2t0
cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2VuZGFudFRhaWwgfHwgZnJhZ21lbnQudHJhdmVyc2Fs
QmFja3RyYWNraW5nQWN0aW9uID09IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2VuZGFu
dFRhaWw7CiB9CiAKLXZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21wdXRlQmFja3RyYWNr
aW5nSW5mb3JtYXRpb24oKQordm9pZCBjb21wdXRlQmFja3RyYWNraW5nSW5mb3JtYXRpb24oU2Vs
ZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9yRnJhZ21lbnRzLCBib29sJiBuZWVkc0FkamFjZW50
QmFja3RyYWNraW5nU3RhcnQpCiB7CiAgICAgYm9vbCBoYXNEZXNjZW5kYW50UmVsYXRpb25PblRo
ZVJpZ2h0ID0gZmFsc2U7CiAgICAgdW5zaWduZWQgYW5jZXN0b3JQb3NpdGlvblNpbmNlRGVzY2Vu
ZGFudFJlbGF0aW9uID0gMDsKQEAgLTg5MCw4ICs5NDYsOCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdl
bmVyYXRvcjo6Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKICAgICBjb25zdCBTZWxl
Y3RvckZyYWdtZW50KiBwcmV2aW91c0NoaWxkRnJhZ21lbnRJbkNoaWxkQ2hhaW4gPSBudWxscHRy
OwogICAgIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQqIHByZXZpb3VzRGlyZWN0QWRqYWNlbnRGcmFn
bWVudEluRGlyZWN0QWRqYWNlbnRDaGFpbiA9IG51bGxwdHI7CiAKLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9zZWxlY3RvckZyYWdtZW50cy5zaXplKCk7ICsraSkgewotICAgICAgICBT
ZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCA9IG1fc2VsZWN0b3JGcmFnbWVudHNbaV07CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNlbGVjdG9yRnJhZ21lbnRzLnNpemUoKTsgKytpKSB7
CisgICAgICAgIFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50ID0gc2VsZWN0b3JGcmFnbWVudHNb
aV07CiAKICAgICAgICAgdXBkYXRlQ2hhaW5TdGF0ZXMoZnJhZ21lbnQsIGhhc0Rlc2NlbmRhbnRS
ZWxhdGlvbk9uVGhlUmlnaHQsIGFuY2VzdG9yUG9zaXRpb25TaW5jZURlc2NlbmRhbnRSZWxhdGlv
biwgaGFzSW5kaXJlY3RBZGphY2VudFJlbGF0aW9uT25UaGVSaWdodE9mRGlyZWN0QWRqYWNlbnRD
aGFpbiwgYWRqYWNlbnRQb3NpdGlvblNpbmNlSW5kaXJlY3RBZGphY2VudFRyZWVXYWxrKTsKIApA
QCAtOTI2LDggKzk4Miw4IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21wdXRlQmFj
a3RyYWNraW5nSW5mb3JtYXRpb24oKQogICAgICAgICAgICAgICAgIEFTU0VSVChmcmFnbWVudC5y
ZWxhdGlvblRvUmlnaHRGcmFnbWVudCA9PSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGphY2Vu
dCk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVJbmRpcmVjdEFkamFjZW50QmFja3RyYWNr
aW5nU3RhcnRGcmFnbWVudEluZGV4ICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKSk7CiAgICAgICAgICAgICAgICAgZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgfD0gQmFj
a3RyYWNraW5nRmxhZzo6RGlyZWN0QWRqYWNlbnRUYWlsOwotICAgICAgICAgICAgICAgIG1fc2Vs
ZWN0b3JGcmFnbWVudHNbc2F2ZUluZGlyZWN0QWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydEZyYWdt
ZW50SW5kZXhdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OlNhdmVBZGph
Y2VudEJhY2t0cmFja2luZ1N0YXJ0OwotICAgICAgICAgICAgICAgIG1fbmVlZHNBZGphY2VudEJh
Y2t0cmFja2luZ1N0YXJ0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzZWxlY3RvckZyYWdtZW50
c1tzYXZlSW5kaXJlY3RBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleF0uYmFj
a3RyYWNraW5nRmxhZ3MgfD0gQmFja3RyYWNraW5nRmxhZzo6U2F2ZUFkamFjZW50QmFja3RyYWNr
aW5nU3RhcnQ7CisgICAgICAgICAgICAgICAgbmVlZHNBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBuZWVkc0FkamFjZW50VGFpbCA9IGZhbHNlOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgc2F2ZUluZGlyZWN0QWRqYWNlbnRCYWNrdHJhY2tpbmdT
dGFydEZyYWdtZW50SW5kZXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7
CkBAIC05MzYsMTAgKzk5MiwxMCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcHV0
ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKICAgICAgICAgICAgIGlmIChuZWVkc0Rlc2NlbmRh
bnRUYWlsKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVEZXNjZW5kYW50QmFja3RyYWNr
aW5nU3RhcnRGcmFnbWVudEluZGV4ICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKSk7CiAgICAgICAgICAgICAgICAgZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgfD0gQmFj
a3RyYWNraW5nRmxhZzo6RGVzY2VuZGFudFRhaWw7Ci0gICAgICAgICAgICAgICAgbV9zZWxlY3Rv
ckZyYWdtZW50c1tzYXZlRGVzY2VuZGFudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleF0u
YmFja3RyYWNraW5nRmxhZ3MgfD0gQmFja3RyYWNraW5nRmxhZzo6U2F2ZURlc2NlbmRhbnRCYWNr
dHJhY2tpbmdTdGFydDsKKyAgICAgICAgICAgICAgICBzZWxlY3RvckZyYWdtZW50c1tzYXZlRGVz
Y2VuZGFudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleF0uYmFja3RyYWNraW5nRmxhZ3Mg
fD0gQmFja3RyYWNraW5nRmxhZzo6U2F2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdTdGFydDsKICAg
ICAgICAgICAgICAgICBuZWVkc0Rlc2NlbmRhbnRUYWlsID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBqID0gc2F2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdTdGFydEZyYWdt
ZW50SW5kZXg7IGogPD0gaTsgKytqKQotICAgICAgICAgICAgICAgICAgICBtX3NlbGVjdG9yRnJh
Z21lbnRzW2pdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OkluQ2hhaW5X
aXRoRGVzY2VuZGFudFRhaWw7CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yRnJhZ21lbnRz
W2pdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OkluQ2hhaW5XaXRoRGVz
Y2VuZGFudFRhaWw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzYXZlRGVzY2VuZGFudEJh
Y2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWdu
ZWQ+OjptYXgoKTsKICAgICAgICAgfQpAQCAtOTYyLDcgKzEwMTgsNyBAQCBpbmxpbmUgYm9vbCBT
ZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlUHJvbG9ndWUoKQogI2VuZGlmCiAgICAgcmV0
dXJuIGZhbHNlOwogfQotICAgIAorCiBpbmxpbmUgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlRXBpbG9ndWUoKQogewogI2lmIENQVShBUk02NCkKQEAgLTk3NiwxNSArMTAzMiwx
OCBAQCBpbmxpbmUgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRXBpbG9ndWUo
KQogICAgIG1fc3RhY2tBbGxvY2F0b3IucG9wKG1fcHJvbG9ndWVTdGFja1JlZmVyZW5jZXMsIHBy
b2xvZ3VlUmVnaXN0ZXIpOwogI2VuZGlmCiB9Ci0gICAgCisKIHZvaWQgU2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpCiB7CiAgICAgYm9vbCBuZWVkc0VwaWxv
Z3VlID0gZ2VuZXJhdGVQcm9sb2d1ZSgpOwotICAgIAorCiAgICAgVmVjdG9yPFN0YWNrQWxsb2Nh
dG9yOjpTdGFja1JlZmVyZW5jZT4gY2FsbGVlU2F2ZWRSZWdpc3RlclN0YWNrUmVmZXJlbmNlczsK
ICAgICBib29sIHJlc2VydmVkQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgPSBmYWxzZTsKICAgICB1bnNp
Z25lZCBhdmFpbGFibGVSZWdpc3RlckNvdW50ID0gbV9yZWdpc3RlckFsbG9jYXRvci5hdmFpbGFi
bGVSZWdpc3RlckNvdW50KCk7CiAgICAgdW5zaWduZWQgbWluaW11bVJlZ2lzdGVyQ291bnRGb3JB
dHRyaWJ1dGVzID0gbWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKG1fc2VsZWN0b3JGcmFnbWVu
dHMpOworI2lmIENTU19TRUxFQ1RPUl9KSVRfREVCVUdHSU5HCisgICAgZGF0YUxvZ0YoIkNvbXBp
bGluZyB3aXRoIG1pbmltdW0gcmVxdWlyZWQgcmVnaXN0ZXIgY291bnQgJXVcbiIsIG1pbmltdW1S
ZWdpc3RlckNvdW50Rm9yQXR0cmlidXRlcyk7CisjZW5kaWYKICAgICBBU1NFUlQobWluaW11bVJl
Z2lzdGVyQ291bnRGb3JBdHRyaWJ1dGVzIDw9IHJlZ2lzdGVyQ291bnQpOwogICAgIGlmIChhdmFp
bGFibGVSZWdpc3RlckNvdW50IDwgbWluaW11bVJlZ2lzdGVyQ291bnRGb3JBdHRyaWJ1dGVzKSB7
CiAgICAgICAgIHJlc2VydmVkQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgPSB0cnVlOwpAQCAtMTU3NSw2
ICsxNjM0LDggQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudE1h
dGNoaW5nKEFzc2VtYmxlcjo6SnVtcExpc3QmIG1hdGNoaW4KICAgICAgICAgZ2VuZXJhdGVFbGVt
ZW50SXNMYXN0Q2hpbGQobWF0Y2hpbmdQb3N0VGFnTmFtZUZhaWx1cmVDYXNlcywgZnJhZ21lbnQp
OwogICAgIGlmICghZnJhZ21lbnQubnRoQ2hpbGRmaWx0ZXJzLmlzRW1wdHkoKSkKICAgICAgICAg
Z2VuZXJhdGVFbGVtZW50SXNOdGhDaGlsZChtYXRjaGluZ1Bvc3RUYWdOYW1lRmFpbHVyZUNhc2Vz
LCBmcmFnbWVudCk7CisgICAgaWYgKCFmcmFnbWVudC5ub3RGaWx0ZXJzLmlzRW1wdHkoKSkKKyAg
ICAgICAgZ2VuZXJhdGVFbGVtZW50SXNOb3RNYXRjaGVkVG9OZWdhdGlvbihtYXRjaGluZ1Bvc3RU
YWdOYW1lRmFpbHVyZUNhc2VzLCBmcmFnbWVudCk7CiB9CiAKIHZvaWQgU2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnREYXRhTWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYg
ZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkKQEAgLTE1OTUs
NyArMTY1Niw3IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRE
YXRhTWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpCiAgICAgaWYgKCFmcmFnbWVudC5j
bGFzc05hbWVzLmlzRW1wdHkoKSkKICAgICAgICAgZ2VuZXJhdGVFbGVtZW50SGFzQ2xhc3Nlcyhm
YWlsdXJlQ2FzZXMsIGVsZW1lbnREYXRhQWRkcmVzcywgZnJhZ21lbnQuY2xhc3NOYW1lcyk7CiAg
ICAgaWYgKCFmcmFnbWVudC5hdHRyaWJ1dGVzLmlzRW1wdHkoKSkKLSAgICBnZW5lcmF0ZUVsZW1l
bnRBdHRyaWJ1dGVzTWF0Y2hpbmcoZmFpbHVyZUNhc2VzLCBlbGVtZW50RGF0YUFkZHJlc3MsIGZy
YWdtZW50KTsKKyAgICAgICAgZ2VuZXJhdGVFbGVtZW50QXR0cmlidXRlc01hdGNoaW5nKGZhaWx1
cmVDYXNlcywgZWxlbWVudERhdGFBZGRyZXNzLCBmcmFnbWVudCk7CiB9CiAKIHN0YXRpYyBpbmxp
bmUgQXNzZW1ibGVyOjpKdW1wIHRlc3RJc0hUTUxGbGFnT25Ob2RlKEFzc2VtYmxlcjo6UmVzdWx0
Q29uZGl0aW9uIGNvbmRpdGlvbiwgQXNzZW1ibGVyJiBhc3NlbWJsZXIsIEFzc2VtYmxlcjo6UmVn
aXN0ZXJJRCBub2RlQWRkcmVzcykKQEAgLTI0OTQsNiArMjU1NSwxNyBAQCB2b2lkIFNlbGVjdG9y
Q29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50SXNOdGhDaGlsZChBc3NlbWJsZXI6Okp1bXBM
aXN0JiBmYWlsdQogICAgIH0KIH0KIAordm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVy
YXRlRWxlbWVudElzTm90TWF0Y2hlZFRvTmVnYXRpb24oQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFp
bHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkKK3sKKyAgICBBc3Nl
bWJsZXI6Okp1bXBMaXN0IGxvY2FsRmFpbHVyZUNhc2VzOworICAgIGZvciAoY29uc3QgYXV0byYg
c3ViRnJhZ21lbnQgOiBmcmFnbWVudC5ub3RGaWx0ZXJzKSB7CisgICAgICAgIGdlbmVyYXRlRWxl
bWVudE1hdGNoaW5nKGxvY2FsRmFpbHVyZUNhc2VzLCBsb2NhbEZhaWx1cmVDYXNlcywgc3ViRnJh
Z21lbnQpOworICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIGEgbmVnYXRpb24gZmlsdGVyLCByZWFj
aGluZyBoZXJlIGlzIGEgZmFpbHVyZS4KKyAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChtX2Fz
c2VtYmxlci5qdW1wKCkpOworICAgICAgICBsb2NhbEZhaWx1cmVDYXNlcy5saW5rKCZtX2Fzc2Vt
Ymxlcik7CisgICAgfQorfQorCiB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVF
bGVtZW50SXNSb290KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcykKIHsKICAgICBM
b2NhbFJlZ2lzdGVyIGRvY3VtZW50KG1fcmVnaXN0ZXJBbGxvY2F0b3IpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAxZWI1
OTEwYjMyMWQyMjYyYWM2OTg4OWVmMWJmZTM1YjI1Mjk0NDcuLmJmZmRlNTI5YTdlMmM4MWU0MDlh
MmQyZTU5NDRhMjgwOGQxMWQ5MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNC0wNi0wMSAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBDU1MgSklU
OiBhZGQgc3VwcG9ydCBmb3IgdGhlICJub3QiIHBzZXVkbyBjbGFzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMzE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIDpub3QgcHNldWRvIGNsYXNzIHN1
cHBvcnQgdG8gQ1NTIEpJVC4gQ3VycmVudCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBkb2Vzbid0
IHN1cHBvcnQgdmlzaXRlZE1hdGNoVHlwZS4gU28gd2hlbiBsaW5rIHBzZXVkbyBjbGFzcyBhcHBl
YXJzIGluCisgICAgICAgIDpub3Qgc3ViIGZyYWdtZW50LCBmYWxsYmFjayB0byB0aGUgbm9uLUpJ
VCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUt
aG92ZXItcXVpcmtzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3Rv
cnMvbm90LWFjdGl2ZS1ob3Zlci1xdWlya3MuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
ZWxlY3RvcnMvbm90LWFjdGl2ZS1ob3Zlci1zdHJpY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Mtbm90LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90LWhvdmVyLWFj
dGl2ZS1xdWlya3MtdXRpbGl0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0UXVlcnlTZWxlY3Rv
cik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMv
bm90LWhvdmVyLWFjdGl2ZS1zdHJpY3QtdXRpbGl0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
UXVlcnlTZWxlY3Rvcik6CisgICAgICAgICh0ZXN0KToKKwogMjAxNC0wNS0zMCAgTWFyaW8gU2Fu
Y2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIERv
bid0IHVzZSBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCkgaW4gYXJpYS1zbGlkZXItcmVxdWlyZWQt
YXR0cmlidXRlcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9u
b3QtYWN0aXZlLWhvdmVyLXF1aXJrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXF1aXJrcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmIwOTlmODMwNjY5ZTUyOTQ0ZWMwMGJhYjU5NjZjNDRhYjllZmViMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUtaG92ZXItcXVpcmtzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5NCBAQAorU1RBUlQKK1Rlc3QgdGhlIDpub3QoOmFjdGl2
ZSkgYW5kIDpub3QoOmhvdmVyKSBzZWxlY3RvciB3aGVuIHRoZSBkb2N1bWVudCBpcyBpbiBxdWly
a3MgbW9kZS4gVG8gdGVzdCBtYW51YWxseSwgZW5zdXJlIHRoYXQgbm90IG1vdmUgdGhlIGN1cnNv
ciBvdmVyIHRoZSBncmVlbiByZWN0YW5nbGUgYW5kIHByZXNzIHRoZSBncmF5IFNUQVJUIGRpdiB1
bnRpbCB0aGUgdGVzdCBpcyBmaW5pc2hlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0aCAtIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMworUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0
aCAtIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIio6bm90KDphY3RpdmUpIikubGVuZ3RoIGlz
IDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIjpub3QoOmFjdGl2ZSk6aG92ZXIiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAy
LCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmhvdmVyOm5vdCg6YWN0aXZl
KSIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCI6aG92ZXI6bm90KDphY3RpdmUpOmhvdmVyIikubGVuZ3RoIGlzIDAK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikp
LmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ijpub3QoOmFjdGl2ZSk6YWN0aXZlIikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwg
MykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjphY3RpdmU6bm90KDphY3RpdmUp
IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIjphY3RpdmU6bm90KDphY3RpdmUpOmFjdGl2ZSIpLmxlbmd0aCBpcyAw
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJ0ZXN0aW5nOm5vdCg6YWN0aXZlKSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGFyZ2V0Om5vdCg6YWN0aXZl
KSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCI6bm90KDphY3RpdmUpI3RhcmdldCIpLmxlbmd0aCBpcyAxCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xv
ciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGFy
Z2V0Om5vdCg6YWN0aXZlKSN0YXJnZXQiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1
LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzczpub3QoOmFjdGl2
ZSkiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0aXZlKS5hQ2xhc3MiKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFD
bGFzczpub3QoOmFjdGl2ZSkub3RoZXJDbGFzcyIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtp
dF0iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0aXZlKVt3ZWJraXRdIikubGVuZ3RoIGlzIDEKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltp
ZF06bm90KDphY3RpdmUpW3dlYmtpdF0iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1
LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQ9cm9j
a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCJbaWQ9dGFyZ2V0XTpub3QoOmFjdGl2ZSlbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIuYUNsYXNzW3dlYmtpdF49cm9dIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwg
NikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0
Xj1yb10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiW2lkXj10YV06bm90KDphY3RpdmUpW3dlYmtpdF49cm9dIiku
bGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0
aXZlKVt3ZWJraXQkPWtzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQkPWV0XTpub3QoOmFjdGl2ZSlbd2Vi
a2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCI6bm90KDphY3RpdmUpW3dlYmtpdCo9Y2tdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2Io
NCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZCo9cmddOm5vdCg6
YWN0aXZlKVt3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdH49cm9ja3Nd
IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiW2lkfj10YXJnZXRdOm5vdCg6YWN0aXZlKVt3ZWJraXR+PXJvY2tzXSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIuYUNsYXNzW3dlYmtpdHw9cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwg
NSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Vi
a2l0fD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkfD10YXJnZXRdOm5vdCg6YWN0aXZlKVt3ZWJr
aXR8PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmFjdGl2
ZSkiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgidGVzdGluZzpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKDEpIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoInRlc3Rpbmc6bnRoLWNoaWxkKDEpOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQoMSki
KS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiOm50aC1jaGlsZChuKTpub3QoOmFjdGl2ZSkgPiAjdGFyZ2V0IikubGVu
Z3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIpLmxlbmd0aCBp
cyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bnRoLWNoaWxkKG4pOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQobikgPiAjdGFyZ2V0Iiku
bGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIjpudGgtY2hpbGQobik6bm90KDphY3RpdmUpICN0YXJnZXQiKS5sZW5ndGgg
aXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
bnRoLWNoaWxkKG4pOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBp
cyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6LXdlYmtpdC1hbnkoOm5vdCg6YWN0aXZlKSkgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIq
IikubGVuZ3RoIC0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpIikubGVu
Z3RoIGlzIDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIioiKS5sZW5ndGggLSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqOm5vdCg6
aG92ZXIpIikubGVuZ3RoIGlzIDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKTpob3ZlciIpLmxlbmd0aCBpcyAwCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
aG92ZXI6bm90KDpob3ZlcikiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmhvdmVyOm5vdCg6aG92ZXIpOmhvdmVy
IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKTphY3RpdmUiKS5sZW5ndGggaXMgMAorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmFjdGl2
ZTpub3QoOmhvdmVyKSIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6YWN0aXZlOm5vdCg6aG92ZXIpOmFjdGl2ZSIp
Lmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm5vdCg6aG92ZXIpIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0YXJnZXQ6
bm90KDpob3ZlcikiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpI3RhcmdldCIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIjdGFyZ2V0Om5vdCg6aG92ZXIpI3RhcmdldCIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAi
cmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzOm5v
dCg6aG92ZXIpIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKS5hQ2xhc3MiKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLmFDbGFzczpub3QoOmhvdmVyKS5vdGhlckNsYXNzIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nb
d2Via2l0XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0XSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJbaWRdOm5vdCg6aG92ZXIpW3dlYmtpdF0iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0
LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQ9
cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKVt3ZWJraXQ9cm9ja3NdIikubGVuZ3Ro
IGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIltpZD10YXJnZXRdOm5vdCg6aG92ZXIpW3dlYmtpdD1yb2Nrc10iKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLmFDbGFzc1t3ZWJraXRePXJvXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0
Xj1yb10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiW2lkXj10YV06bm90KDpob3Zlcilbd2Via2l0Xj1yb10iKS5s
ZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQkPWtzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAi
cmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zl
cilbd2Via2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkJD1ldF06bm90KDpob3Zlcilbd2Via2l0
JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
bm90KDpob3Zlcilbd2Via2l0Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1
LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkKj1yZ106bm90KDpob3Zl
cilbd2Via2l0Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXR+PXJvY2tzXSIpLmxl
bmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lk
fj10YXJnZXRdOm5vdCg6aG92ZXIpW3dlYmtpdH49cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9y
IGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xh
c3Nbd2Via2l0fD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpW3dlYmtpdHw9cm9j
a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZHw9dGFyZ2V0XTpub3QoOmhvdmVyKVt3ZWJraXR8PXJvY2tz
XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmhvdmVyKSIpLmxlbmd0
aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCJ0ZXN0aW5nOm5vdCg6aG92ZXIpOm50aC1jaGlsZCgxKSIpLmxlbmd0aCBpcyAxCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0
ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmhvdmVyKTpudGgtY2hpbGQoMSkiKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiOm50aC1jaGlsZChuKTpub3QoOmhvdmVyKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5v
dCg6aG92ZXIpOm50aC1jaGlsZChuKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGls
ZChuKTpub3QoOmhvdmVyKTpudGgtY2hpbGQobikgPiAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpu
dGgtY2hpbGQobik6bm90KDpob3ZlcikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAi
cmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zl
cik6bnRoLWNoaWxkKG4pICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAy
LCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGlsZChuKTpub3Qo
OmhvdmVyKTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6LXdlYmtpdC1hbnko
Om5vdCg6aG92ZXIpKSAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwg
MykiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbm90LWFjdGl2ZS1ob3Zlci1x
dWlya3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUtaG92ZXIt
cXVpcmtzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ0MmMwOTkxYTQzODAzYTViMGUyNzVlYWYzZDY4NWRk
M2QxMDQ4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25v
dC1hY3RpdmUtaG92ZXItcXVpcmtzLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ub3QtaG92ZXItYWN0aXZlLXF1aXJrcy11dGlsaXR5
LmpzIj48L3NjcmlwdD4KKzxzdHlsZSBpZD0idGVzdFN0eWxlIj4KKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzx0ZXN0aW5nIGlkPSJ0YXJnZXQiIGNsYXNzPSJhQ2xhc3Mgb3RoZXJDbGFzcyIg
d2Via2l0PSJyb2NrcyIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6Z3JlZW47IHdpZHRoOjIwMHB4
OyBoZWlnaHQ6MjAwcHg7ZGlzcGxheTpibG9jazsiPjwvdGVzdGluZz4KKzxkaXYgaWQ9InN0YXJ0
IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpncmF5OyBoZWlnaHQ6MjAwcHg7IHdpZHRoOjIwMHB4
OyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjsgY29sb3I6d2hpdGU7Ij5TVEFSVDwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGVzdCB0aGUgOm5vdCg6YWN0aXZlKSBhbmQgOm5vdCg6aG92ZXIpIHNl
bGVjdG9yIHdoZW4gdGhlIGRvY3VtZW50IGlzIGluIHF1aXJrcyBtb2RlLiBUbyB0ZXN0IG1hbnVh
bGx5LCBlbnN1cmUgdGhhdCBub3QgbW92ZSB0aGUgY3Vyc29yIG92ZXIgdGhlIGdyZWVuIHJlY3Rh
bmdsZSBhbmQgcHJlc3MgdGhlIGdyYXkgU1RBUlQgZGl2IHVudGlsIHRoZSB0ZXN0IGlzIGZpbmlz
aGVkLicpOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgdmFyIHN0YXJ0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0Jyk7CisgICAgdmFyIHggPSBzdGFydC5vZmZzZXRM
ZWZ0ICsgc3RhcnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciB5ID0gc3RhcnQub2Zmc2V0VG9w
ICsgc3RhcnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICB0ZXN0KCc6YWN0aXZlJyk7
CisgICAgdGVzdCgnOmhvdmVyJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpCit9IGVsc2Ug
eworICAgIC8vIEZvciBzb21lIHJlYXNvbnMsIHRoZSB0ZXN0IGRvZXMgbm90IHdvcmsgd2VsbCB3
aXRob3V0IHRoZSB0aW1lb3V0IG9uIEZpcmVmb3guCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3N0YXJ0JykuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZXYpIHsK
KyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0KCc6YWN0
aXZlJyk7CisgICAgICAgICAgICB0ZXN0KCc6aG92ZXInKTsKKyAgICAgICAgfSwgMjUwKTsKKyAg
ICB9KTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmMxZDYwZmJhOTEwYzQ2NWU4NmE5Y2I0MjA2NGMxMzliMGRkZjkwOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUt
aG92ZXItc3RyaWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3MCBAQAorU1RBUlQKK1Rlc3Qg
dGhlIDpub3QoOmFjdGl2ZSkgYW5kIDpub3QoOmhvdmVyKSBzZWxlY3RvciB3aGVuIHRoZSBkb2N1
bWVudCBpcyBpbiBzdHJpY3QgbW9kZS4gVG8gdGVzdCBtYW51YWxseSwgZW5zdXJlIHRoYXQgbm90
IG1vdmUgdGhlIGN1cnNvciBvdmVyIHRoZSBncmVlbiByZWN0YW5nbGUgYW5kIHByZXNzIHRoZSBn
cmF5IFNUQVJUIGRpdiB1bnRpbCB0aGUgdGVzdCBpcyBmaW5pc2hlZC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGVzdGlu
Zzpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3RhcmdldDpub3QoOmFjdGl2ZSkiKS5sZW5n
dGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiOm5vdCg6YWN0aXZlKSN0YXJnZXQiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJn
Yig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3RhcmdldDpub3Qo
OmFjdGl2ZSkjdGFyZ2V0IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3M6bm90KDphY3RpdmUpIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSkuYUNsYXNzIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3M6bm90
KDphY3RpdmUpLm90aGVyQ2xhc3MiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2
KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXRdIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAi
cmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWRdOm5vdCg6
YWN0aXZlKVt3ZWJraXRdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0PXJvY2tzXSIpLmxl
bmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6bm90KDphY3RpdmUpW3dlYmtpdD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lk
PXRhcmdldF06bm90KDphY3RpdmUpW3dlYmtpdD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFz
c1t3ZWJraXRePXJvXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDphY3RpdmUpW3dlYmtpdF49cm9dIiku
bGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIltpZF49dGFdOm5vdCg6YWN0aXZlKVt3ZWJraXRePXJvXSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIuYUNsYXNzW3dlYmtpdCQ9a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwg
NSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Vi
a2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkJD1ldF06bm90KDphY3RpdmUpW3dlYmtpdCQ9a3Nd
IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6
YWN0aXZlKVt3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQqPXJnXTpub3QoOmFjdGl2ZSlb
d2Via2l0Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXR+PXJvY2tzXSIpLmxlbmd0
aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCI6bm90KDphY3RpdmUpW3dlYmtpdH49cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9y
IGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49
dGFyZ2V0XTpub3QoOmFjdGl2ZSlbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFz
c1t3ZWJraXR8PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDphY3RpdmUpW3dlYmtpdHw9cm9j
a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZHw9dGFyZ2V0XTpub3QoOmFjdGl2ZSlbd2Via2l0fD1yb2Nr
c10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgidGVzdGluZzpudGgtY2hpbGQoMSk6bm90KDphY3RpdmUpIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoInRlc3Rpbmc6bm90KDphY3RpdmUpOm50aC1jaGlsZCgxKSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJ0ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKDEpIikubGVuZ3Ro
IGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIjpudGgtY2hpbGQobik6bm90KDphY3RpdmUpID4gI3RhcmdldCIpLmxlbmd0aCBpcyAw
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCI6bm90KDphY3RpdmUpOm50aC1jaGlsZChuKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50
aC1jaGlsZChuKTpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIpLmxlbmd0aCBp
cyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bnRoLWNoaWxkKG4pOm5vdCg6YWN0aXZlKSAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpu
b3QoOmFjdGl2ZSk6bnRoLWNoaWxkKG4pICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGls
ZChuKTpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKG4pICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOi13
ZWJraXQtYW55KDpub3QoOmFjdGl2ZSkpICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0
aCAtIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMg
MworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiKiIpLmxlbmd0aCAtIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIio6bm90KDphY3RpdmUp
IikubGVuZ3RoIGlzIDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoInRlc3Rpbmc6bm90KDpob3ZlcikiKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rhcmdl
dDpub3QoOmhvdmVyKSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3ZlcikjdGFyZ2V0IikubGVuZ3Ro
IGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0YXJnZXQ6bm90KDpob3ZlcikjdGFyZ2V0IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3M6
bm90KDpob3ZlcikiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpLmFDbGFzcyIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIuYUNsYXNzOm5vdCg6aG92ZXIpLm90aGVyQ2xhc3MiKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFz
c1t3ZWJraXRdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKVt3ZWJraXRdIikubGVuZ3RoIGlz
IDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIltpZF06bm90KDpob3Zlcilbd2Via2l0XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtp
dD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpW3dlYmtpdD1yb2Nrc10iKS5sZW5n
dGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiW2lkPXRhcmdldF06bm90KDpob3Zlcilbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIuYUNsYXNzW3dlYmtpdF49cm9dIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwg
NSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKVt3ZWJr
aXRePXJvXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWRePXRhXTpub3QoOmhvdmVyKVt3ZWJraXRePXJvXSIp
Lmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdCQ9a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhv
dmVyKVt3ZWJraXQkPWtzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQkPWV0XTpub3QoOmhvdmVyKVt3ZWJr
aXQkPWtzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdCo9Y2tdIikubGVuZ3RoIGlzIDEK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikp
LmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ijpub3QoOmhvdmVyKVt3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQs
IDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQqPXJnXTpub3QoOmhv
dmVyKVt3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdH49cm9ja3NdIiku
bGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKVt3ZWJraXR+PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJb
aWR+PXRhcmdldF06bm90KDpob3Zlcilbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFD
bGFzc1t3ZWJraXR8PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0fD1y
b2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiW2lkfD10YXJnZXRdOm5vdCg6aG92ZXIpW3dlYmtpdHw9cm9j
a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoInRlc3Rpbmc6bnRoLWNoaWxkKDEpOm5vdCg6aG92ZXIpIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoInRlc3Rpbmc6bm90KDpob3Zlcik6bnRoLWNoaWxkKDEpIikubGVuZ3RoIGlzIDEK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikp
LmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
InRlc3Rpbmc6bnRoLWNoaWxkKDEpOm5vdCg6aG92ZXIpOm50aC1jaGlsZCgxKSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bnRoLWNoaWxkKG4pOm5vdCg6aG92ZXIpID4gI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
bm90KDpob3Zlcik6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBp
cyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bnRoLWNo
aWxkKG4pOm5vdCg6aG92ZXIpOm50aC1jaGlsZChuKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSku
Y29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
Om50aC1jaGlsZChuKTpub3QoOmhvdmVyKSAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhv
dmVyKTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEs
IDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bnRoLWNoaWxkKG4pOm5v
dCg6aG92ZXIpOm50aC1jaGlsZChuKSAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjotd2Via2l0LWFu
eSg6bm90KDpob3ZlcikpICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAy
LCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0aCAtIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKSIpLmxlbmd0aCBpcyAzCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBp
cyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVu
Z3RoIC0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKjpub3QoOmhvdmVyKSIpLmxlbmd0aCBp
cyAzCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Vs
ZWN0b3JzL25vdC1hY3RpdmUtaG92ZXItc3RyaWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2Yjc4YzE5
MmMyMDBkYWE3OGE5MmUxZjE4NmQ3NmYwMGVhNjYzZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC5odG1sCkBAIC0w
LDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9ub3QtaG92ZXItYWN0aXZlLXN0cmljdC11dGlsaXR5LmpzIj48L3NjcmlwdD4K
KzxzdHlsZSBpZD0idGVzdFN0eWxlIj4KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzx0ZXN0
aW5nIGlkPSJ0YXJnZXQiIGNsYXNzPSJhQ2xhc3Mgb3RoZXJDbGFzcyIgd2Via2l0PSJyb2NrcyIg
c3R5bGU9ImJhY2tncm91bmQtY29sb3I6Z3JlZW47IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MjAwcHg7
ZGlzcGxheTpibG9jazsiPjwvdGVzdGluZz4KKzxkaXYgaWQ9InN0YXJ0IiBzdHlsZT0iYmFja2dy
b3VuZC1jb2xvcjpncmF5OyBoZWlnaHQ6MjAwcHg7IHdpZHRoOjIwMHB4OyBkaXNwbGF5OmJsb2Nr
OyB0ZXh0LWFsaWduOmNlbnRlcjsgY29sb3I6d2hpdGU7Ij5TVEFSVDwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdCB0aGUgOm5vdCg6YWN0aXZlKSBhbmQgOm5vdCg6aG92ZXIpIHNlbGVjdG9yIHdoZW4gdGhl
IGRvY3VtZW50IGlzIGluIHN0cmljdCBtb2RlLiBUbyB0ZXN0IG1hbnVhbGx5LCBlbnN1cmUgdGhh
dCBub3QgbW92ZSB0aGUgY3Vyc29yIG92ZXIgdGhlIGdyZWVuIHJlY3RhbmdsZSBhbmQgcHJlc3Mg
dGhlIGdyYXkgU1RBUlQgZGl2IHVudGlsIHRoZSB0ZXN0IGlzIGZpbmlzaGVkLicpOworCitpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgdmFyIHN0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3N0YXJ0Jyk7CisgICAgdmFyIHggPSBzdGFydC5vZmZzZXRMZWZ0ICsgc3RhcnQub2Zm
c2V0V2lkdGggLyAyOworICAgIHZhciB5ID0gc3RhcnQub2Zmc2V0VG9wICsgc3RhcnQub2Zmc2V0
SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKKyAgICB0ZXN0KCc6YWN0aXZlJyk7CisgICAgdGVzdCgnOmhv
dmVyJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpCit9IGVsc2UgeworICAgIC8vIEZvciBz
b21lIHJlYXNvbnMsIHRoZSB0ZXN0IGRvZXMgbm90IHdvcmsgd2VsbCB3aXRob3V0IHRoZSB0aW1l
b3V0IG9uIEZpcmVmb3guCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0JykuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZXYpIHsKKyAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0KCc6YWN0aXZlJyk7CisgICAgICAg
ICAgICB0ZXN0KCc6aG92ZXInKTsKKyAgICAgICAgfSwgMjUwKTsKKyAgICB9KTsKK30KKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9w
c2V1ZG8tY2xhc3Mtbm90LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3Jz
L3BzZXVkby1jbGFzcy1ub3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzN2JiMzhjZTUxYzQx
NjFmODhkZDNkY2M0ZjkwNDVjYjNlZmM0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Mtbm90LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI3IEBACitUaGUgcHNldWRvIGNsYXNzIDpub3QKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKKzpub3Qgc2VsZWN0b3IgbWF0Y2hlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MSIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigw
LCAwLCAwKSIKKzpub3Qgc2VsZWN0b3IgdW5tYXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQyIikpLmJhY2tncm91bmRDb2xvciBpcyAi
cmdiKDEsIDIsIDMpIgorbXVsdGlwbGUgOm5vdCBzZWxlY3RvciBtYXRjaGVkLgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQzIikpLmJhY2tncm91
bmRDb2xvciBpcyAicmdiKDIsIDMsIDQpIgorbXVsdGlwbGUgOm5vdCBzZWxlY3RvciBtYXRjaGVk
LgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ0
IikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDIsIDMsIDQpIgorbXVsdGlwbGUgOm5vdCBzZWxl
Y3RvciB1bm1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDUiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCis6bm90
IHdpdGggYmFja3RyYWNraW5nIG1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwg
MiwgMykiCis6bm90IHdpdGggYmFja3RyYWNraW5nIGZhaWxlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NyIpKS5iYWNrZ3JvdW5kQ29sb3Ig
aXMgInJnYigwLCAwLCAwKSIKKzpub3Qgd2l0aCBtYXhpbXVtIHJlZ2lzdGVycyBtYXRjaGVkLgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ4Iikp
LmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorOm5vdCB3aXRoIG1heGltdW0gcmVn
aXN0ZXJzIG1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDkiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE2MzEwNGI0OWFjMzY2ODE1M2U0OTJlYzMxM2RiMmQ2ZWQ3YTQ0NTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Mtbm90Lmh0bWwKQEAg
LTAsMCArMSwxNTMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
c3Bhbi50YXJnZXQgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDAsMCwwKTsKK30KK3NwYW4u
dGFyZ2V0LnJhYmJpdDpub3QoLmhvcnNlKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMSwy
LDMpOworfQorc3Bhbi50YXJnZXQ6bm90KC5yYWJiaXQpOm5vdCguaG9yc2UpIHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOnJnYigyLDMsNCk7Cit9CisKK3NwYW4udGFyZ2V0MSB7CisgICAgYmFja2dy
b3VuZC1jb2xvcjpyZ2IoMCwwLDApOworfQorYzpub3QoLm5nKSA+IGMgc3Bhbi50YXJnZXQxIHsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigxLDIsMyk7Cit9CisKK3NwYW4udGFyZ2V0MiB7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMCwwLDApOworfQorLyogTWF4aW11bSByZWdpc3RlciBj
YXNlICovCitkID4gZFtyZWw9ImRyaW5rIl1bZGF0YS1jb2NvYV1bZGF0YS1jYXBwdWNjaW5vXTpu
b3QoLm5nKSA+IGQgPiBkIHNwYW4udGFyZ2V0MiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2Io
MSwyLDMpOworfQorCitzcGFuLnRhcmdldDMgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDAs
MCwwKTsKK30KKy8qIE1heGltdW0gcmVnaXN0ZXIgY2FzZSAqLworZCA+IGQ6bm90KFtyZWw9ImRy
aW5rIl0pID4gZCA+IGQgc3Bhbi50YXJnZXQzIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigx
LDIsMyk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJkaXNwbGF5
Om5vbmUiPgorICAgIDwhLS0gc3Bhbi50YXJnZXQucmFiYml0Om5vdCguaG9yc2UpIC0tPgorICAg
IDx0YXJnZXQxPgorICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCByYWJiaXQgaG9yc2Ui
IGlkPSJ0YXJnZXQxIj48L3NwYW4+CisgICAgPC90YXJnZXQxPgorCisgICAgPCEtLSBzcGFuLnRh
cmdldC5yYWJiaXQ6bm90KC5ob3JzZSkgLS0+CisgICAgPHRhcmdldDI+CisgICAgICAgICAgICA8
c3BhbiBjbGFzcz0idGFyZ2V0IHJhYmJpdCBob3VzZSIgaWQ9InRhcmdldDIiPjwvc3Bhbj4KKyAg
ICA8L3RhcmdldDI+CisKKyAgICA8IS0tIHNwYW4udGFyZ2V0Om5vdCgucmFiYml0KTpub3QoLmhv
cnNlKSAtLT4KKyAgICA8dGFyZ2V0Mz4KKyAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQi
IGlkPSJ0YXJnZXQzIj48L3NwYW4+CisgICAgPC90YXJnZXQzPgorCisgICAgPCEtLSBzcGFuLnRh
cmdldDpub3QoLnJhYmJpdCk6bm90KC5ob3JzZSkgLS0+CisgICAgPHRhcmdldDQ+CisgICAgICAg
ICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IGhvdXNlIiBpZD0idGFyZ2V0NCI+PC9zcGFuPgorICAg
IDwvdGFyZ2V0ND4KKworICAgIDwhLS0gc3Bhbi50YXJnZXQ6bm90KC5yYWJiaXQpOm5vdCguaG9y
c2UpIC0tPgorICAgIDx0YXJnZXQ1PgorICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCBo
b3JzZSIgaWQ9InRhcmdldDUiPjwvc3Bhbj4KKyAgICA8L3RhcmdldDU+CisKKyAgICA8IS0tIGM6
bm90KC5uZykgPiBjIHNwYW4udGFyZ2V0MSAtLT4KKyAgICA8dGFyZ2V0Nj4KKyAgICAgICAgICAg
IDxjPiAgPCEtLSBNYXRjaGVkLiAtLT4KKyAgICAgICAgICAgICAgICA8YyBjbGFzcz0ibmciPiAg
PCEtLSBGYWlsZWQuIEJhY2t0cmFja2luZyBmcm9tIGhlcmUuIC0tPgorICAgICAgICAgICAgICAg
ICAgICA8Yz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQxIiBp
ZD0idGFyZ2V0NiI+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8L2M+CisgICAgICAgICAg
ICAgICAgPC9jPgorICAgICAgICAgICAgPC9jPgorICAgIDwvdGFyZ2V0Nj4KKworICAgIDwhLS0g
Yzpub3QoLm5nKSA+IGMgc3Bhbi50YXJnZXQxIC0tPgorICAgIDx0YXJnZXQ3PgorICAgICAgICAg
ICAgPGMgY2xhc3M9Im5nIj4gIDwhLS0gRmFpbGVkLiBCYWNrdHJhY2tpbmcgZnJvbSBoZXJlLiAt
LT4KKyAgICAgICAgICAgICAgICA8YyBjbGFzcz0ibmciPiAgPCEtLSBGYWlsZWQuIEJhY2t0cmFj
a2luZyBmcm9tIGhlcmUuIC0tPgorICAgICAgICAgICAgICAgICAgICA8YyBjbGFzcz0ibmciPiAg
PCEtLSBGYWlsZWQuIEJhY2t0cmFja2luZyBmcm9tIGhlcmUuIC0tPgorICAgICAgICAgICAgICAg
ICAgICAgICAgPGM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRh
cmdldDEiIGlkPSJ0YXJnZXQ3Ij48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2M+
CisgICAgICAgICAgICAgICAgICAgIDwvYz4KKyAgICAgICAgICAgICAgICA8L2M+CisgICAgICAg
ICAgICA8L2M+CisgICAgPC90YXJnZXQ3PgorCisgICAgPCEtLSBkID4gZFtkYXRhLWNvY29hXVtk
YXRhLWNhcHB1Y2Npbm9dOm5vdCgubmcpID4gZCA+IGQgc3Bhbi50YXJnZXQyIC0tPgorICAgIDx0
YXJnZXQ4PgorICAgICAgICA8ZD4gIDwhLS0gTWF0Y2hlZC4gLS0+CisgICAgICAgICAgICA8ZCBy
ZWw9ImRyaW5rIiBkYXRhLWNvY29hIGRhdGEtY2FwcHVjY2lubz4KKyAgICAgICAgICAgICAgICA8
ZCBkYXRhLWNvY29hIGRhdGEtY2FwcHVjY2lubyBjbGFzcz0ibmciPiAgPCEtLSBGYWlsZWQuIEJh
Y2t0cmFja2luZyBmcm9tIHRoZSB0YWlsLiAtLT4KKyAgICAgICAgICAgICAgICAgICAgPGQ+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
c3BhbiBjbGFzcz0idGFyZ2V0MiIgaWQ9InRhcmdldDgiPjwvc3Bhbj4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIDwvZD4KKyAgICAgICAgICAgICAgICAgICAgPC9kPgorICAgICAgICAgICAgICAg
IDwvZD4KKyAgICAgICAgICAgIDwvZD4KKyAgICAgICAgPC9kPgorICAgIDwvdGFyZ2V0OD4KKwor
ICAgIDwhLS0gIC0tPgorICAgIDx0YXJnZXQ5PgorICAgICAgICA8ZD4gIDwhLS0gTWF0Y2hlZC4g
LS0+CisgICAgICAgICAgICA8ZD4KKyAgICAgICAgICAgICAgICA8ZCByZWw9ImRyaW5rIj4gIDwh
LS0gRmFpbGVkLiBCYWNrdHJhY2tpbmcgZnJvbSB0aGUgdGFpbC4gLS0+CisgICAgICAgICAgICAg
ICAgICAgIDxkPgorICAgICAgICAgICAgICAgICAgICAgICAgPGQ+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldDMiIGlkPSJ0YXJnZXQ5Ij48L3NwYW4+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8L2Q+CisgICAgICAgICAgICAgICAgICAgIDwvZD4KKyAg
ICAgICAgICAgICAgICA8L2Q+CisgICAgICAgICAgICA8L2Q+CisgICAgICAgIDwvZD4KKyAgICA8
L3RhcmdldDk+Cis8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhlIHBz
ZXVkbyBjbGFzcyA6bm90Jyk7CisKK2RlYnVnKCI6bm90IHNlbGVjdG9yIG1hdGNoZWQuIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDEiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigwLCAwLCAwKScpOworCitk
ZWJ1ZygiOm5vdCBzZWxlY3RvciB1bm1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDIiKSkuYmFj
a2dyb3VuZENvbG9yJywgJ3JnYigxLCAyLCAzKScpOworCitkZWJ1ZygibXVsdGlwbGUgOm5vdCBz
ZWxlY3RvciBtYXRjaGVkLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQzIikpLmJhY2tncm91bmRDb2xvcics
ICdyZ2IoMiwgMywgNCknKTsKKworZGVidWcoIm11bHRpcGxlIDpub3Qgc2VsZWN0b3IgbWF0Y2hl
ZC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0NCIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDIsIDMsIDQp
Jyk7CisKK2RlYnVnKCJtdWx0aXBsZSA6bm90IHNlbGVjdG9yIHVubWF0Y2hlZC4iKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0NSIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVn
KCI6bm90IHdpdGggYmFja3RyYWNraW5nIG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYiKSku
YmFja2dyb3VuZENvbG9yJywgJ3JnYigxLCAyLCAzKScpOworCitkZWJ1ZygiOm5vdCB3aXRoIGJh
Y2t0cmFja2luZyBmYWlsZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDciKSkuYmFja2dyb3VuZENvbG9y
JywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygiOm5vdCB3aXRoIG1heGltdW0gcmVnaXN0ZXJz
IG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDgiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigx
LCAyLCAzKScpOworCitkZWJ1ZygiOm5vdCB3aXRoIG1heGltdW0gcmVnaXN0ZXJzIG1hdGNoZWQu
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldDkiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigxLCAyLCAzKScp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVj
dG9ycy9yZXNvdXJjZXMvbm90LWhvdmVyLWFjdGl2ZS1xdWlya3MtdXRpbGl0eS5qcyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3Jlc291cmNlcy9ub3QtaG92ZXItYWN0aXZlLXF1aXJrcy11
dGlsaXR5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiN2NhYjE1NDc2YjYzNGUzNDQzNTMzZDkyOWZiNjc0NmI3
ZjMyMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNv
dXJjZXMvbm90LWhvdmVyLWFjdGl2ZS1xdWlya3MtdXRpbGl0eS5qcwpAQCAtMCwwICsxLDk3IEBA
Cit2YXIgdGVzdENhc2VzID0gWworICAgIC8vIEhhdmluZyA6aG92ZXIgb3IgOmFjdGl2ZSBkb2Vz
IG5vdCBxdWFsaWZ5IHRoZSBwc2V1ZG8gY2xhc3MuCisgICAgWyJQTEFDRUhPTERFUjpob3ZlciIs
IGZhbHNlXSwKKyAgICBbIjpob3ZlclBMQUNFSE9MREVSIiwgZmFsc2VdLAorICAgIFsiOmhvdmVy
UExBQ0VIT0xERVI6aG92ZXIiLCBmYWxzZV0sCisgICAgWyJQTEFDRUhPTERFUjphY3RpdmUiLCBm
YWxzZV0sCisgICAgWyI6YWN0aXZlUExBQ0VIT0xERVIiLCBmYWxzZV0sCisgICAgWyI6YWN0aXZl
UExBQ0VIT0xERVI6YWN0aXZlIiwgZmFsc2VdLAorCisgICAgLy8gVGFnIHF1YWxpZnkgdGhlIHBz
ZXVkbyBjbGFzcy4KKyAgICBbInRlc3RpbmdQTEFDRUhPTERFUiIsIHRydWVdLAorCisgICAgLy8g
SWQgcXVhbGlmeSB0aGUgcHNldWRvIGNsYXNzLgorICAgIFsiI3RhcmdldFBMQUNFSE9MREVSIiwg
dHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUiN0YXJnZXQiLCB0cnVlXSwKKyAgICBbIiN0YXJnZXRQ
TEFDRUhPTERFUiN0YXJnZXQiLCB0cnVlXSwKKworICAgIC8vIENsYXNzIHF1YWxpZnkgdGhlIHBz
ZXVkbyBjbGFzcy4KKyAgICBbIi5hQ2xhc3NQTEFDRUhPTERFUiIsIHRydWVdLAorICAgIFsiUExB
Q0VIT0xERVIuYUNsYXNzIiwgdHJ1ZV0sCisgICAgWyIuYUNsYXNzUExBQ0VIT0xERVIub3RoZXJD
bGFzcyIsIHRydWVdLAorCisgICAgLy8gQW55IGF0dHJpYnV0ZSBmaWx0ZXIgcXVhbGlmeSB0aGUg
cHNldWRvIGNsYXNzLgorICAgIFsiLmFDbGFzc1t3ZWJraXRdIiwgdHJ1ZV0sCisgICAgWyJQTEFD
RUhPTERFUlt3ZWJraXRdIiwgdHJ1ZV0sCisgICAgWyJbaWRdUExBQ0VIT0xERVJbd2Via2l0XSIs
IHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIlBM
QUNFSE9MREVSW3dlYmtpdD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIltpZD10YXJnZXRdUExBQ0VI
T0xERVJbd2Via2l0PXJvY2tzXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdF49cm9d
IiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXRePXJvXSIsIHRydWVdLAorICAgIFsi
W2lkXj10YV1QTEFDRUhPTERFUlt3ZWJraXRePXJvXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNz
W3dlYmtpdCQ9a3NdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXQkPWtzXSIsIHRy
dWVdLAorICAgIFsiW2lkJD1ldF1QTEFDRUhPTERFUlt3ZWJraXQkPWtzXSIsIHRydWVdLAorCisg
ICAgWyIuYUNsYXNzW3dlYmtpdCo9Y2tdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJr
aXQqPWNrXSIsIHRydWVdLAorICAgIFsiW2lkKj1yZ11QTEFDRUhPTERFUlt3ZWJraXQqPWNrXSIs
IHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdH49cm9ja3NdIiwgdHJ1ZV0sCisgICAgWyJQ
TEFDRUhPTERFUlt3ZWJraXR+PXJvY2tzXSIsIHRydWVdLAorICAgIFsiW2lkfj10YXJnZXRdUExB
Q0VIT0xERVJbd2Via2l0fj1yb2Nrc10iLCB0cnVlXSwKKworICAgIFsiLmFDbGFzc1t3ZWJraXR8
PXJvY2tzXSIsIHRydWVdLAorICAgIFsiUExBQ0VIT0xERVJbd2Via2l0fD1yb2Nrc10iLCB0cnVl
XSwKKyAgICBbIltpZHw9dGFyZ2V0XVBMQUNFSE9MREVSW3dlYmtpdHw9cm9ja3NdIiwgdHJ1ZV0s
CisKKyAgICAvLyBBIHBzZXVkby1jbGFzcyBvdGhlciB0aGFuIDphY3RpdmUvOmhvdmVyIHF1YWxp
ZnkgdGhlIHBzZXVkbyBjbGFzcy4KKyAgICBbInRlc3Rpbmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xE
RVIiLCB0cnVlXSwKKyAgICBbInRlc3RpbmdQTEFDRUhPTERFUjpudGgtY2hpbGQoMSkiLCB0cnVl
XSwKKyAgICBbInRlc3Rpbmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xERVI6bnRoLWNoaWxkKDEpIiwg
dHJ1ZV0sCisgICAgLy8gU2FtZSB3aXRoIGNoaWxkLgorICAgIFsiOm50aC1jaGlsZChuKVBMQUNF
SE9MREVSID4gI3RhcmdldCIsIGZhbHNlXSwKKyAgICBbIlBMQUNFSE9MREVSOm50aC1jaGlsZChu
KSA+ICN0YXJnZXQiLCBmYWxzZV0sCisgICAgWyI6bnRoLWNoaWxkKG4pUExBQ0VIT0xERVI6bnRo
LWNoaWxkKG4pID4gI3RhcmdldCIsIGZhbHNlXSwKKyAgICAvLyBTYW1lIHdpdGggZGVzY2VuZGFu
dC4KKyAgICBbIjpudGgtY2hpbGQobilQTEFDRUhPTERFUiAjdGFyZ2V0IiwgZmFsc2VdLAorICAg
IFsiUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4pICN0YXJnZXQiLCBmYWxzZV0sCisgICAgWyI6bnRo
LWNoaWxkKG4pUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4pICN0YXJnZXQiLCBmYWxzZV0sCisKKyAg
ICBbIjotd2Via2l0LWFueShQTEFDRUhPTERFUikgI3RhcmdldCIsIGZhbHNlXSwKK107CisKK2Z1
bmN0aW9uIHRlc3RRdWVyeVNlbGVjdG9yKHNlbGVjdG9yLCBzaG91bGRNYXRjaCkgeworICAgIHNo
b3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCInICsgc2VsZWN0b3IgKyAnIikubGVu
Z3RoJywgc2hvdWxkTWF0Y2g/ICcxJyA6ICcwJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHlsaW5n
KHNlbGVjdG9yLCBzaG91bGRNYXRjaCkgeworICAgIHZhciB0ZXN0U3R5bGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdFN0eWxlJyk7CisgICAgdmFyIG5vTWF0Y2hTdHlsZSA9ICJyZ2Io
MSwgMiwgMykiOworICAgIHZhciBtYXRjaFN0eWxlID0gInJnYig0LCA1LCA2KSIKKyAgICB0ZXN0
U3R5bGUudGV4dENvbnRlbnQgPSAiI3RhcmdldCB7IGNvbG9yOiIgKyBub01hdGNoU3R5bGUgKyAi
IH0gIiArIHNlbGVjdG9yICsgIiB7IGNvbG9yOiIgKyBtYXRjaFN0eWxlICsgIiAhaW1wb3J0YW50
IH0iOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3InLCBzaG91bGRNYXRjaCA/IG1hdGNo
U3R5bGUgOiBub01hdGNoU3R5bGUpOworCisgICAgdGVzdFN0eWxlLnRleHRDb250ZW50ID0gIiI7
Cit9CisKK2Z1bmN0aW9uIHRlc3Qob3JpZ2luYWwpIHsKKyAgICB2YXIgcHNldWRvQ2xhc3MgPSAn
Om5vdCgnICsgb3JpZ2luYWwgKyAnKSc7CisKKyAgICAvLyBTaW5jZSBpbkZ1bmN0aW9uYWxQc2V1
ZG8gaXMgdHJ1ZSwgOmhvdmVyIGFuZCA6YWN0aXZlIGNhbiBiZSBtYXRjaGVkIGluIHF1aXJrcyBt
b2RlLgorICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVuZ3Ro
IC0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiJyArIHBzZXVkb0NsYXNzICsgJyIpLmxlbmd0
aCcsICczJyk7CisgICAgdGVzdFN0eWxpbmcocHNldWRvQ2xhc3MsIHRydWUpOworICAgIHNob3Vs
ZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVuZ3RoIC0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiKicgKyBwc2V1ZG9DbGFzcyArICciKS5sZW5ndGgnLCAnMycpOworICAg
IHRlc3RTdHlsaW5nKCcqJyArIHBzZXVkb0NsYXNzLCB0cnVlKTsKKworICAgIGZvciAodmFyIGkg
PSAwLCBsZW5ndGggPSB0ZXN0Q2FzZXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgdmFyIHNlbGVjdG9yID0gdGVzdENhc2VzW2ldWzBdLnJlcGxhY2UoJ1BMQUNFSE9MREVSJywg
cHNldWRvQ2xhc3MpCisgICAgICAgIHRlc3RRdWVyeVNlbGVjdG9yKHNlbGVjdG9yLCB0ZXN0Q2Fz
ZXNbaV1bMV0pOworICAgICAgICB0ZXN0U3R5bGluZyhzZWxlY3RvciwgdGVzdENhc2VzW2ldWzFd
KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNv
dXJjZXMvbm90LWhvdmVyLWFjdGl2ZS1zdHJpY3QtdXRpbGl0eS5qcyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2VsZWN0b3JzL3Jlc291cmNlcy9ub3QtaG92ZXItYWN0aXZlLXN0cmljdC11dGlsaXR5Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUxMzY0ZjBlMzFiZmNkZDc4ZGIyMTllZmQ3YTdiYzhkNzg3MTJlZDAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90
LWhvdmVyLWFjdGl2ZS1zdHJpY3QtdXRpbGl0eS5qcwpAQCAtMCwwICsxLDkwIEBACisvLyBJbiBz
dHJpY3QgbW9kZSwgdGhlcmUgaXMgbm8gcmVzdHJpY3Rpb24gb24gd2hlbiA6aG92ZXIgb3IgOmFj
dGl2ZSBjYW4gbWF0Y2guCit2YXIgdGVzdENhc2VzID0gWworICAgIC8vIFRhZyBuYW1lLgorICAg
IFsidGVzdGluZ1BMQUNFSE9MREVSIiwgdHJ1ZV0sCisKKyAgICAvLyBJZC4KKyAgICBbIiN0YXJn
ZXRQTEFDRUhPTERFUiIsIHRydWVdLAorICAgIFsiUExBQ0VIT0xERVIjdGFyZ2V0IiwgdHJ1ZV0s
CisgICAgWyIjdGFyZ2V0UExBQ0VIT0xERVIjdGFyZ2V0IiwgdHJ1ZV0sCisKKyAgICAvLyBDbGFz
cyBuYW1lLgorICAgIFsiLmFDbGFzc1BMQUNFSE9MREVSIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhP
TERFUi5hQ2xhc3MiLCB0cnVlXSwKKyAgICBbIi5hQ2xhc3NQTEFDRUhPTERFUi5vdGhlckNsYXNz
IiwgdHJ1ZV0sCisKKyAgICAvLyBBdHRyaWJ1dGUgZmlsdGVyLgorICAgIFsiLmFDbGFzc1t3ZWJr
aXRdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXRdIiwgdHJ1ZV0sCisgICAgWyJb
aWRdUExBQ0VIT0xERVJbd2Via2l0XSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdD1y
b2Nrc10iLCB0cnVlXSwKKyAgICBbIlBMQUNFSE9MREVSW3dlYmtpdD1yb2Nrc10iLCB0cnVlXSwK
KyAgICBbIltpZD10YXJnZXRdUExBQ0VIT0xERVJbd2Via2l0PXJvY2tzXSIsIHRydWVdLAorCisg
ICAgWyIuYUNsYXNzW3dlYmtpdF49cm9dIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJr
aXRePXJvXSIsIHRydWVdLAorICAgIFsiW2lkXj10YV1QTEFDRUhPTERFUlt3ZWJraXRePXJvXSIs
IHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdCQ9a3NdIiwgdHJ1ZV0sCisgICAgWyJQTEFD
RUhPTERFUlt3ZWJraXQkPWtzXSIsIHRydWVdLAorICAgIFsiW2lkJD1ldF1QTEFDRUhPTERFUlt3
ZWJraXQkPWtzXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdCo9Y2tdIiwgdHJ1ZV0s
CisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXQqPWNrXSIsIHRydWVdLAorICAgIFsiW2lkKj1yZ11Q
TEFDRUhPTERFUlt3ZWJraXQqPWNrXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdH49
cm9ja3NdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXR+PXJvY2tzXSIsIHRydWVd
LAorICAgIFsiW2lkfj10YXJnZXRdUExBQ0VIT0xERVJbd2Via2l0fj1yb2Nrc10iLCB0cnVlXSwK
KworICAgIFsiLmFDbGFzc1t3ZWJraXR8PXJvY2tzXSIsIHRydWVdLAorICAgIFsiUExBQ0VIT0xE
RVJbd2Via2l0fD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIltpZHw9dGFyZ2V0XVBMQUNFSE9MREVS
W3dlYmtpdHw9cm9ja3NdIiwgdHJ1ZV0sCisKKyAgICAvLyBQc2V1ZG8tY2xhc3Mgb3RoZXIgdGhh
biA6YWN0aXZlLzpob3Zlci4KKyAgICBbInRlc3Rpbmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xERVIi
LCB0cnVlXSwKKyAgICBbInRlc3RpbmdQTEFDRUhPTERFUjpudGgtY2hpbGQoMSkiLCB0cnVlXSwK
KyAgICBbInRlc3Rpbmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xERVI6bnRoLWNoaWxkKDEpIiwgdHJ1
ZV0sCisgICAgLy8gU2FtZSB3aXRoIGNoaWxkIHJlbGF0aW9uLgorICAgIFsiOm50aC1jaGlsZChu
KVBMQUNFSE9MREVSID4gI3RhcmdldCIsIGZhbHNlXSwKKyAgICBbIlBMQUNFSE9MREVSOm50aC1j
aGlsZChuKSA+ICN0YXJnZXQiLCBmYWxzZV0sCisgICAgWyI6bnRoLWNoaWxkKG4pUExBQ0VIT0xE
RVI6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIsIGZhbHNlXSwKKyAgICAvLyBTYW1lIHdpdGggZGVz
Y2VuZGFudCByZWxhdGlvbi4KKyAgICBbIjpudGgtY2hpbGQobilQTEFDRUhPTERFUiAjdGFyZ2V0
IiwgZmFsc2VdLAorICAgIFsiUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4pICN0YXJnZXQiLCBmYWxz
ZV0sCisgICAgWyI6bnRoLWNoaWxkKG4pUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4pICN0YXJnZXQi
LCBmYWxzZV0sCisKKyAgICBbIjotd2Via2l0LWFueShQTEFDRUhPTERFUikgI3RhcmdldCIsIGZh
bHNlXSwKK107CisKK2Z1bmN0aW9uIHRlc3RRdWVyeVNlbGVjdG9yKHNlbGVjdG9yLCBzaG91bGRN
YXRjaCkgeworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCInICsgc2Vs
ZWN0b3IgKyAnIikubGVuZ3RoJywgc2hvdWxkTWF0Y2g/ICcxJyA6ICcwJyk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RTdHlsaW5nKHNlbGVjdG9yLCBzaG91bGRNYXRjaCkgeworICAgIHZhciB0ZXN0U3R5
bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdFN0eWxlJyk7CisgICAgdmFyIG5vTWF0
Y2hTdHlsZSA9ICJyZ2IoMSwgMiwgMykiOworICAgIHZhciBtYXRjaFN0eWxlID0gInJnYig0LCA1
LCA2KSIKKyAgICB0ZXN0U3R5bGUudGV4dENvbnRlbnQgPSAiI3RhcmdldCB7IGNvbG9yOiIgKyBu
b01hdGNoU3R5bGUgKyAiIH0gIiArIHNlbGVjdG9yICsgIiB7IGNvbG9yOiIgKyBtYXRjaFN0eWxl
ICsgIiAhaW1wb3J0YW50IH0iOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3InLCBzaG91
bGRNYXRjaCA/IG1hdGNoU3R5bGUgOiBub01hdGNoU3R5bGUpOworCisgICAgdGVzdFN0eWxlLnRl
eHRDb250ZW50ID0gIiI7Cit9CisKK2Z1bmN0aW9uIHRlc3Qob3JpZ2luYWwpIHsKKyAgICB2YXIg
cHNldWRvQ2xhc3MgPSAnOm5vdCgnICsgb3JpZ2luYWwgKyAnKSc7CisgICAgZm9yICh2YXIgaSA9
IDAsIGxlbmd0aCA9IHRlc3RDYXNlcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAg
ICB2YXIgc2VsZWN0b3IgPSB0ZXN0Q2FzZXNbaV1bMF0ucmVwbGFjZSgnUExBQ0VIT0xERVInLCBw
c2V1ZG9DbGFzcykKKyAgICAgICAgdGVzdFF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IsIHRlc3RDYXNl
c1tpXVsxXSk7CisgICAgICAgIHRlc3RTdHlsaW5nKHNlbGVjdG9yLCB0ZXN0Q2FzZXNbaV1bMV0p
OworICAgIH0KKworICAgIC8vIEluIHN0cmljdCBtb2RlLCBubyB0YWcgbmFtZSBvciB0aGUgdW5p
dmVyc2FsIHNlbGVjdG9yIGFsc28gd29yay4gVGhpcyBpcyB0ZXN0ZWQgc2VwYXJhdGVseSBiZWNh
dXNlIHRob3NlIHNlbGVjdG9ycyBtYXRjaAorICAgIC8vIGV2ZXJ5IGFuY2VzdG9yIG9mIHRoZSB0
YXJnZXQuCisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5sZW5n
dGggLSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCInICsgcHNldWRvQ2xhc3MgKyAnIikubGVu
Z3RoJywgJzMnKTsKKyAgICB0ZXN0U3R5bGluZyhwc2V1ZG9DbGFzcywgdHJ1ZSk7CisgICAgc2hv
dWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5sZW5ndGggLSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIqJyArIHBzZXVkb0NsYXNzICsgJyIpLmxlbmd0aCcsICczJyk7Cisg
ICAgdGVzdFN0eWxpbmcoJyonICsgcHNldWRvQ2xhc3MsIHRydWUpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232343</attachid>
            <date>2014-06-01 08:34:40 -0700</date>
            <delta_ts>2014-06-01 21:57:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133314-20140602003449.patch</filename>
            <type>text/plain</type>
            <size>70997</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWIzNmJiZGZlZjdmYzM1
OTRmZDU3NGMyZmE0MDlkYjg4OGExNGI5Yy4uNTkyOTdhMTIyMTdiYjk3ODAxZDQ1ZmQ3ZGNkNGY5
MmMxY2E3NzhmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTAxICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IGFk
ZCBzdXBwb3J0IGZvciB0aGUgIm5vdCIgcHNldWRvIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMzMTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgOm5vdCBwc2V1ZG8gY2xhc3Mgc3VwcG9y
dCB0byBDU1MgSklULiBDdXJyZW50IGltcGxlbWVudGF0aW9uCisgICAgICAgIGRvZXNuJ3Qgc3Vw
cG9ydCB2aXNpdGVkTWF0Y2hUeXBlLiBTbyB3aGVuIGxpbmsgcHNldWRvIGNsYXNzIGFwcGVhcnMg
aW4KKyAgICAgICAgOm5vdCBzdWIgZnJhZ21lbnQsIGZhbGxiYWNrIHRvIHRoZSBub24tSklUIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZl
LWhvdmVyLXF1aXJrcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NlbGVjdG9ycy9ub3QtYWN0
aXZlLWhvdmVyLXN0cmljdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NlbGVjdG9ycy9wc2V1
ZG8tY2xhc3Mtbm90Lmh0bWwKKworICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb0NsYXNzVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rv
ckNvbXBpbGVyOjpjb25zdHJ1Y3RGcmFnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JDb21waWxlcjo6bWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdG9yQ29tcGlsZXI6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29t
cGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpnZW5lcmF0ZUVsZW1lbnREYXRhTWF0Y2hpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRJc05vdE1h
dGNoZWRUb05lZ2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNl
bGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKTogRGVs
ZXRlZC4KKwogMjAxNC0wNS0zMCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKFdlYktpdDIpOiBzcGFjZSBzcGFjZSB0byBpbnNlcnQgcGVy
aW9kIGRvZXNuJ3Qgd29yayBpbiB3ZWIgZm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5jcHAKaW5kZXggNzI1YzQ5NjZhNGE1OWE5ODdmMGQ3NmJhMTgyNjgwNGIy
Zjg3OTFiYi4uYmJhMjMyYzAxZmY3NGI3OTMyYjY1NGM0ZDVlZGIyZmUzNzQ2ZDA0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3Iu
aCIKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiRWxlbWVudERhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKQEAg
LTE1NSw2ICsxNTYsNyBAQCBzdHJ1Y3QgU2VsZWN0b3JGcmFnbWVudCB7CiAgICAgVmVjdG9yPEpT
Qzo6RnVuY3Rpb25QdHI+IHVub3B0aW1pemVkUHNldWRvQ2xhc3NlczsKICAgICBWZWN0b3I8QXR0
cmlidXRlTWF0Y2hpbmdJbmZvPiBhdHRyaWJ1dGVzOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8aW50
LCBpbnQ+PiBudGhDaGlsZGZpbHRlcnM7CisgICAgVmVjdG9yPFNlbGVjdG9yRnJhZ21lbnQ+IG5v
dEZpbHRlcnM7CiAKICAgICBib29sIGluRnVuY3Rpb25hbFBzZXVkb0NsYXNzOwogfTsKQEAgLTE4
NCw3ICsxODYsNiBAQCBjbGFzcyBTZWxlY3RvckNvZGVHZW5lcmF0b3IgewogICAgIHN0YXRpYyBj
b25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgY2hlY2tpbmdDb250ZXh0UmVnaXN0ZXI7CiAgICAg
c3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlcjsKIAot
ICAgIHZvaWQgY29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCk7CiAgICAgdm9pZCBnZW5l
cmF0ZVNlbGVjdG9yQ2hlY2tlcigpOwogCiAgICAgLy8gRWxlbWVudCByZWxhdGlvbnMgdHJlZSB3
YWxrZXIuCkBAIC0yMjksNiArMjMwLDcgQEAgY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIHsK
ICAgICB2b2lkIGdlbmVyYXRlRWxlbWVudEhhc0NsYXNzZXMoQXNzZW1ibGVyOjpKdW1wTGlzdCYg
ZmFpbHVyZUNhc2VzLCBjb25zdCBMb2NhbFJlZ2lzdGVyJiBlbGVtZW50RGF0YUFkZHJlc3MsIGNv
bnN0IFZlY3Rvcjxjb25zdCBBdG9taWNTdHJpbmdJbXBsKj4mIGNsYXNzTmFtZXMpOwogICAgIHZv
aWQgZ2VuZXJhdGVFbGVtZW50SXNMaW5rKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNl
cyk7CiAgICAgdm9pZCBnZW5lcmF0ZUVsZW1lbnRJc050aENoaWxkKEFzc2VtYmxlcjo6SnVtcExp
c3QmIGZhaWx1cmVDYXNlcywgY29uc3QgU2VsZWN0b3JGcmFnbWVudCYpOworICAgIHZvaWQgZ2Vu
ZXJhdGVFbGVtZW50SXNOb3RNYXRjaGVkVG9OZWdhdGlvbihBc3NlbWJsZXI6Okp1bXBMaXN0JiBm
YWlsdXJlQ2FzZXMsIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmKTsKICAgICB2b2lkIGdlbmVyYXRl
RWxlbWVudElzUm9vdChBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpOwogICAgIHZv
aWQgZ2VuZXJhdGVFbGVtZW50SXNUYXJnZXQoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNh
c2VzKTsKIApAQCAtMjQyLDcgKzI0NCw3IEBAIGNsYXNzIFNlbGVjdG9yQ29kZUdlbmVyYXRvciB7
CiAgICAgYm9vbCBnZW5lcmF0ZVByb2xvZ3VlKCk7CiAgICAgdm9pZCBnZW5lcmF0ZUVwaWxvZ3Vl
KCk7CiAgICAgVmVjdG9yPFN0YWNrQWxsb2NhdG9yOjpTdGFja1JlZmVyZW5jZT4gbV9wcm9sb2d1
ZVN0YWNrUmVmZXJlbmNlczsKLSAgICAKKwogICAgIEFzc2VtYmxlciBtX2Fzc2VtYmxlcjsKICAg
ICBSZWdpc3RlckFsbG9jYXRvciBtX3JlZ2lzdGVyQWxsb2NhdG9yOwogICAgIFN0YWNrQWxsb2Nh
dG9yIG1fc3RhY2tBbGxvY2F0b3I7CkBAIC0yNzQsNiArMjc2LDEwIEBAIGNsYXNzIFNlbGVjdG9y
Q29kZUdlbmVyYXRvciB7CiBjb25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgU2VsZWN0b3JDb2Rl
R2VuZXJhdG9yOjpjaGVja2luZ0NvbnRleHRSZWdpc3RlciA9IEpTQzo6R1BSSW5mbzo6YXJndW1l
bnRHUFIxOwogY29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIFNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Y2FsbEZyYW1lUmVnaXN0ZXIgPSBKU0M6OkdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyOwog
CitzdGF0aWMgRnVuY3Rpb25UeXBlIGNvbnN0cnVjdEZyYWdtZW50cyhjb25zdCBDU1NTZWxlY3Rv
ciogcm9vdFNlbGVjdG9yLCBTZWxlY3RvckNvbnRleHQsIFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBz
ZWxlY3RvckZyYWdtZW50cyk7CisKK3N0YXRpYyB2b2lkIGNvbXB1dGVCYWNrdHJhY2tpbmdJbmZv
cm1hdGlvbihTZWxlY3RvckZyYWdtZW50TGlzdCYgc2VsZWN0b3JGcmFnbWVudHMsIGJvb2wmIG5l
ZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCk7CisKIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0
dXMgY29tcGlsZVNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKiBsYXN0U2VsZWN0b3IsIEpTQzo6
Vk0qIHZtLCBTZWxlY3RvckNvbnRleHQgc2VsZWN0b3JDb250ZXh0LCBKU0M6Ok1hY3JvQXNzZW1i
bGVyQ29kZVJlZiYgY29kZVJlZikKIHsKICAgICBpZiAoIXZtLT5jYW5Vc2VKSVQoKSkKQEAgLTQw
Miw2ICs0MDgsMzkgQEAgc3RhdGljIGlubGluZSBGdW5jdGlvblR5cGUgYWRkUHNldWRvQ2xhc3NU
eXBlKGNvbnN0IENTU1NlbGVjdG9yJiBzZWxlY3RvciwgU2VsZWMKICAgICAgICAgICAgICAgICBy
ZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CiAgICAgICAgICAgICBy
ZXR1cm4gRnVuY3Rpb25UeXBlOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0Owog
ICAgICAgICB9CisKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc05vdDoKKyAgICAg
ICAgeworICAgICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QgPSBz
ZWxlY3Rvci5zZWxlY3Rvckxpc3QoKTsKKworICAgICAgICAgICAgaWYgKCFzZWxlY3Rvckxpc3Qp
CisgICAgICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0aGlu
ZzsKKworICAgICAgICAgICAgU2VsZWN0b3JGcmFnbWVudExpc3Qgbm90RnJhZ21lbnRzOworICAg
ICAgICAgICAgRnVuY3Rpb25UeXBlIGZ1bmN0aW9uVHlwZSA9IGNvbnN0cnVjdEZyYWdtZW50cyhz
ZWxlY3Rvckxpc3QtPmZpcnN0KCksIHNlbGVjdG9yQ29udGV4dCwgbm90RnJhZ21lbnRzKTsKKwor
ICAgICAgICAgICAgLy8gU2luY2UgdGhpcyBpcyBuZWdhdGlvbiBwc2V1ZG8gY2xhc3MsIENhbm5v
dE1hdGNoQW55dGhpbmcgaW1wbGllcyB0aGlzIGZpbHRlciBhbHdheXMgcGFzc2VzLgorICAgICAg
ICAgICAgaWYgKGZ1bmN0aW9uVHlwZSA9PSBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhp
bmcpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JD
aGVja2VyOworCisgICAgICAgICAgICBpZiAoZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6
Q2Fubm90Q29tcGlsZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25UeXBlOworCisg
ICAgICAgICAgICBBU1NFUlQobm90RnJhZ21lbnRzLnNpemUoKSA9PSAxKTsKKyAgICAgICAgICAg
IGlmIChub3RGcmFnbWVudHMuc2l6ZSgpICE9IDEpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZ1
bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZTsKKworICAgICAgICAgICAgU2VsZWN0b3JGcmFnbWVu
dCBzdWJGcmFnbWVudCA9IG5vdEZyYWdtZW50cy5maXJzdCgpOworICAgICAgICAgICAgc3ViRnJh
Z21lbnQuaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3MgPSB0cnVlOworCisgICAgICAgICAgICAvLyBG
SVhNRTogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBvcnQgdmlzaXRlZE1hdGNoVHlwZS4KKyAgICAg
ICAgICAgIGlmIChzdWJGcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmNvbnRhaW5zKENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0xpbmspKQorICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6
OkNhbm5vdENvbXBpbGU7CisKKyAgICAgICAgICAgIGZyYWdtZW50Lm5vdEZpbHRlcnMuYXBwZW5k
KHN1YkZyYWdtZW50KTsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvblR5cGU7CisgICAgICAg
IH0KKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTQyMSw4ICs0NjAs
MTYgQEAgaW5saW5lIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9y
KGNvbnN0IENTU1NlbGVjdG9yKiByb290U2VsZWMKICAgICBkYXRhTG9nRigiQ29tcGlsaW5nIFwi
JXNcIlxuIiwgbV9vcmlnaW5hbFNlbGVjdG9yLT5zZWxlY3RvclRleHQoKS51dGY4KCkuZGF0YSgp
KTsKICNlbmRpZgogCisgICAgbV9mdW5jdGlvblR5cGUgPSBjb25zdHJ1Y3RGcmFnbWVudHMocm9v
dFNlbGVjdG9yLCBtX3NlbGVjdG9yQ29udGV4dCwgbV9zZWxlY3RvckZyYWdtZW50cyk7CisgICAg
aWYgKG1fZnVuY3Rpb25UeXBlICE9IEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZSAmJiBtX2Z1
bmN0aW9uVHlwZSAhPSBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmcpCisgICAgICAg
IGNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbihtX3NlbGVjdG9yRnJhZ21lbnRzLCBtX25l
ZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCk7Cit9CisKK3N0YXRpYyBGdW5jdGlvblR5cGUg
Y29uc3RydWN0RnJhZ21lbnRzKGNvbnN0IENTU1NlbGVjdG9yKiByb290U2VsZWN0b3IsIFNlbGVj
dG9yQ29udGV4dCBzZWxlY3RvckNvbnRleHQsIFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3Rv
ckZyYWdtZW50cykKK3sKICAgICBTZWxlY3RvckZyYWdtZW50IGZyYWdtZW50OwogICAgIEZyYWdt
ZW50UmVsYXRpb24gcmVsYXRpb25Ub1ByZXZpb3VzRnJhZ21lbnQgPSBGcmFnbWVudFJlbGF0aW9u
OjpSaWdodG1vc3Q7CisgICAgRnVuY3Rpb25UeXBlIGZ1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlw
ZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwogICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIHNl
bGVjdG9yID0gcm9vdFNlbGVjdG9yOyBzZWxlY3Rvcjsgc2VsZWN0b3IgPSBzZWxlY3Rvci0+dGFn
SGlzdG9yeSgpKSB7CiAgICAgICAgIHN3aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6VGFnOgpAQCAtNDMzLDggKzQ4MCw3IEBAIGlubGluZSBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcihjb25zdCBDU1NTZWxlY3Rv
ciogcm9vdFNlbGVjCiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGlkID0gc2VsZWN0
b3ItPnZhbHVlKCk7CiAgICAgICAgICAgICBpZiAoZnJhZ21lbnQuaWQpIHsKICAgICAgICAgICAg
ICAgICBpZiAoaWQgIT0gKmZyYWdtZW50LmlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fZnVu
Y3Rpb25UeXBlID0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwotICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5
cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICAgICAgZnJhZ21lbnQuaWQgPSAmKHNlbGVjdG9yLT52YWx1ZSgp
KTsKQEAgLTQ0NCwyMiArNDkwLDIwIEBAIGlubGluZSBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OlNl
bGVjdG9yQ29kZUdlbmVyYXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9vdFNlbGVjCiAgICAgICAg
ICAgICBmcmFnbWVudC5jbGFzc05hbWVzLmFwcGVuZChzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzOgotICAgICAgICAgICAgbV9mdW5jdGlvblR5cGUgPSBtb3N0UmVzdHJpY3RpdmVGdW5jdGlv
blR5cGUobV9mdW5jdGlvblR5cGUsIGFkZFBzZXVkb0NsYXNzVHlwZSgqc2VsZWN0b3IsIGZyYWdt
ZW50LCBtX3NlbGVjdG9yQ29udGV4dCkpOwotICAgICAgICAgICAgaWYgKG1fZnVuY3Rpb25UeXBl
ID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGlsZSB8fCBtX2Z1bmN0aW9uVHlwZSA9PSBGdW5j
dGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmcpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgZnVuY3Rpb25UeXBlID0gbW9zdFJlc3RyaWN0aXZlRnVuY3Rpb25UeXBlKGZ1
bmN0aW9uVHlwZSwgYWRkUHNldWRvQ2xhc3NUeXBlKCpzZWxlY3RvciwgZnJhZ21lbnQsIHNlbGVj
dG9yQ29udGV4dCkpOworICAgICAgICAgICAgaWYgKGZ1bmN0aW9uVHlwZSA9PSBGdW5jdGlvblR5
cGU6OkNhbm5vdENvbXBpbGUgfHwgZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90
TWF0Y2hBbnl0aGluZykKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25UeXBlOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6Okxpc3Q6CiAgICAgICAg
ICAgICBpZiAoc2VsZWN0b3ItPnZhbHVlKCkuY29udGFpbnMoJyAnKSkgewotICAgICAgICAgICAg
ICAgIG1fZnVuY3Rpb25UeXBlID0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwot
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25U
eXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgRkFM
TFRIUk9VR0g7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkJlZ2luOgogICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpFbmQ6CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRhaW46CiAg
ICAgICAgICAgICBpZiAoc2VsZWN0b3ItPnZhbHVlKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICAgICAgbV9mdW5jdGlvblR5cGUgPSBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlv
blR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmc7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBG
QUxMVEhST1VHSDsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6CkBAIC00NzQsMTAg
KzUxOCw5IEBAIGlubGluZSBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVy
YXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9vdFNlbGVjCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6VW5rbm93bjoKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgbV9mdW5jdGlvblR5cGUgPSBGdW5jdGlvblR5cGU6OkNh
bm5vdE1hdGNoQW55dGhpbmc7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1
cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwogICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9FbGVtZW50OgotICAgICAgICAgICAgZ290byBDYW5ub3RIYW5kbGVTZWxl
Y3RvcjsKKyAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGU7CiAg
ICAgICAgIH0KIAogICAgICAgICBDU1NTZWxlY3Rvcjo6UmVsYXRpb24gcmVsYXRpb24gPSBzZWxl
Y3Rvci0+cmVsYXRpb24oKTsKQEAgLTQ4NSwyOCArNTI4LDIzIEBAIGlubGluZSBTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9v
dFNlbGVjCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAocmVsYXRpb24gPT0g
Q1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQgJiYgIXNlbGVjdG9yLT5pc0xhc3RJblRhZ0hp
c3RvcnkoKSkKLSAgICAgICAgICAgIGdvdG8gQ2Fubm90SGFuZGxlU2VsZWN0b3I7CisgICAgICAg
ICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOwogCiAgICAgICAgIGlmIChy
ZWxhdGlvbiA9PSBDU1NTZWxlY3Rvcjo6RGlyZWN0QWRqYWNlbnQgfHwgcmVsYXRpb24gPT0gQ1NT
U2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQpIHsKICAgICAgICAgICAgIEZ1bmN0aW9uVHlwZSBy
ZWxhdGlvbkZ1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6U2VsZWN0b3JDaGVja2VyV2l0aENo
ZWNraW5nQ29udGV4dDsKLSAgICAgICAgICAgIGlmIChtX3NlbGVjdG9yQ29udGV4dCA9PSBTZWxl
Y3RvckNvbnRleHQ6OlF1ZXJ5U2VsZWN0b3IpCisgICAgICAgICAgICBpZiAoc2VsZWN0b3JDb250
ZXh0ID09IFNlbGVjdG9yQ29udGV4dDo6UXVlcnlTZWxlY3RvcikKICAgICAgICAgICAgICAgICBy
ZWxhdGlvbkZ1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2Vy
OwotICAgICAgICAgICAgbV9mdW5jdGlvblR5cGUgPSBzdGQ6Om1heChtX2Z1bmN0aW9uVHlwZSwg
cmVsYXRpb25GdW5jdGlvblR5cGUpOworICAgICAgICAgICAgZnVuY3Rpb25UeXBlID0gbW9zdFJl
c3RyaWN0aXZlRnVuY3Rpb25UeXBlKGZ1bmN0aW9uVHlwZSwgcmVsYXRpb25GdW5jdGlvblR5cGUp
OwogICAgICAgICB9CiAKICAgICAgICAgZnJhZ21lbnQucmVsYXRpb25Ub0xlZnRGcmFnbWVudCA9
IGZyYWdtZW50UmVsYXRpb25Gb3JTZWxlY3RvclJlbGF0aW9uKHJlbGF0aW9uKTsKICAgICAgICAg
ZnJhZ21lbnQucmVsYXRpb25Ub1JpZ2h0RnJhZ21lbnQgPSByZWxhdGlvblRvUHJldmlvdXNGcmFn
bWVudDsKICAgICAgICAgcmVsYXRpb25Ub1ByZXZpb3VzRnJhZ21lbnQgPSBmcmFnbWVudC5yZWxh
dGlvblRvTGVmdEZyYWdtZW50OwogCi0gICAgICAgIG1fc2VsZWN0b3JGcmFnbWVudHMuYXBwZW5k
KGZyYWdtZW50KTsKKyAgICAgICAgc2VsZWN0b3JGcmFnbWVudHMuYXBwZW5kKGZyYWdtZW50KTsK
ICAgICAgICAgZnJhZ21lbnQgPSBTZWxlY3RvckZyYWdtZW50KCk7CiAgICAgfQotCi0gICAgY29t
cHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCk7Ci0KLSAgICByZXR1cm47Ci1DYW5ub3RIYW5k
bGVTZWxlY3RvcjoKLSAgICBtX2Z1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29t
cGlsZTsKKyAgICByZXR1cm4gZnVuY3Rpb25UeXBlOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
YXR0cmlidXRlTmFtZVRlc3RpbmdSZXF1aXJlc05hbWVzcGFjZVJlZ2lzdGVyKGNvbnN0IENTU1Nl
bGVjdG9yJiBhdHRyaWJ1dGVTZWxlY3RvcikKQEAgLTUxOSwzNSArNTU3LDUzIEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBhdHRyaWJ1dGVWYWx1ZVRlc3RpbmdSZXF1aXJlc0Nhc2VGb2xkaW5nUmVnaXN0
ZXIoY29uc3QgQXR0cmliCiAgICAgcmV0dXJuICFhdHRyaWJ1dGVJbmZvLmNhbkRlZmF1bHRUb0Nh
c2VTZW5zaXRpdmVWYWx1ZU1hdGNoKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbWlu
aW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKGNvbnN0IFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxl
Y3RvckZyYWdtZW50cykKKy8vIFN0cmljdCBtaW5pbXVtIHRvIG1hdGNoIGFueXRoaW5nIGludGVy
ZXN0aW5nOgorLy8gRWxlbWVudCArIEJhY2t0cmFja2luZ1JlZ2lzdGVyICsgRWxlbWVudERhdGEg
KyBhIHBvaW50ZXIgdG8gdmFsdWVzICsgYW4gaW5kZXggb24gdGhhdCBwb2ludGVyICsgdGhlIHZh
bHVlIHdlIGV4cGVjdDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtUmVxdWlyZWRSZWdp
c3RlckNvdW50ID0gNjsKKy8vIEVsZW1lbnQgKyBFbGVtZW50RGF0YSArIHNjcmF0Y2hSZWdpc3Rl
ciArIGF0dHJpYnV0ZUFycmF5UG9pbnRlciArIGV4cGVjdGVkTG9jYWxOYW1lICsgKHF1YWxpZmll
ZE5hbWVJbXBsICYmIGV4cGVjdGVkVmFsdWUpLgorc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbmlt
dW1SZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JBdHRyaWJ1dGVGaWx0ZXIgPSA2OworCitzdGF0aWMg
aW5saW5lIHVuc2lnbmVkIG1pbmltdW1SZWdpc3RlclJlcXVpcmVtZW50cyhjb25zdCBTZWxlY3Rv
ckZyYWdtZW50JiBzZWxlY3RvckZyYWdtZW50KQogewotICAgIC8vIFN0cmljdCBtaW5pbXVtIHRv
IG1hdGNoIGFueXRoaW5nIGludGVyZXN0aW5nOgotICAgIC8vIEVsZW1lbnQgKyBCYWNrdHJhY2tp
bmdSZWdpc3RlciArIEVsZW1lbnREYXRhICsgYSBwb2ludGVyIHRvIHZhbHVlcyArIGFuIGluZGV4
IG9uIHRoYXQgcG9pbnRlciArIHRoZSB2YWx1ZSB3ZSBleHBlY3Q7Ci0gICAgdW5zaWduZWQgbWlu
aW11bSA9IDY7CisgICAgdW5zaWduZWQgbWluaW11bSA9IG1pbmltdW1SZXF1aXJlZFJlZ2lzdGVy
Q291bnQ7CisgICAgY29uc3QgVmVjdG9yPEF0dHJpYnV0ZU1hdGNoaW5nSW5mbz4mIGF0dHJpYnV0
ZXMgPSBzZWxlY3RvckZyYWdtZW50LmF0dHJpYnV0ZXM7CisKKyAgICB1bnNpZ25lZCBiYWNrdHJh
Y2tpbmdSZWdpc3RlclJlcXVpcmVtZW50cyA9IDA7CisgICAgaWYgKHNlbGVjdG9yRnJhZ21lbnQu
YmFja3RyYWNraW5nRmxhZ3MgJiBCYWNrdHJhY2tpbmdGbGFnOjpJbkNoYWluV2l0aERlc2NlbmRh
bnRUYWlsKQorICAgICAgICBiYWNrdHJhY2tpbmdSZWdpc3RlclJlcXVpcmVtZW50cyA9IDE7IC8v
IElmIHRoZXJlIGlzIGEgRGVzY2VuZGFudFRhaWwsIHRoZXJlIGlzIGEgYmFja3RyYWNraW5nIHJl
Z2lzdGVyLgogCiAgICAgLy8gQXR0cmlidXRlcyBjYXVzZSBzb21lIHJlZ2lzdGVyIHByZXNzdXJl
LgotICAgIGZvciAodW5zaWduZWQgc2VsZWN0b3JGcmFnbWVudEluZGV4ID0gMDsgc2VsZWN0b3JG
cmFnbWVudEluZGV4IDwgc2VsZWN0b3JGcmFnbWVudHMuc2l6ZSgpOyArK3NlbGVjdG9yRnJhZ21l
bnRJbmRleCkgewotICAgICAgICBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBzZWxlY3RvckZyYWdt
ZW50ID0gc2VsZWN0b3JGcmFnbWVudHNbc2VsZWN0b3JGcmFnbWVudEluZGV4XTsKLSAgICAgICAg
Y29uc3QgVmVjdG9yPEF0dHJpYnV0ZU1hdGNoaW5nSW5mbz4mIGF0dHJpYnV0ZXMgPSBzZWxlY3Rv
ckZyYWdtZW50LmF0dHJpYnV0ZXM7CisgICAgdW5zaWduZWQgYXR0cmlidXRlQ291bnQgPSBhdHRy
aWJ1dGVzLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGF0dHJpYnV0ZUluZGV4ID0gMDsgYXR0
cmlidXRlSW5kZXggPCBhdHRyaWJ1dGVDb3VudDsgKythdHRyaWJ1dGVJbmRleCkgeworICAgICAg
ICB1bnNpZ25lZCBhdHRyaWJ1dGVNaW5pbXVtID0gbWluaW11bVJlcXVpcmVkUmVnaXN0ZXJDb3Vu
dEZvckF0dHJpYnV0ZUZpbHRlciArIGJhY2t0cmFja2luZ1JlZ2lzdGVyUmVxdWlyZW1lbnRzOwog
Ci0gICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZUNvdW50ID0gYXR0cmlidXRlcy5zaXplKCk7Ci0g
ICAgICAgIGZvciAodW5zaWduZWQgYXR0cmlidXRlSW5kZXggPSAwOyBhdHRyaWJ1dGVJbmRleCA8
IGF0dHJpYnV0ZUNvdW50OyArK2F0dHJpYnV0ZUluZGV4KSB7Ci0gICAgICAgICAgICAvLyBFbGVt
ZW50ICsgRWxlbWVudERhdGEgKyBzY3JhdGNoUmVnaXN0ZXIgKyBhdHRyaWJ1dGVBcnJheVBvaW50
ZXIgKyBleHBlY3RlZExvY2FsTmFtZSArIChxdWFsaWZpZWROYW1lSW1wbCAmJiBleHBlY3RlZFZh
bHVlKS4KLSAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZU1pbmltdW0gPSA2OwotICAgICAg
ICAgICAgaWYgKHNlbGVjdG9yRnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgJiBCYWNrdHJhY2tp
bmdGbGFnOjpJbkNoYWluV2l0aERlc2NlbmRhbnRUYWlsKQotICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZU1pbmltdW0gKz0gMTsgLy8gSWYgdGhlcmUgaXMgYSBEZXNjZW5kYW50VGFpbCwgdGhlcmUg
aXMgYSBiYWNrdHJhY2tpbmcgcmVnaXN0ZXIuCisgICAgICAgIGlmIChhdHRyaWJ1dGVJbmRleCAr
IDEgPCBhdHRyaWJ1dGVDb3VudCkKKyAgICAgICAgICAgIGF0dHJpYnV0ZU1pbmltdW0gKz0gMjsg
Ly8gRm9yIHRoZSBsb2NhbCBjb3B5IG9mIHRoZSBjb3VudGVyIGFuZCBhdHRyaWJ1dGVBcnJheVBv
aW50ZXIuCiAKLSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVJbmRleCArIDEgPCBhdHRyaWJ1dGVD
b3VudCkKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVNaW5pbXVtICs9IDI7IC8vIEZvciB0aGUg
bG9jYWwgY29weSBvZiB0aGUgY291bnRlciBhbmQgYXR0cmlidXRlQXJyYXlQb2ludGVyLgorICAg
ICAgICBjb25zdCBBdHRyaWJ1dGVNYXRjaGluZ0luZm8mIGF0dHJpYnV0ZUluZm8gPSBhdHRyaWJ1
dGVzW2F0dHJpYnV0ZUluZGV4XTsKKyAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3ImIGF0dHJpYnV0
ZVNlbGVjdG9yID0gYXR0cmlidXRlSW5mby5zZWxlY3RvcigpOworICAgICAgICBpZiAoYXR0cmli
dXRlTmFtZVRlc3RpbmdSZXF1aXJlc05hbWVzcGFjZVJlZ2lzdGVyKGF0dHJpYnV0ZVNlbGVjdG9y
KQorICAgICAgICAgICAgfHwgYXR0cmlidXRlVmFsdWVUZXN0aW5nUmVxdWlyZXNDYXNlRm9sZGlu
Z1JlZ2lzdGVyKGF0dHJpYnV0ZUluZm8pKQorICAgICAgICAgICAgYXR0cmlidXRlTWluaW11bSAr
PSAxOwogCi0gICAgICAgICAgICBjb25zdCBBdHRyaWJ1dGVNYXRjaGluZ0luZm8mIGF0dHJpYnV0
ZUluZm8gPSBhdHRyaWJ1dGVzW2F0dHJpYnV0ZUluZGV4XTsKLSAgICAgICAgICAgIGNvbnN0IENT
U1NlbGVjdG9yJiBhdHRyaWJ1dGVTZWxlY3RvciA9IGF0dHJpYnV0ZUluZm8uc2VsZWN0b3IoKTsK
LSAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lVGVzdGluZ1JlcXVpcmVzTmFtZXNwYWNlUmVn
aXN0ZXIoYXR0cmlidXRlU2VsZWN0b3IpCi0gICAgICAgICAgICAgICAgfHwgYXR0cmlidXRlVmFs
dWVUZXN0aW5nUmVxdWlyZXNDYXNlRm9sZGluZ1JlZ2lzdGVyKGF0dHJpYnV0ZUluZm8pKQotICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZU1pbmltdW0gKz0gMTsKKyAgICAgICAgbWluaW11bSA9IHN0
ZDo6bWF4KG1pbmltdW0sIGF0dHJpYnV0ZU1pbmltdW0pOworICAgIH0KIAotICAgICAgICAgICAg
bWluaW11bSA9IHN0ZDo6bWF4KG1pbmltdW0sIGF0dHJpYnV0ZU1pbmltdW0pOwotICAgICAgICB9
CisgICAgLy8gOm5vdCBwc2V1ZG8gY2xhc3MgZmlsdGVycyBjYXVzZSBzb21lIHJlZ2lzdGVyIHBy
ZXNzdXJlLgorICAgIGZvciAoY29uc3QgU2VsZWN0b3JGcmFnbWVudCYgc3ViRnJhZ21lbnQgOiBz
ZWxlY3RvckZyYWdtZW50Lm5vdEZpbHRlcnMpIHsKKyAgICAgICAgdW5zaWduZWQgbm90RmlsdGVy
TWluaW11bSA9IG1pbmltdW1SZWdpc3RlclJlcXVpcmVtZW50cyhzdWJGcmFnbWVudCkgKyBiYWNr
dHJhY2tpbmdSZWdpc3RlclJlcXVpcmVtZW50czsKKyAgICAgICAgbWluaW11bSA9IHN0ZDo6bWF4
KG1pbmltdW0sIG5vdEZpbHRlck1pbmltdW0pOworICAgIH0KKyAgICByZXR1cm4gbWluaW11bTsK
K30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBtaW5pbXVtUmVnaXN0ZXJSZXF1aXJlbWVudHMo
Y29uc3QgU2VsZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9yRnJhZ21lbnRzKQoreworICAgIHVu
c2lnbmVkIG1pbmltdW0gPSBtaW5pbXVtUmVxdWlyZWRSZWdpc3RlckNvdW50OworCisgICAgZm9y
ICh1bnNpZ25lZCBzZWxlY3RvckZyYWdtZW50SW5kZXggPSAwOyBzZWxlY3RvckZyYWdtZW50SW5k
ZXggPCBzZWxlY3RvckZyYWdtZW50cy5zaXplKCk7ICsrc2VsZWN0b3JGcmFnbWVudEluZGV4KSB7
CisgICAgICAgIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmIHNlbGVjdG9yRnJhZ21lbnQgPSBzZWxl
Y3RvckZyYWdtZW50c1tzZWxlY3RvckZyYWdtZW50SW5kZXhdOworICAgICAgICBtaW5pbXVtID0g
c3RkOjptYXgobWluaW11bSwgbWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKHNlbGVjdG9yRnJh
Z21lbnQpKTsKICAgICB9CiAKICAgICByZXR1cm4gbWluaW11bTsKQEAgLTg3Myw3ICs5MjksNyBA
QCBzdGF0aWMgYm9vbCByZXF1aXJlc0Rlc2NlbmRhbnRUYWlsKGNvbnN0IFNlbGVjdG9yRnJhZ21l
bnQmIGZyYWdtZW50KQogICAgIHJldHVybiBmcmFnbWVudC5tYXRjaGluZ1RhZ05hbWVCYWNrdHJh
Y2tpbmdBY3Rpb24gPT0gQmFja3RyYWNraW5nQWN0aW9uOjpKdW1wVG9EZXNjZW5kYW50VGFpbCB8
fCBmcmFnbWVudC5tYXRjaGluZ1Bvc3RUYWdOYW1lQmFja3RyYWNraW5nQWN0aW9uID09IEJhY2t0
cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2VuZGFudFRhaWwgfHwgZnJhZ21lbnQudHJhdmVyc2Fs
QmFja3RyYWNraW5nQWN0aW9uID09IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVtcFRvRGVzY2VuZGFu
dFRhaWw7CiB9CiAKLXZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21wdXRlQmFja3RyYWNr
aW5nSW5mb3JtYXRpb24oKQordm9pZCBjb21wdXRlQmFja3RyYWNraW5nSW5mb3JtYXRpb24oU2Vs
ZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9yRnJhZ21lbnRzLCBib29sJiBuZWVkc0FkamFjZW50
QmFja3RyYWNraW5nU3RhcnQpCiB7CiAgICAgYm9vbCBoYXNEZXNjZW5kYW50UmVsYXRpb25PblRo
ZVJpZ2h0ID0gZmFsc2U7CiAgICAgdW5zaWduZWQgYW5jZXN0b3JQb3NpdGlvblNpbmNlRGVzY2Vu
ZGFudFJlbGF0aW9uID0gMDsKQEAgLTg5MCw4ICs5NDYsOCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdl
bmVyYXRvcjo6Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKICAgICBjb25zdCBTZWxl
Y3RvckZyYWdtZW50KiBwcmV2aW91c0NoaWxkRnJhZ21lbnRJbkNoaWxkQ2hhaW4gPSBudWxscHRy
OwogICAgIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQqIHByZXZpb3VzRGlyZWN0QWRqYWNlbnRGcmFn
bWVudEluRGlyZWN0QWRqYWNlbnRDaGFpbiA9IG51bGxwdHI7CiAKLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9zZWxlY3RvckZyYWdtZW50cy5zaXplKCk7ICsraSkgewotICAgICAgICBT
ZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCA9IG1fc2VsZWN0b3JGcmFnbWVudHNbaV07CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNlbGVjdG9yRnJhZ21lbnRzLnNpemUoKTsgKytpKSB7
CisgICAgICAgIFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50ID0gc2VsZWN0b3JGcmFnbWVudHNb
aV07CiAKICAgICAgICAgdXBkYXRlQ2hhaW5TdGF0ZXMoZnJhZ21lbnQsIGhhc0Rlc2NlbmRhbnRS
ZWxhdGlvbk9uVGhlUmlnaHQsIGFuY2VzdG9yUG9zaXRpb25TaW5jZURlc2NlbmRhbnRSZWxhdGlv
biwgaGFzSW5kaXJlY3RBZGphY2VudFJlbGF0aW9uT25UaGVSaWdodE9mRGlyZWN0QWRqYWNlbnRD
aGFpbiwgYWRqYWNlbnRQb3NpdGlvblNpbmNlSW5kaXJlY3RBZGphY2VudFRyZWVXYWxrKTsKIApA
QCAtOTI2LDggKzk4Miw4IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21wdXRlQmFj
a3RyYWNraW5nSW5mb3JtYXRpb24oKQogICAgICAgICAgICAgICAgIEFTU0VSVChmcmFnbWVudC5y
ZWxhdGlvblRvUmlnaHRGcmFnbWVudCA9PSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGphY2Vu
dCk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVJbmRpcmVjdEFkamFjZW50QmFja3RyYWNr
aW5nU3RhcnRGcmFnbWVudEluZGV4ICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKSk7CiAgICAgICAgICAgICAgICAgZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgfD0gQmFj
a3RyYWNraW5nRmxhZzo6RGlyZWN0QWRqYWNlbnRUYWlsOwotICAgICAgICAgICAgICAgIG1fc2Vs
ZWN0b3JGcmFnbWVudHNbc2F2ZUluZGlyZWN0QWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydEZyYWdt
ZW50SW5kZXhdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OlNhdmVBZGph
Y2VudEJhY2t0cmFja2luZ1N0YXJ0OwotICAgICAgICAgICAgICAgIG1fbmVlZHNBZGphY2VudEJh
Y2t0cmFja2luZ1N0YXJ0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzZWxlY3RvckZyYWdtZW50
c1tzYXZlSW5kaXJlY3RBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleF0uYmFj
a3RyYWNraW5nRmxhZ3MgfD0gQmFja3RyYWNraW5nRmxhZzo6U2F2ZUFkamFjZW50QmFja3RyYWNr
aW5nU3RhcnQ7CisgICAgICAgICAgICAgICAgbmVlZHNBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBuZWVkc0FkamFjZW50VGFpbCA9IGZhbHNlOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgc2F2ZUluZGlyZWN0QWRqYWNlbnRCYWNrdHJhY2tpbmdT
dGFydEZyYWdtZW50SW5kZXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7
CkBAIC05MzYsMTAgKzk5MiwxMCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcHV0
ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKICAgICAgICAgICAgIGlmIChuZWVkc0Rlc2NlbmRh
bnRUYWlsKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNhdmVEZXNjZW5kYW50QmFja3RyYWNr
aW5nU3RhcnRGcmFnbWVudEluZGV4ICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKSk7CiAgICAgICAgICAgICAgICAgZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgfD0gQmFj
a3RyYWNraW5nRmxhZzo6RGVzY2VuZGFudFRhaWw7Ci0gICAgICAgICAgICAgICAgbV9zZWxlY3Rv
ckZyYWdtZW50c1tzYXZlRGVzY2VuZGFudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleF0u
YmFja3RyYWNraW5nRmxhZ3MgfD0gQmFja3RyYWNraW5nRmxhZzo6U2F2ZURlc2NlbmRhbnRCYWNr
dHJhY2tpbmdTdGFydDsKKyAgICAgICAgICAgICAgICBzZWxlY3RvckZyYWdtZW50c1tzYXZlRGVz
Y2VuZGFudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleF0uYmFja3RyYWNraW5nRmxhZ3Mg
fD0gQmFja3RyYWNraW5nRmxhZzo6U2F2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdTdGFydDsKICAg
ICAgICAgICAgICAgICBuZWVkc0Rlc2NlbmRhbnRUYWlsID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBqID0gc2F2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdTdGFydEZyYWdt
ZW50SW5kZXg7IGogPD0gaTsgKytqKQotICAgICAgICAgICAgICAgICAgICBtX3NlbGVjdG9yRnJh
Z21lbnRzW2pdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OkluQ2hhaW5X
aXRoRGVzY2VuZGFudFRhaWw7CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yRnJhZ21lbnRz
W2pdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OkluQ2hhaW5XaXRoRGVz
Y2VuZGFudFRhaWw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzYXZlRGVzY2VuZGFudEJh
Y2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWdu
ZWQ+OjptYXgoKTsKICAgICAgICAgfQpAQCAtOTYyLDcgKzEwMTgsNyBAQCBpbmxpbmUgYm9vbCBT
ZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlUHJvbG9ndWUoKQogI2VuZGlmCiAgICAgcmV0
dXJuIGZhbHNlOwogfQotICAgIAorCiBpbmxpbmUgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlRXBpbG9ndWUoKQogewogI2lmIENQVShBUk02NCkKQEAgLTk3NiwxNSArMTAzMiwx
OCBAQCBpbmxpbmUgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRXBpbG9ndWUo
KQogICAgIG1fc3RhY2tBbGxvY2F0b3IucG9wKG1fcHJvbG9ndWVTdGFja1JlZmVyZW5jZXMsIHBy
b2xvZ3VlUmVnaXN0ZXIpOwogI2VuZGlmCiB9Ci0gICAgCisKIHZvaWQgU2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpCiB7CiAgICAgYm9vbCBuZWVkc0VwaWxv
Z3VlID0gZ2VuZXJhdGVQcm9sb2d1ZSgpOwotICAgIAorCiAgICAgVmVjdG9yPFN0YWNrQWxsb2Nh
dG9yOjpTdGFja1JlZmVyZW5jZT4gY2FsbGVlU2F2ZWRSZWdpc3RlclN0YWNrUmVmZXJlbmNlczsK
ICAgICBib29sIHJlc2VydmVkQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgPSBmYWxzZTsKICAgICB1bnNp
Z25lZCBhdmFpbGFibGVSZWdpc3RlckNvdW50ID0gbV9yZWdpc3RlckFsbG9jYXRvci5hdmFpbGFi
bGVSZWdpc3RlckNvdW50KCk7CiAgICAgdW5zaWduZWQgbWluaW11bVJlZ2lzdGVyQ291bnRGb3JB
dHRyaWJ1dGVzID0gbWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKG1fc2VsZWN0b3JGcmFnbWVu
dHMpOworI2lmIENTU19TRUxFQ1RPUl9KSVRfREVCVUdHSU5HCisgICAgZGF0YUxvZ0YoIkNvbXBp
bGluZyB3aXRoIG1pbmltdW0gcmVxdWlyZWQgcmVnaXN0ZXIgY291bnQgJXVcbiIsIG1pbmltdW1S
ZWdpc3RlckNvdW50Rm9yQXR0cmlidXRlcyk7CisjZW5kaWYKICAgICBBU1NFUlQobWluaW11bVJl
Z2lzdGVyQ291bnRGb3JBdHRyaWJ1dGVzIDw9IHJlZ2lzdGVyQ291bnQpOwogICAgIGlmIChhdmFp
bGFibGVSZWdpc3RlckNvdW50IDwgbWluaW11bVJlZ2lzdGVyQ291bnRGb3JBdHRyaWJ1dGVzKSB7
CiAgICAgICAgIHJlc2VydmVkQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgPSB0cnVlOwpAQCAtMTU3NSw2
ICsxNjM0LDggQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudE1h
dGNoaW5nKEFzc2VtYmxlcjo6SnVtcExpc3QmIG1hdGNoaW4KICAgICAgICAgZ2VuZXJhdGVFbGVt
ZW50SXNMYXN0Q2hpbGQobWF0Y2hpbmdQb3N0VGFnTmFtZUZhaWx1cmVDYXNlcywgZnJhZ21lbnQp
OwogICAgIGlmICghZnJhZ21lbnQubnRoQ2hpbGRmaWx0ZXJzLmlzRW1wdHkoKSkKICAgICAgICAg
Z2VuZXJhdGVFbGVtZW50SXNOdGhDaGlsZChtYXRjaGluZ1Bvc3RUYWdOYW1lRmFpbHVyZUNhc2Vz
LCBmcmFnbWVudCk7CisgICAgaWYgKCFmcmFnbWVudC5ub3RGaWx0ZXJzLmlzRW1wdHkoKSkKKyAg
ICAgICAgZ2VuZXJhdGVFbGVtZW50SXNOb3RNYXRjaGVkVG9OZWdhdGlvbihtYXRjaGluZ1Bvc3RU
YWdOYW1lRmFpbHVyZUNhc2VzLCBmcmFnbWVudCk7CiB9CiAKIHZvaWQgU2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnREYXRhTWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYg
ZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkKQEAgLTE1OTUs
NyArMTY1Niw3IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRE
YXRhTWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpCiAgICAgaWYgKCFmcmFnbWVudC5j
bGFzc05hbWVzLmlzRW1wdHkoKSkKICAgICAgICAgZ2VuZXJhdGVFbGVtZW50SGFzQ2xhc3Nlcyhm
YWlsdXJlQ2FzZXMsIGVsZW1lbnREYXRhQWRkcmVzcywgZnJhZ21lbnQuY2xhc3NOYW1lcyk7CiAg
ICAgaWYgKCFmcmFnbWVudC5hdHRyaWJ1dGVzLmlzRW1wdHkoKSkKLSAgICBnZW5lcmF0ZUVsZW1l
bnRBdHRyaWJ1dGVzTWF0Y2hpbmcoZmFpbHVyZUNhc2VzLCBlbGVtZW50RGF0YUFkZHJlc3MsIGZy
YWdtZW50KTsKKyAgICAgICAgZ2VuZXJhdGVFbGVtZW50QXR0cmlidXRlc01hdGNoaW5nKGZhaWx1
cmVDYXNlcywgZWxlbWVudERhdGFBZGRyZXNzLCBmcmFnbWVudCk7CiB9CiAKIHN0YXRpYyBpbmxp
bmUgQXNzZW1ibGVyOjpKdW1wIHRlc3RJc0hUTUxGbGFnT25Ob2RlKEFzc2VtYmxlcjo6UmVzdWx0
Q29uZGl0aW9uIGNvbmRpdGlvbiwgQXNzZW1ibGVyJiBhc3NlbWJsZXIsIEFzc2VtYmxlcjo6UmVn
aXN0ZXJJRCBub2RlQWRkcmVzcykKQEAgLTI0OTQsNiArMjU1NSwxNyBAQCB2b2lkIFNlbGVjdG9y
Q29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50SXNOdGhDaGlsZChBc3NlbWJsZXI6Okp1bXBM
aXN0JiBmYWlsdQogICAgIH0KIH0KIAordm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVy
YXRlRWxlbWVudElzTm90TWF0Y2hlZFRvTmVnYXRpb24oQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFp
bHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkKK3sKKyAgICBBc3Nl
bWJsZXI6Okp1bXBMaXN0IGxvY2FsRmFpbHVyZUNhc2VzOworICAgIGZvciAoY29uc3QgYXV0byYg
c3ViRnJhZ21lbnQgOiBmcmFnbWVudC5ub3RGaWx0ZXJzKSB7CisgICAgICAgIGdlbmVyYXRlRWxl
bWVudE1hdGNoaW5nKGxvY2FsRmFpbHVyZUNhc2VzLCBsb2NhbEZhaWx1cmVDYXNlcywgc3ViRnJh
Z21lbnQpOworICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIGEgbmVnYXRpb24gZmlsdGVyLCByZWFj
aGluZyBoZXJlIGlzIGEgZmFpbHVyZS4KKyAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChtX2Fz
c2VtYmxlci5qdW1wKCkpOworICAgICAgICBsb2NhbEZhaWx1cmVDYXNlcy5saW5rKCZtX2Fzc2Vt
Ymxlcik7CisgICAgfQorfQorCiB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVF
bGVtZW50SXNSb290KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcykKIHsKICAgICBM
b2NhbFJlZ2lzdGVyIGRvY3VtZW50KG1fcmVnaXN0ZXJBbGxvY2F0b3IpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAxZWI1
OTEwYjMyMWQyMjYyYWM2OTg4OWVmMWJmZTM1YjI1Mjk0NDcuLmJmZmRlNTI5YTdlMmM4MWU0MDlh
MmQyZTU5NDRhMjgwOGQxMWQ5MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNC0wNi0wMSAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBDU1MgSklU
OiBhZGQgc3VwcG9ydCBmb3IgdGhlICJub3QiIHBzZXVkbyBjbGFzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMzE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIDpub3QgcHNldWRvIGNsYXNzIHN1
cHBvcnQgdG8gQ1NTIEpJVC4gQ3VycmVudCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBkb2Vzbid0
IHN1cHBvcnQgdmlzaXRlZE1hdGNoVHlwZS4gU28gd2hlbiBsaW5rIHBzZXVkbyBjbGFzcyBhcHBl
YXJzIGluCisgICAgICAgIDpub3Qgc3ViIGZyYWdtZW50LCBmYWxsYmFjayB0byB0aGUgbm9uLUpJ
VCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUt
aG92ZXItcXVpcmtzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3Rv
cnMvbm90LWFjdGl2ZS1ob3Zlci1xdWlya3MuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
ZWxlY3RvcnMvbm90LWFjdGl2ZS1ob3Zlci1zdHJpY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Mtbm90LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90LWhvdmVyLWFj
dGl2ZS1xdWlya3MtdXRpbGl0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0UXVlcnlTZWxlY3Rv
cik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMv
bm90LWhvdmVyLWFjdGl2ZS1zdHJpY3QtdXRpbGl0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
UXVlcnlTZWxlY3Rvcik6CisgICAgICAgICh0ZXN0KToKKwogMjAxNC0wNS0zMCAgTWFyaW8gU2Fu
Y2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIERv
bid0IHVzZSBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCkgaW4gYXJpYS1zbGlkZXItcmVxdWlyZWQt
YXR0cmlidXRlcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9u
b3QtYWN0aXZlLWhvdmVyLXF1aXJrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXF1aXJrcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmIwOTlmODMwNjY5ZTUyOTQ0ZWMwMGJhYjU5NjZjNDRhYjllZmViMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUtaG92ZXItcXVpcmtzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5NCBAQAorU1RBUlQKK1Rlc3QgdGhlIDpub3QoOmFjdGl2
ZSkgYW5kIDpub3QoOmhvdmVyKSBzZWxlY3RvciB3aGVuIHRoZSBkb2N1bWVudCBpcyBpbiBxdWly
a3MgbW9kZS4gVG8gdGVzdCBtYW51YWxseSwgZW5zdXJlIHRoYXQgbm90IG1vdmUgdGhlIGN1cnNv
ciBvdmVyIHRoZSBncmVlbiByZWN0YW5nbGUgYW5kIHByZXNzIHRoZSBncmF5IFNUQVJUIGRpdiB1
bnRpbCB0aGUgdGVzdCBpcyBmaW5pc2hlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0aCAtIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMworUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0
aCAtIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIio6bm90KDphY3RpdmUpIikubGVuZ3RoIGlz
IDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIjpub3QoOmFjdGl2ZSk6aG92ZXIiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAy
LCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmhvdmVyOm5vdCg6YWN0aXZl
KSIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCI6aG92ZXI6bm90KDphY3RpdmUpOmhvdmVyIikubGVuZ3RoIGlzIDAK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikp
LmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ijpub3QoOmFjdGl2ZSk6YWN0aXZlIikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwg
MykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjphY3RpdmU6bm90KDphY3RpdmUp
IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIjphY3RpdmU6bm90KDphY3RpdmUpOmFjdGl2ZSIpLmxlbmd0aCBpcyAw
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJ0ZXN0aW5nOm5vdCg6YWN0aXZlKSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGFyZ2V0Om5vdCg6YWN0aXZl
KSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCI6bm90KDphY3RpdmUpI3RhcmdldCIpLmxlbmd0aCBpcyAxCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xv
ciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGFy
Z2V0Om5vdCg6YWN0aXZlKSN0YXJnZXQiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1
LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzczpub3QoOmFjdGl2
ZSkiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0aXZlKS5hQ2xhc3MiKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFD
bGFzczpub3QoOmFjdGl2ZSkub3RoZXJDbGFzcyIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtp
dF0iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0aXZlKVt3ZWJraXRdIikubGVuZ3RoIGlzIDEKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltp
ZF06bm90KDphY3RpdmUpW3dlYmtpdF0iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1
LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQ9cm9j
a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCJbaWQ9dGFyZ2V0XTpub3QoOmFjdGl2ZSlbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIuYUNsYXNzW3dlYmtpdF49cm9dIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwg
NikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0
Xj1yb10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiW2lkXj10YV06bm90KDphY3RpdmUpW3dlYmtpdF49cm9dIiku
bGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0
aXZlKVt3ZWJraXQkPWtzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQkPWV0XTpub3QoOmFjdGl2ZSlbd2Vi
a2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCI6bm90KDphY3RpdmUpW3dlYmtpdCo9Y2tdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2Io
NCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZCo9cmddOm5vdCg6
YWN0aXZlKVt3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdH49cm9ja3Nd
IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiW2lkfj10YXJnZXRdOm5vdCg6YWN0aXZlKVt3ZWJraXR+PXJvY2tzXSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIuYUNsYXNzW3dlYmtpdHw9cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwg
NSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Vi
a2l0fD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkfD10YXJnZXRdOm5vdCg6YWN0aXZlKVt3ZWJr
aXR8PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmFjdGl2
ZSkiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgidGVzdGluZzpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKDEpIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoInRlc3Rpbmc6bnRoLWNoaWxkKDEpOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQoMSki
KS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiOm50aC1jaGlsZChuKTpub3QoOmFjdGl2ZSkgPiAjdGFyZ2V0IikubGVu
Z3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIpLmxlbmd0aCBp
cyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bnRoLWNoaWxkKG4pOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQobikgPiAjdGFyZ2V0Iiku
bGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIjpudGgtY2hpbGQobik6bm90KDphY3RpdmUpICN0YXJnZXQiKS5sZW5ndGgg
aXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
bnRoLWNoaWxkKG4pOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBp
cyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6LXdlYmtpdC1hbnkoOm5vdCg6YWN0aXZlKSkgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIq
IikubGVuZ3RoIC0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpIikubGVu
Z3RoIGlzIDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIioiKS5sZW5ndGggLSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqOm5vdCg6
aG92ZXIpIikubGVuZ3RoIGlzIDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKTpob3ZlciIpLmxlbmd0aCBpcyAwCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
aG92ZXI6bm90KDpob3ZlcikiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmhvdmVyOm5vdCg6aG92ZXIpOmhvdmVy
IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKTphY3RpdmUiKS5sZW5ndGggaXMgMAorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmFjdGl2
ZTpub3QoOmhvdmVyKSIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6YWN0aXZlOm5vdCg6aG92ZXIpOmFjdGl2ZSIp
Lmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm5vdCg6aG92ZXIpIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0YXJnZXQ6
bm90KDpob3ZlcikiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpI3RhcmdldCIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIjdGFyZ2V0Om5vdCg6aG92ZXIpI3RhcmdldCIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAi
cmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzOm5v
dCg6aG92ZXIpIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKS5hQ2xhc3MiKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLmFDbGFzczpub3QoOmhvdmVyKS5vdGhlckNsYXNzIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nb
d2Via2l0XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0XSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJbaWRdOm5vdCg6aG92ZXIpW3dlYmtpdF0iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0
LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQ9
cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKVt3ZWJraXQ9cm9ja3NdIikubGVuZ3Ro
IGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIltpZD10YXJnZXRdOm5vdCg6aG92ZXIpW3dlYmtpdD1yb2Nrc10iKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLmFDbGFzc1t3ZWJraXRePXJvXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0
Xj1yb10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiW2lkXj10YV06bm90KDpob3Zlcilbd2Via2l0Xj1yb10iKS5s
ZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQkPWtzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAi
cmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zl
cilbd2Via2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkJD1ldF06bm90KDpob3Zlcilbd2Via2l0
JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
bm90KDpob3Zlcilbd2Via2l0Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1
LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkKj1yZ106bm90KDpob3Zl
cilbd2Via2l0Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXR+PXJvY2tzXSIpLmxl
bmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lk
fj10YXJnZXRdOm5vdCg6aG92ZXIpW3dlYmtpdH49cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9y
IGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xh
c3Nbd2Via2l0fD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpW3dlYmtpdHw9cm9j
a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZHw9dGFyZ2V0XTpub3QoOmhvdmVyKVt3ZWJraXR8PXJvY2tz
XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmhvdmVyKSIpLmxlbmd0
aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCJ0ZXN0aW5nOm5vdCg6aG92ZXIpOm50aC1jaGlsZCgxKSIpLmxlbmd0aCBpcyAxCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0
ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmhvdmVyKTpudGgtY2hpbGQoMSkiKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiOm50aC1jaGlsZChuKTpub3QoOmhvdmVyKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5v
dCg6aG92ZXIpOm50aC1jaGlsZChuKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGls
ZChuKTpub3QoOmhvdmVyKTpudGgtY2hpbGQobikgPiAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpu
dGgtY2hpbGQobik6bm90KDpob3ZlcikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAi
cmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zl
cik6bnRoLWNoaWxkKG4pICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAy
LCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGlsZChuKTpub3Qo
OmhvdmVyKTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6LXdlYmtpdC1hbnko
Om5vdCg6aG92ZXIpKSAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwg
MykiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbm90LWFjdGl2ZS1ob3Zlci1x
dWlya3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUtaG92ZXIt
cXVpcmtzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ0MmMwOTkxYTQzODAzYTViMGUyNzVlYWYzZDY4NWRk
M2QxMDQ4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25v
dC1hY3RpdmUtaG92ZXItcXVpcmtzLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ub3QtaG92ZXItYWN0aXZlLXF1aXJrcy11dGlsaXR5
LmpzIj48L3NjcmlwdD4KKzxzdHlsZSBpZD0idGVzdFN0eWxlIj4KKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzx0ZXN0aW5nIGlkPSJ0YXJnZXQiIGNsYXNzPSJhQ2xhc3Mgb3RoZXJDbGFzcyIg
d2Via2l0PSJyb2NrcyIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6Z3JlZW47IHdpZHRoOjIwMHB4
OyBoZWlnaHQ6MjAwcHg7ZGlzcGxheTpibG9jazsiPjwvdGVzdGluZz4KKzxkaXYgaWQ9InN0YXJ0
IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpncmF5OyBoZWlnaHQ6MjAwcHg7IHdpZHRoOjIwMHB4
OyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjsgY29sb3I6d2hpdGU7Ij5TVEFSVDwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGVzdCB0aGUgOm5vdCg6YWN0aXZlKSBhbmQgOm5vdCg6aG92ZXIpIHNl
bGVjdG9yIHdoZW4gdGhlIGRvY3VtZW50IGlzIGluIHF1aXJrcyBtb2RlLiBUbyB0ZXN0IG1hbnVh
bGx5LCBlbnN1cmUgdGhhdCBub3QgbW92ZSB0aGUgY3Vyc29yIG92ZXIgdGhlIGdyZWVuIHJlY3Rh
bmdsZSBhbmQgcHJlc3MgdGhlIGdyYXkgU1RBUlQgZGl2IHVudGlsIHRoZSB0ZXN0IGlzIGZpbmlz
aGVkLicpOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgdmFyIHN0YXJ0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0Jyk7CisgICAgdmFyIHggPSBzdGFydC5vZmZzZXRM
ZWZ0ICsgc3RhcnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciB5ID0gc3RhcnQub2Zmc2V0VG9w
ICsgc3RhcnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICB0ZXN0KCc6YWN0aXZlJyk7
CisgICAgdGVzdCgnOmhvdmVyJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpCit9IGVsc2Ug
eworICAgIC8vIEZvciBzb21lIHJlYXNvbnMsIHRoZSB0ZXN0IGRvZXMgbm90IHdvcmsgd2VsbCB3
aXRob3V0IHRoZSB0aW1lb3V0IG9uIEZpcmVmb3guCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3N0YXJ0JykuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZXYpIHsK
KyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0KCc6YWN0
aXZlJyk7CisgICAgICAgICAgICB0ZXN0KCc6aG92ZXInKTsKKyAgICAgICAgfSwgMjUwKTsKKyAg
ICB9KTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmMxZDYwZmJhOTEwYzQ2NWU4NmE5Y2I0MjA2NGMxMzliMGRkZjkwOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUt
aG92ZXItc3RyaWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3MCBAQAorU1RBUlQKK1Rlc3Qg
dGhlIDpub3QoOmFjdGl2ZSkgYW5kIDpub3QoOmhvdmVyKSBzZWxlY3RvciB3aGVuIHRoZSBkb2N1
bWVudCBpcyBpbiBzdHJpY3QgbW9kZS4gVG8gdGVzdCBtYW51YWxseSwgZW5zdXJlIHRoYXQgbm90
IG1vdmUgdGhlIGN1cnNvciBvdmVyIHRoZSBncmVlbiByZWN0YW5nbGUgYW5kIHByZXNzIHRoZSBn
cmF5IFNUQVJUIGRpdiB1bnRpbCB0aGUgdGVzdCBpcyBmaW5pc2hlZC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGVzdGlu
Zzpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3RhcmdldDpub3QoOmFjdGl2ZSkiKS5sZW5n
dGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiOm5vdCg6YWN0aXZlKSN0YXJnZXQiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJn
Yig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3RhcmdldDpub3Qo
OmFjdGl2ZSkjdGFyZ2V0IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3M6bm90KDphY3RpdmUpIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSkuYUNsYXNzIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3M6bm90
KDphY3RpdmUpLm90aGVyQ2xhc3MiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2
KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXRdIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAi
cmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWRdOm5vdCg6
YWN0aXZlKVt3ZWJraXRdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0PXJvY2tzXSIpLmxl
bmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6bm90KDphY3RpdmUpW3dlYmtpdD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lk
PXRhcmdldF06bm90KDphY3RpdmUpW3dlYmtpdD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFz
c1t3ZWJraXRePXJvXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDphY3RpdmUpW3dlYmtpdF49cm9dIiku
bGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIltpZF49dGFdOm5vdCg6YWN0aXZlKVt3ZWJraXRePXJvXSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIuYUNsYXNzW3dlYmtpdCQ9a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwg
NSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Vi
a2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkJD1ldF06bm90KDphY3RpdmUpW3dlYmtpdCQ9a3Nd
IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6
YWN0aXZlKVt3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQqPXJnXTpub3QoOmFjdGl2ZSlb
d2Via2l0Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXR+PXJvY2tzXSIpLmxlbmd0
aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCI6bm90KDphY3RpdmUpW3dlYmtpdH49cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9y
IGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49
dGFyZ2V0XTpub3QoOmFjdGl2ZSlbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFz
c1t3ZWJraXR8PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDphY3RpdmUpW3dlYmtpdHw9cm9j
a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZHw9dGFyZ2V0XTpub3QoOmFjdGl2ZSlbd2Via2l0fD1yb2Nr
c10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgidGVzdGluZzpudGgtY2hpbGQoMSk6bm90KDphY3RpdmUpIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoInRlc3Rpbmc6bm90KDphY3RpdmUpOm50aC1jaGlsZCgxKSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJ0ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKDEpIikubGVuZ3Ro
IGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIjpudGgtY2hpbGQobik6bm90KDphY3RpdmUpID4gI3RhcmdldCIpLmxlbmd0aCBpcyAw
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCI6bm90KDphY3RpdmUpOm50aC1jaGlsZChuKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50
aC1jaGlsZChuKTpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIpLmxlbmd0aCBp
cyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bnRoLWNoaWxkKG4pOm5vdCg6YWN0aXZlKSAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpu
b3QoOmFjdGl2ZSk6bnRoLWNoaWxkKG4pICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGls
ZChuKTpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKG4pICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOi13
ZWJraXQtYW55KDpub3QoOmFjdGl2ZSkpICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0
aCAtIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMg
MworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiKiIpLmxlbmd0aCAtIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIio6bm90KDphY3RpdmUp
IikubGVuZ3RoIGlzIDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoInRlc3Rpbmc6bm90KDpob3ZlcikiKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rhcmdl
dDpub3QoOmhvdmVyKSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3ZlcikjdGFyZ2V0IikubGVuZ3Ro
IGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0YXJnZXQ6bm90KDpob3ZlcikjdGFyZ2V0IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3M6
bm90KDpob3ZlcikiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpLmFDbGFzcyIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIuYUNsYXNzOm5vdCg6aG92ZXIpLm90aGVyQ2xhc3MiKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFz
c1t3ZWJraXRdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKVt3ZWJraXRdIikubGVuZ3RoIGlz
IDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIltpZF06bm90KDpob3Zlcilbd2Via2l0XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtp
dD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpW3dlYmtpdD1yb2Nrc10iKS5sZW5n
dGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiW2lkPXRhcmdldF06bm90KDpob3Zlcilbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIuYUNsYXNzW3dlYmtpdF49cm9dIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwg
NSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKVt3ZWJr
aXRePXJvXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWRePXRhXTpub3QoOmhvdmVyKVt3ZWJraXRePXJvXSIp
Lmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdCQ9a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhv
dmVyKVt3ZWJraXQkPWtzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQkPWV0XTpub3QoOmhvdmVyKVt3ZWJr
aXQkPWtzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdCo9Y2tdIikubGVuZ3RoIGlzIDEK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikp
LmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ijpub3QoOmhvdmVyKVt3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQs
IDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQqPXJnXTpub3QoOmhv
dmVyKVt3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdH49cm9ja3NdIiku
bGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKVt3ZWJraXR+PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJb
aWR+PXRhcmdldF06bm90KDpob3Zlcilbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFD
bGFzc1t3ZWJraXR8PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0fD1y
b2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiW2lkfD10YXJnZXRdOm5vdCg6aG92ZXIpW3dlYmtpdHw9cm9j
a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoInRlc3Rpbmc6bnRoLWNoaWxkKDEpOm5vdCg6aG92ZXIpIikubGVu
Z3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoInRlc3Rpbmc6bm90KDpob3Zlcik6bnRoLWNoaWxkKDEpIikubGVuZ3RoIGlzIDEK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikp
LmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
InRlc3Rpbmc6bnRoLWNoaWxkKDEpOm5vdCg6aG92ZXIpOm50aC1jaGlsZCgxKSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bnRoLWNoaWxkKG4pOm5vdCg6aG92ZXIpID4gI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
bm90KDpob3Zlcik6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBp
cyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bnRoLWNo
aWxkKG4pOm5vdCg6aG92ZXIpOm50aC1jaGlsZChuKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSku
Y29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
Om50aC1jaGlsZChuKTpub3QoOmhvdmVyKSAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhv
dmVyKTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEs
IDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bnRoLWNoaWxkKG4pOm5v
dCg6aG92ZXIpOm50aC1jaGlsZChuKSAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjotd2Via2l0LWFu
eSg6bm90KDpob3ZlcikpICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAy
LCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0aCAtIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKSIpLmxlbmd0aCBpcyAzCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBp
cyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVu
Z3RoIC0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKjpub3QoOmhvdmVyKSIpLmxlbmd0aCBp
cyAzCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Vs
ZWN0b3JzL25vdC1hY3RpdmUtaG92ZXItc3RyaWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2Yjc4YzE5
MmMyMDBkYWE3OGE5MmUxZjE4NmQ3NmYwMGVhNjYzZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC5odG1sCkBAIC0w
LDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9ub3QtaG92ZXItYWN0aXZlLXN0cmljdC11dGlsaXR5LmpzIj48L3NjcmlwdD4K
KzxzdHlsZSBpZD0idGVzdFN0eWxlIj4KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzx0ZXN0
aW5nIGlkPSJ0YXJnZXQiIGNsYXNzPSJhQ2xhc3Mgb3RoZXJDbGFzcyIgd2Via2l0PSJyb2NrcyIg
c3R5bGU9ImJhY2tncm91bmQtY29sb3I6Z3JlZW47IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MjAwcHg7
ZGlzcGxheTpibG9jazsiPjwvdGVzdGluZz4KKzxkaXYgaWQ9InN0YXJ0IiBzdHlsZT0iYmFja2dy
b3VuZC1jb2xvcjpncmF5OyBoZWlnaHQ6MjAwcHg7IHdpZHRoOjIwMHB4OyBkaXNwbGF5OmJsb2Nr
OyB0ZXh0LWFsaWduOmNlbnRlcjsgY29sb3I6d2hpdGU7Ij5TVEFSVDwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdCB0aGUgOm5vdCg6YWN0aXZlKSBhbmQgOm5vdCg6aG92ZXIpIHNlbGVjdG9yIHdoZW4gdGhl
IGRvY3VtZW50IGlzIGluIHN0cmljdCBtb2RlLiBUbyB0ZXN0IG1hbnVhbGx5LCBlbnN1cmUgdGhh
dCBub3QgbW92ZSB0aGUgY3Vyc29yIG92ZXIgdGhlIGdyZWVuIHJlY3RhbmdsZSBhbmQgcHJlc3Mg
dGhlIGdyYXkgU1RBUlQgZGl2IHVudGlsIHRoZSB0ZXN0IGlzIGZpbmlzaGVkLicpOworCitpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgdmFyIHN0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3N0YXJ0Jyk7CisgICAgdmFyIHggPSBzdGFydC5vZmZzZXRMZWZ0ICsgc3RhcnQub2Zm
c2V0V2lkdGggLyAyOworICAgIHZhciB5ID0gc3RhcnQub2Zmc2V0VG9wICsgc3RhcnQub2Zmc2V0
SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKKyAgICB0ZXN0KCc6YWN0aXZlJyk7CisgICAgdGVzdCgnOmhv
dmVyJyk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpCit9IGVsc2UgeworICAgIC8vIEZvciBz
b21lIHJlYXNvbnMsIHRoZSB0ZXN0IGRvZXMgbm90IHdvcmsgd2VsbCB3aXRob3V0IHRoZSB0aW1l
b3V0IG9uIEZpcmVmb3guCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0JykuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZXYpIHsKKyAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0KCc6YWN0aXZlJyk7CisgICAgICAg
ICAgICB0ZXN0KCc6aG92ZXInKTsKKyAgICAgICAgfSwgMjUwKTsKKyAgICB9KTsKK30KKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9w
c2V1ZG8tY2xhc3Mtbm90LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3Jz
L3BzZXVkby1jbGFzcy1ub3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzN2JiMzhjZTUxYzQx
NjFmODhkZDNkY2M0ZjkwNDVjYjNlZmM0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Mtbm90LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI3IEBACitUaGUgcHNldWRvIGNsYXNzIDpub3QKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKKzpub3Qgc2VsZWN0b3IgbWF0Y2hlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MSIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigw
LCAwLCAwKSIKKzpub3Qgc2VsZWN0b3IgdW5tYXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQyIikpLmJhY2tncm91bmRDb2xvciBpcyAi
cmdiKDEsIDIsIDMpIgorbXVsdGlwbGUgOm5vdCBzZWxlY3RvciBtYXRjaGVkLgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQzIikpLmJhY2tncm91
bmRDb2xvciBpcyAicmdiKDIsIDMsIDQpIgorbXVsdGlwbGUgOm5vdCBzZWxlY3RvciBtYXRjaGVk
LgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ0
IikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDIsIDMsIDQpIgorbXVsdGlwbGUgOm5vdCBzZWxl
Y3RvciB1bm1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDUiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCis6bm90
IHdpdGggYmFja3RyYWNraW5nIG1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwg
MiwgMykiCis6bm90IHdpdGggYmFja3RyYWNraW5nIGZhaWxlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NyIpKS5iYWNrZ3JvdW5kQ29sb3Ig
aXMgInJnYigwLCAwLCAwKSIKKzpub3Qgd2l0aCBtYXhpbXVtIHJlZ2lzdGVycyBtYXRjaGVkLgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ4Iikp
LmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorOm5vdCB3aXRoIG1heGltdW0gcmVn
aXN0ZXJzIG1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldDkiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ4ZGNkZTU5MjljMzUxNDI3MzA0M2NkNmRmMmNlNGRmZWVmZjZlY2MKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Mtbm90Lmh0bWwKQEAg
LTAsMCArMSwxNTMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
c3Bhbi50YXJnZXQgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDAsMCwwKTsKK30KK3NwYW4u
dGFyZ2V0LnJhYmJpdDpub3QoLmhvcnNlKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMSwy
LDMpOworfQorc3Bhbi50YXJnZXQ6bm90KC5yYWJiaXQpOm5vdCguaG9yc2UpIHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOnJnYigyLDMsNCk7Cit9CisKK3NwYW4udGFyZ2V0MSB7CisgICAgYmFja2dy
b3VuZC1jb2xvcjpyZ2IoMCwwLDApOworfQorYzpub3QoLm5nKSA+IGMgc3Bhbi50YXJnZXQxIHsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigxLDIsMyk7Cit9CisKK3NwYW4udGFyZ2V0MiB7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMCwwLDApOworfQorLyogTWF4aW11bSByZWdpc3RlciBj
YXNlICovCitkID4gZFtyZWw9ImRyaW5rIl1bZGF0YS1jb2NvYV1bZGF0YS1jYXBwdWNjaW5vXTpu
b3QoLm5nKSA+IGQgPiBkIHNwYW4udGFyZ2V0MiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2Io
MSwyLDMpOworfQorCitzcGFuLnRhcmdldDMgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDAs
MCwwKTsKK30KKy8qIE1heGltdW0gcmVnaXN0ZXIgY2FzZSAqLworZCA+IGQ6bm90KFtyZWw9ImRy
aW5rIl0pID4gZCA+IGQgc3Bhbi50YXJnZXQzIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigx
LDIsMyk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJkaXNwbGF5
Om5vbmUiPgorICAgIDwhLS0gc3Bhbi50YXJnZXQucmFiYml0Om5vdCguaG9yc2UpIC0tPgorICAg
IDx0YXJnZXQxPgorICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCByYWJiaXQgaG9yc2Ui
IGlkPSJ0YXJnZXQxIj48L3NwYW4+CisgICAgPC90YXJnZXQxPgorCisgICAgPCEtLSBzcGFuLnRh
cmdldC5yYWJiaXQ6bm90KC5ob3JzZSkgLS0+CisgICAgPHRhcmdldDI+CisgICAgICAgICAgICA8
c3BhbiBjbGFzcz0idGFyZ2V0IHJhYmJpdCBob3VzZSIgaWQ9InRhcmdldDIiPjwvc3Bhbj4KKyAg
ICA8L3RhcmdldDI+CisKKyAgICA8IS0tIHNwYW4udGFyZ2V0Om5vdCgucmFiYml0KTpub3QoLmhv
cnNlKSAtLT4KKyAgICA8dGFyZ2V0Mz4KKyAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQi
IGlkPSJ0YXJnZXQzIj48L3NwYW4+CisgICAgPC90YXJnZXQzPgorCisgICAgPCEtLSBzcGFuLnRh
cmdldDpub3QoLnJhYmJpdCk6bm90KC5ob3JzZSkgLS0+CisgICAgPHRhcmdldDQ+CisgICAgICAg
ICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IGhvdXNlIiBpZD0idGFyZ2V0NCI+PC9zcGFuPgorICAg
IDwvdGFyZ2V0ND4KKworICAgIDwhLS0gc3Bhbi50YXJnZXQ6bm90KC5yYWJiaXQpOm5vdCguaG9y
c2UpIC0tPgorICAgIDx0YXJnZXQ1PgorICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCBo
b3JzZSIgaWQ9InRhcmdldDUiPjwvc3Bhbj4KKyAgICA8L3RhcmdldDU+CisKKyAgICA8IS0tIGM6
bm90KC5uZykgPiBjIHNwYW4udGFyZ2V0MSAtLT4KKyAgICA8dGFyZ2V0Nj4KKyAgICAgICAgICAg
IDxjPiAgPCEtLSBNYXRjaGVkLiAtLT4KKyAgICAgICAgICAgICAgICA8YyBjbGFzcz0ibmciPiAg
PCEtLSBGYWlsZWQuIEJhY2t0cmFja2luZyBmcm9tIGhlcmUuIC0tPgorICAgICAgICAgICAgICAg
ICAgICA8Yz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQxIiBp
ZD0idGFyZ2V0NiI+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8L2M+CisgICAgICAgICAg
ICAgICAgPC9jPgorICAgICAgICAgICAgPC9jPgorICAgIDwvdGFyZ2V0Nj4KKworICAgIDwhLS0g
Yzpub3QoLm5nKSA+IGMgc3Bhbi50YXJnZXQxIC0tPgorICAgIDx0YXJnZXQ3PgorICAgICAgICAg
ICAgPGMgY2xhc3M9Im5nIj4gIDwhLS0gRmFpbGVkLiBCYWNrdHJhY2tpbmcgZnJvbSBoZXJlLiAt
LT4KKyAgICAgICAgICAgICAgICA8YyBjbGFzcz0ibmciPiAgPCEtLSBGYWlsZWQuIEJhY2t0cmFj
a2luZyBmcm9tIGhlcmUuIC0tPgorICAgICAgICAgICAgICAgICAgICA8YyBjbGFzcz0ibmciPiAg
PCEtLSBGYWlsZWQuIEJhY2t0cmFja2luZyBmcm9tIGhlcmUuIC0tPgorICAgICAgICAgICAgICAg
ICAgICAgICAgPGM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRh
cmdldDEiIGlkPSJ0YXJnZXQ3Ij48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2M+
CisgICAgICAgICAgICAgICAgICAgIDwvYz4KKyAgICAgICAgICAgICAgICA8L2M+CisgICAgICAg
ICAgICA8L2M+CisgICAgPC90YXJnZXQ3PgorCisgICAgPCEtLSBkID4gZFtkYXRhLWNvY29hXVtk
YXRhLWNhcHB1Y2Npbm9dOm5vdCgubmcpID4gZCA+IGQgc3Bhbi50YXJnZXQyIC0tPgorICAgIDx0
YXJnZXQ4PgorICAgICAgICA8ZD4gIDwhLS0gTWF0Y2hlZC4gLS0+CisgICAgICAgICAgICA8ZCBy
ZWw9ImRyaW5rIiBkYXRhLWNvY29hIGRhdGEtY2FwcHVjY2lubz4KKyAgICAgICAgICAgICAgICA8
ZCBkYXRhLWNvY29hIGRhdGEtY2FwcHVjY2lubyBjbGFzcz0ibmciPiAgPCEtLSBGYWlsZWQuIEJh
Y2t0cmFja2luZyBmcm9tIHRoZSB0YWlsLiAtLT4KKyAgICAgICAgICAgICAgICAgICAgPGQ+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
c3BhbiBjbGFzcz0idGFyZ2V0MiIgaWQ9InRhcmdldDgiPjwvc3Bhbj4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIDwvZD4KKyAgICAgICAgICAgICAgICAgICAgPC9kPgorICAgICAgICAgICAgICAg
IDwvZD4KKyAgICAgICAgICAgIDwvZD4KKyAgICAgICAgPC9kPgorICAgIDwvdGFyZ2V0OD4KKwor
ICAgIDwhLS0gZCA+IGQ6bm90KFtyZWw9ImRyaW5rIl0pID4gZCA+IGQgc3Bhbi50YXJnZXQzIC0t
PgorICAgIDx0YXJnZXQ5PgorICAgICAgICA8ZD4gIDwhLS0gTWF0Y2hlZC4gLS0+CisgICAgICAg
ICAgICA8ZD4KKyAgICAgICAgICAgICAgICA8ZCByZWw9ImRyaW5rIj4gIDwhLS0gRmFpbGVkLiBC
YWNrdHJhY2tpbmcgZnJvbSB0aGUgdGFpbC4gLS0+CisgICAgICAgICAgICAgICAgICAgIDxkPgor
ICAgICAgICAgICAgICAgICAgICAgICAgPGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHNwYW4gY2xhc3M9InRhcmdldDMiIGlkPSJ0YXJnZXQ5Ij48L3NwYW4+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8L2Q+CisgICAgICAgICAgICAgICAgICAgIDwvZD4KKyAgICAgICAgICAgICAg
ICA8L2Q+CisgICAgICAgICAgICA8L2Q+CisgICAgICAgIDwvZD4KKyAgICA8L3RhcmdldDk+Cis8
L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhlIHBzZXVkbyBjbGFzcyA6
bm90Jyk7CisKK2RlYnVnKCI6bm90IHNlbGVjdG9yIG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dDEiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygiOm5vdCBz
ZWxlY3RvciB1bm1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDIiKSkuYmFja2dyb3VuZENvbG9y
JywgJ3JnYigxLCAyLCAzKScpOworCitkZWJ1ZygibXVsdGlwbGUgOm5vdCBzZWxlY3RvciBtYXRj
aGVkLiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQzIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMiwgMywg
NCknKTsKKworZGVidWcoIm11bHRpcGxlIDpub3Qgc2VsZWN0b3IgbWF0Y2hlZC4iKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0NCIpKS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDIsIDMsIDQpJyk7CisKK2RlYnVn
KCJtdWx0aXBsZSA6bm90IHNlbGVjdG9yIHVubWF0Y2hlZC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NSIp
KS5iYWNrZ3JvdW5kQ29sb3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCI6bm90IHdpdGgg
YmFja3RyYWNraW5nIG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYiKSkuYmFja2dyb3VuZENv
bG9yJywgJ3JnYigxLCAyLCAzKScpOworCitkZWJ1ZygiOm5vdCB3aXRoIGJhY2t0cmFja2luZyBm
YWlsZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDciKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigwLCAw
LCAwKScpOworCitkZWJ1ZygiOm5vdCB3aXRoIG1heGltdW0gcmVnaXN0ZXJzIG1hdGNoZWQuIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldDgiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigxLCAyLCAzKScpOwor
CitkZWJ1ZygiOm5vdCB3aXRoIG1heGltdW0gcmVnaXN0ZXJzIG1hdGNoZWQuIik7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldDkiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigxLCAyLCAzKScpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNvdXJj
ZXMvbm90LWhvdmVyLWFjdGl2ZS1xdWlya3MtdXRpbGl0eS5qcyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2VsZWN0b3JzL3Jlc291cmNlcy9ub3QtaG92ZXItYWN0aXZlLXF1aXJrcy11dGlsaXR5LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhiN2NhYjE1NDc2YjYzNGUzNDQzNTMzZDkyOWZiNjc0NmI3ZjMyMjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90LWhv
dmVyLWFjdGl2ZS1xdWlya3MtdXRpbGl0eS5qcwpAQCAtMCwwICsxLDk3IEBACit2YXIgdGVzdENh
c2VzID0gWworICAgIC8vIEhhdmluZyA6aG92ZXIgb3IgOmFjdGl2ZSBkb2VzIG5vdCBxdWFsaWZ5
IHRoZSBwc2V1ZG8gY2xhc3MuCisgICAgWyJQTEFDRUhPTERFUjpob3ZlciIsIGZhbHNlXSwKKyAg
ICBbIjpob3ZlclBMQUNFSE9MREVSIiwgZmFsc2VdLAorICAgIFsiOmhvdmVyUExBQ0VIT0xERVI6
aG92ZXIiLCBmYWxzZV0sCisgICAgWyJQTEFDRUhPTERFUjphY3RpdmUiLCBmYWxzZV0sCisgICAg
WyI6YWN0aXZlUExBQ0VIT0xERVIiLCBmYWxzZV0sCisgICAgWyI6YWN0aXZlUExBQ0VIT0xERVI6
YWN0aXZlIiwgZmFsc2VdLAorCisgICAgLy8gVGFnIHF1YWxpZnkgdGhlIHBzZXVkbyBjbGFzcy4K
KyAgICBbInRlc3RpbmdQTEFDRUhPTERFUiIsIHRydWVdLAorCisgICAgLy8gSWQgcXVhbGlmeSB0
aGUgcHNldWRvIGNsYXNzLgorICAgIFsiI3RhcmdldFBMQUNFSE9MREVSIiwgdHJ1ZV0sCisgICAg
WyJQTEFDRUhPTERFUiN0YXJnZXQiLCB0cnVlXSwKKyAgICBbIiN0YXJnZXRQTEFDRUhPTERFUiN0
YXJnZXQiLCB0cnVlXSwKKworICAgIC8vIENsYXNzIHF1YWxpZnkgdGhlIHBzZXVkbyBjbGFzcy4K
KyAgICBbIi5hQ2xhc3NQTEFDRUhPTERFUiIsIHRydWVdLAorICAgIFsiUExBQ0VIT0xERVIuYUNs
YXNzIiwgdHJ1ZV0sCisgICAgWyIuYUNsYXNzUExBQ0VIT0xERVIub3RoZXJDbGFzcyIsIHRydWVd
LAorCisgICAgLy8gQW55IGF0dHJpYnV0ZSBmaWx0ZXIgcXVhbGlmeSB0aGUgcHNldWRvIGNsYXNz
LgorICAgIFsiLmFDbGFzc1t3ZWJraXRdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJr
aXRdIiwgdHJ1ZV0sCisgICAgWyJbaWRdUExBQ0VIT0xERVJbd2Via2l0XSIsIHRydWVdLAorCisg
ICAgWyIuYUNsYXNzW3dlYmtpdD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIlBMQUNFSE9MREVSW3dl
YmtpdD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIltpZD10YXJnZXRdUExBQ0VIT0xERVJbd2Via2l0
PXJvY2tzXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdF49cm9dIiwgdHJ1ZV0sCisg
ICAgWyJQTEFDRUhPTERFUlt3ZWJraXRePXJvXSIsIHRydWVdLAorICAgIFsiW2lkXj10YV1QTEFD
RUhPTERFUlt3ZWJraXRePXJvXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdCQ9a3Nd
IiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXQkPWtzXSIsIHRydWVdLAorICAgIFsi
W2lkJD1ldF1QTEFDRUhPTERFUlt3ZWJraXQkPWtzXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNz
W3dlYmtpdCo9Y2tdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXQqPWNrXSIsIHRy
dWVdLAorICAgIFsiW2lkKj1yZ11QTEFDRUhPTERFUlt3ZWJraXQqPWNrXSIsIHRydWVdLAorCisg
ICAgWyIuYUNsYXNzW3dlYmtpdH49cm9ja3NdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3
ZWJraXR+PXJvY2tzXSIsIHRydWVdLAorICAgIFsiW2lkfj10YXJnZXRdUExBQ0VIT0xERVJbd2Vi
a2l0fj1yb2Nrc10iLCB0cnVlXSwKKworICAgIFsiLmFDbGFzc1t3ZWJraXR8PXJvY2tzXSIsIHRy
dWVdLAorICAgIFsiUExBQ0VIT0xERVJbd2Via2l0fD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIltp
ZHw9dGFyZ2V0XVBMQUNFSE9MREVSW3dlYmtpdHw9cm9ja3NdIiwgdHJ1ZV0sCisKKyAgICAvLyBB
IHBzZXVkby1jbGFzcyBvdGhlciB0aGFuIDphY3RpdmUvOmhvdmVyIHF1YWxpZnkgdGhlIHBzZXVk
byBjbGFzcy4KKyAgICBbInRlc3Rpbmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xERVIiLCB0cnVlXSwK
KyAgICBbInRlc3RpbmdQTEFDRUhPTERFUjpudGgtY2hpbGQoMSkiLCB0cnVlXSwKKyAgICBbInRl
c3Rpbmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xERVI6bnRoLWNoaWxkKDEpIiwgdHJ1ZV0sCisgICAg
Ly8gU2FtZSB3aXRoIGNoaWxkLgorICAgIFsiOm50aC1jaGlsZChuKVBMQUNFSE9MREVSID4gI3Rh
cmdldCIsIGZhbHNlXSwKKyAgICBbIlBMQUNFSE9MREVSOm50aC1jaGlsZChuKSA+ICN0YXJnZXQi
LCBmYWxzZV0sCisgICAgWyI6bnRoLWNoaWxkKG4pUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4pID4g
I3RhcmdldCIsIGZhbHNlXSwKKyAgICAvLyBTYW1lIHdpdGggZGVzY2VuZGFudC4KKyAgICBbIjpu
dGgtY2hpbGQobilQTEFDRUhPTERFUiAjdGFyZ2V0IiwgZmFsc2VdLAorICAgIFsiUExBQ0VIT0xE
RVI6bnRoLWNoaWxkKG4pICN0YXJnZXQiLCBmYWxzZV0sCisgICAgWyI6bnRoLWNoaWxkKG4pUExB
Q0VIT0xERVI6bnRoLWNoaWxkKG4pICN0YXJnZXQiLCBmYWxzZV0sCisKKyAgICBbIjotd2Via2l0
LWFueShQTEFDRUhPTERFUikgI3RhcmdldCIsIGZhbHNlXSwKK107CisKK2Z1bmN0aW9uIHRlc3RR
dWVyeVNlbGVjdG9yKHNlbGVjdG9yLCBzaG91bGRNYXRjaCkgeworICAgIHNob3VsZEJlKCdkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCInICsgc2VsZWN0b3IgKyAnIikubGVuZ3RoJywgc2hvdWxk
TWF0Y2g/ICcxJyA6ICcwJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHlsaW5nKHNlbGVjdG9yLCBz
aG91bGRNYXRjaCkgeworICAgIHZhciB0ZXN0U3R5bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdFN0eWxlJyk7CisgICAgdmFyIG5vTWF0Y2hTdHlsZSA9ICJyZ2IoMSwgMiwgMykiOwor
ICAgIHZhciBtYXRjaFN0eWxlID0gInJnYig0LCA1LCA2KSIKKyAgICB0ZXN0U3R5bGUudGV4dENv
bnRlbnQgPSAiI3RhcmdldCB7IGNvbG9yOiIgKyBub01hdGNoU3R5bGUgKyAiIH0gIiArIHNlbGVj
dG9yICsgIiB7IGNvbG9yOiIgKyBtYXRjaFN0eWxlICsgIiAhaW1wb3J0YW50IH0iOworCisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3InLCBzaG91bGRNYXRjaCA/IG1hdGNoU3R5bGUgOiBub01h
dGNoU3R5bGUpOworCisgICAgdGVzdFN0eWxlLnRleHRDb250ZW50ID0gIiI7Cit9CisKK2Z1bmN0
aW9uIHRlc3Qob3JpZ2luYWwpIHsKKyAgICB2YXIgcHNldWRvQ2xhc3MgPSAnOm5vdCgnICsgb3Jp
Z2luYWwgKyAnKSc7CisKKyAgICAvLyBTaW5jZSBpbkZ1bmN0aW9uYWxQc2V1ZG8gaXMgdHJ1ZSwg
OmhvdmVyIGFuZCA6YWN0aXZlIGNhbiBiZSBtYXRjaGVkIGluIHF1aXJrcyBtb2RlLgorICAgIHNo
b3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVuZ3RoIC0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiJyArIHBzZXVkb0NsYXNzICsgJyIpLmxlbmd0aCcsICczJyk7Cisg
ICAgdGVzdFN0eWxpbmcocHNldWRvQ2xhc3MsIHRydWUpOworICAgIHNob3VsZEJlKCdkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVuZ3RoIC0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiKicgKyBwc2V1ZG9DbGFzcyArICciKS5sZW5ndGgnLCAnMycpOworICAgIHRlc3RTdHlsaW5n
KCcqJyArIHBzZXVkb0NsYXNzLCB0cnVlKTsKKworICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGgg
PSB0ZXN0Q2FzZXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHNlbGVj
dG9yID0gdGVzdENhc2VzW2ldWzBdLnJlcGxhY2UoJ1BMQUNFSE9MREVSJywgcHNldWRvQ2xhc3Mp
CisgICAgICAgIHRlc3RRdWVyeVNlbGVjdG9yKHNlbGVjdG9yLCB0ZXN0Q2FzZXNbaV1bMV0pOwor
ICAgICAgICB0ZXN0U3R5bGluZyhzZWxlY3RvciwgdGVzdENhc2VzW2ldWzFdKTsKKyAgICB9Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90LWhv
dmVyLWFjdGl2ZS1zdHJpY3QtdXRpbGl0eS5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3Jz
L3Jlc291cmNlcy9ub3QtaG92ZXItYWN0aXZlLXN0cmljdC11dGlsaXR5LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUxMzY0ZjBlMzFiZmNkZDc4ZGIyMTllZmQ3YTdiYzhkNzg3MTJlZDAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90LWhvdmVyLWFjdGl2
ZS1zdHJpY3QtdXRpbGl0eS5qcwpAQCAtMCwwICsxLDkwIEBACisvLyBJbiBzdHJpY3QgbW9kZSwg
dGhlcmUgaXMgbm8gcmVzdHJpY3Rpb24gb24gd2hlbiA6aG92ZXIgb3IgOmFjdGl2ZSBjYW4gbWF0
Y2guCit2YXIgdGVzdENhc2VzID0gWworICAgIC8vIFRhZyBuYW1lLgorICAgIFsidGVzdGluZ1BM
QUNFSE9MREVSIiwgdHJ1ZV0sCisKKyAgICAvLyBJZC4KKyAgICBbIiN0YXJnZXRQTEFDRUhPTERF
UiIsIHRydWVdLAorICAgIFsiUExBQ0VIT0xERVIjdGFyZ2V0IiwgdHJ1ZV0sCisgICAgWyIjdGFy
Z2V0UExBQ0VIT0xERVIjdGFyZ2V0IiwgdHJ1ZV0sCisKKyAgICAvLyBDbGFzcyBuYW1lLgorICAg
IFsiLmFDbGFzc1BMQUNFSE9MREVSIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUi5hQ2xhc3Mi
LCB0cnVlXSwKKyAgICBbIi5hQ2xhc3NQTEFDRUhPTERFUi5vdGhlckNsYXNzIiwgdHJ1ZV0sCisK
KyAgICAvLyBBdHRyaWJ1dGUgZmlsdGVyLgorICAgIFsiLmFDbGFzc1t3ZWJraXRdIiwgdHJ1ZV0s
CisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXRdIiwgdHJ1ZV0sCisgICAgWyJbaWRdUExBQ0VIT0xE
RVJbd2Via2l0XSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdD1yb2Nrc10iLCB0cnVl
XSwKKyAgICBbIlBMQUNFSE9MREVSW3dlYmtpdD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIltpZD10
YXJnZXRdUExBQ0VIT0xERVJbd2Via2l0PXJvY2tzXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNz
W3dlYmtpdF49cm9dIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXRePXJvXSIsIHRy
dWVdLAorICAgIFsiW2lkXj10YV1QTEFDRUhPTERFUlt3ZWJraXRePXJvXSIsIHRydWVdLAorCisg
ICAgWyIuYUNsYXNzW3dlYmtpdCQ9a3NdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJr
aXQkPWtzXSIsIHRydWVdLAorICAgIFsiW2lkJD1ldF1QTEFDRUhPTERFUlt3ZWJraXQkPWtzXSIs
IHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdCo9Y2tdIiwgdHJ1ZV0sCisgICAgWyJQTEFD
RUhPTERFUlt3ZWJraXQqPWNrXSIsIHRydWVdLAorICAgIFsiW2lkKj1yZ11QTEFDRUhPTERFUlt3
ZWJraXQqPWNrXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdH49cm9ja3NdIiwgdHJ1
ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXR+PXJvY2tzXSIsIHRydWVdLAorICAgIFsiW2lk
fj10YXJnZXRdUExBQ0VIT0xERVJbd2Via2l0fj1yb2Nrc10iLCB0cnVlXSwKKworICAgIFsiLmFD
bGFzc1t3ZWJraXR8PXJvY2tzXSIsIHRydWVdLAorICAgIFsiUExBQ0VIT0xERVJbd2Via2l0fD1y
b2Nrc10iLCB0cnVlXSwKKyAgICBbIltpZHw9dGFyZ2V0XVBMQUNFSE9MREVSW3dlYmtpdHw9cm9j
a3NdIiwgdHJ1ZV0sCisKKyAgICAvLyBQc2V1ZG8tY2xhc3Mgb3RoZXIgdGhhbiA6YWN0aXZlLzpo
b3Zlci4KKyAgICBbInRlc3Rpbmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xERVIiLCB0cnVlXSwKKyAg
ICBbInRlc3RpbmdQTEFDRUhPTERFUjpudGgtY2hpbGQoMSkiLCB0cnVlXSwKKyAgICBbInRlc3Rp
bmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xERVI6bnRoLWNoaWxkKDEpIiwgdHJ1ZV0sCisgICAgLy8g
U2FtZSB3aXRoIGNoaWxkIHJlbGF0aW9uLgorICAgIFsiOm50aC1jaGlsZChuKVBMQUNFSE9MREVS
ID4gI3RhcmdldCIsIGZhbHNlXSwKKyAgICBbIlBMQUNFSE9MREVSOm50aC1jaGlsZChuKSA+ICN0
YXJnZXQiLCBmYWxzZV0sCisgICAgWyI6bnRoLWNoaWxkKG4pUExBQ0VIT0xERVI6bnRoLWNoaWxk
KG4pID4gI3RhcmdldCIsIGZhbHNlXSwKKyAgICAvLyBTYW1lIHdpdGggZGVzY2VuZGFudCByZWxh
dGlvbi4KKyAgICBbIjpudGgtY2hpbGQobilQTEFDRUhPTERFUiAjdGFyZ2V0IiwgZmFsc2VdLAor
ICAgIFsiUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4pICN0YXJnZXQiLCBmYWxzZV0sCisgICAgWyI6
bnRoLWNoaWxkKG4pUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4pICN0YXJnZXQiLCBmYWxzZV0sCisK
KyAgICBbIjotd2Via2l0LWFueShQTEFDRUhPTERFUikgI3RhcmdldCIsIGZhbHNlXSwKK107CisK
K2Z1bmN0aW9uIHRlc3RRdWVyeVNlbGVjdG9yKHNlbGVjdG9yLCBzaG91bGRNYXRjaCkgeworICAg
IHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCInICsgc2VsZWN0b3IgKyAnIiku
bGVuZ3RoJywgc2hvdWxkTWF0Y2g/ICcxJyA6ICcwJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHls
aW5nKHNlbGVjdG9yLCBzaG91bGRNYXRjaCkgeworICAgIHZhciB0ZXN0U3R5bGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdFN0eWxlJyk7CisgICAgdmFyIG5vTWF0Y2hTdHlsZSA9ICJy
Z2IoMSwgMiwgMykiOworICAgIHZhciBtYXRjaFN0eWxlID0gInJnYig0LCA1LCA2KSIKKyAgICB0
ZXN0U3R5bGUudGV4dENvbnRlbnQgPSAiI3RhcmdldCB7IGNvbG9yOiIgKyBub01hdGNoU3R5bGUg
KyAiIH0gIiArIHNlbGVjdG9yICsgIiB7IGNvbG9yOiIgKyBtYXRjaFN0eWxlICsgIiAhaW1wb3J0
YW50IH0iOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3InLCBzaG91bGRNYXRjaCA/IG1h
dGNoU3R5bGUgOiBub01hdGNoU3R5bGUpOworCisgICAgdGVzdFN0eWxlLnRleHRDb250ZW50ID0g
IiI7Cit9CisKK2Z1bmN0aW9uIHRlc3Qob3JpZ2luYWwpIHsKKyAgICB2YXIgcHNldWRvQ2xhc3Mg
PSAnOm5vdCgnICsgb3JpZ2luYWwgKyAnKSc7CisgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9
IHRlc3RDYXNlcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgc2VsZWN0
b3IgPSB0ZXN0Q2FzZXNbaV1bMF0ucmVwbGFjZSgnUExBQ0VIT0xERVInLCBwc2V1ZG9DbGFzcykK
KyAgICAgICAgdGVzdFF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IsIHRlc3RDYXNlc1tpXVsxXSk7Cisg
ICAgICAgIHRlc3RTdHlsaW5nKHNlbGVjdG9yLCB0ZXN0Q2FzZXNbaV1bMV0pOworICAgIH0KKwor
ICAgIC8vIEluIHN0cmljdCBtb2RlLCBubyB0YWcgbmFtZSBvciB0aGUgdW5pdmVyc2FsIHNlbGVj
dG9yIGFsc28gd29yay4gVGhpcyBpcyB0ZXN0ZWQgc2VwYXJhdGVseSBiZWNhdXNlIHRob3NlIHNl
bGVjdG9ycyBtYXRjaAorICAgIC8vIGV2ZXJ5IGFuY2VzdG9yIG9mIHRoZSB0YXJnZXQuCisgICAg
c2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5sZW5ndGggLSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCInICsgcHNldWRvQ2xhc3MgKyAnIikubGVuZ3RoJywgJzMnKTsK
KyAgICB0ZXN0U3R5bGluZyhwc2V1ZG9DbGFzcywgdHJ1ZSk7CisgICAgc2hvdWxkQmUoJ2RvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5sZW5ndGggLSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIqJyArIHBzZXVkb0NsYXNzICsgJyIpLmxlbmd0aCcsICczJyk7CisgICAgdGVzdFN0eWxp
bmcoJyonICsgcHNldWRvQ2xhc3MsIHRydWUpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232367</attachid>
            <date>2014-06-01 21:57:49 -0700</date>
            <delta_ts>2014-06-02 00:01:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133314-20140602135759.patch</filename>
            <type>text/plain</type>
            <size>72749</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk3OTFjZTg0N2UyMWEy
Nzc1NzEyZjg3Y2YwNTc2MmYwNzkwZGFhOS4uOTc5NTRiY2JjZjUxOWZkZjNlYmFlNjcxNDg5NjY4
ZmIwZGNjYzkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTA2LTAxICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENTUyBKSVQ6IGFk
ZCBzdXBwb3J0IGZvciB0aGUgIm5vdCIgcHNldWRvIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMzMTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgOm5vdCBwc2V1ZG8gY2xhc3Mgc3VwcG9y
dCB0byBDU1MgSklULiBDdXJyZW50IGltcGxlbWVudGF0aW9uCisgICAgICAgIGRvZXNuJ3Qgc3Vw
cG9ydCB2aXNpdGVkTWF0Y2hUeXBlLiBTbyB3aGVuIGxpbmsgcHNldWRvIGNsYXNzIGFwcGVhcnMg
aW4KKyAgICAgICAgOm5vdCBzdWIgZnJhZ21lbnQsIGZhbGxiYWNrIHRvIHRoZSBub24tSklUIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZl
LWhvdmVyLXF1aXJrcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NlbGVjdG9ycy9ub3QtYWN0
aXZlLWhvdmVyLXN0cmljdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NlbGVjdG9ycy9wc2V1
ZG8tY2xhc3Mtbm90Lmh0bWwKKworICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb0NsYXNzVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rv
ckNvbXBpbGVyOjpjb25zdHJ1Y3RGcmFnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JDb21waWxlcjo6bWluaW11bVJlZ2lzdGVyUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdG9yQ29tcGlsZXI6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29t
cGlsZXI6OmZyYWdtZW50T25seU1hdGNoZXNMaW5rc0luUXVpcmtzTW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRl
RWxlbWVudE1hdGNoaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNl
bGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50RGF0YU1hdGNoaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2Vu
ZXJhdGVFbGVtZW50SXNOdGhDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBp
bGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudE1hdGNoZXNOb3RQc2V1
ZG9DbGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbik6IERlbGV0ZWQuCisK
IDIwMTQtMDYtMDEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgRG9uJ3Qgc2Nyb2xsIHRvIG5vbi1pbnRlZ3JhbCBzY3JvbGwgb2Zmc2V0cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCmluZGV4IDcwZjliMzAzOWQ5ZmFh
MmZiYzIwMTNmMWFjYmUwOGEzNWMwZDdmY2IuLjllMDM1NzY2ZTQ5YTFmMWU3ZThiZWQ0M2E1N2E4
NGY0MTZjZjJmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNv
bXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKIAogI2lu
Y2x1ZGUgIkNTU1NlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnREYXRhLmgiCiAjaW5jbHVkZSAiRWxl
bWVudFJhcmVEYXRhLmgiCkBAIC0xNTQsNyArMTU1LDggQEAgc3RydWN0IFNlbGVjdG9yRnJhZ21l
bnQgewogICAgIEhhc2hTZXQ8dW5zaWduZWQ+IHBzZXVkb0NsYXNzZXM7CiAgICAgVmVjdG9yPEpT
Qzo6RnVuY3Rpb25QdHI+IHVub3B0aW1pemVkUHNldWRvQ2xhc3NlczsKICAgICBWZWN0b3I8QXR0
cmlidXRlTWF0Y2hpbmdJbmZvPiBhdHRyaWJ1dGVzOwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8aW50
LCBpbnQ+PiBudGhDaGlsZGZpbHRlcnM7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxpbnQsIGludD4+
IG50aENoaWxkRmlsdGVyczsKKyAgICBWZWN0b3I8U2VsZWN0b3JGcmFnbWVudD4gbm90RmlsdGVy
czsKIAogICAgIGJvb2wgaW5GdW5jdGlvbmFsUHNldWRvQ2xhc3M7CiB9OwpAQCAtMTg0LDcgKzE4
Niw2IEBAIGNsYXNzIFNlbGVjdG9yQ29kZUdlbmVyYXRvciB7CiAgICAgc3RhdGljIGNvbnN0IEFz
c2VtYmxlcjo6UmVnaXN0ZXJJRCBjaGVja2luZ0NvbnRleHRSZWdpc3RlcjsKICAgICBzdGF0aWMg
Y29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIGNhbGxGcmFtZVJlZ2lzdGVyOwogCi0gICAgdm9p
ZCBjb21wdXRlQmFja3RyYWNraW5nSW5mb3JtYXRpb24oKTsKICAgICB2b2lkIGdlbmVyYXRlU2Vs
ZWN0b3JDaGVja2VyKCk7CiAKICAgICAvLyBFbGVtZW50IHJlbGF0aW9ucyB0cmVlIHdhbGtlci4K
QEAgLTIyNyw2ICsyMjgsNyBAQCBjbGFzcyBTZWxlY3RvckNvZGVHZW5lcmF0b3IgewogICAgIHZv
aWQgZ2VuZXJhdGVFbGVtZW50SGFzQ2xhc3NlcyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJl
Q2FzZXMsIGNvbnN0IExvY2FsUmVnaXN0ZXImIGVsZW1lbnREYXRhQWRkcmVzcywgY29uc3QgVmVj
dG9yPGNvbnN0IEF0b21pY1N0cmluZ0ltcGwqPiYgY2xhc3NOYW1lcyk7CiAgICAgdm9pZCBnZW5l
cmF0ZUVsZW1lbnRJc0xpbmsoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKTsKICAg
ICB2b2lkIGdlbmVyYXRlRWxlbWVudElzTnRoQ2hpbGQoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFp
bHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50Jik7CisgICAgdm9pZCBnZW5lcmF0ZUVs
ZW1lbnRNYXRjaGVzTm90UHNldWRvQ2xhc3MoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNh
c2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50Jik7CiAgICAgdm9pZCBnZW5lcmF0ZUVsZW1lbnRJ
c1Jvb3QoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKTsKICAgICB2b2lkIGdlbmVy
YXRlRWxlbWVudElzVGFyZ2V0KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcyk7CiAK
QEAgLTI0Miw3ICsyNDQsNyBAQCBjbGFzcyBTZWxlY3RvckNvZGVHZW5lcmF0b3IgewogICAgIGJv
b2wgZ2VuZXJhdGVQcm9sb2d1ZSgpOwogICAgIHZvaWQgZ2VuZXJhdGVFcGlsb2d1ZSgpOwogICAg
IFZlY3RvcjxTdGFja0FsbG9jYXRvcjo6U3RhY2tSZWZlcmVuY2U+IG1fcHJvbG9ndWVTdGFja1Jl
ZmVyZW5jZXM7Ci0gICAgCisKICAgICBBc3NlbWJsZXIgbV9hc3NlbWJsZXI7CiAgICAgUmVnaXN0
ZXJBbGxvY2F0b3IgbV9yZWdpc3RlckFsbG9jYXRvcjsKICAgICBTdGFja0FsbG9jYXRvciBtX3N0
YWNrQWxsb2NhdG9yOwpAQCAtMjc0LDYgKzI3NiwxMCBAQCBjbGFzcyBTZWxlY3RvckNvZGVHZW5l
cmF0b3IgewogY29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIFNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Y2hlY2tpbmdDb250ZXh0UmVnaXN0ZXIgPSBKU0M6OkdQUkluZm86OmFyZ3VtZW50R1BSMTsK
IGNvbnN0IEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmNhbGxG
cmFtZVJlZ2lzdGVyID0gSlNDOjpHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcjsKIAorc3RhdGlj
IEZ1bmN0aW9uVHlwZSBjb25zdHJ1Y3RGcmFnbWVudHMoY29uc3QgQ1NTU2VsZWN0b3IqIHJvb3RT
ZWxlY3RvciwgU2VsZWN0b3JDb250ZXh0LCBTZWxlY3RvckZyYWdtZW50TGlzdCYgc2VsZWN0b3JG
cmFnbWVudHMpOworCitzdGF0aWMgdm9pZCBjb21wdXRlQmFja3RyYWNraW5nSW5mb3JtYXRpb24o
U2VsZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9yRnJhZ21lbnRzLCBib29sJiBuZWVkc0FkamFj
ZW50QmFja3RyYWNraW5nU3RhcnQpOworCiBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBp
bGVTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3RvciogbGFzdFNlbGVjdG9yLCBKU0M6OlZNKiB2bSwg
U2VsZWN0b3JDb250ZXh0IHNlbGVjdG9yQ29udGV4dCwgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYmIGNvZGVSZWYpCiB7CiAgICAgaWYgKCF2bS0+Y2FuVXNlSklUKCkpCkBAIC0zOTcsMTEgKzQw
Myw0NCBAQCBzdGF0aWMgaW5saW5lIEZ1bmN0aW9uVHlwZSBhZGRQc2V1ZG9DbGFzc1R5cGUoY29u
c3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yLCBTZWxlYwogICAgICAgICAgICAgaWYgKGEgPD0gMCAm
JiBiIDwgMSkKICAgICAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRj
aEFueXRoaW5nOwogCi0gICAgICAgICAgICBmcmFnbWVudC5udGhDaGlsZGZpbHRlcnMuYXBwZW5k
KHN0ZDo6cGFpcjxpbnQsIGludD4oYSwgYikpOworICAgICAgICAgICAgZnJhZ21lbnQubnRoQ2hp
bGRGaWx0ZXJzLmFwcGVuZChzdGQ6OnBhaXI8aW50LCBpbnQ+KGEsIGIpKTsKICAgICAgICAgICAg
IGlmIChzZWxlY3RvckNvbnRleHQgPT0gU2VsZWN0b3JDb250ZXh0OjpRdWVyeVNlbGVjdG9yKQog
ICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tl
cjsKICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OlNlbGVjdG9yQ2hlY2tlcldpdGhD
aGVja2luZ0NvbnRleHQ7CiAgICAgICAgIH0KKworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzTm90OgorICAgICAgICB7CisgICAgICAgICAgICBjb25zdCBDU1NTZWxlY3Rvckxpc3Qq
IHNlbGVjdG9yTGlzdCA9IHNlbGVjdG9yLnNlbGVjdG9yTGlzdCgpOworCisgICAgICAgICAgICBp
ZiAoIXNlbGVjdG9yTGlzdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpD
YW5ub3RNYXRjaEFueXRoaW5nOworCisgICAgICAgICAgICBTZWxlY3RvckZyYWdtZW50TGlzdCBu
b3RGcmFnbWVudHM7CisgICAgICAgICAgICBGdW5jdGlvblR5cGUgZnVuY3Rpb25UeXBlID0gY29u
c3RydWN0RnJhZ21lbnRzKHNlbGVjdG9yTGlzdC0+Zmlyc3QoKSwgc2VsZWN0b3JDb250ZXh0LCBu
b3RGcmFnbWVudHMpOworCisgICAgICAgICAgICAvLyBTaW5jZSB0aGlzIGlzIG5vdCBwc2V1ZG8g
Y2xhc3MgZmlsdGVyLCBDYW5ub3RNYXRjaEFueXRoaW5nIGltcGxpZXMgdGhpcyBmaWx0ZXIgYWx3
YXlzIHBhc3Nlcy4KKyAgICAgICAgICAgIGlmIChmdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBl
OjpDYW5ub3RNYXRjaEFueXRoaW5nKQorICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5
cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKKworICAgICAgICAgICAgaWYgKGZ1bmN0aW9uVHlw
ZSA9PSBGdW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGUpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uVHlwZTsKKworICAgICAgICAgICAgQVNTRVJUKG5vdEZyYWdtZW50cy5zaXplKCkg
PT0gMSk7CisgICAgICAgICAgICBpZiAobm90RnJhZ21lbnRzLnNpemUoKSAhPSAxKQorICAgICAg
ICAgICAgICAgIHJldHVybiBGdW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGU7CisKKyAgICAgICAg
ICAgIFNlbGVjdG9yRnJhZ21lbnQgc3ViRnJhZ21lbnQgPSBub3RGcmFnbWVudHMuZmlyc3QoKTsK
KyAgICAgICAgICAgIHN1YkZyYWdtZW50LmluRnVuY3Rpb25hbFBzZXVkb0NsYXNzID0gdHJ1ZTsK
KworICAgICAgICAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBkb24ndCBzdXBwb3J0IHZpc2l0
ZWRNYXRjaFR5cGUuCisgICAgICAgICAgICBpZiAoc3ViRnJhZ21lbnQucHNldWRvQ2xhc3Nlcy5j
b250YWlucyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMaW5rKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOworCisgICAgICAgICAgICBmcmFnbWVu
dC5ub3RGaWx0ZXJzLmFwcGVuZChzdWJGcmFnbWVudCk7CisgICAgICAgICAgICByZXR1cm4gZnVu
Y3Rpb25UeXBlOworICAgICAgICB9CisKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAg
ICB9CkBAIC00MjEsOCArNDYwLDE2IEBAIGlubGluZSBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OlNl
bGVjdG9yQ29kZUdlbmVyYXRvcihjb25zdCBDU1NTZWxlY3Rvciogcm9vdFNlbGVjCiAgICAgZGF0
YUxvZ0YoIkNvbXBpbGluZyBcIiVzXCJcbiIsIG1fb3JpZ2luYWxTZWxlY3Rvci0+c2VsZWN0b3JU
ZXh0KCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKIAorICAgIG1fZnVuY3Rpb25UeXBlID0gY29u
c3RydWN0RnJhZ21lbnRzKHJvb3RTZWxlY3RvciwgbV9zZWxlY3RvckNvbnRleHQsIG1fc2VsZWN0
b3JGcmFnbWVudHMpOworICAgIGlmIChtX2Z1bmN0aW9uVHlwZSAhPSBGdW5jdGlvblR5cGU6OkNh
bm5vdENvbXBpbGUgJiYgbV9mdW5jdGlvblR5cGUgIT0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRj
aEFueXRoaW5nKQorICAgICAgICBjb21wdXRlQmFja3RyYWNraW5nSW5mb3JtYXRpb24obV9zZWxl
Y3RvckZyYWdtZW50cywgbV9uZWVkc0FkamFjZW50QmFja3RyYWNraW5nU3RhcnQpOworfQorCitz
dGF0aWMgRnVuY3Rpb25UeXBlIGNvbnN0cnVjdEZyYWdtZW50cyhjb25zdCBDU1NTZWxlY3Rvciog
cm9vdFNlbGVjdG9yLCBTZWxlY3RvckNvbnRleHQgc2VsZWN0b3JDb250ZXh0LCBTZWxlY3RvckZy
YWdtZW50TGlzdCYgc2VsZWN0b3JGcmFnbWVudHMpCit7CiAgICAgU2VsZWN0b3JGcmFnbWVudCBm
cmFnbWVudDsKICAgICBGcmFnbWVudFJlbGF0aW9uIHJlbGF0aW9uVG9QcmV2aW91c0ZyYWdtZW50
ID0gRnJhZ21lbnRSZWxhdGlvbjo6UmlnaHRtb3N0OworICAgIEZ1bmN0aW9uVHlwZSBmdW5jdGlv
blR5cGUgPSBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKICAgICBmb3IgKGNv
bnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3RTZWxlY3Rvcjsgc2VsZWN0b3I7IHNlbGVj
dG9yID0gc2VsZWN0b3ItPnRhZ0hpc3RvcnkoKSkgewogICAgICAgICBzd2l0Y2ggKHNlbGVjdG9y
LT5tX21hdGNoKSB7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlRhZzoKQEAgLTQzMyw4ICs0
ODAsNyBAQCBpbmxpbmUgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpTZWxlY3RvckNvZGVHZW5lcmF0
b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHJvb3RTZWxlYwogICAgICAgICAgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBpZCA9IHNlbGVjdG9yLT52YWx1ZSgpOwogICAgICAgICAgICAgaWYgKGZyYWdtZW50
LmlkKSB7CiAgICAgICAgICAgICAgICAgaWYgKGlkICE9ICpmcmFnbWVudC5pZCkgewotICAgICAg
ICAgICAgICAgICAgICBtX2Z1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hB
bnl0aGluZzsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGZyYWdtZW50LmlkID0g
JihzZWxlY3Rvci0+dmFsdWUoKSk7CkBAIC00NDQsMjIgKzQ5MCwyMCBAQCBpbmxpbmUgU2VsZWN0
b3JDb2RlR2VuZXJhdG9yOjpTZWxlY3RvckNvZGVHZW5lcmF0b3IoY29uc3QgQ1NTU2VsZWN0b3Iq
IHJvb3RTZWxlYwogICAgICAgICAgICAgZnJhZ21lbnQuY2xhc3NOYW1lcy5hcHBlbmQoc2VsZWN0
b3ItPnZhbHVlKCkuaW1wbCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzczoKLSAgICAgICAgICAgIG1fZnVuY3Rpb25UeXBlID0gbW9z
dFJlc3RyaWN0aXZlRnVuY3Rpb25UeXBlKG1fZnVuY3Rpb25UeXBlLCBhZGRQc2V1ZG9DbGFzc1R5
cGUoKnNlbGVjdG9yLCBmcmFnbWVudCwgbV9zZWxlY3RvckNvbnRleHQpKTsKLSAgICAgICAgICAg
IGlmIChtX2Z1bmN0aW9uVHlwZSA9PSBGdW5jdGlvblR5cGU6OkNhbm5vdENvbXBpbGUgfHwgbV9m
dW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGZ1bmN0aW9uVHlwZSA9IG1vc3RSZXN0cmlj
dGl2ZUZ1bmN0aW9uVHlwZShmdW5jdGlvblR5cGUsIGFkZFBzZXVkb0NsYXNzVHlwZSgqc2VsZWN0
b3IsIGZyYWdtZW50LCBzZWxlY3RvckNvbnRleHQpKTsKKyAgICAgICAgICAgIGlmIChmdW5jdGlv
blR5cGUgPT0gRnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlIHx8IGZ1bmN0aW9uVHlwZSA9PSBG
dW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmcpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uVHlwZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpMaXN0OgogICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT52YWx1ZSgpLmNvbnRhaW5zKCcg
JykpIHsKLSAgICAgICAgICAgICAgICBtX2Z1bmN0aW9uVHlwZSA9IEZ1bmN0aW9uVHlwZTo6Q2Fu
bm90TWF0Y2hBbnl0aGluZzsKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0aGluZzsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpC
ZWdpbjoKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RW5kOgogICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpDb250YWluOgogICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT52YWx1ZSgpLmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgICAgIG1fZnVuY3Rpb25UeXBlID0gRnVuY3Rpb25UeXBlOjpD
YW5ub3RNYXRjaEFueXRoaW5nOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OkV4YWN0OgpAQCAtNDc0LDEwICs1MTgsOSBAQCBpbmxpbmUgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpTZWxlY3RvckNvZGVHZW5lcmF0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHJvb3RTZWxlYwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlVua25vd246CiAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIG1fZnVuY3Rpb25UeXBl
ID0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOwotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0aGluZzsK
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudDoKLSAgICAgICAgICAgIGdv
dG8gQ2Fubm90SGFuZGxlU2VsZWN0b3I7CisgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBl
OjpDYW5ub3RDb21waWxlOwogICAgICAgICB9CiAKICAgICAgICAgQ1NTU2VsZWN0b3I6OlJlbGF0
aW9uIHJlbGF0aW9uID0gc2VsZWN0b3ItPnJlbGF0aW9uKCk7CkBAIC00ODUsMjggKzUyOCwyMyBA
QCBpbmxpbmUgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpTZWxlY3RvckNvZGVHZW5lcmF0b3IoY29u
c3QgQ1NTU2VsZWN0b3IqIHJvb3RTZWxlYwogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg
ICAgaWYgKHJlbGF0aW9uID09IENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50ICYmICFzZWxl
Y3Rvci0+aXNMYXN0SW5UYWdIaXN0b3J5KCkpCi0gICAgICAgICAgICBnb3RvIENhbm5vdEhhbmRs
ZVNlbGVjdG9yOworICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGls
ZTsKIAogICAgICAgICBpZiAocmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OkRpcmVjdEFkamFjZW50
IHx8IHJlbGF0aW9uID09IENTU1NlbGVjdG9yOjpJbmRpcmVjdEFkamFjZW50KSB7CiAgICAgICAg
ICAgICBGdW5jdGlvblR5cGUgcmVsYXRpb25GdW5jdGlvblR5cGUgPSBGdW5jdGlvblR5cGU6OlNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQ7Ci0gICAgICAgICAgICBpZiAobV9zZWxl
Y3RvckNvbnRleHQgPT0gU2VsZWN0b3JDb250ZXh0OjpRdWVyeVNlbGVjdG9yKQorICAgICAgICAg
ICAgaWYgKHNlbGVjdG9yQ29udGV4dCA9PSBTZWxlY3RvckNvbnRleHQ6OlF1ZXJ5U2VsZWN0b3Ip
CiAgICAgICAgICAgICAgICAgcmVsYXRpb25GdW5jdGlvblR5cGUgPSBGdW5jdGlvblR5cGU6OlNp
bXBsZVNlbGVjdG9yQ2hlY2tlcjsKLSAgICAgICAgICAgIG1fZnVuY3Rpb25UeXBlID0gc3RkOjpt
YXgobV9mdW5jdGlvblR5cGUsIHJlbGF0aW9uRnVuY3Rpb25UeXBlKTsKKyAgICAgICAgICAgIGZ1
bmN0aW9uVHlwZSA9IG1vc3RSZXN0cmljdGl2ZUZ1bmN0aW9uVHlwZShmdW5jdGlvblR5cGUsIHJl
bGF0aW9uRnVuY3Rpb25UeXBlKTsKICAgICAgICAgfQogCiAgICAgICAgIGZyYWdtZW50LnJlbGF0
aW9uVG9MZWZ0RnJhZ21lbnQgPSBmcmFnbWVudFJlbGF0aW9uRm9yU2VsZWN0b3JSZWxhdGlvbihy
ZWxhdGlvbik7CiAgICAgICAgIGZyYWdtZW50LnJlbGF0aW9uVG9SaWdodEZyYWdtZW50ID0gcmVs
YXRpb25Ub1ByZXZpb3VzRnJhZ21lbnQ7CiAgICAgICAgIHJlbGF0aW9uVG9QcmV2aW91c0ZyYWdt
ZW50ID0gZnJhZ21lbnQucmVsYXRpb25Ub0xlZnRGcmFnbWVudDsKIAotICAgICAgICBtX3NlbGVj
dG9yRnJhZ21lbnRzLmFwcGVuZChmcmFnbWVudCk7CisgICAgICAgIHNlbGVjdG9yRnJhZ21lbnRz
LmFwcGVuZChmcmFnbWVudCk7CiAgICAgICAgIGZyYWdtZW50ID0gU2VsZWN0b3JGcmFnbWVudCgp
OwogICAgIH0KLQotICAgIGNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbigpOwotCi0gICAg
cmV0dXJuOwotQ2Fubm90SGFuZGxlU2VsZWN0b3I6Ci0gICAgbV9mdW5jdGlvblR5cGUgPSBGdW5j
dGlvblR5cGU6OkNhbm5vdENvbXBpbGU7CisgICAgcmV0dXJuIGZ1bmN0aW9uVHlwZTsKIH0KIAog
c3RhdGljIGlubGluZSBib29sIGF0dHJpYnV0ZU5hbWVUZXN0aW5nUmVxdWlyZXNOYW1lc3BhY2VS
ZWdpc3Rlcihjb25zdCBDU1NTZWxlY3RvciYgYXR0cmlidXRlU2VsZWN0b3IpCkBAIC01MTksMzUg
KzU1Nyw1MyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXR0cmlidXRlVmFsdWVUZXN0aW5nUmVxdWly
ZXNDYXNlRm9sZGluZ1JlZ2lzdGVyKGNvbnN0IEF0dHJpYgogICAgIHJldHVybiAhYXR0cmlidXRl
SW5mby5jYW5EZWZhdWx0VG9DYXNlU2Vuc2l0aXZlVmFsdWVNYXRjaCgpOwogfQogCi1zdGF0aWMg
aW5saW5lIHVuc2lnbmVkIG1pbmltdW1SZWdpc3RlclJlcXVpcmVtZW50cyhjb25zdCBTZWxlY3Rv
ckZyYWdtZW50TGlzdCYgc2VsZWN0b3JGcmFnbWVudHMpCisvLyBTdHJpY3QgbWluaW11bSB0byBt
YXRjaCBhbnl0aGluZyBpbnRlcmVzdGluZzoKKy8vIEVsZW1lbnQgKyBCYWNrdHJhY2tpbmdSZWdp
c3RlciArIEVsZW1lbnREYXRhICsgYSBwb2ludGVyIHRvIHZhbHVlcyArIGFuIGluZGV4IG9uIHRo
YXQgcG9pbnRlciArIHRoZSB2YWx1ZSB3ZSBleHBlY3Q7CitzdGF0aWMgY29uc3QgdW5zaWduZWQg
bWluaW11bVJlcXVpcmVkUmVnaXN0ZXJDb3VudCA9IDY7CisvLyBFbGVtZW50ICsgRWxlbWVudERh
dGEgKyBzY3JhdGNoUmVnaXN0ZXIgKyBhdHRyaWJ1dGVBcnJheVBvaW50ZXIgKyBleHBlY3RlZExv
Y2FsTmFtZSArIChxdWFsaWZpZWROYW1lSW1wbCAmJiBleHBlY3RlZFZhbHVlKS4KK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBtaW5pbXVtUmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yQXR0cmlidXRlRmls
dGVyID0gNjsKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBtaW5pbXVtUmVnaXN0ZXJSZXF1aXJl
bWVudHMoY29uc3QgU2VsZWN0b3JGcmFnbWVudCYgc2VsZWN0b3JGcmFnbWVudCkKIHsKLSAgICAv
LyBTdHJpY3QgbWluaW11bSB0byBtYXRjaCBhbnl0aGluZyBpbnRlcmVzdGluZzoKLSAgICAvLyBF
bGVtZW50ICsgQmFja3RyYWNraW5nUmVnaXN0ZXIgKyBFbGVtZW50RGF0YSArIGEgcG9pbnRlciB0
byB2YWx1ZXMgKyBhbiBpbmRleCBvbiB0aGF0IHBvaW50ZXIgKyB0aGUgdmFsdWUgd2UgZXhwZWN0
OwotICAgIHVuc2lnbmVkIG1pbmltdW0gPSA2OworICAgIHVuc2lnbmVkIG1pbmltdW0gPSBtaW5p
bXVtUmVxdWlyZWRSZWdpc3RlckNvdW50OworICAgIGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGVNYXRj
aGluZ0luZm8+JiBhdHRyaWJ1dGVzID0gc2VsZWN0b3JGcmFnbWVudC5hdHRyaWJ1dGVzOworCisg
ICAgdW5zaWduZWQgYmFja3RyYWNraW5nUmVnaXN0ZXJSZXF1aXJlbWVudHMgPSAwOworICAgIGlm
IChzZWxlY3RvckZyYWdtZW50LmJhY2t0cmFja2luZ0ZsYWdzICYgQmFja3RyYWNraW5nRmxhZzo6
SW5DaGFpbldpdGhEZXNjZW5kYW50VGFpbCkKKyAgICAgICAgYmFja3RyYWNraW5nUmVnaXN0ZXJS
ZXF1aXJlbWVudHMgPSAxOyAvLyBJZiB0aGVyZSBpcyBhIERlc2NlbmRhbnRUYWlsLCB0aGVyZSBp
cyBhIGJhY2t0cmFja2luZyByZWdpc3Rlci4KIAogICAgIC8vIEF0dHJpYnV0ZXMgY2F1c2Ugc29t
ZSByZWdpc3RlciBwcmVzc3VyZS4KLSAgICBmb3IgKHVuc2lnbmVkIHNlbGVjdG9yRnJhZ21lbnRJ
bmRleCA9IDA7IHNlbGVjdG9yRnJhZ21lbnRJbmRleCA8IHNlbGVjdG9yRnJhZ21lbnRzLnNpemUo
KTsgKytzZWxlY3RvckZyYWdtZW50SW5kZXgpIHsKLSAgICAgICAgY29uc3QgU2VsZWN0b3JGcmFn
bWVudCYgc2VsZWN0b3JGcmFnbWVudCA9IHNlbGVjdG9yRnJhZ21lbnRzW3NlbGVjdG9yRnJhZ21l
bnRJbmRleF07Ci0gICAgICAgIGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGVNYXRjaGluZ0luZm8+JiBh
dHRyaWJ1dGVzID0gc2VsZWN0b3JGcmFnbWVudC5hdHRyaWJ1dGVzOworICAgIHVuc2lnbmVkIGF0
dHJpYnV0ZUNvdW50ID0gYXR0cmlidXRlcy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBhdHRy
aWJ1dGVJbmRleCA9IDA7IGF0dHJpYnV0ZUluZGV4IDwgYXR0cmlidXRlQ291bnQ7ICsrYXR0cmli
dXRlSW5kZXgpIHsKKyAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlTWluaW11bSA9IG1pbmltdW1S
ZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JBdHRyaWJ1dGVGaWx0ZXIgKyBiYWNrdHJhY2tpbmdSZWdp
c3RlclJlcXVpcmVtZW50czsKIAotICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVDb3VudCA9IGF0
dHJpYnV0ZXMuc2l6ZSgpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGF0dHJpYnV0ZUluZGV4ID0g
MDsgYXR0cmlidXRlSW5kZXggPCBhdHRyaWJ1dGVDb3VudDsgKythdHRyaWJ1dGVJbmRleCkgewot
ICAgICAgICAgICAgLy8gRWxlbWVudCArIEVsZW1lbnREYXRhICsgc2NyYXRjaFJlZ2lzdGVyICsg
YXR0cmlidXRlQXJyYXlQb2ludGVyICsgZXhwZWN0ZWRMb2NhbE5hbWUgKyAocXVhbGlmaWVkTmFt
ZUltcGwgJiYgZXhwZWN0ZWRWYWx1ZSkuCi0gICAgICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVN
aW5pbXVtID0gNjsKLSAgICAgICAgICAgIGlmIChzZWxlY3RvckZyYWdtZW50LmJhY2t0cmFja2lu
Z0ZsYWdzICYgQmFja3RyYWNraW5nRmxhZzo6SW5DaGFpbldpdGhEZXNjZW5kYW50VGFpbCkKLSAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGVNaW5pbXVtICs9IDE7IC8vIElmIHRoZXJlIGlzIGEgRGVz
Y2VuZGFudFRhaWwsIHRoZXJlIGlzIGEgYmFja3RyYWNraW5nIHJlZ2lzdGVyLgorICAgICAgICBp
ZiAoYXR0cmlidXRlSW5kZXggKyAxIDwgYXR0cmlidXRlQ291bnQpCisgICAgICAgICAgICBhdHRy
aWJ1dGVNaW5pbXVtICs9IDI7IC8vIEZvciB0aGUgbG9jYWwgY29weSBvZiB0aGUgY291bnRlciBh
bmQgYXR0cmlidXRlQXJyYXlQb2ludGVyLgogCi0gICAgICAgICAgICBpZiAoYXR0cmlidXRlSW5k
ZXggKyAxIDwgYXR0cmlidXRlQ291bnQpCi0gICAgICAgICAgICAgICAgYXR0cmlidXRlTWluaW11
bSArPSAyOyAvLyBGb3IgdGhlIGxvY2FsIGNvcHkgb2YgdGhlIGNvdW50ZXIgYW5kIGF0dHJpYnV0
ZUFycmF5UG9pbnRlci4KKyAgICAgICAgY29uc3QgQXR0cmlidXRlTWF0Y2hpbmdJbmZvJiBhdHRy
aWJ1dGVJbmZvID0gYXR0cmlidXRlc1thdHRyaWJ1dGVJbmRleF07CisgICAgICAgIGNvbnN0IENT
U1NlbGVjdG9yJiBhdHRyaWJ1dGVTZWxlY3RvciA9IGF0dHJpYnV0ZUluZm8uc2VsZWN0b3IoKTsK
KyAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWVUZXN0aW5nUmVxdWlyZXNOYW1lc3BhY2VSZWdpc3Rl
cihhdHRyaWJ1dGVTZWxlY3RvcikKKyAgICAgICAgICAgIHx8IGF0dHJpYnV0ZVZhbHVlVGVzdGlu
Z1JlcXVpcmVzQ2FzZUZvbGRpbmdSZWdpc3RlcihhdHRyaWJ1dGVJbmZvKSkKKyAgICAgICAgICAg
IGF0dHJpYnV0ZU1pbmltdW0gKz0gMTsKIAotICAgICAgICAgICAgY29uc3QgQXR0cmlidXRlTWF0
Y2hpbmdJbmZvJiBhdHRyaWJ1dGVJbmZvID0gYXR0cmlidXRlc1thdHRyaWJ1dGVJbmRleF07Ci0g
ICAgICAgICAgICBjb25zdCBDU1NTZWxlY3RvciYgYXR0cmlidXRlU2VsZWN0b3IgPSBhdHRyaWJ1
dGVJbmZvLnNlbGVjdG9yKCk7Ci0gICAgICAgICAgICBpZiAoYXR0cmlidXRlTmFtZVRlc3RpbmdS
ZXF1aXJlc05hbWVzcGFjZVJlZ2lzdGVyKGF0dHJpYnV0ZVNlbGVjdG9yKQotICAgICAgICAgICAg
ICAgIHx8IGF0dHJpYnV0ZVZhbHVlVGVzdGluZ1JlcXVpcmVzQ2FzZUZvbGRpbmdSZWdpc3Rlcihh
dHRyaWJ1dGVJbmZvKSkKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVNaW5pbXVtICs9IDE7Cisg
ICAgICAgIG1pbmltdW0gPSBzdGQ6Om1heChtaW5pbXVtLCBhdHRyaWJ1dGVNaW5pbXVtKTsKKyAg
ICB9CiAKLSAgICAgICAgICAgIG1pbmltdW0gPSBzdGQ6Om1heChtaW5pbXVtLCBhdHRyaWJ1dGVN
aW5pbXVtKTsKLSAgICAgICAgfQorICAgIC8vIDpub3QgcHNldWRvIGNsYXNzIGZpbHRlcnMgY2F1
c2Ugc29tZSByZWdpc3RlciBwcmVzc3VyZS4KKyAgICBmb3IgKGNvbnN0IFNlbGVjdG9yRnJhZ21l
bnQmIHN1YkZyYWdtZW50IDogc2VsZWN0b3JGcmFnbWVudC5ub3RGaWx0ZXJzKSB7CisgICAgICAg
IHVuc2lnbmVkIG5vdEZpbHRlck1pbmltdW0gPSBtaW5pbXVtUmVnaXN0ZXJSZXF1aXJlbWVudHMo
c3ViRnJhZ21lbnQpICsgYmFja3RyYWNraW5nUmVnaXN0ZXJSZXF1aXJlbWVudHM7CisgICAgICAg
IG1pbmltdW0gPSBzdGQ6Om1heChtaW5pbXVtLCBub3RGaWx0ZXJNaW5pbXVtKTsKKyAgICB9Cisg
ICAgcmV0dXJuIG1pbmltdW07Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbWluaW11bVJl
Z2lzdGVyUmVxdWlyZW1lbnRzKGNvbnN0IFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3RvckZy
YWdtZW50cykKK3sKKyAgICB1bnNpZ25lZCBtaW5pbXVtID0gbWluaW11bVJlcXVpcmVkUmVnaXN0
ZXJDb3VudDsKKworICAgIGZvciAodW5zaWduZWQgc2VsZWN0b3JGcmFnbWVudEluZGV4ID0gMDsg
c2VsZWN0b3JGcmFnbWVudEluZGV4IDwgc2VsZWN0b3JGcmFnbWVudHMuc2l6ZSgpOyArK3NlbGVj
dG9yRnJhZ21lbnRJbmRleCkgeworICAgICAgICBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBzZWxl
Y3RvckZyYWdtZW50ID0gc2VsZWN0b3JGcmFnbWVudHNbc2VsZWN0b3JGcmFnbWVudEluZGV4XTsK
KyAgICAgICAgbWluaW11bSA9IHN0ZDo6bWF4KG1pbmltdW0sIG1pbmltdW1SZWdpc3RlclJlcXVp
cmVtZW50cyhzZWxlY3RvckZyYWdtZW50KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1pbmltdW07
CkBAIC04NzMsNyArOTI5LDcgQEAgc3RhdGljIGJvb2wgcmVxdWlyZXNEZXNjZW5kYW50VGFpbChj
b25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkKICAgICByZXR1cm4gZnJhZ21lbnQubWF0
Y2hpbmdUYWdOYW1lQmFja3RyYWNraW5nQWN0aW9uID09IEJhY2t0cmFja2luZ0FjdGlvbjo6SnVt
cFRvRGVzY2VuZGFudFRhaWwgfHwgZnJhZ21lbnQubWF0Y2hpbmdQb3N0VGFnTmFtZUJhY2t0cmFj
a2luZ0FjdGlvbiA9PSBCYWNrdHJhY2tpbmdBY3Rpb246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsIHx8
IGZyYWdtZW50LnRyYXZlcnNhbEJhY2t0cmFja2luZ0FjdGlvbiA9PSBCYWNrdHJhY2tpbmdBY3Rp
b246Okp1bXBUb0Rlc2NlbmRhbnRUYWlsOwogfQogCi12b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKK3ZvaWQgY29tcHV0ZUJhY2t0cmFj
a2luZ0luZm9ybWF0aW9uKFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3RvckZyYWdtZW50cywg
Ym9vbCYgbmVlZHNBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KQogewogICAgIGJvb2wgaGFzRGVz
Y2VuZGFudFJlbGF0aW9uT25UaGVSaWdodCA9IGZhbHNlOwogICAgIHVuc2lnbmVkIGFuY2VzdG9y
UG9zaXRpb25TaW5jZURlc2NlbmRhbnRSZWxhdGlvbiA9IDA7CkBAIC04OTAsOCArOTQ2LDggQEAg
dm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlv
bigpCiAgICAgY29uc3QgU2VsZWN0b3JGcmFnbWVudCogcHJldmlvdXNDaGlsZEZyYWdtZW50SW5D
aGlsZENoYWluID0gbnVsbHB0cjsKICAgICBjb25zdCBTZWxlY3RvckZyYWdtZW50KiBwcmV2aW91
c0RpcmVjdEFkamFjZW50RnJhZ21lbnRJbkRpcmVjdEFkamFjZW50Q2hhaW4gPSBudWxscHRyOwog
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2VsZWN0b3JGcmFnbWVudHMuc2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgU2VsZWN0b3JGcmFnbWVudCYgZnJhZ21lbnQgPSBtX3NlbGVjdG9y
RnJhZ21lbnRzW2ldOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZWxlY3RvckZyYWdt
ZW50cy5zaXplKCk7ICsraSkgeworICAgICAgICBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCA9
IHNlbGVjdG9yRnJhZ21lbnRzW2ldOwogCiAgICAgICAgIHVwZGF0ZUNoYWluU3RhdGVzKGZyYWdt
ZW50LCBoYXNEZXNjZW5kYW50UmVsYXRpb25PblRoZVJpZ2h0LCBhbmNlc3RvclBvc2l0aW9uU2lu
Y2VEZXNjZW5kYW50UmVsYXRpb24sIGhhc0luZGlyZWN0QWRqYWNlbnRSZWxhdGlvbk9uVGhlUmln
aHRPZkRpcmVjdEFkamFjZW50Q2hhaW4sIGFkamFjZW50UG9zaXRpb25TaW5jZUluZGlyZWN0QWRq
YWNlbnRUcmVlV2Fsayk7CiAKQEAgLTkyNiw4ICs5ODIsOCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdl
bmVyYXRvcjo6Y29tcHV0ZUJhY2t0cmFja2luZ0luZm9ybWF0aW9uKCkKICAgICAgICAgICAgICAg
ICBBU1NFUlQoZnJhZ21lbnQucmVsYXRpb25Ub1JpZ2h0RnJhZ21lbnQgPT0gRnJhZ21lbnRSZWxh
dGlvbjo6RGlyZWN0QWRqYWNlbnQpOwogICAgICAgICAgICAgICAgIEFTU0VSVChzYXZlSW5kaXJl
Y3RBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleCAhPSBzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpOwogICAgICAgICAgICAgICAgIGZyYWdtZW50LmJhY2t0
cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OkRpcmVjdEFkamFjZW50VGFpbDsKLSAg
ICAgICAgICAgICAgICBtX3NlbGVjdG9yRnJhZ21lbnRzW3NhdmVJbmRpcmVjdEFkamFjZW50QmFj
a3RyYWNraW5nU3RhcnRGcmFnbWVudEluZGV4XS5iYWNrdHJhY2tpbmdGbGFncyB8PSBCYWNrdHJh
Y2tpbmdGbGFnOjpTYXZlQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydDsKLSAgICAgICAgICAgICAg
ICBtX25lZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgc2VsZWN0b3JGcmFnbWVudHNbc2F2ZUluZGlyZWN0QWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFy
dEZyYWdtZW50SW5kZXhdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OlNh
dmVBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0OworICAgICAgICAgICAgICAgIG5lZWRzQWRqYWNl
bnRCYWNrdHJhY2tpbmdTdGFydCA9IHRydWU7CiAgICAgICAgICAgICAgICAgbmVlZHNBZGphY2Vu
dFRhaWwgPSBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNhdmVJbmRpcmVjdEFk
amFjZW50QmFja3RyYWNraW5nU3RhcnRGcmFnbWVudEluZGV4ID0gc3RkOjpudW1lcmljX2xpbWl0
czx1bnNpZ25lZD46Om1heCgpOwpAQCAtOTM2LDEwICs5OTIsMTAgQEAgdm9pZCBTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbigpCiAgICAgICAgICAg
ICBpZiAobmVlZHNEZXNjZW5kYW50VGFpbCkgewogICAgICAgICAgICAgICAgIEFTU0VSVChzYXZl
RGVzY2VuZGFudEJhY2t0cmFja2luZ1N0YXJ0RnJhZ21lbnRJbmRleCAhPSBzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpOwogICAgICAgICAgICAgICAgIGZyYWdtZW50LmJhY2t0
cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OkRlc2NlbmRhbnRUYWlsOwotICAgICAg
ICAgICAgICAgIG1fc2VsZWN0b3JGcmFnbWVudHNbc2F2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdT
dGFydEZyYWdtZW50SW5kZXhdLmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6
OlNhdmVEZXNjZW5kYW50QmFja3RyYWNraW5nU3RhcnQ7CisgICAgICAgICAgICAgICAgc2VsZWN0
b3JGcmFnbWVudHNbc2F2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdTdGFydEZyYWdtZW50SW5kZXhd
LmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OlNhdmVEZXNjZW5kYW50QmFj
a3RyYWNraW5nU3RhcnQ7CiAgICAgICAgICAgICAgICAgbmVlZHNEZXNjZW5kYW50VGFpbCA9IGZh
bHNlOwogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IHNhdmVEZXNjZW5kYW50QmFj
a3RyYWNraW5nU3RhcnRGcmFnbWVudEluZGV4OyBqIDw9IGk7ICsraikKLSAgICAgICAgICAgICAg
ICAgICAgbV9zZWxlY3RvckZyYWdtZW50c1tqXS5iYWNrdHJhY2tpbmdGbGFncyB8PSBCYWNrdHJh
Y2tpbmdGbGFnOjpJbkNoYWluV2l0aERlc2NlbmRhbnRUYWlsOworICAgICAgICAgICAgICAgICAg
ICBzZWxlY3RvckZyYWdtZW50c1tqXS5iYWNrdHJhY2tpbmdGbGFncyB8PSBCYWNrdHJhY2tpbmdG
bGFnOjpJbkNoYWluV2l0aERlc2NlbmRhbnRUYWlsOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgc2F2ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdTdGFydEZyYWdtZW50SW5kZXggPSBzdGQ6Om51
bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAgICAgICAgIH0KQEAgLTk2Miw3ICsxMDE4
LDcgQEAgaW5saW5lIGJvb2wgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVByb2xvZ3Vl
KCkKICNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KLSAgICAKKwogaW5saW5lIHZvaWQgU2Vs
ZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVwaWxvZ3VlKCkKIHsKICNpZiBDUFUoQVJNNjQp
CkBAIC05NzYsMTUgKzEwMzIsMTggQEAgaW5saW5lIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpnZW5lcmF0ZUVwaWxvZ3VlKCkKICAgICBtX3N0YWNrQWxsb2NhdG9yLnBvcChtX3Byb2xvZ3Vl
U3RhY2tSZWZlcmVuY2VzLCBwcm9sb2d1ZVJlZ2lzdGVyKTsKICNlbmRpZgogfQotICAgIAorCiB2
b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogewog
ICAgIGJvb2wgbmVlZHNFcGlsb2d1ZSA9IGdlbmVyYXRlUHJvbG9ndWUoKTsKLSAgICAKKwogICAg
IFZlY3RvcjxTdGFja0FsbG9jYXRvcjo6U3RhY2tSZWZlcmVuY2U+IGNhbGxlZVNhdmVkUmVnaXN0
ZXJTdGFja1JlZmVyZW5jZXM7CiAgICAgYm9vbCByZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJz
ID0gZmFsc2U7CiAgICAgdW5zaWduZWQgYXZhaWxhYmxlUmVnaXN0ZXJDb3VudCA9IG1fcmVnaXN0
ZXJBbGxvY2F0b3IuYXZhaWxhYmxlUmVnaXN0ZXJDb3VudCgpOwogICAgIHVuc2lnbmVkIG1pbmlt
dW1SZWdpc3RlckNvdW50Rm9yQXR0cmlidXRlcyA9IG1pbmltdW1SZWdpc3RlclJlcXVpcmVtZW50
cyhtX3NlbGVjdG9yRnJhZ21lbnRzKTsKKyNpZiBDU1NfU0VMRUNUT1JfSklUX0RFQlVHR0lORwor
ICAgIGRhdGFMb2dGKCJDb21waWxpbmcgd2l0aCBtaW5pbXVtIHJlcXVpcmVkIHJlZ2lzdGVyIGNv
dW50ICV1XG4iLCBtaW5pbXVtUmVnaXN0ZXJDb3VudEZvckF0dHJpYnV0ZXMpOworI2VuZGlmCiAg
ICAgQVNTRVJUKG1pbmltdW1SZWdpc3RlckNvdW50Rm9yQXR0cmlidXRlcyA8PSByZWdpc3RlckNv
dW50KTsKICAgICBpZiAoYXZhaWxhYmxlUmVnaXN0ZXJDb3VudCA8IG1pbmltdW1SZWdpc3RlckNv
dW50Rm9yQXR0cmlidXRlcykgewogICAgICAgICByZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJz
ID0gdHJ1ZTsKQEAgLTEyOTAsNyArMTM0OSw3IEBAIHN0YXRpYyBib29sIGZyYWdtZW50T25seU1h
dGNoZXNMaW5rc0luUXVpcmtzTW9kZShjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVuCiAg
ICAgaWYgKCFmcmFnbWVudC5jbGFzc05hbWVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKCFmcmFnbWVudC51bm9wdGltaXplZFBzZXVkb0NsYXNzZXMuaXNFbXB0
eSgpIHx8ICFmcmFnbWVudC5udGhDaGlsZGZpbHRlcnMuaXNFbXB0eSgpKQorICAgIGlmICghZnJh
Z21lbnQudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzLmlzRW1wdHkoKSB8fCAhZnJhZ21lbnQubnRo
Q2hpbGRGaWx0ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9y
ICh1bnNpZ25lZCBwc2V1ZG9DbGFzc1R5cGUgOiBmcmFnbWVudC5wc2V1ZG9DbGFzc2VzKSB7CkBA
IC0xNTkxLDggKzE2NTAsMTAgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRl
RWxlbWVudE1hdGNoaW5nKEFzc2VtYmxlcjo6SnVtcExpc3QmIG1hdGNoaW4KICAgICAgICAgZ2Vu
ZXJhdGVFbGVtZW50SXNGaXJzdENoaWxkKG1hdGNoaW5nUG9zdFRhZ05hbWVGYWlsdXJlQ2FzZXMs
IGZyYWdtZW50KTsKICAgICBpZiAoZnJhZ21lbnQucHNldWRvQ2xhc3Nlcy5jb250YWlucyhDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYXN0Q2hpbGQpKQogICAgICAgICBnZW5lcmF0ZUVsZW1lbnRJ
c0xhc3RDaGlsZChtYXRjaGluZ1Bvc3RUYWdOYW1lRmFpbHVyZUNhc2VzLCBmcmFnbWVudCk7Ci0g
ICAgaWYgKCFmcmFnbWVudC5udGhDaGlsZGZpbHRlcnMuaXNFbXB0eSgpKQorICAgIGlmICghZnJh
Z21lbnQubnRoQ2hpbGRGaWx0ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgZ2VuZXJhdGVFbGVtZW50
SXNOdGhDaGlsZChtYXRjaGluZ1Bvc3RUYWdOYW1lRmFpbHVyZUNhc2VzLCBmcmFnbWVudCk7Cisg
ICAgaWYgKCFmcmFnbWVudC5ub3RGaWx0ZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgZ2VuZXJhdGVF
bGVtZW50TWF0Y2hlc05vdFBzZXVkb0NsYXNzKG1hdGNoaW5nUG9zdFRhZ05hbWVGYWlsdXJlQ2Fz
ZXMsIGZyYWdtZW50KTsKIH0KIAogdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRl
RWxlbWVudERhdGFNYXRjaGluZyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMsIGNv
bnN0IFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50KQpAQCAtMTYxMyw3ICsxNjc0LDcgQEAgdm9p
ZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudERhdGFNYXRjaGluZyhBc3Nl
bWJsZXI6Okp1bXBMaXN0JiBmYWkKICAgICBpZiAoIWZyYWdtZW50LmNsYXNzTmFtZXMuaXNFbXB0
eSgpKQogICAgICAgICBnZW5lcmF0ZUVsZW1lbnRIYXNDbGFzc2VzKGZhaWx1cmVDYXNlcywgZWxl
bWVudERhdGFBZGRyZXNzLCBmcmFnbWVudC5jbGFzc05hbWVzKTsKICAgICBpZiAoIWZyYWdtZW50
LmF0dHJpYnV0ZXMuaXNFbXB0eSgpKQotICAgIGdlbmVyYXRlRWxlbWVudEF0dHJpYnV0ZXNNYXRj
aGluZyhmYWlsdXJlQ2FzZXMsIGVsZW1lbnREYXRhQWRkcmVzcywgZnJhZ21lbnQpOworICAgICAg
ICBnZW5lcmF0ZUVsZW1lbnRBdHRyaWJ1dGVzTWF0Y2hpbmcoZmFpbHVyZUNhc2VzLCBlbGVtZW50
RGF0YUFkZHJlc3MsIGZyYWdtZW50KTsKIH0KIAogc3RhdGljIGlubGluZSBBc3NlbWJsZXI6Okp1
bXAgdGVzdElzSFRNTEZsYWdPbk5vZGUoQXNzZW1ibGVyOjpSZXN1bHRDb25kaXRpb24gY29uZGl0
aW9uLCBBc3NlbWJsZXImIGFzc2VtYmxlciwgQXNzZW1ibGVyOjpSZWdpc3RlcklEIG5vZGVBZGRy
ZXNzKQpAQCAtMjM4NSw4ICsyNDQ2LDggQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6Omdl
bmVyYXRlRWxlbWVudElzTnRoQ2hpbGQoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHUKICAgICBn
ZW5lcmF0ZVdhbGtUb1BhcmVudEVsZW1lbnQoZmFpbHVyZUNhc2VzLCBwYXJlbnRFbGVtZW50KTsK
IAogICAgIFZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiB2YWxpZFN1YnNldEZpbHRlcnM7Ci0g
ICAgdmFsaWRTdWJzZXRGaWx0ZXJzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZnJhZ21lbnQubnRo
Q2hpbGRmaWx0ZXJzLnNpemUoKSk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBzbG90IDogZnJhZ21l
bnQubnRoQ2hpbGRmaWx0ZXJzKSB7CisgICAgdmFsaWRTdWJzZXRGaWx0ZXJzLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoZnJhZ21lbnQubnRoQ2hpbGRGaWx0ZXJzLnNpemUoKSk7CisgICAgZm9yIChj
b25zdCBhdXRvJiBzbG90IDogZnJhZ21lbnQubnRoQ2hpbGRGaWx0ZXJzKSB7CiAgICAgICAgIGlu
dCBhID0gc2xvdC5maXJzdDsKICAgICAgICAgaW50IGIgPSBzbG90LnNlY29uZDsKIApAQCAtMjQ5
NCw2ICsyNTU1LDE3IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1l
bnRJc050aENoaWxkKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1CiAgICAgfQogfQogCit2b2lk
IFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50TWF0Y2hlc05vdFBzZXVkb0Ns
YXNzKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcywgY29uc3QgU2VsZWN0b3JGcmFn
bWVudCYgZnJhZ21lbnQpCit7CisgICAgZm9yIChjb25zdCBhdXRvJiBzdWJGcmFnbWVudCA6IGZy
YWdtZW50Lm5vdEZpbHRlcnMpIHsKKyAgICAgICAgQXNzZW1ibGVyOjpKdW1wTGlzdCBsb2NhbEZh
aWx1cmVDYXNlczsKKyAgICAgICAgZ2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcobG9jYWxGYWlsdXJl
Q2FzZXMsIGxvY2FsRmFpbHVyZUNhc2VzLCBzdWJGcmFnbWVudCk7CisgICAgICAgIC8vIFNpbmNl
IHRoaXMgaXMgYSBub3QgcHNldWRvIGNsYXNzIGZpbHRlciwgcmVhY2hpbmcgaGVyZSBpcyBhIGZh
aWx1cmUuCisgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQobV9hc3NlbWJsZXIuanVtcCgpKTsK
KyAgICAgICAgbG9jYWxGYWlsdXJlQ2FzZXMubGluaygmbV9hc3NlbWJsZXIpOworICAgIH0KK30K
Kwogdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudElzUm9vdChBc3Nl
bWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpCiB7CiAgICAgTG9jYWxSZWdpc3RlciBkb2N1
bWVudChtX3JlZ2lzdGVyQWxsb2NhdG9yKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMmFjOTlmZDY5ODU2ZWEyYmY4YmUx
NTlhMzZlM2RlYWMwN2Y5YzBlLi44YmM2ZTRlODU2MDliM2IwZjU0Y2M2M2U3MGZiODUyZmFlMmRj
YTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTQtMDYtMDEgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgQ1NTIEpJVDogYWRkIHN1cHBvcnQgZm9y
IHRoZSAibm90IiBwc2V1ZG8gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMzMxNAorCisgICAgICAgIEFkZCA6bm90IHBzZXVkbyBjbGFzcyBz
dXBwb3J0IHRvIENTUyBKSVQuIEN1cnJlbnQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgZG9lc24n
dCBzdXBwb3J0IHZpc2l0ZWRNYXRjaFR5cGUuIFNvIHdoZW4gbGluayBwc2V1ZG8gY2xhc3MgYXBw
ZWFycyBpbgorICAgICAgICA6bm90IHN1YiBmcmFnbWVudCwgZmFsbGJhY2sgdG8gdGhlIG5vbi1K
SVQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXF1aXJrcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUtaG92
ZXItcXVpcmtzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL25vdC1hY3Rp
dmUtaG92ZXItc3RyaWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxl
Y3RvcnMvbm90LWFjdGl2ZS1ob3Zlci1zdHJpY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3Qvc2VsZWN0b3JzL3BzZXVkby1jbGFzcy1ub3QuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zZWxlY3RvcnMvcmVzb3VyY2VzL25vdC1ob3Zlci1hY3RpdmUtcXVpcmtzLXV0aWxp
dHkuanM6IEFkZGVkLgorICAgICAgICAodGVzdFF1ZXJ5U2VsZWN0b3IpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvcmVzb3VyY2VzL25vdC1ob3Zlci1hY3RpdmUt
c3RyaWN0LXV0aWxpdHkuanM6IEFkZGVkLgorICAgICAgICAodGVzdFF1ZXJ5U2VsZWN0b3IpOgor
ICAgICAgICAodGVzdCk6CisKIDIwMTQtMDYtMDEgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtp
bUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBFRkwgZ2FyZGVuaW5nLiBVbnNraXAgc29tZSBpZnJh
bWUgdGVzdHMgd2hpY2ggaGF2ZSBwYXNzZWQgc2luY2UgYnVpbGRib3QgT1MgYnVtcCB1cC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUtaG92ZXItcXVp
cmtzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUt
aG92ZXItcXVpcmtzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjA4YzFjYjY1ODkzN2U0MGM0
MWIyNzUwZTI0YWQ1OWNlOGM1NDAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zZWxlY3RvcnMvbm90LWFjdGl2ZS1ob3Zlci1xdWlya3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTk0IEBACitTVEFSVAorVGVzdCB0aGUgOm5vdCg6YWN0aXZlKSBhbmQgOm5vdCg6aG92ZXIp
IHNlbGVjdG9yIHdoZW4gdGhlIGRvY3VtZW50IGlzIGluIHF1aXJrcyBtb2RlLiBUbyB0ZXN0IG1h
bnVhbGx5LCBtYWtlIHN1cmUgbm90IHRvIG1vdmUgdGhlIGN1cnNvciBvdmVyIHRoZSBncmVlbiBy
ZWN0YW5nbGUgYW5kIHByZXNzIHRoZSBncmF5IFNUQVJUIGRpdiB1bnRpbCB0aGUgdGVzdCBpcyBm
aW5pc2hlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0aCAtIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ijpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpLmxlbmd0aCAtIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIio6bm90KDphY3RpdmUpIikubGVuZ3RoIGlzIDMKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2Io
NCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSk6
aG92ZXIiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiOmhvdmVyOm5vdCg6YWN0aXZlKSIpLmxlbmd0aCBpcyAwCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
aG92ZXI6bm90KDphY3RpdmUpOmhvdmVyIikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwg
MiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSk6YWN0
aXZlIikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIjphY3RpdmU6bm90KDphY3RpdmUpIikubGVuZ3RoIGlzIDAKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjph
Y3RpdmU6bm90KDphY3RpdmUpOmFjdGl2ZSIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEs
IDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm5vdCg6YWN0
aXZlKSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIjdGFyZ2V0Om5vdCg6YWN0aXZlKSIpLmxlbmd0aCBpcyAxCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
bm90KDphY3RpdmUpI3RhcmdldCIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGFyZ2V0Om5vdCg6YWN0aXZlKSN0
YXJnZXQiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzczpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMQor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSku
Y29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
Om5vdCg6YWN0aXZlKS5hQ2xhc3MiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2
KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzczpub3QoOmFjdGl2ZSku
b3RoZXJDbGFzcyIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdF0iKS5sZW5ndGggaXMgMQor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSku
Y29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
Om5vdCg6YWN0aXZlKVt3ZWJraXRdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwg
NikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZF06bm90KDphY3RpdmUpW3dl
YmtpdF0iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQ9cm9ja3NdIikubGVuZ3RoIGlzIDEK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikp
LmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
Ijpub3QoOmFjdGl2ZSlbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQ9dGFyZ2V0XTpu
b3QoOmFjdGl2ZSlbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQs
IDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdF49
cm9dIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0Xj1yb10iKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiW2lkXj10YV06bm90KDphY3RpdmUpW3dlYmtpdF49cm9dIikubGVuZ3RoIGlzIDEKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9y
IGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xh
c3Nbd2Via2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0aXZlKVt3ZWJraXQkPWtzXSIp
Lmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCJbaWQkPWV0XTpub3QoOmFjdGl2ZSlbd2Via2l0JD1rc10iKS5sZW5ndGgg
aXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiLmFDbGFzc1t3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQs
IDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDphY3RpdmUpW3dl
YmtpdCo9Y2tdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZCo9cmddOm5vdCg6YWN0aXZlKVt3ZWJraXQqPWNr
XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdH49cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpu
b3QoOmFjdGl2ZSlbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0
LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkfj10YXJnZXRdOm5v
dCg6YWN0aXZlKVt3ZWJraXR+PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQs
IDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdHw9
cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0fD1yb2Nrc10iKS5sZW5n
dGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiW2lkfD10YXJnZXRdOm5vdCg6YWN0aXZlKVt3ZWJraXR8PXJvY2tzXSIpLmxlbmd0
aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCJ0ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMQor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSku
Y29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
dGVzdGluZzpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKDEpIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRlc3Rpbmc6
bnRoLWNoaWxkKDEpOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQoMSkiKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50
aC1jaGlsZChuKTpub3QoOmFjdGl2ZSkgPiAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFj
dGl2ZSk6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bnRoLWNoaWxkKG4p
Om5vdCg6YWN0aXZlKTpudGgtY2hpbGQobikgPiAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9y
IGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpudGgt
Y2hpbGQobik6bm90KDphY3RpdmUpICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJn
YigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0aXZl
KTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIs
IDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bnRoLWNoaWxkKG4pOm5vdCg6
YWN0aXZlKTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6LXdlYmtpdC1hbnko
Om5vdCg6YWN0aXZlKSkgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIs
IDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVuZ3RoIC0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpIikubGVuZ3RoIGlzIDMKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5sZW5n
dGggLSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqOm5vdCg6aG92ZXIpIikubGVuZ3RoIGlz
IDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIjpub3QoOmhvdmVyKTpob3ZlciIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIs
IDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6aG92ZXI6bm90KDpob3Zlciki
KS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiOmhvdmVyOm5vdCg6aG92ZXIpOmhvdmVyIikubGVuZ3RoIGlzIDAKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpu
b3QoOmhvdmVyKTphY3RpdmUiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmFjdGl2ZTpub3QoOmhvdmVyKSIpLmxl
bmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6YWN0aXZlOm5vdCg6aG92ZXIpOmFjdGl2ZSIpLmxlbmd0aCBpcyAwCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xv
ciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0ZXN0
aW5nOm5vdCg6aG92ZXIpIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0YXJnZXQ6bm90KDpob3ZlcikiKS5sZW5n
dGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiOm5vdCg6aG92ZXIpI3RhcmdldCIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGFyZ2V0Om5vdCg6
aG92ZXIpI3RhcmdldCIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzOm5vdCg6aG92ZXIpIikubGVuZ3Ro
IGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIjpub3QoOmhvdmVyKS5hQ2xhc3MiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0
LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzczpub3QoOmhv
dmVyKS5vdGhlckNsYXNzIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0XSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCI6bm90KDpob3Zlcilbd2Via2l0XSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQs
IDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWRdOm5vdCg6aG92ZXIp
W3dlYmtpdF0iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQ9cm9ja3NdIikubGVuZ3RoIGlz
IDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIjpub3QoOmhvdmVyKVt3ZWJraXQ9cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZD10YXJnZXRd
Om5vdCg6aG92ZXIpW3dlYmtpdD1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0
LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXRe
PXJvXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0Xj1yb10iKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiW2lkXj10YV06bm90KDpob3Zlcilbd2Via2l0Xj1yb10iKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFz
c1t3ZWJraXQkPWtzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0JD1rc10iKS5s
ZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiW2lkJD1ldF06bm90KDpob3Zlcilbd2Via2l0JD1rc10iKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLmFDbGFzc1t3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0
Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiW2lkKj1yZ106bm90KDpob3Zlcilbd2Via2l0Kj1ja10iKS5s
ZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXR+PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBp
cyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpo
b3Zlcilbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2
KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkfj10YXJnZXRdOm5vdCg6aG92
ZXIpW3dlYmtpdH49cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNiki
CitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0fD1yb2Nrc10i
KS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpW3dlYmtpdHw9cm9ja3NdIikubGVuZ3RoIGlzIDEK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iikp
LmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
IltpZHw9dGFyZ2V0XTpub3QoOmhvdmVyKVt3ZWJraXR8PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5j
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0
ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmhvdmVyKSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAi
cmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm5v
dCg6aG92ZXIpOm50aC1jaGlsZCgxKSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm50aC1jaGlsZCgx
KTpub3QoOmhvdmVyKTpudGgtY2hpbGQoMSkiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0
LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGlsZChuKTpu
b3QoOmhvdmVyKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAz
KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpOm50aC1jaGls
ZChuKSA+ICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGlsZChuKTpub3QoOmhvdmVyKTpu
dGgtY2hpbGQobikgPiAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwg
MykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpudGgtY2hpbGQobik6bm90KDpo
b3ZlcikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDpob3Zlcik6bnRoLWNoaWxkKG4pICN0
YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGlsZChuKTpub3QoOmhvdmVyKTpudGgtY2hpbGQo
bikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6LXdlYmtpdC1hbnkoOm5vdCg6aG92ZXIpKSAjdGFy
Z2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zZWxlY3RvcnMvbm90LWFjdGl2ZS1ob3Zlci1xdWlya3MuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUtaG92ZXItcXVpcmtzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2ZmYmZmZGY2MGMzODJmMmQ5ZDRhM2Q3Yzg2OTA5OTA0OGQzM2ZmOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3RpdmUtaG92ZXItcXVp
cmtzLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9ub3QtaG92ZXItYWN0aXZlLXF1aXJrcy11dGlsaXR5LmpzIj48L3NjcmlwdD4KKzxz
dHlsZSBpZD0idGVzdFN0eWxlIj4KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzx0ZXN0aW5n
IGlkPSJ0YXJnZXQiIGNsYXNzPSJhQ2xhc3Mgb3RoZXJDbGFzcyIgd2Via2l0PSJyb2NrcyIgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6Z3JlZW47IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MjAwcHg7ZGlz
cGxheTpibG9jazsiPjwvdGVzdGluZz4KKzxkaXYgaWQ9InN0YXJ0IiBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjpncmF5OyBoZWlnaHQ6MjAwcHg7IHdpZHRoOjIwMHB4OyBkaXNwbGF5OmJsb2NrOyB0
ZXh0LWFsaWduOmNlbnRlcjsgY29sb3I6d2hpdGU7Ij5TVEFSVDwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVz
dCB0aGUgOm5vdCg6YWN0aXZlKSBhbmQgOm5vdCg6aG92ZXIpIHNlbGVjdG9yIHdoZW4gdGhlIGRv
Y3VtZW50IGlzIGluIHF1aXJrcyBtb2RlLiBUbyB0ZXN0IG1hbnVhbGx5LCBtYWtlIHN1cmUgbm90
IHRvIG1vdmUgdGhlIGN1cnNvciBvdmVyIHRoZSBncmVlbiByZWN0YW5nbGUgYW5kIHByZXNzIHRo
ZSBncmF5IFNUQVJUIGRpdiB1bnRpbCB0aGUgdGVzdCBpcyBmaW5pc2hlZC4nKTsKKworaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworICAgIHZhciBzdGFydCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzdGFydCcpOworICAgIHZhciB4ID0gc3RhcnQub2Zmc2V0TGVmdCArIHN0YXJ0Lm9mZnNl
dFdpZHRoIC8gMjsKKyAgICB2YXIgeSA9IHN0YXJ0Lm9mZnNldFRvcCArIHN0YXJ0Lm9mZnNldEhl
aWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7CisgICAgdGVzdCgnOmFjdGl2ZScpOworICAgIHRlc3QoJzpob3Zl
cicpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKQorfSBlbHNlIHsKKyAgICAvLyBGb3Igc29t
ZSByZWFzb25zLCB0aGUgdGVzdCBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aG91dCB0aGUgdGltZW91
dCBvbiBGaXJlZm94LgorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGFydCcpLmFkZEV2
ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uKGV2KSB7CisgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdCgnOmFjdGl2ZScpOworICAgICAgICAg
ICAgdGVzdCgnOmhvdmVyJyk7CisgICAgICAgIH0sIDI1MCk7CisgICAgfSk7Cit9CisKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbm90
LWFjdGl2ZS1ob3Zlci1zdHJpY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxl
Y3RvcnMvbm90LWFjdGl2ZS1ob3Zlci1zdHJpY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3
OWI5YmY5M2RlMThhMjBiZWVkMzIxMjJiMmUxODM1MTQ0YTdmMzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9ub3QtYWN0aXZlLWhvdmVyLXN0cmljdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNzAgQEAKK1NUQVJUCitUZXN0IHRoZSA6bm90KDphY3RpdmUp
IGFuZCA6bm90KDpob3Zlcikgc2VsZWN0b3Igd2hlbiB0aGUgZG9jdW1lbnQgaXMgaW4gc3RyaWN0
IG1vZGUuIFRvIHRlc3QgbWFudWFsbHksIG1ha2Ugc3VyZSBub3QgdG8gbW92ZSB0aGUgY3Vyc29y
IG92ZXIgdGhlIGdyZWVuIHJlY3RhbmdsZSBhbmQgcHJlc3MgdGhlIGdyYXkgU1RBUlQgZGl2IHVu
dGlsIHRoZSB0ZXN0IGlzIGZpbmlzaGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0ZXN0aW5nOm5vdCg6YWN0aXZlKSIp
Lmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIjdGFyZ2V0Om5vdCg6YWN0aXZlKSIpLmxlbmd0aCBpcyAxCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBp
cyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDph
Y3RpdmUpI3RhcmdldCIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGFyZ2V0Om5vdCg6YWN0aXZlKSN0YXJnZXQi
KS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiLmFDbGFzczpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6
YWN0aXZlKS5hQ2xhc3MiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzczpub3QoOmFjdGl2ZSkub3RoZXJD
bGFzcyIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdF0iKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6
YWN0aXZlKVt3ZWJraXRdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZF06bm90KDphY3RpdmUpW3dlYmtpdF0i
KS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiLmFDbGFzc1t3ZWJraXQ9cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9y
IGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3Qo
OmFjdGl2ZSlbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQ9dGFyZ2V0XTpub3QoOmFj
dGl2ZSlbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdF49cm9dIiku
bGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0Xj1yb10iKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lk
Xj10YV06bm90KDphY3RpdmUpW3dlYmtpdF49cm9dIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Vi
a2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0aXZlKVt3ZWJraXQkPWtzXSIpLmxlbmd0
aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCJbaWQkPWV0XTpub3QoOmFjdGl2ZSlbd2Via2l0JD1rc10iKS5sZW5ndGggaXMgMQor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSku
Y29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
LmFDbGFzc1t3ZWJraXQqPWNrXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KDphY3RpdmUpW3dlYmtpdCo9
Y2tdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZCo9cmddOm5vdCg6YWN0aXZlKVt3ZWJraXQqPWNrXSIpLmxl
bmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdH49cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFj
dGl2ZSlbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2
KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkfj10YXJnZXRdOm5vdCg6YWN0
aXZlKVt3ZWJraXR+PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdHw9cm9ja3Nd
IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSlbd2Via2l0fD1yb2Nrc10iKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiW2lkfD10YXJnZXRdOm5vdCg6YWN0aXZlKVt3ZWJraXR8PXJvY2tzXSIpLmxlbmd0aCBpcyAx
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIp
KS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJ0ZXN0aW5nOm50aC1jaGlsZCgxKTpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGVzdGlu
Zzpub3QoOmFjdGl2ZSk6bnRoLWNoaWxkKDEpIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2Io
NCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRlc3Rpbmc6bnRoLWNo
aWxkKDEpOm5vdCg6YWN0aXZlKTpudGgtY2hpbGQoMSkiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm50aC1jaGls
ZChuKTpub3QoOmFjdGl2ZSkgPiAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2Io
MSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmFjdGl2ZSk6
bnRoLWNoaWxkKG4pID4gI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIs
IDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bnRoLWNoaWxkKG4pOm5vdCg6
YWN0aXZlKTpudGgtY2hpbGQobikgPiAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoMSwgMiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpudGgtY2hpbGQo
bik6bm90KDphY3RpdmUpICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAy
LCAzKSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0aXZlKTpudGgt
Y2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bnRoLWNoaWxkKG4pOm5vdCg6YWN0aXZl
KTpudGgtY2hpbGQobikgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIs
IDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6LXdlYmtpdC1hbnkoOm5vdCg6
YWN0aXZlKSkgI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVuZ3RoIC0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiOm5vdCg6YWN0aXZlKSIpLmxlbmd0aCBpcyAzCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdi
KDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVuZ3RoIC0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKjpub3QoOmFjdGl2ZSkiKS5sZW5ndGggaXMgMwor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSku
Y29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
dGVzdGluZzpub3QoOmhvdmVyKSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGFyZ2V0Om5vdCg6aG92ZXIpIiku
bGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKSN0YXJnZXQiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3RhcmdldDpu
b3QoOmhvdmVyKSN0YXJnZXQiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFDbGFzczpub3QoOmhvdmVyKSIpLmxl
bmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6bm90KDpob3ZlcikuYUNsYXNzIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3M6bm90
KDpob3Zlcikub3RoZXJDbGFzcyIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdF0iKS5sZW5n
dGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiOm5vdCg6aG92ZXIpW3dlYmtpdF0iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJn
Yig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2lkXTpub3QoOmhv
dmVyKVt3ZWJraXRdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNT
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0PXJvY2tzXSIpLmxlbmd0
aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCI6bm90KDpob3Zlcilbd2Via2l0PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBp
cyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbaWQ9dGFy
Z2V0XTpub3QoOmhvdmVyKVt3ZWJraXQ9cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Vi
a2l0Xj1yb10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpW3dlYmtpdF49cm9dIikubGVuZ3Ro
IGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIltpZF49dGFdOm5vdCg6aG92ZXIpW3dlYmtpdF49cm9dIikubGVuZ3RoIGlzIDEKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNv
bG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5h
Q2xhc3Nbd2Via2l0JD1rc10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpW3dlYmtpdCQ9a3Nd
IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIltpZCQ9ZXRdOm5vdCg6aG92ZXIpW3dlYmtpdCQ9a3NdIikubGVuZ3Ro
IGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIi5hQ2xhc3Nbd2Via2l0Kj1ja10iKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0
LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpW3dl
YmtpdCo9Y2tdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZCo9cmddOm5vdCg6aG92ZXIpW3dlYmtpdCo9Y2td
IikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIi5hQ2xhc3Nbd2Via2l0fj1yb2Nrc10iKS5sZW5ndGggaXMgMQorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5v
dCg6aG92ZXIpW3dlYmtpdH49cm9ja3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwg
NSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49dGFyZ2V0XTpub3Qo
OmhvdmVyKVt3ZWJraXR+PXJvY2tzXSIpLmxlbmd0aCBpcyAxCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYUNsYXNzW3dlYmtpdHw9cm9j
a3NdIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKVt3ZWJraXR8PXJvY2tzXSIpLmxlbmd0aCBp
cyAxCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpKS5jb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCJbaWR8PXRhcmdldF06bm90KDpob3Zlcilbd2Via2l0fD1yb2Nrc10iKS5sZW5ndGggaXMg
MQorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgidGVzdGluZzpudGgtY2hpbGQoMSk6bm90KDpob3ZlcikiKS5sZW5ndGggaXMgMQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGVzdGlu
Zzpub3QoOmhvdmVyKTpudGgtY2hpbGQoMSkiKS5sZW5ndGggaXMgMQorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYig0
LCA1LCA2KSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGVzdGluZzpudGgtY2hp
bGQoMSk6bm90KDpob3Zlcik6bnRoLWNoaWxkKDEpIikubGVuZ3RoIGlzIDEKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpudGgtY2hpbGQo
bik6bm90KDpob3ZlcikgPiAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwg
MiwgMykiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpub3QoOmhvdmVyKTpudGgt
Y2hpbGQobikgPiAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMyki
CitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpudGgtY2hpbGQobik6bm90KDpob3Zl
cik6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEs
IDIsIDMpIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bnRoLWNoaWxkKG4pOm5v
dCg6aG92ZXIpICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOm5vdCg6aG92ZXIpOm50aC1jaGlsZChu
KSAjdGFyZ2V0IikubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpudGgtY2hpbGQobik6bm90KDpob3Zlcik6bnRoLWNo
aWxkKG4pICN0YXJnZXQiKS5sZW5ndGggaXMgMAorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuY29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOi13ZWJraXQtYW55KDpub3QoOmhvdmVyKSkg
I3RhcmdldCIpLmxlbmd0aCBpcyAwCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpKS5jb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVuZ3RoIC0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiOm5vdCg6aG92ZXIpIikubGVuZ3RoIGlzIDMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJyZ2IoNCwgNSwgNiki
CitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5sZW5ndGggLSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIqOm5vdCg6aG92ZXIpIikubGVuZ3RoIGlzIDMKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLmNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbm90LWFjdGl2
ZS1ob3Zlci1zdHJpY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL25vdC1hY3Rp
dmUtaG92ZXItc3RyaWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRmNzI4MjE3NTE0ZTIwYjIxYWQ0Nzlm
MjQ0M2ViOTM5NDY2ZmY3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Vs
ZWN0b3JzL25vdC1hY3RpdmUtaG92ZXItc3RyaWN0Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL25vdC1o
b3Zlci1hY3RpdmUtc3RyaWN0LXV0aWxpdHkuanMiPjwvc2NyaXB0PgorPHN0eWxlIGlkPSJ0ZXN0
U3R5bGUiPgorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHRlc3RpbmcgaWQ9InRhcmdldCIg
Y2xhc3M9ImFDbGFzcyBvdGhlckNsYXNzIiB3ZWJraXQ9InJvY2tzIiBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjpncmVlbjsgd2lkdGg6MjAwcHg7IGhlaWdodDoyMDBweDtkaXNwbGF5OmJsb2NrOyI+
PC90ZXN0aW5nPgorPGRpdiBpZD0ic3RhcnQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmdyYXk7
IGhlaWdodDoyMDBweDsgd2lkdGg6MjAwcHg7IGRpc3BsYXk6YmxvY2s7IHRleHQtYWxpZ246Y2Vu
dGVyOyBjb2xvcjp3aGl0ZTsiPlNUQVJUPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHRoZSA6bm90KDph
Y3RpdmUpIGFuZCA6bm90KDpob3Zlcikgc2VsZWN0b3Igd2hlbiB0aGUgZG9jdW1lbnQgaXMgaW4g
c3RyaWN0IG1vZGUuIFRvIHRlc3QgbWFudWFsbHksIG1ha2Ugc3VyZSBub3QgdG8gbW92ZSB0aGUg
Y3Vyc29yIG92ZXIgdGhlIGdyZWVuIHJlY3RhbmdsZSBhbmQgcHJlc3MgdGhlIGdyYXkgU1RBUlQg
ZGl2IHVudGlsIHRoZSB0ZXN0IGlzIGZpbmlzaGVkLicpOworCitpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKSB7CisgICAgdmFyIHN0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0Jyk7
CisgICAgdmFyIHggPSBzdGFydC5vZmZzZXRMZWZ0ICsgc3RhcnQub2Zmc2V0V2lkdGggLyAyOwor
ICAgIHZhciB5ID0gc3RhcnQub2Zmc2V0VG9wICsgc3RhcnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKKyAgICB0ZXN0KCc6YWN0aXZlJyk7CisgICAgdGVzdCgnOmhvdmVyJyk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpCit9IGVsc2UgeworICAgIC8vIEZvciBzb21lIHJlYXNvbnMsIHRo
ZSB0ZXN0IGRvZXMgbm90IHdvcmsgd2VsbCB3aXRob3V0IHRoZSB0aW1lb3V0IG9uIEZpcmVmb3gu
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0JykuYWRkRXZlbnRMaXN0ZW5lcign
bW91c2Vkb3duJywgZnVuY3Rpb24oZXYpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICB0ZXN0KCc6YWN0aXZlJyk7CisgICAgICAgICAgICB0ZXN0KCc6aG92
ZXInKTsKKyAgICAgICAgfSwgMjUwKTsKKyAgICB9KTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Mtbm90
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3BzZXVkby1jbGFzcy1u
b3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzN2JiMzhjZTUxYzQxNjFmODhkZDNkY2M0Zjkw
NDVjYjNlZmM0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9y
cy9wc2V1ZG8tY2xhc3Mtbm90LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitUaGUgcHNl
dWRvIGNsYXNzIDpub3QKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKzpub3Qgc2Vs
ZWN0b3IgbWF0Y2hlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0MSIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigwLCAwLCAwKSIKKzpub3Qg
c2VsZWN0b3IgdW5tYXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQyIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEsIDIsIDMpIgor
bXVsdGlwbGUgOm5vdCBzZWxlY3RvciBtYXRjaGVkLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQzIikpLmJhY2tncm91bmRDb2xvciBpcyAicmdi
KDIsIDMsIDQpIgorbXVsdGlwbGUgOm5vdCBzZWxlY3RvciBtYXRjaGVkLgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ0IikpLmJhY2tncm91bmRD
b2xvciBpcyAicmdiKDIsIDMsIDQpIgorbXVsdGlwbGUgOm5vdCBzZWxlY3RvciB1bm1hdGNoZWQu
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDUi
KSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCis6bm90IHdpdGggYmFja3RyYWNr
aW5nIG1hdGNoZWQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldDYiKSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCis6bm90IHdp
dGggYmFja3RyYWNraW5nIGZhaWxlZC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0NyIpKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigwLCAwLCAw
KSIKKzpub3Qgd2l0aCBtYXhpbXVtIHJlZ2lzdGVycyBtYXRjaGVkLgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQ4IikpLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiKDEsIDIsIDMpIgorOm5vdCB3aXRoIG1heGltdW0gcmVnaXN0ZXJzIG1hdGNoZWQu
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDki
KSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
ZWxlY3RvcnMvcHNldWRvLWNsYXNzLW5vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ZGNkZTU5MjljMzUx
NDI3MzA0M2NkNmRmMmNlNGRmZWVmZjZlY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Mtbm90Lmh0bWwKQEAgLTAsMCArMSwxNTMgQEAK
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorc3Bhbi50YXJnZXQgewor
ICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDAsMCwwKTsKK30KK3NwYW4udGFyZ2V0LnJhYmJpdDpu
b3QoLmhvcnNlKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMSwyLDMpOworfQorc3Bhbi50
YXJnZXQ6bm90KC5yYWJiaXQpOm5vdCguaG9yc2UpIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJn
YigyLDMsNCk7Cit9CisKK3NwYW4udGFyZ2V0MSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2Io
MCwwLDApOworfQorYzpub3QoLm5nKSA+IGMgc3Bhbi50YXJnZXQxIHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOnJnYigxLDIsMyk7Cit9CisKK3NwYW4udGFyZ2V0MiB7CisgICAgYmFja2dyb3VuZC1j
b2xvcjpyZ2IoMCwwLDApOworfQorLyogTWF4aW11bSByZWdpc3RlciBjYXNlICovCitkID4gZFty
ZWw9ImRyaW5rIl1bZGF0YS1jb2NvYV1bZGF0YS1jYXBwdWNjaW5vXTpub3QoLm5nKSA+IGQgPiBk
IHNwYW4udGFyZ2V0MiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMSwyLDMpOworfQorCitz
cGFuLnRhcmdldDMgeworICAgIGJhY2tncm91bmQtY29sb3I6cmdiKDAsMCwwKTsKK30KKy8qIE1h
eGltdW0gcmVnaXN0ZXIgY2FzZSAqLworZCA+IGQ6bm90KFtyZWw9ImRyaW5rIl0pID4gZCA+IGQg
c3Bhbi50YXJnZXQzIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYigxLDIsMyk7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorICAgIDwh
LS0gc3Bhbi50YXJnZXQucmFiYml0Om5vdCguaG9yc2UpIC0tPgorICAgIDx0YXJnZXQxPgorICAg
ICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCByYWJiaXQgaG9yc2UiIGlkPSJ0YXJnZXQxIj48
L3NwYW4+CisgICAgPC90YXJnZXQxPgorCisgICAgPCEtLSBzcGFuLnRhcmdldC5yYWJiaXQ6bm90
KC5ob3JzZSkgLS0+CisgICAgPHRhcmdldDI+CisgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFy
Z2V0IHJhYmJpdCBob3VzZSIgaWQ9InRhcmdldDIiPjwvc3Bhbj4KKyAgICA8L3RhcmdldDI+CisK
KyAgICA8IS0tIHNwYW4udGFyZ2V0Om5vdCgucmFiYml0KTpub3QoLmhvcnNlKSAtLT4KKyAgICA8
dGFyZ2V0Mz4KKyAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQzIj48
L3NwYW4+CisgICAgPC90YXJnZXQzPgorCisgICAgPCEtLSBzcGFuLnRhcmdldDpub3QoLnJhYmJp
dCk6bm90KC5ob3JzZSkgLS0+CisgICAgPHRhcmdldDQ+CisgICAgICAgICAgICA8c3BhbiBjbGFz
cz0idGFyZ2V0IGhvdXNlIiBpZD0idGFyZ2V0NCI+PC9zcGFuPgorICAgIDwvdGFyZ2V0ND4KKwor
ICAgIDwhLS0gc3Bhbi50YXJnZXQ6bm90KC5yYWJiaXQpOm5vdCguaG9yc2UpIC0tPgorICAgIDx0
YXJnZXQ1PgorICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldCBob3JzZSIgaWQ9InRhcmdl
dDUiPjwvc3Bhbj4KKyAgICA8L3RhcmdldDU+CisKKyAgICA8IS0tIGM6bm90KC5uZykgPiBjIHNw
YW4udGFyZ2V0MSAtLT4KKyAgICA8dGFyZ2V0Nj4KKyAgICAgICAgICAgIDxjPiAgPCEtLSBNYXRj
aGVkLiAtLT4KKyAgICAgICAgICAgICAgICA8YyBjbGFzcz0ibmciPiAgPCEtLSBGYWlsZWQuIEJh
Y2t0cmFja2luZyBmcm9tIGhlcmUuIC0tPgorICAgICAgICAgICAgICAgICAgICA8Yz4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQxIiBpZD0idGFyZ2V0NiI+PC9z
cGFuPgorICAgICAgICAgICAgICAgICAgICA8L2M+CisgICAgICAgICAgICAgICAgPC9jPgorICAg
ICAgICAgICAgPC9jPgorICAgIDwvdGFyZ2V0Nj4KKworICAgIDwhLS0gYzpub3QoLm5nKSA+IGMg
c3Bhbi50YXJnZXQxIC0tPgorICAgIDx0YXJnZXQ3PgorICAgICAgICAgICAgPGMgY2xhc3M9Im5n
Ij4gIDwhLS0gRmFpbGVkLiBCYWNrdHJhY2tpbmcgZnJvbSBoZXJlLiAtLT4KKyAgICAgICAgICAg
ICAgICA8YyBjbGFzcz0ibmciPiAgPCEtLSBGYWlsZWQuIEJhY2t0cmFja2luZyBmcm9tIGhlcmUu
IC0tPgorICAgICAgICAgICAgICAgICAgICA8YyBjbGFzcz0ibmciPiAgPCEtLSBGYWlsZWQuIEJh
Y2t0cmFja2luZyBmcm9tIGhlcmUuIC0tPgorICAgICAgICAgICAgICAgICAgICAgICAgPGM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhcmdldDEiIGlkPSJ0YXJn
ZXQ3Ij48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2M+CisgICAgICAgICAgICAg
ICAgICAgIDwvYz4KKyAgICAgICAgICAgICAgICA8L2M+CisgICAgICAgICAgICA8L2M+CisgICAg
PC90YXJnZXQ3PgorCisgICAgPCEtLSBkID4gZFtkYXRhLWNvY29hXVtkYXRhLWNhcHB1Y2Npbm9d
Om5vdCgubmcpID4gZCA+IGQgc3Bhbi50YXJnZXQyIC0tPgorICAgIDx0YXJnZXQ4PgorICAgICAg
ICA8ZD4gIDwhLS0gTWF0Y2hlZC4gLS0+CisgICAgICAgICAgICA8ZCByZWw9ImRyaW5rIiBkYXRh
LWNvY29hIGRhdGEtY2FwcHVjY2lubz4KKyAgICAgICAgICAgICAgICA8ZCBkYXRhLWNvY29hIGRh
dGEtY2FwcHVjY2lubyBjbGFzcz0ibmciPiAgPCEtLSBGYWlsZWQuIEJhY2t0cmFja2luZyBmcm9t
IHRoZSB0YWlsLiAtLT4KKyAgICAgICAgICAgICAgICAgICAgPGQ+CisgICAgICAgICAgICAgICAg
ICAgICAgICA8ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFy
Z2V0MiIgaWQ9InRhcmdldDgiPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvZD4K
KyAgICAgICAgICAgICAgICAgICAgPC9kPgorICAgICAgICAgICAgICAgIDwvZD4KKyAgICAgICAg
ICAgIDwvZD4KKyAgICAgICAgPC9kPgorICAgIDwvdGFyZ2V0OD4KKworICAgIDwhLS0gZCA+IGQ6
bm90KFtyZWw9ImRyaW5rIl0pID4gZCA+IGQgc3Bhbi50YXJnZXQzIC0tPgorICAgIDx0YXJnZXQ5
PgorICAgICAgICA8ZD4gIDwhLS0gTWF0Y2hlZC4gLS0+CisgICAgICAgICAgICA8ZD4KKyAgICAg
ICAgICAgICAgICA8ZCByZWw9ImRyaW5rIj4gIDwhLS0gRmFpbGVkLiBCYWNrdHJhY2tpbmcgZnJv
bSB0aGUgdGFpbC4gLS0+CisgICAgICAgICAgICAgICAgICAgIDxkPgorICAgICAgICAgICAgICAg
ICAgICAgICAgPGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRh
cmdldDMiIGlkPSJ0YXJnZXQ5Ij48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2Q+
CisgICAgICAgICAgICAgICAgICAgIDwvZD4KKyAgICAgICAgICAgICAgICA8L2Q+CisgICAgICAg
ICAgICA8L2Q+CisgICAgICAgIDwvZD4KKyAgICA8L3RhcmdldDk+Cis8L2Rpdj4KKzwvYm9keT4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhlIHBzZXVkbyBjbGFzcyA6bm90Jyk7CisKK2RlYnVn
KCI6bm90IHNlbGVjdG9yIG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEiKSkuYmFja2dyb3Vu
ZENvbG9yJywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1ZygiOm5vdCBzZWxlY3RvciB1bm1hdGNo
ZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldDIiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigxLCAyLCAz
KScpOworCitkZWJ1ZygibXVsdGlwbGUgOm5vdCBzZWxlY3RvciBtYXRjaGVkLiIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQzIikpLmJhY2tncm91bmRDb2xvcicsICdyZ2IoMiwgMywgNCknKTsKKworZGVidWco
Im11bHRpcGxlIDpub3Qgc2VsZWN0b3IgbWF0Y2hlZC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NCIpKS5i
YWNrZ3JvdW5kQ29sb3InLCAncmdiKDIsIDMsIDQpJyk7CisKK2RlYnVnKCJtdWx0aXBsZSA6bm90
IHNlbGVjdG9yIHVubWF0Y2hlZC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0NSIpKS5iYWNrZ3JvdW5kQ29s
b3InLCAncmdiKDAsIDAsIDApJyk7CisKK2RlYnVnKCI6bm90IHdpdGggYmFja3RyYWNraW5nIG1h
dGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDYiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigxLCAy
LCAzKScpOworCitkZWJ1ZygiOm5vdCB3aXRoIGJhY2t0cmFja2luZyBmYWlsZWQuIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldDciKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigwLCAwLCAwKScpOworCitkZWJ1
ZygiOm5vdCB3aXRoIG1heGltdW0gcmVnaXN0ZXJzIG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dDgiKSkuYmFja2dyb3VuZENvbG9yJywgJ3JnYigxLCAyLCAzKScpOworCitkZWJ1ZygiOm5vdCB3
aXRoIG1heGltdW0gcmVnaXN0ZXJzIG1hdGNoZWQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDkiKSkuYmFj
a2dyb3VuZENvbG9yJywgJ3JnYigxLCAyLCAzKScpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90LWhvdmVyLWFj
dGl2ZS1xdWlya3MtdXRpbGl0eS5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3Jlc291
cmNlcy9ub3QtaG92ZXItYWN0aXZlLXF1aXJrcy11dGlsaXR5LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiN2Nh
YjE1NDc2YjYzNGUzNDQzNTMzZDkyOWZiNjc0NmI3ZjMyMjUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90LWhvdmVyLWFjdGl2ZS1xdWly
a3MtdXRpbGl0eS5qcwpAQCAtMCwwICsxLDk3IEBACit2YXIgdGVzdENhc2VzID0gWworICAgIC8v
IEhhdmluZyA6aG92ZXIgb3IgOmFjdGl2ZSBkb2VzIG5vdCBxdWFsaWZ5IHRoZSBwc2V1ZG8gY2xh
c3MuCisgICAgWyJQTEFDRUhPTERFUjpob3ZlciIsIGZhbHNlXSwKKyAgICBbIjpob3ZlclBMQUNF
SE9MREVSIiwgZmFsc2VdLAorICAgIFsiOmhvdmVyUExBQ0VIT0xERVI6aG92ZXIiLCBmYWxzZV0s
CisgICAgWyJQTEFDRUhPTERFUjphY3RpdmUiLCBmYWxzZV0sCisgICAgWyI6YWN0aXZlUExBQ0VI
T0xERVIiLCBmYWxzZV0sCisgICAgWyI6YWN0aXZlUExBQ0VIT0xERVI6YWN0aXZlIiwgZmFsc2Vd
LAorCisgICAgLy8gVGFnIHF1YWxpZnkgdGhlIHBzZXVkbyBjbGFzcy4KKyAgICBbInRlc3RpbmdQ
TEFDRUhPTERFUiIsIHRydWVdLAorCisgICAgLy8gSWQgcXVhbGlmeSB0aGUgcHNldWRvIGNsYXNz
LgorICAgIFsiI3RhcmdldFBMQUNFSE9MREVSIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUiN0
YXJnZXQiLCB0cnVlXSwKKyAgICBbIiN0YXJnZXRQTEFDRUhPTERFUiN0YXJnZXQiLCB0cnVlXSwK
KworICAgIC8vIENsYXNzIHF1YWxpZnkgdGhlIHBzZXVkbyBjbGFzcy4KKyAgICBbIi5hQ2xhc3NQ
TEFDRUhPTERFUiIsIHRydWVdLAorICAgIFsiUExBQ0VIT0xERVIuYUNsYXNzIiwgdHJ1ZV0sCisg
ICAgWyIuYUNsYXNzUExBQ0VIT0xERVIub3RoZXJDbGFzcyIsIHRydWVdLAorCisgICAgLy8gQW55
IGF0dHJpYnV0ZSBmaWx0ZXIgcXVhbGlmeSB0aGUgcHNldWRvIGNsYXNzLgorICAgIFsiLmFDbGFz
c1t3ZWJraXRdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXRdIiwgdHJ1ZV0sCisg
ICAgWyJbaWRdUExBQ0VIT0xERVJbd2Via2l0XSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dl
YmtpdD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIlBMQUNFSE9MREVSW3dlYmtpdD1yb2Nrc10iLCB0
cnVlXSwKKyAgICBbIltpZD10YXJnZXRdUExBQ0VIT0xERVJbd2Via2l0PXJvY2tzXSIsIHRydWVd
LAorCisgICAgWyIuYUNsYXNzW3dlYmtpdF49cm9dIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERF
Ult3ZWJraXRePXJvXSIsIHRydWVdLAorICAgIFsiW2lkXj10YV1QTEFDRUhPTERFUlt3ZWJraXRe
PXJvXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdCQ9a3NdIiwgdHJ1ZV0sCisgICAg
WyJQTEFDRUhPTERFUlt3ZWJraXQkPWtzXSIsIHRydWVdLAorICAgIFsiW2lkJD1ldF1QTEFDRUhP
TERFUlt3ZWJraXQkPWtzXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdCo9Y2tdIiwg
dHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXQqPWNrXSIsIHRydWVdLAorICAgIFsiW2lk
Kj1yZ11QTEFDRUhPTERFUlt3ZWJraXQqPWNrXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dl
YmtpdH49cm9ja3NdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXR+PXJvY2tzXSIs
IHRydWVdLAorICAgIFsiW2lkfj10YXJnZXRdUExBQ0VIT0xERVJbd2Via2l0fj1yb2Nrc10iLCB0
cnVlXSwKKworICAgIFsiLmFDbGFzc1t3ZWJraXR8PXJvY2tzXSIsIHRydWVdLAorICAgIFsiUExB
Q0VIT0xERVJbd2Via2l0fD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIltpZHw9dGFyZ2V0XVBMQUNF
SE9MREVSW3dlYmtpdHw9cm9ja3NdIiwgdHJ1ZV0sCisKKyAgICAvLyBBIHBzZXVkby1jbGFzcyBv
dGhlciB0aGFuIDphY3RpdmUvOmhvdmVyIHF1YWxpZnkgdGhlIHBzZXVkbyBjbGFzcy4KKyAgICBb
InRlc3Rpbmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xERVIiLCB0cnVlXSwKKyAgICBbInRlc3RpbmdQ
TEFDRUhPTERFUjpudGgtY2hpbGQoMSkiLCB0cnVlXSwKKyAgICBbInRlc3Rpbmc6bnRoLWNoaWxk
KDEpUExBQ0VIT0xERVI6bnRoLWNoaWxkKDEpIiwgdHJ1ZV0sCisgICAgLy8gU2FtZSB3aXRoIGNo
aWxkLgorICAgIFsiOm50aC1jaGlsZChuKVBMQUNFSE9MREVSID4gI3RhcmdldCIsIGZhbHNlXSwK
KyAgICBbIlBMQUNFSE9MREVSOm50aC1jaGlsZChuKSA+ICN0YXJnZXQiLCBmYWxzZV0sCisgICAg
WyI6bnRoLWNoaWxkKG4pUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIsIGZhbHNl
XSwKKyAgICAvLyBTYW1lIHdpdGggZGVzY2VuZGFudC4KKyAgICBbIjpudGgtY2hpbGQobilQTEFD
RUhPTERFUiAjdGFyZ2V0IiwgZmFsc2VdLAorICAgIFsiUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4p
ICN0YXJnZXQiLCBmYWxzZV0sCisgICAgWyI6bnRoLWNoaWxkKG4pUExBQ0VIT0xERVI6bnRoLWNo
aWxkKG4pICN0YXJnZXQiLCBmYWxzZV0sCisKKyAgICBbIjotd2Via2l0LWFueShQTEFDRUhPTERF
UikgI3RhcmdldCIsIGZhbHNlXSwKK107CisKK2Z1bmN0aW9uIHRlc3RRdWVyeVNlbGVjdG9yKHNl
bGVjdG9yLCBzaG91bGRNYXRjaCkgeworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCInICsgc2VsZWN0b3IgKyAnIikubGVuZ3RoJywgc2hvdWxkTWF0Y2g/ICcxJyA6ICcw
Jyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHlsaW5nKHNlbGVjdG9yLCBzaG91bGRNYXRjaCkgewor
ICAgIHZhciB0ZXN0U3R5bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdFN0eWxlJyk7
CisgICAgdmFyIG5vTWF0Y2hTdHlsZSA9ICJyZ2IoMSwgMiwgMykiOworICAgIHZhciBtYXRjaFN0
eWxlID0gInJnYig0LCA1LCA2KSIKKyAgICB0ZXN0U3R5bGUudGV4dENvbnRlbnQgPSAiI3Rhcmdl
dCB7IGNvbG9yOiIgKyBub01hdGNoU3R5bGUgKyAiIH0gIiArIHNlbGVjdG9yICsgIiB7IGNvbG9y
OiIgKyBtYXRjaFN0eWxlICsgIiAhaW1wb3J0YW50IH0iOworCisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSkuY29sb3InLCBzaG91bGRNYXRjaCA/IG1hdGNoU3R5bGUgOiBub01hdGNoU3R5bGUpOworCisg
ICAgdGVzdFN0eWxlLnRleHRDb250ZW50ID0gIiI7Cit9CisKK2Z1bmN0aW9uIHRlc3Qob3JpZ2lu
YWwpIHsKKyAgICB2YXIgcHNldWRvQ2xhc3MgPSAnOm5vdCgnICsgb3JpZ2luYWwgKyAnKSc7CisK
KyAgICAvLyBTaW5jZSBpbkZ1bmN0aW9uYWxQc2V1ZG8gaXMgdHJ1ZSwgOmhvdmVyIGFuZCA6YWN0
aXZlIGNhbiBiZSBtYXRjaGVkIGluIHF1aXJrcyBtb2RlLgorICAgIHNob3VsZEJlKCdkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIqIikubGVuZ3RoIC0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiJyArIHBzZXVkb0NsYXNzICsgJyIpLmxlbmd0aCcsICczJyk7CisgICAgdGVzdFN0eWxpbmco
cHNldWRvQ2xhc3MsIHRydWUpOworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIqIikubGVuZ3RoIC0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKicgKyBwc2V1ZG9D
bGFzcyArICciKS5sZW5ndGgnLCAnMycpOworICAgIHRlc3RTdHlsaW5nKCcqJyArIHBzZXVkb0Ns
YXNzLCB0cnVlKTsKKworICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSB0ZXN0Q2FzZXMubGVu
Z3RoOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHNlbGVjdG9yID0gdGVzdENhc2Vz
W2ldWzBdLnJlcGxhY2UoJ1BMQUNFSE9MREVSJywgcHNldWRvQ2xhc3MpCisgICAgICAgIHRlc3RR
dWVyeVNlbGVjdG9yKHNlbGVjdG9yLCB0ZXN0Q2FzZXNbaV1bMV0pOworICAgICAgICB0ZXN0U3R5
bGluZyhzZWxlY3RvciwgdGVzdENhc2VzW2ldWzFdKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90LWhvdmVyLWFjdGl2ZS1zdHJp
Y3QtdXRpbGl0eS5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3Jlc291cmNlcy9ub3Qt
aG92ZXItYWN0aXZlLXN0cmljdC11dGlsaXR5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxMzY0ZjBlMzFiZmNk
ZDc4ZGIyMTllZmQ3YTdiYzhkNzg3MTJlZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NlbGVjdG9ycy9yZXNvdXJjZXMvbm90LWhvdmVyLWFjdGl2ZS1zdHJpY3QtdXRpbGl0
eS5qcwpAQCAtMCwwICsxLDkwIEBACisvLyBJbiBzdHJpY3QgbW9kZSwgdGhlcmUgaXMgbm8gcmVz
dHJpY3Rpb24gb24gd2hlbiA6aG92ZXIgb3IgOmFjdGl2ZSBjYW4gbWF0Y2guCit2YXIgdGVzdENh
c2VzID0gWworICAgIC8vIFRhZyBuYW1lLgorICAgIFsidGVzdGluZ1BMQUNFSE9MREVSIiwgdHJ1
ZV0sCisKKyAgICAvLyBJZC4KKyAgICBbIiN0YXJnZXRQTEFDRUhPTERFUiIsIHRydWVdLAorICAg
IFsiUExBQ0VIT0xERVIjdGFyZ2V0IiwgdHJ1ZV0sCisgICAgWyIjdGFyZ2V0UExBQ0VIT0xERVIj
dGFyZ2V0IiwgdHJ1ZV0sCisKKyAgICAvLyBDbGFzcyBuYW1lLgorICAgIFsiLmFDbGFzc1BMQUNF
SE9MREVSIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUi5hQ2xhc3MiLCB0cnVlXSwKKyAgICBb
Ii5hQ2xhc3NQTEFDRUhPTERFUi5vdGhlckNsYXNzIiwgdHJ1ZV0sCisKKyAgICAvLyBBdHRyaWJ1
dGUgZmlsdGVyLgorICAgIFsiLmFDbGFzc1t3ZWJraXRdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhP
TERFUlt3ZWJraXRdIiwgdHJ1ZV0sCisgICAgWyJbaWRdUExBQ0VIT0xERVJbd2Via2l0XSIsIHRy
dWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIlBMQUNF
SE9MREVSW3dlYmtpdD1yb2Nrc10iLCB0cnVlXSwKKyAgICBbIltpZD10YXJnZXRdUExBQ0VIT0xE
RVJbd2Via2l0PXJvY2tzXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdF49cm9dIiwg
dHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXRePXJvXSIsIHRydWVdLAorICAgIFsiW2lk
Xj10YV1QTEFDRUhPTERFUlt3ZWJraXRePXJvXSIsIHRydWVdLAorCisgICAgWyIuYUNsYXNzW3dl
YmtpdCQ9a3NdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXQkPWtzXSIsIHRydWVd
LAorICAgIFsiW2lkJD1ldF1QTEFDRUhPTERFUlt3ZWJraXQkPWtzXSIsIHRydWVdLAorCisgICAg
WyIuYUNsYXNzW3dlYmtpdCo9Y2tdIiwgdHJ1ZV0sCisgICAgWyJQTEFDRUhPTERFUlt3ZWJraXQq
PWNrXSIsIHRydWVdLAorICAgIFsiW2lkKj1yZ11QTEFDRUhPTERFUlt3ZWJraXQqPWNrXSIsIHRy
dWVdLAorCisgICAgWyIuYUNsYXNzW3dlYmtpdH49cm9ja3NdIiwgdHJ1ZV0sCisgICAgWyJQTEFD
RUhPTERFUlt3ZWJraXR+PXJvY2tzXSIsIHRydWVdLAorICAgIFsiW2lkfj10YXJnZXRdUExBQ0VI
T0xERVJbd2Via2l0fj1yb2Nrc10iLCB0cnVlXSwKKworICAgIFsiLmFDbGFzc1t3ZWJraXR8PXJv
Y2tzXSIsIHRydWVdLAorICAgIFsiUExBQ0VIT0xERVJbd2Via2l0fD1yb2Nrc10iLCB0cnVlXSwK
KyAgICBbIltpZHw9dGFyZ2V0XVBMQUNFSE9MREVSW3dlYmtpdHw9cm9ja3NdIiwgdHJ1ZV0sCisK
KyAgICAvLyBQc2V1ZG8tY2xhc3Mgb3RoZXIgdGhhbiA6YWN0aXZlLzpob3Zlci4KKyAgICBbInRl
c3Rpbmc6bnRoLWNoaWxkKDEpUExBQ0VIT0xERVIiLCB0cnVlXSwKKyAgICBbInRlc3RpbmdQTEFD
RUhPTERFUjpudGgtY2hpbGQoMSkiLCB0cnVlXSwKKyAgICBbInRlc3Rpbmc6bnRoLWNoaWxkKDEp
UExBQ0VIT0xERVI6bnRoLWNoaWxkKDEpIiwgdHJ1ZV0sCisgICAgLy8gU2FtZSB3aXRoIGNoaWxk
IHJlbGF0aW9uLgorICAgIFsiOm50aC1jaGlsZChuKVBMQUNFSE9MREVSID4gI3RhcmdldCIsIGZh
bHNlXSwKKyAgICBbIlBMQUNFSE9MREVSOm50aC1jaGlsZChuKSA+ICN0YXJnZXQiLCBmYWxzZV0s
CisgICAgWyI6bnRoLWNoaWxkKG4pUExBQ0VIT0xERVI6bnRoLWNoaWxkKG4pID4gI3RhcmdldCIs
IGZhbHNlXSwKKyAgICAvLyBTYW1lIHdpdGggZGVzY2VuZGFudCByZWxhdGlvbi4KKyAgICBbIjpu
dGgtY2hpbGQobilQTEFDRUhPTERFUiAjdGFyZ2V0IiwgZmFsc2VdLAorICAgIFsiUExBQ0VIT0xE
RVI6bnRoLWNoaWxkKG4pICN0YXJnZXQiLCBmYWxzZV0sCisgICAgWyI6bnRoLWNoaWxkKG4pUExB
Q0VIT0xERVI6bnRoLWNoaWxkKG4pICN0YXJnZXQiLCBmYWxzZV0sCisKKyAgICBbIjotd2Via2l0
LWFueShQTEFDRUhPTERFUikgI3RhcmdldCIsIGZhbHNlXSwKK107CisKK2Z1bmN0aW9uIHRlc3RR
dWVyeVNlbGVjdG9yKHNlbGVjdG9yLCBzaG91bGRNYXRjaCkgeworICAgIHNob3VsZEJlKCdkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCInICsgc2VsZWN0b3IgKyAnIikubGVuZ3RoJywgc2hvdWxk
TWF0Y2g/ICcxJyA6ICcwJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHlsaW5nKHNlbGVjdG9yLCBz
aG91bGRNYXRjaCkgeworICAgIHZhciB0ZXN0U3R5bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdFN0eWxlJyk7CisgICAgdmFyIG5vTWF0Y2hTdHlsZSA9ICJyZ2IoMSwgMiwgMykiOwor
ICAgIHZhciBtYXRjaFN0eWxlID0gInJnYig0LCA1LCA2KSIKKyAgICB0ZXN0U3R5bGUudGV4dENv
bnRlbnQgPSAiI3RhcmdldCB7IGNvbG9yOiIgKyBub01hdGNoU3R5bGUgKyAiIH0gIiArIHNlbGVj
dG9yICsgIiB7IGNvbG9yOiIgKyBtYXRjaFN0eWxlICsgIiAhaW1wb3J0YW50IH0iOworCisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKSkuY29sb3InLCBzaG91bGRNYXRjaCA/IG1hdGNoU3R5bGUgOiBub01h
dGNoU3R5bGUpOworCisgICAgdGVzdFN0eWxlLnRleHRDb250ZW50ID0gIiI7Cit9CisKK2Z1bmN0
aW9uIHRlc3Qob3JpZ2luYWwpIHsKKyAgICB2YXIgcHNldWRvQ2xhc3MgPSAnOm5vdCgnICsgb3Jp
Z2luYWwgKyAnKSc7CisgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IHRlc3RDYXNlcy5sZW5n
dGg7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgc2VsZWN0b3IgPSB0ZXN0Q2FzZXNb
aV1bMF0ucmVwbGFjZSgnUExBQ0VIT0xERVInLCBwc2V1ZG9DbGFzcykKKyAgICAgICAgdGVzdFF1
ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IsIHRlc3RDYXNlc1tpXVsxXSk7CisgICAgICAgIHRlc3RTdHls
aW5nKHNlbGVjdG9yLCB0ZXN0Q2FzZXNbaV1bMV0pOworICAgIH0KKworICAgIC8vIEluIHN0cmlj
dCBtb2RlLCBubyB0YWcgbmFtZSBvciB0aGUgdW5pdmVyc2FsIHNlbGVjdG9yIGFsc28gd29yay4g
VGhpcyBpcyB0ZXN0ZWQgc2VwYXJhdGVseSBiZWNhdXNlIHRob3NlIHNlbGVjdG9ycyBtYXRjaAor
ICAgIC8vIGV2ZXJ5IGFuY2VzdG9yIG9mIHRoZSB0YXJnZXQuCisgICAgc2hvdWxkQmUoJ2RvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5sZW5ndGggLSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCInICsgcHNldWRvQ2xhc3MgKyAnIikubGVuZ3RoJywgJzMnKTsKKyAgICB0ZXN0U3R5bGlu
Zyhwc2V1ZG9DbGFzcywgdHJ1ZSk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIioiKS5sZW5ndGggLSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqJyArIHBzZXVk
b0NsYXNzICsgJyIpLmxlbmd0aCcsICczJyk7CisgICAgdGVzdFN0eWxpbmcoJyonICsgcHNldWRv
Q2xhc3MsIHRydWUpOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>